<?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>227825</bug_id>
          
          <creation_ts>2021-07-08 19:39:45 -0700</creation_ts>
          <short_desc>Allow layout tests to specify app initiated loads or not</short_desc>
          <delta_ts>2021-07-13 09:40:20 -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>WebKit Misc.</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kate Cheney">katherine_cheney</reporter>
          <assigned_to name="Kate Cheney">katherine_cheney</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>ddkilzer</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1775902</commentid>
    <comment_count>0</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-08 19:39:45 -0700</bug_when>
    <thetext>We should expand App Privacy Report layout testing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775903</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-07-08 19:40:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/80355582&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1775911</commentid>
    <comment_count>2</comment_count>
      <attachid>433194</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-08 20:20:01 -0700</bug_when>
    <thetext>Created attachment 433194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776023</commentid>
    <comment_count>3</comment_count>
      <attachid>433223</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-09 10:32:17 -0700</bug_when>
    <thetext>Created attachment 433223
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776085</commentid>
    <comment_count>4</comment_count>
      <attachid>433241</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-09 15:00:00 -0700</bug_when>
    <thetext>Created attachment 433241
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776422</commentid>
    <comment_count>5</comment_count>
      <attachid>433350</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-12 13:38:53 -0700</bug_when>
    <thetext>Created attachment 433350
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776433</commentid>
    <comment_count>6</comment_count>
      <attachid>433353</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-12 13:52:54 -0700</bug_when>
    <thetext>Created attachment 433353
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776546</commentid>
    <comment_count>7</comment_count>
      <attachid>433353</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2021-07-12 21:56:29 -0700</bug_when>
    <thetext>Comment on attachment 433353
Patch

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

R=me, but consider using a HAVE macro, perhaps in a follow up patch, to gate this on the presence of app initiation state in a build, rather than OS family,

&gt; Source/WebKit/UIProcess/API/APIPageConfiguration.cpp:99
&gt; +#if PLATFORM(IOS_FAMILY)

This might be better as a HAVE macro (e.g., HAVE(APP_ATTRIBUTION) or something).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776630</commentid>
    <comment_count>8</comment_count>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-13 08:20:32 -0700</bug_when>
    <thetext>Thanks!

(In reply to Brent Fulgham from comment #7)
&gt; Comment on attachment 433353 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=433353&amp;action=review
&gt; 
&gt; R=me, but consider using a HAVE macro, perhaps in a follow up patch, to gate
&gt; this on the presence of app initiation state in a build, rather than OS
&gt; family,

Good point, and one even exists, ENABLE(APP_PRIVACY_REPORT), that I forgot to use. Will fix before landing.

&gt; 
&gt; &gt; Source/WebKit/UIProcess/API/APIPageConfiguration.cpp:99
&gt; &gt; +#if PLATFORM(IOS_FAMILY)
&gt; 
&gt; This might be better as a HAVE macro (e.g., HAVE(APP_ATTRIBUTION) or
&gt; something).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776633</commentid>
    <comment_count>9</comment_count>
      <attachid>433405</attachid>
    <who name="Kate Cheney">katherine_cheney</who>
    <bug_when>2021-07-13 08:34:06 -0700</bug_when>
    <thetext>Created attachment 433405
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1776651</commentid>
    <comment_count>10</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-07-13 09:40:19 -0700</bug_when>
    <thetext>Committed r279874 (239627@main): &lt;https://commits.webkit.org/239627@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 433405.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433194</attachid>
            <date>2021-07-08 20:20:01 -0700</date>
            <delta_ts>2021-07-09 10:32:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227825-20210708202000.patch</filename>
            <type>text/plain</type>
            <size>68332</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM1NGIxNmM0ZTVhYjNlNTE5
NzgzYWQzNTI3NTVhOWZiNGY3MWM0NGQuLjZkNGU4YTAyNGI1OWM4NmNlZjQxNzBkNDE0NDIyNmU1
NGYxNTIwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjEtMDctMDggIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgbGF5b3V0
IHRlc3RzIHRvIHNwZWNpZnkgYXBwIGluaXRpYXRlZCBsb2FkcyBvciBub3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgyNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODAzNTU1ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1h
dHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJl
cXVlc3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0
dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0
cmlidXRpb24tcGluZy1sb2FkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJl
ZmxpZ2h0LWFzeW5jLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxh
dGl2ZS1yZXZhbGlkYXRpb24uaHRtbAorCisgICAgICAgIEFkZCBhIHBhcmFtZXRlciB0byB0aGUg
V2ViVmlldyBjb25maWd1cmF0aW9uIHRoYXQgYWxsb3dzIGEgdGVzdCB0bworICAgICAgICBvdmVy
cmlkZSB0aGUgZGVmYXVsdCBOU1VSTFJlcXVlc3QgYXR0cmlidXRpb24gdmFsdWUuIFdlIGRvbid0
IG5lZWQKKyAgICAgICAgdGhpcyB0byBiZSBkeW5hbWljIHBlci10ZXN0LCBzbyB3ZSBjYW4gc3Rv
cmUgaXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SVBhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246
OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OmFwcEluaXRpYXRlZE92ZXJy
aWRlVmFsdWVGb3JUZXN0aW5nIGNvbnN0KToKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRp
b246OnNldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgt
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3NldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JU
ZXN0aW5nOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9hcHBJbml0aWF0
ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZ10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6c2V0TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOgorCiAyMDIxLTA3LTA4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFt3YXRjaE9TXSBU
YXBwaW5nICJEb25lIiBpbiBTY3JpYmJsZSB3aGVuIGZvY3VzaW5nIGFuIGVkaXRhYmxlIGVsZW1l
bnQgc2hvdWxkIGRpc21pc3MgUXVpY2tib2FyZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggYTJmMWFjNTUwY2JiNjE2
NDdhNzg4OGQ3OWU3NDA2MzE5ODBmYTM5Ni4uOGQ3NjY0YjlkZDhkNzFlOGQ4ZjUwOWFiYTAxNWEy
Y2FiZjljOTMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBh
Z2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
UGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC05Niw2ICs5Niw3IEBAIFJlZjxQYWdlQ29uZmlndXJh
dGlvbj4gUGFnZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAogCiAgICAgY29weS0+bV9tZWRp
YUNhcHR1cmVFbmFibGVkID0gdGhpcy0+bV9tZWRpYUNhcHR1cmVFbmFibGVkOwogICAgIGNvcHkt
Pm1faHR0cHNVcGdyYWRlRW5hYmxlZCA9IHRoaXMtPm1faHR0cHNVcGdyYWRlRW5hYmxlZDsKKyAg
ICBjb3B5LT5tX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nID0gdGhpcy0+bV9h
cHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZzsKIAogICAgIHJldHVybiBjb3B5Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaAppbmRleCBkMzNiNzZmY2FlYzc1OGY5NjJkMmUwMDVjYjI1YmZkYmZlMmQxM2YyLi42ZGQw
ZGM4Zjg4YmMxZGFiYTI3ZDY4ODhhMDIyYzIzODMwZDM0M2RmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMTcwLDYgKzE3
MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKFdU
Rjo6U3RyaW5nJiYgaWRlbnRpZmllcikgeyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyID0g
V1RGTW92ZShpZGVudGlmaWVyKTsgfQogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBhdHRyaWJ1dGVk
QnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50
aWZpZXI7IH0KIAorICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gYXBwSW5pdGlhdGVkT3ZlcnJpZGVW
YWx1ZUZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFs
dWVGb3JUZXN0aW5nOyB9CisgICAgdm9pZCBzZXRBcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9y
VGVzdGluZyhzdGQ6Om9wdGlvbmFsPGJvb2w+IGFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JU
ZXN0aW5nKSB7IG1fYXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcgPSBhcHBJbml0
aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZzsgfQorCiBwcml2YXRlOgogCiAgICAgUmVmUHRy
PFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w+IG1fcHJvY2Vzc1Bvb2w7CkBAIC0yMjEsNiArMjI0LDgg
QEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nIG1fc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgeyBXZWJDb3JlOjpT
aG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzo6Tm8gfTsKICAgICBXVEY6OlN0cmlu
ZyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOworCisgICAgc3RkOjpvcHRpb25hbDxib29s
PiBtX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCmluZGV4IDgyNDRlMTI0MjEyNTU0YjJlYzY0
Zjg0NDRmNTUzMmVmMmEzNTVmODcuLmQxMjNkZTU1MzAyOWNjZmI4N2Q5ZWM0N2E3NTg2NWZhYmIx
ZmM0MzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBAIC0xMDExLDYgKzEwMTEsMTYgQEAgQUxM
T1dfREVQUkVDQVRFRF9ERUNMQVJBVElPTlNfRU5ECiAgICAgcmV0dXJuIF9wYWdlQ29uZmlndXJh
dGlvbi0+Y3Jvc3NPcmlnaW5BY2Nlc3NDb250cm9sQ2hlY2tFbmFibGVkKCk7CiB9CiAKKy0gKHZv
aWQpX3NldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOihzdGQ6Om9wdGlvbmFs
PEJPT0w+KXZhbHVlCit7CisgICAgX3BhZ2VDb25maWd1cmF0aW9uLT5zZXRBcHBJbml0aWF0ZWRP
dmVycmlkZVZhbHVlRm9yVGVzdGluZyh2YWx1ZSk7Cit9CisKKy0gKHN0ZDo6b3B0aW9uYWw8Qk9P
TD4pX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nCit7CisgICAgcmV0dXJuIF9w
YWdlQ29uZmlndXJhdGlvbi0+YXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcoKTsK
K30KKwogLSAoQk9PTClfZHJhd3NCYWNrZ3JvdW5kCiB7CiAgICAgcmV0dXJuIF9kcmF3c0JhY2tn
cm91bmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tX
ZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQ
SS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCmluZGV4IGFjZjVjMDJjNzQ4
ZTcxMGFhOGFiMGFhOTBiZGEzNmIzMWQ0OTM4M2UuLmZlNTkxM2Q5MDgxMDM4ZGRmN2NlZDJjZjdh
ZGYxYTFlNzUxNzFmYTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQv
VUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC0y
NSw2ICsyNSw3IEBACiAKICNpbXBvcnQgPFdlYktpdC9XS0Jhc2UuaD4KICNpbXBvcnQgPFdlYktp
dC9XS1dlYlZpZXdDb25maWd1cmF0aW9uLmg+CisjaW1wb3J0IDxvcHRpb25hbD4KIAogI2lmIFRB
UkdFVF9PU19JUEhPTkUKIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERl
bGF5KSB7CkBAIC04Myw2ICs4NCw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tE
cmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgY29weSwgc2V0dGVyPV9zZXRB
bGxvd2VkTmV0d29ya0hvc3RzOikgTlNTZXQ8TlNTdHJpbmcgKj4gKl9hbGxvd2VkTmV0d29ya0hv
c3RzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTIuMCksIGlvcygxNS4wKSk7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRMb2Fkc1N1YnJlc291cmNlczopIEJPT0wgX2xvYWRzU3Vi
cmVzb3VyY2VzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTEuMCksIGlvcygxNC4wKSk7CiBAcHJv
cGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRJZ25vcmVzQXBwQm91bmREb21haW5zOikgQk9P
TCBfaWdub3Jlc0FwcEJvdW5kRG9tYWlucyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDExLjApLCBp
b3MoMTQuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1fc2V0QXBwSW5pdGlhdGVk
T3ZlcnJpZGVWYWx1ZUZvclRlc3Rpbmc6KSBzdGQ6Om9wdGlvbmFsPEJPT0w+IF9hcHBJbml0aWF0
ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEyLjApLCBp
b3MoMTUuMCkpOwogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0Q2xpZW50TmF2aWdhdGlvbnNSdW5BdEZvcmVncm91bmRQcmlvcml0eTopIEJP
T0wgX2NsaWVudE5hdmlnYXRpb25zUnVuQXRGb3JlZ3JvdW5kUHJpb3JpdHkgV0tfQVBJX0FWQUlM
QUJMRShpb3MoMTMuNCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUGFnZVByb3h5Q29jb2EubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9X
ZWJQYWdlUHJveHlDb2NvYS5tbQppbmRleCA5YjAxZjQwMjI3MTUyMTAyZTQ3ZTZjYzI1ZGJkYjI2
MWQxNzdiZjliLi5iNzQxM2Q1ZDJhNzUxYTc0MTNjOGRjYjg1MmFmNjFlNjYxNjk0MTVkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5t
bQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5t
bQpAQCAtMjcsNiArMjcsNyBAQAogI2ltcG9ydCAiV2ViUGFnZVByb3h5LmgiCiAKICNpbXBvcnQg
IkFQSUF0dGFjaG1lbnQuaCIKKyNpbXBvcnQgIkFQSVBhZ2VDb25maWd1cmF0aW9uLmgiCiAjaW1w
b3J0ICJBUElVSUNsaWVudC5oIgogI2ltcG9ydCAiQ29jb2FJbWFnZS5oIgogI2ltcG9ydCAiQ29u
bmVjdGlvbi5oIgpAQCAtNjYzLDYgKzY2NCw5IEBAIHZvaWQgV2ViUGFnZVByb3h5OjpzZXRMYXN0
TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZChSZXNvdXJjZVJlcXVlc3QmIHJlcXVlc3QpCiB7CiAj
aWYgRU5BQkxFKEFQUF9QUklWQUNZX1JFUE9SVCkKICAgICBhdXRvIGlzQXBwSW5pdGlhdGVkID0g
cmVxdWVzdC5uc1VSTFJlcXVlc3QoV2ViQ29yZTo6SFRUUEJvZHlVcGRhdGVQb2xpY3k6OkRvTm90
VXBkYXRlSFRUUEJvZHkpLmF0dHJpYnV0aW9uID09IE5TVVJMUmVxdWVzdEF0dHJpYnV0aW9uRGV2
ZWxvcGVyOworICAgIGlmIChtX2NvbmZpZ3VyYXRpb24tPmFwcEluaXRpYXRlZE92ZXJyaWRlVmFs
dWVGb3JUZXN0aW5nKCkpCisgICAgICAgIGlzQXBwSW5pdGlhdGVkID0gKm1fY29uZmlndXJhdGlv
bi0+YXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcoKTsKKwogICAgIHJlcXVlc3Qu
c2V0SXNBcHBJbml0aWF0ZWQoaXNBcHBJbml0aWF0ZWQpOwogICAgIG1fbGFzdE5hdmlnYXRpb25X
YXNBcHBJbml0aWF0ZWQgPSBpc0FwcEluaXRpYXRlZDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9v
bHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDRmMWIzZWFmYzY4ODM4ZjIwOTJm
ZjQyYzA4MTQxMDY2MjJmYWViZjkuLmMzMmEwYmRkZTdiNzVhZmEyYjBmZTFjNTZjNzU2M2NjZWY0
NDg0OTggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyMiBAQAorMjAyMS0wNy0wOCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hl
bmV5QGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBsYXlvdXQgdGVzdHMgdG8gc3BlY2lmeSBh
cHAgaW5pdGlhdGVkIGxvYWRzIG9yIG5vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9y
Zy9zaG93X2J1Zy5jZ2k/aWQ9MjI3ODI1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MDM1NTU4
Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQg
YSB0ZXN0IG9wdGlvbiB0aGF0IHNwZWNpZmllcyB3aGV0aGVyIHRoZSB0ZXN0IHNob3VsZCBtYXJr
IHRoZQorICAgICAgICBtYWluIHBhZ2UgbmF2aWdhdGlvbiBhcyBhcHAtaW5pdGlhdGVkIG9yIG5v
dC4KKworICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwOgorICAgICAg
ICAoV1RSOjpUZXN0T3B0aW9uczo6ZGVmYXVsdHMpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9u
czo6a2V5VHlwZU1hcHBpbmcpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlv
bnMuaDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmlzQXBwSW5pdGlhdGVkIGNvbnN0KToK
KyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06
CisgICAgICAgIChXVFI6OlRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcpOgor
CiAyMDIxLTA3LTA4ICBZaWppYSBIdWFuZyAgPHlpamlhX2h1YW5nQGFwcGxlLmNvbT4KIAogICAg
ICAgICBBZGQgWWlqaWEgSHVhbmcgYXMgYSBjb21taXR0ZXIKZGlmZiAtLWdpdCBhL1Rvb2xzL1dl
YktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0T3B0aW9ucy5jcHAKaW5kZXggNDY5MDEzNjUzN2FhMjgzZWZmYWU1ZDFmOTUxNDExNjFmYThi
ZTkxMS4uMmQyOWFhZTk4ZWE0YjI1NWI3OTJlNDA4NWNkOTFmNWU0ZDEzNTM0YiAxMDA2NDQKLS0t
IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKQEAgLTE0Myw2ICsxNDMsNyBAQCBjb25zdCBU
ZXN0RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0cygpCiAgICAgICAgICAgICB7ICJpZ25v
cmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsg
Imlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgImlz
QXBwQm91bmRXZWJWaWV3IiwgZmFsc2UgfSwKKyAgICAgICAgICAgIHsgImlzQXBwSW5pdGlhdGVk
IiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAicnVuU2luZ2x5IiwgZmFsc2UgfSwKICAgICAgICAg
ICAgIHsgInNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCIsIHRydWUgfSwKICAgICAgICAgICAgIHsg
InNob3VsZFByZXNlbnRQb3BvdmVycyIsIHRydWUgfSwKQEAgLTE5NSw2ICsxOTYsNyBAQCBjb25z
dCBzdGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFRlc3RIZWFkZXJLZXlUeXBlPiYgVGVz
dE9wdGlvbnM6OmtleVR5cGVNYQogICAgICAgICB7ICJpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2lu
Z1RpbWVvdXRzIiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xUZXN0UnVubmVyIH0sCiAgICAgICAg
IHsgImlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xU
ZXN0UnVubmVyIH0sCiAgICAgICAgIHsgImlzQXBwQm91bmRXZWJWaWV3IiwgVGVzdEhlYWRlcktl
eVR5cGU6OkJvb2xUZXN0UnVubmVyIH0sCisgICAgICAgIHsgImlzQXBwSW5pdGlhdGVkIiwgVGVz
dEhlYWRlcktleVR5cGU6OkJvb2xUZXN0UnVubmVyIH0sCiAgICAgICAgIHsgInJ1blNpbmdseSIs
IFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9LAogICAgICAgICB7ICJzaG91bGRI
YW5kbGVSdW5PcGVuUGFuZWwiLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwK
ICAgICAgICAgeyAic2hvdWxkUHJlc2VudFBvcG92ZXJzIiwgVGVzdEhlYWRlcktleVR5cGU6OkJv
b2xUZXN0UnVubmVyIH0sCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RP
cHRpb25zLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKaW5kZXggOTM2
MDM4NzQ2Y2FiN2U5ZTlkNzkyYTVlOTljYjg1ZmNhNzEyZjJlOS4uNWUwNzM2YWRiZWY3NmM2OGZi
MmJjNGQ1YmM0NTA3ZGQ3NTZhNzJiYiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMu
aApAQCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpZ25vcmVTeW5jaHJvbm91c01l
c3NhZ2luZ1RpbWVvdXRzKCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJlVmFs
dWUoImlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMiKTsgfQogICAgIGJvb2wgaWdu
b3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMoKSBjb25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZl
YXR1cmVWYWx1ZSgiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiKTsgfQogICAgIGJvb2wgaXNB
cHBCb3VuZFdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1
ZSgiaXNBcHBCb3VuZFdlYlZpZXciKTsgfQorICAgIGJvb2wgaXNBcHBJbml0aWF0ZWQoKSBjb25z
dCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgiaXNBcHBJbml0aWF0ZWQiKTsg
fQogICAgIGJvb2wgcnVuU2luZ2x5KCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0
dXJlVmFsdWUoInJ1blNpbmdseSIpOyB9CiAgICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFu
ZWwoKSBjb25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgic2hvdWxkSGFu
ZGxlUnVuT3BlblBhbmVsIik7IH0KICAgICBib29sIHNob3VsZFByZXNlbnRQb3BvdmVycygpIGNv
bnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJzaG91bGRQcmVzZW50UG9w
b3ZlcnMiKTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0
Q29udHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29u
dHJvbGxlckNvY29hLm1tCmluZGV4IDk4Y2NiNGRiOWFiMDhiYWIyOTMzMGFiNGNiYTJlMjQ1ZTk5
NDRmN2QuLjczNDk4ZTFkZDUwNzMxOTEwYmY1MjJmZDllMzI4YzljZmRjMjg4ZTIgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQor
KysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0K
QEAgLTE2OSw2ICsxNjksOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdl
YlZpZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVzdE9wdAogICAgICAgICBbY29w
aWVkQ29uZmlndXJhdGlvbiBzZXRTZWxlY3Rpb25HcmFudWxhcml0eTpXS1NlbGVjdGlvbkdyYW51
bGFyaXR5Q2hhcmFjdGVyXTsKICAgICBpZiAob3B0aW9ucy5pc0FwcEJvdW5kV2ViVmlldygpKQog
ICAgICAgICBbY29waWVkQ29uZmlndXJhdGlvbiBzZXRMaW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91
bmREb21haW5zOllFU107CisKKyAgICBbY29waWVkQ29uZmlndXJhdGlvbiBfc2V0QXBwSW5pdGlh
dGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3Rpbmc6b3B0aW9ucy5pc0FwcEluaXRpYXRlZCgpXTsKICNl
bmRpZgogCiAgICAgaWYgKG9wdGlvbnMuZW5hYmxlQXR0YWNobWVudEVsZW1lbnQoKSkKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRl
eCA3NThhZTFlNzRhZGUzZDllNWZlYjY4NGMzNTcyM2FiNzdjY2QyZDMzLi40YzI3YzlkMzMzYzE0
MmViN2Q1ZmJlMzJkMzgyMDA3ZWJmOGI3YzhlIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEt
MDctMDggIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAg
ICAgQWxsb3cgbGF5b3V0IHRlc3RzIHRvIHNwZWNpZnkgYXBwIGluaXRpYXRlZCBsb2FkcyBvciBu
b3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgy
NQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vODAzNTU1ODI+CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkZWQgbmV3IHRlc3RzIHRvIGNvdmVyIHRo
ZSB1c2VyIGluaXRpYXRlZCBjYXNlLgorCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBm
cm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9u
LWxvYWQtdXJsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwu
aHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmli
dXRpb24tcGluZy1sb2FkLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcGluZy1sb2FkLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmli
dXRpb24tcGluZy1sb2FkLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sLgorICAgICAgICAq
IGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVl
c3QtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcG9z
dC1yZXF1ZXN0Lmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sLgorICAgICAgICAqIGh0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5
bmMtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0Lgor
ICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1w
cmVmbGlnaHQtYXN5bmMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwuCisgICAg
ICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZs
aWdodC1zeW5jLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQu
dHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1
dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1z
cGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2
ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRt
bDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwuCisgICAgICAgICogaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL2FwcC1pbml0aWF0ZWQtcG9zdC5w
eTogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
cmVzb3VyY2VzL3Bvc3QucHkuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvcmVzb3VyY2VzL3VzZXItaW5pdGlhdGVkLXBvc3QucHk6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMvcG9zdC5weS4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxv
YWQtdXJsLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9h
ZC11cmwuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2Vy
LWF0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Vz
ZXItYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWw6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRy
aWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9h
dHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5j
Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4
cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZs
aWdodC1zeW5jLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sLgorICAgICAgICAq
IGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tc3BlY3VsYXRp
dmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFs
aWRhdGlvbi1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbDogUmVu
YW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJp
YnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sLgorICAgICAgICAqIGh0dHAvdGVz
dHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy11c2VyLWluaXRpYXRlZC1kYXRhLnB5
OiBBZGRlZC4KKwogMjAyMS0wNy0wOCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgog
CiAgICAgICAgIFtJbmRleGVkREJdIEtleVBhdGggdmFsaWRpdHkgY2hlY2tzIHNob3VsZCBoYXBw
ZW4gb24gdGhlIGNsb25lZCB2YWx1ZSwgbm90IHRoZSBvcmlnaW5hbCBvbmUKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlv
bi1sb2FkLXVybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmEwMDI0ODA0NTE1OTlmYjQwOGVkMDBmNDhiZmQ2NzI4ZjI2ZDZkZjYKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0
cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdCBsb2Fk
VVJMIHJlcXVlc3RzIGFyZSBzdWNjZXNmdWxseSBhdHRyaWJ1dGVkIGFzIGFwcCBpbml0aWF0ZWQu
CitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCisK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2Fw
cC1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
MDhjMzc1Mjg2YzNmYjczMTVjODBiYTBlOTJiZjFhYjNhZGNiNmE4YwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1
dGlvbi1sb2FkLXVybC5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8
aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8ZGl2IGlk
PSJkZXNjcmlwdGlvbiI+VGVzdCBsb2FkVVJMIHJlcXVlc3RzIGFyZSBzdWNjZXNmdWxseSBhdHRy
aWJ1dGVkIGFzIGFwcCBpbml0aWF0ZWQuPC9kaXY+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4K
KzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICB9CisKKyAgICBmdW5jdGlvbiBsb2FkVVJMKCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlv
bi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0
cmlidXRpb24tbG9hZC11cmwuaHRtbCI7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworICAgIH0KKwor
ICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7Cisg
ICAgY29uc3Qgc3RhcnRpbmdPcmlnaW4gPSAiaHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBm
dW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2lu
ID09PSBzdGFydGluZ09yaWdpbikgeworICAgICAgICAgICAgbG9hZFVSTCgpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVz
dFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworICAgICAgICAgICAgdmFyIGRp
ZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5p
dGlhdGVkUmVxdWVzdCgpOworCisgICAgICAgICAgICBpZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRl
ZFJlcXVlc3QpIHsKKyAgICAgICAgICAgICAgICBsb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBp
bml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWRpZExvYWRBcHBJbml0aWF0
ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAg
aW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxs
eSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1s
b2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42NTYyNzM5MGZjMGQ1ZmMyMGRlOWYzMzhiNWE2
YmZhZDVmODhkNmU0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSw4IEBACitDT05TT0xFIE1FU1NBR0U6IFBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRl
ZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKK1Bpbmcgc2VudCBzdWNjZXNzZnVsbHkKK0NP
TlRFTlRfVFlQRTogdGV4dC9waW5nCitIVFRQX0hPU1Q6IDEyNy4wLjAuMTo4MDAwCitIVFRQX1BJ
TkdfRlJPTTogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0
cmlidXRpb24tcGluZy1sb2FkLmh0bWwKK0hUVFBfUElOR19UTzogaHR0cDovLzEyNy4wLjAuMTo4
MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmctYXBwLWluaXRpYXRlZC1kYXRhLnB5
CitSRVFVRVNUX01FVEhPRDogUE9TVAorUkVRVUVTVF9VUkk6IC9uYXZpZ2F0aW9uL3Jlc291cmNl
cy9zYXZlLXBpbmcucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi4yMTFhYmY4MzliZGZlMTY3YTI0MGVlZGI0NmQ1ODE4MjY4ZGY1MzVj
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwh
RE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9dHJ1
ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4u
L25hdmlnYXRpb24vcGluZy1hdHRyaWJ1dGUvcmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTaG91bGREb3duZ3JhZGVSZWZlcnJlcihmYWxzZSwgZnVuY3Rpb24gKCkgeyB9KTsKKyAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKHRydWUpOwor
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sK
KyAgICBjbGlja0VsZW1lbnQoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIikpOworfQorCit3
aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkKK3sKKyAgICBjbGVhckxhc3RQaW5nUmVzdWx0QW5k
UnVuVGVzdCh0ZXN0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGltZyBz
cmM9Im5vbi1leGlzdGVudC1pbWFnZS5qcGciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4IiB1c2Vt
YXA9IiNpbWFnZW1hcCI+CisgICAgPG1hcCBuYW1lPSJpbWFnZW1hcCI+CisgICAgICAgIDxhcmVh
IHNoYXBlPSJyZWN0IiBjb29yZHM9IjAsMCwxMjgsMTI4IiBocmVmPSIuLi9uYXZpZ2F0aW9uL3Jl
c291cmNlcy9jaGVjay1waW5nLWFwcC1pbml0aWF0ZWQtZGF0YS5weSIgcGluZz0iLi4vbmF2aWdh
dGlvbi9yZXNvdXJjZXMvc2F2ZS1waW5nLnB5Ij4KKyAgICA8L21hcD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVz
dC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTI0NWUzNDBmMTdkZThlNGYzZTM1OWNjMWI5ZjQx
NDc2NmRlY2YxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorQ09OU09MRSBNRVNTQUdFOiBQQVNTIHN1Y2Nlc3NmdWxseSBsb2Fk
ZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCitUZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVl
c3RzIGdldCBtYXJrZWQgZm9yIFBPU1QgcmVxdWVzdHMuCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBvc3Qt
cmVxdWVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZkNjljYzZkOGQ5
ZDc0YzY2Zjc3N2ZlOWI2MmQ2MDExMzcyZmRmMGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcG9zdC1y
ZXF1ZXN0Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgor
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9q
cy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3RzIGFwcCBp
bml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3IgUE9TVCByZXF1ZXN0cy48L3A+Cis8Zm9y
bSBpZD0idGVzdEZvcm0iIGFjdGlvbj0icmVzb3VyY2VzL2FwcC1pbml0aWF0ZWQtcG9zdC5weSIg
dGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9yZWZlcnJlciIgbWV0aG9kPSJwb3N0Ij4KKzxpbnB1dCB0
eXBlPSJzdWJtaXQiIHZhbHVlPSJUZXN0Ij48L2lucHV0PgorPGZvcm0+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cisg
ICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cyh0cnVlKTsKK30KKworZG9jdW1lbnQuZm9y
bXNbMF0uc3VibWl0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0
aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi45YjVlZWE5NDIyYWQwY2FlZTc2NjdiY2Q0MDZkYjkzZTBhNWU5
ZTJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NBR0U6IFByZWZsaWdodCByZXNwb25zZSBpcyBub3Qg
c3VjY2Vzc2Z1bAorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBo
dHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQt
d2l0aG91dC1ib2R5LnB5IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitUZXN0cyBhcHAg
aW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIGFzeW5jIHByZWZsaWdodHMKKworUEFT
UyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0
cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjBmZGVjOGFjOWNlOGViZDM4MTc2ZTMwZGFlOGM0NTlmMGUzOWE0ZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2Fw
cC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURP
Q1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPXRydWUg
XSAtLT4KKzxwPlRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3IgYXN5
bmMgcHJlZmxpZ2h0czwvcD4KKworPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdl
KQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKK30KKwordmFyIHByZWZs
aWdodExpbmtEb21haW4gPSAibG9jYWxob3N0IjsKK3ZhciBjb250ZXh0SG9zdCA9ICIxMjcuMC4w
LjEiOwordmFyIHVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVz
b3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IgorCitmdW5jdGlvbiBydW5UZXN0KCkK
K3sKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9wZW4oIkdF
VCIsIHVybCwgdHJ1ZSk7CisgICAgcmVxLnNldFJlcXVlc3RIZWFkZXIoIngtd2Via2l0IiwgImZv
byIpOworCisgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGRpZExv
YWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVx
dWVzdCgpOworICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0
UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKGRp
ZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlk
IGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWRpZExvYWRBcHBJbml0
aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBp
bml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgICAgIH0KKworICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5
IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7CisgICAgfQorICAgIHJlcS5zZW5kKG51bGwpOworfQorCitydW5UZXN0KCk7Cis8L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0
LXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwMTZjNTMxZTA2NTlhZGNkZDYzNTU1MjNl
YTFiMGFkMmQ1YTJiMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorQ09OU09MRSBNRVNTQUdFOiBQcmVmbGlnaHQgcmVzcG9u
c2UgaXMgbm90IHN1Y2Nlc3NmdWwKK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fu
bm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9z
dGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgor
VGVzdHMgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBzeW5jIHByZWZsaWdo
dHMKKworUEFTUzogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3JrIGVycm9yIG9jY3VycmVkLgorUEFT
UyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cworCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0
cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBjZDYxNjhiMjI3Y2E1ZGE4YjU0NmZlNmFhZGE2ODg4YTJmYmJmZjUKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAt
YXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZ
UEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPXRydWUgXSAt
LT4KKzxwPlRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3Igc3luYyBw
cmVmbGlnaHRzPC9wPgorCis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworfQorCit2YXIgcHJlZmxpZ2h0
TGlua0RvbWFpbiA9ICJsb2NhbGhvc3QiOwordmFyIGNvbnRleHRIb3N0ID0gIjEyNy4wLjAuMSI7
Cit2YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJj
ZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkiCisKK2Z1bmN0aW9uIHJ1blRlc3QoKQorewor
ICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICByZXEub3BlbigiR0VUIiwg
dXJsLCBmYWxzZSk7CisgICAgcmVxLnNldFJlcXVlc3RIZWFkZXIoIngtd2Via2l0IiwgImZvbyIp
OworCisgICAgdHJ5IHsKKyAgICAgICAgcmVxLnNlbmQobnVsbCk7CisgICAgICAgIGxvZygiUEFT
UzogIiArIHJlcS5yZXNwb25zZVRleHQpOworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgIGxv
ZygiUEFTUzogIiArIGV4KTsKKyAgICAgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0
ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworICAgICAgICB2YXIg
ZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJ
bml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0ZWRS
ZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0
ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoIWRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAg
ICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwor
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAg
ICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVz
dHMiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCitydW5U
ZXN0KCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24t
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYjIxYzJkNTk5NDE0NGU4MTBlMTU3N2VmZmJjZDA5Y2UwNmRmM2RkZAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2Fw
cC1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTQgQEAKKzEyNy4wLjAuMTo4MDAwIC0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlIC0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMgLSBS
ZXNwb25kaW5nIHdpdGggdGVzdFVzZXJuYW1lOnRlc3RQYXNzd29yZAorMTI3LjAuMC4xOjgwMDAg
LSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSBQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyAtIFNpbXVsYXRpbmcgY2FuY2VsbGVkIGF1dGhlbnRp
Y2F0aW9uIHNoZWV0CitUZXN0cyBzcGVjdWxhdGl2ZSByZXZhbGlkYXRpb24gb2YgYXV0aGVudGlj
YXRlZCByZXNvdXJjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAi
UEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHho
ci5zdGF0dXMgaXMgNDAxCitQQVNTIFN1Y2Nlc3NmdWx5IGxvYWRlZC4KK1BBU1Mgc3VjY2Vzc2Z1
bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKK1BBU1Mgc3VjY2Vzc2Z1bGx5
UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRp
dmUtcmV2YWxpZGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uMDQxZjVkNmQxNDYwOGE3ZjAzY2VmNjYwYzM5NzNhNWEwM2UyMDk0OQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2Fw
cC1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbApAQCAtMCwwICsxLDcz
IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlh
dGVkPXRydWUgXSAtLT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1w
cmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBzcGVjdWxhdGl2
ZSByZXZhbGlkYXRpb24gb2YgYXV0aGVudGljYXRlZCByZXNvdXJjZXMuIik7Citqc1Rlc3RJc0Fz
eW5jID0gdHJ1ZTsKKwordGVzdFJ1bm5lci5zZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVu
Z2VzKHRydWUpOwordGVzdFJ1bm5lci5zZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lKCJ0ZXN0VXNl
cm5hbWUiKTsKK3Rlc3RSdW5uZXIuc2V0QXV0aGVudGljYXRpb25QYXNzd29yZCgidGVzdFBhc3N3
b3JkIik7CisKK3N0YXRlID0gIndhcm11cCI7CisKK2Z1bmN0aW9uIGNsZWFyQ3JlZGVudGlhbFN0
b3JhZ2UoKQoreworICAgIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVu
KCJHRVQiLCAicmVzb3VyY2VzL3Jlc291cmNlLXdpdGgtYXV0aC5weT9vdGhlciIsIGZhbHNlLCAi
YmFkVXNlcm5hbWUiLCAiYmFkUGFzc3dvcmQiKTsKKyAgICB4aHIuc2VuZCgpOworICAgIHNob3Vs
ZEJlKCJ4aHIuc3RhdHVzIiwgIjQwMSIpOworfQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Cit9CisKK2Z1bmN0aW9uIGZyYW1l
TG9hZGVkKCkKK3sKKyAgICBpZiAoc3RhdGUgPT0gIndhcm11cCIpIHsKKyAgICAgICAgLy8gTmF2
aWdhdGUgZnJhbWUgdG8gJ2Fib3V0OmJsYW5rJyB0byBmbHVzaCB0byBzdWJyZXNvdXJjZSBsb2Fk
cyBtZXRhZGF0YSB0byBkaXNrLgorICAgICAgICBzdGF0ZSA9ICJmbHVzaGluZ01ldGFkYXRhIjsK
KyAgICAgICAgdGVzdFJ1bm5lci5zZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKGZh
bHNlKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLnNyYyA9
ICJhYm91dDpibGFuayI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHN0YXRlID09
ICJmbHVzaGluZ01ldGFkYXRhIikgeworICAgICAgICBjbGVhckNyZWRlbnRpYWxTdG9yYWdlKCk7
CisKKyAgICAgICAgaW50ZXJuYWxzLmNsZWFyTWVtb3J5Q2FjaGUoKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5zZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKGZhbHNlKTsKKworICAgICAg
ICAvLyBOYXZpZ2F0ZSBmcmFtZSB0byBpdHMgb3JpZ2luYWwgbG9jYXRpb24gYWdhaW4uIFRoaXMg
dGltZSBpdCBzaG91bGQgc3BlY3VsYXRpdmVseQorICAgICAgICAvLyB2YWxpZGF0ZSBzdWJyZXNv
dXJjZXMgYXMgd2UgaGF2ZSBzdWJyZXNvdXJjZSBsb2FkcyBtZXRhZGF0YSBpbiB0aGUgZGlzayBj
YWNoZS4KKyAgICAgICAgc3RhdGUgPSAic3BlY3VsYXRpdmVSZXZhbGlkYXRpb24iOworICAgICAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdEZyYW1lIikuc3JjID0gInJlc291cmNlcy9m
cmFtZS13aXRoLWF1dGhlbnRpY2F0ZWQtcmVzb3VyY2UucHkiOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmIChzdGF0ZSA9PSAic3BlY3VsYXRpdmVSZXZhbGlkYXRpb24iKSB7CisgICAg
ICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWx5IGxvYWRlZC4iKTsKKyAgICAgICAgdmFyIGRpZExv
YWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVx
dWVzdCgpOworICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0
UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKGRp
ZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlk
IGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgZmluaXNoSlNU
ZXN0KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWRp
ZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5v
dCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0
KCk7CisgICAgICAgICAgICByZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBsb2coIlBBU1Mg
c3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKKworICAg
ICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKworPC9zY3Jp
cHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL2ZyYW1lLXdpdGgtYXV0
aGVudGljYXRlZC1yZXNvdXJjZS5weSIgb25sb2FkPSJmcmFtZUxvYWRlZCgpIj48L2lmcmFtZT4K
KzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3Njcmlw
dD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2F0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYTAwMjQ4MDQ1MTU5OWZiNDA4ZWQwMGY0OGJm
ZDY3MjhmMjZkNmRmNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlv
bi1sb2FkLXVybC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRl
c3QgbG9hZFVSTCByZXF1ZXN0cyBhcmUgc3VjY2VzZnVsbHkgYXR0cmlidXRlZCBhcyBhcHAgaW5p
dGlhdGVkLgotUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1
ZXN0cwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDdhZDhlZTVjODdjYzJkMTg1ZWQ3OTdmNWJlZjA3YWQ2OTRlOGMw
NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDggKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+
Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KLTxk
aXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0IGxvYWRVUkwgcmVxdWVzdHMgYXJlIHN1Y2Nlc2Z1bGx5
IGF0dHJpYnV0ZWQgYXMgYXBwIGluaXRpYXRlZC48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwv
cHJlPgotPHNjcmlwdD4KLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVz
dFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGxvYWRVUkwoKSB7Ci0gICAgICAgIGRvY3VtZW50Lmxv
Y2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvYXBwLXByaXZhY3ktcmVwb3J0L2F0
dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwiOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGxvZyhtZXNz
YWdlKSB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKLSAgICB9Ci0K
LSAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwot
ICAgIGNvbnN0IHN0YXJ0aW5nT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7Ci0gICAg
ZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdp
biA9PT0gc3RhcnRpbmdPcmlnaW4pIHsKLSAgICAgICAgICAgIGxvYWRVUkwoKTsKLSAgICAgICAg
fSBlbHNlIHsKLSAgICAgICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRl
c3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKLSAgICAgICAgICAgIHZhciBk
aWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcElu
aXRpYXRlZFJlcXVlc3QoKTsKLQotICAgICAgICAgICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0
ZWRSZXF1ZXN0KSB7Ci0gICAgICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIG5vbiBhcHAg
aW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlh
dGVkUmVxdWVzdCkgewotICAgICAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbm90IGxvYWQgYXBw
IGluaXRpYXRlZCByZXF1ZXN0Iik7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVs
bHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOwotICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9k
eT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwZDYxN2VlOTAwYTQ5MDJi
OTdhNGJlZDZhMzllOTY1NjZjZTQ1NTlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2F0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4
ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkg
YXBwIGluaXRpYXRlZCByZXF1ZXN0cwotUGluZyBzZW50IHN1Y2Nlc3NmdWxseQotQ09OVEVOVF9U
WVBFOiB0ZXh0L3BpbmcKLUhUVFBfSE9TVDogMTI3LjAuMC4xOjgwMDAKLUhUVFBfUElOR19GUk9N
OiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBp
bmctbG9hZC5odG1sCi1IVFRQX1BJTkdfVE86IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0
aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLWFwcC1pbml0aWF0ZWQtZGF0YS5weQotUkVRVUVTVF9N
RVRIT0Q6IFBPU1QKLVJFUVVFU1RfVVJJOiAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2F2ZS1waW5n
LnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sCmRlbGV0ZWQgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAxMTAwY2FlMmM2MmNkYWJkYWE0ZTEwZWMzOWY5YzkwYTg5ZWJlOTk1
Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBpbmctbG9hZC5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRt
bD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4uL25hdmlnYXRpb24vcGluZy1hdHRyaWJ1dGUvcmVz
b3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0
UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKLSAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGREb3duZ3JhZGVSZWZlcnJlcihm
YWxzZSwgZnVuY3Rpb24gKCkgeyB9KTsKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SHlwZXJs
aW5rQXVkaXRpbmdFbmFibGVkKHRydWUpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsKLSAgICBjbGlja0VsZW1lbnQoZG9jdW1lbnQucXVl
cnlTZWxlY3RvcigiaW1nIikpOwotfQotCi13aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkKLXsK
LSAgICBjbGVhckxhc3RQaW5nUmVzdWx0QW5kUnVuVGVzdCh0ZXN0KTsKLX0KLTwvc2NyaXB0Pgot
PC9oZWFkPgotPGJvZHk+Ci0gICAgPGltZyBzcmM9Im5vbi1leGlzdGVudC1pbWFnZS5qcGciIHdp
ZHRoPSIxMjgiIGhlaWdodD0iMTI4IiB1c2VtYXA9IiNpbWFnZW1hcCI+Ci0gICAgPG1hcCBuYW1l
PSJpbWFnZW1hcCI+Ci0gICAgICAgIDxhcmVhIHNoYXBlPSJyZWN0IiBjb29yZHM9IjAsMCwxMjgs
MTI4IiBocmVmPSIuLi9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLWFwcC1pbml0aWF0
ZWQtZGF0YS5weSIgcGluZz0iLi4vbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2F2ZS1waW5nLnB5Ij4K
LSAgICA8L21hcD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRy
aWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlMjQ1ZTM0MGYxN2RlOGU0ZjNlMzU5Y2MxYjlmNDE0NzY2ZGVjZjFjLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogUEFT
UyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cwotVGVzdHMg
YXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBQT1NUIHJlcXVlc3RzLgotCi0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0
dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwKZGVsZXRlZCBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IGFkNzk1NGY3ODAzM2I0ZGU2MDViOTAxYTYwM2Y5YmQzMTllNTEy
ODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcG9zdC1yZXF1
ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwyMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4K
LTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4v
Li4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5
PgotPHA+VGVzdHMgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBQT1NUIHJl
cXVlc3RzLjwvcD4KLTxmb3JtIGlkPSJ0ZXN0Rm9ybSIgYWN0aW9uPSJyZXNvdXJjZXMvcG9zdC5w
eSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9yZWZlcnJlciIgbWV0aG9kPSJwb3N0Ij4KLTxpbnB1
dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJUZXN0Ij48L2lucHV0PgotPGZvcm0+Ci08c2NyaXB0Pgot
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Ci0gICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cyh0cnVlKTsKLX0KLQotZG9jdW1lbnQu
Zm9ybXNbMF0uc3VibWl0KCk7Ci0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRp
b24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDliNWVlYTk0MjJhZDBjYWVlNzY2N2Jj
ZDQwNmRiOTNlMGE1ZTllMmUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmli
dXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYg
KzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBQcmVmbGlnaHQgcmVzcG9uc2UgaXMgbm90IHN1Y2Nl
c3NmdWwKLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhv
dXQtYm9keS5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotVGVzdHMgYXBwIGluaXRp
YXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBhc3luYyBwcmVmbGlnaHRzCi0KLVBBU1Mgc3Vj
Y2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKLQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24t
cHJlZmxpZ2h0LWFzeW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMzkzYjlmM2MyNGRiN2UzMGM5ZjUxZTlmNGQyMjcxNmQ2NjJlOGRiNi4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5
bmMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ2ICswLDAgQEAKLTxwPlRlc3RzIGFwcCBpbml0
aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3IgYXN5bmMgcHJlZmxpZ2h0czwvcD4KLQotPHBy
ZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Ci19Ci0KLWZ1bmN0aW9uIGxvZyhtZXNzYWdlKQotewotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
bWVzc2FnZSArICdcbicpKTsKLX0KLQotdmFyIHByZWZsaWdodExpbmtEb21haW4gPSAibG9jYWxo
b3N0IjsKLXZhciBjb250ZXh0SG9zdCA9ICIxMjcuMC4wLjEiOwotdmFyIHVybCA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91
dC1ib2R5LnB5IgotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICB2YXIgcmVxID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7Ci0gICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgdHJ1ZSk7Ci0gICAgcmVx
LnNldFJlcXVlc3RIZWFkZXIoIngtd2Via2l0IiwgImZvbyIpOwotCi0gICAgcmVxLm9uZXJyb3Ig
PSBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0g
dGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotICAgICAgICB2YXIgZGlk
TG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0
aWF0ZWRSZXF1ZXN0KCk7Ci0KLSAgICAgICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1
ZXN0KSB7Ci0gICAgICAgICAgICBsb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQg
cmVxdWVzdCIpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAg
IH0KLQotICAgICAgICBpZiAoIWRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7Ci0gICAgICAg
ICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwotICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBs
b2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMi
KTsKLSAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfQotICAgIHJlcS5zZW5k
KG51bGwpOwotfQotCi1ydW5UZXN0KCk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1z
eW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggNDAxNmM1MzFlMDY1OWFkY2RkNjM1NTUyM2VhMWIwYWQyZDVhMmIx
Yy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQt
c3luYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw3ICswLDAgQEAKLUNPTlNPTEUg
TUVTU0FHRTogUHJlZmxpZ2h0IHJlc3BvbnNlIGlzIG5vdCBzdWNjZXNzZnVsCi1DT05TT0xFIE1F
U1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkgZHVlIHRv
IGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLVRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0
IG1hcmtlZCBmb3Igc3luYyBwcmVmbGlnaHRzCi0KLVBBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0
d29yayBlcnJvciBvY2N1cnJlZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBp
bml0aWF0ZWQgcmVxdWVzdHMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdo
dC1zeW5jLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGViNTQwOTVhMWZmN2Mw
NDFkMWFiZTU2MDBmYTViY2U1Y2VlZTQzYTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5
ICswLDAgQEAKLTxwPlRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3Ig
c3luYyBwcmVmbGlnaHRzPC9wPgotCi08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOwotfQotCi12YXIgcHJl
ZmxpZ2h0TGlua0RvbWFpbiA9ICJsb2NhbGhvc3QiOwotdmFyIGNvbnRleHRIb3N0ID0gIjEyNy4w
LjAuMSI7Ci12YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkiCi0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KQotewotICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICByZXEub3Blbigi
R0VUIiwgdXJsLCBmYWxzZSk7Ci0gICAgcmVxLnNldFJlcXVlc3RIZWFkZXIoIngtd2Via2l0Iiwg
ImZvbyIpOwotCi0gICAgdHJ5IHsKLSAgICAgICAgcmVxLnNlbmQobnVsbCk7Ci0gICAgICAgIGxv
ZygiUEFTUzogIiArIHJlcS5yZXNwb25zZVRleHQpOwotICAgIH0gY2F0Y2ggKGV4KSB7Ci0gICAg
ICAgIGxvZygiUEFTUzogIiArIGV4KTsKLSAgICAgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRS
ZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotICAgICAg
ICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRO
b25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7Ci0KLSAgICAgICAgaWYgKGRpZExvYWROb25BcHBJbml0
aWF0ZWRSZXF1ZXN0KSB7Ci0gICAgICAgICAgICBsb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBp
bml0aWF0ZWQgcmVxdWVzdCIpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIWRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7
Ci0gICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVz
dCIpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIH0KLQot
ICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQg
cmVxdWVzdHMiKTsKLSAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfQotfQot
Ci1ydW5UZXN0KCk7Ci08L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlv
bi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBiMjFjMmQ1OTk0MTQ0ZTgxMGUxNTc3ZWZmYmNkMDlj
ZTA2ZGYzZGRkLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXNw
ZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwx
NCArMCwwIEBACi0xMjcuMC4wLjE6ODAwMCAtIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSAtIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljIC0gUmVz
cG9uZGluZyB3aXRoIHRlc3RVc2VybmFtZTp0ZXN0UGFzc3dvcmQKLTEyNy4wLjAuMTo4MDAwIC0g
ZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIC0gUHJvdGVjdGlvblNwYWNlQXV0aGVu
dGljYXRpb25TY2hlbWVIVFRQQmFzaWMgLSBTaW11bGF0aW5nIGNhbmNlbGxlZCBhdXRoZW50aWNh
dGlvbiBzaGVldAotVGVzdHMgc3BlY3VsYXRpdmUgcmV2YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0
ZWQgcmVzb3VyY2VzLgotCi1PbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBB
U1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyB4aHIu
c3RhdHVzIGlzIDQwMQotUEFTUyBTdWNjZXNzZnVseSBsb2FkZWQuCi1QQVNTIHN1Y2Nlc3NmdWxs
eSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCi1QQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExFVEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2
YWxpZGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbApkZWxldGVkIGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggYWI3NWQ2ZmYxYmU4OWExN2ZiYWRlYWVmYWM5NzQwMDBkYzllODVk
MC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2
ZS1yZXZhbGlkYXRpb24uaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDcyICswLDAgQEAKLTxzY3Jp
cHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBzcGVjdWxhdGl2ZSByZXZhbGlkYXRpb24gb2YgYXV0
aGVudGljYXRlZCByZXNvdXJjZXMuIik7Ci1qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdGVzdFJ1
bm5lci5zZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKHRydWUpOwotdGVzdFJ1bm5l
ci5zZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lKCJ0ZXN0VXNlcm5hbWUiKTsKLXRlc3RSdW5uZXIu
c2V0QXV0aGVudGljYXRpb25QYXNzd29yZCgidGVzdFBhc3N3b3JkIik7Ci0KLXN0YXRlID0gIndh
cm11cCI7Ci0KLWZ1bmN0aW9uIGNsZWFyQ3JlZGVudGlhbFN0b3JhZ2UoKQotewotICAgIHhociA9
IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL3Jl
c291cmNlLXdpdGgtYXV0aC5weT9vdGhlciIsIGZhbHNlLCAiYmFkVXNlcm5hbWUiLCAiYmFkUGFz
c3dvcmQiKTsKLSAgICB4aHIuc2VuZCgpOwotICAgIHNob3VsZEJlKCJ4aHIuc3RhdHVzIiwgIjQw
MSIpOwotfQotCi1mdW5jdGlvbiBsb2cobWVzc2FnZSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1l
c3NhZ2UgKyAnXG4nKSk7Ci19Ci0KLWZ1bmN0aW9uIGZyYW1lTG9hZGVkKCkKLXsKLSAgICBpZiAo
c3RhdGUgPT0gIndhcm11cCIpIHsKLSAgICAgICAgLy8gTmF2aWdhdGUgZnJhbWUgdG8gJ2Fib3V0
OmJsYW5rJyB0byBmbHVzaCB0byBzdWJyZXNvdXJjZSBsb2FkcyBtZXRhZGF0YSB0byBkaXNrLgot
ICAgICAgICBzdGF0ZSA9ICJmbHVzaGluZ01ldGFkYXRhIjsKLSAgICAgICAgdGVzdFJ1bm5lci5z
ZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKGZhbHNlKTsKLSAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLnNyYyA9ICJhYm91dDpibGFuayI7Ci0gICAg
ICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYgKHN0YXRlID09ICJmbHVzaGluZ01ldGFkYXRhIikg
ewotICAgICAgICBjbGVhckNyZWRlbnRpYWxTdG9yYWdlKCk7Ci0KLSAgICAgICAgaW50ZXJuYWxz
LmNsZWFyTWVtb3J5Q2FjaGUoKTsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRIYW5kbGVzQXV0aGVu
dGljYXRpb25DaGFsbGVuZ2VzKGZhbHNlKTsKLQotICAgICAgICAvLyBOYXZpZ2F0ZSBmcmFtZSB0
byBpdHMgb3JpZ2luYWwgbG9jYXRpb24gYWdhaW4uIFRoaXMgdGltZSBpdCBzaG91bGQgc3BlY3Vs
YXRpdmVseQotICAgICAgICAvLyB2YWxpZGF0ZSBzdWJyZXNvdXJjZXMgYXMgd2UgaGF2ZSBzdWJy
ZXNvdXJjZSBsb2FkcyBtZXRhZGF0YSBpbiB0aGUgZGlzayBjYWNoZS4KLSAgICAgICAgc3RhdGUg
PSAic3BlY3VsYXRpdmVSZXZhbGlkYXRpb24iOwotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGVzdEZyYW1lIikuc3JjID0gInJlc291cmNlcy9mcmFtZS13aXRoLWF1dGhlbnRpY2F0
ZWQtcmVzb3VyY2UucHkiOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChzdGF0ZSA9
PSAic3BlY3VsYXRpdmVSZXZhbGlkYXRpb24iKSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nl
c3NmdWx5IGxvYWRlZC4iKTsKLSAgICAgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0
ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotICAgICAgICB2YXIg
ZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJ
bml0aWF0ZWRSZXF1ZXN0KCk7Ci0KLSAgICAgICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0ZWRS
ZXF1ZXN0KSB7Ci0gICAgICAgICAgICBsb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0
ZWQgcmVxdWVzdCIpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIWRpZExvYWRBcHBJbml0aWF0ZWRSZXF1
ZXN0KSB7Ci0gICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQg
cmVxdWVzdCIpOwotICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICByZXR1
cm47Ci0gICAgICAgIH0KLQotICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBv
bmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKLQotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsK
LSAgICAgICAgcmV0dXJuOwotICAgIH0KLX0KLQotPC9zY3JpcHQ+Ci08aWZyYW1lIGlkPSJ0ZXN0
RnJhbWUiIHNyYz0icmVzb3VyY2VzL2ZyYW1lLXdpdGgtYXV0aGVudGljYXRlZC1yZXNvdXJjZS5w
eSIgb25sb2FkPSJmcmFtZUxvYWRlZCgpIj48L2lmcmFtZT4KLTxzY3JpcHQgc3JjPSIvanMtdGVz
dC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy9hcHAtaW5pdGlh
dGVkLXBvc3QucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9y
ZXNvdXJjZXMvYXBwLWluaXRpYXRlZC1wb3N0LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQwNmZlZWUyMTJjNzAx
Y2Y2MmQ5ZDgzMGRmZjJiNWI4NzYxYjkzOWYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMvYXBwLWluaXRpYXRlZC1w
b3N0LnB5CkBAIC0wLDAgKzEsMjcgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKworaW1wb3J0
IG9zCitpbXBvcnQgc3lzCisKK3JlZmVyZXIgPSBvcy5lbnZpcm9uLmdldCgnSFRUUF9SRUZFUkVS
JywgJycpCisKK3N5cy5zdGRvdXQud3JpdGUoCisgICAgJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1s
XHJcblxyXG4nCisgICAgJzxwPlJlZmVycmVyOiB7cmVmZXJlcn08L3A+XG4nCisgICAgJzxzY3Jp
cHQ+XG4nCisgICAgJ2lmICh3aW5kb3cudGVzdFJ1bm5lcikge3tcbicKKyAgICAnICAgIHZhciBk
aWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRl
ZFJlcXVlc3QoKTtcbicKKyAgICAnICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVz
dCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTtcbicKKyAgICAn
ICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkge3tcbicKKyAgICAnICAgICAg
ICBjb25zb2xlLmxvZygiRkFJTCBkaWQgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7
XG4nCisgICAgJyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCisgICAgJyAgICB9
fVxuJworICAgICcgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkge3tcbicKKyAg
ICAnICAgICAgICAgY29uc29sZS5sb2coIkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQg
cmVxdWVzdCIpO1xuJworICAgICcgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJwor
ICAgICcgICAgIH19XG4nCisgICAgJyAgICBjb25zb2xlLmxvZygiUEFTUyBzdWNjZXNzZnVsbHkg
bG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpO1xuJworICAgICcgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7XG4nCisgICAgJ319XG4nCisgICAgJzwvc2NyaXB0PlxuJy5mb3Jt
YXQocmVmZXJlcj1yZWZlcmVyKQorKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL3Bvc3QucHkgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMvcG9zdC5weQpkZWxldGVkIGZpbGUg
bW9kZSAxMDA3NTUKaW5kZXggZDA2ZmVlZTIxMmM3MDFjZjYyZDlkODMwZGZmMmI1Yjg3NjFiOTM5
Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMvcG9zdC5weQorKysg
L2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAKLSMhL3Vzci9iaW4vZW52IHB5dGhvbjMKLQotaW1w
b3J0IG9zCi1pbXBvcnQgc3lzCi0KLXJlZmVyZXIgPSBvcy5lbnZpcm9uLmdldCgnSFRUUF9SRUZF
UkVSJywgJycpCi0KLXN5cy5zdGRvdXQud3JpdGUoCi0gICAgJ0NvbnRlbnQtVHlwZTogdGV4dC9o
dG1sXHJcblxyXG4nCi0gICAgJzxwPlJlZmVycmVyOiB7cmVmZXJlcn08L3A+XG4nCi0gICAgJzxz
Y3JpcHQ+XG4nCi0gICAgJ2lmICh3aW5kb3cudGVzdFJ1bm5lcikge3tcbicKLSAgICAnICAgIHZh
ciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRp
YXRlZFJlcXVlc3QoKTtcbicKLSAgICAnICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVx
dWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTtcbicKLSAg
ICAnICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkge3tcbicKLSAgICAnICAg
ICAgICBjb25zb2xlLmxvZygiRkFJTCBkaWQgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0
Iik7XG4nCi0gICAgJyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCi0gICAgJyAg
ICB9fVxuJwotICAgICcgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkge3tcbicK
LSAgICAnICAgICAgICAgY29uc29sZS5sb2coIkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0
ZWQgcmVxdWVzdCIpO1xuJwotICAgICcgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xu
JwotICAgICcgICAgIH19XG4nCi0gICAgJyAgICBjb25zb2xlLmxvZygiUEFTUyBzdWNjZXNzZnVs
bHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpO1xuJwotICAgICcgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCi0gICAgJ319XG4nCi0gICAgJzwvc2NyaXB0PlxuJy5m
b3JtYXQocmVmZXJlcj1yZWZlcmVyKQotKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL3VzZXItaW5pdGlhdGVkLXBvc3QucHkg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMvdXNl
ci1pbml0aWF0ZWQtcG9zdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43MmNjMmUxMzljYzQ2NGEyNWI2Y2ZhMTFk
OTQzYjFlY2IyYWRlNGNlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL3VzZXItaW5pdGlhdGVkLXBvc3QucHkKQEAg
LTAsMCArMSwyNyBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworCitpbXBvcnQgb3MKK2ltcG9y
dCBzeXMKKworcmVmZXJlciA9IG9zLmVudmlyb24uZ2V0KCdIVFRQX1JFRkVSRVInLCAnJykKKwor
c3lzLnN0ZG91dC53cml0ZSgKKyAgICAnQ29udGVudC1UeXBlOiB0ZXh0L2h0bWxcclxuXHJcbicK
KyAgICAnPHA+UmVmZXJyZXI6IHtyZWZlcmVyfTwvcD5cbicKKyAgICAnPHNjcmlwdD5cbicKKyAg
ICAnaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7e1xuJworICAgICcgICAgdmFyIGRpZExvYWRBcHBJ
bml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgp
O1xuJworICAgICcgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1
bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpO1xuJworICAgICcgICAgaWYgKGRp
ZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7e1xuJworICAgICcgICAgICAgIGNvbnNvbGUubG9n
KCJGQUlMIGRpZCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpO1xuJworICAgICcgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAgICcgICAgfX1cbicKKyAgICAnICAgIGlm
ICghZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHt7XG4nCisgICAgJyAgICAgICAgIGNv
bnNvbGUubG9nKCJGQUlMIGRpZCBub3QgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7
XG4nCisgICAgJyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCisgICAgJyAgICAg
fX1cbicKKyAgICAnICAgIGNvbnNvbGUubG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25s
eSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpO1xuJworICAgICcgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7XG4nCisgICAgJ319XG4nCisgICAgJzwvc2NyaXB0PlxuJy5mb3JtYXQocmVm
ZXJlcj1yZWZlcmVyKQorKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LWxvYWQtdXJsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNmNkYWNlMjZhMjBlZWUwOWRkMTRj
NDVhMzhkMWMxY2E1NDVjMzRiCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSwzIEBACitUZXN0IGxvYWRVUkwgcmVxdWVzdHMgYXJlIHN1Y2Nlc2Z1
bGx5IGF0dHJpYnV0ZWQgYXMgbm9uIGFwcCBpbml0aWF0ZWQuCitQQVNTIHN1Y2Nlc3NmdWxseSBs
b2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cworCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxv
YWQtdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91
c2VyLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjMxMjllYWUzODMwNTMz
NDUzYmMwZTM0YWE4ZDcwNGM3MDZlZGMxYwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tbG9hZC11cmwu
aHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGlzQXBwSW5pdGlhdGVkPWZhbHNlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxz
Y3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBv
bmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9u
Ij5UZXN0IGxvYWRVUkwgcmVxdWVzdHMgYXJlIHN1Y2Nlc2Z1bGx5IGF0dHJpYnV0ZWQgYXMgbm9u
IGFwcCBpbml0aWF0ZWQuPC9kaXY+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+
CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBsb2FkVVJMKCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0g
ZGVzdGluYXRpb25PcmlnaW4gKyAiL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LWxvYWQtdXJsLmh0bWwiOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Cisg
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9j
dW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKKyAgICB9CisKKyAgICBjb25z
dCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0
IHN0YXJ0aW5nT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gc3Rh
cnRpbmdPcmlnaW4pIHsKKyAgICAgICAgICAgIGxvYWRVUkwoKTsKKyAgICAgICAgfSBlbHNlIHsK
KyAgICAgICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIu
ZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKyAgICAgICAgICAgIHZhciBkaWRMb2FkTm9u
QXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJl
cXVlc3QoKTsKKworICAgICAgICAgICAgaWYgKGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7
CisgICAgICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVz
dCIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAg
ICAgfQorCisgICAgICAgICAgICBpZiAoIWRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7
CisgICAgICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBub24gYXBwIGluaXRpYXRl
ZCByZXF1ZXN0Iik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cisg
ICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVk
IG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmctbG9h
ZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODViZDk0ZWIzYTM0MjNlZWE4Yzg4OWJiY2JmM2Ni
NDc1YzZjNTE4MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcGluZy1sb2FkLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDggQEAKK0NPTlNPTEUgTUVTU0FHRTogUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVk
IG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKK1Bpbmcgc2VudCBzdWNjZXNzZnVsbHkK
K0NPTlRFTlRfVFlQRTogdGV4dC9waW5nCitIVFRQX0hPU1Q6IDEyNy4wLjAuMTo4MDAwCitIVFRQ
X1BJTkdfRlJPTTogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FwcC1wcml2YWN5LXJlcG9ydC91c2Vy
LWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sCitIVFRQX1BJTkdfVE86IGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLXVzZXItaW5pdGlhdGVkLWRh
dGEucHkKK1JFUVVFU1RfTUVUSE9EOiBQT1NUCitSRVFVRVNUX1VSSTogL25hdmlnYXRpb24vcmVz
b3VyY2VzL3NhdmUtcGluZy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcGlu
Zy1sb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMzZmEyMzVjODAxODY1NTNjYjYyMmM3MTY1NTAxZmEw
M2ZmYjU2YQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKQEAgLTAsMCArMSwz
MSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRp
YXRlZD1mYWxzZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uL25hdmlnYXRpb24vcGluZy1hdHRyaWJ1dGUvcmVzb3VyY2VzL3V0aWxpdGllcy5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5p
bnRlcm5hbHMpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVy
LnNldFN0YXRpc3RpY3NTaG91bGREb3duZ3JhZGVSZWZlcnJlcihmYWxzZSwgZnVuY3Rpb24gKCkg
eyB9KTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVk
KHRydWUpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiB0
ZXN0KCkKK3sKKyAgICBjbGlja0VsZW1lbnQoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIikp
OworfQorCit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkKK3sKKyAgICBjbGVhckxhc3RQaW5n
UmVzdWx0QW5kUnVuVGVzdCh0ZXN0KTsKK30KKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cisg
ICAgPGltZyBzcmM9Im5vbi1leGlzdGVudC1pbWFnZS5qcGciIHdpZHRoPSIxMjgiIGhlaWdodD0i
MTI4IiB1c2VtYXA9IiNpbWFnZW1hcCI+CisgICAgPG1hcCBuYW1lPSJpbWFnZW1hcCI+CisgICAg
ICAgIDxhcmVhIHNoYXBlPSJyZWN0IiBjb29yZHM9IjAsMCwxMjgsMTI4IiBocmVmPSIuLi9uYXZp
Z2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLXVzZXItaW5pdGlhdGVkLWRhdGEucHkiIHBpbmc9
Ii4uL25hdmlnYXRpb24vcmVzb3VyY2VzL3NhdmUtcGluZy5weSI+CisgICAgPC9tYXA+Cis8L2Jv
ZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDBjOTgyN2Q2Mjg4MTBlMDMx
Njc0MjE3MDZkM2RkZGVkNWUwYzQzYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0NPTlNPTEUgTUVTU0FHRTogUEFTUyBzdWNj
ZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKK1Rlc3RzIG5v
biBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIFBPU1QgcmVxdWVzdHMuCisK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
dXNlci1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uYjNiNDU0M2I0ZjdhZWE1NDQ3N2JlZmE0NmFjMTE3ZTUwODVmNTY1NQotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFE
T0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD1mYWxz
ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQg
c3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFk
PgorPGJvZHk+Cis8cD5UZXN0cyBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2Vk
IGZvciBQT1NUIHJlcXVlc3RzLjwvcD4KKzxmb3JtIGlkPSJ0ZXN0Rm9ybSIgYWN0aW9uPSJyZXNv
dXJjZXMvdXNlci1pbml0aWF0ZWQtcG9zdC5weSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9yZWZl
cnJlciIgbWV0aG9kPSJwb3N0Ij4KKzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJUZXN0Ij48
L2lucHV0PgorPGZvcm0+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2lu
ZG93cyh0cnVlKTsKK30KKworZG9jdW1lbnQuZm9ybXNbMF0uc3VibWl0KCk7CisKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1h
dHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3OTZi
YjgyNjUzMjM2NjNlNjM3OWJmYmNiOTU1ZGE2MGIxZjk2YzAKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1F
U1NBR0U6IFByZWZsaWdodCByZXNwb25zZSBpcyBub3Qgc3VjY2Vzc2Z1bAorQ09OU09MRSBNRVNT
QUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1s
aHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IGR1ZSB0byBh
Y2Nlc3MgY29udHJvbCBjaGVja3MuCitUZXN0cyBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBn
ZXQgbWFya2VkIGZvciBhc3luYyBwcmVmbGlnaHRzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRl
ZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCisKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxp
Z2h0LWFzeW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MWMy
ZjdjN2FmNGI1MWIzNWI4YTgwZTBmMzdjZDgxODgxZDAzODgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LXByZWZsaWdodC1hc3luYy5odG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPjwh
LS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzxwPlRl
c3RzIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIGFzeW5jIHByZWZs
aWdodHM8L3A+CisKKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Cit9CisKK3ZhciBwcmVmbGlnaHRMaW5r
RG9tYWluID0gImxvY2FsaG9zdCI7Cit2YXIgY29udGV4dEhvc3QgPSAiMTI3LjAuMC4xIjsKK3Zh
ciB1cmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9z
dGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSIKKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAg
dmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmws
IHRydWUpOworICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKKwor
ICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHZhciBkaWRMb2FkQXBwSW5p
dGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsK
KyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5k
aWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAgIGlmIChkaWRMb2FkQXBw
SW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIGFwcCBp
bml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0
KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVk
IHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAg
ICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBw
IGluaXRpYXRlZCByZXF1ZXN0cyIpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICB9CisgICAgcmVxLnNlbmQobnVsbCk7Cit9CisKK3J1blRlc3QoKTsKKzwvc2NyaXB0Pgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNl
ci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1z
eW5jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi41ZGExMDM5YTc5YzVlN2ZkMzQwNzRkMWFiYzdk
NGI4ZDI3Mzc0MDcyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw3IEBACitDT05TT0xFIE1FU1NBR0U6IFByZWZsaWdodCByZXNwb25z
ZSBpcyBub3Qgc3VjY2Vzc2Z1bAorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5u
b3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0
YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitU
ZXN0cyBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBzeW5jIHByZWZs
aWdodHMKKworUEFTUzogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3JrIGVycm9yIG9jY3VycmVkLgor
UEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
dXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjlhNzA2MzIwMzEyZjUzYjk4ZjEyNGE2ZTk0ZDFjNmYxYWE1ZDQ0NzcK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWwKQEAgLTAsMCArMSw1MCBA
QAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRl
ZD1mYWxzZSBdIC0tPgorPHA+VGVzdHMgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1h
cmtlZCBmb3Igc3luYyBwcmVmbGlnaHRzPC9wPgorCis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4K
KzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24g
bG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworfQor
Cit2YXIgcHJlZmxpZ2h0TGlua0RvbWFpbiA9ICJsb2NhbGhvc3QiOwordmFyIGNvbnRleHRIb3N0
ID0gIjEyNy4wLjAuMSI7Cit2YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRw
cmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkiCisKK2Z1bmN0aW9u
IHJ1blRlc3QoKQoreworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICBy
ZXEub3BlbigiR0VUIiwgdXJsLCBmYWxzZSk7CisgICAgcmVxLnNldFJlcXVlc3RIZWFkZXIoIngt
d2Via2l0IiwgImZvbyIpOworCisgICAgdHJ5IHsKKyAgICAgICAgcmVxLnNlbmQobnVsbCk7Cisg
ICAgICAgIGxvZygiUEFTUzogIiArIHJlcS5yZXNwb25zZVRleHQpOworICAgIH0gY2F0Y2ggKGV4
KSB7CisgICAgICAgIGxvZygiUEFTUzogIiArIGV4KTsKKyAgICAgICAgdmFyIGRpZExvYWRBcHBJ
bml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgp
OworICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVy
LmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKGRpZExvYWRB
cHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIGxvYWQgYXBw
IGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVl
c3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbm90IGxvYWQgbm9uIGFwcCBpbml0aWF0
ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ICAgIH0KKworICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBh
cHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgIH0KK30KKworcnVuVGVzdCgpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1
bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRh
dGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWZkOWY2NjE5N2Y0ZGFiOWYyOTNhMDNmNDI4
YmFkZGM4ZjI2YzJiMQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisxMjcuMC4wLjE6ODAwMCAtIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAtIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lSFRUUEJhc2ljIC0gUmVzcG9uZGluZyB3aXRoIHRlc3RVc2VybmFtZTp0ZXN0UGFz
c3dvcmQKKzEyNy4wLjAuMTo4MDAwIC0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
IC0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMgLSBTaW11bGF0
aW5nIGNhbmNlbGxlZCBhdXRoZW50aWNhdGlvbiBzaGVldAorVGVzdHMgc3BlY3VsYXRpdmUgcmV2
YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0ZWQgcmVzb3VyY2VzLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyB4aHIuc3RhdHVzIGlzIDQwMQorUEFTUyBTdWNjZXNzZnVseSBs
b2FkZWQuCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCBy
ZXF1ZXN0cworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L3VzZXItYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1
bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyMWY4YjlhNmQ1NWU4ZmI2ZDc0
Y2JhN2JiZjMzMDkzODU1NTI1OTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJl
dmFsaWRhdGlvbi5odG1sCkBAIC0wLDAgKzEsNzAgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUZXN0cyBzcGVjdWxhdGl2ZSByZXZhbGlkYXRpb24gb2YgYXV0aGVudGlj
YXRlZCByZXNvdXJjZXMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordGVzdFJ1bm5lci5z
ZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKHRydWUpOwordGVzdFJ1bm5lci5zZXRB
dXRoZW50aWNhdGlvblVzZXJuYW1lKCJ0ZXN0VXNlcm5hbWUiKTsKK3Rlc3RSdW5uZXIuc2V0QXV0
aGVudGljYXRpb25QYXNzd29yZCgidGVzdFBhc3N3b3JkIik7CisKK3N0YXRlID0gIndhcm11cCI7
CisKK2Z1bmN0aW9uIGNsZWFyQ3JlZGVudGlhbFN0b3JhZ2UoKQoreworICAgIHhociA9IG5ldyBY
TUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL3Jlc291cmNl
LXdpdGgtYXV0aC5weT9vdGhlciIsIGZhbHNlLCAiYmFkVXNlcm5hbWUiLCAiYmFkUGFzc3dvcmQi
KTsKKyAgICB4aHIuc2VuZCgpOworICAgIHNob3VsZEJlKCJ4aHIuc3RhdHVzIiwgIjQwMSIpOwor
fQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2Ug
KyAnXG4nKSk7Cit9CisKK2Z1bmN0aW9uIGZyYW1lTG9hZGVkKCkKK3sKKyAgICBpZiAoc3RhdGUg
PT0gIndhcm11cCIpIHsKKyAgICAgICAgLy8gTmF2aWdhdGUgZnJhbWUgdG8gJ2Fib3V0OmJsYW5r
JyB0byBmbHVzaCB0byBzdWJyZXNvdXJjZSBsb2FkcyBtZXRhZGF0YSB0byBkaXNrLgorICAgICAg
ICBzdGF0ZSA9ICJmbHVzaGluZ01ldGFkYXRhIjsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRIYW5k
bGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKGZhbHNlKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLnNyYyA9ICJhYm91dDpibGFuayI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgaWYgKHN0YXRlID09ICJmbHVzaGluZ01ldGFkYXRhIikgeworICAg
ICAgICBjbGVhckNyZWRlbnRpYWxTdG9yYWdlKCk7CisKKyAgICAgICAgaW50ZXJuYWxzLmNsZWFy
TWVtb3J5Q2FjaGUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRIYW5kbGVzQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VzKGZhbHNlKTsKKworICAgICAgICAvLyBOYXZpZ2F0ZSBmcmFtZSB0byBpdHMg
b3JpZ2luYWwgbG9jYXRpb24gYWdhaW4uIFRoaXMgdGltZSBpdCBzaG91bGQgc3BlY3VsYXRpdmVs
eQorICAgICAgICAvLyB2YWxpZGF0ZSBzdWJyZXNvdXJjZXMgYXMgd2UgaGF2ZSBzdWJyZXNvdXJj
ZSBsb2FkcyBtZXRhZGF0YSBpbiB0aGUgZGlzayBjYWNoZS4KKyAgICAgICAgc3RhdGUgPSAic3Bl
Y3VsYXRpdmVSZXZhbGlkYXRpb24iOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdEZyYW1lIikuc3JjID0gInJlc291cmNlcy9mcmFtZS13aXRoLWF1dGhlbnRpY2F0ZWQtcmVz
b3VyY2UucHkiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChzdGF0ZSA9PSAic3Bl
Y3VsYXRpdmVSZXZhbGlkYXRpb24iKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWx5
IGxvYWRlZC4iKTsKKyAgICAgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVz
dFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworICAgICAgICB2YXIgZGlkTG9h
ZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0
ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7
CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7
CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICgh
ZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBk
aWQgbm90IGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5
IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7CisgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICByZXR1cm47CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxpZnJh
bWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNvdXJjZXMvZnJhbWUtd2l0aC1hdXRoZW50aWNhdGVk
LXJlc291cmNlLnB5IiBvbmxvYWQ9ImZyYW1lTG9hZGVkKCkiPjwvaWZyYW1lPgorPHNjcmlwdCBz
cmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1w
aW5nLXVzZXItaW5pdGlhdGVkLWRhdGEucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmln
YXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmctdXNlci1pbml0aWF0ZWQtZGF0YS5weQpuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi5lZDA3YmYwNzIwMGMxNzdiN2Y5Y2I2NmJhYjdiMTA1Y2QyOGI5YTA2Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVj
ay1waW5nLXVzZXItaW5pdGlhdGVkLWRhdGEucHkKQEAgLTAsMCArMSw0NCBAQAorIyEvdXNyL2Jp
bi9lbnYgcHl0aG9uMworCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKK2ltcG9ydCB0aW1lCitmcm9t
IHBpbmdfZmlsZV9wYXRoIGltcG9ydCBwaW5nX2ZpbGVwYXRoCisKK3N5cy5zdGRvdXQud3JpdGUo
J0NvbnRlbnQtVHlwZTogdGV4dC9odG1sXHJcblxyXG4nKQorCit3aGlsZSBub3Qgb3MucGF0aC5p
c2ZpbGUocGluZ19maWxlcGF0aCk6CisgICAgdGltZS5zbGVlcCgwLjAxKQorCitzeXMuc3Rkb3V0
LndyaXRlKAorICAgICc8aHRtbD48Ym9keT5cbicKKyAgICAnUGluZyBzZW50IHN1Y2Nlc3NmdWxs
eScKKykKKworcGluZ19maWxlID0gb3BlbihwaW5nX2ZpbGVwYXRoLCAncicpCitmb3IgbGluZSBp
biBwaW5nX2ZpbGUucmVhZGxpbmVzKCk6CisgICAgc3lzLnN0ZG91dC53cml0ZSgnPGJyPnt9Jy5m
b3JtYXQobGluZS5zdHJpcCgpKSkKKworcGluZ19maWxlLmNsb3NlKCkKK2lmIG9zLnBhdGguaXNm
aWxlKHBpbmdfZmlsZXBhdGgpOgorICAgIG9zLnJlbW92ZShwaW5nX2ZpbGVwYXRoKQorCitzeXMu
c3Rkb3V0LndyaXRlKAorICAgICc8c2NyaXB0PicKKyAgICAnaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7e1xuJworICAgICcgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1
bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpO1xuJworICAgICcgICAgdmFyIGRpZExv
YWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlh
dGVkUmVxdWVzdCgpO1xuJworICAgICcgICAgaWYgKGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0
KSB7e1xuJworICAgICcgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMIGRpZCBsb2FkIGFwcCBpbml0
aWF0ZWQgcmVxdWVzdCIpO1xuJworICAgICcgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
O1xuJworICAgICcgICAgfX1cbicKKyAgICAnICAgIGlmICghZGlkTG9hZE5vbkFwcEluaXRpYXRl
ZFJlcXVlc3QpIHt7XG4nCisgICAgJyAgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMIGRpZCBub3Qg
bG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7XG4nCisgICAgJyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7XG4nCisgICAgJyAgICAgfX1cbicKKyAgICAnICAgIGNvbnNvbGUu
bG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1
ZXN0cyIpO1xuJworICAgICcgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCisgICAgJ319
XG4nCisgICAgJzwvc2NyaXB0PicKKyAgICAnPC9ib2R5PjwvaHRtbD4nCispCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433223</attachid>
            <date>2021-07-09 10:32:17 -0700</date>
            <delta_ts>2021-07-09 14:59:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227825-20210709103216.patch</filename>
            <type>text/plain</type>
            <size>68468</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM1NGIxNmM0ZTVhYjNlNTE5
NzgzYWQzNTI3NTVhOWZiNGY3MWM0NGQuLjZkNGU4YTAyNGI1OWM4NmNlZjQxNzBkNDE0NDIyNmU1
NGYxNTIwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjEtMDctMDggIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgbGF5b3V0
IHRlc3RzIHRvIHNwZWNpZnkgYXBwIGluaXRpYXRlZCBsb2FkcyBvciBub3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgyNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODAzNTU1ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1h
dHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJl
cXVlc3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0
dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0
cmlidXRpb24tcGluZy1sb2FkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJl
ZmxpZ2h0LWFzeW5jLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxh
dGl2ZS1yZXZhbGlkYXRpb24uaHRtbAorCisgICAgICAgIEFkZCBhIHBhcmFtZXRlciB0byB0aGUg
V2ViVmlldyBjb25maWd1cmF0aW9uIHRoYXQgYWxsb3dzIGEgdGVzdCB0bworICAgICAgICBvdmVy
cmlkZSB0aGUgZGVmYXVsdCBOU1VSTFJlcXVlc3QgYXR0cmlidXRpb24gdmFsdWUuIFdlIGRvbid0
IG5lZWQKKyAgICAgICAgdGhpcyB0byBiZSBkeW5hbWljIHBlci10ZXN0LCBzbyB3ZSBjYW4gc3Rv
cmUgaXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SVBhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246
OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OmFwcEluaXRpYXRlZE92ZXJy
aWRlVmFsdWVGb3JUZXN0aW5nIGNvbnN0KToKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRp
b246OnNldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgt
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3NldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JU
ZXN0aW5nOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9hcHBJbml0aWF0
ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZ10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6c2V0TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOgorCiAyMDIxLTA3LTA4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFt3YXRjaE9TXSBU
YXBwaW5nICJEb25lIiBpbiBTY3JpYmJsZSB3aGVuIGZvY3VzaW5nIGFuIGVkaXRhYmxlIGVsZW1l
bnQgc2hvdWxkIGRpc21pc3MgUXVpY2tib2FyZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggYTJmMWFjNTUwY2JiNjE2
NDdhNzg4OGQ3OWU3NDA2MzE5ODBmYTM5Ni4uOGQ3NjY0YjlkZDhkNzFlOGQ4ZjUwOWFiYTAxNWEy
Y2FiZjljOTMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBh
Z2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
UGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC05Niw2ICs5Niw3IEBAIFJlZjxQYWdlQ29uZmlndXJh
dGlvbj4gUGFnZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAogCiAgICAgY29weS0+bV9tZWRp
YUNhcHR1cmVFbmFibGVkID0gdGhpcy0+bV9tZWRpYUNhcHR1cmVFbmFibGVkOwogICAgIGNvcHkt
Pm1faHR0cHNVcGdyYWRlRW5hYmxlZCA9IHRoaXMtPm1faHR0cHNVcGdyYWRlRW5hYmxlZDsKKyAg
ICBjb3B5LT5tX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nID0gdGhpcy0+bV9h
cHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZzsKIAogICAgIHJldHVybiBjb3B5Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaAppbmRleCBkMzNiNzZmY2FlYzc1OGY5NjJkMmUwMDVjYjI1YmZkYmZlMmQxM2YyLi42ZGQw
ZGM4Zjg4YmMxZGFiYTI3ZDY4ODhhMDIyYzIzODMwZDM0M2RmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMTcwLDYgKzE3
MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKFdU
Rjo6U3RyaW5nJiYgaWRlbnRpZmllcikgeyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyID0g
V1RGTW92ZShpZGVudGlmaWVyKTsgfQogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBhdHRyaWJ1dGVk
QnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50
aWZpZXI7IH0KIAorICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gYXBwSW5pdGlhdGVkT3ZlcnJpZGVW
YWx1ZUZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFs
dWVGb3JUZXN0aW5nOyB9CisgICAgdm9pZCBzZXRBcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9y
VGVzdGluZyhzdGQ6Om9wdGlvbmFsPGJvb2w+IGFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JU
ZXN0aW5nKSB7IG1fYXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcgPSBhcHBJbml0
aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZzsgfQorCiBwcml2YXRlOgogCiAgICAgUmVmUHRy
PFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w+IG1fcHJvY2Vzc1Bvb2w7CkBAIC0yMjEsNiArMjI0LDgg
QEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nIG1fc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgeyBXZWJDb3JlOjpT
aG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzo6Tm8gfTsKICAgICBXVEY6OlN0cmlu
ZyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOworCisgICAgc3RkOjpvcHRpb25hbDxib29s
PiBtX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCmluZGV4IDgyNDRlMTI0MjEyNTU0YjJlYzY0
Zjg0NDRmNTUzMmVmMmEzNTVmODcuLjY2ZGU0MGIyMzU1N2Q3M2I1NTA2MTI3ZGIxMzc0ZmY4YTdh
NDk2MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBAIC04NDQsNiArODQ0LDE3IEBAIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogewogICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+
c2V0TGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyhsaW1pdHNUb0FwcEJvdW5kRG9t
YWlucyk7CiB9CisKKy0gKHZvaWQpX3NldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0
aW5nOihzdGQ6Om9wdGlvbmFsPEJPT0w+KXZhbHVlCit7CisgICAgX3BhZ2VDb25maWd1cmF0aW9u
LT5zZXRBcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZyh2YWx1ZSk7Cit9CisKKy0g
KHN0ZDo6b3B0aW9uYWw8Qk9PTD4pX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5n
Cit7CisgICAgcmV0dXJuIF9wYWdlQ29uZmlndXJhdGlvbi0+YXBwSW5pdGlhdGVkT3ZlcnJpZGVW
YWx1ZUZvclRlc3RpbmcoKTsKK30KKwogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAK
IC0gKEJPT0wpX2lnbm9yZXNBcHBCb3VuZERvbWFpbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Q
cml2YXRlLmgKaW5kZXggYWNmNWMwMmM3NDhlNzEwYWE4YWIwYWE5MGJkYTM2YjMxZDQ5MzgzZS4u
ODlkYzdiM2U2MjUyYmFiYzM2NWFiODlmOTRlNDNhNWQ2MWQwNjlmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb25Qcml2YXRlLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCA8V2ViS2l0
L1dLQmFzZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KKyNp
bXBvcnQgPG9wdGlvbmFsPgogCiAjaWYgVEFSR0VUX09TX0lQSE9ORQogdHlwZWRlZiBOU19FTlVN
KE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKQEAgLTk1LDYgKzk2LDcgQEAgdHlwZWRl
ZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xv
b2tQcmV2aWV3OikgQk9PTCBfc2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGluZ1F1aWNrTG9v
a1ByZXZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOwogQHByb3BlcnR5IChub25hdG9t
aWMsIHNldHRlcj1fc2V0Q2FuU2hvd1doaWxlTG9ja2VkOikgQk9PTCBfY2FuU2hvd1doaWxlTG9j
a2VkIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEzLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldENsaWNrSW50ZXJhY3Rpb25Ecml2ZXJGb3JUZXN0aW5nOikgaWQgPF9VSUNsaWNr
SW50ZXJhY3Rpb25Ecml2aW5nPiBfY2xpY2tJbnRlcmFjdGlvbkRyaXZlckZvclRlc3RpbmcgV0tf
QVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOworQHByb3BlcnR5IChub25hdG9taWMsIHNldHRlcj1f
c2V0QXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3Rpbmc6KSBzdGQ6Om9wdGlvbmFsPEJP
T0w+IF9hcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEyLjApLCBpb3MoMTUuMCkpOwogI2Vsc2UKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFNob3dzVVJMc0luVG9vbFRpcHM6KSBCT09MIF9zaG93c1VSTHNJblRvb2xUaXBz
IFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBz
ZXR0ZXI9X3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9zZXJ2aWNlQ29udHJvbHNF
bmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291cmNlL1dl
YktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggOWIwMWY0MDIy
NzE1MjEwMmU0N2U2Y2MyNWRiZGIyNjFkMTc3YmY5Yi4uYjc0MTNkNWQyYTc1MWE3NDEzYzhkY2I4
NTJhZjYxZTY2MTY5NDE1ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29j
b2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQgIldlYlBh
Z2VQcm94eS5oIgogCiAjaW1wb3J0ICJBUElBdHRhY2htZW50LmgiCisjaW1wb3J0ICJBUElQYWdl
Q29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIKICNpbXBvcnQgIkNvY29h
SW1hZ2UuaCIKICNpbXBvcnQgIkNvbm5lY3Rpb24uaCIKQEAgLTY2Myw2ICs2NjQsOSBAQCB2b2lk
IFdlYlBhZ2VQcm94eTo6c2V0TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoUmVzb3VyY2VS
ZXF1ZXN0JiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShBUFBfUFJJVkFDWV9SRVBPUlQpCiAgICAg
YXV0byBpc0FwcEluaXRpYXRlZCA9IHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6OkhUVFBC
b2R5VXBkYXRlUG9saWN5OjpEb05vdFVwZGF0ZUhUVFBCb2R5KS5hdHRyaWJ1dGlvbiA9PSBOU1VS
TFJlcXVlc3RBdHRyaWJ1dGlvbkRldmVsb3BlcjsKKyAgICBpZiAobV9jb25maWd1cmF0aW9uLT5h
cHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZygpKQorICAgICAgICBpc0FwcEluaXRp
YXRlZCA9ICptX2NvbmZpZ3VyYXRpb24tPmFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0
aW5nKCk7CisKICAgICByZXF1ZXN0LnNldElzQXBwSW5pdGlhdGVkKGlzQXBwSW5pdGlhdGVkKTsK
ICAgICBtX2xhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkID0gaXNBcHBJbml0aWF0ZWQ7CiAj
ZW5kaWYKZGlmZiAtLWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRl
eCA0ZjFiM2VhZmM2ODgzOGYyMDkyZmY0MmMwODE0MTA2NjIyZmFlYmY5Li5jMzJhMGJkZGU3Yjc1
YWZhMmIwZmUxYzU2Yzc1NjNjY2VmNDQ4NDk4IDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cK
KysrIGIvVG9vbHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjEtMDctMDggIEthdGUg
Q2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgbGF5
b3V0IHRlc3RzIHRvIHNwZWNpZnkgYXBwIGluaXRpYXRlZCBsb2FkcyBvciBub3QKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgyNQorICAgICAgICA8
cmRhcjovL3Byb2JsZW0vODAzNTU1ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIGEgdGVzdCBvcHRpb24gdGhhdCBzcGVjaWZpZXMgd2hldGhl
ciB0aGUgdGVzdCBzaG91bGQgbWFyayB0aGUKKyAgICAgICAgbWFpbiBwYWdlIG5hdmlnYXRpb24g
YXMgYXBwLWluaXRpYXRlZCBvciBub3QuCisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rl
c3RPcHRpb25zLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmRlZmF1bHRzKToKKyAg
ICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6OmtleVR5cGVNYXBwaW5nKToKKyAgICAgICAgKiBXZWJL
aXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmg6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpp
c0FwcEluaXRpYXRlZCBjb25zdCk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9U
ZXN0Q29udHJvbGxlckNvY29hLm1tOgorICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxh
dGZvcm1DcmVhdGVXZWJWaWV3KToKKwogMjAyMS0wNy0wOCAgWWlqaWEgSHVhbmcgIDx5aWppYV9o
dWFuZ0BhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIFlpamlhIEh1YW5nIGFzIGEgY29tbWl0dGVy
CmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcCBiL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCmluZGV4IDQ2OTAxMzY1MzdhYTI4
M2VmZmFlNWQxZjk1MTQxMTYxZmE4YmU5MTEuLjJkMjlhYWU5OGVhNGIyNTViNzkyZTQwODVjZDkx
ZjVlNGQxMzUzNGIgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlv
bnMuY3BwCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCkBAIC0x
NDMsNiArMTQzLDcgQEAgY29uc3QgVGVzdEZlYXR1cmVzJiBUZXN0T3B0aW9uczo6ZGVmYXVsdHMo
KQogICAgICAgICAgICAgeyAiaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIsIGZh
bHNlIH0sCiAgICAgICAgICAgICB7ICJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyIsIGZhbHNl
IH0sCiAgICAgICAgICAgICB7ICJpc0FwcEJvdW5kV2ViVmlldyIsIGZhbHNlIH0sCisgICAgICAg
ICAgICB7ICJpc0FwcEluaXRpYXRlZCIsIHRydWUgfSwKICAgICAgICAgICAgIHsgInJ1blNpbmds
eSIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiLCB0
cnVlIH0sCiAgICAgICAgICAgICB7ICJzaG91bGRQcmVzZW50UG9wb3ZlcnMiLCB0cnVlIH0sCkBA
IC0xOTUsNiArMTk2LDcgQEAgY29uc3Qgc3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBU
ZXN0SGVhZGVyS2V5VHlwZT4mIFRlc3RPcHRpb25zOjprZXlUeXBlTWEKICAgICAgICAgeyAiaWdu
b3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIsIFRlc3RIZWFkZXJLZXlUeXBlOjpCb29s
VGVzdFJ1bm5lciB9LAogICAgICAgICB7ICJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyIsIFRl
c3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9LAogICAgICAgICB7ICJpc0FwcEJvdW5k
V2ViVmlldyIsIFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9LAorICAgICAgICB7
ICJpc0FwcEluaXRpYXRlZCIsIFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9LAog
ICAgICAgICB7ICJydW5TaW5nbHkiLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIg
fSwKICAgICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsIiwgVGVzdEhlYWRlcktleVR5
cGU6OkJvb2xUZXN0UnVubmVyIH0sCiAgICAgICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIs
IFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9LApkaWZmIC0tZ2l0IGEvVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0T3B0aW9ucy5oCmluZGV4IDkzNjAzODc0NmNhYjdlOWU5ZDc5MmE1ZTk5Y2I4NWZjYTcxMmYy
ZTkuLjVlMDczNmFkYmVmNzZjNjhmYjJiYzRkNWJjNDUwN2RkNzU2YTcyYmIgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9XZWJLaXRU
ZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKQEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIGJv
b2wgaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cygpIGNvbnN0IHsgcmV0dXJuIGJv
b2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVv
dXRzIik7IH0KICAgICBib29sIGlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzKCkgY29uc3QgeyBy
ZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJlVmFsdWUoImlnbm9yZXNWaWV3cG9ydFNjYWxlTGlt
aXRzIik7IH0KICAgICBib29sIGlzQXBwQm91bmRXZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gYm9v
bFRlc3RSdW5uZXJGZWF0dXJlVmFsdWUoImlzQXBwQm91bmRXZWJWaWV3Iik7IH0KKyAgICBib29s
IGlzQXBwSW5pdGlhdGVkKCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJlVmFs
dWUoImlzQXBwSW5pdGlhdGVkIik7IH0KICAgICBib29sIHJ1blNpbmdseSgpIGNvbnN0IHsgcmV0
dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJydW5TaW5nbHkiKTsgfQogICAgIGJvb2wg
c2hvdWxkSGFuZGxlUnVuT3BlblBhbmVsKCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJG
ZWF0dXJlVmFsdWUoInNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCIpOyB9CiAgICAgYm9vbCBzaG91
bGRQcmVzZW50UG9wb3ZlcnMoKSBjb25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVW
YWx1ZSgic2hvdWxkUHJlc2VudFBvcG92ZXJzIik7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQppbmRleCA5OGNjYjRkYjlhYjA4
YmFiMjkzMzBhYjRjYmEyZTI0NWU5OTQ0ZjdkLi43MzQ5OGUxZGQ1MDczMTkxMGJmNTIyZmQ5ZTMy
OGM5Y2ZkYzI4OGUyIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rl
c3RDb250cm9sbGVyQ29jb2EubW0KKysrIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9U
ZXN0Q29udHJvbGxlckNvY29hLm1tCkBAIC0xNjksNiArMTY5LDggQEAgdm9pZCBUZXN0Q29udHJv
bGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJWaWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0
IFRlc3RPcHQKICAgICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gc2V0U2VsZWN0aW9uR3JhbnVs
YXJpdHk6V0tTZWxlY3Rpb25HcmFudWxhcml0eUNoYXJhY3Rlcl07CiAgICAgaWYgKG9wdGlvbnMu
aXNBcHBCb3VuZFdlYlZpZXcoKSkKICAgICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gc2V0TGlt
aXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWluczpZRVNdOworCisgICAgW2NvcGllZENvbmZp
Z3VyYXRpb24gX3NldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOm9wdGlvbnMu
aXNBcHBJbml0aWF0ZWQoKV07CiAjZW5kaWYKIAogICAgIGlmIChvcHRpb25zLmVuYWJsZUF0dGFj
aG1lbnRFbGVtZW50KCkpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggNzU4YWUxZTc0YWRlM2Q5ZTVmZWI2ODRjMzU3MjNhYjc3
Y2NkMmQzMy4uNGMyN2M5ZDMzM2MxNDJlYjdkNWZiZTMyZDM4MjAwN2ViZjhiN2M4ZSAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDQxIEBACisyMDIxLTA3LTA4ICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGxheW91dCB0ZXN0cyB0byBzcGVjaWZ5IGFw
cCBpbml0aWF0ZWQgbG9hZHMgb3Igbm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjc4MjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgwMzU1NTgy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVk
IG5ldyB0ZXN0cyB0byBjb3ZlciB0aGUgdXNlciBpbml0aWF0ZWQgY2FzZS4KKworICAgICAgICAq
IGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1sb2FkLXVybC1l
eHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQuCisgICAgICAgICog
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0
bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2F0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQ6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0
aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sOiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5n
LWxvYWQuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAt
YXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBvc3QtcmVx
dWVzdC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXBwLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wb3N0LXJlcXVl
c3QuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0
cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0
LWFzeW5jLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWw6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZs
aWdodC1hc3luYy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBy
ZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbDogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24t
cHJlZmxpZ2h0LXN5bmMuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4
dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4dC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3Vs
YXRpdmUtcmV2YWxpZGF0aW9uLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlv
bi5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNl
cy9hcHAtaW5pdGlhdGVkLXBvc3QucHk6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy9wb3N0LnB5LgorICAgICAgICAqIGh0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy91c2VyLWluaXRpYXRlZC1wb3N0LnB5
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
cmVzb3VyY2VzL3Bvc3QucHkuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tbG9hZC11
cmwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2F0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXR0cmlidXRpb24tcGluZy1sb2FkLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sOiBSZW5h
bWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmli
dXRpb24tcGluZy1sb2FkLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LXBvc3QtcmVxdWVzdC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwuCisgICAgICAg
ICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGln
aHQtYXN5bmMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJp
YnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0
bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1
dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3lu
Yy1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
dXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0
LXN5bmMuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2Vy
LWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6IFJlbmFt
ZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1
dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tc3BlY3VsYXRpdmUt
cmV2YWxpZGF0aW9uLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRt
bC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmct
dXNlci1pbml0aWF0ZWQtZGF0YS5weTogQWRkZWQuCisKIDIwMjEtMDctMDggIENocmlzIER1bWV6
ICA8Y2R1bWV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbSW5kZXhlZERCXSBLZXlQYXRoIHZhbGlk
aXR5IGNoZWNrcyBzaG91bGQgaGFwcGVuIG9uIHRoZSBjbG9uZWQgdmFsdWUsIG5vdCB0aGUgb3Jp
Z2luYWwgb25lCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJs
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDAyNDgwNDUxNTk5ZmI0MDhlZDAwZjQ4YmZkNjcy
OGYyNmQ2ZGY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMgQEAKK1Rlc3QgbG9hZFVSTCByZXF1ZXN0cyBhcmUgc3VjY2VzZnVsbHkgYXR0cmli
dXRlZCBhcyBhcHAgaW5pdGlhdGVkLgorUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBw
IGluaXRpYXRlZCByZXF1ZXN0cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1sb2Fk
LXVybC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4YzM3NTI4NmMzZmI3MzE1YzgwYmEwZTkyYmYxYWIzYWRj
YjZhOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbApAQCAtMCwwICsxLDQ4IEBA
Cis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVk
PXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91
dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVu
VGVzdCgpJywgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3QgbG9hZFVSTCByZXF1ZXN0
cyBhcmUgc3VjY2VzZnVsbHkgYXR0cmlidXRlZCBhcyBhcHAgaW5pdGlhdGVkLjwvZGl2PgorPHBy
ZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1
bm5lci5kdW1wQXNUZXh0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9hZFVSTCgpIHsKKyAg
ICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9hcHAt
cHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwiOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2Fn
ZSArICdcbicpKTsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHN0YXJ0aW5nT3JpZ2luID0gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gc3RhcnRpbmdPcmlnaW4pIHsKKyAgICAgICAgICAg
IGxvYWRVUkwoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhciBkaWRMb2FkQXBw
SW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3Qo
KTsKKyAgICAgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RS
dW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKworICAgICAgICAgICAgaWYg
KGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgbG9nKCJG
QUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAg
aWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgICAgIGxvZygi
RkFJTCBkaWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0
cyIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU2Mjcz
OTBmYzBkNWZjMjBkZTlmMzM4YjVhNmJmYWQ1Zjg4ZDZlNAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1w
aW5nLWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQ09OU09MRSBNRVNTQUdFOiBQ
QVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCitQaW5n
IHNlbnQgc3VjY2Vzc2Z1bGx5CitDT05URU5UX1RZUEU6IHRleHQvcGluZworSFRUUF9IT1NUOiAx
MjcuMC4wLjE6ODAwMAorSFRUUF9QSU5HX0ZST006IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hcHAt
cHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sCitIVFRQX1BJTkdf
VE86IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5n
LWFwcC1pbml0aWF0ZWQtZGF0YS5weQorUkVRVUVTVF9NRVRIT0Q6IFBPU1QKK1JFUVVFU1RfVVJJ
OiAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2F2ZS1waW5nLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1s
b2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAt
YXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjExYWJmODM5YmRmZTE2N2Ey
NDBlZWRiNDZkNTgxODI2OGRmNTM1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRt
bApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5l
ciBbIGlzQXBwSW5pdGlhdGVkPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9uYXZpZ2F0aW9uL3BpbmctYXR0cmlidXRlL3Jlc291cmNl
cy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5l
ciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cisg
ICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJyZXIoZmFsc2Us
IGZ1bmN0aW9uICgpIHsgfSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEh5cGVybGlua0F1
ZGl0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30K
KworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgY2xpY2tFbGVtZW50KGRvY3VtZW50LnF1ZXJ5U2Vs
ZWN0b3IoImltZyIpKTsKK30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpCit7CisgICAg
Y2xlYXJMYXN0UGluZ1Jlc3VsdEFuZFJ1blRlc3QodGVzdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorICAgIDxpbWcgc3JjPSJub24tZXhpc3RlbnQtaW1hZ2UuanBnIiB3aWR0aD0i
MTI4IiBoZWlnaHQ9IjEyOCIgdXNlbWFwPSIjaW1hZ2VtYXAiPgorICAgIDxtYXAgbmFtZT0iaW1h
Z2VtYXAiPgorICAgICAgICA8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIwLDAsMTI4LDEyOCIg
aHJlZj0iLi4vbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy1hcHAtaW5pdGlhdGVkLWRh
dGEucHkiIHBpbmc9Ii4uL25hdmlnYXRpb24vcmVzb3VyY2VzL3NhdmUtcGluZy5weSI+CisgICAg
PC9tYXA+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1h
dHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyNDVlMzQw
ZjE3ZGU4ZTRmM2UzNTljYzFiOWY0MTQ3NjZkZWNmMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcG9z
dC1yZXF1ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0NPTlNPTEUgTUVTU0FHRTog
UEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cworVGVz
dHMgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBQT1NUIHJlcXVlc3RzLgor
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5mZDY5Y2M2ZDhkOWQ3NGM2NmY3NzdmZTliNjJkNjAxMTM3MmZkZjBkCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9D
VFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9dHJ1ZSBd
IC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3Jj
PSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+Cis8cD5UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIFBP
U1QgcmVxdWVzdHMuPC9wPgorPGZvcm0gaWQ9InRlc3RGb3JtIiBhY3Rpb249InJlc291cmNlcy9h
cHAtaW5pdGlhdGVkLXBvc3QucHkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vcmVmZXJyZXIiIG1l
dGhvZD0icG9zdCI+Cis8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVGVzdCI+PC9pbnB1dD4K
Kzxmb3JtPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1
ZSk7Cit9CisKK2RvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOworCis8L3NjcmlwdD4KKzwvYm9k
eT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9u
LXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI1ZWVhOTQyMmFkMGNh
ZWU3NjY3YmNkNDA2ZGI5M2UwYTVlOWUyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQt
YXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBQcmVm
bGlnaHQgcmVzcG9uc2UgaXMgbm90IHN1Y2Nlc3NmdWwKK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSBkdWUgdG8gYWNjZXNzIGNvbnRy
b2wgY2hlY2tzLgorVGVzdHMgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBh
c3luYyBwcmVmbGlnaHRzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0
aWF0ZWQgcmVxdWVzdHMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBy
ZWZsaWdodC1hc3luYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZmRlYzhhYzljZThlYmQzODE3NmUzMGRh
ZThjNDU5ZjBlMzlhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwK
QEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIg
WyBpc0FwcEluaXRpYXRlZD10cnVlIF0gLS0+Cis8cD5UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVl
c3RzIGdldCBtYXJrZWQgZm9yIGFzeW5jIHByZWZsaWdodHM8L3A+CisKKzxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQor
CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAn
XG4nKSk7Cit9CisKK3ZhciBwcmVmbGlnaHRMaW5rRG9tYWluID0gImxvY2FsaG9zdCI7Cit2YXIg
Y29udGV4dEhvc3QgPSAiMTI3LjAuMC4xIjsKK3ZhciB1cmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSIK
KworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOworICAgIHJlcS5zZXRSZXF1ZXN0
SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKKworICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24o
KSB7CisgICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIu
ZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJ
bml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVz
dCgpOworCisgICAgICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAg
ICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsK
KyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAg
ICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJG
QUlMIGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1
Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7CisgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KKyAgICByZXEuc2VuZChudWxsKTsKK30K
KworcnVuVGVzdCgpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBw
LWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDE2
YzUzMWUwNjU5YWRjZGQ2MzU1NTIzZWExYjBhZDJkNWEyYjFjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9u
LXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0NPTlNPTEUgTUVT
U0FHRTogUHJlZmxpZ2h0IHJlc3BvbnNlIGlzIG5vdCBzdWNjZXNzZnVsCitDT05TT0xFIE1FU1NB
R0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkgZHVlIHRvIGFj
Y2VzcyBjb250cm9sIGNoZWNrcy4KK1Rlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1h
cmtlZCBmb3Igc3luYyBwcmVmbGlnaHRzCisKK1BBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29y
ayBlcnJvciBvY2N1cnJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0
aWF0ZWQgcmVxdWVzdHMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJl
ZmxpZ2h0LXN5bmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2Q2MTY4YjIyN2NhNWRhOGI1NDZmZTZhYWRh
Njg4OGEyZmJiZmY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWwKQEAg
LTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBp
c0FwcEluaXRpYXRlZD10cnVlIF0gLS0+Cis8cD5UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3Rz
IGdldCBtYXJrZWQgZm9yIHN5bmMgcHJlZmxpZ2h0czwvcD4KKworPHByZSBpZD0iY29uc29sZSI+
PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1
bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25z
b2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicp
KTsKK30KKwordmFyIHByZWZsaWdodExpbmtEb21haW4gPSAibG9jYWxob3N0IjsKK3ZhciBjb250
ZXh0SG9zdCA9ICIxMjcuMC4wLjEiOwordmFyIHVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IgorCitm
dW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7
CisgICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOworICAgIHJlcS5zZXRSZXF1ZXN0SGVh
ZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKKworICAgIHRyeSB7CisgICAgICAgIHJlcS5zZW5kKG51
bGwpOworICAgICAgICBsb2coIlBBU1M6ICIgKyByZXEucmVzcG9uc2VUZXh0KTsKKyAgICB9IGNh
dGNoIChleCkgeworICAgICAgICBsb2coIlBBU1M6ICIgKyBleCk7CisgICAgICAgIHZhciBkaWRM
b2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJl
cXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVz
dFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAgIGlmIChk
aWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRp
ZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2FkQXBwSW5p
dGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAg
aW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25s
eSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgIH0KK30KKworcnVuVGVzdCgpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3Bl
Y3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlk
YXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMWMyZDU5OTQxNDRlODEwZTE1NzdlZmZi
Y2QwOWNlMDZkZjNkZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0
aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisxMjcuMC4wLjE6ODAwMCAtIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAtIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lSFRUUEJhc2ljIC0gUmVzcG9uZGluZyB3aXRoIHRlc3RVc2VybmFtZTp0ZXN0UGFz
c3dvcmQKKzEyNy4wLjAuMTo4MDAwIC0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdl
IC0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMgLSBTaW11bGF0
aW5nIGNhbmNlbGxlZCBhdXRoZW50aWNhdGlvbiBzaGVldAorVGVzdHMgc3BlY3VsYXRpdmUgcmV2
YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0ZWQgcmVzb3VyY2VzLgorCitPbiBzdWNjZXNzLCB5b3Ug
d2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBD
T01QTEVURSIuCisKKworUEFTUyB4aHIuc3RhdHVzIGlzIDQwMQorUEFTUyBTdWNjZXNzZnVseSBs
b2FkZWQuCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVl
c3RzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBw
LWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZl
LXJldmFsaWRhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MWY1ZDZkMTQ2MDhhN2YwM2NlZjY2MGMz
OTczYTVhMDNlMjA5NDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0
aW9uLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD10cnVlIF0gLS0+Cis8c2NyaXB0IHNyYz0iL2pzLXRl
c3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlw
dGlvbigiVGVzdHMgc3BlY3VsYXRpdmUgcmV2YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0ZWQgcmVz
b3VyY2VzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3Rlc3RSdW5uZXIuc2V0SGFuZGxl
c0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyh0cnVlKTsKK3Rlc3RSdW5uZXIuc2V0QXV0aGVudGlj
YXRpb25Vc2VybmFtZSgidGVzdFVzZXJuYW1lIik7Cit0ZXN0UnVubmVyLnNldEF1dGhlbnRpY2F0
aW9uUGFzc3dvcmQoInRlc3RQYXNzd29yZCIpOworCitzdGF0ZSA9ICJ3YXJtdXAiOworCitmdW5j
dGlvbiBjbGVhckNyZWRlbnRpYWxTdG9yYWdlKCkKK3sKKyAgICB4aHIgPSBuZXcgWE1MSHR0cFJl
cXVlc3QoKTsKKyAgICB4aHIub3BlbigiR0VUIiwgInJlc291cmNlcy9yZXNvdXJjZS13aXRoLWF1
dGgucHk/b3RoZXIiLCBmYWxzZSwgImJhZFVzZXJuYW1lIiwgImJhZFBhc3N3b3JkIik7CisgICAg
eGhyLnNlbmQoKTsKKyAgICBzaG91bGRCZSgieGhyLnN0YXR1cyIsICI0MDEiKTsKK30KKworZnVu
Y3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNv
bGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykp
OworfQorCitmdW5jdGlvbiBmcmFtZUxvYWRlZCgpCit7CisgICAgaWYgKHN0YXRlID09ICJ3YXJt
dXAiKSB7CisgICAgICAgIC8vIE5hdmlnYXRlIGZyYW1lIHRvICdhYm91dDpibGFuaycgdG8gZmx1
c2ggdG8gc3VicmVzb3VyY2UgbG9hZHMgbWV0YWRhdGEgdG8gZGlzay4KKyAgICAgICAgc3RhdGUg
PSAiZmx1c2hpbmdNZXRhZGF0YSI7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlcyhmYWxzZSk7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCJ0ZXN0RnJhbWUiKS5zcmMgPSAiYWJvdXQ6YmxhbmsiOworICAgICAgICByZXR1cm47Cisg
ICAgfQorICAgIGlmIChzdGF0ZSA9PSAiZmx1c2hpbmdNZXRhZGF0YSIpIHsKKyAgICAgICAgY2xl
YXJDcmVkZW50aWFsU3RvcmFnZSgpOworCisgICAgICAgIGludGVybmFscy5jbGVhck1lbW9yeUNh
Y2hlKCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlcyhmYWxzZSk7CisKKyAgICAgICAgLy8gTmF2aWdhdGUgZnJhbWUgdG8gaXRzIG9yaWdpbmFs
IGxvY2F0aW9uIGFnYWluLiBUaGlzIHRpbWUgaXQgc2hvdWxkIHNwZWN1bGF0aXZlbHkKKyAgICAg
ICAgLy8gdmFsaWRhdGUgc3VicmVzb3VyY2VzIGFzIHdlIGhhdmUgc3VicmVzb3VyY2UgbG9hZHMg
bWV0YWRhdGEgaW4gdGhlIGRpc2sgY2FjaGUuCisgICAgICAgIHN0YXRlID0gInNwZWN1bGF0aXZl
UmV2YWxpZGF0aW9uIjsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFt
ZSIpLnNyYyA9ICJyZXNvdXJjZXMvZnJhbWUtd2l0aC1hdXRoZW50aWNhdGVkLXJlc291cmNlLnB5
IjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoc3RhdGUgPT0gInNwZWN1bGF0aXZl
UmV2YWxpZGF0aW9uIikgeworICAgICAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzZnVseSBsb2FkZWQu
Iik7CisgICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIu
ZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJ
bml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVz
dCgpOworCisgICAgICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAg
ICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsK
KyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAg
ICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAg
ICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAg
ICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9
CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlh
dGVkIHJlcXVlc3RzIik7CisKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVy
bjsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJl
c291cmNlcy9mcmFtZS13aXRoLWF1dGhlbnRpY2F0ZWQtcmVzb3VyY2UucHkiIG9ubG9hZD0iZnJh
bWVMb2FkZWQoKSI+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1s
b2FkLXVybC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwMDI0
ODA0NTE1OTlmYjQwOGVkMDBmNDhiZmQ2NzI4ZjI2ZDZkZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0IGxvYWRVUkwgcmVxdWVzdHMgYXJlIHN1Y2Nlc2Z1bGx5
IGF0dHJpYnV0ZWQgYXMgYXBwIGluaXRpYXRlZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBv
bmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbCBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLWxvYWQt
dXJsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3YWQ4ZWU1Yzg3Y2MyZDE4
NWVkNzk3ZjViZWYwN2FkNjk0ZThjMDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXR0cmlidXRpb24tbG9hZC11cmwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3Vy
Y2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0
KCdydW5UZXN0KCknLCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdCBsb2FkVVJMIHJl
cXVlc3RzIGFyZSBzdWNjZXNmdWxseSBhdHRyaWJ1dGVkIGFzIGFwcCBpbml0aWF0ZWQuPC9kaXY+
Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBsb2FkVVJMKCkg
ewotICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAi
L2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sIjsKLSAgICB9Ci0K
LSAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3Nh
Z2UgKyAnXG4nKSk7Ci0gICAgfQotCi0gICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIjsKLSAgICBjb25zdCBzdGFydGluZ09yaWdpbiA9ICJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiOwotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmIChk
b2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHN0YXJ0aW5nT3JpZ2luKSB7Ci0gICAgICAgICAg
ICBsb2FkVVJMKCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB2YXIgZGlkTG9hZEFw
cEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0
KCk7Ci0gICAgICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0
UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7Ci0KLSAgICAgICAgICAgIGlm
IChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgICAgIGxvZygi
RkFJTCBkaWQgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7Ci0gICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAg
IGlmICghZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKLSAgICAgICAgICAgICAgICBsb2co
IkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwotICAgICAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAg
ICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVz
dHMiKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICB9Ci0g
ICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0
cmlidXRpb24tcGluZy1sb2FkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMGQ2MTdlZTkwMGE0OTAyYjk3YTRiZWQ2YTM5ZTk2NTY2Y2U0NTU5Zi4uMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFBBU1Mgc3Vj
Y2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKLVBpbmcgc2VudCBz
dWNjZXNzZnVsbHkKLUNPTlRFTlRfVFlQRTogdGV4dC9waW5nCi1IVFRQX0hPU1Q6IDEyNy4wLjAu
MTo4MDAwCi1IVFRQX1BJTkdfRlJPTTogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FwcC1wcml2YWN5
LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbAotSFRUUF9QSU5HX1RPOiBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy1hcHAtaW5pdGlh
dGVkLWRhdGEucHkKLVJFUVVFU1RfTUVUSE9EOiBQT1NUCi1SRVFVRVNUX1VSSTogL25hdmlnYXRp
b24vcmVzb3VyY2VzL3NhdmUtcGluZy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxv
YWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTEwMGNhZTJjNjJjZGFiZGFh
NGUxMGVjMzlmOWM5MGE4OWViZTk5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9h
dHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAK
LTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9uYXZpZ2F0
aW9uL3BpbmctYXR0cmlidXRlL3Jlc291cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPHNj
cmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hv
dWxkRG93bmdyYWRlUmVmZXJyZXIoZmFsc2UsIGZ1bmN0aW9uICgpIHsgfSk7Ci0gICAgaW50ZXJu
YWxzLnNldHRpbmdzLnNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCh0cnVlKTsKLSAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgY2xp
Y2tFbGVtZW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpKTsKLX0KLQotd2luZG93Lm9u
bG9hZCA9IGZ1bmN0aW9uICgpCi17Ci0gICAgY2xlYXJMYXN0UGluZ1Jlc3VsdEFuZFJ1blRlc3Qo
dGVzdCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxpbWcgc3JjPSJub24t
ZXhpc3RlbnQtaW1hZ2UuanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdXNlbWFwPSIjaW1h
Z2VtYXAiPgotICAgIDxtYXAgbmFtZT0iaW1hZ2VtYXAiPgotICAgICAgICA8YXJlYSBzaGFwZT0i
cmVjdCIgY29vcmRzPSIwLDAsMTI4LDEyOCIgaHJlZj0iLi4vbmF2aWdhdGlvbi9yZXNvdXJjZXMv
Y2hlY2stcGluZy1hcHAtaW5pdGlhdGVkLWRhdGEucHkiIHBpbmc9Ii4uL25hdmlnYXRpb24vcmVz
b3VyY2VzL3NhdmUtcGluZy5weSI+Ci0gICAgPC9tYXA+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1
dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI0NWUzNDBmMTdkZThlNGYzZTM1OWNjMWI5
ZjQxNDc2NmRlY2YxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlv
bi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBA
Ci1DT05TT0xFIE1FU1NBR0U6IFBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0
aWF0ZWQgcmVxdWVzdHMKLVRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBm
b3IgUE9TVCByZXF1ZXN0cy4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBvc3QtcmVx
dWVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDc5NTRmNzgwMzNiNGRl
NjA1YjkwMWE2MDNmOWJkMzE5ZTUxMjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2F0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAs
MCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRm
LTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMg
Z2V0IG1hcmtlZCBmb3IgUE9TVCByZXF1ZXN0cy48L3A+Ci08Zm9ybSBpZD0idGVzdEZvcm0iIGFj
dGlvbj0icmVzb3VyY2VzL3Bvc3QucHkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vcmVmZXJyZXIi
IG1ldGhvZD0icG9zdCI+Ci08aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVGVzdCI+PC9pbnB1
dD4KLTxmb3JtPgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RS
dW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3Mo
dHJ1ZSk7Ci19Ci0KLWRvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOwotCi08L3NjcmlwdD4KLTwv
Ym9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVm
bGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5
YjVlZWE5NDIyYWQwY2FlZTc2NjdiY2Q0MDZkYjkzZTBhNWU5ZTJlLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQK
KysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogUHJlZmxpZ2h0
IHJlc3BvbnNlIGlzIG5vdCBzdWNjZXNzZnVsCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1
ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNo
ZWNrcy4KLVRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3IgYXN5bmMg
cHJlZmxpZ2h0cwotCi1QQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVk
IHJlcXVlc3RzCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5j
Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5M2I5ZjNjMjRkYjdlMzBjOWY1
MWU5ZjRkMjI3MTZkNjYyZThkYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0
cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCww
IEBACi08cD5UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIGFzeW5j
IHByZWZsaWdodHM8L3A+Ci0KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNjcmlwdD4KLWlm
ICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotfQotCi1mdW5jdGlvbiBsb2cobWVzc2FnZSkK
LXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Ci19Ci0KLXZhciBwcmVmbGln
aHRMaW5rRG9tYWluID0gImxvY2FsaG9zdCI7Ci12YXIgY29udGV4dEhvc3QgPSAiMTI3LjAuMC4x
IjsKLXZhciB1cmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSIKLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17
Ci0gICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHJlcS5vcGVuKCJHRVQi
LCB1cmwsIHRydWUpOwotICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28i
KTsKLQotICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBkaWRMb2Fk
QXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVl
c3QoKTsKLSAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1
bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotCi0gICAgICAgIGlmIChkaWRM
b2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBs
b2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlh
dGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAgaW5p
dGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBh
cHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OwotICAgIH0KLSAgICByZXEuc2VuZChudWxsKTsKLX0KLQotcnVuVGVzdCgpOwotPC9zY3JpcHQ+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9h
dHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBl
Y3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwMTZjNTMxZTA2NTlhZGNk
ZDYzNTU1MjNlYTFiMGFkMmQ1YTJiMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAg
LTEsNyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFByZWZsaWdodCByZXNwb25zZSBpcyBub3Qg
c3VjY2Vzc2Z1bAotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBo
dHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQt
d2l0aG91dC1ib2R5LnB5IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1UZXN0cyBhcHAg
aW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIHN5bmMgcHJlZmxpZ2h0cwotCi1QQVNT
OiBOZXR3b3JrRXJyb3I6ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCi1QQVNTIHN1Y2Nlc3Nm
dWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCi0KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZs
aWdodC1zeW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBlYjU0MDk1YTFmZjdjMDQxZDFhYmU1NjAwZmE1YmNlNWNlZWU0M2E1Li4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWwK
KysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08cD5UZXN0cyBhcHAgaW5pdGlhdGVkIHJl
cXVlc3RzIGdldCBtYXJrZWQgZm9yIHN5bmMgcHJlZmxpZ2h0czwvcD4KLQotPHByZSBpZD0iY29u
c29sZSI+PC9wcmU+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci19
Ci0KLWZ1bmN0aW9uIGxvZyhtZXNzYWdlKQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSAr
ICdcbicpKTsKLX0KLQotdmFyIHByZWZsaWdodExpbmtEb21haW4gPSAibG9jYWxob3N0IjsKLXZh
ciBjb250ZXh0SG9zdCA9ICIxMjcuMC4wLjEiOwotdmFyIHVybCA9ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5
IgotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7Ci0gICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOwotICAgIHJlcS5zZXRSZXF1
ZXN0SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKLQotICAgIHRyeSB7Ci0gICAgICAgIHJlcS5z
ZW5kKG51bGwpOwotICAgICAgICBsb2coIlBBU1M6ICIgKyByZXEucmVzcG9uc2VUZXh0KTsKLSAg
ICB9IGNhdGNoIChleCkgewotICAgICAgICBsb2coIlBBU1M6ICIgKyBleCk7Ci0gICAgICAgIHZh
ciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRp
YXRlZFJlcXVlc3QoKTsKLSAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0
ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotCi0gICAgICAg
IGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJG
QUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFkaWRMb2Fk
QXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9h
ZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2Fk
ZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7Ci0gICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOwotICAgIH0KLX0KLQotcnVuVGVzdCgpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1z
cGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0
aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjIxYzJkNTk5
NDE0NGU4MTBlMTU3N2VmZmJjZDA5Y2UwNmRmM2RkZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0
CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotMTI3LjAuMC4xOjgwMDAgLSBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZUhUVFBCYXNpYyAtIFJlc3BvbmRpbmcgd2l0aCB0ZXN0VXNlcm5hbWU6dGVzdFBhc3N3
b3JkCi0xMjcuMC4wLjE6ODAwMCAtIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAt
IFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljIC0gU2ltdWxhdGlu
ZyBjYW5jZWxsZWQgYXV0aGVudGljYXRpb24gc2hlZXQKLVRlc3RzIHNwZWN1bGF0aXZlIHJldmFs
aWRhdGlvbiBvZiBhdXRoZW50aWNhdGVkIHJlc291cmNlcy4KLQotT24gc3VjY2VzcywgeW91IHdp
bGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09N
UExFVEUiLgotCi0KLVBBU1MgeGhyLnN0YXR1cyBpcyA0MDEKLVBBU1MgU3VjY2Vzc2Z1bHkgbG9h
ZGVkLgotUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0
cwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJp
YnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0
aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiNzVkNmZmMWJlODlhMTdm
YmFkZWFlZmFjOTc0MDAwZGM5ZTg1ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw3MiArMCwwIEBACi08c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgc3BlY3VsYXRp
dmUgcmV2YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0ZWQgcmVzb3VyY2VzLiIpOwotanNUZXN0SXNB
c3luYyA9IHRydWU7Ci0KLXRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlcyh0cnVlKTsKLXRlc3RSdW5uZXIuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSgidGVzdFVz
ZXJuYW1lIik7Ci10ZXN0UnVubmVyLnNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmQoInRlc3RQYXNz
d29yZCIpOwotCi1zdGF0ZSA9ICJ3YXJtdXAiOwotCi1mdW5jdGlvbiBjbGVhckNyZWRlbnRpYWxT
dG9yYWdlKCkKLXsKLSAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub3Bl
bigiR0VUIiwgInJlc291cmNlcy9yZXNvdXJjZS13aXRoLWF1dGgucHk/b3RoZXIiLCBmYWxzZSwg
ImJhZFVzZXJuYW1lIiwgImJhZFBhc3N3b3JkIik7Ci0gICAgeGhyLnNlbmQoKTsKLSAgICBzaG91
bGRCZSgieGhyLnN0YXR1cyIsICI0MDEiKTsKLX0KLQotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCi17
Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOwotfQotCi1mdW5jdGlvbiBmcmFt
ZUxvYWRlZCgpCi17Ci0gICAgaWYgKHN0YXRlID09ICJ3YXJtdXAiKSB7Ci0gICAgICAgIC8vIE5h
dmlnYXRlIGZyYW1lIHRvICdhYm91dDpibGFuaycgdG8gZmx1c2ggdG8gc3VicmVzb3VyY2UgbG9h
ZHMgbWV0YWRhdGEgdG8gZGlzay4KLSAgICAgICAgc3RhdGUgPSAiZmx1c2hpbmdNZXRhZGF0YSI7
Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhm
YWxzZSk7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKS5zcmMg
PSAiYWJvdXQ6YmxhbmsiOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChzdGF0ZSA9
PSAiZmx1c2hpbmdNZXRhZGF0YSIpIHsKLSAgICAgICAgY2xlYXJDcmVkZW50aWFsU3RvcmFnZSgp
OwotCi0gICAgICAgIGludGVybmFscy5jbGVhck1lbW9yeUNhY2hlKCk7Ci0gICAgICAgIHRlc3RS
dW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhmYWxzZSk7Ci0KLSAgICAg
ICAgLy8gTmF2aWdhdGUgZnJhbWUgdG8gaXRzIG9yaWdpbmFsIGxvY2F0aW9uIGFnYWluLiBUaGlz
IHRpbWUgaXQgc2hvdWxkIHNwZWN1bGF0aXZlbHkKLSAgICAgICAgLy8gdmFsaWRhdGUgc3VicmVz
b3VyY2VzIGFzIHdlIGhhdmUgc3VicmVzb3VyY2UgbG9hZHMgbWV0YWRhdGEgaW4gdGhlIGRpc2sg
Y2FjaGUuCi0gICAgICAgIHN0YXRlID0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIjsKLSAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLnNyYyA9ICJyZXNvdXJjZXMv
ZnJhbWUtd2l0aC1hdXRoZW50aWNhdGVkLXJlc291cmNlLnB5IjsKLSAgICAgICAgcmV0dXJuOwot
ICAgIH0KLSAgICBpZiAoc3RhdGUgPT0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIikgewotICAg
ICAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzZnVseSBsb2FkZWQuIik7Ci0gICAgICAgIHZhciBkaWRM
b2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJl
cXVlc3QoKTsKLSAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVz
dFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotCi0gICAgICAgIGlmIChk
aWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlMIGRp
ZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIGZpbmlzaEpT
VGVzdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFk
aWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBu
b3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVz
dCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbG9nKCJQQVNT
IHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7Ci0KLSAg
ICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci19Ci0KLTwvc2Ny
aXB0PgotPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNlcy9mcmFtZS13aXRoLWF1
dGhlbnRpY2F0ZWQtcmVzb3VyY2UucHkiIG9ubG9hZD0iZnJhbWVMb2FkZWQoKSI+PC9pZnJhbWU+
Ci08c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC9yZXNvdXJjZXMvYXBwLWluaXRpYXRlZC1wb3N0LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL2FwcC1pbml0aWF0ZWQtcG9zdC5weQpuZXcg
ZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5kMDZmZWVlMjEyYzcwMWNmNjJkOWQ4MzBkZmYyYjViODc2MWI5MzlmCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVz
b3VyY2VzL2FwcC1pbml0aWF0ZWQtcG9zdC5weQpAQCAtMCwwICsxLDI3IEBACisjIS91c3IvYmlu
L2VudiBweXRob24zCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCityZWZlcmVyID0gb3MuZW52
aXJvbi5nZXQoJ0hUVFBfUkVGRVJFUicsICcnKQorCitzeXMuc3Rkb3V0LndyaXRlKAorICAgICdD
b250ZW50LVR5cGU6IHRleHQvaHRtbFxyXG5cclxuJworICAgICc8cD5SZWZlcnJlcjoge3JlZmVy
ZXJ9PC9wPlxuJworICAgICc8c2NyaXB0PlxuJworICAgICdpZiAod2luZG93LnRlc3RSdW5uZXIp
IHt7XG4nCisgICAgJyAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVu
bmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7XG4nCisgICAgJyAgICB2YXIgZGlkTG9h
ZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0
ZWRSZXF1ZXN0KCk7XG4nCisgICAgJyAgICBpZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVl
c3QpIHt7XG4nCisgICAgJyAgICAgICAgY29uc29sZS5sb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFw
cCBpbml0aWF0ZWQgcmVxdWVzdCIpO1xuJworICAgICcgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpO1xuJworICAgICcgICAgfX1cbicKKyAgICAnICAgIGlmICghZGlkTG9hZEFwcEluaXRp
YXRlZFJlcXVlc3QpIHt7XG4nCisgICAgJyAgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMIGRpZCBu
b3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTtcbicKKyAgICAnICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTtcbicKKyAgICAnICAgICB9fVxuJworICAgICcgICAgY29uc29sZS5s
b2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMi
KTtcbicKKyAgICAnICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAgICd9fVxuJwor
ICAgICc8L3NjcmlwdD5cbicuZm9ybWF0KHJlZmVyZXI9cmVmZXJlcikKKykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy9wb3N0
LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2Vz
L3Bvc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGQwNmZlZWUyMTJjNzAxY2Y2
MmQ5ZDgzMGRmZjJiNWI4NzYxYjkzOWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
cmVzb3VyY2VzL3Bvc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0jIS91c3Iv
YmluL2VudiBweXRob24zCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi1yZWZlcmVyID0gb3Mu
ZW52aXJvbi5nZXQoJ0hUVFBfUkVGRVJFUicsICcnKQotCi1zeXMuc3Rkb3V0LndyaXRlKAotICAg
ICdDb250ZW50LVR5cGU6IHRleHQvaHRtbFxyXG5cclxuJwotICAgICc8cD5SZWZlcnJlcjoge3Jl
ZmVyZXJ9PC9wPlxuJwotICAgICc8c2NyaXB0PlxuJwotICAgICdpZiAod2luZG93LnRlc3RSdW5u
ZXIpIHt7XG4nCi0gICAgJyAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0
UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7XG4nCi0gICAgJyAgICB2YXIgZGlk
TG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0
aWF0ZWRSZXF1ZXN0KCk7XG4nCi0gICAgJyAgICBpZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJl
cXVlc3QpIHt7XG4nCi0gICAgJyAgICAgICAgY29uc29sZS5sb2coIkZBSUwgZGlkIGxvYWQgbm9u
IGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpO1xuJwotICAgICcgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpO1xuJwotICAgICcgICAgfX1cbicKLSAgICAnICAgIGlmICghZGlkTG9hZEFwcElu
aXRpYXRlZFJlcXVlc3QpIHt7XG4nCi0gICAgJyAgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMIGRp
ZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTtcbicKLSAgICAnICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTtcbicKLSAgICAnICAgICB9fVxuJwotICAgICcgICAgY29uc29s
ZS5sb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVz
dHMiKTtcbicKLSAgICAnICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJwotICAgICd9fVxu
JwotICAgICc8L3NjcmlwdD5cbicuZm9ybWF0KHJlZmVyZXI9cmVmZXJlcikKLSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy91
c2VyLWluaXRpYXRlZC1wb3N0LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvcmVzb3VyY2VzL3VzZXItaW5pdGlhdGVkLXBvc3QucHkKbmV3IGZpbGUgbW9kZSAx
MDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJj
YzJlMTM5Y2M0NjRhMjViNmNmYTExZDk0M2IxZWNiMmFkZTRjZQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy91c2Vy
LWluaXRpYXRlZC1wb3N0LnB5CkBAIC0wLDAgKzEsMjcgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhv
bjMKKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK3JlZmVyZXIgPSBvcy5lbnZpcm9uLmdldCgn
SFRUUF9SRUZFUkVSJywgJycpCisKK3N5cy5zdGRvdXQud3JpdGUoCisgICAgJ0NvbnRlbnQtVHlw
ZTogdGV4dC9odG1sXHJcblxyXG4nCisgICAgJzxwPlJlZmVycmVyOiB7cmVmZXJlcn08L3A+XG4n
CisgICAgJzxzY3JpcHQ+XG4nCisgICAgJ2lmICh3aW5kb3cudGVzdFJ1bm5lcikge3tcbicKKyAg
ICAnICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9h
ZEFwcEluaXRpYXRlZFJlcXVlc3QoKTtcbicKKyAgICAnICAgIHZhciBkaWRMb2FkTm9uQXBwSW5p
dGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3Qo
KTtcbicKKyAgICAnICAgIGlmIChkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkge3tcbicKKyAg
ICAnICAgICAgICBjb25zb2xlLmxvZygiRkFJTCBkaWQgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVl
c3QiKTtcbicKKyAgICAnICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTtcbicKKyAgICAn
ICAgIH19XG4nCisgICAgJyAgICBpZiAoIWRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7
e1xuJworICAgICcgICAgICAgICBjb25zb2xlLmxvZygiRkFJTCBkaWQgbm90IGxvYWQgbm9uIGFw
cCBpbml0aWF0ZWQgcmVxdWVzdCIpO1xuJworICAgICcgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpO1xuJworICAgICcgICAgIH19XG4nCisgICAgJyAgICBjb25zb2xlLmxvZygiUEFTUyBz
dWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTtcbicK
KyAgICAnICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAgICd9fVxuJworICAgICc8
L3NjcmlwdD5cbicuZm9ybWF0KHJlZmVyZXI9cmVmZXJlcikKKykKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tbG9h
ZC11cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTZjZGFjZTI2YTIwZWVlMDlkZDE0YzQ1YTM4ZDFjMWNhNTQ1YzM0YgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmli
dXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdCBsb2FkVVJM
IHJlcXVlc3RzIGFyZSBzdWNjZXNmdWxseSBhdHRyaWJ1dGVkIGFzIG5vbiBhcHAgaW5pdGlhdGVk
LgorUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVz
dHMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmIzMTI5ZWFlMzgzMDUzMzQ1M2JjMGUzNGFhOGQ3MDRjNzA2ZWRjMWMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2Vy
LWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0
bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD1mYWxzZSBdIC0tPgor
PGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2Ny
aXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+
Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdCBsb2FkVVJMIHJlcXVlc3RzIGFyZSBzdWNjZXNm
dWxseSBhdHRyaWJ1dGVkIGFzIG5vbiBhcHAgaW5pdGlhdGVkLjwvZGl2PgorPHByZSBpZD0iY29u
c29sZSI+PC9wcmU+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
ICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9hZFVSTCgpIHsKKyAgICAgICAgZG9j
dW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sIjsKKyAgICB9CisKKyAgICBmdW5j
dGlvbiBsb2cobWVzc2FnZSkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29u
c29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4n
KSk7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwIjsKKyAgICBjb25zdCBzdGFydGluZ09yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5s
b2NhdGlvbi5vcmlnaW4gPT09IHN0YXJ0aW5nT3JpZ2luKSB7CisgICAgICAgICAgICBsb2FkVVJM
KCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRl
ZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisgICAg
ICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRp
ZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgICAgIGlmIChkaWRMb2Fk
QXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9h
ZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFkaWRMb2FkTm9u
QXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbm90
IGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2coIlBB
U1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7
CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgIH0K
Kzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNl
ci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1YmQ5NGVi
M2EzNDIzZWVhOGM4ODliYmNiZjNjYjQ3NWM2YzUxODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBp
bmctbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitDT05TT0xFIE1FU1NBR0U6IFBB
U1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCitQ
aW5nIHNlbnQgc3VjY2Vzc2Z1bGx5CitDT05URU5UX1RZUEU6IHRleHQvcGluZworSFRUUF9IT1NU
OiAxMjcuMC4wLjE6ODAwMAorSFRUUF9QSU5HX0ZST006IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9h
cHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbAorSFRUUF9Q
SU5HX1RPOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2st
cGluZy11c2VyLWluaXRpYXRlZC1kYXRhLnB5CitSRVFVRVNUX01FVEhPRDogUE9TVAorUkVRVUVT
VF9VUkk6IC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zYXZlLXBpbmcucHkKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24t
cGluZy1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC91c2VyLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzM2ZhMjM1Yzgw
MTg2NTUzY2I2MjJjNzE2NTUwMWZhMDNmZmI1NmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmct
bG9hZC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgor
PGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9uYXZpZ2F0aW9uL3BpbmctYXR0cmlidXRl
L3Jlc291cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cu
dGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7CisgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJy
ZXIoZmFsc2UsIGZ1bmN0aW9uICgpIHsgfSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEh5
cGVybGlua0F1ZGl0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgY2xpY2tFbGVtZW50KGRvY3VtZW50
LnF1ZXJ5U2VsZWN0b3IoImltZyIpKTsKK30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgp
Cit7CisgICAgY2xlYXJMYXN0UGluZ1Jlc3VsdEFuZFJ1blRlc3QodGVzdCk7Cit9Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpbWcgc3JjPSJub24tZXhpc3RlbnQtaW1hZ2UuanBn
IiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdXNlbWFwPSIjaW1hZ2VtYXAiPgorICAgIDxtYXAg
bmFtZT0iaW1hZ2VtYXAiPgorICAgICAgICA8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIwLDAs
MTI4LDEyOCIgaHJlZj0iLi4vbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy11c2VyLWlu
aXRpYXRlZC1kYXRhLnB5IiBwaW5nPSIuLi9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zYXZlLXBpbmcu
cHkiPgorICAgIDwvbWFwPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wb3N0LXJl
cXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQwYzk4MjdkNjI4ODEwZTAzMTY3NDIxNzA2ZDNkZGRlZDVlMGM0M2IKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0
dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05T
T0xFIE1FU1NBR0U6IFBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlh
dGVkIHJlcXVlc3RzCitUZXN0cyBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2Vk
IGZvciBQT1NUIHJlcXVlc3RzLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0
aW9uLXBvc3QtcmVxdWVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzYjQ1NDNiNGY3YWVhNTQ0NzdiZWZh
NDZhYzExN2U1MDg1ZjU2NTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1s
CkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgaXNBcHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdHMgbm9uIGFwcCBpbml0aWF0
ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3IgUE9TVCByZXF1ZXN0cy48L3A+Cis8Zm9ybSBpZD0i
dGVzdEZvcm0iIGFjdGlvbj0icmVzb3VyY2VzL3VzZXItaW5pdGlhdGVkLXBvc3QucHkiIHRhcmdl
dD0iX2JsYW5rIiByZWw9Im5vcmVmZXJyZXIiIG1ldGhvZD0icG9zdCI+Cis8aW5wdXQgdHlwZT0i
c3VibWl0IiB2YWx1ZT0iVGVzdCI+PC9pbnB1dD4KKzxmb3JtPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRl
c3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7Cit9CisKK2RvY3VtZW50LmZvcm1zWzBd
LnN1Ym1pdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24t
cHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVk
LnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5kNzk2YmI4MjY1MzIzNjYzZTYzNzliZmJjYjk1NWRhNjBiMWY5NmMw
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBQcmVmbGlnaHQgcmVzcG9uc2UgaXMgbm90IHN1
Y2Nlc3NmdWwKK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdp
dGhvdXQtYm9keS5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorVGVzdHMgbm9uIGFw
cCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3IgYXN5bmMgcHJlZmxpZ2h0cworCitQ
QVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cwor
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91
c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi43NTFjMmY3YzdhZjRiNTFiMzViOGE4MGUwZjM3Y2Q4MTg4MWQwMzg4
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbApAQCAtMCwwICsxLDQ3
IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlh
dGVkPWZhbHNlIF0gLS0+Cis8cD5UZXN0cyBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQg
bWFya2VkIGZvciBhc3luYyBwcmVmbGlnaHRzPC9wPgorCis8cHJlIGlkPSJjb25zb2xlIj48L3By
ZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rp
b24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUn
KS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOwor
fQorCit2YXIgcHJlZmxpZ2h0TGlua0RvbWFpbiA9ICJsb2NhbGhvc3QiOwordmFyIGNvbnRleHRI
b3N0ID0gIjEyNy4wLjAuMSI7Cit2YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkiCisKK2Z1bmN0
aW9uIHJ1blRlc3QoKQoreworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAg
ICByZXEub3BlbigiR0VUIiwgdXJsLCB0cnVlKTsKKyAgICByZXEuc2V0UmVxdWVzdEhlYWRlcigi
eC13ZWJraXQiLCAiZm9vIik7CisKKyAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAg
ICAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRB
cHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVk
UmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKwor
ICAgICAgICBpZiAoZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxv
ZygiRkFJTCBkaWQgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2Fk
Tm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3Qg
bG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVs
bHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorICAgIHJlcS5zZW5kKG51bGwpOworfQorCity
dW5UZXN0KCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1h
dHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRhMTAz
OWE3OWM1ZTdmZDM0MDc0ZDFhYmM3ZDRiOGQyNzM3NDA3MgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24t
cHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorQ09OU09MRSBNRVNT
QUdFOiBQcmVmbGlnaHQgcmVzcG9uc2UgaXMgbm90IHN1Y2Nlc3NmdWwKK0NPTlNPTEUgTUVTU0FH
RTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSBkdWUgdG8gYWNj
ZXNzIGNvbnRyb2wgY2hlY2tzLgorVGVzdHMgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0
IG1hcmtlZCBmb3Igc3luYyBwcmVmbGlnaHRzCisKK1BBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0
d29yayBlcnJvciBvY2N1cnJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBh
cHAgaW5pdGlhdGVkIHJlcXVlc3RzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmli
dXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTcwNjMyMDMxMmY1M2I5OGYx
MjRhNmU5NGQxYzZmMWFhNWQ0NDc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3lu
Yy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzxwPlRlc3RzIG5vbiBhcHAgaW5p
dGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIHN5bmMgcHJlZmxpZ2h0czwvcD4KKworPHBy
ZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
bWVzc2FnZSArICdcbicpKTsKK30KKwordmFyIHByZWZsaWdodExpbmtEb21haW4gPSAibG9jYWxo
b3N0IjsKK3ZhciBjb250ZXh0SG9zdCA9ICIxMjcuMC4wLjEiOwordmFyIHVybCA9ICJodHRwOi8v
bG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91
dC1ib2R5LnB5IgorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgcmVxID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOworICAgIHJl
cS5zZXRSZXF1ZXN0SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKKworICAgIHRyeSB7CisgICAg
ICAgIHJlcS5zZW5kKG51bGwpOworICAgICAgICBsb2coIlBBU1M6ICIgKyByZXEucmVzcG9uc2VU
ZXh0KTsKKyAgICB9IGNhdGNoIChleCkgeworICAgICAgICBsb2coIlBBU1M6ICIgKyBleCk7Cisg
ICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9h
ZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0
ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwor
CisgICAgICAgIGlmIChkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAg
bG9nKCJGQUlMIGRpZCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWRpZExv
YWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5v
dCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3Nm
dWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisKK3J1blRlc3QoKTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
dXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlv
bi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmZDlm
NjYxOTdmNGRhYjlmMjkzYTAzZjQyOGJhZGRjOGYyNmMyYjEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAor
MTI3LjAuMC4xOjgwMDAgLSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSBQcm90
ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyAtIFJlc3BvbmRpbmcgd2l0
aCB0ZXN0VXNlcm5hbWU6dGVzdFBhc3N3b3JkCisxMjcuMC4wLjE6ODAwMCAtIGRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZSAtIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2No
ZW1lSFRUUEJhc2ljIC0gU2ltdWxhdGluZyBjYW5jZWxsZWQgYXV0aGVudGljYXRpb24gc2hlZXQK
K1Rlc3RzIHNwZWN1bGF0aXZlIHJldmFsaWRhdGlvbiBvZiBhdXRoZW50aWNhdGVkIHJlc291cmNl
cy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdl
cywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgeGhyLnN0YXR1cyBpcyA0
MDEKK1BBU1MgU3VjY2Vzc2Z1bHkgbG9hZGVkLgorUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9u
bHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlz
IHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFs
aWRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
dXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5hMjFmOGI5YTZkNTVlOGZiNmQ3NGNiYTdiYmYzMzA5Mzg1NTUyNTk0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbApAQCAtMCwwICsxLDcwIEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPWZh
bHNlIF0gLS0+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgc3BlY3VsYXRpdmUgcmV2
YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0ZWQgcmVzb3VyY2VzLiIpOworanNUZXN0SXNBc3luYyA9
IHRydWU7CisKK3Rlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyh0
cnVlKTsKK3Rlc3RSdW5uZXIuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSgidGVzdFVzZXJuYW1l
Iik7Cit0ZXN0UnVubmVyLnNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmQoInRlc3RQYXNzd29yZCIp
OworCitzdGF0ZSA9ICJ3YXJtdXAiOworCitmdW5jdGlvbiBjbGVhckNyZWRlbnRpYWxTdG9yYWdl
KCkKK3sKKyAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3BlbigiR0VU
IiwgInJlc291cmNlcy9yZXNvdXJjZS13aXRoLWF1dGgucHk/b3RoZXIiLCBmYWxzZSwgImJhZFVz
ZXJuYW1lIiwgImJhZFBhc3N3b3JkIik7CisgICAgeGhyLnNlbmQoKTsKKyAgICBzaG91bGRCZSgi
eGhyLnN0YXR1cyIsICI0MDEiKTsKK30KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworfQorCitmdW5jdGlvbiBmcmFtZUxvYWRl
ZCgpCit7CisgICAgaWYgKHN0YXRlID09ICJ3YXJtdXAiKSB7CisgICAgICAgIC8vIE5hdmlnYXRl
IGZyYW1lIHRvICdhYm91dDpibGFuaycgdG8gZmx1c2ggdG8gc3VicmVzb3VyY2UgbG9hZHMgbWV0
YWRhdGEgdG8gZGlzay4KKyAgICAgICAgc3RhdGUgPSAiZmx1c2hpbmdNZXRhZGF0YSI7CisgICAg
ICAgIHRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhmYWxzZSk7
CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKS5zcmMgPSAiYWJv
dXQ6YmxhbmsiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChzdGF0ZSA9PSAiZmx1
c2hpbmdNZXRhZGF0YSIpIHsKKyAgICAgICAgY2xlYXJDcmVkZW50aWFsU3RvcmFnZSgpOworCisg
ICAgICAgIGludGVybmFscy5jbGVhck1lbW9yeUNhY2hlKCk7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhmYWxzZSk7CisKKyAgICAgICAgLy8g
TmF2aWdhdGUgZnJhbWUgdG8gaXRzIG9yaWdpbmFsIGxvY2F0aW9uIGFnYWluLiBUaGlzIHRpbWUg
aXQgc2hvdWxkIHNwZWN1bGF0aXZlbHkKKyAgICAgICAgLy8gdmFsaWRhdGUgc3VicmVzb3VyY2Vz
IGFzIHdlIGhhdmUgc3VicmVzb3VyY2UgbG9hZHMgbWV0YWRhdGEgaW4gdGhlIGRpc2sgY2FjaGUu
CisgICAgICAgIHN0YXRlID0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIjsKKyAgICAgICAgZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLnNyYyA9ICJyZXNvdXJjZXMvZnJhbWUt
d2l0aC1hdXRoZW50aWNhdGVkLXJlc291cmNlLnB5IjsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
KyAgICBpZiAoc3RhdGUgPT0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIikgeworICAgICAgICB0
ZXN0UGFzc2VkKCJTdWNjZXNzZnVseSBsb2FkZWQuIik7CisgICAgICAgIHZhciBkaWRMb2FkQXBw
SW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3Qo
KTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5l
ci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAgIGlmIChkaWRMb2Fk
QXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIGFw
cCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAg
ICAgIH0KKworICAgICAgICBpZiAoIWRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7Cisg
ICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVl
c3QiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAg
bG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1
ZXN0cyIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0K
K30KKworPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL2Zy
YW1lLXdpdGgtYXV0aGVudGljYXRlZC1yZXNvdXJjZS5weSIgb25sb2FkPSJmcmFtZUxvYWRlZCgp
Ij48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0
LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdh
dGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy11c2VyLWluaXRpYXRlZC1kYXRhLnB5IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLXVzZXItaW5p
dGlhdGVkLWRhdGEucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQwN2JmMDcyMDBjMTc3YjdmOWNiNjZiYWI3YjEw
NWNkMjhiOWEwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2
aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy11c2VyLWluaXRpYXRlZC1kYXRhLnB5CkBAIC0w
LDAgKzEsNDQgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKworaW1wb3J0IG9zCitpbXBvcnQg
c3lzCitpbXBvcnQgdGltZQorZnJvbSBwaW5nX2ZpbGVfcGF0aCBpbXBvcnQgcGluZ19maWxlcGF0
aAorCitzeXMuc3Rkb3V0LndyaXRlKCdDb250ZW50LVR5cGU6IHRleHQvaHRtbFxyXG5cclxuJykK
Kword2hpbGUgbm90IG9zLnBhdGguaXNmaWxlKHBpbmdfZmlsZXBhdGgpOgorICAgIHRpbWUuc2xl
ZXAoMC4wMSkKKworc3lzLnN0ZG91dC53cml0ZSgKKyAgICAnPGh0bWw+PGJvZHk+XG4nCisgICAg
J1Bpbmcgc2VudCBzdWNjZXNzZnVsbHknCispCisKK3BpbmdfZmlsZSA9IG9wZW4ocGluZ19maWxl
cGF0aCwgJ3InKQorZm9yIGxpbmUgaW4gcGluZ19maWxlLnJlYWRsaW5lcygpOgorICAgIHN5cy5z
dGRvdXQud3JpdGUoJzxicj57fScuZm9ybWF0KGxpbmUuc3RyaXAoKSkpCisKK3BpbmdfZmlsZS5j
bG9zZSgpCitpZiBvcy5wYXRoLmlzZmlsZShwaW5nX2ZpbGVwYXRoKToKKyAgICBvcy5yZW1vdmUo
cGluZ19maWxlcGF0aCkKKworc3lzLnN0ZG91dC53cml0ZSgKKyAgICAnPHNjcmlwdD4nCisgICAg
J2lmICh3aW5kb3cudGVzdFJ1bm5lcikge3tcbicKKyAgICAnICAgIHZhciBkaWRMb2FkQXBwSW5p
dGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTtc
bicKKyAgICAnICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5u
ZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTtcbicKKyAgICAnICAgIGlmIChkaWRM
b2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkge3tcbicKKyAgICAnICAgICAgICBjb25zb2xlLmxvZygi
RkFJTCBkaWQgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTtcbicKKyAgICAnICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTtcbicKKyAgICAnICAgIH19XG4nCisgICAgJyAgICBpZiAo
IWRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7e1xuJworICAgICcgICAgICAgICBjb25z
b2xlLmxvZygiRkFJTCBkaWQgbm90IGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpO1xu
JworICAgICcgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAgICcgICAgIH19
XG4nCisgICAgJyAgICBjb25zb2xlLmxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkg
bm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTtcbicKKyAgICAnICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpO1xuJworICAgICd9fVxuJworICAgICc8L3NjcmlwdD4nCisgICAgJzwvYm9keT48
L2h0bWw+JworKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433241</attachid>
            <date>2021-07-09 15:00:00 -0700</date>
            <delta_ts>2021-07-12 13:38:51 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227825-20210709145959.patch</filename>
            <type>text/plain</type>
            <size>68472</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5NzcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDM1NGIxNmM0ZTVhYjNlNTE5
NzgzYWQzNTI3NTVhOWZiNGY3MWM0NGQuLjZkNGU4YTAyNGI1OWM4NmNlZjQxNzBkNDE0NDIyNmU1
NGYxNTIwODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjEtMDctMDggIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgbGF5b3V0
IHRlc3RzIHRvIHNwZWNpZnkgYXBwIGluaXRpYXRlZCBsb2FkcyBvciBub3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgyNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODAzNTU1ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1h
dHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJl
cXVlc3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0
dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0
cmlidXRpb24tcGluZy1sb2FkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJl
ZmxpZ2h0LWFzeW5jLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxh
dGl2ZS1yZXZhbGlkYXRpb24uaHRtbAorCisgICAgICAgIEFkZCBhIHBhcmFtZXRlciB0byB0aGUg
V2ViVmlldyBjb25maWd1cmF0aW9uIHRoYXQgYWxsb3dzIGEgdGVzdCB0bworICAgICAgICBvdmVy
cmlkZSB0aGUgZGVmYXVsdCBOU1VSTFJlcXVlc3QgYXR0cmlidXRpb24gdmFsdWUuIFdlIGRvbid0
IG5lZWQKKyAgICAgICAgdGhpcyB0byBiZSBkeW5hbWljIHBlci10ZXN0LCBzbyB3ZSBjYW4gc3Rv
cmUgaXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SVBhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246
OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OmFwcEluaXRpYXRlZE92ZXJy
aWRlVmFsdWVGb3JUZXN0aW5nIGNvbnN0KToKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRp
b246OnNldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICgt
W1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3NldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JU
ZXN0aW5nOl0pOgorICAgICAgICAoLVtXS1dlYlZpZXdDb25maWd1cmF0aW9uIF9hcHBJbml0aWF0
ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZ10pOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29j
b2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3Mv
Q29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94
eTo6c2V0TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQpOgorCiAyMDIxLTA3LTA4ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFt3YXRjaE9TXSBU
YXBwaW5nICJEb25lIiBpbiBTY3JpYmJsZSB3aGVuIGZvY3VzaW5nIGFuIGVkaXRhYmxlIGVsZW1l
bnQgc2hvdWxkIGRpc21pc3MgUXVpY2tib2FyZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXggYTJmMWFjNTUwY2JiNjE2
NDdhNzg4OGQ3OWU3NDA2MzE5ODBmYTM5Ni4uOGQ3NjY0YjlkZDhkNzFlOGQ4ZjUwOWFiYTAxNWEy
Y2FiZjljOTMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBh
Z2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
UGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC05Niw2ICs5Niw3IEBAIFJlZjxQYWdlQ29uZmlndXJh
dGlvbj4gUGFnZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAogCiAgICAgY29weS0+bV9tZWRp
YUNhcHR1cmVFbmFibGVkID0gdGhpcy0+bV9tZWRpYUNhcHR1cmVFbmFibGVkOwogICAgIGNvcHkt
Pm1faHR0cHNVcGdyYWRlRW5hYmxlZCA9IHRoaXMtPm1faHR0cHNVcGdyYWRlRW5hYmxlZDsKKyAg
ICBjb3B5LT5tX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nID0gdGhpcy0+bV9h
cHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZzsKIAogICAgIHJldHVybiBjb3B5Owog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1
cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaAppbmRleCBkMzNiNzZmY2FlYzc1OGY5NjJkMmUwMDVjYjI1YmZkYmZlMmQxM2YyLi42ZGQw
ZGM4Zjg4YmMxZGFiYTI3ZDY4ODhhMDIyYzIzODMwZDM0M2RmIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtMTcwLDYgKzE3
MCw5IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKFdU
Rjo6U3RyaW5nJiYgaWRlbnRpZmllcikgeyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyID0g
V1RGTW92ZShpZGVudGlmaWVyKTsgfQogICAgIGNvbnN0IFdURjo6U3RyaW5nJiBhdHRyaWJ1dGVk
QnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50
aWZpZXI7IH0KIAorICAgIHN0ZDo6b3B0aW9uYWw8Ym9vbD4gYXBwSW5pdGlhdGVkT3ZlcnJpZGVW
YWx1ZUZvclRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFs
dWVGb3JUZXN0aW5nOyB9CisgICAgdm9pZCBzZXRBcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9y
VGVzdGluZyhzdGQ6Om9wdGlvbmFsPGJvb2w+IGFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JU
ZXN0aW5nKSB7IG1fYXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcgPSBhcHBJbml0
aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZzsgfQorCiBwcml2YXRlOgogCiAgICAgUmVmUHRy
PFdlYktpdDo6V2ViUHJvY2Vzc1Bvb2w+IG1fcHJvY2Vzc1Bvb2w7CkBAIC0yMjEsNiArMjI0LDgg
QEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNvb2tpZUJs
b2NraW5nIG1fc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgeyBXZWJDb3JlOjpT
aG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzo6Tm8gfTsKICAgICBXVEY6OlN0cmlu
ZyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOworCisgICAgc3RkOjpvcHRpb25hbDxib29s
PiBtX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOwogfTsKIAogfSAvLyBuYW1l
c3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCmluZGV4IDgyNDRlMTI0MjEyNTU0YjJlYzY0
Zjg0NDRmNTUzMmVmMmEzNTVmODcuLjY2ZGU0MGIyMzU1N2Q3M2I1NTA2MTI3ZGIxMzc0ZmY4YTdh
NDk2MTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dl
YlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9D
b2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCkBAIC04NDQsNiArODQ0LDE3IEBAIEFMTE9X
X0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAogewogICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+
c2V0TGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5kRG9tYWlucyhsaW1pdHNUb0FwcEJvdW5kRG9t
YWlucyk7CiB9CisKKy0gKHZvaWQpX3NldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0
aW5nOihzdGQ6Om9wdGlvbmFsPEJPT0w+KXZhbHVlCit7CisgICAgX3BhZ2VDb25maWd1cmF0aW9u
LT5zZXRBcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZyh2YWx1ZSk7Cit9CisKKy0g
KHN0ZDo6b3B0aW9uYWw8Qk9PTD4pX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5n
Cit7CisgICAgcmV0dXJuIF9wYWdlQ29uZmlndXJhdGlvbi0+YXBwSW5pdGlhdGVkT3ZlcnJpZGVW
YWx1ZUZvclRlc3RpbmcoKTsKK30KKwogI2VuZGlmIC8vIFBMQVRGT1JNKElPU19GQU1JTFkpCiAK
IC0gKEJPT0wpX2lnbm9yZXNBcHBCb3VuZERvbWFpbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0ZS5oIGIv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Q
cml2YXRlLmgKaW5kZXggYWNmNWMwMmM3NDhlNzEwYWE4YWIwYWE5MGJkYTM2YjMxZDQ5MzgzZS4u
MWQ0MDMxNzRlNWRlNjNiZjMyMWJiMmMwYTdiMzNkZjUyNzZiMDNjYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2
YXRlLmgKKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0Nv
bmZpZ3VyYXRpb25Qcml2YXRlLmgKQEAgLTI1LDYgKzI1LDcgQEAKIAogI2ltcG9ydCA8V2ViS2l0
L1dLQmFzZS5oPgogI2ltcG9ydCA8V2ViS2l0L1dLV2ViVmlld0NvbmZpZ3VyYXRpb24uaD4KKyNp
bXBvcnQgPHd0Zi9SZWZQdHIuaD4KIAogI2lmIFRBUkdFVF9PU19JUEhPTkUKIHR5cGVkZWYgTlNf
RU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CkBAIC05NSw2ICs5Niw3IEBAIHR5
cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkg
KG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVp
Y2tMb29rUHJldmlldzopIEJPT0wgX3Nob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlj
a0xvb2tQcmV2aWV3IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEzLjApKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldENhblNob3dXaGlsZUxvY2tlZDopIEJPT0wgX2NhblNob3dXaGls
ZUxvY2tlZCBXS19BUElfQVZBSUxBQkxFKGlvcygxMy4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRDbGlja0ludGVyYWN0aW9uRHJpdmVyRm9yVGVzdGluZzopIGlkIDxfVUlD
bGlja0ludGVyYWN0aW9uRHJpdmluZz4gX2NsaWNrSW50ZXJhY3Rpb25Ecml2ZXJGb3JUZXN0aW5n
IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEzLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0
ZXI9X3NldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOikgc3RkOjpvcHRpb25h
bDxCT09MPiBfYXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcgV0tfQVBJX0FWQUlM
QUJMRShtYWNvcygxMi4wKSwgaW9zKDE1LjApKTsKICNlbHNlCiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRTaG93c1VSTHNJblRvb2xUaXBzOikgQk9PTCBfc2hvd3NVUkxzSW5Ub29s
VGlwcyBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CiBAcHJvcGVydHkgKG5vbmF0b21p
Yywgc2V0dGVyPV9zZXRTZXJ2aWNlQ29udHJvbHNFbmFibGVkOikgQk9PTCBfc2VydmljZUNvbnRy
b2xzRW5hYmxlZCBXS19BUElfQVZBSUxBQkxFKG1hY29zKDEwLjEyKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IDliMDFm
NDAyMjcxNTIxMDJlNDdlNmNjMjVkYmRiMjYxZDE3N2JmOWIuLmI3NDEzZDVkMmE3NTFhNzQxM2M4
ZGNiODUyYWY2MWU2NjE2OTQxNWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNz
L0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJX
ZWJQYWdlUHJveHkuaCIKIAogI2ltcG9ydCAiQVBJQXR0YWNobWVudC5oIgorI2ltcG9ydCAiQVBJ
UGFnZUNvbmZpZ3VyYXRpb24uaCIKICNpbXBvcnQgIkFQSVVJQ2xpZW50LmgiCiAjaW1wb3J0ICJD
b2NvYUltYWdlLmgiCiAjaW1wb3J0ICJDb25uZWN0aW9uLmgiCkBAIC02NjMsNiArNjY0LDkgQEAg
dm9pZCBXZWJQYWdlUHJveHk6OnNldExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKFJlc291
cmNlUmVxdWVzdCYgcmVxdWVzdCkKIHsKICNpZiBFTkFCTEUoQVBQX1BSSVZBQ1lfUkVQT1JUKQog
ICAgIGF1dG8gaXNBcHBJbml0aWF0ZWQgPSByZXF1ZXN0Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpI
VFRQQm9keVVwZGF0ZVBvbGljeTo6RG9Ob3RVcGRhdGVIVFRQQm9keSkuYXR0cmlidXRpb24gPT0g
TlNVUkxSZXF1ZXN0QXR0cmlidXRpb25EZXZlbG9wZXI7CisgICAgaWYgKG1fY29uZmlndXJhdGlv
bi0+YXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcoKSkKKyAgICAgICAgaXNBcHBJ
bml0aWF0ZWQgPSAqbV9jb25maWd1cmF0aW9uLT5hcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9y
VGVzdGluZygpOworCiAgICAgcmVxdWVzdC5zZXRJc0FwcEluaXRpYXRlZChpc0FwcEluaXRpYXRl
ZCk7CiAgICAgbV9sYXN0TmF2aWdhdGlvbldhc0FwcEluaXRpYXRlZCA9IGlzQXBwSW5pdGlhdGVk
OwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cK
aW5kZXggNGYxYjNlYWZjNjg4MzhmMjA5MmZmNDJjMDgxNDEwNjYyMmZhZWJmOS4uYzMyYTBiZGRl
N2I3NWFmYTJiMGZlMWM1NmM3NTYzY2NlZjQ0ODQ5OCAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdl
TG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTA4ICBL
YXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93
IGxheW91dCB0ZXN0cyB0byBzcGVjaWZ5IGFwcCBpbml0aWF0ZWQgbG9hZHMgb3Igbm90CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjc4MjUKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzgwMzU1NTgyPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBhIHRlc3Qgb3B0aW9uIHRoYXQgc3BlY2lmaWVzIHdo
ZXRoZXIgdGhlIHRlc3Qgc2hvdWxkIG1hcmsgdGhlCisgICAgICAgIG1haW4gcGFnZSBuYXZpZ2F0
aW9uIGFzIGFwcC1pbml0aWF0ZWQgb3Igbm90LgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5l
ci9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjpkZWZhdWx0cyk6
CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjprZXlUeXBlTWFwcGluZyk6CisgICAgICAgICog
V2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9u
czo6aXNBcHBJbml0aWF0ZWQgY29uc3QpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToKKyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6
OnBsYXRmb3JtQ3JlYXRlV2ViVmlldyk6CisKIDIwMjEtMDctMDggIFlpamlhIEh1YW5nICA8eWlq
aWFfaHVhbmdAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCBZaWppYSBIdWFuZyBhcyBhIGNvbW1p
dHRlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAppbmRleCA0NjkwMTM2NTM3
YWEyODNlZmZhZTVkMWY5NTE0MTE2MWZhOGJlOTExLi4yZDI5YWFlOThlYTRiMjU1Yjc5MmU0MDg1
Y2Q5MWY1ZTRkMTM1MzRiIDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RP
cHRpb25zLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcApA
QCAtMTQzLDYgKzE0Myw3IEBAIGNvbnN0IFRlc3RGZWF0dXJlcyYgVGVzdE9wdGlvbnM6OmRlZmF1
bHRzKCkKICAgICAgICAgICAgIHsgImlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMi
LCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiLCBm
YWxzZSB9LAogICAgICAgICAgICAgeyAiaXNBcHBCb3VuZFdlYlZpZXciLCBmYWxzZSB9LAorICAg
ICAgICAgICAgeyAiaXNBcHBJbml0aWF0ZWQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJydW5T
aW5nbHkiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3BlblBhbmVs
IiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAic2hvdWxkUHJlc2VudFBvcG92ZXJzIiwgdHJ1ZSB9
LApAQCAtMTk1LDYgKzE5Niw3IEBAIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6OnN0cmlu
ZywgVGVzdEhlYWRlcktleVR5cGU+JiBUZXN0T3B0aW9uczo6a2V5VHlwZU1hCiAgICAgICAgIHsg
Imlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMiLCBUZXN0SGVhZGVyS2V5VHlwZTo6
Qm9vbFRlc3RSdW5uZXIgfSwKICAgICAgICAgeyAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMi
LCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKICAgICAgICAgeyAiaXNBcHBC
b3VuZFdlYlZpZXciLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKKyAgICAg
ICAgeyAiaXNBcHBJbml0aWF0ZWQiLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIg
fSwKICAgICAgICAgeyAicnVuU2luZ2x5IiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xUZXN0UnVu
bmVyIH0sCiAgICAgICAgIHsgInNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCIsIFRlc3RIZWFkZXJL
ZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9LAogICAgICAgICB7ICJzaG91bGRQcmVzZW50UG9wb3Zl
cnMiLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKZGlmZiAtLWdpdCBhL1Rv
b2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvVGVzdE9wdGlvbnMuaAppbmRleCA5MzYwMzg3NDZjYWI3ZTllOWQ3OTJhNWU5OWNiODVmY2E3
MTJmMmU5Li41ZTA3MzZhZGJlZjc2YzY4ZmIyYmM0ZDViYzQ1MDdkZDc1NmE3MmJiIDEwMDY0NAot
LS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9vbHMvV2Vi
S2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCkBAIC01OSw2ICs1OSw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMoKSBjb25zdCB7IHJldHVy
biBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgiaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdU
aW1lb3V0cyIpOyB9CiAgICAgYm9vbCBpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cygpIGNvbnN0
IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJpZ25vcmVzVmlld3BvcnRTY2Fs
ZUxpbWl0cyIpOyB9CiAgICAgYm9vbCBpc0FwcEJvdW5kV2ViVmlldygpIGNvbnN0IHsgcmV0dXJu
IGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJpc0FwcEJvdW5kV2ViVmlldyIpOyB9CisgICAg
Ym9vbCBpc0FwcEluaXRpYXRlZCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVy
ZVZhbHVlKCJpc0FwcEluaXRpYXRlZCIpOyB9CiAgICAgYm9vbCBydW5TaW5nbHkoKSBjb25zdCB7
IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgicnVuU2luZ2x5Iik7IH0KICAgICBi
b29sIHNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVu
bmVyRmVhdHVyZVZhbHVlKCJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiKTsgfQogICAgIGJvb2wg
c2hvdWxkUHJlc2VudFBvcG92ZXJzKCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0
dXJlVmFsdWUoInNob3VsZFByZXNlbnRQb3BvdmVycyIpOyB9CmRpZmYgLS1naXQgYS9Ub29scy9X
ZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggOThjY2I0ZGI5
YWIwOGJhYjI5MzMwYWI0Y2JhMmUyNDVlOTk0NGY3ZC4uNzM0OThlMWRkNTA3MzE5MTBiZjUyMmZk
OWUzMjhjOWNmZGMyODhlMiAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2Nv
YS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29j
b2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMTY5LDYgKzE2OSw4IEBAIHZvaWQgVGVzdENv
bnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlV2ViVmlldyhXS1BhZ2VDb25maWd1cmF0aW9uUmVmLCBj
b25zdCBUZXN0T3B0CiAgICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIHNldFNlbGVjdGlvbkdy
YW51bGFyaXR5OldLU2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXJdOwogICAgIGlmIChvcHRp
b25zLmlzQXBwQm91bmRXZWJWaWV3KCkpCiAgICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIHNl
dExpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnM6WUVTXTsKKworICAgIFtjb3BpZWRD
b25maWd1cmF0aW9uIF9zZXRBcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZzpvcHRp
b25zLmlzQXBwSW5pdGlhdGVkKCldOwogI2VuZGlmCiAKICAgICBpZiAob3B0aW9ucy5lbmFibGVB
dHRhY2htZW50RWxlbWVudCgpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIv
TGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDc1OGFlMWU3NGFkZTNkOWU1ZmViNjg0YzM1NzIz
YWI3N2NjZDJkMzMuLjRjMjdjOWQzMzNjMTQyZWI3ZDVmYmUzMmQzODIwMDdlYmY4YjdjOGUgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKQEAgLTEsMyArMSw0MSBAQAorMjAyMS0wNy0wOCAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVf
Y2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBsYXlvdXQgdGVzdHMgdG8gc3BlY2lm
eSBhcHAgaW5pdGlhdGVkIGxvYWRzIG9yIG5vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3ODI1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MDM1
NTU4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGRlZCBuZXcgdGVzdHMgdG8gY292ZXIgdGhlIHVzZXIgaW5pdGlhdGVkIGNhc2UuCisKKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tbG9hZC11
cmwtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1sb2FkLXVy
bC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0OiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRy
aWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbDogQ29waWVkIGZy
b20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24t
cGluZy1sb2FkLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wb3N0
LXJlcXVlc3QtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcG9zdC1y
ZXF1ZXN0Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBw
LWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZs
aWdodC1hc3luYy1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sOiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1w
cmVmbGlnaHQtYXN5bmMuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0OiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlv
bi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWw6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0
aW9uLXByZWZsaWdodC1zeW5jLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3Rl
ZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQuCisg
ICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXNw
ZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlk
YXRpb24uaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNv
dXJjZXMvYXBwLWluaXRpYXRlZC1wb3N0LnB5OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMvcG9zdC5weS4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMvdXNlci1pbml0aWF0ZWQtcG9z
dC5weTogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L3Jlc291cmNlcy9wb3N0LnB5LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3VzZXItYXR0cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxv
YWQtdXJsLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sLgorICAgICAgICAqIGh0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcGluZy1sb2FkLWV4cGVjdGVk
LnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L2F0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbDog
UmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0
dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1
dGlvbi1wb3N0LXJlcXVlc3QuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sLgorICAg
ICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJl
ZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBl
Y3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1h
dHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1hc3lu
Yy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0
cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0
LXN5bmMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZs
aWdodC1zeW5jLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
dXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0OiBS
ZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0
cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1bGF0
aXZlLXJldmFsaWRhdGlvbi5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9u
Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1w
aW5nLXVzZXItaW5pdGlhdGVkLWRhdGEucHk6IEFkZGVkLgorCiAyMDIxLTA3LTA4ICBDaHJpcyBE
dW1leiAgPGNkdW1lekBhcHBsZS5jb20+CiAKICAgICAgICAgW0luZGV4ZWREQl0gS2V5UGF0aCB2
YWxpZGl0eSBjaGVja3Mgc2hvdWxkIGhhcHBlbiBvbiB0aGUgY2xvbmVkIHZhbHVlLCBub3QgdGhl
IG9yaWdpbmFsIG9uZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1sb2Fk
LXVybC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTAwMjQ4MDQ1MTU5OWZiNDA4ZWQwMGY0OGJm
ZDY3MjhmMjZkNmRmNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwzIEBACitUZXN0IGxvYWRVUkwgcmVxdWVzdHMgYXJlIHN1Y2Nlc2Z1bGx5IGF0
dHJpYnV0ZWQgYXMgYXBwIGluaXRpYXRlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5
IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24t
bG9hZC11cmwuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wOGMzNzUyODZjM2ZiNzMxNWM4MGJhMGU5MmJmMWFi
M2FkY2I2YThjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwKQEAgLTAsMCArMSw0
OCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRp
YXRlZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJj
ZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQo
J3J1blRlc3QoKScsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0IGxvYWRVUkwgcmVx
dWVzdHMgYXJlIHN1Y2Nlc2Z1bGx5IGF0dHJpYnV0ZWQgYXMgYXBwIGluaXRpYXRlZC48L2Rpdj4K
KzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHRl
c3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvYWRVUkwoKSB7
CisgICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIv
YXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sIjsKKyAgICB9
CisKKyAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1l
c3NhZ2UgKyAnXG4nKSk7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBzdGFydGluZ09yaWdpbiA9ICJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlm
IChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHN0YXJ0aW5nT3JpZ2luKSB7CisgICAgICAg
ICAgICBsb2FkVVJMKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXIgZGlkTG9h
ZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1
ZXN0KCk7CisgICAgICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0
ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgICAg
IGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgICAgIGxv
ZygiRkFJTCBkaWQgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAg
ICAgIGlmICghZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgICAgICBs
b2coIkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAg
ICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVx
dWVzdHMiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1s
b2FkLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjY1
NjI3MzkwZmMwZDVmYzIwZGU5ZjMzOGI1YTZiZmFkNWY4OGQ2ZTQKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRp
b24tcGluZy1sb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK0NPTlNPTEUgTUVTU0FH
RTogUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cwor
UGluZyBzZW50IHN1Y2Nlc3NmdWxseQorQ09OVEVOVF9UWVBFOiB0ZXh0L3BpbmcKK0hUVFBfSE9T
VDogMTI3LjAuMC4xOjgwMDAKK0hUVFBfUElOR19GUk9NOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
YXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbAorSFRUUF9Q
SU5HX1RPOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2st
cGluZy1hcHAtaW5pdGlhdGVkLWRhdGEucHkKK1JFUVVFU1RfTUVUSE9EOiBQT1NUCitSRVFVRVNU
X1VSSTogL25hdmlnYXRpb24vcmVzb3VyY2VzL3NhdmUtcGluZy5weQpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBp
bmctbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIxMWFiZjgzOWJkZmUx
NjdhMjQwZWVkYjQ2ZDU4MTgyNjhkZjUzNWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1sb2Fk
Lmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBpc0FwcEluaXRpYXRlZD10cnVlIF0gLS0+Cis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vbmF2aWdhdGlvbi9waW5nLWF0dHJpYnV0ZS9yZXNv
dXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZERvd25ncmFkZVJlZmVycmVyKGZh
bHNlLCBmdW5jdGlvbiAoKSB7IH0pOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRIeXBlcmxp
bmtBdWRpdGluZ0VuYWJsZWQodHJ1ZSk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGNsaWNrRWxlbWVudChkb2N1bWVudC5xdWVy
eVNlbGVjdG9yKCJpbWciKSk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbiAoKQorewor
ICAgIGNsZWFyTGFzdFBpbmdSZXN1bHRBbmRSdW5UZXN0KHRlc3QpOworfQorPC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKyAgICA8aW1nIHNyYz0ibm9uLWV4aXN0ZW50LWltYWdlLmpwZyIgd2lk
dGg9IjEyOCIgaGVpZ2h0PSIxMjgiIHVzZW1hcD0iI2ltYWdlbWFwIj4KKyAgICA8bWFwIG5hbWU9
ImltYWdlbWFwIj4KKyAgICAgICAgPGFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0iMCwwLDEyOCwx
MjgiIGhyZWY9Ii4uL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmctYXBwLWluaXRpYXRl
ZC1kYXRhLnB5IiBwaW5nPSIuLi9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zYXZlLXBpbmcucHkiPgor
ICAgIDwvbWFwPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9h
cHAtYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lMjQ1
ZTM0MGYxN2RlOGU0ZjNlMzU5Y2MxYjlmNDE0NzY2ZGVjZjFjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9u
LXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NB
R0U6IFBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMK
K1Rlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3IgUE9TVCByZXF1ZXN0
cy4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hcHAtYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uZmQ2OWNjNmQ4ZDlkNzRjNjZmNzc3ZmU5YjYyZDYwMTEzNzJmZGYwZAot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbApAQCAtMCwwICsxLDIyIEBACis8
IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPXRy
dWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0
IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKzxib2R5PgorPHA+VGVzdHMgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZv
ciBQT1NUIHJlcXVlc3RzLjwvcD4KKzxmb3JtIGlkPSJ0ZXN0Rm9ybSIgYWN0aW9uPSJyZXNvdXJj
ZXMvYXBwLWluaXRpYXRlZC1wb3N0LnB5IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub3JlZmVycmVy
IiBtZXRob2Q9InBvc3QiPgorPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlRlc3QiPjwvaW5w
dXQ+Cis8Zm9ybT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dz
KHRydWUpOworfQorCitkb2N1bWVudC5mb3Jtc1swXS5zdWJtaXQoKTsKKworPC9zY3JpcHQ+Cis8
L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1
dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjliNWVlYTk0MjJh
ZDBjYWVlNzY2N2JjZDQwNmRiOTNlMGE1ZTllMmUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxp
Z2h0LWFzeW5jLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTog
UHJlZmxpZ2h0IHJlc3BvbnNlIGlzIG5vdCBzdWNjZXNzZnVsCitDT05TT0xFIE1FU1NBR0U6IFhN
TEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVx
dWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkgZHVlIHRvIGFjY2VzcyBj
b250cm9sIGNoZWNrcy4KK1Rlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBm
b3IgYXN5bmMgcHJlZmxpZ2h0cworCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAg
aW5pdGlhdGVkIHJlcXVlc3RzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlv
bi1wcmVmbGlnaHQtYXN5bmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMGZkZWM4YWM5Y2U4ZWJkMzgxNzZl
MzBkYWU4YzQ1OWYwZTM5YTRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5o
dG1sCkBAIC0wLDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVu
bmVyIFsgaXNBcHBJbml0aWF0ZWQ9dHJ1ZSBdIC0tPgorPHA+VGVzdHMgYXBwIGluaXRpYXRlZCBy
ZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBhc3luYyBwcmVmbGlnaHRzPC9wPgorCis8cHJlIGlkPSJj
b25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
K30KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdl
ICsgJ1xuJykpOworfQorCit2YXIgcHJlZmxpZ2h0TGlua0RvbWFpbiA9ICJsb2NhbGhvc3QiOwor
dmFyIGNvbnRleHRIb3N0ID0gIjEyNy4wLjAuMSI7Cit2YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHku
cHkiCisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJl
cXVlc3QoKTsKKyAgICByZXEub3BlbigiR0VUIiwgdXJsLCB0cnVlKTsKKyAgICByZXEuc2V0UmVx
dWVzdEhlYWRlcigieC13ZWJraXQiLCAiZm9vIik7CisKKyAgICByZXEub25lcnJvciA9IGZ1bmN0
aW9uKCkgeworICAgICAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVu
bmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisgICAgICAgIHZhciBkaWRMb2FkTm9u
QXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJl
cXVlc3QoKTsKKworICAgICAgICBpZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsK
KyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0
Iik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorCisg
ICAgICAgIGlmICghZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxv
ZygiRkFJTCBkaWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZygiUEFT
UyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisgICAgcmVxLnNlbmQobnVsbCk7
Cit9CisKK3J1blRlc3QoKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5j
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NDAxNmM1MzFlMDY1OWFkY2RkNjM1NTUyM2VhMWIwYWQyZDVhMmIxYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1
dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitDT05TT0xF
IE1FU1NBR0U6IFByZWZsaWdodCByZXNwb25zZSBpcyBub3Qgc3VjY2Vzc2Z1bAorQ09OU09MRSBN
RVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IGR1ZSB0
byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitUZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdl
dCBtYXJrZWQgZm9yIHN5bmMgcHJlZmxpZ2h0cworCitQQVNTOiBOZXR3b3JrRXJyb3I6ICBBIG5l
dHdvcmsgZXJyb3Igb2NjdXJyZWQuCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAg
aW5pdGlhdGVkIHJlcXVlc3RzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9u
LXByZWZsaWdodC1zeW5jLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGNkNjE2OGIyMjdjYTVkYThiNTQ2ZmU2
YWFkYTY4ODhhMmZiYmZmNQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1s
CkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVy
IFsgaXNBcHBJbml0aWF0ZWQ9dHJ1ZSBdIC0tPgorPHA+VGVzdHMgYXBwIGluaXRpYXRlZCByZXF1
ZXN0cyBnZXQgbWFya2VkIGZvciBzeW5jIHByZWZsaWdodHM8L3A+CisKKzxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQor
CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAn
XG4nKSk7Cit9CisKK3ZhciBwcmVmbGlnaHRMaW5rRG9tYWluID0gImxvY2FsaG9zdCI7Cit2YXIg
Y29udGV4dEhvc3QgPSAiMTI3LjAuMC4xIjsKK3ZhciB1cmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSIK
KworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKKyAgICByZXEuc2V0UmVxdWVz
dEhlYWRlcigieC13ZWJraXQiLCAiZm9vIik7CisKKyAgICB0cnkgeworICAgICAgICByZXEuc2Vu
ZChudWxsKTsKKyAgICAgICAgbG9nKCJQQVNTOiAiICsgcmVxLnJlc3BvbnNlVGV4dCk7CisgICAg
fSBjYXRjaCAoZXgpIHsKKyAgICAgICAgbG9nKCJQQVNTOiAiICsgZXgpOworICAgICAgICB2YXIg
ZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0
ZWRSZXF1ZXN0KCk7CisgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9
IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKworICAgICAgICBp
ZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJ
TCBkaWQgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZGlkTG9hZEFw
cEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbm90IGxvYWQg
YXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVk
IG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICB9Cit9CisKK3J1blRlc3QoKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9u
LXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2
YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iMjFjMmQ1OTk0MTQ0ZTgxMGUxNTc3
ZWZmYmNkMDljZTA2ZGYzZGRkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFs
aWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorMTI3LjAuMC4xOjgwMDAgLSBk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZUhUVFBCYXNpYyAtIFJlc3BvbmRpbmcgd2l0aCB0ZXN0VXNlcm5hbWU6dGVz
dFBhc3N3b3JkCisxMjcuMC4wLjE6ODAwMCAtIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSAtIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljIC0gU2lt
dWxhdGluZyBjYW5jZWxsZWQgYXV0aGVudGljYXRpb24gc2hlZXQKK1Rlc3RzIHNwZWN1bGF0aXZl
IHJldmFsaWRhdGlvbiBvZiBhdXRoZW50aWNhdGVkIHJlc291cmNlcy4KKworT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgorCisKK1BBU1MgeGhyLnN0YXR1cyBpcyA0MDEKK1BBU1MgU3VjY2Vzc2Z1
bHkgbG9hZGVkLgorUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCBy
ZXF1ZXN0cworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2FwcC1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1zcGVjdWxh
dGl2ZS1yZXZhbGlkYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wNDFmNWQ2ZDE0NjA4YTdmMDNjZWY2
NjBjMzk3M2E1YTAzZTIwOTQ5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFs
aWRhdGlvbi5odG1sCkBAIC0wLDAgKzEsNzMgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9dHJ1ZSBdIC0tPgorPHNjcmlwdCBzcmM9Ii9q
cy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVz
Y3JpcHRpb24oIlRlc3RzIHNwZWN1bGF0aXZlIHJldmFsaWRhdGlvbiBvZiBhdXRoZW50aWNhdGVk
IHJlc291cmNlcy4iKTsKK2pzVGVzdElzQXN5bmMgPSB0cnVlOworCit0ZXN0UnVubmVyLnNldEhh
bmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXModHJ1ZSk7Cit0ZXN0UnVubmVyLnNldEF1dGhl
bnRpY2F0aW9uVXNlcm5hbWUoInRlc3RVc2VybmFtZSIpOwordGVzdFJ1bm5lci5zZXRBdXRoZW50
aWNhdGlvblBhc3N3b3JkKCJ0ZXN0UGFzc3dvcmQiKTsKKworc3RhdGUgPSAid2FybXVwIjsKKwor
ZnVuY3Rpb24gY2xlYXJDcmVkZW50aWFsU3RvcmFnZSgpCit7CisgICAgeGhyID0gbmV3IFhNTEh0
dHBSZXF1ZXN0KCk7CisgICAgeGhyLm9wZW4oIkdFVCIsICJyZXNvdXJjZXMvcmVzb3VyY2Utd2l0
aC1hdXRoLnB5P290aGVyIiwgZmFsc2UsICJiYWRVc2VybmFtZSIsICJiYWRQYXNzd29yZCIpOwor
ICAgIHhoci5zZW5kKCk7CisgICAgc2hvdWxkQmUoInhoci5zdGF0dXMiLCAiNDAxIik7Cit9CisK
K2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdc
bicpKTsKK30KKworZnVuY3Rpb24gZnJhbWVMb2FkZWQoKQoreworICAgIGlmIChzdGF0ZSA9PSAi
d2FybXVwIikgeworICAgICAgICAvLyBOYXZpZ2F0ZSBmcmFtZSB0byAnYWJvdXQ6YmxhbmsnIHRv
IGZsdXNoIHRvIHN1YnJlc291cmNlIGxvYWRzIG1ldGFkYXRhIHRvIGRpc2suCisgICAgICAgIHN0
YXRlID0gImZsdXNoaW5nTWV0YWRhdGEiOworICAgICAgICB0ZXN0UnVubmVyLnNldEhhbmRsZXNB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZXMoZmFsc2UpOworICAgICAgICBkb2N1bWVudC5nZXRFbGVt
ZW50QnlJZCgidGVzdEZyYW1lIikuc3JjID0gImFib3V0OmJsYW5rIjsKKyAgICAgICAgcmV0dXJu
OworICAgIH0KKyAgICBpZiAoc3RhdGUgPT0gImZsdXNoaW5nTWV0YWRhdGEiKSB7CisgICAgICAg
IGNsZWFyQ3JlZGVudGlhbFN0b3JhZ2UoKTsKKworICAgICAgICBpbnRlcm5hbHMuY2xlYXJNZW1v
cnlDYWNoZSgpOworICAgICAgICB0ZXN0UnVubmVyLnNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZXMoZmFsc2UpOworCisgICAgICAgIC8vIE5hdmlnYXRlIGZyYW1lIHRvIGl0cyBvcmln
aW5hbCBsb2NhdGlvbiBhZ2Fpbi4gVGhpcyB0aW1lIGl0IHNob3VsZCBzcGVjdWxhdGl2ZWx5Cisg
ICAgICAgIC8vIHZhbGlkYXRlIHN1YnJlc291cmNlcyBhcyB3ZSBoYXZlIHN1YnJlc291cmNlIGxv
YWRzIG1ldGFkYXRhIGluIHRoZSBkaXNrIGNhY2hlLgorICAgICAgICBzdGF0ZSA9ICJzcGVjdWxh
dGl2ZVJldmFsaWRhdGlvbiI7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0
RnJhbWUiKS5zcmMgPSAicmVzb3VyY2VzL2ZyYW1lLXdpdGgtYXV0aGVudGljYXRlZC1yZXNvdXJj
ZS5weSI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHN0YXRlID09ICJzcGVjdWxh
dGl2ZVJldmFsaWRhdGlvbiIpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bHkgbG9h
ZGVkLiIpOworICAgICAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVu
bmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisgICAgICAgIHZhciBkaWRMb2FkTm9u
QXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJl
cXVlc3QoKTsKKworICAgICAgICBpZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsK
KyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0
Iik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgfQorCisgICAgICAgIGlmICghZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAg
ICAgICAgICAgIGxvZygiRkFJTCBkaWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7
CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAg
ICAgfQorCisgICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGlu
aXRpYXRlZCByZXF1ZXN0cyIpOworCisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICBy
ZXR1cm47CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3Jj
PSJyZXNvdXJjZXMvZnJhbWUtd2l0aC1hdXRoZW50aWNhdGVkLXJlc291cmNlLnB5IiBvbmxvYWQ9
ImZyYW1lTG9hZGVkKCkiPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNl
cy9qcy10ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRp
b24tbG9hZC11cmwtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBh
MDAyNDgwNDUxNTk5ZmI0MDhlZDAwZjQ4YmZkNjcyOGYyNmQ2ZGY2Li4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dAorKysgL2Rl
di9udWxsCkBAIC0xLDMgKzAsMCBAQAotVGVzdCBsb2FkVVJMIHJlcXVlc3RzIGFyZSBzdWNjZXNm
dWxseSBhdHRyaWJ1dGVkIGFzIGFwcCBpbml0aWF0ZWQuCi1QQVNTIHN1Y2Nlc3NmdWxseSBsb2Fk
ZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1s
b2FkLXVybC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0N2FkOGVlNWM4N2Nj
MmQxODVlZDc5N2Y1YmVmMDdhZDY5NGU4YzA0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L2F0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci0gICAgPHNjcmlwdCBzcmM9InJl
c291cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5IG9ubG9hZD0ic2V0VGlt
ZW91dCgncnVuVGVzdCgpJywgMCkiPgotPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3QgbG9hZFVS
TCByZXF1ZXN0cyBhcmUgc3VjY2VzZnVsbHkgYXR0cmlidXRlZCBhcyBhcHAgaW5pdGlhdGVkLjwv
ZGl2PgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08c2NyaXB0PgotICAgIGlmICh3aW5kb3cu
dGVzdFJ1bm5lcikgewotICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgfQotCi0gICAgZnVuY3Rpb24gbG9hZFVS
TCgpIHsKLSAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2lu
ICsgIi9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbCI7Ci0gICAg
fQotCi0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSht
ZXNzYWdlICsgJ1xuJykpOwotICAgIH0KLQotICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7Ci0gICAgY29uc3Qgc3RhcnRpbmdPcmlnaW4gPSAiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIjsKLSAgICBmdW5jdGlvbiBydW5UZXN0KCkgewotICAgICAgICBp
ZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBzdGFydGluZ09yaWdpbikgewotICAgICAg
ICAgICAgbG9hZFVSTCgpOwotICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgdmFyIGRpZExv
YWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVx
dWVzdCgpOwotICAgICAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0g
dGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotCi0gICAgICAgICAg
ICBpZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsKLSAgICAgICAgICAgICAgICBs
b2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwotICAgICAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfQotCi0gICAgICAg
ICAgICBpZiAoIWRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7Ci0gICAgICAgICAgICAgICAg
bG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0KLQotICAgICAg
ICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJl
cXVlc3RzIik7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAg
fQotICAgIH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcGluZy1sb2Fk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2F0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDBkNjE3ZWU5MDBhNDkwMmI5N2E0YmVkNmEzOWU5NjU2NmNlNDU1OWYuLjAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcGluZy1sb2FkLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDggKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBQQVNT
IHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCi1QaW5nIHNl
bnQgc3VjY2Vzc2Z1bGx5Ci1DT05URU5UX1RZUEU6IHRleHQvcGluZwotSFRUUF9IT1NUOiAxMjcu
MC4wLjE6ODAwMAotSFRUUF9QSU5HX0ZST006IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hcHAtcHJp
dmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKLUhUVFBfUElOR19UTzogaHR0
cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmctYXBwLWlu
aXRpYXRlZC1kYXRhLnB5Ci1SRVFVRVNUX01FVEhPRDogUE9TVAotUkVRVUVTVF9VUkk6IC9uYXZp
Z2F0aW9uL3Jlc291cmNlcy9zYXZlLXBpbmcucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcGlu
Zy1sb2FkLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDExMDBjYWUyYzYyY2Rh
YmRhYTRlMTBlYzM5ZjljOTBhODllYmU5OTUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSwzMCArMCww
IEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08c2NyaXB0IHNyYz0iLi4vbmF2
aWdhdGlvbi9waW5nLWF0dHJpYnV0ZS9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4K
LTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgewot
ICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGlj
c1Nob3VsZERvd25ncmFkZVJlZmVycmVyKGZhbHNlLCBmdW5jdGlvbiAoKSB7IH0pOwotICAgIGlu
dGVybmFscy5zZXR0aW5ncy5zZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQodHJ1ZSk7Ci0gICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3QoKQotewotICAg
IGNsaWNrRWxlbWVudChkb2N1bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKSk7Ci19Ci0KLXdpbmRv
dy5vbmxvYWQgPSBmdW5jdGlvbiAoKQotewotICAgIGNsZWFyTGFzdFBpbmdSZXN1bHRBbmRSdW5U
ZXN0KHRlc3QpOwotfQotPC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLSAgICA8aW1nIHNyYz0i
bm9uLWV4aXN0ZW50LWltYWdlLmpwZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiIHVzZW1hcD0i
I2ltYWdlbWFwIj4KLSAgICA8bWFwIG5hbWU9ImltYWdlbWFwIj4KLSAgICAgICAgPGFyZWEgc2hh
cGU9InJlY3QiIGNvb3Jkcz0iMCwwLDEyOCwxMjgiIGhyZWY9Ii4uL25hdmlnYXRpb24vcmVzb3Vy
Y2VzL2NoZWNrLXBpbmctYXBwLWluaXRpYXRlZC1kYXRhLnB5IiBwaW5nPSIuLi9uYXZpZ2F0aW9u
L3Jlc291cmNlcy9zYXZlLXBpbmcucHkiPgotICAgIDwvbWFwPgotPC9ib2R5PgotPC9odG1sPgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0
cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBlY3RlZC50
eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGUyNDVlMzQwZjE3ZGU4ZTRmM2UzNTlj
YzFiOWY0MTQ3NjZkZWNmMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmli
dXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDQgKzAs
MCBAQAotQ09OU09MRSBNRVNTQUdFOiBQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAg
aW5pdGlhdGVkIHJlcXVlc3RzCi1UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJr
ZWQgZm9yIFBPU1QgcmVxdWVzdHMuCi0KLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wb3N0
LXJlcXVlc3QuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWQ3OTU0Zjc4MDMz
YjRkZTYwNWI5MDFhNjAzZjliZDMxOWU1MTI4NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDIy
ICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KLTxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci08cD5UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVl
c3RzIGdldCBtYXJrZWQgZm9yIFBPU1QgcmVxdWVzdHMuPC9wPgotPGZvcm0gaWQ9InRlc3RGb3Jt
IiBhY3Rpb249InJlc291cmNlcy9wb3N0LnB5IiB0YXJnZXQ9Il9ibGFuayIgcmVsPSJub3JlZmVy
cmVyIiBtZXRob2Q9InBvc3QiPgotPGlucHV0IHR5cGU9InN1Ym1pdCIgdmFsdWU9IlRlc3QiPjwv
aW5wdXQ+Ci08Zm9ybT4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLSAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5k
b3dzKHRydWUpOwotfQotCi1kb2N1bWVudC5mb3Jtc1swXS5zdWJtaXQoKTsKLQotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24t
cHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggOWI1ZWVhOTQyMmFkMGNhZWU3NjY3YmNkNDA2ZGI5M2UwYTVlOWUyZS4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQu
dHh0CisrKyAvZGV2L251bGwKQEAgLTEsNiArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFByZWZs
aWdodCByZXNwb25zZSBpcyBub3Qgc3VjY2Vzc2Z1bAotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRw
UmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IGR1ZSB0byBhY2Nlc3MgY29udHJv
bCBjaGVja3MuCi1UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIGFz
eW5jIHByZWZsaWdodHMKLQotUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRp
YXRlZCByZXF1ZXN0cwotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1h
c3luYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAzOTNiOWYzYzI0ZGI3ZTMw
YzlmNTFlOWY0ZDIyNzE2ZDY2MmU4ZGI2Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2F0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDYg
KzAsMCBAQAotPHA+VGVzdHMgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBh
c3luYyBwcmVmbGlnaHRzPC9wPgotCi08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+
Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOwotfQotCi12YXIgcHJl
ZmxpZ2h0TGlua0RvbWFpbiA9ICJsb2NhbGhvc3QiOwotdmFyIGNvbnRleHRIb3N0ID0gIjEyNy4w
LjAuMSI7Ci12YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkiCi0KLWZ1bmN0aW9uIHJ1blRlc3Qo
KQotewotICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICByZXEub3Blbigi
R0VUIiwgdXJsLCB0cnVlKTsKLSAgICByZXEuc2V0UmVxdWVzdEhlYWRlcigieC13ZWJraXQiLCAi
Zm9vIik7Ci0KLSAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uKCkgewotICAgICAgICB2YXIgZGlk
TG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRS
ZXF1ZXN0KCk7Ci0gICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRl
c3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKLQotICAgICAgICBpZiAo
ZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsKLSAgICAgICAgICAgIGxvZygiRkFJTCBk
aWQgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7Ci0gICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghZGlkTG9hZEFwcElu
aXRpYXRlZFJlcXVlc3QpIHsKLSAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbm90IGxvYWQgYXBw
IGluaXRpYXRlZCByZXF1ZXN0Iik7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKLSAgICAgICAgfQotCi0gICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9u
bHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOwotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKLSAgICB9Ci0gICAgcmVxLnNlbmQobnVsbCk7Ci19Ci0KLXJ1blRlc3QoKTsKLTwvc2Ny
aXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMt
ZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA0MDE2YzUzMWUwNjU5
YWRjZGQ2MzU1NTIzZWExYjBhZDJkNWEyYjFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxs
CkBAIC0xLDcgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBQcmVmbGlnaHQgcmVzcG9uc2UgaXMg
bm90IHN1Y2Nlc3NmdWwKLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxv
YWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMt
NDA0LXdpdGhvdXQtYm9keS5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotVGVzdHMg
YXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBzeW5jIHByZWZsaWdodHMKLQot
UEFTUzogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3JrIGVycm9yIG9jY3VycmVkLgotUEFTUyBzdWNj
ZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cwotCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1w
cmVmbGlnaHQtc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggZWI1NDA5NWExZmY3YzA0MWQxYWJlNTYwMGZhNWJjZTVjZWVlNDNhNS4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5o
dG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDkgKzAsMCBAQAotPHA+VGVzdHMgYXBwIGluaXRpYXRl
ZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBzeW5jIHByZWZsaWdodHM8L3A+Ci0KLTxwcmUgaWQ9
ImNvbnNvbGUiPjwvcHJlPgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OwotfQotCi1mdW5jdGlvbiBsb2cobWVzc2FnZSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3Nh
Z2UgKyAnXG4nKSk7Ci19Ci0KLXZhciBwcmVmbGlnaHRMaW5rRG9tYWluID0gImxvY2FsaG9zdCI7
Ci12YXIgY29udGV4dEhvc3QgPSAiMTI3LjAuMC4xIjsKLXZhciB1cmwgPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9k
eS5weSIKLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOwotICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKLSAgICByZXEuc2V0
UmVxdWVzdEhlYWRlcigieC13ZWJraXQiLCAiZm9vIik7Ci0KLSAgICB0cnkgewotICAgICAgICBy
ZXEuc2VuZChudWxsKTsKLSAgICAgICAgbG9nKCJQQVNTOiAiICsgcmVxLnJlc3BvbnNlVGV4dCk7
Ci0gICAgfSBjYXRjaCAoZXgpIHsKLSAgICAgICAgbG9nKCJQQVNTOiAiICsgZXgpOwotICAgICAg
ICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJ
bml0aWF0ZWRSZXF1ZXN0KCk7Ci0gICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVx
dWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKLQotICAg
ICAgICBpZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsKLSAgICAgICAgICAgIGxv
ZygiRkFJTCBkaWQgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7Ci0gICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGlmICghZGlk
TG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKLSAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbm90
IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7Ci0gICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKLSAgICAgICAgfQotCi0gICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkg
bG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOwotICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTsKLSAgICB9Ci19Ci0KLXJ1blRlc3QoKTsKLTwvc2NyaXB0PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRp
b24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFs
aWRhdGlvbi1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGIyMWMy
ZDU5OTQxNDRlODEwZTE1NzdlZmZiY2QwOWNlMDZkZjNkZGQuLjAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVk
LnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDE0ICswLDAgQEAKLTEyNy4wLjAuMTo4MDAwIC0gZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIC0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQQmFzaWMgLSBSZXNwb25kaW5nIHdpdGggdGVzdFVzZXJuYW1lOnRlc3RQ
YXNzd29yZAotMTI3LjAuMC4xOjgwMDAgLSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVu
Z2UgLSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyAtIFNpbXVs
YXRpbmcgY2FuY2VsbGVkIGF1dGhlbnRpY2F0aW9uIHNoZWV0Ci1UZXN0cyBzcGVjdWxhdGl2ZSBy
ZXZhbGlkYXRpb24gb2YgYXV0aGVudGljYXRlZCByZXNvdXJjZXMuCi0KLU9uIHN1Y2Nlc3MsIHlv
dSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNU
IENPTVBMRVRFIi4KLQotCi1QQVNTIHhoci5zdGF0dXMgaXMgNDAxCi1QQVNTIFN1Y2Nlc3NmdWx5
IGxvYWRlZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVx
dWVzdHMKLVBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKLQotVEVTVCBDT01QTEVURQot
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9h
dHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFs
aWRhdGlvbi5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhYjc1ZDZmZjFiZTg5
YTE3ZmJhZGVhZWZhYzk3NDAwMGRjOWU4NWQwLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sCisrKyAvZGV2L251
bGwKQEAgLTEsNzIgKzAsMCBAQAotPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08c2NyaXB0PgotZGVzY3JpcHRpb24oIlRlc3RzIHNwZWN1
bGF0aXZlIHJldmFsaWRhdGlvbiBvZiBhdXRoZW50aWNhdGVkIHJlc291cmNlcy4iKTsKLWpzVGVz
dElzQXN5bmMgPSB0cnVlOwotCi10ZXN0UnVubmVyLnNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZXModHJ1ZSk7Ci10ZXN0UnVubmVyLnNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUoInRl
c3RVc2VybmFtZSIpOwotdGVzdFJ1bm5lci5zZXRBdXRoZW50aWNhdGlvblBhc3N3b3JkKCJ0ZXN0
UGFzc3dvcmQiKTsKLQotc3RhdGUgPSAid2FybXVwIjsKLQotZnVuY3Rpb24gY2xlYXJDcmVkZW50
aWFsU3RvcmFnZSgpCi17Ci0gICAgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgeGhy
Lm9wZW4oIkdFVCIsICJyZXNvdXJjZXMvcmVzb3VyY2Utd2l0aC1hdXRoLnB5P290aGVyIiwgZmFs
c2UsICJiYWRVc2VybmFtZSIsICJiYWRQYXNzd29yZCIpOwotICAgIHhoci5zZW5kKCk7Ci0gICAg
c2hvdWxkQmUoInhoci5zdGF0dXMiLCAiNDAxIik7Ci19Ci0KLWZ1bmN0aW9uIGxvZyhtZXNzYWdl
KQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKLX0KLQotZnVuY3Rpb24g
ZnJhbWVMb2FkZWQoKQotewotICAgIGlmIChzdGF0ZSA9PSAid2FybXVwIikgewotICAgICAgICAv
LyBOYXZpZ2F0ZSBmcmFtZSB0byAnYWJvdXQ6YmxhbmsnIHRvIGZsdXNoIHRvIHN1YnJlc291cmNl
IGxvYWRzIG1ldGFkYXRhIHRvIGRpc2suCi0gICAgICAgIHN0YXRlID0gImZsdXNoaW5nTWV0YWRh
dGEiOwotICAgICAgICB0ZXN0UnVubmVyLnNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZXMoZmFsc2UpOwotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdEZyYW1lIiku
c3JjID0gImFib3V0OmJsYW5rIjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAoc3Rh
dGUgPT0gImZsdXNoaW5nTWV0YWRhdGEiKSB7Ci0gICAgICAgIGNsZWFyQ3JlZGVudGlhbFN0b3Jh
Z2UoKTsKLQotICAgICAgICBpbnRlcm5hbHMuY2xlYXJNZW1vcnlDYWNoZSgpOwotICAgICAgICB0
ZXN0UnVubmVyLnNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMoZmFsc2UpOwotCi0g
ICAgICAgIC8vIE5hdmlnYXRlIGZyYW1lIHRvIGl0cyBvcmlnaW5hbCBsb2NhdGlvbiBhZ2Fpbi4g
VGhpcyB0aW1lIGl0IHNob3VsZCBzcGVjdWxhdGl2ZWx5Ci0gICAgICAgIC8vIHZhbGlkYXRlIHN1
YnJlc291cmNlcyBhcyB3ZSBoYXZlIHN1YnJlc291cmNlIGxvYWRzIG1ldGFkYXRhIGluIHRoZSBk
aXNrIGNhY2hlLgotICAgICAgICBzdGF0ZSA9ICJzcGVjdWxhdGl2ZVJldmFsaWRhdGlvbiI7Ci0g
ICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKS5zcmMgPSAicmVzb3Vy
Y2VzL2ZyYW1lLXdpdGgtYXV0aGVudGljYXRlZC1yZXNvdXJjZS5weSI7Ci0gICAgICAgIHJldHVy
bjsKLSAgICB9Ci0gICAgaWYgKHN0YXRlID09ICJzcGVjdWxhdGl2ZVJldmFsaWRhdGlvbiIpIHsK
LSAgICAgICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bHkgbG9hZGVkLiIpOwotICAgICAgICB2YXIg
ZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0
ZWRSZXF1ZXN0KCk7Ci0gICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9
IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKLQotICAgICAgICBp
ZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsKLSAgICAgICAgICAgIGxvZygiRkFJ
TCBkaWQgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7Ci0gICAgICAgICAgICBmaW5p
c2hKU1Rlc3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGlm
ICghZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKLSAgICAgICAgICAgIGxvZygiRkFJTCBk
aWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7Ci0gICAgICAgICAgICBmaW5pc2hK
U1Rlc3QoKTsKLSAgICAgICAgICAgIHJldHVybjsKLSAgICAgICAgfQotCi0gICAgICAgIGxvZygi
UEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOwot
Ci0gICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICByZXR1cm47Ci0gICAgfQotfQotCi08
L3NjcmlwdD4KLTxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNvdXJjZXMvZnJhbWUtd2l0
aC1hdXRoZW50aWNhdGVkLXJlc291cmNlLnB5IiBvbmxvYWQ9ImZyYW1lTG9hZGVkKCkiPjwvaWZy
YW1lPgotPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMiPjwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvcmVzb3VyY2VzL2FwcC1pbml0aWF0ZWQtcG9zdC5weSBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy9hcHAtaW5pdGlhdGVkLXBvc3QucHkK
bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZDA2ZmVlZTIxMmM3MDFjZjYyZDlkODMwZGZmMmI1Yjg3NjFiOTM5ZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L3Jlc291cmNlcy9hcHAtaW5pdGlhdGVkLXBvc3QucHkKQEAgLTAsMCArMSwyNyBAQAorIyEvdXNy
L2Jpbi9lbnYgcHl0aG9uMworCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworcmVmZXJlciA9IG9z
LmVudmlyb24uZ2V0KCdIVFRQX1JFRkVSRVInLCAnJykKKworc3lzLnN0ZG91dC53cml0ZSgKKyAg
ICAnQ29udGVudC1UeXBlOiB0ZXh0L2h0bWxcclxuXHJcbicKKyAgICAnPHA+UmVmZXJyZXI6IHty
ZWZlcmVyfTwvcD5cbicKKyAgICAnPHNjcmlwdD5cbicKKyAgICAnaWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7e1xuJworICAgICcgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVz
dFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpO1xuJworICAgICcgICAgdmFyIGRp
ZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5p
dGlhdGVkUmVxdWVzdCgpO1xuJworICAgICcgICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0ZWRS
ZXF1ZXN0KSB7e1xuJworICAgICcgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMIGRpZCBsb2FkIG5v
biBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTtcbicKKyAgICAnICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTtcbicKKyAgICAnICAgIH19XG4nCisgICAgJyAgICBpZiAoIWRpZExvYWRBcHBJ
bml0aWF0ZWRSZXF1ZXN0KSB7e1xuJworICAgICcgICAgICAgICBjb25zb2xlLmxvZygiRkFJTCBk
aWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7XG4nCisgICAgJyAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCisgICAgJyAgICAgfX1cbicKKyAgICAnICAgIGNvbnNv
bGUubG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVl
c3RzIik7XG4nCisgICAgJyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTtcbicKKyAgICAnfX1c
bicKKyAgICAnPC9zY3JpcHQ+XG4nLmZvcm1hdChyZWZlcmVyPXJlZmVyZXIpCispCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMv
cG9zdC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291
cmNlcy9wb3N0LnB5CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDc1NQppbmRleCBkMDZmZWVlMjEyYzcw
MWNmNjJkOWQ4MzBkZmYyYjViODc2MWI5MzlmLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L3Jlc291cmNlcy9wb3N0LnB5CisrKyAvZGV2L251bGwKQEAgLTEsMjcgKzAsMCBAQAotIyEv
dXNyL2Jpbi9lbnYgcHl0aG9uMwotCi1pbXBvcnQgb3MKLWltcG9ydCBzeXMKLQotcmVmZXJlciA9
IG9zLmVudmlyb24uZ2V0KCdIVFRQX1JFRkVSRVInLCAnJykKLQotc3lzLnN0ZG91dC53cml0ZSgK
LSAgICAnQ29udGVudC1UeXBlOiB0ZXh0L2h0bWxcclxuXHJcbicKLSAgICAnPHA+UmVmZXJyZXI6
IHtyZWZlcmVyfTwvcD5cbicKLSAgICAnPHNjcmlwdD5cbicKLSAgICAnaWYgKHdpbmRvdy50ZXN0
UnVubmVyKSB7e1xuJwotICAgICcgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0g
dGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpO1xuJwotICAgICcgICAgdmFy
IGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBw
SW5pdGlhdGVkUmVxdWVzdCgpO1xuJwotICAgICcgICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0
ZWRSZXF1ZXN0KSB7e1xuJwotICAgICcgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMIGRpZCBsb2Fk
IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTtcbicKLSAgICAnICAgICAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTtcbicKLSAgICAnICAgIH19XG4nCi0gICAgJyAgICBpZiAoIWRpZExvYWRB
cHBJbml0aWF0ZWRSZXF1ZXN0KSB7e1xuJwotICAgICcgICAgICAgICBjb25zb2xlLmxvZygiRkFJ
TCBkaWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7XG4nCi0gICAgJyAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCi0gICAgJyAgICAgfX1cbicKLSAgICAnICAgIGNv
bnNvbGUubG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJl
cXVlc3RzIik7XG4nCi0gICAgJyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTtcbicKLSAgICAn
fX1cbicKLSAgICAnPC9zY3JpcHQ+XG4nLmZvcm1hdChyZWZlcmVyPXJlZmVyZXIpCi0pCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJj
ZXMvdXNlci1pbml0aWF0ZWQtcG9zdC5weSBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L3Jlc291cmNlcy91c2VyLWluaXRpYXRlZC1wb3N0LnB5Cm5ldyBmaWxlIG1v
ZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjcyY2MyZTEzOWNjNDY0YTI1YjZjZmExMWQ5NDNiMWVjYjJhZGU0Y2UKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMv
dXNlci1pbml0aWF0ZWQtcG9zdC5weQpAQCAtMCwwICsxLDI3IEBACisjIS91c3IvYmluL2VudiBw
eXRob24zCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCityZWZlcmVyID0gb3MuZW52aXJvbi5n
ZXQoJ0hUVFBfUkVGRVJFUicsICcnKQorCitzeXMuc3Rkb3V0LndyaXRlKAorICAgICdDb250ZW50
LVR5cGU6IHRleHQvaHRtbFxyXG5cclxuJworICAgICc8cD5SZWZlcnJlcjoge3JlZmVyZXJ9PC9w
PlxuJworICAgICc8c2NyaXB0PlxuJworICAgICdpZiAod2luZG93LnRlc3RSdW5uZXIpIHt7XG4n
CisgICAgJyAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRp
ZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7XG4nCisgICAgJyAgICB2YXIgZGlkTG9hZE5vbkFw
cEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1
ZXN0KCk7XG4nCisgICAgJyAgICBpZiAoZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHt7XG4n
CisgICAgJyAgICAgICAgY29uc29sZS5sb2coIkZBSUwgZGlkIGxvYWQgYXBwIGluaXRpYXRlZCBy
ZXF1ZXN0Iik7XG4nCisgICAgJyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCisg
ICAgJyAgICB9fVxuJworICAgICcgICAgaWYgKCFkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVz
dCkge3tcbicKKyAgICAnICAgICAgICAgY29uc29sZS5sb2coIkZBSUwgZGlkIG5vdCBsb2FkIG5v
biBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTtcbicKKyAgICAnICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTtcbicKKyAgICAnICAgICB9fVxuJworICAgICcgICAgY29uc29sZS5sb2coIlBB
U1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7
XG4nCisgICAgJyAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTtcbicKKyAgICAnfX1cbicKKyAg
ICAnPC9zY3JpcHQ+XG4nLmZvcm1hdChyZWZlcmVyPXJlZmVyZXIpCispCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LWxvYWQtdXJsLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLmE2Y2RhY2UyNmEyMGVlZTA5ZGQxNGM0NWEzOGQxYzFjYTU0NWMzNGIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0
dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1Rlc3QgbG9h
ZFVSTCByZXF1ZXN0cyBhcmUgc3VjY2VzZnVsbHkgYXR0cmlidXRlZCBhcyBub24gYXBwIGluaXRp
YXRlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJl
cXVlc3RzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3VzZXItYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5iMzEyOWVhZTM4MzA1MzM0NTNiYzBlMzRhYThkNzA0YzcwNmVkYzFjCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
dXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sCkBAIC0wLDAgKzEsNDggQEAKKzwhRE9DVFlQ
RSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9ZmFsc2UgXSAt
LT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywg
MCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3QgbG9hZFVSTCByZXF1ZXN0cyBhcmUgc3Vj
Y2VzZnVsbHkgYXR0cmlidXRlZCBhcyBub24gYXBwIGluaXRpYXRlZC48L2Rpdj4KKzxwcmUgaWQ9
ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
KyAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgICAgIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxvYWRVUkwoKSB7CisgICAgICAg
IGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9yaWdpbiArICIvYXBwLXByaXZh
Y3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbCI7CisgICAgfQorCisgICAg
ZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsg
J1xuJykpOworICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2luID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3Qgc3RhcnRpbmdPcmlnaW4gPSAiaHR0cDovLzEyNy4w
LjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAgICBpZiAoZG9jdW1l
bnQubG9jYXRpb24ub3JpZ2luID09PSBzdGFydGluZ09yaWdpbikgeworICAgICAgICAgICAgbG9h
ZFVSTCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmFyIGRpZExvYWRBcHBJbml0
aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwor
ICAgICAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5l
ci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAgICAgICBpZiAoZGlk
TG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgICAgICBsb2coIkZBSUwgZGlk
IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGlmICghZGlkTG9h
ZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgICAgICBsb2coIkZBSUwgZGlk
IG5vdCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgbG9n
KCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0
cyIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAg
ICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcGluZy1sb2Fk
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L3VzZXItYXR0cmlidXRpb24tcGluZy1sb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NWJk
OTRlYjNhMzQyM2VlYThjODg5YmJjYmYzY2I0NzVjNmM1MTgyCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlv
bi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQ09OU09MRSBNRVNTQUdF
OiBQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0
cworUGluZyBzZW50IHN1Y2Nlc3NmdWxseQorQ09OVEVOVF9UWVBFOiB0ZXh0L3BpbmcKK0hUVFBf
SE9TVDogMTI3LjAuMC4xOjgwMDAKK0hUVFBfUElOR19GUk9NOiBodHRwOi8vMTI3LjAuMC4xOjgw
MDAvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKK0hU
VFBfUElOR19UTzogaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL2No
ZWNrLXBpbmctdXNlci1pbml0aWF0ZWQtZGF0YS5weQorUkVRVUVTVF9NRVRIT0Q6IFBPU1QKK1JF
UVVFU1RfVVJJOiAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2F2ZS1waW5nLnB5CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0
aW9uLXBpbmctbG9hZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMzNmYTIz
NWM4MDE4NjU1M2NiNjIyYzcxNjU1MDFmYTAzZmZiNTZhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1w
aW5nLWxvYWQuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtp
dC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPWZhbHNlIF0gLS0+Cis8IURPQ1RZUEUgaHRt
bD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vbmF2aWdhdGlvbi9waW5nLWF0dHJp
YnV0ZS9yZXNvdXJjZXMvdXRpbGl0aWVzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitpZiAod2lu
ZG93LnRlc3RSdW5uZXIgJiYgd2luZG93LmludGVybmFscykgeworICAgIHRlc3RSdW5uZXIuZHVt
cEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIuc2V0U3RhdGlzdGljc1Nob3VsZERvd25ncmFkZVJl
ZmVycmVyKGZhbHNlLCBmdW5jdGlvbiAoKSB7IH0pOworICAgIGludGVybmFscy5zZXR0aW5ncy5z
ZXRIeXBlcmxpbmtBdWRpdGluZ0VuYWJsZWQodHJ1ZSk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIHRlc3QoKQoreworICAgIGNsaWNrRWxlbWVudChkb2N1
bWVudC5xdWVyeVNlbGVjdG9yKCJpbWciKSk7Cit9CisKK3dpbmRvdy5vbmxvYWQgPSBmdW5jdGlv
biAoKQoreworICAgIGNsZWFyTGFzdFBpbmdSZXN1bHRBbmRSdW5UZXN0KHRlc3QpOworfQorPC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8aW1nIHNyYz0ibm9uLWV4aXN0ZW50LWltYWdl
LmpwZyIgd2lkdGg9IjEyOCIgaGVpZ2h0PSIxMjgiIHVzZW1hcD0iI2ltYWdlbWFwIj4KKyAgICA8
bWFwIG5hbWU9ImltYWdlbWFwIj4KKyAgICAgICAgPGFyZWEgc2hhcGU9InJlY3QiIGNvb3Jkcz0i
MCwwLDEyOCwxMjgiIGhyZWY9Ii4uL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmctdXNl
ci1pbml0aWF0ZWQtZGF0YS5weSIgcGluZz0iLi4vbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2F2ZS1w
aW5nLnB5Ij4KKyAgICA8L21hcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9z
dC1yZXF1ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi40MGM5ODI3ZDYyODgxMGUwMzE2NzQyMTcwNmQzZGRkZWQ1ZTBjNDNiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNl
ci1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAor
Q09OU09MRSBNRVNTQUdFOiBQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGlu
aXRpYXRlZCByZXF1ZXN0cworVGVzdHMgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1h
cmtlZCBmb3IgUE9TVCByZXF1ZXN0cy4KKworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5iM2I0NTQzYjRmN2FlYTU0NDc3
YmVmYTQ2YWMxMTdlNTA4NWY1NjU1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3Qu
aHRtbApAQCAtMCwwICsxLDIyIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGlzQXBwSW5pdGlhdGVkPWZhbHNlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0
LXByZS5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3RzIG5vbiBhcHAgaW5p
dGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIFBPU1QgcmVxdWVzdHMuPC9wPgorPGZvcm0g
aWQ9InRlc3RGb3JtIiBhY3Rpb249InJlc291cmNlcy91c2VyLWluaXRpYXRlZC1wb3N0LnB5IiB0
YXJnZXQ9Il9ibGFuayIgcmVsPSJub3JlZmVycmVyIiBtZXRob2Q9InBvc3QiPgorPGlucHV0IHR5
cGU9InN1Ym1pdCIgdmFsdWU9IlRlc3QiPjwvaW5wdXQ+Cis8Zm9ybT4KKzxzY3JpcHQ+CitpZiAo
d2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAg
ICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKHRydWUpOworfQorCitkb2N1bWVudC5mb3Jt
c1swXS5zdWJtaXQoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0
aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZDc5NmJiODI2NTMyMzY2M2U2Mzc5YmZiY2I5NTVkYTYwYjFm
OTZjMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxLDYgQEAKK0NPTlNPTEUgTUVTU0FHRTogUHJlZmxpZ2h0IHJlc3BvbnNlIGlzIG5v
dCBzdWNjZXNzZnVsCitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2Fk
IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQw
NC13aXRob3V0LWJvZHkucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK1Rlc3RzIG5v
biBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIGFzeW5jIHByZWZsaWdodHMK
KworUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVz
dHMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFz
eW5jLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNzUxYzJmN2M3YWY0YjUxYjM1YjhhODBlMGYzN2NkODE4ODFk
MDM4OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwKQEAgLTAsMCAr
MSw0NyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcElu
aXRpYXRlZD1mYWxzZSBdIC0tPgorPHA+VGVzdHMgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMg
Z2V0IG1hcmtlZCBmb3IgYXN5bmMgcHJlZmxpZ2h0czwvcD4KKworPHByZSBpZD0iY29uc29sZSI+
PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1
bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25z
b2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicp
KTsKK30KKwordmFyIHByZWZsaWdodExpbmtEb21haW4gPSAibG9jYWxob3N0IjsKK3ZhciBjb250
ZXh0SG9zdCA9ICIxMjcuMC4wLjEiOwordmFyIHVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IgorCitm
dW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7
CisgICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgdHJ1ZSk7CisgICAgcmVxLnNldFJlcXVlc3RIZWFk
ZXIoIngtd2Via2l0IiwgImZvbyIpOworCisgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRM
b2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRp
YXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7
CisKKyAgICAgICAgaWYgKGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAg
ICBsb2coIkZBSUwgZGlkIGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZGlk
TG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQg
bm90IGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBsb2coIlBBU1Mgc3VjY2Vz
c2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7CisgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KKyAgICByZXEuc2VuZChudWxsKTsKK30K
KworcnVuVGVzdCgpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Vz
ZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjVk
YTEwMzlhNzljNWU3ZmQzNDA3NGQxYWJjN2Q0YjhkMjczNzQwNzIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0
aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0NPTlNPTEUg
TUVTU0FHRTogUHJlZmxpZ2h0IHJlc3BvbnNlIGlzIG5vdCBzdWNjZXNzZnVsCitDT05TT0xFIE1F
U1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkgZHVlIHRv
IGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK1Rlc3RzIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3Rz
IGdldCBtYXJrZWQgZm9yIHN5bmMgcHJlZmxpZ2h0cworCitQQVNTOiBOZXR3b3JrRXJyb3I6ICBB
IG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBu
b24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5j
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0
dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWE3MDYzMjAzMTJmNTNi
OThmMTI0YTZlOTRkMWM2ZjFhYTVkNDQ3NwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0
LXN5bmMuaHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10
ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPWZhbHNlIF0gLS0+Cis8cD5UZXN0cyBub24gYXBw
IGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBzeW5jIHByZWZsaWdodHM8L3A+CisK
KzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5l
cikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5n
ZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHRO
b2RlKG1lc3NhZ2UgKyAnXG4nKSk7Cit9CisKK3ZhciBwcmVmbGlnaHRMaW5rRG9tYWluID0gImxv
Y2FsaG9zdCI7Cit2YXIgY29udGV4dEhvc3QgPSAiMTI3LjAuMC4xIjsKK3ZhciB1cmwgPSAiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdp
dGhvdXQtYm9keS5weSIKKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdmFyIHJlcSA9IG5l
dyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKKyAg
ICByZXEuc2V0UmVxdWVzdEhlYWRlcigieC13ZWJraXQiLCAiZm9vIik7CisKKyAgICB0cnkgewor
ICAgICAgICByZXEuc2VuZChudWxsKTsKKyAgICAgICAgbG9nKCJQQVNTOiAiICsgcmVxLnJlc3Bv
bnNlVGV4dCk7CisgICAgfSBjYXRjaCAoZXgpIHsKKyAgICAgICAgbG9nKCJQQVNTOiAiICsgZXgp
OworICAgICAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRp
ZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5p
dGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3Qo
KTsKKworICAgICAgICBpZiAoZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAg
ICAgIGxvZygiRkFJTCBkaWQgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFk
aWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRp
ZCBub3QgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZygiUEFTUyBzdWNj
ZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorfQorCitydW5UZXN0KCk7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L3VzZXItYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmli
dXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45
ZmQ5ZjY2MTk3ZjRkYWI5ZjI5M2EwM2Y0MjhiYWRkYzhmMjZjMmIxCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1
dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQg
QEAKKzEyNy4wLjAuMTo4MDAwIC0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIC0g
UHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMgLSBSZXNwb25kaW5n
IHdpdGggdGVzdFVzZXJuYW1lOnRlc3RQYXNzd29yZAorMTI3LjAuMC4xOjgwMDAgLSBkaWRSZWNl
aXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlv
blNjaGVtZUhUVFBCYXNpYyAtIFNpbXVsYXRpbmcgY2FuY2VsbGVkIGF1dGhlbnRpY2F0aW9uIHNo
ZWV0CitUZXN0cyBzcGVjdWxhdGl2ZSByZXZhbGlkYXRpb24gb2YgYXV0aGVudGljYXRlZCByZXNv
dXJjZXMuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVz
c2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHhoci5zdGF0dXMg
aXMgNDAxCitQQVNTIFN1Y2Nlc3NmdWx5IGxvYWRlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRl
ZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNl
ZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1y
ZXZhbGlkYXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L3VzZXItYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTIxZjhiOWE2ZDU1ZThmYjZkNzRjYmE3YmJmMzMwOTM4NTU1MjU5NAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXIt
YXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwKQEAgLTAsMCArMSw3MCBA
QAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRl
ZD1mYWxzZSBdIC0tPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10ZXN0LXBy
ZS5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorZGVzY3JpcHRpb24oIlRlc3RzIHNwZWN1bGF0aXZl
IHJldmFsaWRhdGlvbiBvZiBhdXRoZW50aWNhdGVkIHJlc291cmNlcy4iKTsKK2pzVGVzdElzQXN5
bmMgPSB0cnVlOworCit0ZXN0UnVubmVyLnNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZXModHJ1ZSk7Cit0ZXN0UnVubmVyLnNldEF1dGhlbnRpY2F0aW9uVXNlcm5hbWUoInRlc3RVc2Vy
bmFtZSIpOwordGVzdFJ1bm5lci5zZXRBdXRoZW50aWNhdGlvblBhc3N3b3JkKCJ0ZXN0UGFzc3dv
cmQiKTsKKworc3RhdGUgPSAid2FybXVwIjsKKworZnVuY3Rpb24gY2xlYXJDcmVkZW50aWFsU3Rv
cmFnZSgpCit7CisgICAgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgeGhyLm9wZW4o
IkdFVCIsICJyZXNvdXJjZXMvcmVzb3VyY2Utd2l0aC1hdXRoLnB5P290aGVyIiwgZmFsc2UsICJi
YWRVc2VybmFtZSIsICJiYWRQYXNzd29yZCIpOworICAgIHhoci5zZW5kKCk7CisgICAgc2hvdWxk
QmUoInhoci5zdGF0dXMiLCAiNDAxIik7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQorewor
ICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1l
bnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKK30KKworZnVuY3Rpb24gZnJhbWVM
b2FkZWQoKQoreworICAgIGlmIChzdGF0ZSA9PSAid2FybXVwIikgeworICAgICAgICAvLyBOYXZp
Z2F0ZSBmcmFtZSB0byAnYWJvdXQ6YmxhbmsnIHRvIGZsdXNoIHRvIHN1YnJlc291cmNlIGxvYWRz
IG1ldGFkYXRhIHRvIGRpc2suCisgICAgICAgIHN0YXRlID0gImZsdXNoaW5nTWV0YWRhdGEiOwor
ICAgICAgICB0ZXN0UnVubmVyLnNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMoZmFs
c2UpOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdEZyYW1lIikuc3JjID0g
ImFib3V0OmJsYW5rIjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoc3RhdGUgPT0g
ImZsdXNoaW5nTWV0YWRhdGEiKSB7CisgICAgICAgIGNsZWFyQ3JlZGVudGlhbFN0b3JhZ2UoKTsK
KworICAgICAgICBpbnRlcm5hbHMuY2xlYXJNZW1vcnlDYWNoZSgpOworICAgICAgICB0ZXN0UnVu
bmVyLnNldEhhbmRsZXNBdXRoZW50aWNhdGlvbkNoYWxsZW5nZXMoZmFsc2UpOworCisgICAgICAg
IC8vIE5hdmlnYXRlIGZyYW1lIHRvIGl0cyBvcmlnaW5hbCBsb2NhdGlvbiBhZ2Fpbi4gVGhpcyB0
aW1lIGl0IHNob3VsZCBzcGVjdWxhdGl2ZWx5CisgICAgICAgIC8vIHZhbGlkYXRlIHN1YnJlc291
cmNlcyBhcyB3ZSBoYXZlIHN1YnJlc291cmNlIGxvYWRzIG1ldGFkYXRhIGluIHRoZSBkaXNrIGNh
Y2hlLgorICAgICAgICBzdGF0ZSA9ICJzcGVjdWxhdGl2ZVJldmFsaWRhdGlvbiI7CisgICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKS5zcmMgPSAicmVzb3VyY2VzL2Zy
YW1lLXdpdGgtYXV0aGVudGljYXRlZC1yZXNvdXJjZS5weSI7CisgICAgICAgIHJldHVybjsKKyAg
ICB9CisgICAgaWYgKHN0YXRlID09ICJzcGVjdWxhdGl2ZVJldmFsaWRhdGlvbiIpIHsKKyAgICAg
ICAgdGVzdFBhc3NlZCgiU3VjY2Vzc2Z1bHkgbG9hZGVkLiIpOworICAgICAgICB2YXIgZGlkTG9h
ZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1
ZXN0KCk7CisgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RS
dW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKworICAgICAgICBpZiAoZGlk
TG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9h
ZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkg
eworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBub24gYXBwIGluaXRpYXRlZCBy
ZXF1ZXN0Iik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgfQorCisgICAg
ICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQg
cmVxdWVzdHMiKTsKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAg
ICB9Cit9CisKKzwvc2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNl
cy9mcmFtZS13aXRoLWF1dGhlbnRpY2F0ZWQtcmVzb3VyY2UucHkiIG9ubG9hZD0iZnJhbWVMb2Fk
ZWQoKSI+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qt
cG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25h
dmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmctdXNlci1pbml0aWF0ZWQtZGF0YS5weSBiL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy11c2Vy
LWluaXRpYXRlZC1kYXRhLnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVkMDdiZjA3MjAwYzE3N2I3ZjljYjY2YmFi
N2IxMDVjZDI4YjlhMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmctdXNlci1pbml0aWF0ZWQtZGF0YS5weQpA
QCAtMCwwICsxLDQ0IEBACisjIS91c3IvYmluL2VudiBweXRob24zCisKK2ltcG9ydCBvcworaW1w
b3J0IHN5cworaW1wb3J0IHRpbWUKK2Zyb20gcGluZ19maWxlX3BhdGggaW1wb3J0IHBpbmdfZmls
ZXBhdGgKKworc3lzLnN0ZG91dC53cml0ZSgnQ29udGVudC1UeXBlOiB0ZXh0L2h0bWxcclxuXHJc
bicpCisKK3doaWxlIG5vdCBvcy5wYXRoLmlzZmlsZShwaW5nX2ZpbGVwYXRoKToKKyAgICB0aW1l
LnNsZWVwKDAuMDEpCisKK3N5cy5zdGRvdXQud3JpdGUoCisgICAgJzxodG1sPjxib2R5PlxuJwor
ICAgICdQaW5nIHNlbnQgc3VjY2Vzc2Z1bGx5JworKQorCitwaW5nX2ZpbGUgPSBvcGVuKHBpbmdf
ZmlsZXBhdGgsICdyJykKK2ZvciBsaW5lIGluIHBpbmdfZmlsZS5yZWFkbGluZXMoKToKKyAgICBz
eXMuc3Rkb3V0LndyaXRlKCc8YnI+e30nLmZvcm1hdChsaW5lLnN0cmlwKCkpKQorCitwaW5nX2Zp
bGUuY2xvc2UoKQoraWYgb3MucGF0aC5pc2ZpbGUocGluZ19maWxlcGF0aCk6CisgICAgb3MucmVt
b3ZlKHBpbmdfZmlsZXBhdGgpCisKK3N5cy5zdGRvdXQud3JpdGUoCisgICAgJzxzY3JpcHQ+Jwor
ICAgICdpZiAod2luZG93LnRlc3RSdW5uZXIpIHt7XG4nCisgICAgJyAgICB2YXIgZGlkTG9hZEFw
cEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0
KCk7XG4nCisgICAgJyAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0
UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7XG4nCisgICAgJyAgICBpZiAo
ZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHt7XG4nCisgICAgJyAgICAgICAgY29uc29sZS5s
b2coIkZBSUwgZGlkIGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7XG4nCisgICAgJyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCisgICAgJyAgICB9fVxuJworICAgICcgICAg
aWYgKCFkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkge3tcbicKKyAgICAnICAgICAgICAg
Y29uc29sZS5sb2coIkZBSUwgZGlkIG5vdCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3Qi
KTtcbicKKyAgICAnICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTtcbicKKyAgICAnICAg
ICB9fVxuJworICAgICcgICAgY29uc29sZS5sb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBv
bmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7XG4nCisgICAgJyAgICB0ZXN0UnVubmVy
Lm5vdGlmeURvbmUoKTtcbicKKyAgICAnfX1cbicKKyAgICAnPC9zY3JpcHQ+JworICAgICc8L2Jv
ZHk+PC9odG1sPicKKykK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433350</attachid>
            <date>2021-07-12 13:38:53 -0700</date>
            <delta_ts>2021-07-12 14:01:45 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227825-20210712133852.patch</filename>
            <type>text/plain</type>
            <size>70414</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMxNzhjZmY3MGIwZmIxZmE1
ZmU3ZTI0NTMzNTdkNjMzOWI5MjIyYWEuLjUzZjU2ZGY3NDZjY2UwMWE5ZWU4NzczNDQ2NGQ2YzY3
Y2ZjZWNjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMDctMTIgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgbGF5b3V0
IHRlc3RzIHRvIHNwZWNpZnkgYXBwIGluaXRpYXRlZCBsb2FkcyBvciBub3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgyNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODAzNTU1ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1h
dHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJl
cXVlc3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0
dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0
cmlidXRpb24tcGluZy1sb2FkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJl
ZmxpZ2h0LWFzeW5jLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxh
dGl2ZS1yZXZhbGlkYXRpb24uaHRtbAorCisgICAgICAgIEFkZCBhIHBhcmFtZXRlciB0byB0aGUg
V2ViVmlldyBjb25maWd1cmF0aW9uIHRoYXQgYWxsb3dzIGEgdGVzdCB0bworICAgICAgICBvdmVy
cmlkZSB0aGUgZGVmYXVsdCBOU1VSTFJlcXVlc3QgYXR0cmlidXRpb24gdmFsdWUuIFdlIGRvbid0
IG5lZWQKKyAgICAgICAgdGhpcyB0byBiZSBkeW5hbWljIHBlci10ZXN0LCBzbyB3ZSBjYW4gc3Rv
cmUgaXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SVBhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246
OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OmFwcEluaXRpYXRlZE92ZXJy
aWRlVmFsdWVGb3JUZXN0aW5nIGNvbnN0KToKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRp
b246OnNldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICh0
b1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcpOgorICAgICAgICAodG9BdHRyaWJ1dGlvbk92
ZXJyaWRlVGVzdGluZyk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3NldEFw
cEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOl0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF9hcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZ10pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0
aWF0ZWQpOgorCiAyMDIxLTA3LTEyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFt3YXRjaE9TXSBNYWtlIGEgZmV3IGFkZGl0aW9uYWwgYWRqdXN0bWVu
dHMgdG8gc3VwcG9ydCBzeXN0ZW0gbWluaW11bSBsYXlvdXQgbWFyZ2lucwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXgg
YTJmMWFjNTUwY2JiNjE2NDdhNzg4OGQ3OWU3NDA2MzE5ODBmYTM5Ni4uOGQ3NjY0YjlkZDhkNzFl
OGQ4ZjUwOWFiYTAxNWEyY2FiZjljOTMyMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC05Niw2ICs5Niw3IEBAIFJl
ZjxQYWdlQ29uZmlndXJhdGlvbj4gUGFnZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAogCiAg
ICAgY29weS0+bV9tZWRpYUNhcHR1cmVFbmFibGVkID0gdGhpcy0+bV9tZWRpYUNhcHR1cmVFbmFi
bGVkOwogICAgIGNvcHktPm1faHR0cHNVcGdyYWRlRW5hYmxlZCA9IHRoaXMtPm1faHR0cHNVcGdy
YWRlRW5hYmxlZDsKKyAgICBjb3B5LT5tX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0
aW5nID0gdGhpcy0+bV9hcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZzsKIAogICAg
IHJldHVybiBjb3B5OwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJ
L0FQSVBhZ2VDb25maWd1cmF0aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJ
UGFnZUNvbmZpZ3VyYXRpb24uaAppbmRleCBkMzNiNzZmY2FlYzc1OGY5NjJkMmUwMDVjYjI1YmZk
YmZlMmQxM2YyLi4zNzFlOWExODhlMzRkYWRjM2Y1MGFiZTEwNDViNjNlNmI5YjgyOWEwIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24u
aAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24u
aApAQCAtNDcsNiArNDcsMTUgQEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJVUkxT
Y2hlbWVIYW5kbGVyOwogY2xhc3MgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk7CiBjbGFz
cyBXZWJzaXRlRGF0YVN0b3JlOworCisjaWYgUExBVEZPUk0oSU9TX0ZBTUlMWSkKK2VudW0gY2xh
c3MgQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcgOiB1aW50OF90IHsKKyAgICBOb092ZXJyaWRl
LAorICAgIFVzZXJJbml0aWF0ZWQsCisgICAgQXBwSW5pdGlhdGVkCit9OworI2VuZGlmCisKIH0K
IAogbmFtZXNwYWNlIEFQSSB7CkBAIC0xNzAsNiArMTc5LDExIEBAIHB1YmxpYzoKICAgICB2b2lk
IHNldEF0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyKFdURjo6U3RyaW5nJiYgaWRlbnRpZmllcikg
eyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKTsgfQog
ICAgIGNvbnN0IFdURjo6U3RyaW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0
IHsgcmV0dXJuIG1fYXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7IH0KIAorI2lmIFBMQVRGT1JN
KElPU19GQU1JTFkpCisgICAgV2ViS2l0OjpBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZyBhcHBJ
bml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYXBwSW5p
dGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3Rpbmc7IH0KKyAgICB2b2lkIHNldEFwcEluaXRpYXRl
ZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nKFdlYktpdDo6QXR0cmlidXRpb25PdmVycmlkZVRlc3Rp
bmcgYXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcpIHsgbV9hcHBJbml0aWF0ZWRP
dmVycmlkZVZhbHVlRm9yVGVzdGluZyA9IGFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0
aW5nOyB9CisjZW5kaWYKKwogcHJpdmF0ZToKIAogICAgIFJlZlB0cjxXZWJLaXQ6OldlYlByb2Nl
c3NQb29sPiBtX3Byb2Nlc3NQb29sOwpAQCAtMjIxLDYgKzIzNSwxMCBAQCBwcml2YXRlOgogCiAg
ICAgV2ViQ29yZTo6U2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgbV9zaG91bGRS
ZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZyB7IFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQ
YXJ0eUNvb2tpZUJsb2NraW5nOjpObyB9OwogICAgIFdURjo6U3RyaW5nIG1fYXR0cmlidXRlZEJ1
bmRsZUlkZW50aWZpZXI7CisKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFdlYktpdDo6
QXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcgbV9hcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9y
VGVzdGluZyB7IFdlYktpdDo6QXR0cmlidXRpb25PdmVycmlkZVRlc3Rpbmc6Ok5vT3ZlcnJpZGUg
fTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1t
CmluZGV4IDgyNDRlMTI0MjEyNTU0YjJlYzY0Zjg0NDRmNTUzMmVmMmEzNTVmODcuLjBlYWM5MDMz
N2FmMDI5NGIwODY3MGU1ZDIxOTJmOGRmNTdhMTlmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1t
CkBAIC04NDQsNiArODQ0LDM1IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ewogICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0TGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5k
RG9tYWlucyhsaW1pdHNUb0FwcEJvdW5kRG9tYWlucyk7CiB9CisKK3N0YXRpYyBfV0tBdHRyaWJ1
dGlvbk92ZXJyaWRlVGVzdGluZyB0b1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcoV2ViS2l0
OjpBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZyB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUgPT0g
V2ViS2l0OjpBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZzo6QXBwSW5pdGlhdGVkKQorICAgICAg
ICByZXR1cm4gX1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmdBcHBJbml0aWF0ZWQ7CisgICAg
aWYgKHZhbHVlID09IFdlYktpdDo6QXR0cmlidXRpb25PdmVycmlkZVRlc3Rpbmc6OlVzZXJJbml0
aWF0ZWQpCisgICAgICAgIHJldHVybiBfV0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZ1VzZXJJ
bml0aWF0ZWQ7CisgICAgcmV0dXJuIF9XS0F0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nTm9PdmVy
cmlkZTsKK30KKworc3RhdGljIFdlYktpdDo6QXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcgdG9B
dHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZyhfV0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZyB2
YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUgPT0gX1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmdB
cHBJbml0aWF0ZWQpCisgICAgICAgIHJldHVybiBXZWJLaXQ6OkF0dHJpYnV0aW9uT3ZlcnJpZGVU
ZXN0aW5nOjpBcHBJbml0aWF0ZWQ7CisgICAgaWYgKHZhbHVlID09IF9XS0F0dHJpYnV0aW9uT3Zl
cnJpZGVUZXN0aW5nVXNlckluaXRpYXRlZCkKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6QXR0cmli
dXRpb25PdmVycmlkZVRlc3Rpbmc6OlVzZXJJbml0aWF0ZWQ7CisgICAgcmV0dXJuIFdlYktpdDo6
QXR0cmlidXRpb25PdmVycmlkZVRlc3Rpbmc6Ok5vT3ZlcnJpZGU7Cit9CisKKy0gKHZvaWQpX3Nl
dEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOihfV0tBdHRyaWJ1dGlvbk92ZXJy
aWRlVGVzdGluZyl2YWx1ZQoreworICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0QXBwSW5pdGlh
dGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcodG9BdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZyh2
YWx1ZSkpOworfQorCistIChfV0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZylfYXBwSW5pdGlh
dGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcKK3sKKyAgICByZXR1cm4gdG9XS0F0dHJpYnV0aW9u
T3ZlcnJpZGVUZXN0aW5nKF9wYWdlQ29uZmlndXJhdGlvbi0+YXBwSW5pdGlhdGVkT3ZlcnJpZGVW
YWx1ZUZvclRlc3RpbmcoKSk7Cit9CisKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQog
CiAtIChCT09MKV9pZ25vcmVzQXBwQm91bmREb21haW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
UHJpdmF0ZS5oCmluZGV4IGFjZjVjMDJjNzQ4ZTcxMGFhOGFiMGFhOTBiZGEzNmIzMWQ0OTM4M2Uu
LjMyNjk4ZDViOGYyOGM5MjEzNjI3N2YzOWVhMWVjNTNlMmM1OGFmNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC0zMyw2ICszMywxMiBAQCB0eXBlZGVmIE5TX0VOVU0o
TlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogICAgIF9XS0RyYWdMaWZ0RGVsYXlMb25n
CiB9IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIAordHlwZWRlZiBOU19FTlVNKE5TVUlu
dGVnZXIsIF9XS0F0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nKSB7CisgICAgX1dLQXR0cmlidXRp
b25PdmVycmlkZVRlc3RpbmdOb092ZXJyaWRlID0gMCwKKyAgICBfV0tBdHRyaWJ1dGlvbk92ZXJy
aWRlVGVzdGluZ0FwcEluaXRpYXRlZCwKKyAgICBfV0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGlu
Z1VzZXJJbml0aWF0ZWQKK30gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTUuMCkpOworCiBAcHJvdG9j
b2wgX1VJQ2xpY2tJbnRlcmFjdGlvbkRyaXZpbmc7CiAjZW5kaWYKIApAQCAtOTUsNiArMTAxLDcg
QEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRp
bmdRdWlja0xvb2tQcmV2aWV3OikgQk9PTCBfc2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGlu
Z1F1aWNrTG9va1ByZXZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0Q2FuU2hvd1doaWxlTG9ja2VkOikgQk9PTCBfY2FuU2hv
d1doaWxlTG9ja2VkIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEzLjApKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldENsaWNrSW50ZXJhY3Rpb25Ecml2ZXJGb3JUZXN0aW5nOikgaWQg
PF9VSUNsaWNrSW50ZXJhY3Rpb25Ecml2aW5nPiBfY2xpY2tJbnRlcmFjdGlvbkRyaXZlckZvclRl
c3RpbmcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0QXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3Rpbmc6KSBfV0tBdHRy
aWJ1dGlvbk92ZXJyaWRlVGVzdGluZyBfYXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3Rp
bmcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTUuMCkpOwogI2Vsc2UKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNob3dzVVJMc0luVG9vbFRpcHM6KSBCT09MIF9zaG93c1VSTHNJblRv
b2xUaXBzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9zZXJ2aWNlQ29u
dHJvbHNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggOWIw
MWY0MDIyNzE1MjEwMmU0N2U2Y2MyNWRiZGIyNjFkMTc3YmY5Yi4uNmQ1ZmViMzVjMzVlYzA3NzM2
MDYyNGVkMjBlNTliYjVlNzRmMTIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQg
IldlYlBhZ2VQcm94eS5oIgogCiAjaW1wb3J0ICJBUElBdHRhY2htZW50LmgiCisjaW1wb3J0ICJB
UElQYWdlQ29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIKICNpbXBvcnQg
IkNvY29hSW1hZ2UuaCIKICNpbXBvcnQgIkNvbm5lY3Rpb24uaCIKQEAgLTY2Myw2ICs2NjQsOSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShBUFBfUFJJVkFDWV9SRVBPUlQp
CiAgICAgYXV0byBpc0FwcEluaXRpYXRlZCA9IHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6
OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpEb05vdFVwZGF0ZUhUVFBCb2R5KS5hdHRyaWJ1dGlvbiA9
PSBOU1VSTFJlcXVlc3RBdHRyaWJ1dGlvbkRldmVsb3BlcjsKKyAgICBpZiAobV9jb25maWd1cmF0
aW9uLT5hcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZygpICE9IEF0dHJpYnV0aW9u
T3ZlcnJpZGVUZXN0aW5nOjpOb092ZXJyaWRlKQorICAgICAgICBpc0FwcEluaXRpYXRlZCA9IG1f
Y29uZmlndXJhdGlvbi0+YXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcoKSA9PSBB
dHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZzo6QXBwSW5pdGlhdGVkOworCiAgICAgcmVxdWVzdC5z
ZXRJc0FwcEluaXRpYXRlZChpc0FwcEluaXRpYXRlZCk7CiAgICAgbV9sYXN0TmF2aWdhdGlvbldh
c0FwcEluaXRpYXRlZCA9IGlzQXBwSW5pdGlhdGVkOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGRjMzdiZTA2ZDBhZTI3ZGUxMjg1
NmE3NTUyYmNmODk1MWVkOTg0ZS4uNTY5MTFjZjdiNmNiMDYyYzYzMjcyMDRhYjhmZDA4ZDEyOTFk
NWEzMiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTEyICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGxheW91dCB0ZXN0cyB0byBzcGVjaWZ5IGFw
cCBpbml0aWF0ZWQgbG9hZHMgb3Igbm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjc4MjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgwMzU1NTgy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBh
IHRlc3Qgb3B0aW9uIHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIgdGhlIHRlc3Qgc2hvdWxkIG1hcmsg
dGhlCisgICAgICAgIG1haW4gcGFnZSBuYXZpZ2F0aW9uIGFzIGFwcC1pbml0aWF0ZWQgb3Igbm90
LgorCisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHA6CisgICAgICAg
IChXVFI6OlRlc3RPcHRpb25zOjpkZWZhdWx0cyk6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25z
OjprZXlUeXBlTWFwcGluZyk6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9u
cy5oOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6aXNBcHBJbml0aWF0ZWQgY29uc3QpOgor
ICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbToK
KyAgICAgICAgKFdUUjo6VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlV2ViVmlldyk6CisK
IDIwMjEtMDctMTIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW3dhdGNoT1NdIE1ha2UgYSBmZXcgYWRkaXRpb25hbCBhZGp1c3RtZW50cyB0byBzdXBw
b3J0IHN5c3RlbSBtaW5pbXVtIGxheW91dCBtYXJnaW5zCmRpZmYgLS1naXQgYS9Ub29scy9XZWJL
aXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcCBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVz
dE9wdGlvbnMuY3BwCmluZGV4IDkyNjlmYTM1ZmU4Yzc4YWQ4NWM1NzdlYWI5ZDc0YmRmNmJlMzM1
NTMuLjIxMjZmM2NiOTY3NTBlOTIwNjgyZjk4MDU5Nzg3YzkxNGRkMzFmYjcgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCisrKyBiL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwCkBAIC0xNDMsNiArMTQzLDcgQEAgY29uc3QgVGVz
dEZlYXR1cmVzJiBUZXN0T3B0aW9uczo6ZGVmYXVsdHMoKQogICAgICAgICAgICAgeyAiaWdub3Jl
U3luY2hyb25vdXNNZXNzYWdpbmdUaW1lb3V0cyIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJp
Z25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyIsIGZhbHNlIH0sCiAgICAgICAgICAgICB7ICJpc0Fw
cEJvdW5kV2ViVmlldyIsIGZhbHNlIH0sCisgICAgICAgICAgICB7ICJpc0FwcEluaXRpYXRlZCIs
IHRydWUgfSwKICAgICAgICAgICAgIHsgInJ1blNpbmdseSIsIGZhbHNlIH0sCiAgICAgICAgICAg
ICB7ICJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiLCB0cnVlIH0sCiAgICAgICAgICAgICB7ICJz
aG91bGRQcmVzZW50UG9wb3ZlcnMiLCB0cnVlIH0sCkBAIC0xOTYsNiArMTk3LDcgQEAgY29uc3Qg
c3RkOjp1bm9yZGVyZWRfbWFwPHN0ZDo6c3RyaW5nLCBUZXN0SGVhZGVyS2V5VHlwZT4mIFRlc3RP
cHRpb25zOjprZXlUeXBlTWEKICAgICAgICAgeyAiaWdub3JlU3luY2hyb25vdXNNZXNzYWdpbmdU
aW1lb3V0cyIsIFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9LAogICAgICAgICB7
ICJpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cyIsIFRlc3RIZWFkZXJLZXlUeXBlOjpCb29sVGVz
dFJ1bm5lciB9LAogICAgICAgICB7ICJpc0FwcEJvdW5kV2ViVmlldyIsIFRlc3RIZWFkZXJLZXlU
eXBlOjpCb29sVGVzdFJ1bm5lciB9LAorICAgICAgICB7ICJpc0FwcEluaXRpYXRlZCIsIFRlc3RI
ZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9LAogICAgICAgICB7ICJydW5TaW5nbHkiLCBU
ZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKICAgICAgICAgeyAic2hvdWxkSGFu
ZGxlUnVuT3BlblBhbmVsIiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xUZXN0UnVubmVyIH0sCiAg
ICAgICAgIHsgInNob3VsZFByZXNlbnRQb3BvdmVycyIsIFRlc3RIZWFkZXJLZXlUeXBlOjpCb29s
VGVzdFJ1bm5lciB9LApkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0
aW9ucy5oIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCmluZGV4IGI3OWYw
NDYxODZjYTNiZmNmMWI3NWExMTYxNWZjNDE4ZTE2ZmVjMjguLjUwZDBhZDg4MzI0MGE2YmZiN2U1
N2Y4MjIzOTM5M2EyMzdhZGY0NjMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIv
VGVzdE9wdGlvbnMuaAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgK
QEAgLTU5LDYgKzU5LDcgQEAgcHVibGljOgogICAgIGJvb2wgaWdub3JlU3luY2hyb25vdXNNZXNz
YWdpbmdUaW1lb3V0cygpIGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVl
KCJpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIik7IH0KICAgICBib29sIGlnbm9y
ZXNWaWV3cG9ydFNjYWxlTGltaXRzKCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0
dXJlVmFsdWUoImlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIik7IH0KICAgICBib29sIGlzQXBw
Qm91bmRXZWJWaWV3KCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJlVmFsdWUo
ImlzQXBwQm91bmRXZWJWaWV3Iik7IH0KKyAgICBib29sIGlzQXBwSW5pdGlhdGVkKCkgY29uc3Qg
eyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJlVmFsdWUoImlzQXBwSW5pdGlhdGVkIik7IH0K
ICAgICBib29sIHJ1blNpbmdseSgpIGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVy
ZVZhbHVlKCJydW5TaW5nbHkiKTsgfQogICAgIGJvb2wgc2hvdWxkSGFuZGxlUnVuT3BlblBhbmVs
KCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJlVmFsdWUoInNob3VsZEhhbmRs
ZVJ1bk9wZW5QYW5lbCIpOyB9CiAgICAgYm9vbCBzaG91bGRQcmVzZW50UG9wb3ZlcnMoKSBjb25z
dCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgic2hvdWxkUHJlc2VudFBvcG92
ZXJzIik7IH0KZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENv
bnRyb2xsZXJDb2NvYS5tbSBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRy
b2xsZXJDb2NvYS5tbQppbmRleCA5OGNjYjRkYjlhYjA4YmFiMjkzMzBhYjRjYmEyZTI0NWU5OTQ0
ZjdkLi4xZDg1ZDJhZGZlMDEyNTVlMzkyZGE4NzM2NmJhY2ZkODY5NGMxNTYwIDEwMDY0NAotLS0g
YS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KKysr
IGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCkBA
IC0xNjksNiArMTY5LDggQEAgdm9pZCBUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJW
aWV3KFdLUGFnZUNvbmZpZ3VyYXRpb25SZWYsIGNvbnN0IFRlc3RPcHQKICAgICAgICAgW2NvcGll
ZENvbmZpZ3VyYXRpb24gc2V0U2VsZWN0aW9uR3JhbnVsYXJpdHk6V0tTZWxlY3Rpb25HcmFudWxh
cml0eUNoYXJhY3Rlcl07CiAgICAgaWYgKG9wdGlvbnMuaXNBcHBCb3VuZFdlYlZpZXcoKSkKICAg
ICAgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gc2V0TGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5k
RG9tYWluczpZRVNdOworCisgICAgW2NvcGllZENvbmZpZ3VyYXRpb24gX3NldEFwcEluaXRpYXRl
ZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOm9wdGlvbnMuaXNBcHBJbml0aWF0ZWQoKSA/IF9XS0F0
dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nQXBwSW5pdGlhdGVkIDogX1dLQXR0cmlidXRpb25PdmVy
cmlkZVRlc3RpbmdVc2VySW5pdGlhdGVkXTsKICNlbmRpZgogCiAgICAgaWYgKG9wdGlvbnMuZW5h
YmxlQXR0YWNobWVudEVsZW1lbnQoKSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBjMmNjOTE3MjNlNDVlNzRlYTFlM2NhNjU0
MDNlN2E2MTAzMzQ5N2RiLi44ZGUxZmJmNTJiYzgyMDY0MzFkMGY2OTBmOWM1NjBhNzczNjUxMWI4
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMjEtMDctMTIgIEthdGUgQ2hlbmV5ICA8a2F0aGVy
aW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgbGF5b3V0IHRlc3RzIHRvIHNw
ZWNpZnkgYXBwIGluaXRpYXRlZCBsb2FkcyBvciBub3QKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgyNQorICAgICAgICA8cmRhcjovL3Byb2JsZW0v
ODAzNTU1ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAg
ICAgQWRkZWQgbmV3IHRlc3RzIHRvIGNvdmVyIHRoZSB1c2VyIGluaXRpYXRlZCBjYXNlLgorCisg
ICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxv
YWQtdXJsLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tbG9h
ZC11cmwuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1sb2FkLWV4cGVjdGVkLnR4
dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXR0cmlidXRpb24tcGluZy1sb2FkLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWw6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0
aW9uLXBpbmctbG9hZC5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZy
b20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24t
cG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBv
c3QtcmVxdWVzdC5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1w
cmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRp
b24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmli
dXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sOiBD
b3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRy
aWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhw
ZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlv
bi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2
YWxpZGF0aW9uLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
cmVzb3VyY2VzL2FwcC1pbml0aWF0ZWQtcG9zdC5weTogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL3Bvc3QucHkuCisgICAgICAg
ICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL3VzZXItaW5pdGlhdGVk
LXBvc3QucHk6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9yZXNvdXJjZXMvcG9zdC5weS4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlv
bi1sb2FkLXVybC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBl
Y3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcGluZy1sb2FkLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0
cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMt
ZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Vz
ZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQt
YXN5bmMuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2Vy
LWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZs
aWdodC1zeW5jLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWw6IFJlbmFtZWQgZnJv
bSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1w
cmVmbGlnaHQtc3luYy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L3VzZXItYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4
dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1zcGVj
dWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRh
dGlvbi5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hl
Y2stcGluZy11c2VyLWluaXRpYXRlZC1kYXRhLnB5OiBBZGRlZC4KKwogMjAyMS0wNy0xMiAgV2Vu
c29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbd2F0Y2hPU10g
TWFrZSBhIGZldyBhZGRpdGlvbmFsIGFkanVzdG1lbnRzIHRvIHN1cHBvcnQgc3lzdGVtIG1pbmlt
dW0gbGF5b3V0IG1hcmdpbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24t
bG9hZC11cmwtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEwMDI0ODA0NTE1OTlmYjQwOGVkMDBm
NDhiZmQ2NzI4ZjI2ZDZkZjYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdCBsb2FkVVJMIHJlcXVlc3RzIGFyZSBzdWNjZXNmdWxs
eSBhdHRyaWJ1dGVkIGFzIGFwcCBpbml0aWF0ZWQuCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQg
b25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0
aW9uLWxvYWQtdXJsLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDhjMzc1Mjg2YzNmYjczMTVjODBiYTBlOTJi
ZjFhYjNhZGNiNmE4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sCkBAIC0wLDAg
KzEsNDggQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJ
bml0aWF0ZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0icmVz
b3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1l
b3V0KCdydW5UZXN0KCknLCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdCBsb2FkVVJM
IHJlcXVlc3RzIGFyZSBzdWNjZXNmdWxseSBhdHRyaWJ1dGVkIGFzIGFwcCBpbml0aWF0ZWQuPC9k
aXY+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50
ZXN0UnVubmVyKSB7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2FkVVJM
KCkgeworICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4g
KyAiL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbCI7Cisg
ICAgfQorCisgICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9k
ZShtZXNzYWdlICsgJ1xuJykpOworICAgIH0KKworICAgIGNvbnN0IGRlc3RpbmF0aW9uT3JpZ2lu
ID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCI7CisgICAgY29uc3Qgc3RhcnRpbmdPcmlnaW4gPSAi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIjsKKyAgICBmdW5jdGlvbiBydW5UZXN0KCkgeworICAgICAg
ICBpZiAoZG9jdW1lbnQubG9jYXRpb24ub3JpZ2luID09PSBzdGFydGluZ09yaWdpbikgeworICAg
ICAgICAgICAgbG9hZFVSTCgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgdmFyIGRp
ZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVk
UmVxdWVzdCgpOworICAgICAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0
ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAg
ICAgICBpZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgICAg
ICBsb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorCisgICAg
ICAgICAgICBpZiAoIWRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICAg
ICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAg
ICAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVk
IHJlcXVlc3RzIik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAg
ICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBp
bmctbG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1sb2FkLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li42NTYyNzM5MGZjMGQ1ZmMyMGRlOWYzMzhiNWE2YmZhZDVmODhkNmU0Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJp
YnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitDT05TT0xFIE1F
U1NBR0U6IFBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVz
dHMKK1Bpbmcgc2VudCBzdWNjZXNzZnVsbHkKK0NPTlRFTlRfVFlQRTogdGV4dC9waW5nCitIVFRQ
X0hPU1Q6IDEyNy4wLjAuMTo4MDAwCitIVFRQX1BJTkdfRlJPTTogaHR0cDovLzEyNy4wLjAuMTo4
MDAwL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKK0hU
VFBfUElOR19UTzogaHR0cDovLzEyNy4wLjAuMTo4MDAwL25hdmlnYXRpb24vcmVzb3VyY2VzL2No
ZWNrLXBpbmctYXBwLWluaXRpYXRlZC1kYXRhLnB5CitSRVFVRVNUX01FVEhPRDogUE9TVAorUkVR
VUVTVF9VUkk6IC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zYXZlLXBpbmcucHkKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlv
bi1waW5nLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMTFhYmY4Mzli
ZGZlMTY3YTI0MGVlZGI0NmQ1ODE4MjY4ZGY1MzVjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBpbmct
bG9hZC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRl
c3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9dHJ1ZSBdIC0tPgorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL25hdmlnYXRpb24vcGluZy1hdHRyaWJ1dGUv
cmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50
ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKKyAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGREb3duZ3JhZGVSZWZlcnJl
cihmYWxzZSwgZnVuY3Rpb24gKCkgeyB9KTsKKyAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SHlw
ZXJsaW5rQXVkaXRpbmdFbmFibGVkKHRydWUpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBjbGlja0VsZW1lbnQoZG9jdW1lbnQu
cXVlcnlTZWxlY3RvcigiaW1nIikpOworfQorCit3aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkK
K3sKKyAgICBjbGVhckxhc3RQaW5nUmVzdWx0QW5kUnVuVGVzdCh0ZXN0KTsKK30KKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGltZyBzcmM9Im5vbi1leGlzdGVudC1pbWFnZS5qcGci
IHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4IiB1c2VtYXA9IiNpbWFnZW1hcCI+CisgICAgPG1hcCBu
YW1lPSJpbWFnZW1hcCI+CisgICAgICAgIDxhcmVhIHNoYXBlPSJyZWN0IiBjb29yZHM9IjAsMCwx
MjgsMTI4IiBocmVmPSIuLi9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLWFwcC1pbml0
aWF0ZWQtZGF0YS5weSIgcGluZz0iLi4vbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2F2ZS1waW5nLnB5
Ij4KKyAgICA8L21hcD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVl
c3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXBwLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ZTI0NWUzNDBmMTdkZThlNGYzZTM1OWNjMWI5ZjQxNDc2NmRlY2YxYwotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1
dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorQ09OU09MRSBN
RVNTQUdFOiBQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVl
c3RzCitUZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIFBPU1QgcmVx
dWVzdHMuCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVz
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmZkNjljYzZkOGQ5ZDc0YzY2Zjc3N2ZlOWI2MmQ2MDExMzcyZmRm
MGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwKQEAgLTAsMCArMSwyMiBA
QAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRl
ZD10cnVlIF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorPG1ldGEgY2hhcnNldD0idXRmLTgiPgorPHNj
cmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Cis8
L2hlYWQ+Cis8Ym9keT4KKzxwPlRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtl
ZCBmb3IgUE9TVCByZXF1ZXN0cy48L3A+Cis8Zm9ybSBpZD0idGVzdEZvcm0iIGFjdGlvbj0icmVz
b3VyY2VzL2FwcC1pbml0aWF0ZWQtcG9zdC5weSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9yZWZl
cnJlciIgbWV0aG9kPSJwb3N0Ij4KKzxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJUZXN0Ij48
L2lucHV0PgorPGZvcm0+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAg
dGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7CisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2lu
ZG93cyh0cnVlKTsKK30KKworZG9jdW1lbnQuZm9ybXNbMF0uc3VibWl0KCk7CisKKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0
cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YjVlZWE5
NDIyYWQwY2FlZTc2NjdiY2Q0MDZkYjkzZTBhNWU5ZTJlCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBy
ZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NB
R0U6IFByZWZsaWdodCByZXNwb25zZSBpcyBub3Qgc3VjY2Vzc2Z1bAorQ09OU09MRSBNRVNTQUdF
OiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IGR1ZSB0byBhY2Nl
c3MgY29udHJvbCBjaGVja3MuCitUZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJr
ZWQgZm9yIGFzeW5jIHByZWZsaWdodHMKKworUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkg
YXBwIGluaXRpYXRlZCByZXF1ZXN0cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0
bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmli
dXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjBmZGVjOGFjOWNlOGViZDM4
MTc2ZTMwZGFlOGM0NTlmMGUzOWE0ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5
bmMuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPXRydWUgXSAtLT4KKzxwPlRlc3RzIGFwcCBpbml0aWF0
ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3IgYXN5bmMgcHJlZmxpZ2h0czwvcD4KKworPHByZSBp
ZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Cisg
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVz
c2FnZSArICdcbicpKTsKK30KKwordmFyIHByZWZsaWdodExpbmtEb21haW4gPSAibG9jYWxob3N0
IjsKK3ZhciBjb250ZXh0SG9zdCA9ICIxMjcuMC4wLjEiOwordmFyIHVybCA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1i
b2R5LnB5IgorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0
dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgdHJ1ZSk7CisgICAgcmVxLnNl
dFJlcXVlc3RIZWFkZXIoIngtd2Via2l0IiwgImZvbyIpOworCisgICAgcmVxLm9uZXJyb3IgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVz
dFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworICAgICAgICB2YXIgZGlkTG9h
ZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0
ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0
KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVx
dWVzdCIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0K
KworICAgICAgICBpZiAoIWRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAg
ICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBsb2co
IlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsK
KyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorICAgIHJlcS5zZW5kKG51
bGwpOworfQorCitydW5UZXN0KCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQt
c3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjQwMTZjNTMxZTA2NTlhZGNkZDYzNTU1MjNlYTFiMGFkMmQ1YTJiMWMKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0
cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorQ09O
U09MRSBNRVNTQUdFOiBQcmVmbGlnaHQgcmVzcG9uc2UgaXMgbm90IHN1Y2Nlc3NmdWwKK0NPTlNP
TEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSBk
dWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorVGVzdHMgYXBwIGluaXRpYXRlZCByZXF1ZXN0
cyBnZXQgbWFya2VkIGZvciBzeW5jIHByZWZsaWdodHMKKworUEFTUzogTmV0d29ya0Vycm9yOiAg
QSBuZXR3b3JrIGVycm9yIG9jY3VycmVkLgorUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkg
YXBwIGluaXRpYXRlZCByZXF1ZXN0cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1
dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjZDYxNjhiMjI3Y2E1ZGE4YjU0
NmZlNmFhZGE2ODg4YTJmYmJmZjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMu
aHRtbApAQCAtMCwwICsxLDUwIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1
bm5lciBbIGlzQXBwSW5pdGlhdGVkPXRydWUgXSAtLT4KKzxwPlRlc3RzIGFwcCBpbml0aWF0ZWQg
cmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3Igc3luYyBwcmVmbGlnaHRzPC9wPgorCis8cHJlIGlkPSJj
b25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
K30KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdl
ICsgJ1xuJykpOworfQorCit2YXIgcHJlZmxpZ2h0TGlua0RvbWFpbiA9ICJsb2NhbGhvc3QiOwor
dmFyIGNvbnRleHRIb3N0ID0gIjEyNy4wLjAuMSI7Cit2YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHku
cHkiCisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJl
cXVlc3QoKTsKKyAgICByZXEub3BlbigiR0VUIiwgdXJsLCBmYWxzZSk7CisgICAgcmVxLnNldFJl
cXVlc3RIZWFkZXIoIngtd2Via2l0IiwgImZvbyIpOworCisgICAgdHJ5IHsKKyAgICAgICAgcmVx
LnNlbmQobnVsbCk7CisgICAgICAgIGxvZygiUEFTUzogIiArIHJlcS5yZXNwb25zZVRleHQpOwor
ICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgIGxvZygiUEFTUzogIiArIGV4KTsKKyAgICAgICAg
dmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5p
dGlhdGVkUmVxdWVzdCgpOworICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVl
c3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAg
ICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2co
IkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWRpZExv
YWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBs
b2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxv
YWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgfQorfQorCitydW5UZXN0KCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1
dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZl
LXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjIxYzJkNTk5NDE0NGU4MTBl
MTU3N2VmZmJjZDA5Y2UwNmRmM2RkZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1y
ZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTQgQEAKKzEyNy4wLjAuMTo4MDAw
IC0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIC0gUHJvdGVjdGlvblNwYWNlQXV0
aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMgLSBSZXNwb25kaW5nIHdpdGggdGVzdFVzZXJuYW1l
OnRlc3RQYXNzd29yZAorMTI3LjAuMC4xOjgwMDAgLSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25D
aGFsbGVuZ2UgLSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyAt
IFNpbXVsYXRpbmcgY2FuY2VsbGVkIGF1dGhlbnRpY2F0aW9uIHNoZWV0CitUZXN0cyBzcGVjdWxh
dGl2ZSByZXZhbGlkYXRpb24gb2YgYXV0aGVudGljYXRlZCByZXNvdXJjZXMuCisKK09uIHN1Y2Nl
c3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5
ICJURVNUIENPTVBMRVRFIi4KKworCitQQVNTIHhoci5zdGF0dXMgaXMgNDAxCitQQVNTIFN1Y2Nl
c3NmdWx5IGxvYWRlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0
ZWQgcmVxdWVzdHMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3Bl
Y3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMDQxZjVkNmQxNDYwOGE3ZjAz
Y2VmNjYwYzM5NzNhNWEwM2UyMDk0OQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1y
ZXZhbGlkYXRpb24uaHRtbApAQCAtMCwwICsxLDczIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdl
YmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPXRydWUgXSAtLT4KKzxzY3JpcHQgc3Jj
PSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4K
K2Rlc2NyaXB0aW9uKCJUZXN0cyBzcGVjdWxhdGl2ZSByZXZhbGlkYXRpb24gb2YgYXV0aGVudGlj
YXRlZCByZXNvdXJjZXMuIik7Citqc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKwordGVzdFJ1bm5lci5z
ZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKHRydWUpOwordGVzdFJ1bm5lci5zZXRB
dXRoZW50aWNhdGlvblVzZXJuYW1lKCJ0ZXN0VXNlcm5hbWUiKTsKK3Rlc3RSdW5uZXIuc2V0QXV0
aGVudGljYXRpb25QYXNzd29yZCgidGVzdFBhc3N3b3JkIik7CisKK3N0YXRlID0gIndhcm11cCI7
CisKK2Z1bmN0aW9uIGNsZWFyQ3JlZGVudGlhbFN0b3JhZ2UoKQoreworICAgIHhociA9IG5ldyBY
TUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL3Jlc291cmNl
LXdpdGgtYXV0aC5weT9vdGhlciIsIGZhbHNlLCAiYmFkVXNlcm5hbWUiLCAiYmFkUGFzc3dvcmQi
KTsKKyAgICB4aHIuc2VuZCgpOworICAgIHNob3VsZEJlKCJ4aHIuc3RhdHVzIiwgIjQwMSIpOwor
fQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2Ug
KyAnXG4nKSk7Cit9CisKK2Z1bmN0aW9uIGZyYW1lTG9hZGVkKCkKK3sKKyAgICBpZiAoc3RhdGUg
PT0gIndhcm11cCIpIHsKKyAgICAgICAgLy8gTmF2aWdhdGUgZnJhbWUgdG8gJ2Fib3V0OmJsYW5r
JyB0byBmbHVzaCB0byBzdWJyZXNvdXJjZSBsb2FkcyBtZXRhZGF0YSB0byBkaXNrLgorICAgICAg
ICBzdGF0ZSA9ICJmbHVzaGluZ01ldGFkYXRhIjsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRIYW5k
bGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKGZhbHNlKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLnNyYyA9ICJhYm91dDpibGFuayI7CisgICAgICAgIHJl
dHVybjsKKyAgICB9CisgICAgaWYgKHN0YXRlID09ICJmbHVzaGluZ01ldGFkYXRhIikgeworICAg
ICAgICBjbGVhckNyZWRlbnRpYWxTdG9yYWdlKCk7CisKKyAgICAgICAgaW50ZXJuYWxzLmNsZWFy
TWVtb3J5Q2FjaGUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRIYW5kbGVzQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VzKGZhbHNlKTsKKworICAgICAgICAvLyBOYXZpZ2F0ZSBmcmFtZSB0byBpdHMg
b3JpZ2luYWwgbG9jYXRpb24gYWdhaW4uIFRoaXMgdGltZSBpdCBzaG91bGQgc3BlY3VsYXRpdmVs
eQorICAgICAgICAvLyB2YWxpZGF0ZSBzdWJyZXNvdXJjZXMgYXMgd2UgaGF2ZSBzdWJyZXNvdXJj
ZSBsb2FkcyBtZXRhZGF0YSBpbiB0aGUgZGlzayBjYWNoZS4KKyAgICAgICAgc3RhdGUgPSAic3Bl
Y3VsYXRpdmVSZXZhbGlkYXRpb24iOworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgi
dGVzdEZyYW1lIikuc3JjID0gInJlc291cmNlcy9mcmFtZS13aXRoLWF1dGhlbnRpY2F0ZWQtcmVz
b3VyY2UucHkiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChzdGF0ZSA9PSAic3Bl
Y3VsYXRpdmVSZXZhbGlkYXRpb24iKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWx5
IGxvYWRlZC4iKTsKKyAgICAgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVz
dFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworICAgICAgICB2YXIgZGlkTG9h
ZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0
ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0
KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVx
dWVzdCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47
CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7
CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVz
dCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgICAgICByZXR1cm47Cisg
ICAgICAgIH0KKworICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFw
cCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKKworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAg
ICAgcmV0dXJuOworICAgIH0KK30KKworPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUi
IHNyYz0icmVzb3VyY2VzL2ZyYW1lLXdpdGgtYXV0aGVudGljYXRlZC1yZXNvdXJjZS5weSIgb25s
b2FkPSJmcmFtZUxvYWRlZCgpIj48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNv
dXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJp
YnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggYTAwMjQ4MDQ1MTU5OWZiNDA4ZWQwMGY0OGJmZDY3MjhmMjZkNmRmNi4uMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQKKysr
IC9kZXYvbnVsbApAQCAtMSwzICswLDAgQEAKLVRlc3QgbG9hZFVSTCByZXF1ZXN0cyBhcmUgc3Vj
Y2VzZnVsbHkgYXR0cmlidXRlZCBhcyBhcHAgaW5pdGlhdGVkLgotUEFTUyBzdWNjZXNzZnVsbHkg
bG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cwotCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC5o
dG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRp
b24tbG9hZC11cmwuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDdhZDhlZTVj
ODdjYzJkMTg1ZWQ3OTdmNWJlZjA3YWQ2OTRlOGMwNC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsNDgg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotICAgIDxzY3JpcHQgc3Jj
PSJyZXNvdXJjZXMvdXRpbC5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keSBvbmxvYWQ9InNl
dFRpbWVvdXQoJ3J1blRlc3QoKScsIDApIj4KLTxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0IGxv
YWRVUkwgcmVxdWVzdHMgYXJlIHN1Y2Nlc2Z1bGx5IGF0dHJpYnV0ZWQgYXMgYXBwIGluaXRpYXRl
ZC48L2Rpdj4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNjcmlwdD4KLSAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKLSAgICAgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0g
ICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIGxv
YWRVUkwoKSB7Ci0gICAgICAgIGRvY3VtZW50LmxvY2F0aW9uLmhyZWYgPSBkZXN0aW5hdGlvbk9y
aWdpbiArICIvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwiOwot
ICAgIH0KLQotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7Ci0gICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUobWVzc2FnZSArICdcbicpKTsKLSAgICB9Ci0KLSAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdp
biA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOwotICAgIGNvbnN0IHN0YXJ0aW5nT3JpZ2luID0g
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7Ci0gICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKLSAgICAg
ICAgaWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gc3RhcnRpbmdPcmlnaW4pIHsKLSAg
ICAgICAgICAgIGxvYWRVUkwoKTsKLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHZhciBk
aWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRl
ZFJlcXVlc3QoKTsKLSAgICAgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVz
dCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKLQotICAgICAg
ICAgICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7Ci0gICAgICAgICAgICAg
ICAgbG9nKCJGQUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAg
ICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICAgICAgICAgIH0KLQotICAg
ICAgICAgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAg
ICAgIGxvZygiRkFJTCBkaWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7Ci0gICAg
ICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9Ci0KLSAg
ICAgICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRl
ZCByZXF1ZXN0cyIpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAg
ICAgIH0KLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBpbmct
bG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwZDYxN2VlOTAwYTQ5MDJiOTdhNGJlZDZhMzllOTY1NjZjZTQ1NTlmLi4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw4ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTog
UEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cwotUGlu
ZyBzZW50IHN1Y2Nlc3NmdWxseQotQ09OVEVOVF9UWVBFOiB0ZXh0L3BpbmcKLUhUVFBfSE9TVDog
MTI3LjAuMC4xOjgwMDAKLUhUVFBfUElOR19GUk9NOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvYXBw
LXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sCi1IVFRQX1BJTkdfVE86
IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLWFw
cC1pbml0aWF0ZWQtZGF0YS5weQotUkVRVUVTVF9NRVRIT0Q6IFBPU1QKLVJFUVVFU1RfVVJJOiAv
bmF2aWdhdGlvbi9yZXNvdXJjZXMvc2F2ZS1waW5nLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9u
LXBpbmctbG9hZC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAxMTAwY2FlMmM2
MmNkYWJkYWE0ZTEwZWMzOWY5YzkwYTg5ZWJlOTk1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2F0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMzAg
KzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPHNjcmlwdCBzcmM9Ii4u
L25hdmlnYXRpb24vcGluZy1hdHRyaWJ1dGUvcmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3Jp
cHQ+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMp
IHsKLSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLnNldFN0YXRp
c3RpY3NTaG91bGREb3duZ3JhZGVSZWZlcnJlcihmYWxzZSwgZnVuY3Rpb24gKCkgeyB9KTsKLSAg
ICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKHRydWUpOwot
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotfQotCi1mdW5jdGlvbiB0ZXN0KCkKLXsK
LSAgICBjbGlja0VsZW1lbnQoZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIikpOwotfQotCi13
aW5kb3cub25sb2FkID0gZnVuY3Rpb24gKCkKLXsKLSAgICBjbGVhckxhc3RQaW5nUmVzdWx0QW5k
UnVuVGVzdCh0ZXN0KTsKLX0KLTwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHk+Ci0gICAgPGltZyBz
cmM9Im5vbi1leGlzdGVudC1pbWFnZS5qcGciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4IiB1c2Vt
YXA9IiNpbWFnZW1hcCI+Ci0gICAgPG1hcCBuYW1lPSJpbWFnZW1hcCI+Ci0gICAgICAgIDxhcmVh
IHNoYXBlPSJyZWN0IiBjb29yZHM9IjAsMCwxMjgsMTI4IiBocmVmPSIuLi9uYXZpZ2F0aW9uL3Jl
c291cmNlcy9jaGVjay1waW5nLWFwcC1pbml0aWF0ZWQtZGF0YS5weSIgcGluZz0iLi4vbmF2aWdh
dGlvbi9yZXNvdXJjZXMvc2F2ZS1waW5nLnB5Ij4KLSAgICA8L21hcD4KLTwvYm9keT4KLTwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2F0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0
ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlMjQ1ZTM0MGYxN2RlOGU0ZjNl
MzU5Y2MxYjlmNDE0NzY2ZGVjZjFjLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0
dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw0
ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkg
YXBwIGluaXRpYXRlZCByZXF1ZXN0cwotVGVzdHMgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQg
bWFya2VkIGZvciBQT1NUIHJlcXVlc3RzLgotCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24t
cG9zdC1yZXF1ZXN0Lmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFkNzk1NGY3
ODAzM2I0ZGU2MDViOTAxYTYwM2Y5YmQzMTllNTEyODUuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAt
MSwyMiArMCwwIEBACi08IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGhlYWQ+Ci08bWV0YSBjaGFy
c2V0PSJ1dGYtOCI+Ci08c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJl
LmpzIj48L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotPHA+VGVzdHMgYXBwIGluaXRpYXRlZCBy
ZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBQT1NUIHJlcXVlc3RzLjwvcD4KLTxmb3JtIGlkPSJ0ZXN0
Rm9ybSIgYWN0aW9uPSJyZXNvdXJjZXMvcG9zdC5weSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9y
ZWZlcnJlciIgbWV0aG9kPSJwb3N0Ij4KLTxpbnB1dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJUZXN0
Ij48L2lucHV0PgotPGZvcm0+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0g
ICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci0gICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVu
V2luZG93cyh0cnVlKTsKLX0KLQotZG9jdW1lbnQuZm9ybXNbMF0uc3VibWl0KCk7Ci0KLTwvc2Ny
aXB0PgotPC9ib2R5PgotPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0
aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDliNWVlYTk0MjJhZDBjYWVlNzY2N2JjZDQwNmRiOTNlMGE1ZTllMmUuLjAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVj
dGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDYgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBQ
cmVmbGlnaHQgcmVzcG9uc2UgaXMgbm90IHN1Y2Nlc3NmdWwKLUNPTlNPTEUgTUVTU0FHRTogWE1M
SHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSBkdWUgdG8gYWNjZXNzIGNv
bnRyb2wgY2hlY2tzLgotVGVzdHMgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZv
ciBhc3luYyBwcmVmbGlnaHRzCi0KLVBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBp
bml0aWF0ZWQgcmVxdWVzdHMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGln
aHQtYXN5bmMuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMzkzYjlmM2MyNGRi
N2UzMGM5ZjUxZTlmNGQyMjcxNmQ2NjJlOGRiNi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0x
LDQ2ICswLDAgQEAKLTxwPlRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBm
b3IgYXN5bmMgcHJlZmxpZ2h0czwvcD4KLQotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08c2Ny
aXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci19Ci0KLWZ1bmN0aW9uIGxvZyht
ZXNzYWdlKQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5k
Q2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKLX0KLQotdmFy
IHByZWZsaWdodExpbmtEb21haW4gPSAibG9jYWxob3N0IjsKLXZhciBjb250ZXh0SG9zdCA9ICIx
MjcuMC4wLjEiOwotdmFyIHVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IgotCi1mdW5jdGlvbiBydW5U
ZXN0KCkKLXsKLSAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgcmVxLm9w
ZW4oIkdFVCIsIHVybCwgdHJ1ZSk7Ci0gICAgcmVxLnNldFJlcXVlc3RIZWFkZXIoIngtd2Via2l0
IiwgImZvbyIpOwotCi0gICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgdmFy
IGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlh
dGVkUmVxdWVzdCgpOwotICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3Qg
PSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7Ci0KLSAgICAgICAg
aWYgKGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7Ci0gICAgICAgICAgICBsb2coIkZB
SUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwotICAgICAgICAgICAgdGVz
dFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAoIWRpZExvYWRB
cHBJbml0aWF0ZWRSZXF1ZXN0KSB7Ci0gICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2Fk
IGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwotICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRl
ZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKLSAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7Ci0gICAgfQotICAgIHJlcS5zZW5kKG51bGwpOwotfQotCi1ydW5UZXN0KCk7Ci08
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1z
eW5jLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNDAxNmM1MzFl
MDY1OWFkY2RkNjM1NTUyM2VhMWIwYWQyZDVhMmIxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQKKysrIC9kZXYv
bnVsbApAQCAtMSw3ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogUHJlZmxpZ2h0IHJlc3BvbnNl
IGlzIG5vdCBzdWNjZXNzZnVsCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3Rh
dHVzLTQwNC13aXRob3V0LWJvZHkucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLVRl
c3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3Igc3luYyBwcmVmbGlnaHRz
Ci0KLVBBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4KLVBBU1Mg
c3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKLQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRp
b24tcHJlZmxpZ2h0LXN5bmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IGViNTQwOTVhMWZmN2MwNDFkMWFiZTU2MDBmYTViY2U1Y2VlZTQzYTUu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5
bmMuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ5ICswLDAgQEAKLTxwPlRlc3RzIGFwcCBpbml0
aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3Igc3luYyBwcmVmbGlnaHRzPC9wPgotCi08cHJl
IGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci1pZiAod2luZG93LnRlc3RSdW5uZXIpIHsK
LSAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKLX0KLQotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSht
ZXNzYWdlICsgJ1xuJykpOwotfQotCi12YXIgcHJlZmxpZ2h0TGlua0RvbWFpbiA9ICJsb2NhbGhv
c3QiOwotdmFyIGNvbnRleHRIb3N0ID0gIjEyNy4wLjAuMSI7Ci12YXIgdXJsID0gImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0
LWJvZHkucHkiCi0KLWZ1bmN0aW9uIHJ1blRlc3QoKQotewotICAgIHZhciByZXEgPSBuZXcgWE1M
SHR0cFJlcXVlc3QoKTsKLSAgICByZXEub3BlbigiR0VUIiwgdXJsLCBmYWxzZSk7Ci0gICAgcmVx
LnNldFJlcXVlc3RIZWFkZXIoIngtd2Via2l0IiwgImZvbyIpOwotCi0gICAgdHJ5IHsKLSAgICAg
ICAgcmVxLnNlbmQobnVsbCk7Ci0gICAgICAgIGxvZygiUEFTUzogIiArIHJlcS5yZXNwb25zZVRl
eHQpOwotICAgIH0gY2F0Y2ggKGV4KSB7Ci0gICAgICAgIGxvZygiUEFTUzogIiArIGV4KTsKLSAg
ICAgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2Fk
QXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRl
ZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7Ci0K
LSAgICAgICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7Ci0gICAgICAgICAg
ICBsb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwotICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBpZiAo
IWRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7Ci0gICAgICAgICAgICBsb2coIkZBSUwgZGlk
IG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwotICAgICAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIH0KLQotICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1
bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKLSAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgfQotfQotCi1ydW5UZXN0KCk7Ci08L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJp
YnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1y
ZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBi
MjFjMmQ1OTk0MTQ0ZTgxMGUxNTc3ZWZmYmNkMDljZTA2ZGYzZGRkLi4wMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBl
Y3RlZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSwxNCArMCwwIEBACi0xMjcuMC4wLjE6ODAwMCAt
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAtIFByb3RlY3Rpb25TcGFjZUF1dGhl
bnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljIC0gUmVzcG9uZGluZyB3aXRoIHRlc3RVc2VybmFtZTp0
ZXN0UGFzc3dvcmQKLTEyNy4wLjAuMTo4MDAwIC0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlIC0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMgLSBT
aW11bGF0aW5nIGNhbmNlbGxlZCBhdXRoZW50aWNhdGlvbiBzaGVldAotVGVzdHMgc3BlY3VsYXRp
dmUgcmV2YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0ZWQgcmVzb3VyY2VzLgotCi1PbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCi0KLQotUEFTUyB4aHIuc3RhdHVzIGlzIDQwMQotUEFTUyBTdWNjZXNz
ZnVseSBsb2FkZWQuCi1QQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVk
IHJlcXVlc3RzCi1QQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCi0KLVRFU1QgQ09NUExF
VEUKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1y
ZXZhbGlkYXRpb24uaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYWI3NWQ2ZmYx
YmU4OWExN2ZiYWRlYWVmYWM5NzQwMDBkYzllODVkMC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDcyICswLDAgQEAKLTxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMv
anMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJUZXN0cyBz
cGVjdWxhdGl2ZSByZXZhbGlkYXRpb24gb2YgYXV0aGVudGljYXRlZCByZXNvdXJjZXMuIik7Ci1q
c1Rlc3RJc0FzeW5jID0gdHJ1ZTsKLQotdGVzdFJ1bm5lci5zZXRIYW5kbGVzQXV0aGVudGljYXRp
b25DaGFsbGVuZ2VzKHRydWUpOwotdGVzdFJ1bm5lci5zZXRBdXRoZW50aWNhdGlvblVzZXJuYW1l
KCJ0ZXN0VXNlcm5hbWUiKTsKLXRlc3RSdW5uZXIuc2V0QXV0aGVudGljYXRpb25QYXNzd29yZCgi
dGVzdFBhc3N3b3JkIik7Ci0KLXN0YXRlID0gIndhcm11cCI7Ci0KLWZ1bmN0aW9uIGNsZWFyQ3Jl
ZGVudGlhbFN0b3JhZ2UoKQotewotICAgIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAg
IHhoci5vcGVuKCJHRVQiLCAicmVzb3VyY2VzL3Jlc291cmNlLXdpdGgtYXV0aC5weT9vdGhlciIs
IGZhbHNlLCAiYmFkVXNlcm5hbWUiLCAiYmFkUGFzc3dvcmQiKTsKLSAgICB4aHIuc2VuZCgpOwot
ICAgIHNob3VsZEJlKCJ4aHIuc3RhdHVzIiwgIjQwMSIpOwotfQotCi1mdW5jdGlvbiBsb2cobWVz
c2FnZSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Ci19Ci0KLWZ1bmN0
aW9uIGZyYW1lTG9hZGVkKCkKLXsKLSAgICBpZiAoc3RhdGUgPT0gIndhcm11cCIpIHsKLSAgICAg
ICAgLy8gTmF2aWdhdGUgZnJhbWUgdG8gJ2Fib3V0OmJsYW5rJyB0byBmbHVzaCB0byBzdWJyZXNv
dXJjZSBsb2FkcyBtZXRhZGF0YSB0byBkaXNrLgotICAgICAgICBzdGF0ZSA9ICJmbHVzaGluZ01l
dGFkYXRhIjsKLSAgICAgICAgdGVzdFJ1bm5lci5zZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VzKGZhbHNlKTsKLSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFt
ZSIpLnNyYyA9ICJhYm91dDpibGFuayI7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci0gICAgaWYg
KHN0YXRlID09ICJmbHVzaGluZ01ldGFkYXRhIikgewotICAgICAgICBjbGVhckNyZWRlbnRpYWxT
dG9yYWdlKCk7Ci0KLSAgICAgICAgaW50ZXJuYWxzLmNsZWFyTWVtb3J5Q2FjaGUoKTsKLSAgICAg
ICAgdGVzdFJ1bm5lci5zZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKGZhbHNlKTsK
LQotICAgICAgICAvLyBOYXZpZ2F0ZSBmcmFtZSB0byBpdHMgb3JpZ2luYWwgbG9jYXRpb24gYWdh
aW4uIFRoaXMgdGltZSBpdCBzaG91bGQgc3BlY3VsYXRpdmVseQotICAgICAgICAvLyB2YWxpZGF0
ZSBzdWJyZXNvdXJjZXMgYXMgd2UgaGF2ZSBzdWJyZXNvdXJjZSBsb2FkcyBtZXRhZGF0YSBpbiB0
aGUgZGlzayBjYWNoZS4KLSAgICAgICAgc3RhdGUgPSAic3BlY3VsYXRpdmVSZXZhbGlkYXRpb24i
OwotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdEZyYW1lIikuc3JjID0gInJl
c291cmNlcy9mcmFtZS13aXRoLWF1dGhlbnRpY2F0ZWQtcmVzb3VyY2UucHkiOwotICAgICAgICBy
ZXR1cm47Ci0gICAgfQotICAgIGlmIChzdGF0ZSA9PSAic3BlY3VsYXRpdmVSZXZhbGlkYXRpb24i
KSB7Ci0gICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWx5IGxvYWRlZC4iKTsKLSAgICAgICAg
dmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5p
dGlhdGVkUmVxdWVzdCgpOwotICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVl
c3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7Ci0KLSAgICAg
ICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7Ci0gICAgICAgICAgICBsb2co
IkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwotICAgICAgICAgICAg
ZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAg
ICBpZiAoIWRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7Ci0gICAgICAgICAgICBsb2coIkZB
SUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwotICAgICAgICAgICAgZmlu
aXNoSlNUZXN0KCk7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgIH0KLQotICAgICAgICBs
b2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMi
KTsKLQotICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLX0K
LQotPC9zY3JpcHQ+Ci08aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL2ZyYW1l
LXdpdGgtYXV0aGVudGljYXRlZC1yZXNvdXJjZS5weSIgb25sb2FkPSJmcmFtZUxvYWRlZCgpIj48
L2lmcmFtZT4KLTxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0Lmpz
Ij48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L3Jlc291cmNlcy9hcHAtaW5pdGlhdGVkLXBvc3QucHkgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMvYXBwLWluaXRpYXRlZC1wb3N0
LnB5Cm5ldyBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmQwNmZlZWUyMTJjNzAxY2Y2MmQ5ZDgzMGRmZjJiNWI4NzYxYjkzOWYK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9yZXNvdXJjZXMvYXBwLWluaXRpYXRlZC1wb3N0LnB5CkBAIC0wLDAgKzEsMjcgQEAKKyMh
L3Vzci9iaW4vZW52IHB5dGhvbjMKKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK3JlZmVyZXIg
PSBvcy5lbnZpcm9uLmdldCgnSFRUUF9SRUZFUkVSJywgJycpCisKK3N5cy5zdGRvdXQud3JpdGUo
CisgICAgJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sXHJcblxyXG4nCisgICAgJzxwPlJlZmVycmVy
OiB7cmVmZXJlcn08L3A+XG4nCisgICAgJzxzY3JpcHQ+XG4nCisgICAgJ2lmICh3aW5kb3cudGVz
dFJ1bm5lcikge3tcbicKKyAgICAnICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9
IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTtcbicKKyAgICAnICAgIHZh
ciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFw
cEluaXRpYXRlZFJlcXVlc3QoKTtcbicKKyAgICAnICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlh
dGVkUmVxdWVzdCkge3tcbicKKyAgICAnICAgICAgICBjb25zb2xlLmxvZygiRkFJTCBkaWQgbG9h
ZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7XG4nCisgICAgJyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7XG4nCisgICAgJyAgICB9fVxuJworICAgICcgICAgaWYgKCFkaWRMb2Fk
QXBwSW5pdGlhdGVkUmVxdWVzdCkge3tcbicKKyAgICAnICAgICAgICAgY29uc29sZS5sb2coIkZB
SUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpO1xuJworICAgICcgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAgICcgICAgIH19XG4nCisgICAgJyAgICBj
b25zb2xlLmxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCBy
ZXF1ZXN0cyIpO1xuJworICAgICcgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCisgICAg
J319XG4nCisgICAgJzwvc2NyaXB0PlxuJy5mb3JtYXQocmVmZXJlcj1yZWZlcmVyKQorKQpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3Vy
Y2VzL3Bvc3QucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9y
ZXNvdXJjZXMvcG9zdC5weQpkZWxldGVkIGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggZDA2ZmVlZTIx
MmM3MDFjZjYyZDlkODMwZGZmMmI1Yjg3NjFiOTM5Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9yZXNvdXJjZXMvcG9zdC5weQorKysgL2Rldi9udWxsCkBAIC0xLDI3ICswLDAgQEAK
LSMhL3Vzci9iaW4vZW52IHB5dGhvbjMKLQotaW1wb3J0IG9zCi1pbXBvcnQgc3lzCi0KLXJlZmVy
ZXIgPSBvcy5lbnZpcm9uLmdldCgnSFRUUF9SRUZFUkVSJywgJycpCi0KLXN5cy5zdGRvdXQud3Jp
dGUoCi0gICAgJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sXHJcblxyXG4nCi0gICAgJzxwPlJlZmVy
cmVyOiB7cmVmZXJlcn08L3A+XG4nCi0gICAgJzxzY3JpcHQ+XG4nCi0gICAgJ2lmICh3aW5kb3cu
dGVzdFJ1bm5lcikge3tcbicKLSAgICAnICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVz
dCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTtcbicKLSAgICAnICAg
IHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5v
bkFwcEluaXRpYXRlZFJlcXVlc3QoKTtcbicKLSAgICAnICAgIGlmIChkaWRMb2FkTm9uQXBwSW5p
dGlhdGVkUmVxdWVzdCkge3tcbicKLSAgICAnICAgICAgICBjb25zb2xlLmxvZygiRkFJTCBkaWQg
bG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7XG4nCi0gICAgJyAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7XG4nCi0gICAgJyAgICB9fVxuJwotICAgICcgICAgaWYgKCFkaWRM
b2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkge3tcbicKLSAgICAnICAgICAgICAgY29uc29sZS5sb2co
IkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpO1xuJwotICAgICcgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJwotICAgICcgICAgIH19XG4nCi0gICAgJyAg
ICBjb25zb2xlLmxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRl
ZCByZXF1ZXN0cyIpO1xuJwotICAgICcgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCi0g
ICAgJ319XG4nCi0gICAgJzwvc2NyaXB0PlxuJy5mb3JtYXQocmVmZXJlcj1yZWZlcmVyKQotKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVz
b3VyY2VzL3VzZXItaW5pdGlhdGVkLXBvc3QucHkgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMvdXNlci1pbml0aWF0ZWQtcG9zdC5weQpuZXcgZmls
ZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi43MmNjMmUxMzljYzQ2NGEyNWI2Y2ZhMTFkOTQzYjFlY2IyYWRlNGNlCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3Vy
Y2VzL3VzZXItaW5pdGlhdGVkLXBvc3QucHkKQEAgLTAsMCArMSwyNyBAQAorIyEvdXNyL2Jpbi9l
bnYgcHl0aG9uMworCitpbXBvcnQgb3MKK2ltcG9ydCBzeXMKKworcmVmZXJlciA9IG9zLmVudmly
b24uZ2V0KCdIVFRQX1JFRkVSRVInLCAnJykKKworc3lzLnN0ZG91dC53cml0ZSgKKyAgICAnQ29u
dGVudC1UeXBlOiB0ZXh0L2h0bWxcclxuXHJcbicKKyAgICAnPHA+UmVmZXJyZXI6IHtyZWZlcmVy
fTwvcD5cbicKKyAgICAnPHNjcmlwdD5cbicKKyAgICAnaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7
e1xuJworICAgICcgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5l
ci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpO1xuJworICAgICcgICAgdmFyIGRpZExvYWRO
b25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVk
UmVxdWVzdCgpO1xuJworICAgICcgICAgaWYgKGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7
e1xuJworICAgICcgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMIGRpZCBsb2FkIGFwcCBpbml0aWF0
ZWQgcmVxdWVzdCIpO1xuJworICAgICcgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xu
JworICAgICcgICAgfX1cbicKKyAgICAnICAgIGlmICghZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJl
cXVlc3QpIHt7XG4nCisgICAgJyAgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMIGRpZCBub3QgbG9h
ZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7XG4nCisgICAgJyAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7XG4nCisgICAgJyAgICAgfX1cbicKKyAgICAnICAgIGNvbnNvbGUubG9n
KCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0
cyIpO1xuJworICAgICcgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCisgICAgJ319XG4n
CisgICAgJzwvc2NyaXB0PlxuJy5mb3JtYXQocmVmZXJlcj1yZWZlcmVyKQorKQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1
dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hNmNkYWNlMjZhMjBlZWUwOWRkMTRjNDVhMzhkMWMxY2E1NDVjMzRiCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNl
ci1hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACitUZXN0
IGxvYWRVUkwgcmVxdWVzdHMgYXJlIHN1Y2Nlc2Z1bGx5IGF0dHJpYnV0ZWQgYXMgbm9uIGFwcCBp
bml0aWF0ZWQuCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRl
ZCByZXF1ZXN0cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uYjMxMjllYWUzODMwNTMzNDUzYmMwZTM0YWE4ZDcwNGM3MDZlZGMxYwot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L3VzZXItYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURP
Q1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPWZhbHNl
IF0gLS0+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxzY3JpcHQgc3JjPSJyZXNvdXJjZXMvdXRpbC5q
cyI+PC9zY3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keSBvbmxvYWQ9InNldFRpbWVvdXQoJ3J1blRlc3Qo
KScsIDApIj4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj5UZXN0IGxvYWRVUkwgcmVxdWVzdHMgYXJl
IHN1Y2Nlc2Z1bGx5IGF0dHJpYnV0ZWQgYXMgbm9uIGFwcCBpbml0aWF0ZWQuPC9kaXY+Cis8cHJl
IGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CisgICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgICAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2FkVVJMKCkgeworICAg
ICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL2FwcC1w
cml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwiOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2Fn
ZSArICdcbicpKTsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRw
Oi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHN0YXJ0aW5nT3JpZ2luID0gImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRv
Y3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gc3RhcnRpbmdPcmlnaW4pIHsKKyAgICAgICAgICAg
IGxvYWRVUkwoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhciBkaWRMb2FkQXBw
SW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3Qo
KTsKKyAgICAgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RS
dW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKworICAgICAgICAgICAgaWYg
KGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgbG9nKCJGQUlM
IGRpZCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBpZiAoIWRp
ZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgbG9nKCJGQUlM
IGRpZCBub3QgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAg
IGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVx
dWVzdHMiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9
CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmct
bG9hZC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
ODViZDk0ZWIzYTM0MjNlZWE4Yzg4OWJiY2JmM2NiNDc1YzZjNTE4MgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmli
dXRpb24tcGluZy1sb2FkLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDggQEAKK0NPTlNPTEUgTUVT
U0FHRTogUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVx
dWVzdHMKK1Bpbmcgc2VudCBzdWNjZXNzZnVsbHkKK0NPTlRFTlRfVFlQRTogdGV4dC9waW5nCitI
VFRQX0hPU1Q6IDEyNy4wLjAuMTo4MDAwCitIVFRQX1BJTkdfRlJPTTogaHR0cDovLzEyNy4wLjAu
MTo4MDAwL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1s
CitIVFRQX1BJTkdfVE86IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNl
cy9jaGVjay1waW5nLXVzZXItaW5pdGlhdGVkLWRhdGEucHkKK1JFUVVFU1RfTUVUSE9EOiBQT1NU
CitSRVFVRVNUX1VSSTogL25hdmlnYXRpb24vcmVzb3VyY2VzL3NhdmUtcGluZy5weQpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1waW5nLWxvYWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZDMz
ZmEyMzVjODAxODY1NTNjYjYyMmM3MTY1NTAxZmEwM2ZmYjU2YQotLS0gL2Rldi9udWxsCisrKyBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRp
b24tcGluZy1sb2FkLmh0bWwKQEAgLTAsMCArMSwzMSBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3
ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD1mYWxzZSBdIC0tPgorPCFET0NUWVBF
IGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL25hdmlnYXRpb24vcGluZy1h
dHRyaWJ1dGUvcmVzb3VyY2VzL3V0aWxpdGllcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgoraWYg
KHdpbmRvdy50ZXN0UnVubmVyICYmIHdpbmRvdy5pbnRlcm5hbHMpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLnNldFN0YXRpc3RpY3NTaG91bGREb3duZ3Jh
ZGVSZWZlcnJlcihmYWxzZSwgZnVuY3Rpb24gKCkgeyB9KTsKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0SHlwZXJsaW5rQXVkaXRpbmdFbmFibGVkKHRydWUpOworICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiB0ZXN0KCkKK3sKKyAgICBjbGlja0VsZW1lbnQo
ZG9jdW1lbnQucXVlcnlTZWxlY3RvcigiaW1nIikpOworfQorCit3aW5kb3cub25sb2FkID0gZnVu
Y3Rpb24gKCkKK3sKKyAgICBjbGVhckxhc3RQaW5nUmVzdWx0QW5kUnVuVGVzdCh0ZXN0KTsKK30K
Kzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgICAgPGltZyBzcmM9Im5vbi1leGlzdGVudC1p
bWFnZS5qcGciIHdpZHRoPSIxMjgiIGhlaWdodD0iMTI4IiB1c2VtYXA9IiNpbWFnZW1hcCI+Cisg
ICAgPG1hcCBuYW1lPSJpbWFnZW1hcCI+CisgICAgICAgIDxhcmVhIHNoYXBlPSJyZWN0IiBjb29y
ZHM9IjAsMCwxMjgsMTI4IiBocmVmPSIuLi9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5n
LXVzZXItaW5pdGlhdGVkLWRhdGEucHkiIHBpbmc9Ii4uL25hdmlnYXRpb24vcmVzb3VyY2VzL3Nh
dmUtcGluZy5weSI+CisgICAgPC9tYXA+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uNDBjOTgyN2Q2Mjg4MTBlMDMxNjc0MjE3MDZkM2RkZGVkNWUwYzQzYgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQg
QEAKK0NPTlNPTEUgTUVTU0FHRTogUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFw
cCBpbml0aWF0ZWQgcmVxdWVzdHMKK1Rlc3RzIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdl
dCBtYXJrZWQgZm9yIFBPU1QgcmVxdWVzdHMuCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVl
c3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXIt
YXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjNiNDU0M2I0ZjdhZWE1
NDQ3N2JlZmE0NmFjMTE3ZTUwODVmNTY1NQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1
ZXN0Lmh0bWwKQEAgLTAsMCArMSwyMiBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVz
dC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD1mYWxzZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMt
dGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0cyBub24gYXBw
IGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBQT1NUIHJlcXVlc3RzLjwvcD4KKzxm
b3JtIGlkPSJ0ZXN0Rm9ybSIgYWN0aW9uPSJyZXNvdXJjZXMvdXNlci1pbml0aWF0ZWQtcG9zdC5w
eSIgdGFyZ2V0PSJfYmxhbmsiIHJlbD0ibm9yZWZlcnJlciIgbWV0aG9kPSJwb3N0Ij4KKzxpbnB1
dCB0eXBlPSJzdWJtaXQiIHZhbHVlPSJUZXN0Ij48L2lucHV0PgorPGZvcm0+Cis8c2NyaXB0Pgor
aWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
CisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cyh0cnVlKTsKK30KKworZG9jdW1lbnQu
Zm9ybXNbMF0uc3VibWl0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMt
ZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQ3OTZiYjgyNjUzMjM2NjNlNjM3OWJmYmNiOTU1ZGE2
MGIxZjk2YzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw2IEBACitDT05TT0xFIE1FU1NBR0U6IFByZWZsaWdodCByZXNwb25zZSBp
cyBub3Qgc3VjY2Vzc2Z1bAorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3Qg
bG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1
cy00MDQtd2l0aG91dC1ib2R5LnB5IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitUZXN0
cyBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBhc3luYyBwcmVmbGln
aHRzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJl
cXVlc3RzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdo
dC1hc3luYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc1MWMyZjdjN2FmNGI1MWIzNWI4YTgwZTBmMzdjZDgx
ODgxZDAzODgKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sCkBAIC0w
LDAgKzEsNDcgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNB
cHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzxwPlRlc3RzIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVl
c3RzIGdldCBtYXJrZWQgZm9yIGFzeW5jIHByZWZsaWdodHM8L3A+CisKKzxwcmUgaWQ9ImNvbnNv
bGUiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RS
dW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQor
CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAn
XG4nKSk7Cit9CisKK3ZhciBwcmVmbGlnaHRMaW5rRG9tYWluID0gImxvY2FsaG9zdCI7Cit2YXIg
Y29udGV4dEhvc3QgPSAiMTI3LjAuMC4xIjsKK3ZhciB1cmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSIK
KworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOworICAgIHJlcS5zZXRSZXF1ZXN0
SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKKworICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24o
KSB7CisgICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIu
ZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJ
bml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVz
dCgpOworCisgICAgICAgIGlmIChkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAg
ICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
IWRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwg
ZGlkIG5vdCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1
Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9CisgICAgcmVxLnNlbmQobnVsbCk7
Cit9CisKK3J1blRlc3QoKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3lu
Yy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li41ZGExMDM5YTc5YzVlN2ZkMzQwNzRkMWFiYzdkNGI4ZDI3Mzc0MDcyCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw3IEBACitDT05T
T0xFIE1FU1NBR0U6IFByZWZsaWdodCByZXNwb25zZSBpcyBub3Qgc3VjY2Vzc2Z1bAorQ09OU09M
RSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0Ojgw
MDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IGR1
ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitUZXN0cyBub24gYXBwIGluaXRpYXRlZCByZXF1
ZXN0cyBnZXQgbWFya2VkIGZvciBzeW5jIHByZWZsaWdodHMKKworUEFTUzogTmV0d29ya0Vycm9y
OiAgQSBuZXR3b3JrIGVycm9yIG9jY3VycmVkLgorUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9u
bHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQt
c3luYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNl
ci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlhNzA2MzIwMzEy
ZjUzYjk4ZjEyNGE2ZTk0ZDFjNmYxYWE1ZDQ0NzcKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZs
aWdodC1zeW5jLmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD1mYWxzZSBdIC0tPgorPHA+VGVzdHMgbm9u
IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3Igc3luYyBwcmVmbGlnaHRzPC9w
PgorCis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RS
dW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworfQorCit2YXIgcHJlZmxpZ2h0TGlua0RvbWFpbiA9
ICJsb2NhbGhvc3QiOwordmFyIGNvbnRleHRIb3N0ID0gIjEyNy4wLjAuMSI7Cit2YXIgdXJsID0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQw
NC13aXRob3V0LWJvZHkucHkiCisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHZhciByZXEg
PSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICByZXEub3BlbigiR0VUIiwgdXJsLCBmYWxzZSk7
CisgICAgcmVxLnNldFJlcXVlc3RIZWFkZXIoIngtd2Via2l0IiwgImZvbyIpOworCisgICAgdHJ5
IHsKKyAgICAgICAgcmVxLnNlbmQobnVsbCk7CisgICAgICAgIGxvZygiUEFTUzogIiArIHJlcS5y
ZXNwb25zZVRleHQpOworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAgICAgIGxvZygiUEFTUzogIiAr
IGV4KTsKKyAgICAgICAgdmFyIGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5l
ci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworICAgICAgICB2YXIgZGlkTG9hZE5vbkFw
cEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1
ZXN0KCk7CisKKyAgICAgICAgaWYgKGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAg
ICAgICAgICBsb2coIkZBSUwgZGlkIGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGlm
ICghZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJ
TCBkaWQgbm90IGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAg
dGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBsb2coIlBBU1Mg
c3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7Cisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KKworcnVuVGVzdCgpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0
dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOWZkOWY2NjE5N2Y0ZGFiOWYyOTNhMDNmNDI4YmFkZGM4ZjI2YzJiMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0
cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDE0IEBACisxMjcuMC4wLjE6ODAwMCAtIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5n
ZSAtIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljIC0gUmVzcG9u
ZGluZyB3aXRoIHRlc3RVc2VybmFtZTp0ZXN0UGFzc3dvcmQKKzEyNy4wLjAuMTo4MDAwIC0gZGlk
UmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIC0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGlj
YXRpb25TY2hlbWVIVFRQQmFzaWMgLSBTaW11bGF0aW5nIGNhbmNlbGxlZCBhdXRoZW50aWNhdGlv
biBzaGVldAorVGVzdHMgc3BlY3VsYXRpdmUgcmV2YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0ZWQg
cmVzb3VyY2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1Mi
IG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKworUEFTUyB4aHIuc3Rh
dHVzIGlzIDQwMQorUEFTUyBTdWNjZXNzZnVseSBsb2FkZWQuCitQQVNTIHN1Y2Nlc3NmdWxseSBs
b2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tc3BlY3VsYXRp
dmUtcmV2YWxpZGF0aW9uLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLmEyMWY4YjlhNmQ1NWU4ZmI2ZDc0Y2JhN2JiZjMzMDkzODU1NTI1OTQKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91
c2VyLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sCkBAIC0wLDAgKzEs
NzAgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0
aWF0ZWQ9ZmFsc2UgXSAtLT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC1wcmUuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJUZXN0cyBzcGVjdWxh
dGl2ZSByZXZhbGlkYXRpb24gb2YgYXV0aGVudGljYXRlZCByZXNvdXJjZXMuIik7Citqc1Rlc3RJ
c0FzeW5jID0gdHJ1ZTsKKwordGVzdFJ1bm5lci5zZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFs
bGVuZ2VzKHRydWUpOwordGVzdFJ1bm5lci5zZXRBdXRoZW50aWNhdGlvblVzZXJuYW1lKCJ0ZXN0
VXNlcm5hbWUiKTsKK3Rlc3RSdW5uZXIuc2V0QXV0aGVudGljYXRpb25QYXNzd29yZCgidGVzdFBh
c3N3b3JkIik7CisKK3N0YXRlID0gIndhcm11cCI7CisKK2Z1bmN0aW9uIGNsZWFyQ3JlZGVudGlh
bFN0b3JhZ2UoKQoreworICAgIHhociA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHhoci5v
cGVuKCJHRVQiLCAicmVzb3VyY2VzL3Jlc291cmNlLXdpdGgtYXV0aC5weT9vdGhlciIsIGZhbHNl
LCAiYmFkVXNlcm5hbWUiLCAiYmFkUGFzc3dvcmQiKTsKKyAgICB4aHIuc2VuZCgpOworICAgIHNo
b3VsZEJlKCJ4aHIuc3RhdHVzIiwgIjQwMSIpOworfQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkK
K3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Cit9CisKK2Z1bmN0aW9uIGZy
YW1lTG9hZGVkKCkKK3sKKyAgICBpZiAoc3RhdGUgPT0gIndhcm11cCIpIHsKKyAgICAgICAgLy8g
TmF2aWdhdGUgZnJhbWUgdG8gJ2Fib3V0OmJsYW5rJyB0byBmbHVzaCB0byBzdWJyZXNvdXJjZSBs
b2FkcyBtZXRhZGF0YSB0byBkaXNrLgorICAgICAgICBzdGF0ZSA9ICJmbHVzaGluZ01ldGFkYXRh
IjsKKyAgICAgICAgdGVzdFJ1bm5lci5zZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2Vz
KGZhbHNlKTsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLnNy
YyA9ICJhYm91dDpibGFuayI7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAgaWYgKHN0YXRl
ID09ICJmbHVzaGluZ01ldGFkYXRhIikgeworICAgICAgICBjbGVhckNyZWRlbnRpYWxTdG9yYWdl
KCk7CisKKyAgICAgICAgaW50ZXJuYWxzLmNsZWFyTWVtb3J5Q2FjaGUoKTsKKyAgICAgICAgdGVz
dFJ1bm5lci5zZXRIYW5kbGVzQXV0aGVudGljYXRpb25DaGFsbGVuZ2VzKGZhbHNlKTsKKworICAg
ICAgICAvLyBOYXZpZ2F0ZSBmcmFtZSB0byBpdHMgb3JpZ2luYWwgbG9jYXRpb24gYWdhaW4uIFRo
aXMgdGltZSBpdCBzaG91bGQgc3BlY3VsYXRpdmVseQorICAgICAgICAvLyB2YWxpZGF0ZSBzdWJy
ZXNvdXJjZXMgYXMgd2UgaGF2ZSBzdWJyZXNvdXJjZSBsb2FkcyBtZXRhZGF0YSBpbiB0aGUgZGlz
ayBjYWNoZS4KKyAgICAgICAgc3RhdGUgPSAic3BlY3VsYXRpdmVSZXZhbGlkYXRpb24iOworICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGVzdEZyYW1lIikuc3JjID0gInJlc291cmNl
cy9mcmFtZS13aXRoLWF1dGhlbnRpY2F0ZWQtcmVzb3VyY2UucHkiOworICAgICAgICByZXR1cm47
CisgICAgfQorICAgIGlmIChzdGF0ZSA9PSAic3BlY3VsYXRpdmVSZXZhbGlkYXRpb24iKSB7Cisg
ICAgICAgIHRlc3RQYXNzZWQoIlN1Y2Nlc3NmdWx5IGxvYWRlZC4iKTsKKyAgICAgICAgdmFyIGRp
ZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVk
UmVxdWVzdCgpOworICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0
ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgaWYg
KGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlk
IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICBmaW5pc2hKU1Rlc3Qo
KTsKKyAgICAgICAgfQorCisgICAgICAgIGlmICghZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVl
c3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbm90IGxvYWQgbm9uIGFwcCBpbml0aWF0
ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKwor
ICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlh
dGVkIHJlcXVlc3RzIik7CisgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICByZXR1cm47
CisgICAgfQorfQorCis8L3NjcmlwdD4KKzxpZnJhbWUgaWQ9InRlc3RGcmFtZSIgc3JjPSJyZXNv
dXJjZXMvZnJhbWUtd2l0aC1hdXRoZW50aWNhdGVkLXJlc291cmNlLnB5IiBvbmxvYWQ9ImZyYW1l
TG9hZGVkKCkiPjwvaWZyYW1lPgorPHNjcmlwdCBzcmM9Ii9qcy10ZXN0LXJlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLXVzZXItaW5pdGlhdGVkLWRhdGEucHkg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmct
dXNlci1pbml0aWF0ZWQtZGF0YS5weQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDA3YmYwNzIwMGMxNzdiN2Y5Y2I2
NmJhYjdiMTA1Y2QyOGI5YTA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLXVzZXItaW5pdGlhdGVkLWRhdGEu
cHkKQEAgLTAsMCArMSw0NCBAQAorIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMworCitpbXBvcnQgb3MK
K2ltcG9ydCBzeXMKK2ltcG9ydCB0aW1lCitmcm9tIHBpbmdfZmlsZV9wYXRoIGltcG9ydCBwaW5n
X2ZpbGVwYXRoCisKK3N5cy5zdGRvdXQud3JpdGUoJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sXHJc
blxyXG4nKQorCit3aGlsZSBub3Qgb3MucGF0aC5pc2ZpbGUocGluZ19maWxlcGF0aCk6CisgICAg
dGltZS5zbGVlcCgwLjAxKQorCitzeXMuc3Rkb3V0LndyaXRlKAorICAgICc8aHRtbD48Ym9keT5c
bicKKyAgICAnUGluZyBzZW50IHN1Y2Nlc3NmdWxseScKKykKKworcGluZ19maWxlID0gb3Blbihw
aW5nX2ZpbGVwYXRoLCAncicpCitmb3IgbGluZSBpbiBwaW5nX2ZpbGUucmVhZGxpbmVzKCk6Cisg
ICAgc3lzLnN0ZG91dC53cml0ZSgnPGJyPnt9Jy5mb3JtYXQobGluZS5zdHJpcCgpKSkKKworcGlu
Z19maWxlLmNsb3NlKCkKK2lmIG9zLnBhdGguaXNmaWxlKHBpbmdfZmlsZXBhdGgpOgorICAgIG9z
LnJlbW92ZShwaW5nX2ZpbGVwYXRoKQorCitzeXMuc3Rkb3V0LndyaXRlKAorICAgICc8c2NyaXB0
PicKKyAgICAnaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7e1xuJworICAgICcgICAgdmFyIGRpZExv
YWRBcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkQXBwSW5pdGlhdGVkUmVx
dWVzdCgpO1xuJworICAgICcgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0g
dGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpO1xuJworICAgICcgICAg
aWYgKGRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KSB7e1xuJworICAgICcgICAgICAgIGNvbnNv
bGUubG9nKCJGQUlMIGRpZCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpO1xuJworICAgICcg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAgICcgICAgfX1cbicKKyAgICAn
ICAgIGlmICghZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHt7XG4nCisgICAgJyAgICAg
ICAgIGNvbnNvbGUubG9nKCJGQUlMIGRpZCBub3QgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1
ZXN0Iik7XG4nCisgICAgJyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7XG4nCisgICAg
JyAgICAgfX1cbicKKyAgICAnICAgIGNvbnNvbGUubG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2Fk
ZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpO1xuJworICAgICcgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7XG4nCisgICAgJ319XG4nCisgICAgJzwvc2NyaXB0PicKKyAgICAn
PC9ib2R5PjwvaHRtbD4nCispCg==
</data>
<flag name="commit-queue"
          id="455562"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433353</attachid>
            <date>2021-07-12 13:52:54 -0700</date>
            <delta_ts>2021-07-13 08:34:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227825-20210712135253.patch</filename>
            <type>text/plain</type>
            <size>70448</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMxNzhjZmY3MGIwZmIxZmE1
ZmU3ZTI0NTMzNTdkNjMzOWI5MjIyYWEuLjUzZjU2ZGY3NDZjY2UwMWE5ZWU4NzczNDQ2NGQ2YzY3
Y2ZjZWNjNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMDctMTIgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgbGF5b3V0
IHRlc3RzIHRvIHNwZWNpZnkgYXBwIGluaXRpYXRlZCBsb2FkcyBvciBub3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgyNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODAzNTU1ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgVGVzdHM6IGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1h
dHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKKyAgICAgICAgICAg
ICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJl
cXVlc3QuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sCisgICAgICAgICAgICAgICBodHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMu
aHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0
dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sCisgICAgICAgICAgICAgICBo
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0
bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0
cmlidXRpb24tcGluZy1sb2FkLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwKKyAgICAgICAg
ICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJl
ZmxpZ2h0LWFzeW5jLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxh
dGl2ZS1yZXZhbGlkYXRpb24uaHRtbAorCisgICAgICAgIEFkZCBhIHBhcmFtZXRlciB0byB0aGUg
V2ViVmlldyBjb25maWd1cmF0aW9uIHRoYXQgYWxsb3dzIGEgdGVzdCB0bworICAgICAgICBvdmVy
cmlkZSB0aGUgZGVmYXVsdCBOU1VSTFJlcXVlc3QgYXR0cmlidXRpb24gdmFsdWUuIFdlIGRvbid0
IG5lZWQKKyAgICAgICAgdGhpcyB0byBiZSBkeW5hbWljIHBlci10ZXN0LCBzbyB3ZSBjYW4gc3Rv
cmUgaXQgaW4gdGhlIGNvbmZpZ3VyYXRpb24uCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL0FQ
SVBhZ2VDb25maWd1cmF0aW9uLmNwcDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246
OmNvcHkgY29uc3QpOgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRp
b24uaDoKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRpb246OmFwcEluaXRpYXRlZE92ZXJy
aWRlVmFsdWVGb3JUZXN0aW5nIGNvbnN0KToKKyAgICAgICAgKEFQSTo6UGFnZUNvbmZpZ3VyYXRp
b246OnNldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nKToKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL0NvY29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW06CisgICAgICAgICh0
b1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcpOgorICAgICAgICAodG9BdHRyaWJ1dGlvbk92
ZXJyaWRlVGVzdGluZyk6CisgICAgICAgICgtW1dLV2ViVmlld0NvbmZpZ3VyYXRpb24gX3NldEFw
cEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOl0pOgorICAgICAgICAoLVtXS1dlYlZp
ZXdDb25maWd1cmF0aW9uIF9hcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZ10pOgor
ICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZh
dGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW06Cisg
ICAgICAgIChXZWJLaXQ6OldlYlBhZ2VQcm94eTo6c2V0TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0
aWF0ZWQpOgorCiAyMDIxLTA3LTEyICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFt3YXRjaE9TXSBNYWtlIGEgZmV3IGFkZGl0aW9uYWwgYWRqdXN0bWVu
dHMgdG8gc3VwcG9ydCBzeXN0ZW0gbWluaW11bSBsYXlvdXQgbWFyZ2lucwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcCBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKaW5kZXgg
YTJmMWFjNTUwY2JiNjE2NDdhNzg4OGQ3OWU3NDA2MzE5ODBmYTM5Ni4uYzI5NWY4YmY0ZTJmODA3
ODgxNjFmOWE1ZGU0ZjFlZTQ2NGVhMjg5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVBy
b2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1VJ
UHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCkBAIC05Niw2ICs5Niw5IEBAIFJl
ZjxQYWdlQ29uZmlndXJhdGlvbj4gUGFnZUNvbmZpZ3VyYXRpb246OmNvcHkoKSBjb25zdAogCiAg
ICAgY29weS0+bV9tZWRpYUNhcHR1cmVFbmFibGVkID0gdGhpcy0+bV9tZWRpYUNhcHR1cmVFbmFi
bGVkOwogICAgIGNvcHktPm1faHR0cHNVcGdyYWRlRW5hYmxlZCA9IHRoaXMtPm1faHR0cHNVcGdy
YWRlRW5hYmxlZDsKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIGNvcHktPm1fYXBwSW5p
dGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcgPSB0aGlzLT5tX2FwcEluaXRpYXRlZE92ZXJy
aWRlVmFsdWVGb3JUZXN0aW5nOworI2VuZGlmCiAKICAgICByZXR1cm4gY29weTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5o
IGIvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKaW5k
ZXggZDMzYjc2ZmNhZWM3NThmOTYyZDJlMDA1Y2IyNWJmZGJmZTJkMTNmMi4uMzcxZTlhMTg4ZTM0
ZGFkYzNmNTBhYmUxMDQ1YjYzZTZiOWI4MjlhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKKysrIGIvU291cmNlL1dlYktpdC9V
SVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmgKQEAgLTQ3LDYgKzQ3LDE1IEBAIGNs
YXNzIFdlYlByb2Nlc3NQb29sOwogY2xhc3MgV2ViVVJMU2NoZW1lSGFuZGxlcjsKIGNsYXNzIFdl
YlVzZXJDb250ZW50Q29udHJvbGxlclByb3h5OwogY2xhc3MgV2Vic2l0ZURhdGFTdG9yZTsKKwor
I2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCitlbnVtIGNsYXNzIEF0dHJpYnV0aW9uT3ZlcnJpZGVU
ZXN0aW5nIDogdWludDhfdCB7CisgICAgTm9PdmVycmlkZSwKKyAgICBVc2VySW5pdGlhdGVkLAor
ICAgIEFwcEluaXRpYXRlZAorfTsKKyNlbmRpZgorCiB9CiAKIG5hbWVzcGFjZSBBUEkgewpAQCAt
MTcwLDYgKzE3OSwxMSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRBdHRyaWJ1dGVkQnVuZGxlSWRl
bnRpZmllcihXVEY6OlN0cmluZyYmIGlkZW50aWZpZXIpIHsgbV9hdHRyaWJ1dGVkQnVuZGxlSWRl
bnRpZmllciA9IFdURk1vdmUoaWRlbnRpZmllcik7IH0KICAgICBjb25zdCBXVEY6OlN0cmluZyYg
YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX2F0dHJpYnV0ZWRC
dW5kbGVJZGVudGlmaWVyOyB9CiAKKyNpZiBQTEFURk9STShJT1NfRkFNSUxZKQorICAgIFdlYktp
dDo6QXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcgYXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZv
clRlc3RpbmcoKSBjb25zdCB7IHJldHVybiBtX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JU
ZXN0aW5nOyB9CisgICAgdm9pZCBzZXRBcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGlu
ZyhXZWJLaXQ6OkF0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nIGFwcEluaXRpYXRlZE92ZXJyaWRl
VmFsdWVGb3JUZXN0aW5nKSB7IG1fYXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3Rpbmcg
PSBhcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZzsgfQorI2VuZGlmCisKIHByaXZh
dGU6CiAKICAgICBSZWZQdHI8V2ViS2l0OjpXZWJQcm9jZXNzUG9vbD4gbV9wcm9jZXNzUG9vbDsK
QEAgLTIyMSw2ICsyMzUsMTAgQEAgcHJpdmF0ZToKIAogICAgIFdlYkNvcmU6OlNob3VsZFJlbGF4
VGhpcmRQYXJ0eUNvb2tpZUJsb2NraW5nIG1fc2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxv
Y2tpbmcgeyBXZWJDb3JlOjpTaG91bGRSZWxheFRoaXJkUGFydHlDb29raWVCbG9ja2luZzo6Tm8g
fTsKICAgICBXVEY6OlN0cmluZyBtX2F0dHJpYnV0ZWRCdW5kbGVJZGVudGlmaWVyOworCisjaWYg
UExBVEZPUk0oSU9TX0ZBTUlMWSkKKyAgICBXZWJLaXQ6OkF0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0
aW5nIG1fYXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcgeyBXZWJLaXQ6OkF0dHJp
YnV0aW9uT3ZlcnJpZGVUZXN0aW5nOjpOb092ZXJyaWRlIH07CisjZW5kaWYKIH07CiAKIH0gLy8g
bmFtZXNwYWNlIEFQSQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0Nv
Y29hL1dLV2ViVmlld0NvbmZpZ3VyYXRpb24ubW0gYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQppbmRleCA4MjQ0ZTEyNDIxMjU1NGIy
ZWM2NGY4NDQ0ZjU1MzJlZjJhMzU1Zjg3Li4wZWFjOTAzMzdhZjAyOTRiMDg2NzBlNWQyMTkyZjhk
ZjU3YTE5ZmM0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2Ev
V0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQorKysgYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbQpAQCAtODQ0LDYgKzg0NCwzNSBAQCBB
TExPV19ERVBSRUNBVEVEX0RFQ0xBUkFUSU9OU19FTkQKIHsKICAgICBfcGFnZUNvbmZpZ3VyYXRp
b24tPnNldExpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnMobGltaXRzVG9BcHBCb3Vu
ZERvbWFpbnMpOwogfQorCitzdGF0aWMgX1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcgdG9X
S0F0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nKFdlYktpdDo6QXR0cmlidXRpb25PdmVycmlkZVRl
c3RpbmcgdmFsdWUpCit7CisgICAgaWYgKHZhbHVlID09IFdlYktpdDo6QXR0cmlidXRpb25PdmVy
cmlkZVRlc3Rpbmc6OkFwcEluaXRpYXRlZCkKKyAgICAgICAgcmV0dXJuIF9XS0F0dHJpYnV0aW9u
T3ZlcnJpZGVUZXN0aW5nQXBwSW5pdGlhdGVkOworICAgIGlmICh2YWx1ZSA9PSBXZWJLaXQ6OkF0
dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nOjpVc2VySW5pdGlhdGVkKQorICAgICAgICByZXR1cm4g
X1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmdVc2VySW5pdGlhdGVkOworICAgIHJldHVybiBf
V0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZ05vT3ZlcnJpZGU7Cit9CisKK3N0YXRpYyBXZWJL
aXQ6OkF0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nIHRvQXR0cmlidXRpb25PdmVycmlkZVRlc3Rp
bmcoX1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcgdmFsdWUpCit7CisgICAgaWYgKHZhbHVl
ID09IF9XS0F0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nQXBwSW5pdGlhdGVkKQorICAgICAgICBy
ZXR1cm4gV2ViS2l0OjpBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZzo6QXBwSW5pdGlhdGVkOwor
ICAgIGlmICh2YWx1ZSA9PSBfV0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZ1VzZXJJbml0aWF0
ZWQpCisgICAgICAgIHJldHVybiBXZWJLaXQ6OkF0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nOjpV
c2VySW5pdGlhdGVkOworICAgIHJldHVybiBXZWJLaXQ6OkF0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0
aW5nOjpOb092ZXJyaWRlOworfQorCistICh2b2lkKV9zZXRBcHBJbml0aWF0ZWRPdmVycmlkZVZh
bHVlRm9yVGVzdGluZzooX1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcpdmFsdWUKK3sKKyAg
ICBfcGFnZUNvbmZpZ3VyYXRpb24tPnNldEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0
aW5nKHRvQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcodmFsdWUpKTsKK30KKworLSAoX1dLQXR0
cmlidXRpb25PdmVycmlkZVRlc3RpbmcpX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0
aW5nCit7CisgICAgcmV0dXJuIHRvV0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZyhfcGFnZUNv
bmZpZ3VyYXRpb24tPmFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nKCkpOworfQor
CiAjZW5kaWYgLy8gUExBVEZPUk0oSU9TX0ZBTUlMWSkKIAogLSAoQk9PTClfaWdub3Jlc0FwcEJv
dW5kRG9tYWlucwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0NvY29h
L1dLV2ViVmlld0NvbmZpZ3VyYXRpb25Qcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAppbmRleCBhY2Y1YzAy
Yzc0OGU3MTBhYThhYjBhYTkwYmRhMzZiMzFkNDkzODNlLi4zMjY5OGQ1YjhmMjhjOTIxMzYyNzdm
MzllYTFlYzUzZTJjNThhZjYzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9B
UEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaApA
QCAtMzMsNiArMzMsMTIgQEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0
RGVsYXkpIHsKICAgICBfV0tEcmFnTGlmdERlbGF5TG9uZwogfSBXS19BUElfQVZBSUxBQkxFKGlv
cygxMS4wKSk7CiAKK3R5cGVkZWYgTlNfRU5VTShOU1VJbnRlZ2VyLCBfV0tBdHRyaWJ1dGlvbk92
ZXJyaWRlVGVzdGluZykgeworICAgIF9XS0F0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nTm9PdmVy
cmlkZSA9IDAsCisgICAgX1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmdBcHBJbml0aWF0ZWQs
CisgICAgX1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmdVc2VySW5pdGlhdGVkCit9IFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKDE1LjApKTsKKwogQHByb3RvY29sIF9VSUNsaWNrSW50ZXJhY3Rpb25E
cml2aW5nOwogI2VuZGlmCiAKQEAgLTk1LDYgKzEwMSw3IEBAIHR5cGVkZWYgTlNfRU5VTShOU1VJ
bnRlZ2VyLCBfV0tEcmFnTGlmdERlbGF5KSB7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVy
PV9zZXRTaG91bGREZWNpZGVQb2xpY3lCZWZvcmVMb2FkaW5nUXVpY2tMb29rUHJldmlldzopIEJP
T0wgX3Nob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRpbmdRdWlja0xvb2tQcmV2aWV3IFdLX0FQ
SV9BVkFJTEFCTEUoaW9zKDEzLjApKTsKIEBwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3Nl
dENhblNob3dXaGlsZUxvY2tlZDopIEJPT0wgX2NhblNob3dXaGlsZUxvY2tlZCBXS19BUElfQVZB
SUxBQkxFKGlvcygxMy4wKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRDbGlj
a0ludGVyYWN0aW9uRHJpdmVyRm9yVGVzdGluZzopIGlkIDxfVUlDbGlja0ludGVyYWN0aW9uRHJp
dmluZz4gX2NsaWNrSW50ZXJhY3Rpb25Ecml2ZXJGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUo
aW9zKDEzLjApKTsKK0Bwcm9wZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldEFwcEluaXRpYXRl
ZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOikgX1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3Rpbmcg
X2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nIFdLX0FQSV9BVkFJTEFCTEUoaW9z
KDE1LjApKTsKICNlbHNlCiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTaG93c1VS
THNJblRvb2xUaXBzOikgQk9PTCBfc2hvd3NVUkxzSW5Ub29sVGlwcyBXS19BUElfQVZBSUxBQkxF
KG1hY29zKDEwLjEyKSk7CiBAcHJvcGVydHkgKG5vbmF0b21pYywgc2V0dGVyPV9zZXRTZXJ2aWNl
Q29udHJvbHNFbmFibGVkOikgQk9PTCBfc2VydmljZUNvbnRyb2xzRW5hYmxlZCBXS19BUElfQVZB
SUxBQkxFKG1hY29zKDEwLjEyKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vz
cy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbSBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0Nv
Y29hL1dlYlBhZ2VQcm94eUNvY29hLm1tCmluZGV4IDliMDFmNDAyMjcxNTIxMDJlNDdlNmNjMjVk
YmRiMjYxZDE3N2JmOWIuLjZkNWZlYjM1YzM1ZWMwNzczNjA2MjRlZDIwZTU5YmI1ZTc0ZjEyMmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNv
Y29hLm1tCkBAIC0yNyw2ICsyNyw3IEBACiAjaW1wb3J0ICJXZWJQYWdlUHJveHkuaCIKIAogI2lt
cG9ydCAiQVBJQXR0YWNobWVudC5oIgorI2ltcG9ydCAiQVBJUGFnZUNvbmZpZ3VyYXRpb24uaCIK
ICNpbXBvcnQgIkFQSVVJQ2xpZW50LmgiCiAjaW1wb3J0ICJDb2NvYUltYWdlLmgiCiAjaW1wb3J0
ICJDb25uZWN0aW9uLmgiCkBAIC02NjMsNiArNjY0LDkgQEAgdm9pZCBXZWJQYWdlUHJveHk6OnNl
dExhc3ROYXZpZ2F0aW9uV2FzQXBwSW5pdGlhdGVkKFJlc291cmNlUmVxdWVzdCYgcmVxdWVzdCkK
IHsKICNpZiBFTkFCTEUoQVBQX1BSSVZBQ1lfUkVQT1JUKQogICAgIGF1dG8gaXNBcHBJbml0aWF0
ZWQgPSByZXF1ZXN0Lm5zVVJMUmVxdWVzdChXZWJDb3JlOjpIVFRQQm9keVVwZGF0ZVBvbGljeTo6
RG9Ob3RVcGRhdGVIVFRQQm9keSkuYXR0cmlidXRpb24gPT0gTlNVUkxSZXF1ZXN0QXR0cmlidXRp
b25EZXZlbG9wZXI7CisgICAgaWYgKG1fY29uZmlndXJhdGlvbi0+YXBwSW5pdGlhdGVkT3ZlcnJp
ZGVWYWx1ZUZvclRlc3RpbmcoKSAhPSBBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZzo6Tm9PdmVy
cmlkZSkKKyAgICAgICAgaXNBcHBJbml0aWF0ZWQgPSBtX2NvbmZpZ3VyYXRpb24tPmFwcEluaXRp
YXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nKCkgPT0gQXR0cmlidXRpb25PdmVycmlkZVRlc3Rp
bmc6OkFwcEluaXRpYXRlZDsKKwogICAgIHJlcXVlc3Quc2V0SXNBcHBJbml0aWF0ZWQoaXNBcHBJ
bml0aWF0ZWQpOwogICAgIG1fbGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQgPSBpc0FwcElu
aXRpYXRlZDsKICNlbmRpZgpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hh
bmdlTG9nCmluZGV4IDhkYzM3YmUwNmQwYWUyN2RlMTI4NTZhNzU1MmJjZjg5NTFlZDk4NGUuLjU2
OTExY2Y3YjZjYjA2MmM2MzI3MjA0YWI4ZmQwOGQxMjkxZDVhMzIgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMiBAQAorMjAyMS0w
Ny0xMiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAg
ICBBbGxvdyBsYXlvdXQgdGVzdHMgdG8gc3BlY2lmeSBhcHAgaW5pdGlhdGVkIGxvYWRzIG9yIG5v
dAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3ODI1
CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84MDM1NTU4Mj4KKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBBZGQgYSB0ZXN0IG9wdGlvbiB0aGF0IHNwZWNp
ZmllcyB3aGV0aGVyIHRoZSB0ZXN0IHNob3VsZCBtYXJrIHRoZQorICAgICAgICBtYWluIHBhZ2Ug
bmF2aWdhdGlvbiBhcyBhcHAtaW5pdGlhdGVkIG9yIG5vdC4KKworICAgICAgICAqIFdlYktpdFRl
c3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6ZGVm
YXVsdHMpOgorICAgICAgICAoV1RSOjpUZXN0T3B0aW9uczo6a2V5VHlwZU1hcHBpbmcpOgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaDoKKyAgICAgICAgKFdUUjo6VGVz
dE9wdGlvbnM6OmlzQXBwSW5pdGlhdGVkIGNvbnN0KToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVu
bmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW06CisgICAgICAgIChXVFI6OlRlc3RDb250
cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZpZXcpOgorCiAyMDIxLTA3LTEyICBXZW5zb24gSHNp
ZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFt3YXRjaE9TXSBNYWtlIGEg
ZmV3IGFkZGl0aW9uYWwgYWRqdXN0bWVudHMgdG8gc3VwcG9ydCBzeXN0ZW0gbWluaW11bSBsYXlv
dXQgbWFyZ2lucwpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9u
cy5jcHAgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcAppbmRleCA5MjY5
ZmEzNWZlOGM3OGFkODVjNTc3ZWFiOWQ3NGJkZjZiZTMzNTUzLi4yMTI2ZjNjYjk2NzUwZTkyMDY4
MmY5ODA1OTc4N2M5MTRkZDMxZmI3IDEwMDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVy
L1Rlc3RPcHRpb25zLmNwcAorKysgYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25z
LmNwcApAQCAtMTQzLDYgKzE0Myw3IEBAIGNvbnN0IFRlc3RGZWF0dXJlcyYgVGVzdE9wdGlvbnM6
OmRlZmF1bHRzKCkKICAgICAgICAgICAgIHsgImlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGlt
ZW91dHMiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1p
dHMiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAiaXNBcHBCb3VuZFdlYlZpZXciLCBmYWxzZSB9
LAorICAgICAgICAgICAgeyAiaXNBcHBJbml0aWF0ZWQiLCB0cnVlIH0sCiAgICAgICAgICAgICB7
ICJydW5TaW5nbHkiLCBmYWxzZSB9LAogICAgICAgICAgICAgeyAic2hvdWxkSGFuZGxlUnVuT3Bl
blBhbmVsIiwgdHJ1ZSB9LAogICAgICAgICAgICAgeyAic2hvdWxkUHJlc2VudFBvcG92ZXJzIiwg
dHJ1ZSB9LApAQCAtMTk2LDYgKzE5Nyw3IEBAIGNvbnN0IHN0ZDo6dW5vcmRlcmVkX21hcDxzdGQ6
OnN0cmluZywgVGVzdEhlYWRlcktleVR5cGU+JiBUZXN0T3B0aW9uczo6a2V5VHlwZU1hCiAgICAg
ICAgIHsgImlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMiLCBUZXN0SGVhZGVyS2V5
VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKICAgICAgICAgeyAiaWdub3Jlc1ZpZXdwb3J0U2NhbGVM
aW1pdHMiLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKICAgICAgICAgeyAi
aXNBcHBCb3VuZFdlYlZpZXciLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwK
KyAgICAgICAgeyAiaXNBcHBJbml0aWF0ZWQiLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RS
dW5uZXIgfSwKICAgICAgICAgeyAicnVuU2luZ2x5IiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xU
ZXN0UnVubmVyIH0sCiAgICAgICAgIHsgInNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCIsIFRlc3RI
ZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9LAogICAgICAgICB7ICJzaG91bGRQcmVzZW50
UG9wb3ZlcnMiLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKZGlmZiAtLWdp
dCBhL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaCBiL1Rvb2xzL1dlYktpdFRl
c3RSdW5uZXIvVGVzdE9wdGlvbnMuaAppbmRleCBiNzlmMDQ2MTg2Y2EzYmZjZjFiNzVhMTE2MTVm
YzQxOGUxNmZlYzI4Li41MGQwYWQ4ODMyNDBhNmJmYjdlNTdmODIyMzkzOTNhMjM3YWRmNDYzIDEw
MDY0NAotLS0gYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKKysrIGIvVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5oCkBAIC01OSw2ICs1OSw3IEBAIHB1Ymxp
YzoKICAgICBib29sIGlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMoKSBjb25zdCB7
IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgiaWdub3JlU3luY2hyb25vdXNNZXNz
YWdpbmdUaW1lb3V0cyIpOyB9CiAgICAgYm9vbCBpZ25vcmVzVmlld3BvcnRTY2FsZUxpbWl0cygp
IGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJpZ25vcmVzVmlld3Bv
cnRTY2FsZUxpbWl0cyIpOyB9CiAgICAgYm9vbCBpc0FwcEJvdW5kV2ViVmlldygpIGNvbnN0IHsg
cmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJpc0FwcEJvdW5kV2ViVmlldyIpOyB9
CisgICAgYm9vbCBpc0FwcEluaXRpYXRlZCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVy
RmVhdHVyZVZhbHVlKCJpc0FwcEluaXRpYXRlZCIpOyB9CiAgICAgYm9vbCBydW5TaW5nbHkoKSBj
b25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgicnVuU2luZ2x5Iik7IH0K
ICAgICBib29sIHNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCgpIGNvbnN0IHsgcmV0dXJuIGJvb2xU
ZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwiKTsgfQogICAg
IGJvb2wgc2hvdWxkUHJlc2VudFBvcG92ZXJzKCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5u
ZXJGZWF0dXJlVmFsdWUoInNob3VsZFByZXNlbnRQb3BvdmVycyIpOyB9CmRpZmYgLS1naXQgYS9U
b29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0gYi9Ub29s
cy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KaW5kZXggOThj
Y2I0ZGI5YWIwOGJhYjI5MzMwYWI0Y2JhMmUyNDVlOTk0NGY3ZC4uMWQ4NWQyYWRmZTAxMjU1ZTM5
MmRhODczNjZiYWNmZDg2OTRjMTU2MCAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5l
ci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5u
ZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQpAQCAtMTY5LDYgKzE2OSw4IEBAIHZvaWQg
VGVzdENvbnRyb2xsZXI6OnBsYXRmb3JtQ3JlYXRlV2ViVmlldyhXS1BhZ2VDb25maWd1cmF0aW9u
UmVmLCBjb25zdCBUZXN0T3B0CiAgICAgICAgIFtjb3BpZWRDb25maWd1cmF0aW9uIHNldFNlbGVj
dGlvbkdyYW51bGFyaXR5OldLU2VsZWN0aW9uR3JhbnVsYXJpdHlDaGFyYWN0ZXJdOwogICAgIGlm
IChvcHRpb25zLmlzQXBwQm91bmRXZWJWaWV3KCkpCiAgICAgICAgIFtjb3BpZWRDb25maWd1cmF0
aW9uIHNldExpbWl0c05hdmlnYXRpb25zVG9BcHBCb3VuZERvbWFpbnM6WUVTXTsKKworICAgIFtj
b3BpZWRDb25maWd1cmF0aW9uIF9zZXRBcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGlu
ZzpvcHRpb25zLmlzQXBwSW5pdGlhdGVkKCkgPyBfV0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGlu
Z0FwcEluaXRpYXRlZCA6IF9XS0F0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nVXNlckluaXRpYXRl
ZF07CiAjZW5kaWYKIAogICAgIGlmIChvcHRpb25zLmVuYWJsZUF0dGFjaG1lbnRFbGVtZW50KCkp
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKaW5kZXggYzJjYzkxNzIzZTQ1ZTc0ZWExZTNjYTY1NDAzZTdhNjEwMzM0OTdkYi4uOGRlMWZi
ZjUyYmM4MjA2NDMxZDBmNjkwZjljNTYwYTc3MzY1MTFiOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBA
CisyMDIxLTA3LTEyICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVuZXlAYXBwbGUuY29tPgor
CisgICAgICAgIEFsbG93IGxheW91dCB0ZXN0cyB0byBzcGVjaWZ5IGFwcCBpbml0aWF0ZWQgbG9h
ZHMgb3Igbm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMjc4MjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgwMzU1NTgyPgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZGVkIG5ldyB0ZXN0cyB0byBj
b3ZlciB0aGUgdXNlciBpbml0aWF0ZWQgY2FzZS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQ6IFJl
bmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRy
aWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWw6IENvcGllZCBmcm9t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLWxv
YWQtdXJsLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBw
LWF0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBpbmctbG9hZC1l
eHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBw
LWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcG9z
dC1yZXF1ZXN0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBlY3RlZC50
eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0
aW9uLXBvc3QtcmVxdWVzdC5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbC4KKyAgICAg
ICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxp
Z2h0LWFzeW5jLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVk
LnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmli
dXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1s
LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlv
bi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAt
YXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMu
aHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmli
dXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tc3Bl
Y3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0
aW9uLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sLgorICAgICAg
ICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy9hcHAtaW5pdGlhdGVk
LXBvc3QucHk6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3Jlc291cmNlcy9wb3N0LnB5LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L3Jlc291cmNlcy91c2VyLWluaXRpYXRlZC1wb3N0LnB5OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL3Bvc3Qu
cHkuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1
dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbDogUmVuYW1l
ZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0
aW9uLWxvYWQtdXJsLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcGlu
Zy1sb2FkLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcGluZy1sb2Fk
Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5o
dG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dC4KKyAgICAgICAg
KiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdo
dC1hc3luYy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwuCisgICAgICAgICog
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQt
c3luYy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQu
CisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlv
bi1wcmVmbGlnaHQtc3luYy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNw
ZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2
ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0
bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbC4KKyAgICAgICAgKiBo
dHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNrLXBpbmctdXNlci1pbml0aWF0ZWQt
ZGF0YS5weTogQWRkZWQuCisKIDIwMjEtMDctMTIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2ll
aEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dhdGNoT1NdIE1ha2UgYSBmZXcgYWRkaXRpb25hbCBh
ZGp1c3RtZW50cyB0byBzdXBwb3J0IHN5c3RlbSBtaW5pbXVtIGxheW91dCBtYXJnaW5zCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0
cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5hMDAyNDgwNDUxNTk5ZmI0MDhlZDAwZjQ4YmZkNjcyOGYyNmQ2ZGY2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1Rl
c3QgbG9hZFVSTCByZXF1ZXN0cyBhcmUgc3VjY2VzZnVsbHkgYXR0cmlidXRlZCBhcyBhcHAgaW5p
dGlhdGVkLgorUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1
ZXN0cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hcHAtYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjA4YzM3NTI4NmMzZmI3MzE1YzgwYmEwZTkyYmYxYWIzYWRjYjZhOGMKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAt
YXR0cmlidXRpb24tbG9hZC11cmwuaHRtbApAQCAtMCwwICsxLDQ4IEBACis8IURPQ1RZUEUgaHRt
bD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPXRydWUgXSAtLT4KKzxo
dG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291cmNlcy91dGlsLmpzIj48L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91dCgncnVuVGVzdCgpJywgMCkiPgor
PGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3QgbG9hZFVSTCByZXF1ZXN0cyBhcmUgc3VjY2VzZnVs
bHkgYXR0cmlidXRlZCBhcyBhcHAgaW5pdGlhdGVkLjwvZGl2PgorPHByZSBpZD0iY29uc29sZSI+
PC9wcmU+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0
ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9hZFVSTCgpIHsKKyAgICAgICAgZG9jdW1lbnQu
bG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwiOworICAgIH0KKworICAgIGZ1bmN0aW9uIGxv
ZyhtZXNzYWdlKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJyku
YXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKKyAg
ICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9ICJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiOworICAgIGNvbnN0IHN0YXJ0aW5nT3JpZ2luID0gImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCI7
CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAgaWYgKGRvY3VtZW50LmxvY2F0aW9u
Lm9yaWdpbiA9PT0gc3RhcnRpbmdPcmlnaW4pIHsKKyAgICAgICAgICAgIGxvYWRVUkwoKTsKKyAg
ICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVz
dCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKyAgICAgICAgICAg
IHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5v
bkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKworICAgICAgICAgICAgaWYgKGRpZExvYWROb25BcHBJ
bml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIG5v
biBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFkaWRMb2FkQXBw
SW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbm90IGxv
YWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAgICAgICAgIGxvZygiUEFTUyBzdWNj
ZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworICAgICAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKyAgICB9Cis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9u
LXBpbmctbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNjU2MjczOTBmYzBkNWZjMjBkZTlm
MzM4YjVhNmJmYWQ1Zjg4ZDZlNAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQ09OU09MRSBNRVNTQUdFOiBQQVNTIHN1Y2Nlc3NmdWxs
eSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCitQaW5nIHNlbnQgc3VjY2Vzc2Z1
bGx5CitDT05URU5UX1RZUEU6IHRleHQvcGluZworSFRUUF9IT1NUOiAxMjcuMC4wLjE6ODAwMAor
SFRUUF9QSU5HX0ZST006IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sCitIVFRQX1BJTkdfVE86IGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLWFwcC1pbml0aWF0ZWQt
ZGF0YS5weQorUkVRVUVTVF9NRVRIT0Q6IFBPU1QKK1JFUVVFU1RfVVJJOiAvbmF2aWdhdGlvbi9y
ZXNvdXJjZXMvc2F2ZS1waW5nLnB5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcGlu
Zy1sb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjExYWJmODM5YmRmZTE2N2EyNDBlZWRiNDZkNTgxODI2
OGRmNTM1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbApAQCAtMCwwICsxLDMx
IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlh
dGVkPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQg
c3JjPSIuLi9uYXZpZ2F0aW9uL3BpbmctYXR0cmlidXRlL3Jlc291cmNlcy91dGlsaXRpZXMuanMi
Pjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50
ZXJuYWxzKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5z
ZXRTdGF0aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJyZXIoZmFsc2UsIGZ1bmN0aW9uICgpIHsg
fSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCh0
cnVlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gdGVz
dCgpCit7CisgICAgY2xpY2tFbGVtZW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpKTsK
K30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpCit7CisgICAgY2xlYXJMYXN0UGluZ1Jl
c3VsdEFuZFJ1blRlc3QodGVzdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAg
IDxpbWcgc3JjPSJub24tZXhpc3RlbnQtaW1hZ2UuanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEy
OCIgdXNlbWFwPSIjaW1hZ2VtYXAiPgorICAgIDxtYXAgbmFtZT0iaW1hZ2VtYXAiPgorICAgICAg
ICA8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIwLDAsMTI4LDEyOCIgaHJlZj0iLi4vbmF2aWdh
dGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy1hcHAtaW5pdGlhdGVkLWRhdGEucHkiIHBpbmc9Ii4u
L25hdmlnYXRpb24vcmVzb3VyY2VzL3NhdmUtcGluZy5weSI+CisgICAgPC9tYXA+Cis8L2JvZHk+
Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0
LXJlcXVlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUyNDVlMzQwZjE3ZGU4ZTRmM2UzNTlj
YzFiOWY0MTQ3NjZkZWNmMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0NPTlNPTEUgTUVTU0FHRTogUEFTUyBzdWNjZXNzZnVs
bHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cworVGVzdHMgYXBwIGluaXRpYXRl
ZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBQT1NUIHJlcXVlc3RzLgorCisKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlv
bi1wb3N0LXJlcXVlc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mZDY5
Y2M2ZDhkOWQ3NGM2NmY3NzdmZTliNjJkNjAxMTM3MmZkZjBkCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9u
LXBvc3QtcmVxdWVzdC5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0g
d2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9dHJ1ZSBdIC0tPgorPGh0bWw+Cis8
aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3JpcHQgc3JjPSIuLi8uLi8uLi9yZXNv
dXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8cD5UZXN0
cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIFBPU1QgcmVxdWVzdHMuPC9w
PgorPGZvcm0gaWQ9InRlc3RGb3JtIiBhY3Rpb249InJlc291cmNlcy9hcHAtaW5pdGlhdGVkLXBv
c3QucHkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vcmVmZXJyZXIiIG1ldGhvZD0icG9zdCI+Cis8
aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVGVzdCI+PC9pbnB1dD4KKzxmb3JtPgorPHNjcmlw
dD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9u
ZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7Cit9CisKK2RvY3Vt
ZW50LmZvcm1zWzBdLnN1Ym1pdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1h
dHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3lu
Yy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI1ZWVhOTQyMmFkMGNhZWU3NjY3YmNkNDA2ZGI5
M2UwYTVlOWUyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBQcmVmbGlnaHQgcmVzcG9uc2Ug
aXMgbm90IHN1Y2Nlc3NmdWwKK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90
IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0
dXMtNDA0LXdpdGhvdXQtYm9keS5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorVGVz
dHMgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBhc3luYyBwcmVmbGlnaHRz
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIwZmRlYzhhYzljZThlYmQzODE3NmUzMGRhZThjNDU5ZjBlMzlhNGQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwKQEAgLTAsMCArMSw0NyBA
QAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRl
ZD10cnVlIF0gLS0+Cis8cD5UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQg
Zm9yIGFzeW5jIHByZWZsaWdodHM8L3A+CisKKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNj
cmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBsb2co
bWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Cit9CisKK3Zh
ciBwcmVmbGlnaHRMaW5rRG9tYWluID0gImxvY2FsaG9zdCI7Cit2YXIgY29udGV4dEhvc3QgPSAi
MTI3LjAuMC4xIjsKK3ZhciB1cmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSIKKworZnVuY3Rpb24gcnVu
VGVzdCgpCit7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHJlcS5v
cGVuKCJHRVQiLCB1cmwsIHRydWUpOworICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJ4LXdlYmtp
dCIsICJmb28iKTsKKworICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgIHZh
ciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRp
YXRlZFJlcXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0
ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAg
IGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJG
QUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2Fk
QXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9h
ZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2Fk
ZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7CisgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgIH0KKyAgICByZXEuc2VuZChudWxsKTsKK30KKworcnVuVGVzdCgpOwor
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBy
ZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MDE2YzUzMWUwNjU5YWRjZGQ2
MzU1NTIzZWExYjBhZDJkNWEyYjFjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5j
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0NPTlNPTEUgTUVTU0FHRTogUHJlZmxpZ2h0
IHJlc3BvbnNlIGlzIG5vdCBzdWNjZXNzZnVsCitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1
ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNo
ZWNrcy4KK1Rlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3Igc3luYyBw
cmVmbGlnaHRzCisKK1BBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJl
ZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi4wY2Q2MTY4YjIyN2NhNWRhOGI1NDZmZTZhYWRhNjg4OGEyZmJiZmY1Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWwKQEAgLTAsMCArMSw1MCBAQAor
PCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD10
cnVlIF0gLS0+Cis8cD5UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9y
IHN5bmMgcHJlZmxpZ2h0czwvcD4KKworPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0
PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNz
YWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hp
bGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKK30KKwordmFyIHBy
ZWZsaWdodExpbmtEb21haW4gPSAibG9jYWxob3N0IjsKK3ZhciBjb250ZXh0SG9zdCA9ICIxMjcu
MC4wLjEiOwordmFyIHVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IgorCitmdW5jdGlvbiBydW5UZXN0
KCkKK3sKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9wZW4o
IkdFVCIsIHVybCwgZmFsc2UpOworICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJ4LXdlYmtpdCIs
ICJmb28iKTsKKworICAgIHRyeSB7CisgICAgICAgIHJlcS5zZW5kKG51bGwpOworICAgICAgICBs
b2coIlBBU1M6ICIgKyByZXEucmVzcG9uc2VUZXh0KTsKKyAgICB9IGNhdGNoIChleCkgeworICAg
ICAgICBsb2coIlBBU1M6ICIgKyBleCk7CisgICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVk
UmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKyAgICAg
ICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2Fk
Tm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAgIGlmIChkaWRMb2FkTm9uQXBwSW5p
dGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIG5vbiBhcHAg
aW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkg
eworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVl
c3QiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisK
KyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVk
IHJlcXVlc3RzIik7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30K
KworcnVuVGVzdCgpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxp
ZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmIyMWMyZDU5OTQxNDRlODEwZTE1NzdlZmZiY2QwOWNlMDZkZjNkZGQK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDE0IEBACisxMjcuMC4wLjE6ODAwMCAtIGRpZFJlY2VpdmVBdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSAtIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJh
c2ljIC0gUmVzcG9uZGluZyB3aXRoIHRlc3RVc2VybmFtZTp0ZXN0UGFzc3dvcmQKKzEyNy4wLjAu
MTo4MDAwIC0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlIC0gUHJvdGVjdGlvblNw
YWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMgLSBTaW11bGF0aW5nIGNhbmNlbGxlZCBh
dXRoZW50aWNhdGlvbiBzaGVldAorVGVzdHMgc3BlY3VsYXRpdmUgcmV2YWxpZGF0aW9uIG9mIGF1
dGhlbnRpY2F0ZWQgcmVzb3VyY2VzLgorCitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJp
ZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKKwor
UEFTUyB4aHIuc3RhdHVzIGlzIDQwMQorUEFTUyBTdWNjZXNzZnVseSBsb2FkZWQuCitQQVNTIHN1
Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXNw
ZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjA0MWY1ZDZkMTQ2MDhhN2YwM2NlZjY2MGMzOTczYTVhMDNlMjA5NDkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwKQEAgLTAs
MCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0Fw
cEluaXRpYXRlZD10cnVlIF0gLS0+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgc3Bl
Y3VsYXRpdmUgcmV2YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0ZWQgcmVzb3VyY2VzLiIpOworanNU
ZXN0SXNBc3luYyA9IHRydWU7CisKK3Rlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlcyh0cnVlKTsKK3Rlc3RSdW5uZXIuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSgi
dGVzdFVzZXJuYW1lIik7Cit0ZXN0UnVubmVyLnNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmQoInRl
c3RQYXNzd29yZCIpOworCitzdGF0ZSA9ICJ3YXJtdXAiOworCitmdW5jdGlvbiBjbGVhckNyZWRl
bnRpYWxTdG9yYWdlKCkKK3sKKyAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4
aHIub3BlbigiR0VUIiwgInJlc291cmNlcy9yZXNvdXJjZS13aXRoLWF1dGgucHk/b3RoZXIiLCBm
YWxzZSwgImJhZFVzZXJuYW1lIiwgImJhZFBhc3N3b3JkIik7CisgICAgeGhyLnNlbmQoKTsKKyAg
ICBzaG91bGRCZSgieGhyLnN0YXR1cyIsICI0MDEiKTsKK30KKworZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworfQorCitmdW5jdGlv
biBmcmFtZUxvYWRlZCgpCit7CisgICAgaWYgKHN0YXRlID09ICJ3YXJtdXAiKSB7CisgICAgICAg
IC8vIE5hdmlnYXRlIGZyYW1lIHRvICdhYm91dDpibGFuaycgdG8gZmx1c2ggdG8gc3VicmVzb3Vy
Y2UgbG9hZHMgbWV0YWRhdGEgdG8gZGlzay4KKyAgICAgICAgc3RhdGUgPSAiZmx1c2hpbmdNZXRh
ZGF0YSI7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlcyhmYWxzZSk7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUi
KS5zcmMgPSAiYWJvdXQ6YmxhbmsiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChz
dGF0ZSA9PSAiZmx1c2hpbmdNZXRhZGF0YSIpIHsKKyAgICAgICAgY2xlYXJDcmVkZW50aWFsU3Rv
cmFnZSgpOworCisgICAgICAgIGludGVybmFscy5jbGVhck1lbW9yeUNhY2hlKCk7CisgICAgICAg
IHRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhmYWxzZSk7CisK
KyAgICAgICAgLy8gTmF2aWdhdGUgZnJhbWUgdG8gaXRzIG9yaWdpbmFsIGxvY2F0aW9uIGFnYWlu
LiBUaGlzIHRpbWUgaXQgc2hvdWxkIHNwZWN1bGF0aXZlbHkKKyAgICAgICAgLy8gdmFsaWRhdGUg
c3VicmVzb3VyY2VzIGFzIHdlIGhhdmUgc3VicmVzb3VyY2UgbG9hZHMgbWV0YWRhdGEgaW4gdGhl
IGRpc2sgY2FjaGUuCisgICAgICAgIHN0YXRlID0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIjsK
KyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLnNyYyA9ICJyZXNv
dXJjZXMvZnJhbWUtd2l0aC1hdXRoZW50aWNhdGVkLXJlc291cmNlLnB5IjsKKyAgICAgICAgcmV0
dXJuOworICAgIH0KKyAgICBpZiAoc3RhdGUgPT0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIikg
eworICAgICAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzZnVseSBsb2FkZWQuIik7CisgICAgICAgIHZh
ciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRp
YXRlZFJlcXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0
ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAg
IGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJG
QUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAg
aWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlM
IGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAgICAgICB9CisKKyAgICAgICAgbG9n
KCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7
CisKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIHJldHVybjsKKyAgICB9Cit9CisK
Kzwvc2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNlcy9mcmFtZS13
aXRoLWF1dGhlbnRpY2F0ZWQtcmVzb3VyY2UucHkiIG9ubG9hZD0iZnJhbWVMb2FkZWQoKSI+PC9p
ZnJhbWU+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3Rl
ZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGEwMDI0ODA0NTE1OTlmYjQwOGVk
MDBmNDhiZmQ2NzI4ZjI2ZDZkZjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0
cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCww
IEBACi1UZXN0IGxvYWRVUkwgcmVxdWVzdHMgYXJlIHN1Y2Nlc2Z1bGx5IGF0dHJpYnV0ZWQgYXMg
YXBwIGluaXRpYXRlZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0
ZWQgcmVxdWVzdHMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3YWQ4ZWU1Yzg3Y2MyZDE4NWVkNzk3ZjViZWYwN2Fk
Njk0ZThjMDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9h
ZC11cmwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwv
c2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAw
KSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdCBsb2FkVVJMIHJlcXVlc3RzIGFyZSBzdWNj
ZXNmdWxseSBhdHRyaWJ1dGVkIGFzIGFwcCBpbml0aWF0ZWQuPC9kaXY+Ci08cHJlIGlkPSJjb25z
b2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAg
ICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgICAgICB0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBsb2FkVVJMKCkgewotICAgICAgICBkb2N1
bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25PcmlnaW4gKyAiL2FwcC1wcml2YWN5LXJl
cG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sIjsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBs
b2cobWVzc2FnZSkgewotICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScp
LmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Ci0g
ICAgfQotCi0gICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIjsKLSAgICBjb25zdCBzdGFydGluZ09yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
OwotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlv
bi5vcmlnaW4gPT09IHN0YXJ0aW5nT3JpZ2luKSB7Ci0gICAgICAgICAgICBsb2FkVVJMKCk7Ci0g
ICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVl
c3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7Ci0gICAgICAgICAg
ICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRO
b25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7Ci0KLSAgICAgICAgICAgIGlmIChkaWRMb2FkTm9uQXBw
SW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9hZCBu
b24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7Ci0gICAgICAgICAgICAgICAgdGVzdFJ1bm5lci5u
b3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgIGlmICghZGlkTG9hZEFw
cEluaXRpYXRlZFJlcXVlc3QpIHsKLSAgICAgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBs
b2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwotICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfQotCi0gICAgICAgICAgICBsb2coIlBBU1Mgc3Vj
Y2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKLSAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICB9Ci0gICAgfQotPC9zY3JpcHQ+
Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcGluZy1s
b2FkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGQ2MTdlZTkw
MGE0OTAyYjk3YTRiZWQ2YTM5ZTk2NTY2Y2U0NTU5Zi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsOCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRl
ZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKLVBpbmcgc2VudCBzdWNjZXNzZnVsbHkKLUNP
TlRFTlRfVFlQRTogdGV4dC9waW5nCi1IVFRQX0hPU1Q6IDEyNy4wLjAuMTo4MDAwCi1IVFRQX1BJ
TkdfRlJPTTogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1
dGlvbi1waW5nLWxvYWQuaHRtbAotSFRUUF9QSU5HX1RPOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
bmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy1hcHAtaW5pdGlhdGVkLWRhdGEucHkKLVJF
UVVFU1RfTUVUSE9EOiBQT1NUCi1SRVFVRVNUX1VSSTogL25hdmlnYXRpb24vcmVzb3VyY2VzL3Nh
dmUtcGluZy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbApkZWxldGVk
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTEwMGNhZTJjNjJjZGFiZGFhNGUxMGVjMzlmOWM5MGE4
OWViZTk5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5n
LWxvYWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICswLDAgQEAKLTwhRE9DVFlQRSBodG1s
PgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9uYXZpZ2F0aW9uL3BpbmctYXR0cmli
dXRlL3Jlc291cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLWlmICh3aW5k
b3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7Ci0gICAgdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVm
ZXJyZXIoZmFsc2UsIGZ1bmN0aW9uICgpIHsgfSk7Ci0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNl
dEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCh0cnVlKTsKLSAgICB0ZXN0UnVubmVyLndhaXRVbnRp
bERvbmUoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0gICAgY2xpY2tFbGVtZW50KGRvY3Vt
ZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpKTsKLX0KLQotd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9u
ICgpCi17Ci0gICAgY2xlYXJMYXN0UGluZ1Jlc3VsdEFuZFJ1blRlc3QodGVzdCk7Ci19Ci08L3Nj
cmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxpbWcgc3JjPSJub24tZXhpc3RlbnQtaW1hZ2Uu
anBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdXNlbWFwPSIjaW1hZ2VtYXAiPgotICAgIDxt
YXAgbmFtZT0iaW1hZ2VtYXAiPgotICAgICAgICA8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIw
LDAsMTI4LDEyOCIgaHJlZj0iLi4vbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy1hcHAt
aW5pdGlhdGVkLWRhdGEucHkiIHBpbmc9Ii4uL25hdmlnYXRpb24vcmVzb3VyY2VzL3NhdmUtcGlu
Zy5weSI+Ci0gICAgPC9tYXA+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wb3N0LXJlcXVl
c3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggZTI0NWUzNDBmMTdkZThlNGYzZTM1OWNjMWI5ZjQxNDc2NmRlY2YxYy4u
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3Qt
ZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IFBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMK
LVRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3IgUE9TVCByZXF1ZXN0
cy4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sCmRlbGV0
ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDc5NTRmNzgwMzNiNGRlNjA1YjkwMWE2MDNmOWJk
MzE5ZTUxMjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBv
c3QtcmVxdWVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEsMjIgKzAsMCBAQAotPCFET0NUWVBF
IGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNldD0idXRmLTgiPgotPHNjcmlwdCBz
cmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9zY3JpcHQ+Ci08L2hlYWQ+
Ci08Ym9keT4KLTxwPlRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3Ig
UE9TVCByZXF1ZXN0cy48L3A+Ci08Zm9ybSBpZD0idGVzdEZvcm0iIGFjdGlvbj0icmVzb3VyY2Vz
L3Bvc3QucHkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vcmVmZXJyZXIiIG1ldGhvZD0icG9zdCI+
Ci08aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVGVzdCI+PC9pbnB1dD4KLTxmb3JtPgotPHNj
cmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIud2FpdFVudGls
RG9uZSgpOwotICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7Ci19Ci0KLWRv
Y3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOwotCi08L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0
dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhw
ZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCA5YjVlZWE5NDIyYWQwY2Fl
ZTc2NjdiY2Q0MDZkYjkzZTBhNWU5ZTJlLi4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2F0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQKKysrIC9kZXYvbnVsbApA
QCAtMSw2ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogUHJlZmxpZ2h0IHJlc3BvbnNlIGlzIG5v
dCBzdWNjZXNzZnVsCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2Fk
IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQw
NC13aXRob3V0LWJvZHkucHkgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLVRlc3RzIGFw
cCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3IgYXN5bmMgcHJlZmxpZ2h0cwotCi1Q
QVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCi0KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJp
YnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwKZGVsZXRlZCBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5M2I5ZjNjMjRkYjdlMzBjOWY1MWU5ZjRkMjI3MTZkNjYy
ZThkYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxp
Z2h0LWFzeW5jLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0NiArMCwwIEBACi08cD5UZXN0cyBh
cHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIGFzeW5jIHByZWZsaWdodHM8L3A+
Ci0KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1
bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotICAgIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwotfQotCi1mdW5jdGlvbiBsb2cobWVzc2FnZSkKLXsKLSAgICBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRl
eHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Ci19Ci0KLXZhciBwcmVmbGlnaHRMaW5rRG9tYWluID0g
ImxvY2FsaG9zdCI7Ci12YXIgY29udGV4dEhvc3QgPSAiMTI3LjAuMC4xIjsKLXZhciB1cmwgPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0
LXdpdGhvdXQtYm9keS5weSIKLQotZnVuY3Rpb24gcnVuVGVzdCgpCi17Ci0gICAgdmFyIHJlcSA9
IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOwot
ICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKLQotICAgIHJlcS5v
bmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVx
dWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKLSAgICAgICAg
dmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9u
QXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotCi0gICAgICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlh
dGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5p
dGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwot
ICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgewot
ICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3Qi
KTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICB9Ci0KLSAg
ICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJl
cXVlc3RzIik7Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgIH0KLSAgICBy
ZXEuc2VuZChudWxsKTsKLX0KLQotcnVuVGVzdCgpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVm
bGlnaHQtc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwMTZjNTMxZTA2NTlhZGNkZDYzNTU1MjNlYTFiMGFk
MmQ1YTJiMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJl
ZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNyArMCwwIEBACi1D
T05TT0xFIE1FU1NBR0U6IFByZWZsaWdodCByZXNwb25zZSBpcyBub3Qgc3VjY2Vzc2Z1bAotQ09O
U09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0
OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5
IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVl
c3RzIGdldCBtYXJrZWQgZm9yIHN5bmMgcHJlZmxpZ2h0cwotCi1QQVNTOiBOZXR3b3JrRXJyb3I6
ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCi1QQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25s
eSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1w
cmVmbGlnaHQtc3luYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBlYjU0MDk1
YTFmZjdjMDQxZDFhYmU1NjAwZmE1YmNlNWNlZWU0M2E1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZh
Y3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWwKKysrIC9kZXYvbnVsbApA
QCAtMSw0OSArMCwwIEBACi08cD5UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJr
ZWQgZm9yIHN5bmMgcHJlZmxpZ2h0czwvcD4KLQotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08
c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNU
ZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci19Ci0KLWZ1bmN0aW9uIGxv
ZyhtZXNzYWdlKQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBw
ZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKLX0KLQot
dmFyIHByZWZsaWdodExpbmtEb21haW4gPSAibG9jYWxob3N0IjsKLXZhciBjb250ZXh0SG9zdCA9
ICIxMjcuMC4wLjEiOwotdmFyIHVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IgotCi1mdW5jdGlvbiBy
dW5UZXN0KCkKLXsKLSAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgcmVx
Lm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOwotICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJ4LXdl
YmtpdCIsICJmb28iKTsKLQotICAgIHRyeSB7Ci0gICAgICAgIHJlcS5zZW5kKG51bGwpOwotICAg
ICAgICBsb2coIlBBU1M6ICIgKyByZXEucmVzcG9uc2VUZXh0KTsKLSAgICB9IGNhdGNoIChleCkg
ewotICAgICAgICBsb2coIlBBU1M6ICIgKyBleCk7Ci0gICAgICAgIHZhciBkaWRMb2FkQXBwSW5p
dGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsK
LSAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5k
aWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotCi0gICAgICAgIGlmIChkaWRMb2FkTm9u
QXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIG5v
biBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVx
dWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVk
IHJlcXVlc3QiKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAg
ICB9Ci0KLSAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5p
dGlhdGVkIHJlcXVlc3RzIik7Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAg
IH0KLX0KLQotcnVuVGVzdCgpOwotPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZh
bGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4
dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjIxYzJkNTk5NDE0NGU4MTBlMTU3N2Vm
ZmJjZDA5Y2UwNmRmM2RkZC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1
dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwK
QEAgLTEsMTQgKzAsMCBAQAotMTI3LjAuMC4xOjgwMDAgLSBkaWRSZWNlaXZlQXV0aGVudGljYXRp
b25DaGFsbGVuZ2UgLSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNp
YyAtIFJlc3BvbmRpbmcgd2l0aCB0ZXN0VXNlcm5hbWU6dGVzdFBhc3N3b3JkCi0xMjcuMC4wLjE6
ODAwMCAtIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAtIFByb3RlY3Rpb25TcGFj
ZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljIC0gU2ltdWxhdGluZyBjYW5jZWxsZWQgYXV0
aGVudGljYXRpb24gc2hlZXQKLVRlc3RzIHNwZWN1bGF0aXZlIHJldmFsaWRhdGlvbiBvZiBhdXRo
ZW50aWNhdGVkIHJlc291cmNlcy4KLQotT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVz
IG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgotCi0KLVBB
U1MgeGhyLnN0YXR1cyBpcyA0MDEKLVBBU1MgU3VjY2Vzc2Z1bHkgbG9hZGVkLgotUEFTUyBzdWNj
ZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cwotUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRFCi0KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXNwZWN1bGF0
aXZlLXJldmFsaWRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiNzVkNmZmMWJlODlhMTdmYmFkZWFlZmFjOTc0MDAw
ZGM5ZTg1ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tc3Bl
Y3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw3MiArMCwwIEBA
Ci08c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Njcmlw
dD4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgc3BlY3VsYXRpdmUgcmV2YWxpZGF0aW9u
IG9mIGF1dGhlbnRpY2F0ZWQgcmVzb3VyY2VzLiIpOwotanNUZXN0SXNBc3luYyA9IHRydWU7Ci0K
LXRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyh0cnVlKTsKLXRl
c3RSdW5uZXIuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSgidGVzdFVzZXJuYW1lIik7Ci10ZXN0
UnVubmVyLnNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmQoInRlc3RQYXNzd29yZCIpOwotCi1zdGF0
ZSA9ICJ3YXJtdXAiOwotCi1mdW5jdGlvbiBjbGVhckNyZWRlbnRpYWxTdG9yYWdlKCkKLXsKLSAg
ICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4aHIub3BlbigiR0VUIiwgInJlc291
cmNlcy9yZXNvdXJjZS13aXRoLWF1dGgucHk/b3RoZXIiLCBmYWxzZSwgImJhZFVzZXJuYW1lIiwg
ImJhZFBhc3N3b3JkIik7Ci0gICAgeGhyLnNlbmQoKTsKLSAgICBzaG91bGRCZSgieGhyLnN0YXR1
cyIsICI0MDEiKTsKLX0KLQotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCi17Ci0gICAgZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0
Tm9kZShtZXNzYWdlICsgJ1xuJykpOwotfQotCi1mdW5jdGlvbiBmcmFtZUxvYWRlZCgpCi17Ci0g
ICAgaWYgKHN0YXRlID09ICJ3YXJtdXAiKSB7Ci0gICAgICAgIC8vIE5hdmlnYXRlIGZyYW1lIHRv
ICdhYm91dDpibGFuaycgdG8gZmx1c2ggdG8gc3VicmVzb3VyY2UgbG9hZHMgbWV0YWRhdGEgdG8g
ZGlzay4KLSAgICAgICAgc3RhdGUgPSAiZmx1c2hpbmdNZXRhZGF0YSI7Ci0gICAgICAgIHRlc3RS
dW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhmYWxzZSk7Ci0gICAgICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKS5zcmMgPSAiYWJvdXQ6Ymxhbmsi
OwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChzdGF0ZSA9PSAiZmx1c2hpbmdNZXRh
ZGF0YSIpIHsKLSAgICAgICAgY2xlYXJDcmVkZW50aWFsU3RvcmFnZSgpOwotCi0gICAgICAgIGlu
dGVybmFscy5jbGVhck1lbW9yeUNhY2hlKCk7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0SGFuZGxl
c0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhmYWxzZSk7Ci0KLSAgICAgICAgLy8gTmF2aWdhdGUg
ZnJhbWUgdG8gaXRzIG9yaWdpbmFsIGxvY2F0aW9uIGFnYWluLiBUaGlzIHRpbWUgaXQgc2hvdWxk
IHNwZWN1bGF0aXZlbHkKLSAgICAgICAgLy8gdmFsaWRhdGUgc3VicmVzb3VyY2VzIGFzIHdlIGhh
dmUgc3VicmVzb3VyY2UgbG9hZHMgbWV0YWRhdGEgaW4gdGhlIGRpc2sgY2FjaGUuCi0gICAgICAg
IHN0YXRlID0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIjsKLSAgICAgICAgZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLnNyYyA9ICJyZXNvdXJjZXMvZnJhbWUtd2l0aC1hdXRo
ZW50aWNhdGVkLXJlc291cmNlLnB5IjsKLSAgICAgICAgcmV0dXJuOwotICAgIH0KLSAgICBpZiAo
c3RhdGUgPT0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIikgewotICAgICAgICB0ZXN0UGFzc2Vk
KCJTdWNjZXNzZnVseSBsb2FkZWQuIik7Ci0gICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVk
UmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKLSAgICAg
ICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2Fk
Tm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotCi0gICAgICAgIGlmIChkaWRMb2FkTm9uQXBwSW5p
dGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIG5vbiBhcHAg
aW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAg
ICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlh
dGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAgaW5p
dGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOwotICAgICAgICAg
ICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBs
b2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7Ci0KLSAgICAgICAgZmluaXNoSlNU
ZXN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci19Ci0KLTwvc2NyaXB0PgotPGlmcmFtZSBp
ZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNlcy9mcmFtZS13aXRoLWF1dGhlbnRpY2F0ZWQtcmVz
b3VyY2UucHkiIG9ubG9hZD0iZnJhbWVMb2FkZWQoKSI+PC9pZnJhbWU+Ci08c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9yZXNvdXJjZXMvYXBw
LWluaXRpYXRlZC1wb3N0LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvcmVzb3VyY2VzL2FwcC1pbml0aWF0ZWQtcG9zdC5weQpuZXcgZmlsZSBtb2RlIDEwMDc1
NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kMDZmZWVl
MjEyYzcwMWNmNjJkOWQ4MzBkZmYyYjViODc2MWI5MzlmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL2FwcC1pbml0
aWF0ZWQtcG9zdC5weQpAQCAtMCwwICsxLDI3IEBACisjIS91c3IvYmluL2VudiBweXRob24zCisK
K2ltcG9ydCBvcworaW1wb3J0IHN5cworCityZWZlcmVyID0gb3MuZW52aXJvbi5nZXQoJ0hUVFBf
UkVGRVJFUicsICcnKQorCitzeXMuc3Rkb3V0LndyaXRlKAorICAgICdDb250ZW50LVR5cGU6IHRl
eHQvaHRtbFxyXG5cclxuJworICAgICc8cD5SZWZlcnJlcjoge3JlZmVyZXJ9PC9wPlxuJworICAg
ICc8c2NyaXB0PlxuJworICAgICdpZiAod2luZG93LnRlc3RSdW5uZXIpIHt7XG4nCisgICAgJyAg
ICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJ
bml0aWF0ZWRSZXF1ZXN0KCk7XG4nCisgICAgJyAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRl
ZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7XG4n
CisgICAgJyAgICBpZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHt7XG4nCisgICAg
JyAgICAgICAgY29uc29sZS5sb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVx
dWVzdCIpO1xuJworICAgICcgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAg
ICcgICAgfX1cbicKKyAgICAnICAgIGlmICghZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHt7
XG4nCisgICAgJyAgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAgaW5p
dGlhdGVkIHJlcXVlc3QiKTtcbicKKyAgICAnICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTtcbicKKyAgICAnICAgICB9fVxuJworICAgICcgICAgY29uc29sZS5sb2coIlBBU1Mgc3VjY2Vz
c2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTtcbicKKyAgICAnICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAgICd9fVxuJworICAgICc8L3NjcmlwdD5c
bicuZm9ybWF0KHJlZmVyZXI9cmVmZXJlcikKKykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy9wb3N0LnB5IGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL3Bvc3QucHkKZGVsZXRl
ZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGQwNmZlZWUyMTJjNzAxY2Y2MmQ5ZDgzMGRmZjJiNWI4
NzYxYjkzOWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL3Bvc3Qu
cHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0jIS91c3IvYmluL2VudiBweXRob24z
Ci0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi1yZWZlcmVyID0gb3MuZW52aXJvbi5nZXQoJ0hU
VFBfUkVGRVJFUicsICcnKQotCi1zeXMuc3Rkb3V0LndyaXRlKAotICAgICdDb250ZW50LVR5cGU6
IHRleHQvaHRtbFxyXG5cclxuJwotICAgICc8cD5SZWZlcnJlcjoge3JlZmVyZXJ9PC9wPlxuJwot
ICAgICc8c2NyaXB0PlxuJwotICAgICdpZiAod2luZG93LnRlc3RSdW5uZXIpIHt7XG4nCi0gICAg
JyAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRB
cHBJbml0aWF0ZWRSZXF1ZXN0KCk7XG4nCi0gICAgJyAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRp
YXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7
XG4nCi0gICAgJyAgICBpZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QpIHt7XG4nCi0g
ICAgJyAgICAgICAgY29uc29sZS5sb2coIkZBSUwgZGlkIGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQg
cmVxdWVzdCIpO1xuJwotICAgICcgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJwot
ICAgICcgICAgfX1cbicKLSAgICAnICAgIGlmICghZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3Qp
IHt7XG4nCi0gICAgJyAgICAgICAgIGNvbnNvbGUubG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAg
aW5pdGlhdGVkIHJlcXVlc3QiKTtcbicKLSAgICAnICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTtcbicKLSAgICAnICAgICB9fVxuJwotICAgICcgICAgY29uc29sZS5sb2coIlBBU1Mgc3Vj
Y2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTtcbicKLSAgICAn
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJwotICAgICd9fVxuJwotICAgICc8L3Njcmlw
dD5cbicuZm9ybWF0KHJlZmVyZXI9cmVmZXJlcikKLSkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy91c2VyLWluaXRpYXRlZC1w
b3N0LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3Vy
Y2VzL3VzZXItaW5pdGlhdGVkLXBvc3QucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzJjYzJlMTM5Y2M0NjRhMjVi
NmNmYTExZDk0M2IxZWNiMmFkZTRjZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy91c2VyLWluaXRpYXRlZC1wb3N0
LnB5CkBAIC0wLDAgKzEsMjcgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKworaW1wb3J0IG9z
CitpbXBvcnQgc3lzCisKK3JlZmVyZXIgPSBvcy5lbnZpcm9uLmdldCgnSFRUUF9SRUZFUkVSJywg
JycpCisKK3N5cy5zdGRvdXQud3JpdGUoCisgICAgJ0NvbnRlbnQtVHlwZTogdGV4dC9odG1sXHJc
blxyXG4nCisgICAgJzxwPlJlZmVycmVyOiB7cmVmZXJlcn08L3A+XG4nCisgICAgJzxzY3JpcHQ+
XG4nCisgICAgJ2lmICh3aW5kb3cudGVzdFJ1bm5lcikge3tcbicKKyAgICAnICAgIHZhciBkaWRM
b2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJl
cXVlc3QoKTtcbicKKyAgICAnICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9
IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTtcbicKKyAgICAnICAg
IGlmIChkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkge3tcbicKKyAgICAnICAgICAgICBjb25z
b2xlLmxvZygiRkFJTCBkaWQgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTtcbicKKyAgICAn
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTtcbicKKyAgICAnICAgIH19XG4nCisgICAg
JyAgICBpZiAoIWRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7e1xuJworICAgICcgICAg
ICAgICBjb25zb2xlLmxvZygiRkFJTCBkaWQgbm90IGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVx
dWVzdCIpO1xuJworICAgICcgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAg
ICcgICAgIH19XG4nCisgICAgJyAgICBjb25zb2xlLmxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9h
ZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTtcbicKKyAgICAnICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAgICd9fVxuJworICAgICc8L3NjcmlwdD5cbicuZm9y
bWF0KHJlZmVyZXI9cmVmZXJlcikKKykKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZjZGFjZTI2YTIwZWVl
MDlkZDE0YzQ1YTM4ZDFjMWNhNTQ1YzM0YgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tbG9hZC11cmwt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdCBsb2FkVVJMIHJlcXVlc3RzIGFyZSBz
dWNjZXNmdWxseSBhdHRyaWJ1dGVkIGFzIG5vbiBhcHAgaW5pdGlhdGVkLgorUEFTUyBzdWNjZXNz
ZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKKwpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1
dGlvbi1sb2FkLXVybC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzMTI5ZWFl
MzgzMDUzMzQ1M2JjMGUzNGFhOGQ3MDRjNzA2ZWRjMWMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLWxv
YWQtdXJsLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQt
dGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD1mYWxzZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4K
KyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Cis8ZGl2IGlkPSJkZXNj
cmlwdGlvbiI+VGVzdCBsb2FkVVJMIHJlcXVlc3RzIGFyZSBzdWNjZXNmdWxseSBhdHRyaWJ1dGVk
IGFzIG5vbiBhcHAgaW5pdGlhdGVkLjwvZGl2PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8
c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAg
fQorCisgICAgZnVuY3Rpb24gbG9hZFVSTCgpIHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24u
aHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1sb2FkLXVybC5odG1sIjsKKyAgICB9CisKKyAgICBmdW5jdGlvbiBsb2cobWVzc2Fn
ZSkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7CisgICAgfQorCisg
ICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKKyAg
ICBjb25zdCBzdGFydGluZ09yaWdpbiA9ICJodHRwOi8vMTI3LjAuMC4xOjgwMDAiOworICAgIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4g
PT09IHN0YXJ0aW5nT3JpZ2luKSB7CisgICAgICAgICAgICBsb2FkVVJMKCk7CisgICAgICAgIH0g
ZWxzZSB7CisgICAgICAgICAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0
UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisgICAgICAgICAgICB2YXIgZGlk
TG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0
aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgICAgIGlmIChkaWRMb2FkQXBwSW5pdGlhdGVkUmVx
dWVzdCkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9hZCBhcHAgaW5pdGlhdGVk
IHJlcXVlc3QiKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVx
dWVzdCkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbm90IGxvYWQgbm9uIGFwcCBp
bml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5
IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7CisgICAgICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorICAgIH0KKzwvc2NyaXB0PgorPC9i
b2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1w
aW5nLWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1YmQ5NGViM2EzNDIzZWVhOGM4ODli
YmNiZjNjYjQ3NWM2YzUxODIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3Rl
ZC50eHQKQEAgLTAsMCArMSw4IEBACitDT05TT0xFIE1FU1NBR0U6IFBBU1Mgc3VjY2Vzc2Z1bGx5
IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCitQaW5nIHNlbnQgc3VjY2Vz
c2Z1bGx5CitDT05URU5UX1RZUEU6IHRleHQvcGluZworSFRUUF9IT1NUOiAxMjcuMC4wLjE6ODAw
MAorSFRUUF9QSU5HX0ZST006IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9hcHAtcHJpdmFjeS1yZXBv
cnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbAorSFRUUF9QSU5HX1RPOiBodHRwOi8v
MTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy11c2VyLWluaXRp
YXRlZC1kYXRhLnB5CitSRVFVRVNUX01FVEhPRDogUE9TVAorUkVRVUVTVF9VUkk6IC9uYXZpZ2F0
aW9uL3Jlc291cmNlcy9zYXZlLXBpbmcucHkKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0
aW9uLXBpbmctbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzM2ZhMjM1YzgwMTg2NTUzY2I2MjJjNzE2
NTUwMWZhMDNmZmI1NmEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sCkBAIC0w
LDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNB
cHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi9uYXZpZ2F0aW9uL3BpbmctYXR0cmlidXRlL3Jlc291cmNlcy91dGls
aXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3
aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVz
dFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJyZXIoZmFsc2UsIGZ1bmN0
aW9uICgpIHsgfSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEh5cGVybGlua0F1ZGl0aW5n
RW5hYmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVu
Y3Rpb24gdGVzdCgpCit7CisgICAgY2xpY2tFbGVtZW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3Io
ImltZyIpKTsKK30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpCit7CisgICAgY2xlYXJM
YXN0UGluZ1Jlc3VsdEFuZFJ1blRlc3QodGVzdCk7Cit9Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxpbWcgc3JjPSJub24tZXhpc3RlbnQtaW1hZ2UuanBnIiB3aWR0aD0iMTI4IiBo
ZWlnaHQ9IjEyOCIgdXNlbWFwPSIjaW1hZ2VtYXAiPgorICAgIDxtYXAgbmFtZT0iaW1hZ2VtYXAi
PgorICAgICAgICA8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIwLDAsMTI4LDEyOCIgaHJlZj0i
Li4vbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy11c2VyLWluaXRpYXRlZC1kYXRhLnB5
IiBwaW5nPSIuLi9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zYXZlLXBpbmcucHkiPgorICAgIDwvbWFw
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQwYzk4MjdkNjI4
ODEwZTAzMTY3NDIxNzA2ZDNkZGRlZDVlMGM0M2IKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBvc3Qt
cmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACitDT05TT0xFIE1FU1NBR0U6IFBB
U1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCitU
ZXN0cyBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBQT1NUIHJlcXVl
c3RzLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVz
dC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmIzYjQ1NDNiNGY3YWVhNTQ0NzdiZWZhNDZhYzExN2U1MDg1ZjU2
NTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sCkBAIC0wLDAgKzEsMjIg
QEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0
ZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+Cis8
c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdHMgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0
IG1hcmtlZCBmb3IgUE9TVCByZXF1ZXN0cy48L3A+Cis8Zm9ybSBpZD0idGVzdEZvcm0iIGFjdGlv
bj0icmVzb3VyY2VzL3VzZXItaW5pdGlhdGVkLXBvc3QucHkiIHRhcmdldD0iX2JsYW5rIiByZWw9
Im5vcmVmZXJyZXIiIG1ldGhvZD0icG9zdCI+Cis8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0i
VGVzdCI+PC9pbnB1dD4KKzxmb3JtPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2Fu
T3BlbldpbmRvd3ModHJ1ZSk7Cit9CisKK2RvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5j
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li5kNzk2YmI4MjY1MzIzNjYzZTYzNzliZmJjYjk1NWRhNjBiMWY5NmMwCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09O
U09MRSBNRVNTQUdFOiBQcmVmbGlnaHQgcmVzcG9uc2UgaXMgbm90IHN1Y2Nlc3NmdWwKK0NPTlNP
TEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSBk
dWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorVGVzdHMgbm9uIGFwcCBpbml0aWF0ZWQgcmVx
dWVzdHMgZ2V0IG1hcmtlZCBmb3IgYXN5bmMgcHJlZmxpZ2h0cworCitQQVNTIHN1Y2Nlc3NmdWxs
eSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cworCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LXByZWZsaWdodC1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li43NTFjMmY3YzdhZjRiNTFiMzViOGE4MGUwZjM3Y2Q4MTg4MWQwMzg4Ci0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbApAQCAtMCwwICsxLDQ3IEBACis8IURPQ1RZUEUg
aHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPWZhbHNlIF0gLS0+
Cis8cD5UZXN0cyBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBhc3lu
YyBwcmVmbGlnaHRzPC9wPgorCis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+Citp
ZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKyAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2Up
Cit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworfQorCit2YXIgcHJlZmxp
Z2h0TGlua0RvbWFpbiA9ICJsb2NhbGhvc3QiOwordmFyIGNvbnRleHRIb3N0ID0gIjEyNy4wLjAu
MSI7Cit2YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkiCisKK2Z1bmN0aW9uIHJ1blRlc3QoKQor
eworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICByZXEub3BlbigiR0VU
IiwgdXJsLCB0cnVlKTsKKyAgICByZXEuc2V0UmVxdWVzdEhlYWRlcigieC13ZWJraXQiLCAiZm9v
Iik7CisKKyAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICB2YXIgZGlkTG9h
ZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1
ZXN0KCk7CisgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RS
dW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKworICAgICAgICBpZiAoZGlk
TG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAgICAgIGxvZygiRkFJTCBkaWQgbG9h
ZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2FkTm9uQXBwSW5pdGlhdGVk
UmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBub24gYXBwIGlu
aXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsK
KyAgICAgICAgfQorCisgICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkg
bm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlE
b25lKCk7CisgICAgfQorICAgIHJlcS5zZW5kKG51bGwpOworfQorCitydW5UZXN0KCk7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVw
b3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVm
bGlnaHQtc3luYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNWRhMTAzOWE3OWM1ZTdmZDM0MDc0
ZDFhYmM3ZDRiOGQyNzM3NDA3MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMt
ZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorQ09OU09MRSBNRVNTQUdFOiBQcmVmbGlnaHQg
cmVzcG9uc2UgaXMgbm90IHN1Y2Nlc3NmdWwKK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVl
c3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hl
Y2tzLgorVGVzdHMgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3Igc3lu
YyBwcmVmbGlnaHRzCisKK1BBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1
cnJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJl
cXVlc3RzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbCBiL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0
LXN5bmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTcwNjMyMDMxMmY1M2I5OGYxMjRhNmU5NGQxYzZmMWFh
NWQ0NDc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sCkBAIC0wLDAg
KzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJ
bml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzxwPlRlc3RzIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3Rz
IGdldCBtYXJrZWQgZm9yIHN5bmMgcHJlZmxpZ2h0czwvcD4KKworPHByZSBpZD0iY29uc29sZSI+
PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9CisKK2Z1
bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25z
b2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicp
KTsKK30KKwordmFyIHByZWZsaWdodExpbmtEb21haW4gPSAibG9jYWxob3N0IjsKK3ZhciBjb250
ZXh0SG9zdCA9ICIxMjcuMC4wLjEiOwordmFyIHVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5IgorCitm
dW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7
CisgICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOworICAgIHJlcS5zZXRSZXF1ZXN0SGVh
ZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKKworICAgIHRyeSB7CisgICAgICAgIHJlcS5zZW5kKG51
bGwpOworICAgICAgICBsb2coIlBBU1M6ICIgKyByZXEucmVzcG9uc2VUZXh0KTsKKyAgICB9IGNh
dGNoIChleCkgeworICAgICAgICBsb2coIlBBU1M6ICIgKyBleCk7CisgICAgICAgIHZhciBkaWRM
b2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJl
cXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVz
dFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAgIGlmIChk
aWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBs
b2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3Rp
ZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWRpZExvYWROb25BcHBJbml0aWF0
ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIG5vbiBhcHAg
aW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgp
OworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25s
eSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTsKKyAgICB9Cit9CisKK3J1blRlc3QoKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlv
bi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1y
ZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjlmZDlmNjYxOTdmNGRhYjlmMjkz
YTAzZjQyOGJhZGRjOGYyNmMyYjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJl
dmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxNCBAQAorMTI3LjAuMC4xOjgwMDAg
LSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSBQcm90ZWN0aW9uU3BhY2VBdXRo
ZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyAtIFJlc3BvbmRpbmcgd2l0aCB0ZXN0VXNlcm5hbWU6
dGVzdFBhc3N3b3JkCisxMjcuMC4wLjE6ODAwMCAtIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNo
YWxsZW5nZSAtIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljIC0g
U2ltdWxhdGluZyBjYW5jZWxsZWQgYXV0aGVudGljYXRpb24gc2hlZXQKK1Rlc3RzIHNwZWN1bGF0
aXZlIHJldmFsaWRhdGlvbiBvZiBhdXRoZW50aWNhdGVkIHJlc291cmNlcy4KKworT24gc3VjY2Vz
cywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkg
IlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgeGhyLnN0YXR1cyBpcyA0MDEKK1BBU1MgU3VjY2Vz
c2Z1bHkgbG9hZGVkLgorUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0
aWF0ZWQgcmVxdWVzdHMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sIGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlv
bi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMjFmOGI5YTZkNTVl
OGZiNmQ3NGNiYTdiYmYzMzA5Mzg1NTUyNTk0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxh
dGl2ZS1yZXZhbGlkYXRpb24uaHRtbApAQCAtMCwwICsxLDcwIEBACis8IURPQ1RZUEUgaHRtbD48
IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPWZhbHNlIF0gLS0+Cis8c2Ny
aXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgc3BlY3VsYXRpdmUgcmV2YWxpZGF0aW9uIG9mIGF1
dGhlbnRpY2F0ZWQgcmVzb3VyY2VzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3Rlc3RS
dW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyh0cnVlKTsKK3Rlc3RSdW5u
ZXIuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSgidGVzdFVzZXJuYW1lIik7Cit0ZXN0UnVubmVy
LnNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmQoInRlc3RQYXNzd29yZCIpOworCitzdGF0ZSA9ICJ3
YXJtdXAiOworCitmdW5jdGlvbiBjbGVhckNyZWRlbnRpYWxTdG9yYWdlKCkKK3sKKyAgICB4aHIg
PSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3BlbigiR0VUIiwgInJlc291cmNlcy9y
ZXNvdXJjZS13aXRoLWF1dGgucHk/b3RoZXIiLCBmYWxzZSwgImJhZFVzZXJuYW1lIiwgImJhZFBh
c3N3b3JkIik7CisgICAgeGhyLnNlbmQoKTsKKyAgICBzaG91bGRCZSgieGhyLnN0YXR1cyIsICI0
MDEiKTsKK30KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxl
bWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZSht
ZXNzYWdlICsgJ1xuJykpOworfQorCitmdW5jdGlvbiBmcmFtZUxvYWRlZCgpCit7CisgICAgaWYg
KHN0YXRlID09ICJ3YXJtdXAiKSB7CisgICAgICAgIC8vIE5hdmlnYXRlIGZyYW1lIHRvICdhYm91
dDpibGFuaycgdG8gZmx1c2ggdG8gc3VicmVzb3VyY2UgbG9hZHMgbWV0YWRhdGEgdG8gZGlzay4K
KyAgICAgICAgc3RhdGUgPSAiZmx1c2hpbmdNZXRhZGF0YSI7CisgICAgICAgIHRlc3RSdW5uZXIu
c2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhmYWxzZSk7CisgICAgICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKS5zcmMgPSAiYWJvdXQ6YmxhbmsiOworICAg
ICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChzdGF0ZSA9PSAiZmx1c2hpbmdNZXRhZGF0YSIp
IHsKKyAgICAgICAgY2xlYXJDcmVkZW50aWFsU3RvcmFnZSgpOworCisgICAgICAgIGludGVybmFs
cy5jbGVhck1lbW9yeUNhY2hlKCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlcyhmYWxzZSk7CisKKyAgICAgICAgLy8gTmF2aWdhdGUgZnJhbWUg
dG8gaXRzIG9yaWdpbmFsIGxvY2F0aW9uIGFnYWluLiBUaGlzIHRpbWUgaXQgc2hvdWxkIHNwZWN1
bGF0aXZlbHkKKyAgICAgICAgLy8gdmFsaWRhdGUgc3VicmVzb3VyY2VzIGFzIHdlIGhhdmUgc3Vi
cmVzb3VyY2UgbG9hZHMgbWV0YWRhdGEgaW4gdGhlIGRpc2sgY2FjaGUuCisgICAgICAgIHN0YXRl
ID0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIjsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoInRlc3RGcmFtZSIpLnNyYyA9ICJyZXNvdXJjZXMvZnJhbWUtd2l0aC1hdXRoZW50aWNh
dGVkLXJlc291cmNlLnB5IjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoc3RhdGUg
PT0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIikgeworICAgICAgICB0ZXN0UGFzc2VkKCJTdWNj
ZXNzZnVseSBsb2FkZWQuIik7CisgICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVz
dCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKyAgICAgICAgdmFy
IGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBw
SW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAgIGlmIChkaWRMb2FkQXBwSW5pdGlhdGVkUmVx
dWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVx
dWVzdCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAgIH0KKworICAgICAg
ICBpZiAoIWRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2co
IkZBSUwgZGlkIG5vdCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAg
ICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nl
c3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworICAgICAg
ICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOworICAgIH0KK30KKworPC9zY3JpcHQ+
Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3VyY2VzL2ZyYW1lLXdpdGgtYXV0aGVu
dGljYXRlZC1yZXNvdXJjZS5weSIgb25sb2FkPSJmcmFtZUxvYWRlZCgpIj48L2lmcmFtZT4KKzxz
Y3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMv
Y2hlY2stcGluZy11c2VyLWluaXRpYXRlZC1kYXRhLnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLXVzZXItaW5pdGlhdGVkLWRhdGEucHkK
bmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uZWQwN2JmMDcyMDBjMTc3YjdmOWNiNjZiYWI3YjEwNWNkMjhiOWEwNgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvbmF2aWdhdGlvbi9yZXNvdXJj
ZXMvY2hlY2stcGluZy11c2VyLWluaXRpYXRlZC1kYXRhLnB5CkBAIC0wLDAgKzEsNDQgQEAKKyMh
L3Vzci9iaW4vZW52IHB5dGhvbjMKKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCitpbXBvcnQgdGlt
ZQorZnJvbSBwaW5nX2ZpbGVfcGF0aCBpbXBvcnQgcGluZ19maWxlcGF0aAorCitzeXMuc3Rkb3V0
LndyaXRlKCdDb250ZW50LVR5cGU6IHRleHQvaHRtbFxyXG5cclxuJykKKword2hpbGUgbm90IG9z
LnBhdGguaXNmaWxlKHBpbmdfZmlsZXBhdGgpOgorICAgIHRpbWUuc2xlZXAoMC4wMSkKKworc3lz
LnN0ZG91dC53cml0ZSgKKyAgICAnPGh0bWw+PGJvZHk+XG4nCisgICAgJ1Bpbmcgc2VudCBzdWNj
ZXNzZnVsbHknCispCisKK3BpbmdfZmlsZSA9IG9wZW4ocGluZ19maWxlcGF0aCwgJ3InKQorZm9y
IGxpbmUgaW4gcGluZ19maWxlLnJlYWRsaW5lcygpOgorICAgIHN5cy5zdGRvdXQud3JpdGUoJzxi
cj57fScuZm9ybWF0KGxpbmUuc3RyaXAoKSkpCisKK3BpbmdfZmlsZS5jbG9zZSgpCitpZiBvcy5w
YXRoLmlzZmlsZShwaW5nX2ZpbGVwYXRoKToKKyAgICBvcy5yZW1vdmUocGluZ19maWxlcGF0aCkK
Kworc3lzLnN0ZG91dC53cml0ZSgKKyAgICAnPHNjcmlwdD4nCisgICAgJ2lmICh3aW5kb3cudGVz
dFJ1bm5lcikge3tcbicKKyAgICAnICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9
IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTtcbicKKyAgICAnICAgIHZh
ciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFw
cEluaXRpYXRlZFJlcXVlc3QoKTtcbicKKyAgICAnICAgIGlmIChkaWRMb2FkQXBwSW5pdGlhdGVk
UmVxdWVzdCkge3tcbicKKyAgICAnICAgICAgICBjb25zb2xlLmxvZygiRkFJTCBkaWQgbG9hZCBh
cHAgaW5pdGlhdGVkIHJlcXVlc3QiKTtcbicKKyAgICAnICAgICAgICB0ZXN0UnVubmVyLm5vdGlm
eURvbmUoKTtcbicKKyAgICAnICAgIH19XG4nCisgICAgJyAgICBpZiAoIWRpZExvYWROb25BcHBJ
bml0aWF0ZWRSZXF1ZXN0KSB7e1xuJworICAgICcgICAgICAgICBjb25zb2xlLmxvZygiRkFJTCBk
aWQgbm90IGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpO1xuJworICAgICcgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAgICcgICAgIH19XG4nCisgICAgJyAgICBj
b25zb2xlLmxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0
ZWQgcmVxdWVzdHMiKTtcbicKKyAgICAnICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJwor
ICAgICd9fVxuJworICAgICc8L3NjcmlwdD4nCisgICAgJzwvYm9keT48L2h0bWw+JworKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>433405</attachid>
            <date>2021-07-13 08:34:06 -0700</date>
            <delta_ts>2021-07-13 09:40:20 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-227825-20210713083405.patch</filename>
            <type>text/plain</type>
            <size>70469</size>
            <attacher name="Kate Cheney">katherine_cheney</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5ODMwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGMxNzhjZmY3MGIwZmIxZmE1
ZmU3ZTI0NTMzNTdkNjMzOWI5MjIyYWEuLmEzZTliMzE5NzA3NjIxOTQ0M2NiYjYyYjA5NGI1Y2E3
YTlmYzUwNTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjEtMDctMTIgIEthdGUgQ2hl
bmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CisKKyAgICAgICAgQWxsb3cgbGF5b3V0
IHRlc3RzIHRvIHNwZWNpZnkgYXBwIGluaXRpYXRlZCBsb2FkcyBvciBub3QKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIyNzgyNQorICAgICAgICA8cmRh
cjovL3Byb2JsZW0vODAzNTU1ODI+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hh
bS4KKworICAgICAgICBUZXN0czogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0
dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbAorICAgICAgICAgICAg
ICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBvc3QtcmVx
dWVzdC5odG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9h
cHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwKKyAgICAgICAgICAgICAgIGh0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5o
dG1sCisgICAgICAgICAgICAgICBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0
cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwKKyAgICAgICAgICAgICAgIGh0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tbG9hZC11cmwuaHRt
bAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1waW5nLWxvYWQuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbAorICAgICAgICAg
ICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVm
bGlnaHQtYXN5bmMuaHRtbAorICAgICAgICAgICAgICAgaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sCisgICAgICAgICAgICAg
ICBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1bGF0
aXZlLXJldmFsaWRhdGlvbi5odG1sCisKKyAgICAgICAgQWRkIGEgcGFyYW1ldGVyIHRvIHRoZSBX
ZWJWaWV3IGNvbmZpZ3VyYXRpb24gdGhhdCBhbGxvd3MgYSB0ZXN0IHRvCisgICAgICAgIG92ZXJy
aWRlIHRoZSBkZWZhdWx0IE5TVVJMUmVxdWVzdCBhdHRyaWJ1dGlvbiB2YWx1ZS4gV2UgZG9uJ3Qg
bmVlZAorICAgICAgICB0aGlzIHRvIGJlIGR5bmFtaWMgcGVyLXRlc3QsIHNvIHdlIGNhbiBzdG9y
ZSBpdCBpbiB0aGUgY29uZmlndXJhdGlvbi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvQVBJ
UGFnZUNvbmZpZ3VyYXRpb24uY3BwOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6
Y29weSBjb25zdCk6CisgICAgICAgICogVUlQcm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlv
bi5oOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlvbjo6YXBwSW5pdGlhdGVkT3ZlcnJp
ZGVWYWx1ZUZvclRlc3RpbmcgY29uc3QpOgorICAgICAgICAoQVBJOjpQYWdlQ29uZmlndXJhdGlv
bjo6c2V0QXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcpOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbToKKyAgICAgICAgKHRv
V0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZyk6CisgICAgICAgICh0b0F0dHJpYnV0aW9uT3Zl
cnJpZGVUZXN0aW5nKToKKyAgICAgICAgKC1bV0tXZWJWaWV3Q29uZmlndXJhdGlvbiBfc2V0QXBw
SW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3Rpbmc6XSk6CisgICAgICAgICgtW1dLV2ViVmll
d0NvbmZpZ3VyYXRpb24gX2FwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nXSk6Cisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJpdmF0
ZS5oOgorICAgICAgICAqIFVJUHJvY2Vzcy9Db2NvYS9XZWJQYWdlUHJveHlDb2NvYS5tbToKKyAg
ICAgICAgKFdlYktpdDo6V2ViUGFnZVByb3h5OjpzZXRMYXN0TmF2aWdhdGlvbldhc0FwcEluaXRp
YXRlZCk6CisKIDIwMjEtMDctMTIgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgW3dhdGNoT1NdIE1ha2UgYSBmZXcgYWRkaXRpb25hbCBhZGp1c3RtZW50
cyB0byBzdXBwb3J0IHN5c3RlbSBtaW5pbXVtIGxheW91dCBtYXJnaW5zCmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0aW9uLmNwcAppbmRleCBh
MmYxYWM1NTBjYmI2MTY0N2E3ODg4ZDc5ZTc0MDYzMTk4MGZhMzk2Li43ZTE1ODQyMDA3ZjhlNjg2
NTg5OGEwYjMxZTc1NmM1MTliOGI5OGEwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1VJUHJv
Y2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQ
cm9jZXNzL0FQSS9BUElQYWdlQ29uZmlndXJhdGlvbi5jcHAKQEAgLTk2LDYgKzk2LDkgQEAgUmVm
PFBhZ2VDb25maWd1cmF0aW9uPiBQYWdlQ29uZmlndXJhdGlvbjo6Y29weSgpIGNvbnN0CiAKICAg
ICBjb3B5LT5tX21lZGlhQ2FwdHVyZUVuYWJsZWQgPSB0aGlzLT5tX21lZGlhQ2FwdHVyZUVuYWJs
ZWQ7CiAgICAgY29weS0+bV9odHRwc1VwZ3JhZGVFbmFibGVkID0gdGhpcy0+bV9odHRwc1VwZ3Jh
ZGVFbmFibGVkOworI2lmIEVOQUJMRShBUFBfUFJJVkFDWV9SRVBPUlQpCisgICAgY29weS0+bV9h
cHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZyA9IHRoaXMtPm1fYXBwSW5pdGlhdGVk
T3ZlcnJpZGVWYWx1ZUZvclRlc3Rpbmc7CisjZW5kaWYKIAogICAgIHJldHVybiBjb3B5OwogfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9VSVByb2Nlc3MvQVBJL0FQSVBhZ2VDb25maWd1cmF0
aW9uLmggYi9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24u
aAppbmRleCBkMzNiNzZmY2FlYzc1OGY5NjJkMmUwMDVjYjI1YmZkYmZlMmQxM2YyLi41OGIyMzA2
NzcxYjAyZmRhNWJhYjA1OTJkNGY3YjFiYTZkZTIwYmIwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQVBJUGFnZUNvbmZpZ3VyYXRpb24uaApAQCAtNDcsNiArNDcsMTUg
QEAgY2xhc3MgV2ViUHJvY2Vzc1Bvb2w7CiBjbGFzcyBXZWJVUkxTY2hlbWVIYW5kbGVyOwogY2xh
c3MgV2ViVXNlckNvbnRlbnRDb250cm9sbGVyUHJveHk7CiBjbGFzcyBXZWJzaXRlRGF0YVN0b3Jl
OworCisjaWYgRU5BQkxFKEFQUF9QUklWQUNZX1JFUE9SVCkKK2VudW0gY2xhc3MgQXR0cmlidXRp
b25PdmVycmlkZVRlc3RpbmcgOiB1aW50OF90IHsKKyAgICBOb092ZXJyaWRlLAorICAgIFVzZXJJ
bml0aWF0ZWQsCisgICAgQXBwSW5pdGlhdGVkCit9OworI2VuZGlmCisKIH0KIAogbmFtZXNwYWNl
IEFQSSB7CkBAIC0xNzAsNiArMTc5LDExIEBAIHB1YmxpYzoKICAgICB2b2lkIHNldEF0dHJpYnV0
ZWRCdW5kbGVJZGVudGlmaWVyKFdURjo6U3RyaW5nJiYgaWRlbnRpZmllcikgeyBtX2F0dHJpYnV0
ZWRCdW5kbGVJZGVudGlmaWVyID0gV1RGTW92ZShpZGVudGlmaWVyKTsgfQogICAgIGNvbnN0IFdU
Rjo6U3RyaW5nJiBhdHRyaWJ1dGVkQnVuZGxlSWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1f
YXR0cmlidXRlZEJ1bmRsZUlkZW50aWZpZXI7IH0KIAorI2lmIEVOQUJMRShBUFBfUFJJVkFDWV9S
RVBPUlQpCisgICAgV2ViS2l0OjpBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZyBhcHBJbml0aWF0
ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZygpIGNvbnN0IHsgcmV0dXJuIG1fYXBwSW5pdGlhdGVk
T3ZlcnJpZGVWYWx1ZUZvclRlc3Rpbmc7IH0KKyAgICB2b2lkIHNldEFwcEluaXRpYXRlZE92ZXJy
aWRlVmFsdWVGb3JUZXN0aW5nKFdlYktpdDo6QXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcgYXBw
SW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcpIHsgbV9hcHBJbml0aWF0ZWRPdmVycmlk
ZVZhbHVlRm9yVGVzdGluZyA9IGFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOyB9
CisjZW5kaWYKKwogcHJpdmF0ZToKIAogICAgIFJlZlB0cjxXZWJLaXQ6OldlYlByb2Nlc3NQb29s
PiBtX3Byb2Nlc3NQb29sOwpAQCAtMjIxLDYgKzIzNSwxMCBAQCBwcml2YXRlOgogCiAgICAgV2Vi
Q29yZTo6U2hvdWxkUmVsYXhUaGlyZFBhcnR5Q29va2llQmxvY2tpbmcgbV9zaG91bGRSZWxheFRo
aXJkUGFydHlDb29raWVCbG9ja2luZyB7IFdlYkNvcmU6OlNob3VsZFJlbGF4VGhpcmRQYXJ0eUNv
b2tpZUJsb2NraW5nOjpObyB9OwogICAgIFdURjo6U3RyaW5nIG1fYXR0cmlidXRlZEJ1bmRsZUlk
ZW50aWZpZXI7CisKKyNpZiBFTkFCTEUoQVBQX1BSSVZBQ1lfUkVQT1JUKQorICAgIFdlYktpdDo6
QXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcgbV9hcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9y
VGVzdGluZyB7IFdlYktpdDo6QXR0cmlidXRpb25PdmVycmlkZVRlc3Rpbmc6Ok5vT3ZlcnJpZGUg
fTsKKyNlbmRpZgogfTsKIAogfSAvLyBuYW1lc3BhY2UgQVBJCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvbi5tbSBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1t
CmluZGV4IDgyNDRlMTI0MjEyNTU0YjJlYzY0Zjg0NDRmNTUzMmVmMmEzNTVmODcuLjBlYWM5MDMz
N2FmMDI5NGIwODY3MGU1ZDIxOTJmOGRmNTdhMTlmYzQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1tCisrKyBiL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uLm1t
CkBAIC04NDQsNiArODQ0LDM1IEBAIEFMTE9XX0RFUFJFQ0FURURfREVDTEFSQVRJT05TX0VORAog
ewogICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0TGltaXRzTmF2aWdhdGlvbnNUb0FwcEJvdW5k
RG9tYWlucyhsaW1pdHNUb0FwcEJvdW5kRG9tYWlucyk7CiB9CisKK3N0YXRpYyBfV0tBdHRyaWJ1
dGlvbk92ZXJyaWRlVGVzdGluZyB0b1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcoV2ViS2l0
OjpBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZyB2YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUgPT0g
V2ViS2l0OjpBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZzo6QXBwSW5pdGlhdGVkKQorICAgICAg
ICByZXR1cm4gX1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmdBcHBJbml0aWF0ZWQ7CisgICAg
aWYgKHZhbHVlID09IFdlYktpdDo6QXR0cmlidXRpb25PdmVycmlkZVRlc3Rpbmc6OlVzZXJJbml0
aWF0ZWQpCisgICAgICAgIHJldHVybiBfV0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZ1VzZXJJ
bml0aWF0ZWQ7CisgICAgcmV0dXJuIF9XS0F0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nTm9PdmVy
cmlkZTsKK30KKworc3RhdGljIFdlYktpdDo6QXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmcgdG9B
dHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZyhfV0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZyB2
YWx1ZSkKK3sKKyAgICBpZiAodmFsdWUgPT0gX1dLQXR0cmlidXRpb25PdmVycmlkZVRlc3RpbmdB
cHBJbml0aWF0ZWQpCisgICAgICAgIHJldHVybiBXZWJLaXQ6OkF0dHJpYnV0aW9uT3ZlcnJpZGVU
ZXN0aW5nOjpBcHBJbml0aWF0ZWQ7CisgICAgaWYgKHZhbHVlID09IF9XS0F0dHJpYnV0aW9uT3Zl
cnJpZGVUZXN0aW5nVXNlckluaXRpYXRlZCkKKyAgICAgICAgcmV0dXJuIFdlYktpdDo6QXR0cmli
dXRpb25PdmVycmlkZVRlc3Rpbmc6OlVzZXJJbml0aWF0ZWQ7CisgICAgcmV0dXJuIFdlYktpdDo6
QXR0cmlidXRpb25PdmVycmlkZVRlc3Rpbmc6Ok5vT3ZlcnJpZGU7Cit9CisKKy0gKHZvaWQpX3Nl
dEFwcEluaXRpYXRlZE92ZXJyaWRlVmFsdWVGb3JUZXN0aW5nOihfV0tBdHRyaWJ1dGlvbk92ZXJy
aWRlVGVzdGluZyl2YWx1ZQoreworICAgIF9wYWdlQ29uZmlndXJhdGlvbi0+c2V0QXBwSW5pdGlh
dGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcodG9BdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZyh2
YWx1ZSkpOworfQorCistIChfV0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZylfYXBwSW5pdGlh
dGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcKK3sKKyAgICByZXR1cm4gdG9XS0F0dHJpYnV0aW9u
T3ZlcnJpZGVUZXN0aW5nKF9wYWdlQ29uZmlndXJhdGlvbi0+YXBwSW5pdGlhdGVkT3ZlcnJpZGVW
YWx1ZUZvclRlc3RpbmcoKSk7Cit9CisKICNlbmRpZiAvLyBQTEFURk9STShJT1NfRkFNSUxZKQog
CiAtIChCT09MKV9pZ25vcmVzQXBwQm91bmREb21haW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L1VJUHJvY2Vzcy9BUEkvQ29jb2EvV0tXZWJWaWV3Q29uZmlndXJhdGlvblByaXZhdGUuaCBi
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9u
UHJpdmF0ZS5oCmluZGV4IGFjZjVjMDJjNzQ4ZTcxMGFhOGFiMGFhOTBiZGEzNmIzMWQ0OTM4M2Uu
LjMyNjk4ZDViOGYyOGM5MjEzNjI3N2YzOWVhMWVjNTNlMmM1OGFmNjMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdDb25maWd1cmF0aW9uUHJp
dmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9Db2NvYS9XS1dlYlZpZXdD
b25maWd1cmF0aW9uUHJpdmF0ZS5oCkBAIC0zMyw2ICszMywxMiBAQCB0eXBlZGVmIE5TX0VOVU0o
TlNVSW50ZWdlciwgX1dLRHJhZ0xpZnREZWxheSkgewogICAgIF9XS0RyYWdMaWZ0RGVsYXlMb25n
CiB9IFdLX0FQSV9BVkFJTEFCTEUoaW9zKDExLjApKTsKIAordHlwZWRlZiBOU19FTlVNKE5TVUlu
dGVnZXIsIF9XS0F0dHJpYnV0aW9uT3ZlcnJpZGVUZXN0aW5nKSB7CisgICAgX1dLQXR0cmlidXRp
b25PdmVycmlkZVRlc3RpbmdOb092ZXJyaWRlID0gMCwKKyAgICBfV0tBdHRyaWJ1dGlvbk92ZXJy
aWRlVGVzdGluZ0FwcEluaXRpYXRlZCwKKyAgICBfV0tBdHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGlu
Z1VzZXJJbml0aWF0ZWQKK30gV0tfQVBJX0FWQUlMQUJMRShpb3MoMTUuMCkpOworCiBAcHJvdG9j
b2wgX1VJQ2xpY2tJbnRlcmFjdGlvbkRyaXZpbmc7CiAjZW5kaWYKIApAQCAtOTUsNiArMTAxLDcg
QEAgdHlwZWRlZiBOU19FTlVNKE5TVUludGVnZXIsIF9XS0RyYWdMaWZ0RGVsYXkpIHsKIEBwcm9w
ZXJ0eSAobm9uYXRvbWljLCBzZXR0ZXI9X3NldFNob3VsZERlY2lkZVBvbGljeUJlZm9yZUxvYWRp
bmdRdWlja0xvb2tQcmV2aWV3OikgQk9PTCBfc2hvdWxkRGVjaWRlUG9saWN5QmVmb3JlTG9hZGlu
Z1F1aWNrTG9va1ByZXZpZXcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOwogQHByb3BlcnR5
IChub25hdG9taWMsIHNldHRlcj1fc2V0Q2FuU2hvd1doaWxlTG9ja2VkOikgQk9PTCBfY2FuU2hv
d1doaWxlTG9ja2VkIFdLX0FQSV9BVkFJTEFCTEUoaW9zKDEzLjApKTsKIEBwcm9wZXJ0eSAobm9u
YXRvbWljLCBzZXR0ZXI9X3NldENsaWNrSW50ZXJhY3Rpb25Ecml2ZXJGb3JUZXN0aW5nOikgaWQg
PF9VSUNsaWNrSW50ZXJhY3Rpb25Ecml2aW5nPiBfY2xpY2tJbnRlcmFjdGlvbkRyaXZlckZvclRl
c3RpbmcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTMuMCkpOworQHByb3BlcnR5IChub25hdG9taWMs
IHNldHRlcj1fc2V0QXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3Rpbmc6KSBfV0tBdHRy
aWJ1dGlvbk92ZXJyaWRlVGVzdGluZyBfYXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3Rp
bmcgV0tfQVBJX0FWQUlMQUJMRShpb3MoMTUuMCkpOwogI2Vsc2UKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNob3dzVVJMc0luVG9vbFRpcHM6KSBCT09MIF9zaG93c1VSTHNJblRv
b2xUaXBzIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKIEBwcm9wZXJ0eSAobm9uYXRv
bWljLCBzZXR0ZXI9X3NldFNlcnZpY2VDb250cm9sc0VuYWJsZWQ6KSBCT09MIF9zZXJ2aWNlQ29u
dHJvbHNFbmFibGVkIFdLX0FQSV9BVkFJTEFCTEUobWFjb3MoMTAuMTIpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0NvY29hL1dlYlBhZ2VQcm94eUNvY29hLm1tIGIvU291
cmNlL1dlYktpdC9VSVByb2Nlc3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KaW5kZXggOWIw
MWY0MDIyNzE1MjEwMmU0N2U2Y2MyNWRiZGIyNjFkMTc3YmY5Yi4uNmQ1ZmViMzVjMzVlYzA3NzM2
MDYyNGVkMjBlNTliYjVlNzRmMTIyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KKysrIGIvU291cmNlL1dlYktpdC9VSVByb2Nl
c3MvQ29jb2EvV2ViUGFnZVByb3h5Q29jb2EubW0KQEAgLTI3LDYgKzI3LDcgQEAKICNpbXBvcnQg
IldlYlBhZ2VQcm94eS5oIgogCiAjaW1wb3J0ICJBUElBdHRhY2htZW50LmgiCisjaW1wb3J0ICJB
UElQYWdlQ29uZmlndXJhdGlvbi5oIgogI2ltcG9ydCAiQVBJVUlDbGllbnQuaCIKICNpbXBvcnQg
IkNvY29hSW1hZ2UuaCIKICNpbXBvcnQgIkNvbm5lY3Rpb24uaCIKQEAgLTY2Myw2ICs2NjQsOSBA
QCB2b2lkIFdlYlBhZ2VQcm94eTo6c2V0TGFzdE5hdmlnYXRpb25XYXNBcHBJbml0aWF0ZWQoUmVz
b3VyY2VSZXF1ZXN0JiByZXF1ZXN0KQogewogI2lmIEVOQUJMRShBUFBfUFJJVkFDWV9SRVBPUlQp
CiAgICAgYXV0byBpc0FwcEluaXRpYXRlZCA9IHJlcXVlc3QubnNVUkxSZXF1ZXN0KFdlYkNvcmU6
OkhUVFBCb2R5VXBkYXRlUG9saWN5OjpEb05vdFVwZGF0ZUhUVFBCb2R5KS5hdHRyaWJ1dGlvbiA9
PSBOU1VSTFJlcXVlc3RBdHRyaWJ1dGlvbkRldmVsb3BlcjsKKyAgICBpZiAobV9jb25maWd1cmF0
aW9uLT5hcHBJbml0aWF0ZWRPdmVycmlkZVZhbHVlRm9yVGVzdGluZygpICE9IEF0dHJpYnV0aW9u
T3ZlcnJpZGVUZXN0aW5nOjpOb092ZXJyaWRlKQorICAgICAgICBpc0FwcEluaXRpYXRlZCA9IG1f
Y29uZmlndXJhdGlvbi0+YXBwSW5pdGlhdGVkT3ZlcnJpZGVWYWx1ZUZvclRlc3RpbmcoKSA9PSBB
dHRyaWJ1dGlvbk92ZXJyaWRlVGVzdGluZzo6QXBwSW5pdGlhdGVkOworCiAgICAgcmVxdWVzdC5z
ZXRJc0FwcEluaXRpYXRlZChpc0FwcEluaXRpYXRlZCk7CiAgICAgbV9sYXN0TmF2aWdhdGlvbldh
c0FwcEluaXRpYXRlZCA9IGlzQXBwSW5pdGlhdGVkOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Ub29s
cy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggOGRjMzdiZTA2ZDBhZTI3ZGUxMjg1
NmE3NTUyYmNmODk1MWVkOTg0ZS4uOWEzYzYyYWQ1M2Q3ZTk3M2ZlMmM2OGMyMTA5MjkzMjcyNTZi
NmI1MiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpA
QCAtMSwzICsxLDIyIEBACisyMDIxLTA3LTEyICBLYXRlIENoZW5leSAgPGthdGhlcmluZV9jaGVu
ZXlAYXBwbGUuY29tPgorCisgICAgICAgIEFsbG93IGxheW91dCB0ZXN0cyB0byBzcGVjaWZ5IGFw
cCBpbml0aWF0ZWQgbG9hZHMgb3Igbm90CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD0yMjc4MjUKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzgwMzU1NTgy
PgorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAgICAgICAgQWRkIGEg
dGVzdCBvcHRpb24gdGhhdCBzcGVjaWZpZXMgd2hldGhlciB0aGUgdGVzdCBzaG91bGQgbWFyayB0
aGUKKyAgICAgICAgbWFpbiBwYWdlIG5hdmlnYXRpb24gYXMgYXBwLWluaXRpYXRlZCBvciBub3Qu
CisKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmNwcDoKKyAgICAgICAg
KFdUUjo6VGVzdE9wdGlvbnM6OmRlZmF1bHRzKToKKyAgICAgICAgKFdUUjo6VGVzdE9wdGlvbnM6
OmtleVR5cGVNYXBwaW5nKToKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25z
Lmg6CisgICAgICAgIChXVFI6OlRlc3RPcHRpb25zOjppc0FwcEluaXRpYXRlZCBjb25zdCk6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJvbGxlckNvY29hLm1tOgor
ICAgICAgICAoV1RSOjpUZXN0Q29udHJvbGxlcjo6cGxhdGZvcm1DcmVhdGVXZWJWaWV3KToKKwog
MjAyMS0wNy0xMiAgV2Vuc29uIEhzaWVoICA8d2Vuc29uX2hzaWVoQGFwcGxlLmNvbT4KIAogICAg
ICAgICBbd2F0Y2hPU10gTWFrZSBhIGZldyBhZGRpdGlvbmFsIGFkanVzdG1lbnRzIHRvIHN1cHBv
cnQgc3lzdGVtIG1pbmltdW0gbGF5b3V0IG1hcmdpbnMKZGlmZiAtLWdpdCBhL1Rvb2xzL1dlYktp
dFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuY3BwIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0
T3B0aW9ucy5jcHAKaW5kZXggOTI2OWZhMzVmZThjNzhhZDg1YzU3N2VhYjlkNzRiZGY2YmUzMzU1
My4uMjEyNmYzY2I5Njc1MGU5MjA2ODJmOTgwNTk3ODdjOTE0ZGQzMWZiNyAxMDA2NDQKLS0tIGEv
VG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKKysrIGIvVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9UZXN0T3B0aW9ucy5jcHAKQEAgLTE0Myw2ICsxNDMsNyBAQCBjb25zdCBUZXN0
RmVhdHVyZXMmIFRlc3RPcHRpb25zOjpkZWZhdWx0cygpCiAgICAgICAgICAgICB7ICJpZ25vcmVT
eW5jaHJvbm91c01lc3NhZ2luZ1RpbWVvdXRzIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgImln
bm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIiwgZmFsc2UgfSwKICAgICAgICAgICAgIHsgImlzQXBw
Qm91bmRXZWJWaWV3IiwgZmFsc2UgfSwKKyAgICAgICAgICAgIHsgImlzQXBwSW5pdGlhdGVkIiwg
dHJ1ZSB9LAogICAgICAgICAgICAgeyAicnVuU2luZ2x5IiwgZmFsc2UgfSwKICAgICAgICAgICAg
IHsgInNob3VsZEhhbmRsZVJ1bk9wZW5QYW5lbCIsIHRydWUgfSwKICAgICAgICAgICAgIHsgInNo
b3VsZFByZXNlbnRQb3BvdmVycyIsIHRydWUgfSwKQEAgLTE5Niw2ICsxOTcsNyBAQCBjb25zdCBz
dGQ6OnVub3JkZXJlZF9tYXA8c3RkOjpzdHJpbmcsIFRlc3RIZWFkZXJLZXlUeXBlPiYgVGVzdE9w
dGlvbnM6OmtleVR5cGVNYQogICAgICAgICB7ICJpZ25vcmVTeW5jaHJvbm91c01lc3NhZ2luZ1Rp
bWVvdXRzIiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xUZXN0UnVubmVyIH0sCiAgICAgICAgIHsg
Imlnbm9yZXNWaWV3cG9ydFNjYWxlTGltaXRzIiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xUZXN0
UnVubmVyIH0sCiAgICAgICAgIHsgImlzQXBwQm91bmRXZWJWaWV3IiwgVGVzdEhlYWRlcktleVR5
cGU6OkJvb2xUZXN0UnVubmVyIH0sCisgICAgICAgIHsgImlzQXBwSW5pdGlhdGVkIiwgVGVzdEhl
YWRlcktleVR5cGU6OkJvb2xUZXN0UnVubmVyIH0sCiAgICAgICAgIHsgInJ1blNpbmdseSIsIFRl
c3RIZWFkZXJLZXlUeXBlOjpCb29sVGVzdFJ1bm5lciB9LAogICAgICAgICB7ICJzaG91bGRIYW5k
bGVSdW5PcGVuUGFuZWwiLCBUZXN0SGVhZGVyS2V5VHlwZTo6Qm9vbFRlc3RSdW5uZXIgfSwKICAg
ICAgICAgeyAic2hvdWxkUHJlc2VudFBvcG92ZXJzIiwgVGVzdEhlYWRlcktleVR5cGU6OkJvb2xU
ZXN0UnVubmVyIH0sCmRpZmYgLS1naXQgYS9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRp
b25zLmggYi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL1Rlc3RPcHRpb25zLmgKaW5kZXggYjc5ZjA0
NjE4NmNhM2JmY2YxYjc1YTExNjE1ZmM0MThlMTZmZWMyOC4uNTBkMGFkODgzMjQwYTZiZmI3ZTU3
ZjgyMjM5MzkzYTIzN2FkZjQ2MyAxMDA2NDQKLS0tIGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9U
ZXN0T3B0aW9ucy5oCisrKyBiL1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvVGVzdE9wdGlvbnMuaApA
QCAtNTksNiArNTksNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpZ25vcmVTeW5jaHJvbm91c01lc3Nh
Z2luZ1RpbWVvdXRzKCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJlVmFsdWUo
Imlnbm9yZVN5bmNocm9ub3VzTWVzc2FnaW5nVGltZW91dHMiKTsgfQogICAgIGJvb2wgaWdub3Jl
c1ZpZXdwb3J0U2NhbGVMaW1pdHMoKSBjb25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1
cmVWYWx1ZSgiaWdub3Jlc1ZpZXdwb3J0U2NhbGVMaW1pdHMiKTsgfQogICAgIGJvb2wgaXNBcHBC
b3VuZFdlYlZpZXcoKSBjb25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgi
aXNBcHBCb3VuZFdlYlZpZXciKTsgfQorICAgIGJvb2wgaXNBcHBJbml0aWF0ZWQoKSBjb25zdCB7
IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgiaXNBcHBJbml0aWF0ZWQiKTsgfQog
ICAgIGJvb2wgcnVuU2luZ2x5KCkgY29uc3QgeyByZXR1cm4gYm9vbFRlc3RSdW5uZXJGZWF0dXJl
VmFsdWUoInJ1blNpbmdseSIpOyB9CiAgICAgYm9vbCBzaG91bGRIYW5kbGVSdW5PcGVuUGFuZWwo
KSBjb25zdCB7IHJldHVybiBib29sVGVzdFJ1bm5lckZlYXR1cmVWYWx1ZSgic2hvdWxkSGFuZGxl
UnVuT3BlblBhbmVsIik7IH0KICAgICBib29sIHNob3VsZFByZXNlbnRQb3BvdmVycygpIGNvbnN0
IHsgcmV0dXJuIGJvb2xUZXN0UnVubmVyRmVhdHVyZVZhbHVlKCJzaG91bGRQcmVzZW50UG9wb3Zl
cnMiKTsgfQpkaWZmIC0tZ2l0IGEvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29u
dHJvbGxlckNvY29hLm1tIGIvVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9jb2NvYS9UZXN0Q29udHJv
bGxlckNvY29hLm1tCmluZGV4IDk4Y2NiNGRiOWFiMDhiYWIyOTMzMGFiNGNiYTJlMjQ1ZTk5NDRm
N2QuLjFkODVkMmFkZmUwMTI1NWUzOTJkYTg3MzY2YmFjZmQ4Njk0YzE1NjAgMTAwNjQ0Ci0tLSBh
L1Rvb2xzL1dlYktpdFRlc3RSdW5uZXIvY29jb2EvVGVzdENvbnRyb2xsZXJDb2NvYS5tbQorKysg
Yi9Ub29scy9XZWJLaXRUZXN0UnVubmVyL2NvY29hL1Rlc3RDb250cm9sbGVyQ29jb2EubW0KQEAg
LTE2OSw2ICsxNjksOCBAQCB2b2lkIFRlc3RDb250cm9sbGVyOjpwbGF0Zm9ybUNyZWF0ZVdlYlZp
ZXcoV0tQYWdlQ29uZmlndXJhdGlvblJlZiwgY29uc3QgVGVzdE9wdAogICAgICAgICBbY29waWVk
Q29uZmlndXJhdGlvbiBzZXRTZWxlY3Rpb25HcmFudWxhcml0eTpXS1NlbGVjdGlvbkdyYW51bGFy
aXR5Q2hhcmFjdGVyXTsKICAgICBpZiAob3B0aW9ucy5pc0FwcEJvdW5kV2ViVmlldygpKQogICAg
ICAgICBbY29waWVkQ29uZmlndXJhdGlvbiBzZXRMaW1pdHNOYXZpZ2F0aW9uc1RvQXBwQm91bmRE
b21haW5zOllFU107CisKKyAgICBbY29waWVkQ29uZmlndXJhdGlvbiBfc2V0QXBwSW5pdGlhdGVk
T3ZlcnJpZGVWYWx1ZUZvclRlc3Rpbmc6b3B0aW9ucy5pc0FwcEluaXRpYXRlZCgpID8gX1dLQXR0
cmlidXRpb25PdmVycmlkZVRlc3RpbmdBcHBJbml0aWF0ZWQgOiBfV0tBdHRyaWJ1dGlvbk92ZXJy
aWRlVGVzdGluZ1VzZXJJbml0aWF0ZWRdOwogI2VuZGlmCiAKICAgICBpZiAob3B0aW9ucy5lbmFi
bGVBdHRhY2htZW50RWxlbWVudCgpKQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IGMyY2M5MTcyM2U0NWU3NGVhMWUzY2E2NTQw
M2U3YTYxMDMzNDk3ZGIuLjk3NTMwYWU4OWNkODBmMGI1NGFmOTk2NjU1NDdkMzE2NDdlYmJiMTQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSw0MSBAQAorMjAyMS0wNy0xMiAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJp
bmVfY2hlbmV5QGFwcGxlLmNvbT4KKworICAgICAgICBBbGxvdyBsYXlvdXQgdGVzdHMgdG8gc3Bl
Y2lmeSBhcHAgaW5pdGlhdGVkIGxvYWRzIG9yIG5vdAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjI3ODI1CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS84
MDM1NTU4Mj4KKworICAgICAgICBSZXZpZXdlZCBieSBCcmVudCBGdWxnaGFtLgorCisgICAgICAg
IEFkZGVkIG5ldyB0ZXN0cyB0byBjb3ZlciB0aGUgdXNlciBpbml0aWF0ZWQgY2FzZS4KKworICAg
ICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1sb2Fk
LXVybC1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQuCisgICAg
ICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQt
dXJsLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2F0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQ6
IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0
dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sOiBDb3BpZWQg
ZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlv
bi1waW5nLWxvYWQuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC9hcHAtYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dDogUmVuYW1lZCBmcm9t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBv
c3QtcmVxdWVzdC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sOiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wb3N0
LXJlcXVlc3QuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9h
cHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJl
ZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWw6IENvcGllZCBm
cm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9u
LXByZWZsaWdodC1hc3luYy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQ6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0
aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2Fw
cC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmli
dXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2
YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVj
dGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4dC4K
KyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24t
c3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFs
aWRhdGlvbi5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jl
c291cmNlcy9hcHAtaW5pdGlhdGVkLXBvc3QucHk6IENvcGllZCBmcm9tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy9wb3N0LnB5LgorICAgICAgICAq
IGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNlcy91c2VyLWluaXRpYXRlZC1w
b3N0LnB5OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvcmVzb3VyY2VzL3Bvc3QucHkuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24t
bG9hZC11cmwuaHRtbDogUmVuYW1lZCBmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXBy
aXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwuCisgICAgICAgICogaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0
ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvYXR0cmlidXRpb24tcGluZy1sb2FkLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1s
OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
YXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0OiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJp
YnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0Lmh0bWwuCisg
ICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1w
cmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0OiBSZW5hbWVkIGZyb20gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4
cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2Vy
LWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sOiBSZW5hbWVkIGZyb20gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFz
eW5jLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1h
dHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQ6IFJlbmFtZWQgZnJvbSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGln
aHQtc3luYy1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sOiBSZW5hbWVkIGZyb20g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJl
ZmxpZ2h0LXN5bmMuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQ6
IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9h
dHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0LgorICAgICAg
ICAqIGh0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tc3BlY3Vs
YXRpdmUtcmV2YWxpZGF0aW9uLmh0bWw6IFJlbmFtZWQgZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRp
b24uaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL25hdmlnYXRpb24vcmVzb3VyY2VzL2NoZWNr
LXBpbmctdXNlci1pbml0aWF0ZWQtZGF0YS5weTogQWRkZWQuCisKIDIwMjEtMDctMTIgIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgW3dhdGNoT1NdIE1h
a2UgYSBmZXcgYWRkaXRpb25hbCBhZGp1c3RtZW50cyB0byBzdXBwb3J0IHN5c3RlbSBtaW5pbXVt
IGxheW91dCBtYXJnaW5zCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxv
YWQtdXJsLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hMDAyNDgwNDUxNTk5ZmI0MDhlZDAwZjQ4
YmZkNjcyOGYyNmQ2ZGY2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKK1Rlc3QgbG9hZFVSTCByZXF1ZXN0cyBhcmUgc3VjY2VzZnVsbHkg
YXR0cmlidXRlZCBhcyBhcHAgaW5pdGlhdGVkLgorUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9u
bHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlv
bi1sb2FkLXVybC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA4YzM3NTI4NmMzZmI3MzE1YzgwYmEwZTkyYmYx
YWIzYWRjYjZhOGMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2Fw
cC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbApAQCAtMCwwICsx
LDQ4IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5p
dGlhdGVkPXRydWUgXSAtLT4KKzxodG1sPgorPGhlYWQ+CisgICAgPHNjcmlwdCBzcmM9InJlc291
cmNlcy91dGlsLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5IG9ubG9hZD0ic2V0VGltZW91
dCgncnVuVGVzdCgpJywgMCkiPgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPlRlc3QgbG9hZFVSTCBy
ZXF1ZXN0cyBhcmUgc3VjY2VzZnVsbHkgYXR0cmlidXRlZCBhcyBhcHAgaW5pdGlhdGVkLjwvZGl2
PgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikgeworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAg
dGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9hZFVSTCgp
IHsKKyAgICAgICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsg
Ii9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwiOworICAg
IH0KKworICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKSB7CisgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
bWVzc2FnZSArICdcbicpKTsKKyAgICB9CisKKyAgICBjb25zdCBkZXN0aW5hdGlvbk9yaWdpbiA9
ICJodHRwOi8vbG9jYWxob3N0OjgwMDAiOworICAgIGNvbnN0IHN0YXJ0aW5nT3JpZ2luID0gImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCI7CisgICAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKKyAgICAgICAg
aWYgKGRvY3VtZW50LmxvY2F0aW9uLm9yaWdpbiA9PT0gc3RhcnRpbmdPcmlnaW4pIHsKKyAgICAg
ICAgICAgIGxvYWRVUkwoKTsKKyAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgIHZhciBkaWRM
b2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJl
cXVlc3QoKTsKKyAgICAgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9
IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKworICAgICAgICAg
ICAgaWYgKGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICAgICAg
bG9nKCJGQUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAg
ICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAg
ICAgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgICAg
IGxvZygiRkFJTCBkaWQgbm90IGxvYWQgYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgICAgICB9CisKKyAgICAg
ICAgICAgIGxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCBy
ZXF1ZXN0cyIpOworICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAg
IH0KKyAgICB9Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5n
LWxvYWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NjU2MjczOTBmYzBkNWZjMjBkZTlmMzM4YjVhNmJmYWQ1Zjg4ZDZlNAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1
dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsOCBAQAorQ09OU09MRSBNRVNT
QUdFOiBQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3Rz
CitQaW5nIHNlbnQgc3VjY2Vzc2Z1bGx5CitDT05URU5UX1RZUEU6IHRleHQvcGluZworSFRUUF9I
T1NUOiAxMjcuMC4wLjE6ODAwMAorSFRUUF9QSU5HX0ZST006IGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MC9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sCitIVFRQ
X1BJTkdfVE86IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVj
ay1waW5nLWFwcC1pbml0aWF0ZWQtZGF0YS5weQorUkVRVUVTVF9NRVRIT0Q6IFBPU1QKK1JFUVVF
U1RfVVJJOiAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvc2F2ZS1waW5nLnB5CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24t
cGluZy1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC9hcHAtYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjExYWJmODM5YmRm
ZTE2N2EyNDBlZWRiNDZkNTgxODI2OGRmNTM1YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1waW5nLWxv
YWQuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0
LXJ1bm5lciBbIGlzQXBwSW5pdGlhdGVkPXRydWUgXSAtLT4KKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9uYXZpZ2F0aW9uL3BpbmctYXR0cmlidXRlL3Jl
c291cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVz
dFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJyZXIo
ZmFsc2UsIGZ1bmN0aW9uICgpIHsgfSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldEh5cGVy
bGlua0F1ZGl0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgY2xpY2tFbGVtZW50KGRvY3VtZW50LnF1
ZXJ5U2VsZWN0b3IoImltZyIpKTsKK30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpCit7
CisgICAgY2xlYXJMYXN0UGluZ1Jlc3VsdEFuZFJ1blRlc3QodGVzdCk7Cit9Cis8L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDxpbWcgc3JjPSJub24tZXhpc3RlbnQtaW1hZ2UuanBnIiB3
aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdXNlbWFwPSIjaW1hZ2VtYXAiPgorICAgIDxtYXAgbmFt
ZT0iaW1hZ2VtYXAiPgorICAgICAgICA8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRzPSIwLDAsMTI4
LDEyOCIgaHJlZj0iLi4vbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy1hcHAtaW5pdGlh
dGVkLWRhdGEucHkiIHBpbmc9Ii4uL25hdmlnYXRpb24vcmVzb3VyY2VzL3NhdmUtcGluZy5weSI+
CisgICAgPC9tYXA+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmUy
NDVlMzQwZjE3ZGU4ZTRmM2UzNTljYzFiOWY0MTQ3NjZkZWNmMWMKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRp
b24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAKK0NPTlNPTEUgTUVT
U0FHRTogUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCByZXF1ZXN0
cworVGVzdHMgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2VkIGZvciBQT1NUIHJlcXVl
c3RzLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3Qu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi5mZDY5Y2M2ZDhkOWQ3NGM2NmY3NzdmZTliNjJkNjAxMTM3MmZkZjBk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sCkBAIC0wLDAgKzEsMjIgQEAK
KzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9
dHJ1ZSBdIC0tPgorPGh0bWw+Cis8aGVhZD4KKzxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxzY3Jp
cHQgc3JjPSIuLi8uLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9o
ZWFkPgorPGJvZHk+Cis8cD5UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQg
Zm9yIFBPU1QgcmVxdWVzdHMuPC9wPgorPGZvcm0gaWQ9InRlc3RGb3JtIiBhY3Rpb249InJlc291
cmNlcy9hcHAtaW5pdGlhdGVkLXBvc3QucHkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vcmVmZXJy
ZXIiIG1ldGhvZD0icG9zdCI+Cis8aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVGVzdCI+PC9p
bnB1dD4KKzxmb3JtPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRv
d3ModHJ1ZSk7Cit9CisKK2RvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOworCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJp
YnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uOWI1ZWVhOTQy
MmFkMGNhZWU3NjY3YmNkNDA2ZGI5M2UwYTVlOWUyZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1wcmVm
bGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdF
OiBQcmVmbGlnaHQgcmVzcG9uc2UgaXMgbm90IHN1Y2Nlc3NmdWwKK0NPTlNPTEUgTUVTU0FHRTog
WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHBy
ZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSBkdWUgdG8gYWNjZXNz
IGNvbnRyb2wgY2hlY2tzLgorVGVzdHMgYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQgbWFya2Vk
IGZvciBhc3luYyBwcmVmbGlnaHRzCisKK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFw
cCBpbml0aWF0ZWQgcmVxdWVzdHMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1s
IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0
aW9uLXByZWZsaWdodC1hc3luYy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIwZmRlYzhhYzljZThlYmQzODE3
NmUzMGRhZThjNDU5ZjBlMzlhNGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5j
Lmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1y
dW5uZXIgWyBpc0FwcEluaXRpYXRlZD10cnVlIF0gLS0+Cis8cD5UZXN0cyBhcHAgaW5pdGlhdGVk
IHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIGFzeW5jIHByZWZsaWdodHM8L3A+CisKKzxwcmUgaWQ9
ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KK2lmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAg
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgp
OworfQorCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3Nh
Z2UgKyAnXG4nKSk7Cit9CisKK3ZhciBwcmVmbGlnaHRMaW5rRG9tYWluID0gImxvY2FsaG9zdCI7
Cit2YXIgY29udGV4dEhvc3QgPSAiMTI3LjAuMC4xIjsKK3ZhciB1cmwgPSAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9k
eS5weSIKKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOworICAgIHJlcS5zZXRS
ZXF1ZXN0SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKKworICAgIHJlcS5vbmVycm9yID0gZnVu
Y3Rpb24oKSB7CisgICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RS
dW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWRO
b25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVk
UmVxdWVzdCgpOworCisgICAgICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkg
eworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVl
c3QiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisK
KyAgICAgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAg
bG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQ
QVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7Cisg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KKyAgICByZXEuc2VuZChudWxs
KTsKK30KKworcnVuVGVzdCgpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5
bmMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li40MDE2YzUzMWUwNjU5YWRjZGQ2MzU1NTIzZWExYjBhZDJkNWEyYjFjCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJp
YnV0aW9uLXByZWZsaWdodC1zeW5jLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDcgQEAKK0NPTlNP
TEUgTUVTU0FHRTogUHJlZmxpZ2h0IHJlc3BvbnNlIGlzIG5vdCBzdWNjZXNzZnVsCitDT05TT0xF
IE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkgZHVl
IHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK1Rlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMg
Z2V0IG1hcmtlZCBmb3Igc3luYyBwcmVmbGlnaHRzCisKK1BBU1M6IE5ldHdvcmtFcnJvcjogIEEg
bmV0d29yayBlcnJvciBvY2N1cnJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFw
cCBpbml0aWF0ZWQgcmVxdWVzdHMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRp
b24tcHJlZmxpZ2h0LXN5bmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2Q2MTY4YjIyN2NhNWRhOGI1NDZm
ZTZhYWRhNjg4OGEyZmJiZmY1Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5jLmh0
bWwKQEAgLTAsMCArMSw1MCBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5u
ZXIgWyBpc0FwcEluaXRpYXRlZD10cnVlIF0gLS0+Cis8cD5UZXN0cyBhcHAgaW5pdGlhdGVkIHJl
cXVlc3RzIGdldCBtYXJrZWQgZm9yIHN5bmMgcHJlZmxpZ2h0czwvcD4KKworPHByZSBpZD0iY29u
c29sZSI+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit9
CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSAr
ICdcbicpKTsKK30KKwordmFyIHByZWZsaWdodExpbmtEb21haW4gPSAibG9jYWxob3N0IjsKK3Zh
ciBjb250ZXh0SG9zdCA9ICIxMjcuMC4wLjEiOwordmFyIHVybCA9ICJodHRwOi8vbG9jYWxob3N0
OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1ib2R5LnB5
IgorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7CisgICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOworICAgIHJlcS5zZXRSZXF1
ZXN0SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKKworICAgIHRyeSB7CisgICAgICAgIHJlcS5z
ZW5kKG51bGwpOworICAgICAgICBsb2coIlBBU1M6ICIgKyByZXEucmVzcG9uc2VUZXh0KTsKKyAg
ICB9IGNhdGNoIChleCkgeworICAgICAgICBsb2coIlBBU1M6ICIgKyBleCk7CisgICAgICAgIHZh
ciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRp
YXRlZFJlcXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0
ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAg
IGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJG
QUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2Fk
QXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9h
ZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2Fk
ZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7CisgICAgICAgIHRlc3RSdW5uZXIubm90
aWZ5RG9uZSgpOworICAgIH0KK30KKworcnVuVGVzdCgpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRp
b24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2FwcC1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1y
ZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIyMWMyZDU5OTQxNDRlODEwZTE1
NzdlZmZiY2QwOWNlMDZkZjNkZGQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2
YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE0IEBACisxMjcuMC4wLjE6ODAwMCAt
IGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAtIFByb3RlY3Rpb25TcGFjZUF1dGhl
bnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljIC0gUmVzcG9uZGluZyB3aXRoIHRlc3RVc2VybmFtZTp0
ZXN0UGFzc3dvcmQKKzEyNy4wLjAuMTo4MDAwIC0gZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hh
bGxlbmdlIC0gUHJvdGVjdGlvblNwYWNlQXV0aGVudGljYXRpb25TY2hlbWVIVFRQQmFzaWMgLSBT
aW11bGF0aW5nIGNhbmNlbGxlZCBhdXRoZW50aWNhdGlvbiBzaGVldAorVGVzdHMgc3BlY3VsYXRp
dmUgcmV2YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0ZWQgcmVzb3VyY2VzLgorCitPbiBzdWNjZXNz
LCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBmb2xsb3dlZCBieSAi
VEVTVCBDT01QTEVURSIuCisKKworUEFTUyB4aHIuc3RhdHVzIGlzIDQwMQorUEFTUyBTdWNjZXNz
ZnVseSBsb2FkZWQuCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVk
IHJlcXVlc3RzCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExF
VEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXBwLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXBwLWF0dHJpYnV0aW9uLXNwZWN1
bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjA0MWY1ZDZkMTQ2MDhhN2YwM2Nl
ZjY2MGMzOTczYTVhMDNlMjA5NDkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hcHAtYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2
YWxpZGF0aW9uLmh0bWwKQEAgLTAsMCArMSw3MyBAQAorPCFET0NUWVBFIGh0bWw+PCEtLSB3ZWJr
aXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD10cnVlIF0gLS0+Cis8c2NyaXB0IHNyYz0i
L2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+Citk
ZXNjcmlwdGlvbigiVGVzdHMgc3BlY3VsYXRpdmUgcmV2YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0
ZWQgcmVzb3VyY2VzLiIpOworanNUZXN0SXNBc3luYyA9IHRydWU7CisKK3Rlc3RSdW5uZXIuc2V0
SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyh0cnVlKTsKK3Rlc3RSdW5uZXIuc2V0QXV0
aGVudGljYXRpb25Vc2VybmFtZSgidGVzdFVzZXJuYW1lIik7Cit0ZXN0UnVubmVyLnNldEF1dGhl
bnRpY2F0aW9uUGFzc3dvcmQoInRlc3RQYXNzd29yZCIpOworCitzdGF0ZSA9ICJ3YXJtdXAiOwor
CitmdW5jdGlvbiBjbGVhckNyZWRlbnRpYWxTdG9yYWdlKCkKK3sKKyAgICB4aHIgPSBuZXcgWE1M
SHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3BlbigiR0VUIiwgInJlc291cmNlcy9yZXNvdXJjZS13
aXRoLWF1dGgucHk/b3RoZXIiLCBmYWxzZSwgImJhZFVzZXJuYW1lIiwgImJhZFBhc3N3b3JkIik7
CisgICAgeGhyLnNlbmQoKTsKKyAgICBzaG91bGRCZSgieGhyLnN0YXR1cyIsICI0MDEiKTsKK30K
KworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsg
J1xuJykpOworfQorCitmdW5jdGlvbiBmcmFtZUxvYWRlZCgpCit7CisgICAgaWYgKHN0YXRlID09
ICJ3YXJtdXAiKSB7CisgICAgICAgIC8vIE5hdmlnYXRlIGZyYW1lIHRvICdhYm91dDpibGFuaycg
dG8gZmx1c2ggdG8gc3VicmVzb3VyY2UgbG9hZHMgbWV0YWRhdGEgdG8gZGlzay4KKyAgICAgICAg
c3RhdGUgPSAiZmx1c2hpbmdNZXRhZGF0YSI7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0SGFuZGxl
c0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhmYWxzZSk7CisgICAgICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKS5zcmMgPSAiYWJvdXQ6YmxhbmsiOworICAgICAgICByZXR1
cm47CisgICAgfQorICAgIGlmIChzdGF0ZSA9PSAiZmx1c2hpbmdNZXRhZGF0YSIpIHsKKyAgICAg
ICAgY2xlYXJDcmVkZW50aWFsU3RvcmFnZSgpOworCisgICAgICAgIGludGVybmFscy5jbGVhck1l
bW9yeUNhY2hlKCk7CisgICAgICAgIHRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlcyhmYWxzZSk7CisKKyAgICAgICAgLy8gTmF2aWdhdGUgZnJhbWUgdG8gaXRzIG9y
aWdpbmFsIGxvY2F0aW9uIGFnYWluLiBUaGlzIHRpbWUgaXQgc2hvdWxkIHNwZWN1bGF0aXZlbHkK
KyAgICAgICAgLy8gdmFsaWRhdGUgc3VicmVzb3VyY2VzIGFzIHdlIGhhdmUgc3VicmVzb3VyY2Ug
bG9hZHMgbWV0YWRhdGEgaW4gdGhlIGRpc2sgY2FjaGUuCisgICAgICAgIHN0YXRlID0gInNwZWN1
bGF0aXZlUmV2YWxpZGF0aW9uIjsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRl
c3RGcmFtZSIpLnNyYyA9ICJyZXNvdXJjZXMvZnJhbWUtd2l0aC1hdXRoZW50aWNhdGVkLXJlc291
cmNlLnB5IjsKKyAgICAgICAgcmV0dXJuOworICAgIH0KKyAgICBpZiAoc3RhdGUgPT0gInNwZWN1
bGF0aXZlUmV2YWxpZGF0aW9uIikgeworICAgICAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzZnVseSBs
b2FkZWQuIik7CisgICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RS
dW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWRO
b25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVk
UmVxdWVzdCgpOworCisgICAgICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkg
eworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVl
c3QiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOwor
ICAgICAgICB9CisKKyAgICAgICAgaWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgewor
ICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3Qi
KTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICAgICAgcmV0dXJuOworICAg
ICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAg
aW5pdGlhdGVkIHJlcXVlc3RzIik7CisKKyAgICAgICAgZmluaXNoSlNUZXN0KCk7CisgICAgICAg
IHJldHVybjsKKyAgICB9Cit9CisKKzwvc2NyaXB0PgorPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBz
cmM9InJlc291cmNlcy9mcmFtZS13aXRoLWF1dGhlbnRpY2F0ZWQtcmVzb3VyY2UucHkiIG9ubG9h
ZD0iZnJhbWVMb2FkZWQoKSI+PC9pZnJhbWU+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3Vy
Y2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1
dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IGEwMDI0ODA0NTE1OTlmYjQwOGVkMDBmNDhiZmQ2NzI4ZjI2ZDZkZjYuLjAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9h
cHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0CisrKyAv
ZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi1UZXN0IGxvYWRVUkwgcmVxdWVzdHMgYXJlIHN1Y2Nl
c2Z1bGx5IGF0dHJpYnV0ZWQgYXMgYXBwIGluaXRpYXRlZC4KLVBBU1Mgc3VjY2Vzc2Z1bGx5IGxv
YWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKLQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwuaHRt
bCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9u
LWxvYWQtdXJsLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQ3YWQ4ZWU1Yzg3
Y2MyZDE4NWVkNzk3ZjViZWYwN2FkNjk0ZThjMDQuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvYXR0cmlidXRpb24tbG9hZC11cmwuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDQ4ICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLSAgICA8c2NyaXB0IHNyYz0i
cmVzb3VyY2VzL3V0aWwuanMiPjwvc2NyaXB0PgotPC9oZWFkPgotPGJvZHkgb25sb2FkPSJzZXRU
aW1lb3V0KCdydW5UZXN0KCknLCAwKSI+Ci08ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdCBsb2Fk
VVJMIHJlcXVlc3RzIGFyZSBzdWNjZXNmdWxseSBhdHRyaWJ1dGVkIGFzIGFwcCBpbml0aWF0ZWQu
PC9kaXY+Ci08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci0gICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKSB7Ci0gICAgICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAg
ICAgICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiBsb2Fk
VVJMKCkgewotICAgICAgICBkb2N1bWVudC5sb2NhdGlvbi5ocmVmID0gZGVzdGluYXRpb25Pcmln
aW4gKyAiL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sIjsKLSAg
ICB9Ci0KLSAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgewotICAgICAgICBkb2N1bWVudC5nZXRF
bGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2Rl
KG1lc3NhZ2UgKyAnXG4nKSk7Ci0gICAgfQotCi0gICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4g
PSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwIjsKLSAgICBjb25zdCBzdGFydGluZ09yaWdpbiA9ICJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiOwotICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7Ci0gICAgICAg
IGlmIChkb2N1bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHN0YXJ0aW5nT3JpZ2luKSB7Ci0gICAg
ICAgICAgICBsb2FkVVJMKCk7Ci0gICAgICAgIH0gZWxzZSB7Ci0gICAgICAgICAgICB2YXIgZGlk
TG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRS
ZXF1ZXN0KCk7Ci0gICAgICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3Qg
PSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7Ci0KLSAgICAgICAg
ICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgICAg
IGxvZygiRkFJTCBkaWQgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7Ci0gICAgICAg
ICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgICAgICB9Ci0KLSAgICAg
ICAgICAgIGlmICghZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKLSAgICAgICAgICAgICAg
ICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOwotICAgICAg
ICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICAgICAgfQotCi0gICAg
ICAgICAgICBsb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQg
cmVxdWVzdHMiKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAg
ICB9Ci0gICAgfQotPC9zY3JpcHQ+Ci08L2JvZHk+Ci08L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxv
YWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXR0cmlidXRpb24tcGluZy1sb2FkLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMGQ2MTdlZTkwMGE0OTAyYjk3YTRiZWQ2YTM5ZTk2NTY2Y2U0NTU5Zi4uMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsOCArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFBB
U1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKLVBpbmcg
c2VudCBzdWNjZXNzZnVsbHkKLUNPTlRFTlRfVFlQRTogdGV4dC9waW5nCi1IVFRQX0hPU1Q6IDEy
Ny4wLjAuMTo4MDAwCi1IVFRQX1BJTkdfRlJPTTogaHR0cDovLzEyNy4wLjAuMTo4MDAwL2FwcC1w
cml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbAotSFRUUF9QSU5HX1RPOiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy1hcHAt
aW5pdGlhdGVkLWRhdGEucHkKLVJFUVVFU1RfTUVUSE9EOiBQT1NUCi1SRVFVRVNUX1VSSTogL25h
dmlnYXRpb24vcmVzb3VyY2VzL3NhdmUtcGluZy5weQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcGluZy1sb2FkLmh0bWwg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1w
aW5nLWxvYWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMTEwMGNhZTJjNjJj
ZGFiZGFhNGUxMGVjMzlmOWM5MGE4OWViZTk5NS4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbAorKysgL2Rldi9udWxsCkBAIC0xLDMwICsw
LDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08aGVhZD4KLTxzY3JpcHQgc3JjPSIuLi9u
YXZpZ2F0aW9uL3BpbmctYXR0cmlidXRlL3Jlc291cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0
PgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7
Ci0gICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0
aWNzU2hvdWxkRG93bmdyYWRlUmVmZXJyZXIoZmFsc2UsIGZ1bmN0aW9uICgpIHsgfSk7Ci0gICAg
aW50ZXJuYWxzLnNldHRpbmdzLnNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCh0cnVlKTsKLSAg
ICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLX0KLQotZnVuY3Rpb24gdGVzdCgpCi17Ci0g
ICAgY2xpY2tFbGVtZW50KGRvY3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpKTsKLX0KLQotd2lu
ZG93Lm9ubG9hZCA9IGZ1bmN0aW9uICgpCi17Ci0gICAgY2xlYXJMYXN0UGluZ1Jlc3VsdEFuZFJ1
blRlc3QodGVzdCk7Ci19Ci08L3NjcmlwdD4KLTwvaGVhZD4KLTxib2R5PgotICAgIDxpbWcgc3Jj
PSJub24tZXhpc3RlbnQtaW1hZ2UuanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdXNlbWFw
PSIjaW1hZ2VtYXAiPgotICAgIDxtYXAgbmFtZT0iaW1hZ2VtYXAiPgotICAgICAgICA8YXJlYSBz
aGFwZT0icmVjdCIgY29vcmRzPSIwLDAsMTI4LDEyOCIgaHJlZj0iLi4vbmF2aWdhdGlvbi9yZXNv
dXJjZXMvY2hlY2stcGluZy1hcHAtaW5pdGlhdGVkLWRhdGEucHkiIHBpbmc9Ii4uL25hdmlnYXRp
b24vcmVzb3VyY2VzL3NhdmUtcGluZy5weSI+Ci0gICAgPC9tYXA+Ci08L2JvZHk+Ci08L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9h
dHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0LWV4cGVjdGVk
LnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggZTI0NWUzNDBmMTdkZThlNGYzZTM1
OWNjMWI5ZjQxNDc2NmRlY2YxYy4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRy
aWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsNCAr
MCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFw
cCBpbml0aWF0ZWQgcmVxdWVzdHMKLVRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1h
cmtlZCBmb3IgUE9TVCByZXF1ZXN0cy4KLQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QuaHRtbCBi
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXBv
c3QtcmVxdWVzdC5odG1sCmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NAppbmRleCBhZDc5NTRmNzgw
MzNiNGRlNjA1YjkwMWE2MDNmOWJkMzE5ZTUxMjg1Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3kt
cmVwb3J0L2F0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sCisrKyAvZGV2L251bGwKQEAgLTEs
MjIgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxoZWFkPgotPG1ldGEgY2hhcnNl
dD0idXRmLTgiPgotPHNjcmlwdCBzcmM9Ii4uLy4uLy4uL3Jlc291cmNlcy9qcy10ZXN0LXByZS5q
cyI+PC9zY3JpcHQ+Ci08L2hlYWQ+Ci08Ym9keT4KLTxwPlRlc3RzIGFwcCBpbml0aWF0ZWQgcmVx
dWVzdHMgZ2V0IG1hcmtlZCBmb3IgUE9TVCByZXF1ZXN0cy48L3A+Ci08Zm9ybSBpZD0idGVzdEZv
cm0iIGFjdGlvbj0icmVzb3VyY2VzL3Bvc3QucHkiIHRhcmdldD0iX2JsYW5rIiByZWw9Im5vcmVm
ZXJyZXIiIG1ldGhvZD0icG9zdCI+Ci08aW5wdXQgdHlwZT0ic3VibWl0IiB2YWx1ZT0iVGVzdCI+
PC9pbnB1dD4KLTxmb3JtPgotPHNjcmlwdD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3Blbldp
bmRvd3ModHJ1ZSk7Ci19Ci0KLWRvY3VtZW50LmZvcm1zWzBdLnN1Ym1pdCgpOwotCi08L3Njcmlw
dD4KLTwvYm9keT4KLTwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
YXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlv
bi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCA5YjVlZWE5NDIyYWQwY2FlZTc2NjdiY2Q0MDZkYjkzZTBhNWU5ZTJlLi4wMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy1leHBlY3Rl
ZC50eHQKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogUHJl
ZmxpZ2h0IHJlc3BvbnNlIGlzIG5vdCBzdWNjZXNzZnVsCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0
dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkgZHVlIHRvIGFjY2VzcyBjb250
cm9sIGNoZWNrcy4KLVRlc3RzIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3Ig
YXN5bmMgcHJlZmxpZ2h0cwotCi1QQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5p
dGlhdGVkIHJlcXVlc3RzCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBw
LXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sIGIvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0
LWFzeW5jLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDM5M2I5ZjNjMjRkYjdl
MzBjOWY1MWU5ZjRkMjI3MTZkNjYyZThkYjYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0
NiArMCwwIEBACi08cD5UZXN0cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9y
IGFzeW5jIHByZWZsaWdodHM8L3A+Ci0KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNjcmlw
dD4KLWlmICh3aW5kb3cudGVzdFJ1bm5lcikgewotICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgp
OwotICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotfQotCi1mdW5jdGlvbiBsb2cobWVz
c2FnZSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENo
aWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Ci19Ci0KLXZhciBw
cmVmbGlnaHRMaW5rRG9tYWluID0gImxvY2FsaG9zdCI7Ci12YXIgY29udGV4dEhvc3QgPSAiMTI3
LjAuMC4xIjsKLXZhciB1cmwgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSIKLQotZnVuY3Rpb24gcnVuVGVz
dCgpCi17Ci0gICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHJlcS5vcGVu
KCJHRVQiLCB1cmwsIHRydWUpOwotICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJ4LXdlYmtpdCIs
ICJmb28iKTsKLQotICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIHZhciBk
aWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRl
ZFJlcXVlc3QoKTsKLSAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0g
dGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotCi0gICAgICAgIGlm
IChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlM
IGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIHRlc3RS
dW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFkaWRMb2FkQXBw
SW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBub3QgbG9hZCBh
cHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQg
b25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7Ci0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5
RG9uZSgpOwotICAgIH0KLSAgICByZXEuc2VuZChudWxsKTsKLX0KLQotcnVuVGVzdCgpOwotPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3lu
Yy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDQwMTZjNTMxZTA2
NTlhZGNkZDYzNTU1MjNlYTFiMGFkMmQ1YTJiMWMuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251
bGwKQEAgLTEsNyArMCwwIEBACi1DT05TT0xFIE1FU1NBR0U6IFByZWZsaWdodCByZXNwb25zZSBp
cyBub3Qgc3VjY2Vzc2Z1bAotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3Qg
bG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1
cy00MDQtd2l0aG91dC1ib2R5LnB5IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1UZXN0
cyBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIHN5bmMgcHJlZmxpZ2h0cwot
Ci1QQVNTOiBOZXR3b3JrRXJyb3I6ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCi1QQVNTIHN1
Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCi0KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9u
LXByZWZsaWdodC1zeW5jLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy5odG1sCmRlbGV0ZWQgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCBlYjU0MDk1YTFmZjdjMDQxZDFhYmU1NjAwZmE1YmNlNWNlZWU0M2E1Li4w
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L2F0dHJpYnV0aW9uLXByZWZsaWdodC1zeW5j
Lmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw0OSArMCwwIEBACi08cD5UZXN0cyBhcHAgaW5pdGlh
dGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIHN5bmMgcHJlZmxpZ2h0czwvcD4KLQotPHByZSBp
ZD0iY29uc29sZSI+PC9wcmU+Ci08c2NyaXB0PgotaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7Ci0g
ICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0gICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25l
KCk7Ci19Ci0KLWZ1bmN0aW9uIGxvZyhtZXNzYWdlKQotewotICAgIGRvY3VtZW50LmdldEVsZW1l
bnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVz
c2FnZSArICdcbicpKTsKLX0KLQotdmFyIHByZWZsaWdodExpbmtEb21haW4gPSAibG9jYWxob3N0
IjsKLXZhciBjb250ZXh0SG9zdCA9ICIxMjcuMC4wLjEiOwotdmFyIHVybCA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQtd2l0aG91dC1i
b2R5LnB5IgotCi1mdW5jdGlvbiBydW5UZXN0KCkKLXsKLSAgICB2YXIgcmVxID0gbmV3IFhNTEh0
dHBSZXF1ZXN0KCk7Ci0gICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOwotICAgIHJlcS5z
ZXRSZXF1ZXN0SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKLQotICAgIHRyeSB7Ci0gICAgICAg
IHJlcS5zZW5kKG51bGwpOwotICAgICAgICBsb2coIlBBU1M6ICIgKyByZXEucmVzcG9uc2VUZXh0
KTsKLSAgICB9IGNhdGNoIChleCkgewotICAgICAgICBsb2coIlBBU1M6ICIgKyBleCk7Ci0gICAg
ICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFw
cEluaXRpYXRlZFJlcXVlc3QoKTsKLSAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRS
ZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotCi0g
ICAgICAgIGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAg
bG9nKCJGQUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgaWYgKCFk
aWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBu
b3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOwotICAgICAgICB9Ci0KLSAgICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxs
eSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7Ci0gICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpOwotICAgIH0KLX0KLQotcnVuVGVzdCgpOwotPC9zY3JpcHQ+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC9hdHRyaWJ1
dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2
YWxpZGF0aW9uLWV4cGVjdGVkLnR4dApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggYjIx
YzJkNTk5NDE0NGU4MTBlMTU3N2VmZmJjZDA5Y2UwNmRmM2RkZC4uMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1w
cml2YWN5LXJlcG9ydC9hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0
ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMTQgKzAsMCBAQAotMTI3LjAuMC4xOjgwMDAgLSBk
aWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UgLSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50
aWNhdGlvblNjaGVtZUhUVFBCYXNpYyAtIFJlc3BvbmRpbmcgd2l0aCB0ZXN0VXNlcm5hbWU6dGVz
dFBhc3N3b3JkCi0xMjcuMC4wLjE6ODAwMCAtIGRpZFJlY2VpdmVBdXRoZW50aWNhdGlvbkNoYWxs
ZW5nZSAtIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0aW9uU2NoZW1lSFRUUEJhc2ljIC0gU2lt
dWxhdGluZyBjYW5jZWxsZWQgYXV0aGVudGljYXRpb24gc2hlZXQKLVRlc3RzIHNwZWN1bGF0aXZl
IHJldmFsaWRhdGlvbiBvZiBhdXRoZW50aWNhdGVkIHJlc291cmNlcy4KLQotT24gc3VjY2Vzcywg
eW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRF
U1QgQ09NUExFVEUiLgotCi0KLVBBU1MgeGhyLnN0YXR1cyBpcyA0MDEKLVBBU1MgU3VjY2Vzc2Z1
bHkgbG9hZGVkLgotUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgYXBwIGluaXRpYXRlZCBy
ZXF1ZXN0cwotUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQotCi1URVNUIENPTVBMRVRF
Ci0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0
L2F0dHJpYnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2
YWxpZGF0aW9uLmh0bWwKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGFiNzVkNmZmMWJl
ODlhMTdmYmFkZWFlZmFjOTc0MDAwZGM5ZTg1ZDAuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvYXR0cmlidXRpb24tc3BlY3VsYXRpdmUtcmV2YWxpZGF0aW9uLmh0bWwKKysrIC9kZXYv
bnVsbApAQCAtMSw3MiArMCwwIEBACi08c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pz
LXRlc3QtcHJlLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+Ci1kZXNjcmlwdGlvbigiVGVzdHMgc3Bl
Y3VsYXRpdmUgcmV2YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0ZWQgcmVzb3VyY2VzLiIpOwotanNU
ZXN0SXNBc3luYyA9IHRydWU7Ci0KLXRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlcyh0cnVlKTsKLXRlc3RSdW5uZXIuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSgi
dGVzdFVzZXJuYW1lIik7Ci10ZXN0UnVubmVyLnNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmQoInRl
c3RQYXNzd29yZCIpOwotCi1zdGF0ZSA9ICJ3YXJtdXAiOwotCi1mdW5jdGlvbiBjbGVhckNyZWRl
bnRpYWxTdG9yYWdlKCkKLXsKLSAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICB4
aHIub3BlbigiR0VUIiwgInJlc291cmNlcy9yZXNvdXJjZS13aXRoLWF1dGgucHk/b3RoZXIiLCBm
YWxzZSwgImJhZFVzZXJuYW1lIiwgImJhZFBhc3N3b3JkIik7Ci0gICAgeGhyLnNlbmQoKTsKLSAg
ICBzaG91bGRCZSgieGhyLnN0YXR1cyIsICI0MDEiKTsKLX0KLQotZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOwotfQotCi1mdW5jdGlv
biBmcmFtZUxvYWRlZCgpCi17Ci0gICAgaWYgKHN0YXRlID09ICJ3YXJtdXAiKSB7Ci0gICAgICAg
IC8vIE5hdmlnYXRlIGZyYW1lIHRvICdhYm91dDpibGFuaycgdG8gZmx1c2ggdG8gc3VicmVzb3Vy
Y2UgbG9hZHMgbWV0YWRhdGEgdG8gZGlzay4KLSAgICAgICAgc3RhdGUgPSAiZmx1c2hpbmdNZXRh
ZGF0YSI7Ci0gICAgICAgIHRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlcyhmYWxzZSk7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUi
KS5zcmMgPSAiYWJvdXQ6YmxhbmsiOwotICAgICAgICByZXR1cm47Ci0gICAgfQotICAgIGlmIChz
dGF0ZSA9PSAiZmx1c2hpbmdNZXRhZGF0YSIpIHsKLSAgICAgICAgY2xlYXJDcmVkZW50aWFsU3Rv
cmFnZSgpOwotCi0gICAgICAgIGludGVybmFscy5jbGVhck1lbW9yeUNhY2hlKCk7Ci0gICAgICAg
IHRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhmYWxzZSk7Ci0K
LSAgICAgICAgLy8gTmF2aWdhdGUgZnJhbWUgdG8gaXRzIG9yaWdpbmFsIGxvY2F0aW9uIGFnYWlu
LiBUaGlzIHRpbWUgaXQgc2hvdWxkIHNwZWN1bGF0aXZlbHkKLSAgICAgICAgLy8gdmFsaWRhdGUg
c3VicmVzb3VyY2VzIGFzIHdlIGhhdmUgc3VicmVzb3VyY2UgbG9hZHMgbWV0YWRhdGEgaW4gdGhl
IGRpc2sgY2FjaGUuCi0gICAgICAgIHN0YXRlID0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIjsK
LSAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLnNyYyA9ICJyZXNv
dXJjZXMvZnJhbWUtd2l0aC1hdXRoZW50aWNhdGVkLXJlc291cmNlLnB5IjsKLSAgICAgICAgcmV0
dXJuOwotICAgIH0KLSAgICBpZiAoc3RhdGUgPT0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIikg
ewotICAgICAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzZnVseSBsb2FkZWQuIik7Ci0gICAgICAgIHZh
ciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRp
YXRlZFJlcXVlc3QoKTsKLSAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0
ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOwotCi0gICAgICAg
IGlmIChkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJG
QUlMIGRpZCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIGZp
bmlzaEpTVGVzdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAg
aWYgKCFkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgewotICAgICAgICAgICAgbG9nKCJGQUlM
IGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKLSAgICAgICAgICAgIGZpbmlz
aEpTVGVzdCgpOwotICAgICAgICAgICAgcmV0dXJuOwotICAgICAgICB9Ci0KLSAgICAgICAgbG9n
KCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzIik7
Ci0KLSAgICAgICAgZmluaXNoSlNUZXN0KCk7Ci0gICAgICAgIHJldHVybjsKLSAgICB9Ci19Ci0K
LTwvc2NyaXB0PgotPGlmcmFtZSBpZD0idGVzdEZyYW1lIiBzcmM9InJlc291cmNlcy9mcmFtZS13
aXRoLWF1dGhlbnRpY2F0ZWQtcmVzb3VyY2UucHkiIG9ubG9hZD0iZnJhbWVMb2FkZWQoKSI+PC9p
ZnJhbWU+Ci08c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+
PC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC9yZXNvdXJjZXMvYXBwLWluaXRpYXRlZC1wb3N0LnB5IGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL2FwcC1pbml0aWF0ZWQtcG9zdC5w
eQpuZXcgZmlsZSBtb2RlIDEwMDc1NQppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5kMDZmZWVlMjEyYzcwMWNmNjJkOWQ4MzBkZmYyYjViODc2MWI5MzlmCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvcmVzb3VyY2VzL2FwcC1pbml0aWF0ZWQtcG9zdC5weQpAQCAtMCwwICsxLDI3IEBACisjIS91
c3IvYmluL2VudiBweXRob24zCisKK2ltcG9ydCBvcworaW1wb3J0IHN5cworCityZWZlcmVyID0g
b3MuZW52aXJvbi5nZXQoJ0hUVFBfUkVGRVJFUicsICcnKQorCitzeXMuc3Rkb3V0LndyaXRlKAor
ICAgICdDb250ZW50LVR5cGU6IHRleHQvaHRtbFxyXG5cclxuJworICAgICc8cD5SZWZlcnJlcjog
e3JlZmVyZXJ9PC9wPlxuJworICAgICc8c2NyaXB0PlxuJworICAgICdpZiAod2luZG93LnRlc3RS
dW5uZXIpIHt7XG4nCisgICAgJyAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0
ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7XG4nCisgICAgJyAgICB2YXIg
ZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25BcHBJ
bml0aWF0ZWRSZXF1ZXN0KCk7XG4nCisgICAgJyAgICBpZiAoZGlkTG9hZE5vbkFwcEluaXRpYXRl
ZFJlcXVlc3QpIHt7XG4nCisgICAgJyAgICAgICAgY29uc29sZS5sb2coIkZBSUwgZGlkIGxvYWQg
bm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpO1xuJworICAgICcgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpO1xuJworICAgICcgICAgfX1cbicKKyAgICAnICAgIGlmICghZGlkTG9hZEFw
cEluaXRpYXRlZFJlcXVlc3QpIHt7XG4nCisgICAgJyAgICAgICAgIGNvbnNvbGUubG9nKCJGQUlM
IGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTtcbicKKyAgICAnICAgICAgICB0
ZXN0UnVubmVyLm5vdGlmeURvbmUoKTtcbicKKyAgICAnICAgICB9fVxuJworICAgICcgICAgY29u
c29sZS5sb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQgcmVx
dWVzdHMiKTtcbicKKyAgICAnICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAgICd9
fVxuJworICAgICc8L3NjcmlwdD5cbicuZm9ybWF0KHJlZmVyZXI9cmVmZXJlcikKKykKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNl
cy9wb3N0LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvcmVz
b3VyY2VzL3Bvc3QucHkKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNzU1CmluZGV4IGQwNmZlZWUyMTJj
NzAxY2Y2MmQ5ZDgzMGRmZjJiNWI4NzYxYjkzOWYuLjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvcmVzb3VyY2VzL3Bvc3QucHkKKysrIC9kZXYvbnVsbApAQCAtMSwyNyArMCwwIEBACi0j
IS91c3IvYmluL2VudiBweXRob24zCi0KLWltcG9ydCBvcwotaW1wb3J0IHN5cwotCi1yZWZlcmVy
ID0gb3MuZW52aXJvbi5nZXQoJ0hUVFBfUkVGRVJFUicsICcnKQotCi1zeXMuc3Rkb3V0LndyaXRl
KAotICAgICdDb250ZW50LVR5cGU6IHRleHQvaHRtbFxyXG5cclxuJwotICAgICc8cD5SZWZlcnJl
cjoge3JlZmVyZXJ9PC9wPlxuJwotICAgICc8c2NyaXB0PlxuJwotICAgICdpZiAod2luZG93LnRl
c3RSdW5uZXIpIHt7XG4nCi0gICAgJyAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3Qg
PSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7XG4nCi0gICAgJyAgICB2
YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWROb25B
cHBJbml0aWF0ZWRSZXF1ZXN0KCk7XG4nCi0gICAgJyAgICBpZiAoZGlkTG9hZE5vbkFwcEluaXRp
YXRlZFJlcXVlc3QpIHt7XG4nCi0gICAgJyAgICAgICAgY29uc29sZS5sb2coIkZBSUwgZGlkIGxv
YWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpO1xuJwotICAgICcgICAgICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpO1xuJwotICAgICcgICAgfX1cbicKLSAgICAnICAgIGlmICghZGlkTG9h
ZEFwcEluaXRpYXRlZFJlcXVlc3QpIHt7XG4nCi0gICAgJyAgICAgICAgIGNvbnNvbGUubG9nKCJG
QUlMIGRpZCBub3QgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTtcbicKLSAgICAnICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTtcbicKLSAgICAnICAgICB9fVxuJwotICAgICcgICAg
Y29uc29sZS5sb2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IGFwcCBpbml0aWF0ZWQg
cmVxdWVzdHMiKTtcbicKLSAgICAnICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJwotICAg
ICd9fVxuJwotICAgICc8L3NjcmlwdD5cbicuZm9ybWF0KHJlZmVyZXI9cmVmZXJlcikKLSkKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291
cmNlcy91c2VyLWluaXRpYXRlZC1wb3N0LnB5IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAt
cHJpdmFjeS1yZXBvcnQvcmVzb3VyY2VzL3VzZXItaW5pdGlhdGVkLXBvc3QucHkKbmV3IGZpbGUg
bW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uNzJjYzJlMTM5Y2M0NjRhMjViNmNmYTExZDk0M2IxZWNiMmFkZTRjZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3Jlc291cmNl
cy91c2VyLWluaXRpYXRlZC1wb3N0LnB5CkBAIC0wLDAgKzEsMjcgQEAKKyMhL3Vzci9iaW4vZW52
IHB5dGhvbjMKKworaW1wb3J0IG9zCitpbXBvcnQgc3lzCisKK3JlZmVyZXIgPSBvcy5lbnZpcm9u
LmdldCgnSFRUUF9SRUZFUkVSJywgJycpCisKK3N5cy5zdGRvdXQud3JpdGUoCisgICAgJ0NvbnRl
bnQtVHlwZTogdGV4dC9odG1sXHJcblxyXG4nCisgICAgJzxwPlJlZmVycmVyOiB7cmVmZXJlcn08
L3A+XG4nCisgICAgJzxzY3JpcHQ+XG4nCisgICAgJ2lmICh3aW5kb3cudGVzdFJ1bm5lcikge3tc
bicKKyAgICAnICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIu
ZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTtcbicKKyAgICAnICAgIHZhciBkaWRMb2FkTm9u
QXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJl
cXVlc3QoKTtcbicKKyAgICAnICAgIGlmIChkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkge3tc
bicKKyAgICAnICAgICAgICBjb25zb2xlLmxvZygiRkFJTCBkaWQgbG9hZCBhcHAgaW5pdGlhdGVk
IHJlcXVlc3QiKTtcbicKKyAgICAnICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTtcbicK
KyAgICAnICAgIH19XG4nCisgICAgJyAgICBpZiAoIWRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1
ZXN0KSB7e1xuJworICAgICcgICAgICAgICBjb25zb2xlLmxvZygiRkFJTCBkaWQgbm90IGxvYWQg
bm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpO1xuJworICAgICcgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpO1xuJworICAgICcgICAgIH19XG4nCisgICAgJyAgICBjb25zb2xlLmxvZygi
UEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMi
KTtcbicKKyAgICAnICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAgICd9fVxuJwor
ICAgICc8L3NjcmlwdD5cbicuZm9ybWF0KHJlZmVyZXI9cmVmZXJlcikKKykKZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRp
b24tbG9hZC11cmwtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uYTZjZGFjZTI2YTIwZWVlMDlkZDE0YzQ1YTM4ZDFjMWNhNTQ1YzM0YgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXIt
YXR0cmlidXRpb24tbG9hZC11cmwtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorVGVzdCBs
b2FkVVJMIHJlcXVlc3RzIGFyZSBzdWNjZXNmdWxseSBhdHRyaWJ1dGVkIGFzIG5vbiBhcHAgaW5p
dGlhdGVkLgorUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQg
cmVxdWVzdHMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFj
eS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1s
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLmIzMTI5ZWFlMzgzMDUzMzQ1M2JjMGUzNGFhOGQ3MDRjNzA2ZWRjMWMKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9y
dC91c2VyLWF0dHJpYnV0aW9uLWxvYWQtdXJsLmh0bWwKQEAgLTAsMCArMSw0OCBAQAorPCFET0NU
WVBFIGh0bWw+PCEtLSB3ZWJraXQtdGVzdC1ydW5uZXIgWyBpc0FwcEluaXRpYXRlZD1mYWxzZSBd
IC0tPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8c2NyaXB0IHNyYz0icmVzb3VyY2VzL3V0aWwuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHkgb25sb2FkPSJzZXRUaW1lb3V0KCdydW5UZXN0KCkn
LCAwKSI+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+VGVzdCBsb2FkVVJMIHJlcXVlc3RzIGFyZSBz
dWNjZXNmdWxseSBhdHRyaWJ1dGVkIGFzIG5vbiBhcHAgaW5pdGlhdGVkLjwvZGl2PgorPHByZSBp
ZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0PgorICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikg
eworICAgICAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKKyAgICAgICAgdGVzdFJ1bm5l
ci5kdW1wQXNUZXh0KCk7CisgICAgfQorCisgICAgZnVuY3Rpb24gbG9hZFVSTCgpIHsKKyAgICAg
ICAgZG9jdW1lbnQubG9jYXRpb24uaHJlZiA9IGRlc3RpbmF0aW9uT3JpZ2luICsgIi9hcHAtcHJp
dmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1sb2FkLXVybC5odG1sIjsKKyAgICB9CisKKyAg
ICBmdW5jdGlvbiBsb2cobWVzc2FnZSkgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2Ug
KyAnXG4nKSk7CisgICAgfQorCisgICAgY29uc3QgZGVzdGluYXRpb25PcmlnaW4gPSAiaHR0cDov
L2xvY2FsaG9zdDo4MDAwIjsKKyAgICBjb25zdCBzdGFydGluZ09yaWdpbiA9ICJodHRwOi8vMTI3
LjAuMC4xOjgwMDAiOworICAgIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgICAgIGlmIChkb2N1
bWVudC5sb2NhdGlvbi5vcmlnaW4gPT09IHN0YXJ0aW5nT3JpZ2luKSB7CisgICAgICAgICAgICBs
b2FkVVJMKCk7CisgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICB2YXIgZGlkTG9hZEFwcElu
aXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRpZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7
CisgICAgICAgICAgICB2YXIgZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVu
bmVyLmRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisKKyAgICAgICAgICAgIGlmIChk
aWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTCBk
aWQgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgICAgIH0KKworICAgICAgICAgICAgaWYgKCFkaWRM
b2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgICAgIGxvZygiRkFJTCBk
aWQgbm90IGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICAgICAgfQorCisgICAgICAgICAgICBs
b2coIlBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVl
c3RzIik7CisgICAgICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQor
ICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxv
YWQtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBv
cnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjg1
YmQ5NGViM2EzNDIzZWVhOGM4ODliYmNiZjNjYjQ3NWM2YzUxODIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0
aW9uLXBpbmctbG9hZC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw4IEBACitDT05TT0xFIE1FU1NB
R0U6IFBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVl
c3RzCitQaW5nIHNlbnQgc3VjY2Vzc2Z1bGx5CitDT05URU5UX1RZUEU6IHRleHQvcGluZworSFRU
UF9IT1NUOiAxMjcuMC4wLjE6ODAwMAorSFRUUF9QSU5HX0ZST006IGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMC9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1waW5nLWxvYWQuaHRtbAor
SFRUUF9QSU5HX1RPOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAvbmF2aWdhdGlvbi9yZXNvdXJjZXMv
Y2hlY2stcGluZy11c2VyLWluaXRpYXRlZC1kYXRhLnB5CitSRVFVRVNUX01FVEhPRDogUE9TVAor
UkVRVUVTVF9VUkk6IC9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zYXZlLXBpbmcucHkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmli
dXRpb24tcGluZy1sb2FkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5
LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBpbmctbG9hZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmQzM2Zh
MjM1YzgwMTg2NTUzY2I2MjJjNzE2NTUwMWZhMDNmZmI1NmEKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9u
LXBpbmctbG9hZC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Vi
a2l0LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzwhRE9DVFlQRSBo
dG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9uYXZpZ2F0aW9uL3BpbmctYXR0
cmlidXRlL3Jlc291cmNlcy91dGlsaXRpZXMuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KK2lmICh3
aW5kb3cudGVzdFJ1bm5lciAmJiB3aW5kb3cuaW50ZXJuYWxzKSB7CisgICAgdGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5zZXRTdGF0aXN0aWNzU2hvdWxkRG93bmdyYWRl
UmVmZXJyZXIoZmFsc2UsIGZ1bmN0aW9uICgpIHsgfSk7CisgICAgaW50ZXJuYWxzLnNldHRpbmdz
LnNldEh5cGVybGlua0F1ZGl0aW5nRW5hYmxlZCh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRV
bnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gdGVzdCgpCit7CisgICAgY2xpY2tFbGVtZW50KGRv
Y3VtZW50LnF1ZXJ5U2VsZWN0b3IoImltZyIpKTsKK30KKword2luZG93Lm9ubG9hZCA9IGZ1bmN0
aW9uICgpCit7CisgICAgY2xlYXJMYXN0UGluZ1Jlc3VsdEFuZFJ1blRlc3QodGVzdCk7Cit9Cis8
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxpbWcgc3JjPSJub24tZXhpc3RlbnQtaW1h
Z2UuanBnIiB3aWR0aD0iMTI4IiBoZWlnaHQ9IjEyOCIgdXNlbWFwPSIjaW1hZ2VtYXAiPgorICAg
IDxtYXAgbmFtZT0iaW1hZ2VtYXAiPgorICAgICAgICA8YXJlYSBzaGFwZT0icmVjdCIgY29vcmRz
PSIwLDAsMTI4LDEyOCIgaHJlZj0iLi4vbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy11
c2VyLWluaXRpYXRlZC1kYXRhLnB5IiBwaW5nPSIuLi9uYXZpZ2F0aW9uL3Jlc291cmNlcy9zYXZl
LXBpbmcucHkiPgorICAgIDwvbWFwPgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1w
b3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wb3N0LXJlcXVlc3QtZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjQwYzk4MjdkNjI4ODEwZTAzMTY3NDIxNzA2ZDNkZGRlZDVlMGM0M2IKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91
c2VyLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBA
CitDT05TT0xFIE1FU1NBR0U6IFBBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5IG5vbiBhcHAg
aW5pdGlhdGVkIHJlcXVlc3RzCitUZXN0cyBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyBnZXQg
bWFya2VkIGZvciBQT1NUIHJlcXVlc3RzLgorCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcG9zdC1yZXF1ZXN0
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0
dHJpYnV0aW9uLXBvc3QtcmVxdWVzdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzYjQ1NDNiNGY3YWVhNTQ0
NzdiZWZhNDZhYzExN2U1MDg1ZjU2NTUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXBvc3QtcmVxdWVz
dC5odG1sCkBAIC0wLDAgKzEsMjIgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0LXRlc3Qt
cnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzxodG1sPgorPGhlYWQ+Cis8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+Cis8c2NyaXB0IHNyYz0iLi4vLi4vLi4vcmVzb3VyY2VzL2pzLXRl
c3QtcHJlLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHA+VGVzdHMgbm9uIGFwcCBp
bml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3IgUE9TVCByZXF1ZXN0cy48L3A+Cis8Zm9y
bSBpZD0idGVzdEZvcm0iIGFjdGlvbj0icmVzb3VyY2VzL3VzZXItaW5pdGlhdGVkLXBvc3QucHki
IHRhcmdldD0iX2JsYW5rIiByZWw9Im5vcmVmZXJyZXIiIG1ldGhvZD0icG9zdCI+Cis8aW5wdXQg
dHlwZT0ic3VibWl0IiB2YWx1ZT0iVGVzdCI+PC9pbnB1dD4KKzxmb3JtPgorPHNjcmlwdD4KK2lm
ICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwor
ICAgIHRlc3RSdW5uZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7Cit9CisKK2RvY3VtZW50LmZv
cm1zWzBdLnN1Ym1pdCgpOworCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmli
dXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LWFzeW5jLWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5kNzk2YmI4MjY1MzIzNjYzZTYzNzliZmJjYjk1NWRhNjBi
MWY5NmMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNiBAQAorQ09OU09MRSBNRVNTQUdFOiBQcmVmbGlnaHQgcmVzcG9uc2UgaXMg
bm90IHN1Y2Nlc3NmdWwKK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxv
YWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMt
NDA0LXdpdGhvdXQtYm9keS5weSBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorVGVzdHMg
bm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMgZ2V0IG1hcmtlZCBmb3IgYXN5bmMgcHJlZmxpZ2h0
cworCitQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1
ZXN0cworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJl
cG9ydC91c2VyLWF0dHJpYnV0aW9uLXByZWZsaWdodC1hc3luYy5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQt
YXN5bmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi43NTFjMmY3YzdhZjRiNTFiMzViOGE4MGUwZjM3Y2Q4MTg4
MWQwMzg4Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJp
dmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtYXN5bmMuaHRtbApAQCAtMCww
ICsxLDQ3IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBw
SW5pdGlhdGVkPWZhbHNlIF0gLS0+Cis8cD5UZXN0cyBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0
cyBnZXQgbWFya2VkIGZvciBhc3luYyBwcmVmbGlnaHRzPC9wPgorCis8cHJlIGlkPSJjb25zb2xl
Ij48L3ByZT4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKwor
ZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2Nv
bnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xu
JykpOworfQorCit2YXIgcHJlZmxpZ2h0TGlua0RvbWFpbiA9ICJsb2NhbGhvc3QiOwordmFyIGNv
bnRleHRIb3N0ID0gIjEyNy4wLjAuMSI7Cit2YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvc3RhdHVzLTQwNC13aXRob3V0LWJvZHkucHkiCisK
K2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3Qo
KTsKKyAgICByZXEub3BlbigiR0VUIiwgdXJsLCB0cnVlKTsKKyAgICByZXEuc2V0UmVxdWVzdEhl
YWRlcigieC13ZWJraXQiLCAiZm9vIik7CisKKyAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uKCkg
eworICAgICAgICB2YXIgZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QgPSB0ZXN0UnVubmVyLmRp
ZExvYWRBcHBJbml0aWF0ZWRSZXF1ZXN0KCk7CisgICAgICAgIHZhciBkaWRMb2FkTm9uQXBwSW5p
dGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3Qo
KTsKKworICAgICAgICBpZiAoZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QpIHsKKyAgICAgICAg
ICAgIGxvZygiRkFJTCBkaWQgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAg
ICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgaWYgKCFk
aWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRp
ZCBub3QgbG9hZCBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0Iik7CisgICAgICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICAgICAgfQorCisgICAgICAgIGxvZygiUEFTUyBzdWNj
ZXNzZnVsbHkgbG9hZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTsKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfQorICAgIHJlcS5zZW5kKG51bGwpOwor
fQorCitydW5UZXN0KCk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAv
dGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQv
dXNlci1hdHRyaWJ1dGlvbi1wcmVmbGlnaHQtc3luYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
NWRhMTAzOWE3OWM1ZTdmZDM0MDc0ZDFhYmM3ZDRiOGQyNzM3NDA3MgotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmli
dXRpb24tcHJlZmxpZ2h0LXN5bmMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNyBAQAorQ09OU09M
RSBNRVNTQUdFOiBQcmVmbGlnaHQgcmVzcG9uc2UgaXMgbm90IHN1Y2Nlc3NmdWwKK0NPTlNPTEUg
TUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9zdGF0dXMtNDA0LXdpdGhvdXQtYm9keS5weSBkdWUg
dG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorVGVzdHMgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVz
dHMgZ2V0IG1hcmtlZCBmb3Igc3luYyBwcmVmbGlnaHRzCisKK1BBU1M6IE5ldHdvcmtFcnJvcjog
IEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5IGxvYWRlZCBvbmx5
IG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3RzCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXItYXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5
bmMuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvdGVzdHMvYXBwLXByaXZhY3ktcmVwb3J0L3VzZXIt
YXR0cmlidXRpb24tcHJlZmxpZ2h0LXN5bmMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi45YTcwNjMyMDMxMmY1
M2I5OGYxMjRhNmU5NGQxYzZmMWFhNWQ0NDc3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1wcmVmbGln
aHQtc3luYy5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhRE9DVFlQRSBodG1sPjwhLS0gd2Via2l0
LXRlc3QtcnVubmVyIFsgaXNBcHBJbml0aWF0ZWQ9ZmFsc2UgXSAtLT4KKzxwPlRlc3RzIG5vbiBh
cHAgaW5pdGlhdGVkIHJlcXVlc3RzIGdldCBtYXJrZWQgZm9yIHN5bmMgcHJlZmxpZ2h0czwvcD4K
KworPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Cit9CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUobWVzc2FnZSArICdcbicpKTsKK30KKwordmFyIHByZWZsaWdodExpbmtEb21haW4gPSAi
bG9jYWxob3N0IjsKK3ZhciBjb250ZXh0SG9zdCA9ICIxMjcuMC4wLjEiOwordmFyIHVybCA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL3N0YXR1cy00MDQt
d2l0aG91dC1ib2R5LnB5IgorCitmdW5jdGlvbiBydW5UZXN0KCkKK3sKKyAgICB2YXIgcmVxID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOwor
ICAgIHJlcS5zZXRSZXF1ZXN0SGVhZGVyKCJ4LXdlYmtpdCIsICJmb28iKTsKKworICAgIHRyeSB7
CisgICAgICAgIHJlcS5zZW5kKG51bGwpOworICAgICAgICBsb2coIlBBU1M6ICIgKyByZXEucmVz
cG9uc2VUZXh0KTsKKyAgICB9IGNhdGNoIChleCkgeworICAgICAgICBsb2coIlBBU1M6ICIgKyBl
eCk7CisgICAgICAgIHZhciBkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIu
ZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJ
bml0aWF0ZWRSZXF1ZXN0ID0gdGVzdFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVz
dCgpOworCisgICAgICAgIGlmIChkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAg
ICAgICAgbG9nKCJGQUlMIGRpZCBsb2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgICAgIH0KKworICAgICAgICBpZiAo
IWRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7CisgICAgICAgICAgICBsb2coIkZBSUwg
ZGlkIG5vdCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTsKKyAgICAgICAgICAgIHRl
c3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICB9CisKKyAgICAgICAgbG9nKCJQQVNTIHN1
Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRlZCByZXF1ZXN0cyIpOworICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisKK3J1blRlc3QoKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNlci1hdHRy
aWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24tZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjlmZDlmNjYxOTdmNGRhYjlmMjkzYTAzZjQyOGJhZGRjOGYyNmMyYjEKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJp
YnV0aW9uLXNwZWN1bGF0aXZlLXJldmFsaWRhdGlvbi1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwx
NCBAQAorMTI3LjAuMC4xOjgwMDAgLSBkaWRSZWNlaXZlQXV0aGVudGljYXRpb25DaGFsbGVuZ2Ug
LSBQcm90ZWN0aW9uU3BhY2VBdXRoZW50aWNhdGlvblNjaGVtZUhUVFBCYXNpYyAtIFJlc3BvbmRp
bmcgd2l0aCB0ZXN0VXNlcm5hbWU6dGVzdFBhc3N3b3JkCisxMjcuMC4wLjE6ODAwMCAtIGRpZFJl
Y2VpdmVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZSAtIFByb3RlY3Rpb25TcGFjZUF1dGhlbnRpY2F0
aW9uU2NoZW1lSFRUUEJhc2ljIC0gU2ltdWxhdGluZyBjYW5jZWxsZWQgYXV0aGVudGljYXRpb24g
c2hlZXQKK1Rlc3RzIHNwZWN1bGF0aXZlIHJldmFsaWRhdGlvbiBvZiBhdXRoZW50aWNhdGVkIHJl
c291cmNlcy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBt
ZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1MgeGhyLnN0YXR1
cyBpcyA0MDEKK1BBU1MgU3VjY2Vzc2Z1bHkgbG9hZGVkLgorUEFTUyBzdWNjZXNzZnVsbHkgbG9h
ZGVkIG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFy
c2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL2FwcC1wcml2YWN5LXJlcG9ydC91c2VyLWF0dHJpYnV0aW9uLXNwZWN1bGF0aXZl
LXJldmFsaWRhdGlvbi5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1y
ZXBvcnQvdXNlci1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hMjFmOGI5YTZkNTVlOGZiNmQ3NGNiYTdiYmYzMzA5Mzg1NTUyNTk0Ci0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9hcHAtcHJpdmFjeS1yZXBvcnQvdXNl
ci1hdHRyaWJ1dGlvbi1zcGVjdWxhdGl2ZS1yZXZhbGlkYXRpb24uaHRtbApAQCAtMCwwICsxLDcw
IEBACis8IURPQ1RZUEUgaHRtbD48IS0tIHdlYmtpdC10ZXN0LXJ1bm5lciBbIGlzQXBwSW5pdGlh
dGVkPWZhbHNlIF0gLS0+Cis8c2NyaXB0IHNyYz0iL2pzLXRlc3QtcmVzb3VyY2VzL2pzLXRlc3Qt
cHJlLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiVGVzdHMgc3BlY3VsYXRp
dmUgcmV2YWxpZGF0aW9uIG9mIGF1dGhlbnRpY2F0ZWQgcmVzb3VyY2VzLiIpOworanNUZXN0SXNB
c3luYyA9IHRydWU7CisKK3Rlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxl
bmdlcyh0cnVlKTsKK3Rlc3RSdW5uZXIuc2V0QXV0aGVudGljYXRpb25Vc2VybmFtZSgidGVzdFVz
ZXJuYW1lIik7Cit0ZXN0UnVubmVyLnNldEF1dGhlbnRpY2F0aW9uUGFzc3dvcmQoInRlc3RQYXNz
d29yZCIpOworCitzdGF0ZSA9ICJ3YXJtdXAiOworCitmdW5jdGlvbiBjbGVhckNyZWRlbnRpYWxT
dG9yYWdlKCkKK3sKKyAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICB4aHIub3Bl
bigiR0VUIiwgInJlc291cmNlcy9yZXNvdXJjZS13aXRoLWF1dGgucHk/b3RoZXIiLCBmYWxzZSwg
ImJhZFVzZXJuYW1lIiwgImJhZFBhc3N3b3JkIik7CisgICAgeGhyLnNlbmQoKTsKKyAgICBzaG91
bGRCZSgieGhyLnN0YXR1cyIsICI0MDEiKTsKK30KKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7
CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1
bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworfQorCitmdW5jdGlvbiBmcmFt
ZUxvYWRlZCgpCit7CisgICAgaWYgKHN0YXRlID09ICJ3YXJtdXAiKSB7CisgICAgICAgIC8vIE5h
dmlnYXRlIGZyYW1lIHRvICdhYm91dDpibGFuaycgdG8gZmx1c2ggdG8gc3VicmVzb3VyY2UgbG9h
ZHMgbWV0YWRhdGEgdG8gZGlzay4KKyAgICAgICAgc3RhdGUgPSAiZmx1c2hpbmdNZXRhZGF0YSI7
CisgICAgICAgIHRlc3RSdW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhm
YWxzZSk7CisgICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJ0ZXN0RnJhbWUiKS5zcmMg
PSAiYWJvdXQ6YmxhbmsiOworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGlmIChzdGF0ZSA9
PSAiZmx1c2hpbmdNZXRhZGF0YSIpIHsKKyAgICAgICAgY2xlYXJDcmVkZW50aWFsU3RvcmFnZSgp
OworCisgICAgICAgIGludGVybmFscy5jbGVhck1lbW9yeUNhY2hlKCk7CisgICAgICAgIHRlc3RS
dW5uZXIuc2V0SGFuZGxlc0F1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlcyhmYWxzZSk7CisKKyAgICAg
ICAgLy8gTmF2aWdhdGUgZnJhbWUgdG8gaXRzIG9yaWdpbmFsIGxvY2F0aW9uIGFnYWluLiBUaGlz
IHRpbWUgaXQgc2hvdWxkIHNwZWN1bGF0aXZlbHkKKyAgICAgICAgLy8gdmFsaWRhdGUgc3VicmVz
b3VyY2VzIGFzIHdlIGhhdmUgc3VicmVzb3VyY2UgbG9hZHMgbWV0YWRhdGEgaW4gdGhlIGRpc2sg
Y2FjaGUuCisgICAgICAgIHN0YXRlID0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIjsKKyAgICAg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRlc3RGcmFtZSIpLnNyYyA9ICJyZXNvdXJjZXMv
ZnJhbWUtd2l0aC1hdXRoZW50aWNhdGVkLXJlc291cmNlLnB5IjsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KKyAgICBpZiAoc3RhdGUgPT0gInNwZWN1bGF0aXZlUmV2YWxpZGF0aW9uIikgeworICAg
ICAgICB0ZXN0UGFzc2VkKCJTdWNjZXNzZnVseSBsb2FkZWQuIik7CisgICAgICAgIHZhciBkaWRM
b2FkQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJl
cXVlc3QoKTsKKyAgICAgICAgdmFyIGRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0ID0gdGVz
dFJ1bm5lci5kaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCgpOworCisgICAgICAgIGlmIChk
aWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkgeworICAgICAgICAgICAgbG9nKCJGQUlMIGRpZCBs
b2FkIGFwcCBpbml0aWF0ZWQgcmVxdWVzdCIpOworICAgICAgICAgICAgZmluaXNoSlNUZXN0KCk7
CisgICAgICAgIH0KKworICAgICAgICBpZiAoIWRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0
KSB7CisgICAgICAgICAgICBsb2coIkZBSUwgZGlkIG5vdCBsb2FkIG5vbiBhcHAgaW5pdGlhdGVk
IHJlcXVlc3QiKTsKKyAgICAgICAgICAgIGZpbmlzaEpTVGVzdCgpOworICAgICAgICB9CisKKyAg
ICAgICAgbG9nKCJQQVNTIHN1Y2Nlc3NmdWxseSBsb2FkZWQgb25seSBub24gYXBwIGluaXRpYXRl
ZCByZXF1ZXN0cyIpOworICAgICAgICBmaW5pc2hKU1Rlc3QoKTsKKyAgICAgICAgcmV0dXJuOwor
ICAgIH0KK30KKworPC9zY3JpcHQ+Cis8aWZyYW1lIGlkPSJ0ZXN0RnJhbWUiIHNyYz0icmVzb3Vy
Y2VzL2ZyYW1lLXdpdGgtYXV0aGVudGljYXRlZC1yZXNvdXJjZS5weSIgb25sb2FkPSJmcmFtZUxv
YWRlZCgpIj48L2lmcmFtZT4KKzxzY3JpcHQgc3JjPSIvanMtdGVzdC1yZXNvdXJjZXMvanMtdGVz
dC1wb3N0LmpzIj48L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvdGVzdHMv
bmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy11c2VyLWluaXRpYXRlZC1kYXRhLnB5IGIv
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9uYXZpZ2F0aW9uL3Jlc291cmNlcy9jaGVjay1waW5nLXVz
ZXItaW5pdGlhdGVkLWRhdGEucHkKbmV3IGZpbGUgbW9kZSAxMDA3NTUKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZWQwN2JmMDcyMDBjMTc3YjdmOWNiNjZi
YWI3YjEwNWNkMjhiOWEwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvdGVz
dHMvbmF2aWdhdGlvbi9yZXNvdXJjZXMvY2hlY2stcGluZy11c2VyLWluaXRpYXRlZC1kYXRhLnB5
CkBAIC0wLDAgKzEsNDQgQEAKKyMhL3Vzci9iaW4vZW52IHB5dGhvbjMKKworaW1wb3J0IG9zCitp
bXBvcnQgc3lzCitpbXBvcnQgdGltZQorZnJvbSBwaW5nX2ZpbGVfcGF0aCBpbXBvcnQgcGluZ19m
aWxlcGF0aAorCitzeXMuc3Rkb3V0LndyaXRlKCdDb250ZW50LVR5cGU6IHRleHQvaHRtbFxyXG5c
clxuJykKKword2hpbGUgbm90IG9zLnBhdGguaXNmaWxlKHBpbmdfZmlsZXBhdGgpOgorICAgIHRp
bWUuc2xlZXAoMC4wMSkKKworc3lzLnN0ZG91dC53cml0ZSgKKyAgICAnPGh0bWw+PGJvZHk+XG4n
CisgICAgJ1Bpbmcgc2VudCBzdWNjZXNzZnVsbHknCispCisKK3BpbmdfZmlsZSA9IG9wZW4ocGlu
Z19maWxlcGF0aCwgJ3InKQorZm9yIGxpbmUgaW4gcGluZ19maWxlLnJlYWRsaW5lcygpOgorICAg
IHN5cy5zdGRvdXQud3JpdGUoJzxicj57fScuZm9ybWF0KGxpbmUuc3RyaXAoKSkpCisKK3Bpbmdf
ZmlsZS5jbG9zZSgpCitpZiBvcy5wYXRoLmlzZmlsZShwaW5nX2ZpbGVwYXRoKToKKyAgICBvcy5y
ZW1vdmUocGluZ19maWxlcGF0aCkKKworc3lzLnN0ZG91dC53cml0ZSgKKyAgICAnPHNjcmlwdD4n
CisgICAgJ2lmICh3aW5kb3cudGVzdFJ1bm5lcikge3tcbicKKyAgICAnICAgIHZhciBkaWRMb2Fk
QXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRlc3RSdW5uZXIuZGlkTG9hZEFwcEluaXRpYXRlZFJlcXVl
c3QoKTtcbicKKyAgICAnICAgIHZhciBkaWRMb2FkTm9uQXBwSW5pdGlhdGVkUmVxdWVzdCA9IHRl
c3RSdW5uZXIuZGlkTG9hZE5vbkFwcEluaXRpYXRlZFJlcXVlc3QoKTtcbicKKyAgICAnICAgIGlm
IChkaWRMb2FkQXBwSW5pdGlhdGVkUmVxdWVzdCkge3tcbicKKyAgICAnICAgICAgICBjb25zb2xl
LmxvZygiRkFJTCBkaWQgbG9hZCBhcHAgaW5pdGlhdGVkIHJlcXVlc3QiKTtcbicKKyAgICAnICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTtcbicKKyAgICAnICAgIH19XG4nCisgICAgJyAg
ICBpZiAoIWRpZExvYWROb25BcHBJbml0aWF0ZWRSZXF1ZXN0KSB7e1xuJworICAgICcgICAgICAg
ICBjb25zb2xlLmxvZygiRkFJTCBkaWQgbm90IGxvYWQgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVz
dCIpO1xuJworICAgICcgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpO1xuJworICAgICcg
ICAgIH19XG4nCisgICAgJyAgICBjb25zb2xlLmxvZygiUEFTUyBzdWNjZXNzZnVsbHkgbG9hZGVk
IG9ubHkgbm9uIGFwcCBpbml0aWF0ZWQgcmVxdWVzdHMiKTtcbicKKyAgICAnICAgIHRlc3RSdW5u
ZXIubm90aWZ5RG9uZSgpO1xuJworICAgICd9fVxuJworICAgICc8L3NjcmlwdD4nCisgICAgJzwv
Ym9keT48L2h0bWw+JworKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>