<?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>219272</bug_id>
          
          <creation_ts>2020-11-24 00:58:54 -0800</creation_ts>
          <short_desc>Update WPT WebRTC tests</short_desc>
          <delta_ts>2020-11-30 11:10:22 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebRTC</component>
          <version>WebKit Local 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>
          
          <blocked>219259</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="youenn fablet">youennf</reporter>
          <assigned_to name="youenn fablet">youennf</assigned_to>
          <cc>clopez</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>youennf</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1709970</commentid>
    <comment_count>0</comment_count>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-24 00:58:54 -0800</bug_when>
    <thetext>Update WPT WebRTC tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1709971</commentid>
    <comment_count>1</comment_count>
      <attachid>414823</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-24 01:03:06 -0800</bug_when>
    <thetext>Created attachment 414823
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710238</commentid>
    <comment_count>2</comment_count>
      <attachid>414923</attachid>
    <who name="youenn fablet">youennf</who>
    <bug_when>2020-11-27 01:06:40 -0800</bug_when>
    <thetext>Created attachment 414923
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710680</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-11-30 11:09:04 -0800</bug_when>
    <thetext>Committed r270252: &lt;https://trac.webkit.org/changeset/270252&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 414923.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1710681</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-11-30 11:10:22 -0800</bug_when>
    <thetext>&lt;rdar://problem/71813853&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414823</attachid>
            <date>2020-11-24 01:03:06 -0800</date>
            <delta_ts>2020-11-27 01:06:32 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219272-20201124100302.patch</filename>
            <type>text/plain</type>
            <size>196760</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMDE5CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZjU5YWM2YjM3ZTRiYmFkZjM2YjFh
ZDNjZTVkY2Y5NTdjYzk3ZmI1OC4uNjc4M2VlOWQwNTQ4ZGQyOGI0YTFlNjIzMTE3YzY5NWE0ZTE3
ODE1NyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTExLTI0ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV1BUIFdlYlJUQyB0ZXN0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MjcyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiB0ZXN0cy1vcHRp
b25zLmpzb246CisKIDIwMjAtMTEtMjMgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29t
PgogCiAgICAgICAgIGh0dHBzOi8vY29sbGFiLXByb2plY3QuZ2l0aHViLmlvL3ZpZGVvanMtcmVj
b3JkL2RlbW8vdmlkZW8tb25seS5odG1sIGlzIG5vdCB3b3JraW5nCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L0NoYW5nZUxvZwppbmRleCAxYmJkYWJlNmE3ODEyMzI1NTRmZTA0MDUzODE4YThmYWQzNDAyZDEz
Li5mNzgyOWZlZTJmMmIyMmMxMTBjYTE5OGIxODNlOWYyZjM0MDg1ZDk2IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMTAgQEAKKzIwMjAtMTEtMjQgIFlvdWVubiBG
YWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgorCisgICAgICAgIFVwZGF0ZSBXUFQgV2ViUlRDIHRl
c3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTky
NzIKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3Vy
YXRpb24taWNlU2VydmVycy5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53aW5kb3ctZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFy
eVR5cGUud2luZG93Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53aW5kb3cuanM6IEFkZGVkLgorICAgICAg
ICAoY29uc3QuYmluYXJ5VHlwZS5vZi52YWxpZEJpbmFyeVR5cGVzLnRlc3QpOgorICAgICAgICAo
Y29uc3QuYmluYXJ5VHlwZS5vZi5pbnZhbGlkQmluYXJ5VHlwZXMudGVzdCk6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRp
ZmljYXRlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRpZmljYXRlcy5odG1sOgorICAgICAgICAq
IHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tU0xELVNSRC10aW1p
bmcuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLVNMRC1TUkQtdGltaW5nLmh0dHBzLmh0bWw6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1cC1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRk
SWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1cC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1l
eHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0cHMtZXhw
ZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0cHMuaHRtbDogQWRkZWQuCisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0
aW9uU3RhdGUuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLWV4cGVjdGVkLnR4dDoKKyAgICAg
ICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURh
dGFDaGFubmVsLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1kZXNjcmlwdGlvbi1hdHRyaWJ1dGVzLXRpbWluZy5odHRwcy1leHBlY3Rl
ZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMuaHRtbDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1leHBsaWNpdC1yb2xsYmFjay1pY2VHYXRoZXJpbmdTdGF0ZS1leHBlY3RlZC50eHQ6IEFkZGVk
LgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
ZXhwbGljaXQtcm9sbGJhY2staWNlR2F0aGVyaW5nU3RhdGUuaHRtbDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0
SWNlU2VydmVycy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVycy5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci10ZXN0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1oZWxwZXItdGVzdC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qczoKKyAgICAgICAgKGFzeW5jIHdhaXRG
b3JJY2VHYXRoZXJpbmdTdGF0ZSk6CisgICAgICAgIChjb25zdC50cmFja0ZhY3Rvcmllcy50cmFj
ay5zdG9wKToKKyAgICAgICAgKGdldFZpZGVvU2lnbmFsKToKKyAgICAgICAgKGFzeW5jIGRldGVj
dFNpZ25hbCk6CisgICAgICAgIChhc3luYyBleGNoYW5nZUFuc3dlcik6CisgICAgICAgIChhc3lu
YyBmb3IpOgorICAgICAgICAoYXN5bmMgcGMpOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWw6
CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1p
Y2VHYXRoZXJpbmdTdGF0ZS5odG1sOgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tbWFuZGF0b3J5LWdldFN0YXRzLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmRhdGFj
aGFubmVsLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnNpZ25hbGluZ3N0YXRlY2hhbmdl
ZC5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy5odG1sOgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb250
cmFjay5odHRwcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBzLmh0bWw6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0
aW9uLWhlbHBlci5qczogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlv
bi5odHRwcy5odG1sLgorICAgICAgICAoY29uc3QuY29tbWFuZHMuYXN5bmMgYWRkVHJhbnNjZWl2
ZXIpOgorICAgICAgICAoY29uc3QuY29tbWFuZHMuYXN5bmMgc2ltcGxlQ29ubmVjdCk6CisgICAg
ICAgIChjb25zdC5jb21tYW5kcy5hc3luYyBnZXROdW1UcmFuc2NlaXZlcnMpOgorICAgICAgICAo
dHJ5LmFzeW5jIHdpbmRvdyk6CisgICAgICAgICh0cnkuYXN5bmMgdHJ5KToKKyAgICAgICAgKHN0
cmluZ19hcHBlYXJlZF9oZXJlLnBlZXIpOgorICAgICAgICAoYXN5bmMgc2V0dXBQZWVySWZyYW1l
KToKKyAgICAgICAgKHNldHVwUGVlclRvcExldmVsKToKKyAgICAgICAgKGFzeW5jIHJ1bik6Cisg
ICAgICAgIChhc3luYyBzZXR1cEFCKToKKyAgICAgICAgKGFzeW5jIHByb21pc2VfdGVzdCk6Cisg
ICAgICAgIChhc3luYyBwcm9taXNlX3Rlc3RfYm90aF9yb2xlcyk6CisgICAgICAgICogd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9u
LXN0cmVzcy1nbGFyZS1saW5lYXIuaHR0cHMtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVn
b3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVn
b3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBzLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAg
ICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5l
Z290aWF0aW9uLXN0cmVzcy1nbGFyZS5odHRwcy5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRp
b24uaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy5odG1sOgorICAg
ICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0RGVz
Y3JpcHRpb24tdHJhbnNjZWl2ZXItZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0RGVzY3JpcHRpb24tdHJhbnNjZWl2
ZXIuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLWV4cGVjdGVkLnR4dDoKKyAgICAgICAg
KiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURl
c2NyaXB0aW9uLW9mZmVyLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi12aWRlb0RldGVjdG9yVGVzdC5odG1sOgorICAgICAgICAqIHdl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1lbmNvZGluZ3MuaHRtbDoK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVs
cGVyLmpzOgorICAgICAgICAodmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzKToKKyAgICAgICAg
KHZhbGlkYXRlUnRwUGFyYW1ldGVycyk6CisgICAgICAgICh2YWxpZGF0ZUVuY29kaW5nUGFyYW1l
dGVycyk6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZl
ci1nZXRQYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMuaHRtbDoKKyAgICAgICAgKiB3
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1lbmNvZGUtc2FtZS10cmFjay10
d2ljZS5odHRwcy1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLWVuY29kZS1zYW1lLXRyYWNrLXR3aWNlLmh0dHBzLmh0
bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJh
bnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXRDb2RlY1ByZWZlcmVu
Y2VzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFu
c2NlaXZlci1zdG9wLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LWNvbnN0cnVjdG9yLmh0
bWw6CisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRh
dGUtZXhjaGFuZ2UuaHR0cHMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLmh0bWw6CisgICAg
ICAgICogd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0
cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hh
bmRvdmVyLWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci5odG1sOiBBZGRlZC4KKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1kZW11eGluZy1leHBlY3RlZC50eHQ6IEFk
ZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWRl
bXV4aW5nLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbDoKKyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL3Byb3RvY29sL3Vua25vd24tbWVkaWF0eXBlcy1leHBlY3RlZC50eHQ6IEFkZGVkLgor
ICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdW5rbm93bi1tZWRp
YXR5cGVzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHdlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvdmlkZW8tY29kZWNzLmh0dHBzLmh0bWw6CisgICAgICAgICogd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC93M2MtaW1wb3J0LmxvZzoKKyAgICAgICAgKiB3ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBzLmh0bWw6CisgICAgICAgICog
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy93M2MtaW1wb3J0LmxvZzoKKwogMjAyMC0xMS0xOSAg
WW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQg
Zm9yIFJUQ1BlZXJDb25uZWN0aW9uLm9uaWNlY2FuZGlkYXRlZXJyb3IgZXZlbnQKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNl
cnZlcnMtZXhwZWN0ZWQudHh0CmluZGV4IGVhZjViZTczYjE4NjVkMmE4ZjZmZWIzMjUzYmNkOGE0
NmQ0Y2M1MDIuLjM4MGM0N2NiN2FkZGYxMDY5NjdjMmMwZmUxMWM3Y2VkMTU1NjlhYTAgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ0NvbmZpZ3VyYXRpb24taWNlU2VydmVycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlv
bi1pY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dApAQCAtMTIwLDcgKzEyMCw3IEBAIEZBSUwgc2V0Q29u
ZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCBjcmVkZW50aWFsVHlwZSB0b2tlbiBzaG91bGQgdGhy
b3cgVHlwZUVycm9yCiAgICAgICB9XSB9KSIgZGlkIG5vdCB0aHJvdwogUEFTUyBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggdXJsIGZpZWxkIHNob3VsZCB0aHJvdyBUeXBlRXJy
b3IKIFBBU1Mgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCB1cmwgZmllbGQgc2hvdWxk
IHRocm93IFR5cGVFcnJvcgotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdp
dGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNzd29yZCwgYW5kIFJUQ09hdXRoQ3Jl
ZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0
X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgorRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
Y29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNzd29yZCwgYW5k
IG9iamVjdCBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0
X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVyczog
W3sKICAgICAgICAgdXJsczogJ3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLAogICAgICAgICBjcmVk
ZW50aWFsVHlwZTogJ3Bhc3N3b3JkJywKQEAgLTEzMCw3ICsxMzAsNyBAQCBGQUlMIG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBl
IHBhc3N3b3JkLAogICAgICAgICAgIGFjY2Vzc1Rva2VuOiAnJwogICAgICAgICB9CiAgICAgICB9
XSB9KSIgZGlkIG5vdCB0aHJvdwotRkFJTCBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRo
IHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFzc3dvcmQsIGFuZCBSVENPYXV0aENyZWRl
bnRpYWwgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF90
aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KK0ZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcp
IC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQgb2JqZWN0
IGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvciBhc3NlcnRfdGhyb3dz
X2RvbTogZnVuY3Rpb24gIigpID0+CiAgICAgICBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewogICAg
ICAgICB1cmxzOiAndHVybnM6dHVybi5leGFtcGxlLm9yZycsCiAgICAgICAgIGNyZWRlbnRpYWxU
eXBlOiAncGFzc3dvcmQnLApAQCAtMTU0LDEyICsxNTQsNCBAQCBGQUlMIHNldENvbmZpZ3VyYXRp
b24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCwgYW5k
IHN0cgogICAgICAgICB1c2VybmFtZTogJ3VzZXInLAogICAgICAgICBjcmVkZW50aWFsOiAnY3Jl
ZCcKICAgICAgIH1dIH0pIiBkaWQgbm90IHRocm93Ci1GQUlMIG5ldyBSVENQZWVyQ29ubmVjdGlv
bihjb25maWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRoIGFuZCBS
VENPQXV0aENyZWRlbnRpYWwgY3JlZGVudGlhbCBzaG91bGQgc3VjY2VlZCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAoc3RyaW5nKSAib2F1dGgiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVk
Ci1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVk
ZW50aWFsVHlwZSBvYXV0aCBhbmQgUlRDT0F1dGhDcmVkZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxk
IHN1Y2NlZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgIm9hdXRoIiBidXQgZ290
ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmln
KSAtIHdpdGggYm90aCB0dXJucyBhbmQgc3R1biBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRo
IGFuZCBSVENPQXV0aENyZWRlbnRpYWwgY3JlZGVudGlhbCBzaG91bGQgc3VjY2VlZCBhc3NlcnRf
ZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAib2F1dGgiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5k
ZWZpbmVkCi1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggYm90aCB0dXJucyBh
bmQgc3R1biBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRoIGFuZCBSVENPQXV0aENyZWRlbnRp
YWwgY3JlZGVudGlhbCBzaG91bGQgc3VjY2VlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3Ry
aW5nKSAib2F1dGgiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCi1GQUlMIG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbihjb25maWcpIC0gd2l0aCBzdHVuIHNlcnZlciwgY3JlZGVudGlhbFR5cGUg
b2F1dGgsIGFuZCBzdHJpbmcgY3JlZGVudGlhbCBzaG91bGQgc3VjY2VlZCBhc3NlcnRfZXF1YWxz
OiBleHBlY3RlZCAoc3RyaW5nKSAib2F1dGgiIGJ1dCBnb3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVk
Ci1GQUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggc3R1biBzZXJ2ZXIsIGNyZWRl
bnRpYWxUeXBlIG9hdXRoLCBhbmQgc3RyaW5nIGNyZWRlbnRpYWwgc2hvdWxkIHN1Y2NlZWQgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgIm9hdXRoIiBidXQgZ290ICh1bmRlZmluZWQp
IHVuZGVmaW5lZAotRkFJTCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggc3R1
biBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQgUlRDT0F1dGhDcmVkZW50aWFs
IGNyZWRlbnRpYWwgc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmlu
ZykgInBhc3N3b3JkIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJTCBzZXRDb25m
aWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIHN0dW4gc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNz
d29yZCwgYW5kIFJUQ09BdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCBzdWNjZWVkIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJwYXNzd29yZCIgYnV0IGdvdCAodW5kZWZp
bmVkKSB1bmRlZmluZWQKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLmh0bWwg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVEND
b25maWd1cmF0aW9uLWljZVNlcnZlcnMuaHRtbAppbmRleCAyZWY5OWJmNTljOGNjMTEyNzNlOTkz
ODhiMTQ0NGJmMjUwNjdjYjIyLi4xY2JmMWQ2YzFkYTQ3YjgwZDliM2Q3MTczZjc4MDYyZjJlNDli
ZjEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMuaHRtbAorKysgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0
aW9uLWljZVNlcnZlcnMuaHRtbApAQCAtMjksMjEgKzI5LDE0IEBACiAKICAgICA0LjIuMi4gIFJU
Q0ljZUNyZWRlbnRpYWxUeXBlIEVudW0KICAgICAgIGVudW0gUlRDSWNlQ3JlZGVudGlhbFR5cGUg
ewotICAgICAgICAicGFzc3dvcmQiLAotICAgICAgICAib2F1dGgiCi0gICAgICB9OwotCi0gICAg
NC4yLjMuICBSVENPQXV0aENyZWRlbnRpYWwgRGljdGlvbmFyeQotICAgICAgZGljdGlvbmFyeSBS
VENPQXV0aENyZWRlbnRpYWwgewotICAgICAgICByZXF1aXJlZCBET01TdHJpbmcgbWFjS2V5Owot
ICAgICAgICByZXF1aXJlZCBET01TdHJpbmcgYWNjZXNzVG9rZW47CisgICAgICAgICJwYXNzd29y
ZCIKICAgICAgIH07CiAKICAgICA0LjIuNC4gIFJUQ0ljZVNlcnZlciBEaWN0aW9uYXJ5CiAgICAg
ICBkaWN0aW9uYXJ5IFJUQ0ljZVNlcnZlciB7CiAgICAgICAgIHJlcXVpcmVkIChET01TdHJpbmcg
b3Igc2VxdWVuY2U8RE9NU3RyaW5nPikgdXJsczsKICAgICAgICAgICAgICAgICAgRE9NU3RyaW5n
ICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VybmFtZTsKLSAgICAgICAgICAgICAgICAgKERP
TVN0cmluZyBvciBSVENPQXV0aENyZWRlbnRpYWwpICBjcmVkZW50aWFsOworICAgICAgICAgICAg
ICAgICBET01TdHJpbmcgICAgICAgICAgICAgICAgICAgICAgICAgIGNyZWRlbnRpYWw7CiAgICAg
ICAgICAgICAgICAgIFJUQ0ljZUNyZWRlbnRpYWxUeXBlICAgICAgICAgICAgICAgY3JlZGVudGlh
bFR5cGUgPSAicGFzc3dvcmQiOwogICAgICAgfTsKICAgICovCkBAIC0zNzUsNyArMzY4LDcgQEAK
ICAgICAgICAgICBhY2Nlc3NUb2tlbjogJycKICAgICAgICAgfQogICAgICAgfV0gfSkpOwotICB9
LCAnd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQgUlRDT2F1
dGhDcmVkZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvcicp
OworICB9LCAnd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQg
b2JqZWN0IGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJvcicpOwogCiAg
IC8qCiAgICAgNC4zLjIuICBUbyBzZXQgYSBjb25maWd1cmF0aW9uCkBAIC0zOTMsMTAyICszODYs
NiBAQAogICAgICAgfV0gfSkpOwogICB9LCAnd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxU
eXBlIG9hdXRoLCBhbmQgc3RyaW5nIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nl
c3NFcnJvcicpOwogCi0gIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgY29uc3QgcGMgPSBt
YWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewotICAgICAgdXJsczogJ3R1cm5zOnR1cm4uZXhhbXBsZS5v
cmcnLAotICAgICAgY3JlZGVudGlhbFR5cGU6ICdvYXV0aCcsCi0gICAgICB1c2VybmFtZTogJ3Vz
ZXInLAotICAgICAgY3JlZGVudGlhbDogewotICAgICAgICBtYWNLZXk6ICdtYWMnLAotICAgICAg
ICBhY2Nlc3NUb2tlbjogJ3Rva2VuJwotICAgICAgfQotICAgIH1dIH0pOwotCi0gICAgY29uc3Qg
eyBpY2VTZXJ2ZXJzIH0gPSBwYy5nZXRDb25maWd1cmF0aW9uKCk7Ci0gICAgYXNzZXJ0X2VxdWFs
cyhpY2VTZXJ2ZXJzLmxlbmd0aCwgMSk7Ci0KLSAgICBjb25zdCBzZXJ2ZXIgPSBpY2VTZXJ2ZXJz
WzBdOwotICAgIGFzc2VydF9hcnJheV9lcXVhbHMoc2VydmVyLnVybHMsIFsndHVybnM6dHVybi5l
eGFtcGxlLm9yZyddKTsKLSAgICBhc3NlcnRfZXF1YWxzKHNlcnZlci5jcmVkZW50aWFsVHlwZSwg
J29hdXRoJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhzZXJ2ZXIudXNlcm5hbWUsICd1c2VyJyk7Ci0K
LSAgICBjb25zdCB7IGNyZWRlbnRpYWwgfSA9IHNlcnZlcjsKLSAgICBhc3NlcnRfZXF1YWxzKGNy
ZWRlbnRpYWwubWFjS2V5LCAnbWFjJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjcmVkZW50aWFsLmFj
Y2Vzc1Rva2VuLCAndG9rZW4nKTsKLQotICB9LCBgd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRp
YWxUeXBlIG9hdXRoIGFuZCBSVENPQXV0aENyZWRlbnRpYWwgY3JlZGVudGlhbCBzaG91bGQgc3Vj
Y2VlZGApOwotCi0gIGNvbmZpZ190ZXN0KG1ha2VQYyA9PiB7Ci0gICAgY29uc3QgcGMgPSBtYWtl
UGMoeyBpY2VTZXJ2ZXJzOiBbewotICAgICAgdXJsczogWyd0dXJuczp0dXJuLmV4YW1wbGUub3Jn
JywgJ3N0dW46c3R1bjEuZXhhbXBsZS5uZXQnXSwKLSAgICAgIGNyZWRlbnRpYWxUeXBlOiAnb2F1
dGgnLAotICAgICAgdXNlcm5hbWU6ICd1c2VyJywKLSAgICAgIGNyZWRlbnRpYWw6IHsKLSAgICAg
ICAgbWFjS2V5OiAnbWFjJywKLSAgICAgICAgYWNjZXNzVG9rZW46ICd0b2tlbicKLSAgICAgIH0K
LSAgICB9XSB9KTsKLQotICAgIGNvbnN0IHsgaWNlU2VydmVycyB9ID0gcGMuZ2V0Q29uZmlndXJh
dGlvbigpOwotICAgIGFzc2VydF9lcXVhbHMoaWNlU2VydmVycy5sZW5ndGgsIDEpOwotCi0gICAg
Y29uc3Qgc2VydmVyID0gaWNlU2VydmVyc1swXTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNl
cnZlci51cmxzLCBbJ3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLCAnc3R1bjpzdHVuMS5leGFtcGxl
Lm5ldCddKTsKLSAgICBhc3NlcnRfZXF1YWxzKHNlcnZlci5jcmVkZW50aWFsVHlwZSwgJ29hdXRo
Jyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhzZXJ2ZXIudXNlcm5hbWUsICd1c2VyJyk7Ci0KLSAgICBj
b25zdCB7IGNyZWRlbnRpYWwgfSA9IHNlcnZlcjsKLSAgICBhc3NlcnRfZXF1YWxzKGNyZWRlbnRp
YWwubWFjS2V5LCAnbWFjJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjcmVkZW50aWFsLmFjY2Vzc1Rv
a2VuLCAndG9rZW4nKTsKLQotICB9LCBgd2l0aCBib3RoIHR1cm5zIGFuZCBzdHVuIHNlcnZlciwg
Y3JlZGVudGlhbFR5cGUgb2F1dGggYW5kIFJUQ09BdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNo
b3VsZCBzdWNjZWVkYCk7Ci0KLSAgLy8gY3JlZGVudGlhbCB0eXBlIHZhbGlkYXRpb24gaXMgaWdu
b3JlZCB3aGVuIHNjaGVtZSBuYW1lIGlzIHN0dW4KLSAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsK
LSAgICBjb25zdCBwYyA9IG1ha2VQYyh7IGljZVNlcnZlcnM6IFt7Ci0gICAgICB1cmxzOiAnc3R1
bjpzdHVuMS5leGFtcGxlLm5ldCcsCi0gICAgICBjcmVkZW50aWFsVHlwZTogJ29hdXRoJywKLSAg
ICAgIHVzZXJuYW1lOiAndXNlcicsCi0gICAgICBjcmVkZW50aWFsOiAnY3JlZCcKLSAgICB9XSB9
KTsKLQotICAgIGNvbnN0IHsgaWNlU2VydmVycyB9ID0gcGMuZ2V0Q29uZmlndXJhdGlvbigpOwot
ICAgIGFzc2VydF9lcXVhbHMoaWNlU2VydmVycy5sZW5ndGgsIDEpOwotICAgIGNvbnN0IHNlcnZl
ciA9IGljZVNlcnZlcnNbMF07Ci0KLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNlcnZlci51cmxz
LCBbJ3N0dW46c3R1bjEuZXhhbXBsZS5uZXQnXSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhzZXJ2ZXIu
Y3JlZGVudGlhbFR5cGUsICdvYXV0aCcpOwotICAgIGFzc2VydF9lcXVhbHMoc2VydmVyLnVzZXJu
YW1lLCAndXNlcicpOwotICAgIGFzc2VydF9lcXVhbHMoc2VydmVyLmNyZWRlbnRpYWwsICdjcmVk
Jyk7Ci0KLSAgfSwgJ3dpdGggc3R1biBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRoLCBhbmQg
c3RyaW5nIGNyZWRlbnRpYWwgc2hvdWxkIHN1Y2NlZWQnKTsKLQotICAvLyBjcmVkZW50aWFsIHR5
cGUgdmFsaWRhdGlvbiBpcyBpZ25vcmVkIHdoZW4gc2NoZW1lIG5hbWUgaXMgc3R1bgotICBjb25m
aWdfdGVzdChtYWtlUGMgPT4gewotICAgIGNvbnN0IHBjID0gbWFrZVBjKHsgaWNlU2VydmVyczog
W3sKLSAgICAgIHVybHM6ICdzdHVuOnN0dW4xLmV4YW1wbGUubmV0JywKLSAgICAgIGNyZWRlbnRp
YWxUeXBlOiAncGFzc3dvcmQnLAotICAgICAgdXNlcm5hbWU6ICd1c2VyJywKLSAgICAgIGNyZWRl
bnRpYWw6IHsKLSAgICAgICAgbWFjS2V5OiAnJywKLSAgICAgICAgYWNjZXNzVG9rZW46ICcnCi0g
ICAgICB9Ci0gICAgfV0gfSk7Ci0KLSAgICBjb25zdCB7IGljZVNlcnZlcnMgfSA9IHBjLmdldENv
bmZpZ3VyYXRpb24oKTsKLSAgICBhc3NlcnRfZXF1YWxzKGljZVNlcnZlcnMubGVuZ3RoLCAxKTsK
LQotICAgIGNvbnN0IHNlcnZlciA9IGljZVNlcnZlcnNbMF07Ci0gICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhzZXJ2ZXIudXJscywgWydzdHVuOnN0dW4xLmV4YW1wbGUubmV0J10pOwotICAgIGFzc2Vy
dF9lcXVhbHMoc2VydmVyLmNyZWRlbnRpYWxUeXBlLCAncGFzc3dvcmQnKTsKLSAgICBhc3NlcnRf
ZXF1YWxzKHNlcnZlci51c2VybmFtZSwgJ3VzZXInKTsKLQotICAgIGNvbnN0IHsgY3JlZGVudGlh
bCB9ID0gc2VydmVyOwotICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlhbC5tYWNLZXksICcnKTsK
LSAgICBhc3NlcnRfZXF1YWxzKGNyZWRlbnRpYWwuYWNjZXNzVG9rZW4sICcnKTsKLQotICB9LCAn
d2l0aCBzdHVuIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFzc3dvcmQsIGFuZCBSVENPQXV0aENy
ZWRlbnRpYWwgY3JlZGVudGlhbCBzaG91bGQgc3VjY2VlZCcpOwotCiAgIC8qCiAgICAgVGVzdGVk
CiAgICAgICA0LjMuMi4gIFRvIHNldCBhIGNvbmZpZ3VyYXRpb24KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFu
bmVsLWJpbmFyeVR5cGUud2luZG93LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFyeVR5cGUu
d2luZG93LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40Zjc0OWJlYzFmNGNmZTI1YzFlOTVhM2E4
ZTkxOTZhMzJlNDNlM2RhCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53
aW5kb3ctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTkgQEAKKworUEFTUyBTZXR0aW5nIGJpbmFy
eVR5cGUgdG8gJ2Jsb2InIHNob3VsZCBzdWNjZWVkCitQQVNTIFNldHRpbmcgYmluYXJ5VHlwZSB0
byAnYXJyYXlidWZmZXInIHNob3VsZCBzdWNjZWVkCitGQUlMIFNldHRpbmcgaW52YWxpZCBiaW5h
cnlUeXBlICdqZWxseWZpc2gnIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3NlcnRfdGhyb3dz
X2RvbTogZnVuY3Rpb24gIigpID0+IHsKKyAgICAgIGRjLmJpbmFyeVR5cGUgPSBiaW5hcnlUeXBl
OworICAgIH0iIHRocmV3IG9iamVjdCAiVHlwZU1pc21hdGNoRXJyb3I6IFRoZSB0eXBlIG9mIGFu
IG9iamVjdCB3YXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGV4cGVjdGVkIHR5cGUgb2YgdGhlIHBh
cmFtZXRlciBhc3NvY2lhdGVkIHRvIHRoZSBvYmplY3QuIiB0aGF0IGlzIG5vdCBhIERPTUV4Y2Vw
dGlvbiBTeW50YXhFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDE3LCBleHBlY3Rl
ZCAxMgorRkFJTCBTZXR0aW5nIGludmFsaWQgYmluYXJ5VHlwZSAnYXJyYXlidWZmZXIgJyBzaG91
bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB7
CisgICAgICBkYy5iaW5hcnlUeXBlID0gYmluYXJ5VHlwZTsKKyAgICB9IiB0aHJldyBvYmplY3Qg
IlR5cGVNaXNtYXRjaEVycm9yOiBUaGUgdHlwZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJs
ZSB3aXRoIHRoZSBleHBlY3RlZCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0
aGUgb2JqZWN0LiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3Bl
cnR5ICJjb2RlIiBpcyBlcXVhbCB0byAxNywgZXhwZWN0ZWQgMTIKK0ZBSUwgU2V0dGluZyBpbnZh
bGlkIGJpbmFyeVR5cGUgJycgc2hvdWxkIHRocm93IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3Nf
ZG9tOiBmdW5jdGlvbiAiKCkgPT4geworICAgICAgZGMuYmluYXJ5VHlwZSA9IGJpbmFyeVR5cGU7
CisgICAgfSIgdGhyZXcgb2JqZWN0ICJUeXBlTWlzbWF0Y2hFcnJvcjogVGhlIHR5cGUgb2YgYW4g
b2JqZWN0IHdhcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcGFy
YW1ldGVyIGFzc29jaWF0ZWQgdG8gdGhlIG9iamVjdC4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0
aW9uIFN5bnRheEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMTcsIGV4cGVjdGVk
IDEyCitGQUlMIFNldHRpbmcgaW52YWxpZCBiaW5hcnlUeXBlICdudWxsJyBzaG91bGQgdGhyb3cg
U3ludGF4RXJyb3IgYXNzZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB7CisgICAgICBk
Yy5iaW5hcnlUeXBlID0gYmluYXJ5VHlwZTsKKyAgICB9IiB0aHJldyBvYmplY3QgIlR5cGVNaXNt
YXRjaEVycm9yOiBUaGUgdHlwZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJsZSB3aXRoIHRo
ZSBleHBlY3RlZCB0eXBlIG9mIHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0aGUgb2JqZWN0
LiIgdGhhdCBpcyBub3QgYSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3BlcnR5ICJjb2Rl
IiBpcyBlcXVhbCB0byAxNywgZXhwZWN0ZWQgMTIKK0ZBSUwgU2V0dGluZyBpbnZhbGlkIGJpbmFy
eVR5cGUgJ3VuZGVmaW5lZCcgc2hvdWxkIHRocm93IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3Nf
ZG9tOiBmdW5jdGlvbiAiKCkgPT4geworICAgICAgZGMuYmluYXJ5VHlwZSA9IGJpbmFyeVR5cGU7
CisgICAgfSIgdGhyZXcgb2JqZWN0ICJUeXBlTWlzbWF0Y2hFcnJvcjogVGhlIHR5cGUgb2YgYW4g
b2JqZWN0IHdhcyBpbmNvbXBhdGlibGUgd2l0aCB0aGUgZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcGFy
YW1ldGVyIGFzc29jaWF0ZWQgdG8gdGhlIG9iamVjdC4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0
aW9uIFN5bnRheEVycm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMTcsIGV4cGVjdGVk
IDEyCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFyeVR5cGUud2luZG93Lmh0bWwgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hh
bm5lbC1iaW5hcnlUeXBlLndpbmRvdy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjIzODI5MTM1MjhlNjkzYjNh
NWQ1NmM2NjBhNDUwNjA5ODBiNTQ4YzMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1iaW5h
cnlUeXBlLndpbmRvdy5odG1sCkBAIC0wLDAgKzEgQEAKKzwhLS0gVGhpcyBmaWxlIGlzIHJlcXVp
cmVkIGZvciBXZWJLaXQgdGVzdCBpbmZyYXN0cnVjdHVyZSB0byBydW4gdGhlIHRlbXBsYXRlZCB0
ZXN0IC0tPgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIGZpbGUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVs
LWJpbmFyeVR5cGUud2luZG93LmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53aW5kb3cuanMKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYzYzMjgxYmQ1MWIwYTAxZGUyNzc4NWMxZTE0NzkyYTZiNTFlMDYyNQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFyeVR5cGUud2luZG93LmpzCkBAIC0wLDAgKzEsMjcg
QEAKKyd1c2Ugc3RyaWN0JzsKKworY29uc3QgdmFsaWRCaW5hcnlUeXBlcyA9IFsnYmxvYicsICdh
cnJheWJ1ZmZlciddOworY29uc3QgaW52YWxpZEJpbmFyeVR5cGVzID0gWydqZWxseWZpc2gnLCAn
YXJyYXlidWZmZXIgJywgJycsIG51bGwsIHVuZGVmaW5lZF07CisKK2ZvciAoY29uc3QgYmluYXJ5
VHlwZSBvZiB2YWxpZEJpbmFyeVR5cGVzKSB7CisgIHRlc3QoKHQpID0+IHsKKyAgICBjb25zdCBw
YyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisgICAgY29uc3QgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgndGVzdC1iaW5h
cnktdHlwZScpOworCisgICAgZGMuYmluYXJ5VHlwZSA9IGJpbmFyeVR5cGU7CisgICAgYXNzZXJ0
X2VxdWFscyhkYy5iaW5hcnlUeXBlLCBiaW5hcnlUeXBlLCBgZGMuYmluYXJ5VHlwZSBzaG91bGQg
YmUgJyR7YmluYXJ5VHlwZX0nYCk7CisgIH0sIGBTZXR0aW5nIGJpbmFyeVR5cGUgdG8gJyR7Ymlu
YXJ5VHlwZX0nIHNob3VsZCBzdWNjZWVkYCk7Cit9CisKK2ZvciAoY29uc3QgYmluYXJ5VHlwZSBv
ZiBpbnZhbGlkQmluYXJ5VHlwZXMpIHsKKyAgdGVzdCgodCkgPT4geworICAgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9z
ZSgpKTsKKyAgICBjb25zdCBkYyA9IHBjLmNyZWF0ZURhdGFDaGFubmVsKCd0ZXN0LWJpbmFyeS10
eXBlJyk7CisKKyAgICBhc3NlcnRfdGhyb3dzX2RvbSgnU3ludGF4RXJyb3InLCAoKSA9PiB7Cisg
ICAgICBkYy5iaW5hcnlUeXBlID0gYmluYXJ5VHlwZTsKKyAgICB9KTsKKyAgfSwgYFNldHRpbmcg
aW52YWxpZCBiaW5hcnlUeXBlICcke2JpbmFyeVR5cGV9JyBzaG91bGQgdGhyb3cgU3ludGF4RXJy
b3JgKTsKK30KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtZ2V0UmVtb3RlQ2VydGlmaWNhdGVzLWV4
cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQtZ2V0UmVtb3RlQ2VydGlmaWNhdGVzLWV4cGVjdGVkLnR4
dAppbmRleCBmZDAwYzdjZmRlNjA0NjFiYzA4NDc1YTI5YzM5NmIzMTliNDgzYzVjLi4zZTVhNTkx
YTA2M2FiMjcxNGFhYTBmMTZlMTVjZmZkMWIxYTNmYTgwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0
LWdldFJlbW90ZUNlcnRpZmljYXRlcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1nZXRS
ZW1vdGVDZXJ0aWZpY2F0ZXMtZXhwZWN0ZWQudHh0CkBAIC0xLDMgKzEsMyBAQAogCi1GQUlMIFJU
Q0R0bHNUcmFuc3BvcnQucHJvdG90eXBlLmdldFJlbW90ZUNlcnRpZmljYXRlcyBDYW4ndCBmaW5k
IHZhcmlhYmxlOiBSVENTY3RwVHJhbnNwb3J0CitGQUlMIFJUQ0R0bHNUcmFuc3BvcnQucHJvdG90
eXBlLmdldFJlbW90ZUNlcnRpZmljYXRlcyB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZh
bHVhdGluZyAnZHRsc1RyYW5zcG9ydC5zdGF0ZScpCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFuc3BvcnQt
Z2V0UmVtb3RlQ2VydGlmaWNhdGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRpZmlj
YXRlcy5odG1sCmluZGV4IDhhZjk1YTg0ZDU3NGUyMGY5YjBiYmZmOTY0ZWQwNjRlNGUxN2U2MmYu
Ljg5OWU2MDNjYmUwZmUxZjAyM2M4ZDc2MzA1NWM1NzhlZjYyYmI5NmYgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNU
cmFuc3BvcnQtZ2V0UmVtb3RlQ2VydGlmaWNhdGVzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1nZXRS
ZW1vdGVDZXJ0aWZpY2F0ZXMuaHRtbApAQCAtNDIsMjMgKzQyLDEzIEBACiAgICAgY29uc3QgcGMy
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIu
Y2xvc2UoKSk7CiAKLSAgICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ3Rlc3QnKTsKKyAgICBwYzEu
YWRkVHJhY2sodHJhY2tGYWN0b3JpZXMuYXVkaW8oKSk7CiAgICAgZXhjaGFuZ2VJY2VDYW5kaWRh
dGVzKHBjMSwgcGMyKTsKIAogICAgIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpCiAgICAg
LnRoZW4odC5zdGVwX2Z1bmMoKCkgPT4gewotICAgICAgLy8gcGMuc2N0cCBpcyBzZXQgd2hlbiBz
ZXQqRGVzY3JpcHRpb24oYW5zd2VyKSBpcyBjYWxsZWQKLSAgICAgIGNvbnN0IHNjdHBUcmFuc3Bv
cnQxID0gcGMxLnNjdHA7Ci0gICAgICBjb25zdCBzY3RwVHJhbnNwb3J0MiA9IHBjMi5zY3RwOwot
Ci0gICAgICBhc3NlcnRfdHJ1ZShzY3RwVHJhbnNwb3J0MSBpbnN0YW5jZW9mIFJUQ1NjdHBUcmFu
c3BvcnQsCi0gICAgICAgICdFeHBlY3QgcGMuc2N0cCB0byBiZSBzZXQgdG8gdmFsaWQgUlRDU2N0
cFRyYW5zcG9ydCcpOwotCi0gICAgICBhc3NlcnRfdHJ1ZShzY3RwVHJhbnNwb3J0MiBpbnN0YW5j
ZW9mIFJUQ1NjdHBUcmFuc3BvcnQsCi0gICAgICAgICdFeHBlY3QgcGMuc2N0cCB0byBiZSBzZXQg
dG8gdmFsaWQgUlRDU2N0cFRyYW5zcG9ydCcpOwotCi0gICAgICBjb25zdCBkdGxzVHJhbnNwb3J0
MSA9IHNjdHBUcmFuc3BvcnQxLnRyYW5zcG9ydDsKLSAgICAgIGNvbnN0IGR0bHNUcmFuc3BvcnQy
ID0gc2N0cFRyYW5zcG9ydDIudHJhbnNwb3J0OworICAgICAgY29uc3QgZHRsc1RyYW5zcG9ydDEg
PSBwYzEuZ2V0U2VuZGVycygpWzBdLnRyYW5zcG9ydDsKKyAgICAgIGNvbnN0IGR0bHNUcmFuc3Bv
cnQyID0gcGMyLmdldFJlY2VpdmVycygpWzBdLnRyYW5zcG9ydDsKIAogICAgICAgY29uc3QgdGVz
dGVkVHJhbnNwb3J0cyA9IG5ldyBTZXQoKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tU0xE
LVNSRC10aW1pbmcuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tU0xELVNSRC10aW1p
bmcuaHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjBjYjdlYjU3OTM0ODRiOGNhOTUxNDQ3
MTg1NjVlOTJmZGFiNWViMDYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JE
LXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwzIEBACisKK0ZBSUwgc2V0TG9j
YWxEZXNjcmlwdGlvbiBhbmQgc2V0UmVtb3RlRGVzY3JpcHRpb24gYXJlIG5vdCByYWN5IHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRT
dGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2ln
bmFsaW5nIHN0YXRlIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRpbWluZy5o
dHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tU0xELVNSRC10aW1pbmcuaHR0cHMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4zNmJkZTA2Yzk2MzQyNjliMTdjZDU2NWIyMGJjODBiNDExZDFkOTI1Ci0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tU0xELVNSRC10aW1pbmcuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDI0IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1l
PSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT48L3RpdGxlPgorPHNjcmlwdCBzcmM9
L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3Qn
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNvbnN0
IHNpZ25hbGluZ1N0YXRlcyA9IFtdOworICBwYy5vbnNpZ25hbGluZ3N0YXRlY2hhbmdlID0gZXYg
PT4gc2lnbmFsaW5nU3RhdGVzLnB1c2gocGMuc2lnbmFsaW5nU3RhdGUpOworICBwYy5hZGRUcmFu
c2NlaXZlcignYXVkaW8nLCB7ZGlyZWN0aW9uOidyZWN2b25seSd9KTsKKyAgY29uc3Qgb2ZmZXIg
PSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOworICBjb25zdCBzbGRQcm9taXNlID0gcGMuc2V0TG9j
YWxEZXNjcmlwdGlvbihvZmZlcik7CisgIGNvbnN0IHNyZFByb21pc2UgPSBwYy5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihvZmZlcik7CisgIGF3YWl0IFByb21pc2UuYWxsKFtzbGRQcm9taXNlLCBzcmRQ
cm9taXNlXSk7CisgIGFzc2VydF9hcnJheV9lcXVhbHMoc2lnbmFsaW5nU3RhdGVzLAorICAgICAg
ICAgICAgICAgICAgICAgIFsnaGF2ZS1sb2NhbC1vZmZlcicsJ3N0YWJsZScsJ2hhdmUtcmVtb3Rl
LW9mZmVyJ10pOworfSwgJ3NldExvY2FsRGVzY3JpcHRpb24gYW5kIHNldFJlbW90ZURlc2NyaXB0
aW9uIGFyZSBub3QgcmFjeScpOworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWFkZEljZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1cC1leHBlY3RlZC50eHQKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uMmM1ODM3NDNkMjcyOWI2NzMwYTYyYTlmOTllMmNmYjk5MjIzNThkNwotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAtZXhwZWN0
ZWQudHh0CkBAIC0wLDAgKzEsNSBAQAorCitGQUlMIENhbmRpZGF0ZXMgYXJlIGFkZGVkIGR5bmFt
aWNhbGx5OyBjb25uZWN0aW9uIHNob3VsZCB3b3JrIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJvcjogdW5kZWZpbmVkIGlzIG5vdCBh
biBvYmplY3QgKGV2YWx1YXRpbmcgJ3RyYW5zcG9ydC5zdGF0ZScpIgorRkFJTCBDYW5kaWRhdGVz
IGFyZSBhZGRlZCBhdCBQQzE7IGNvbm5lY3Rpb24gc2hvdWxkIHdvcmsgcHJvbWlzZV90ZXN0OiBV
bmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmlu
ZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndHJhbnNwb3J0LnN0YXRlJykiCitGQUlM
IENhbmRpZGF0ZXMgYXJlIGFkZGVkIGF0IFBDMjsgY29ubmVjdGlvbiBzaG91bGQgd29yayBwcm9t
aXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJy
b3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0cmFuc3BvcnQuc3Rh
dGUnKSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rp
b25TZXR1cC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWNvbm5lY3Rpb25TZXR1
cC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjExZmM0ZTRmYTBjMjIyZGY0ZTE0NjlhNTI1ODI5NWJmMzcwMzUy
M2MKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtY29ubmVj
dGlvblNldHVwLmh0bWwKQEAgLTAsMCArMSwxMDYgQEAKKzwhZG9jdHlwZSBodG1sPgorPHRpdGxl
PlRlc3QgUlRDUGVlckNvbm5lY3Rpb24ucHJvdG90eXBlLmFkZEljZUNhbmRpZGF0ZTwvdGl0bGU+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+
CisgICd1c2Ugc3RyaWN0JzsKKworLy8gVGhpcyB0ZXN0IG1heSBiZSBmbGFreSwgc28gaXQncyBp
biBpdHMgb3duIGZpbGUuCisvLyBUaGUgdGVzdCBiZWxvbmdzIGluIFJUQ1BlZXJDb25uZWN0aW9u
LWFkZEljZUNhbmRpZGF0ZS4KKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYzEu
YWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CisKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjMSwg
cGMyKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlcihwYzEsIHBjMik7CisgIGNvbnN0IGFuc3dlciA9
IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgLy8gTm90ZSB0aGF0IHNlcXVlbmNlIG9mIHRo
ZSBmb2xsb3dpbmcgdHdvIGNhbGxzIGlzIGNyaXRpY2FsCisgIC8vIGZvciB0ZXN0IHN0YWJpbGl0
eS4KKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CisgIGF3YWl0IHBj
Mi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgIGF3YWl0IHdhaXRGb3JTdGF0ZSh0cmFu
c2NlaXZlci5zZW5kZXIudHJhbnNwb3J0LCAnY29ubmVjdGVkJyk7Cit9LCAnQ2FuZGlkYXRlcyBh
cmUgYWRkZWQgZHluYW1pY2FsbHk7IGNvbm5lY3Rpb24gc2hvdWxkIHdvcmsnKTsKKworcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgp
KTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYzEuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CisK
KyAgbGV0IGNhbmRpZGF0ZXMxdG8yID0gW107CisgIGxldCBjYW5kaWRhdGVzMnRvMSA9IFtdOwor
ICBwYzEub25pY2VjYW5kaWRhdGUgPSBldmVudCA9PiB7CisgICAgaWYgKGV2ZW50LmNhbmRpZGF0
ZSkgeworICAgICAgY2FuZGlkYXRlczF0bzIucHVzaChldmVudC5jYW5kaWRhdGUpOworICAgIH0K
KyAgfQorICBwYzIub25pY2VjYW5kaWRhdGUgPSBldmVudCA9PiB7CisgICAgaWYgKGV2ZW50LmNh
bmRpZGF0ZSkgeworICAgICAgY2FuZGlkYXRlczJ0bzEucHVzaChldmVudC5jYW5kaWRhdGUpOwor
ICAgIH0KKyAgfQorICBjb25zdCBwYzJHYXRoZXJlZENhbmRpZGF0ZXMgPSBuZXcgUHJvbWlzZSgo
cmVzb2x2ZSkgPT4geworICAgIHBjMi5hZGRFdmVudExpc3RlbmVyKCdpY2VnYXRoZXJpbmdzdGF0
ZWNoYW5nZScsICgpID0+IHsKKyAgICAgIGlmIChwYzIuaWNlR2F0aGVyaW5nU3RhdGUgPT0gJ2Nv
bXBsZXRlJykgeworICAgICAgICByZXNvbHZlKCk7CisgICAgICB9CisgICAgfSk7CisgIH0pOwor
ICBhd2FpdCBleGNoYW5nZU9mZmVyKHBjMSwgcGMyKTsKKyAgbGV0IGFuc3dlciA9IGF3YWl0IHBj
Mi5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dl
cik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgIGF3YWl0IHBj
MkdhdGhlcmVkQ2FuZGlkYXRlczsKKyAgLy8gQWRkIGNhbmRpZGF0ZXMgdG8gcGMxLCBlbnN1cmlu
ZyB0aGF0IGl0IGdvZXMgdG8gImNvbm5lY3RpbmciIHN0YXRlIGJlZm9yZSAiY29ubmVjdGVkIi4K
KyAgZm9yIChsZXQgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMydG8xKSB7CisgICAgYXdhaXQgcGMx
LmFkZEljZUNhbmRpZGF0ZShjYW5kaWRhdGUpOworICB9CisgIGF3YWl0IHdhaXRGb3JTdGF0ZSh0
cmFuc2NlaXZlci5zZW5kZXIudHJhbnNwb3J0LCAnY29ubmVjdGluZycpOworICBhd2FpdCB3YWl0
Rm9yU3RhdGUodHJhbnNjZWl2ZXIuc2VuZGVyLnRyYW5zcG9ydCwgJ2Nvbm5lY3RlZCcpOworfSwg
J0NhbmRpZGF0ZXMgYXJlIGFkZGVkIGF0IFBDMTsgY29ubmVjdGlvbiBzaG91bGQgd29yaycpOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOworICBjb25zdCB0cmFuc2NlaXZlciA9IHBjMS5hZGRUcmFuc2NlaXZlcigndmlk
ZW8nKTsKKworICBsZXQgY2FuZGlkYXRlczF0bzIgPSBbXTsKKyAgbGV0IGNhbmRpZGF0ZXMydG8x
ID0gW107CisgIHBjMS5vbmljZWNhbmRpZGF0ZSA9IGV2ZW50ID0+IHsKKyAgICBpZiAoZXZlbnQu
Y2FuZGlkYXRlKSB7CisgICAgICBjYW5kaWRhdGVzMXRvMi5wdXNoKGV2ZW50LmNhbmRpZGF0ZSk7
CisgICAgfQorICB9CisgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGV2ZW50ID0+IHsKKyAgICBpZiAo
ZXZlbnQuY2FuZGlkYXRlKSB7CisgICAgICBjYW5kaWRhdGVzMnRvMS5wdXNoKGV2ZW50LmNhbmRp
ZGF0ZSk7CisgICAgfQorICB9CisgIGNvbnN0IHBjMUdhdGhlcmVkQ2FuZGlkYXRlcyA9IG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7CisgICAgcGMxLmFkZEV2ZW50TGlzdGVuZXIoJ2ljZWdhdGhl
cmluZ3N0YXRlY2hhbmdlJywgKCkgPT4geworICAgICAgaWYgKHBjMS5pY2VHYXRoZXJpbmdTdGF0
ZSA9PSAnY29tcGxldGUnKSB7CisgICAgICAgIHJlc29sdmUoKTsKKyAgICAgIH0KKyAgICB9KTsK
KyAgfSk7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXIocGMxLCBwYzIpOworICBsZXQgYW5zd2VyID0g
YXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRp
b24oYW5zd2VyKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAg
YXdhaXQgcGMxR2F0aGVyZWRDYW5kaWRhdGVzOworICAvLyBBZGQgY2FuZGlkYXRlcyB0byBwYzIK
KyAgZm9yIChsZXQgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMxdG8yKSB7CisgICAgYXdhaXQgcGMy
LmFkZEljZUNhbmRpZGF0ZShjYW5kaWRhdGUpOworICB9CisgIGF3YWl0IHdhaXRGb3JTdGF0ZSh0
cmFuc2NlaXZlci5zZW5kZXIudHJhbnNwb3J0LCAnY29ubmVjdGVkJyk7Cit9LCAnQ2FuZGlkYXRl
cyBhcmUgYWRkZWQgYXQgUEMyOyBjb25uZWN0aW9uIHNob3VsZCB3b3JrJyk7CisKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQKaW5kZXggYzZlMzk0ZmJh
MmZjZmEwYzNjZjY2NzY0OTgyMTZlY2NmMjA0YTI4ZC4uNjZjMDBhYzU1YWJiZWQ2MjBlNmMzMjBh
YzYwODliYjY3OTJiMTFhZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRl
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtZXhwZWN0ZWQu
dHh0CkBAIC04LDcgKzgsNyBAQCBGQUlMIGFkZEljZUNhbmRpZGF0ZSh7fSkgaW4gc3RhYmxlIHNo
b3VsZCB3b3JrLCBhbmQgYWRkIGE9ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gYgogRkFJTCBhZGRJY2VD
YW5kaWRhdGUoe3VzZXJuYW1lRnJhZ21lbnQ6IHVzZXJuYW1lRnJhZ21lbnQxLCBzZHBNaWQ6IHNk
cE1pZDF9KSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIHRoZSBm
aXJzdCBtLXNlY3Rpb24gYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRhdGUgbGluZSB0byBiZSBm
b3VuZCBiZXR3ZWVuIG1lZGlhIGxpbmVzIG09YXVkaW8gYW5kIG09dmlkZW8gZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKIEZBSUwgYWRkSWNlQ2FuZGlkYXRlKHt1c2VybmFtZUZyYWdtZW50OiB1c2Vy
bmFtZUZyYWdtZW50Miwgc2RwTUxpbmVJbmRleDogMX0pIHNob3VsZCB3b3JrLCBhbmQgYWRkIGE9
ZW5kLW9mLWNhbmRpZGF0ZXMgdG8gdGhlIGZpcnN0IG0tc2VjdGlvbiBhc3NlcnRfdHJ1ZTogZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKIEZBSUwgYWRkSWNlQ2FuZGlkYXRlKHt1c2VybmFtZUZyYWdt
ZW50OiAibm8gc3VjaCB1ZnJhZyJ9KSBzaG91bGQgbm90IHdvcmsgYXNzZXJ0X3VucmVhY2hlZDog
U2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUK
LVBBU1MgQWRkIElDRSBjYW5kaWRhdGUgYWZ0ZXIgc2V0dGluZyByZW1vdGUgZGVzY3JpcHRpb24g
c2hvdWxkIHN1Y2NlZWQKK0ZBSUwgQWRkIElDRSBjYW5kaWRhdGUgYWZ0ZXIgc2V0dGluZyByZW1v
dGUgZGVzY3JpcHRpb24gc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X3RydWU6IEV4cGVjdCBjYW5kaWRh
dGUgbGluZSB0byBiZSBmb3VuZCBhZnRlciBtZWRpYSBsaW5lIG09YXVkaW8gZXhwZWN0ZWQgdHJ1
ZSBnb3QgZmFsc2UKIFBBU1MgQWRkIElDRSBjYW5kaWRhdGUgd2l0aCBSVENJY2VDYW5kaWRhdGUg
c2hvdWxkIHN1Y2NlZWQKIFBBU1MgQWRkIGNhbmRpZGF0ZSB3aXRoIG9ubHkgdmFsaWQgc2RwTWlk
IHNob3VsZCBzdWNjZWVkCiBQQVNTIEFkZCBjYW5kaWRhdGUgd2l0aCBvbmx5IHZhbGlkIHNkcE1p
ZCBhbmQgUlRDSWNlQ2FuZGlkYXRlIHNob3VsZCBzdWNjZWVkCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS5o
dG1sCmluZGV4IGM2OGU0NDJhMmQ1MDk0ZjIyZDUwOGVjOGI2ODA0YmMyYTU4ZDA3MmYuLjVmY2I2
ZTg2NGE4YTIyM2Q1MDYyYjIyYjdhOGY1ZTg5ZmJmOWQ0Y2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWFkZEljZUNhbmRpZGF0ZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0
ZS5odG1sCkBAIC0yLDYgKzIsNyBAQAogPHRpdGxlPlRlc3QgUlRDUGVlckNvbm5lY3Rpb24ucHJv
dG90eXBlLmFkZEljZUNhbmRpZGF0ZTwvdGl0bGU+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFy
bmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24t
aGVscGVyLmpzIj48L3NjcmlwdD4KIDxzY3JpcHQ+CiAgICd1c2Ugc3RyaWN0JzsKIApAQCAtMjI0
LDE4ICsyMjUsMjAgQEAgYT1ydGNwLXJzaXplCiAgICAgICBwYy5hZGRJY2VDYW5kaWRhdGUoe3Vz
ZXJuYW1lRnJhZ21lbnQ6ICJubyBzdWNoIHVmcmFnIn0pKTsKICAgfSwgJ2FkZEljZUNhbmRpZGF0
ZSh7dXNlcm5hbWVGcmFnbWVudDogIm5vIHN1Y2ggdWZyYWcifSkgc2hvdWxkIG5vdCB3b3JrJyk7
CiAKLSAgcHJvbWlzZV90ZXN0KHQgPT4geworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAg
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKIAogICAgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAKLSAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRp
b24oc2Vzc2lvbkRlc2MpCi0gICAgLnRoZW4oKCkgPT4gcGMuYWRkSWNlQ2FuZGlkYXRlKHsKKyAg
ICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYykKKyAgICBhd2FpdCBw
Yy5hZGRJY2VDYW5kaWRhdGUoewogICAgICAgY2FuZGlkYXRlOiBjYW5kaWRhdGVTdHIxLAogICAg
ICAgc2RwTWlkOiBzZHBNaWQxLAogICAgICAgc2RwTUxpbmVJbmRleDogc2RwTUxpbmVJbmRleDEs
CiAgICAgICB1c2VybmFtZUZyYWdlbWVudDogdXNlcm5hbWVGcmFnbWVudDEKLSAgICB9KSk7Cisg
ICAgfSk7CisgICAgYXNzZXJ0X2NhbmRpZGF0ZV9saW5lX2FmdGVyKHBjLnJlbW90ZURlc2NyaXB0
aW9uLnNkcCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWVkaWFMaW5lMSwgY2Fu
ZGlkYXRlU3RyMSk7CiAgIH0sICdBZGQgSUNFIGNhbmRpZGF0ZSBhZnRlciBzZXR0aW5nIHJlbW90
ZSBkZXNjcmlwdGlvbiBzaG91bGQgc3VjY2VlZCcpOwogCiAgIHByb21pc2VfdGVzdCh0ID0+IHsK
QEAgLTI1Niw3ICsyNTksNiBAQCBhPXJ0Y3AtcnNpemUKICAgICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOwogCiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsK
LQogICAgIHJldHVybiBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihzZXNzaW9uRGVzYykKICAgICAg
IC50aGVuKCgpID0+IHBjLmFkZEljZUNhbmRpZGF0ZSh7CiAgICAgICAgIGNhbmRpZGF0ZTogY2Fu
ZGlkYXRlU3RyMSwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0
cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FuZGlkYXRlLWluLXNkcC5odHRwcy1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uZWVmZjdlM2U4NWEzMTNlMTVlMmQxZTdiMDllZDQwMjQ4M2Fi
ZmM1MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0
cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIGxvY2FsRGVzY3JpcHRpb24g
Y29udGFpbnMgY2FuZGlkYXRlcworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5kaWRhdGUt
aW4tc2RwLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5kaWRhdGUtaW4tc2RwLmh0dHBzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uNmM5N2FmZTk0YWU1OTc0Mzg5NmM5ZDI2YmI4NTBjYzc1NGY1N2U1Ygot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0cHMuaHRt
bApAQCAtMCwwICsxLDI2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+
Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2Ny
aXB0PgorJ3VzZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0
IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7CisgIGxldCByZXNvbHZlSWNlQ2FuZGlkYXRlUHJvbWlzZSA9IG51bGw7CisgIGNv
bnN0IGljZUNhbmRpZGF0ZVByb21pc2UgPSBuZXcgUHJvbWlzZShyID0+IHJlc29sdmVJY2VDYW5k
aWRhdGVQcm9taXNlID0gcik7CisgIHBjLm9uaWNlY2FuZGlkYXRlID0gZSA9PiB7CisgICAgcmVz
b2x2ZUljZUNhbmRpZGF0ZVByb21pc2UocGMubG9jYWxEZXNjcmlwdGlvbi5zZHApOworICAgIHBj
Lm9uaWNlY2FuZGlkYXRlID0gbnVsbDsKKyAgfQorICBwYy5hZGRUcmFuc2NlaXZlcigiYXVkaW8i
KTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYy5jcmVhdGVPZmZlcigp
KTsKKyAgYXNzZXJ0X2ZhbHNlKHBjLmxvY2FsRGVzY3JpcHRpb24uc2RwLmluY2x1ZGVzKCJhPWNh
bmRpZGF0ZToiKSwKKyAgICAgICAgICAgICAgICJsb2NhbERlc2NyaXB0aW9uIGlzIG1pc3Npbmcg
Y2FuZGlkYXRlIGJlZm9yZSBvbmljZWNhbmRpZGF0ZSIpOworICAvLyBUaGUgbG9jYWxEZXNjcmlw
dGlvbiBhdCB0aGUgdGltZSBvZiB0aGUgb25pY2VjYW5kaWRhdGUgZXZlbnQuCisgIGNvbnN0IGxv
Y2FsRGVzY3JpcHRpb25TZHAgPSBhd2FpdCBpY2VDYW5kaWRhdGVQcm9taXNlOworICBhc3NlcnRf
dHJ1ZShsb2NhbERlc2NyaXB0aW9uU2RwLmluY2x1ZGVzKCJhPWNhbmRpZGF0ZToiKSwKKyAgICAg
ICAgICAgICAgICJsb2NhbERlc2NyaXB0aW9uIGNvbnRhaW5zIGNhbmRpZGF0ZSBhZnRlciBvbmlj
ZWNhbmRpZGF0ZSIpOworfSwgJ2xvY2FsRGVzY3JpcHRpb24gY29udGFpbnMgY2FuZGlkYXRlcycp
OworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sCmluZGV4IDVk
YjgyNzJkZjMwNzI2MGY5ZGIwYzQzMzNjMjNjN2FkNGM0NDMyYjYuLmQ3NzE2YTFkNGRhMTlhY2Fm
M2JkOGMwMTY1NDNkZDFjNzViNDcxZDYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rp
b25TdGF0ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNvbm5lY3Rpb25TdGF0ZS5odHRw
cy5odG1sCkBAIC0yODUsNyArMjg1LDcgQEAKIAogICAgIHBjMi5vbmNvbm5lY3Rpb25zdGF0ZWNo
YW5nZSA9IHQudW5yZWFjaGVkX2Z1bmMoKTsKICAgICBwYzIuY2xvc2UoKTsKLSAgICBhc3NlcnRf
dHJ1ZShwYzIuY29ubmVjdGlvblN0YXRlID09PSAnY2xvc2VkJyk7CisgICAgYXNzZXJ0X2VxdWFs
cyhwYzIuY29ubmVjdGlvblN0YXRlLCAnY2xvc2VkJyk7CiAgICAgYXdhaXQgbmV3IFByb21pc2Uo
ciA9PiB0LnN0ZXBfdGltZW91dChyLCAxMDApKTsKICAgfSwgJ0Nsb3NpbmcgYSBQZWVyQ29ubmVj
dGlvbiBzaG91bGQgbm90IGZpcmUgY29ubmVjdGlvbnN0YXRlY2hhbmdlIGV2ZW50Jyk7CiA8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLWV4cGVjdGVkLnR4dAppbmRleCBh
ODc5MDBjMTEyOTZlMDJkNGZmMjIyZTBkODJmMTBiZGMzODhlZDg2Li5kNWM5NTk3M2U3MThlYmI3
ZGU2MTc0OTIxYmE5YTI2MjMzNzllNmVkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVE
YXRhQ2hhbm5lbC1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0YUNoYW5u
ZWwtZXhwZWN0ZWQudHh0CkBAIC03MCw5ICs3MCw3IEBAIEZBSUwgUmV1c2luZyBhIGRhdGEgY2hh
bm5lbCBpZCB0aGF0IGlzIGluIHVzZSAoYWZ0ZXIgc2V0UmVtb3RlRGVzY3JpcHRpb24sIG5lZ290
CiBQQVNTIE5ldyBkYXRhY2hhbm5lbCBzaG91bGQgYmUgaW4gdGhlIGNvbm5lY3Rpbmcgc3RhdGUg
YWZ0ZXIgY3JlYXRpb24gKGFmdGVyIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCkKIFBBU1MgYWRk
VHJhY2ssIHRoZW4gY3JlYXRpbmcgZGF0YWNoYW5uZWwsIHNob3VsZCBuZWdvdGlhdGUgcHJvcGVy
bHkKIFBBU1MgYWRkVHJhY2ssIHRoZW4gY3JlYXRpbmcgZGF0YWNoYW5uZWwsIHNob3VsZCBuZWdv
dGlhdGUgcHJvcGVybHkgd2hlbiBtYXgtYnVuZGxlIGlzIHVzZWQKLUZBSUwgU3RvcHBpbmcgdGhl
IGJ1bmRsZS10YWcgd2hlbiB0aGVyZSBpcyBhIGRhdGFjaGFubmVsIGluIHRoZSBidW5kbGUgc2hv
dWxkIGtpbGwgdGhlIERhdGFDaGFubmVsIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIk9wZXJhdGlvbkVycm9yOiBGYWlsZWQgdG8gc2V0IGxvY2Fs
IGFuc3dlciBzZHA6IEZhaWxlZCB0byBhcHBseSB0aGUgZGVzY3JpcHRpb24gZm9yIG09IHNlY3Rp
b24gd2l0aCBtaWQ9JzEnOiBGYWlsZWQgdG8gc2V0dXAgUlRDUCBtdXguIgogUEFTUyBOZXcgbmVn
b3RpYXRlZCBkYXRhY2hhbm5lbCBzaG91bGQgYmUgaW4gdGhlIGNvbm5lY3Rpbmcgc3RhdGUgYWZ0
ZXIgY3JlYXRpb24gKGFmdGVyIGNvbm5lY3Rpb24gZXN0YWJsaXNobWVudCkKIFBBU1MgYWRkVHJh
Y2ssIHRoZW4gY3JlYXRpbmcgbmVnb3RpYXRlZCBkYXRhY2hhbm5lbCwgc2hvdWxkIG5lZ290aWF0
ZSBwcm9wZXJseQogUEFTUyBhZGRUcmFjaywgdGhlbiBjcmVhdGluZyBuZWdvdGlhdGVkIGRhdGFj
aGFubmVsLCBzaG91bGQgbmVnb3RpYXRlIHByb3Blcmx5IHdoZW4gbWF4LWJ1bmRsZSBpcyB1c2Vk
Ci1GQUlMIFN0b3BwaW5nIHRoZSBidW5kbGUtdGFnIHdoZW4gdGhlcmUgaXMgYSBuZWdvdGlhdGVk
IGRhdGFjaGFubmVsIGluIHRoZSBidW5kbGUgc2hvdWxkIGtpbGwgdGhlIERhdGFDaGFubmVsIHBy
b21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIk9wZXJh
dGlvbkVycm9yOiBGYWlsZWQgdG8gc2V0IGxvY2FsIGFuc3dlciBzZHA6IEZhaWxlZCB0byBhcHBs
eSB0aGUgZGVzY3JpcHRpb24gZm9yIG09IHNlY3Rpb24gd2l0aCBtaWQ9JzEnOiBGYWlsZWQgdG8g
c2V0dXAgUlRDUCBtdXguIgogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRhQ2hh
bm5lbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0YUNoYW5uZWwuaHRtbAppbmRleCA4Nzg2
NzY2NGI1OGE2Nzg3YmQ5NmNmYjg1NTU5YjRmMTE3MWUyNjNmLi43YWQ4YmY3ZDQ2ZWNkN2EzNzAy
NTQyZDhiNDg0MTMyYWZjYzk0ZDYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRh
Q2hhbm5lbC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwKQEAg
LTcwNyw2ICs3MDcsMTEgQEAgZm9yIChjb25zdCBvcHRpb25zIG9mIFt7fSwge25lZ290aWF0ZWQ6
IHRydWUsIGlkOiAwfV0pIHsKICAgICBhd2FpdCBjcmVhdGVEYXRhQ2hhbm5lbFBhaXIodCwgb3B0
aW9ucywgcGMxKTsKICAgfSwgYGFkZFRyYWNrLCB0aGVuIGNyZWF0aW5nICR7bW9kZX0sIHNob3Vs
ZCBuZWdvdGlhdGUgcHJvcGVybHkgd2hlbiBtYXgtYnVuZGxlIGlzIHVzZWRgKTsKIAorLyoKK1Ro
aXMgdGVzdCBpcyBkaXNhYmxlZCB1bnRpbCBodHRwczovL2dpdGh1Yi5jb20vdzNjL3dlYnJ0Yy1w
Yy9pc3N1ZXMvMjU2MgoraGFzIGJlZW4gcmVzb2x2ZWQ7IGl0IHByZXN1cHBvc2VzIHRoYXQgc3Rv
cHBpbmcgdGhlIGZpcnN0IHRyYW5zY2VpdmVyCiticmVha3MgdGhlIHRyYW5zcG9ydC4KKwogICBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKHtidW5kbGVQb2xpY3k6ICJtYXgtYnVuZGxlIn0pOwogICAgIGNvbnN0IHBjMiA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOwpAQCAtNzI2LDYgKzczMSw3IEBAIGZvciAoY29uc3Qgb3B0
aW9ucyBvZiBbe30sIHtuZWdvdGlhdGVkOiB0cnVlLCBpZDogMH1dKSB7CiAgICAgYXdhaXQgZGMx
Q2xvc2VkOwogICB9LCBgU3RvcHBpbmcgdGhlIGJ1bmRsZS10YWcgd2hlbiB0aGVyZSBpcyBhICR7
bW9kZX0gaW4gdGhlIGJ1bmRsZSBgICsKICAgICAgYHNob3VsZCBraWxsIHRoZSBEYXRhQ2hhbm5l
bGApOworKi8KIH0KIAogLyoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWRlc2NyaXB0aW9uLWF0
dHJpYnV0ZXMtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWRlc2NyaXB0
aW9uLWF0dHJpYnV0ZXMtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mMTM3
YmZiODVkNjJjMjQ0ZDgwZWM1ZDMzZGVhNzhkMmRlMDRmMTgxCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsNiBAQAorCitGQUlMIHBlbmRpbmdMb2NhbERlc2NyaXB0aW9uIGlzIHN1
cmZhY2VkIGF0IHRoZSByaWdodCB0aW1lIGFzc2VydF9lcXVhbHM6IHBlbmRpbmdMb2NhbERlc2Ny
aXB0aW9uIGlzIHN0aWxsIG51bGwgd2hpbGUgcHJvbWlzZSBwZW5kaW5nIGV4cGVjdGVkIG51bGwg
YnV0IGdvdCBvYmplY3QgIltvYmplY3QgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uXSIKK0ZBSUwgcGVu
ZGluZ1JlbW90ZURlc2NyaXB0aW9uIGlzIHN1cmZhY2VkIGF0IHRoZSByaWdodCB0aW1lIGFzc2Vy
dF9lcXVhbHM6IHBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBpcyBzdGlsbCBudWxsIHdoaWxlIHBy
b21pc2UgcGVuZGluZyBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFJUQ1Nl
c3Npb25EZXNjcmlwdGlvbl0iCitGQUlMIGN1cnJlbnRMb2NhbERlc2NyaXB0aW9uIGlzIHN1cmZh
Y2VkIGF0IHRoZSByaWdodCB0aW1lIGFzc2VydF9lcXVhbHM6IGN1cnJlbnRMb2NhbERlc2NyaXB0
aW9uIGlzIHN0aWxsIG51bGwgd2hpbGUgcHJvbWlzZSBwZW5kaW5nIGV4cGVjdGVkIG51bGwgYnV0
IGdvdCBvYmplY3QgIltvYmplY3QgUlRDU2Vzc2lvbkRlc2NyaXB0aW9uXSIKK0ZBSUwgY3VycmVu
dFJlbW90ZURlc2NyaXB0aW9uIGlzIHN1cmZhY2VkIGF0IHRoZSByaWdodCB0aW1lIGFzc2VydF9l
cXVhbHM6IGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBpcyBzdGlsbCBudWxsIHdoaWxlIHByb21p
c2UgcGVuZGluZyBleHBlY3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFJUQ1Nlc3Np
b25EZXNjcmlwdGlvbl0iCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWRlc2NyaXB0aW9uLWF0
dHJpYnV0ZXMtdGltaW5nLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1kZXNjcmlwdGlvbi1hdHRy
aWJ1dGVzLXRpbWluZy5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjJkMjU2NWMzZTFlMDczNGE0MjIz
MTUyMmQ3NzEyOTUwNjQ5MWQyYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1kZXNj
cmlwdGlvbi1hdHRyaWJ1dGVzLXRpbWluZy5odHRwcy5odG1sCkBAIC0wLDAgKzEsODEgQEAKKzwh
ZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT48L3RpdGxlPgorPHNj
cmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3Vz
ZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7
CisgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKworICBhc3NlcnRfZXF1
YWxzKHBjLnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAgICdw
ZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBpcyBudWxsIGJlZm9yZSBzZXRMb2NhbERlc2NyaXB0aW9u
Jyk7CisgIGNvbnN0IHByb21pc2UgPSBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKyAg
YXNzZXJ0X2VxdWFscyhwYy5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAgICAg
ICAgICAgICAncGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVsbCB3aGlsZSBwcm9t
aXNlIHBlbmRpbmcnKTsKKyAgYXdhaXQgcHJvbWlzZTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMocGMu
cGVuZGluZ0xvY2FsRGVzY3JpcHRpb24sIG51bGwsCisgICAgICAgICAgICAgICAgICAgICdwZW5k
aW5nTG9jYWxEZXNjcmlwdGlvbiBpcyBub3QgbnVsbCBhZnRlciBhd2FpdCcpOworfSwgInBlbmRp
bmdMb2NhbERlc2NyaXB0aW9uIGlzIHN1cmZhY2VkIGF0IHRoZSByaWdodCB0aW1lIik7CisKK3By
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgY29uc3Qgb2ZmZXIg
PSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOworCisgIGFzc2VydF9lcXVhbHMocGMucGVuZGluZ1Jl
bW90ZURlc2NyaXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAgICdwZW5kaW5nUmVtb3RlRGVz
Y3JpcHRpb24gaXMgbnVsbCBiZWZvcmUgc2V0UmVtb3RlRGVzY3JpcHRpb24nKTsKKyAgY29uc3Qg
cHJvbWlzZSA9IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgYXNzZXJ0X2VxdWFs
cyhwYy5wZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24sIG51bGwsCisgICAgICAgICAgICAgICAgJ3Bl
bmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBpcyBzdGlsbCBudWxsIHdoaWxlIHByb21pc2UgcGVuZGlu
ZycpOworICBhd2FpdCBwcm9taXNlOworICBhc3NlcnRfbm90X2VxdWFscyhwYy5wZW5kaW5nUmVt
b3RlRGVzY3JpcHRpb24sIG51bGwsCisgICAgICAgICAgICAgICAgICAgICdwZW5kaW5nUmVtb3Rl
RGVzY3JpcHRpb24gaXMgbm90IG51bGwgYWZ0ZXIgYXdhaXQnKTsKK30sICJwZW5kaW5nUmVtb3Rl
RGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQgdGhlIHJpZ2h0IHRpbWUiKTsKKworcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIGNvbnN0IHBjMiA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsK
KworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOworICBhd2FpdCBwYzEu
c2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlw
dGlvbihvZmZlcik7CisgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsK
KworICBhc3NlcnRfZXF1YWxzKHBjMi5jdXJyZW50TG9jYWxEZXNjcmlwdGlvbiwgbnVsbCwKKyAg
ICAgICAgICAgICAgICAnY3VycmVudExvY2FsRGVzY3JpcHRpb24gaXMgbnVsbCBiZWZvcmUgc2V0
TG9jYWxEZXNjcmlwdGlvbicpOworICBjb25zdCBwcm9taXNlID0gcGMyLnNldExvY2FsRGVzY3Jp
cHRpb24oYW5zd2VyKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzIuY3VycmVudExvY2FsRGVzY3JpcHRp
b24sIG51bGwsCisgICAgICAgICAgICAgICAgJ2N1cnJlbnRMb2NhbERlc2NyaXB0aW9uIGlzIHN0
aWxsIG51bGwgd2hpbGUgcHJvbWlzZSBwZW5kaW5nJyk7CisgIGF3YWl0IHByb21pc2U7CisgIGFz
c2VydF9ub3RfZXF1YWxzKHBjMi5jdXJyZW50TG9jYWxEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAg
ICAgICAgICAgICAgICAgJ2N1cnJlbnRMb2NhbERlc2NyaXB0aW9uIGlzIG5vdCBudWxsIGFmdGVy
IGF3YWl0Jyk7Cit9LCAiY3VycmVudExvY2FsRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQgdGhl
IHJpZ2h0IHRpbWUiKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xv
c2UoKSk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMS5j
cmVhdGVPZmZlcigpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7Cisg
IGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgIGNvbnN0IGFuc3dlciA9
IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKworICBhc3NlcnRfZXF1YWxzKHBjMS5jdXJyZW50
UmVtb3RlRGVzY3JpcHRpb24sIG51bGwsCisgICAgICAgICAgICAgICAgJ2N1cnJlbnRSZW1vdGVE
ZXNjcmlwdGlvbiBpcyBudWxsIGJlZm9yZSBzZXRSZW1vdGVEZXNjcmlwdGlvbicpOworICBjb25z
dCBwcm9taXNlID0gcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CisgIGFzc2VydF9l
cXVhbHMocGMxLmN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAgICAgICAgICAg
ICAnY3VycmVudFJlbW90ZURlc2NyaXB0aW9uIGlzIHN0aWxsIG51bGwgd2hpbGUgcHJvbWlzZSBw
ZW5kaW5nJyk7CisgIGF3YWl0IHByb21pc2U7CisgIGFzc2VydF9ub3RfZXF1YWxzKHBjMS5jdXJy
ZW50UmVtb3RlRGVzY3JpcHRpb24sIG51bGwsCisgICAgICAgICAgICAgICAgICAgICdjdXJyZW50
UmVtb3RlRGVzY3JpcHRpb24gaXMgbm90IG51bGwgYWZ0ZXIgYXdhaXQnKTsKK30sICJjdXJyZW50
UmVtb3RlRGVzY3JpcHRpb24gaXMgc3VyZmFjZWQgYXQgdGhlIHJpZ2h0IHRpbWUiKTsKKworPC9z
Y3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1leHBsaWNpdC1yb2xsYmFjay1pY2VHYXRo
ZXJpbmdTdGF0ZS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1leHBsaWNpdC1yb2xsYmFjay1p
Y2VHYXRoZXJpbmdTdGF0ZS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYjM1ZDcyNGIxOGFkMWFk
OWJjYWNkMTQ4YjdlYzNjZWJkNjFhMmQzOAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWV4cGxpY2l0LXJvbGxiYWNrLWljZUdhdGhlcmluZ1N0YXRlLWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDcgQEAKKworSGFybmVzcyBFcnJvciAoVElNRU9VVCksIG1lc3NhZ2UgPSBudWxsCisKK1RJ
TUVPVVQgcm9sbGluZyBiYWNrIGFuIElDRSByZXN0YXJ0IHdoZW4gZ2F0aGVyaW5nIGlzIGNvbXBs
ZXRlIHNob3VsZCBub3QgcmVzdWx0IGluIGljZUdhdGhlcmluZ1N0YXRlIGNoYW5nZXMgVGVzdCB0
aW1lZCBvdXQKK05PVFJVTiBzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBvZiBvcmlnaW5h
bCBvZmZlciBzaG91bGQgY2F1c2UgaWNlR2F0aGVyaW5nU3RhdGUgdG8gcmVhY2ggIm5ldyIgd2hl
biBzdGFydGluZyBpbiAiY29tcGxldGUiCitOT1RSVU4gc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xs
YmFjaykgb2Ygb3JpZ2luYWwgb2ZmZXIgc2hvdWxkIGNhdXNlIGljZUdhdGhlcmluZ1N0YXRlIHRv
IHJlYWNoICJuZXciIHdoZW4gc3RhcnRpbmcgaW4gImdhdGhlcmluZyIKKwpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tZXhwbGljaXQtcm9sbGJhY2staWNlR2F0aGVyaW5nU3RhdGUuaHRtbCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWV4cGxpY2l0LXJvbGxiYWNrLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uOWMxZmUwMTRiZDllZTE4YmI2YTlhYjY1ZWE3YWEzZWViYmNlMTIwMAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWV4cGxpY2l0LXJvbGxiYWNrLWljZUdhdGhlcmluZ1N0YXRl
Lmh0bWwKQEAgLTAsMCArMSw1MCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0
Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5pY2VHYXRoZXJpbmdTdGF0
ZTwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3Jp
cHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
Y29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgIGF3YWl0IGluaXRpYWxPZmZl
ckFuc3dlcldpdGhJY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKAorICAgICAgcGMxLCBwYzIs
IHtvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSk7CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2Ny
aXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcih7aWNlUmVzdGFydDogdHJ1ZX0pKTsKKyAgYXdh
aXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICdnYXRoZXJpbmcnLCAnY29tcGxl
dGUnKTsKKyAgZXhwZWN0Tm9Nb3JlR2F0aGVyaW5nU3RhdGVDaGFuZ2VzKHQsIHBjMSk7CisgIGF3
YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAncm9sbGJhY2snfSk7CisgIGF3YWl0
IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMTAwMCkpOworfSwgJ3JvbGxpbmcg
YmFjayBhbiBJQ0UgcmVzdGFydCB3aGVuIGdhdGhlcmluZyBpcyBjb21wbGV0ZSBzaG91bGQgbm90
IHJlc3VsdCBpbiBpY2VHYXRoZXJpbmdTdGF0ZSBjaGFuZ2VzJyk7CisKK3Byb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlw
dGlvbigKKyAgICBhd2FpdCBwYy5jcmVhdGVPZmZlcih7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1
ZX0pKTsKKyAgYXdhaXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYywgJ2dhdGhlcmlu
ZycsICdjb21wbGV0ZScpOworICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAn
cm9sbGJhY2snfSk7CisgIGF3YWl0IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMsICdu
ZXcnKTsKK30sICdzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBvZiBvcmlnaW5hbCBvZmZl
ciBzaG91bGQgY2F1c2UgaWNlR2F0aGVyaW5nU3RhdGUgdG8gcmVhY2ggIm5ldyIgd2hlbiBzdGFy
dGluZyBpbiAiY29tcGxldGUiJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29u
c3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
Yy5jbG9zZSgpKTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbigKKyAgICBhd2FpdCBw
Yy5jcmVhdGVPZmZlcih7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pKTsKKyAgYXdhaXQgaWNl
R2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYywgJ2dhdGhlcmluZycpOworICBhd2FpdCBwYy5z
ZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAncm9sbGJhY2snfSk7CisgIC8vIFdlIG1pZ2h0IGdv
IGRpcmVjdGx5IHRvICduZXcnLCBvciB3ZSBtaWdodCBnbyB0byAnY29tcGxldGUnIGZpcnN0LAor
ICAvLyBkZXBlbmRpbmcgb24gdGltaW5nLiBBbGxvdyBlaXRoZXIuCisgIGNvbnN0IHJlc3VsdHMg
PSBhd2FpdCBQcm9taXNlLmFsbFNldHRsZWQoWworICAgIGljZUdhdGhlcmluZ1N0YXRlVHJhbnNp
dGlvbnMocGMsICduZXcnKSwKKyAgICBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAn
Y29tcGxldGUnLCAnbmV3JyldKTsKKyAgYXNzZXJ0X3RydWUocmVzdWx0cy5zb21lKHJlc3VsdCA9
PiByZXN1bHQuc3RhdHVzID09ICdmdWxmaWxsZWQnKSwKKyAgICAnSUNFIGdhdGhlcmluZyBzdGF0
ZSBzaG91bGQgZ28gYmFjayB0byAibmV3IiwgcG9zc2libHkgdGhyb3VnaCAiY29tcGxldGUiJyk7
Cit9LCAnc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFjaykgb2Ygb3JpZ2luYWwgb2ZmZXIgc2hv
dWxkIGNhdXNlIGljZUdhdGhlcmluZ1N0YXRlIHRvIHJlYWNoICJuZXciIHdoZW4gc3RhcnRpbmcg
aW4gImdhdGhlcmluZyInKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1n
ZXREZWZhdWx0SWNlU2VydmVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0
SWNlU2VydmVycy1leHBlY3RlZC50eHQKZGVsZXRlZCBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IGI4
NmVlMmNlNmJmNjgzZmZkZDQyOTNiN2YyOGU3OGI4YjEzNTI4NDEuLjAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNl
cnZlcnMtZXhwZWN0ZWQudHh0CisrKyAvZGV2L251bGwKQEAgLTEsMyArMCwwIEBACi0KLUZBSUwg
UlRDUGVlckNvbm5lY3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnMoKSBzaG91bGQgcmV0dXJuIGFy
cmF5IG9mIFJUQ0ljZVNlcnZlciBSVENQZWVyQ29ubmVjdGlvbi5nZXREZWZhdWx0SWNlU2VydmVy
cyBpcyBub3QgYSBmdW5jdGlvbi4gKEluICdSVENQZWVyQ29ubmVjdGlvbi5nZXREZWZhdWx0SWNl
U2VydmVycygpJywgJ1JUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzJyBpcyB1
bmRlZmluZWQpCi0KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVycy5odG1sCmRlbGV0ZWQgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCA0ZmRiZGI4ZGVjNDZkZTU0OWMwNzc5NDllZDk0NmE3YTMxMGU5
Yjc0Li4wMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJzLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw5OCAr
MCwwIEBACi08IWRvY3R5cGUgaHRtbD4KLTxtZXRhIGNoYXJzZXQ9dXRmLTg+Ci08dGl0bGU+UlRD
UGVlckNvbm5lY3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnM8L3RpdGxlPgotPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgotPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgotPHNjcmlwdD4KLSAgJ3VzZSBz
dHJpY3QnOwotCi0gIC8vIFRlc3QgaXMgYmFzZWQgb24gdGhlIGZvbGxvd2luZyBlZGl0b3IgZHJh
ZnQ6Ci0gIC8vIGh0dHBzOi8vdzNjLmdpdGh1Yi5pby93ZWJydGMtcGMvYXJjaGl2ZXMvMjAxNzA2
MDUvd2VicnRjLmh0bWwKLQotICAvKgotICAgICAgW0NvbnN0cnVjdG9yKG9wdGlvbmFsIFJUQ0Nv
bmZpZ3VyYXRpb24gY29uZmlndXJhdGlvbildCi0gICAgICBpbnRlcmZhY2UgUlRDUGVlckNvbm5l
Y3Rpb24gOiBFdmVudFRhcmdldCB7Ci0gICAgICAgIHN0YXRpYyBzZXF1ZW5jZTxSVENJY2VTZXJ2
ZXI+ICAgICAgZ2V0RGVmYXVsdEljZVNlcnZlcnMoKTsKLSAgICAgICAgLi4uCi0gICAgICB9Owot
Ci0gICAgICBkaWN0aW9uYXJ5IFJUQ0ljZVNlcnZlciB7Ci0gICAgICAgIHJlcXVpcmVkIChET01T
dHJpbmcgb3Igc2VxdWVuY2U8RE9NU3RyaW5nPikgdXJsczsKLSAgICAgICAgICAgICAgICAgRE9N
U3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VybmFtZTsKLSAgICAgICAgICAgICAg
ICAgKERPTVN0cmluZyBvciBSVENPQXV0aENyZWRlbnRpYWwpICBjcmVkZW50aWFsOwotICAgICAg
ICAgICAgICAgICBSVENJY2VDcmVkZW50aWFsVHlwZSAgICAgICAgICAgICAgIGNyZWRlbnRpYWxU
eXBlID0gInBhc3N3b3JkIjsKLSAgICAgIH07Ci0KLSAgICAgIGRpY3Rpb25hcnkgUlRDT0F1dGhD
cmVkZW50aWFsIHsKLSAgICAgICAgcmVxdWlyZWQgRE9NU3RyaW5nIG1hY0tleTsKLSAgICAgICAg
cmVxdWlyZWQgRE9NU3RyaW5nIGFjY2Vzc1Rva2VuOwotICAgICAgfTsKLQotICAgICAgZW51bSBS
VENJY2VDcmVkZW50aWFsVHlwZSB7Ci0gICAgICAgICJwYXNzd29yZCIsCi0gICAgICAgICJvYXV0
aCIKLSAgICAgIH07Ci0gICAqLwotCi0gIHRlc3QoKCkgPT4gewotICAgIGNvbnN0IGljZVNlcnZl
cnMgPSBSVENQZWVyQ29ubmVjdGlvbi5nZXREZWZhdWx0SWNlU2VydmVycygpOwotCi0gICAgYXNz
ZXJ0X3RydWUoQXJyYXkuaXNBcnJheShpY2VTZXJ2ZXJzKSwKLSAgICAgICdFeHBlY3QgaWNlU2Vy
dmVycyB0byBiZSBhbiBhcnJheScpOwotCi0gICAgLy8gZGljdGlvbmFyeSBJREwgY2Fubm90IGJl
IHRlc3RlZCBhdXRvbWF0aWNhbGx5IHVzaW5nIGlkbGhhcm5lc3MKLSAgICBmb3IoY29uc3Qgc2Vy
dmVyIG9mIGljZVNlcnZlcnMpIHsKLSAgICAgIGNvbnN0IHsgdXJscywgdXNlcm5hbWUsIGNyZWRl
bnRpYWwsIGNyZWRlbnRpYWxUeXBlIH0gPSBzZXJ2ZXI7Ci0KLSAgICAgIGlmKEFycmF5LmlzQXJy
YXkodXJscykpIHsKLSAgICAgICAgZm9yKGNvbnN0IHVybCBvZiB1cmxzKSB7Ci0gICAgICAgICAg
YXNzZXJ0X2VxdWFscyh0eXBlb2YgdXJsLCAnc3RyaW5nJywKLSAgICAgICAgICAgICdFeHBlY3Qg
ZWxlbWVudHMgaW4gdXJscyBhcnJheSB0byBiZSBzdHJpbmcnKTsKLSAgICAgICAgfQotICAgICAg
fSBlbHNlIHsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgdXJscywgJ3N0cmluZycsCi0g
ICAgICAgICAgJ0V4cGVjdCB1cmxzIHRvIGJlIGVpdGhlciBzdHJpbmcgb3IgYXJyYXknKTsKLSAg
ICAgIH0KLQotICAgICAgaWYodXNlcm5hbWUgIT09IHVuZGVmaW5lZCkgewotICAgICAgICBhc3Nl
cnRfZXF1YWxzKHR5cGVvZiB1c2VybmFtZSwgJ3N0cmluZycsCi0gICAgICAgICAgJ0V4cGVjdCB1
c2VybmFtZSB0byBiZSBlaXRoZXIgdW5kZWZpbmVkIG9yIHN0cmluZycpOwotICAgICAgfQotCi0g
ICAgICBhc3NlcnRfdHJ1ZShjcmVkZW50aWFsVHlwZSA9PT0gJ3Bhc3N3b3JkJyB8fCBjcmVkZW50
aWFsVHlwZSA9PT0gJ29hdXRoJywKLSAgICAgICAgJ0V4cGVjdCBjcmVkZW50aWFsVHlwZSB0byBi
ZSBlaXRoZXIgcGFzc3dvcmQgb3Igb2F1dGgnKQotCi0gICAgICBpZihjcmVkZW50aWFsKSB7Ci0g
ICAgICAgIGlmKHR5cGVvZihjcmVkZW50aWFsKSA9PT0gJ29iamVjdCcpIHsKLSAgICAgICAgICBj
b25zdCB7IG1hY0tleSwgYWNjZXNzVG9rZW4gfSA9IGNyZWRlbnRpYWw7Ci0gICAgICAgICAgYXNz
ZXJ0X2VxdWFscyh0eXBlb2YgbWFjS2V5LCAnc3RyaW5nJywKLSAgICAgICAgICAgICdFeHBlY3Qg
bWFjS2V5IHRvIGJlIHN0cmluZycpOwotCi0gICAgICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2Yg
YWNjZXNzVG9rZW4sICdzdHJpbmcnLAotICAgICAgICAgICAgJ0V4cGVjdCBhY2Nlc3NUb2tlbiB0
byBiZSBzdHJpbmcnKTsKLQotICAgICAgICB9IGVsc2UgewotICAgICAgICAgIGFzc2VydF9lcXVh
bHModHlwZW9mIGNyZWRlbnRpYWwsICdzdHJpbmcnLAotICAgICAgICAgICAgJ0V4cGVjdCBjcmVk
ZW50aWFsIHRvIGJlIGVpdGhlciB1bmRlZmluZWQsIHN0cmluZywgb3IgUlRDT2F1dGhDcmVkZW50
aWFsIGRpY3Rpb25hcnknKTsKLSAgICAgICAgfQotICAgICAgfQotICAgIH0KLQotICAgIC8vIEV4
cGVjdCBkZWZhdWx0IGljZSBzZXJ2ZXJzIHRvIGJlIGFjY2VwdGVkIGFzIHZhbGlkIGNvbmZpZ3Vy
YXRpb24KLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7IGljZVNlcnZlcnMg
fSk7Ci0KLSAgICAvLyBPbmx5IG1ha2Ugc3VyZSB0aGVyZSBhcmUgc2FtZSBudW1iZXIgb2YgaWNl
IHNlcnZlcnMgY29uZmlndXJlZAotICAgIC8vIGFuZCBub3QgZG8gYW55IGRlZXAgZXF1YWxpdHkg
Y2hlY2tpbmcKLSAgICBhc3NlcnRfZXF1YWxzKHBjLmdldENvbmZpZ3VyYXRpb24oKS5pY2VTZXJ2
ZXJzLmxlbmd0aCwgaWNlU2VydmVycy5sZW5ndGgpOwotCi0gIH0sICdSVENQZWVyQ29ubmVjdGlv
bi5nZXREZWZhdWx0SWNlU2VydmVycygpIHNob3VsZCByZXR1cm4gYXJyYXkgb2YgUlRDSWNlU2Vy
dmVyJyk7Ci0KLSAgLyoKLSAgICBDb3ZlcmFnZSBSZXBvcnQKLSAgICAgIFNpbmNlIHRoZXJlIGlz
IG5vIHN0ZXBzIGludm9sdmVkIGFuZCB3ZSBhcmUgb25seSBjaGVja2luZyBiYXNpYyBjYWxsLAot
ICAgICAgVGhpcyBpcyBjb3VudGVkIGFzIDEgdHJpdmlhbCB0ZXN0IGNvdmVyYWdlLgotCi0gICAg
ICBUZXN0ZWQgICAgMQotICAgICAgVG90YWwgICAgIDEKLSAgICovCi08L3NjcmlwdD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRT
dGF0cy5odHRwcy5odG1sCmluZGV4IGVkZTBhYjFlZmMxMDc5OWQxMjQ3MzQzN2U1M2YyZWM1NTVh
YTYyNWYuLjQ5Zjg4MTMxYzNlMWY3NWI4YjdjYjkyNjc5MmY5YWM3MWY0MWU4ZWUgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0
U3RhdHMuaHR0cHMuaHRtbApAQCAtOTAsMjMgKzkwLDYgQEAKICAgICByZXR1cm4gcGMuZ2V0U3Rh
dHModHJhY2spOwogICB9LCAnZ2V0U3RhdHMoKSB3aXRoIHRyYWNrIGFkZGVkIHZpYSBhZGRUcmFu
c2NlaXZlciBzaG91bGQgc3VjY2VlZCcpOwogCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBj
b25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMuY2xvc2UoKSk7Ci0gICAgcmV0dXJuIGdldFRyYWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8n
KQotICAgIC50aGVuKChbdHJhY2ssIG1lZGlhU3RyZWFtXSkgPT4gewotICAgICAgLy8gYWRkVHJh
bnNjZWl2ZXIgYWxsb3dzIGFkZGluZyBzYW1lIHRyYWNrIG11bHRpcGxlIHRpbWVzCi0gICAgICBj
b25zdCB0cmFuc2NlaXZlcjEgPSBwYy5hZGRUcmFuc2NlaXZlcih0cmFjayk7Ci0gICAgICBjb25z
dCB0cmFuc2NlaXZlcjIgPSBwYy5hZGRUcmFuc2NlaXZlcih0cmFjayk7Ci0KLSAgICAgIGFzc2Vy
dF9ub3RfZXF1YWxzKHRyYW5zY2VpdmVyMSwgdHJhbnNjZWl2ZXIyKTsKLSAgICAgIGFzc2VydF9u
b3RfZXF1YWxzKHRyYW5zY2VpdmVyMS5zZW5kZXIsIHRyYW5zY2VpdmVyMi5zZW5kZXIpOwotICAg
ICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlcjEuc2VuZGVyLnRyYWNrLCB0cmFuc2NlaXZlcjIu
c2VuZGVyLnRyYWNrKTsKLQotICAgICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0lu
dmFsaWRBY2Nlc3NFcnJvcicsIHBjLmdldFN0YXRzKHRyYWNrKSk7Ci0gICAgfSk7Ci0gIH0sIGBn
ZXRTdGF0cygpIHdpdGggdHJhY2sgYXNzb2NpYXRlZCB3aXRoIG1vcmUgdGhhbiBvbmUgc2VuZGVy
IHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkQWNjZXNzRXJyb3JgKTsKLQogICBwcm9taXNlX3Rl
c3QodCA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwpAQCAtMTM1LDM1ICsxMTgsNjkgQEAKICAg
ICB9KTsKICAgfSwgJ2dldFN0YXRzKCkgd2l0aCBubyBhcmd1bWVudCBzaG91bGQgcmV0dXJuIHN0
YXRzIHJlcG9ydCBjb250YWluaW5nIHBlZXItY29ubmVjdGlvbiBzdGF0cyBvbiBhbiBlbXB0eSBQ
QycpOwogCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAg
cmV0dXJuIGdldFRyYWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8nKQotICAgIC50aGVuKChbdHJhY2ss
IG1lZGlhU3RyZWFtXSkgPT4gewotICAgICAgcGMuYWRkVHJhY2sodHJhY2ssIG1lZGlhU3RyZWFt
KTsKLSAgICAgIHJldHVybiBwYy5nZXRTdGF0cygpOwotICAgIH0pCi0gICAgLnRoZW4oc3RhdHNS
ZXBvcnQgPT4gewotLy8gICAgICB2YWxpZGF0ZVN0YXRzUmVwb3J0KHN0YXRzUmVwb3J0KTsKLS8v
ICAgICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBvcnQsIFsncGVlci1j
b25uZWN0aW9uJ10pOwotICAgICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNS
ZXBvcnQsIFsnb3V0Ym91bmQtcnRwJ10pOwotICAgIH0pOwotICB9LCAnZ2V0U3RhdHMoKSB3aXRo
IG5vIGFyZ3VtZW50IHNob3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgcGVlci1j
b25uZWN0aW9uIHN0YXRzIGFuZCBvdXRib3VuZC10cmFjay1zdGF0cycpOworICBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBjcmVhdGVQZWVyQ29ubmVjdGlvbldpdGhD
bGVhbnVwKHQpOworICAgIGNvbnN0IHBjMiA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFu
dXAodCk7CisgICAgY29uc3QgW3RyYWNrLCBtZWRpYVN0cmVhbV0gPSBhd2FpdCBnZXRUcmFja0Zy
b21Vc2VyTWVkaWEoJ2F1ZGlvJyk7CisgICAgcGMuYWRkVHJhY2sodHJhY2ssIG1lZGlhU3RyZWFt
KTsKKyAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMsIHBjMik7CisgICAgYXdhaXQgZXhjaGFu
Z2VPZmZlckFuc3dlcihwYywgcGMyKTsKKyAgICBhd2FpdCBsaXN0ZW5Ub0Nvbm5lY3RlZChwYyk7
CisgICAgY29uc3Qgc3RhdHNSZXBvcnQgPSBhd2FpdCBwYy5nZXRTdGF0cygpOworICAgIGdldFJl
cXVpcmVkU3RhdHMoc3RhdHNSZXBvcnQsICdwZWVyLWNvbm5lY3Rpb24nKTsKKyAgICBnZXRSZXF1
aXJlZFN0YXRzKHN0YXRzUmVwb3J0LCAnb3V0Ym91bmQtcnRwJyk7CisgIH0sICdnZXRTdGF0cygp
IHRyYWNrIHdpdGggc3RyZWFtIHJldHVybnMgcGVlci1jb25uZWN0aW9uIGFuZCBvdXRib3VuZC1y
dHAgc3RhdHMnKTsKIAotICBwcm9taXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkp
OwotICAgIHJldHVybiBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ2F1ZGlvJykKLSAgICAudGhlbigo
W3RyYWNrLCBtZWRpYVN0cmVhbV0pID0+IHsKLSAgICAgIHBjLmFkZFRyYWNrKHRyYWNrKTsKLSAg
ICAgIHJldHVybiBwYy5nZXRTdGF0cygpOwotICAgIH0pCi0gICAgLnRoZW4oc3RhdHNSZXBvcnQg
PT4gewotICAgICAgdmFsaWRhdGVTdGF0c1JlcG9ydChzdGF0c1JlcG9ydCk7Ci0gICAgICBhc3Nl
cnRfc3RhdHNfcmVwb3J0X2hhc19zdGF0cyhzdGF0c1JlcG9ydCwgWydwZWVyLWNvbm5lY3Rpb24n
XSk7Ci0gICAgICBhc3NlcnRfc3RhdHNfcmVwb3J0X2hhc19zdGF0cyhzdGF0c1JlcG9ydCwgWydv
dXRib3VuZC1ydHAnXSk7Ci0gICAgfSk7Ci0gIH0sICdnZXRTdGF0cygpIHdpdGggbm8gYXJndW1l
bnQgc2hvdWxkIHJldHVybiBzdGF0cyBmb3Igbm8tc3RyZWFtIHRyYWNrcycpOworICBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBjcmVhdGVQZWVyQ29ubmVjdGlvbldp
dGhDbGVhbnVwKHQpOworICAgIGNvbnN0IHBjMiA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENs
ZWFudXAodCk7CisgICAgY29uc3QgW3RyYWNrLCBtZWRpYVN0cmVhbV0gPSBhd2FpdCBnZXRUcmFj
a0Zyb21Vc2VyTWVkaWEoJ2F1ZGlvJyk7CisgICAgcGMuYWRkVHJhY2sodHJhY2spOworICAgIGV4
Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYywgcGMyKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5z
d2VyKHBjLCBwYzIpOworICAgIGF3YWl0IGxpc3RlblRvQ29ubmVjdGVkKHBjKTsKKyAgICBjb25z
dCBzdGF0c1JlcG9ydCA9IGF3YWl0IHBjLmdldFN0YXRzKCk7CisgICAgZ2V0UmVxdWlyZWRTdGF0
cyhzdGF0c1JlcG9ydCwgJ3BlZXItY29ubmVjdGlvbicpOworICAgIGdldFJlcXVpcmVkU3RhdHMo
c3RhdHNSZXBvcnQsICdvdXRib3VuZC1ydHAnKTsKKyAgfSwgJ2dldFN0YXRzKCkgdHJhY2sgd2l0
aG91dCBzdHJlYW0gcmV0dXJucyBwZWVyLWNvbm5lY3Rpb24gYW5kIG91dGJvdW5kLXJ0cCBzdGF0
cycpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IGNyZWF0
ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFudXAodCk7CisgICAgY29uc3QgcGMyID0gY3JlYXRlUGVl
ckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0KTsKKyAgICBjb25zdCBbdHJhY2ssIG1lZGlhU3RyZWFt
XSA9IGF3YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8nKTsKKyAgICBwYy5hZGRUcmFj
ayh0cmFjaywgbWVkaWFTdHJlYW0pOworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYywgcGMy
KTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjLCBwYzIpOworICAgIGF3YWl0IGxp
c3RlblRvQ29ubmVjdGVkKHBjKTsKKyAgICBjb25zdCBzdGF0c1JlcG9ydCA9IGF3YWl0IHBjLmdl
dFN0YXRzKCk7CisgICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBvcnQs
IFsnb3V0Ym91bmQtcnRwJ10pOworICB9LCAnZ2V0U3RhdHMoKSBhdWRpbyBvdXRib3VuZC1ydHAg
Y29udGFpbnMgYWxsIG1hbmRhdG9yeSBzdGF0cycpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKKyAgICBjb25zdCBwYyA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFudXAodCk7
CisgICAgY29uc3QgcGMyID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0KTsKKyAg
ICBjb25zdCBbdHJhY2ssIG1lZGlhU3RyZWFtXSA9IGF3YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRp
YSgndmlkZW8nKTsKKyAgICBwYy5hZGRUcmFjayh0cmFjaywgbWVkaWFTdHJlYW0pOworICAgIGV4
Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYywgcGMyKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5z
d2VyKHBjLCBwYzIpOworICAgIGF3YWl0IGxpc3RlblRvQ29ubmVjdGVkKHBjKTsKKyAgICBjb25z
dCBzdGF0c1JlcG9ydCA9IGF3YWl0IHBjLmdldFN0YXRzKCk7CisgICAgYXNzZXJ0X3N0YXRzX3Jl
cG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBvcnQsIFsnb3V0Ym91bmQtcnRwJ10pOworICB9LCAnZ2V0
U3RhdHMoKSB2aWRlbyBvdXRib3VuZC1ydHAgY29udGFpbnMgYWxsIG1hbmRhdG9yeSBzdGF0cycp
OworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IGNyZWF0ZVBl
ZXJDb25uZWN0aW9uV2l0aENsZWFudXAodCk7CisgICAgY29uc3QgcGMyID0gY3JlYXRlUGVlckNv
bm5lY3Rpb25XaXRoQ2xlYW51cCh0KTsKKyAgICBjb25zdCBbYXVkaW9UcmFjaywgYXVkaW9TdHJl
YW1dID0gYXdhaXQgZ2V0VHJhY2tGcm9tVXNlck1lZGlhKCdhdWRpbycpOworICAgIHBjLmFkZFRy
YWNrKGF1ZGlvVHJhY2ssIGF1ZGlvU3RyZWFtKTsKKyAgICBjb25zdCBbdmlkZW9UcmFjaywgdmlk
ZW9TdHJlYW1dID0gYXdhaXQgZ2V0VHJhY2tGcm9tVXNlck1lZGlhKCd2aWRlbycpOworICAgIHBj
LmFkZFRyYWNrKHZpZGVvVHJhY2ssIHZpZGVvU3RyZWFtKTsKKyAgICBleGNoYW5nZUljZUNhbmRp
ZGF0ZXMocGMsIHBjMik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYywgcGMyKTsK
KyAgICBhd2FpdCBsaXN0ZW5Ub0Nvbm5lY3RlZChwYyk7CisgICAgY29uc3Qgc3RhdHNSZXBvcnQg
PSBhd2FpdCBwYy5nZXRTdGF0cygpOworICAgIHZhbGlkYXRlU3RhdHNSZXBvcnQoc3RhdHNSZXBv
cnQpOworICB9LCAnZ2V0U3RhdHMoKSBhdWRpbyBhbmQgdmlkZW8gdmFsaWRhdGUgYWxsIG1hbmRh
dG9yeSBzdGF0cycpOwogCiAgIC8qCiAgICAgOC41LiAgVGhlIHN0YXRzIHNlbGVjdGlvbiBhbGdv
cml0aG0KQEAgLTE4MSwxMiArMTk4LDEwIEBACiAgICAgcGMuYWRkVHJhY2sodHJhY2ssIG1lZGlh
U3RyZWFtKTsKICAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMsIHBjMik7CiAgICAgYXdhaXQg
ZXhjaGFuZ2VPZmZlckFuc3dlcihwYywgcGMyKTsKLSAgICBhd2FpdCBsaXN0ZW5Ub0ljZUNvbm5l
Y3RlZChwYyk7CisgICAgYXdhaXQgbGlzdGVuVG9Db25uZWN0ZWQocGMpOwogICAgIGNvbnN0IHN0
YXRzID0gYXdhaXQgcGMuZ2V0U3RhdHModHJhY2spOwotICAgIHZhbGlkYXRlU3RhdHNSZXBvcnQo
c3RhdHMpOwotICAgIGFzc2VydF9zdGF0c19yZXBvcnRfaGFzX3N0YXRzKHN0YXRzLCBbJ291dGJv
dW5kLXJ0cCddKTsKLSAgfSwgYGdldFN0YXRzKCkgb24gdHJhY2sgYXNzb2NpYXRlZCB3aXRoIFJ0
cFNlbmRlciBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIG91dGJvdW5kLXJ0
cCBzdGF0c2ApOwotCisgICAgZ2V0UmVxdWlyZWRTdGF0cyhzdGF0cywgJ291dGJvdW5kLXJ0cCcp
OworICB9LCBgZ2V0U3RhdHMoKSBvbiB0cmFjayBhc3NvY2lhdGVkIHdpdGggUlRDUnRwU2VuZGVy
IHNob3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgb3V0Ym91bmQtcnRwIHN0YXRz
YCk7CiAKICAgLyoKICAgICA4LjUuICBUaGUgc3RhdHMgc2VsZWN0aW9uIGFsZ29yaXRobQpAQCAt
MjEzLDkgKzIyOCwyOCBAQAogICAgICAgfSk7CiAgICAgfQogICAgIGNvbnN0IHN0YXRzID0gYXdh
aXQgcGMyLmdldFN0YXRzKHBjMi5nZXRSZWNlaXZlcnMoKVswXS50cmFjayk7Ci0gICAgdmFsaWRh
dGVTdGF0c1JlcG9ydChzdGF0cyk7Ci0gICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMo
c3RhdHMsIFsnaW5ib3VuZC1ydHAnXSk7Ci0gIH0sIGBnZXRTdGF0cygpIG9uIHRyYWNrIGFzc29j
aWF0ZWQgd2l0aCBSdHBSZWNlaXZlciBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWlu
aW5nIGluYm91bmQtcnRwIHN0YXRzYCk7CisgICAgZ2V0UmVxdWlyZWRTdGF0cyhzdGF0cywgJ2lu
Ym91bmQtcnRwJyk7CisgIH0sIGBnZXRTdGF0cygpIG9uIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBS
VENSdHBSZWNlaXZlciBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIGluYm91
bmQtcnRwIHN0YXRzYCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0
IHBjID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0KTsKKyAgICBjb25zdCBwYzIg
PSBjcmVhdGVQZWVyQ29ubmVjdGlvbldpdGhDbGVhbnVwKHQpOworCisgICAgbGV0IFt0cmFjaywg
bWVkaWFTdHJlYW1dID0gYXdhaXQgZ2V0VHJhY2tGcm9tVXNlck1lZGlhKCdhdWRpbycpOworICAg
IHBjLmFkZFRyYWNrKHRyYWNrLCBtZWRpYVN0cmVhbSk7CisgICAgZXhjaGFuZ2VJY2VDYW5kaWRh
dGVzKHBjLCBwYzIpOworICAgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMsIHBjMik7Cisg
ICAgLy8gV2FpdCBmb3IgdW5tdXRlIGlmIHRoZSB0cmFjayBpcyBub3QgYWxyZWFkeSB1bm11dGVk
LgorICAgIC8vIEFjY29yZGluZyB0byBzcGVjLCBpdCBzaG91bGQgYmUgbXV0ZWQgd2hlbiBiZWlu
ZyBjcmVhdGVkLCBidXQgdGhpcworICAgIC8vIGlzIG5vdCB3aGF0IHRoaXMgdGVzdCBpcyB0ZXN0
aW5nLCBzbyBhbGxvdyBpdCB0byBiZSB1bm11dGVkLgorICAgIGlmIChwYzIuZ2V0UmVjZWl2ZXJz
KClbMF0udHJhY2subXV0ZWQpIHsKKyAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
eworICAgICAgICBwYzIuZ2V0UmVjZWl2ZXJzKClbMF0udHJhY2suYWRkRXZlbnRMaXN0ZW5lcign
dW5tdXRlJywgcmVzb2x2ZSk7CisgICAgICB9KTsKKyAgICB9CisgICAgY29uc3Qgc3RhdHMgPSBh
d2FpdCBwYzIuZ2V0U3RhdHMocGMyLmdldFJlY2VpdmVycygpWzBdLnRyYWNrKTsKKyAgICBnZXRS
ZXF1aXJlZFN0YXRzKHN0YXRzLCAnaW5ib3VuZC1ydHAnKTsKKyAgfSwgYGdldFN0YXRzKCkgaW5i
b3VuZC1ydHAgY29udGFpbnMgYWxsIG1hbmRhdG9yeSBzdGF0c2ApOwogCiAgIC8qCiAgICAgOC42
ICAgTWFuZGF0b3J5IFRvIEltcGxlbWVudCBTdGF0cwpAQCAtMzM5LDQgKzM3MywzNCBAQAogCiAg
IH0sIGBnZXRTdGF0cygpIHdpdGggY29ubmVjdGVkIHBlZXIgY29ubmVjdGlvbnMgaGF2aW5nIHRy
YWNrcyBhbmQgZGF0YSBjaGFubmVsIHNob3VsZCByZXR1cm4gYWxsIG1hbmRhdG9yeSB0byBpbXBs
ZW1lbnQgc3RhdHNgKTsKIAorICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
LmNsb3NlKCkpOworICAgIGNvbnN0IFt0cmFjaywgbWVkaWFTdHJlYW1dID0gYXdhaXQgZ2V0VHJh
Y2tGcm9tVXNlck1lZGlhKCdhdWRpbycpOworICAgIHBjLmFkZFRyYW5zY2VpdmVyKHRyYWNrKTsK
KyAgICBwYy5hZGRUcmFuc2NlaXZlcih0cmFjayk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3Rz
X2RvbSh0LCAnSW52YWxpZEFjY2Vzc0Vycm9yJywgcGMuZ2V0U3RhdHModHJhY2spKTsKKyAgfSwg
YGdldFN0YXRzKHRyYWNrKSBzaG91bGQgbm90IHdvcmsgaWYgbXVsdGlwbGUgc2VuZGVycyBoYXZl
IHRoZSBzYW1lIHRyYWNrYCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNv
bnN0IGtNaW5pbXVtVGltZUVsYXBzZWRCZXR3ZWVuR2V0U3RhdHNDYWxsc01zID0gNTAwOworICAg
IGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCB0MCA9IE1hdGguZmxvb3IocGVyZm9ybWFuY2Uu
bm93KCkpOworICAgIGNvbnN0IHQwU3RhdHMgPSBnZXRSZXF1aXJlZFN0YXRzKGF3YWl0IHBjLmdl
dFN0YXRzKCksICdwZWVyLWNvbm5lY3Rpb24nKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZSgKKyAg
ICAgICAgciA9PiB0LnN0ZXBfdGltZW91dChyLCBrTWluaW11bVRpbWVFbGFwc2VkQmV0d2Vlbkdl
dFN0YXRzQ2FsbHNNcykpOworICAgIGNvbnN0IHQxU3RhdHMgPSBnZXRSZXF1aXJlZFN0YXRzKGF3
YWl0IHBjLmdldFN0YXRzKCksICdwZWVyLWNvbm5lY3Rpb24nKTsKKyAgICBjb25zdCB0MSA9IE1h
dGguY2VpbChwZXJmb3JtYW5jZS5ub3coKSk7CisgICAgY29uc3QgbWF4aW11bVRpbWVFbGFwc2Vk
QmV0d2VlbkdldFN0YXRzQ2FsbHNNcyA9IHQxIC0gdDA7CisgICAgY29uc3QgZGVsdGFUaW1lc3Rh
bXBNcyA9IHQxU3RhdHMudGltZXN0YW1wIC0gdDBTdGF0cy50aW1lc3RhbXA7CisgICAgLy8gVGhl
IGRlbHRhIG11c3QgYmUgYXQgbGVhc3QgdGhlIHRpbWUgd2Ugd2FpdGVkIGJldHdlZW4gY2FsbHMu
CisgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbl9lcXVhbChkZWx0YVRpbWVzdGFtcE1zLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAga01pbmltdW1UaW1lRWxhcHNlZEJldHdlZW5HZXRTdGF0
c0NhbGxzTXMpOworICAgIC8vIFRoZSBkZWx0YSBtdXN0IGJlIGF0IG1vc3QgdGhlIHRpbWUgZWxh
cHNlZCBiZWZvcmUgdGhlIGZpcnN0IGdldFN0YXRzKCkKKyAgICAvLyBjYWxsIGFuZCBhZnRlciB0
aGUgc2Vjb25kIGdldFN0YXRzKCkgY2FsbC4KKyAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGRl
bHRhVGltZXN0YW1wTXMsCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtVGltZUVs
YXBzZWRCZXR3ZWVuR2V0U3RhdHNDYWxsc01zKTsKKyAgfSwgYFJUQ1N0YXRzLnRpbWVzdGFtcCBp
bmNyZWFzZXMgd2l0aCB0aW1lIHBhc3NpbmdgKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1oZWxwZXItdGVzdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIt
dGVzdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZTg0ODk2OTBhNzk1ZGZjMzgzZWJiYmFjZTZj
OTUxNWE5NzdlOTUwYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci10ZXN0
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworRkFJTCBTZXR0aW5nIHVwIGEgY29ubmVj
dGlvbiB1c2luZyBoZWxwZXJzIGFuZCBkZWZhdWx0cyBzaG91bGQgd29yayBwcm9taXNlX3Rlc3Q6
IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVm
aW5lZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0cmFuc3BvcnQuc3RhdGUnKSIKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhl
bHBlci10ZXN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNDJmNjY1MmFjNGM0YjIxNjVkOTE4OTI5OTc3ODg4
YzU1ZGFkZGQ1NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci10ZXN0Lmh0
bWwKQEAgLTAsMCArMSwyMSBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04
PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlciB0ZXN0czwvdGl0bGU+Cis8c2NyaXB0
IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
UlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0
cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzIuY2xvc2UoKSk7CisgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMxLmFkZFRyYW5zY2Vp
dmVyKCd2aWRlbycpOworCisgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBhd2FpdCB3YWl0Rm9yU3RhdGUo
dHJhbnNjZWl2ZXIuc2VuZGVyLnRyYW5zcG9ydCwgJ2Nvbm5lY3RlZCcpOworfSwgJ1NldHRpbmcg
dXAgYSBjb25uZWN0aW9uIHVzaW5nIGhlbHBlcnMgYW5kIGRlZmF1bHRzIHNob3VsZCB3b3JrJyk7
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWhlbHBlci5qcwppbmRleCAwNzYyNmJkMGNjYzM5ZTkzMDM0YmVhZjFmNzQ1YmJjNDlhOTQz
OGMxLi41YWVmMGE4ZTIxZTQyZmFmZTU4NzE5YzBmYjI0NmE5MTlkMWIxNWQxIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzCkBAIC0y
MzIsNiArMjMyLDEyIEBAIGFzeW5jIGZ1bmN0aW9uIHdhaXRGb3JDb25uZWN0aW9uU3RhdGVDaGFu
Z2UocGMsIHdhbnRlZFN0YXRlcykgewogICB9CiB9CiAKK2FzeW5jIGZ1bmN0aW9uIHdhaXRGb3JJ
Y2VHYXRoZXJpbmdTdGF0ZShwYywgd2FudGVkU3RhdGVzKSB7CisgIHdoaWxlICghd2FudGVkU3Rh
dGVzLmluY2x1ZGVzKHBjLmljZUdhdGhlcmluZ1N0YXRlKSkgeworICAgIGF3YWl0IHdhaXRVbnRp
bEV2ZW50KHBjLCAnaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnKTsKKyAgfQorfQorCiAvLyBSZXNv
bHZlcyB3aGVuIFJUUCBwYWNrZXRzIGhhdmUgYmVlbiByZWNlaXZlZC4KIGFzeW5jIGZ1bmN0aW9u
IGxpc3RlbkZvclNTUkNzKHQsIHJlY2VpdmVyKSB7CiAgIHdoaWxlICh0cnVlKSB7CkBAIC0zOTIs
NyArMzk4LDcgQEAgY29uc3QgdHJhY2tGYWN0b3JpZXMgPSB7CiAgICAgcmV0dXJuIGRzdC5zdHJl
YW0uZ2V0QXVkaW9UcmFja3MoKVswXTsKICAgfSwKIAotICB2aWRlbyh7d2lkdGggPSA2NDAsIGhl
aWdodCA9IDQ4MCwgc2lnbmFsID0gbnVsbH0gPSB7fSkgeworICB2aWRlbyh7d2lkdGggPSA2NDAs
IGhlaWdodCA9IDQ4MCwgc2lnbmFsfSA9IHt9KSB7CiAgICAgY29uc3QgY2FudmFzID0gT2JqZWN0
LmFzc2lnbigKICAgICAgIGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLCB7d2lkdGgs
IGhlaWdodH0KICAgICApOwpAQCAtNDAwLDE1ICs0MDYsMTcgQEAgY29uc3QgdHJhY2tGYWN0b3Jp
ZXMgPSB7CiAgICAgY29uc3Qgc3RyZWFtID0gY2FudmFzLmNhcHR1cmVTdHJlYW0oKTsKIAogICAg
IGxldCBjb3VudCA9IDA7Ci0gICAgc2V0SW50ZXJ2YWwoKCkgPT4geworICAgIGNvbnN0IGludGVy
dmFsID0gc2V0SW50ZXJ2YWwoKCkgPT4gewogICAgICAgY3R4LmZpbGxTdHlsZSA9IGByZ2IoJHtj
b3VudCUyNTV9LCAke2NvdW50KmNvdW50JTI1NX0sICR7Y291bnQlMjU1fSlgOwogICAgICAgY291
bnQgKz0gMTsKICAgICAgIGN0eC5maWxsUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAg
IC8vIElmIHNpZ25hbCBpcyBzZXQsIGFkZCBhIGNvbnN0YW50LWNvbG9yIGJveCB0byB0aGUgdmlk
ZW8gZnJhbWUKLSAgICAgIC8vIGF0IGNvb3JkaW5hdGVzIDEwIHRvIDMwIGluIGJvdGggWCBhbmQg
WSBkaXJlY3Rpb24uCi0gICAgICBpZiAoc2lnbmFsICE9PSBudWxsKSB7CisgICAgICAvLyBJZiBz
aWduYWwgaXMgc2V0ICgwLTI1NSksIGFkZCBhIGNvbnN0YW50LWNvbG9yIGJveCBvZiB0aGF0IGx1
bWluYW5jZSB0bworICAgICAgLy8gdGhlIHZpZGVvIGZyYW1lIGF0IGNvb3JkaW5hdGVzIDIwIHRv
IDYwIGluIGJvdGggWCBhbmQgWSBkaXJlY3Rpb24uCisgICAgICAvLyAoYmlnIGVub3VnaCB0byBh
dm9pZCBjb2xvciBibGVlZCBmcm9tIHN1cnJvdW5kaW5nIHZpZGVvIGluIHNvbWUgY29kZWNzLAor
ICAgICAgLy8gZm9yIG1vcmUgc3RhYmxlIHRlc3RzKS4KKyAgICAgIGlmIChzaWduYWwgIT0gdW5k
ZWZpbmVkKSB7CiAgICAgICAgIGN0eC5maWxsU3R5bGUgPSBgcmdiKCR7c2lnbmFsfSwgJHtzaWdu
YWx9LCAke3NpZ25hbH0pYDsKLSAgICAgICAgY3R4LmZpbGxSZWN0KDEwLCAxMCwgMjAsIDIwKTsK
KyAgICAgICAgY3R4LmZpbGxSZWN0KDIwLCAyMCwgNDAsIDQwKTsKICAgICAgIH0KICAgICB9LCAx
MDApOwogCkBAIC00MTcsMjUgKzQyNSwzNCBAQCBjb25zdCB0cmFja0ZhY3RvcmllcyA9IHsKICAg
ICB9IGVsc2UgewogICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExv
YWRlZCcsICgpID0+IHsKICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjYW52YXMp
OwotICAgICAgfSk7CisgICAgICB9LCB7b25jZTogdHJ1ZX0pOwogICAgIH0KIAotICAgIHJldHVy
biBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKyAgICAvLyBJbXBsZW1lbnQgdHJhY2suc3Rv
cCgpIGZvciBwZXJmb3JtYW5jZSBpbiBzb21lIHRlc3RzIG9uIHNvbWUgcGxhdGZvcm1zCisgICAg
Y29uc3QgdHJhY2sgPSBzdHJlYW0uZ2V0VmlkZW9UcmFja3MoKVswXTsKKyAgICBjb25zdCBuYXRp
dmVTdG9wID0gdHJhY2suc3RvcDsKKyAgICB0cmFjay5zdG9wID0gZnVuY3Rpb24gc3RvcCgpIHsK
KyAgICAgIGNsZWFySW50ZXJ2YWwoaW50ZXJ2YWwpOworICAgICAgbmF0aXZlU3RvcC5hcHBseSh0
aGlzKTsKKyAgICAgIGlmIChkb2N1bWVudC5ib2R5ICYmIGNhbnZhcy5wYXJlbnRFbGVtZW50ID09
IGRvY3VtZW50LmJvZHkpIHsKKyAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChjYW52
YXMpOworICAgICAgfQorICAgIH07CisgICAgcmV0dXJuIHRyYWNrOwogICB9CiB9OwogCiAvLyBH
ZXQgdGhlIHNpZ25hbCBmcm9tIGEgdmlkZW8gZWxlbWVudCBpbnNlcnRlZCBieSBjcmVhdGVOb2lz
ZVN0cmVhbQogZnVuY3Rpb24gZ2V0VmlkZW9TaWduYWwodikgewotICBpZiAodi52aWRlb1dpZHRo
IDwgMjEgfHwgdi52aWRlb0hlaWdodCA8IDIxKSB7Ci0gICAgcmV0dXJuIG51bGw7CisgIGlmICh2
LnZpZGVvV2lkdGggPCA2MCB8fCB2LnZpZGVvSGVpZ2h0IDwgNjApIHsKKyAgICB0aHJvdyBuZXcg
RXJyb3IoJ2dldFZpZGVvU2lnbmFsOiB2aWRlbyB0b28gc21hbGwgZm9yIHRlc3QnKTsKICAgfQog
ICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKLSAgY2Fu
dmFzLndpZHRoID0gdi52aWRlb1dpZHRoOwotICBjYW52YXMuaGVpZ2h0ID0gdi52aWRlb0hlaWdo
dDsKKyAgY2FudmFzLndpZHRoID0gY2FudmFzLmhlaWdodCA9IDYwOwogICBjb25zdCBjb250ZXh0
ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7Ci0gIGNvbnRleHQuZHJhd0ltYWdlKHYsIDAsIDAs
IHYudmlkZW9XaWR0aCwgdi52aWRlb0hlaWdodCk7Ci0gIC8vIEV4dHJhY3QgcGl4ZWwgdmFsdWUg
YXQgcG9zaXRpb24gMjAsIDIwCi0gIGNvbnN0IHBpeGVsID0gY29udGV4dC5nZXRJbWFnZURhdGEo
MjAsIDIwLCAxLCAxKTsKKyAgY29udGV4dC5kcmF3SW1hZ2UodiwgMCwgMCk7CisgIC8vIEV4dHJh
Y3QgcGl4ZWwgdmFsdWUgYXQgcG9zaXRpb24gNDAsIDQwCisgIGNvbnN0IHBpeGVsID0gY29udGV4
dC5nZXRJbWFnZURhdGEoNDAsIDQwLCAxLCAxKTsKICAgLy8gVXNlIGx1bWEgcmVjb25zdHJ1Y3Rp
b24gdG8gZ2V0IGJhY2sgb3JpZ2luYWwgdmFsdWUgYWNjb3JkaW5nIHRvCiAgIC8vIElUVS1SIHJl
YyBCVC43MDkKICAgcmV0dXJuIChwaXhlbC5kYXRhWzBdICogMC4yMSArIHBpeGVsLmRhdGFbMV0g
KiAwLjcyICsgcGl4ZWwuZGF0YVsyXSAqIDAuMDcpOwpAQCAtNDQzLDggKzQ2MCw5IEBAIGZ1bmN0
aW9uIGdldFZpZGVvU2lnbmFsKHYpIHsKIAogYXN5bmMgZnVuY3Rpb24gZGV0ZWN0U2lnbmFsKHQs
IHYsIHZhbHVlKSB7CiAgIHdoaWxlICh0cnVlKSB7Ci0gICAgY29uc3Qgc2lnbmFsID0gZ2V0Vmlk
ZW9TaWduYWwodik7Ci0gICAgaWYgKHNpZ25hbCAhPT0gbnVsbCAmJiBzaWduYWwgPCB2YWx1ZSAr
IDEgJiYgc2lnbmFsID4gdmFsdWUgLSAxKSB7CisgICAgY29uc3Qgc2lnbmFsID0gZ2V0VmlkZW9T
aWduYWwodikudG9GaXhlZCgpOworICAgIC8vIGFsbG93IG9mZi1ieS10d28gcGl4ZWwgZXJyb3Ig
KG9ic2VydmVkIGluIHNvbWUgaW1wbGVtZW50YXRpb25zKQorICAgIGlmICh2YWx1ZSAtIDIgPD0g
c2lnbmFsICYmIHNpZ25hbCA8PSB2YWx1ZSArIDIpIHsKICAgICAgIHJldHVybjsKICAgICB9CiAg
ICAgLy8gV2Ugd291bGQgbGlrZSB0byB3YWl0IGZvciBlYWNoIG5ldyBmcmFtZSBpbnN0ZWFkIGhl
cmUsCkBAIC01MjEsOCArNTM5LDEyIEBAIGFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlT2ZmZXIoY2Fs
bGVyLCBjYWxsZWUpIHsKIH0KIC8vIFBlcmZvcm1zIGFuIGFuc3dlciBleGNoYW5nZSBjYWxsZXIg
LT4gY2FsbGVlLgogYXN5bmMgZnVuY3Rpb24gZXhjaGFuZ2VBbnN3ZXIoY2FsbGVyLCBjYWxsZWUp
IHsKLSAgYXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgY2FsbGVlLmNyZWF0
ZUFuc3dlcigpKTsKLSAgYXdhaXQgY2FsbGVyLnNldFJlbW90ZURlc2NyaXB0aW9uKGNhbGxlZS5s
b2NhbERlc2NyaXB0aW9uKTsKKyAgLy8gTm90ZSB0aGF0IGNhbGxlcidzIHJlbW90ZSBkZXNjcmlw
dGlvbiBtdXN0IGJlIHNldCBmaXJzdDsgaWYgbm90LAorICAvLyB0aGVyZSdzIGEgY2hhbmNlIHRo
YXQgY2FuZGlkYXRlcyBmcm9tIGNhbGxlZSBhcnJpdmUgYXQgY2FsbGVyIGJlZm9yZQorICAvLyBp
dCBoYXMgYSByZW1vdGUgZGVzY3JpcHRpb24gdG8gYXBwbHkgdGhlbSB0by4KKyAgY29uc3QgYW5z
d2VyID0gYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBjYWxsZXIuc2V0UmVt
b3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRp
b24oYW5zd2VyKTsKIH0KIGFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIoY2FsbGVy
LCBjYWxsZWUpIHsKICAgYXdhaXQgZXhjaGFuZ2VPZmZlcihjYWxsZXIsIGNhbGxlZSk7CkBAIC02
NDgsMyArNjcwLDQwIEBAIGNsYXNzIFVuaXF1ZVNldCBleHRlbmRzIFNldCB7CiAgICAgc3VwZXIu
YWRkKHZhbHVlKTsKICAgfQogfQorCitjb25zdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25z
ID0gYXN5bmMgKHBjLCAuLi5zdGF0ZXMpID0+IHsKKyAgZm9yIChjb25zdCBzdGF0ZSBvZiBzdGF0
ZXMpIHsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAg
ICBwYy5hZGRFdmVudExpc3RlbmVyKCdpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZScsICgpID0+IHsK
KyAgICAgICAgaWYgKHBjLmljZUdhdGhlcmluZ1N0YXRlID09IHN0YXRlKSB7CisgICAgICAgICAg
cmVzb2x2ZSgpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgIHJlamVjdChgVW5leHBlY3Rl
ZCBnYXRoZXJpbmcgc3RhdGU6ICR7cGMuaWNlR2F0aGVyaW5nU3RhdGV9LCB3YXMgZXhwZWN0aW5n
ICR7c3RhdGV9YCk7CisgICAgICAgIH0KKyAgICAgIH0sIHtvbmNlOiB0cnVlfSk7CisgICAgfSk7
CisgIH0KK307CisKK2NvbnN0IGluaXRpYWxPZmZlckFuc3dlcldpdGhJY2VHYXRoZXJpbmdTdGF0
ZVRyYW5zaXRpb25zID0KKyAgICBhc3luYyAocGMxLCBwYzIsIG9mZmVyT3B0aW9ucykgPT4gewor
ICAgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oCisgICAgICAgIGF3YWl0IHBjMS5j
cmVhdGVPZmZlcihvZmZlck9wdGlvbnMpKTsKKyAgICAgIGNvbnN0IHBjMVRyYW5zaXRpb25zID0K
KyAgICAgICAgICBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjMSwgJ2dhdGhlcmluZycs
ICdjb21wbGV0ZScpOworICAgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5s
b2NhbERlc2NyaXB0aW9uKTsKKyAgICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3
YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CisgICAgICBjb25zdCBwYzJUcmFuc2l0aW9ucyA9Cisg
ICAgICAgICAgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzIsICdnYXRoZXJpbmcnLCAn
Y29tcGxldGUnKTsKKyAgICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9j
YWxEZXNjcmlwdGlvbik7CisgICAgICBhd2FpdCBwYzFUcmFuc2l0aW9uczsKKyAgICAgIGF3YWl0
IHBjMlRyYW5zaXRpb25zOworICAgIH07CisKK2NvbnN0IGV4cGVjdE5vTW9yZUdhdGhlcmluZ1N0
YXRlQ2hhbmdlcyA9IGFzeW5jICh0LCBwYykgPT4geworICBwYy5vbmljZWdhdGhlcmluZ3N0YXRl
Y2hhbmdlID0KKyAgICAgIHQuc3RlcF9mdW5jKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X3VucmVh
Y2hlZCgKKyAgICAgICAgICAgICdTaG91bGQgbm90IGdldCBhbiBpY2VnYXRoZXJpbmdzdGF0ZWNo
YW5nZSByaWdodCBub3chJyk7CisgICAgICB9KTsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1pY2VDb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rp
b25TdGF0ZS5odHRwcy5odG1sCmluZGV4IGQzMTI2MDY1Yjk5Nzc4ZjMyYjVlMzEzMjExMDg1ZDU1
YzA2NGZlMWUuLjMyMGIwM2RmYzgwZjhlN2U0YTIwZDllMjQzYjljYzg3Yzg4ODgxYzcgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sCkBAIC0zOTMsNyArMzkzLDcg
QEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogCiAgIHBjMi5vbmljZWNvbm5lY3Rpb25zdGF0
ZWNoYW5nZSA9IHQudW5yZWFjaGVkX2Z1bmMoKTsKICAgcGMyLmNsb3NlKCk7Ci0gIGFzc2VydF90
cnVlKHBjMi5pY2VDb25uZWN0aW9uU3RhdGUgPT09ICdjbG9zZWQnKTsKKyAgYXNzZXJ0X2VxdWFs
cyhwYzIuaWNlQ29ubmVjdGlvblN0YXRlLCAnY2xvc2VkJyk7CiAgIGF3YWl0IG5ldyBQcm9taXNl
KHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMTAwKSk7CiB9LCAnQ2xvc2luZyBhIFBlZXJDb25uZWN0
aW9uIHNob3VsZCBub3QgZmlyZSBpY2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2UgZXZlbnQnKTsKIApk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbCBiL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLWljZUdhdGhlcmluZ1N0YXRlLmh0bWwKaW5kZXggM2YwMTI4YmI4NDNkZGJkZDEyOWY4YTEw
YjYwMWIyMWMyMWNlN2RlNC4uODcwZTZhZDcyZWMzNTZlY2VmYmNhNjg4NzhkYTczMWUzNDdlZDE3
YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sCkBAIC04NCw0MyArODQsMTMgQEAKICAg
ICAgIGFzc2VydF91bnJlYWNoZWQoYFVuaGFuZGxlZCByZWplY3Rpb24gJHtlcnIubmFtZX06ICR7
ZXJyLm1lc3NhZ2V9YCkpKTsKICAgfSwgJ2ljZUdhdGhlcmluZ1N0YXRlIHNob3VsZCBldmVudHVh
bGx5IGJlY29tZSBjb21wbGV0ZSBhZnRlciBzZXRMb2NhbERlc2NyaXB0aW9uJyk7CiAKLSAgY29u
c3QgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyA9IGFzeW5jIChwYywgLi4uc3RhdGVzKSA9
PiB7Ci0gICAgZm9yIChjb25zdCBzdGF0ZSBvZiBzdGF0ZXMpIHsKLSAgICAgIGF3YWl0IG5ldyBQ
cm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHsKLSAgICAgICAgcGMuYWRkRXZlbnRMaXN0ZW5l
cignaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnLCAoKSA9PiB7Ci0gICAgICAgICAgaWYgKHBjLmlj
ZUdhdGhlcmluZ1N0YXRlID09IHN0YXRlKSB7Ci0gICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAg
ICAgICAgfSBlbHNlIHsKLSAgICAgICAgICAgIHJlamVjdChgVW5leHBlY3RlZCBnYXRoZXJpbmcg
c3RhdGU6ICR7cGMuaWNlR2F0aGVyaW5nU3RhdGV9LCB3YXMgZXhwZWN0aW5nICR7c3RhdGV9YCk7
Ci0gICAgICAgICAgfQotICAgICAgICB9LCB7b25jZTogdHJ1ZX0pOwotICAgICAgfSk7Ci0gICAg
fQotICB9OwotCi0gIGNvbnN0IGluaXRpYWxPZmZlckFuc3dlciA9IGFzeW5jIChwYzEsIHBjMiwg
b2ZmZXJPcHRpb25zKSA9PiB7Ci0gICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oCi0g
ICAgICBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIob2ZmZXJPcHRpb25zKSk7Ci0gICAgY29uc3QgcGMx
VHJhbnNpdGlvbnMgPSBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjMSwgJ2dhdGhlcmlu
ZycsICdjb21wbGV0ZScpOwotICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEu
bG9jYWxEZXNjcmlwdGlvbik7Ci0gICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdh
aXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsKLSAgICBjb25zdCBwYzJUcmFuc2l0aW9ucyA9IGljZUdh
dGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMyLCAnZ2F0aGVyaW5nJywgJ2NvbXBsZXRlJyk7Ci0g
ICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsK
LQotICAgIGF3YWl0IHBjMVRyYW5zaXRpb25zOwotICAgIGF3YWl0IHBjMlRyYW5zaXRpb25zOwot
ICB9OwotCi0gIGNvbnN0IGV4cGVjdE5vTW9yZUdhdGhlcmluZ1N0YXRlQ2hhbmdlcyA9IGFzeW5j
ICh0LCBwYykgPT4gewotICAgIHBjLm9uaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UgPSB0LnN0ZXBf
ZnVuYygoKSA9PiBhc3NlcnRfdW5yZWFjaGVkKCdTaG91bGQgbm90IGdldCBhbiBpY2VnYXRoZXJp
bmdzdGF0ZWNoYW5nZSByaWdodCBub3chJykpOwotICB9OwotCiAgIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IHsKICAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgICBjb25zdCBwYzIgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsK
LSAgICBhd2FpdCBpbml0aWFsT2ZmZXJBbnN3ZXIocGMxLCBwYzIsIHtvZmZlclRvUmVjZWl2ZUF1
ZGlvOiB0cnVlfSk7CisgICAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2VyV2l0aEljZUdhdGhlcmlu
Z1N0YXRlVHJhbnNpdGlvbnMoCisgICAgICAgIHBjMSwgcGMyLCB7b2ZmZXJUb1JlY2VpdmVBdWRp
bzogdHJ1ZX0pOwogCiAgICAgZXhwZWN0Tm9Nb3JlR2F0aGVyaW5nU3RhdGVDaGFuZ2VzKHQsIHBj
MSk7CiAgICAgZXhwZWN0Tm9Nb3JlR2F0aGVyaW5nU3RhdGVDaGFuZ2VzKHQsIHBjMik7CkBAIC0x
MzQsMjIgKzEwNCwyMSBAQAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3Qg
cGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzEuY2xvc2UoKSk7Ci0gICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0g
ICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Ci0gICAgYXdhaXQgaW5pdGlhbE9m
ZmVyQW5zd2VyKHBjMSwgcGMyLCB7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pOwotICAgIGF3
YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcih7aWNlUmVz
dGFydDogdHJ1ZX0pKTsKLSAgICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBj
MSwgJ2dhdGhlcmluZycsICdjb21wbGV0ZScpOworCiAgICAgZXhwZWN0Tm9Nb3JlR2F0aGVyaW5n
U3RhdGVDaGFuZ2VzKHQsIHBjMSk7Ci0gICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24o
e3R5cGU6ICdyb2xsYmFjayd9KTsKLSAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90
aW1lb3V0KHIsIDEwMDApKTsKLSAgfSwgJ3JvbGxpbmcgYmFjayBhbiBJQ0UgcmVzdGFydCB3aGVu
IGdhdGhlcmluZyBpcyBjb21wbGV0ZSBzaG91bGQgbm90IHJlc3VsdCBpbiBpY2VHYXRoZXJpbmdT
dGF0ZSBjaGFuZ2VzJyk7CisKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2Fp
dCBwYzEuY3JlYXRlT2ZmZXIoKSk7CisKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3Rl
cF90aW1lb3V0KHIsIDUwMCkpOworICB9LCAnc2V0TG9jYWxEZXNjcmlwdGlvbigpIHdpdGggbm8g
dHJhbnNwb3J0cyBzaG91bGQgbm90IGNhdXNlIGljZUdhdGhlcmluZ1N0YXRlIHRvIGNoYW5nZScp
OwogCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYzEgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsK
ICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVh
bnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLSAgICBhd2FpdCBpbml0aWFsT2ZmZXJBbnN3ZXIocGMx
LCBwYzIsIHtvZmZlclRvUmVjZWl2ZUF1ZGlvOnRydWV9KTsKKyAgICBhd2FpdCBpbml0aWFsT2Zm
ZXJBbnN3ZXJXaXRoSWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucygKKyAgICAgICAgcGMxLCBw
YzIsIHtvZmZlclRvUmVjZWl2ZUF1ZGlvOnRydWV9KTsKICAgICBhd2FpdCBwYzEuc2V0TG9jYWxE
ZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoe2ljZVJlc3RhcnQ6IHRydWV9KSk7CiAg
ICAgYXdhaXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICdnYXRoZXJpbmcnLCAn
Y29tcGxldGUnKTsKICAgfSwgJ3NldExvY2FsRGVzY3JpcHRpb24ocmVvZmZlcikgd2l0aCBhIG5l
dyB0cmFuc3BvcnQgc2hvdWxkIGNhdXNlIGljZUdhdGhlcmluZ1N0YXRlIHRvIGdvIHRvICJjaGVj
a2luZyIgYW5kIHRoZW4gImNvbXBsZXRlIicpOwpAQCAtMTY1LDQ4ICsxMzQsMzEgQEAKICAgICBh
d2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOwogICAgIGF3YWl0IHBjMi5zZXRS
ZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ3JvbGxiYWNrJ30pOwogICAgIGF3YWl0IHBjMi5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7Ci0gIH0sICdzUkQgZG9lcyBub3QgY2F1c2UgSUNFIGdh
dGhlcmluZyBzdGF0ZSBjaGFuZ2VzJykKLQotICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0g
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOwotICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oCi0g
ICAgICBhd2FpdCBwYy5jcmVhdGVPZmZlcih7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pKTsK
LSAgICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAnZ2F0aGVyaW5nJywg
J2NvbXBsZXRlJyk7Ci0gICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogJ3Jv
bGxiYWNrJ30pOwotICAgIGF3YWl0IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMsICdu
ZXcnKTsKLSAgfSwgJ3NldExvY2FsRGVzY3JpcHRpb24ocm9sbGJhY2spIG9mIG9yaWdpbmFsIG9m
ZmVyIHNob3VsZCBjYXVzZSBpY2VHYXRoZXJpbmdTdGF0ZSB0byByZWFjaCAibmV3IiB3aGVuIHN0
YXJ0aW5nIGluICJjb21wbGV0ZSInKTsKLQotICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0g
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOwotICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oCi0g
ICAgICBhd2FpdCBwYy5jcmVhdGVPZmZlcih7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pKTsK
LSAgICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAnZ2F0aGVyaW5nJyk7
Ci0gICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogJ3JvbGxiYWNrJ30pOwot
ICAgIC8vIFdlIG1pZ2h0IGdvIGRpcmVjdGx5IHRvICduZXcnLCBvciB3ZSBtaWdodCBnbyB0byAn
Y29tcGxldGUnIGZpcnN0LAotICAgIC8vIGRlcGVuZGluZyBvbiB0aW1pbmcuIEFsbG93IGVpdGhl
ci4KLSAgICBjb25zdCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFsKLSAgICAg
IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMsICduZXcnKSwKLSAgICAgIGljZUdhdGhl
cmluZ1N0YXRlVHJhbnNpdGlvbnMocGMsICdjb21wbGV0ZScsICduZXcnKV0pOwotICAgIGFzc2Vy
dF90cnVlKHJlc3VsdHMuc29tZShyZXN1bHQgPT4gcmVzdWx0LnN0YXR1cyA9PSAnZnVsZmlsbGVk
JyksCi0gICAgICAnSUNFIGdhdGhlcmluZyBzdGF0ZSBzaG91bGQgZ28gYmFjayB0byAibmV3Iiwg
cG9zc2libHkgdGhyb3VnaCAiY29tcGxldGUiJyk7Ci0gIH0sICdzZXRMb2NhbERlc2NyaXB0aW9u
KHJvbGxiYWNrKSBvZiBvcmlnaW5hbCBvZmZlciBzaG91bGQgY2F1c2UgaWNlR2F0aGVyaW5nU3Rh
dGUgdG8gcmVhY2ggIm5ldyIgd2hlbiBzdGFydGluZyBpbiAiZ2F0aGVyaW5nIicpOworICB9LCAn
c1JEIGRvZXMgbm90IGNhdXNlIElDRSBnYXRoZXJpbmcgc3RhdGUgY2hhbmdlcycpOwogCiAgIHBy
b21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgICBjb25z
dCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+
IHBjMi5jbG9zZSgpKTsKLSAgICBhd2FpdCBpbml0aWFsT2ZmZXJBbnN3ZXIocGMxLCBwYzIsIHtv
ZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSk7CisgICAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2Vy
V2l0aEljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMoCisgICAgICAgIHBjMSwgcGMyLCB7b2Zm
ZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pOwogCisgICAgY29uc3QgcGMxd2FpdGVyID0gaWNlR2F0
aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICduZXcnKTsKKyAgICBjb25zdCBwYzJ3YWl0ZXIg
PSBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjMiwgJ25ldycpOwogICAgIHBjMS5nZXRU
cmFuc2NlaXZlcnMoKVswXS5zdG9wKCk7CiAgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRp
b24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOwogICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNj
cmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7CiAgICAgYXdhaXQgcGMyLnNldExvY2FsRGVz
Y3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpKTsKLSAgICBhd2FpdCBpY2VHYXRoZXJp
bmdTdGF0ZVRyYW5zaXRpb25zKHBjMiwgJ25ldycpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdl
dFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMCwKKyAgICAgICAgICAgICAgICAgJ1BDMiB0cmFuc2Nl
aXZlcnMgc2hvdWxkIGJlIGludmlzaWJsZSBhZnRlciBuZWdvdGlhdGlvbicpOworICAgIGFzc2Vy
dF9lcXVhbHMocGMyLmljZUdhdGhlcmluZ1N0YXRlLCAnbmV3Jyk7CisgICAgYXdhaXQgcGMyd2Fp
dGVyOwogICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlw
dGlvbik7Ci0gICAgYXdhaXQgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICduZXcn
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDAsCisg
ICAgICAgICAgICAgICAgICAnUEMxIHRyYW5zY2VpdmVycyBzaG91bGQgYmUgaW52aXNpYmxlIGFm
dGVyIG5lZ290aWF0aW9uJyk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuaWNlR2F0aGVyaW5nU3Rh
dGUsICduZXcnKTsKKyAgICBhd2FpdCBwYzF3YWl0ZXI7CiAgIH0sICdyZW5lZ290aWF0aW9uIHRo
YXQgY2xvc2VzIGFsbCB0cmFuc3BvcnRzIHNob3VsZCByZXN1bHQgaW4gSUNFIGdhdGhlcmluZyBz
dGF0ZSAibmV3IicpOwogCiAgIC8qCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnkt
Z2V0U3RhdHMuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRw
cy5odG1sCmluZGV4IDUwMTU4ZDRjZWEwY2RlM2FlNWY1ODMxNDA4NTlkZTZkYTc5YmEwYmQuLjdk
YTE0Y2Q1ZTBmM2Y1YzdlODA3YjYxY2IwZTdlY2M3MjE2ZmYwMDcgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1h
bmRhdG9yeS1nZXRTdGF0cy5odHRwcy5odG1sCkBAIC0yNCwxMiArMjQsMTcgQEAgY29uc3QgbWFu
ZGF0b3J5ID0gewogICAgICJwYWNrZXRzTG9zdCIsCiAgICAgImppdHRlciIsCiAgICAgInBhY2tl
dHNEaXNjYXJkZWQiLAorICAgICJmcmFtZXNEcm9wcGVkIgogICBdLAogICBSVENJbmJvdW5kUnRw
U3RyZWFtU3RhdHM6IFsKLSAgICAidHJhY2tJZCIsCiAgICAgInJlY2VpdmVySWQiLAogICAgICJy
ZW1vdGVJZCIsCiAgICAgImZyYW1lc0RlY29kZWQiLAorICAgICJuYWNrQ291bnQiLAorICAgICJm
cmFtZXNSZWNlaXZlZCIsCisgICAgImJ5dGVzUmVjZWl2ZWQiLAorICAgICJ0b3RhbEF1ZGlvRW5l
cmd5IiwKKyAgICAidG90YWxTYW1wbGVzRHVyYXRpb24iCiAgIF0sCiAgIFJUQ1JlbW90ZUluYm91
bmRSdHBTdHJlYW1TdGF0czogWwogICAgICJsb2NhbElkIiwKQEAgLTQwLDEwICs0NSwxMSBAQCBj
b25zdCBtYW5kYXRvcnkgPSB7CiAgICAgImJ5dGVzU2VudCIKICAgXSwKICAgUlRDT3V0Ym91bmRS
dHBTdHJlYW1TdGF0czogWwotICAgICJ0cmFja0lkIiwKICAgICAic2VuZGVySWQiLAogICAgICJy
ZW1vdGVJZCIsCiAgICAgImZyYW1lc0VuY29kZWQiLAorICAgICJuYWNrQ291bnQiLAorICAgICJm
cmFtZXNTZW50IgogICBdLAogICBSVENSZW1vdGVPdXRib3VuZFJ0cFN0cmVhbVN0YXRzOiBbCiAg
ICAgImxvY2FsSWQiLApAQCAtNTQsNiArNjAsNyBAQCBjb25zdCBtYW5kYXRvcnkgPSB7CiAgICAg
ImRhdGFDaGFubmVsc0Nsb3NlZCIsCiAgIF0sCiAgIFJUQ0RhdGFDaGFubmVsU3RhdHM6IFsKKyAg
ICAibGFiZWwiLAogICAgICJwcm90b2NvbCIsCiAgICAgImRhdGFDaGFubmVsSWRlbnRpZmllciIs
CiAgICAgInN0YXRlIiwKQEAgLTYyLDM1ICs2OSwzNCBAQCBjb25zdCBtYW5kYXRvcnkgPSB7CiAg
ICAgIm1lc3NhZ2VzUmVjZWl2ZWQiLAogICAgICJieXRlc1JlY2VpdmVkIiwKICAgXSwKLSAgUlRD
TWVkaWFTdHJlYW1TdGF0czogWwotICAgICJzdHJlYW1JZGVudGlmZXIiLAotICAgICJ0cmFja0lk
cyIsCisgIFJUQ01lZGlhU291cmNlU3RhdHM6IFsKKyAgICAidHJhY2tJZGVudGlmaWVyIiwKKyAg
ICAgImtpbmQiCisgIF0sCisgIFJUQ0F1ZGlvU291cmNlU3RhdHM6IFsKKyAgICAidG90YWxBdWRp
b0VuZXJneSIsCisgICAgICJ0b3RhbFNhbXBsZXNEdXJhdGlvbiIKKyAgXSwKKyAgUlRDVmlkZW9T
b3VyY2VTdGF0czogWworICAgICJ3aWR0aCIsCisgICAgImhlaWdodCIsCisgICAgImZyYW1lc1Bl
clNlY29uZCIKICAgXSwKICAgUlRDTWVkaWFIYW5kbGVyU3RhdHM6IFsKICAgICAidHJhY2tJZGVu
dGlmaWVyIiwKLSAgICAicmVtb3RlU291cmNlIiwKLSAgICAiZW5kZWQiLAogICBdLAogICBSVENB
dWRpb0hhbmRsZXJTdGF0czogWwotICAgICJhdWRpb0xldmVsIiwKICAgXSwKICAgUlRDVmlkZW9I
YW5kbGVyU3RhdHM6IFsKLSAgICAiZnJhbWVXaWR0aCIsCi0gICAgImZyYW1lSGVpZ2h0IiwKLSAg
ICAiZnJhbWVzUGVyU2Vjb25kIiwKICAgXSwKICAgUlRDVmlkZW9TZW5kZXJTdGF0czogWwotICAg
ICJmcmFtZXNTZW50IiwKICAgXSwKICAgUlRDVmlkZW9SZWNlaXZlclN0YXRzOiBbCi0gICAgImZy
YW1lc1JlY2VpdmVkIiwKLSAgICAiZnJhbWVzRGVjb2RlZCIsCi0gICAgImZyYW1lc0Ryb3BwZWQi
LAotICAgICJwYXJ0aWFsRnJhbWVzTG9zdCIsCiAgIF0sCiAgIFJUQ0NvZGVjU3RhdHM6IFsKICAg
ICAicGF5bG9hZFR5cGUiLAogICAgICJjb2RlY1R5cGUiLAorICAgICJtaW1lVHlwZSIsCiAgICAg
ImNsb2NrUmF0ZSIsCiAgICAgImNoYW5uZWxzIiwKICAgICAic2RwRm10cExpbmUiLApAQCAtOTgs
NyArMTA0LDYgQEAgY29uc3QgbWFuZGF0b3J5ID0gewogICBSVENUcmFuc3BvcnRTdGF0czogWwog
ICAgICJieXRlc1NlbnQiLAogICAgICJieXRlc1JlY2VpdmVkIiwKLSAgICAicnRjcFRyYW5zcG9y
dFN0YXRzSWQiLAogICAgICJzZWxlY3RlZENhbmRpZGF0ZVBhaXJJZCIsCiAgICAgImxvY2FsQ2Vy
dGlmaWNhdGVJZCIsCiAgICAgInJlbW90ZUNlcnRpZmljYXRlSWQiLApAQCAtMTA4LDEyICsxMTMs
MTEgQEAgY29uc3QgbWFuZGF0b3J5ID0gewogICAgICJsb2NhbENhbmRpZGF0ZUlkIiwKICAgICAi
cmVtb3RlQ2FuZGlkYXRlSWQiLAogICAgICJzdGF0ZSIsCi0gICAgInByaW9yaXR5IiwKICAgICAi
bm9taW5hdGVkIiwKICAgICAiYnl0ZXNTZW50IiwKICAgICAiYnl0ZXNSZWNlaXZlZCIsCiAgICAg
InRvdGFsUm91bmRUcmlwVGltZSIsCi0gICAgImN1cnJlbnRSb3VuZFRyaXBUaW1lIiwKKyAgICAi
Y3VycmVudFJvdW5kVHJpcFRpbWUiCiAgIF0sCiAgIFJUQ0ljZUNhbmRpZGF0ZVN0YXRzOiBbCiAg
ICAgImFkZHJlc3MiLApAQCAtMTQxLDcgKzE0NSwxMCBAQCBjb25zdCBkaWN0aW9uYXJ5TmFtZXMg
PSB7CiAgICJjc3JjIjogIlJUQ1J0cENvbnRyaWJ1dGluZ1NvdXJjZVN0YXRzIiwKICAgInBlZXIt
Y29ubmVjdGlvbiI6ICJSVENQZWVyQ29ubmVjdGlvblN0YXRzIiwKICAgImRhdGEtY2hhbm5lbCI6
ICJSVENEYXRhQ2hhbm5lbFN0YXRzIiwKLSAgInN0cmVhbSI6ICJSVENNZWRpYVN0cmVhbVN0YXRz
IiwKKyAgIm1lZGlhLXNvdXJjZSI6IHsKKyAgICBhdWRpbzogIlJUQ0F1ZGlvU291cmNlU3RhdHMi
LAorICAgIHZpZGVvOiAiUlRDVmlkZW9Tb3VyY2VTdGF0cyIKKyAgfSwKICAgInRyYWNrIjogewog
ICAgIHZpZGVvOiAiUlRDU2VuZGVyVmlkZW9UcmFja0F0dGFjaG1lbnRTdGF0cyIsCiAgICAgYXVk
aW86ICJSVENTZW5kZXJBdWRpb1RyYWNrQXR0YWNobWVudFN0YXRzIgpAQCAtMTY2LDEwICsxNzMs
MTIgQEAgY29uc3QgZGljdGlvbmFyeU5hbWVzID0gewogY29uc3QgcGFyZW50cyA9IHsKICAgUlRD
VmlkZW9IYW5kbGVyU3RhdHM6ICJSVENNZWRpYUhhbmRsZXJTdGF0cyIsCiAgIFJUQ1ZpZGVvU2Vu
ZGVyU3RhdHM6ICJSVENWaWRlb0hhbmRsZXJTdGF0cyIsCisgIFJUQ1ZpZGVvU291cmNlU3RhdHM6
ICJSVENNZWRpYVNvdXJjZVN0YXRzIiwKICAgUlRDU2VuZGVyVmlkZW9UcmFja0F0dGFjaG1lbnRT
dGF0czogIlJUQ1ZpZGVvU2VuZGVyU3RhdHMiLAogICBSVENWaWRlb1JlY2VpdmVyU3RhdHM6ICJS
VENWaWRlb0hhbmRsZXJTdGF0cyIsCiAgIFJUQ0F1ZGlvSGFuZGxlclN0YXRzOiAiUlRDTWVkaWFI
YW5kbGVyU3RhdHMiLAogICBSVENBdWRpb1NlbmRlclN0YXRzOiAiUlRDQXVkaW9IYW5kbGVyU3Rh
dHMiLAorICBSVENBdWRpb1NvdXJjZVN0YXRzOiAiUlRDTWVkaWFTb3VyY2VTdGF0cyIsCiAgIFJU
Q1NlbmRlckF1ZGlvVHJhY2tBdHRhY2htZW50U3RhdHM6ICJSVENBdWRpb1NlbmRlclN0YXRzIiwK
ICAgUlRDQXVkaW9SZWNlaXZlclN0YXRzOiAiUlRDQXVkaW9IYW5kbGVyU3RhdHMiLAogICBSVENS
ZWNlaXZlZFJ0cFN0cmVhbVN0YXRzOiAiUlRDUnRwU3RyZWFtU3RhdHMiLApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tb25kYXRhY2hhbm5lbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25kYXRhY2hhbm5l
bC5odG1sCmluZGV4IDQ2ZmU4ZTBmNTFiMWIxYTg1NWYwNmQ1NGM4MTk3ODRkNmY1NDI1MDguLjAz
NDM2NTUwOGI2YmNhMTQ2OTg1Mzc4MTlkODZjNTNmYzEyMjZkNWUgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLW9uZGF0YWNoYW5uZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmRhdGFjaGFubmVs
Lmh0bWwKQEAgLTI1NSw3ICsyNTUsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAg
Y29uc3QgZGMxID0gcGMxLmNyZWF0ZURhdGFDaGFubmVsKCd0ZXN0JywgewogICAgIG9yZGVyZWQ6
IGZhbHNlLAogICAgIG1heFJldHJhbnNtaXRzOiAxLAotICAgIHByb3RvY29sOiAnY3VzdG9tJywK
KyAgICBwcm90b2NvbDogJ2N1c3RvbScKICAgfSk7CiAKICAgYXNzZXJ0X2VxdWFscyhkYzEubGFi
ZWwsICd0ZXN0Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwKaW5kZXggMmVkYTdi
NWIzNDFjYTk2NWRjYTk3MGNkZmE1YzczYjJmNTdlMzE4OS4uYTg3NTUxYTU4YzdkZDU2ODdlM2Mx
ZWVlNDg4YzkyZmI4NWIxZGUwNSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlv
bm5lZWRlZC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQuaHRtbApA
QCAtMjg4LDcgKzI4OCw3IEBACiAgICAgICByZW1vdmVUcmFjawogICAgICAgICAxMi4gVXBkYXRl
IHRoZSBuZWdvdGlhdGlvbi1uZWVkZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KICAgKi8KLSAgYXN5
bmNfdGVzdChhc3luYyB0ID0+IHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKIApAQCAtMjk2LDIwICsyOTYsMjAgQEAKICAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkp
OwogICAgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CiAgICAgY29uc3Qgc2Vu
ZGVyID0gcGMuYWRkVHJhY2sodHJhY2ssIHN0cmVhbSk7Ci0gICAgcGMub25uZWdvdGlhdGlvbm5l
ZWRlZCA9IHQuc3RlcF9mdW5jKGFzeW5jICgpID0+IHsKLSAgICAgIHBjLm9ubmVnb3RpYXRpb25u
ZWVkZWQgPSB0LnN0ZXBfZnVuYyhhc3luYyAoKSA9PiB7Ci0gICAgICAgIGFzc2VydF91bnJlYWNo
ZWQoJ29ubmVnb3RpYXRpb25uZWVkZWQgbWlzZmlyZWQnKTsKLSAgICAgIH0pOwotICAgICAgY29u
c3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVPZmZlcigpOwotICAgICAgYXdhaXQgcGMuc2V0TG9j
YWxEZXNjcmlwdGlvbihvZmZlcik7CiAKLSAgICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGdlbmVy
YXRlQW5zd2VyKG9mZmVyKTsKLSAgICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFu
c3dlcik7Ci0KLSAgICAgIHBjLnJlbW92ZVRyYWNrKHNlbmRlcik7Ci0gICAgICBhd2FpdCBuZXcg
UHJvbWlzZShyZXNvbHZlID0+IHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNvbHZlKQotICAg
ICAgdC5kb25lKCk7CisgICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBwYy5vbm5lZ290
aWF0aW9ubmVlZGVkID0gcmVzb2x2ZSk7CisgICAgcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHQu
c3RlcF9mdW5jKCgpID0+IHsKKyAgICAgIGFzc2VydF91bnJlYWNoZWQoJ29ubmVnb3RpYXRpb25u
ZWVkZWQgbWlzZmlyZWQnKTsKICAgICB9KTsKKworICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMu
Y3JlYXRlT2ZmZXIoKTsKKyAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsK
KworICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGdlbmVyYXRlQW5zd2VyKG9mZmVyKTsKKyAgICBh
d2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOworCisgICAgcGMucmVtb3ZlVHJh
Y2soc2VuZGVyKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBjLm9ubmVnb3Rp
YXRpb25uZWVkZWQgPSByZXNvbHZlKQogICB9LCAncmVtb3ZlVHJhY2sgc2hvdWxkIGNhdXNlIG5l
Z290aWF0aW9ubmVlZGVkIHRvIGZpcmUgb24gdGhlIGNhbGxlcicpOwogCiAgIC8qCkBAIC0zMTgs
NyArMzE4LDcgQEAKICAgICAgIHJlbW92ZVRyYWNrCiAgICAgICAgIDEyLiBVcGRhdGUgdGhlIG5l
Z290aWF0aW9uLW5lZWRlZCBmbGFnIGZvciBjb25uZWN0aW9uLgogICAqLwotICBhc3luY190ZXN0
KGFzeW5jIHQgPT4geworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgY2Fs
bGVyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBj
YWxsZXIuY2xvc2UoKSk7CiAgICAgY2FsbGVyLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycsIHtkaXJl
Y3Rpb246J3JlY3Zvbmx5J30pOwpAQCAtMzMyLDE4ICszMzIsMTcgQEAKICAgICBjb25zdCBbdHJh
Y2tdID0gc3RyZWFtLmdldFRyYWNrcygpOwogICAgIGNvbnN0IHNlbmRlciA9IGNhbGxlZS5hZGRU
cmFjayh0cmFjaywgc3RyZWFtKTsKIAotICAgIGNhbGxlZS5vbm5lZ290aWF0aW9ubmVlZGVkID0g
dC5zdGVwX2Z1bmMoYXN5bmMgKCkgPT4gewotICAgICAgY2FsbGVlLm9ubmVnb3RpYXRpb25uZWVk
ZWQgPSB0LnN0ZXBfZnVuYyhhc3luYyAoKSA9PiB7Ci0gICAgICAgIGFzc2VydF91bnJlYWNoZWQo
J29ubmVnb3RpYXRpb25uZWVkZWQgbWlzZmlyZWQnKTsKLSAgICAgIH0pOwotICAgICAgYXdhaXQg
Y2FsbGVlLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKLSAgICAgIGNvbnN0IGFuc3dlciA9
IGF3YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKLSAgICAgIGNhbGxlZS5zZXRMb2NhbERlc2Ny
aXB0aW9uKGFuc3dlcik7Ci0KLSAgICAgIGNhbGxlZS5yZW1vdmVUcmFjayhzZW5kZXIpOwotICAg
ICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBjYWxsZWUub25uZWdvdGlhdGlvbm5lZWRl
ZCA9IHJlc29sdmUpCi0gICAgICB0LmRvbmUoKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNv
bHZlID0+IGNhbGxlZS5vbm5lZ290aWF0aW9ubmVlZGVkID0gcmVzb2x2ZSk7CisgICAgY2FsbGVl
Lm9ubmVnb3RpYXRpb25uZWVkZWQgPSB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICBhc3NlcnRf
dW5yZWFjaGVkKCdvbm5lZ290aWF0aW9ubmVlZGVkIG1pc2ZpcmVkJyk7CiAgICAgfSk7CisKKyAg
ICBhd2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICAgIGNvbnN0IGFu
c3dlciA9IGF3YWl0IGNhbGxlZS5jcmVhdGVBbnN3ZXIoKTsKKyAgICBjYWxsZWUuc2V0TG9jYWxE
ZXNjcmlwdGlvbihhbnN3ZXIpOworCisgICAgY2FsbGVlLnJlbW92ZVRyYWNrKHNlbmRlcik7Cisg
ICAgYXdhaXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBjYWxsZWUub25uZWdvdGlhdGlvbm5lZWRl
ZCA9IHJlc29sdmUpCiAgIH0sICdyZW1vdmVUcmFjayBzaG91bGQgY2F1c2UgbmVnb3RpYXRpb25u
ZWVkZWQgdG8gZmlyZSBvbiB0aGUgY2FsbGVlJyk7CiAKICAgLyoKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3
NDM0YWQ2YTYzZTExNTUyMzZhMWRlODc0MGVjNmZjN2ZjMzBhY2Q1Li44MjJjYTMxY2JjNmMxMDJh
MjRkMDBmYzE0ZDdhMTgxZjJiZTk5YTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnNpZ25h
bGluZ3N0YXRlY2hhbmdlZC5odHRwcy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25z
aWduYWxpbmdzdGF0ZWNoYW5nZWQuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNSBAQAog
CiBQQVNTIE5lZ290aWF0aW9uIG1ldGhvZHMgZmlyZSBzaWduYWxpbmdzdGF0ZWNoYW5nZSBldmVu
dHMKIEZBSUwgQ2xvc2luZyBhIFBlZXJDb25uZWN0aW9uIHNob3VsZCBub3QgZmlyZSBzaWduYWxp
bmdzdGF0ZWNoYW5nZSBldmVudCBhc3NlcnRfdW5yZWFjaGVkOiBSZWFjaGVkIHVucmVhY2hhYmxl
IGNvZGUKK1BBU1Mgc2lnbmFsaW5nc3RhdGVjaGFuZ2UgaXMgdGhlIGZpcnN0IGV2ZW50IHRvIGZp
cmUKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25zaWduYWxpbmdzdGF0ZWNoYW5nZWQuaHR0
cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLmh0bWwK
aW5kZXggMGM4NDA1NzcwYjYxNmQxZDBmM2JlMjI2YTgxNTc4MGNjMWFkMDQxMy4uYWQ5MmJmNWZj
NjA5ZDNkOTc1MjVmZjgyNTFjMzZmMzljNjk4ZGFlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
b25zaWduYWxpbmdzdGF0ZWNoYW5nZWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnNp
Z25hbGluZ3N0YXRlY2hhbmdlZC5odHRwcy5odG1sCkBAIC00OSw4ICs0OSwyMyBAQCBwcm9taXNl
X3Rlc3QoYXN5bmMgdCA9PiB7CiAKICAgcGMyLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSB0LnVu
cmVhY2hlZF9mdW5jKCk7CiAgIHBjMi5jbG9zZSgpOwotICBhc3NlcnRfdHJ1ZShwYzIuc2lnbmFs
aW5nU3RhdGUgPT09ICdjbG9zZWQnKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzIuc2lnbmFsaW5nU3Rh
dGUsICdjbG9zZWQnKTsKICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChy
LCAxMDApKTsKIH0sICdDbG9zaW5nIGEgUGVlckNvbm5lY3Rpb24gc2hvdWxkIG5vdCBmaXJlIHNp
Z25hbGluZ3N0YXRlY2hhbmdlIGV2ZW50Jyk7CiAKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24o
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgcGMyLmFkZFRyYW5z
Y2VpdmVyKCd2aWRlbycpOworCisgIHBjMS5vbnRyYWNrID0gdC51bnJlYWNoZWRfZnVuYygpOwor
ICBwYzEub25zaWduYWxpbmdzdGF0ZWNoYW5nZSA9IHQuc3RlcF9mdW5jKGUgPT4geworICAgIHBj
MS5vbnRyYWNrID0gbnVsbDsKKyAgfSk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlv
bihhd2FpdCBwYzIuY3JlYXRlT2ZmZXIoKSk7Cit9LCAnc2lnbmFsaW5nc3RhdGVjaGFuZ2UgaXMg
dGhlIGZpcnN0IGV2ZW50IHRvIGZpcmUnKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1vbnRyYWNrLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9udHJhY2su
aHR0cHMtZXhwZWN0ZWQudHh0CmluZGV4IDMyMjA5YWM1Y2Q1Y2E5ODExZTEzZTU2M2NhOGY4ZTI2
ZTYwYzkxNzUuLjRkN2FjNTM3ZTAwYjU1MWQ5OGU2YWE0ZDk4MjcyMjNhZjY2NjUwNzIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLW9udHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLW9udHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC00LDQgKzQsNiBAQCBQQVNTIHNl
dFJlbW90ZURlc2NyaXB0aW9uKCkgd2l0aCBtPSBsaW5lIG9mIHJlY3Zvbmx5IGRpcmVjdGlvbiBz
aG91bGQgbm90IHRyaWdnZQogUEFTUyBhZGRUcmFjaygpIHNob3VsZCBjYXVzZSByZW1vdGUgY29u
bmVjdGlvbiB0byBmaXJlIG9udHJhY2sgd2hlbiBzZXRSZW1vdGVEZXNjcmlwdGlvbigpCiBQQVNT
IGFkZFRyYW5zY2VpdmVyKCd2aWRlbycpIHNob3VsZCBjYXVzZSByZW1vdGUgY29ubmVjdGlvbiB0
byBmaXJlIG9udHJhY2sgd2hlbiBzZXRSZW1vdGVEZXNjcmlwdGlvbigpCiBQQVNTIGFkZFRyYW5z
Y2VpdmVyKCkgd2l0aCBpbmFjdGl2ZSBkaXJlY3Rpb24gc2hvdWxkIG5vdCBjYXVzZSByZW1vdGUg
Y29ubmVjdGlvbiB0byBmaXJlIG9udHJhY2sgd2hlbiBzZXRSZW1vdGVEZXNjcmlwdGlvbigpCitQ
QVNTIFVzaW5nIG9mZmVyVG9SZWNlaXZlQXVkaW8gYW5kIG9mZmVyVG9SZWNlaXZlVmlkZW8gc2hv
dWxkIG9ubHkgY2F1c2UgYSBhdWRpbyB0cmFjayBldmVudCB0byBmaXJlLCBpZiBhdWRpbyB3YXMg
dGhlIG9ubHkgdHlwZSBuZWdvdGlhdGVkCitQQVNTIFVzaW5nIG9mZmVyVG9SZWNlaXZlQXVkaW8g
YW5kIG9mZmVyVG9SZWNlaXZlVmlkZW8gc2hvdWxkIG9ubHkgY2F1c2UgYSB2aWRlbyB0cmFjayBl
dmVudCB0byBmaXJlLCBpZiB2aWRlbyB3YXMgdGhlIG9ubHkgdHlwZSBuZWdvdGlhdGVkCiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9udHJhY2suaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9u
dHJhY2suaHR0cHMuaHRtbAppbmRleCA5OWYzMGMyNjRiMzY0OGQ1MmZkYTZiYjUwZGU5ODBiY2Jl
ODRiZTNjLi5jY2RkMjlmNmE1MGRhOTRkNjg5Yjc2NTRkMThhM2MwN2VlNGJjNmRiIDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb250
cmFjay5odHRwcy5odG1sCkBAIC0yMzAsNCArMjMwLDI5IEBAIGE9c3NyYzoxMDAxIGNuYW1lOnNv
bWUKICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHQuc3RlcF90aW1lb3V0KHJlc29s
dmUsIDEwMCkpOwogICB9LCBgYWRkVHJhbnNjZWl2ZXIoKSB3aXRoIGluYWN0aXZlIGRpcmVjdGlv
biBzaG91bGQgbm90IGNhdXNlIHJlbW90ZSBjb25uZWN0aW9uIHRvIGZpcmUgb250cmFjayB3aGVu
IHNldFJlbW90ZURlc2NyaXB0aW9uKClgKTsKIAorICBbImF1ZGlvIiwgInZpZGVvIl0uZm9yRWFj
aCh0eXBlID0+IHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGNvbnN0IGNoZWNrTm9VbmV4cGVjdGVk
VHJhY2sgPSAoe3RyYWNrfSkgPT4geworICAgICAgYXNzZXJ0X2VxdWFscyh0cmFjay5raW5kLCB0
eXBlLCBgb250cmFjayBldmVudCBzaG91bGQgbm90IGZpcmUgZm9yICR7dHJhY2sua2luZH1gKTsK
KyAgICB9OworCisgICAgcGMyLm9udHJhY2sgPSB0LnN0ZXBfZnVuYyhjaGVja05vVW5leHBlY3Rl
ZFRyYWNrKTsKKyAgICBwYzEub250cmFjayA9IHQuc3RlcF9mdW5jKGNoZWNrTm9VbmV4cGVjdGVk
VHJhY2spOworCisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNy
ZWF0ZU9mZmVyKAorICAgICAgeyBvZmZlclRvUmVjZWl2ZVZpZGVvOiB0cnVlLCBvZmZlclRvUmVj
ZWl2ZUF1ZGlvOiB0cnVlIH0pKTsKKworICAgIHBjMi5hZGRUcmFjayguLi5hd2FpdCBnZXRUcmFj
a0Zyb21Vc2VyTWVkaWEodHlwZSkpOworCisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0
aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlw
dGlvbihhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCkpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgICBhd2FpdCBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHQuc3RlcF90aW1lb3V0KHJlc29sdmUsIDEwMCkpOworICB9LCBgVXNpbmcg
b2ZmZXJUb1JlY2VpdmVBdWRpbyBhbmQgb2ZmZXJUb1JlY2VpdmVWaWRlbyBzaG91bGQgb25seSBj
YXVzZSBhICR7dHlwZX0gdHJhY2sgZXZlbnQgdG8gZmlyZSwgaWYgJHt0eXBlfSB3YXMgdGhlIG9u
bHkgdHlwZSBuZWdvdGlhdGVkYCkpOworCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0
aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24taGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1u
ZWdvdGlhdGlvbi1oZWxwZXIuanMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjhjNDc2ZWM0MDllMWI1ZjUzZWFlNDFh
ZmY5MzQ4NjhhYmViNjkyZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3Qt
bmVnb3RpYXRpb24taGVscGVyLmpzCkBAIC0wLDAgKzEsMTUxIEBACisndXNlIHN0cmljdCcKKwor
ZnVuY3Rpb24gcGVlcihvdGhlciwgcG9saXRlLCBmYWlsID0gbnVsbCkgeworICBjb25zdCBzZW5k
ID0gKHRndCwgbXNnKSA9PiB0Z3QucG9zdE1lc3NhZ2UoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lm
eShtc2cpKSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIq
Iik7CisgIGlmICghZmFpbCkgZmFpbCA9IGUgPT4gc2VuZCh3aW5kb3cucGFyZW50LCB7ZXJyb3I6
IGAke2UubmFtZX06ICR7ZS5tZXNzYWdlfWB9KTsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKKworICBpZiAoIXdpbmRvdy5hc3NlcnRfZXF1YWxzKSB7CisgICAgd2luZG93
LmFzc2VydF9lcXVhbHMgPSAoYSwgYiwgbXNnKSA9PiBhID09PSBiIHx8CisgICAgICAgIGZhaWwo
bmV3IEVycm9yKGAke21zZ30gZXhwZWN0ZWQgJHtifSBidXQgZ290ICR7YX1gKSk7CisgIH0KKwor
ICBjb25zdCBjb21tYW5kcyA9IHsKKyAgICBhc3luYyBhZGRUcmFuc2NlaXZlcigpIHsKKyAgICAg
IGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7CisgICAgICBh
d2FpdCBuZXcgUHJvbWlzZShyID0+IHBjLmFkZEV2ZW50TGlzdGVuZXIoIm5lZ290aWF0ZWQiLCBy
LCB7b25jZTogdHJ1ZX0pKTsKKyAgICAgIGlmICghdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlv
bikgeworICAgICAgICAvLyBNaWdodCBoYXZlIGp1c3QgbWlzc2VkIHRoZSBuZWdvdGlhdGlvbiB0
cmFpbi4gQ2F0Y2ggbmV4dCBvbmUuCisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMu
YWRkRXZlbnRMaXN0ZW5lcigibmVnb3RpYXRlZCIsIHIsIHtvbmNlOiB0cnVlfSkpOworICAgICAg
fQorICAgICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAic2Vu
ZG9ubHkiLCAiaGF2ZSBkaXJlY3Rpb24iKTsKKyAgICAgIHJldHVybiBwYy5nZXRUcmFuc2NlaXZl
cnMoKS5sZW5ndGg7CisgICAgfSwKKyAgICBhc3luYyBzaW1wbGVDb25uZWN0KCkgeworICAgICAg
Y29uc3QgcCA9IGNvbW1hbmRzLmFkZFRyYW5zY2VpdmVyKCk7CisgICAgICBhd2FpdCBuZXcgUHJv
bWlzZShyID0+IHBjLm9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlID0KKyAgICAgICAgICAgICAg
ICAgICAgICAgICgpID0+IHBjLmljZUNvbm5lY3Rpb25TdGF0ZSA9PSAiY29ubmVjdGVkIiAmJiBy
KCkpOworICAgICAgcmV0dXJuIGF3YWl0IHA7CisgICAgfSwKKyAgICBhc3luYyBnZXROdW1UcmFu
c2NlaXZlcnMoKSB7CisgICAgICByZXR1cm4gcGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoOwor
ICAgIH0sCisgIH07CisKKyAgdHJ5IHsKKyAgICBwYy5hZGRFdmVudExpc3RlbmVyKCJpY2VjYW5k
aWRhdGUiLCAoe2NhbmRpZGF0ZX0pID0+IHNlbmQob3RoZXIsCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYW5kaWRhdGV9KSk7
CisgICAgbGV0IG1ha2luZ09mZmVyID0gZmFsc2UsIGlnbm9yZU9mZmVyID0gZmFsc2U7CisgICAg
bGV0IHNyZEFuc3dlclBlbmRpbmcgPSBmYWxzZTsKKyAgICBwYy5hZGRFdmVudExpc3RlbmVyKCJu
ZWdvdGlhdGlvbm5lZWRlZCIsIGFzeW5jICgpID0+IHsKKyAgICAgIHRyeSB7CisgICAgICAgIGFz
c2VydF9lcXVhbHMocGMuc2lnbmFsaW5nU3RhdGUsICJzdGFibGUiLCAibmVnb3RpYXRpb25uZWVk
ZWQgYWx3YXlzIGZpcmVzIGluIHN0YWJsZSBzdGF0ZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxz
KG1ha2luZ09mZmVyLCBmYWxzZSwgIm5lZ290aWF0aW9ubmVlZGVkIG5vdCBhbHJlYWR5IGluIHBy
b2dyZXNzIik7CisgICAgICAgIG1ha2luZ09mZmVyID0gdHJ1ZTsKKyAgICAgICAgYXdhaXQgcGMu
c2V0TG9jYWxEZXNjcmlwdGlvbigpOworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGlu
Z1N0YXRlLCAiaGF2ZS1sb2NhbC1vZmZlciIsICJuZWdvdGlhdGlvbm5lZWRlZCBub3QgcmFjaW5n
IHdpdGggb25tZXNzYWdlIik7CisgICAgICAgIGFzc2VydF9lcXVhbHMocGMubG9jYWxEZXNjcmlw
dGlvbi50eXBlLCAib2ZmZXIiLCAibmVnb3RpYXRpb25uZWVkZWQgU0xEIHdvcmtlZCIpOworICAg
ICAgICBzZW5kKG90aGVyLCB7ZGVzY3JpcHRpb246IHBjLmxvY2FsRGVzY3JpcHRpb259KTsKKyAg
ICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgZmFpbChlKTsKKyAgICAgIH0gZmluYWxseSB7Cisg
ICAgICAgIG1ha2luZ09mZmVyID0gZmFsc2U7CisgICAgICB9CisgICAgfSk7CisgICAgd2luZG93
Lm9ubWVzc2FnZSA9IGFzeW5jICh7ZGF0YToge2Rlc2NyaXB0aW9uLCBjYW5kaWRhdGUsIHJ1bn19
KSA9PiB7CisgICAgICB0cnkgeworICAgICAgICBpZiAoZGVzY3JpcHRpb24pIHsKKyAgICAgICAg
ICAvLyBJZiB3ZSBoYXZlIGEgc2V0UmVtb3RlRGVzY3JpcHRpb24oKSBhbnN3ZXIgb3BlcmF0aW9u
IHBlbmRpbmcsIHRoZW4KKyAgICAgICAgICAvLyB3ZSB3aWxsIGJlICJzdGFibGUiIGJ5IHRoZSB0
aW1lIHRoZSBuZXh0IHNldFJlbW90ZURlc2NyaXB0aW9uKCkgaXMKKyAgICAgICAgICAvLyBleGVj
dXRlZCwgc28gd2UgY291bnQgdGhpcyBiZWluZyBzdGFibGUgd2hlbiBkZWNpZGluZyB3aGV0aGVy
IHRvCisgICAgICAgICAgLy8gaWdub3JlIHRoZSBvZmZlci4KKyAgICAgICAgICBsZXQgaXNTdGFi
bGUgPQorICAgICAgICAgICAgICBwYy5zaWduYWxpbmdTdGF0ZSA9PSAic3RhYmxlIiB8fAorICAg
ICAgICAgICAgICAocGMuc2lnbmFsaW5nU3RhdGUgPT0gImhhdmUtbG9jYWwtb2ZmZXIiICYmIHNy
ZEFuc3dlclBlbmRpbmcpOworICAgICAgICAgIGlnbm9yZU9mZmVyID0gZGVzY3JpcHRpb24udHlw
ZSA9PSAib2ZmZXIiICYmICFwb2xpdGUgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWFr
aW5nT2ZmZXIgfHwgIWlzU3RhYmxlKTsKKyAgICAgICAgICBpZiAoaWdub3JlT2ZmZXIpIHsKKyAg
ICAgICAgICAgIHJldHVybjsKKyAgICAgICAgICB9CisgICAgICAgICAgaWYgKGRlc2NyaXB0aW9u
LnR5cGUgPT0gImFuc3dlciIpCisgICAgICAgICAgICBzcmRBbnN3ZXJQZW5kaW5nID0gdHJ1ZTsK
KyAgICAgICAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7Cisg
ICAgICAgICAgc3JkQW5zd2VyUGVuZGluZyA9IGZhbHNlOworICAgICAgICAgIGlmIChkZXNjcmlw
dGlvbi50eXBlID09ICJvZmZlciIpIHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocGMuc2ln
bmFsaW5nU3RhdGUsICJoYXZlLXJlbW90ZS1vZmZlciIsICJSZW1vdGUgb2ZmZXIiKTsKKyAgICAg
ICAgICAgIGFzc2VydF9lcXVhbHMocGMucmVtb3RlRGVzY3JpcHRpb24udHlwZSwgIm9mZmVyIiwg
IlNSRCB3b3JrZWQiKTsKKyAgICAgICAgICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24o
KTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocGMuc2lnbmFsaW5nU3RhdGUsICJzdGFibGUi
LCAib25tZXNzYWdlIG5vdCByYWNpbmcgd2l0aCBuZWdvdGlhdGlvbm5lZWRlZCIpOworICAgICAg
ICAgICAgYXNzZXJ0X2VxdWFscyhwYy5sb2NhbERlc2NyaXB0aW9uLnR5cGUsICJhbnN3ZXIiLCAi
b25tZXNzYWdlIFNMRCB3b3JrZWQiKTsKKyAgICAgICAgICAgIHNlbmQob3RoZXIsIHtkZXNjcmlw
dGlvbjogcGMubG9jYWxEZXNjcmlwdGlvbn0pOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAg
ICAgICBhc3NlcnRfZXF1YWxzKHBjLnJlbW90ZURlc2NyaXB0aW9uLnR5cGUsICJhbnN3ZXIiLCAi
QW5zd2VyIHdhcyBzZXQiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocGMuc2lnbmFsaW5n
U3RhdGUsICJzdGFibGUiLCAiYW5zd2VyZWQiKTsKKyAgICAgICAgICAgIHBjLmRpc3BhdGNoRXZl
bnQobmV3IEV2ZW50KCJuZWdvdGlhdGVkIikpOworICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNl
IGlmIChjYW5kaWRhdGUpIHsKKyAgICAgICAgICB0cnkgeworICAgICAgICAgICAgYXdhaXQgcGMu
YWRkSWNlQ2FuZGlkYXRlKGNhbmRpZGF0ZSk7CisgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAg
ICAgICAgICAgaWYgKCFpZ25vcmVPZmZlcikgdGhyb3cgZTsKKyAgICAgICAgICB9CisgICAgICAg
IH0gZWxzZSBpZiAocnVuKSB7CisgICAgICAgICAgc2VuZCh3aW5kb3cucGFyZW50LCB7W3J1bi5p
ZF06IGF3YWl0IGNvbW1hbmRzW3J1bi5jbWRdKCkgfHwgMH0pOworICAgICAgICB9CisgICAgICB9
IGNhdGNoIChlKSB7CisgICAgICAgIGZhaWwoZSk7CisgICAgICB9CisgICAgfTsKKyAgfSBjYXRj
aCAoZSkgeworICAgIGZhaWwoZSk7CisgIH0KKyAgcmV0dXJuIHBjOworfQorCithc3luYyBmdW5j
dGlvbiBzZXR1cFBlZXJJZnJhbWUodCwgcG9saXRlKSB7CisgIGNvbnN0IGlmcmFtZSA9IGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGlmcmFt
ZS5yZW1vdmUoKSk7CisgIGlmcmFtZS5zcmNkb2MgPQorICAgYDxodG1sXD48c2NyaXB0XD4oJHtw
ZWVyLnRvU3RyaW5nKCl9KSh3aW5kb3cucGFyZW50LCAke3BvbGl0ZX0pOzwvc2NyaXB0XD48L2h0
bWxcPmA7CisgIGRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChpZnJhbWUpOwor
CisgIGNvbnN0IGZhaWxDYXRjaGVyID0gdC5zdGVwX2Z1bmMoKHtkYXRhfSkgPT4KKyAgICAgICgi
ZXJyb3IiIGluIGRhdGEpICYmIGFzc2VydF91bnJlYWNoZWQoYEVycm9yIGluIGlmcmFtZTogJHtk
YXRhLmVycm9yfWApKTsKKyAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmYWls
Q2F0Y2hlcik7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVu
ZXIoIm1lc3NhZ2UiLCBmYWlsQ2F0Y2hlcikpOworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IGlm
cmFtZS5vbmxvYWQgPSByKTsKKyAgcmV0dXJuIGlmcmFtZTsKK30KKworZnVuY3Rpb24gc2V0dXBQ
ZWVyVG9wTGV2ZWwodCwgb3RoZXIsIHBvbGl0ZSkgeworICBjb25zdCBwYyA9IHBlZXIob3RoZXIs
IHBvbGl0ZSwgdC5zdGVwX2Z1bmMoZSA9PiB7IHRocm93IGU7IH0pKTsKKyAgdC5hZGRfY2xlYW51
cCgoKSA9PiB7IHBjLmNsb3NlKCk7IHdpbmRvdy5vbm1lc3NhZ2UgPSBudWxsOyB9KTsKK30KKwor
bGV0IGNvdW50ZXIgPSAwOworYXN5bmMgZnVuY3Rpb24gcnVuKHRhcmdldCwgY21kKSB7CisgIGNv
bnN0IGlkID0gYHJlc3VsdCR7Y291bnRlcisrfWA7CisgIHRhcmdldC5wb3N0TWVzc2FnZSh7cnVu
OiB7Y21kLCBpZH19LCAiKiIpOworICByZXR1cm4gbmV3IFByb21pc2UociA9PiB3aW5kb3cuYWRk
RXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGZ1bmN0aW9uIGxpc3Rlbih7ZGF0YX0pIHsKKyAgICBpZiAoIShp
ZCBpbiBkYXRhKSkgcmV0dXJuOworICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgbGlzdGVuKTsKKyAgICByKGRhdGFbaWRdKTsKKyAgfSkpOworfQorCitsZXQgaWZyYW1l
OworYXN5bmMgZnVuY3Rpb24gc2V0dXBBQih0LCBwb2xpdGVBLCBwb2xpdGVCKSB7CisgIGlmcmFt
ZSA9IGF3YWl0IHNldHVwUGVlcklmcmFtZSh0LCBwb2xpdGVCKTsKKyAgcmV0dXJuIHNldHVwUGVl
clRvcExldmVsKHQsIGlmcmFtZS5jb250ZW50V2luZG93LCBwb2xpdGVBKTsKK30KK2NvbnN0IHJ1
bkEgPSBjbWQgPT4gcnVuKHdpbmRvdywgY21kKTsKK2NvbnN0IHJ1bkIgPSBjbWQgPT4gcnVuKGlm
cmFtZS5jb250ZW50V2luZG93LCBjbWQpOworY29uc3QgcnVuQm90aCA9IChjbWRBLCBjbWRCID0g
Y21kQSkgPT4gUHJvbWlzZS5hbGwoW3J1bkEoY21kQSksIHJ1bkIoY21kQildKTsKKworYXN5bmMg
ZnVuY3Rpb24gcHJvbWlzZV90ZXN0X2JvdGhfcm9sZXMoZiwgbmFtZSkgeworICBwcm9taXNlX3Rl
c3QoYXN5bmMgdCA9PiBmKHQsIGF3YWl0IHNldHVwQUIodCwgdHJ1ZSwgZmFsc2UpKSwgbmFtZSk7
CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IGYodCwgYXdhaXQgc2V0dXBBQih0LCBmYWxzZSwg
dHJ1ZSkpLAorICAgICAgICAgICAgICAgYCR7bmFtZX0gd2l0aCByb2xlcyByZXZlcnNlZGApOwor
fQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xh
cmUtbGluZWFyLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3Rp
YXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9k
ZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4u
YTZlZjM3ZDZiMjg0YTljY2VhYzZhMWEwMzRhYzFhZDBmMWM0MmE3OAotLS0gL2Rldi9udWxsCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5o
dHRwcy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0IEBACisKK0ZBSUwgUGVyZmVjdCBuZWdvdGlh
dGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFyIERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdp
dGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUKK0ZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJl
c3MgZ2xhcmUgbGluZWFyIHdpdGggcm9sZXMgcmV2ZXJzZWQgYXNzZXJ0X3VucmVhY2hlZDogRXJy
b3IgaW4gaWZyYW1lOiBJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBh
dGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSBSZWFjaGVkIHVucmVhY2hhYmxlIGNv
ZGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3Mt
Z2xhcmUtbGluZWFyLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9u
LXN0cmVzcy1nbGFyZS1saW5lYXIuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjhiZGYyMmUyZGU1
M2EwZDI4MjYzMTUwY2Q4M2Y1ZDk1NGI2ZDE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLmh0bWwKQEAg
LTAsMCArMSwyMyBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1l
dGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+PC90aXRsZT4KKzxzY3Jp
cHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0v
cmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJU
Q1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24taGVscGVyLmpzIj48L3NjcmlwdD4K
KzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdF9ib3RoX3JvbGVzKGFzeW5j
ICh0LCBwYykgPT4geworICBjb25zdCBwcyA9IFtdOworICBmb3IgKGxldCBpID0gMTA7IGkgPiAw
OyBpLS0pIHsKKyAgICBwcy5wdXNoKHJ1bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOworICAgIGF3
YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMCkpOworICB9CisgIHBzLnB1
c2gocnVuQm90aCgiYWRkVHJhbnNjZWl2ZXIiKSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHBzKTsK
KyAgY29uc3QgW251bUEsIG51bUJdID0gYXdhaXQgcnVuQm90aCgiZ2V0TnVtVHJhbnNjZWl2ZXJz
Iik7CisgIGFzc2VydF9lcXVhbHMobnVtQSwgMjIsICIyMiB0cmFuc2NlaXZlcnMgb24gc2lkZSBB
Iik7CisgIGFzc2VydF9lcXVhbHMobnVtQiwgMjIsICIyMiB0cmFuc2NlaXZlcnMgb24gc2lkZSBC
Iik7Cit9LCAiUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFyIik7Cis8L3Nj
cmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNz
LWdsYXJlLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRp
b24tc3RyZXNzLWdsYXJlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjZlMDcyMDc5
MzY4MWIwZGNkODlhMTE0ZDgyNzE3NjQ3YTg3MjZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsNCBAQAorCitGQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJl
IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3Rh
dGUKK0ZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgd2l0aCByb2xlcyByZXZl
cnNlZCBhc3NlcnRfdW5yZWFjaGVkOiBFcnJvciBpbiBpZnJhbWU6IEludmFsaWRTdGF0ZUVycm9y
OiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0
YXRlIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1w
ZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
cGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42
MTM0ZWIyMDA2MzY2Y2FjNjFjNzE5MGI4ZGMxMTE0NGQwNjgxMzMyCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMuaHRt
bApAQCAtMCwwICsxLDIzIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+
Cis8bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT48L3RpdGxlPgor
PHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQg
c3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0iUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1oZWxwZXIuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlzZV90ZXN0X2JvdGhfcm9sZXMo
YXN5bmMgKHQsIHBjKSA9PiB7CisgIGNvbnN0IHBzID0gW107CisgIGZvciAobGV0IGkgPSAxMDsg
aSA+IDA7IGktLSkgeworICAgIHBzLnB1c2gocnVuQm90aCgiYWRkVHJhbnNjZWl2ZXIiKSk7Cisg
ICAgYXdhaXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChyLCBpIC0gMSkpOworICB9
CisgIHBzLnB1c2gocnVuQm90aCgiYWRkVHJhbnNjZWl2ZXIiKSk7CisgIGF3YWl0IFByb21pc2Uu
YWxsKHBzKTsKKyAgY29uc3QgW251bUEsIG51bUJdID0gYXdhaXQgcnVuQm90aCgiZ2V0TnVtVHJh
bnNjZWl2ZXJzIik7CisgIGFzc2VydF9lcXVhbHMobnVtQSwgMjIsICIyMiB0cmFuc2NlaXZlcnMg
b24gc2lkZSBBIik7CisgIGFzc2VydF9lcXVhbHMobnVtQiwgMjIsICIyMiB0cmFuc2NlaXZlcnMg
b24gc2lkZSBCIik7Cit9LCAiUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUiKTsKKzwv
c2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLWV4
cGVjdGVkLnR4dAppbmRleCA2ZDAzYzBlNTZiZjNhZTBkOGVhMDNkMjVhM2ExNThjOGQ5MWNmNzFl
Li4yMzQyNmYxNzBiMzY4N2UyY2FmOTEwYzg3ZjI4Y2ZmMWRiYTgxNGI5IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMyw4
ICszLDQgQEAgUEFTUyBQZXJmZWN0IG5lZ290aWF0aW9uIHNldHVwIGNvbm5lY3RzCiBQQVNTIFBl
cmZlY3QgbmVnb3RpYXRpb24gc2V0dXAgY29ubmVjdHMgd2l0aCByb2xlcyByZXZlcnNlZAogRkFJ
TCBQZXJmZWN0IG5lZ290aWF0aW9uIGdsYXJlIERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxl
IHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUKIEZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBn
bGFyZSB3aXRoIHJvbGVzIHJldmVyc2VkIGFzc2VydF91bnJlYWNoZWQ6IEVycm9yIGluIGlmcmFt
ZTogSW52YWxpZFN0YXRlRXJyb3I6IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGgg
Y3VycmVudCBzaWduYWxpbmcgc3RhdGUgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIFBl
cmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRp
YmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUKLUZBSUwgUGVyZmVjdCBuZWdvdGlhdGlv
biBzdHJlc3MgZ2xhcmUgd2l0aCByb2xlcyByZXZlcnNlZCBhc3NlcnRfdW5yZWFjaGVkOiBFcnJv
ciBpbiBpZnJhbWU6IEludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0
aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIFJlYWNoZWQgdW5yZWFjaGFibGUgY29k
ZQotRkFJTCBQZXJmZWN0IG5lZ290aWF0aW9uIHN0cmVzcyBnbGFyZSBsaW5lYXIgRGVzY3JpcHRp
b24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZQotRkFJTCBQ
ZXJmZWN0IG5lZ290aWF0aW9uIHN0cmVzcyBnbGFyZSBsaW5lYXIgd2l0aCByb2xlcyByZXZlcnNl
ZCBhc3NlcnRfdW5yZWFjaGVkOiBFcnJvciBpbiBpZnJhbWU6IEludmFsaWRTdGF0ZUVycm9yOiBE
ZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRl
IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJm
ZWN0LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0
aW9uLmh0dHBzLmh0bWwKaW5kZXggYWQyNzI1YzMzY2E2NmIzMDM5NTlmMzJkMTA3YWU1MTZiYWRl
NGE2MS4uZDAxYjExNjE2MjYzNjYxZTcyMWQ0NDQ1MTIxNTkzMWVhOGU0ZjNjMSAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMuaHRtbApAQCAtNCwxNDggKzQsMTAgQEAK
IDx0aXRsZT48L3RpdGxlPgogPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48
L3NjcmlwdD4KIDxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlv
bi1oZWxwZXIuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4KICd1c2Ugc3RyaWN0JzsKIAotZnVuY3Rp
b24gcGVlcihvdGhlciwgcG9saXRlLCBmYWlsID0gbnVsbCkgewotICBjb25zdCBzZW5kID0gKHRn
dCwgbXNnKSA9PiB0Z3QucG9zdE1lc3NhZ2UoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtc2cp
KSwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIqIik7Ci0g
IGlmICghZmFpbCkgZmFpbCA9IGUgPT4gc2VuZCh3aW5kb3cucGFyZW50LCB7ZXJyb3I6IGAke2Uu
bmFtZX06ICR7ZS5tZXNzYWdlfWB9KTsKLSAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKLQotICBpZiAoIXdpbmRvdy5hc3NlcnRfZXF1YWxzKSB7Ci0gICAgd2luZG93LmFzc2Vy
dF9lcXVhbHMgPSAoYSwgYiwgbXNnKSA9PiBhID09PSBiIHx8Ci0gICAgICAgIGZhaWwobmV3IEVy
cm9yKGAke21zZ30gZXhwZWN0ZWQgJHtifSBidXQgZ290ICR7YX1gKSk7Ci0gIH0KLQotICBjb25z
dCBjb21tYW5kcyA9IHsKLSAgICBhc3luYyBhZGRUcmFuc2NlaXZlcigpIHsKLSAgICAgIGNvbnN0
IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7Ci0gICAgICBhd2FpdCBu
ZXcgUHJvbWlzZShyID0+IHBjLmFkZEV2ZW50TGlzdGVuZXIoIm5lZ290aWF0ZWQiLCByLCB7b25j
ZTogdHJ1ZX0pKTsKLSAgICAgIGlmICghdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbikgewot
ICAgICAgICAvLyBNaWdodCBoYXZlIGp1c3QgbWlzc2VkIHRoZSBuZWdvdGlhdGlvbiB0cmFpbi4g
Q2F0Y2ggbmV4dCBvbmUuCi0gICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMuYWRkRXZl
bnRMaXN0ZW5lcigibmVnb3RpYXRlZCIsIHIsIHtvbmNlOiB0cnVlfSkpOwotICAgICAgfQotICAg
ICAgYXNzZXJ0X2VxdWFscyh0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAic2VuZG9ubHki
LCAiaGF2ZSBkaXJlY3Rpb24iKTsKLSAgICAgIHJldHVybiBwYy5nZXRUcmFuc2NlaXZlcnMoKS5s
ZW5ndGg7Ci0gICAgfSwKLSAgICBhc3luYyBzaW1wbGVDb25uZWN0KCkgewotICAgICAgY29uc3Qg
cCA9IGNvbW1hbmRzLmFkZFRyYW5zY2VpdmVyKCk7Ci0gICAgICBhd2FpdCBuZXcgUHJvbWlzZShy
ID0+IHBjLm9uaWNlY29ubmVjdGlvbnN0YXRlY2hhbmdlID0KLSAgICAgICAgICAgICAgICAgICAg
ICAgICgpID0+IHBjLmljZUNvbm5lY3Rpb25TdGF0ZSA9PSAiY29ubmVjdGVkIiAmJiByKCkpOwot
ICAgICAgcmV0dXJuIGF3YWl0IHA7Ci0gICAgfSwKLSAgICBhc3luYyBnZXROdW1UcmFuc2NlaXZl
cnMoKSB7Ci0gICAgICByZXR1cm4gcGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoOwotICAgIH0s
Ci0gIH07Ci0KLSAgdHJ5IHsKLSAgICBwYy5hZGRFdmVudExpc3RlbmVyKCJpY2VjYW5kaWRhdGUi
LCAoe2NhbmRpZGF0ZX0pID0+IHNlbmQob3RoZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHtjYW5kaWRhdGV9KSk7Ci0gICAg
bGV0IG1ha2luZ09mZmVyID0gZmFsc2UsIGlnbm9yZU9mZmVyID0gZmFsc2U7Ci0gICAgcGMuYWRk
RXZlbnRMaXN0ZW5lcigibmVnb3RpYXRpb25uZWVkZWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgICB0
cnkgewotICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAic3RhYmxlIiwg
Im5lZ290aWF0aW9ubmVlZGVkIGFsd2F5cyBmaXJlcyBpbiBzdGFibGUgc3RhdGUiKTsKLSAgICAg
ICAgYXNzZXJ0X2VxdWFscyhtYWtpbmdPZmZlciwgZmFsc2UsICJuZWdvdGlhdGlvbm5lZWRlZCBu
b3QgYWxyZWFkeSBpbiBwcm9ncmVzcyIpOwotICAgICAgICBtYWtpbmdPZmZlciA9IHRydWU7Ci0g
ICAgICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oKTsKLSAgICAgICAgYXNzZXJ0X2Vx
dWFscyhwYy5zaWduYWxpbmdTdGF0ZSwgImhhdmUtbG9jYWwtb2ZmZXIiLCAibmVnb3RpYXRpb25u
ZWVkZWQgbm90IHJhY2luZyB3aXRoIG9ubWVzc2FnZSIpOwotICAgICAgICBhc3NlcnRfZXF1YWxz
KHBjLmxvY2FsRGVzY3JpcHRpb24udHlwZSwgIm9mZmVyIiwgIm5lZ290aWF0aW9ubmVlZGVkIFNM
RCB3b3JrZWQiKTsKLSAgICAgICAgc2VuZChvdGhlciwge2Rlc2NyaXB0aW9uOiBwYy5sb2NhbERl
c2NyaXB0aW9ufSk7Ci0gICAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIGZhaWwoZSk7Ci0gICAg
ICB9IGZpbmFsbHkgewotICAgICAgICBtYWtpbmdPZmZlciA9IGZhbHNlOwotICAgICAgfQotICAg
IH0pOwotICAgIHdpbmRvdy5vbm1lc3NhZ2UgPSBhc3luYyAoe2RhdGE6IHtkZXNjcmlwdGlvbiwg
Y2FuZGlkYXRlLCBydW59fSkgPT4gewotICAgICAgdHJ5IHsKLSAgICAgICAgaWYgKGRlc2NyaXB0
aW9uKSB7Ci0gICAgICAgICAgaWdub3JlT2ZmZXIgPSBkZXNjcmlwdGlvbi50eXBlID09ICJvZmZl
ciIgJiYgIXBvbGl0ZSAmJgotICAgICAgICAgICAgICAgICAgICAgICAgIChtYWtpbmdPZmZlciB8
fCBwYy5zaWduYWxpbmdTdGF0ZSAhPSAic3RhYmxlIik7Ci0gICAgICAgICAgaWYgKGlnbm9yZU9m
ZmVyKSB7Ci0gICAgICAgICAgICByZXR1cm47Ci0gICAgICAgICAgfQotICAgICAgICAgIGF3YWl0
IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGRlc2NyaXB0aW9uKTsKLSAgICAgICAgICBpZiAoZGVz
Y3JpcHRpb24udHlwZSA9PSAib2ZmZXIiKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBj
LnNpZ25hbGluZ1N0YXRlLCAiaGF2ZS1yZW1vdGUtb2ZmZXIiLCAiUmVtb3RlIG9mZmVyIik7Ci0g
ICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnJlbW90ZURlc2NyaXB0aW9uLnR5cGUsICJvZmZl
ciIsICJTUkQgd29ya2VkIik7Ci0gICAgICAgICAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0
aW9uKCk7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAic3Rh
YmxlIiwgIm9ubWVzc2FnZSBub3QgcmFjaW5nIHdpdGggbmVnb3RpYXRpb25uZWVkZWQiKTsKLSAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocGMubG9jYWxEZXNjcmlwdGlvbi50eXBlLCAiYW5zd2Vy
IiwgIm9ubWVzc2FnZSBTTEQgd29ya2VkIik7Ci0gICAgICAgICAgICBzZW5kKG90aGVyLCB7ZGVz
Y3JpcHRpb246IHBjLmxvY2FsRGVzY3JpcHRpb259KTsKLSAgICAgICAgICB9IGVsc2UgewotICAg
ICAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5yZW1vdGVEZXNjcmlwdGlvbi50eXBlLCAiYW5zd2Vy
IiwgIkFuc3dlciB3YXMgc2V0Iik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25h
bGluZ1N0YXRlLCAic3RhYmxlIiwgImFuc3dlcmVkIik7Ci0gICAgICAgICAgICBwYy5kaXNwYXRj
aEV2ZW50KG5ldyBFdmVudCgibmVnb3RpYXRlZCIpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0g
ZWxzZSBpZiAoY2FuZGlkYXRlKSB7Ci0gICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGF3YWl0
IHBjLmFkZEljZUNhbmRpZGF0ZShjYW5kaWRhdGUpOwotICAgICAgICAgIH0gY2F0Y2ggKGUpIHsK
LSAgICAgICAgICAgIGlmICghaWdub3JlT2ZmZXIpIHRocm93IGU7Ci0gICAgICAgICAgfQotICAg
ICAgICB9IGVsc2UgaWYgKHJ1bikgewotICAgICAgICAgIHNlbmQod2luZG93LnBhcmVudCwge1ty
dW4uaWRdOiBhd2FpdCBjb21tYW5kc1tydW4uY21kXSgpIHx8IDB9KTsKLSAgICAgICAgfQotICAg
ICAgfSBjYXRjaCAoZSkgewotICAgICAgICBmYWlsKGUpOwotICAgICAgfQotICAgIH07Ci0gIH0g
Y2F0Y2ggKGUpIHsKLSAgICBmYWlsKGUpOwotICB9Ci0gIHJldHVybiBwYzsKLX0KLQotYXN5bmMg
ZnVuY3Rpb24gc2V0dXBQZWVySWZyYW1lKHQsIHBvbGl0ZSkgewotICBjb25zdCBpZnJhbWUgPSBk
b2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBp
ZnJhbWUucmVtb3ZlKCkpOwotICBpZnJhbWUuc3JjZG9jID0KLSAgIGA8aHRtbFw+PHNjcmlwdFw+
KCR7cGVlci50b1N0cmluZygpfSkod2luZG93LnBhcmVudCwgJHtwb2xpdGV9KTs8L3NjcmlwdFw+
PC9odG1sXD5gOwotICBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaWZyYW1l
KTsKLQotICBjb25zdCBmYWlsQ2F0Y2hlciA9IHQuc3RlcF9mdW5jKCh7ZGF0YX0pID0+Ci0gICAg
ICAoImVycm9yIiBpbiBkYXRhKSAmJiBhc3NlcnRfdW5yZWFjaGVkKGBFcnJvciBpbiBpZnJhbWU6
ICR7ZGF0YS5lcnJvcn1gKSk7Ci0gIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwg
ZmFpbENhdGNoZXIpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExp
c3RlbmVyKCJtZXNzYWdlIiwgZmFpbENhdGNoZXIpKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9
PiBpZnJhbWUub25sb2FkID0gcik7Ci0gIHJldHVybiBpZnJhbWU7Ci19Ci0KLWZ1bmN0aW9uIHNl
dHVwUGVlclRvcExldmVsKHQsIG90aGVyLCBwb2xpdGUpIHsKLSAgY29uc3QgcGMgPSBwZWVyKG90
aGVyLCBwb2xpdGUsIHQuc3RlcF9mdW5jKGUgPT4geyB0aHJvdyBlOyB9KSk7Ci0gIHQuYWRkX2Ns
ZWFudXAoKCkgPT4geyBwYy5jbG9zZSgpOyB3aW5kb3cub25tZXNzYWdlID0gbnVsbDsgfSk7Ci19
Ci0KLWxldCBjb3VudGVyID0gMDsKLWFzeW5jIGZ1bmN0aW9uIHJ1bih0YXJnZXQsIGNtZCkgewot
ICBjb25zdCBpZCA9IGByZXN1bHQke2NvdW50ZXIrK31gOwotICB0YXJnZXQucG9zdE1lc3NhZ2Uo
e3J1bjoge2NtZCwgaWR9fSwgIioiKTsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKHIgPT4gd2luZG93
LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBmdW5jdGlvbiBsaXN0ZW4oe2RhdGF9KSB7Ci0gICAgaWYg
KCEoaWQgaW4gZGF0YSkpIHJldHVybjsKLSAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIGxpc3Rlbik7Ci0gICAgcihkYXRhW2lkXSk7Ci0gIH0pKTsKLX0KLQotbGV0IGlm
cmFtZTsKLWFzeW5jIGZ1bmN0aW9uIHNldHVwQUIodCwgcG9saXRlQSwgcG9saXRlQikgewotICBp
ZnJhbWUgPSBhd2FpdCBzZXR1cFBlZXJJZnJhbWUodCwgcG9saXRlQik7Ci0gIHJldHVybiBzZXR1
cFBlZXJUb3BMZXZlbCh0LCBpZnJhbWUuY29udGVudFdpbmRvdywgcG9saXRlQSk7Ci19Ci1jb25z
dCBydW5BID0gY21kID0+IHJ1bih3aW5kb3csIGNtZCk7Ci1jb25zdCBydW5CID0gY21kID0+IHJ1
bihpZnJhbWUuY29udGVudFdpbmRvdywgY21kKTsKLWNvbnN0IHJ1bkJvdGggPSAoY21kQSwgY21k
QiA9IGNtZEEpID0+IFByb21pc2UuYWxsKFtydW5BKGNtZEEpLCBydW5CKGNtZEIpXSk7Ci0KLWFz
eW5jIGZ1bmN0aW9uIHByb21pc2VfdGVzdF9ib3RoX3JvbGVzKGYsIG5hbWUpIHsKLSAgcHJvbWlz
ZV90ZXN0KGFzeW5jIHQgPT4gZih0LCBhd2FpdCBzZXR1cEFCKHQsIHRydWUsIGZhbHNlKSksIG5h
bWUpOwotICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiBmKHQsIGF3YWl0IHNldHVwQUIodCwgZmFs
c2UsIHRydWUpKSwKLSAgICAgICAgICAgICAgIGAke25hbWV9IHdpdGggcm9sZXMgcmV2ZXJzZWRg
KTsKLX0KLQogcHJvbWlzZV90ZXN0X2JvdGhfcm9sZXMoYXN5bmMgKHQsIHBjKSA9PiB7CiAgIGFz
c2VydF9lcXVhbHMoYXdhaXQgcnVuQSgic2ltcGxlQ29ubmVjdCIpLCAxLCAib25lIHRyYW5zY2Vp
dmVyIik7CiAgIGFzc2VydF9lcXVhbHMoYXdhaXQgcnVuQigiYWRkVHJhbnNjZWl2ZXIiKSwgMiwg
InR3byB0cmFuc2NlaXZlcnMiKTsKQEAgLTE1NywzMCArMTksNCBAQCBwcm9taXNlX3Rlc3RfYm90
aF9yb2xlcyhhc3luYyAodCwgcGMpID0+IHsKICAgYXNzZXJ0X2VxdWFscyhudW1BLCAyLCAidHdv
IHRyYW5zY2VpdmVycyBvbiBzaWRlIEEiKTsKICAgYXNzZXJ0X2VxdWFscyhudW1CLCAyLCAidHdv
IHRyYW5zY2VpdmVycyBvbiBzaWRlIEIiKTsKIH0sICJQZXJmZWN0IG5lZ290aWF0aW9uIGdsYXJl
Iik7Ci0KLXByb21pc2VfdGVzdF9ib3RoX3JvbGVzKGFzeW5jICh0LCBwYykgPT4gewotICBjb25z
dCBwcyA9IFtdOwotICBmb3IgKGxldCBpID0gMjA7IGkgPiAwOyBpLS0pIHsKLSAgICBwcy5wdXNo
KHJ1bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOwotICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4g
dC5zdGVwX3RpbWVvdXQociwgaSAtIDEpKTsKLSAgfQotICBwcy5wdXNoKHJ1bkJvdGgoImFkZFRy
YW5zY2VpdmVyIikpOwotICBhd2FpdCBQcm9taXNlLmFsbChwcyk7Ci0gIGNvbnN0IFtudW1BLCBu
dW1CXSA9IGF3YWl0IHJ1bkJvdGgoImdldE51bVRyYW5zY2VpdmVycyIpOwotICBhc3NlcnRfZXF1
YWxzKG51bUEsIDQyLCAiNDIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUgQSIpOwotICBhc3NlcnRfZXF1
YWxzKG51bUIsIDQyLCAiNDIgdHJhbnNjZWl2ZXJzIG9uIHNpZGUgQiIpOwotfSwgIlBlcmZlY3Qg
bmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIik7Ci0KLXByb21pc2VfdGVzdF9ib3RoX3JvbGVzKGFz
eW5jICh0LCBwYykgPT4gewotICBjb25zdCBwcyA9IFtdOwotICBmb3IgKGxldCBpID0gMjA7IGkg
PiAwOyBpLS0pIHsKLSAgICBwcy5wdXNoKHJ1bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOwotICAg
IGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMCkpOwotICB9Ci0gIHBz
LnB1c2gocnVuQm90aCgiYWRkVHJhbnNjZWl2ZXIiKSk7Ci0gIGF3YWl0IFByb21pc2UuYWxsKHBz
KTsKLSAgY29uc3QgW251bUEsIG51bUJdID0gYXdhaXQgcnVuQm90aCgiZ2V0TnVtVHJhbnNjZWl2
ZXJzIik7Ci0gIGFzc2VydF9lcXVhbHMobnVtQSwgNDIsICI0MiB0cmFuc2NlaXZlcnMgb24gc2lk
ZSBBIik7Ci0gIGFzc2VydF9lcXVhbHMobnVtQiwgNDIsICI0MiB0cmFuc2NlaXZlcnMgb24gc2lk
ZSBCIik7Ci19LCAiUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFyIik7CiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldERlc2NyaXB0aW9uLXRyYW5zY2Vp
dmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldERlc2NyaXB0aW9uLXRyYW5zY2VpdmVy
LWV4cGVjdGVkLnR4dAppbmRleCBlODcxYTFhOWMwNzIyNzhlMGFjMWI3NjdmN2UzOTA0MGQ4NTE1
YjQ3Li42ZDYwODcxZTQ5OTZlOWFjYzRiNzNlZmUzOTZkNWViNTU1ZGFlMmM4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1zZXREZXNjcmlwdGlvbi10cmFuc2NlaXZlci1leHBlY3RlZC50eHQKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tc2V0RGVzY3JpcHRpb24tdHJhbnNjZWl2ZXItZXhwZWN0ZWQudHh0CkBA
IC00LDUgKzQsNSBAQCBQQVNTIHNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSB3aXRoIG09IHNl
Y3Rpb24gYW5kIG5vIGV4aXN0aW5nIHRyYW5zY2VpdmVyIHNobwogRkFJTCBzZXRMb2NhbERlc2Ny
aXB0aW9uKHJvbGxiYWNrKSBzaG91bGQgdW5zZXQgdHJhbnNjZWl2ZXIubWlkIHByb21pc2VfdGVz
dDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVy
cm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5n
IHN0YXRlIgogRkFJTCBzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBzaG91bGQgb25seSB1
bnNldCB0cmFuc2NlaXZlciBtaWRzIGFzc29jaWF0ZWQgd2l0aCBjdXJyZW50IHJvdW5kIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRT
dGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2ln
bmFsaW5nIHN0YXRlIgogRkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbihyb2xsYmFjaykgc2hvdWxk
IHJlbW92ZSBuZXdseSBjcmVhdGVkIHRyYW5zY2VpdmVyIGZyb20gdHJhbnNjZWl2ZXIgbGlzdCBw
cm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZh
bGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50
IHNpZ25hbGluZyBzdGF0ZSIKLVBBU1Mgc2V0UmVtb3RlRGVzY3JpcHRpb24gc2hvdWxkIHN0b3Ag
dGhlIHRyYW5zY2VpdmVyIGlmIGl0cyBjb3JyZXNwb25kaW5nIG0gc2VjdGlvbiBpcyByZWplY3Rl
ZAorUEFTUyBzZXRSZW1vdGVEZXNjcmlwdGlvbiBzaG91bGQgc2V0IHRyYW5zY2VpdmVyIGluYWN0
aXZlIGlmIGl0cyBjb3JyZXNwb25kaW5nIG0gc2VjdGlvbiBpcyByZWplY3RlZAogCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1zZXREZXNjcmlwdGlvbi10cmFuc2NlaXZlci5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tc2V0RGVzY3JpcHRpb24tdHJhbnNjZWl2ZXIuaHRtbAppbmRleCBhODA1NmQ0NzNjZDdh
ZDNhM2JkZDM0OGJjNjg5YWFiNzU2ZmFiNzc4Li45YmJhYjMwZDU2ZTIyZjFmMTE4NDZmOGQyZjZj
ZjY1NDYzMTgzMmY3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXREZXNjcmlwdGlvbi10cmFu
c2NlaXZlci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldERlc2NyaXB0aW9uLXRyYW5zY2VpdmVy
Lmh0bWwKQEAgLTI0OCwxOCArMjQ4LDE0IEBACiAgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEu
Y3JlYXRlT2ZmZXIoKTsKICAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7
CiAKLSAgICBhc3NlcnRfZmFsc2UocGMxLmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3BwZWQsICdU
cmFuc2NlaXZlciBpcyBub3Qgc3RvcHBlZCcpOwotCiAgICAgYXdhaXQgcGMyLnNldFJlbW90ZURl
c2NyaXB0aW9uKG9mZmVyKTsKICAgICBwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOwog
ICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKIAogICAgIGF3YWl0
IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwogCi0gICAgYXNzZXJ0X3RydWUocGMx
LmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3BwZWQsICdUcmFuc2NlaXZlciBpcyBzdG9wcGVkJyk7
Ci0gICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0UmVjZWl2ZXJzKCkubGVuZ3RoLCAwLCAnZ2V0UmVj
ZWl2ZXJzIGRvZXMgbm90IGV4cG9zZSBhIHJlY2VpdmVyIG9mIGEgc3RvcHBlZCB0cmFuc2NlaXZl
cicpOwotICAgIGFzc2VydF9lcXVhbHMocGMxLmdldFNlbmRlcnMoKS5sZW5ndGgsIDAsICdnZXRT
ZW5kZXJzIGRvZXMgbm90IGV4cG9zZSBhIHNlbmRlciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2ZXIn
KTsKLSAgfSwgJ3NldFJlbW90ZURlc2NyaXB0aW9uIHNob3VsZCBzdG9wIHRoZSB0cmFuc2NlaXZl
ciBpZiBpdHMgY29ycmVzcG9uZGluZyBtIHNlY3Rpb24gaXMgcmVqZWN0ZWQnKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5jdXJyZW50RGlyZWN0aW9uLCAnaW5h
Y3RpdmUnLCAnQSBzdG9wcGVkIG0tbGluZSBzaG91bGQgZ2l2ZSBhbiBpbmFjdGl2ZSB0cmFuc2Nl
aXZlcicpOworICB9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24gc2hvdWxkIHNldCB0cmFuc2NlaXZl
ciBpbmFjdGl2ZSBpZiBpdHMgY29ycmVzcG9uZGluZyBtIHNlY3Rpb24gaXMgcmVqZWN0ZWQnKTsK
IAogICAvKgogICAgIFRPRE8KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2Ny
aXB0aW9uLW9mZmVyLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0
aW9uLW9mZmVyLWV4cGVjdGVkLnR4dAppbmRleCA5YzJhMzYyN2E2YWI1YmU3MWZhYWZhNDE1NmM5
YWFiOWJlNjcwOGUzLi42N2NiYzhkYTMxZTY3Njg4MDg5NTUwNmNkM2VkZjkwNzFkZTlmNzk4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1vZmZlci1leHBlY3Rl
ZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tb2ZmZXItZXhwZWN0
ZWQudHh0CkBAIC0xMyw0ICsxMyw1IEBAIE5PVFJVTiBOYWl2ZSByb2xsYmFjayBhcHByb2FjaCBp
cyBub3QgZ2xhcmUtcHJvb2YgKGNvbnRyb2wpCiBOT1RSVU4gc2V0UmVtb3RlRGVzY3JpcHRpb24o
b2ZmZXIpIGZyb20gaGF2ZS1sb2NhbC1vZmZlciBpcyBnbGFyZS1wcm9vZgogTk9UUlVOIHNldFJl
bW90ZURlc2NyaXB0aW9uKGludmFsaWRPZmZlcikgZnJvbSBoYXZlLWxvY2FsLW9mZmVyIGRvZXMg
bm90IHVuZG8gcm9sbGJhY2sKIE5PVFJVTiByZXBlYXRlZCBzUkQob2ZmZXIpIHdvcmtzCitOT1RS
VU4gc1JEKHJlb2ZmZXIpIHdpdGggY2FuZGlkYXRlcyBhbmQgd2l0aG91dCB0cmlja2xlIHdvcmtz
CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1vZmZlci5odG1sCmluZGV4IGI0
NzAyNDQ2NjEzMjU1ZGFlYzdkYjUzMjVmNjQwODlhOTE3ZmRlZTkuLmE1MGU5Njk2MzcyOTRhZWM4
ZWVhZmU2ODJkYTVkMjU4ZTJhOTBkZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90
ZURlc2NyaXB0aW9uLW9mZmVyLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3Jp
cHRpb24tb2ZmZXIuaHRtbApAQCAtMzI1LDQgKzMyNSwxNiBAQAogICAgIGF3YWl0IHBjMS5zZXRS
ZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwogICB9LCAncmVwZWF0ZWQgc1JEKG9mZmVyKSB3b3Jr
cycpOwogCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKKyAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVv
Jyk7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisgICAgYXdhaXQg
d2FpdEZvckljZUdhdGhlcmluZ1N0YXRlKHBjMSwgWydjb21wbGV0ZSddKTsKKyAgICBhd2FpdCBl
eGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgICBhd2FpdCB3YWl0Rm9ySWNlU3RhdGVD
aGFuZ2UocGMyLCBbJ2Nvbm5lY3RlZCcsICdjb21wbGV0ZWQnXSk7CisgIH0sICdzUkQocmVvZmZl
cikgd2l0aCBjYW5kaWRhdGVzIGFuZCB3aXRob3V0IHRyaWNrbGUgd29ya3MnKTsKKwogPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi12aWRlb0RldGVjdG9yVGVzdC5odG1sIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tdmlkZW9EZXRlY3RvclRlc3QuaHRtbAppbmRleCA3MWZmZmRjNjg2MDM0NjViMjJi
MzJkYTczOGFiNWZlZGFiMzc4ZjQxLi42Nzg2YmQ0OWVkZTY4ZWFhMDc1ZmRiMmQxMjdkNDA3NGU1
ZTkwMDM1IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi12aWRlb0RldGVjdG9yVGVzdC5odG1sCisr
KyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLXZpZGVvRGV0ZWN0b3JUZXN0Lmh0bWwKQEAgLTIyLDM4ICsyMiwzOCBA
QAogLy8gdGhlIHRlc3QgdGltZXMgb3V0LgogCiBhc3luYyBmdW5jdGlvbiBzaWduYWxTZXR0bGVt
ZW50VGltZSh0LCB2LCBzZW5kZXIsIHNpZ25hbCwgYmFja2dyb3VuZFRyYWNrKSB7Ci0gIGNvbnN0
IGRldGVjdGlvblN0cmVhbSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHt2aWRlbzoge3NpZ25hbDog
c2lnbmFsfX0pOworICBjb25zdCBkZXRlY3Rpb25TdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVh
bSh7dmlkZW86IHtzaWduYWx9fSk7CiAgIGNvbnN0IFtkZXRlY3Rpb25UcmFja10gPSBkZXRlY3Rp
b25TdHJlYW0uZ2V0VHJhY2tzKCk7Ci0gIGF3YWl0IHNlbmRlci5yZXBsYWNlVHJhY2soZGV0ZWN0
aW9uVHJhY2spOwotICBjb25zdCBmcmFtZXNCZWZvcmUgPSB2LmdldFZpZGVvUGxheWJhY2tRdWFs
aXR5KCkudG90YWxWaWRlb0ZyYW1lczsKLSAgYXdhaXQgZGV0ZWN0U2lnbmFsKHQsIHYsIHNpZ25h
bCk7Ci0gIGNvbnN0IGZyYW1lc0FmdGVyID0gdi5nZXRWaWRlb1BsYXliYWNrUXVhbGl0eSgpLnRv
dGFsVmlkZW9GcmFtZXM7Ci0gIGF3YWl0IHNlbmRlci5yZXBsYWNlVHJhY2soYmFja2dyb3VuZFRy
YWNrKTsKLSAgYXdhaXQgZGV0ZWN0U2lnbmFsKHQsIHYsIDEwMCk7Ci0gIGRldGVjdGlvblN0cmVh
bS5nZXRUcmFja3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSk7Ci0gIHJldHVybiAo
ZnJhbWVzQWZ0ZXIgLSBmcmFtZXNCZWZvcmUpOworICB0cnkgeworICAgIGF3YWl0IHNlbmRlci5y
ZXBsYWNlVHJhY2soZGV0ZWN0aW9uVHJhY2spOworICAgIGNvbnN0IGZyYW1lc0JlZm9yZSA9IHYu
Z2V0VmlkZW9QbGF5YmFja1F1YWxpdHkoKS50b3RhbFZpZGVvRnJhbWVzOworICAgIGF3YWl0IGRl
dGVjdFNpZ25hbCh0LCB2LCBzaWduYWwpOworICAgIGNvbnN0IGZyYW1lc0FmdGVyID0gdi5nZXRW
aWRlb1BsYXliYWNrUXVhbGl0eSgpLnRvdGFsVmlkZW9GcmFtZXM7CisgICAgYXdhaXQgc2VuZGVy
LnJlcGxhY2VUcmFjayhiYWNrZ3JvdW5kVHJhY2spOworICAgIGF3YWl0IGRldGVjdFNpZ25hbCh0
LCB2LCAxMDApOworICAgIHJldHVybiBmcmFtZXNBZnRlciAtIGZyYW1lc0JlZm9yZTsKKyAgfSBm
aW5hbGx5IHsKKyAgICBkZXRlY3Rpb25UcmFjay5zdG9wKCk7CisgIH0KIH0KIAogcHJvbWlzZV90
ZXN0KGFzeW5jIHQgPT4gewogICBjb25zdCB2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlk
ZW8nKTsKICAgdi5hdXRvcGxheSA9IHRydWU7CiAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOwotICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgY29uc3Qg
cGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMx
LmNsb3NlKCkpOwogICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKICAgY29uc3Qg
c3RyZWFtMSA9IGF3YWl0IGdldE5vaXNlU3RyZWFtKHt2aWRlbzoge3NpZ25hbDogMTAwfX0pOwot
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbTEuZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9
PiB0cmFjay5zdG9wKCkpKTsKICAgY29uc3QgW3RyYWNrMV0gPSBzdHJlYW0xLmdldFRyYWNrcygp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHRyYWNrMS5zdG9wKCkpOworCiAgIGNvbnN0IHNlbmRl
ciA9IHBjMS5hZGRUcmFjayh0cmFjazEpOwotICBwYzIub250cmFjayA9IHQuc3RlcF9mdW5jKChl
KSA9PiB7Ci0gICAgdi5zcmNPYmplY3QgPSBuZXcgTWVkaWFTdHJlYW0oW2UudHJhY2tdKTsKLSAg
fSk7Ci0gIGNvbnN0IG1ldGFkYXRhVG9CZUxvYWRlZCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9
PiB7Ci0gICAgdi5hZGRFdmVudExpc3RlbmVyKCdsb2FkZWRtZXRhZGF0YScsIHJlc29sdmUpOwot
ICB9KTsKKyAgY29uc3QgaGF2ZVRyYWNrRXZlbnQgPSBuZXcgUHJvbWlzZShyID0+IHBjMi5vbnRy
YWNrID0gcik7CiAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7Ci0gIGV4Y2hhbmdl
T2ZmZXJBbnN3ZXIocGMxLCBwYzIpOwotICBhd2FpdCBtZXRhZGF0YVRvQmVMb2FkZWQ7CisgIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICB2LnNyY09iamVjdCA9IG5ldyBN
ZWRpYVN0cmVhbShbKGF3YWl0IGhhdmVUcmFja0V2ZW50KS50cmFja10pOworICBhd2FpdCBuZXcg
UHJvbWlzZShyID0+IHYub25sb2FkZWRtZXRhZGF0YSA9IHIpOwogICAvLyBUaGUgYmFzaWMgc2ln
bmFsIGlzIGEgdHJhY2sgd2l0aCBzaWduYWwgMTAwLiBXZSByZXBsYWNlIHRoaXMKICAgLy8gd2l0
aCB0cmFja3Mgd2l0aCBzaWduYWwgZnJvbSAwIHRvIDI1NSBhbmQgc2VlIGlmIHRoZXkgYXJlIGFs
bAogICAvLyByZWxpYWJseSBkZXRlY3RlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZW5jb2Rp
bmdzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWVuY29kaW5ncy5odG1sCmluZGV4IDUzOWIyNjkyODA2OTM0
MjU0YzRlYzRiOGQ4YmIxNGVmMTI5NjIwN2QuLmUxYTZlNjI1Mzc5ZWYxZjZhODc1NThhNzQ0ZmMx
MzY0Yzg4OTY0ODEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZW5jb2RpbmdzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
UGFyYW1ldGVycy1lbmNvZGluZ3MuaHRtbApAQCAtMTIwLDcgKzEyMCw2IEBACiAgICAgICBzZW5k
RW5jb2RpbmdzOiBbewogICAgICAgICBhY3RpdmU6IGZhbHNlLAogICAgICAgICBtYXhCaXRyYXRl
OiA4LAotICAgICAgICBtYXhGcmFtZXJhdGU6IDI1LAogICAgICAgICByaWQ6ICdmb28nCiAgICAg
ICB9XQogICAgIH0pOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1oZWxwZXIuanMgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0
ZXJzLWhlbHBlci5qcwppbmRleCAxN2VjZmJhZjk5ZThmZjEzMzM3M2YxNDg3YTI4MmRiYWFiNzU2
MmY2Li5kNzY1M2MzYThhZmJmZTYwYzdlZWI2NGZlNTBiYTI1MGMyNzFjZTQ4IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBQYXJhbWV0ZXJzLWhlbHBlci5qcworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhlbHBlci5qcwpAQCAtNTAs
NiArNTAsMTEgQEAgYXN5bmMgZnVuY3Rpb24gZG9PZmZlckFuc3dlckV4Y2hhbmdlKHQsIGNhbGxl
cikgewogZnVuY3Rpb24gdmFsaWRhdGVTZW5kZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKSB7CiAgIHZh
bGlkYXRlUnRwUGFyYW1ldGVycyhwYXJhbSk7CiAKKyAgYXNzZXJ0X2FycmF5X2ZpZWxkKHBhcmFt
LCAnZW5jb2RpbmdzJyk7CisgIGZvcihjb25zdCBlbmNvZGluZyBvZiBwYXJhbS5lbmNvZGluZ3Mp
IHsKKyAgICB2YWxpZGF0ZUVuY29kaW5nUGFyYW1ldGVycyhlbmNvZGluZyk7CisgIH0KKwogICBh
c3NlcnRfbm90X2VxdWFscyhwYXJhbS50cmFuc2FjdGlvbklkLCB1bmRlZmluZWQsCiAgICAgJ0V4
cGVjdCBzZW5kZXIgcGFyYW0udHJhbnNhY3Rpb25JZCB0byBiZSBzZXQnKTsKIApAQCAtMTAxLDIw
ICsxMDYsMTAgQEAgZnVuY3Rpb24gdmFsaWRhdGVSZWNlaXZlclJ0cFBhcmFtZXRlcnMocGFyYW0p
IHsKICAgICBzZXF1ZW5jZTxSVENSdHBDb2RlY1BhcmFtZXRlcnM+ICAgICAgICAgICBjb2RlY3M7
CiAgIH07CiAKLSAgZW51bSBSVENEZWdyYWRhdGlvblByZWZlcmVuY2UgewotICAgICJtYWludGFp
bi1mcmFtZXJhdGUiLAotICAgICJtYWludGFpbi1yZXNvbHV0aW9uIiwKLSAgICAiYmFsYW5jZWQi
Ci0gIH07CiAgKi8KIGZ1bmN0aW9uIHZhbGlkYXRlUnRwUGFyYW1ldGVycyhwYXJhbSkgewogICBh
c3NlcnRfb3B0aW9uYWxfc3RyaW5nX2ZpZWxkKHBhcmFtLCAndHJhbnNhY3Rpb25JZCcpOwogCi0g
IGFzc2VydF9hcnJheV9maWVsZChwYXJhbSwgJ2VuY29kaW5ncycpOwotICBmb3IoY29uc3QgZW5j
b2Rpbmcgb2YgcGFyYW0uZW5jb2RpbmdzKSB7Ci0gICAgdmFsaWRhdGVFbmNvZGluZ1BhcmFtZXRl
cnMoZW5jb2RpbmcpOwotICB9Ci0KICAgYXNzZXJ0X2FycmF5X2ZpZWxkKHBhcmFtLCAnaGVhZGVy
RXh0ZW5zaW9ucycpOwogICBmb3IoY29uc3QgaGVhZGVyRXh0IG9mIHBhcmFtLmhlYWRlckV4dGVu
c2lvbnMpIHsKICAgICB2YWxpZGF0ZUhlYWRlckV4dGVuc2lvblBhcmFtZXRlcnMoaGVhZGVyRXh0
KTsKQEAgLTEzMSwxMyArMTI2LDggQEAgZnVuY3Rpb24gdmFsaWRhdGVSdHBQYXJhbWV0ZXJzKHBh
cmFtKSB7CiAKIC8qCiAgIGRpY3Rpb25hcnkgUlRDUnRwRW5jb2RpbmdQYXJhbWV0ZXJzIHsKLSAg
ICBSVENEdHhTdGF0dXMgICAgICAgIGR0eDsKICAgICBib29sZWFuICAgICAgICAgICAgIGFjdGl2
ZTsKLSAgICBSVENQcmlvcml0eVR5cGUgICAgIHByaW9yaXR5OwotICAgIFJUQ1ByaW9yaXR5VHlw
ZSAgICAgbmV0d29ya1ByaW9yaXR5OwotICAgIHVuc2lnbmVkIGxvbmcgICAgICAgcHRpbWU7CiAg
ICAgdW5zaWduZWQgbG9uZyAgICAgICBtYXhCaXRyYXRlOwotICAgIGRvdWJsZSAgICAgICAgICAg
ICAgbWF4RnJhbWVyYXRlOwogCiAgICAgW3JlYWRvbmx5XQogICAgIERPTVN0cmluZyAgICAgICAg
ICAgcmlkOwpAQCAtMTQ1LDMxICsxMzUsMTAgQEAgZnVuY3Rpb24gdmFsaWRhdGVSdHBQYXJhbWV0
ZXJzKHBhcmFtKSB7CiAgICAgZG91YmxlICAgICAgICAgICAgICBzY2FsZVJlc29sdXRpb25Eb3du
Qnk7CiAgIH07CiAKLSAgZW51bSBSVENEdHhTdGF0dXMgewotICAgICJkaXNhYmxlZCIsCi0gICAg
ImVuYWJsZWQiCi0gIH07Ci0KLSAgZW51bSBSVENQcmlvcml0eVR5cGUgewotICAgICJ2ZXJ5LWxv
dyIsCi0gICAgImxvdyIsCi0gICAgIm1lZGl1bSIsCi0gICAgImhpZ2giCi0gIH07CiAgKi8KIGZ1
bmN0aW9uIHZhbGlkYXRlRW5jb2RpbmdQYXJhbWV0ZXJzKGVuY29kaW5nKSB7Ci0gIGFzc2VydF9v
cHRpb25hbF9lbnVtX2ZpZWxkKGVuY29kaW5nLCAnZHR4JywKLSAgICBbJ2Rpc2FibGVkJywgJ2Vu
YWJsZWQnXSk7Ci0KICAgYXNzZXJ0X29wdGlvbmFsX2Jvb2xlYW5fZmllbGQoZW5jb2RpbmcsICdh
Y3RpdmUnKTsKLSAgYXNzZXJ0X29wdGlvbmFsX2VudW1fZmllbGQoZW5jb2RpbmcsICdwcmlvcml0
eScsCi0gICAgWyd2ZXJ5LWxvdycsICdsb3cnLCAnbWVkaXVtJywgJ2hpZ2gnXSk7Ci0gIGFzc2Vy
dF9vcHRpb25hbF9lbnVtX2ZpZWxkKGVuY29kaW5nLCAnbmV0d29ya1ByaW9yaXR5JywKLSAgICBb
J3ZlcnktbG93JywgJ2xvdycsICdtZWRpdW0nLCAnaGlnaCddKTsKLQotICBhc3NlcnRfb3B0aW9u
YWxfdW5zaWduZWRfaW50X2ZpZWxkKGVuY29kaW5nLCAncHRpbWUnKTsKICAgYXNzZXJ0X29wdGlv
bmFsX3Vuc2lnbmVkX2ludF9maWVsZChlbmNvZGluZywgJ21heEJpdHJhdGUnKTsKLSAgYXNzZXJ0
X29wdGlvbmFsX251bWJlcl9maWVsZChlbmNvZGluZywgJ21heEZyYW1lcmF0ZScpOwogCiAgIGFz
c2VydF9vcHRpb25hbF9zdHJpbmdfZmllbGQoZW5jb2RpbmcsICdyaWQnKTsKICAgYXNzZXJ0X29w
dGlvbmFsX251bWJlcl9maWVsZChlbmNvZGluZywgJ3NjYWxlUmVzb2x1dGlvbkRvd25CeScpOwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0UGFyYW1ldGVycy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZl
ci1nZXRQYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dAppbmRleCBmNjY2YWI4YjE4ZDM5NWI5NzE4OGY4
OTY5NTQwMDA3ZDM2NWQyOWEwLi4yNjMyNTRkZThkNDIzZTRkOGU4MGM4NWQ5ODlhMmZmMWI5Mjhi
ZWIzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENS
dHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJzLWV4cGVjdGVkLnR4dApAQCAtMSw1ICsxLDUgQEAKIAot
RkFJTCBnZXRQYXJhbWV0ZXJzKCkgd2l0aCBhdWRpbyByZWNlaXZlciBhc3NlcnRfdHJ1ZTogRXhw
ZWN0IGRpY3Rpb25hcnkuZW5jb2RpbmdzIHRvIGJlIGFycmF5IGV4cGVjdGVkIHRydWUgZ290IGZh
bHNlCi1GQUlMIGdldFBhcmFtZXRlcnMoKSB3aXRoIHZpZGVvIHJlY2VpdmVyIGFzc2VydF90cnVl
OiBFeHBlY3QgZGljdGlvbmFyeS5lbmNvZGluZ3MgdG8gYmUgYXJyYXkgZXhwZWN0ZWQgdHJ1ZSBn
b3QgZmFsc2UKLUZBSUwgZ2V0UGFyYW1ldGVycygpIHdpdGggc2ltdWxjYXN0IHZpZGVvIHJlY2Vp
dmVyIGFzc2VydF90cnVlOiBFeHBlY3QgZGljdGlvbmFyeS5lbmNvZGluZ3MgdG8gYmUgYXJyYXkg
ZXhwZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKK0ZBSUwgZ2V0UGFyYW1ldGVycygpIHdpdGggYXVkaW8g
cmVjZWl2ZXIgYXNzZXJ0X2VxdWFsczogRXhwZWN0IGRpY3Rpb25hcnkucnRjcCB0byBiZSBwbGFp
biBvYmplY3QgZXhwZWN0ZWQgIm9iamVjdCIgYnV0IGdvdCAidW5kZWZpbmVkIgorRkFJTCBnZXRQ
YXJhbWV0ZXJzKCkgd2l0aCB2aWRlbyByZWNlaXZlciBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGlj
dGlvbmFyeS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290
ICJ1bmRlZmluZWQiCitGQUlMIGdldFBhcmFtZXRlcnMoKSB3aXRoIHNpbXVsY2FzdCB2aWRlbyBy
ZWNlaXZlciBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5ydGNwIHRvIGJlIHBsYWlu
IG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRlZmluZWQiCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMu
aHRtbAppbmRleCA0YmUwZTNiOTVlYzQ1YmQ5NjkzYTRkYTM4YjE0NmM1OGIzNzgxMGY4Li43MDQ3
Y2U3ZDFmMzYzYjdkMmUwNmViYmViZWExMTczNmFiY2NjZjNlIDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZl
ci1nZXRQYXJhbWV0ZXJzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0UGFyYW1ldGVycy5odG1sCkBA
IC0zNiwxMiArMzYsMTEgQEAKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwog
ICAgIHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0IGNhbGxlZSA9IGF3YWl0
IGRvT2ZmZXJBbnN3ZXJFeGNoYW5nZSh0LCBwYyk7Ci0gICAgY29uc3QgcGFyYW0gPSBjYWxsZWUu
Z2V0UmVjZWl2ZXJzKClbMF0uZ2V0UGFyYW1ldGVycygpOworICAgIGNvbnN0IHBhcmFtID0gY2Fs
bGVlLmdldFRyYW5zY2VpdmVycygpWzBdLnJlY2VpdmVyLmdldFBhcmFtZXRlcnMoKTsKICAgICB2
YWxpZGF0ZVJlY2VpdmVyUnRwUGFyYW1ldGVycyhwYXJhbSk7CiAKICAgICBhc3NlcnRfZ3JlYXRl
cl90aGFuKHBhcmFtLmhlYWRlckV4dGVuc2lvbnMubGVuZ3RoLCAwKTsKICAgICBhc3NlcnRfZ3Jl
YXRlcl90aGFuKHBhcmFtLmNvZGVjcy5sZW5ndGgsIDApOwotICAgIGFzc2VydF9lcXVhbHMocGFy
YW0uZW5jb2RpbmdzLmxlbmd0aCwgMSk7CiAgIH0sICdnZXRQYXJhbWV0ZXJzKCkgd2l0aCBhdWRp
byByZWNlaXZlcicpOwogCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKQEAgLTQ5LDEyICs0
OCwxMSBAQAogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgcGMuYWRk
VHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CiAgICAgY29uc3QgY2FsbGVlID0gYXdhaXQgZG9PZmZlckFu
c3dlckV4Y2hhbmdlKHQsIHBjKTsKLSAgICBjb25zdCBwYXJhbSA9IGNhbGxlZS5nZXRSZWNlaXZl
cnMoKVswXS5nZXRQYXJhbWV0ZXJzKCk7CisgICAgY29uc3QgcGFyYW0gPSBjYWxsZWUuZ2V0VHJh
bnNjZWl2ZXJzKClbMF0ucmVjZWl2ZXIuZ2V0UGFyYW1ldGVycygpOwogICAgIHZhbGlkYXRlUmVj
ZWl2ZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKTsKIAogICAgIGFzc2VydF9ncmVhdGVyX3RoYW4ocGFy
YW0uaGVhZGVyRXh0ZW5zaW9ucy5sZW5ndGgsIDApOwogICAgIGFzc2VydF9ncmVhdGVyX3RoYW4o
cGFyYW0uY29kZWNzLmxlbmd0aCwgMCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhwYXJhbS5lbmNvZGlu
Z3MubGVuZ3RoLCAxKTsKICAgfSwgJ2dldFBhcmFtZXRlcnMoKSB3aXRoIHZpZGVvIHJlY2VpdmVy
Jyk7CiAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewpAQCAtNjcsMTUgKzY1LDkgQEAKICAg
ICAgIF0KICAgICB9KTsKICAgICBjb25zdCBjYWxsZWUgPSBhd2FpdCBkb09mZmVyQW5zd2VyRXhj
aGFuZ2UodCwgcGMpOwotICAgIGNvbnN0IHBhcmFtID0gY2FsbGVlLmdldFJlY2VpdmVycygpWzBd
LmdldFBhcmFtZXRlcnMoKTsKKyAgICBjb25zdCBwYXJhbSA9IGNhbGxlZS5nZXRUcmFuc2NlaXZl
cnMoKVswXS5yZWNlaXZlci5nZXRQYXJhbWV0ZXJzKCk7CiAgICAgdmFsaWRhdGVSZWNlaXZlclJ0
cFBhcmFtZXRlcnMocGFyYW0pOwotCiAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihwYXJhbS5oZWFk
ZXJFeHRlbnNpb25zLmxlbmd0aCwgMCk7CiAgICAgYXNzZXJ0X2dyZWF0ZXJfdGhhbihwYXJhbS5j
b2RlY3MubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnRfZXF1YWxzKHBhcmFtLmVuY29kaW5ncy5sZW5n
dGgsIDIsICdsYXllciBjb3VudCBtdXN0IG1hdGNoJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhwYXJh
bS5lbmNvZGluZ3NbMF0ucmlkLCAicmlkMSIsCi0gICAgICAnc2ltdWxjYXN0IHJpZHMgbXVzdCBt
YXRjaCcpOwotICAgIGFzc2VydF9lcXVhbHMocGFyYW0uZW5jb2RpbmdzWzFdLnJpZCwgInJpZDIi
LAotICAgICAgJ3NpbXVsY2FzdCByaWRzIG11c3QgbWF0Y2gnKTsKICAgfSwgJ2dldFBhcmFtZXRl
cnMoKSB3aXRoIHNpbXVsY2FzdCB2aWRlbyByZWNlaXZlcicpOwogPC9zY3JpcHQ+CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBTZW5kZXItZW5jb2RlLXNhbWUtdHJhY2stdHdpY2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
U2VuZGVyLWVuY29kZS1zYW1lLXRyYWNrLXR3aWNlLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xZDRhODZhZDUwYjhiNTVkY2M2NTgwNzYyM2FiYTg5NzBlOGIyNmQwCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwU2VuZGVyLWVuY29kZS1zYW1lLXRyYWNrLXR3aWNlLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBUd28gUlRDUnRwU2VuZGVycyBlbmNvZGluZyB0aGUg
c2FtZSB0cmFjaworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5jb2RlLXNhbWUtdHJhY2stdHdpY2Uu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFNlbmRlci1lbmNvZGUtc2FtZS10cmFjay10d2ljZS5odHRwcy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjU2ODU0M2RhNzBmODM2MGE4MGY5ZWQwZTYzM2Y1NWYzNWY1N2FhOTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5jb2RlLXNhbWUtdHJhY2stdHdpY2UuaHR0cHMuaHRtbApA
QCAtMCwwICsxLDY2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8
bWV0YSBuYW1lPSJ0aW1lb3V0IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT48L3RpdGxlPgorPHNj
cmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
UlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisgICd1c2Ug
c3RyaWN0JzsKKworICAvLyBBIGdlbmVyb3VzIHRlc3RpbmcgZHVyYXRpb24gdGhhdCB3aWxsIG5v
dCB0aW1lIG91dCBvbiBib3RzLgorICBjb25zdCBrRW5jb2RlRHVyYXRpb25NcyA9IDEwMDAwOwor
CisgIC8vIFRoZSBjcmFzaCB0aGlzIHRlc3QgYWltcyB0byByZXBybyB3YXMgZWFzeSB0byByZXBy
b2R1Y2UgdXNpbmcgYSBub3JtYWwKKyAgLy8gZ2V0VXNlck1lZGlhKCkgdHJhY2sgd2hlbiBydW5u
aW5nIHRoZSBicm93c2VyIG5vcm1hbGx5LCBlLmcuIGJ5IG5hdmlnYXRpbmcKKyAgLy8gdG8gaHR0
cHM6Ly9qc2ZpZGRsZS5uZXQvaGVuYm9zL2ZjN2drM3ZlLzExLy4gQnV0IGZvciBzb21lIHJlYXNv
biwgdGhlIGZha2UKKyAgLy8gdHJhY2tzIHJldHVybmVkIGJ5IGdldFVzZXJNZWRpYSgpIHdoZW4g
aW5zaWRlIHRoaXMgdGVzdGluZyBlbnZpcm9ubWVudCBoYWQKKyAgLy8gYSBtdWNoIGhhcmRlciB0
aW1lIHdpdGggcmVwcm9kdWNpYmlsaXR5LgorICAvLworICAvLyBCeSBjcmVhdGluZyBhIGhpZ2gg
RlBTIGNhbnZhcyBjYXB0dXJlIHRyYWNrIHdlIGFyZSBhYmxlIHRvIHJlcHJvIHJlbGlhYmx5Cisg
IC8vIGluIHRoaXMgV1BUIGVudmlyb25tZW50IGFzIHdlbGwuCisgIGZ1bmN0aW9uIHdoaXRlTm9p
c2Uod2lkdGgsIGhlaWdodCkgeworICAgIGNvbnN0IGNhbnZhcyA9CisgICAgICAgIE9iamVjdC5h
c3NpZ24oZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyksIHt3aWR0aCwgaGVpZ2h0fSk7
CisgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7CisgICAgY3R4LmZpbGxS
ZWN0KDAsIDAsIHdpZHRoLCBoZWlnaHQpOworICAgIGNvbnN0IHAgPSBjdHguZ2V0SW1hZ2VEYXRh
KDAsIDAsIHdpZHRoLCBoZWlnaHQpOworICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShmdW5jdGlv
biBkcmF3ICgpIHsKKyAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgcC5kYXRhLmxlbmd0aDsgaSsr
KSB7CisgICAgICAgIGNvbnN0IGNvbG9yID0gTWF0aC5yYW5kb20oKSAqIDI1NTsKKyAgICAgICAg
cC5kYXRhW2krK10gPSBjb2xvcjsKKyAgICAgICAgcC5kYXRhW2krK10gPSBjb2xvcjsKKyAgICAg
ICAgcC5kYXRhW2krK10gPSBjb2xvcjsKKyAgICAgIH0KKyAgICAgIGN0eC5wdXRJbWFnZURhdGEo
cCwgMCwgMCk7CisgICAgICByZXF1ZXN0QW5pbWF0aW9uRnJhbWUoZHJhdyk7CisgICAgfSk7Cisg
ICAgcmV0dXJuIGNhbnZhcy5jYXB0dXJlU3RyZWFtKCk7CisgIH0KKworICBwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
ICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgICAgY29uc3QgcGMyID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2Uo
KSk7CisKKyAgICBjb25zdCBzdHJlYW0gPSB3aGl0ZU5vaXNlKDY0MCwgNDgwKTsKKyAgICBjb25z
dCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNrcygpOworICAgIGNvbnN0IHQxID0gcGMxLmFkZFRy
YW5zY2VpdmVyKCJ2aWRlbyIsIHtkaXJlY3Rpb246InNlbmRvbmx5In0pOworICAgIGNvbnN0IHQy
ID0gcGMxLmFkZFRyYW5zY2VpdmVyKCJ2aWRlbyIsIHtkaXJlY3Rpb246InNlbmRvbmx5In0pOwor
ICAgIGF3YWl0IHQxLnNlbmRlci5yZXBsYWNlVHJhY2sodHJhY2spOworICAgIGF3YWl0IHQyLnNl
bmRlci5yZXBsYWNlVHJhY2sodHJhY2spOworCisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBj
MSwgcGMyKTsKKyAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICAgIGF3YWl0
IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7CisgICAgYXdh
aXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ocGMyLmxvY2FsRGVzY3JpcHRpb24pOworCisgICAgLy8gSW4gQ2hyb21pdW0sIGVh
Y2ggc2VuZGVyIGluc3RhbnRpYXRlcyBhIFZpZGVvU3RyZWFtRW5jb2RlciBkdXJpbmcKKyAgICAv
LyBuZWdvdGlhdGlvbi4gVGhpcyB0ZXN0IHJlcHJvZHVjZXMgaHR0cHM6Ly9jcmJ1Zy5jb20vd2Vi
cnRjLzExNDg1IHdoZXJlIGEKKyAgICAvLyByYWNlIGNhdXNlcyBhIGNyYXNoIHdoZW4gbXVsdGlw
bGUgVmlkZW9TdHJlYW1FbmNvZGVycyBhcmUgZW5jb2RpbmcgdGhlCisgICAgLy8gc2FtZSBNZWRp
YVN0cmVhbVRyYWNrLgorICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4gdC5zdGVwX3Rp
bWVvdXQocmVzb2x2ZSwga0VuY29kZUR1cmF0aW9uTXMpKTsKKyAgfSwgIlR3byBSVENSdHBTZW5k
ZXJzIGVuY29kaW5nIHRoZSBzYW1lIHRyYWNrIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRy
YW5zY2VpdmVyLXNldENvZGVjUHJlZmVyZW5jZXMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIt
c2V0Q29kZWNQcmVmZXJlbmNlcy1leHBlY3RlZC50eHQKaW5kZXggMWU5ZjdjODEzNTc0OGZmMzFi
MTU0YjExNjk5NjI4YjJiNDI0OWRjOS4uNDFmMWZkMzNlZTk2NjA2NDVhYThkMDA4Mjc0NmI2MWZj
OWFkNDNiMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy1leHBlY3RlZC50
eHQKQEAgLTE2LDQgKzE2LDYgQEAgUEFTUyBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2Rp
ZmllZCBjb2RlYyBjbG9jayByYXRlIHNob3VsZCB0aHJvdyBJbnZhbGlkTW8KIFBBU1Mgc2V0Q29k
ZWNQcmVmZXJlbmNlcygpIHdpdGggbW9kaWZpZWQgY29kZWMgY2hhbm5lbCBjb3VudCBzaG91bGQg
dGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yCiBQQVNTIHNldENvZGVjUHJlZmVyZW5jZXMo
KSB3aXRoIG1vZGlmaWVkIGNvZGVjIHBhcmFtZXRlcnMgc2hvdWxkIHRocm93IEludmFsaWRNb2Rp
ZmljYXRpb25FcnJvcgogUEFTUyBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBj
b2RlY3MgcmV0dXJuZWQgZnJvbSBnZXRDYXBhYmlsaXRpZXMoKSBzaG91bGQgdGhyb3cgSW52YWxp
ZE1vZGlmaWNhdGlvbkVycm9yCitQQVNTIHNldENvZGVjUHJlZmVyZW5jZXMoKSBtb2RpZmllcyB0
aGUgb3JkZXIgb2YgYXVkaW8gY29kZWNzIGluIGNyZWF0ZU9mZmVyCitGQUlMIHNldENvZGVjUHJl
ZmVyZW5jZXMoKSBtb2RpZmllcyB0aGUgb3JkZXIgb2YgdmlkZW8gY29kZWNzIGluIGNyZWF0ZU9m
ZmVyIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkICJWUDgiIGJ1dCBnb3QgIkgyNjQiCiAKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1J0cFRyYW5zY2VpdmVyLXNldENvZGVjUHJlZmVyZW5jZXMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVy
LXNldENvZGVjUHJlZmVyZW5jZXMuaHRtbAppbmRleCBhMDI4MjQ2N2Q4M2NkZTI0NTI2NGM5OTAz
NzBmOWIyODZiYzIxYTA5Li5hNWRmNmE5ZDJiMjE3MTRjMWZkOGZjYWQxMjkzYjQ5NWU5NWZjYjZl
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXRDb2RlY1ByZWZlcmVuY2VzLmh0bWwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
VHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy5odG1sCkBAIC0zLDYgKzMsNyBAQAogPHRp
dGxlPlJUQ1J0cFRyYW5zY2VpdmVyLnByb3RvdHlwZS5zZXRDb2RlY1ByZWZlcmVuY2VzPC90aXRs
ZT4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KIDxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxz
Y3JpcHQgc3JjPSIuL3RoaXJkX3BhcnR5L3NkcC9zZHAuanMiPjwvc2NyaXB0PgogPHNjcmlwdD4K
ICAgJ3VzZSBzdHJpY3QnOwogCkBAIC0yOCw0MSArMjksNDcgQEAKICAgICAgICAgICBjb2RlY3Mg
ZG9lcyBub3QgZnVsZmlsbCB0aGVzZSByZXF1aXJlbWVudHMsIHRoZSB1c2VyIGFnZW50IE1VU1Qg
dGhyb3cKICAgICAgICAgICBhbiBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IuCiAgICAqLworICAv
KgorICAgKiBDaHJvbWl1bSBub3RlOiB0aGlzIHJlcXVpcmVzIGJ1aWxkIGJvdHMgd2l0aCBIMjY0
IHN1cHBvcnQuIFNlZQorICAgKiAgIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1
bS9pc3N1ZXMvZGV0YWlsP2lkPTg0MDY1OQorICAgKiBmb3IgZGV0YWlscyBvbiBob3cgdG8gZW5h
YmxlIHN1cHBvcnQuCisgICAqLwogCi0gIHRlc3QoKCkgPT4geworICB0ZXN0KCh0KSA9PiB7CiAg
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNj
ZWl2ZXIoJ2F1ZGlvJyk7CiAgICAgY29uc3QgY2FwYWJpbGl0aWVzID0gUlRDUnRwU2VuZGVyLmdl
dENhcGFiaWxpdGllcygnYXVkaW8nKTsKICAgICB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVu
Y2VzKGNhcGFiaWxpdGllcy5jb2RlY3MpOwotCiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkg
b24gYXVkaW8gdHJhbnNjZWl2ZXIgd2l0aCBjb2RlY3MgcmV0dXJuZWQgZnJvbSBSVENSdHBTZW5k
ZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRpbycpIHNob3VsZCBzdWNjZWVkYCk7CiAKLSAgdGVzdCgo
KSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3Qg
dHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcigndmlkZW8nKTsKICAgICBjb25zdCBjYXBh
YmlsaXRpZXMgPSBSVENSdHBSZWNlaXZlci5nZXRDYXBhYmlsaXRpZXMoJ3ZpZGVvJyk7CiAgICAg
dHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjYXBhYmlsaXRpZXMuY29kZWNzKTsKLQog
ICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIG9uIHZpZGVvIHRyYW5zY2VpdmVyIHdpdGggY29k
ZWNzIHJldHVybmVkIGZyb20gUlRDUnRwUmVjZWl2ZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycp
IHNob3VsZCBzdWNjZWVkYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2Nl
aXZlcignYXVkaW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMxID0gUlRDUnRwU2VuZGVyLmdl
dENhcGFiaWxpdGllcygnYXVkaW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMyID0gUlRDUnRw
UmVjZWl2ZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRpbycpOwogICAgIHRyYW5zY2VpdmVyLnNldENv
ZGVjUHJlZmVyZW5jZXMoWy4uLmNhcGFiaWxpdGllczEuY29kZWNzLCAuLi4gY2FwYWJpbGl0aWVz
Mi5jb2RlY3NdKTsKLQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggYm90aCBzZW5k
ZXIgcmVjZWl2ZXIgY29kZWNzIGNvbWJpbmVkIHNob3VsZCBzdWNjZWVkYCk7CiAKLSAgdGVzdCgo
KSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3Qg
dHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAgICB0cmFuc2NlaXZl
ci5zZXRDb2RlY1ByZWZlcmVuY2VzKFtdKTsKLQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcyhb
XSkgc2hvdWxkIHN1Y2NlZWRgKTsKIAotICB0ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4gewog
ICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51
cCgoKSA9PiBwYy5jbG9zZSgpKTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5z
Y2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFNlbmRlci5n
ZXRDYXBhYmlsaXRpZXMoJ2F1ZGlvJyk7CiAgICAgY29uc3QgeyBjb2RlY3MgfSA9IGNhcGFiaWxp
dGllczsKQEAgLTc0LDExICs4MSwxMSBAQAogICAgIH0KIAogICAgIHRyYW5zY2VpdmVyLnNldENv
ZGVjUHJlZmVyZW5jZXMoY29kZWNzKTsKLQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdp
dGggcmVvcmRlcmVkIGNvZGVjcyBzaG91bGQgc3VjY2VlZGApOwogCi0gIHRlc3QoKCkgPT4gewor
ICB0ZXN0KCh0KSA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogICAgIGNvbnN0IHRyYW5zY2Vp
dmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CiAgICAgY29uc3QgY2FwYWJpbGl0aWVz
ID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygndmlkZW8nKTsKICAgICBjb25zdCB7IGNv
ZGVjcyB9ID0gY2FwYWJpbGl0aWVzOwpAQCAtMTA4LDcgKzExNSw3IEBACiAgICAgICAgIHRyaWVk
ID0gdHJ1ZTsKICAgICAgIH0KICAgICB9KTsKLSAgICBhc3NlcnRfdHJ1ZSh0cmllZCwgJ1ZQOCB2
aWRlbyBjb2RlYyB3YXMgZm91bmQgYW5kIHRyaWVkJyk7CisgICAgYXNzZXJ0X3RydWUodHJpZWQs
ICdIMjY0IHZpZGVvIGNvZGVjIHdhcyBmb3VuZCBhbmQgdHJpZWQnKTsKICAgfSwgYHNldENvZGVj
UHJlZmVyZW5jZXMoKSB3aXRoIG9ubHkgSDI2NCBzaG91bGQgc3VjY2VlZGApOwogCiAgIGFzeW5j
IGZ1bmN0aW9uIGdldFJUUE1hcExpbmVzV2l0aENvZGVjQXNGaXJzdChmaXJzdENvZGVjKQpAQCAt
MTQzLDE2ICsxNTAsMTcgQEAKICAgICBhc3NlcnRfdHJ1ZShsaW5lc1swXS5pbmRleE9mKCJWUDgi
KSAhPT0gLTEsICJWUDggc2hvdWxkIGJlIHRoZSBmaXJzdCBjb2RlYyIpOwogICB9LCBgc2V0Q29k
ZWNQcmVmZXJlbmNlcygpIHNob3VsZCBhbGxvdyBzZXR0aW5nIFZQOCBhcyBmaXJzdCBjb2RlY2Ap
OwogCi0gIHRlc3QoKCkgPT4geworICB0ZXN0KCh0KSA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkp
OwogICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CiAg
ICAgY29uc3QgY2FwYWJpbGl0aWVzID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygndmlk
ZW8nKTsKICAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywg
KCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjYXBhYmlsaXRpZXMuY29kZWNz
KSk7Ci0KICAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSBvbiBhdWRpbyB0cmFuc2NlaXZlciB3
aXRoIGNvZGVjcyByZXR1cm5lZCBmcm9tIGdldENhcGFiaWxpdGllcygndmlkZW8nKSBzaG91bGQg
dGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRl
c3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAg
IHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIg
PSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAgICBjb25zdCBjb2RlY3MgPSBbewogICAg
ICAgbWltZVR5cGU6ICdkYXRhJywKQEAgLTE2MiwxMSArMTcwLDExIEBACiAgICAgfV07CiAKICAg
ICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4gdHJh
bnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpKTsKLQogICB9LCBgc2V0Q29kZWNQ
cmVmZXJlbmNlcygpIHdpdGggdXNlciBkZWZpbmVkIGNvZGVjIHdpdGggaW52YWxpZCBtaW1lVHlw
ZSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7CiAKLSAgdGVzdCgoKSA9
PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlv
bigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJh
bnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAgICBjb25zdCBjb2RlY3Mg
PSBbewogICAgICAgbWltZVR5cGU6ICdhdWRpby9waWVwaXBlcicsCkBAIC0xNzYsMTEgKzE4NCwx
MSBAQAogICAgIH1dOwogCiAgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRNb2RpZmljYXRp
b25FcnJvcicsICgpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKSk7
Ci0KICAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIHVzZXIgZGVmaW5lZCBjb2RlYyBz
aG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7CiAKLSAgdGVzdCgoKSA9PiB7
CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNj
ZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRp
ZXMgPSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRpbycpOwogICAgIGNvbnN0IGNv
ZGVjcyA9IFsKQEAgLTE5Myw0NCArMjAxLDQ0IEBACiAgICAgICB9XTsKIAogICAgIGFzc2VydF90
aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5z
ZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOwotCiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2Vz
KCkgd2l0aCB1c2VyIGRlZmluZWQgY29kZWMgdG9nZXRoZXIgd2l0aCBjb2RlY3MgcmV0dXJuZWQg
ZnJvbSBnZXRDYXBhYmlsaXRpZXMoKSBzaG91bGQgdGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVy
cm9yYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xv
c2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8n
KTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVz
KCdhdWRpbycpOwogICAgIGNvbnN0IGNvZGVjcyA9IFtjYXBhYmlsaXRpZXMuY29kZWNzWzBdXTsK
ICAgICBjb2RlY3NbMF0uY2xvY2tSYXRlID0gY29kZWNzWzBdLmNsb2NrUmF0ZSAvIDI7CiAKICAg
ICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4gdHJh
bnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpKTsKLQogICB9LCBgc2V0Q29kZWNQ
cmVmZXJlbmNlcygpIHdpdGggbW9kaWZpZWQgY29kZWMgY2xvY2sgcmF0ZSBzaG91bGQgdGhyb3cg
SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQp
ID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5h
ZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBSVENSdHBT
ZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRpbycpOwogICAgIGNvbnN0IGNvZGVjcyA9IFtjYXBh
YmlsaXRpZXMuY29kZWNzWzBdXTsKICAgICBjb2RlY3NbMF0uY2hhbm5lbHMgPSBjb2RlY3NbMF0u
Y2hhbm5lbHMgKyAxMTsKIAogICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0
aW9uRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykp
OwotCiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlYyBjaGFu
bmVsIGNvdW50IHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIAotICB0
ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKICAgICBj
b25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0
IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlvJyk7CiAg
ICAgY29uc3QgY29kZWNzID0gW2NhcGFiaWxpdGllcy5jb2RlY3NbMF1dOwogICAgIGNvZGVjc1sw
XS5zZHBGbXRwTGluZSA9ICJtb2RpZmllZHBhcmFtZXRlcj0xIjsKIAogICAgIGFzc2VydF90aHJv
d3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5zZXRD
b2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOwotCiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkg
d2l0aCBtb2RpZmllZCBjb2RlYyBwYXJhbWV0ZXJzIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZp
Y2F0aW9uRXJyb3JgKTsKIAotICB0ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4gewogICAgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVy
KCdhdWRpbycpOwogICAgIGNvbnN0IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBh
YmlsaXRpZXMoJ2F1ZGlvJyk7CiAKQEAgLTI0Myw3ICsyNTEsNzIgQEAKICAgICBjb2RlYy5jaGFu
bmVscyA9IGNoYW5uZWxzKzE7CiAKICAgICBhc3NlcnRfdGhyb3dzX2RvbSgnSW52YWxpZE1vZGlm
aWNhdGlvbkVycm9yJywgKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2Rl
Y3MpKTsKLQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggbW9kaWZpZWQgY29kZWNz
IHJldHVybmVkIGZyb20gZ2V0Q2FwYWJpbGl0aWVzKCkgc2hvdWxkIHRocm93IEludmFsaWRNb2Rp
ZmljYXRpb25FcnJvcmApOwogCisgIHByb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICAgIGNv
bnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVy
KCdhdWRpbycpOworICAgIGNvbnN0IHtjb2RlY3N9ID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxp
dGllcygnYXVkaW8nKTsKKyAgICAvLyBSZW9yZGVyIGNvZGVjcywgcHV0IFBDTVUvUENNQSBmaXJz
dC4KKyAgICBsZXQgZmlyc3RDb2RlYzsKKyAgICBsZXQgaTsKKyAgICBmb3IgKGkgPSAwOyBpIDwg
Y29kZWNzLmxlbmd0aDsgaSsrKSB7CisgICAgICBjb25zdCBjb2RlYyA9IGNvZGVjc1tpXTsKKyAg
ICAgIGlmIChjb2RlYy5taW1lVHlwZSA9PT0gJ2F1ZGlvL1BDTVUnIHx8IGNvZGVjLm1pbWVUeXBl
ID09PSAnYXVkaW8vUENNQScpIHsKKyAgICAgICAgY29kZWNzLnNwbGljZShpLCAxKTsKKyAgICAg
ICAgY29kZWNzLnVuc2hpZnQoY29kZWMpOworICAgICAgICBmaXJzdENvZGVjID0gY29kZWMubWlt
ZVR5cGUuc3Vic3RyKDYpOworICAgICAgICBicmVhazsKKyAgICAgIH0KKyAgICB9CisgICAgYXNz
ZXJ0X25vdF9lcXVhbHMoZmlyc3RDb2RlYywgdW5kZWZpbmVkLCAnUENNVSBvciBQQ01BIGNvZGVj
IG5vdCBmb3VuZCcpOworICAgIHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNz
KTsKKworICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgICBjb25z
dCBtZWRpYVNlY3Rpb24gPSBTRFBVdGlscy5nZXRNZWRpYVNlY3Rpb25zKG9mZmVyLnNkcClbMF07
CisgICAgY29uc3QgcnRwUGFyYW1ldGVycyA9IFNEUFV0aWxzLnBhcnNlUnRwUGFyYW1ldGVycyht
ZWRpYVNlY3Rpb24pOworICAgIGFzc2VydF9lcXVhbHMocnRwUGFyYW1ldGVycy5jb2RlY3NbMF0u
bmFtZSwgZmlyc3RDb2RlYyk7CisgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgbW9kaWZpZXMg
dGhlIG9yZGVyIG9mIGF1ZGlvIGNvZGVjcyBpbiBjcmVhdGVPZmZlcmApOworCisgIHByb21pc2Vf
dGVzdChhc3luYyAodCkgPT4geworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAgICBjb25zdCB0cmFu
c2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOworICAgIGNvbnN0IHtjb2RlY3N9
ID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygndmlkZW8nKTsKKyAgICAvLyBSZW9yZGVy
IGNvZGVjcywgc3dhcCBIMjY0IGFuZCBWUDguCisgICAgbGV0IHZwOCA9IC0xOworICAgIGxldCBo
MjY0ID0gLTE7CisgICAgbGV0IGZpcnN0Q29kZWM7CisgICAgbGV0IGk7CisgICAgZm9yIChpID0g
MDsgaSA8IGNvZGVjcy5sZW5ndGg7IGkrKykgeworICAgICAgY29uc3QgY29kZWMgPSBjb2RlY3Nb
aV07CisgICAgICBpZiAoY29kZWMubWltZVR5cGUgPT09ICd2aWRlby9WUDgnKSB7CisgICAgICAg
IHZwOCA9IGk7CisgICAgICAgIGlmIChoMjY0ICE9PSAtMSkgeworICAgICAgICAgIGNvZGVjc1t2
cDhdID0gY29kZWNzW2gyNjRdOworICAgICAgICAgIGNvZGVjc1toMjY0XSA9IGNvZGVjOworICAg
ICAgICAgIGZpcnN0Q29kZWMgPSAnVlA4JzsKKyAgICAgICAgICBicmVhazsKKyAgICAgICAgfQor
ICAgICAgfQorICAgICAgaWYgKGNvZGVjLm1pbWVUeXBlID09PSAndmlkZW8vSDI2NCcpIHsKKyAg
ICAgICAgaDI2NCA9IGk7CisgICAgICAgIGlmICh2cDggIT09IC0xKSB7CisgICAgICAgICAgY29k
ZWNzW2gyNjRdID0gY29kZWNzW3ZwOF07CisgICAgICAgICAgY29kZWNzW3ZwOF0gPSBjb2RlYzsK
KyAgICAgICAgICBmaXJzdENvZGVjID0gJ0gyNjQnOworICAgICAgICAgIGJyZWFrOworICAgICAg
ICB9CisgICAgICB9CisgICAgfQorICAgIGFzc2VydF9ub3RfZXF1YWxzKGZpcnN0Q29kZWMsIHVu
ZGVmaW5lZCwgJ1ZQOCBhbmQgSDI2NCBjb2RlY3Mgbm90IGZvdW5kJyk7CisgICAgdHJhbnNjZWl2
ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpOworCisgICAgY29uc3Qgb2ZmZXIgPSBhd2Fp
dCBwYy5jcmVhdGVPZmZlcigpOworICAgIGNvbnN0IG1lZGlhU2VjdGlvbiA9IFNEUFV0aWxzLmdl
dE1lZGlhU2VjdGlvbnMob2ZmZXIuc2RwKVswXTsKKyAgICBjb25zdCBydHBQYXJhbWV0ZXJzID0g
U0RQVXRpbHMucGFyc2VSdHBQYXJhbWV0ZXJzKG1lZGlhU2VjdGlvbik7CisgICAgYXNzZXJ0X2Vx
dWFscyhydHBQYXJhbWV0ZXJzLmNvZGVjc1swXS5uYW1lLCBmaXJzdENvZGVjKTsKKyAgfSwgYHNl
dENvZGVjUHJlZmVyZW5jZXMoKSBtb2RpZmllcyB0aGUgb3JkZXIgb2YgdmlkZW8gY29kZWNzIGlu
IGNyZWF0ZU9mZmVyYCk7CisKICA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0
b3AtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC1leHBlY3RlZC50eHQKaW5kZXggYmJk
ZTU4OTRhNzA4NmQyY2ZmYzUzNzhlNzlhNjdjODdlYTMzMzA2OC4uMGViYmZlNGY3MmUyNTczYTgz
ZTNiYzAwZDdmYTY3NDFmM2I3MDJlMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC1leHBl
Y3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC1leHBlY3RlZC50eHQKQEAgLTEsNiArMSwx
MCBAQAogCiBQQVNTIEEgdHJhbnNjZWl2ZXIgYWRkZWQgYW5kIHN0b3BwZWQgYmVmb3JlIHRoZSBp
bml0aWFsIG9mZmVyIGdlbmVyYXRpb24gc2hvdWxkIG5vdCB0cmlnZ2VyIGFuIG9mZmVyIG0tc2Vj
dGlvbiBnZW5lcmF0aW9uCiBQQVNTIER1cmluZyByZW5lZ290aWF0aW9uLCBhZGRpbmcgYW5kIHN0
b3BwaW5nIGEgdHJhbnNjZWl2ZXIgc2hvdWxkIG5vdCB0cmlnZ2VyIGEgcmVuZWdvdGlhdGVkIG9m
ZmVyIG0tc2VjdGlvbiBnZW5lcmF0aW9uCi1GQUlMIEEgc3RvcHBlZCBzZW5kb25seSB0cmFuc2Nl
aXZlciBzaG91bGQgZ2VuZXJhdGUgYSBzZW5kb25seSBtLXNlY3Rpb24gaW4gdGhlIG9mZmVyIGFz
c2VydF90cnVlOiBUaGUgYXVkaW8gbS1zZWN0aW9uIHNob3VsZCBiZSBzZW5kb25seSBleHBlY3Rl
ZCB0cnVlIGdvdCBmYWxzZQorUEFTUyBBIHN0b3BwZWQgc2VuZG9ubHkgdHJhbnNjZWl2ZXIgc2hv
dWxkIGdlbmVyYXRlIGFuIGluYWN0aXZlIG0tc2VjdGlvbiBpbiB0aGUgb2ZmZXIKIFBBU1MgQSBz
dG9wcGVkIGluYWN0aXZlIHRyYW5zY2VpdmVyIHNob3VsZCBnZW5lcmF0ZSBhbiBpbmFjdGl2ZSBt
LXNlY3Rpb24gaW4gdGhlIG9mZmVyCitQQVNTIElmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCBs
b2NhbGx5LCBzZXR0aW5nIGEgbG9jYWxseSBnZW5lcmF0ZWQgYW5zd2VyIHNob3VsZCBzdGlsbCB3
b3JrCitQQVNTIElmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCByZW1vdGVseSwgc2V0dGluZyBh
IGxvY2FsbHkgZ2VuZXJhdGVkIGFuc3dlciBzaG91bGQgc3RpbGwgd29yaworRkFJTCBJZiBhIHRy
YW5zY2VpdmVyIGlzIHN0b3BwZWQsIHRyYW5zY2VpdmVycywgc2VuZGVycyBhbmQgcmVjZWl2ZXJz
IHNob3VsZCBkaXNhcHBlYXIgYWZ0ZXIgb2ZmZXIvYW5zd2VyIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIDAgYnV0IGdvdCAxCitGQUlMIElmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCwgdHJhbnNj
ZWl2ZXJzIHNob3VsZCBlbmQgdXAgaW4gc3RhdGUgc3RvcHBlZCBhc3NlcnRfZXF1YWxzOiBleHBl
Y3RlZCAiaW5hY3RpdmUiIGJ1dCBnb3QgInN0b3BwZWQiCiAKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2Vp
dmVyLXN0b3AuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0b3AuaHRtbAppbmRleCA0ZjU3ZGM3YjZkMzQ4
NDg2ZTI3MTVhZmYxZTdkN2U3NzNjMjlkMGUzLi40ZjNhOWNlODVmYTI0NGJjNjczNDQ3ZmEzODlm
NDRiZGMzODFiMjMwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJh
bnNjZWl2ZXItc3RvcC5odG1sCkBAIC01OSw4ICs1OSw4IEBAIHByb21pc2VfdGVzdChhc3luYyAo
dCk9PiB7CiAKICAgICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOwogCi0g
ICAgYXNzZXJ0X3RydWUob2ZmZXIuc2RwLmluY2x1ZGVzKCJhPXNlbmRvbmx5IiksICJUaGUgYXVk
aW8gbS1zZWN0aW9uIHNob3VsZCBiZSBzZW5kb25seSIpOwotfSwgIkEgc3RvcHBlZCBzZW5kb25s
eSB0cmFuc2NlaXZlciBzaG91bGQgZ2VuZXJhdGUgYSBzZW5kb25seSBtLXNlY3Rpb24gaW4gdGhl
IG9mZmVyIik7CisgICAgYXNzZXJ0X3RydWUob2ZmZXIuc2RwLmluY2x1ZGVzKCJhPWluYWN0aXZl
IiksICJUaGUgYXVkaW8gbS1zZWN0aW9uIHNob3VsZCBiZSBpbmFjdGl2ZSIpOworfSwgIkEgc3Rv
cHBlZCBzZW5kb25seSB0cmFuc2NlaXZlciBzaG91bGQgZ2VuZXJhdGUgYW4gaW5hY3RpdmUgbS1z
ZWN0aW9uIGluIHRoZSBvZmZlciIpOwogCiBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpPT4gewogICAg
IGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwpAQCAtNzksNCArNzksNjUgQEAg
cHJvbWlzZV90ZXN0KGFzeW5jICh0KT0+IHsKIAogICAgIGFzc2VydF90cnVlKG9mZmVyLnNkcC5p
bmNsdWRlcygiYT1pbmFjdGl2ZSIpLCAiVGhlIGF1ZGlvIG0tc2VjdGlvbiBzaG91bGQgYmUgaW5h
Y3RpdmUiKTsKIH0sICJBIHN0b3BwZWQgaW5hY3RpdmUgdHJhbnNjZWl2ZXIgc2hvdWxkIGdlbmVy
YXRlIGFuIGluYWN0aXZlIG0tc2VjdGlvbiBpbiB0aGUgb2ZmZXIiKTsKKworcHJvbWlzZV90ZXN0
KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOwor
ICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3
ZXIocGMxLCBwYzIpOworICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOworICBhd2Fp
dCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVz
Y3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworfSwgJ0lmIGEgdHJhbnNjZWl2ZXIg
aXMgc3RvcHBlZCBsb2NhbGx5LCBzZXR0aW5nIGEgbG9jYWxseSBnZW5lcmF0ZWQgYW5zd2VyIHNo
b3VsZCBzdGlsbCB3b3JrJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyAodCkgPT4geworICBjb25z
dCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJh
dWRpbyIpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgcGMyLmdl
dFRyYW5zY2VpdmVycygpWzBdLnN0b3AoKTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihw
YzIsIHBjMSk7CisgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMS5jcmVh
dGVPZmZlcigpKTsKK30sICdJZiBhIHRyYW5zY2VpdmVyIGlzIHN0b3BwZWQgcmVtb3RlbHksIHNl
dHRpbmcgYSBsb2NhbGx5IGdlbmVyYXRlZCBhbnN3ZXIgc2hvdWxkIHN0aWxsIHdvcmsnKTsKKwor
cHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMy
LmNsb3NlKCkpOworICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IGV4Y2hh
bmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2Nl
aXZlcnMoKS5sZW5ndGgsIDEpOworICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMo
KS5sZW5ndGgsIDEpOworICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOworICBhd2Fp
dCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0
VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNj
ZWl2ZXJzKCkubGVuZ3RoLCAwKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0U2VuZGVycygpLmxl
bmd0aCwgMCwgJ2NhbGxlciBzZW5kZXJzJyk7CisgIGFzc2VydF9lcXVhbHMocGMxLmdldFJlY2Vp
dmVycygpLmxlbmd0aCwgMCwgJ2NhbGxlciByZWNlaXZlcnMnKTsKKyAgYXNzZXJ0X2VxdWFscyhw
YzIuZ2V0U2VuZGVycygpLmxlbmd0aCwgMCwgJ2NhbGxlZSBzZW5kZXJzJyk7CisgIGFzc2VydF9l
cXVhbHMocGMyLmdldFJlY2VpdmVycygpLmxlbmd0aCwgMCwgJ2NhbGxlZSByZWNlaXZlcnMnKTsK
K30sICdJZiBhIHRyYW5zY2VpdmVyIGlzIHN0b3BwZWQsIHRyYW5zY2VpdmVycywgc2VuZGVycyBh
bmQgcmVjZWl2ZXJzIHNob3VsZCBkaXNhcHBlYXIgYWZ0ZXIgb2ZmZXIvYW5zd2VyJyk7CisKK3By
b21pc2VfdGVzdChhc3luYyAodCkgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRk
X2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5j
bG9zZSgpKTsKKyAgcGMxLmFkZFRyYW5zY2VpdmVyKCJhdWRpbyIpOworICBhd2FpdCBleGNoYW5n
ZU9mZmVyQW5zd2VyKHBjMSwgcGMyKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2
ZXJzKCkubGVuZ3RoLCAxKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCku
bGVuZ3RoLCAxKTsKKyAgcGMxVHJhbnNjZWl2ZXIgPSBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF07
CisgIHBjMlRyYW5zY2VpdmVyID0gcGMyLmdldFRyYW5zY2VpdmVycygpWzBdOworICBwYzEuZ2V0
VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOworICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBj
MSwgcGMyKTsKKyAgYXNzZXJ0X2VxdWFscygnc3RvcHBlZCcsIHBjMVRyYW5zY2VpdmVyLmRpcmVj
dGlvbik7CisgIGFzc2VydF9lcXVhbHMoJ3N0b3BwZWQnLCBwYzJUcmFuc2NlaXZlci5kaXJlY3Rp
b24pOworfSwgJ0lmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCwgdHJhbnNjZWl2ZXJzIHNob3Vs
ZCBlbmQgdXAgaW4gc3RhdGUgc3RvcHBlZCcpOworCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRy
YW5zY2VpdmVyLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5odHRwcy5odG1sCmluZGV4IDQ4Nzc3
NDk4MjI5ODM3NmI3Y2UyN2EyY2JmYWVhN2FkM2M3MTZlMjguLmM5ZGNlNDVkNzM4ODRiY2U3NGYx
NjRiYTMwNmNlNjdiY2M3MzkyMDUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbApAQCAtMTk5LDcgKzE5OSw2IEBACiAgICAgICAg
ICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAg
ICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAg
ICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogInZp
ZGVvIiwgcmVhZHlTdGF0ZTogImxpdmUiLCBtdXRlZDogdHJ1ZX19LApAQCAtMjA3LDcgKzIwNiw2
IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIG1pZDogbnVs
bCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6
IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogICB9OwpAQCAtMjMyLDcgKzIzMCw2IEBACiAg
ICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAg
ICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNl
CiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7a2lu
ZDogInZpZGVvIn19LApAQCAtMjQwLDcgKzIzNyw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAi
c2VuZHJlY3YiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0
aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0p
OwogICB9OwpAQCAtMjY1LDcgKzI2MSw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJl
Y3YiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBu
dWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAg
ICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogInZpZGVvIn19LApAQCAtMjczLDcgKzI2
OCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIG1pZDog
bnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3Bw
ZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogICB9OwpAQCAtMjkzLDcgKzI4Nyw2IEBA
CiAgICAgICAgICAgZGlyZWN0aW9uOiAicmVjdm9ubHkiLAogICAgICAgICAgIG1pZDogbnVsbCwK
ICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZh
bHNlCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7
a2luZDogInZpZGVvIn19LApAQCAtMzAxLDcgKzI5NCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9u
OiAicmVjdm9ubHkiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGly
ZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAg
IF0pOwogICB9OwpAQCAtMzM2LDcgKzMyOCw2IEBACiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6
IG51bGx9LAogICAgICAgICAgIGRpcmVjdGlvbjogInJlY3Zvbmx5IiwKICAgICAgICAgICBjdXJy
ZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0K
ICAgICAgIF0pOwogICB9OwpAQCAtMzY1LDcgKzM1Niw2IEBACiAgICAgICAgICAgLy8gcnRjd2Vi
LWpzZXAgc2F5cyB0aGlzIGlzIHJlY3Zvbmx5LCB3M2Mtd2VicnRjIGRvZXMgbm90Li4uCiAgICAg
ICAgICAgZGlyZWN0aW9uOiAicmVjdm9ubHkiLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246
IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAg
IH07CkBAIC00MjUsNiArNDE1LDcgQEAKIAogICAgIC8vIFJlbW92ZSBtaWQgYXR0cgogICAgIG9m
ZmVyLnNkcCA9IG9mZmVyLnNkcC5yZXBsYWNlKCJhPW1pZDoiLCAiYT11bmtub3duYXR0cjoiKTsK
KyAgICBvZmZlci5zZHAgPSBvZmZlci5zZHAucmVwbGFjZSgiYT1ncm91cDoiLCAiYT11bmtub3du
YXR0cjoiKTsKICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOwogCiAg
ICAgaGFzUHJvcHNBbmRVbmlxdWVNaWRzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwKQEAgLTQzNCw3
ICs0MjUsNiBAQAogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiBudWxsfSwKICAgICAgICAgICBk
aXJlY3Rpb246ICJyZWN2b25seSIsCiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwK
LSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtNDY1
LDcgKzQ1NSw2IEBACiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IHtraW5kOiAiYXVkaW8ifX0s
CiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIGN1cnJlbnREaXJl
Y3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAg
XSk7CiAKQEAgLTQ4NSw3ICs0NzQsNiBAQAogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiB7a2lu
ZDogImF1ZGlvIn19LAogICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAg
ICBjdXJyZW50RGlyZWN0aW9uOiAic2VuZG9ubHkiLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNl
LAogICAgICAgICAgIG1pZDogbGFzdE1pZAogICAgICAgICB9CiAgICAgICBdKTsKQEAgLTQ5OSw3
ICs0ODcsNiBAQAogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAog
ICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgICBjdXJyZW50RGlyZWN0
aW9uOiAic2VuZG9ubHkiLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlLAogICAgICAgICAgIG1p
ZDogbGFzdE1pZAogICAgICAgICB9CiAgICAgICBdKTsKQEAgLTEyNDgsMTkgKzEyMzUsMTcgQEAK
ICAgICAgIHN0b3BwZWRUcmFuc2NlaXZlci5yZWNlaXZlci50cmFjay5vbmVuZGVkID0gcmVzb2x2
ZTsKICAgICB9KTsKICAgICBzdG9wcGVkVHJhbnNjZWl2ZXIuc3RvcCgpOwotICAgIGFzc2VydF9l
cXVhbHMocGMxLmdldFJlY2VpdmVycygpLmxlbmd0aCwgMCwgJ2dldFJlY2VpdmVycyBkb2VzIG5v
dCBleHBvc2UgYSByZWNlaXZlciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2ZXInKTsKLSAgICBhc3Nl
cnRfZXF1YWxzKHBjMS5nZXRTZW5kZXJzKCkubGVuZ3RoLCAwLCAnZ2V0U2VuZGVycyBkb2VzIG5v
dCBleHBvc2UgYSBzZW5kZXIgb2YgYSBzdG9wcGVkIHRyYW5zY2VpdmVyJyk7Ci0KKyAgICBhc3Nl
cnRfZXF1YWxzKHBjMS5nZXRSZWNlaXZlcnMoKS5sZW5ndGgsIDEsICdnZXRSZWNlaXZlcnMgZXhw
b3NlcyBhIHJlY2VpdmVyIG9mIGEgc3RvcHBlZCB0cmFuc2NlaXZlciBiZWZvcmUgbmVnb3RpYXRp
b24nKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRTZW5kZXJzKCkubGVuZ3RoLCAxLCAnZ2V0
U2VuZGVycyBleHBvc2VzIGEgc2VuZGVyIG9mIGEgc3RvcHBlZCB0cmFuc2NlaXZlciBiZWZvcmUg
bmVnb3RpYXRpb24nKTsKICAgICBhd2FpdCBvbmVuZGVkOwotCisgICAgLy8gVGhlIHRyYW5zY2Vp
dmVyIGhhcyBbW3N0b3BwaW5nXV0gPSB0cnVlLCBbW3N0b3BwZWRdXSA9IGZhbHNlCiAgICAgaGFz
UHJvcHNBbmRVbmlxdWVNaWRzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKSwKICAgICAgIFsKICAgICAg
ICAgewogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAogICAgICAg
ICAgIHJlY2VpdmVyOiB7dHJhY2s6IHtraW5kOiAiYXVkaW8iLCByZWFkeVN0YXRlOiAiZW5kZWQi
fX0sCi0gICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKLSAgICAgICAgICBjdXJyZW50RGlyZWN0aW9u
OiBudWxsLAotICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IgorICAgICAgICAgIGN1cnJl
bnREaXJlY3Rpb246ICJzZW5kcmVjdiIsCisgICAgICAgICAgZGlyZWN0aW9uOiAic3RvcHBlZCIK
ICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTEyODcsMjkgKzEyNzIsMzggQEAKICAgICBvZmZl
ciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOwogICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2Ny
aXB0aW9uKG9mZmVyKTsKIAotICAgIHN0b3BwZWRUcmFuc2NlaXZlciA9IHBjMi5nZXRUcmFuc2Nl
aXZlcnMoKVswXTsKKyAgICBjb25zdCBzdG9wcGVkQ2FsbGVlVHJhbnNjZWl2ZXIgPSBwYzIuZ2V0
VHJhbnNjZWl2ZXJzKClbMF07CiAgICAgb25lbmRlZCA9IG5ldyBQcm9taXNlKHJlc29sdmUgPT4g
ewotICAgICAgc3RvcHBlZFRyYW5zY2VpdmVyLnJlY2VpdmVyLnRyYWNrLm9uZW5kZWQgPSByZXNv
bHZlOworICAgICAgc3RvcHBlZENhbGxlZVRyYW5zY2VpdmVyLnJlY2VpdmVyLnRyYWNrLm9uZW5k
ZWQgPSByZXNvbHZlOwogICAgIH0pOwogCiAgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0
aW9uKG9mZmVyKTsKIAogICAgIGF3YWl0IG9uZW5kZWQ7Ci0KKyAgICAvLyBwYzIncyB0cmFuc2Nl
aXZlciB3YXMgc3RvcHBlZCByZW1vdGVseS4KKyAgICAvLyBUaGUgdHJhY2sgZW5kcyB3aGVuIHNl
dFJlbWVvdGVEZXNjcmlwdGlvbihvZmZlcikgaXMgc2V0LgogICAgIGhhc1Byb3BzKHBjMi5nZXRU
cmFuc2NlaXZlcnMoKSwKICAgICAgIFsKICAgICAgICAgewogICAgICAgICAgIHNlbmRlcjoge3Ry
YWNrOiB7a2luZDogImF1ZGlvIn19LAogICAgICAgICAgIHJlY2VpdmVyOiB7dHJhY2s6IHtraW5k
OiAiYXVkaW8iLCByZWFkeVN0YXRlOiAiZW5kZWQifX0sCi0gICAgICAgICAgc3RvcHBlZDogdHJ1
ZSwKLSAgICAgICAgICBtaWQ6IG51bGwsCi0gICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVs
bCwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAic3RvcHBlZCIsCiAgICAgICAgICAgZGly
ZWN0aW9uOiAic2VuZHJlY3YiCiAgICAgICAgIH0KICAgICAgIF0pOworICAgIC8vIEFmdGVyIHNl
dExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKSwgdGhlIHRyYW5zY2VpdmVyIGhhcworICAgIC8vIFtb
c3RvcHBpbmddXSA9IHRydWUsIFtbc3RvcHBlZF1dID0gdHJ1ZSwgYW5kIGlzIHJlbW92ZWQgZnJv
bSBwYzIuCisgICAgY29uc3Qgc3RvcHBpbmdBbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2Vy
KCk7CisgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oc3RvcHBpbmdBbnN3ZXIpOwor
ICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMCk7CisgICAg
YXNzZXJ0X2VxdWFscyhwYzIuZ2V0UmVjZWl2ZXJzKCkubGVuZ3RoLCAwLCAnZ2V0UmVjZWl2ZXJz
IGRvZXMgbm90IGV4cG9zZSBhIHJlY2VpdmVyIG9mIGEgc3RvcHBlZCB0cmFuc2NlaXZlciBhZnRl
ciBuZWdvdGlhdGlvbicpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFNlbmRlcnMoKS5sZW5n
dGgsIDAsICdnZXRTZW5kZXJzIGRvZXMgbm90IGV4cG9zZSBhIHNlbmRlciBvZiBhIHN0b3BwZWQg
dHJhbnNjZWl2ZXIgYWZ0ZXIgbmVnb3RpYXRpb24nKTsKIAogICAgIC8vIFNob3VsZG4ndCB0aHJv
dyBlaXRoZXIKICAgICBzdG9wcGVkVHJhbnNjZWl2ZXIuc3RvcCgpOworICAgIGF3YWl0IHBjMS5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihzdG9wcGluZ0Fuc3dlcik7CisgICAgYXNzZXJ0X2VxdWFscyhw
YzEuZ2V0UmVjZWl2ZXJzKCkubGVuZ3RoLCAwLCAnZ2V0UmVjZWl2ZXJzIGRvZXMgbm90IGV4cG9z
ZSBhIHJlY2VpdmVyIG9mIGEgc3RvcHBlZCB0cmFuc2NlaXZlciBhZnRlciBuZWdvdGlhdGlvbicp
OworICAgIGFzc2VydF9lcXVhbHMocGMxLmdldFNlbmRlcnMoKS5sZW5ndGgsIDAsICdnZXRTZW5k
ZXJzIGRvZXMgbm90IGV4cG9zZSBhIHNlbmRlciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2ZXIgYWZ0
ZXIgbmVnb3RpYXRpb24nKTsKIAogICAgIHBjMS5jbG9zZSgpOwogICAgIHBjMi5jbG9zZSgpOwpA
QCAtMTMzNCwxMyArMTMyOCwxNCBAQAogCiAgICAgbGV0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0
ZU9mZmVyKCk7CiAKLSAgICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOwotCisgICAg
Y29uc3QgdHJhbnNjZWl2ZXJUaGF0V2FzU3RvcHBlZCA9IHBjMS5nZXRUcmFuc2NlaXZlcnMoKVsw
XTsKKyAgICB0cmFuc2NlaXZlclRoYXRXYXNTdG9wcGVkLnN0b3AoKTsKICAgICBhd2FpdCBwYzIu
c2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpCiAgICAgdHJpY2tsZSh0LCBwYzEsIHBjMik7CiAg
ICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOwogCiAgICAgbGV0IGFuc3dl
ciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRl
ZEF3YWl0ZXIgPSBuZWdvdGlhdGlvbk5lZWRlZChwYzEpOwogICAgIGNvbnN0IHRyYWNrRXZlbnRz
ID0gYXdhaXQgc2V0UmVtb3RlRGVzY3JpcHRpb25SZXR1cm5UcmFja0V2ZW50cyhwYzEsIGFuc3dl
cik7CiAgICAgLy8gU3BlYyBsYW5ndWFnZSBkb2Vzbid0IHNheSBhbnl0aGluZyBhYm91dCBjaGVj
a2luZyB3aGV0aGVyIHRoZSB0cmFuc2NlaXZlcgogICAgIC8vIGlzIHN0b3BwZWQgaGVyZS4KQEAg
LTEzNTIsMTYgKzEzNDcsMjAgQEAKICAgICAgICAgfQogICAgICAgXSk7CiAKKyAgICBhc3NlcnRf
ZXF1YWxzKHRyYW5zY2VpdmVyVGhhdFdhc1N0b3BwZWQsIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVsw
XSk7CisgICAgLy8gVGhlIHRyYW5zY2VpdmVyIHNob3VsZCBzdGlsbCBiZSBbW3N0b3BwaW5nXV09
dHJ1ZSwgW1tzdG9wcGVkXV09ZmFsc2UuCiAgICAgaGFzUHJvcHNBbmRVbmlxdWVNaWRzKHBjMS5n
ZXRUcmFuc2NlaXZlcnMoKSwKICAgICAgIFsKICAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6
IHRydWUsCisgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogInNlbmRyZWN2IiwKKyAgICAgICAg
ICBkaXJlY3Rpb246ICJzdG9wcGVkIgogICAgICAgICB9CiAgICAgICBdKTsKIAotICAgIGF3YWl0
IG5lZ290aWF0aW9uTmVlZGVkKHBjMSk7CisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRBd2Fp
dGVyOwogCiAgICAgdHJpY2tsZSh0LCBwYzIsIHBjMSk7CisKICAgICBhd2FpdCBwYzIuc2V0TG9j
YWxEZXNjcmlwdGlvbihhbnN3ZXIpOwogCiAgICAgYXdhaXQgaWNlQ29ubmVjdGVkKHBjMSk7CkBA
IC0xMzczLDIyICsxMzcyLDggQEAKICAgICBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2Vy
KCk7CiAgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKICAgICBhd2Fp
dCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKLQotICAgIGhhc1Byb3BzKHBjMS5n
ZXRUcmFuc2NlaXZlcnMoKSwKLSAgICAgIFsKLSAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6
IHRydWUsCi0gICAgICAgICAgbWlkOiBudWxsCi0gICAgICAgIH0KLSAgICAgIF0pOwotCi0gICAg
aGFzUHJvcHMocGMyLmdldFRyYW5zY2VpdmVycygpLAotICAgICAgWwotICAgICAgICB7Ci0gICAg
ICAgICAgc3RvcHBlZDogdHJ1ZSwKLSAgICAgICAgICBtaWQ6IG51bGwKLSAgICAgICAgfQotICAg
ICAgXSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAw
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDApOwog
ICB9OwogCiAgIGNvbnN0IGNoZWNrU3RvcEFmdGVyU2V0TG9jYWxPZmZlciA9IGFzeW5jIHQgPT4g
ewpAQCAtMTQxMiw2ICsxMzk3LDcgQEAKICAgICBwYzEuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3Rv
cCgpOwogCiAgICAgbGV0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgICBj
b25zdCBuZWdvdGlhdGlvbk5lZWRlZEF3YWl0ZXIgPSBuZWdvdGlhdGlvbk5lZWRlZChwYzEpOwog
ICAgIGNvbnN0IHRyYWNrRXZlbnRzID0gYXdhaXQgc2V0UmVtb3RlRGVzY3JpcHRpb25SZXR1cm5U
cmFja0V2ZW50cyhwYzEsIGFuc3dlcik7CiAgICAgLy8gU3BlYyBsYW5ndWFnZSBkb2Vzbid0IHNh
eSBhbnl0aGluZyBhYm91dCBjaGVja2luZyB3aGV0aGVyIHRoZSB0cmFuc2NlaXZlcgogICAgIC8v
IGlzIHN0b3BwZWQgaGVyZS4KQEAgLTE0MjYsMTAgKzE0MTIsMTEgQEAKICAgICBoYXNQcm9wc0Fu
ZFVuaXF1ZU1pZHMocGMxLmdldFRyYW5zY2VpdmVycygpLAogICAgICAgWwogICAgICAgICB7Ci0g
ICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKKyAgICAgICAgICBkaXJlY3Rpb246ICJzdG9wcGVkIiwK
KyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAic2VuZHJlY3YiCiAgICAgICAgIH0KICAgICAg
IF0pOwotICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkKHBjMSk7CisgICAgYXdhaXQgbmVnb3Rp
YXRpb25OZWVkZWRBd2FpdGVyOwogCiAgICAgdHJpY2tsZSh0LCBwYzIsIHBjMSk7CiAgICAgYXdh
aXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKQEAgLTE0NDQsMjEgKzE0MzEsOCBA
QAogICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CiAgICAgYXdhaXQg
cGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CiAKLSAgICBoYXNQcm9wcyhwYzEuZ2V0
VHJhbnNjZWl2ZXJzKCksCi0gICAgICBbCi0gICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0
cnVlLAotICAgICAgICAgIG1pZDogbnVsbAotICAgICAgICB9Ci0gICAgICBdKTsKLQotICAgIGhh
c1Byb3BzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwKLSAgICAgIFsKLSAgICAgICAgewotICAgICAg
ICAgIHN0b3BwZWQ6IHRydWUsCi0gICAgICAgICAgbWlkOiBudWxsCi0gICAgICAgIH0KLSAgICAg
IF0pOworICAgIGFzc2VydF9lcXVhbHMocGMxLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMCk7
CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwKTsKICAg
fTsKIAogICBjb25zdCBjaGVja1N0b3BBZnRlclNldFJlbW90ZU9mZmVyID0gYXN5bmMgdCA9PiB7
CkBAIC0xNDc4LDIyICsxNDUyLDM1IEBACiAgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0
aW9uKG9mZmVyKQogICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKIAot
ICAgIC8vIFN0b3Agb24gX2Fuc3dlcmVyX3NpZGUgbm93LiBTaG91bGQgdGFrZSBlZmZlY3QgaW4g
YW5zd2VyLgorICAgIC8vIFN0b3Agb24gX2Fuc3dlcmVyXyBzaWRlIG5vdy4gU2hvdWxkIG5vdCBz
dG9wIHRyYW5zY2VpdmVyIGluIGFuc3dlciwKKyAgICAvLyBidXQgY2F1c2UgZmlyaW5nIG9mIG5l
Z290aWF0aW9uTmVlZGVkIGF0IHBjMiwgYW5kIGRpc2FibGluZworICAgIC8vIG9mIHRoZSB0cmFu
c2NlaXZlciB3aXRoIGRpcmVjdGlvbiA9IGluYWN0aXZlIGluIGFuc3dlci4KICAgICBwYzIuZ2V0
VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5z
Y2VpdmVycygpWzBdLmRpcmVjdGlvbiwgJ3N0b3BwZWQnKTsKIAogICAgIGNvbnN0IGFuc3dlciA9
IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKICAgICBjb25zdCB0cmFja0V2ZW50cyA9IGF3YWl0
IHNldFJlbW90ZURlc2NyaXB0aW9uUmV0dXJuVHJhY2tFdmVudHMocGMxLCBhbnN3ZXIpOwogICAg
IGhhc1Byb3BzKHRyYWNrRXZlbnRzLCBbXSk7CiAKLSAgICBoYXNQcm9wcyhwYzEuZ2V0VHJhbnNj
ZWl2ZXJzKCksCisgICAgaGFzUHJvcHMocGMyLmdldFRyYW5zY2VpdmVycygpLAogICAgICAgWwog
ICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKLSAgICAgICAgICBtaWQ6IG51bGwK
KyAgICAgICAgICBkaXJlY3Rpb246ICJzdG9wcGVkIiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0
aW9uOiBudWxsLAogICAgICAgICB9CiAgICAgICBdKTsKIAorICAgIGNvbnN0IG5lZ290aWF0aW9u
TmVlZGVkQXdhaXRlciA9IG5lZ290aWF0aW9uTmVlZGVkKHBjMik7CiAgICAgYXdhaXQgcGMyLnNl
dExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgICBoYXNQcm9wcyhwYzIuZ2V0VHJhbnNjZWl2
ZXJzKCksCisgICAgICBbCisgICAgICAgIHsKKyAgICAgICAgICBkaXJlY3Rpb246ICJzdG9wcGVk
IiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAiaW5hY3RpdmUiLAorICAgICAgICB9Cisg
ICAgICBdKTsKKworICAgIGF3YWl0IG5lZ290aWF0aW9uTmVlZGVkQXdhaXRlcjsKICAgfTsKIAog
ICBjb25zdCBjaGVja1N0b3BBZnRlckNyZWF0ZUFuc3dlciA9IGFzeW5jIHQgPT4gewpAQCAtMTUz
MSwxNCArMTUxOCwyNSBAQAogICAgIGhhc1Byb3BzQW5kVW5pcXVlTWlkcyhwYzIuZ2V0VHJhbnNj
ZWl2ZXJzKCksCiAgICAgICBbCiAgICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAor
ICAgICAgICAgIGRpcmVjdGlvbjogInN0b3BwZWQiLAorICAgICAgICAgIGN1cnJlbnREaXJlY3Rp
b246IG51bGwsCiAgICAgICAgIH0KICAgICAgIF0pOwogCiAgICAgdHJpY2tsZSh0LCBwYzIsIHBj
MSk7CisgICAgLy8gVGhlIG5lZ290aWF0aW9ubmVlZGVkIGV2ZW50IGlzIGZpcmVkIGR1cmluZyBw
cm9jZXNzaW5nIG9mCisgICAgLy8gc2V0TG9jYWxEZXNjcmlwdGlvbigpCisgICAgY29uc3QgbmVn
b3RpYXRpb25OZWVkZWRBd2FpdGVyID0gbmVnb3RpYXRpb25OZWVkZWQocGMyKTsKICAgICBhd2Fp
dCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICAgIGhhc1Byb3BzQW5kVW5pcXVl
TWlkcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCksCisgICAgICBbCisgICAgICAgIHsKKyAgICAgICAg
ICBkaXJlY3Rpb246ICJzdG9wcGVkIiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAic2Vu
ZHJlY3YiLAorICAgICAgICB9CisgICAgICBdKTsKIAotICAgIGF3YWl0IG5lZ290aWF0aW9uTmVl
ZGVkKHBjMik7CisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRBd2FpdGVyOwogICAgIGF3YWl0
IGljZUNvbm5lY3RlZChwYzEpOwogICAgIGF3YWl0IGljZUNvbm5lY3RlZChwYzIpOwogCkBAIC0x
NTQ5LDE5ICsxNTQ3LDIyIEBACiAgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5z
d2VyKTsKICAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKIAorICAg
IC8vIFNpbmNlIHRoaXMgb2ZmZXIvYW5zd2VyIGV4Y2hhbmdlIHdhcyBpbml0aWF0ZWQgZnJvbSBw
YzEsCisgICAgLy8gcGMyIHN0aWxsIGRvZXNuJ3QgZ2V0IHRvIHNheSB0aGF0IGl0IGhhcyBhIHN0
b3BwZWQgdHJhbnNjZWl2ZXIsCisgICAgLy8gYnV0IGRvZXMgZ2V0IHRvIHNldCBpdCB0byBpbmFj
dGl2ZS4KICAgICBoYXNQcm9wcyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCksCiAgICAgICBbCiAgICAg
ICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAotICAgICAgICAgIG1pZDogbnVsbAorICAg
ICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9u
OiAiaW5hY3RpdmUiLAogICAgICAgICB9CiAgICAgICBdKTsKIAogICAgIGhhc1Byb3BzKHBjMi5n
ZXRUcmFuc2NlaXZlcnMoKSwKICAgICAgIFsKICAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6
IHRydWUsCi0gICAgICAgICAgbWlkOiBudWxsCisgICAgICAgICAgZGlyZWN0aW9uOiAic3RvcHBl
ZCIsCisgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogImluYWN0aXZlIiwKICAgICAgICAgfQog
ICAgICAgXSk7CiAgIH07CkBAIC0xNjA0LDcgKzE2MDUsOCBAQAogICAgIGhhc1Byb3BzQW5kVW5p
cXVlTWlkcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCksCiAgICAgICBbCiAgICAgICAgIHsKLSAgICAg
ICAgICBzdG9wcGVkOiB0cnVlLAorICAgICAgICAgIGRpcmVjdGlvbjogInN0b3BwZWQiLAorICAg
ICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgIH0KICAgICAgIF0p
OwogCkBAIC0xNjEyLDI4ICsxNjE0LDE3IEBACiAgICAgYXdhaXQgaWNlQ29ubmVjdGVkKHBjMSk7
CiAgICAgYXdhaXQgaWNlQ29ubmVjdGVkKHBjMik7CiAKLSAgICBvZmZlciA9IGF3YWl0IHBjMS5j
cmVhdGVPZmZlcigpOwotICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsK
LSAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOwotICAgIGFuc3dlciA9
IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKLSAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlw
dGlvbihhbnN3ZXIpOwotICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIp
OwotCi0gICAgaGFzUHJvcHMocGMxLmdldFRyYW5zY2VpdmVycygpLAotICAgICAgWwotICAgICAg
ICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKLSAgICAgICAgICBtaWQ6IG51bGwKLSAgICAg
ICAgfQotICAgICAgXSk7CisgICAgLy8gSW5pdGlhdGUgYW4gb2ZmZXIvYW5zd2VyIGV4Y2hhbmdl
IGZyb20gcGMyIGluIG9yZGVyCisgICAgLy8gdG8gbmVnb3RpYXRlIHRoZSBzdG9wcGVkIHRyYW5z
Y2VpdmVyLgorICAgIG9mZmVyID0gYXdhaXQgcGMyLmNyZWF0ZU9mZmVyKCk7CisgICAgYXdhaXQg
cGMyLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVE
ZXNjcmlwdGlvbihvZmZlcik7CisgICAgYW5zd2VyID0gYXdhaXQgcGMxLmNyZWF0ZUFuc3dlcigp
OworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgICAgYXdhaXQg
cGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7CiAKLSAgICBoYXNQcm9wcyhwYzIuZ2V0
VHJhbnNjZWl2ZXJzKCksCi0gICAgICBbCi0gICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0
cnVlLAotICAgICAgICAgIG1pZDogbnVsbAotICAgICAgICB9Ci0gICAgICBdKTsKKyAgICBhc3Nl
cnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDApOworICAgIGFzc2VydF9l
cXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMCk7CiAgIH07CiAKICAgY29uc3Qg
Y2hlY2tTdG9wQWZ0ZXJDbG9zZSA9IGFzeW5jIHQgPT4gewpAQCAtMTY4MCw3ICsxNjcxLDYgQEAK
ICAgICAgICAgICBzZW5kZXI6IHt0cmFja30sCiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJl
Y3YiLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBl
ZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTE3MDAsNyArMTY5MCw2IEBACiAg
ICAgICAgICAgZGlyZWN0aW9uOiAic2VuZG9ubHkiLAogICAgICAgICAgIG1pZDogbnVsbCwKICAg
ICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNl
CiAgICAgICAgIH0KICAgICAgIF0pOwogCkBAIC0xNzEwLDcgKzE2OTksMTEgQEAKICAgICBwYy5n
ZXRUcmFuc2NlaXZlcnMoKVswXS5zdG9wKCk7CiAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlw
dGlvbih7dHlwZTogInJvbGxiYWNrIn0pOwogCi0gICAgaGFzUHJvcHMocGMuZ2V0VHJhbnNjZWl2
ZXJzKCksIFt7IHN0b3BwZWQ6IHRydWUgfV0pOworICAgIGhhc1Byb3BzKHBjLmdldFRyYW5zY2Vp
dmVycygpLCBbCisgICAgICB7CisgICAgICAgIGRpcmVjdGlvbjogInN0b3BwZWQiLAorICAgICAg
fQorICAgIF0pOwogICB9OwogCiAgIGNvbnN0IGNoZWNrUm9sbGJhY2tBbmRTZXRSZW1vdGVPZmZl
cldpdGhEaWZmZXJlbnRUeXBlID0gYXN5bmMgdCA9PiB7CkBAIC0xNzQxLDcgKzE3MzQsNiBAQAog
ICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgICBtaWQ6IG51bGwsCiAg
ICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxz
ZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMTc1Myw3ICsxNzQ1LDYgQEAKICAgICAgICAg
ICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICAg
IGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAg
ICAgfQogICAgICAgXSk7CiAKQEAgLTE3NjcsMTQgKzE3NTgsMTIgQEAKICAgICAgICAgICBkaXJl
Y3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJl
bnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfSwK
ICAgICAgICAgewogICAgICAgICAgIHJlY2VpdmVyOiB7dHJhY2s6IHtraW5kOiAidmlkZW8ifX0s
CiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IG51bGx9LAogICAgICAgICAgIGRpcmVjdGlvbjog
InJlY3Zvbmx5IiwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAicmVjdm9ubHkiLAotICAg
ICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogCkBAIC0xNzg1LDcg
KzE3NzQsNiBAQAogICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiB2aWRlb1RyYWNrfSwKICAgICAg
ICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjog
InNlbmRvbmx5IiwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQogICAgICAgICB9CiAgICAgICBd
KTsKIApAQCAtMTgyMCw3ICsxODA4LDYgQEAKIAogICAgIGhhc1Byb3BzKHJlbW92ZWRUcmFuc2Nl
aXZlciwKICAgICAgIHsKLSAgICAgICAgc3RvcHBlZDogdHJ1ZSwKICAgICAgICAgbWlkOiBudWxs
LAogICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsCiAgICAgICB9CkBAIC0xODMxLDcgKzE4
MTgsNiBAQAogICAgIGhhc1Byb3BzKHJlbW92ZWRUcmFuc2NlaXZlciwKICAgICAgIHsKICAgICAg
ICAgcmVjZWl2ZXI6IHt0cmFjazoge3JlYWR5U3RhdGU6ICJlbmRlZCJ9fSwKLSAgICAgICAgc3Rv
cHBlZDogdHJ1ZSwKICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICBjdXJyZW50RGlyZWN0aW9u
OiBudWxsCiAgICAgICB9CkBAIC0xODQ2LDcgKzE4MzIsNiBAQAogICAgICAgICAgIHNlbmRlcjog
e3RyYWNrOiBudWxsfSwKICAgICAgICAgICBkaXJlY3Rpb246ICJyZWN2b25seSIsCiAgICAgICAg
ICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQogICAg
ICAgICB9CiAgICAgICBdKTsKIApAQCAtMTg2Niw3ICsxODUxLDYgQEAKICAgICAgICAgICBkaXJl
Y3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgICAgbWlkOiBtaWQwLAogICAgICAgICAgIGN1cnJl
bnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQog
ICAgICAgXSk7CiAKQEAgLTE4ODYsNyArMTg3MCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAi
cmVjdm9ubHkiLAogICAgICAgICAgIG1pZDogbWlkMCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0
aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0p
OwogCkBAIC0xOTAwLDcgKzE4ODMsNiBAQAogICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2
IiwKICAgICAgICAgICBtaWQ6IG1pZDAsCiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVs
bCwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAt
MTkxNCw3ICsxODk2LDYgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAg
ICAgICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAg
ICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTE5MjMsNiAr
MTkwNCw4IEBACiAKICAgICAvLyBBZnRlciBhbGwgdGhpcyBTUkQvcm9sbGJhY2ssIHdlIHNob3Vs
ZCBzdGlsbCBnZXQgdGhlIHRyYWNrIGV2ZW50CiAgICAgbGV0IHRyYWNrRXZlbnRzID0gYXdhaXQg
c2V0UmVtb3RlRGVzY3JpcHRpb25SZXR1cm5UcmFja0V2ZW50cyhwYzIsIG9mZmVyKTsKKworICAg
IGFzc2VydF9lcXVhbHModHJhY2tFdmVudHMubGVuZ3RoLCAxKTsKICAgICBoYXNQcm9wcyh0cmFj
a0V2ZW50cywKICAgICAgIFsKICAgICAgICAgewpAQCAtMTkzNiw2ICsxOTE5LDcgQEAKIAogICAg
IC8vIE1ha2Ugc3VyZSBhbGwgdGhpcyByb2xsYmFjayBoYXNuJ3QgbWVzc2VkIHVwIHRoZSBzaWdu
YWxpbmcKICAgICB0cmFja0V2ZW50cyA9IGF3YWl0IHNldFJlbW90ZURlc2NyaXB0aW9uUmV0dXJu
VHJhY2tFdmVudHMocGMxLCBhbnN3ZXIpOworICAgIGFzc2VydF9lcXVhbHModHJhY2tFdmVudHMu
bGVuZ3RoLCAxKTsKICAgICBoYXNQcm9wcyh0cmFja0V2ZW50cywKICAgICAgIFsKICAgICAgICAg
ewpAQCAtMTk1MSw3ICsxOTM1LDYgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIs
CiAgICAgICAgICAgbWlkOiBtaWQwLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJzZW5k
cmVjdiIsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAK
QEAgLTE5NjYsNiArMTk0OSw4IEBACiAKICAgICB0cmFja0V2ZW50cyA9CiAgICAgICBhd2FpdCBz
ZXRSZW1vdGVEZXNjcmlwdGlvblJldHVyblRyYWNrRXZlbnRzKHBjMiwge3R5cGU6ICJyb2xsYmFj
ayJ9KTsKKworICAgIGFzc2VydF9lcXVhbHModHJhY2tFdmVudHMubGVuZ3RoLCAxLCAndHJhY2sg
ZXZlbnQgZnJvbSByZW1vdGUgcm9sbGJhY2snKTsKICAgICBoYXNQcm9wcyh0cmFja0V2ZW50cywK
ICAgICAgIFsKICAgICAgICAgewpAQCAtMTk4NywyMSArMTk3MiwyMCBAQAogICAgICAgICAgIGRp
cmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgICBtaWQ6IG51bGwsCiAgICAgICAgICAgY3Vy
cmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlCiAgICAgICAgIH0K
ICAgICAgIF0pOwogCiAgICAgLy8gc3RvcCgpIGNhbm5vdCBiZSByb2xsZWQgYmFjayEKKyAgICAv
LyBUcmFuc2NlaXZlciBzaG91bGQgaGF2ZSBbW3N0b3BwaW5nXV09dHJ1ZSwgW1tzdG9wcGVkXV09
ZmFsc2UKICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICJyb2xsYmFj
ayJ9KTsKICAgICBoYXNQcm9wcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCksCiAgICAgICBbCiAgICAg
ICAgIHsKICAgICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAogICAg
ICAgICAgIHNlbmRlcjoge3RyYWNrOiB7a2luZDogImF1ZGlvIn19LAotICAgICAgICAgIGRpcmVj
dGlvbjogInNlbmRyZWN2IiwKKyAgICAgICAgICBkaXJlY3Rpb246ICJzdG9wcGVkIiwKICAgICAg
ICAgICBtaWQ6IG51bGwsCi0gICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAg
ICAgICBzdG9wcGVkOiB0cnVlCisgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogInNlbmRyZWN2
IiwKICAgICAgICAgfQogICAgICAgXSk7CiAgIH07CkBAIC0yMDU5LDcgKzIwNDMsNiBAQAogICAg
ICAgICB7CiAgICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246
IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogdHJ1ZQogICAgICAgICB9CiAgICAgICBdKTsKIApA
QCAtMjA2OCw3ICsyMDUxLDYgQEAKICAgICAgICAgewogICAgICAgICAgIG1pZDogbnVsbCwKICAg
ICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IHRydWUK
ICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTIwODQsNyArMjA2Niw2IEBACiAgICAgaGFzUHJv
cHMocGMxLmdldFRyYW5zY2VpdmVycygpLAogICAgICAgWwogICAgICAgICB7Ci0gICAgICAgICAg
c3RvcHBlZDogdHJ1ZQogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgc2VuZGVyOiB7
dHJhY2s6IHRyYWNrMn0KQEAgLTIxMDAsNyArMjA4MSw2IEBACiAgICAgaGFzUHJvcHMocGMyLmdl
dFRyYW5zY2VpdmVycygpLAogICAgICAgWwogICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDog
dHJ1ZQogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2t9CkBA
IC0yMTc4LDcgKzIxNTgsNiBAQAogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgbWlk
OiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IHRydWUKICAgICAgICAgfSwKICAgICAgICAgewog
ICAgICAgICAgIHNlbmRlcjoge3RyYWNrOiBudWxsfSwKQEAgLTIyMDMsNyArMjE4Miw2IEBACiAg
ICAgICBbCiAgICAgICAgIHt9LAogICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZQog
ICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgbWlkOiBtaWQxLApkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0
cFRyYW5zcG9ydC1jb25zdHJ1Y3Rvci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1jb25zdHJ1Y3Rvci5odG1s
CmluZGV4IDU4Yzg4M2Q1MzM3NzUyZjljZmY4NzI3MjZmNmQ5ODVhNjQ3MjI5Y2EuLjQ4NDk2N2Y3
NmI1YzlkNTI1MDdjNmYyZjY2MmI0MWI0NmZmOTgyZTQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQt
Y29uc3RydWN0b3IuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LWNvbnN0cnVjdG9yLmh0bWwKQEAgLTg2
LDcgKzg2LDcgQEAgZnVuY3Rpb24gdmFsaWRhdGVTY3RwVHJhbnNwb3J0KHNjdHApIHsKICAgYXNz
ZXJ0X2VxdWFscyhzY3RwLnN0YXRlLCAnY29ubmVjdGluZycsICdSVENTY3RwVHJhbnNwb3J0IHNo
b3VsZCBiZSBpbiB0aGUgY29ubmVjdGluZyBzdGF0ZScpOwogCiAgIC8vIE5vdGU6IFllcywgTnVt
YmVyLlBPU0lUSVZFX0lORklOSVRZIGlzIGFsc28gYSAnbnVtYmVyJwotICBhc3NlcnRfdHJ1ZSh0
eXBlb2Ygc2N0cC5tYXhNZXNzYWdlU2l6ZSA9PT0gJ251bWJlcicsCisgIGFzc2VydF9lcXVhbHMo
dHlwZW9mIHNjdHAubWF4TWVzc2FnZVNpemUsICdudW1iZXInLAogICAgICdFeHBlY3Qgc2N0cC5t
YXhNZXNzYWdlU2l6ZSB0byBiZSBhIG51bWJlcicpOwogfQogCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5k
aWRhdGUtZXhjaGFuZ2UuaHR0cHMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdl
Lmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA2NDBkMjViYmZiOWUxMmQzMjEyMzNkMzY2Y2VlOGNm
NjYwY2MxNDg4Li41MWEwYzE3YTU3YzVmYTgwN2QzZWYzOGY1N2FmZDg2NTUzNGVlZTVmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29s
L2NhbmRpZGF0ZS1leGNoYW5nZS5odHRwcy1leHBlY3RlZC50eHQKQEAgLTQsNCArNCw2IEBAIEZB
SUwgQWRkaW5nIG9ubHkgY2FsbGVyIC0+IGNhbGxlZSBjYW5kaWRhdGVzIGdpdmVzIGEgY29ubmVj
dGlvbiBwcm9taXNlX3Rlc3Q6IFVuCiBGQUlMIEFkZGluZyBvbmx5IGNhbGxlZSAtPiBjYWxsZXIg
Y2FuZGlkYXRlcyBnaXZlcyBhIGNvbm5lY3Rpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVq
ZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFu
IG9iamVjdCAoZXZhbHVhdGluZyAncGMyLnNjdHAudHJhbnNwb3J0JykiCiBGQUlMIEFkZGluZyBj
YWxsZWUgLT4gY2FsbGVyIGNhbmRpZGF0ZXMgZnJvbSBlbmQtb2YtY2FuZGlkYXRlcyBnaXZlcyBh
IGNvbm5lY3Rpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6
IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGlu
ZyAncGMyLnNjdHAudHJhbnNwb3J0JykiCiBGQUlMIEV4cGxpY2l0IG9mZmVyL2Fuc3dlciBleGNo
YW5nZSBnaXZlcyBhIGNvbm5lY3Rpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9u
IHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVj
dCAoZXZhbHVhdGluZyAncGMxLnNjdHAudHJhbnNwb3J0JykiCitQQVNTIENhbmRpZGF0ZXMgYWx3
YXlzIGFycml2ZSBhZnRlciBzZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKSByZXNvbHZlcworUEFT
UyBDYW5kaWRhdGVzIGFsd2F5cyBhcnJpdmUgYWZ0ZXIgc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3
ZXIpIHJlc29sdmVzCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2NhbmRpZGF0ZS1leGNoYW5nZS5odHRwcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLmh0bWwKaW5kZXggNTMyYmM0ZDBkMTNk
NzIxNzBmOWU1MjFjYmVkYTdkMmU2NTZlMzE3Zi4uYzU0ZjI2ZTZkODBkZDkwNTZlOGViYzExZGY5
MjliNTFmNjlmODhlYiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLmh0bWwKQEAgLTEwLDIzICsxMCw2
IEBACiA8Ym9keT4KIDxzY3JpcHQ+CiAKLWZ1bmN0aW9uIGljZUdhdGhlcmluZ0NvbXBsZXRlV2Fp
dGVyKHBjKSB7Ci0gIGNvbnN0IHdhaXRlciA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Ci0g
ICAgY29uc3QgZXZlbnRIYW5kbGVyID0gKCkgPT4gewotICAgICAgaWYgKHBjLmljZUdhdGhlcmlu
Z1N0YXRlID09ICdjb21wbGV0ZScpIHsKLSAgICAgICAgcGMucmVtb3ZlRXZlbnRMaXN0ZW5lcign
aWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnLCBldmVudEhhbmRsZXIsIGZhbHNlKTsKLSAgICAgICAg
cmVzb2x2ZSgpOwotICAgICAgfQotICAgIH07Ci0gICAgaWYgKHBjLmljZUdhdGhlcmluZ1N0YXRl
ID09ICdjb21wbGV0ZScpIHsKLSAgICAgIHJlc29sdmUoKTsKLSAgICB9IGVsc2UgewotICAgICAg
cGMuYWRkRXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnLCBldmVudEhhbmRs
ZXIsIGZhbHNlKTsKLSAgICB9Ci0gIH0pOwotICByZXR1cm4gd2FpdGVyOwotfQotCiBjbGFzcyBT
dGF0ZUxvZ2dlciB7CiAgIGNvbnN0cnVjdG9yKHNvdXJjZSwgZXZlbnRuYW1lLCBmaWVsZCkgewog
ICAgIHNvdXJjZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50bmFtZSwgZXZlbnQgPT4gewpAQCAtNzQs
NyArNTcsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIC8vIENhbmRpZGF0ZXMgZnJv
bSBQQzIgYXJlIG5vdCBkZWxpdmVyZWQgdG8gcGMxLCBzbyBwYzEgd2lsbCB1c2UKICAgLy8gcGVl
ci1yZWZsZXhpdmUgY2FuZGlkYXRlcy4KICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEs
IHBjMik7Ci0gIGNvbnN0IHdhaXRlciA9IGljZUdhdGhlcmluZ0NvbXBsZXRlV2FpdGVyKHBjMSk7
CisgIGNvbnN0IHdhaXRlciA9IHdhaXRGb3JJY2VHYXRoZXJpbmdTdGF0ZShwYzEsIFsnY29tcGxl
dGUnXSk7CiAgIGF3YWl0IHdhaXRlcjsKICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgY2FuZGlk
YXRlcykgewogICAgIGlmIChjYW5kaWRhdGUpIHsKQEAgLTEwNSw3ICs4OCw3IEBAIHByb21pc2Vf
dGVzdChhc3luYyB0ID0+IHsKICAgLy8gQ2FuZGlkYXRlcyBmcm9tIHBjMSBhcmUgbm90IGRlbGl2
ZXJlZCB0byBwYzIuICBzbyBwYzIgd2lsbCB1c2UKICAgLy8gcGVlci1yZWZsZXhpdmUgY2FuZGlk
YXRlcy4KICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7Ci0gIGNvbnN0IHdh
aXRlciA9IGljZUdhdGhlcmluZ0NvbXBsZXRlV2FpdGVyKHBjMik7CisgIGNvbnN0IHdhaXRlciA9
IHdhaXRGb3JJY2VHYXRoZXJpbmdTdGF0ZShwYzIsIFsnY29tcGxldGUnXSk7CiAgIGF3YWl0IHdh
aXRlcjsKICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRlcykgewogICAgIGlmIChj
YW5kaWRhdGUpIHsKQEAgLTE3NCw3ICsxNTcsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CiAgIGF3YWl0IFByb21pc2UuYWxsKFtwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlciksCiAg
ICAgICAgICAgICAgICAgICAgICBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpXSk7CiAg
IGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKLSAgYXdhaXQgaWNlR2F0
aGVyaW5nQ29tcGxldGVXYWl0ZXIocGMxKTsKKyAgYXdhaXQgd2FpdEZvckljZUdhdGhlcmluZ1N0
YXRlKHBjMSwgWydjb21wbGV0ZSddKTsKICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24o
YW5zd2VyKS50aGVuKCgpID0+IHsKICAgICBmb3IgKGNvbnN0IGNhbmRpZGF0ZSBvZiBwYzFUb1Bj
MkNhbmRpZGF0ZXMpIHsKICAgICAgIGlmIChjYW5kaWRhdGUpIHsKQEAgLTE4Miw3ICsxNjUsNyBA
QCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgICB9CiAgICAgfQogICB9KTsKLSAgYXdh
aXQgaWNlR2F0aGVyaW5nQ29tcGxldGVXYWl0ZXIocGMyKTsKKyAgYXdhaXQgd2FpdEZvckljZUdh
dGhlcmluZ1N0YXRlKHBjMiwgWydjb21wbGV0ZSddKTsKICAgcGMxLnNldFJlbW90ZURlc2NyaXB0
aW9uKGFuc3dlcikudGhlbihhc3luYyAoKSA9PiB7CiAgICAgZm9yIChjb25zdCBjYW5kaWRhdGUg
b2YgcGMyVG9QYzFDYW5kaWRhdGVzKSB7CiAgICAgICBpZiAoY2FuZGlkYXRlKSB7CkBAIC0yMDMs
NiArMTg2LDMzIEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgYXNzZXJ0X2FycmF5X2Vx
dWFscyhwYzJJY2VTdGF0ZXMuZXZlbnRzLCBbJ25ldycsICdjaGVja2luZycsICdjb25uZWN0ZWQn
XSk7CiB9LCAnRXhwbGljaXQgb2ZmZXIvYW5zd2VyIGV4Y2hhbmdlIGdpdmVzIGEgY29ubmVjdGlv
bicpOwogCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
cGMxLmNyZWF0ZURhdGFDaGFubmVsKCdkYXRhY2hhbm5lbCcpOworICBwYzEub25pY2VjYW5kaWRh
dGUgPSBhc3NlcnRfdW5yZWFjaGVkOworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVP
ZmZlcigpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgIGF3YWl0
IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgIHBjMS5vbmljZWNhbmRpZGF0ZSA9IHJlc29s
dmU7CisgIH0pOworfSwgJ0NhbmRpZGF0ZXMgYWx3YXlzIGFycml2ZSBhZnRlciBzZXRMb2NhbERl
c2NyaXB0aW9uKG9mZmVyKSByZXNvbHZlcycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2Uo
KSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBwYzEuY3JlYXRlRGF0
YUNoYW5uZWwoJ2RhdGFjaGFubmVsJyk7CisgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IGFzc2VydF91
bnJlYWNoZWQ7CisgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3
YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgIGF3YWl0IHBjMi5zZXRMb2Nh
bERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKSk7CisgIGF3YWl0IG5ldyBQcm9t
aXNlKHJlc29sdmUgPT4geworICAgIHBjMi5vbmljZWNhbmRpZGF0ZSA9IHJlc29sdmU7CisgIH0p
OworfSwgJ0NhbmRpZGF0ZXMgYWx3YXlzIGFycml2ZSBhZnRlciBzZXRMb2NhbERlc2NyaXB0aW9u
KGFuc3dlcikgcmVzb2x2ZXMnKTsKKwogPC9zY3JpcHQ+CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2NyeXB0by1zdWl0ZS5odHRw
cy5odG1sCmluZGV4IGYxYjYwNTYxYTE0MGQyMjM4ZjBmMGEyZDc5YjA3NTljNzFkNzU0ODAuLmYx
M2YyMjFiODhkNzFmMDg3YzFmNzA2ZWQ1OTUxYjliNGM2Njk3ZjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2Ny
eXB0by1zdWl0ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2NyeXB0by1zdWl0ZS5odHRwcy5odG1sCkBA
IC00NSw3ICs0NSw3IEBAIGNvbnN0IGFjY2VwdGFibGVWYWx1ZXMgPSB7CiB9OwogCiBmdW5jdGlv
biB2ZXJpZnlTdGF0KG5hbWUsIHRyYW5zcG9ydFN0YXRzKSB7Ci0gIGFzc2VydF90cnVlKHR5cGVv
ZiB0cmFuc3BvcnRTdGF0cyAhPT0gJ3VuZGVmaW5lZCcpOworICBhc3NlcnRfbm90X2VxdWFscyh0
eXBlb2YgdHJhbnNwb3J0U3RhdHMsICd1bmRlZmluZWQnKTsKICAgYXNzZXJ0X3RydWUobmFtZSBp
biB0cmFuc3BvcnRTdGF0cywgJ1ZhbHVlIHByZXNlbnQ6Jyk7CiAgIGFzc2VydF90cnVlKGFjY2Vw
dGFibGVWYWx1ZXNbbmFtZV0uaGFzKHRyYW5zcG9ydFN0YXRzW25hbWVdKSk7CiB9CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9oYW5kb3Zlci1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci1leHBlY3RlZC50eHQK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzI2Njc5MzUzZTJkNGU5Yzk0OTI3YzRhMTY5YTI4M2ExYmExYjlhZgotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQgQEAK
KworUEFTUyBOZWdvdGlhdGlvbiBvZiBoYW5kb3ZlciBpbml0aWF0ZWQgYXQgY2FsbGVyIHdvcmtz
CitQQVNTIE5lZ290aWF0aW9uIG9mIGhhbmRvdmVyIGluaXRpYXRlZCBhdCBjYWxsZWUgd29ya3MK
KwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uMzc4ZDY1ZmZjMzIwYmYwYWM2YTZhMTY2OTBkZDk5MmQwZjVlNTM2ZAotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb3RvY29sL2hhbmRvdmVyLmh0bWwKQEAgLTAsMCArMSw3NCBAQAorPCFkb2N0eXBlIGh0
bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIEhhbmRv
dmVyczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzIj48L3Nj
cmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgY29uc3Qgb2ZmZXJQYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBh
bnN3ZXJQY0ZpcnN0ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IGFuc3dlclBj
U2Vjb25kID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4g
eworICAgIG9mZmVyUGMuY2xvc2UoKTsKKyAgICBhbnN3ZXJQY0ZpcnN0LmNsb3NlKCk7CisgICAg
YW5zd2VyUGNTZWNvbmQuY2xvc2UoKTsKKyAgfSk7CisgIG9mZmVyUGMuYWRkVHJhbnNjZWl2ZXIo
J2F1ZGlvJyk7CisgIC8vIE5lZ290aWF0ZSBjb25uZWN0aW9uIHdpdGggUEMgMQorICBjb25zdCBv
ZmZlcjEgPSBhd2FpdCBvZmZlclBjLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0
TG9jYWxEZXNjcmlwdGlvbihvZmZlcjEpOworICBhd2FpdCBhbnN3ZXJQY0ZpcnN0LnNldFJlbW90
ZURlc2NyaXB0aW9uKG9mZmVyMSk7CisgIGNvbnN0IGFuc3dlcjEgPSBhd2FpdCBhbnN3ZXJQY0Zp
cnN0LmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBvZmZlclBjLnNldFJlbW90ZURlc2NyaXB0aW9u
KGFuc3dlcjEpOworICBhd2FpdCBhbnN3ZXJQY0ZpcnN0LnNldExvY2FsRGVzY3JpcHRpb24oYW5z
d2VyMSk7CisgIC8vIFJlbmVnb3RpYXRlIHdpdGggUEMgMgorICBjb25zdCBvZmZlcjIgPSBhd2Fp
dCBvZmZlclBjLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0TG9jYWxEZXNjcmlw
dGlvbihvZmZlcjIpOworICBhd2FpdCBhbnN3ZXJQY1NlY29uZC5zZXRSZW1vdGVEZXNjcmlwdGlv
bihvZmZlcjIpOworICBjb25zdCBhbnN3ZXIyID0gYXdhaXQgYW5zd2VyUGNTZWNvbmQuY3JlYXRl
QW5zd2VyKCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyMik7
CisgIGF3YWl0IGFuc3dlclBjU2Vjb25kLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyMik7Cit9
LCAnTmVnb3RpYXRpb24gb2YgaGFuZG92ZXIgaW5pdGlhdGVkIGF0IGNhbGxlciB3b3JrcycpOwor
Citwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IG9mZmVyUGMgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgYW5zd2VyUGNGaXJzdCA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICBjb25zdCBhbnN3ZXJQY1NlY29uZCA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHsKKyAgICBvZmZlclBjLmNsb3NlKCk7CisgICAgYW5z
d2VyUGNGaXJzdC5jbG9zZSgpOworICAgIGFuc3dlclBjU2Vjb25kLmNsb3NlKCk7CisgIH0pOwor
ICBvZmZlclBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOworICAvLyBOZWdvdGlhdGUgY29ubmVj
dGlvbiB3aXRoIFBDIDEKKyAgY29uc3Qgb2ZmZXIxID0gYXdhaXQgb2ZmZXJQYy5jcmVhdGVPZmZl
cigpOworICBhd2FpdCBvZmZlclBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIxKTsKKyAgYXdh
aXQgYW5zd2VyUGNGaXJzdC5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcjEpOworICBjb25zdCBh
bnN3ZXIxID0gYXdhaXQgYW5zd2VyUGNGaXJzdC5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgb2Zm
ZXJQYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIxKTsKKyAgYXdhaXQgYW5zd2VyUGNGaXJz
dC5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcjEpOworICAvLyBSZW5lZ290aWF0ZSB3aXRoIFBD
IDIKKyAgLy8gVGhlIG9mZmVyIGZyb20gUEMgMiBuZWVkcyB0byBiZSBjb25zaXN0ZW50IG9uIGF0
IGxlYXN0IHRoZSBmb2xsb3dpbmc6CisgIC8vIC0gTnVtYmVyLCB0eXBlIGFuZCBvcmRlciBvZiBt
ZWRpYSBzZWN0aW9ucworICAvLyAtIE1JRCB2YWx1ZXMKKyAgLy8gLSBQYXlsb2FkIHR5cGUgdmFs
dWVzCisgIC8vIERvIGEgImZha2UiIG9mZmVyL2Fuc3dlciB1c2luZyB0aGUgb3JpZ2luYWwgb2Zm
ZXIgYWdhaW5zdCBQQzIgdG8gYWNoaWV2ZSB0aGlzLgorICBhd2FpdCBhbnN3ZXJQY1NlY29uZC5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcjEpOworICAvLyBEaXNjYXJkIHRoZSBvdXRwdXQgb2Yg
dGhpcyByb3VuZC4KKyAgYXdhaXQgYW5zd2VyUGNTZWNvbmQuc2V0TG9jYWxEZXNjcmlwdGlvbihh
d2FpdCBhbnN3ZXJQY1NlY29uZC5jcmVhdGVBbnN3ZXIoKSk7CisKKyAgLy8gTm93IHdlIGNhbiBp
bml0aWF0ZSBhbiBvZmZlciBmcm9tIHRoZSBuZXcgUEMuCisgIGNvbnN0IG9mZmVyMiA9IGF3YWl0
IGFuc3dlclBjU2Vjb25kLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IGFuc3dlclBjU2Vjb25kLnNl
dExvY2FsRGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAgYXdhaXQgb2ZmZXJQYy5zZXRSZW1vdGVEZXNj
cmlwdGlvbihvZmZlcjIpOworICBjb25zdCBhbnN3ZXIyID0gYXdhaXQgb2ZmZXJQYy5jcmVhdGVB
bnN3ZXIoKTsKKyAgYXdhaXQgYW5zd2VyUGNTZWNvbmQuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5z
d2VyMik7CisgIGF3YWl0IG9mZmVyUGMuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIyKTsKK30s
ICdOZWdvdGlhdGlvbiBvZiBoYW5kb3ZlciBpbml0aWF0ZWQgYXQgY2FsbGVlIHdvcmtzJyk7CisK
KworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0cC1kZW11eGluZy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9ydHAtZGVtdXhpbmctZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjYxMjAxODRkZTc2ODg0
M2UxNjY1MDQ3ODg4MmM5YmJhYjljOWY3ZTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZGVt
dXhpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitQQVNTIENhbiBkZW11eCB0d28g
dmlkZW8gdHJhY2tzIHdpdGggZGlmZmVyZW50IHBheWxvYWQgdHlwZXMgb24gYSBidW5kbGVkIGNv
bm5lY3Rpb24KK1BBU1MgQ2FuIGRlbXV4IHR3byB2aWRlbyB0cmFja3Mgd2l0aCB0aGUgc2FtZSBw
YXlsb2FkIHR5cGUgb24gYW4gdW5idW5kbGVkIGNvbm5lY3Rpb24KKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
cnRwLWRlbXV4aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZGVtdXhpbmcuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xYjhk
Y2UzYjQ1ZGFiMGQzNjllNDk0OThlMTliMmZiMDM2NjM1NzE3Ci0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvcnRwLWRlbXV4aW5nLmh0bWwKQEAgLTAsMCArMSwxMDggQEAKKzwhZG9jdHlwZSBodG1sPgor
PG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbiBwYXlsb2FkIHR5
cGUgZGVtdXhpbmc8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4geworICBjb25zdCBjYWxsZXIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5h
ZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7CisgIGNvbnN0IGNhbGxlZSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlZS5jbG9zZSgp
KTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKGNhbGxlciwgY2FsbGVlKTsKKworICBjb25zdCBz
dHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHRydWV9KTsKKyAgdC5hZGRfY2xl
YW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9w
KCkpKTsKKyAgc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gY2FsbGVyLmFkZFRy
YWNrKHRyYWNrLCBzdHJlYW0pKTsKKyAgc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sg
PT4gY2FsbGVyLmFkZFRyYWNrKHRyYWNrLmNsb25lKCksIHN0cmVhbS5jbG9uZSgpKSk7CisKKyAg
bGV0IGNhbGxDb3VudCA9IDA7CisgIGxldCBtZXRhZGF0YVRvQmVMb2FkZWQgPSBuZXcgUHJvbWlz
ZShyZXNvbHZlID0+IHsKKyAgICBjYWxsZWUub250cmFjayA9IChlKSA9PiB7CisgICAgICBjb25z
dCBzdHJlYW0gPSBlLnN0cmVhbXNbMF07CisgICAgICBjb25zdCB2ID0gZG9jdW1lbnQuY3JlYXRl
RWxlbWVudCgndmlkZW8nKTsKKyAgICAgIHYuYXV0b3BsYXkgPSB0cnVlOworICAgICAgdi5zcmNP
YmplY3QgPSBzdHJlYW07CisgICAgICB2LmlkID0gc3RyZWFtLmlkCisgICAgICB2LmFkZEV2ZW50
TGlzdGVuZXIoJ2xvYWRlZG1ldGFkYXRhJywgKCkgPT4geworICAgICAgICBpZiAoKytjYWxsQ291
bnQgPT09IDIpIHsKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0KKyAgICAgIH0pOwor
ICAgIH07CisgIH0pOworCisgIC8vIFJlc3RyaWN0IGZpcnN0IHRyYW5zY2VpdmVyIHRvIFZQOCwg
c2Vjb25kIHRvIEgyNjQuCisgIGNvbnN0IHtjb2RlY3N9ID0gUlRDUnRwU2VuZGVyLmdldENhcGFi
aWxpdGllcygndmlkZW8nKTsKKyAgY29uc3QgdnA4ID0gY29kZWNzLmZpbmQoYyA9PiBjLm1pbWVU
eXBlID09PSAndmlkZW8vVlA4Jyk7CisgIGNvbnN0IGgyNjQgPSBjb2RlY3MuZmluZChjID0+IGMu
bWltZVR5cGUgPT09ICd2aWRlby9IMjY0Jyk7CisgIGNhbGxlci5nZXRUcmFuc2NlaXZlcnMoKVsw
XS5zZXRDb2RlY1ByZWZlcmVuY2VzKFt2cDhdKTsKKyAgY2FsbGVyLmdldFRyYW5zY2VpdmVycygp
WzFdLnNldENvZGVjUHJlZmVyZW5jZXMoW2gyNjRdKTsKKworICBjb25zdCBvZmZlciA9IGF3YWl0
IGNhbGxlci5jcmVhdGVPZmZlcigpOworICAvLyBSZXBsYWNlIHRoZSBtaWQgaGVhZGVyIGV4dGVu
c2lvbiBhbmQgYWxsIHNzcmMgbGluZXMKKyAgLy8gd2l0aCBib2d1cy4gVGhlIHJlY2VpdmVyIHdp
bGwgYmUgZm9yY2VkIHRvIGRvIHBheWxvYWQgdHlwZSBkZW11eGluZy4KKyAgY29uc3Qgc2RwID0g
b2ZmZXIuc2RwCisgICAgLnJlcGxhY2UoL3J0cC1oZHJleHQ6c2Rlcy9nLCAncnRwLWhkcmV4dDpz
b21ldGhpbmcnKQorICAgIC5yZXBsYWNlKC9hPXNzcmM6L2csICdhPW5vdHNzcmMnKTsKKworICBh
d2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNkcH0pOwor
ICBhd2FpdCBjYWxsZXIuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisKKyAgY29uc3QgYW5z
d2VyID0gYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBjYWxsZXIuc2V0UmVt
b3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRp
b24oYW5zd2VyKTsKKworICBhd2FpdCBtZXRhZGF0YVRvQmVMb2FkZWQ7Cit9LCAnQ2FuIGRlbXV4
IHR3byB2aWRlbyB0cmFja3Mgd2l0aCBkaWZmZXJlbnQgcGF5bG9hZCB0eXBlcyBvbiBhIGJ1bmRs
ZWQgY29ubmVjdGlvbicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IGNh
bGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7YnVuZGxlUG9saWN5OiAnbWF4LWNvbXBhdCd9
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7CisgIGNvbnN0IGNhbGxl
ZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxl
ZS5jbG9zZSgpKTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKGNhbGxlciwgY2FsbGVlKTsKKwor
ICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHRydWV9KTsKKyAg
dC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0
cmFjay5zdG9wKCkpKTsKKyAgc3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gY2Fs
bGVyLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pKTsKKyAgc3RyZWFtLmdldFRyYWNrcygpLmZvckVh
Y2godHJhY2sgPT4gY2FsbGVyLmFkZFRyYWNrKHRyYWNrLmNsb25lKCksIHN0cmVhbS5jbG9uZSgp
KSk7CisKKyAgbGV0IGNhbGxDb3VudCA9IDA7CisgIGxldCBtZXRhZGF0YVRvQmVMb2FkZWQgPSBu
ZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICBjYWxsZWUub250cmFjayA9IChlKSA9PiB7Cisg
ICAgICBjb25zdCBzdHJlYW0gPSBlLnN0cmVhbXNbMF07CisgICAgICBjb25zdCB2ID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgIHYuYXV0b3BsYXkgPSB0cnVlOworICAg
ICAgdi5zcmNPYmplY3QgPSBzdHJlYW07CisgICAgICB2LmlkID0gc3RyZWFtLmlkCisgICAgICB2
LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlZG1ldGFkYXRhJywgKCkgPT4geworICAgICAgICBpZiAo
KytjYWxsQ291bnQgPT09IDIpIHsKKyAgICAgICAgICByZXNvbHZlKCk7CisgICAgICAgIH0KKyAg
ICAgIH0pOworICAgIH07CisgIH0pOworCisgIGNvbnN0IG9mZmVyID0gYXdhaXQgY2FsbGVyLmNy
ZWF0ZU9mZmVyKCk7CisgIC8vIFJlcGxhY2UgQlVORExFLCB0aGUgbWlkIGhlYWRlciBleHRlbnNp
b24gYW5kIGFsbCBzc3JjIGxpbmVzCisgIC8vIHdpdGggYm9ndXMuIFRoZSByZWNlaXZlciB3aWxs
IGJlIGZvcmNlZCB0byBkbyBwYXlsb2FkIHR5cGUgZGVtdXhpbmcKKyAgLy8gd2hpY2ggaXMgc3Rp
bGwgcG9zc2libGUgYmVjYXVzZSB0aGUgZGlmZmVyZW50IG0tbGluZXMgYXJyaXZlIG9uCisgIC8v
IGRpZmZlcmVudCBwb3J0cy9zb2NrZXRzLgorICBjb25zdCBzZHAgPSBvZmZlci5zZHAucmVwbGFj
ZSgnQlVORExFJywgJ1NPTUVUSElORycpCisgICAgLnJlcGxhY2UoL3J0cC1oZHJleHQ6c2Rlcy9n
LCAncnRwLWhkcmV4dDpzb21ldGhpbmcnKQorICAgIC5yZXBsYWNlKC9hPXNzcmM6L2csICdhPW5v
dHNzcmMnKTsKKworICBhd2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6ICdv
ZmZlcicsIHNkcH0pOworICBhd2FpdCBjYWxsZXIuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7
CisKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dlcigpOworICBhd2Fp
dCBjYWxsZXIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXdhaXQgY2FsbGVlLnNl
dExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICBhd2FpdCBtZXRhZGF0YVRvQmVMb2FkZWQ7
Cit9LCAnQ2FuIGRlbXV4IHR3byB2aWRlbyB0cmFja3Mgd2l0aCB0aGUgc2FtZSBwYXlsb2FkIHR5
cGUgb24gYW4gdW5idW5kbGVkIGNvbm5lY3Rpb24nKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9zcGxpdC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc3BsaXQuaHR0cHMuaHRtbAppbmRleCAxMDI3NzFl
MjNhNTM2ODQ4ZjAwMjQ5MTY2ZWNlMTAyMTc3NjZhMzgwLi41ZWI4MzI5NTE3ZmJlZmU5NDY4MmZl
NzkxYWU4MTc2OWQwM2RhMTk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1sCisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL3NwbGl0Lmh0dHBzLmh0bWwKQEAgLTUzLDcgKzUzLDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewogCiAgIGNvbnN0IG9mZmVyID0gYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CiAg
IGNvbnN0IHNlY3Rpb25zID0gU0RQVXRpbHMuc3BsaXRTZWN0aW9ucyhvZmZlci5zZHApOwotICAv
LyByZW1vdmUgdGhlIGE9Z3JvdXA6QlVORExFIGZyb20gdGhlIFNEUCB3aGVuIHNpZ25hbGluZy4K
KyAgLy8gUmVtb3ZlIHRoZSBhPWdyb3VwOkJVTkRMRSBmcm9tIHRoZSBTRFAgd2hlbiBzaWduYWxp
bmcuCiAgIGNvbnN0IGJ1bmRsZSA9IFNEUFV0aWxzLm1hdGNoUHJlZml4KHNlY3Rpb25zWzBdLCAn
YT1ncm91cDpCVU5ETEUnKVswXTsKICAgc2VjdGlvbnNbMF0gPSBzZWN0aW9uc1swXS5yZXBsYWNl
KGJ1bmRsZSArICdcclxuJywgJycpOwogCkBAIC02OCw2ICs2OCwxOCBAQCBwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CiAgIGNvbnN0IGFuc3dlclZpZGVvID0gYXdhaXQgY2FsbGVlVmlkZW8uY3Jl
YXRlQW5zd2VyKCk7CiAgIGNvbnN0IGF1ZGlvU2VjdGlvbnMgPSBTRFBVdGlscy5zcGxpdFNlY3Rp
b25zKGFuc3dlckF1ZGlvLnNkcCk7CiAgIGNvbnN0IHZpZGVvU2VjdGlvbnMgPSBTRFBVdGlscy5z
cGxpdFNlY3Rpb25zKGFuc3dlclZpZGVvLnNkcCk7CisKKyAgLy8gUmVtb3ZlIHRoZSBmaW5nZXJw
cmludCBmcm9tIHRoZSBzZXNzaW9uIHBhcnQgb2YgdGhlIFNEUCBpZiBwcmVzZW50CisgIC8vIGFu
ZCBtb3ZlIGl0IHRvIHRoZSBtZWRpYSBzZWN0aW9uLgorICBTRFBVdGlscy5tYXRjaFByZWZpeChh
dWRpb1NlY3Rpb25zWzBdLCAnYT1maW5nZXJwcmludDonKS5mb3JFYWNoKGxpbmUgPT4geworICAg
IGF1ZGlvU2VjdGlvbnNbMF0gPSBhdWRpb1NlY3Rpb25zWzBdLnJlcGxhY2UobGluZSArICdcclxu
JywgJycpOworICAgIGF1ZGlvU2VjdGlvbnNbMV0gKz0gbGluZSArICdcclxuJzsKKyAgfSk7Cisg
IFNEUFV0aWxzLm1hdGNoUHJlZml4KHZpZGVvU2VjdGlvbnNbMF0sICdhPWZpbmdlcnByaW50Oicp
LmZvckVhY2gobGluZSA9PiB7CisgICAgdmlkZW9TZWN0aW9uc1swXSA9IHZpZGVvU2VjdGlvbnNb
MF0ucmVwbGFjZShsaW5lICsgJ1xyXG4nLCAnJyk7CisgICAgdmlkZW9TZWN0aW9uc1sxXSArPSBs
aW5lICsgJ1xyXG4nOworICB9KTsKKwogICBjb25zdCBzZHAgPSBhdWRpb1NlY3Rpb25zWzBdICsg
YXVkaW9TZWN0aW9uc1sxXSArIHZpZGVvU2VjdGlvbnNbMV07CiAgIGF3YWl0IGNhbGxlci5zZXRS
ZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ2Fuc3dlcicsIHNkcH0pOwogICBhd2FpdCBjYWxsZWVB
dWRpby5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlckF1ZGlvKTsKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3Vu
a25vd24tbWVkaWF0eXBlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC91bmtub3duLW1lZGlhdHlwZXMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzOWFmZTBjYWRjYmE5ZDNhNmNmOWE1ZTc3ZmNmZjMxNWM1
NjBiYzEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC91bmtub3duLW1lZGlhdHlwZXMtZXhwZWN0ZWQu
dHh0CkBAIC0wLDAgKzEsMyBAQAorCitGQUlMIFVua25vd24gbWVkaWEgdHlwZXMgYXJlIHJlamVj
dGVkIHdpdGggdGhlIHBvcnQgc2V0IHRvIDAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0
aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiSW52YWxpZEFjY2Vzc0Vycm9yOiBGYWlsZWQgdG8gc2V0
IHJlbW90ZSBvZmZlciBzZHA6IFRoZSBCVU5ETEUgZ3JvdXAgY29udGFpbnMgTUlEPScwJyBtYXRj
aGluZyBubyBtPSBzZWN0aW9uLiIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdW5rbm93bi1tZWRpYXR5cGVz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC91bmtub3duLW1lZGlhdHlwZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTE3NmQxYzg3
YjZhMmExNDI4MWM2MDNmNGE0OTFlZmQ4NmM4MjZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdW5r
bm93bi1tZWRpYXR5cGVzLmh0bWwKQEAgLTAsMCArMSwzNCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8
bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJjb25uZWN0aW9uIFNEUCBoYW5kbGlu
ZyBvZiB1bmtub3duIG1lZGlhIHR5cGVzPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2Vz
L3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3Ro
YXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVj
dGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rp
b24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9z
ZSgpKTsKKworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRy
dWV9KTsKKyAgcGMxLmFkZFRyYWNrKHN0cmVhbS5nZXRUcmFja3MoKVswXSwgc3RyZWFtKTsKKyAg
Y29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgcGMyLnNldFJl
bW90ZURlc2NyaXB0aW9uKHsKKyAgICB0eXBlOiAnb2ZmZXInLAorICAgIHNkcDogb2ZmZXIuc2Rw
CisgICAgICAgIC5yZXBsYWNlKCdtPWF1ZGlvICcsICdtPXVuaWNvcm5zICcpCisgIH0pOworICBh
d2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgIGNvbnN0IGFuc3dlciA9IGF3
YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24o
YW5zd2VyKTsKKyAgLy8gRG8gbm90IGF0dGVtcHQgdG8gY2FsbCBwYzEuc2V0UmVtb3RlRGVzY3Jp
cHRpb24uCisKKyAgY29uc3QgW3ByZWFtYmxlLCBtZWRpYV9zZWN0aW9uLCBwb3N0YW1ibGVdID0g
YW5zd2VyLnNkcC5zcGxpdCgnXHJcbm09Jyk7CisgIGFzc2VydF90cnVlKHR5cGVvZihwb3N0YW1i
bGUpID09PSAndW5kZWZpbmVkJyk7CisgIGFzc2VydF9ncmVhdGVyX3RoYW4obWVkaWFfc2VjdGlv
bi5zZWFyY2goCisgICAgL151bmljb3JucyAwLyksIC0xKTsKK30sICdVbmtub3duIG1lZGlhIHR5
cGVzIGFyZSByZWplY3RlZCB3aXRoIHRoZSBwb3J0IHNldCB0byAwJyk7Cis8L3NjcmlwdD4KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb3RvY29sL3ZpZGVvLWNvZGVjcy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdmlkZW8tY29kZWNzLmh0
dHBzLmh0bWwKaW5kZXggYTQ5MDVhZTQ0MWE5MTI3OTc3ODhkNmQwYjA2NWE2Yzg2MWQ3MDhiOC4u
NGNlMDYxOGJjYTMwMDdlNDE5M2I5OGE5NWIwYTZkMDMwY2MyNGI1ZiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
dmlkZW8tY29kZWNzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdmlkZW8tY29kZWNzLmh0dHBzLmh0bWwK
QEAgLTcsNiArNywxMSBAQAogPHNjcmlwdD4KICd1c2Ugc3RyaWN0JzsKIAorLyoKKyAqIENocm9t
aXVtIG5vdGU6IHRoaXMgcmVxdWlyZXMgYnVpbGQgYm90cyB3aXRoIEgyNjQgc3VwcG9ydC4gU2Vl
CisgKiAgIGh0dHBzOi8vYnVncy5jaHJvbWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWls
P2lkPTg0MDY1OQorICogZm9yIGRldGFpbHMgb24gaG93IHRvIGVuYWJsZSBzdXBwb3J0LgorICov
CiAvLyBUZXN0cyBmb3IgY29uZm9ybWFuY2UgdG8gUkZDIDc3NDIsCiAvLyAiV2ViUlRDIFZpZGVv
IFByb2Nlc3NpbmcgYW5kIENvZGVjIFJlcXVpcmVtZW50cyIKIC8vIFRoZSBkb2N1bWVudCB3YXMg
Zm9ybWVybHkga25vd24gYXMgZHJhZnQtaWV0Zi1ydGN3ZWItdmlkZW8tY29kZWNzLgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvdzNjLWltcG9ydC5sb2cgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC93M2MtaW1wb3J0LmxvZwppbmRleCBmOTRkNzlh
NTQ3ZTZjNWRjMGQzNWZhYTI2NTc1OTU5NmVmMGFlNjk0Li4zZTAyMTg1ZmE4NDFkOGMwZTk5NGFm
NmZkOThiODgzNGJjNWJjMjBmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC93M2MtaW1wb3J0LmxvZworKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC93M2MtaW1wb3J0LmxvZwpAQCAtMTksMTMgKzE5LDE2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
Y2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL2R0bHMtZmluZ2VycHJpbnQtdmFsaWRhdGlvbi5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL2ljZS1zdGF0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaWNlLXVmcmFncHdkLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9q
c2VwLWluaXRpYWwtb2ZmZXIuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL21pc3NpbmctZmllbGRzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC9tc2lkLXBhcnNlLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZGVtdXhpbmcuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NjdHAtZm9ybWF0
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9zaW11bGNhc3QtYW5zd2VyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zaW11bGNhc3Qtb2ZmZXIuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL3NwbGl0Lmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC91bmtub3duLW1lZGlhdHlwZXMuaHRtbAogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29s
L3ZpZGVvLWNvZGVjcy5odHRwcy5odG1sCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1s
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2lt
dWxjYXN0L2gyNjQuaHR0cHMuaHRtbAppbmRleCA4OWUxOGJjZDUxY2YwMjliNGY5NTI4MTY0ZTZi
OTAzMDZmMjEwNTI2Li4yNmVkMmU5MDRhOGIzNTE3YzlkZDM1YWYyNzYzMzBkNTM0MWQ3Mzg4IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9oMjY0Lmh0dHBzLmh0bWwK
QEAgLTgsNiArOCwxMSBAQAogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMi
Pjwvc2NyaXB0PgogPHNjcmlwdD4KKy8qCisgKiBDaHJvbWl1bSBub3RlOiB0aGlzIHJlcXVpcmVz
IGJ1aWxkIGJvdHMgd2l0aCBIMjY0IHN1cHBvcnQuIFNlZQorICogICBodHRwczovL2J1Z3MuY2hy
b21pdW0ub3JnL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9pZD04NDA2NTkKKyAqIGZvciBkZXRh
aWxzIG9uIGhvdyB0byBlbmFibGUgc3VwcG9ydC4KKyAqLwogcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewogICBhc3NlcnRfaW1wbGVtZW50cygnZ2V0Q2FwYWJpbGl0aWVzJyBpbiBSVENSdHBTZW5k
ZXIsICdSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzIG5vdCBzdXBwb3J0ZWQnKTsKICAgYXNz
ZXJ0X2ltcGxlbWVudHMoUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygndmlkZW8nKS5jb2Rl
Y3MuZmluZChjID0+IGMubWltZVR5cGUgPT09ICd2aWRlby9IMjY0JyksICdIMjY0IG5vdCBzdXBw
b3J0ZWQnKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9nIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdzNjLWltcG9ydC5sb2cKaW5kZXggYTM5N2Q4ZTc2
YzI3N2U0ZmM2N2JmMjZkMDc5NmM0OWNiZjZhM2JhMi4uZmUxZDVhMzdmM2RiOWU4NTI2MGUyNTdl
OGIwZTBjN2QyYTZiNTE3NiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdzNjLWltcG9ydC5sb2cKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvdzNjLWltcG9ydC5sb2cKQEAg
LTI4LDYgKzI4LDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEVE1GU2VuZGVyLWluc2VydERUTUYuaHR0cHMu
aHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ0RUTUZTZW5kZXItb250b25lY2hhbmdlLWxvbmcuaHR0cHMuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RUTUZTZW5kZXItb250
b25lY2hhbmdlLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1iaW5hcnlUeXBlLndpbmRvdy5qcwogL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFD
aGFubmVsLWJ1ZmZlcmVkQW1vdW50Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1jbG9zZS5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5u
ZWwtaWQuaHRtbApAQCAtNDIsMjEgKzQzLDI2IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0
LWV4dGVuc2lvbi1oZWxwZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VUcmFuc3BvcnQtZXh0ZW5zaW9uLmh0dHBzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VU
cmFuc3BvcnQuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLVNMRC1TUkQtdGltaW5nLmh0dHBzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1hZGQtdHJhY2stbm8tZGVhZGxvY2suaHR0cHMuaHRtbAorL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWFkZEljZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAuaHRtbAogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZElj
ZUNhbmRpZGF0ZS10aW1pbmcuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0
ZS5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkVHJhY2suaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFk
ZFRyYW5zY2VpdmVyLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5Ucmlja2xlSWNlQ2FuZGlk
YXRlcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FuZGlkYXRlLWluLXNkcC5odHRwcy5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tY29ubmVjdGlvblN0YXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25zdHJ1
Y3Rvci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlQW5zd2VyLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1j
cmVhdGVEYXRhQ2hhbm5lbC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlT2ZmZXIuaHRtbAorL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLWRlc2NyaXB0aW9uLWF0dHJpYnV0ZXMtdGltaW5nLmh0dHBzLmh0bWwKKy9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1leHBsaWNpdC1yb2xsYmFjay1pY2VHYXRoZXJpbmdTdGF0ZS5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tZ2VuZXJhdGVDZXJ0aWZpY2F0ZS5odG1sCi0vTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdElj
ZVNlcnZlcnMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBzLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1nZXRUcmFuc2NlaXZlcnMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci10ZXN0Lmh0bWwK
IC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUt
ZGlzY29ubmVjdGVkLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUu
aHR0cHMuaHRtbApAQCAtNjgsNiArNzQsOSBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNr
Lmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vcGVyYXRpb25zLmh0dHBzLmh0bWwKKy9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVj
dGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLWhlbHBlci5qcworL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3Qt
bmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
cGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXJlbW90ZS10cmFj
ay1tdXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdmVUcmFjay5odHRwcy5odG1sCkBA
IC0xMDUsNiArMTE0LDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENSdHBSZWNlaXZlci1nZXRTdGF0cy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0U3luY2hy
b25pemF0aW9uU291cmNlcy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLWVuY29kZS1zYW1lLXRyYWNrLXR3
aWNlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZ2V0Q2FwYWJpbGl0aWVzLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZ2V0
U3RhdHMuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1yZXBsYWNlVHJhY2suaHR0cHMuaHRtbApkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvdGVzdHMtb3B0aW9ucy5qc29uIGIvTGF5b3V0VGVzdHMvdGVzdHMt
b3B0aW9ucy5qc29uCmluZGV4IDQwM2I5NjcxOTQ5ZTMyZWQ3NTA0NTg0NDNmMDYyNmFjZjNmODVh
ZmIuLmM5Zjk4NWE2NmFmYjBiYWQ0ZTM2YmZkYTE5MmVhNjU5OGJhNzZkMjkgMTAwNjQ0Ci0tLSBh
L0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbgorKysgYi9MYXlvdXRUZXN0cy90ZXN0cy1v
cHRpb25zLmpzb24KQEAgLTI5NjAsNiArMjk2MCw5IEBACiAgICAgImltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZUNvbm5lY3Rpb25TdGF0ZS1jYW5kaWRhdGUtcGFp
ci5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAorICAgICJpbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRp
bWluZy5odHRwcy5odG1sIjogWworICAgICAgICAic2xvdyIKKyAgICBdLAogICAgICJpbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVE
YXRhQ2hhbm5lbC5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLApAQCAtMjk3Miw2ICsy
OTc1LDEyIEBACiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRwcy5odG1sIjogWwogICAgICAg
ICAic2xvdyIKICAgICBdLAorICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS1s
aW5lYXIuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKKyAgICAiaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVj
dC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ci
CisgICAgXSwKICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy5odG1sIjogWwogICAgICAg
ICAic2xvdyIKICAgICBdLApAQCAtMjk5Myw2ICszMDAyLDkgQEAKICAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0U3luY2hyb25pemF0
aW9uU291cmNlcy5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAorICAgICJp
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5jb2Rl
LXNhbWUtdHJhY2stdHdpY2UuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwK
ICAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVy
LXJlcGxhY2VUcmFjay5odHRwcy5odG1sIjogWwogICAgICAgICAic2xvdyIKICAgICBdLAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>414923</attachid>
            <date>2020-11-27 01:06:40 -0800</date>
            <delta_ts>2020-11-30 11:09:05 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-219272-20201127100635.patch</filename>
            <type>text/plain</type>
            <size>202572</size>
            <attacher name="youenn fablet">youennf</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjcwMTgxCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggZWQzYWQ3NjEzNjhhZmRiZmJkZmMz
NjE4NTRhZWUzNjQyYWYxNWVjMi4uMDE5ZDkwNTAyMDVhMzA5MzNkYzQzYjVkMTU5Mjg0OTQ2MDgz
MWIyOCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTExLTI3ICBZb3Vlbm4gRmFibGV0ICA8
eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUgV1BUIFdlYlJUQyB0ZXN0cworICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE5MjcyCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWFyayBhIG5ldyB0
ZXN0IGFzIGZsYWt5IGluIGlPUyBzaW11bGF0b3IuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9pb3Mt
c2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHRlc3RzLW9wdGlvbnMu
anNvbjoKKwogMjAyMC0xMS0yNiAgRnVqaWkgSGlyb25vcmkgIDxIaXJvbm9yaS5GdWppaUBzb255
LmNvbT4KIAogICAgICAgICBbV2luQ2Fpcm9dIFVucmV2aWV3ZWQgdGVzdCBnYXJkZW5pbmcKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2MvQ2hhbmdlTG9nCmluZGV4IGViNzE3YjIzYWRiYTM3NjlkYTc3ZDc5MzUx
MmUyOGI2MjZiOGYxZjQuLjkyZDg3YjQ2YTM4YmQ1NWVkYjkxZmJhZjZjMGFlMWE5MThlMzEzY2Qg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTEx
LTI3ICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNvbT4KKworICAgICAgICBVcGRhdGUg
V1BUIFdlYlJUQyB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjE5MjcyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgKiB3ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjOiBSZXN5bmNlZC4KKwogMjAyMC0x
MS0yMCAgU2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbY3NzLWZsZXhdIEltYWdlcyBhcyBmbGV4IGl0ZW1zIHNob3VsZCB1c2UgdGhlIG92ZXJyaWRp
bmdMb2dpY2FsV2lkdGggd2hlbiBkZWZpbmVkIHRvIGNvbXB1dGUgdGhlIGxvZ2ljYWwgaGVpZ2h0
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJh
dGlvbi1pY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dAppbmRleCBlYWY1YmU3M2IxODY1ZDJhOGY2ZmVi
MzI1M2JjZDhhNDZkNGNjNTAyLi4zODBjNDdjYjdhZGRmMTA2OTY3YzJjMGZlMTFjN2NlZDE1NTY5
YWEwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENDb25maWd1cmF0aW9uLWljZVNlcnZlcnMtZXhwZWN0ZWQudHh0CisrKyBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0Nv
bmZpZ3VyYXRpb24taWNlU2VydmVycy1leHBlY3RlZC50eHQKQEAgLTEyMCw3ICsxMjAsNyBAQCBG
QUlMIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggY3JlZGVudGlhbFR5cGUgdG9rZW4g
c2hvdWxkIHRocm93IFR5cGVFcnJvcgogICAgICAgfV0gfSkiIGRpZCBub3QgdGhyb3cKIFBBU1Mg
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHVybCBmaWVsZCBzaG91bGQgdGhy
b3cgVHlwZUVycm9yCiBQQVNTIHNldENvbmZpZ3VyYXRpb24oY29uZmlnKSAtIHdpdGggdXJsIGZp
ZWxkIHNob3VsZCB0aHJvdyBUeXBlRXJyb3IKLUZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNv
bmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFzc3dvcmQsIGFuZCBS
VENPYXV0aENyZWRlbnRpYWwgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vy
cm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KK0ZBSUwgbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUgcGFz
c3dvcmQsIGFuZCBvYmplY3QgY3JlZGVudGlhbCBzaG91bGQgdGhyb3cgSW52YWxpZEFjY2Vzc0Vy
cm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4KICAgICAgIG1ha2VQYyh7IGlj
ZVNlcnZlcnM6IFt7CiAgICAgICAgIHVybHM6ICd0dXJuczp0dXJuLmV4YW1wbGUub3JnJywKICAg
ICAgICAgY3JlZGVudGlhbFR5cGU6ICdwYXNzd29yZCcsCkBAIC0xMzAsNyArMTMwLDcgQEAgRkFJ
TCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVk
ZW50aWFsVHlwZSBwYXNzd29yZCwKICAgICAgICAgICBhY2Nlc3NUb2tlbjogJycKICAgICAgICAg
fQogICAgICAgfV0gfSkiIGRpZCBub3QgdGhyb3cKLUZBSUwgc2V0Q29uZmlndXJhdGlvbihjb25m
aWcpIC0gd2l0aCB0dXJucyBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQgUlRD
T2F1dGhDcmVkZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHRocm93IEludmFsaWRBY2Nlc3NFcnJv
ciBhc3NlcnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+CitGQUlMIHNldENvbmZpZ3VyYXRp
b24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNzd29yZCwg
YW5kIG9iamVjdCBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJyb3IgYXNz
ZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PgogICAgICAgbWFrZVBjKHsgaWNlU2VydmVy
czogW3sKICAgICAgICAgdXJsczogJ3R1cm5zOnR1cm4uZXhhbXBsZS5vcmcnLAogICAgICAgICBj
cmVkZW50aWFsVHlwZTogJ3Bhc3N3b3JkJywKQEAgLTE1NCwxMiArMTU0LDQgQEAgRkFJTCBzZXRD
b25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNlcnZlciwgY3JlZGVudGlhbFR5cGUg
b2F1dGgsIGFuZCBzdHIKICAgICAgICAgdXNlcm5hbWU6ICd1c2VyJywKICAgICAgICAgY3JlZGVu
dGlhbDogJ2NyZWQnCiAgICAgICB9XSB9KSIgZGlkIG5vdCB0aHJvdwotRkFJTCBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBv
YXV0aCBhbmQgUlRDT0F1dGhDcmVkZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHN1Y2NlZWQgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgIm9hdXRoIiBidXQgZ290ICh1bmRlZmluZWQp
IHVuZGVmaW5lZAotRkFJTCBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIHR1cm5zIHNl
cnZlciwgY3JlZGVudGlhbFR5cGUgb2F1dGggYW5kIFJUQ09BdXRoQ3JlZGVudGlhbCBjcmVkZW50
aWFsIHNob3VsZCBzdWNjZWVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJvYXV0
aCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKGNvbmZpZykgLSB3aXRoIGJvdGggdHVybnMgYW5kIHN0dW4gc2VydmVyLCBjcmVkZW50aWFs
VHlwZSBvYXV0aCBhbmQgUlRDT0F1dGhDcmVkZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHN1Y2Nl
ZWQgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgIm9hdXRoIiBidXQgZ290ICh1bmRl
ZmluZWQpIHVuZGVmaW5lZAotRkFJTCBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIGJv
dGggdHVybnMgYW5kIHN0dW4gc2VydmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCBhbmQgUlRDT0F1
dGhDcmVkZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHN1Y2NlZWQgYXNzZXJ0X2VxdWFsczogZXhw
ZWN0ZWQgKHN0cmluZykgIm9hdXRoIiBidXQgZ290ICh1bmRlZmluZWQpIHVuZGVmaW5lZAotRkFJ
TCBuZXcgUlRDUGVlckNvbm5lY3Rpb24oY29uZmlnKSAtIHdpdGggc3R1biBzZXJ2ZXIsIGNyZWRl
bnRpYWxUeXBlIG9hdXRoLCBhbmQgc3RyaW5nIGNyZWRlbnRpYWwgc2hvdWxkIHN1Y2NlZWQgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgKHN0cmluZykgIm9hdXRoIiBidXQgZ290ICh1bmRlZmluZWQp
IHVuZGVmaW5lZAotRkFJTCBzZXRDb25maWd1cmF0aW9uKGNvbmZpZykgLSB3aXRoIHN0dW4gc2Vy
dmVyLCBjcmVkZW50aWFsVHlwZSBvYXV0aCwgYW5kIHN0cmluZyBjcmVkZW50aWFsIHNob3VsZCBz
dWNjZWVkIGFzc2VydF9lcXVhbHM6IGV4cGVjdGVkIChzdHJpbmcpICJvYXV0aCIgYnV0IGdvdCAo
dW5kZWZpbmVkKSB1bmRlZmluZWQKLUZBSUwgbmV3IFJUQ1BlZXJDb25uZWN0aW9uKGNvbmZpZykg
LSB3aXRoIHN0dW4gc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNzd29yZCwgYW5kIFJUQ09BdXRo
Q3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCBzdWNjZWVkIGFzc2VydF9lcXVhbHM6IGV4cGVj
dGVkIChzdHJpbmcpICJwYXNzd29yZCIgYnV0IGdvdCAodW5kZWZpbmVkKSB1bmRlZmluZWQKLUZB
SUwgc2V0Q29uZmlndXJhdGlvbihjb25maWcpIC0gd2l0aCBzdHVuIHNlcnZlciwgY3JlZGVudGlh
bFR5cGUgcGFzc3dvcmQsIGFuZCBSVENPQXV0aENyZWRlbnRpYWwgY3JlZGVudGlhbCBzaG91bGQg
c3VjY2VlZCBhc3NlcnRfZXF1YWxzOiBleHBlY3RlZCAoc3RyaW5nKSAicGFzc3dvcmQiIGJ1dCBn
b3QgKHVuZGVmaW5lZCkgdW5kZWZpbmVkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0NvbmZpZ3VyYXRpb24taWNlU2Vy
dmVycy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLmh0bWwKaW5kZXggMmVmOTliZjU5Yzhj
YzExMjczZTk5Mzg4YjE0NDRiZjI1MDY3Y2IyMi4uMWNiZjFkNmMxZGE0N2I4MGQ5YjNkNzE3M2Y3
ODA2MmYyZTQ5YmYxMCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDQ29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
Q29uZmlndXJhdGlvbi1pY2VTZXJ2ZXJzLmh0bWwKQEAgLTI5LDIxICsyOSwxNCBAQAogCiAgICAg
NC4yLjIuICBSVENJY2VDcmVkZW50aWFsVHlwZSBFbnVtCiAgICAgICBlbnVtIFJUQ0ljZUNyZWRl
bnRpYWxUeXBlIHsKLSAgICAgICAgInBhc3N3b3JkIiwKLSAgICAgICAgIm9hdXRoIgotICAgICAg
fTsKLQotICAgIDQuMi4zLiAgUlRDT0F1dGhDcmVkZW50aWFsIERpY3Rpb25hcnkKLSAgICAgIGRp
Y3Rpb25hcnkgUlRDT0F1dGhDcmVkZW50aWFsIHsKLSAgICAgICAgcmVxdWlyZWQgRE9NU3RyaW5n
IG1hY0tleTsKLSAgICAgICAgcmVxdWlyZWQgRE9NU3RyaW5nIGFjY2Vzc1Rva2VuOworICAgICAg
ICAicGFzc3dvcmQiCiAgICAgICB9OwogCiAgICAgNC4yLjQuICBSVENJY2VTZXJ2ZXIgRGljdGlv
bmFyeQogICAgICAgZGljdGlvbmFyeSBSVENJY2VTZXJ2ZXIgewogICAgICAgICByZXF1aXJlZCAo
RE9NU3RyaW5nIG9yIHNlcXVlbmNlPERPTVN0cmluZz4pIHVybHM7CiAgICAgICAgICAgICAgICAg
IERPTVN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWU7Ci0gICAgICAgICAg
ICAgICAgIChET01TdHJpbmcgb3IgUlRDT0F1dGhDcmVkZW50aWFsKSAgY3JlZGVudGlhbDsKKyAg
ICAgICAgICAgICAgICAgRE9NU3RyaW5nICAgICAgICAgICAgICAgICAgICAgICAgICBjcmVkZW50
aWFsOwogICAgICAgICAgICAgICAgICBSVENJY2VDcmVkZW50aWFsVHlwZSAgICAgICAgICAgICAg
IGNyZWRlbnRpYWxUeXBlID0gInBhc3N3b3JkIjsKICAgICAgIH07CiAgICAqLwpAQCAtMzc1LDcg
KzM2OCw3IEBACiAgICAgICAgICAgYWNjZXNzVG9rZW46ICcnCiAgICAgICAgIH0KICAgICAgIH1d
IH0pKTsKLSAgfSwgJ3dpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNzd29yZCwg
YW5kIFJUQ09hdXRoQ3JlZGVudGlhbCBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNj
ZXNzRXJyb3InKTsKKyAgfSwgJ3dpdGggdHVybnMgc2VydmVyLCBjcmVkZW50aWFsVHlwZSBwYXNz
d29yZCwgYW5kIG9iamVjdCBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJbnZhbGlkQWNjZXNzRXJy
b3InKTsKIAogICAvKgogICAgIDQuMy4yLiAgVG8gc2V0IGEgY29uZmlndXJhdGlvbgpAQCAtMzkz
LDEwMiArMzg2LDYgQEAKICAgICAgIH1dIH0pKTsKICAgfSwgJ3dpdGggdHVybnMgc2VydmVyLCBj
cmVkZW50aWFsVHlwZSBvYXV0aCwgYW5kIHN0cmluZyBjcmVkZW50aWFsIHNob3VsZCB0aHJvdyBJ
bnZhbGlkQWNjZXNzRXJyb3InKTsKIAotICBjb25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGNv
bnN0IHBjID0gbWFrZVBjKHsgaWNlU2VydmVyczogW3sKLSAgICAgIHVybHM6ICd0dXJuczp0dXJu
LmV4YW1wbGUub3JnJywKLSAgICAgIGNyZWRlbnRpYWxUeXBlOiAnb2F1dGgnLAotICAgICAgdXNl
cm5hbWU6ICd1c2VyJywKLSAgICAgIGNyZWRlbnRpYWw6IHsKLSAgICAgICAgbWFjS2V5OiAnbWFj
JywKLSAgICAgICAgYWNjZXNzVG9rZW46ICd0b2tlbicKLSAgICAgIH0KLSAgICB9XSB9KTsKLQot
ICAgIGNvbnN0IHsgaWNlU2VydmVycyB9ID0gcGMuZ2V0Q29uZmlndXJhdGlvbigpOwotICAgIGFz
c2VydF9lcXVhbHMoaWNlU2VydmVycy5sZW5ndGgsIDEpOwotCi0gICAgY29uc3Qgc2VydmVyID0g
aWNlU2VydmVyc1swXTsKLSAgICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNlcnZlci51cmxzLCBbJ3R1
cm5zOnR1cm4uZXhhbXBsZS5vcmcnXSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhzZXJ2ZXIuY3JlZGVu
dGlhbFR5cGUsICdvYXV0aCcpOwotICAgIGFzc2VydF9lcXVhbHMoc2VydmVyLnVzZXJuYW1lLCAn
dXNlcicpOwotCi0gICAgY29uc3QgeyBjcmVkZW50aWFsIH0gPSBzZXJ2ZXI7Ci0gICAgYXNzZXJ0
X2VxdWFscyhjcmVkZW50aWFsLm1hY0tleSwgJ21hYycpOwotICAgIGFzc2VydF9lcXVhbHMoY3Jl
ZGVudGlhbC5hY2Nlc3NUb2tlbiwgJ3Rva2VuJyk7Ci0KLSAgfSwgYHdpdGggdHVybnMgc2VydmVy
LCBjcmVkZW50aWFsVHlwZSBvYXV0aCBhbmQgUlRDT0F1dGhDcmVkZW50aWFsIGNyZWRlbnRpYWwg
c2hvdWxkIHN1Y2NlZWRgKTsKLQotICBjb25maWdfdGVzdChtYWtlUGMgPT4gewotICAgIGNvbnN0
IHBjID0gbWFrZVBjKHsgaWNlU2VydmVyczogW3sKLSAgICAgIHVybHM6IFsndHVybnM6dHVybi5l
eGFtcGxlLm9yZycsICdzdHVuOnN0dW4xLmV4YW1wbGUubmV0J10sCi0gICAgICBjcmVkZW50aWFs
VHlwZTogJ29hdXRoJywKLSAgICAgIHVzZXJuYW1lOiAndXNlcicsCi0gICAgICBjcmVkZW50aWFs
OiB7Ci0gICAgICAgIG1hY0tleTogJ21hYycsCi0gICAgICAgIGFjY2Vzc1Rva2VuOiAndG9rZW4n
Ci0gICAgICB9Ci0gICAgfV0gfSk7Ci0KLSAgICBjb25zdCB7IGljZVNlcnZlcnMgfSA9IHBjLmdl
dENvbmZpZ3VyYXRpb24oKTsKLSAgICBhc3NlcnRfZXF1YWxzKGljZVNlcnZlcnMubGVuZ3RoLCAx
KTsKLQotICAgIGNvbnN0IHNlcnZlciA9IGljZVNlcnZlcnNbMF07Ci0gICAgYXNzZXJ0X2FycmF5
X2VxdWFscyhzZXJ2ZXIudXJscywgWyd0dXJuczp0dXJuLmV4YW1wbGUub3JnJywgJ3N0dW46c3R1
bjEuZXhhbXBsZS5uZXQnXSk7Ci0gICAgYXNzZXJ0X2VxdWFscyhzZXJ2ZXIuY3JlZGVudGlhbFR5
cGUsICdvYXV0aCcpOwotICAgIGFzc2VydF9lcXVhbHMoc2VydmVyLnVzZXJuYW1lLCAndXNlcicp
OwotCi0gICAgY29uc3QgeyBjcmVkZW50aWFsIH0gPSBzZXJ2ZXI7Ci0gICAgYXNzZXJ0X2VxdWFs
cyhjcmVkZW50aWFsLm1hY0tleSwgJ21hYycpOwotICAgIGFzc2VydF9lcXVhbHMoY3JlZGVudGlh
bC5hY2Nlc3NUb2tlbiwgJ3Rva2VuJyk7Ci0KLSAgfSwgYHdpdGggYm90aCB0dXJucyBhbmQgc3R1
biBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIG9hdXRoIGFuZCBSVENPQXV0aENyZWRlbnRpYWwgY3Jl
ZGVudGlhbCBzaG91bGQgc3VjY2VlZGApOwotCi0gIC8vIGNyZWRlbnRpYWwgdHlwZSB2YWxpZGF0
aW9uIGlzIGlnbm9yZWQgd2hlbiBzY2hlbWUgbmFtZSBpcyBzdHVuCi0gIGNvbmZpZ190ZXN0KG1h
a2VQYyA9PiB7Ci0gICAgY29uc3QgcGMgPSBtYWtlUGMoeyBpY2VTZXJ2ZXJzOiBbewotICAgICAg
dXJsczogJ3N0dW46c3R1bjEuZXhhbXBsZS5uZXQnLAotICAgICAgY3JlZGVudGlhbFR5cGU6ICdv
YXV0aCcsCi0gICAgICB1c2VybmFtZTogJ3VzZXInLAotICAgICAgY3JlZGVudGlhbDogJ2NyZWQn
Ci0gICAgfV0gfSk7Ci0KLSAgICBjb25zdCB7IGljZVNlcnZlcnMgfSA9IHBjLmdldENvbmZpZ3Vy
YXRpb24oKTsKLSAgICBhc3NlcnRfZXF1YWxzKGljZVNlcnZlcnMubGVuZ3RoLCAxKTsKLSAgICBj
b25zdCBzZXJ2ZXIgPSBpY2VTZXJ2ZXJzWzBdOwotCi0gICAgYXNzZXJ0X2FycmF5X2VxdWFscyhz
ZXJ2ZXIudXJscywgWydzdHVuOnN0dW4xLmV4YW1wbGUubmV0J10pOwotICAgIGFzc2VydF9lcXVh
bHMoc2VydmVyLmNyZWRlbnRpYWxUeXBlLCAnb2F1dGgnKTsKLSAgICBhc3NlcnRfZXF1YWxzKHNl
cnZlci51c2VybmFtZSwgJ3VzZXInKTsKLSAgICBhc3NlcnRfZXF1YWxzKHNlcnZlci5jcmVkZW50
aWFsLCAnY3JlZCcpOwotCi0gIH0sICd3aXRoIHN0dW4gc2VydmVyLCBjcmVkZW50aWFsVHlwZSBv
YXV0aCwgYW5kIHN0cmluZyBjcmVkZW50aWFsIHNob3VsZCBzdWNjZWVkJyk7Ci0KLSAgLy8gY3Jl
ZGVudGlhbCB0eXBlIHZhbGlkYXRpb24gaXMgaWdub3JlZCB3aGVuIHNjaGVtZSBuYW1lIGlzIHN0
dW4KLSAgY29uZmlnX3Rlc3QobWFrZVBjID0+IHsKLSAgICBjb25zdCBwYyA9IG1ha2VQYyh7IGlj
ZVNlcnZlcnM6IFt7Ci0gICAgICB1cmxzOiAnc3R1bjpzdHVuMS5leGFtcGxlLm5ldCcsCi0gICAg
ICBjcmVkZW50aWFsVHlwZTogJ3Bhc3N3b3JkJywKLSAgICAgIHVzZXJuYW1lOiAndXNlcicsCi0g
ICAgICBjcmVkZW50aWFsOiB7Ci0gICAgICAgIG1hY0tleTogJycsCi0gICAgICAgIGFjY2Vzc1Rv
a2VuOiAnJwotICAgICAgfQotICAgIH1dIH0pOwotCi0gICAgY29uc3QgeyBpY2VTZXJ2ZXJzIH0g
PSBwYy5nZXRDb25maWd1cmF0aW9uKCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhpY2VTZXJ2ZXJzLmxl
bmd0aCwgMSk7Ci0KLSAgICBjb25zdCBzZXJ2ZXIgPSBpY2VTZXJ2ZXJzWzBdOwotICAgIGFzc2Vy
dF9hcnJheV9lcXVhbHMoc2VydmVyLnVybHMsIFsnc3R1bjpzdHVuMS5leGFtcGxlLm5ldCddKTsK
LSAgICBhc3NlcnRfZXF1YWxzKHNlcnZlci5jcmVkZW50aWFsVHlwZSwgJ3Bhc3N3b3JkJyk7Ci0g
ICAgYXNzZXJ0X2VxdWFscyhzZXJ2ZXIudXNlcm5hbWUsICd1c2VyJyk7Ci0KLSAgICBjb25zdCB7
IGNyZWRlbnRpYWwgfSA9IHNlcnZlcjsKLSAgICBhc3NlcnRfZXF1YWxzKGNyZWRlbnRpYWwubWFj
S2V5LCAnJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhjcmVkZW50aWFsLmFjY2Vzc1Rva2VuLCAnJyk7
Ci0KLSAgfSwgJ3dpdGggc3R1biBzZXJ2ZXIsIGNyZWRlbnRpYWxUeXBlIHBhc3N3b3JkLCBhbmQg
UlRDT0F1dGhDcmVkZW50aWFsIGNyZWRlbnRpYWwgc2hvdWxkIHN1Y2NlZWQnKTsKLQogICAvKgog
ICAgIFRlc3RlZAogICAgICAgNC4zLjIuICBUbyBzZXQgYSBjb25maWd1cmF0aW9uCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENEYXRhQ2hhbm5lbC1iaW5hcnlUeXBlLndpbmRvdy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1i
aW5hcnlUeXBlLndpbmRvdy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGY3NDliZWMxZjRjZmUy
NWMxZTk1YTNhOGU5MTk2YTMyZTQzZTNkYQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJp
bmFyeVR5cGUud2luZG93LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDE5IEBACisKK1BBU1MgU2V0
dGluZyBiaW5hcnlUeXBlIHRvICdibG9iJyBzaG91bGQgc3VjY2VlZAorUEFTUyBTZXR0aW5nIGJp
bmFyeVR5cGUgdG8gJ2FycmF5YnVmZmVyJyBzaG91bGQgc3VjY2VlZAorRkFJTCBTZXR0aW5nIGlu
dmFsaWQgYmluYXJ5VHlwZSAnamVsbHlmaXNoJyBzaG91bGQgdGhyb3cgU3ludGF4RXJyb3IgYXNz
ZXJ0X3Rocm93c19kb206IGZ1bmN0aW9uICIoKSA9PiB7CisgICAgICBkYy5iaW5hcnlUeXBlID0g
YmluYXJ5VHlwZTsKKyAgICB9IiB0aHJldyBvYmplY3QgIlR5cGVNaXNtYXRjaEVycm9yOiBUaGUg
dHlwZSBvZiBhbiBvYmplY3Qgd2FzIGluY29tcGF0aWJsZSB3aXRoIHRoZSBleHBlY3RlZCB0eXBl
IG9mIHRoZSBwYXJhbWV0ZXIgYXNzb2NpYXRlZCB0byB0aGUgb2JqZWN0LiIgdGhhdCBpcyBub3Qg
YSBET01FeGNlcHRpb24gU3ludGF4RXJyb3I6IHByb3BlcnR5ICJjb2RlIiBpcyBlcXVhbCB0byAx
NywgZXhwZWN0ZWQgMTIKK0ZBSUwgU2V0dGluZyBpbnZhbGlkIGJpbmFyeVR5cGUgJ2FycmF5YnVm
ZmVyICcgc2hvdWxkIHRocm93IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlv
biAiKCkgPT4geworICAgICAgZGMuYmluYXJ5VHlwZSA9IGJpbmFyeVR5cGU7CisgICAgfSIgdGhy
ZXcgb2JqZWN0ICJUeXBlTWlzbWF0Y2hFcnJvcjogVGhlIHR5cGUgb2YgYW4gb2JqZWN0IHdhcyBp
bmNvbXBhdGlibGUgd2l0aCB0aGUgZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcGFyYW1ldGVyIGFzc29j
aWF0ZWQgdG8gdGhlIG9iamVjdC4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFN5bnRheEVy
cm9yOiBwcm9wZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMTcsIGV4cGVjdGVkIDEyCitGQUlMIFNl
dHRpbmcgaW52YWxpZCBiaW5hcnlUeXBlICcnIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3Nl
cnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IHsKKyAgICAgIGRjLmJpbmFyeVR5cGUgPSBi
aW5hcnlUeXBlOworICAgIH0iIHRocmV3IG9iamVjdCAiVHlwZU1pc21hdGNoRXJyb3I6IFRoZSB0
eXBlIG9mIGFuIG9iamVjdCB3YXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGV4cGVjdGVkIHR5cGUg
b2YgdGhlIHBhcmFtZXRlciBhc3NvY2lhdGVkIHRvIHRoZSBvYmplY3QuIiB0aGF0IGlzIG5vdCBh
IERPTUV4Y2VwdGlvbiBTeW50YXhFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDE3
LCBleHBlY3RlZCAxMgorRkFJTCBTZXR0aW5nIGludmFsaWQgYmluYXJ5VHlwZSAnbnVsbCcgc2hv
dWxkIHRocm93IFN5bnRheEVycm9yIGFzc2VydF90aHJvd3NfZG9tOiBmdW5jdGlvbiAiKCkgPT4g
eworICAgICAgZGMuYmluYXJ5VHlwZSA9IGJpbmFyeVR5cGU7CisgICAgfSIgdGhyZXcgb2JqZWN0
ICJUeXBlTWlzbWF0Y2hFcnJvcjogVGhlIHR5cGUgb2YgYW4gb2JqZWN0IHdhcyBpbmNvbXBhdGli
bGUgd2l0aCB0aGUgZXhwZWN0ZWQgdHlwZSBvZiB0aGUgcGFyYW1ldGVyIGFzc29jaWF0ZWQgdG8g
dGhlIG9iamVjdC4iIHRoYXQgaXMgbm90IGEgRE9NRXhjZXB0aW9uIFN5bnRheEVycm9yOiBwcm9w
ZXJ0eSAiY29kZSIgaXMgZXF1YWwgdG8gMTcsIGV4cGVjdGVkIDEyCitGQUlMIFNldHRpbmcgaW52
YWxpZCBiaW5hcnlUeXBlICd1bmRlZmluZWQnIHNob3VsZCB0aHJvdyBTeW50YXhFcnJvciBhc3Nl
cnRfdGhyb3dzX2RvbTogZnVuY3Rpb24gIigpID0+IHsKKyAgICAgIGRjLmJpbmFyeVR5cGUgPSBi
aW5hcnlUeXBlOworICAgIH0iIHRocmV3IG9iamVjdCAiVHlwZU1pc21hdGNoRXJyb3I6IFRoZSB0
eXBlIG9mIGFuIG9iamVjdCB3YXMgaW5jb21wYXRpYmxlIHdpdGggdGhlIGV4cGVjdGVkIHR5cGUg
b2YgdGhlIHBhcmFtZXRlciBhc3NvY2lhdGVkIHRvIHRoZSBvYmplY3QuIiB0aGF0IGlzIG5vdCBh
IERPTUV4Y2VwdGlvbiBTeW50YXhFcnJvcjogcHJvcGVydHkgImNvZGUiIGlzIGVxdWFsIHRvIDE3
LCBleHBlY3RlZCAxMgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1iaW5hcnlUeXBlLndpbmRvdy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53aW5kb3cuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMzgyOTEz
NTI4ZTY5M2IzYTVkNTZjNjYwYTQ1MDYwOTgwYjU0OGMzCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRGF0YUNo
YW5uZWwtYmluYXJ5VHlwZS53aW5kb3cuaHRtbApAQCAtMCwwICsxIEBACis8IS0tIFRoaXMgZmls
ZSBpcyByZXF1aXJlZCBmb3IgV2ViS2l0IHRlc3QgaW5mcmFzdHJ1Y3R1cmUgdG8gcnVuIHRoZSB0
ZW1wbGF0ZWQgdGVzdCAtLT4KXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBmaWxlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENE
YXRhQ2hhbm5lbC1iaW5hcnlUeXBlLndpbmRvdy5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWJpbmFyeVR5cGUud2lu
ZG93LmpzCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLmM2MzI4MWJkNTFiMGEwMWRlMjc3ODVjMWUxNDc5MmE2YjUxZTA2
MjUKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1iaW5hcnlUeXBlLndpbmRvdy5qcwpAQCAt
MCwwICsxLDI3IEBACisndXNlIHN0cmljdCc7CisKK2NvbnN0IHZhbGlkQmluYXJ5VHlwZXMgPSBb
J2Jsb2InLCAnYXJyYXlidWZmZXInXTsKK2NvbnN0IGludmFsaWRCaW5hcnlUeXBlcyA9IFsnamVs
bHlmaXNoJywgJ2FycmF5YnVmZmVyICcsICcnLCBudWxsLCB1bmRlZmluZWRdOworCitmb3IgKGNv
bnN0IGJpbmFyeVR5cGUgb2YgdmFsaWRCaW5hcnlUeXBlcykgeworICB0ZXN0KCh0KSA9PiB7Cisg
ICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0IGRjID0gcGMuY3JlYXRlRGF0YUNoYW5uZWwo
J3Rlc3QtYmluYXJ5LXR5cGUnKTsKKworICAgIGRjLmJpbmFyeVR5cGUgPSBiaW5hcnlUeXBlOwor
ICAgIGFzc2VydF9lcXVhbHMoZGMuYmluYXJ5VHlwZSwgYmluYXJ5VHlwZSwgYGRjLmJpbmFyeVR5
cGUgc2hvdWxkIGJlICcke2JpbmFyeVR5cGV9J2ApOworICB9LCBgU2V0dGluZyBiaW5hcnlUeXBl
IHRvICcke2JpbmFyeVR5cGV9JyBzaG91bGQgc3VjY2VlZGApOworfQorCitmb3IgKGNvbnN0IGJp
bmFyeVR5cGUgb2YgaW52YWxpZEJpbmFyeVR5cGVzKSB7CisgIHRlc3QoKHQpID0+IHsKKyAgICBj
b25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMuY2xvc2UoKSk7CisgICAgY29uc3QgZGMgPSBwYy5jcmVhdGVEYXRhQ2hhbm5lbCgndGVz
dC1iaW5hcnktdHlwZScpOworCisgICAgYXNzZXJ0X3Rocm93c19kb20oJ1N5bnRheEVycm9yJywg
KCkgPT4geworICAgICAgZGMuYmluYXJ5VHlwZSA9IGJpbmFyeVR5cGU7CisgICAgfSk7CisgIH0s
IGBTZXR0aW5nIGludmFsaWQgYmluYXJ5VHlwZSAnJHtiaW5hcnlUeXBlfScgc2hvdWxkIHRocm93
IFN5bnRheEVycm9yYCk7Cit9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRp
ZmljYXRlcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRpZmljYXRlcy1l
eHBlY3RlZC50eHQKaW5kZXggZmQwMGM3Y2ZkZTYwNDYxYmMwODQ3NWEyOWMzOTZiMzE5YjQ4M2M1
Yy4uM2U1YTU5MWEwNjNhYjI3MTRhYWEwZjE2ZTE1Y2ZmZDFiMWEzZmE4MCAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRs
c1RyYW5zcG9ydC1nZXRSZW1vdGVDZXJ0aWZpY2F0ZXMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFu
c3BvcnQtZ2V0UmVtb3RlQ2VydGlmaWNhdGVzLWV4cGVjdGVkLnR4dApAQCAtMSwzICsxLDMgQEAK
IAotRkFJTCBSVENEdGxzVHJhbnNwb3J0LnByb3RvdHlwZS5nZXRSZW1vdGVDZXJ0aWZpY2F0ZXMg
Q2FuJ3QgZmluZCB2YXJpYWJsZTogUlRDU2N0cFRyYW5zcG9ydAorRkFJTCBSVENEdGxzVHJhbnNw
b3J0LnByb3RvdHlwZS5nZXRSZW1vdGVDZXJ0aWZpY2F0ZXMgdW5kZWZpbmVkIGlzIG5vdCBhbiBv
YmplY3QgKGV2YWx1YXRpbmcgJ2R0bHNUcmFuc3BvcnQuc3RhdGUnKQogCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEdGxz
VHJhbnNwb3J0LWdldFJlbW90ZUNlcnRpZmljYXRlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDRHRsc1RyYW5zcG9ydC1nZXRSZW1v
dGVDZXJ0aWZpY2F0ZXMuaHRtbAppbmRleCA4YWY5NWE4NGQ1NzRlMjBmOWIwYmJmZjk2NGVkMDY0
ZTRlMTdlNjJmLi44OTllNjAzY2JlMGZlMWYwMjNjOGQ3NjMwNTVjNTc4ZWY2MmJiOTZmIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENEdGxzVHJhbnNwb3J0LWdldFJlbW90ZUNlcnRpZmljYXRlcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0R0bHNUcmFu
c3BvcnQtZ2V0UmVtb3RlQ2VydGlmaWNhdGVzLmh0bWwKQEAgLTQyLDIzICs0MiwxMyBAQAogICAg
IGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwogICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMyLmNsb3NlKCkpOwogCi0gICAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCd0ZXN0Jyk7
CisgICAgcGMxLmFkZFRyYWNrKHRyYWNrRmFjdG9yaWVzLmF1ZGlvKCkpOwogICAgIGV4Y2hhbmdl
SWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CiAKICAgICBleGNoYW5nZU9mZmVyQW5zd2VyKHBjMSwg
cGMyKQogICAgIC50aGVuKHQuc3RlcF9mdW5jKCgpID0+IHsKLSAgICAgIC8vIHBjLnNjdHAgaXMg
c2V0IHdoZW4gc2V0KkRlc2NyaXB0aW9uKGFuc3dlcikgaXMgY2FsbGVkCi0gICAgICBjb25zdCBz
Y3RwVHJhbnNwb3J0MSA9IHBjMS5zY3RwOwotICAgICAgY29uc3Qgc2N0cFRyYW5zcG9ydDIgPSBw
YzIuc2N0cDsKLQotICAgICAgYXNzZXJ0X3RydWUoc2N0cFRyYW5zcG9ydDEgaW5zdGFuY2VvZiBS
VENTY3RwVHJhbnNwb3J0LAotICAgICAgICAnRXhwZWN0IHBjLnNjdHAgdG8gYmUgc2V0IHRvIHZh
bGlkIFJUQ1NjdHBUcmFuc3BvcnQnKTsKLQotICAgICAgYXNzZXJ0X3RydWUoc2N0cFRyYW5zcG9y
dDIgaW5zdGFuY2VvZiBSVENTY3RwVHJhbnNwb3J0LAotICAgICAgICAnRXhwZWN0IHBjLnNjdHAg
dG8gYmUgc2V0IHRvIHZhbGlkIFJUQ1NjdHBUcmFuc3BvcnQnKTsKLQotICAgICAgY29uc3QgZHRs
c1RyYW5zcG9ydDEgPSBzY3RwVHJhbnNwb3J0MS50cmFuc3BvcnQ7Ci0gICAgICBjb25zdCBkdGxz
VHJhbnNwb3J0MiA9IHNjdHBUcmFuc3BvcnQyLnRyYW5zcG9ydDsKKyAgICAgIGNvbnN0IGR0bHNU
cmFuc3BvcnQxID0gcGMxLmdldFNlbmRlcnMoKVswXS50cmFuc3BvcnQ7CisgICAgICBjb25zdCBk
dGxzVHJhbnNwb3J0MiA9IHBjMi5nZXRSZWNlaXZlcnMoKVswXS50cmFuc3BvcnQ7CiAKICAgICAg
IGNvbnN0IHRlc3RlZFRyYW5zcG9ydHMgPSBuZXcgU2V0KCk7CiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLVNMRC1TUkQtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLVNM
RC1TUkQtdGltaW5nLmh0dHBzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wY2I3ZWI1NzkzNDg0
YjhjYTk1MTQ0NzE4NTY1ZTkyZmRhYjVlYjA2Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tU0xELVNSRC10aW1pbmcuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitG
QUlMIHNldExvY2FsRGVzY3JpcHRpb24gYW5kIHNldFJlbW90ZURlc2NyaXB0aW9uIGFyZSBub3Qg
cmFjeSBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0
ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBj
dXJyZW50IHNpZ25hbGluZyBzdGF0ZSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tU0xELVNS
RC10aW1pbmcuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLVNMRC1TUkQtdGltaW5nLmh0dHBzLmh0
bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMC4uMzZiZGUwNmM5NjM0MjY5YjE3Y2Q1NjViMjBiYzgwYjQxMWQxZDkyNQot
LS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLVNMRC1TUkQtdGltaW5nLmh0dHBzLmh0bWwK
QEAgLTAsMCArMSwyNCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04Pgor
PG1ldGEgbmFtZT0idGltZW91dCIgY29udGVudD0ibG9uZyI+Cis8dGl0bGU+PC90aXRsZT4KKzxz
Y3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNy
Yz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1
c2Ugc3RyaWN0JzsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYyA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkp
OworICBjb25zdCBzaWduYWxpbmdTdGF0ZXMgPSBbXTsKKyAgcGMub25zaWduYWxpbmdzdGF0ZWNo
YW5nZSA9IGV2ID0+IHNpZ25hbGluZ1N0YXRlcy5wdXNoKHBjLnNpZ25hbGluZ1N0YXRlKTsKKyAg
cGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJywge2RpcmVjdGlvbjoncmVjdm9ubHknfSk7CisgIGNv
bnN0IG9mZmVyID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgY29uc3Qgc2xkUHJvbWlzZSA9
IHBjLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBzcmRQcm9taXNlID0gcGMu
c2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICBhd2FpdCBQcm9taXNlLmFsbChbc2xkUHJv
bWlzZSwgc3JkUHJvbWlzZV0pOworICBhc3NlcnRfYXJyYXlfZXF1YWxzKHNpZ25hbGluZ1N0YXRl
cywKKyAgICAgICAgICAgICAgICAgICAgICBbJ2hhdmUtbG9jYWwtb2ZmZXInLCdzdGFibGUnLCdo
YXZlLXJlbW90ZS1vZmZlciddKTsKK30sICdzZXRMb2NhbERlc2NyaXB0aW9uIGFuZCBzZXRSZW1v
dGVEZXNjcmlwdGlvbiBhcmUgbm90IHJhY3knKTsKKworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtY29ubmVjdGlvblNldHVwLWV4cGVjdGVkLnR4dCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1jb25uZWN0aW9uU2V0dXAtZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjJjNTgzNzQzZDI3MjliNjczMGE2MmE5Zjk5ZTJjZmI5OTIyMzU4ZDcKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtY29ubmVjdGlvblNl
dHVwLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworRkFJTCBDYW5kaWRhdGVzIGFyZSBh
ZGRlZCBkeW5hbWljYWxseTsgY29ubmVjdGlvbiBzaG91bGQgd29yayBwcm9taXNlX3Rlc3Q6IFVu
aGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5l
ZCBpcyBub3QgYW4gb2JqZWN0IChldmFsdWF0aW5nICd0cmFuc3BvcnQuc3RhdGUnKSIKK0ZBSUwg
Q2FuZGlkYXRlcyBhcmUgYWRkZWQgYXQgUEMxOyBjb25uZWN0aW9uIHNob3VsZCB3b3JrIHByb21p
c2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIlR5cGVFcnJv
cjogdW5kZWZpbmVkIGlzIG5vdCBhbiBvYmplY3QgKGV2YWx1YXRpbmcgJ3RyYW5zcG9ydC5zdGF0
ZScpIgorRkFJTCBDYW5kaWRhdGVzIGFyZSBhZGRlZCBhdCBQQzI7IGNvbm5lY3Rpb24gc2hvdWxk
IHdvcmsgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVj
dCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAndHJh
bnNwb3J0LnN0YXRlJykiCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0
ZS1jb25uZWN0aW9uU2V0dXAuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1jb25u
ZWN0aW9uU2V0dXAuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xMWZjNGU0ZmEwYzIyMmRmNGUxNDY5YTUyNTgy
OTViZjM3MDM1MjNjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlk
YXRlLWNvbm5lY3Rpb25TZXR1cC5odG1sCkBAIC0wLDAgKzEsMTA2IEBACis8IWRvY3R5cGUgaHRt
bD4KKzx0aXRsZT5UZXN0IFJUQ1BlZXJDb25uZWN0aW9uLnByb3RvdHlwZS5hZGRJY2VDYW5kaWRh
dGU8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+
Cis8c2NyaXB0PgorICAndXNlIHN0cmljdCc7CisKKy8vIFRoaXMgdGVzdCBtYXkgYmUgZmxha3ks
IHNvIGl0J3MgaW4gaXRzIG93biBmaWxlLgorLy8gVGhlIHRlc3QgYmVsb25ncyBpbiBSVENQZWVy
Q29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuCisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsK
KyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5l
dyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgp
KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgIGNvbnN0IHRyYW5zY2Vp
dmVyID0gcGMxLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOworCisgIGV4Y2hhbmdlSWNlQ2FuZGlk
YXRlcyhwYzEsIHBjMik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXIocGMxLCBwYzIpOworICBjb25z
dCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgIC8vIE5vdGUgdGhhdCBzZXF1
ZW5jZSBvZiB0aGUgZm9sbG93aW5nIHR3byBjYWxscyBpcyBjcml0aWNhbAorICAvLyBmb3IgdGVz
dCBzdGFiaWxpdHkuCisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwor
ICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICBhd2FpdCB3YWl0Rm9y
U3RhdGUodHJhbnNjZWl2ZXIuc2VuZGVyLnRyYW5zcG9ydCwgJ2Nvbm5lY3RlZCcpOworfSwgJ0Nh
bmRpZGF0ZXMgYXJlIGFkZGVkIGR5bmFtaWNhbGx5OyBjb25uZWN0aW9uIHNob3VsZCB3b3JrJyk7
CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzIuY2xvc2UoKSk7CisgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMxLmFkZFRyYW5zY2VpdmVyKCd2
aWRlbycpOworCisgIGxldCBjYW5kaWRhdGVzMXRvMiA9IFtdOworICBsZXQgY2FuZGlkYXRlczJ0
bzEgPSBbXTsKKyAgcGMxLm9uaWNlY2FuZGlkYXRlID0gZXZlbnQgPT4geworICAgIGlmIChldmVu
dC5jYW5kaWRhdGUpIHsKKyAgICAgIGNhbmRpZGF0ZXMxdG8yLnB1c2goZXZlbnQuY2FuZGlkYXRl
KTsKKyAgICB9CisgIH0KKyAgcGMyLm9uaWNlY2FuZGlkYXRlID0gZXZlbnQgPT4geworICAgIGlm
IChldmVudC5jYW5kaWRhdGUpIHsKKyAgICAgIGNhbmRpZGF0ZXMydG8xLnB1c2goZXZlbnQuY2Fu
ZGlkYXRlKTsKKyAgICB9CisgIH0KKyAgY29uc3QgcGMyR2F0aGVyZWRDYW5kaWRhdGVzID0gbmV3
IFByb21pc2UoKHJlc29sdmUpID0+IHsKKyAgICBwYzIuYWRkRXZlbnRMaXN0ZW5lcignaWNlZ2F0
aGVyaW5nc3RhdGVjaGFuZ2UnLCAoKSA9PiB7CisgICAgICBpZiAocGMyLmljZUdhdGhlcmluZ1N0
YXRlID09ICdjb21wbGV0ZScpIHsKKyAgICAgICAgcmVzb2x2ZSgpOworICAgICAgfQorICAgIH0p
OworICB9KTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlcihwYzEsIHBjMik7CisgIGxldCBhbnN3ZXIg
PSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlw
dGlvbihhbnN3ZXIpOworICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOwor
ICBhd2FpdCBwYzJHYXRoZXJlZENhbmRpZGF0ZXM7CisgIC8vIEFkZCBjYW5kaWRhdGVzIHRvIHBj
MSwgZW5zdXJpbmcgdGhhdCBpdCBnb2VzIHRvICJjb25uZWN0aW5nIiBzdGF0ZSBiZWZvcmUgImNv
bm5lY3RlZCIuCisgIGZvciAobGV0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzMnRvMSkgeworICAg
IGF3YWl0IHBjMS5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsKKyAgfQorICBhd2FpdCB3YWl0
Rm9yU3RhdGUodHJhbnNjZWl2ZXIuc2VuZGVyLnRyYW5zcG9ydCwgJ2Nvbm5lY3RpbmcnKTsKKyAg
YXdhaXQgd2FpdEZvclN0YXRlKHRyYW5zY2VpdmVyLnNlbmRlci50cmFuc3BvcnQsICdjb25uZWN0
ZWQnKTsKK30sICdDYW5kaWRhdGVzIGFyZSBhZGRlZCBhdCBQQzE7IGNvbm5lY3Rpb24gc2hvdWxk
IHdvcmsnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBwYzEgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKKyAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYzEuYWRkVHJhbnNj
ZWl2ZXIoJ3ZpZGVvJyk7CisKKyAgbGV0IGNhbmRpZGF0ZXMxdG8yID0gW107CisgIGxldCBjYW5k
aWRhdGVzMnRvMSA9IFtdOworICBwYzEub25pY2VjYW5kaWRhdGUgPSBldmVudCA9PiB7CisgICAg
aWYgKGV2ZW50LmNhbmRpZGF0ZSkgeworICAgICAgY2FuZGlkYXRlczF0bzIucHVzaChldmVudC5j
YW5kaWRhdGUpOworICAgIH0KKyAgfQorICBwYzIub25pY2VjYW5kaWRhdGUgPSBldmVudCA9PiB7
CisgICAgaWYgKGV2ZW50LmNhbmRpZGF0ZSkgeworICAgICAgY2FuZGlkYXRlczJ0bzEucHVzaChl
dmVudC5jYW5kaWRhdGUpOworICAgIH0KKyAgfQorICBjb25zdCBwYzFHYXRoZXJlZENhbmRpZGF0
ZXMgPSBuZXcgUHJvbWlzZSgocmVzb2x2ZSkgPT4geworICAgIHBjMS5hZGRFdmVudExpc3RlbmVy
KCdpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZScsICgpID0+IHsKKyAgICAgIGlmIChwYzEuaWNlR2F0
aGVyaW5nU3RhdGUgPT0gJ2NvbXBsZXRlJykgeworICAgICAgICByZXNvbHZlKCk7CisgICAgICB9
CisgICAgfSk7CisgIH0pOworICBhd2FpdCBleGNoYW5nZU9mZmVyKHBjMSwgcGMyKTsKKyAgbGV0
IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgcGMxLnNldFJlbW90
ZURlc2NyaXB0aW9uKGFuc3dlcik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFu
c3dlcik7CisgIGF3YWl0IHBjMUdhdGhlcmVkQ2FuZGlkYXRlczsKKyAgLy8gQWRkIGNhbmRpZGF0
ZXMgdG8gcGMyCisgIGZvciAobGV0IGNhbmRpZGF0ZSBvZiBjYW5kaWRhdGVzMXRvMikgeworICAg
IGF3YWl0IHBjMi5hZGRJY2VDYW5kaWRhdGUoY2FuZGlkYXRlKTsKKyAgfQorICBhd2FpdCB3YWl0
Rm9yU3RhdGUodHJhbnNjZWl2ZXIuc2VuZGVyLnRyYW5zcG9ydCwgJ2Nvbm5lY3RlZCcpOworfSwg
J0NhbmRpZGF0ZXMgYXJlIGFkZGVkIGF0IFBDMjsgY29ubmVjdGlvbiBzaG91bGQgd29yaycpOwor
Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZEljZUNhbmRpZGF0ZS1leHBl
Y3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUtZXhwZWN0ZWQudHh0CmluZGV4
IGM2ZTM5NGZiYTJmY2ZhMGMzY2Y2Njc2NDk4MjE2ZWNjZjIwNGEyOGQuLjY2YzAwYWM1NWFiYmVk
NjIwZTZjMzIwYWM2MDg5YmI2NzkyYjExYWYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWFkZElj
ZUNhbmRpZGF0ZS1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRl
LWV4cGVjdGVkLnR4dApAQCAtOCw3ICs4LDcgQEAgRkFJTCBhZGRJY2VDYW5kaWRhdGUoe30pIGlu
IHN0YWJsZSBzaG91bGQgd29yaywgYW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIGIKIEZB
SUwgYWRkSWNlQ2FuZGlkYXRlKHt1c2VybmFtZUZyYWdtZW50OiB1c2VybmFtZUZyYWdtZW50MSwg
c2RwTWlkOiBzZHBNaWQxfSkgc2hvdWxkIHdvcmssIGFuZCBhZGQgYT1lbmQtb2YtY2FuZGlkYXRl
cyB0byB0aGUgZmlyc3QgbS1zZWN0aW9uIGFzc2VydF90cnVlOiBFeHBlY3QgY2FuZGlkYXRlIGxp
bmUgdG8gYmUgZm91bmQgYmV0d2VlbiBtZWRpYSBsaW5lcyBtPWF1ZGlvIGFuZCBtPXZpZGVvIGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIGFkZEljZUNhbmRpZGF0ZSh7dXNlcm5hbWVGcmFn
bWVudDogdXNlcm5hbWVGcmFnbWVudDIsIHNkcE1MaW5lSW5kZXg6IDF9KSBzaG91bGQgd29yaywg
YW5kIGFkZCBhPWVuZC1vZi1jYW5kaWRhdGVzIHRvIHRoZSBmaXJzdCBtLXNlY3Rpb24gYXNzZXJ0
X3RydWU6IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCiBGQUlMIGFkZEljZUNhbmRpZGF0ZSh7dXNl
cm5hbWVGcmFnbWVudDogIm5vIHN1Y2ggdWZyYWcifSkgc2hvdWxkIG5vdCB3b3JrIGFzc2VydF91
bnJlYWNoZWQ6IFNob3VsZCBoYXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNo
YWJsZSBjb2RlCi1QQVNTIEFkZCBJQ0UgY2FuZGlkYXRlIGFmdGVyIHNldHRpbmcgcmVtb3RlIGRl
c2NyaXB0aW9uIHNob3VsZCBzdWNjZWVkCitGQUlMIEFkZCBJQ0UgY2FuZGlkYXRlIGFmdGVyIHNl
dHRpbmcgcmVtb3RlIGRlc2NyaXB0aW9uIHNob3VsZCBzdWNjZWVkIGFzc2VydF90cnVlOiBFeHBl
Y3QgY2FuZGlkYXRlIGxpbmUgdG8gYmUgZm91bmQgYWZ0ZXIgbWVkaWEgbGluZSBtPWF1ZGlvIGV4
cGVjdGVkIHRydWUgZ290IGZhbHNlCiBQQVNTIEFkZCBJQ0UgY2FuZGlkYXRlIHdpdGggUlRDSWNl
Q2FuZGlkYXRlIHNob3VsZCBzdWNjZWVkCiBQQVNTIEFkZCBjYW5kaWRhdGUgd2l0aCBvbmx5IHZh
bGlkIHNkcE1pZCBzaG91bGQgc3VjY2VlZAogUEFTUyBBZGQgY2FuZGlkYXRlIHdpdGggb25seSB2
YWxpZCBzZHBNaWQgYW5kIFJUQ0ljZUNhbmRpZGF0ZSBzaG91bGQgc3VjY2VlZApkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UGVlckNvbm5lY3Rpb24tYWRkSWNlQ2FuZGlkYXRlLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VD
YW5kaWRhdGUuaHRtbAppbmRleCBjNjhlNDQyYTJkNTA5NGYyMmQ1MDhlYzhiNjgwNGJjMmE1OGQw
NzJmLi41ZmNiNmU4NjRhOGEyMjNkNTA2MmIyMmI3YThmNWU4OWZiZjlkNGNiIDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJ
Y2VDYW5kaWRhdGUuaHRtbApAQCAtMiw2ICsyLDcgQEAKIDx0aXRsZT5UZXN0IFJUQ1BlZXJDb25u
ZWN0aW9uLnByb3RvdHlwZS5hZGRJY2VDYW5kaWRhdGU8L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9y
ZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJj
ZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJD
b25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+CiA8c2NyaXB0PgogICAndXNlIHN0cmljdCc7
CiAKQEAgLTIyNCwxOCArMjI1LDIwIEBAIGE9cnRjcC1yc2l6ZQogICAgICAgcGMuYWRkSWNlQ2Fu
ZGlkYXRlKHt1c2VybmFtZUZyYWdtZW50OiAibm8gc3VjaCB1ZnJhZyJ9KSk7CiAgIH0sICdhZGRJ
Y2VDYW5kaWRhdGUoe3VzZXJuYW1lRnJhZ21lbnQ6ICJubyBzdWNoIHVmcmFnIn0pIHNob3VsZCBu
b3Qgd29yaycpOwogCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CiAKICAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogCi0gICAgcmV0dXJuIHBjLnNldFJlbW90
ZURlc2NyaXB0aW9uKHNlc3Npb25EZXNjKQotICAgIC50aGVuKCgpID0+IHBjLmFkZEljZUNhbmRp
ZGF0ZSh7CisgICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRlc2MpCisg
ICAgYXdhaXQgcGMuYWRkSWNlQ2FuZGlkYXRlKHsKICAgICAgIGNhbmRpZGF0ZTogY2FuZGlkYXRl
U3RyMSwKICAgICAgIHNkcE1pZDogc2RwTWlkMSwKICAgICAgIHNkcE1MaW5lSW5kZXg6IHNkcE1M
aW5lSW5kZXgxLAogICAgICAgdXNlcm5hbWVGcmFnZW1lbnQ6IHVzZXJuYW1lRnJhZ21lbnQxCi0g
ICAgfSkpOworICAgIH0pOworICAgIGFzc2VydF9jYW5kaWRhdGVfbGluZV9hZnRlcihwYy5yZW1v
dGVEZXNjcmlwdGlvbi5zZHAsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1lZGlh
TGluZTEsIGNhbmRpZGF0ZVN0cjEpOwogICB9LCAnQWRkIElDRSBjYW5kaWRhdGUgYWZ0ZXIgc2V0
dGluZyByZW1vdGUgZGVzY3JpcHRpb24gc2hvdWxkIHN1Y2NlZWQnKTsKIAogICBwcm9taXNlX3Rl
c3QodCA9PiB7CkBAIC0yNTYsNyArMjU5LDYgQEAgYT1ydGNwLXJzaXplCiAgICAgY29uc3QgcGMg
PSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKIAogICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMu
Y2xvc2UoKSk7Ci0KICAgICByZXR1cm4gcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oc2Vzc2lvbkRl
c2MpCiAgICAgICAudGhlbigoKSA9PiBwYy5hZGRJY2VDYW5kaWRhdGUoewogICAgICAgICBjYW5k
aWRhdGU6IGNhbmRpZGF0ZVN0cjEsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5kaWRhdGUt
aW4tc2RwLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAu
aHR0cHMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmVlZmY3ZTNlODVhMzEzZTE1ZTJkMWU3YjA5
ZWQ0MDI0ODNhYmZjNTIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5kaWRhdGUt
aW4tc2RwLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKKworUEFTUyBsb2NhbERl
c2NyaXB0aW9uIGNvbnRhaW5zIGNhbmRpZGF0ZXMKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
Y2FuZGlkYXRlLWluLXNkcC5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FuZGlkYXRlLWluLXNk
cC5odHRwcy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjZjOTdhZmU5NGFlNTk3NDM4OTZjOWQyNmJiODUwY2M3
NTRmNTdlNWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jYW5kaWRhdGUtaW4tc2Rw
Lmh0dHBzLmh0bWwKQEAgLTAsMCArMSwyNiBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFy
c2V0PXV0Zi04PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2Ny
aXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4g
eworICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjLmNsb3NlKCkpOworICBsZXQgcmVzb2x2ZUljZUNhbmRpZGF0ZVByb21pc2UgPSBu
dWxsOworICBjb25zdCBpY2VDYW5kaWRhdGVQcm9taXNlID0gbmV3IFByb21pc2UociA9PiByZXNv
bHZlSWNlQ2FuZGlkYXRlUHJvbWlzZSA9IHIpOworICBwYy5vbmljZWNhbmRpZGF0ZSA9IGUgPT4g
eworICAgIHJlc29sdmVJY2VDYW5kaWRhdGVQcm9taXNlKHBjLmxvY2FsRGVzY3JpcHRpb24uc2Rw
KTsKKyAgICBwYy5vbmljZWNhbmRpZGF0ZSA9IG51bGw7CisgIH0KKyAgcGMuYWRkVHJhbnNjZWl2
ZXIoImF1ZGlvIik7CisgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMuY3Jl
YXRlT2ZmZXIoKSk7CisgIGFzc2VydF9mYWxzZShwYy5sb2NhbERlc2NyaXB0aW9uLnNkcC5pbmNs
dWRlcygiYT1jYW5kaWRhdGU6IiksCisgICAgICAgICAgICAgICAibG9jYWxEZXNjcmlwdGlvbiBp
cyBtaXNzaW5nIGNhbmRpZGF0ZSBiZWZvcmUgb25pY2VjYW5kaWRhdGUiKTsKKyAgLy8gVGhlIGxv
Y2FsRGVzY3JpcHRpb24gYXQgdGhlIHRpbWUgb2YgdGhlIG9uaWNlY2FuZGlkYXRlIGV2ZW50Lgor
ICBjb25zdCBsb2NhbERlc2NyaXB0aW9uU2RwID0gYXdhaXQgaWNlQ2FuZGlkYXRlUHJvbWlzZTsK
KyAgYXNzZXJ0X3RydWUobG9jYWxEZXNjcmlwdGlvblNkcC5pbmNsdWRlcygiYT1jYW5kaWRhdGU6
IiksCisgICAgICAgICAgICAgICAibG9jYWxEZXNjcmlwdGlvbiBjb250YWlucyBjYW5kaWRhdGUg
YWZ0ZXIgb25pY2VjYW5kaWRhdGUiKTsKK30sICdsb2NhbERlc2NyaXB0aW9uIGNvbnRhaW5zIGNh
bmRpZGF0ZXMnKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29ubmVjdGlv
blN0YXRlLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRt
bAppbmRleCA1ZGI4MjcyZGYzMDcyNjBmOWRiMGM0MzMzYzIzYzdhZDRjNDQzMmI2Li5kNzcxNmEx
ZDRkYTE5YWNhZjNiZDhjMDE2NTQzZGQxYzc1YjQ3MWQ2IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1jb25uZWN0aW9uU3RhdGUuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jb25uZWN0aW9u
U3RhdGUuaHR0cHMuaHRtbApAQCAtMjg1LDcgKzI4NSw3IEBACiAKICAgICBwYzIub25jb25uZWN0
aW9uc3RhdGVjaGFuZ2UgPSB0LnVucmVhY2hlZF9mdW5jKCk7CiAgICAgcGMyLmNsb3NlKCk7Ci0g
ICAgYXNzZXJ0X3RydWUocGMyLmNvbm5lY3Rpb25TdGF0ZSA9PT0gJ2Nsb3NlZCcpOworICAgIGFz
c2VydF9lcXVhbHMocGMyLmNvbm5lY3Rpb25TdGF0ZSwgJ2Nsb3NlZCcpOwogICAgIGF3YWl0IG5l
dyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgMTAwKSk7CiAgIH0sICdDbG9zaW5nIGEg
UGVlckNvbm5lY3Rpb24gc2hvdWxkIG5vdCBmaXJlIGNvbm5lY3Rpb25zdGF0ZWNoYW5nZSBldmVu
dCcpOwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRhQ2hhbm5l
bC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRhQ2hhbm5lbC1leHBlY3RlZC50
eHQKaW5kZXggYTg3OTAwYzExMjk2ZTAyZDRmZjIyMmUwZDgyZjEwYmRjMzg4ZWQ4Ni4uZDVjOTU5
NzNlNzE4ZWJiN2RlNjE3NDkyMWJhOWEyNjIzMzc5ZTZlZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tY3JlYXRlRGF0YUNoYW5uZWwtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0
ZURhdGFDaGFubmVsLWV4cGVjdGVkLnR4dApAQCAtNzAsOSArNzAsNyBAQCBGQUlMIFJldXNpbmcg
YSBkYXRhIGNoYW5uZWwgaWQgdGhhdCBpcyBpbiB1c2UgKGFmdGVyIHNldFJlbW90ZURlc2NyaXB0
aW9uLCBuZWdvdAogUEFTUyBOZXcgZGF0YWNoYW5uZWwgc2hvdWxkIGJlIGluIHRoZSBjb25uZWN0
aW5nIHN0YXRlIGFmdGVyIGNyZWF0aW9uIChhZnRlciBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQp
CiBQQVNTIGFkZFRyYWNrLCB0aGVuIGNyZWF0aW5nIGRhdGFjaGFubmVsLCBzaG91bGQgbmVnb3Rp
YXRlIHByb3Blcmx5CiBQQVNTIGFkZFRyYWNrLCB0aGVuIGNyZWF0aW5nIGRhdGFjaGFubmVsLCBz
aG91bGQgbmVnb3RpYXRlIHByb3Blcmx5IHdoZW4gbWF4LWJ1bmRsZSBpcyB1c2VkCi1GQUlMIFN0
b3BwaW5nIHRoZSBidW5kbGUtdGFnIHdoZW4gdGhlcmUgaXMgYSBkYXRhY2hhbm5lbCBpbiB0aGUg
YnVuZGxlIHNob3VsZCBraWxsIHRoZSBEYXRhQ2hhbm5lbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJPcGVyYXRpb25FcnJvcjogRmFpbGVkIHRv
IHNldCBsb2NhbCBhbnN3ZXIgc2RwOiBGYWlsZWQgdG8gYXBwbHkgdGhlIGRlc2NyaXB0aW9uIGZv
ciBtPSBzZWN0aW9uIHdpdGggbWlkPScxJzogRmFpbGVkIHRvIHNldHVwIFJUQ1AgbXV4LiIKIFBB
U1MgTmV3IG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwgc2hvdWxkIGJlIGluIHRoZSBjb25uZWN0aW5n
IHN0YXRlIGFmdGVyIGNyZWF0aW9uIChhZnRlciBjb25uZWN0aW9uIGVzdGFibGlzaG1lbnQpCiBQ
QVNTIGFkZFRyYWNrLCB0aGVuIGNyZWF0aW5nIG5lZ290aWF0ZWQgZGF0YWNoYW5uZWwsIHNob3Vs
ZCBuZWdvdGlhdGUgcHJvcGVybHkKIFBBU1MgYWRkVHJhY2ssIHRoZW4gY3JlYXRpbmcgbmVnb3Rp
YXRlZCBkYXRhY2hhbm5lbCwgc2hvdWxkIG5lZ290aWF0ZSBwcm9wZXJseSB3aGVuIG1heC1idW5k
bGUgaXMgdXNlZAotRkFJTCBTdG9wcGluZyB0aGUgYnVuZGxlLXRhZyB3aGVuIHRoZXJlIGlzIGEg
bmVnb3RpYXRlZCBkYXRhY2hhbm5lbCBpbiB0aGUgYnVuZGxlIHNob3VsZCBraWxsIHRoZSBEYXRh
Q2hhbm5lbCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2Jq
ZWN0ICJPcGVyYXRpb25FcnJvcjogRmFpbGVkIHRvIHNldCBsb2NhbCBhbnN3ZXIgc2RwOiBGYWls
ZWQgdG8gYXBwbHkgdGhlIGRlc2NyaXB0aW9uIGZvciBtPSBzZWN0aW9uIHdpdGggbWlkPScxJzog
RmFpbGVkIHRvIHNldHVwIFJUQ1AgbXV4LiIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3Jl
YXRlRGF0YUNoYW5uZWwuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZURhdGFDaGFubmVsLmh0bWwK
aW5kZXggODc4Njc2NjRiNThhNjc4N2JkOTZjZmI4NTU1OWI0ZjExNzFlMjYzZi4uN2FkOGJmN2Q0
NmVjZDdhMzcwMjU0MmQ4YjQ4NDEzMmFmY2M5NGQ2MyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
Y3JlYXRlRGF0YUNoYW5uZWwuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1jcmVhdGVEYXRhQ2hhbm5l
bC5odG1sCkBAIC03MDcsNiArNzA3LDExIEBAIGZvciAoY29uc3Qgb3B0aW9ucyBvZiBbe30sIHtu
ZWdvdGlhdGVkOiB0cnVlLCBpZDogMH1dKSB7CiAgICAgYXdhaXQgY3JlYXRlRGF0YUNoYW5uZWxQ
YWlyKHQsIG9wdGlvbnMsIHBjMSk7CiAgIH0sIGBhZGRUcmFjaywgdGhlbiBjcmVhdGluZyAke21v
ZGV9LCBzaG91bGQgbmVnb3RpYXRlIHByb3Blcmx5IHdoZW4gbWF4LWJ1bmRsZSBpcyB1c2VkYCk7
CiAKKy8qCitUaGlzIHRlc3QgaXMgZGlzYWJsZWQgdW50aWwgaHR0cHM6Ly9naXRodWIuY29tL3cz
Yy93ZWJydGMtcGMvaXNzdWVzLzI1NjIKK2hhcyBiZWVuIHJlc29sdmVkOyBpdCBwcmVzdXBwb3Nl
cyB0aGF0IHN0b3BwaW5nIHRoZSBmaXJzdCB0cmFuc2NlaXZlcgorYnJlYWtzIHRoZSB0cmFuc3Bv
cnQuCisKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBjMSA9IG5ldyBS
VENQZWVyQ29ubmVjdGlvbih7YnVuZGxlUG9saWN5OiAibWF4LWJ1bmRsZSJ9KTsKICAgICBjb25z
dCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKQEAgLTcyNiw2ICs3MzEsNyBAQCBmb3Ig
KGNvbnN0IG9wdGlvbnMgb2YgW3t9LCB7bmVnb3RpYXRlZDogdHJ1ZSwgaWQ6IDB9XSkgewogICAg
IGF3YWl0IGRjMUNsb3NlZDsKICAgfSwgYFN0b3BwaW5nIHRoZSBidW5kbGUtdGFnIHdoZW4gdGhl
cmUgaXMgYSAke21vZGV9IGluIHRoZSBidW5kbGUgYCArCiAgICAgIGBzaG91bGQga2lsbCB0aGUg
RGF0YUNoYW5uZWxgKTsKKyovCiB9CiAKIC8qCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1kZXNj
cmlwdGlvbi1hdHRyaWJ1dGVzLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1kZXNjcmlwdGlvbi1hdHRyaWJ1dGVzLXRpbWluZy5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uZjEzN2JmYjg1ZDYyYzI0NGQ4MGVjNWQzM2RlYTc4ZDJkZTA0ZjE4MQotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWRlc2NyaXB0aW9uLWF0dHJpYnV0ZXMtdGltaW5nLmh0dHBz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDYgQEAKKworRkFJTCBwZW5kaW5nTG9jYWxEZXNjcmlw
dGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQgdGltZSBhc3NlcnRfZXF1YWxzOiBwZW5kaW5n
TG9jYWxEZXNjcmlwdGlvbiBpcyBzdGlsbCBudWxsIHdoaWxlIHByb21pc2UgcGVuZGluZyBleHBl
Y3RlZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbl0i
CitGQUlMIHBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQg
dGltZSBhc3NlcnRfZXF1YWxzOiBwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVs
bCB3aGlsZSBwcm9taXNlIHBlbmRpbmcgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29i
amVjdCBSVENTZXNzaW9uRGVzY3JpcHRpb25dIgorRkFJTCBjdXJyZW50TG9jYWxEZXNjcmlwdGlv
biBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQgdGltZSBhc3NlcnRfZXF1YWxzOiBjdXJyZW50TG9j
YWxEZXNjcmlwdGlvbiBpcyBzdGlsbCBudWxsIHdoaWxlIHByb21pc2UgcGVuZGluZyBleHBlY3Rl
ZCBudWxsIGJ1dCBnb3Qgb2JqZWN0ICJbb2JqZWN0IFJUQ1Nlc3Npb25EZXNjcmlwdGlvbl0iCitG
QUlMIGN1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQgdGlt
ZSBhc3NlcnRfZXF1YWxzOiBjdXJyZW50UmVtb3RlRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVsbCB3
aGlsZSBwcm9taXNlIHBlbmRpbmcgZXhwZWN0ZWQgbnVsbCBidXQgZ290IG9iamVjdCAiW29iamVj
dCBSVENTZXNzaW9uRGVzY3JpcHRpb25dIgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1kZXNj
cmlwdGlvbi1hdHRyaWJ1dGVzLXRpbWluZy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZGVzY3Jp
cHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yZDI1NjVjM2Ux
ZTA3MzRhNDIyMzE1MjJkNzcxMjk1MDY0OTFkMmMxCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tZGVzY3JpcHRpb24tYXR0cmlidXRlcy10aW1pbmcuaHR0cHMuaHRtbApAQCAtMCwwICsx
LDgxIEBACis8IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8dGl0bGU+PC90
aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8
c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzPjwvc2NyaXB0PgorPHNj
cmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25z
dCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
LmNsb3NlKCkpOworICBjb25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisKKyAg
YXNzZXJ0X2VxdWFscyhwYy5wZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAgICAg
ICAgICAgICAncGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gaXMgbnVsbCBiZWZvcmUgc2V0TG9jYWxE
ZXNjcmlwdGlvbicpOworICBjb25zdCBwcm9taXNlID0gcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihv
ZmZlcik7CisgIGFzc2VydF9lcXVhbHMocGMucGVuZGluZ0xvY2FsRGVzY3JpcHRpb24sIG51bGws
CisgICAgICAgICAgICAgICAgJ3BlbmRpbmdMb2NhbERlc2NyaXB0aW9uIGlzIHN0aWxsIG51bGwg
d2hpbGUgcHJvbWlzZSBwZW5kaW5nJyk7CisgIGF3YWl0IHByb21pc2U7CisgIGFzc2VydF9ub3Rf
ZXF1YWxzKHBjLnBlbmRpbmdMb2NhbERlc2NyaXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAg
ICAgICAncGVuZGluZ0xvY2FsRGVzY3JpcHRpb24gaXMgbm90IG51bGwgYWZ0ZXIgYXdhaXQnKTsK
K30sICJwZW5kaW5nTG9jYWxEZXNjcmlwdGlvbiBpcyBzdXJmYWNlZCBhdCB0aGUgcmlnaHQgdGlt
ZSIpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGNv
bnN0IG9mZmVyID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKworICBhc3NlcnRfZXF1YWxzKHBj
LnBlbmRpbmdSZW1vdGVEZXNjcmlwdGlvbiwgbnVsbCwKKyAgICAgICAgICAgICAgICAncGVuZGlu
Z1JlbW90ZURlc2NyaXB0aW9uIGlzIG51bGwgYmVmb3JlIHNldFJlbW90ZURlc2NyaXB0aW9uJyk7
CisgIGNvbnN0IHByb21pc2UgPSBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcik7CisgIGFz
c2VydF9lcXVhbHMocGMucGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uLCBudWxsLAorICAgICAgICAg
ICAgICAgICdwZW5kaW5nUmVtb3RlRGVzY3JpcHRpb24gaXMgc3RpbGwgbnVsbCB3aGlsZSBwcm9t
aXNlIHBlbmRpbmcnKTsKKyAgYXdhaXQgcHJvbWlzZTsKKyAgYXNzZXJ0X25vdF9lcXVhbHMocGMu
cGVuZGluZ1JlbW90ZURlc2NyaXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAgICAgICAncGVu
ZGluZ1JlbW90ZURlc2NyaXB0aW9uIGlzIG5vdCBudWxsIGFmdGVyIGF3YWl0Jyk7Cit9LCAicGVu
ZGluZ1JlbW90ZURlc2NyaXB0aW9uIGlzIHN1cmZhY2VkIGF0IHRoZSByaWdodCB0aW1lIik7CisK
K3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBw
YzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIu
Y2xvc2UoKSk7CisKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAg
YXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOworICBhd2FpdCBwYzIuc2V0UmVt
b3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25zdCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRl
QW5zd2VyKCk7CisKKyAgYXNzZXJ0X2VxdWFscyhwYzIuY3VycmVudExvY2FsRGVzY3JpcHRpb24s
IG51bGwsCisgICAgICAgICAgICAgICAgJ2N1cnJlbnRMb2NhbERlc2NyaXB0aW9uIGlzIG51bGwg
YmVmb3JlIHNldExvY2FsRGVzY3JpcHRpb24nKTsKKyAgY29uc3QgcHJvbWlzZSA9IHBjMi5zZXRM
b2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgIGFzc2VydF9lcXVhbHMocGMyLmN1cnJlbnRMb2Nh
bERlc2NyaXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAgICdjdXJyZW50TG9jYWxEZXNjcmlw
dGlvbiBpcyBzdGlsbCBudWxsIHdoaWxlIHByb21pc2UgcGVuZGluZycpOworICBhd2FpdCBwcm9t
aXNlOworICBhc3NlcnRfbm90X2VxdWFscyhwYzIuY3VycmVudExvY2FsRGVzY3JpcHRpb24sIG51
bGwsCisgICAgICAgICAgICAgICAgICAgICdjdXJyZW50TG9jYWxEZXNjcmlwdGlvbiBpcyBub3Qg
bnVsbCBhZnRlciBhd2FpdCcpOworfSwgImN1cnJlbnRMb2NhbERlc2NyaXB0aW9uIGlzIHN1cmZh
Y2VkIGF0IHRoZSByaWdodCB0aW1lIik7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAg
Y29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMxLmNsb3NlKCkpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgY29uc3Qgb2ZmZXIgPSBh
d2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24o
b2ZmZXIpOworICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICBjb25z
dCBhbnN3ZXIgPSBhd2FpdCBwYzIuY3JlYXRlQW5zd2VyKCk7CisKKyAgYXNzZXJ0X2VxdWFscyhw
YzEuY3VycmVudFJlbW90ZURlc2NyaXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAgICdjdXJy
ZW50UmVtb3RlRGVzY3JpcHRpb24gaXMgbnVsbCBiZWZvcmUgc2V0UmVtb3RlRGVzY3JpcHRpb24n
KTsKKyAgY29uc3QgcHJvbWlzZSA9IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwor
ICBhc3NlcnRfZXF1YWxzKHBjMS5jdXJyZW50UmVtb3RlRGVzY3JpcHRpb24sIG51bGwsCisgICAg
ICAgICAgICAgICAgJ2N1cnJlbnRSZW1vdGVEZXNjcmlwdGlvbiBpcyBzdGlsbCBudWxsIHdoaWxl
IHByb21pc2UgcGVuZGluZycpOworICBhd2FpdCBwcm9taXNlOworICBhc3NlcnRfbm90X2VxdWFs
cyhwYzEuY3VycmVudFJlbW90ZURlc2NyaXB0aW9uLCBudWxsLAorICAgICAgICAgICAgICAgICAg
ICAnY3VycmVudFJlbW90ZURlc2NyaXB0aW9uIGlzIG5vdCBudWxsIGFmdGVyIGF3YWl0Jyk7Cit9
LCAiY3VycmVudFJlbW90ZURlc2NyaXB0aW9uIGlzIHN1cmZhY2VkIGF0IHRoZSByaWdodCB0aW1l
Iik7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZXhwbGljaXQtcm9sbGJh
Y2staWNlR2F0aGVyaW5nU3RhdGUtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZXhwbGljaXQt
cm9sbGJhY2staWNlR2F0aGVyaW5nU3RhdGUtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmIzNWQ3
MjRiMThhZDFhZDliY2FjZDE0OGI3ZWMzY2ViZDYxYTJkMzgKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi1leHBsaWNpdC1yb2xsYmFjay1pY2VHYXRoZXJpbmdTdGF0ZS1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSw3IEBACisKK0hhcm5lc3MgRXJyb3IgKFRJTUVPVVQpLCBtZXNzYWdlID0g
bnVsbAorCitUSU1FT1VUIHJvbGxpbmcgYmFjayBhbiBJQ0UgcmVzdGFydCB3aGVuIGdhdGhlcmlu
ZyBpcyBjb21wbGV0ZSBzaG91bGQgbm90IHJlc3VsdCBpbiBpY2VHYXRoZXJpbmdTdGF0ZSBjaGFu
Z2VzIFRlc3QgdGltZWQgb3V0CitOT1RSVU4gc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFjaykg
b2Ygb3JpZ2luYWwgb2ZmZXIgc2hvdWxkIGNhdXNlIGljZUdhdGhlcmluZ1N0YXRlIHRvIHJlYWNo
ICJuZXciIHdoZW4gc3RhcnRpbmcgaW4gImNvbXBsZXRlIgorTk9UUlVOIHNldExvY2FsRGVzY3Jp
cHRpb24ocm9sbGJhY2spIG9mIG9yaWdpbmFsIG9mZmVyIHNob3VsZCBjYXVzZSBpY2VHYXRoZXJp
bmdTdGF0ZSB0byByZWFjaCAibmV3IiB3aGVuIHN0YXJ0aW5nIGluICJnYXRoZXJpbmciCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWV4cGxpY2l0LXJvbGxiYWNrLWljZUdhdGhlcmluZ1N0YXRl
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1leHBsaWNpdC1yb2xsYmFjay1pY2VHYXRoZXJpbmdTdGF0ZS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjljMWZlMDE0YmQ5ZWUxOGJiNmE5YWI2NWVhN2FhM2VlYmJjZTEyMDAK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1leHBsaWNpdC1yb2xsYmFjay1pY2VHYXRo
ZXJpbmdTdGF0ZS5odG1sCkBAIC0wLDAgKzEsNTAgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENQZWVyQ29ubmVjdGlvbi5wcm90b3R5cGUuaWNlR2F0
aGVyaW5nU3RhdGU8L3RpdGxlPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+
PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJpY3QnOworCitwcm9taXNlX3Rlc3QoYXN5bmMg
dCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBhd2FpdCBp
bml0aWFsT2ZmZXJBbnN3ZXJXaXRoSWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucygKKyAgICAg
IHBjMSwgcGMyLCB7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pOworICBhd2FpdCBwYzEuc2V0
TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoe2ljZVJlc3RhcnQ6IHRydWV9
KSk7CisgIGF3YWl0IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMxLCAnZ2F0aGVyaW5n
JywgJ2NvbXBsZXRlJyk7CisgIGV4cGVjdE5vTW9yZUdhdGhlcmluZ1N0YXRlQ2hhbmdlcyh0LCBw
YzEpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogJ3JvbGxiYWNrJ30p
OworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDEwMDApKTsKK30s
ICdyb2xsaW5nIGJhY2sgYW4gSUNFIHJlc3RhcnQgd2hlbiBnYXRoZXJpbmcgaXMgY29tcGxldGUg
c2hvdWxkIG5vdCByZXN1bHQgaW4gaWNlR2F0aGVyaW5nU3RhdGUgY2hhbmdlcycpOworCitwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
KCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGF3YWl0IHBjLnNldExv
Y2FsRGVzY3JpcHRpb24oCisgICAgYXdhaXQgcGMuY3JlYXRlT2ZmZXIoe29mZmVyVG9SZWNlaXZl
QXVkaW86IHRydWV9KSk7CisgIGF3YWl0IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMs
ICdnYXRoZXJpbmcnLCAnY29tcGxldGUnKTsKKyAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlv
bih7dHlwZTogJ3JvbGxiYWNrJ30pOworICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRp
b25zKHBjLCAnbmV3Jyk7Cit9LCAnc2V0TG9jYWxEZXNjcmlwdGlvbihyb2xsYmFjaykgb2Ygb3Jp
Z2luYWwgb2ZmZXIgc2hvdWxkIGNhdXNlIGljZUdhdGhlcmluZ1N0YXRlIHRvIHJlYWNoICJuZXci
IHdoZW4gc3RhcnRpbmcgaW4gImNvbXBsZXRlIicpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CisgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFu
dXAoKCkgPT4gcGMuY2xvc2UoKSk7CisgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oCisg
ICAgYXdhaXQgcGMuY3JlYXRlT2ZmZXIoe29mZmVyVG9SZWNlaXZlQXVkaW86IHRydWV9KSk7Cisg
IGF3YWl0IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMsICdnYXRoZXJpbmcnKTsKKyAg
YXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogJ3JvbGxiYWNrJ30pOworICAvLyBX
ZSBtaWdodCBnbyBkaXJlY3RseSB0byAnbmV3Jywgb3Igd2UgbWlnaHQgZ28gdG8gJ2NvbXBsZXRl
JyBmaXJzdCwKKyAgLy8gZGVwZW5kaW5nIG9uIHRpbWluZy4gQWxsb3cgZWl0aGVyLgorICBjb25z
dCByZXN1bHRzID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFsKKyAgICBpY2VHYXRoZXJpbmdT
dGF0ZVRyYW5zaXRpb25zKHBjLCAnbmV3JyksCisgICAgaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0
aW9ucyhwYywgJ2NvbXBsZXRlJywgJ25ldycpXSk7CisgIGFzc2VydF90cnVlKHJlc3VsdHMuc29t
ZShyZXN1bHQgPT4gcmVzdWx0LnN0YXR1cyA9PSAnZnVsZmlsbGVkJyksCisgICAgJ0lDRSBnYXRo
ZXJpbmcgc3RhdGUgc2hvdWxkIGdvIGJhY2sgdG8gIm5ldyIsIHBvc3NpYmx5IHRocm91Z2ggImNv
bXBsZXRlIicpOworfSwgJ3NldExvY2FsRGVzY3JpcHRpb24ocm9sbGJhY2spIG9mIG9yaWdpbmFs
IG9mZmVyIHNob3VsZCBjYXVzZSBpY2VHYXRoZXJpbmdTdGF0ZSB0byByZWFjaCAibmV3IiB3aGVu
IHN0YXJ0aW5nIGluICJnYXRoZXJpbmciJyk7CisKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZlcnMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
Z2V0RGVmYXVsdEljZVNlcnZlcnMtZXhwZWN0ZWQudHh0CmRlbGV0ZWQgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCBiODZlZTJjZTZiZjY4M2ZmZGQ0MjkzYjdmMjhlNzhiOGIxMzUyODQxLi4wMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwCi0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERl
ZmF1bHRJY2VTZXJ2ZXJzLWV4cGVjdGVkLnR4dAorKysgL2Rldi9udWxsCkBAIC0xLDMgKzAsMCBA
QAotCi1GQUlMIFJUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzKCkgc2hvdWxk
IHJldHVybiBhcnJheSBvZiBSVENJY2VTZXJ2ZXIgUlRDUGVlckNvbm5lY3Rpb24uZ2V0RGVmYXVs
dEljZVNlcnZlcnMgaXMgbm90IGEgZnVuY3Rpb24uIChJbiAnUlRDUGVlckNvbm5lY3Rpb24uZ2V0
RGVmYXVsdEljZVNlcnZlcnMoKScsICdSVENQZWVyQ29ubmVjdGlvbi5nZXREZWZhdWx0SWNlU2Vy
dmVycycgaXMgdW5kZWZpbmVkKQotCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0
SWNlU2VydmVycy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0RGVmYXVsdEljZVNlcnZlcnMuaHRtbApk
ZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggNGZkYmRiOGRlYzQ2ZGU1NDljMDc3OTQ5ZWQ5
NDZhN2EzMTBlOWI3NC4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1nZXREZWZhdWx0SWNlU2VydmVycy5odG1sCisrKyAvZGV2L251bGwK
QEAgLTEsOTggKzAsMCBAQAotPCFkb2N0eXBlIGh0bWw+Ci08bWV0YSBjaGFyc2V0PXV0Zi04Pgot
PHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uLmdldERlZmF1bHRJY2VTZXJ2ZXJzPC90aXRsZT4KLTxz
Y3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KLTxzY3JpcHQg
c3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KLTxzY3JpcHQ+
Ci0gICd1c2Ugc3RyaWN0JzsKLQotICAvLyBUZXN0IGlzIGJhc2VkIG9uIHRoZSBmb2xsb3dpbmcg
ZWRpdG9yIGRyYWZ0OgotICAvLyBodHRwczovL3czYy5naXRodWIuaW8vd2VicnRjLXBjL2FyY2hp
dmVzLzIwMTcwNjA1L3dlYnJ0Yy5odG1sCi0KLSAgLyoKLSAgICAgIFtDb25zdHJ1Y3RvcihvcHRp
b25hbCBSVENDb25maWd1cmF0aW9uIGNvbmZpZ3VyYXRpb24pXQotICAgICAgaW50ZXJmYWNlIFJU
Q1BlZXJDb25uZWN0aW9uIDogRXZlbnRUYXJnZXQgewotICAgICAgICBzdGF0aWMgc2VxdWVuY2U8
UlRDSWNlU2VydmVyPiAgICAgIGdldERlZmF1bHRJY2VTZXJ2ZXJzKCk7Ci0gICAgICAgIC4uLgot
ICAgICAgfTsKLQotICAgICAgZGljdGlvbmFyeSBSVENJY2VTZXJ2ZXIgewotICAgICAgICByZXF1
aXJlZCAoRE9NU3RyaW5nIG9yIHNlcXVlbmNlPERPTVN0cmluZz4pIHVybHM7Ci0gICAgICAgICAg
ICAgICAgIERPTVN0cmluZyAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlcm5hbWU7Ci0gICAg
ICAgICAgICAgICAgIChET01TdHJpbmcgb3IgUlRDT0F1dGhDcmVkZW50aWFsKSAgY3JlZGVudGlh
bDsKLSAgICAgICAgICAgICAgICAgUlRDSWNlQ3JlZGVudGlhbFR5cGUgICAgICAgICAgICAgICBj
cmVkZW50aWFsVHlwZSA9ICJwYXNzd29yZCI7Ci0gICAgICB9OwotCi0gICAgICBkaWN0aW9uYXJ5
IFJUQ09BdXRoQ3JlZGVudGlhbCB7Ci0gICAgICAgIHJlcXVpcmVkIERPTVN0cmluZyBtYWNLZXk7
Ci0gICAgICAgIHJlcXVpcmVkIERPTVN0cmluZyBhY2Nlc3NUb2tlbjsKLSAgICAgIH07Ci0KLSAg
ICAgIGVudW0gUlRDSWNlQ3JlZGVudGlhbFR5cGUgewotICAgICAgICAicGFzc3dvcmQiLAotICAg
ICAgICAib2F1dGgiCi0gICAgICB9OwotICAgKi8KLQotICB0ZXN0KCgpID0+IHsKLSAgICBjb25z
dCBpY2VTZXJ2ZXJzID0gUlRDUGVlckNvbm5lY3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnMoKTsK
LQotICAgIGFzc2VydF90cnVlKEFycmF5LmlzQXJyYXkoaWNlU2VydmVycyksCi0gICAgICAnRXhw
ZWN0IGljZVNlcnZlcnMgdG8gYmUgYW4gYXJyYXknKTsKLQotICAgIC8vIGRpY3Rpb25hcnkgSURM
IGNhbm5vdCBiZSB0ZXN0ZWQgYXV0b21hdGljYWxseSB1c2luZyBpZGxoYXJuZXNzCi0gICAgZm9y
KGNvbnN0IHNlcnZlciBvZiBpY2VTZXJ2ZXJzKSB7Ci0gICAgICBjb25zdCB7IHVybHMsIHVzZXJu
YW1lLCBjcmVkZW50aWFsLCBjcmVkZW50aWFsVHlwZSB9ID0gc2VydmVyOwotCi0gICAgICBpZihB
cnJheS5pc0FycmF5KHVybHMpKSB7Ci0gICAgICAgIGZvcihjb25zdCB1cmwgb2YgdXJscykgewot
ICAgICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHVybCwgJ3N0cmluZycsCi0gICAgICAgICAg
ICAnRXhwZWN0IGVsZW1lbnRzIGluIHVybHMgYXJyYXkgdG8gYmUgc3RyaW5nJyk7Ci0gICAgICAg
IH0KLSAgICAgIH0gZWxzZSB7Ci0gICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIHVybHMsICdz
dHJpbmcnLAotICAgICAgICAgICdFeHBlY3QgdXJscyB0byBiZSBlaXRoZXIgc3RyaW5nIG9yIGFy
cmF5Jyk7Ci0gICAgICB9Ci0KLSAgICAgIGlmKHVzZXJuYW1lICE9PSB1bmRlZmluZWQpIHsKLSAg
ICAgICAgYXNzZXJ0X2VxdWFscyh0eXBlb2YgdXNlcm5hbWUsICdzdHJpbmcnLAotICAgICAgICAg
ICdFeHBlY3QgdXNlcm5hbWUgdG8gYmUgZWl0aGVyIHVuZGVmaW5lZCBvciBzdHJpbmcnKTsKLSAg
ICAgIH0KLQotICAgICAgYXNzZXJ0X3RydWUoY3JlZGVudGlhbFR5cGUgPT09ICdwYXNzd29yZCcg
fHwgY3JlZGVudGlhbFR5cGUgPT09ICdvYXV0aCcsCi0gICAgICAgICdFeHBlY3QgY3JlZGVudGlh
bFR5cGUgdG8gYmUgZWl0aGVyIHBhc3N3b3JkIG9yIG9hdXRoJykKLQotICAgICAgaWYoY3JlZGVu
dGlhbCkgewotICAgICAgICBpZih0eXBlb2YoY3JlZGVudGlhbCkgPT09ICdvYmplY3QnKSB7Ci0g
ICAgICAgICAgY29uc3QgeyBtYWNLZXksIGFjY2Vzc1Rva2VuIH0gPSBjcmVkZW50aWFsOwotICAg
ICAgICAgIGFzc2VydF9lcXVhbHModHlwZW9mIG1hY0tleSwgJ3N0cmluZycsCi0gICAgICAgICAg
ICAnRXhwZWN0IG1hY0tleSB0byBiZSBzdHJpbmcnKTsKLQotICAgICAgICAgIGFzc2VydF9lcXVh
bHModHlwZW9mIGFjY2Vzc1Rva2VuLCAnc3RyaW5nJywKLSAgICAgICAgICAgICdFeHBlY3QgYWNj
ZXNzVG9rZW4gdG8gYmUgc3RyaW5nJyk7Ci0KLSAgICAgICAgfSBlbHNlIHsKLSAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHR5cGVvZiBjcmVkZW50aWFsLCAnc3RyaW5nJywKLSAgICAgICAgICAgICdF
eHBlY3QgY3JlZGVudGlhbCB0byBiZSBlaXRoZXIgdW5kZWZpbmVkLCBzdHJpbmcsIG9yIFJUQ09h
dXRoQ3JlZGVudGlhbCBkaWN0aW9uYXJ5Jyk7Ci0gICAgICAgIH0KLSAgICAgIH0KLSAgICB9Ci0K
LSAgICAvLyBFeHBlY3QgZGVmYXVsdCBpY2Ugc2VydmVycyB0byBiZSBhY2NlcHRlZCBhcyB2YWxp
ZCBjb25maWd1cmF0aW9uCi0gICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oeyBp
Y2VTZXJ2ZXJzIH0pOwotCi0gICAgLy8gT25seSBtYWtlIHN1cmUgdGhlcmUgYXJlIHNhbWUgbnVt
YmVyIG9mIGljZSBzZXJ2ZXJzIGNvbmZpZ3VyZWQKLSAgICAvLyBhbmQgbm90IGRvIGFueSBkZWVw
IGVxdWFsaXR5IGNoZWNraW5nCi0gICAgYXNzZXJ0X2VxdWFscyhwYy5nZXRDb25maWd1cmF0aW9u
KCkuaWNlU2VydmVycy5sZW5ndGgsIGljZVNlcnZlcnMubGVuZ3RoKTsKLQotICB9LCAnUlRDUGVl
ckNvbm5lY3Rpb24uZ2V0RGVmYXVsdEljZVNlcnZlcnMoKSBzaG91bGQgcmV0dXJuIGFycmF5IG9m
IFJUQ0ljZVNlcnZlcicpOwotCi0gIC8qCi0gICAgQ292ZXJhZ2UgUmVwb3J0Ci0gICAgICBTaW5j
ZSB0aGVyZSBpcyBubyBzdGVwcyBpbnZvbHZlZCBhbmQgd2UgYXJlIG9ubHkgY2hlY2tpbmcgYmFz
aWMgY2FsbCwKLSAgICAgIFRoaXMgaXMgY291bnRlZCBhcyAxIHRyaXZpYWwgdGVzdCBjb3ZlcmFn
ZS4KLQotICAgICAgVGVzdGVkICAgIDEKLSAgICAgIFRvdGFsICAgICAxCi0gICAqLwotPC9zY3Jp
cHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy1leHBlY3RlZC50eHQKaW5kZXggMDA5NjdhOTUx
NjU5ZGI4OTUzYzE5NDkzN2Y5MGMxYWI2MTkxZDgzNS4uYTQ2NzQ3Mjg1NGYwY2NkNzdiMmFmMGQ5
M2JkOTNmMGNmMTAwMDQ3ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0YXRzLmh0dHBzLWV4cGVjdGVkLnR4
dApAQCAtNCwxMiArNCwxNyBAQCBQQVNTIGdldFN0YXRzKG51bGwpIHNob3VsZCBzdWNjZWVkCiBG
QUlMIGdldFN0YXRzKCkgd2l0aCB0cmFjayBub3QgYWRkZWQgdG8gY29ubmVjdGlvbiBzaG91bGQg
cmVqZWN0IHdpdGggSW52YWxpZEFjY2Vzc0Vycm9yIGFzc2VydF91bnJlYWNoZWQ6IFNob3VsZCBo
YXZlIHJlamVjdGVkOiB1bmRlZmluZWQgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCiBQQVNTIGdl
dFN0YXRzKCkgd2l0aCB0cmFjayBhZGRlZCB2aWEgYWRkVHJhY2sgc2hvdWxkIHN1Y2NlZWQKIFBB
U1MgZ2V0U3RhdHMoKSB3aXRoIHRyYWNrIGFkZGVkIHZpYSBhZGRUcmFuc2NlaXZlciBzaG91bGQg
c3VjY2VlZAotRkFJTCBnZXRTdGF0cygpIHdpdGggdHJhY2sgYXNzb2NpYXRlZCB3aXRoIG1vcmUg
dGhhbiBvbmUgc2VuZGVyIHNob3VsZCByZWplY3Qgd2l0aCBJbnZhbGlkQWNjZXNzRXJyb3IgYXNz
ZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6IHVuZGVmaW5lZCBSZWFjaGVkIHVu
cmVhY2hhYmxlIGNvZGUKIEZBSUwgZ2V0U3RhdHMoKSB3aXRoIHRyYWNrIGFzc29jaWF0ZWQgd2l0
aCBib3RoIHNlbmRlciBhbmQgcmVjZWl2ZXIgc2hvdWxkIHJlamVjdCB3aXRoIEludmFsaWRBY2Nl
c3NFcnJvciBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5kZWZpbmVk
IFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQogUEFTUyBnZXRTdGF0cygpIHdpdGggbm8gYXJndW1l
bnQgc2hvdWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBwZWVyLWNvbm5lY3Rpb24g
c3RhdHMgb24gYW4gZW1wdHkgUEMKLUZBSUwgZ2V0U3RhdHMoKSB3aXRoIG5vIGFyZ3VtZW50IHNo
b3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgcGVlci1jb25uZWN0aW9uIHN0YXRz
IGFuZCBvdXRib3VuZC10cmFjay1zdGF0cyBhc3NlcnRfdHJ1ZTogRXhwZWN0IHN0YXRzUmVwb3J0
IHRvIGNvbnRhaW4gc3RhdHMgb2JqZWN0IG9mIHR5cGUgb3V0Ym91bmQtcnRwIGV4cGVjdGVkIHRy
dWUgZ290IGZhbHNlCi1GQUlMIGdldFN0YXRzKCkgd2l0aCBubyBhcmd1bWVudCBzaG91bGQgcmV0
dXJuIHN0YXRzIGZvciBuby1zdHJlYW0gdHJhY2tzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0
aW9uYXJ5LnRvdGFsQXVkaW9FbmVyZ3kgdG8gYmUgbnVtYmVyIGV4cGVjdGVkICJudW1iZXIiIGJ1
dCBnb3QgInVuZGVmaW5lZCIKLUZBSUwgZ2V0U3RhdHMoKSBvbiB0cmFjayBhc3NvY2lhdGVkIHdp
dGggUnRwU2VuZGVyIHNob3VsZCByZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgb3V0Ym91
bmQtcnRwIHN0YXRzIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnRvdGFsQXVkaW9F
bmVyZ3kgdG8gYmUgbnVtYmVyIGV4cGVjdGVkICJudW1iZXIiIGJ1dCBnb3QgInVuZGVmaW5lZCIK
LUZBSUwgZ2V0U3RhdHMoKSBvbiB0cmFjayBhc3NvY2lhdGVkIHdpdGggUnRwUmVjZWl2ZXIgc2hv
dWxkIHJldHVybiBzdGF0cyByZXBvcnQgY29udGFpbmluZyBpbmJvdW5kLXJ0cCBzdGF0cyBhc3Nl
cnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFyeS5jb2RlY0lkIHRvIGJlIHN0cmluZyBleHBlY3Rl
ZCAic3RyaW5nIiBidXQgZ290ICJ1bmRlZmluZWQiCitQQVNTIGdldFN0YXRzKCkgdHJhY2sgd2l0
aCBzdHJlYW0gcmV0dXJucyBwZWVyLWNvbm5lY3Rpb24gYW5kIG91dGJvdW5kLXJ0cCBzdGF0cwor
UEFTUyBnZXRTdGF0cygpIHRyYWNrIHdpdGhvdXQgc3RyZWFtIHJldHVybnMgcGVlci1jb25uZWN0
aW9uIGFuZCBvdXRib3VuZC1ydHAgc3RhdHMKK1BBU1MgZ2V0U3RhdHMoKSBhdWRpbyBvdXRib3Vu
ZC1ydHAgY29udGFpbnMgYWxsIG1hbmRhdG9yeSBzdGF0cworUEFTUyBnZXRTdGF0cygpIHZpZGVv
IG91dGJvdW5kLXJ0cCBjb250YWlucyBhbGwgbWFuZGF0b3J5IHN0YXRzCitGQUlMIGdldFN0YXRz
KCkgYXVkaW8gYW5kIHZpZGVvIHZhbGlkYXRlIGFsbCBtYW5kYXRvcnkgc3RhdHMgYXNzZXJ0X2Vx
dWFsczogRXhwZWN0IGRpY3Rpb25hcnkudG90YWxBdWRpb0VuZXJneSB0byBiZSBudW1iZXIgZXhw
ZWN0ZWQgIm51bWJlciIgYnV0IGdvdCAidW5kZWZpbmVkIgorUEFTUyBnZXRTdGF0cygpIG9uIHRy
YWNrIGFzc29jaWF0ZWQgd2l0aCBSVENSdHBTZW5kZXIgc2hvdWxkIHJldHVybiBzdGF0cyByZXBv
cnQgY29udGFpbmluZyBvdXRib3VuZC1ydHAgc3RhdHMKK1BBU1MgZ2V0U3RhdHMoKSBvbiB0cmFj
ayBhc3NvY2lhdGVkIHdpdGggUlRDUnRwUmVjZWl2ZXIgc2hvdWxkIHJldHVybiBzdGF0cyByZXBv
cnQgY29udGFpbmluZyBpbmJvdW5kLXJ0cCBzdGF0cworUEFTUyBnZXRTdGF0cygpIGluYm91bmQt
cnRwIGNvbnRhaW5zIGFsbCBtYW5kYXRvcnkgc3RhdHMKIEZBSUwgZ2V0U3RhdHMoKSB3aXRoIGNv
bm5lY3RlZCBwZWVyIGNvbm5lY3Rpb25zIGhhdmluZyB0cmFja3MgYW5kIGRhdGEgY2hhbm5lbCBz
aG91bGQgcmV0dXJuIGFsbCBtYW5kYXRvcnkgdG8gaW1wbGVtZW50IHN0YXRzIGFzc2VydF91bnJl
YWNoZWQ6IHRlc3QgZmFpbGVkIHdpdGggZXJyb3I6IEVycm9yOiBhc3NlcnRfZXF1YWxzOiBFeHBl
Y3QgZGljdGlvbmFyeS50b3RhbEF1ZGlvRW5lcmd5IHRvIGJlIG51bWJlciBleHBlY3RlZCAibnVt
YmVyIiBidXQgZ290ICJ1bmRlZmluZWQiIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorRkFJTCBn
ZXRTdGF0cyh0cmFjaykgc2hvdWxkIG5vdCB3b3JrIGlmIG11bHRpcGxlIHNlbmRlcnMgaGF2ZSB0
aGUgc2FtZSB0cmFjayBhc3NlcnRfdW5yZWFjaGVkOiBTaG91bGQgaGF2ZSByZWplY3RlZDogdW5k
ZWZpbmVkIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQorUEFTUyBSVENTdGF0cy50aW1lc3RhbXAg
aW5jcmVhc2VzIHdpdGggdGltZSBwYXNzaW5nCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdl
dFN0YXRzLmh0dHBzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sCmluZGV4
IGVkZTBhYjFlZmMxMDc5OWQxMjQ3MzQzN2U1M2YyZWM1NTVhYTYyNWYuLjQ5Zjg4MTMxYzNlMWY3
NWI4YjdjYjkyNjc5MmY5YWM3MWY0MWU4ZWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldFN0
YXRzLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0U3RhdHMuaHR0cHMuaHRtbApAQCAt
OTAsMjMgKzkwLDYgQEAKICAgICByZXR1cm4gcGMuZ2V0U3RhdHModHJhY2spOwogICB9LCAnZ2V0
U3RhdHMoKSB3aXRoIHRyYWNrIGFkZGVkIHZpYSBhZGRUcmFuc2NlaXZlciBzaG91bGQgc3VjY2Vl
ZCcpOwogCi0gIHByb21pc2VfdGVzdCh0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOwotICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAg
cmV0dXJuIGdldFRyYWNrRnJvbVVzZXJNZWRpYSgnYXVkaW8nKQotICAgIC50aGVuKChbdHJhY2ss
IG1lZGlhU3RyZWFtXSkgPT4gewotICAgICAgLy8gYWRkVHJhbnNjZWl2ZXIgYWxsb3dzIGFkZGlu
ZyBzYW1lIHRyYWNrIG11bHRpcGxlIHRpbWVzCi0gICAgICBjb25zdCB0cmFuc2NlaXZlcjEgPSBw
Yy5hZGRUcmFuc2NlaXZlcih0cmFjayk7Ci0gICAgICBjb25zdCB0cmFuc2NlaXZlcjIgPSBwYy5h
ZGRUcmFuc2NlaXZlcih0cmFjayk7Ci0KLSAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHRyYW5zY2Vp
dmVyMSwgdHJhbnNjZWl2ZXIyKTsKLSAgICAgIGFzc2VydF9ub3RfZXF1YWxzKHRyYW5zY2VpdmVy
MS5zZW5kZXIsIHRyYW5zY2VpdmVyMi5zZW5kZXIpOwotICAgICAgYXNzZXJ0X2VxdWFscyh0cmFu
c2NlaXZlcjEuc2VuZGVyLnRyYWNrLCB0cmFuc2NlaXZlcjIuc2VuZGVyLnRyYWNrKTsKLQotICAg
ICAgcmV0dXJuIHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRBY2Nlc3NFcnJvcicsIHBj
LmdldFN0YXRzKHRyYWNrKSk7Ci0gICAgfSk7Ci0gIH0sIGBnZXRTdGF0cygpIHdpdGggdHJhY2sg
YXNzb2NpYXRlZCB3aXRoIG1vcmUgdGhhbiBvbmUgc2VuZGVyIHNob3VsZCByZWplY3Qgd2l0aCBJ
bnZhbGlkQWNjZXNzRXJyb3JgKTsKLQogICBwcm9taXNlX3Rlc3QodCA9PiB7CiAgICAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
LmNsb3NlKCkpOwpAQCAtMTM1LDM1ICsxMTgsNjkgQEAKICAgICB9KTsKICAgfSwgJ2dldFN0YXRz
KCkgd2l0aCBubyBhcmd1bWVudCBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5n
IHBlZXItY29ubmVjdGlvbiBzdGF0cyBvbiBhbiBlbXB0eSBQQycpOwogCi0gIHByb21pc2VfdGVz
dCh0ID0+IHsKLSAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICAgIHQu
YWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7Ci0gICAgcmV0dXJuIGdldFRyYWNrRnJvbVVz
ZXJNZWRpYSgnYXVkaW8nKQotICAgIC50aGVuKChbdHJhY2ssIG1lZGlhU3RyZWFtXSkgPT4gewot
ICAgICAgcGMuYWRkVHJhY2sodHJhY2ssIG1lZGlhU3RyZWFtKTsKLSAgICAgIHJldHVybiBwYy5n
ZXRTdGF0cygpOwotICAgIH0pCi0gICAgLnRoZW4oc3RhdHNSZXBvcnQgPT4gewotLy8gICAgICB2
YWxpZGF0ZVN0YXRzUmVwb3J0KHN0YXRzUmVwb3J0KTsKLS8vICAgICAgYXNzZXJ0X3N0YXRzX3Jl
cG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBvcnQsIFsncGVlci1jb25uZWN0aW9uJ10pOwotICAgICAg
YXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBvcnQsIFsnb3V0Ym91bmQtcnRw
J10pOwotICAgIH0pOwotICB9LCAnZ2V0U3RhdHMoKSB3aXRoIG5vIGFyZ3VtZW50IHNob3VsZCBy
ZXR1cm4gc3RhdHMgcmVwb3J0IGNvbnRhaW5pbmcgcGVlci1jb25uZWN0aW9uIHN0YXRzIGFuZCBv
dXRib3VuZC10cmFjay1zdGF0cycpOworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAg
Y29uc3QgcGMgPSBjcmVhdGVQZWVyQ29ubmVjdGlvbldpdGhDbGVhbnVwKHQpOworICAgIGNvbnN0
IHBjMiA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFudXAodCk7CisgICAgY29uc3QgW3Ry
YWNrLCBtZWRpYVN0cmVhbV0gPSBhd2FpdCBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ2F1ZGlvJyk7
CisgICAgcGMuYWRkVHJhY2sodHJhY2ssIG1lZGlhU3RyZWFtKTsKKyAgICBleGNoYW5nZUljZUNh
bmRpZGF0ZXMocGMsIHBjMik7CisgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYywgcGMy
KTsKKyAgICBhd2FpdCBsaXN0ZW5Ub0Nvbm5lY3RlZChwYyk7CisgICAgY29uc3Qgc3RhdHNSZXBv
cnQgPSBhd2FpdCBwYy5nZXRTdGF0cygpOworICAgIGdldFJlcXVpcmVkU3RhdHMoc3RhdHNSZXBv
cnQsICdwZWVyLWNvbm5lY3Rpb24nKTsKKyAgICBnZXRSZXF1aXJlZFN0YXRzKHN0YXRzUmVwb3J0
LCAnb3V0Ym91bmQtcnRwJyk7CisgIH0sICdnZXRTdGF0cygpIHRyYWNrIHdpdGggc3RyZWFtIHJl
dHVybnMgcGVlci1jb25uZWN0aW9uIGFuZCBvdXRib3VuZC1ydHAgc3RhdHMnKTsKIAotICBwcm9t
aXNlX3Rlc3QodCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
LSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwotICAgIHJldHVybiBnZXRUcmFj
a0Zyb21Vc2VyTWVkaWEoJ2F1ZGlvJykKLSAgICAudGhlbigoW3RyYWNrLCBtZWRpYVN0cmVhbV0p
ID0+IHsKLSAgICAgIHBjLmFkZFRyYWNrKHRyYWNrKTsKLSAgICAgIHJldHVybiBwYy5nZXRTdGF0
cygpOwotICAgIH0pCi0gICAgLnRoZW4oc3RhdHNSZXBvcnQgPT4gewotICAgICAgdmFsaWRhdGVT
dGF0c1JlcG9ydChzdGF0c1JlcG9ydCk7Ci0gICAgICBhc3NlcnRfc3RhdHNfcmVwb3J0X2hhc19z
dGF0cyhzdGF0c1JlcG9ydCwgWydwZWVyLWNvbm5lY3Rpb24nXSk7Ci0gICAgICBhc3NlcnRfc3Rh
dHNfcmVwb3J0X2hhc19zdGF0cyhzdGF0c1JlcG9ydCwgWydvdXRib3VuZC1ydHAnXSk7Ci0gICAg
fSk7Ci0gIH0sICdnZXRTdGF0cygpIHdpdGggbm8gYXJndW1lbnQgc2hvdWxkIHJldHVybiBzdGF0
cyBmb3Igbm8tc3RyZWFtIHRyYWNrcycpOworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Cisg
ICAgY29uc3QgcGMgPSBjcmVhdGVQZWVyQ29ubmVjdGlvbldpdGhDbGVhbnVwKHQpOworICAgIGNv
bnN0IHBjMiA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFudXAodCk7CisgICAgY29uc3Qg
W3RyYWNrLCBtZWRpYVN0cmVhbV0gPSBhd2FpdCBnZXRUcmFja0Zyb21Vc2VyTWVkaWEoJ2F1ZGlv
Jyk7CisgICAgcGMuYWRkVHJhY2sodHJhY2spOworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhw
YywgcGMyKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjLCBwYzIpOworICAgIGF3
YWl0IGxpc3RlblRvQ29ubmVjdGVkKHBjKTsKKyAgICBjb25zdCBzdGF0c1JlcG9ydCA9IGF3YWl0
IHBjLmdldFN0YXRzKCk7CisgICAgZ2V0UmVxdWlyZWRTdGF0cyhzdGF0c1JlcG9ydCwgJ3BlZXIt
Y29ubmVjdGlvbicpOworICAgIGdldFJlcXVpcmVkU3RhdHMoc3RhdHNSZXBvcnQsICdvdXRib3Vu
ZC1ydHAnKTsKKyAgfSwgJ2dldFN0YXRzKCkgdHJhY2sgd2l0aG91dCBzdHJlYW0gcmV0dXJucyBw
ZWVyLWNvbm5lY3Rpb24gYW5kIG91dGJvdW5kLXJ0cCBzdGF0cycpOworCisgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENs
ZWFudXAodCk7CisgICAgY29uc3QgcGMyID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51
cCh0KTsKKyAgICBjb25zdCBbdHJhY2ssIG1lZGlhU3RyZWFtXSA9IGF3YWl0IGdldFRyYWNrRnJv
bVVzZXJNZWRpYSgnYXVkaW8nKTsKKyAgICBwYy5hZGRUcmFjayh0cmFjaywgbWVkaWFTdHJlYW0p
OworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYywgcGMyKTsKKyAgICBhd2FpdCBleGNoYW5n
ZU9mZmVyQW5zd2VyKHBjLCBwYzIpOworICAgIGF3YWl0IGxpc3RlblRvQ29ubmVjdGVkKHBjKTsK
KyAgICBjb25zdCBzdGF0c1JlcG9ydCA9IGF3YWl0IHBjLmdldFN0YXRzKCk7CisgICAgYXNzZXJ0
X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNSZXBvcnQsIFsnb3V0Ym91bmQtcnRwJ10pOwor
ICB9LCAnZ2V0U3RhdHMoKSBhdWRpbyBvdXRib3VuZC1ydHAgY29udGFpbnMgYWxsIG1hbmRhdG9y
eSBzdGF0cycpOworCisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9
IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFudXAodCk7CisgICAgY29uc3QgcGMyID0gY3Jl
YXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0KTsKKyAgICBjb25zdCBbdHJhY2ssIG1lZGlh
U3RyZWFtXSA9IGF3YWl0IGdldFRyYWNrRnJvbVVzZXJNZWRpYSgndmlkZW8nKTsKKyAgICBwYy5h
ZGRUcmFjayh0cmFjaywgbWVkaWFTdHJlYW0pOworICAgIGV4Y2hhbmdlSWNlQ2FuZGlkYXRlcyhw
YywgcGMyKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBjLCBwYzIpOworICAgIGF3
YWl0IGxpc3RlblRvQ29ubmVjdGVkKHBjKTsKKyAgICBjb25zdCBzdGF0c1JlcG9ydCA9IGF3YWl0
IHBjLmdldFN0YXRzKCk7CisgICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHNS
ZXBvcnQsIFsnb3V0Ym91bmQtcnRwJ10pOworICB9LCAnZ2V0U3RhdHMoKSB2aWRlbyBvdXRib3Vu
ZC1ydHAgY29udGFpbnMgYWxsIG1hbmRhdG9yeSBzdGF0cycpOworCisgIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKKyAgICBjb25zdCBwYyA9IGNyZWF0ZVBlZXJDb25uZWN0aW9uV2l0aENsZWFu
dXAodCk7CisgICAgY29uc3QgcGMyID0gY3JlYXRlUGVlckNvbm5lY3Rpb25XaXRoQ2xlYW51cCh0
KTsKKyAgICBjb25zdCBbYXVkaW9UcmFjaywgYXVkaW9TdHJlYW1dID0gYXdhaXQgZ2V0VHJhY2tG
cm9tVXNlck1lZGlhKCdhdWRpbycpOworICAgIHBjLmFkZFRyYWNrKGF1ZGlvVHJhY2ssIGF1ZGlv
U3RyZWFtKTsKKyAgICBjb25zdCBbdmlkZW9UcmFjaywgdmlkZW9TdHJlYW1dID0gYXdhaXQgZ2V0
VHJhY2tGcm9tVXNlck1lZGlhKCd2aWRlbycpOworICAgIHBjLmFkZFRyYWNrKHZpZGVvVHJhY2ss
IHZpZGVvU3RyZWFtKTsKKyAgICBleGNoYW5nZUljZUNhbmRpZGF0ZXMocGMsIHBjMik7CisgICAg
YXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYywgcGMyKTsKKyAgICBhd2FpdCBsaXN0ZW5Ub0Nv
bm5lY3RlZChwYyk7CisgICAgY29uc3Qgc3RhdHNSZXBvcnQgPSBhd2FpdCBwYy5nZXRTdGF0cygp
OworICAgIHZhbGlkYXRlU3RhdHNSZXBvcnQoc3RhdHNSZXBvcnQpOworICB9LCAnZ2V0U3RhdHMo
KSBhdWRpbyBhbmQgdmlkZW8gdmFsaWRhdGUgYWxsIG1hbmRhdG9yeSBzdGF0cycpOwogCiAgIC8q
CiAgICAgOC41LiAgVGhlIHN0YXRzIHNlbGVjdGlvbiBhbGdvcml0aG0KQEAgLTE4MSwxMiArMTk4
LDEwIEBACiAgICAgcGMuYWRkVHJhY2sodHJhY2ssIG1lZGlhU3RyZWFtKTsKICAgICBleGNoYW5n
ZUljZUNhbmRpZGF0ZXMocGMsIHBjMik7CiAgICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihw
YywgcGMyKTsKLSAgICBhd2FpdCBsaXN0ZW5Ub0ljZUNvbm5lY3RlZChwYyk7CisgICAgYXdhaXQg
bGlzdGVuVG9Db25uZWN0ZWQocGMpOwogICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgcGMuZ2V0U3Rh
dHModHJhY2spOwotICAgIHZhbGlkYXRlU3RhdHNSZXBvcnQoc3RhdHMpOwotICAgIGFzc2VydF9z
dGF0c19yZXBvcnRfaGFzX3N0YXRzKHN0YXRzLCBbJ291dGJvdW5kLXJ0cCddKTsKLSAgfSwgYGdl
dFN0YXRzKCkgb24gdHJhY2sgYXNzb2NpYXRlZCB3aXRoIFJ0cFNlbmRlciBzaG91bGQgcmV0dXJu
IHN0YXRzIHJlcG9ydCBjb250YWluaW5nIG91dGJvdW5kLXJ0cCBzdGF0c2ApOwotCisgICAgZ2V0
UmVxdWlyZWRTdGF0cyhzdGF0cywgJ291dGJvdW5kLXJ0cCcpOworICB9LCBgZ2V0U3RhdHMoKSBv
biB0cmFjayBhc3NvY2lhdGVkIHdpdGggUlRDUnRwU2VuZGVyIHNob3VsZCByZXR1cm4gc3RhdHMg
cmVwb3J0IGNvbnRhaW5pbmcgb3V0Ym91bmQtcnRwIHN0YXRzYCk7CiAKICAgLyoKICAgICA4LjUu
ICBUaGUgc3RhdHMgc2VsZWN0aW9uIGFsZ29yaXRobQpAQCAtMjEzLDkgKzIyOCwyOCBAQAogICAg
ICAgfSk7CiAgICAgfQogICAgIGNvbnN0IHN0YXRzID0gYXdhaXQgcGMyLmdldFN0YXRzKHBjMi5n
ZXRSZWNlaXZlcnMoKVswXS50cmFjayk7Ci0gICAgdmFsaWRhdGVTdGF0c1JlcG9ydChzdGF0cyk7
Ci0gICAgYXNzZXJ0X3N0YXRzX3JlcG9ydF9oYXNfc3RhdHMoc3RhdHMsIFsnaW5ib3VuZC1ydHAn
XSk7Ci0gIH0sIGBnZXRTdGF0cygpIG9uIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBSdHBSZWNlaXZl
ciBzaG91bGQgcmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIGluYm91bmQtcnRwIHN0YXRz
YCk7CisgICAgZ2V0UmVxdWlyZWRTdGF0cyhzdGF0cywgJ2luYm91bmQtcnRwJyk7CisgIH0sIGBn
ZXRTdGF0cygpIG9uIHRyYWNrIGFzc29jaWF0ZWQgd2l0aCBSVENSdHBSZWNlaXZlciBzaG91bGQg
cmV0dXJuIHN0YXRzIHJlcG9ydCBjb250YWluaW5nIGluYm91bmQtcnRwIHN0YXRzYCk7CisKKyAg
cHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IHBjID0gY3JlYXRlUGVlckNvbm5l
Y3Rpb25XaXRoQ2xlYW51cCh0KTsKKyAgICBjb25zdCBwYzIgPSBjcmVhdGVQZWVyQ29ubmVjdGlv
bldpdGhDbGVhbnVwKHQpOworCisgICAgbGV0IFt0cmFjaywgbWVkaWFTdHJlYW1dID0gYXdhaXQg
Z2V0VHJhY2tGcm9tVXNlck1lZGlhKCdhdWRpbycpOworICAgIHBjLmFkZFRyYWNrKHRyYWNrLCBt
ZWRpYVN0cmVhbSk7CisgICAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKHBjLCBwYzIpOworICAgIGF3
YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMsIHBjMik7CisgICAgLy8gV2FpdCBmb3IgdW5tdXRl
IGlmIHRoZSB0cmFjayBpcyBub3QgYWxyZWFkeSB1bm11dGVkLgorICAgIC8vIEFjY29yZGluZyB0
byBzcGVjLCBpdCBzaG91bGQgYmUgbXV0ZWQgd2hlbiBiZWluZyBjcmVhdGVkLCBidXQgdGhpcwor
ICAgIC8vIGlzIG5vdCB3aGF0IHRoaXMgdGVzdCBpcyB0ZXN0aW5nLCBzbyBhbGxvdyBpdCB0byBi
ZSB1bm11dGVkLgorICAgIGlmIChwYzIuZ2V0UmVjZWl2ZXJzKClbMF0udHJhY2subXV0ZWQpIHsK
KyAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgICAgICBwYzIuZ2V0UmVj
ZWl2ZXJzKClbMF0udHJhY2suYWRkRXZlbnRMaXN0ZW5lcigndW5tdXRlJywgcmVzb2x2ZSk7Cisg
ICAgICB9KTsKKyAgICB9CisgICAgY29uc3Qgc3RhdHMgPSBhd2FpdCBwYzIuZ2V0U3RhdHMocGMy
LmdldFJlY2VpdmVycygpWzBdLnRyYWNrKTsKKyAgICBnZXRSZXF1aXJlZFN0YXRzKHN0YXRzLCAn
aW5ib3VuZC1ydHAnKTsKKyAgfSwgYGdldFN0YXRzKCkgaW5ib3VuZC1ydHAgY29udGFpbnMgYWxs
IG1hbmRhdG9yeSBzdGF0c2ApOwogCiAgIC8qCiAgICAgOC42ICAgTWFuZGF0b3J5IFRvIEltcGxl
bWVudCBTdGF0cwpAQCAtMzM5LDQgKzM3MywzNCBAQAogCiAgIH0sIGBnZXRTdGF0cygpIHdpdGgg
Y29ubmVjdGVkIHBlZXIgY29ubmVjdGlvbnMgaGF2aW5nIHRyYWNrcyBhbmQgZGF0YSBjaGFubmVs
IHNob3VsZCByZXR1cm4gYWxsIG1hbmRhdG9yeSB0byBpbXBsZW1lbnQgc3RhdHNgKTsKIAorICBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0
IFt0cmFjaywgbWVkaWFTdHJlYW1dID0gYXdhaXQgZ2V0VHJhY2tGcm9tVXNlck1lZGlhKCdhdWRp
bycpOworICAgIHBjLmFkZFRyYW5zY2VpdmVyKHRyYWNrKTsKKyAgICBwYy5hZGRUcmFuc2NlaXZl
cih0cmFjayk7CisgICAgYXdhaXQgcHJvbWlzZV9yZWplY3RzX2RvbSh0LCAnSW52YWxpZEFjY2Vz
c0Vycm9yJywgcGMuZ2V0U3RhdHModHJhY2spKTsKKyAgfSwgYGdldFN0YXRzKHRyYWNrKSBzaG91
bGQgbm90IHdvcmsgaWYgbXVsdGlwbGUgc2VuZGVycyBoYXZlIHRoZSBzYW1lIHRyYWNrYCk7CisK
KyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICAgIGNvbnN0IGtNaW5pbXVtVGltZUVsYXBz
ZWRCZXR3ZWVuR2V0U3RhdHNDYWxsc01zID0gNTAwOworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKKyAg
ICBjb25zdCB0MCA9IE1hdGguZmxvb3IocGVyZm9ybWFuY2Uubm93KCkpOworICAgIGNvbnN0IHQw
U3RhdHMgPSBnZXRSZXF1aXJlZFN0YXRzKGF3YWl0IHBjLmdldFN0YXRzKCksICdwZWVyLWNvbm5l
Y3Rpb24nKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZSgKKyAgICAgICAgciA9PiB0LnN0ZXBfdGlt
ZW91dChyLCBrTWluaW11bVRpbWVFbGFwc2VkQmV0d2VlbkdldFN0YXRzQ2FsbHNNcykpOworICAg
IGNvbnN0IHQxU3RhdHMgPSBnZXRSZXF1aXJlZFN0YXRzKGF3YWl0IHBjLmdldFN0YXRzKCksICdw
ZWVyLWNvbm5lY3Rpb24nKTsKKyAgICBjb25zdCB0MSA9IE1hdGguY2VpbChwZXJmb3JtYW5jZS5u
b3coKSk7CisgICAgY29uc3QgbWF4aW11bVRpbWVFbGFwc2VkQmV0d2VlbkdldFN0YXRzQ2FsbHNN
cyA9IHQxIC0gdDA7CisgICAgY29uc3QgZGVsdGFUaW1lc3RhbXBNcyA9IHQxU3RhdHMudGltZXN0
YW1wIC0gdDBTdGF0cy50aW1lc3RhbXA7CisgICAgLy8gVGhlIGRlbHRhIG11c3QgYmUgYXQgbGVh
c3QgdGhlIHRpbWUgd2Ugd2FpdGVkIGJldHdlZW4gY2FsbHMuCisgICAgYXNzZXJ0X2dyZWF0ZXJf
dGhhbl9lcXVhbChkZWx0YVRpbWVzdGFtcE1zLAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAga01pbmltdW1UaW1lRWxhcHNlZEJldHdlZW5HZXRTdGF0c0NhbGxzTXMpOworICAgIC8vIFRo
ZSBkZWx0YSBtdXN0IGJlIGF0IG1vc3QgdGhlIHRpbWUgZWxhcHNlZCBiZWZvcmUgdGhlIGZpcnN0
IGdldFN0YXRzKCkKKyAgICAvLyBjYWxsIGFuZCBhZnRlciB0aGUgc2Vjb25kIGdldFN0YXRzKCkg
Y2FsbC4KKyAgICBhc3NlcnRfbGVzc190aGFuX2VxdWFsKGRlbHRhVGltZXN0YW1wTXMsCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICBtYXhpbXVtVGltZUVsYXBzZWRCZXR3ZWVuR2V0U3RhdHND
YWxsc01zKTsKKyAgfSwgYFJUQ1N0YXRzLnRpbWVzdGFtcCBpbmNyZWFzZXMgd2l0aCB0aW1lIHBh
c3NpbmdgKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXItdGVz
dC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXItdGVzdC1leHBlY3RlZC50eHQKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uZTg0ODk2OTBhNzk1ZGZjMzgzZWJiYmFjZTZjOTUxNWE5NzdlOTUwYQotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci10ZXN0LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDMgQEAKKworRkFJTCBTZXR0aW5nIHVwIGEgY29ubmVjdGlvbiB1c2luZyBoZWxwZXJzIGFu
ZCBkZWZhdWx0cyBzaG91bGQgd29yayBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxlZCByZWplY3Rpb24g
d2l0aCB2YWx1ZTogb2JqZWN0ICJUeXBlRXJyb3I6IHVuZGVmaW5lZCBpcyBub3QgYW4gb2JqZWN0
IChldmFsdWF0aW5nICd0cmFuc3BvcnQuc3RhdGUnKSIKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24taGVscGVyLXRlc3QuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci10ZXN0Lmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uNDJmNjY1MmFjNGM0YjIxNjVkOTE4OTI5OTc3ODg4YzU1ZGFkZGQ1NgotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci10ZXN0Lmh0bWwKQEAgLTAsMCArMSwyMSBAQAor
PCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPlJUQ1BlZXJDb25u
ZWN0aW9uLWhlbHBlciB0ZXN0czwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0
aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90ZXN0aGFybmVz
c3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24taGVs
cGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisKK3Byb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
IGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7Cisg
IGNvbnN0IHRyYW5zY2VpdmVyID0gcGMxLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOworCisgIGV4
Y2hhbmdlSWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3
ZXIocGMxLCBwYzIpOworICBhd2FpdCB3YWl0Rm9yU3RhdGUodHJhbnNjZWl2ZXIuc2VuZGVyLnRy
YW5zcG9ydCwgJ2Nvbm5lY3RlZCcpOworfSwgJ1NldHRpbmcgdXAgYSBjb25uZWN0aW9uIHVzaW5n
IGhlbHBlcnMgYW5kIGRlZmF1bHRzIHNob3VsZCB3b3JrJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcwppbmRleCAw
NzYyNmJkMGNjYzM5ZTkzMDM0YmVhZjFmNzQ1YmJjNDlhOTQzOGMxLi41YWVmMGE4ZTIxZTQyZmFm
ZTU4NzE5YzBmYjI0NmE5MTlkMWIxNWQxIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIu
anMKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24taGVscGVyLmpzCkBAIC0yMzIsNiArMjMyLDEyIEBAIGFzeW5j
IGZ1bmN0aW9uIHdhaXRGb3JDb25uZWN0aW9uU3RhdGVDaGFuZ2UocGMsIHdhbnRlZFN0YXRlcykg
ewogICB9CiB9CiAKK2FzeW5jIGZ1bmN0aW9uIHdhaXRGb3JJY2VHYXRoZXJpbmdTdGF0ZShwYywg
d2FudGVkU3RhdGVzKSB7CisgIHdoaWxlICghd2FudGVkU3RhdGVzLmluY2x1ZGVzKHBjLmljZUdh
dGhlcmluZ1N0YXRlKSkgeworICAgIGF3YWl0IHdhaXRVbnRpbEV2ZW50KHBjLCAnaWNlZ2F0aGVy
aW5nc3RhdGVjaGFuZ2UnKTsKKyAgfQorfQorCiAvLyBSZXNvbHZlcyB3aGVuIFJUUCBwYWNrZXRz
IGhhdmUgYmVlbiByZWNlaXZlZC4KIGFzeW5jIGZ1bmN0aW9uIGxpc3RlbkZvclNTUkNzKHQsIHJl
Y2VpdmVyKSB7CiAgIHdoaWxlICh0cnVlKSB7CkBAIC0zOTIsNyArMzk4LDcgQEAgY29uc3QgdHJh
Y2tGYWN0b3JpZXMgPSB7CiAgICAgcmV0dXJuIGRzdC5zdHJlYW0uZ2V0QXVkaW9UcmFja3MoKVsw
XTsKICAgfSwKIAotICB2aWRlbyh7d2lkdGggPSA2NDAsIGhlaWdodCA9IDQ4MCwgc2lnbmFsID0g
bnVsbH0gPSB7fSkgeworICB2aWRlbyh7d2lkdGggPSA2NDAsIGhlaWdodCA9IDQ4MCwgc2lnbmFs
fSA9IHt9KSB7CiAgICAgY29uc3QgY2FudmFzID0gT2JqZWN0LmFzc2lnbigKICAgICAgIGRvY3Vt
ZW50LmNyZWF0ZUVsZW1lbnQoImNhbnZhcyIpLCB7d2lkdGgsIGhlaWdodH0KICAgICApOwpAQCAt
NDAwLDE1ICs0MDYsMTcgQEAgY29uc3QgdHJhY2tGYWN0b3JpZXMgPSB7CiAgICAgY29uc3Qgc3Ry
ZWFtID0gY2FudmFzLmNhcHR1cmVTdHJlYW0oKTsKIAogICAgIGxldCBjb3VudCA9IDA7Ci0gICAg
c2V0SW50ZXJ2YWwoKCkgPT4geworICAgIGNvbnN0IGludGVydmFsID0gc2V0SW50ZXJ2YWwoKCkg
PT4gewogICAgICAgY3R4LmZpbGxTdHlsZSA9IGByZ2IoJHtjb3VudCUyNTV9LCAke2NvdW50KmNv
dW50JTI1NX0sICR7Y291bnQlMjU1fSlgOwogICAgICAgY291bnQgKz0gMTsKICAgICAgIGN0eC5m
aWxsUmVjdCgwLCAwLCB3aWR0aCwgaGVpZ2h0KTsKLSAgICAgIC8vIElmIHNpZ25hbCBpcyBzZXQs
IGFkZCBhIGNvbnN0YW50LWNvbG9yIGJveCB0byB0aGUgdmlkZW8gZnJhbWUKLSAgICAgIC8vIGF0
IGNvb3JkaW5hdGVzIDEwIHRvIDMwIGluIGJvdGggWCBhbmQgWSBkaXJlY3Rpb24uCi0gICAgICBp
ZiAoc2lnbmFsICE9PSBudWxsKSB7CisgICAgICAvLyBJZiBzaWduYWwgaXMgc2V0ICgwLTI1NSks
IGFkZCBhIGNvbnN0YW50LWNvbG9yIGJveCBvZiB0aGF0IGx1bWluYW5jZSB0bworICAgICAgLy8g
dGhlIHZpZGVvIGZyYW1lIGF0IGNvb3JkaW5hdGVzIDIwIHRvIDYwIGluIGJvdGggWCBhbmQgWSBk
aXJlY3Rpb24uCisgICAgICAvLyAoYmlnIGVub3VnaCB0byBhdm9pZCBjb2xvciBibGVlZCBmcm9t
IHN1cnJvdW5kaW5nIHZpZGVvIGluIHNvbWUgY29kZWNzLAorICAgICAgLy8gZm9yIG1vcmUgc3Rh
YmxlIHRlc3RzKS4KKyAgICAgIGlmIChzaWduYWwgIT0gdW5kZWZpbmVkKSB7CiAgICAgICAgIGN0
eC5maWxsU3R5bGUgPSBgcmdiKCR7c2lnbmFsfSwgJHtzaWduYWx9LCAke3NpZ25hbH0pYDsKLSAg
ICAgICAgY3R4LmZpbGxSZWN0KDEwLCAxMCwgMjAsIDIwKTsKKyAgICAgICAgY3R4LmZpbGxSZWN0
KDIwLCAyMCwgNDAsIDQwKTsKICAgICAgIH0KICAgICB9LCAxMDApOwogCkBAIC00MTcsMjUgKzQy
NSwzNCBAQCBjb25zdCB0cmFja0ZhY3RvcmllcyA9IHsKICAgICB9IGVsc2UgewogICAgICAgZG9j
dW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignRE9NQ29udGVudExvYWRlZCcsICgpID0+IHsKICAgICAg
ICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChjYW52YXMpOwotICAgICAgfSk7CisgICAgICB9
LCB7b25jZTogdHJ1ZX0pOwogICAgIH0KIAotICAgIHJldHVybiBzdHJlYW0uZ2V0VmlkZW9UcmFj
a3MoKVswXTsKKyAgICAvLyBJbXBsZW1lbnQgdHJhY2suc3RvcCgpIGZvciBwZXJmb3JtYW5jZSBp
biBzb21lIHRlc3RzIG9uIHNvbWUgcGxhdGZvcm1zCisgICAgY29uc3QgdHJhY2sgPSBzdHJlYW0u
Z2V0VmlkZW9UcmFja3MoKVswXTsKKyAgICBjb25zdCBuYXRpdmVTdG9wID0gdHJhY2suc3RvcDsK
KyAgICB0cmFjay5zdG9wID0gZnVuY3Rpb24gc3RvcCgpIHsKKyAgICAgIGNsZWFySW50ZXJ2YWwo
aW50ZXJ2YWwpOworICAgICAgbmF0aXZlU3RvcC5hcHBseSh0aGlzKTsKKyAgICAgIGlmIChkb2N1
bWVudC5ib2R5ICYmIGNhbnZhcy5wYXJlbnRFbGVtZW50ID09IGRvY3VtZW50LmJvZHkpIHsKKyAg
ICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChjYW52YXMpOworICAgICAgfQorICAgIH07
CisgICAgcmV0dXJuIHRyYWNrOwogICB9CiB9OwogCiAvLyBHZXQgdGhlIHNpZ25hbCBmcm9tIGEg
dmlkZW8gZWxlbWVudCBpbnNlcnRlZCBieSBjcmVhdGVOb2lzZVN0cmVhbQogZnVuY3Rpb24gZ2V0
VmlkZW9TaWduYWwodikgewotICBpZiAodi52aWRlb1dpZHRoIDwgMjEgfHwgdi52aWRlb0hlaWdo
dCA8IDIxKSB7Ci0gICAgcmV0dXJuIG51bGw7CisgIGlmICh2LnZpZGVvV2lkdGggPCA2MCB8fCB2
LnZpZGVvSGVpZ2h0IDwgNjApIHsKKyAgICB0aHJvdyBuZXcgRXJyb3IoJ2dldFZpZGVvU2lnbmFs
OiB2aWRlbyB0b28gc21hbGwgZm9yIHRlc3QnKTsKICAgfQogICBjb25zdCBjYW52YXMgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTsKLSAgY2FudmFzLndpZHRoID0gdi52aWRlb1dp
ZHRoOwotICBjYW52YXMuaGVpZ2h0ID0gdi52aWRlb0hlaWdodDsKKyAgY2FudmFzLndpZHRoID0g
Y2FudmFzLmhlaWdodCA9IDYwOwogICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQo
JzJkJyk7Ci0gIGNvbnRleHQuZHJhd0ltYWdlKHYsIDAsIDAsIHYudmlkZW9XaWR0aCwgdi52aWRl
b0hlaWdodCk7Ci0gIC8vIEV4dHJhY3QgcGl4ZWwgdmFsdWUgYXQgcG9zaXRpb24gMjAsIDIwCi0g
IGNvbnN0IHBpeGVsID0gY29udGV4dC5nZXRJbWFnZURhdGEoMjAsIDIwLCAxLCAxKTsKKyAgY29u
dGV4dC5kcmF3SW1hZ2UodiwgMCwgMCk7CisgIC8vIEV4dHJhY3QgcGl4ZWwgdmFsdWUgYXQgcG9z
aXRpb24gNDAsIDQwCisgIGNvbnN0IHBpeGVsID0gY29udGV4dC5nZXRJbWFnZURhdGEoNDAsIDQw
LCAxLCAxKTsKICAgLy8gVXNlIGx1bWEgcmVjb25zdHJ1Y3Rpb24gdG8gZ2V0IGJhY2sgb3JpZ2lu
YWwgdmFsdWUgYWNjb3JkaW5nIHRvCiAgIC8vIElUVS1SIHJlYyBCVC43MDkKICAgcmV0dXJuIChw
aXhlbC5kYXRhWzBdICogMC4yMSArIHBpeGVsLmRhdGFbMV0gKiAwLjcyICsgcGl4ZWwuZGF0YVsy
XSAqIDAuMDcpOwpAQCAtNDQzLDggKzQ2MCw5IEBAIGZ1bmN0aW9uIGdldFZpZGVvU2lnbmFsKHYp
IHsKIAogYXN5bmMgZnVuY3Rpb24gZGV0ZWN0U2lnbmFsKHQsIHYsIHZhbHVlKSB7CiAgIHdoaWxl
ICh0cnVlKSB7Ci0gICAgY29uc3Qgc2lnbmFsID0gZ2V0VmlkZW9TaWduYWwodik7Ci0gICAgaWYg
KHNpZ25hbCAhPT0gbnVsbCAmJiBzaWduYWwgPCB2YWx1ZSArIDEgJiYgc2lnbmFsID4gdmFsdWUg
LSAxKSB7CisgICAgY29uc3Qgc2lnbmFsID0gZ2V0VmlkZW9TaWduYWwodikudG9GaXhlZCgpOwor
ICAgIC8vIGFsbG93IG9mZi1ieS10d28gcGl4ZWwgZXJyb3IgKG9ic2VydmVkIGluIHNvbWUgaW1w
bGVtZW50YXRpb25zKQorICAgIGlmICh2YWx1ZSAtIDIgPD0gc2lnbmFsICYmIHNpZ25hbCA8PSB2
YWx1ZSArIDIpIHsKICAgICAgIHJldHVybjsKICAgICB9CiAgICAgLy8gV2Ugd291bGQgbGlrZSB0
byB3YWl0IGZvciBlYWNoIG5ldyBmcmFtZSBpbnN0ZWFkIGhlcmUsCkBAIC01MjEsOCArNTM5LDEy
IEBAIGFzeW5jIGZ1bmN0aW9uIGV4Y2hhbmdlT2ZmZXIoY2FsbGVyLCBjYWxsZWUpIHsKIH0KIC8v
IFBlcmZvcm1zIGFuIGFuc3dlciBleGNoYW5nZSBjYWxsZXIgLT4gY2FsbGVlLgogYXN5bmMgZnVu
Y3Rpb24gZXhjaGFuZ2VBbnN3ZXIoY2FsbGVyLCBjYWxsZWUpIHsKLSAgYXdhaXQgY2FsbGVlLnNl
dExvY2FsRGVzY3JpcHRpb24oYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dlcigpKTsKLSAgYXdhaXQg
Y2FsbGVyLnNldFJlbW90ZURlc2NyaXB0aW9uKGNhbGxlZS5sb2NhbERlc2NyaXB0aW9uKTsKKyAg
Ly8gTm90ZSB0aGF0IGNhbGxlcidzIHJlbW90ZSBkZXNjcmlwdGlvbiBtdXN0IGJlIHNldCBmaXJz
dDsgaWYgbm90LAorICAvLyB0aGVyZSdzIGEgY2hhbmNlIHRoYXQgY2FuZGlkYXRlcyBmcm9tIGNh
bGxlZSBhcnJpdmUgYXQgY2FsbGVyIGJlZm9yZQorICAvLyBpdCBoYXMgYSByZW1vdGUgZGVzY3Jp
cHRpb24gdG8gYXBwbHkgdGhlbSB0by4KKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgY2FsbGVlLmNy
ZWF0ZUFuc3dlcigpOworICBhd2FpdCBjYWxsZXIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2Vy
KTsKKyAgYXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKIH0KIGFzeW5j
IGZ1bmN0aW9uIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIoY2FsbGVyLCBjYWxsZWUpIHsKICAgYXdhaXQg
ZXhjaGFuZ2VPZmZlcihjYWxsZXIsIGNhbGxlZSk7CkBAIC02NDgsMyArNjcwLDQwIEBAIGNsYXNz
IFVuaXF1ZVNldCBleHRlbmRzIFNldCB7CiAgICAgc3VwZXIuYWRkKHZhbHVlKTsKICAgfQogfQor
Citjb25zdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zID0gYXN5bmMgKHBjLCAuLi5zdGF0
ZXMpID0+IHsKKyAgZm9yIChjb25zdCBzdGF0ZSBvZiBzdGF0ZXMpIHsKKyAgICBhd2FpdCBuZXcg
UHJvbWlzZSgocmVzb2x2ZSwgcmVqZWN0KSA9PiB7CisgICAgICBwYy5hZGRFdmVudExpc3RlbmVy
KCdpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZScsICgpID0+IHsKKyAgICAgICAgaWYgKHBjLmljZUdh
dGhlcmluZ1N0YXRlID09IHN0YXRlKSB7CisgICAgICAgICAgcmVzb2x2ZSgpOworICAgICAgICB9
IGVsc2UgeworICAgICAgICAgIHJlamVjdChgVW5leHBlY3RlZCBnYXRoZXJpbmcgc3RhdGU6ICR7
cGMuaWNlR2F0aGVyaW5nU3RhdGV9LCB3YXMgZXhwZWN0aW5nICR7c3RhdGV9YCk7CisgICAgICAg
IH0KKyAgICAgIH0sIHtvbmNlOiB0cnVlfSk7CisgICAgfSk7CisgIH0KK307CisKK2NvbnN0IGlu
aXRpYWxPZmZlckFuc3dlcldpdGhJY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zID0KKyAgICBh
c3luYyAocGMxLCBwYzIsIG9mZmVyT3B0aW9ucykgPT4geworICAgICAgYXdhaXQgcGMxLnNldExv
Y2FsRGVzY3JpcHRpb24oCisgICAgICAgIGF3YWl0IHBjMS5jcmVhdGVPZmZlcihvZmZlck9wdGlv
bnMpKTsKKyAgICAgIGNvbnN0IHBjMVRyYW5zaXRpb25zID0KKyAgICAgICAgICBpY2VHYXRoZXJp
bmdTdGF0ZVRyYW5zaXRpb25zKHBjMSwgJ2dhdGhlcmluZycsICdjb21wbGV0ZScpOworICAgICAg
YXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0aW9uKTsKKyAg
ICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIo
KSk7CisgICAgICBjb25zdCBwYzJUcmFuc2l0aW9ucyA9CisgICAgICAgICAgaWNlR2F0aGVyaW5n
U3RhdGVUcmFuc2l0aW9ucyhwYzIsICdnYXRoZXJpbmcnLCAnY29tcGxldGUnKTsKKyAgICAgIGF3
YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisgICAg
ICBhd2FpdCBwYzFUcmFuc2l0aW9uczsKKyAgICAgIGF3YWl0IHBjMlRyYW5zaXRpb25zOworICAg
IH07CisKK2NvbnN0IGV4cGVjdE5vTW9yZUdhdGhlcmluZ1N0YXRlQ2hhbmdlcyA9IGFzeW5jICh0
LCBwYykgPT4geworICBwYy5vbmljZWdhdGhlcmluZ3N0YXRlY2hhbmdlID0KKyAgICAgIHQuc3Rl
cF9mdW5jKCgpID0+IHsKKyAgICAgICAgYXNzZXJ0X3VucmVhY2hlZCgKKyAgICAgICAgICAgICdT
aG91bGQgbm90IGdldCBhbiBpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSByaWdodCBub3chJyk7Cisg
ICAgICB9KTsKK307CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VDb25uZWN0aW9uU3RhdGUu
aHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sCmlu
ZGV4IGQzMTI2MDY1Yjk5Nzc4ZjMyYjVlMzEzMjExMDg1ZDU1YzA2NGZlMWUuLjMyMGIwM2RmYzgw
ZjhlN2U0YTIwZDllMjQzYjljYzg3Yzg4ODgxYzcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWlj
ZUNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUNvbm5lY3Rp
b25TdGF0ZS5odHRwcy5odG1sCkBAIC0zOTMsNyArMzkzLDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5j
IHQgPT4gewogCiAgIHBjMi5vbmljZWNvbm5lY3Rpb25zdGF0ZWNoYW5nZSA9IHQudW5yZWFjaGVk
X2Z1bmMoKTsKICAgcGMyLmNsb3NlKCk7Ci0gIGFzc2VydF90cnVlKHBjMi5pY2VDb25uZWN0aW9u
U3RhdGUgPT09ICdjbG9zZWQnKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzIuaWNlQ29ubmVjdGlvblN0
YXRlLCAnY2xvc2VkJyk7CiAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQo
ciwgMTAwKSk7CiB9LCAnQ2xvc2luZyBhIFBlZXJDb25uZWN0aW9uIHNob3VsZCBub3QgZmlyZSBp
Y2Vjb25uZWN0aW9uc3RhdGVjaGFuZ2UgZXZlbnQnKTsKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWljZUdhdGhlcmluZ1N0YXRl
Lmh0bWwKaW5kZXggM2YwMTI4YmI4NDNkZGJkZDEyOWY4YTEwYjYwMWIyMWMyMWNlN2RlNC4uODcw
ZTZhZDcyZWMzNTZlY2VmYmNhNjg4NzhkYTczMWUzNDdlZDE3YyAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24taWNlR2F0aGVyaW5nU3RhdGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1pY2VHYXRoZXJp
bmdTdGF0ZS5odG1sCkBAIC04NCw0MyArODQsMTMgQEAKICAgICAgIGFzc2VydF91bnJlYWNoZWQo
YFVuaGFuZGxlZCByZWplY3Rpb24gJHtlcnIubmFtZX06ICR7ZXJyLm1lc3NhZ2V9YCkpKTsKICAg
fSwgJ2ljZUdhdGhlcmluZ1N0YXRlIHNob3VsZCBldmVudHVhbGx5IGJlY29tZSBjb21wbGV0ZSBh
ZnRlciBzZXRMb2NhbERlc2NyaXB0aW9uJyk7CiAKLSAgY29uc3QgaWNlR2F0aGVyaW5nU3RhdGVU
cmFuc2l0aW9ucyA9IGFzeW5jIChwYywgLi4uc3RhdGVzKSA9PiB7Ci0gICAgZm9yIChjb25zdCBz
dGF0ZSBvZiBzdGF0ZXMpIHsKLSAgICAgIGF3YWl0IG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWpl
Y3QpID0+IHsKLSAgICAgICAgcGMuYWRkRXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5nc3RhdGVj
aGFuZ2UnLCAoKSA9PiB7Ci0gICAgICAgICAgaWYgKHBjLmljZUdhdGhlcmluZ1N0YXRlID09IHN0
YXRlKSB7Ci0gICAgICAgICAgICByZXNvbHZlKCk7Ci0gICAgICAgICAgfSBlbHNlIHsKLSAgICAg
ICAgICAgIHJlamVjdChgVW5leHBlY3RlZCBnYXRoZXJpbmcgc3RhdGU6ICR7cGMuaWNlR2F0aGVy
aW5nU3RhdGV9LCB3YXMgZXhwZWN0aW5nICR7c3RhdGV9YCk7Ci0gICAgICAgICAgfQotICAgICAg
ICB9LCB7b25jZTogdHJ1ZX0pOwotICAgICAgfSk7Ci0gICAgfQotICB9OwotCi0gIGNvbnN0IGlu
aXRpYWxPZmZlckFuc3dlciA9IGFzeW5jIChwYzEsIHBjMiwgb2ZmZXJPcHRpb25zKSA9PiB7Ci0g
ICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oCi0gICAgICBhd2FpdCBwYzEuY3JlYXRl
T2ZmZXIob2ZmZXJPcHRpb25zKSk7Ci0gICAgY29uc3QgcGMxVHJhbnNpdGlvbnMgPSBpY2VHYXRo
ZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjMSwgJ2dhdGhlcmluZycsICdjb21wbGV0ZScpOwotICAg
IGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNjcmlwdGlvbik7Ci0g
ICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigp
KTsKLSAgICBjb25zdCBwYzJUcmFuc2l0aW9ucyA9IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlv
bnMocGMyLCAnZ2F0aGVyaW5nJywgJ2NvbXBsZXRlJyk7Ci0gICAgYXdhaXQgcGMxLnNldFJlbW90
ZURlc2NyaXB0aW9uKHBjMi5sb2NhbERlc2NyaXB0aW9uKTsKLQotICAgIGF3YWl0IHBjMVRyYW5z
aXRpb25zOwotICAgIGF3YWl0IHBjMlRyYW5zaXRpb25zOwotICB9OwotCi0gIGNvbnN0IGV4cGVj
dE5vTW9yZUdhdGhlcmluZ1N0YXRlQ2hhbmdlcyA9IGFzeW5jICh0LCBwYykgPT4gewotICAgIHBj
Lm9uaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UgPSB0LnN0ZXBfZnVuYygoKSA9PiBhc3NlcnRfdW5y
ZWFjaGVkKCdTaG91bGQgbm90IGdldCBhbiBpY2VnYXRoZXJpbmdzdGF0ZWNoYW5nZSByaWdodCBu
b3chJykpOwotICB9OwotCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgICBjb25zdCBw
YzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
MS5jbG9zZSgpKTsKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLSAgICBhd2FpdCBpbml0aWFsT2Zm
ZXJBbnN3ZXIocGMxLCBwYzIsIHtvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlfSk7CisgICAgYXdh
aXQgaW5pdGlhbE9mZmVyQW5zd2VyV2l0aEljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMoCisg
ICAgICAgIHBjMSwgcGMyLCB7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pOwogCiAgICAgZXhw
ZWN0Tm9Nb3JlR2F0aGVyaW5nU3RhdGVDaGFuZ2VzKHQsIHBjMSk7CiAgICAgZXhwZWN0Tm9Nb3Jl
R2F0aGVyaW5nU3RhdGVDaGFuZ2VzKHQsIHBjMik7CkBAIC0xMzQsMjIgKzEwNCwyMSBAQAogICBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7Ci0gICAgY29u
c3QgcGMyID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Ci0gICAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7Ci0gICAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2VyKHBjMSwgcGMyLCB7
b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pOwotICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2Ny
aXB0aW9uKGF3YWl0IHBjMS5jcmVhdGVPZmZlcih7aWNlUmVzdGFydDogdHJ1ZX0pKTsKLSAgICBh
d2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBjMSwgJ2dhdGhlcmluZycsICdjb21w
bGV0ZScpOworCiAgICAgZXhwZWN0Tm9Nb3JlR2F0aGVyaW5nU3RhdGVDaGFuZ2VzKHQsIHBjMSk7
Ci0gICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oe3R5cGU6ICdyb2xsYmFjayd9KTsK
LSAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDEwMDApKTsKLSAg
fSwgJ3JvbGxpbmcgYmFjayBhbiBJQ0UgcmVzdGFydCB3aGVuIGdhdGhlcmluZyBpcyBjb21wbGV0
ZSBzaG91bGQgbm90IHJlc3VsdCBpbiBpY2VHYXRoZXJpbmdTdGF0ZSBjaGFuZ2VzJyk7CisKKyAg
ICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7
CisKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHQuc3RlcF90aW1lb3V0KHIsIDUwMCkpOwor
ICB9LCAnc2V0TG9jYWxEZXNjcmlwdGlvbigpIHdpdGggbm8gdHJhbnNwb3J0cyBzaG91bGQgbm90
IGNhdXNlIGljZUdhdGhlcmluZ1N0YXRlIHRvIGNoYW5nZScpOwogCiAgIHByb21pc2VfdGVzdChh
c3luYyB0ID0+IHsKICAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAg
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgICBjb25zdCBwYzIgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgp
KTsKLSAgICBhd2FpdCBpbml0aWFsT2ZmZXJBbnN3ZXIocGMxLCBwYzIsIHtvZmZlclRvUmVjZWl2
ZUF1ZGlvOnRydWV9KTsKKyAgICBhd2FpdCBpbml0aWFsT2ZmZXJBbnN3ZXJXaXRoSWNlR2F0aGVy
aW5nU3RhdGVUcmFuc2l0aW9ucygKKyAgICAgICAgcGMxLCBwYzIsIHtvZmZlclRvUmVjZWl2ZUF1
ZGlvOnRydWV9KTsKICAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEu
Y3JlYXRlT2ZmZXIoe2ljZVJlc3RhcnQ6IHRydWV9KSk7CiAgICAgYXdhaXQgaWNlR2F0aGVyaW5n
U3RhdGVUcmFuc2l0aW9ucyhwYzEsICdnYXRoZXJpbmcnLCAnY29tcGxldGUnKTsKICAgfSwgJ3Nl
dExvY2FsRGVzY3JpcHRpb24ocmVvZmZlcikgd2l0aCBhIG5ldyB0cmFuc3BvcnQgc2hvdWxkIGNh
dXNlIGljZUdhdGhlcmluZ1N0YXRlIHRvIGdvIHRvICJjaGVja2luZyIgYW5kIHRoZW4gImNvbXBs
ZXRlIicpOwpAQCAtMTY1LDQ4ICsxMzQsMzEgQEAKICAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVz
Y3JpcHRpb24ob2ZmZXIpOwogICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlw
ZTogJ3JvbGxiYWNrJ30pOwogICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZl
cik7Ci0gIH0sICdzUkQgZG9lcyBub3QgY2F1c2UgSUNFIGdhdGhlcmluZyBzdGF0ZSBjaGFuZ2Vz
JykKLQotICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwot
ICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oCi0gICAgICBhd2FpdCBwYy5jcmVhdGVP
ZmZlcih7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pKTsKLSAgICBhd2FpdCBpY2VHYXRoZXJp
bmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAnZ2F0aGVyaW5nJywgJ2NvbXBsZXRlJyk7Ci0gICAgYXdh
aXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbih7dHlwZTogJ3JvbGxiYWNrJ30pOwotICAgIGF3YWl0
IGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMocGMsICduZXcnKTsKLSAgfSwgJ3NldExvY2Fs
RGVzY3JpcHRpb24ocm9sbGJhY2spIG9mIG9yaWdpbmFsIG9mZmVyIHNob3VsZCBjYXVzZSBpY2VH
YXRoZXJpbmdTdGF0ZSB0byByZWFjaCAibmV3IiB3aGVuIHN0YXJ0aW5nIGluICJjb21wbGV0ZSIn
KTsKLQotICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7Ci0gICAgY29uc3QgcGMgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKLSAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwot
ICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oCi0gICAgICBhd2FpdCBwYy5jcmVhdGVP
ZmZlcih7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1ZX0pKTsKLSAgICBhd2FpdCBpY2VHYXRoZXJp
bmdTdGF0ZVRyYW5zaXRpb25zKHBjLCAnZ2F0aGVyaW5nJyk7Ci0gICAgYXdhaXQgcGMuc2V0TG9j
YWxEZXNjcmlwdGlvbih7dHlwZTogJ3JvbGxiYWNrJ30pOwotICAgIC8vIFdlIG1pZ2h0IGdvIGRp
cmVjdGx5IHRvICduZXcnLCBvciB3ZSBtaWdodCBnbyB0byAnY29tcGxldGUnIGZpcnN0LAotICAg
IC8vIGRlcGVuZGluZyBvbiB0aW1pbmcuIEFsbG93IGVpdGhlci4KLSAgICBjb25zdCByZXN1bHRz
ID0gYXdhaXQgUHJvbWlzZS5hbGxTZXR0bGVkKFsKLSAgICAgIGljZUdhdGhlcmluZ1N0YXRlVHJh
bnNpdGlvbnMocGMsICduZXcnKSwKLSAgICAgIGljZUdhdGhlcmluZ1N0YXRlVHJhbnNpdGlvbnMo
cGMsICdjb21wbGV0ZScsICduZXcnKV0pOwotICAgIGFzc2VydF90cnVlKHJlc3VsdHMuc29tZShy
ZXN1bHQgPT4gcmVzdWx0LnN0YXR1cyA9PSAnZnVsZmlsbGVkJyksCi0gICAgICAnSUNFIGdhdGhl
cmluZyBzdGF0ZSBzaG91bGQgZ28gYmFjayB0byAibmV3IiwgcG9zc2libHkgdGhyb3VnaCAiY29t
cGxldGUiJyk7Ci0gIH0sICdzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBvZiBvcmlnaW5h
bCBvZmZlciBzaG91bGQgY2F1c2UgaWNlR2F0aGVyaW5nU3RhdGUgdG8gcmVhY2ggIm5ldyIgd2hl
biBzdGFydGluZyBpbiAiZ2F0aGVyaW5nIicpOworICB9LCAnc1JEIGRvZXMgbm90IGNhdXNlIElD
RSBnYXRoZXJpbmcgc3RhdGUgY2hhbmdlcycpOwogCiAgIHByb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKICAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKICAgICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNv
bm5lY3Rpb24oKTsKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKLSAgICBh
d2FpdCBpbml0aWFsT2ZmZXJBbnN3ZXIocGMxLCBwYzIsIHtvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0
cnVlfSk7CisgICAgYXdhaXQgaW5pdGlhbE9mZmVyQW5zd2VyV2l0aEljZUdhdGhlcmluZ1N0YXRl
VHJhbnNpdGlvbnMoCisgICAgICAgIHBjMSwgcGMyLCB7b2ZmZXJUb1JlY2VpdmVBdWRpbzogdHJ1
ZX0pOwogCisgICAgY29uc3QgcGMxd2FpdGVyID0gaWNlR2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9u
cyhwYzEsICduZXcnKTsKKyAgICBjb25zdCBwYzJ3YWl0ZXIgPSBpY2VHYXRoZXJpbmdTdGF0ZVRy
YW5zaXRpb25zKHBjMiwgJ25ldycpOwogICAgIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5zdG9w
KCk7CiAgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9m
ZmVyKCkpOwogICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzEubG9jYWxEZXNj
cmlwdGlvbik7CiAgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMyLmNy
ZWF0ZUFuc3dlcigpKTsKLSAgICBhd2FpdCBpY2VHYXRoZXJpbmdTdGF0ZVRyYW5zaXRpb25zKHBj
MiwgJ25ldycpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVycygpLmxlbmd0
aCwgMCwKKyAgICAgICAgICAgICAgICAgJ1BDMiB0cmFuc2NlaXZlcnMgc2hvdWxkIGJlIGludmlz
aWJsZSBhZnRlciBuZWdvdGlhdGlvbicpOworICAgIGFzc2VydF9lcXVhbHMocGMyLmljZUdhdGhl
cmluZ1N0YXRlLCAnbmV3Jyk7CisgICAgYXdhaXQgcGMyd2FpdGVyOwogICAgIGF3YWl0IHBjMS5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7Ci0gICAgYXdhaXQgaWNl
R2F0aGVyaW5nU3RhdGVUcmFuc2l0aW9ucyhwYzEsICduZXcnKTsKKyAgICBhc3NlcnRfZXF1YWxz
KHBjMS5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDAsCisgICAgICAgICAgICAgICAgICAnUEMx
IHRyYW5zY2VpdmVycyBzaG91bGQgYmUgaW52aXNpYmxlIGFmdGVyIG5lZ290aWF0aW9uJyk7Cisg
ICAgYXNzZXJ0X2VxdWFscyhwYzEuaWNlR2F0aGVyaW5nU3RhdGUsICduZXcnKTsKKyAgICBhd2Fp
dCBwYzF3YWl0ZXI7CiAgIH0sICdyZW5lZ290aWF0aW9uIHRoYXQgY2xvc2VzIGFsbCB0cmFuc3Bv
cnRzIHNob3VsZCByZXN1bHQgaW4gSUNFIGdhdGhlcmluZyBzdGF0ZSAibmV3IicpOwogCiAgIC8q
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRwcy5odG1sCmluZGV4IDUwMTU4ZDRj
ZWEwY2RlM2FlNWY1ODMxNDA4NTlkZTZkYTc5YmEwYmQuLjdkYTE0Y2Q1ZTBmM2Y1YzdlODA3YjYx
Y2IwZTdlY2M3MjE2ZmYwMDcgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRT
dGF0cy5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW1hbmRhdG9yeS1nZXRTdGF0cy5odHRw
cy5odG1sCkBAIC0yNCwxMiArMjQsMTcgQEAgY29uc3QgbWFuZGF0b3J5ID0gewogICAgICJwYWNr
ZXRzTG9zdCIsCiAgICAgImppdHRlciIsCiAgICAgInBhY2tldHNEaXNjYXJkZWQiLAorICAgICJm
cmFtZXNEcm9wcGVkIgogICBdLAogICBSVENJbmJvdW5kUnRwU3RyZWFtU3RhdHM6IFsKLSAgICAi
dHJhY2tJZCIsCiAgICAgInJlY2VpdmVySWQiLAogICAgICJyZW1vdGVJZCIsCiAgICAgImZyYW1l
c0RlY29kZWQiLAorICAgICJuYWNrQ291bnQiLAorICAgICJmcmFtZXNSZWNlaXZlZCIsCisgICAg
ImJ5dGVzUmVjZWl2ZWQiLAorICAgICJ0b3RhbEF1ZGlvRW5lcmd5IiwKKyAgICAidG90YWxTYW1w
bGVzRHVyYXRpb24iCiAgIF0sCiAgIFJUQ1JlbW90ZUluYm91bmRSdHBTdHJlYW1TdGF0czogWwog
ICAgICJsb2NhbElkIiwKQEAgLTQwLDEwICs0NSwxMSBAQCBjb25zdCBtYW5kYXRvcnkgPSB7CiAg
ICAgImJ5dGVzU2VudCIKICAgXSwKICAgUlRDT3V0Ym91bmRSdHBTdHJlYW1TdGF0czogWwotICAg
ICJ0cmFja0lkIiwKICAgICAic2VuZGVySWQiLAogICAgICJyZW1vdGVJZCIsCiAgICAgImZyYW1l
c0VuY29kZWQiLAorICAgICJuYWNrQ291bnQiLAorICAgICJmcmFtZXNTZW50IgogICBdLAogICBS
VENSZW1vdGVPdXRib3VuZFJ0cFN0cmVhbVN0YXRzOiBbCiAgICAgImxvY2FsSWQiLApAQCAtNTQs
NiArNjAsNyBAQCBjb25zdCBtYW5kYXRvcnkgPSB7CiAgICAgImRhdGFDaGFubmVsc0Nsb3NlZCIs
CiAgIF0sCiAgIFJUQ0RhdGFDaGFubmVsU3RhdHM6IFsKKyAgICAibGFiZWwiLAogICAgICJwcm90
b2NvbCIsCiAgICAgImRhdGFDaGFubmVsSWRlbnRpZmllciIsCiAgICAgInN0YXRlIiwKQEAgLTYy
LDM1ICs2OSwzNCBAQCBjb25zdCBtYW5kYXRvcnkgPSB7CiAgICAgIm1lc3NhZ2VzUmVjZWl2ZWQi
LAogICAgICJieXRlc1JlY2VpdmVkIiwKICAgXSwKLSAgUlRDTWVkaWFTdHJlYW1TdGF0czogWwot
ICAgICJzdHJlYW1JZGVudGlmZXIiLAotICAgICJ0cmFja0lkcyIsCisgIFJUQ01lZGlhU291cmNl
U3RhdHM6IFsKKyAgICAidHJhY2tJZGVudGlmaWVyIiwKKyAgICAgImtpbmQiCisgIF0sCisgIFJU
Q0F1ZGlvU291cmNlU3RhdHM6IFsKKyAgICAidG90YWxBdWRpb0VuZXJneSIsCisgICAgICJ0b3Rh
bFNhbXBsZXNEdXJhdGlvbiIKKyAgXSwKKyAgUlRDVmlkZW9Tb3VyY2VTdGF0czogWworICAgICJ3
aWR0aCIsCisgICAgImhlaWdodCIsCisgICAgImZyYW1lc1BlclNlY29uZCIKICAgXSwKICAgUlRD
TWVkaWFIYW5kbGVyU3RhdHM6IFsKICAgICAidHJhY2tJZGVudGlmaWVyIiwKLSAgICAicmVtb3Rl
U291cmNlIiwKLSAgICAiZW5kZWQiLAogICBdLAogICBSVENBdWRpb0hhbmRsZXJTdGF0czogWwot
ICAgICJhdWRpb0xldmVsIiwKICAgXSwKICAgUlRDVmlkZW9IYW5kbGVyU3RhdHM6IFsKLSAgICAi
ZnJhbWVXaWR0aCIsCi0gICAgImZyYW1lSGVpZ2h0IiwKLSAgICAiZnJhbWVzUGVyU2Vjb25kIiwK
ICAgXSwKICAgUlRDVmlkZW9TZW5kZXJTdGF0czogWwotICAgICJmcmFtZXNTZW50IiwKICAgXSwK
ICAgUlRDVmlkZW9SZWNlaXZlclN0YXRzOiBbCi0gICAgImZyYW1lc1JlY2VpdmVkIiwKLSAgICAi
ZnJhbWVzRGVjb2RlZCIsCi0gICAgImZyYW1lc0Ryb3BwZWQiLAotICAgICJwYXJ0aWFsRnJhbWVz
TG9zdCIsCiAgIF0sCiAgIFJUQ0NvZGVjU3RhdHM6IFsKICAgICAicGF5bG9hZFR5cGUiLAogICAg
ICJjb2RlY1R5cGUiLAorICAgICJtaW1lVHlwZSIsCiAgICAgImNsb2NrUmF0ZSIsCiAgICAgImNo
YW5uZWxzIiwKICAgICAic2RwRm10cExpbmUiLApAQCAtOTgsNyArMTA0LDYgQEAgY29uc3QgbWFu
ZGF0b3J5ID0gewogICBSVENUcmFuc3BvcnRTdGF0czogWwogICAgICJieXRlc1NlbnQiLAogICAg
ICJieXRlc1JlY2VpdmVkIiwKLSAgICAicnRjcFRyYW5zcG9ydFN0YXRzSWQiLAogICAgICJzZWxl
Y3RlZENhbmRpZGF0ZVBhaXJJZCIsCiAgICAgImxvY2FsQ2VydGlmaWNhdGVJZCIsCiAgICAgInJl
bW90ZUNlcnRpZmljYXRlSWQiLApAQCAtMTA4LDEyICsxMTMsMTEgQEAgY29uc3QgbWFuZGF0b3J5
ID0gewogICAgICJsb2NhbENhbmRpZGF0ZUlkIiwKICAgICAicmVtb3RlQ2FuZGlkYXRlSWQiLAog
ICAgICJzdGF0ZSIsCi0gICAgInByaW9yaXR5IiwKICAgICAibm9taW5hdGVkIiwKICAgICAiYnl0
ZXNTZW50IiwKICAgICAiYnl0ZXNSZWNlaXZlZCIsCiAgICAgInRvdGFsUm91bmRUcmlwVGltZSIs
Ci0gICAgImN1cnJlbnRSb3VuZFRyaXBUaW1lIiwKKyAgICAiY3VycmVudFJvdW5kVHJpcFRpbWUi
CiAgIF0sCiAgIFJUQ0ljZUNhbmRpZGF0ZVN0YXRzOiBbCiAgICAgImFkZHJlc3MiLApAQCAtMTQx
LDcgKzE0NSwxMCBAQCBjb25zdCBkaWN0aW9uYXJ5TmFtZXMgPSB7CiAgICJjc3JjIjogIlJUQ1J0
cENvbnRyaWJ1dGluZ1NvdXJjZVN0YXRzIiwKICAgInBlZXItY29ubmVjdGlvbiI6ICJSVENQZWVy
Q29ubmVjdGlvblN0YXRzIiwKICAgImRhdGEtY2hhbm5lbCI6ICJSVENEYXRhQ2hhbm5lbFN0YXRz
IiwKLSAgInN0cmVhbSI6ICJSVENNZWRpYVN0cmVhbVN0YXRzIiwKKyAgIm1lZGlhLXNvdXJjZSI6
IHsKKyAgICBhdWRpbzogIlJUQ0F1ZGlvU291cmNlU3RhdHMiLAorICAgIHZpZGVvOiAiUlRDVmlk
ZW9Tb3VyY2VTdGF0cyIKKyAgfSwKICAgInRyYWNrIjogewogICAgIHZpZGVvOiAiUlRDU2VuZGVy
VmlkZW9UcmFja0F0dGFjaG1lbnRTdGF0cyIsCiAgICAgYXVkaW86ICJSVENTZW5kZXJBdWRpb1Ry
YWNrQXR0YWNobWVudFN0YXRzIgpAQCAtMTY2LDEwICsxNzMsMTIgQEAgY29uc3QgZGljdGlvbmFy
eU5hbWVzID0gewogY29uc3QgcGFyZW50cyA9IHsKICAgUlRDVmlkZW9IYW5kbGVyU3RhdHM6ICJS
VENNZWRpYUhhbmRsZXJTdGF0cyIsCiAgIFJUQ1ZpZGVvU2VuZGVyU3RhdHM6ICJSVENWaWRlb0hh
bmRsZXJTdGF0cyIsCisgIFJUQ1ZpZGVvU291cmNlU3RhdHM6ICJSVENNZWRpYVNvdXJjZVN0YXRz
IiwKICAgUlRDU2VuZGVyVmlkZW9UcmFja0F0dGFjaG1lbnRTdGF0czogIlJUQ1ZpZGVvU2VuZGVy
U3RhdHMiLAogICBSVENWaWRlb1JlY2VpdmVyU3RhdHM6ICJSVENWaWRlb0hhbmRsZXJTdGF0cyIs
CiAgIFJUQ0F1ZGlvSGFuZGxlclN0YXRzOiAiUlRDTWVkaWFIYW5kbGVyU3RhdHMiLAogICBSVENB
dWRpb1NlbmRlclN0YXRzOiAiUlRDQXVkaW9IYW5kbGVyU3RhdHMiLAorICBSVENBdWRpb1NvdXJj
ZVN0YXRzOiAiUlRDTWVkaWFTb3VyY2VTdGF0cyIsCiAgIFJUQ1NlbmRlckF1ZGlvVHJhY2tBdHRh
Y2htZW50U3RhdHM6ICJSVENBdWRpb1NlbmRlclN0YXRzIiwKICAgUlRDQXVkaW9SZWNlaXZlclN0
YXRzOiAiUlRDQXVkaW9IYW5kbGVyU3RhdHMiLAogICBSVENSZWNlaXZlZFJ0cFN0cmVhbVN0YXRz
OiAiUlRDUnRwU3RyZWFtU3RhdHMiLApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25kYXRhY2hh
bm5lbC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25kYXRhY2hhbm5lbC5odG1sCmluZGV4IDQ2ZmU4ZTBm
NTFiMWIxYTg1NWYwNmQ1NGM4MTk3ODRkNmY1NDI1MDguLjAzNDM2NTUwOGI2YmNhMTQ2OTg1Mzc4
MTlkODZjNTNmYzEyMjZkNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uZGF0YWNoYW5uZWwu
aHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dl
YnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbmRhdGFjaGFubmVsLmh0bWwKQEAgLTI1NSw3ICsyNTUs
NyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKICAgY29uc3QgZGMxID0gcGMxLmNyZWF0
ZURhdGFDaGFubmVsKCd0ZXN0JywgewogICAgIG9yZGVyZWQ6IGZhbHNlLAogICAgIG1heFJldHJh
bnNtaXRzOiAxLAotICAgIHByb3RvY29sOiAnY3VzdG9tJywKKyAgICBwcm90b2NvbDogJ2N1c3Rv
bScKICAgfSk7CiAKICAgYXNzZXJ0X2VxdWFscyhkYzEubGFiZWwsICd0ZXN0Jyk7CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1vbm5lZ290aWF0aW9ubmVlZGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1v
bm5lZ290aWF0aW9ubmVlZGVkLmh0bWwKaW5kZXggMmVkYTdiNWIzNDFjYTk2NWRjYTk3MGNkZmE1
YzczYjJmNTdlMzE4OS4uYTg3NTUxYTU4YzdkZDU2ODdlM2MxZWVlNDg4YzkyZmI4NWIxZGUwNSAx
MDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25uZWdvdGlhdGlvbm5lZWRlZC5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLW9ubmVnb3RpYXRpb25uZWVkZWQuaHRtbApAQCAtMjg4LDcgKzI4OCw3IEBACiAg
ICAgICByZW1vdmVUcmFjawogICAgICAgICAxMi4gVXBkYXRlIHRoZSBuZWdvdGlhdGlvbi1uZWVk
ZWQgZmxhZyBmb3IgY29ubmVjdGlvbi4KICAgKi8KLSAgYXN5bmNfdGVzdChhc3luYyB0ID0+IHsK
KyAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKIApAQCAt
Mjk2LDIwICsyOTYsMjAgQEAKICAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHN0cmVhbS5nZXRUcmFj
a3MoKS5mb3JFYWNoKHRyYWNrID0+IHRyYWNrLnN0b3AoKSkpOwogICAgIGNvbnN0IFt0cmFja10g
PSBzdHJlYW0uZ2V0VHJhY2tzKCk7CiAgICAgY29uc3Qgc2VuZGVyID0gcGMuYWRkVHJhY2sodHJh
Y2ssIHN0cmVhbSk7Ci0gICAgcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHQuc3RlcF9mdW5jKGFz
eW5jICgpID0+IHsKLSAgICAgIHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSB0LnN0ZXBfZnVuYyhh
c3luYyAoKSA9PiB7Ci0gICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ29ubmVnb3RpYXRpb25uZWVk
ZWQgbWlzZmlyZWQnKTsKLSAgICAgIH0pOwotICAgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5j
cmVhdGVPZmZlcigpOwotICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7
CiAKLSAgICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGdlbmVyYXRlQW5zd2VyKG9mZmVyKTsKLSAg
ICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcik7Ci0KLSAgICAgIHBjLnJl
bW92ZVRyYWNrKHNlbmRlcik7Ci0gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBj
Lm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNvbHZlKQotICAgICAgdC5kb25lKCk7CisgICAgYXdh
aXQgbmV3IFByb21pc2UocmVzb2x2ZSA9PiBwYy5vbm5lZ290aWF0aW9ubmVlZGVkID0gcmVzb2x2
ZSk7CisgICAgcGMub25uZWdvdGlhdGlvbm5lZWRlZCA9IHQuc3RlcF9mdW5jKCgpID0+IHsKKyAg
ICAgIGFzc2VydF91bnJlYWNoZWQoJ29ubmVnb3RpYXRpb25uZWVkZWQgbWlzZmlyZWQnKTsKICAg
ICB9KTsKKworICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMuY3JlYXRlT2ZmZXIoKTsKKyAgICBh
d2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKTsKKworICAgIGNvbnN0IGFuc3dlciA9
IGF3YWl0IGdlbmVyYXRlQW5zd2VyKG9mZmVyKTsKKyAgICBhd2FpdCBwYy5zZXRSZW1vdGVEZXNj
cmlwdGlvbihhbnN3ZXIpOworCisgICAgcGMucmVtb3ZlVHJhY2soc2VuZGVyKTsKKyAgICBhd2Fp
dCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHBjLm9ubmVnb3RpYXRpb25uZWVkZWQgPSByZXNvbHZl
KQogICB9LCAncmVtb3ZlVHJhY2sgc2hvdWxkIGNhdXNlIG5lZ290aWF0aW9ubmVlZGVkIHRvIGZp
cmUgb24gdGhlIGNhbGxlcicpOwogCiAgIC8qCkBAIC0zMTgsNyArMzE4LDcgQEAKICAgICAgIHJl
bW92ZVRyYWNrCiAgICAgICAgIDEyLiBVcGRhdGUgdGhlIG5lZ290aWF0aW9uLW5lZWRlZCBmbGFn
IGZvciBjb25uZWN0aW9uLgogICAqLwotICBhc3luY190ZXN0KGFzeW5jIHQgPT4geworICBwcm9t
aXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAgY29uc3QgY2FsbGVyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7CiAgICAg
Y2FsbGVyLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycsIHtkaXJlY3Rpb246J3JlY3Zvbmx5J30pOwpA
QCAtMzMyLDE4ICszMzIsMTcgQEAKICAgICBjb25zdCBbdHJhY2tdID0gc3RyZWFtLmdldFRyYWNr
cygpOwogICAgIGNvbnN0IHNlbmRlciA9IGNhbGxlZS5hZGRUcmFjayh0cmFjaywgc3RyZWFtKTsK
IAotICAgIGNhbGxlZS5vbm5lZ290aWF0aW9ubmVlZGVkID0gdC5zdGVwX2Z1bmMoYXN5bmMgKCkg
PT4gewotICAgICAgY2FsbGVlLm9ubmVnb3RpYXRpb25uZWVkZWQgPSB0LnN0ZXBfZnVuYyhhc3lu
YyAoKSA9PiB7Ci0gICAgICAgIGFzc2VydF91bnJlYWNoZWQoJ29ubmVnb3RpYXRpb25uZWVkZWQg
bWlzZmlyZWQnKTsKLSAgICAgIH0pOwotICAgICAgYXdhaXQgY2FsbGVlLnNldFJlbW90ZURlc2Ny
aXB0aW9uKG9mZmVyKTsKLSAgICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGNhbGxlZS5jcmVhdGVB
bnN3ZXIoKTsKLSAgICAgIGNhbGxlZS5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7Ci0KLSAg
ICAgIGNhbGxlZS5yZW1vdmVUcmFjayhzZW5kZXIpOwotICAgICAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiBjYWxsZWUub25uZWdvdGlhdGlvbm5lZWRlZCA9IHJlc29sdmUpCi0gICAgICB0
LmRvbmUoKTsKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IGNhbGxlZS5vbm5lZ290
aWF0aW9ubmVlZGVkID0gcmVzb2x2ZSk7CisgICAgY2FsbGVlLm9ubmVnb3RpYXRpb25uZWVkZWQg
PSB0LnN0ZXBfZnVuYygoKSA9PiB7CisgICAgICBhc3NlcnRfdW5yZWFjaGVkKCdvbm5lZ290aWF0
aW9ubmVlZGVkIG1pc2ZpcmVkJyk7CiAgICAgfSk7CisKKyAgICBhd2FpdCBjYWxsZWUuc2V0UmVt
b3RlRGVzY3JpcHRpb24ob2ZmZXIpOworICAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IGNhbGxlZS5j
cmVhdGVBbnN3ZXIoKTsKKyAgICBjYWxsZWUuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOwor
CisgICAgY2FsbGVlLnJlbW92ZVRyYWNrKHNlbmRlcik7CisgICAgYXdhaXQgbmV3IFByb21pc2Uo
cmVzb2x2ZSA9PiBjYWxsZWUub25uZWdvdGlhdGlvbm5lZWRlZCA9IHJlc29sdmUpCiAgIH0sICdy
ZW1vdmVUcmFjayBzaG91bGQgY2F1c2UgbmVnb3RpYXRpb25uZWVkZWQgdG8gZmlyZSBvbiB0aGUg
Y2FsbGVlJyk7CiAKICAgLyoKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5nc3Rh
dGVjaGFuZ2VkLmh0dHBzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9uc2lnbmFsaW5nc3Rh
dGVjaGFuZ2VkLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA3NDM0YWQ2YTYzZTExNTUyMzZhMWRl
ODc0MGVjNmZjN2ZjMzBhY2Q1Li44MjJjYTMxY2JjNmMxMDJhMjRkMDBmYzE0ZDdhMTgxZjJiZTk5
YTM3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5odHRw
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25zaWduYWxpbmdzdGF0ZWNoYW5nZWQu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNSBAQAogCiBQQVNTIE5lZ290aWF0aW9uIG1l
dGhvZHMgZmlyZSBzaWduYWxpbmdzdGF0ZWNoYW5nZSBldmVudHMKIEZBSUwgQ2xvc2luZyBhIFBl
ZXJDb25uZWN0aW9uIHNob3VsZCBub3QgZmlyZSBzaWduYWxpbmdzdGF0ZWNoYW5nZSBldmVudCBh
c3NlcnRfdW5yZWFjaGVkOiBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKK1BBU1Mgc2lnbmFsaW5n
c3RhdGVjaGFuZ2UgaXMgdGhlIGZpcnN0IGV2ZW50IHRvIGZpcmUKIApkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tb25zaWduYWxpbmdzdGF0ZWNoYW5nZWQuaHR0cHMuaHRtbCBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LW9uc2lnbmFsaW5nc3RhdGVjaGFuZ2VkLmh0dHBzLmh0bWwKaW5kZXggMGM4NDA1NzcwYjYxNmQx
ZDBmM2JlMjI2YTgxNTc4MGNjMWFkMDQxMy4uYWQ5MmJmNWZjNjA5ZDNkOTc1MjVmZjgyNTFjMzZm
MzljNjk4ZGFlNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb25zaWduYWxpbmdzdGF0ZWNoYW5n
ZWQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnNpZ25hbGluZ3N0YXRlY2hhbmdlZC5o
dHRwcy5odG1sCkBAIC00OSw4ICs0OSwyMyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAK
ICAgcGMyLm9uc2lnbmFsaW5nc3RhdGVjaGFuZ2UgPSB0LnVucmVhY2hlZF9mdW5jKCk7CiAgIHBj
Mi5jbG9zZSgpOwotICBhc3NlcnRfdHJ1ZShwYzIuc2lnbmFsaW5nU3RhdGUgPT09ICdjbG9zZWQn
KTsKKyAgYXNzZXJ0X2VxdWFscyhwYzIuc2lnbmFsaW5nU3RhdGUsICdjbG9zZWQnKTsKICAgYXdh
aXQgbmV3IFByb21pc2UociA9PiB0LnN0ZXBfdGltZW91dChyLCAxMDApKTsKIH0sICdDbG9zaW5n
IGEgUGVlckNvbm5lY3Rpb24gc2hvdWxkIG5vdCBmaXJlIHNpZ25hbGluZ3N0YXRlY2hhbmdlIGV2
ZW50Jyk7CiAKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwor
ICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgo
KSA9PiBwYzIuY2xvc2UoKSk7CisKKyAgcGMyLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycpOworCisg
IHBjMS5vbnRyYWNrID0gdC51bnJlYWNoZWRfZnVuYygpOworICBwYzEub25zaWduYWxpbmdzdGF0
ZWNoYW5nZSA9IHQuc3RlcF9mdW5jKGUgPT4geworICAgIHBjMS5vbnRyYWNrID0gbnVsbDsKKyAg
fSk7CisgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRlT2Zm
ZXIoKSk7Cit9LCAnc2lnbmFsaW5nc3RhdGVjaGFuZ2UgaXMgdGhlIGZpcnN0IGV2ZW50IHRvIGZp
cmUnKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRyYWNrLmh0dHBz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9udHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0Cmlu
ZGV4IDMyMjA5YWM1Y2Q1Y2E5ODExZTEzZTU2M2NhOGY4ZTI2ZTYwYzkxNzUuLjRkN2FjNTM3ZTAw
YjU1MWQ5OGU2YWE0ZDk4MjcyMjNhZjY2NjUwNzIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9u
dHJhY2suaHR0cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9udHJhY2suaHR0cHMt
ZXhwZWN0ZWQudHh0CkBAIC00LDQgKzQsNiBAQCBQQVNTIHNldFJlbW90ZURlc2NyaXB0aW9uKCkg
d2l0aCBtPSBsaW5lIG9mIHJlY3Zvbmx5IGRpcmVjdGlvbiBzaG91bGQgbm90IHRyaWdnZQogUEFT
UyBhZGRUcmFjaygpIHNob3VsZCBjYXVzZSByZW1vdGUgY29ubmVjdGlvbiB0byBmaXJlIG9udHJh
Y2sgd2hlbiBzZXRSZW1vdGVEZXNjcmlwdGlvbigpCiBQQVNTIGFkZFRyYW5zY2VpdmVyKCd2aWRl
bycpIHNob3VsZCBjYXVzZSByZW1vdGUgY29ubmVjdGlvbiB0byBmaXJlIG9udHJhY2sgd2hlbiBz
ZXRSZW1vdGVEZXNjcmlwdGlvbigpCiBQQVNTIGFkZFRyYW5zY2VpdmVyKCkgd2l0aCBpbmFjdGl2
ZSBkaXJlY3Rpb24gc2hvdWxkIG5vdCBjYXVzZSByZW1vdGUgY29ubmVjdGlvbiB0byBmaXJlIG9u
dHJhY2sgd2hlbiBzZXRSZW1vdGVEZXNjcmlwdGlvbigpCitQQVNTIFVzaW5nIG9mZmVyVG9SZWNl
aXZlQXVkaW8gYW5kIG9mZmVyVG9SZWNlaXZlVmlkZW8gc2hvdWxkIG9ubHkgY2F1c2UgYSBhdWRp
byB0cmFjayBldmVudCB0byBmaXJlLCBpZiBhdWRpbyB3YXMgdGhlIG9ubHkgdHlwZSBuZWdvdGlh
dGVkCitQQVNTIFVzaW5nIG9mZmVyVG9SZWNlaXZlQXVkaW8gYW5kIG9mZmVyVG9SZWNlaXZlVmlk
ZW8gc2hvdWxkIG9ubHkgY2F1c2UgYSB2aWRlbyB0cmFjayBldmVudCB0byBmaXJlLCBpZiB2aWRl
byB3YXMgdGhlIG9ubHkgdHlwZSBuZWdvdGlhdGVkCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LW9udHJhY2suaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLW9udHJhY2suaHR0cHMuaHRtbAppbmRl
eCA5OWYzMGMyNjRiMzY0OGQ1MmZkYTZiYjUwZGU5ODBiY2JlODRiZTNjLi5jY2RkMjlmNmE1MGRh
OTRkNjg5Yjc2NTRkMThhM2MwN2VlNGJjNmRiIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnRy
YWNrLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb250cmFjay5odHRwcy5odG1sCkBAIC0y
MzAsNCArMjMwLDI5IEBAIGE9c3NyYzoxMDAxIGNuYW1lOnNvbWUKICAgICBhd2FpdCBuZXcgUHJv
bWlzZShyZXNvbHZlID0+IHQuc3RlcF90aW1lb3V0KHJlc29sdmUsIDEwMCkpOwogICB9LCBgYWRk
VHJhbnNjZWl2ZXIoKSB3aXRoIGluYWN0aXZlIGRpcmVjdGlvbiBzaG91bGQgbm90IGNhdXNlIHJl
bW90ZSBjb25uZWN0aW9uIHRvIGZpcmUgb250cmFjayB3aGVuIHNldFJlbW90ZURlc2NyaXB0aW9u
KClgKTsKIAorICBbImF1ZGlvIiwgInZpZGVvIl0uZm9yRWFjaCh0eXBlID0+IHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9z
ZSgpKTsKKworICAgIGNvbnN0IGNoZWNrTm9VbmV4cGVjdGVkVHJhY2sgPSAoe3RyYWNrfSkgPT4g
eworICAgICAgYXNzZXJ0X2VxdWFscyh0cmFjay5raW5kLCB0eXBlLCBgb250cmFjayBldmVudCBz
aG91bGQgbm90IGZpcmUgZm9yICR7dHJhY2sua2luZH1gKTsKKyAgICB9OworCisgICAgcGMyLm9u
dHJhY2sgPSB0LnN0ZXBfZnVuYyhjaGVja05vVW5leHBlY3RlZFRyYWNrKTsKKyAgICBwYzEub250
cmFjayA9IHQuc3RlcF9mdW5jKGNoZWNrTm9VbmV4cGVjdGVkVHJhY2spOworCisgICAgYXdhaXQg
cGMxLnNldExvY2FsRGVzY3JpcHRpb24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKAorICAgICAgeyBv
ZmZlclRvUmVjZWl2ZVZpZGVvOiB0cnVlLCBvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0cnVlIH0pKTsK
KworICAgIHBjMi5hZGRUcmFjayguLi5hd2FpdCBnZXRUcmFja0Zyb21Vc2VyTWVkaWEodHlwZSkp
OworCisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2NyaXB0
aW9uKTsKKyAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzIuY3JlYXRl
QW5zd2VyKCkpOworICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxE
ZXNjcmlwdGlvbik7CisKKyAgICBhd2FpdCBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHQuc3RlcF90
aW1lb3V0KHJlc29sdmUsIDEwMCkpOworICB9LCBgVXNpbmcgb2ZmZXJUb1JlY2VpdmVBdWRpbyBh
bmQgb2ZmZXJUb1JlY2VpdmVWaWRlbyBzaG91bGQgb25seSBjYXVzZSBhICR7dHlwZX0gdHJhY2sg
ZXZlbnQgdG8gZmlyZSwgaWYgJHt0eXBlfSB3YXMgdGhlIG9ubHkgdHlwZSBuZWdvdGlhdGVkYCkp
OworCiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRp
b24taGVscGVyLmpzIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1oZWxwZXIuanMK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMjhjNDc2ZWM0MDllMWI1ZjUzZWFlNDFhZmY5MzQ4NjhhYmViNjkyZAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24taGVscGVyLmpz
CkBAIC0wLDAgKzEsMTUxIEBACisndXNlIHN0cmljdCcKKworZnVuY3Rpb24gcGVlcihvdGhlciwg
cG9saXRlLCBmYWlsID0gbnVsbCkgeworICBjb25zdCBzZW5kID0gKHRndCwgbXNnKSA9PiB0Z3Qu
cG9zdE1lc3NhZ2UoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtc2cpKSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIqIik7CisgIGlmICghZmFpbCkgZmFp
bCA9IGUgPT4gc2VuZCh3aW5kb3cucGFyZW50LCB7ZXJyb3I6IGAke2UubmFtZX06ICR7ZS5tZXNz
YWdlfWB9KTsKKyAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKworICBpZiAo
IXdpbmRvdy5hc3NlcnRfZXF1YWxzKSB7CisgICAgd2luZG93LmFzc2VydF9lcXVhbHMgPSAoYSwg
YiwgbXNnKSA9PiBhID09PSBiIHx8CisgICAgICAgIGZhaWwobmV3IEVycm9yKGAke21zZ30gZXhw
ZWN0ZWQgJHtifSBidXQgZ290ICR7YX1gKSk7CisgIH0KKworICBjb25zdCBjb21tYW5kcyA9IHsK
KyAgICBhc3luYyBhZGRUcmFuc2NlaXZlcigpIHsKKyAgICAgIGNvbnN0IHRyYW5zY2VpdmVyID0g
cGMuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIik7CisgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+
IHBjLmFkZEV2ZW50TGlzdGVuZXIoIm5lZ290aWF0ZWQiLCByLCB7b25jZTogdHJ1ZX0pKTsKKyAg
ICAgIGlmICghdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbikgeworICAgICAgICAvLyBNaWdo
dCBoYXZlIGp1c3QgbWlzc2VkIHRoZSBuZWdvdGlhdGlvbiB0cmFpbi4gQ2F0Y2ggbmV4dCBvbmUu
CisgICAgICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMuYWRkRXZlbnRMaXN0ZW5lcigibmVn
b3RpYXRlZCIsIHIsIHtvbmNlOiB0cnVlfSkpOworICAgICAgfQorICAgICAgYXNzZXJ0X2VxdWFs
cyh0cmFuc2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAic2VuZG9ubHkiLCAiaGF2ZSBkaXJlY3Rp
b24iKTsKKyAgICAgIHJldHVybiBwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGg7CisgICAgfSwK
KyAgICBhc3luYyBzaW1wbGVDb25uZWN0KCkgeworICAgICAgY29uc3QgcCA9IGNvbW1hbmRzLmFk
ZFRyYW5zY2VpdmVyKCk7CisgICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjLm9uaWNlY29u
bmVjdGlvbnN0YXRlY2hhbmdlID0KKyAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHBjLmlj
ZUNvbm5lY3Rpb25TdGF0ZSA9PSAiY29ubmVjdGVkIiAmJiByKCkpOworICAgICAgcmV0dXJuIGF3
YWl0IHA7CisgICAgfSwKKyAgICBhc3luYyBnZXROdW1UcmFuc2NlaXZlcnMoKSB7CisgICAgICBy
ZXR1cm4gcGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoOworICAgIH0sCisgIH07CisKKyAgdHJ5
IHsKKyAgICBwYy5hZGRFdmVudExpc3RlbmVyKCJpY2VjYW5kaWRhdGUiLCAoe2NhbmRpZGF0ZX0p
ID0+IHNlbmQob3RoZXIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIHtjYW5kaWRhdGV9KSk7CisgICAgbGV0IG1ha2luZ09mZmVy
ID0gZmFsc2UsIGlnbm9yZU9mZmVyID0gZmFsc2U7CisgICAgbGV0IHNyZEFuc3dlclBlbmRpbmcg
PSBmYWxzZTsKKyAgICBwYy5hZGRFdmVudExpc3RlbmVyKCJuZWdvdGlhdGlvbm5lZWRlZCIsIGFz
eW5jICgpID0+IHsKKyAgICAgIHRyeSB7CisgICAgICAgIGFzc2VydF9lcXVhbHMocGMuc2lnbmFs
aW5nU3RhdGUsICJzdGFibGUiLCAibmVnb3RpYXRpb25uZWVkZWQgYWx3YXlzIGZpcmVzIGluIHN0
YWJsZSBzdGF0ZSIpOworICAgICAgICBhc3NlcnRfZXF1YWxzKG1ha2luZ09mZmVyLCBmYWxzZSwg
Im5lZ290aWF0aW9ubmVlZGVkIG5vdCBhbHJlYWR5IGluIHByb2dyZXNzIik7CisgICAgICAgIG1h
a2luZ09mZmVyID0gdHJ1ZTsKKyAgICAgICAgYXdhaXQgcGMuc2V0TG9jYWxEZXNjcmlwdGlvbigp
OworICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAiaGF2ZS1sb2NhbC1v
ZmZlciIsICJuZWdvdGlhdGlvbm5lZWRlZCBub3QgcmFjaW5nIHdpdGggb25tZXNzYWdlIik7Cisg
ICAgICAgIGFzc2VydF9lcXVhbHMocGMubG9jYWxEZXNjcmlwdGlvbi50eXBlLCAib2ZmZXIiLCAi
bmVnb3RpYXRpb25uZWVkZWQgU0xEIHdvcmtlZCIpOworICAgICAgICBzZW5kKG90aGVyLCB7ZGVz
Y3JpcHRpb246IHBjLmxvY2FsRGVzY3JpcHRpb259KTsKKyAgICAgIH0gY2F0Y2ggKGUpIHsKKyAg
ICAgICAgZmFpbChlKTsKKyAgICAgIH0gZmluYWxseSB7CisgICAgICAgIG1ha2luZ09mZmVyID0g
ZmFsc2U7CisgICAgICB9CisgICAgfSk7CisgICAgd2luZG93Lm9ubWVzc2FnZSA9IGFzeW5jICh7
ZGF0YToge2Rlc2NyaXB0aW9uLCBjYW5kaWRhdGUsIHJ1bn19KSA9PiB7CisgICAgICB0cnkgewor
ICAgICAgICBpZiAoZGVzY3JpcHRpb24pIHsKKyAgICAgICAgICAvLyBJZiB3ZSBoYXZlIGEgc2V0
UmVtb3RlRGVzY3JpcHRpb24oKSBhbnN3ZXIgb3BlcmF0aW9uIHBlbmRpbmcsIHRoZW4KKyAgICAg
ICAgICAvLyB3ZSB3aWxsIGJlICJzdGFibGUiIGJ5IHRoZSB0aW1lIHRoZSBuZXh0IHNldFJlbW90
ZURlc2NyaXB0aW9uKCkgaXMKKyAgICAgICAgICAvLyBleGVjdXRlZCwgc28gd2UgY291bnQgdGhp
cyBiZWluZyBzdGFibGUgd2hlbiBkZWNpZGluZyB3aGV0aGVyIHRvCisgICAgICAgICAgLy8gaWdu
b3JlIHRoZSBvZmZlci4KKyAgICAgICAgICBsZXQgaXNTdGFibGUgPQorICAgICAgICAgICAgICBw
Yy5zaWduYWxpbmdTdGF0ZSA9PSAic3RhYmxlIiB8fAorICAgICAgICAgICAgICAocGMuc2lnbmFs
aW5nU3RhdGUgPT0gImhhdmUtbG9jYWwtb2ZmZXIiICYmIHNyZEFuc3dlclBlbmRpbmcpOworICAg
ICAgICAgIGlnbm9yZU9mZmVyID0gZGVzY3JpcHRpb24udHlwZSA9PSAib2ZmZXIiICYmICFwb2xp
dGUgJiYKKyAgICAgICAgICAgICAgICAgICAgICAgICAobWFraW5nT2ZmZXIgfHwgIWlzU3RhYmxl
KTsKKyAgICAgICAgICBpZiAoaWdub3JlT2ZmZXIpIHsKKyAgICAgICAgICAgIHJldHVybjsKKyAg
ICAgICAgICB9CisgICAgICAgICAgaWYgKGRlc2NyaXB0aW9uLnR5cGUgPT0gImFuc3dlciIpCisg
ICAgICAgICAgICBzcmRBbnN3ZXJQZW5kaW5nID0gdHJ1ZTsKKyAgICAgICAgICBhd2FpdCBwYy5z
ZXRSZW1vdGVEZXNjcmlwdGlvbihkZXNjcmlwdGlvbik7CisgICAgICAgICAgc3JkQW5zd2VyUGVu
ZGluZyA9IGZhbHNlOworICAgICAgICAgIGlmIChkZXNjcmlwdGlvbi50eXBlID09ICJvZmZlciIp
IHsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMocGMuc2lnbmFsaW5nU3RhdGUsICJoYXZlLXJl
bW90ZS1vZmZlciIsICJSZW1vdGUgb2ZmZXIiKTsKKyAgICAgICAgICAgIGFzc2VydF9lcXVhbHMo
cGMucmVtb3RlRGVzY3JpcHRpb24udHlwZSwgIm9mZmVyIiwgIlNSRCB3b3JrZWQiKTsKKyAgICAg
ICAgICAgIGF3YWl0IHBjLnNldExvY2FsRGVzY3JpcHRpb24oKTsKKyAgICAgICAgICAgIGFzc2Vy
dF9lcXVhbHMocGMuc2lnbmFsaW5nU3RhdGUsICJzdGFibGUiLCAib25tZXNzYWdlIG5vdCByYWNp
bmcgd2l0aCBuZWdvdGlhdGlvbm5lZWRlZCIpOworICAgICAgICAgICAgYXNzZXJ0X2VxdWFscyhw
Yy5sb2NhbERlc2NyaXB0aW9uLnR5cGUsICJhbnN3ZXIiLCAib25tZXNzYWdlIFNMRCB3b3JrZWQi
KTsKKyAgICAgICAgICAgIHNlbmQob3RoZXIsIHtkZXNjcmlwdGlvbjogcGMubG9jYWxEZXNjcmlw
dGlvbn0pOworICAgICAgICAgIH0gZWxzZSB7CisgICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBj
LnJlbW90ZURlc2NyaXB0aW9uLnR5cGUsICJhbnN3ZXIiLCAiQW5zd2VyIHdhcyBzZXQiKTsKKyAg
ICAgICAgICAgIGFzc2VydF9lcXVhbHMocGMuc2lnbmFsaW5nU3RhdGUsICJzdGFibGUiLCAiYW5z
d2VyZWQiKTsKKyAgICAgICAgICAgIHBjLmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCJuZWdvdGlh
dGVkIikpOworICAgICAgICAgIH0KKyAgICAgICAgfSBlbHNlIGlmIChjYW5kaWRhdGUpIHsKKyAg
ICAgICAgICB0cnkgeworICAgICAgICAgICAgYXdhaXQgcGMuYWRkSWNlQ2FuZGlkYXRlKGNhbmRp
ZGF0ZSk7CisgICAgICAgICAgfSBjYXRjaCAoZSkgeworICAgICAgICAgICAgaWYgKCFpZ25vcmVP
ZmZlcikgdGhyb3cgZTsKKyAgICAgICAgICB9CisgICAgICAgIH0gZWxzZSBpZiAocnVuKSB7Cisg
ICAgICAgICAgc2VuZCh3aW5kb3cucGFyZW50LCB7W3J1bi5pZF06IGF3YWl0IGNvbW1hbmRzW3J1
bi5jbWRdKCkgfHwgMH0pOworICAgICAgICB9CisgICAgICB9IGNhdGNoIChlKSB7CisgICAgICAg
IGZhaWwoZSk7CisgICAgICB9CisgICAgfTsKKyAgfSBjYXRjaCAoZSkgeworICAgIGZhaWwoZSk7
CisgIH0KKyAgcmV0dXJuIHBjOworfQorCithc3luYyBmdW5jdGlvbiBzZXR1cFBlZXJJZnJhbWUo
dCwgcG9saXRlKSB7CisgIGNvbnN0IGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlm
cmFtZSIpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IGlmcmFtZS5yZW1vdmUoKSk7CisgIGlmcmFt
ZS5zcmNkb2MgPQorICAgYDxodG1sXD48c2NyaXB0XD4oJHtwZWVyLnRvU3RyaW5nKCl9KSh3aW5k
b3cucGFyZW50LCAke3BvbGl0ZX0pOzwvc2NyaXB0XD48L2h0bWxcPmA7CisgIGRvY3VtZW50LmRv
Y3VtZW50RWxlbWVudC5hcHBlbmRDaGlsZChpZnJhbWUpOworCisgIGNvbnN0IGZhaWxDYXRjaGVy
ID0gdC5zdGVwX2Z1bmMoKHtkYXRhfSkgPT4KKyAgICAgICgiZXJyb3IiIGluIGRhdGEpICYmIGFz
c2VydF91bnJlYWNoZWQoYEVycm9yIGluIGlmcmFtZTogJHtkYXRhLmVycm9yfWApKTsKKyAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmYWlsQ2F0Y2hlcik7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmYWlsQ2F0
Y2hlcikpOworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IGlmcmFtZS5vbmxvYWQgPSByKTsKKyAg
cmV0dXJuIGlmcmFtZTsKK30KKworZnVuY3Rpb24gc2V0dXBQZWVyVG9wTGV2ZWwodCwgb3RoZXIs
IHBvbGl0ZSkgeworICBjb25zdCBwYyA9IHBlZXIob3RoZXIsIHBvbGl0ZSwgdC5zdGVwX2Z1bmMo
ZSA9PiB7IHRocm93IGU7IH0pKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiB7IHBjLmNsb3NlKCk7
IHdpbmRvdy5vbm1lc3NhZ2UgPSBudWxsOyB9KTsKK30KKworbGV0IGNvdW50ZXIgPSAwOworYXN5
bmMgZnVuY3Rpb24gcnVuKHRhcmdldCwgY21kKSB7CisgIGNvbnN0IGlkID0gYHJlc3VsdCR7Y291
bnRlcisrfWA7CisgIHRhcmdldC5wb3N0TWVzc2FnZSh7cnVuOiB7Y21kLCBpZH19LCAiKiIpOwor
ICByZXR1cm4gbmV3IFByb21pc2UociA9PiB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2Fn
ZSIsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZ1
bmN0aW9uIGxpc3Rlbih7ZGF0YX0pIHsKKyAgICBpZiAoIShpZCBpbiBkYXRhKSkgcmV0dXJuOwor
ICAgIHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgbGlzdGVuKTsKKyAgICBy
KGRhdGFbaWRdKTsKKyAgfSkpOworfQorCitsZXQgaWZyYW1lOworYXN5bmMgZnVuY3Rpb24gc2V0
dXBBQih0LCBwb2xpdGVBLCBwb2xpdGVCKSB7CisgIGlmcmFtZSA9IGF3YWl0IHNldHVwUGVlcklm
cmFtZSh0LCBwb2xpdGVCKTsKKyAgcmV0dXJuIHNldHVwUGVlclRvcExldmVsKHQsIGlmcmFtZS5j
b250ZW50V2luZG93LCBwb2xpdGVBKTsKK30KK2NvbnN0IHJ1bkEgPSBjbWQgPT4gcnVuKHdpbmRv
dywgY21kKTsKK2NvbnN0IHJ1bkIgPSBjbWQgPT4gcnVuKGlmcmFtZS5jb250ZW50V2luZG93LCBj
bWQpOworY29uc3QgcnVuQm90aCA9IChjbWRBLCBjbWRCID0gY21kQSkgPT4gUHJvbWlzZS5hbGwo
W3J1bkEoY21kQSksIHJ1bkIoY21kQildKTsKKworYXN5bmMgZnVuY3Rpb24gcHJvbWlzZV90ZXN0
X2JvdGhfcm9sZXMoZiwgbmFtZSkgeworICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiBmKHQsIGF3
YWl0IHNldHVwQUIodCwgdHJ1ZSwgZmFsc2UpKSwgbmFtZSk7CisgIHByb21pc2VfdGVzdChhc3lu
YyB0ID0+IGYodCwgYXdhaXQgc2V0dXBBQih0LCBmYWxzZSwgdHJ1ZSkpLAorICAgICAgICAgICAg
ICAgYCR7bmFtZX0gd2l0aCByb2xlcyByZXZlcnNlZGApOworfQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxp
bmVhci5odHRwcy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uYTZlZjM3ZDZiMjg0YTljY2VhYzZh
MWEwMzRhYzFhZDBmMWM0MmE3OAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZl
Y3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLWxpbmVhci5odHRwcy1leHBlY3RlZC50eHQKQEAg
LTAsMCArMSw0IEBACisKK0ZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGlu
ZWFyIERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcg
c3RhdGUKK0ZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFyIHdpdGgg
cm9sZXMgcmV2ZXJzZWQgYXNzZXJ0X3VucmVhY2hlZDogRXJyb3IgaW4gaWZyYW1lOiBJbnZhbGlk
U3RhdGVFcnJvcjogRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNp
Z25hbGluZyBzdGF0ZSBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNv
bm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLmh0
bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0cmVzcy1nbGFyZS1saW5lYXIu
aHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jZjhiZGYyMmUyZGU1M2EwZDI4MjYzMTUwY2Q4M2Y1ZDk1
NGI2ZDE0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlv
bi1zdHJlc3MtZ2xhcmUtbGluZWFyLmh0dHBzLmh0bWwKQEAgLTAsMCArMSwyMyBAQAorPCFkb2N0
eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPG1ldGEgbmFtZT0idGltZW91dCIgY29u
dGVudD0ibG9uZyI+Cis8dGl0bGU+PC90aXRsZT4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNz
cmVwb3J0LmpzPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9IlJUQ1BlZXJDb25uZWN0aW9uLXBlcmZl
Y3QtbmVnb3RpYXRpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmlj
dCc7CisKK3Byb21pc2VfdGVzdF9ib3RoX3JvbGVzKGFzeW5jICh0LCBwYykgPT4geworICBjb25z
dCBwcyA9IFtdOworICBmb3IgKGxldCBpID0gMTA7IGkgPiAwOyBpLS0pIHsKKyAgICBwcy5wdXNo
KHJ1bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOworICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4g
dC5zdGVwX3RpbWVvdXQociwgMCkpOworICB9CisgIHBzLnB1c2gocnVuQm90aCgiYWRkVHJhbnNj
ZWl2ZXIiKSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHBzKTsKKyAgY29uc3QgW251bUEsIG51bUJd
ID0gYXdhaXQgcnVuQm90aCgiZ2V0TnVtVHJhbnNjZWl2ZXJzIik7CisgIGFzc2VydF9lcXVhbHMo
bnVtQSwgMjIsICIyMiB0cmFuc2NlaXZlcnMgb24gc2lkZSBBIik7CisgIGFzc2VydF9lcXVhbHMo
bnVtQiwgMjIsICIyMiB0cmFuc2NlaXZlcnMgb24gc2lkZSBCIik7Cit9LCAiUGVyZmVjdCBuZWdv
dGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFyIik7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBzLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBz
LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yMjZlMDcyMDc5MzY4MWIwZGNkODlhMTE0ZDgyNzE3
NjQ3YTg3MjZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlh
dGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBAQAorCitG
QUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGdsYXJlIERlc2NyaXB0aW9uIHR5cGUgaW5j
b21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3RhdGUKK0ZBSUwgUGVyZmVjdCBuZWdv
dGlhdGlvbiBzdHJlc3MgZ2xhcmUgd2l0aCByb2xlcyByZXZlcnNlZCBhc3NlcnRfdW5yZWFjaGVk
OiBFcnJvciBpbiBpZnJhbWU6IEludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGlu
Y29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIFJlYWNoZWQgdW5yZWFjaGFi
bGUgY29kZQorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLXN0
cmVzcy1nbGFyZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1z
dHJlc3MtZ2xhcmUuaHR0cHMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42MTM0ZWIyMDA2MzY2Y2FjNjFjNzE5
MGI4ZGMxMTE0NGQwNjgxMzMyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVj
dC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUuaHR0cHMuaHRtbApAQCAtMCwwICsxLDIzIEBACis8
IWRvY3R5cGUgaHRtbD4KKzxtZXRhIGNoYXJzZXQ9dXRmLTg+Cis8bWV0YSBuYW1lPSJ0aW1lb3V0
IiBjb250ZW50PSJsb25nIj4KKzx0aXRsZT48L3RpdGxlPgorPHNjcmlwdCBzcmM9L3Jlc291cmNl
cy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPS9yZXNvdXJjZXMvdGVzdGhh
cm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iUlRDUGVlckNvbm5lY3Rpb24t
cGVyZmVjdC1uZWdvdGlhdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ug
c3RyaWN0JzsKKworcHJvbWlzZV90ZXN0X2JvdGhfcm9sZXMoYXN5bmMgKHQsIHBjKSA9PiB7Cisg
IGNvbnN0IHBzID0gW107CisgIGZvciAobGV0IGkgPSAxMDsgaSA+IDA7IGktLSkgeworICAgIHBz
LnB1c2gocnVuQm90aCgiYWRkVHJhbnNjZWl2ZXIiKSk7CisgICAgYXdhaXQgbmV3IFByb21pc2Uo
ciA9PiB0LnN0ZXBfdGltZW91dChyLCBpIC0gMSkpOworICB9CisgIHBzLnB1c2gocnVuQm90aCgi
YWRkVHJhbnNjZWl2ZXIiKSk7CisgIGF3YWl0IFByb21pc2UuYWxsKHBzKTsKKyAgY29uc3QgW251
bUEsIG51bUJdID0gYXdhaXQgcnVuQm90aCgiZ2V0TnVtVHJhbnNjZWl2ZXJzIik7CisgIGFzc2Vy
dF9lcXVhbHMobnVtQSwgMjIsICIyMiB0cmFuc2NlaXZlcnMgb24gc2lkZSBBIik7CisgIGFzc2Vy
dF9lcXVhbHMobnVtQiwgMjIsICIyMiB0cmFuc2NlaXZlcnMgb24gc2lkZSBCIik7Cit9LCAiUGVy
ZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUiKTsKKzwvc2NyaXB0PgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVl
ckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi5odHRwcy1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA2ZDAz
YzBlNTZiZjNhZTBkOGVhMDNkMjVhM2ExNThjOGQ5MWNmNzFlLi4yMzQyNmYxNzBiMzY4N2UyY2Fm
OTEwYzg3ZjI4Y2ZmMWRiYTgxNGI5IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5l
Z290aWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5l
Z290aWF0aW9uLmh0dHBzLWV4cGVjdGVkLnR4dApAQCAtMyw4ICszLDQgQEAgUEFTUyBQZXJmZWN0
IG5lZ290aWF0aW9uIHNldHVwIGNvbm5lY3RzCiBQQVNTIFBlcmZlY3QgbmVnb3RpYXRpb24gc2V0
dXAgY29ubmVjdHMgd2l0aCByb2xlcyByZXZlcnNlZAogRkFJTCBQZXJmZWN0IG5lZ290aWF0aW9u
IGdsYXJlIERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxp
bmcgc3RhdGUKIEZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBnbGFyZSB3aXRoIHJvbGVzIHJldmVy
c2VkIGFzc2VydF91bnJlYWNoZWQ6IEVycm9yIGluIGlmcmFtZTogSW52YWxpZFN0YXRlRXJyb3I6
IERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWduYWxpbmcgc3Rh
dGUgUmVhY2hlZCB1bnJlYWNoYWJsZSBjb2RlCi1GQUlMIFBlcmZlY3QgbmVnb3RpYXRpb24gc3Ry
ZXNzIGdsYXJlIERlc2NyaXB0aW9uIHR5cGUgaW5jb21wYXRpYmxlIHdpdGggY3VycmVudCBzaWdu
YWxpbmcgc3RhdGUKLUZBSUwgUGVyZmVjdCBuZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgd2l0aCBy
b2xlcyByZXZlcnNlZCBhc3NlcnRfdW5yZWFjaGVkOiBFcnJvciBpbiBpZnJhbWU6IEludmFsaWRT
dGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2ln
bmFsaW5nIHN0YXRlIFJlYWNoZWQgdW5yZWFjaGFibGUgY29kZQotRkFJTCBQZXJmZWN0IG5lZ290
aWF0aW9uIHN0cmVzcyBnbGFyZSBsaW5lYXIgRGVzY3JpcHRpb24gdHlwZSBpbmNvbXBhdGlibGUg
d2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZQotRkFJTCBQZXJmZWN0IG5lZ290aWF0aW9uIHN0
cmVzcyBnbGFyZSBsaW5lYXIgd2l0aCByb2xlcyByZXZlcnNlZCBhc3NlcnRfdW5yZWFjaGVkOiBF
cnJvciBpbiBpZnJhbWU6IEludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBlIGluY29t
cGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIFJlYWNoZWQgdW5yZWFjaGFibGUg
Y29kZQogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwKaW5kZXgg
YWQyNzI1YzMzY2E2NmIzMDM5NTlmMzJkMTA3YWU1MTZiYWRlNGE2MS4uZDAxYjExNjE2MjYzNjYx
ZTcyMWQ0NDQ1MTIxNTkzMWVhOGU0ZjNjMSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVj
dC1uZWdvdGlhdGlvbi5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3Rp
YXRpb24uaHR0cHMuaHRtbApAQCAtNCwxNDggKzQsMTAgQEAKIDx0aXRsZT48L3RpdGxlPgogPHNj
cmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzcy5qcz48L3NjcmlwdD4KIDxzY3JpcHQgc3Jj
PS9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanM+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0i
UlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0
PgogPHNjcmlwdD4KICd1c2Ugc3RyaWN0JzsKIAotZnVuY3Rpb24gcGVlcihvdGhlciwgcG9saXRl
LCBmYWlsID0gbnVsbCkgewotICBjb25zdCBzZW5kID0gKHRndCwgbXNnKSA9PiB0Z3QucG9zdE1l
c3NhZ2UoSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShtc2cpKSwKLSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIqIik7Ci0gIGlmICghZmFpbCkgZmFpbCA9IGUg
PT4gc2VuZCh3aW5kb3cucGFyZW50LCB7ZXJyb3I6IGAke2UubmFtZX06ICR7ZS5tZXNzYWdlfWB9
KTsKLSAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKLQotICBpZiAoIXdpbmRv
dy5hc3NlcnRfZXF1YWxzKSB7Ci0gICAgd2luZG93LmFzc2VydF9lcXVhbHMgPSAoYSwgYiwgbXNn
KSA9PiBhID09PSBiIHx8Ci0gICAgICAgIGZhaWwobmV3IEVycm9yKGAke21zZ30gZXhwZWN0ZWQg
JHtifSBidXQgZ290ICR7YX1gKSk7Ci0gIH0KLQotICBjb25zdCBjb21tYW5kcyA9IHsKLSAgICBh
c3luYyBhZGRUcmFuc2NlaXZlcigpIHsKLSAgICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRk
VHJhbnNjZWl2ZXIoInZpZGVvIik7Ci0gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjLmFk
ZEV2ZW50TGlzdGVuZXIoIm5lZ290aWF0ZWQiLCByLCB7b25jZTogdHJ1ZX0pKTsKLSAgICAgIGlm
ICghdHJhbnNjZWl2ZXIuY3VycmVudERpcmVjdGlvbikgewotICAgICAgICAvLyBNaWdodCBoYXZl
IGp1c3QgbWlzc2VkIHRoZSBuZWdvdGlhdGlvbiB0cmFpbi4gQ2F0Y2ggbmV4dCBvbmUuCi0gICAg
ICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gcGMuYWRkRXZlbnRMaXN0ZW5lcigibmVnb3RpYXRl
ZCIsIHIsIHtvbmNlOiB0cnVlfSkpOwotICAgICAgfQotICAgICAgYXNzZXJ0X2VxdWFscyh0cmFu
c2NlaXZlci5jdXJyZW50RGlyZWN0aW9uLCAic2VuZG9ubHkiLCAiaGF2ZSBkaXJlY3Rpb24iKTsK
LSAgICAgIHJldHVybiBwYy5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGg7Ci0gICAgfSwKLSAgICBh
c3luYyBzaW1wbGVDb25uZWN0KCkgewotICAgICAgY29uc3QgcCA9IGNvbW1hbmRzLmFkZFRyYW5z
Y2VpdmVyKCk7Ci0gICAgICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHBjLm9uaWNlY29ubmVjdGlv
bnN0YXRlY2hhbmdlID0KLSAgICAgICAgICAgICAgICAgICAgICAgICgpID0+IHBjLmljZUNvbm5l
Y3Rpb25TdGF0ZSA9PSAiY29ubmVjdGVkIiAmJiByKCkpOwotICAgICAgcmV0dXJuIGF3YWl0IHA7
Ci0gICAgfSwKLSAgICBhc3luYyBnZXROdW1UcmFuc2NlaXZlcnMoKSB7Ci0gICAgICByZXR1cm4g
cGMuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoOwotICAgIH0sCi0gIH07Ci0KLSAgdHJ5IHsKLSAg
ICBwYy5hZGRFdmVudExpc3RlbmVyKCJpY2VjYW5kaWRhdGUiLCAoe2NhbmRpZGF0ZX0pID0+IHNl
bmQob3RoZXIsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIHtjYW5kaWRhdGV9KSk7Ci0gICAgbGV0IG1ha2luZ09mZmVyID0gZmFs
c2UsIGlnbm9yZU9mZmVyID0gZmFsc2U7Ci0gICAgcGMuYWRkRXZlbnRMaXN0ZW5lcigibmVnb3Rp
YXRpb25uZWVkZWQiLCBhc3luYyAoKSA9PiB7Ci0gICAgICB0cnkgewotICAgICAgICBhc3NlcnRf
ZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAic3RhYmxlIiwgIm5lZ290aWF0aW9ubmVlZGVkIGFs
d2F5cyBmaXJlcyBpbiBzdGFibGUgc3RhdGUiKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhtYWtp
bmdPZmZlciwgZmFsc2UsICJuZWdvdGlhdGlvbm5lZWRlZCBub3QgYWxyZWFkeSBpbiBwcm9ncmVz
cyIpOwotICAgICAgICBtYWtpbmdPZmZlciA9IHRydWU7Ci0gICAgICAgIGF3YWl0IHBjLnNldExv
Y2FsRGVzY3JpcHRpb24oKTsKLSAgICAgICAgYXNzZXJ0X2VxdWFscyhwYy5zaWduYWxpbmdTdGF0
ZSwgImhhdmUtbG9jYWwtb2ZmZXIiLCAibmVnb3RpYXRpb25uZWVkZWQgbm90IHJhY2luZyB3aXRo
IG9ubWVzc2FnZSIpOwotICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLmxvY2FsRGVzY3JpcHRpb24u
dHlwZSwgIm9mZmVyIiwgIm5lZ290aWF0aW9ubmVlZGVkIFNMRCB3b3JrZWQiKTsKLSAgICAgICAg
c2VuZChvdGhlciwge2Rlc2NyaXB0aW9uOiBwYy5sb2NhbERlc2NyaXB0aW9ufSk7Ci0gICAgICB9
IGNhdGNoIChlKSB7Ci0gICAgICAgIGZhaWwoZSk7Ci0gICAgICB9IGZpbmFsbHkgewotICAgICAg
ICBtYWtpbmdPZmZlciA9IGZhbHNlOwotICAgICAgfQotICAgIH0pOwotICAgIHdpbmRvdy5vbm1l
c3NhZ2UgPSBhc3luYyAoe2RhdGE6IHtkZXNjcmlwdGlvbiwgY2FuZGlkYXRlLCBydW59fSkgPT4g
ewotICAgICAgdHJ5IHsKLSAgICAgICAgaWYgKGRlc2NyaXB0aW9uKSB7Ci0gICAgICAgICAgaWdu
b3JlT2ZmZXIgPSBkZXNjcmlwdGlvbi50eXBlID09ICJvZmZlciIgJiYgIXBvbGl0ZSAmJgotICAg
ICAgICAgICAgICAgICAgICAgICAgIChtYWtpbmdPZmZlciB8fCBwYy5zaWduYWxpbmdTdGF0ZSAh
PSAic3RhYmxlIik7Ci0gICAgICAgICAgaWYgKGlnbm9yZU9mZmVyKSB7Ci0gICAgICAgICAgICBy
ZXR1cm47Ci0gICAgICAgICAgfQotICAgICAgICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0
aW9uKGRlc2NyaXB0aW9uKTsKLSAgICAgICAgICBpZiAoZGVzY3JpcHRpb24udHlwZSA9PSAib2Zm
ZXIiKSB7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAiaGF2
ZS1yZW1vdGUtb2ZmZXIiLCAiUmVtb3RlIG9mZmVyIik7Ci0gICAgICAgICAgICBhc3NlcnRfZXF1
YWxzKHBjLnJlbW90ZURlc2NyaXB0aW9uLnR5cGUsICJvZmZlciIsICJTUkQgd29ya2VkIik7Ci0g
ICAgICAgICAgICBhd2FpdCBwYy5zZXRMb2NhbERlc2NyaXB0aW9uKCk7Ci0gICAgICAgICAgICBh
c3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAic3RhYmxlIiwgIm9ubWVzc2FnZSBub3Qg
cmFjaW5nIHdpdGggbmVnb3RpYXRpb25uZWVkZWQiKTsKLSAgICAgICAgICAgIGFzc2VydF9lcXVh
bHMocGMubG9jYWxEZXNjcmlwdGlvbi50eXBlLCAiYW5zd2VyIiwgIm9ubWVzc2FnZSBTTEQgd29y
a2VkIik7Ci0gICAgICAgICAgICBzZW5kKG90aGVyLCB7ZGVzY3JpcHRpb246IHBjLmxvY2FsRGVz
Y3JpcHRpb259KTsKLSAgICAgICAgICB9IGVsc2UgewotICAgICAgICAgICAgYXNzZXJ0X2VxdWFs
cyhwYy5yZW1vdGVEZXNjcmlwdGlvbi50eXBlLCAiYW5zd2VyIiwgIkFuc3dlciB3YXMgc2V0Iik7
Ci0gICAgICAgICAgICBhc3NlcnRfZXF1YWxzKHBjLnNpZ25hbGluZ1N0YXRlLCAic3RhYmxlIiwg
ImFuc3dlcmVkIik7Ci0gICAgICAgICAgICBwYy5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgibmVn
b3RpYXRlZCIpKTsKLSAgICAgICAgICB9Ci0gICAgICAgIH0gZWxzZSBpZiAoY2FuZGlkYXRlKSB7
Ci0gICAgICAgICAgdHJ5IHsKLSAgICAgICAgICAgIGF3YWl0IHBjLmFkZEljZUNhbmRpZGF0ZShj
YW5kaWRhdGUpOwotICAgICAgICAgIH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgICAgIGlmICghaWdu
b3JlT2ZmZXIpIHRocm93IGU7Ci0gICAgICAgICAgfQotICAgICAgICB9IGVsc2UgaWYgKHJ1bikg
ewotICAgICAgICAgIHNlbmQod2luZG93LnBhcmVudCwge1tydW4uaWRdOiBhd2FpdCBjb21tYW5k
c1tydW4uY21kXSgpIHx8IDB9KTsKLSAgICAgICAgfQotICAgICAgfSBjYXRjaCAoZSkgewotICAg
ICAgICBmYWlsKGUpOwotICAgICAgfQotICAgIH07Ci0gIH0gY2F0Y2ggKGUpIHsKLSAgICBmYWls
KGUpOwotICB9Ci0gIHJldHVybiBwYzsKLX0KLQotYXN5bmMgZnVuY3Rpb24gc2V0dXBQZWVySWZy
YW1lKHQsIHBvbGl0ZSkgewotICBjb25zdCBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50
KCJpZnJhbWUiKTsKLSAgdC5hZGRfY2xlYW51cCgoKSA9PiBpZnJhbWUucmVtb3ZlKCkpOwotICBp
ZnJhbWUuc3JjZG9jID0KLSAgIGA8aHRtbFw+PHNjcmlwdFw+KCR7cGVlci50b1N0cmluZygpfSko
d2luZG93LnBhcmVudCwgJHtwb2xpdGV9KTs8L3NjcmlwdFw+PC9odG1sXD5gOwotICBkb2N1bWVu
dC5kb2N1bWVudEVsZW1lbnQuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLQotICBjb25zdCBmYWlsQ2F0
Y2hlciA9IHQuc3RlcF9mdW5jKCh7ZGF0YX0pID0+Ci0gICAgICAoImVycm9yIiBpbiBkYXRhKSAm
JiBhc3NlcnRfdW5yZWFjaGVkKGBFcnJvciBpbiBpZnJhbWU6ICR7ZGF0YS5lcnJvcn1gKSk7Ci0g
IHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZmFpbENhdGNoZXIpOwotICB0LmFk
ZF9jbGVhbnVwKCgpID0+IHdpbmRvdy5yZW1vdmVFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZmFp
bENhdGNoZXIpKTsKLSAgYXdhaXQgbmV3IFByb21pc2UociA9PiBpZnJhbWUub25sb2FkID0gcik7
Ci0gIHJldHVybiBpZnJhbWU7Ci19Ci0KLWZ1bmN0aW9uIHNldHVwUGVlclRvcExldmVsKHQsIG90
aGVyLCBwb2xpdGUpIHsKLSAgY29uc3QgcGMgPSBwZWVyKG90aGVyLCBwb2xpdGUsIHQuc3RlcF9m
dW5jKGUgPT4geyB0aHJvdyBlOyB9KSk7Ci0gIHQuYWRkX2NsZWFudXAoKCkgPT4geyBwYy5jbG9z
ZSgpOyB3aW5kb3cub25tZXNzYWdlID0gbnVsbDsgfSk7Ci19Ci0KLWxldCBjb3VudGVyID0gMDsK
LWFzeW5jIGZ1bmN0aW9uIHJ1bih0YXJnZXQsIGNtZCkgewotICBjb25zdCBpZCA9IGByZXN1bHQk
e2NvdW50ZXIrK31gOwotICB0YXJnZXQucG9zdE1lc3NhZ2Uoe3J1bjoge2NtZCwgaWR9fSwgIioi
KTsKLSAgcmV0dXJuIG5ldyBQcm9taXNlKHIgPT4gd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1l
c3NhZ2UiLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICBmdW5jdGlvbiBsaXN0ZW4oe2RhdGF9KSB7Ci0gICAgaWYgKCEoaWQgaW4gZGF0YSkpIHJldHVy
bjsKLSAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGxpc3Rlbik7Ci0g
ICAgcihkYXRhW2lkXSk7Ci0gIH0pKTsKLX0KLQotbGV0IGlmcmFtZTsKLWFzeW5jIGZ1bmN0aW9u
IHNldHVwQUIodCwgcG9saXRlQSwgcG9saXRlQikgewotICBpZnJhbWUgPSBhd2FpdCBzZXR1cFBl
ZXJJZnJhbWUodCwgcG9saXRlQik7Ci0gIHJldHVybiBzZXR1cFBlZXJUb3BMZXZlbCh0LCBpZnJh
bWUuY29udGVudFdpbmRvdywgcG9saXRlQSk7Ci19Ci1jb25zdCBydW5BID0gY21kID0+IHJ1bih3
aW5kb3csIGNtZCk7Ci1jb25zdCBydW5CID0gY21kID0+IHJ1bihpZnJhbWUuY29udGVudFdpbmRv
dywgY21kKTsKLWNvbnN0IHJ1bkJvdGggPSAoY21kQSwgY21kQiA9IGNtZEEpID0+IFByb21pc2Uu
YWxsKFtydW5BKGNtZEEpLCBydW5CKGNtZEIpXSk7Ci0KLWFzeW5jIGZ1bmN0aW9uIHByb21pc2Vf
dGVzdF9ib3RoX3JvbGVzKGYsIG5hbWUpIHsKLSAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gZih0
LCBhd2FpdCBzZXR1cEFCKHQsIHRydWUsIGZhbHNlKSksIG5hbWUpOwotICBwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiBmKHQsIGF3YWl0IHNldHVwQUIodCwgZmFsc2UsIHRydWUpKSwKLSAgICAgICAg
ICAgICAgIGAke25hbWV9IHdpdGggcm9sZXMgcmV2ZXJzZWRgKTsKLX0KLQogcHJvbWlzZV90ZXN0
X2JvdGhfcm9sZXMoYXN5bmMgKHQsIHBjKSA9PiB7CiAgIGFzc2VydF9lcXVhbHMoYXdhaXQgcnVu
QSgic2ltcGxlQ29ubmVjdCIpLCAxLCAib25lIHRyYW5zY2VpdmVyIik7CiAgIGFzc2VydF9lcXVh
bHMoYXdhaXQgcnVuQigiYWRkVHJhbnNjZWl2ZXIiKSwgMiwgInR3byB0cmFuc2NlaXZlcnMiKTsK
QEAgLTE1NywzMCArMTksNCBAQCBwcm9taXNlX3Rlc3RfYm90aF9yb2xlcyhhc3luYyAodCwgcGMp
ID0+IHsKICAgYXNzZXJ0X2VxdWFscyhudW1BLCAyLCAidHdvIHRyYW5zY2VpdmVycyBvbiBzaWRl
IEEiKTsKICAgYXNzZXJ0X2VxdWFscyhudW1CLCAyLCAidHdvIHRyYW5zY2VpdmVycyBvbiBzaWRl
IEIiKTsKIH0sICJQZXJmZWN0IG5lZ290aWF0aW9uIGdsYXJlIik7Ci0KLXByb21pc2VfdGVzdF9i
b3RoX3JvbGVzKGFzeW5jICh0LCBwYykgPT4gewotICBjb25zdCBwcyA9IFtdOwotICBmb3IgKGxl
dCBpID0gMjA7IGkgPiAwOyBpLS0pIHsKLSAgICBwcy5wdXNoKHJ1bkJvdGgoImFkZFRyYW5zY2Vp
dmVyIikpOwotICAgIGF3YWl0IG5ldyBQcm9taXNlKHIgPT4gdC5zdGVwX3RpbWVvdXQociwgaSAt
IDEpKTsKLSAgfQotICBwcy5wdXNoKHJ1bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOwotICBhd2Fp
dCBQcm9taXNlLmFsbChwcyk7Ci0gIGNvbnN0IFtudW1BLCBudW1CXSA9IGF3YWl0IHJ1bkJvdGgo
ImdldE51bVRyYW5zY2VpdmVycyIpOwotICBhc3NlcnRfZXF1YWxzKG51bUEsIDQyLCAiNDIgdHJh
bnNjZWl2ZXJzIG9uIHNpZGUgQSIpOwotICBhc3NlcnRfZXF1YWxzKG51bUIsIDQyLCAiNDIgdHJh
bnNjZWl2ZXJzIG9uIHNpZGUgQiIpOwotfSwgIlBlcmZlY3QgbmVnb3RpYXRpb24gc3RyZXNzIGds
YXJlIik7Ci0KLXByb21pc2VfdGVzdF9ib3RoX3JvbGVzKGFzeW5jICh0LCBwYykgPT4gewotICBj
b25zdCBwcyA9IFtdOwotICBmb3IgKGxldCBpID0gMjA7IGkgPiAwOyBpLS0pIHsKLSAgICBwcy5w
dXNoKHJ1bkJvdGgoImFkZFRyYW5zY2VpdmVyIikpOwotICAgIGF3YWl0IG5ldyBQcm9taXNlKHIg
PT4gdC5zdGVwX3RpbWVvdXQociwgMCkpOwotICB9Ci0gIHBzLnB1c2gocnVuQm90aCgiYWRkVHJh
bnNjZWl2ZXIiKSk7Ci0gIGF3YWl0IFByb21pc2UuYWxsKHBzKTsKLSAgY29uc3QgW251bUEsIG51
bUJdID0gYXdhaXQgcnVuQm90aCgiZ2V0TnVtVHJhbnNjZWl2ZXJzIik7Ci0gIGFzc2VydF9lcXVh
bHMobnVtQSwgNDIsICI0MiB0cmFuc2NlaXZlcnMgb24gc2lkZSBBIik7Ci0gIGFzc2VydF9lcXVh
bHMobnVtQiwgNDIsICI0MiB0cmFuc2NlaXZlcnMgb24gc2lkZSBCIik7Ci19LCAiUGVyZmVjdCBu
ZWdvdGlhdGlvbiBzdHJlc3MgZ2xhcmUgbGluZWFyIik7CiA8L3NjcmlwdD4KZGlmZiAtLWdpdCBh
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXNldERlc2NyaXB0aW9uLXRyYW5zY2VpdmVyLWV4cGVjdGVkLnR4dCBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXNldERlc2NyaXB0aW9uLXRyYW5zY2VpdmVyLWV4cGVjdGVkLnR4dAppbmRleCBl
ODcxYTFhOWMwNzIyNzhlMGFjMWI3NjdmN2UzOTA0MGQ4NTE1YjQ3Li42ZDYwODcxZTQ5OTZlOWFj
YzRiNzNlZmUzOTZkNWViNTU1ZGFlMmM4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXREZXNj
cmlwdGlvbi10cmFuc2NlaXZlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0RGVz
Y3JpcHRpb24tdHJhbnNjZWl2ZXItZXhwZWN0ZWQudHh0CkBAIC00LDUgKzQsNSBAQCBQQVNTIHNl
dFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKSB3aXRoIG09IHNlY3Rpb24gYW5kIG5vIGV4aXN0aW5n
IHRyYW5zY2VpdmVyIHNobwogRkFJTCBzZXRMb2NhbERlc2NyaXB0aW9uKHJvbGxiYWNrKSBzaG91
bGQgdW5zZXQgdHJhbnNjZWl2ZXIubWlkIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJlamVjdGlv
biB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlvbiB0eXBl
IGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgogRkFJTCBzZXRMb2Nh
bERlc2NyaXB0aW9uKHJvbGxiYWNrKSBzaG91bGQgb25seSB1bnNldCB0cmFuc2NlaXZlciBtaWRz
IGFzc29jaWF0ZWQgd2l0aCBjdXJyZW50IHJvdW5kIHByb21pc2VfdGVzdDogVW5oYW5kbGVkIHJl
amVjdGlvbiB3aXRoIHZhbHVlOiBvYmplY3QgIkludmFsaWRTdGF0ZUVycm9yOiBEZXNjcmlwdGlv
biB0eXBlIGluY29tcGF0aWJsZSB3aXRoIGN1cnJlbnQgc2lnbmFsaW5nIHN0YXRlIgogRkFJTCBz
ZXRSZW1vdGVEZXNjcmlwdGlvbihyb2xsYmFjaykgc2hvdWxkIHJlbW92ZSBuZXdseSBjcmVhdGVk
IHRyYW5zY2VpdmVyIGZyb20gdHJhbnNjZWl2ZXIgbGlzdCBwcm9taXNlX3Rlc3Q6IFVuaGFuZGxl
ZCByZWplY3Rpb24gd2l0aCB2YWx1ZTogb2JqZWN0ICJJbnZhbGlkU3RhdGVFcnJvcjogRGVzY3Jp
cHRpb24gdHlwZSBpbmNvbXBhdGlibGUgd2l0aCBjdXJyZW50IHNpZ25hbGluZyBzdGF0ZSIKLVBB
U1Mgc2V0UmVtb3RlRGVzY3JpcHRpb24gc2hvdWxkIHN0b3AgdGhlIHRyYW5zY2VpdmVyIGlmIGl0
cyBjb3JyZXNwb25kaW5nIG0gc2VjdGlvbiBpcyByZWplY3RlZAorUEFTUyBzZXRSZW1vdGVEZXNj
cmlwdGlvbiBzaG91bGQgc2V0IHRyYW5zY2VpdmVyIGluYWN0aXZlIGlmIGl0cyBjb3JyZXNwb25k
aW5nIG0gc2VjdGlvbiBpcyByZWplY3RlZAogCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRE
ZXNjcmlwdGlvbi10cmFuc2NlaXZlci5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0RGVzY3JpcHRpb24t
dHJhbnNjZWl2ZXIuaHRtbAppbmRleCBhODA1NmQ0NzNjZDdhZDNhM2JkZDM0OGJjNjg5YWFiNzU2
ZmFiNzc4Li45YmJhYjMwZDU2ZTIyZjFmMTE4NDZmOGQyZjZjZjY1NDYzMTgzMmY3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENQZWVyQ29ubmVjdGlvbi1zZXREZXNjcmlwdGlvbi10cmFuc2NlaXZlci5odG1sCisrKyBiL0xh
eW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJD
b25uZWN0aW9uLXNldERlc2NyaXB0aW9uLXRyYW5zY2VpdmVyLmh0bWwKQEAgLTI0OCwxOCArMjQ4
LDE0IEBACiAgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKICAgICBh
d2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CiAKLSAgICBhc3NlcnRfZmFsc2Uo
cGMxLmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3BwZWQsICdUcmFuc2NlaXZlciBpcyBub3Qgc3Rv
cHBlZCcpOwotCiAgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKICAg
ICBwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOwogICAgIGNvbnN0IGFuc3dlciA9IGF3
YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsKIAogICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlw
dGlvbihhbnN3ZXIpOwogCi0gICAgYXNzZXJ0X3RydWUocGMxLmdldFRyYW5zY2VpdmVycygpWzBd
LnN0b3BwZWQsICdUcmFuc2NlaXZlciBpcyBzdG9wcGVkJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhw
YzEuZ2V0UmVjZWl2ZXJzKCkubGVuZ3RoLCAwLCAnZ2V0UmVjZWl2ZXJzIGRvZXMgbm90IGV4cG9z
ZSBhIHJlY2VpdmVyIG9mIGEgc3RvcHBlZCB0cmFuc2NlaXZlcicpOwotICAgIGFzc2VydF9lcXVh
bHMocGMxLmdldFNlbmRlcnMoKS5sZW5ndGgsIDAsICdnZXRTZW5kZXJzIGRvZXMgbm90IGV4cG9z
ZSBhIHNlbmRlciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2ZXInKTsKLSAgfSwgJ3NldFJlbW90ZURl
c2NyaXB0aW9uIHNob3VsZCBzdG9wIHRoZSB0cmFuc2NlaXZlciBpZiBpdHMgY29ycmVzcG9uZGlu
ZyBtIHNlY3Rpb24gaXMgcmVqZWN0ZWQnKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFu
c2NlaXZlcnMoKVswXS5jdXJyZW50RGlyZWN0aW9uLCAnaW5hY3RpdmUnLCAnQSBzdG9wcGVkIG0t
bGluZSBzaG91bGQgZ2l2ZSBhbiBpbmFjdGl2ZSB0cmFuc2NlaXZlcicpOworICB9LCAnc2V0UmVt
b3RlRGVzY3JpcHRpb24gc2hvdWxkIHNldCB0cmFuc2NlaXZlciBpbmFjdGl2ZSBpZiBpdHMgY29y
cmVzcG9uZGluZyBtIHNlY3Rpb24gaXMgcmVqZWN0ZWQnKTsKIAogICAvKgogICAgIFRPRE8KZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLWV4cGVjdGVk
LnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLWV4cGVjdGVkLnR4
dAppbmRleCA5YzJhMzYyN2E2YWI1YmU3MWZhYWZhNDE1NmM5YWFiOWJlNjcwOGUzLi42N2NiYzhk
YTMxZTY3Njg4MDg5NTUwNmNkM2VkZjkwNzFkZTlmNzk4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1zZXRSZW1vdGVEZXNjcmlwdGlvbi1vZmZlci1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tc2V0UmVtb3RlRGVzY3JpcHRpb24tb2ZmZXItZXhwZWN0ZWQudHh0CkBAIC0xMyw0ICsxMyw1
IEBAIE5PVFJVTiBOYWl2ZSByb2xsYmFjayBhcHByb2FjaCBpcyBub3QgZ2xhcmUtcHJvb2YgKGNv
bnRyb2wpCiBOT1RSVU4gc2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpIGZyb20gaGF2ZS1sb2Nh
bC1vZmZlciBpcyBnbGFyZS1wcm9vZgogTk9UUlVOIHNldFJlbW90ZURlc2NyaXB0aW9uKGludmFs
aWRPZmZlcikgZnJvbSBoYXZlLWxvY2FsLW9mZmVyIGRvZXMgbm90IHVuZG8gcm9sbGJhY2sKIE5P
VFJVTiByZXBlYXRlZCBzUkQob2ZmZXIpIHdvcmtzCitOT1RSVU4gc1JEKHJlb2ZmZXIpIHdpdGgg
Y2FuZGlkYXRlcyBhbmQgd2l0aG91dCB0cmlja2xlIHdvcmtzCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25u
ZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1zZXRS
ZW1vdGVEZXNjcmlwdGlvbi1vZmZlci5odG1sCmluZGV4IGI0NzAyNDQ2NjEzMjU1ZGFlYzdkYjUz
MjVmNjQwODlhOTE3ZmRlZTkuLmE1MGU5Njk2MzcyOTRhZWM4ZWVhZmU2ODJkYTVkMjU4ZTJhOTBk
ZTUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXNldFJlbW90ZURlc2NyaXB0aW9uLW9mZmVyLmh0
bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tc2V0UmVtb3RlRGVzY3JpcHRpb24tb2ZmZXIuaHRtbApAQCAt
MzI1LDQgKzMyNSwxNiBAQAogICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3
ZXIpOwogICB9LCAncmVwZWF0ZWQgc1JEKG9mZmVyKSB3b3JrcycpOwogCisgIHByb21pc2VfdGVz
dChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgICBjb25zdCBwYzIgPSBu
ZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9z
ZSgpKTsKKyAgICBwYzEuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7CisgICAgYXdhaXQgZXhjaGFu
Z2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisgICAgYXdhaXQgd2FpdEZvckljZUdhdGhlcmluZ1N0
YXRlKHBjMSwgWydjb21wbGV0ZSddKTsKKyAgICBhd2FpdCBleGNoYW5nZU9mZmVyQW5zd2VyKHBj
MSwgcGMyKTsKKyAgICBhd2FpdCB3YWl0Rm9ySWNlU3RhdGVDaGFuZ2UocGMyLCBbJ2Nvbm5lY3Rl
ZCcsICdjb21wbGV0ZWQnXSk7CisgIH0sICdzUkQocmVvZmZlcikgd2l0aCBjYW5kaWRhdGVzIGFu
ZCB3aXRob3V0IHRyaWNrbGUgd29ya3MnKTsKKwogPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29u
bmVjdGlvbi12aWRlb0RldGVjdG9yVGVzdC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tdmlkZW9EZXRlY3Rv
clRlc3QuaHRtbAppbmRleCA3MWZmZmRjNjg2MDM0NjViMjJiMzJkYTczOGFiNWZlZGFiMzc4ZjQx
Li42Nzg2YmQ0OWVkZTY4ZWFhMDc1ZmRiMmQxMjdkNDA3NGU1ZTkwMDM1IDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbi12aWRlb0RldGVjdG9yVGVzdC5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXZpZGVv
RGV0ZWN0b3JUZXN0Lmh0bWwKQEAgLTIyLDM4ICsyMiwzOCBAQAogLy8gdGhlIHRlc3QgdGltZXMg
b3V0LgogCiBhc3luYyBmdW5jdGlvbiBzaWduYWxTZXR0bGVtZW50VGltZSh0LCB2LCBzZW5kZXIs
IHNpZ25hbCwgYmFja2dyb3VuZFRyYWNrKSB7Ci0gIGNvbnN0IGRldGVjdGlvblN0cmVhbSA9IGF3
YWl0IGdldE5vaXNlU3RyZWFtKHt2aWRlbzoge3NpZ25hbDogc2lnbmFsfX0pOworICBjb25zdCBk
ZXRlY3Rpb25TdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlkZW86IHtzaWduYWx9fSk7
CiAgIGNvbnN0IFtkZXRlY3Rpb25UcmFja10gPSBkZXRlY3Rpb25TdHJlYW0uZ2V0VHJhY2tzKCk7
Ci0gIGF3YWl0IHNlbmRlci5yZXBsYWNlVHJhY2soZGV0ZWN0aW9uVHJhY2spOwotICBjb25zdCBm
cmFtZXNCZWZvcmUgPSB2LmdldFZpZGVvUGxheWJhY2tRdWFsaXR5KCkudG90YWxWaWRlb0ZyYW1l
czsKLSAgYXdhaXQgZGV0ZWN0U2lnbmFsKHQsIHYsIHNpZ25hbCk7Ci0gIGNvbnN0IGZyYW1lc0Fm
dGVyID0gdi5nZXRWaWRlb1BsYXliYWNrUXVhbGl0eSgpLnRvdGFsVmlkZW9GcmFtZXM7Ci0gIGF3
YWl0IHNlbmRlci5yZXBsYWNlVHJhY2soYmFja2dyb3VuZFRyYWNrKTsKLSAgYXdhaXQgZGV0ZWN0
U2lnbmFsKHQsIHYsIDEwMCk7Ci0gIGRldGVjdGlvblN0cmVhbS5nZXRUcmFja3MoKS5mb3JFYWNo
KHRyYWNrID0+IHRyYWNrLnN0b3AoKSk7Ci0gIHJldHVybiAoZnJhbWVzQWZ0ZXIgLSBmcmFtZXNC
ZWZvcmUpOworICB0cnkgeworICAgIGF3YWl0IHNlbmRlci5yZXBsYWNlVHJhY2soZGV0ZWN0aW9u
VHJhY2spOworICAgIGNvbnN0IGZyYW1lc0JlZm9yZSA9IHYuZ2V0VmlkZW9QbGF5YmFja1F1YWxp
dHkoKS50b3RhbFZpZGVvRnJhbWVzOworICAgIGF3YWl0IGRldGVjdFNpZ25hbCh0LCB2LCBzaWdu
YWwpOworICAgIGNvbnN0IGZyYW1lc0FmdGVyID0gdi5nZXRWaWRlb1BsYXliYWNrUXVhbGl0eSgp
LnRvdGFsVmlkZW9GcmFtZXM7CisgICAgYXdhaXQgc2VuZGVyLnJlcGxhY2VUcmFjayhiYWNrZ3Jv
dW5kVHJhY2spOworICAgIGF3YWl0IGRldGVjdFNpZ25hbCh0LCB2LCAxMDApOworICAgIHJldHVy
biBmcmFtZXNBZnRlciAtIGZyYW1lc0JlZm9yZTsKKyAgfSBmaW5hbGx5IHsKKyAgICBkZXRlY3Rp
b25UcmFjay5zdG9wKCk7CisgIH0KIH0KIAogcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogICBj
b25zdCB2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKICAgdi5hdXRvcGxheSA9
IHRydWU7CiAgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwotICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKICAgY29uc3QgcGMyID0gbmV3IFJUQ1BlZXJDb25u
ZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOwogICB0LmFkZF9j
bGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKICAgY29uc3Qgc3RyZWFtMSA9IGF3YWl0IGdldE5v
aXNlU3RyZWFtKHt2aWRlbzoge3NpZ25hbDogMTAwfX0pOwotICB0LmFkZF9jbGVhbnVwKCgpID0+
IHN0cmVhbTEuZ2V0VHJhY2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKICAg
Y29uc3QgW3RyYWNrMV0gPSBzdHJlYW0xLmdldFRyYWNrcygpOworICB0LmFkZF9jbGVhbnVwKCgp
ID0+IHRyYWNrMS5zdG9wKCkpOworCiAgIGNvbnN0IHNlbmRlciA9IHBjMS5hZGRUcmFjayh0cmFj
azEpOwotICBwYzIub250cmFjayA9IHQuc3RlcF9mdW5jKChlKSA9PiB7Ci0gICAgdi5zcmNPYmpl
Y3QgPSBuZXcgTWVkaWFTdHJlYW0oW2UudHJhY2tdKTsKLSAgfSk7Ci0gIGNvbnN0IG1ldGFkYXRh
VG9CZUxvYWRlZCA9IG5ldyBQcm9taXNlKChyZXNvbHZlKSA9PiB7Ci0gICAgdi5hZGRFdmVudExp
c3RlbmVyKCdsb2FkZWRtZXRhZGF0YScsIHJlc29sdmUpOwotICB9KTsKKyAgY29uc3QgaGF2ZVRy
YWNrRXZlbnQgPSBuZXcgUHJvbWlzZShyID0+IHBjMi5vbnRyYWNrID0gcik7CiAgIGV4Y2hhbmdl
SWNlQ2FuZGlkYXRlcyhwYzEsIHBjMik7Ci0gIGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIp
OwotICBhd2FpdCBtZXRhZGF0YVRvQmVMb2FkZWQ7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3
ZXIocGMxLCBwYzIpOworICB2LnNyY09iamVjdCA9IG5ldyBNZWRpYVN0cmVhbShbKGF3YWl0IGhh
dmVUcmFja0V2ZW50KS50cmFja10pOworICBhd2FpdCBuZXcgUHJvbWlzZShyID0+IHYub25sb2Fk
ZWRtZXRhZGF0YSA9IHIpOwogICAvLyBUaGUgYmFzaWMgc2lnbmFsIGlzIGEgdHJhY2sgd2l0aCBz
aWduYWwgMTAwLiBXZSByZXBsYWNlIHRoaXMKICAgLy8gd2l0aCB0cmFja3Mgd2l0aCBzaWduYWwg
ZnJvbSAwIHRvIDI1NSBhbmQgc2VlIGlmIHRoZXkgYXJlIGFsbAogICAvLyByZWxpYWJseSBkZXRl
Y3RlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudC1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAw
NjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmEyODk2
NjAxM2FmMjQ3OWU3NDE1MDIyMzM5OTViMGJlYjk1MGU5MzcKLS0tIC9kZXYvbnVsbAorKysgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbkljZUVycm9yRXZlbnQtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQ
QVNTIFJUQ1BlZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudCBjb25zdHJ1Y3RlZCBmcm9tIGluaXQg
cGFyYW1ldGVycworCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbkljZUVycm9yRXZlbnQuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uSWNlRXJyb3JFdmVudC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ0MzRjZmQyOGI3ZWI3
NjFkZjFjMTE1NzFmYTdjNTBjZTVmMzJiYmYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bkljZUVycm9yRXZlbnQuaHRtbApAQCAtMCwwICsxLDI2IEBACis8IWRvY3R5cGUgaHRtbD4KKzxt
ZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKzxodG1sPgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVz
dGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5l
c3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKwordGVzdCgoKSA9PiB7CisgIGluaXQg
PSB7CisgICAgYWRkcmVzczogIjE2OC4zLjQuNSIsCisgICAgcG9ydDogNDcxMSwKKyAgICB1cmw6
ICJ0dXJuOnR1cm4uZXhhbXBsZS5vcmciLAorICAgIGVycm9yQ29kZTogNzAzLAorICAgIGVycm9y
VGV4dDogIlRlc3QgZXJyb3IiCisgIH07CisgIGV2ZW50ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9u
SWNlRXJyb3JFdmVudCgndHlwZScsIGluaXQpOworICBhc3NlcnRfZXF1YWxzKGV2ZW50LnR5cGUs
ICd0eXBlJyk7CisgIGFzc2VydF9lcXVhbHMoZXZlbnQuYWRkcmVzcywgJzE2OC4zLjQuNScpOwor
ICBhc3NlcnRfZXF1YWxzKGV2ZW50LnBvcnQsIDQ3MTEpOworICBhc3NlcnRfZXF1YWxzKGV2ZW50
LnVybCwgInR1cm46dHVybi5leGFtcGxlLm9yZyIpOworICBhc3NlcnRfZXF1YWxzKGV2ZW50LmVy
cm9yQ29kZSwgNzAzKTsKKyAgYXNzZXJ0X2VxdWFscyhldmVudC5lcnJvclRleHQsICJUZXN0IGVy
cm9yIik7Cit9LCAnUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50IGNvbnN0cnVjdGVkIGZy
b20gaW5pdCBwYXJhbWV0ZXJzJyk7CisKKzwvc2NyaXB0PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRw
UGFyYW1ldGVycy1lbmNvZGluZ3MuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtZW5jb2RpbmdzLmh0bWwKaW5k
ZXggNTM5YjI2OTI4MDY5MzQyNTRjNGVjNGI4ZDhiYjE0ZWYxMjk2MjA3ZC4uZTFhNmU2MjUzNzll
ZjFmNmE4NzU1OGE3NDRmYzEzNjRjODg5NjQ4MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUGFyYW1ldGVycy1lbmNv
ZGluZ3MuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWVuY29kaW5ncy5odG1sCkBAIC0xMjAsNyArMTIw
LDYgQEAKICAgICAgIHNlbmRFbmNvZGluZ3M6IFt7CiAgICAgICAgIGFjdGl2ZTogZmFsc2UsCiAg
ICAgICAgIG1heEJpdHJhdGU6IDgsCi0gICAgICAgIG1heEZyYW1lcmF0ZTogMjUsCiAgICAgICAg
IHJpZDogJ2ZvbycKICAgICAgIH1dCiAgICAgfSk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBQYXJhbWV0ZXJzLWhl
bHBlci5qcyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVscGVyLmpzCmluZGV4IDE3ZWNmYmFmOTllOGZmMTMzMzcz
ZjE0ODdhMjgyZGJhYWI3NTYyZjYuLmQ3NjUzYzNhOGFmYmZlNjBjN2VlYjY0ZmU1MGJhMjUwYzI3
MWNlNDggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMtaGVscGVyLmpzCisrKyBiL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFBhcmFtZXRlcnMt
aGVscGVyLmpzCkBAIC01MCw2ICs1MCwxMSBAQCBhc3luYyBmdW5jdGlvbiBkb09mZmVyQW5zd2Vy
RXhjaGFuZ2UodCwgY2FsbGVyKSB7CiBmdW5jdGlvbiB2YWxpZGF0ZVNlbmRlclJ0cFBhcmFtZXRl
cnMocGFyYW0pIHsKICAgdmFsaWRhdGVSdHBQYXJhbWV0ZXJzKHBhcmFtKTsKIAorICBhc3NlcnRf
YXJyYXlfZmllbGQocGFyYW0sICdlbmNvZGluZ3MnKTsKKyAgZm9yKGNvbnN0IGVuY29kaW5nIG9m
IHBhcmFtLmVuY29kaW5ncykgeworICAgIHZhbGlkYXRlRW5jb2RpbmdQYXJhbWV0ZXJzKGVuY29k
aW5nKTsKKyAgfQorCiAgIGFzc2VydF9ub3RfZXF1YWxzKHBhcmFtLnRyYW5zYWN0aW9uSWQsIHVu
ZGVmaW5lZCwKICAgICAnRXhwZWN0IHNlbmRlciBwYXJhbS50cmFuc2FjdGlvbklkIHRvIGJlIHNl
dCcpOwogCkBAIC0xMDEsMjAgKzEwNiwxMCBAQCBmdW5jdGlvbiB2YWxpZGF0ZVJlY2VpdmVyUnRw
UGFyYW1ldGVycyhwYXJhbSkgewogICAgIHNlcXVlbmNlPFJUQ1J0cENvZGVjUGFyYW1ldGVycz4g
ICAgICAgICAgIGNvZGVjczsKICAgfTsKIAotICBlbnVtIFJUQ0RlZ3JhZGF0aW9uUHJlZmVyZW5j
ZSB7Ci0gICAgIm1haW50YWluLWZyYW1lcmF0ZSIsCi0gICAgIm1haW50YWluLXJlc29sdXRpb24i
LAotICAgICJiYWxhbmNlZCIKLSAgfTsKICAqLwogZnVuY3Rpb24gdmFsaWRhdGVSdHBQYXJhbWV0
ZXJzKHBhcmFtKSB7CiAgIGFzc2VydF9vcHRpb25hbF9zdHJpbmdfZmllbGQocGFyYW0sICd0cmFu
c2FjdGlvbklkJyk7CiAKLSAgYXNzZXJ0X2FycmF5X2ZpZWxkKHBhcmFtLCAnZW5jb2RpbmdzJyk7
Ci0gIGZvcihjb25zdCBlbmNvZGluZyBvZiBwYXJhbS5lbmNvZGluZ3MpIHsKLSAgICB2YWxpZGF0
ZUVuY29kaW5nUGFyYW1ldGVycyhlbmNvZGluZyk7Ci0gIH0KLQogICBhc3NlcnRfYXJyYXlfZmll
bGQocGFyYW0sICdoZWFkZXJFeHRlbnNpb25zJyk7CiAgIGZvcihjb25zdCBoZWFkZXJFeHQgb2Yg
cGFyYW0uaGVhZGVyRXh0ZW5zaW9ucykgewogICAgIHZhbGlkYXRlSGVhZGVyRXh0ZW5zaW9uUGFy
YW1ldGVycyhoZWFkZXJFeHQpOwpAQCAtMTMxLDEzICsxMjYsOCBAQCBmdW5jdGlvbiB2YWxpZGF0
ZVJ0cFBhcmFtZXRlcnMocGFyYW0pIHsKIAogLyoKICAgZGljdGlvbmFyeSBSVENSdHBFbmNvZGlu
Z1BhcmFtZXRlcnMgewotICAgIFJUQ0R0eFN0YXR1cyAgICAgICAgZHR4OwogICAgIGJvb2xlYW4g
ICAgICAgICAgICAgYWN0aXZlOwotICAgIFJUQ1ByaW9yaXR5VHlwZSAgICAgcHJpb3JpdHk7Ci0g
ICAgUlRDUHJpb3JpdHlUeXBlICAgICBuZXR3b3JrUHJpb3JpdHk7Ci0gICAgdW5zaWduZWQgbG9u
ZyAgICAgICBwdGltZTsKICAgICB1bnNpZ25lZCBsb25nICAgICAgIG1heEJpdHJhdGU7Ci0gICAg
ZG91YmxlICAgICAgICAgICAgICBtYXhGcmFtZXJhdGU7CiAKICAgICBbcmVhZG9ubHldCiAgICAg
RE9NU3RyaW5nICAgICAgICAgICByaWQ7CkBAIC0xNDUsMzEgKzEzNSwxMCBAQCBmdW5jdGlvbiB2
YWxpZGF0ZVJ0cFBhcmFtZXRlcnMocGFyYW0pIHsKICAgICBkb3VibGUgICAgICAgICAgICAgIHNj
YWxlUmVzb2x1dGlvbkRvd25CeTsKICAgfTsKIAotICBlbnVtIFJUQ0R0eFN0YXR1cyB7Ci0gICAg
ImRpc2FibGVkIiwKLSAgICAiZW5hYmxlZCIKLSAgfTsKLQotICBlbnVtIFJUQ1ByaW9yaXR5VHlw
ZSB7Ci0gICAgInZlcnktbG93IiwKLSAgICAibG93IiwKLSAgICAibWVkaXVtIiwKLSAgICAiaGln
aCIKLSAgfTsKICAqLwogZnVuY3Rpb24gdmFsaWRhdGVFbmNvZGluZ1BhcmFtZXRlcnMoZW5jb2Rp
bmcpIHsKLSAgYXNzZXJ0X29wdGlvbmFsX2VudW1fZmllbGQoZW5jb2RpbmcsICdkdHgnLAotICAg
IFsnZGlzYWJsZWQnLCAnZW5hYmxlZCddKTsKLQogICBhc3NlcnRfb3B0aW9uYWxfYm9vbGVhbl9m
aWVsZChlbmNvZGluZywgJ2FjdGl2ZScpOwotICBhc3NlcnRfb3B0aW9uYWxfZW51bV9maWVsZChl
bmNvZGluZywgJ3ByaW9yaXR5JywKLSAgICBbJ3ZlcnktbG93JywgJ2xvdycsICdtZWRpdW0nLCAn
aGlnaCddKTsKLSAgYXNzZXJ0X29wdGlvbmFsX2VudW1fZmllbGQoZW5jb2RpbmcsICduZXR3b3Jr
UHJpb3JpdHknLAotICAgIFsndmVyeS1sb3cnLCAnbG93JywgJ21lZGl1bScsICdoaWdoJ10pOwot
Ci0gIGFzc2VydF9vcHRpb25hbF91bnNpZ25lZF9pbnRfZmllbGQoZW5jb2RpbmcsICdwdGltZScp
OwogICBhc3NlcnRfb3B0aW9uYWxfdW5zaWduZWRfaW50X2ZpZWxkKGVuY29kaW5nLCAnbWF4Qml0
cmF0ZScpOwotICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKGVuY29kaW5nLCAnbWF4RnJh
bWVyYXRlJyk7CiAKICAgYXNzZXJ0X29wdGlvbmFsX3N0cmluZ19maWVsZChlbmNvZGluZywgJ3Jp
ZCcpOwogICBhc3NlcnRfb3B0aW9uYWxfbnVtYmVyX2ZpZWxkKGVuY29kaW5nLCAnc2NhbGVSZXNv
bHV0aW9uRG93bkJ5Jyk7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRQYXJhbWV0ZXJzLWV4cGVj
dGVkLnR4dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0CmluZGV4IGY2NjZh
YjhiMThkMzk1Yjk3MTg4Zjg5Njk1NDAwMDdkMzY1ZDI5YTAuLjI2MzI1NGRlOGQ0MjNlNGQ4ZTgw
Yzg1ZDk4OWEyZmYxYjkyOGJlYjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMt
ZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMtZXhwZWN0ZWQudHh0CkBA
IC0xLDUgKzEsNSBAQAogCi1GQUlMIGdldFBhcmFtZXRlcnMoKSB3aXRoIGF1ZGlvIHJlY2VpdmVy
IGFzc2VydF90cnVlOiBFeHBlY3QgZGljdGlvbmFyeS5lbmNvZGluZ3MgdG8gYmUgYXJyYXkgZXhw
ZWN0ZWQgdHJ1ZSBnb3QgZmFsc2UKLUZBSUwgZ2V0UGFyYW1ldGVycygpIHdpdGggdmlkZW8gcmVj
ZWl2ZXIgYXNzZXJ0X3RydWU6IEV4cGVjdCBkaWN0aW9uYXJ5LmVuY29kaW5ncyB0byBiZSBhcnJh
eSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQotRkFJTCBnZXRQYXJhbWV0ZXJzKCkgd2l0aCBzaW11
bGNhc3QgdmlkZW8gcmVjZWl2ZXIgYXNzZXJ0X3RydWU6IEV4cGVjdCBkaWN0aW9uYXJ5LmVuY29k
aW5ncyB0byBiZSBhcnJheSBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBnZXRQYXJhbWV0
ZXJzKCkgd2l0aCBhdWRpbyByZWNlaXZlciBhc3NlcnRfZXF1YWxzOiBFeHBlY3QgZGljdGlvbmFy
eS5ydGNwIHRvIGJlIHBsYWluIG9iamVjdCBleHBlY3RlZCAib2JqZWN0IiBidXQgZ290ICJ1bmRl
ZmluZWQiCitGQUlMIGdldFBhcmFtZXRlcnMoKSB3aXRoIHZpZGVvIHJlY2VpdmVyIGFzc2VydF9l
cXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5LnJ0Y3AgdG8gYmUgcGxhaW4gb2JqZWN0IGV4cGVjdGVk
ICJvYmplY3QiIGJ1dCBnb3QgInVuZGVmaW5lZCIKK0ZBSUwgZ2V0UGFyYW1ldGVycygpIHdpdGgg
c2ltdWxjYXN0IHZpZGVvIHJlY2VpdmVyIGFzc2VydF9lcXVhbHM6IEV4cGVjdCBkaWN0aW9uYXJ5
LnJ0Y3AgdG8gYmUgcGxhaW4gb2JqZWN0IGV4cGVjdGVkICJvYmplY3QiIGJ1dCBnb3QgInVuZGVm
aW5lZCIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0UGFyYW1ldGVycy5odG1sIGIvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2
ZXItZ2V0UGFyYW1ldGVycy5odG1sCmluZGV4IDRiZTBlM2I5NWVjNDViZDk2OTNhNGRhMzhiMTQ2
YzU4YjM3ODEwZjguLjcwNDdjZTdkMWYzNjNiN2QyZTA2ZWJiZWJlYTExNzM2YWJjY2NmM2UgMTAw
NjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL1JUQ1J0cFJlY2VpdmVyLWdldFBhcmFtZXRlcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBSZWNlaXZlci1nZXRQ
YXJhbWV0ZXJzLmh0bWwKQEAgLTM2LDEyICszNiwxMSBAQAogICAgIHQuYWRkX2NsZWFudXAoKCkg
PT4gcGMuY2xvc2UoKSk7CiAgICAgcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CiAgICAgY29u
c3QgY2FsbGVlID0gYXdhaXQgZG9PZmZlckFuc3dlckV4Y2hhbmdlKHQsIHBjKTsKLSAgICBjb25z
dCBwYXJhbSA9IGNhbGxlZS5nZXRSZWNlaXZlcnMoKVswXS5nZXRQYXJhbWV0ZXJzKCk7CisgICAg
Y29uc3QgcGFyYW0gPSBjYWxsZWUuZ2V0VHJhbnNjZWl2ZXJzKClbMF0ucmVjZWl2ZXIuZ2V0UGFy
YW1ldGVycygpOwogICAgIHZhbGlkYXRlUmVjZWl2ZXJSdHBQYXJhbWV0ZXJzKHBhcmFtKTsKIAog
ICAgIGFzc2VydF9ncmVhdGVyX3RoYW4ocGFyYW0uaGVhZGVyRXh0ZW5zaW9ucy5sZW5ndGgsIDAp
OwogICAgIGFzc2VydF9ncmVhdGVyX3RoYW4ocGFyYW0uY29kZWNzLmxlbmd0aCwgMCk7Ci0gICAg
YXNzZXJ0X2VxdWFscyhwYXJhbS5lbmNvZGluZ3MubGVuZ3RoLCAxKTsKICAgfSwgJ2dldFBhcmFt
ZXRlcnMoKSB3aXRoIGF1ZGlvIHJlY2VpdmVyJyk7CiAKICAgcHJvbWlzZV90ZXN0KGFzeW5jIHQg
PT4gewpAQCAtNDksMTIgKzQ4LDExIEBACiAgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9z
ZSgpKTsKICAgICBwYy5hZGRUcmFuc2NlaXZlcigndmlkZW8nKTsKICAgICBjb25zdCBjYWxsZWUg
PSBhd2FpdCBkb09mZmVyQW5zd2VyRXhjaGFuZ2UodCwgcGMpOwotICAgIGNvbnN0IHBhcmFtID0g
Y2FsbGVlLmdldFJlY2VpdmVycygpWzBdLmdldFBhcmFtZXRlcnMoKTsKKyAgICBjb25zdCBwYXJh
bSA9IGNhbGxlZS5nZXRUcmFuc2NlaXZlcnMoKVswXS5yZWNlaXZlci5nZXRQYXJhbWV0ZXJzKCk7
CiAgICAgdmFsaWRhdGVSZWNlaXZlclJ0cFBhcmFtZXRlcnMocGFyYW0pOwogCiAgICAgYXNzZXJ0
X2dyZWF0ZXJfdGhhbihwYXJhbS5oZWFkZXJFeHRlbnNpb25zLmxlbmd0aCwgMCk7CiAgICAgYXNz
ZXJ0X2dyZWF0ZXJfdGhhbihwYXJhbS5jb2RlY3MubGVuZ3RoLCAwKTsKLSAgICBhc3NlcnRfZXF1
YWxzKHBhcmFtLmVuY29kaW5ncy5sZW5ndGgsIDEpOwogICB9LCAnZ2V0UGFyYW1ldGVycygpIHdp
dGggdmlkZW8gcmVjZWl2ZXInKTsKIAogICBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CkBAIC02
NywxNSArNjUsOSBAQAogICAgICAgXQogICAgIH0pOwogICAgIGNvbnN0IGNhbGxlZSA9IGF3YWl0
IGRvT2ZmZXJBbnN3ZXJFeGNoYW5nZSh0LCBwYyk7Ci0gICAgY29uc3QgcGFyYW0gPSBjYWxsZWUu
Z2V0UmVjZWl2ZXJzKClbMF0uZ2V0UGFyYW1ldGVycygpOworICAgIGNvbnN0IHBhcmFtID0gY2Fs
bGVlLmdldFRyYW5zY2VpdmVycygpWzBdLnJlY2VpdmVyLmdldFBhcmFtZXRlcnMoKTsKICAgICB2
YWxpZGF0ZVJlY2VpdmVyUnRwUGFyYW1ldGVycyhwYXJhbSk7Ci0KICAgICBhc3NlcnRfZ3JlYXRl
cl90aGFuKHBhcmFtLmhlYWRlckV4dGVuc2lvbnMubGVuZ3RoLCAwKTsKICAgICBhc3NlcnRfZ3Jl
YXRlcl90aGFuKHBhcmFtLmNvZGVjcy5sZW5ndGgsIDApOwotICAgIGFzc2VydF9lcXVhbHMocGFy
YW0uZW5jb2RpbmdzLmxlbmd0aCwgMiwgJ2xheWVyIGNvdW50IG11c3QgbWF0Y2gnKTsKLSAgICBh
c3NlcnRfZXF1YWxzKHBhcmFtLmVuY29kaW5nc1swXS5yaWQsICJyaWQxIiwKLSAgICAgICdzaW11
bGNhc3QgcmlkcyBtdXN0IG1hdGNoJyk7Ci0gICAgYXNzZXJ0X2VxdWFscyhwYXJhbS5lbmNvZGlu
Z3NbMV0ucmlkLCAicmlkMiIsCi0gICAgICAnc2ltdWxjYXN0IHJpZHMgbXVzdCBtYXRjaCcpOwog
ICB9LCAnZ2V0UGFyYW1ldGVycygpIHdpdGggc2ltdWxjYXN0IHZpZGVvIHJlY2VpdmVyJyk7CiA8
L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1lbmNvZGUtc2FtZS10cmFjay10d2ljZS5odHRw
cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5jb2RlLXNhbWUtdHJhY2stdHdpY2UuaHR0cHMtZXhw
ZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjFkNGE4NmFkNTBiOGI1NWRjYzY1ODA3NjIzYWJhODk3MGU4
YjI2ZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXItZW5jb2RlLXNhbWUtdHJhY2stdHdpY2Uu
aHR0cHMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitQQVNTIFR3byBSVENSdHBTZW5k
ZXJzIGVuY29kaW5nIHRoZSBzYW1lIHRyYWNrCisKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1lbmNvZGUt
c2FtZS10cmFjay10d2ljZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLWVuY29kZS1zYW1lLXRyYWNrLXR3
aWNlLmh0dHBzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNTY4NTQzZGE3MGY4MzYwYTgwZjllZDBlNjMzZjU1
ZjM1ZjU3YWE5MgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1lbmNvZGUtc2FtZS10cmFjay10
d2ljZS5odHRwcy5odG1sCkBAIC0wLDAgKzEsNjYgQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEg
Y2hhcnNldD11dGYtOD4KKzxtZXRhIG5hbWU9InRpbWVvdXQiIGNvbnRlbnQ9ImxvbmciPgorPHRp
dGxlPjwvdGl0bGU+Cis8c2NyaXB0IHNyYz0vcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzPjwvc2Ny
aXB0PgorPHNjcmlwdCBzcmM9L3Jlc291cmNlcy90ZXN0aGFybmVzc3JlcG9ydC5qcz48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSJSVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdD4KKyAgJ3VzZSBzdHJpY3QnOworCisgIC8vIEEgZ2VuZXJvdXMgdGVzdGluZyBkdXJh
dGlvbiB0aGF0IHdpbGwgbm90IHRpbWUgb3V0IG9uIGJvdHMuCisgIGNvbnN0IGtFbmNvZGVEdXJh
dGlvbk1zID0gMTAwMDA7CisKKyAgLy8gVGhlIGNyYXNoIHRoaXMgdGVzdCBhaW1zIHRvIHJlcHJv
IHdhcyBlYXN5IHRvIHJlcHJvZHVjZSB1c2luZyBhIG5vcm1hbAorICAvLyBnZXRVc2VyTWVkaWEo
KSB0cmFjayB3aGVuIHJ1bm5pbmcgdGhlIGJyb3dzZXIgbm9ybWFsbHksIGUuZy4gYnkgbmF2aWdh
dGluZworICAvLyB0byBodHRwczovL2pzZmlkZGxlLm5ldC9oZW5ib3MvZmM3Z2szdmUvMTEvLiBC
dXQgZm9yIHNvbWUgcmVhc29uLCB0aGUgZmFrZQorICAvLyB0cmFja3MgcmV0dXJuZWQgYnkgZ2V0
VXNlck1lZGlhKCkgd2hlbiBpbnNpZGUgdGhpcyB0ZXN0aW5nIGVudmlyb25tZW50IGhhZAorICAv
LyBhIG11Y2ggaGFyZGVyIHRpbWUgd2l0aCByZXByb2R1Y2liaWxpdHkuCisgIC8vCisgIC8vIEJ5
IGNyZWF0aW5nIGEgaGlnaCBGUFMgY2FudmFzIGNhcHR1cmUgdHJhY2sgd2UgYXJlIGFibGUgdG8g
cmVwcm8gcmVsaWFibHkKKyAgLy8gaW4gdGhpcyBXUFQgZW52aXJvbm1lbnQgYXMgd2VsbC4KKyAg
ZnVuY3Rpb24gd2hpdGVOb2lzZSh3aWR0aCwgaGVpZ2h0KSB7CisgICAgY29uc3QgY2FudmFzID0K
KyAgICAgICAgT2JqZWN0LmFzc2lnbihkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSwg
e3dpZHRoLCBoZWlnaHR9KTsKKyAgICBjb25zdCBjdHggPSBjYW52YXMuZ2V0Q29udGV4dCgnMmQn
KTsKKyAgICBjdHguZmlsbFJlY3QoMCwgMCwgd2lkdGgsIGhlaWdodCk7CisgICAgY29uc3QgcCA9
IGN0eC5nZXRJbWFnZURhdGEoMCwgMCwgd2lkdGgsIGhlaWdodCk7CisgICAgcmVxdWVzdEFuaW1h
dGlvbkZyYW1lKGZ1bmN0aW9uIGRyYXcgKCkgeworICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBw
LmRhdGEubGVuZ3RoOyBpKyspIHsKKyAgICAgICAgY29uc3QgY29sb3IgPSBNYXRoLnJhbmRvbSgp
ICogMjU1OworICAgICAgICBwLmRhdGFbaSsrXSA9IGNvbG9yOworICAgICAgICBwLmRhdGFbaSsr
XSA9IGNvbG9yOworICAgICAgICBwLmRhdGFbaSsrXSA9IGNvbG9yOworICAgICAgfQorICAgICAg
Y3R4LnB1dEltYWdlRGF0YShwLCAwLCAwKTsKKyAgICAgIHJlcXVlc3RBbmltYXRpb25GcmFtZShk
cmF3KTsKKyAgICB9KTsKKyAgICByZXR1cm4gY2FudmFzLmNhcHR1cmVTdHJlYW0oKTsKKyAgfQor
CisgIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgICBjb25zdCBwYzEgPSBuZXcgUlRDUGVl
ckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAg
ICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMi5jbG9zZSgpKTsKKworICAgIGNvbnN0IHN0cmVhbSA9IHdoaXRlTm9pc2UoNjQw
LCA0ODApOworICAgIGNvbnN0IFt0cmFja10gPSBzdHJlYW0uZ2V0VHJhY2tzKCk7CisgICAgY29u
c3QgdDEgPSBwYzEuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIiwge2RpcmVjdGlvbjoic2VuZG9ubHki
fSk7CisgICAgY29uc3QgdDIgPSBwYzEuYWRkVHJhbnNjZWl2ZXIoInZpZGVvIiwge2RpcmVjdGlv
bjoic2VuZG9ubHkifSk7CisgICAgYXdhaXQgdDEuc2VuZGVyLnJlcGxhY2VUcmFjayh0cmFjayk7
CisgICAgYXdhaXQgdDIuc2VuZGVyLnJlcGxhY2VUcmFjayh0cmFjayk7CisKKyAgICBleGNoYW5n
ZUljZUNhbmRpZGF0ZXMocGMxLCBwYzIpOworICAgIGF3YWl0IHBjMS5zZXRMb2NhbERlc2NyaXB0
aW9uKCk7CisgICAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHBjMS5sb2NhbERlc2Ny
aXB0aW9uKTsKKyAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbigpOworICAgIGF3YWl0
IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihwYzIubG9jYWxEZXNjcmlwdGlvbik7CisKKyAgICAv
LyBJbiBDaHJvbWl1bSwgZWFjaCBzZW5kZXIgaW5zdGFudGlhdGVzIGEgVmlkZW9TdHJlYW1FbmNv
ZGVyIGR1cmluZworICAgIC8vIG5lZ290aWF0aW9uLiBUaGlzIHRlc3QgcmVwcm9kdWNlcyBodHRw
czovL2NyYnVnLmNvbS93ZWJydGMvMTE0ODUgd2hlcmUgYQorICAgIC8vIHJhY2UgY2F1c2VzIGEg
Y3Jhc2ggd2hlbiBtdWx0aXBsZSBWaWRlb1N0cmVhbUVuY29kZXJzIGFyZSBlbmNvZGluZyB0aGUK
KyAgICAvLyBzYW1lIE1lZGlhU3RyZWFtVHJhY2suCisgICAgYXdhaXQgbmV3IFByb21pc2UocmVz
b2x2ZSA9PiB0LnN0ZXBfdGltZW91dChyZXNvbHZlLCBrRW5jb2RlRHVyYXRpb25NcykpOworICB9
LCAiVHdvIFJUQ1J0cFNlbmRlcnMgZW5jb2RpbmcgdGhlIHNhbWUgdHJhY2siKTsKKzwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9S
VENSdHBUcmFuc2NlaXZlci1zZXRDb2RlY1ByZWZlcmVuY2VzLWV4cGVjdGVkLnR4dAppbmRleCAx
ZTlmN2M4MTM1NzQ4ZmYzMWIxNTRiMTE2OTk2MjhiMmI0MjQ5ZGM5Li40MWYxZmQzM2VlOTY2MDY0
NWFhOGQwMDgyNzQ2YjYxZmM5YWQ0M2IwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXRDb2Rl
Y1ByZWZlcmVuY2VzLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXRDb2RlY1ByZWZl
cmVuY2VzLWV4cGVjdGVkLnR4dApAQCAtMTYsNCArMTYsNiBAQCBQQVNTIHNldENvZGVjUHJlZmVy
ZW5jZXMoKSB3aXRoIG1vZGlmaWVkIGNvZGVjIGNsb2NrIHJhdGUgc2hvdWxkIHRocm93IEludmFs
aWRNbwogUEFTUyBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlYyBjaGFu
bmVsIGNvdW50IHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IKIFBBU1Mgc2V0
Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggbW9kaWZpZWQgY29kZWMgcGFyYW1ldGVycyBzaG91bGQg
dGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yCiBQQVNTIHNldENvZGVjUHJlZmVyZW5jZXMo
KSB3aXRoIG1vZGlmaWVkIGNvZGVjcyByZXR1cm5lZCBmcm9tIGdldENhcGFiaWxpdGllcygpIHNo
b3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3IKK1BBU1Mgc2V0Q29kZWNQcmVmZXJl
bmNlcygpIG1vZGlmaWVzIHRoZSBvcmRlciBvZiBhdWRpbyBjb2RlY3MgaW4gY3JlYXRlT2ZmZXIK
K0ZBSUwgc2V0Q29kZWNQcmVmZXJlbmNlcygpIG1vZGlmaWVzIHRoZSBvcmRlciBvZiB2aWRlbyBj
b2RlY3MgaW4gY3JlYXRlT2ZmZXIgYXNzZXJ0X2VxdWFsczogZXhwZWN0ZWQgIlZQOCIgYnV0IGdv
dCAiSDI2NCIKIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy5o
dG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwVHJhbnNjZWl2ZXItc2V0Q29kZWNQcmVmZXJlbmNlcy5odG1sCmluZGV4IGEwMjgyNDY3
ZDgzY2RlMjQ1MjY0Yzk5MDM3MGY5YjI4NmJjMjFhMDkuLmE1ZGY2YTlkMmIyMTcxNGMxZmQ4ZmNh
ZDEyOTNiNDk1ZTk1ZmNiNmUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXNldENvZGVjUHJlZmVy
ZW5jZXMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zZXRDb2RlY1ByZWZlcmVuY2VzLmh0bWwKQEAg
LTMsNiArMyw3IEBACiA8dGl0bGU+UlRDUnRwVHJhbnNjZWl2ZXIucHJvdG90eXBlLnNldENvZGVj
UHJlZmVyZW5jZXM8L3RpdGxlPgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3Mu
anMiPjwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQu
anMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4vdGhpcmRfcGFydHkvc2RwL3NkcC5qcyI+PC9z
Y3JpcHQ+CiA8c2NyaXB0PgogICAndXNlIHN0cmljdCc7CiAKQEAgLTI4LDQxICsyOSw0NyBAQAog
ICAgICAgICAgIGNvZGVjcyBkb2VzIG5vdCBmdWxmaWxsIHRoZXNlIHJlcXVpcmVtZW50cywgdGhl
IHVzZXIgYWdlbnQgTVVTVCB0aHJvdwogICAgICAgICAgIGFuIEludmFsaWRNb2RpZmljYXRpb25F
cnJvci4KICAgICovCisgIC8qCisgICAqIENocm9taXVtIG5vdGU6IHRoaXMgcmVxdWlyZXMgYnVp
bGQgYm90cyB3aXRoIEgyNjQgc3VwcG9ydC4gU2VlCisgICAqICAgaHR0cHM6Ly9idWdzLmNocm9t
aXVtLm9yZy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9ODQwNjU5CisgICAqIGZvciBkZXRh
aWxzIG9uIGhvdyB0byBlbmFibGUgc3VwcG9ydC4KKyAgICovCiAKLSAgdGVzdCgoKSA9PiB7Cisg
IHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2
ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcignYXVkaW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMg
PSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRpbycpOwogICAgIHRyYW5zY2VpdmVy
LnNldENvZGVjUHJlZmVyZW5jZXMoY2FwYWJpbGl0aWVzLmNvZGVjcyk7Ci0KICAgfSwgYHNldENv
ZGVjUHJlZmVyZW5jZXMoKSBvbiBhdWRpbyB0cmFuc2NlaXZlciB3aXRoIGNvZGVjcyByZXR1cm5l
ZCBmcm9tIFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlvJykgc2hvdWxkIHN1Y2Nl
ZWRgKTsKIAotICB0ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4gewogICAgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9z
ZSgpKTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCd2aWRlbycp
OwogICAgIGNvbnN0IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFJlY2VpdmVyLmdldENhcGFiaWxpdGll
cygndmlkZW8nKTsKICAgICB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNhcGFiaWxp
dGllcy5jb2RlY3MpOwotCiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgb24gdmlkZW8gdHJh
bnNjZWl2ZXIgd2l0aCBjb2RlY3MgcmV0dXJuZWQgZnJvbSBSVENSdHBSZWNlaXZlci5nZXRDYXBh
YmlsaXRpZXMoJ3ZpZGVvJykgc2hvdWxkIHN1Y2NlZWRgKTsKIAotICB0ZXN0KCgpID0+IHsKKyAg
dGVzdCgodCkgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7Cisg
ICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKICAgICBjb25zdCB0cmFuc2NlaXZl
ciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0IGNhcGFiaWxpdGllczEg
PSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRpbycpOwogICAgIGNvbnN0IGNhcGFi
aWxpdGllczIgPSBSVENSdHBSZWNlaXZlci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlvJyk7CiAgICAg
dHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhbLi4uY2FwYWJpbGl0aWVzMS5jb2RlY3Ms
IC4uLiBjYXBhYmlsaXRpZXMyLmNvZGVjc10pOwotCiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2Vz
KCkgd2l0aCBib3RoIHNlbmRlciByZWNlaXZlciBjb2RlY3MgY29tYmluZWQgc2hvdWxkIHN1Y2Nl
ZWRgKTsKIAotICB0ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4gewogICAgIGNvbnN0IHBjID0g
bmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9z
ZSgpKTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycp
OwogICAgIHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoW10pOwotCiAgIH0sIGBzZXRD
b2RlY1ByZWZlcmVuY2VzKFtdKSBzaG91bGQgc3VjY2VlZGApOwogCi0gIHRlc3QoKCkgPT4gewor
ICB0ZXN0KCh0KSA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsK
KyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogICAgIGNvbnN0IHRyYW5zY2Vp
dmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CiAgICAgY29uc3QgY2FwYWJpbGl0aWVz
ID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygnYXVkaW8nKTsKICAgICBjb25zdCB7IGNv
ZGVjcyB9ID0gY2FwYWJpbGl0aWVzOwpAQCAtNzQsMTEgKzgxLDExIEBACiAgICAgfQogCiAgICAg
dHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVmZXJlbmNlcyhjb2RlY3MpOwotCiAgIH0sIGBzZXRDb2Rl
Y1ByZWZlcmVuY2VzKCkgd2l0aCByZW9yZGVyZWQgY29kZWNzIHNob3VsZCBzdWNjZWVkYCk7CiAK
LSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAgICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMuY2xvc2UoKSk7CiAg
ICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2NlaXZlcigndmlkZW8nKTsKICAgICBj
b25zdCBjYXBhYmlsaXRpZXMgPSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycp
OwogICAgIGNvbnN0IHsgY29kZWNzIH0gPSBjYXBhYmlsaXRpZXM7CkBAIC0xMDgsNyArMTE1LDcg
QEAKICAgICAgICAgdHJpZWQgPSB0cnVlOwogICAgICAgfQogICAgIH0pOwotICAgIGFzc2VydF90
cnVlKHRyaWVkLCAnVlA4IHZpZGVvIGNvZGVjIHdhcyBmb3VuZCBhbmQgdHJpZWQnKTsKKyAgICBh
c3NlcnRfdHJ1ZSh0cmllZCwgJ0gyNjQgdmlkZW8gY29kZWMgd2FzIGZvdW5kIGFuZCB0cmllZCcp
OwogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggb25seSBIMjY0IHNob3VsZCBzdWNj
ZWVkYCk7CiAKICAgYXN5bmMgZnVuY3Rpb24gZ2V0UlRQTWFwTGluZXNXaXRoQ29kZWNBc0ZpcnN0
KGZpcnN0Q29kZWMpCkBAIC0xNDMsMTYgKzE1MCwxNyBAQAogICAgIGFzc2VydF90cnVlKGxpbmVz
WzBdLmluZGV4T2YoIlZQOCIpICE9PSAtMSwgIlZQOCBzaG91bGQgYmUgdGhlIGZpcnN0IGNvZGVj
Iik7CiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgc2hvdWxkIGFsbG93IHNldHRpbmcgVlA4
IGFzIGZpcnN0IGNvZGVjYCk7CiAKLSAgdGVzdCgoKSA9PiB7CisgIHRlc3QoKHQpID0+IHsKICAg
ICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAgIHQuYWRkX2NsZWFudXAo
KCkgPT4gcGMuY2xvc2UoKSk7CiAgICAgY29uc3QgdHJhbnNjZWl2ZXIgPSBwYy5hZGRUcmFuc2Nl
aXZlcignYXVkaW8nKTsKICAgICBjb25zdCBjYXBhYmlsaXRpZXMgPSBSVENSdHBTZW5kZXIuZ2V0
Q2FwYWJpbGl0aWVzKCd2aWRlbycpOwogICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9k
aWZpY2F0aW9uRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNh
cGFiaWxpdGllcy5jb2RlY3MpKTsKLQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIG9uIGF1
ZGlvIHRyYW5zY2VpdmVyIHdpdGggY29kZWNzIHJldHVybmVkIGZyb20gZ2V0Q2FwYWJpbGl0aWVz
KCd2aWRlbycpIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIAotICB0
ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKICAgICBj
b25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0
IGNvZGVjcyA9IFt7CiAgICAgICBtaW1lVHlwZTogJ2RhdGEnLApAQCAtMTYyLDExICsxNzAsMTEg
QEAKICAgICB9XTsKIAogICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9u
RXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOwot
CiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCB1c2VyIGRlZmluZWQgY29kZWMgd2l0
aCBpbnZhbGlkIG1pbWVUeXBlIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3Jg
KTsKIAotICB0ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4gewogICAgIGNvbnN0IHBjID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgp
KTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwog
ICAgIGNvbnN0IGNvZGVjcyA9IFt7CiAgICAgICBtaW1lVHlwZTogJ2F1ZGlvL3BpZXBpcGVyJywK
QEAgLTE3NiwxMSArMTg0LDExIEBACiAgICAgfV07CiAKICAgICBhc3NlcnRfdGhyb3dzX2RvbSgn
SW52YWxpZE1vZGlmaWNhdGlvbkVycm9yJywgKCkgPT4gdHJhbnNjZWl2ZXIuc2V0Q29kZWNQcmVm
ZXJlbmNlcyhjb2RlY3MpKTsKLQogICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIHdpdGggdXNl
ciBkZWZpbmVkIGNvZGVjIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsK
IAotICB0ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJU
Q1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsK
ICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwogICAg
IGNvbnN0IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlv
Jyk7CiAgICAgY29uc3QgY29kZWNzID0gWwpAQCAtMTkzLDQ0ICsyMDEsNDQgQEAKICAgICAgIH1d
OwogCiAgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgp
ID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKSk7Ci0KICAgfSwgYHNl
dENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIHVzZXIgZGVmaW5lZCBjb2RlYyB0b2dldGhlciB3aXRo
IGNvZGVjcyByZXR1cm5lZCBmcm9tIGdldENhcGFiaWxpdGllcygpIHNob3VsZCB0aHJvdyBJbnZh
bGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIAotICB0ZXN0KCgpID0+IHsKKyAgdGVzdCgodCkgPT4g
ewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgICAgdC5hZGRfY2xl
YW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKICAgICBjb25zdCB0cmFuc2NlaXZlciA9IHBjLmFkZFRy
YW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0IGNhcGFiaWxpdGllcyA9IFJUQ1J0cFNlbmRl
ci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlvJyk7CiAgICAgY29uc3QgY29kZWNzID0gW2NhcGFiaWxp
dGllcy5jb2RlY3NbMF1dOwogICAgIGNvZGVjc1swXS5jbG9ja1JhdGUgPSBjb2RlY3NbMF0uY2xv
Y2tSYXRlIC8gMjsKIAogICAgIGFzc2VydF90aHJvd3NfZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9u
RXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcykpOwot
CiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0aCBtb2RpZmllZCBjb2RlYyBjbG9jayBy
YXRlIHNob3VsZCB0aHJvdyBJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3JgKTsKIAotICB0ZXN0KCgp
ID0+IHsKKyAgdGVzdCgodCkgPT4gewogICAgIGNvbnN0IHBjID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgICAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYy5jbG9zZSgpKTsKICAgICBjb25zdCB0
cmFuc2NlaXZlciA9IHBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycpOwogICAgIGNvbnN0IGNhcGFi
aWxpdGllcyA9IFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ2F1ZGlvJyk7CiAgICAgY29u
c3QgY29kZWNzID0gW2NhcGFiaWxpdGllcy5jb2RlY3NbMF1dOwogICAgIGNvZGVjc1swXS5jaGFu
bmVscyA9IGNvZGVjc1swXS5jaGFubmVscyArIDExOwogCiAgICAgYXNzZXJ0X3Rocm93c19kb20o
J0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+IHRyYW5zY2VpdmVyLnNldENvZGVjUHJl
ZmVyZW5jZXMoY29kZWNzKSk7Ci0KICAgfSwgYHNldENvZGVjUHJlZmVyZW5jZXMoKSB3aXRoIG1v
ZGlmaWVkIGNvZGVjIGNoYW5uZWwgY291bnQgc2hvdWxkIHRocm93IEludmFsaWRNb2RpZmljYXRp
b25FcnJvcmApOwogCi0gIHRlc3QoKCkgPT4geworICB0ZXN0KCh0KSA9PiB7CiAgICAgY29uc3Qg
cGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBj
LmNsb3NlKCkpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ2F1
ZGlvJyk7CiAgICAgY29uc3QgY2FwYWJpbGl0aWVzID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxp
dGllcygnYXVkaW8nKTsKICAgICBjb25zdCBjb2RlY3MgPSBbY2FwYWJpbGl0aWVzLmNvZGVjc1sw
XV07CiAgICAgY29kZWNzWzBdLnNkcEZtdHBMaW5lID0gIm1vZGlmaWVkcGFyYW1ldGVyPTEiOwog
CiAgICAgYXNzZXJ0X3Rocm93c19kb20oJ0ludmFsaWRNb2RpZmljYXRpb25FcnJvcicsICgpID0+
IHRyYW5zY2VpdmVyLnNldENvZGVjUHJlZmVyZW5jZXMoY29kZWNzKSk7Ci0KICAgfSwgYHNldENv
ZGVjUHJlZmVyZW5jZXMoKSB3aXRoIG1vZGlmaWVkIGNvZGVjIHBhcmFtZXRlcnMgc2hvdWxkIHRo
cm93IEludmFsaWRNb2RpZmljYXRpb25FcnJvcmApOwogCi0gIHRlc3QoKCkgPT4geworICB0ZXN0
KCh0KSA9PiB7CiAgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOwogICAgIGNvbnN0IHRyYW5zY2VpdmVyID0g
cGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CiAgICAgY29uc3QgY2FwYWJpbGl0aWVzID0gUlRD
UnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygnYXVkaW8nKTsKIApAQCAtMjQzLDcgKzI1MSw3MiBA
QAogICAgIGNvZGVjLmNoYW5uZWxzID0gY2hhbm5lbHMrMTsKIAogICAgIGFzc2VydF90aHJvd3Nf
ZG9tKCdJbnZhbGlkTW9kaWZpY2F0aW9uRXJyb3InLCAoKSA9PiB0cmFuc2NlaXZlci5zZXRDb2Rl
Y1ByZWZlcmVuY2VzKGNvZGVjcykpOwotCiAgIH0sIGBzZXRDb2RlY1ByZWZlcmVuY2VzKCkgd2l0
aCBtb2RpZmllZCBjb2RlY3MgcmV0dXJuZWQgZnJvbSBnZXRDYXBhYmlsaXRpZXMoKSBzaG91bGQg
dGhyb3cgSW52YWxpZE1vZGlmaWNhdGlvbkVycm9yYCk7CiAKKyAgcHJvbWlzZV90ZXN0KGFzeW5j
ICh0KSA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0
LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkpOworICAgIGNvbnN0IHRyYW5zY2VpdmVyID0g
cGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgICAgY29uc3Qge2NvZGVjc30gPSBSVENSdHBT
ZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCdhdWRpbycpOworICAgIC8vIFJlb3JkZXIgY29kZWNzLCBw
dXQgUENNVS9QQ01BIGZpcnN0LgorICAgIGxldCBmaXJzdENvZGVjOworICAgIGxldCBpOworICAg
IGZvciAoaSA9IDA7IGkgPCBjb2RlY3MubGVuZ3RoOyBpKyspIHsKKyAgICAgIGNvbnN0IGNvZGVj
ID0gY29kZWNzW2ldOworICAgICAgaWYgKGNvZGVjLm1pbWVUeXBlID09PSAnYXVkaW8vUENNVScg
fHwgY29kZWMubWltZVR5cGUgPT09ICdhdWRpby9QQ01BJykgeworICAgICAgICBjb2RlY3Muc3Bs
aWNlKGksIDEpOworICAgICAgICBjb2RlY3MudW5zaGlmdChjb2RlYyk7CisgICAgICAgIGZpcnN0
Q29kZWMgPSBjb2RlYy5taW1lVHlwZS5zdWJzdHIoNik7CisgICAgICAgIGJyZWFrOworICAgICAg
fQorICAgIH0KKyAgICBhc3NlcnRfbm90X2VxdWFscyhmaXJzdENvZGVjLCB1bmRlZmluZWQsICdQ
Q01VIG9yIFBDTUEgY29kZWMgbm90IGZvdW5kJyk7CisgICAgdHJhbnNjZWl2ZXIuc2V0Q29kZWNQ
cmVmZXJlbmNlcyhjb2RlY3MpOworCisgICAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYy5jcmVhdGVP
ZmZlcigpOworICAgIGNvbnN0IG1lZGlhU2VjdGlvbiA9IFNEUFV0aWxzLmdldE1lZGlhU2VjdGlv
bnMob2ZmZXIuc2RwKVswXTsKKyAgICBjb25zdCBydHBQYXJhbWV0ZXJzID0gU0RQVXRpbHMucGFy
c2VSdHBQYXJhbWV0ZXJzKG1lZGlhU2VjdGlvbik7CisgICAgYXNzZXJ0X2VxdWFscyhydHBQYXJh
bWV0ZXJzLmNvZGVjc1swXS5uYW1lLCBmaXJzdENvZGVjKTsKKyAgfSwgYHNldENvZGVjUHJlZmVy
ZW5jZXMoKSBtb2RpZmllcyB0aGUgb3JkZXIgb2YgYXVkaW8gY29kZWNzIGluIGNyZWF0ZU9mZmVy
YCk7CisKKyAgcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgICAgY29uc3QgcGMgPSBuZXcg
UlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjLmNsb3NlKCkp
OworICAgIGNvbnN0IHRyYW5zY2VpdmVyID0gcGMuYWRkVHJhbnNjZWl2ZXIoJ3ZpZGVvJyk7Cisg
ICAgY29uc3Qge2NvZGVjc30gPSBSVENSdHBTZW5kZXIuZ2V0Q2FwYWJpbGl0aWVzKCd2aWRlbycp
OworICAgIC8vIFJlb3JkZXIgY29kZWNzLCBzd2FwIEgyNjQgYW5kIFZQOC4KKyAgICBsZXQgdnA4
ID0gLTE7CisgICAgbGV0IGgyNjQgPSAtMTsKKyAgICBsZXQgZmlyc3RDb2RlYzsKKyAgICBsZXQg
aTsKKyAgICBmb3IgKGkgPSAwOyBpIDwgY29kZWNzLmxlbmd0aDsgaSsrKSB7CisgICAgICBjb25z
dCBjb2RlYyA9IGNvZGVjc1tpXTsKKyAgICAgIGlmIChjb2RlYy5taW1lVHlwZSA9PT0gJ3ZpZGVv
L1ZQOCcpIHsKKyAgICAgICAgdnA4ID0gaTsKKyAgICAgICAgaWYgKGgyNjQgIT09IC0xKSB7Cisg
ICAgICAgICAgY29kZWNzW3ZwOF0gPSBjb2RlY3NbaDI2NF07CisgICAgICAgICAgY29kZWNzW2gy
NjRdID0gY29kZWM7CisgICAgICAgICAgZmlyc3RDb2RlYyA9ICdWUDgnOworICAgICAgICAgIGJy
ZWFrOworICAgICAgICB9CisgICAgICB9CisgICAgICBpZiAoY29kZWMubWltZVR5cGUgPT09ICd2
aWRlby9IMjY0JykgeworICAgICAgICBoMjY0ID0gaTsKKyAgICAgICAgaWYgKHZwOCAhPT0gLTEp
IHsKKyAgICAgICAgICBjb2RlY3NbaDI2NF0gPSBjb2RlY3NbdnA4XTsKKyAgICAgICAgICBjb2Rl
Y3NbdnA4XSA9IGNvZGVjOworICAgICAgICAgIGZpcnN0Q29kZWMgPSAnSDI2NCc7CisgICAgICAg
ICAgYnJlYWs7CisgICAgICAgIH0KKyAgICAgIH0KKyAgICB9CisgICAgYXNzZXJ0X25vdF9lcXVh
bHMoZmlyc3RDb2RlYywgdW5kZWZpbmVkLCAnVlA4IGFuZCBIMjY0IGNvZGVjcyBub3QgZm91bmQn
KTsKKyAgICB0cmFuc2NlaXZlci5zZXRDb2RlY1ByZWZlcmVuY2VzKGNvZGVjcyk7CisKKyAgICBj
b25zdCBvZmZlciA9IGF3YWl0IHBjLmNyZWF0ZU9mZmVyKCk7CisgICAgY29uc3QgbWVkaWFTZWN0
aW9uID0gU0RQVXRpbHMuZ2V0TWVkaWFTZWN0aW9ucyhvZmZlci5zZHApWzBdOworICAgIGNvbnN0
IHJ0cFBhcmFtZXRlcnMgPSBTRFBVdGlscy5wYXJzZVJ0cFBhcmFtZXRlcnMobWVkaWFTZWN0aW9u
KTsKKyAgICBhc3NlcnRfZXF1YWxzKHJ0cFBhcmFtZXRlcnMuY29kZWNzWzBdLm5hbWUsIGZpcnN0
Q29kZWMpOworICB9LCBgc2V0Q29kZWNQcmVmZXJlbmNlcygpIG1vZGlmaWVzIHRoZSBvcmRlciBv
ZiB2aWRlbyBjb2RlY3MgaW4gY3JlYXRlT2ZmZXJgKTsKKwogIDwvc2NyaXB0PgpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRD
UnRwVHJhbnNjZWl2ZXItc3RvcC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLWV4cGVj
dGVkLnR4dAppbmRleCBiYmRlNTg5NGE3MDg2ZDJjZmZjNTM3OGU3OWE2N2M4N2VhMzMzMDY4Li4w
ZWJiZmU0ZjcyZTI1NzNhODNlM2JjMDBkN2ZhNjc0MWYzYjcwMmUwIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFu
c2NlaXZlci1zdG9wLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLWV4cGVjdGVk
LnR4dApAQCAtMSw2ICsxLDEwIEBACiAKIFBBU1MgQSB0cmFuc2NlaXZlciBhZGRlZCBhbmQgc3Rv
cHBlZCBiZWZvcmUgdGhlIGluaXRpYWwgb2ZmZXIgZ2VuZXJhdGlvbiBzaG91bGQgbm90IHRyaWdn
ZXIgYW4gb2ZmZXIgbS1zZWN0aW9uIGdlbmVyYXRpb24KIFBBU1MgRHVyaW5nIHJlbmVnb3RpYXRp
b24sIGFkZGluZyBhbmQgc3RvcHBpbmcgYSB0cmFuc2NlaXZlciBzaG91bGQgbm90IHRyaWdnZXIg
YSByZW5lZ290aWF0ZWQgb2ZmZXIgbS1zZWN0aW9uIGdlbmVyYXRpb24KLUZBSUwgQSBzdG9wcGVk
IHNlbmRvbmx5IHRyYW5zY2VpdmVyIHNob3VsZCBnZW5lcmF0ZSBhIHNlbmRvbmx5IG0tc2VjdGlv
biBpbiB0aGUgb2ZmZXIgYXNzZXJ0X3RydWU6IFRoZSBhdWRpbyBtLXNlY3Rpb24gc2hvdWxkIGJl
IHNlbmRvbmx5IGV4cGVjdGVkIHRydWUgZ290IGZhbHNlCitQQVNTIEEgc3RvcHBlZCBzZW5kb25s
eSB0cmFuc2NlaXZlciBzaG91bGQgZ2VuZXJhdGUgYW4gaW5hY3RpdmUgbS1zZWN0aW9uIGluIHRo
ZSBvZmZlcgogUEFTUyBBIHN0b3BwZWQgaW5hY3RpdmUgdHJhbnNjZWl2ZXIgc2hvdWxkIGdlbmVy
YXRlIGFuIGluYWN0aXZlIG0tc2VjdGlvbiBpbiB0aGUgb2ZmZXIKK1BBU1MgSWYgYSB0cmFuc2Nl
aXZlciBpcyBzdG9wcGVkIGxvY2FsbHksIHNldHRpbmcgYSBsb2NhbGx5IGdlbmVyYXRlZCBhbnN3
ZXIgc2hvdWxkIHN0aWxsIHdvcmsKK1BBU1MgSWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVkIHJl
bW90ZWx5LCBzZXR0aW5nIGEgbG9jYWxseSBnZW5lcmF0ZWQgYW5zd2VyIHNob3VsZCBzdGlsbCB3
b3JrCitGQUlMIElmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCwgdHJhbnNjZWl2ZXJzLCBzZW5k
ZXJzIGFuZCByZWNlaXZlcnMgc2hvdWxkIGRpc2FwcGVhciBhZnRlciBvZmZlci9hbnN3ZXIgYXNz
ZXJ0X2VxdWFsczogZXhwZWN0ZWQgMCBidXQgZ290IDEKK0ZBSUwgSWYgYSB0cmFuc2NlaXZlciBp
cyBzdG9wcGVkLCB0cmFuc2NlaXZlcnMgc2hvdWxkIGVuZCB1cCBpbiBzdGF0ZSBzdG9wcGVkIGFz
c2VydF9lcXVhbHM6IGV4cGVjdGVkICJpbmFjdGl2ZSIgYnV0IGdvdCAic3RvcHBlZCIKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXItc3RvcC5odG1sCmlu
ZGV4IDRmNTdkYzdiNmQzNDg0ODZlMjcxNWFmZjFlN2Q3ZTc3M2MyOWQwZTMuLjRmM2E5Y2U4NWZh
MjQ0YmM2NzM0NDdmYTM4OWY0NGJkYzM4MWIyMzAgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLXN0
b3AuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci1zdG9wLmh0bWwKQEAgLTU5LDggKzU5LDggQEAgcHJv
bWlzZV90ZXN0KGFzeW5jICh0KT0+IHsKIAogICAgIGNvbnN0IG9mZmVyID0gYXdhaXQgcGMxLmNy
ZWF0ZU9mZmVyKCk7CiAKLSAgICBhc3NlcnRfdHJ1ZShvZmZlci5zZHAuaW5jbHVkZXMoImE9c2Vu
ZG9ubHkiKSwgIlRoZSBhdWRpbyBtLXNlY3Rpb24gc2hvdWxkIGJlIHNlbmRvbmx5Iik7Ci19LCAi
QSBzdG9wcGVkIHNlbmRvbmx5IHRyYW5zY2VpdmVyIHNob3VsZCBnZW5lcmF0ZSBhIHNlbmRvbmx5
IG0tc2VjdGlvbiBpbiB0aGUgb2ZmZXIiKTsKKyAgICBhc3NlcnRfdHJ1ZShvZmZlci5zZHAuaW5j
bHVkZXMoImE9aW5hY3RpdmUiKSwgIlRoZSBhdWRpbyBtLXNlY3Rpb24gc2hvdWxkIGJlIGluYWN0
aXZlIik7Cit9LCAiQSBzdG9wcGVkIHNlbmRvbmx5IHRyYW5zY2VpdmVyIHNob3VsZCBnZW5lcmF0
ZSBhbiBpbmFjdGl2ZSBtLXNlY3Rpb24gaW4gdGhlIG9mZmVyIik7CiAKIHByb21pc2VfdGVzdChh
c3luYyAodCk9PiB7CiAgICAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CkBA
IC03OSw0ICs3OSw2NSBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgKHQpPT4gewogCiAgICAgYXNzZXJ0
X3RydWUob2ZmZXIuc2RwLmluY2x1ZGVzKCJhPWluYWN0aXZlIiksICJUaGUgYXVkaW8gbS1zZWN0
aW9uIHNob3VsZCBiZSBpbmFjdGl2ZSIpOwogfSwgIkEgc3RvcHBlZCBpbmFjdGl2ZSB0cmFuc2Nl
aXZlciBzaG91bGQgZ2VuZXJhdGUgYW4gaW5hY3RpdmUgbS1zZWN0aW9uIGluIHRoZSBvZmZlciIp
OworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOwor
ICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9
PiBwYzIuY2xvc2UoKSk7CisgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8iKTsKKyAgYXdhaXQg
ZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisgIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVsw
XS5zdG9wKCk7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBhd2Fp
dCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKSk7Cit9LCAn
SWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVkIGxvY2FsbHksIHNldHRpbmcgYSBsb2NhbGx5IGdl
bmVyYXRlZCBhbnN3ZXIgc2hvdWxkIHN0aWxsIHdvcmsnKTsKKworcHJvbWlzZV90ZXN0KGFzeW5j
ICh0KSA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25z
dCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBw
YzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBwYzEu
YWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMx
LCBwYzIpOworICBwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uc3RvcCgpOworICBhd2FpdCBleGNo
YW5nZU9mZmVyQW5zd2VyKHBjMiwgcGMxKTsKKyAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRp
b24oYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCkpOworfSwgJ0lmIGEgdHJhbnNjZWl2ZXIgaXMgc3Rv
cHBlZCByZW1vdGVseSwgc2V0dGluZyBhIGxvY2FsbHkgZ2VuZXJhdGVkIGFuc3dlciBzaG91bGQg
c3RpbGwgd29yaycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgKHQpID0+IHsKKyAgY29uc3QgcGMx
ID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIGNvbnN0IHBjMiA9IG5ldyBSVENQZWVyQ29u
bmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzIuY2xvc2UoKSk7CisgIHBjMS5hZGRUcmFuc2NlaXZlcigiYXVkaW8i
KTsKKyAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7CisgIGFzc2VydF9lcXVh
bHMocGMxLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSk7CisgIGFzc2VydF9lcXVhbHMocGMy
LmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwgMSk7CisgIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVsw
XS5zdG9wKCk7CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBhc3Nl
cnRfZXF1YWxzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDApOworICBhc3NlcnRfZXF1
YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDApOworICBhc3NlcnRfZXF1YWxzKHBj
MS5nZXRTZW5kZXJzKCkubGVuZ3RoLCAwLCAnY2FsbGVyIHNlbmRlcnMnKTsKKyAgYXNzZXJ0X2Vx
dWFscyhwYzEuZ2V0UmVjZWl2ZXJzKCkubGVuZ3RoLCAwLCAnY2FsbGVyIHJlY2VpdmVycycpOwor
ICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRTZW5kZXJzKCkubGVuZ3RoLCAwLCAnY2FsbGVlIHNlbmRl
cnMnKTsKKyAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0UmVjZWl2ZXJzKCkubGVuZ3RoLCAwLCAnY2Fs
bGVlIHJlY2VpdmVycycpOworfSwgJ0lmIGEgdHJhbnNjZWl2ZXIgaXMgc3RvcHBlZCwgdHJhbnNj
ZWl2ZXJzLCBzZW5kZXJzIGFuZCByZWNlaXZlcnMgc2hvdWxkIGRpc2FwcGVhciBhZnRlciBvZmZl
ci9hbnN3ZXInKTsKKworcHJvbWlzZV90ZXN0KGFzeW5jICh0KSA9PiB7CisgIGNvbnN0IHBjMSA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5l
Y3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2Ns
ZWFudXAoKCkgPT4gcGMyLmNsb3NlKCkpOworICBwYzEuYWRkVHJhbnNjZWl2ZXIoImF1ZGlvIik7
CisgIGF3YWl0IGV4Y2hhbmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBhc3NlcnRfZXF1YWxz
KHBjMS5nZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICBhc3NlcnRfZXF1YWxzKHBjMi5n
ZXRUcmFuc2NlaXZlcnMoKS5sZW5ndGgsIDEpOworICBwYzFUcmFuc2NlaXZlciA9IHBjMS5nZXRU
cmFuc2NlaXZlcnMoKVswXTsKKyAgcGMyVHJhbnNjZWl2ZXIgPSBwYzIuZ2V0VHJhbnNjZWl2ZXJz
KClbMF07CisgIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVswXS5zdG9wKCk7CisgIGF3YWl0IGV4Y2hh
bmdlT2ZmZXJBbnN3ZXIocGMxLCBwYzIpOworICBhc3NlcnRfZXF1YWxzKCdzdG9wcGVkJywgcGMx
VHJhbnNjZWl2ZXIuZGlyZWN0aW9uKTsKKyAgYXNzZXJ0X2VxdWFscygnc3RvcHBlZCcsIHBjMlRy
YW5zY2VpdmVyLmRpcmVjdGlvbik7Cit9LCAnSWYgYSB0cmFuc2NlaXZlciBpcyBzdG9wcGVkLCB0
cmFuc2NlaXZlcnMgc2hvdWxkIGVuZCB1cCBpbiBzdGF0ZSBzdG9wcGVkJyk7CisKIDwvc2NyaXB0
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDUnRwVHJhbnNjZWl2ZXIuaHR0cHMuaHRtbCBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFRyYW5zY2VpdmVyLmh0dHBz
Lmh0bWwKaW5kZXggNDg3Nzc0OTgyMjk4Mzc2YjdjZTI3YTJjYmZhZWE3YWQzYzcxNmUyOC4uYzlk
Y2U0NWQ3Mzg4NGJjZTc0ZjE2NGJhMzA2Y2U2N2JjYzczOTIwNSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwVHJhbnNj
ZWl2ZXIuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBUcmFuc2NlaXZlci5odHRwcy5odG1sCkBAIC0xOTksNyAr
MTk5LDYgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgICAgbWlk
OiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3Rv
cHBlZDogZmFsc2UKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgIHJlY2VpdmVyOiB7
dHJhY2s6IHtraW5kOiAidmlkZW8iLCByZWFkeVN0YXRlOiAibGl2ZSIsIG11dGVkOiB0cnVlfX0s
CkBAIC0yMDcsNyArMjA2LDYgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAg
ICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0g
ICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAgIH07CkBAIC0y
MzIsNyArMjMwLDYgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAg
ICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAg
ICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgIHJlY2Vp
dmVyOiB7dHJhY2s6IHtraW5kOiAidmlkZW8ifX0sCkBAIC0yNDAsNyArMjM3LDYgQEAKICAgICAg
ICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgICAgbWlkOiBudWxsLAogICAgICAg
ICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAg
ICAgICAgfQogICAgICAgXSk7CiAgIH07CkBAIC0yNjUsNyArMjYxLDYgQEAKICAgICAgICAgICBk
aXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1
cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAg
fSwKICAgICAgICAgewogICAgICAgICAgIHJlY2VpdmVyOiB7dHJhY2s6IHtraW5kOiAidmlkZW8i
fX0sCkBAIC0yNzMsNyArMjY4LDYgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIs
CiAgICAgICAgICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGws
Ci0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAgIH07CkBA
IC0yOTMsNyArMjg3LDYgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJyZWN2b25seSIsCiAgICAg
ICAgICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAg
ICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfSwKICAgICAgICAgewogICAgICAgICAgIHJl
Y2VpdmVyOiB7dHJhY2s6IHtraW5kOiAidmlkZW8ifX0sCkBAIC0zMDEsNyArMjk0LDYgQEAKICAg
ICAgICAgICBkaXJlY3Rpb246ICJyZWN2b25seSIsCiAgICAgICAgICAgbWlkOiBudWxsLAogICAg
ICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UK
ICAgICAgICAgfQogICAgICAgXSk7CiAgIH07CkBAIC0zMzYsNyArMzI4LDYgQEAKICAgICAgICAg
ICBzZW5kZXI6IHt0cmFjazogbnVsbH0sCiAgICAgICAgICAgZGlyZWN0aW9uOiAicmVjdm9ubHki
LAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDog
ZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAgIH07CkBAIC0zNjUsNyArMzU2LDYgQEAKICAg
ICAgICAgICAvLyBydGN3ZWItanNlcCBzYXlzIHRoaXMgaXMgcmVjdm9ubHksIHczYy13ZWJydGMg
ZG9lcyBub3QuLi4KICAgICAgICAgICBkaXJlY3Rpb246ICJyZWN2b25seSIsCiAgICAgICAgICAg
Y3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQogICAgICAg
ICB9CiAgICAgICBdKTsKICAgfTsKQEAgLTQyNSw2ICs0MTUsNyBAQAogCiAgICAgLy8gUmVtb3Zl
IG1pZCBhdHRyCiAgICAgb2ZmZXIuc2RwID0gb2ZmZXIuc2RwLnJlcGxhY2UoImE9bWlkOiIsICJh
PXVua25vd25hdHRyOiIpOworICAgIG9mZmVyLnNkcCA9IG9mZmVyLnNkcC5yZXBsYWNlKCJhPWdy
b3VwOiIsICJhPXVua25vd25hdHRyOiIpOwogICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlw
dGlvbihvZmZlcik7CiAKICAgICBoYXNQcm9wc0FuZFVuaXF1ZU1pZHMocGMyLmdldFRyYW5zY2Vp
dmVycygpLApAQCAtNDM0LDcgKzQyNSw2IEBACiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IG51
bGx9LAogICAgICAgICAgIGRpcmVjdGlvbjogInJlY3Zvbmx5IiwKICAgICAgICAgICBjdXJyZW50
RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAg
ICAgIF0pOwogCkBAIC00NjUsNyArNDU1LDYgQEAKICAgICAgICAgICBzZW5kZXI6IHt0cmFjazog
e2tpbmQ6ICJhdWRpbyJ9fSwKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAg
ICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQog
ICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtNDg1LDcgKzQ3NCw2IEBACiAgICAgICAgICAgc2Vu
ZGVyOiB7dHJhY2s6IHtraW5kOiAiYXVkaW8ifX0sCiAgICAgICAgICAgZGlyZWN0aW9uOiAic2Vu
ZHJlY3YiLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJzZW5kb25seSIsCi0gICAgICAg
ICAgc3RvcHBlZDogZmFsc2UsCiAgICAgICAgICAgbWlkOiBsYXN0TWlkCiAgICAgICAgIH0KICAg
ICAgIF0pOwpAQCAtNDk5LDcgKzQ4Nyw2IEBACiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IHtr
aW5kOiAiYXVkaW8ifX0sCiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAg
ICAgIGN1cnJlbnREaXJlY3Rpb246ICJzZW5kb25seSIsCi0gICAgICAgICAgc3RvcHBlZDogZmFs
c2UsCiAgICAgICAgICAgbWlkOiBsYXN0TWlkCiAgICAgICAgIH0KICAgICAgIF0pOwpAQCAtMTI0
OCwxOSArMTIzNSwxNyBAQAogICAgICAgc3RvcHBlZFRyYW5zY2VpdmVyLnJlY2VpdmVyLnRyYWNr
Lm9uZW5kZWQgPSByZXNvbHZlOwogICAgIH0pOwogICAgIHN0b3BwZWRUcmFuc2NlaXZlci5zdG9w
KCk7Ci0gICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0UmVjZWl2ZXJzKCkubGVuZ3RoLCAwLCAnZ2V0
UmVjZWl2ZXJzIGRvZXMgbm90IGV4cG9zZSBhIHJlY2VpdmVyIG9mIGEgc3RvcHBlZCB0cmFuc2Nl
aXZlcicpOwotICAgIGFzc2VydF9lcXVhbHMocGMxLmdldFNlbmRlcnMoKS5sZW5ndGgsIDAsICdn
ZXRTZW5kZXJzIGRvZXMgbm90IGV4cG9zZSBhIHNlbmRlciBvZiBhIHN0b3BwZWQgdHJhbnNjZWl2
ZXInKTsKLQorICAgIGFzc2VydF9lcXVhbHMocGMxLmdldFJlY2VpdmVycygpLmxlbmd0aCwgMSwg
J2dldFJlY2VpdmVycyBleHBvc2VzIGEgcmVjZWl2ZXIgb2YgYSBzdG9wcGVkIHRyYW5zY2VpdmVy
IGJlZm9yZSBuZWdvdGlhdGlvbicpOworICAgIGFzc2VydF9lcXVhbHMocGMxLmdldFNlbmRlcnMo
KS5sZW5ndGgsIDEsICdnZXRTZW5kZXJzIGV4cG9zZXMgYSBzZW5kZXIgb2YgYSBzdG9wcGVkIHRy
YW5zY2VpdmVyIGJlZm9yZSBuZWdvdGlhdGlvbicpOwogICAgIGF3YWl0IG9uZW5kZWQ7Ci0KKyAg
ICAvLyBUaGUgdHJhbnNjZWl2ZXIgaGFzIFtbc3RvcHBpbmddXSA9IHRydWUsIFtbc3RvcHBlZF1d
ID0gZmFsc2UKICAgICBoYXNQcm9wc0FuZFVuaXF1ZU1pZHMocGMxLmdldFRyYW5zY2VpdmVycygp
LAogICAgICAgWwogICAgICAgICB7CiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IHtraW5kOiAi
YXVkaW8ifX0sCiAgICAgICAgICAgcmVjZWl2ZXI6IHt0cmFjazoge2tpbmQ6ICJhdWRpbyIsIHJl
YWR5U3RhdGU6ICJlbmRlZCJ9fSwKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAotICAgICAgICAg
IGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3Yi
CisgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogInNlbmRyZWN2IiwKKyAgICAgICAgICBkaXJl
Y3Rpb246ICJzdG9wcGVkIgogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMTI4NywyOSArMTI3
MiwzOCBAQAogICAgIG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7CiAgICAgYXdhaXQg
cGMxLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIpOwogCi0gICAgc3RvcHBlZFRyYW5zY2VpdmVy
ID0gcGMyLmdldFRyYW5zY2VpdmVycygpWzBdOworICAgIGNvbnN0IHN0b3BwZWRDYWxsZWVUcmFu
c2NlaXZlciA9IHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXTsKICAgICBvbmVuZGVkID0gbmV3IFBy
b21pc2UocmVzb2x2ZSA9PiB7Ci0gICAgICBzdG9wcGVkVHJhbnNjZWl2ZXIucmVjZWl2ZXIudHJh
Y2sub25lbmRlZCA9IHJlc29sdmU7CisgICAgICBzdG9wcGVkQ2FsbGVlVHJhbnNjZWl2ZXIucmVj
ZWl2ZXIudHJhY2sub25lbmRlZCA9IHJlc29sdmU7CiAgICAgfSk7CiAKICAgICBhd2FpdCBwYzIu
c2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpOwogCiAgICAgYXdhaXQgb25lbmRlZDsKLQorICAg
IC8vIHBjMidzIHRyYW5zY2VpdmVyIHdhcyBzdG9wcGVkIHJlbW90ZWx5LgorICAgIC8vIFRoZSB0
cmFjayBlbmRzIHdoZW4gc2V0UmVtZW90ZURlc2NyaXB0aW9uKG9mZmVyKSBpcyBzZXQuCiAgICAg
aGFzUHJvcHMocGMyLmdldFRyYW5zY2VpdmVycygpLAogICAgICAgWwogICAgICAgICB7CiAgICAg
ICAgICAgc2VuZGVyOiB7dHJhY2s6IHtraW5kOiAiYXVkaW8ifX0sCiAgICAgICAgICAgcmVjZWl2
ZXI6IHt0cmFjazoge2tpbmQ6ICJhdWRpbyIsIHJlYWR5U3RhdGU6ICJlbmRlZCJ9fSwKLSAgICAg
ICAgICBzdG9wcGVkOiB0cnVlLAotICAgICAgICAgIG1pZDogbnVsbCwKLSAgICAgICAgICBjdXJy
ZW50RGlyZWN0aW9uOiBudWxsLAorICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJzdG9wcGVk
IiwKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kcmVjdiIKICAgICAgICAgfQogICAgICAgXSk7
CisgICAgLy8gQWZ0ZXIgc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpLCB0aGUgdHJhbnNjZWl2
ZXIgaGFzCisgICAgLy8gW1tzdG9wcGluZ11dID0gdHJ1ZSwgW1tzdG9wcGVkXV0gPSB0cnVlLCBh
bmQgaXMgcmVtb3ZlZCBmcm9tIHBjMi4KKyAgICBjb25zdCBzdG9wcGluZ0Fuc3dlciA9IGF3YWl0
IHBjMi5jcmVhdGVBbnN3ZXIoKTsKKyAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihz
dG9wcGluZ0Fuc3dlcik7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCku
bGVuZ3RoLCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRSZWNlaXZlcnMoKS5sZW5ndGgs
IDAsICdnZXRSZWNlaXZlcnMgZG9lcyBub3QgZXhwb3NlIGEgcmVjZWl2ZXIgb2YgYSBzdG9wcGVk
IHRyYW5zY2VpdmVyIGFmdGVyIG5lZ290aWF0aW9uJyk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIu
Z2V0U2VuZGVycygpLmxlbmd0aCwgMCwgJ2dldFNlbmRlcnMgZG9lcyBub3QgZXhwb3NlIGEgc2Vu
ZGVyIG9mIGEgc3RvcHBlZCB0cmFuc2NlaXZlciBhZnRlciBuZWdvdGlhdGlvbicpOwogCiAgICAg
Ly8gU2hvdWxkbid0IHRocm93IGVpdGhlcgogICAgIHN0b3BwZWRUcmFuc2NlaXZlci5zdG9wKCk7
CisgICAgYXdhaXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKHN0b3BwaW5nQW5zd2VyKTsKKyAg
ICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRSZWNlaXZlcnMoKS5sZW5ndGgsIDAsICdnZXRSZWNlaXZl
cnMgZG9lcyBub3QgZXhwb3NlIGEgcmVjZWl2ZXIgb2YgYSBzdG9wcGVkIHRyYW5zY2VpdmVyIGFm
dGVyIG5lZ290aWF0aW9uJyk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0U2VuZGVycygpLmxl
bmd0aCwgMCwgJ2dldFNlbmRlcnMgZG9lcyBub3QgZXhwb3NlIGEgc2VuZGVyIG9mIGEgc3RvcHBl
ZCB0cmFuc2NlaXZlciBhZnRlciBuZWdvdGlhdGlvbicpOwogCiAgICAgcGMxLmNsb3NlKCk7CiAg
ICAgcGMyLmNsb3NlKCk7CkBAIC0xMzM0LDEzICsxMzI4LDE0IEBACiAKICAgICBsZXQgb2ZmZXIg
PSBhd2FpdCBwYzEuY3JlYXRlT2ZmZXIoKTsKIAotICAgIHBjMS5nZXRUcmFuc2NlaXZlcnMoKVsw
XS5zdG9wKCk7Ci0KKyAgICBjb25zdCB0cmFuc2NlaXZlclRoYXRXYXNTdG9wcGVkID0gcGMxLmdl
dFRyYW5zY2VpdmVycygpWzBdOworICAgIHRyYW5zY2VpdmVyVGhhdFdhc1N0b3BwZWQuc3RvcCgp
OwogICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcikKICAgICB0cmlja2xl
KHQsIHBjMSwgcGMyKTsKICAgICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7
CiAKICAgICBsZXQgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOworICAgIGNvbnN0
IG5lZ290aWF0aW9uTmVlZGVkQXdhaXRlciA9IG5lZ290aWF0aW9uTmVlZGVkKHBjMSk7CiAgICAg
Y29uc3QgdHJhY2tFdmVudHMgPSBhd2FpdCBzZXRSZW1vdGVEZXNjcmlwdGlvblJldHVyblRyYWNr
RXZlbnRzKHBjMSwgYW5zd2VyKTsKICAgICAvLyBTcGVjIGxhbmd1YWdlIGRvZXNuJ3Qgc2F5IGFu
eXRoaW5nIGFib3V0IGNoZWNraW5nIHdoZXRoZXIgdGhlIHRyYW5zY2VpdmVyCiAgICAgLy8gaXMg
c3RvcHBlZCBoZXJlLgpAQCAtMTM1MiwxNiArMTM0NywyMCBAQAogICAgICAgICB9CiAgICAgICBd
KTsKIAorICAgIGFzc2VydF9lcXVhbHModHJhbnNjZWl2ZXJUaGF0V2FzU3RvcHBlZCwgcGMxLmdl
dFRyYW5zY2VpdmVycygpWzBdKTsKKyAgICAvLyBUaGUgdHJhbnNjZWl2ZXIgc2hvdWxkIHN0aWxs
IGJlIFtbc3RvcHBpbmddXT10cnVlLCBbW3N0b3BwZWRdXT1mYWxzZS4KICAgICBoYXNQcm9wc0Fu
ZFVuaXF1ZU1pZHMocGMxLmdldFRyYW5zY2VpdmVycygpLAogICAgICAgWwogICAgICAgICB7Ci0g
ICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAic2Vu
ZHJlY3YiLAorICAgICAgICAgIGRpcmVjdGlvbjogInN0b3BwZWQiCiAgICAgICAgIH0KICAgICAg
IF0pOwogCi0gICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWQocGMxKTsKKyAgICBhd2FpdCBuZWdv
dGlhdGlvbk5lZWRlZEF3YWl0ZXI7CiAKICAgICB0cmlja2xlKHQsIHBjMiwgcGMxKTsKKwogICAg
IGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CiAKICAgICBhd2FpdCBpY2VD
b25uZWN0ZWQocGMxKTsKQEAgLTEzNzMsMjIgKzEzNzIsOCBAQAogICAgIGFuc3dlciA9IGF3YWl0
IHBjMi5jcmVhdGVBbnN3ZXIoKTsKICAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihh
bnN3ZXIpOwogICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIpOwotCi0g
ICAgaGFzUHJvcHMocGMxLmdldFRyYW5zY2VpdmVycygpLAotICAgICAgWwotICAgICAgICB7Ci0g
ICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKLSAgICAgICAgICBtaWQ6IG51bGwKLSAgICAgICAgfQot
ICAgICAgXSk7Ci0KLSAgICBoYXNQcm9wcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCksCi0gICAgICBb
Ci0gICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAotICAgICAgICAgIG1pZDogbnVs
bAotICAgICAgICB9Ci0gICAgICBdKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMS5nZXRUcmFuc2Nl
aXZlcnMoKS5sZW5ndGgsIDApOworICAgIGFzc2VydF9lcXVhbHMocGMyLmdldFRyYW5zY2VpdmVy
cygpLmxlbmd0aCwgMCk7CiAgIH07CiAKICAgY29uc3QgY2hlY2tTdG9wQWZ0ZXJTZXRMb2NhbE9m
ZmVyID0gYXN5bmMgdCA9PiB7CkBAIC0xNDEyLDYgKzEzOTcsNyBAQAogICAgIHBjMS5nZXRUcmFu
c2NlaXZlcnMoKVswXS5zdG9wKCk7CiAKICAgICBsZXQgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0
ZUFuc3dlcigpOworICAgIGNvbnN0IG5lZ290aWF0aW9uTmVlZGVkQXdhaXRlciA9IG5lZ290aWF0
aW9uTmVlZGVkKHBjMSk7CiAgICAgY29uc3QgdHJhY2tFdmVudHMgPSBhd2FpdCBzZXRSZW1vdGVE
ZXNjcmlwdGlvblJldHVyblRyYWNrRXZlbnRzKHBjMSwgYW5zd2VyKTsKICAgICAvLyBTcGVjIGxh
bmd1YWdlIGRvZXNuJ3Qgc2F5IGFueXRoaW5nIGFib3V0IGNoZWNraW5nIHdoZXRoZXIgdGhlIHRy
YW5zY2VpdmVyCiAgICAgLy8gaXMgc3RvcHBlZCBoZXJlLgpAQCAtMTQyNiwxMCArMTQxMiwxMSBA
QAogICAgIGhhc1Byb3BzQW5kVW5pcXVlTWlkcyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCksCiAgICAg
ICBbCiAgICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAorICAgICAgICAgIGRpcmVj
dGlvbjogInN0b3BwZWQiLAorICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJzZW5kcmVjdiIK
ICAgICAgICAgfQogICAgICAgXSk7Ci0gICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWQocGMxKTsK
KyAgICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZEF3YWl0ZXI7CiAKICAgICB0cmlja2xlKHQsIHBj
MiwgcGMxKTsKICAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOwpAQCAt
MTQ0NCwyMSArMTQzMSw4IEBACiAgICAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5z
d2VyKTsKICAgICBhd2FpdCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKIAotICAg
IGhhc1Byb3BzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKSwKLSAgICAgIFsKLSAgICAgICAgewotICAg
ICAgICAgIHN0b3BwZWQ6IHRydWUsCi0gICAgICAgICAgbWlkOiBudWxsCi0gICAgICAgIH0KLSAg
ICAgIF0pOwotCi0gICAgaGFzUHJvcHMocGMyLmdldFRyYW5zY2VpdmVycygpLAotICAgICAgWwot
ICAgICAgICB7Ci0gICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKLSAgICAgICAgICBtaWQ6IG51bGwK
LSAgICAgICAgfQotICAgICAgXSk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzEuZ2V0VHJhbnNjZWl2
ZXJzKCkubGVuZ3RoLCAwKTsKKyAgICBhc3NlcnRfZXF1YWxzKHBjMi5nZXRUcmFuc2NlaXZlcnMo
KS5sZW5ndGgsIDApOwogICB9OwogCiAgIGNvbnN0IGNoZWNrU3RvcEFmdGVyU2V0UmVtb3RlT2Zm
ZXIgPSBhc3luYyB0ID0+IHsKQEAgLTE0NzgsMjIgKzE0NTIsMzUgQEAKICAgICBhd2FpdCBwYzIu
c2V0UmVtb3RlRGVzY3JpcHRpb24ob2ZmZXIpCiAgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3Jp
cHRpb24ob2ZmZXIpOwogCi0gICAgLy8gU3RvcCBvbiBfYW5zd2VyZXJfc2lkZSBub3cuIFNob3Vs
ZCB0YWtlIGVmZmVjdCBpbiBhbnN3ZXIuCisgICAgLy8gU3RvcCBvbiBfYW5zd2VyZXJfIHNpZGUg
bm93LiBTaG91bGQgbm90IHN0b3AgdHJhbnNjZWl2ZXIgaW4gYW5zd2VyLAorICAgIC8vIGJ1dCBj
YXVzZSBmaXJpbmcgb2YgbmVnb3RpYXRpb25OZWVkZWQgYXQgcGMyLCBhbmQgZGlzYWJsaW5nCisg
ICAgLy8gb2YgdGhlIHRyYW5zY2VpdmVyIHdpdGggZGlyZWN0aW9uID0gaW5hY3RpdmUgaW4gYW5z
d2VyLgogICAgIHBjMi5nZXRUcmFuc2NlaXZlcnMoKVswXS5zdG9wKCk7CisgICAgYXNzZXJ0X2Vx
dWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKClbMF0uZGlyZWN0aW9uLCAnc3RvcHBlZCcpOwogCiAg
ICAgY29uc3QgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOwogICAgIGNvbnN0IHRy
YWNrRXZlbnRzID0gYXdhaXQgc2V0UmVtb3RlRGVzY3JpcHRpb25SZXR1cm5UcmFja0V2ZW50cyhw
YzEsIGFuc3dlcik7CiAgICAgaGFzUHJvcHModHJhY2tFdmVudHMsIFtdKTsKIAotICAgIGhhc1By
b3BzKHBjMS5nZXRUcmFuc2NlaXZlcnMoKSwKKyAgICBoYXNQcm9wcyhwYzIuZ2V0VHJhbnNjZWl2
ZXJzKCksCiAgICAgICBbCiAgICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAotICAg
ICAgICAgIG1pZDogbnVsbAorICAgICAgICAgIGRpcmVjdGlvbjogInN0b3BwZWQiLAorICAgICAg
ICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCiAgICAgICAgIH0KICAgICAgIF0pOwogCisgICAg
Y29uc3QgbmVnb3RpYXRpb25OZWVkZWRBd2FpdGVyID0gbmVnb3RpYXRpb25OZWVkZWQocGMyKTsK
ICAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpOworICAgIGhhc1Byb3Bz
KHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwKKyAgICAgIFsKKyAgICAgICAgeworICAgICAgICAgIGRp
cmVjdGlvbjogInN0b3BwZWQiLAorICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246ICJpbmFjdGl2
ZSIsCisgICAgICAgIH0KKyAgICAgIF0pOworCisgICAgYXdhaXQgbmVnb3RpYXRpb25OZWVkZWRB
d2FpdGVyOwogICB9OwogCiAgIGNvbnN0IGNoZWNrU3RvcEFmdGVyQ3JlYXRlQW5zd2VyID0gYXN5
bmMgdCA9PiB7CkBAIC0xNTMxLDE0ICsxNTE4LDI1IEBACiAgICAgaGFzUHJvcHNBbmRVbmlxdWVN
aWRzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwKICAgICAgIFsKICAgICAgICAgewotICAgICAgICAg
IHN0b3BwZWQ6IHRydWUsCisgICAgICAgICAgZGlyZWN0aW9uOiAic3RvcHBlZCIsCisgICAgICAg
ICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKICAgICAgICAgfQogICAgICAgXSk7CiAKICAgICB0
cmlja2xlKHQsIHBjMiwgcGMxKTsKKyAgICAvLyBUaGUgbmVnb3RpYXRpb25uZWVkZWQgZXZlbnQg
aXMgZmlyZWQgZHVyaW5nIHByb2Nlc3Npbmcgb2YKKyAgICAvLyBzZXRMb2NhbERlc2NyaXB0aW9u
KCkKKyAgICBjb25zdCBuZWdvdGlhdGlvbk5lZWRlZEF3YWl0ZXIgPSBuZWdvdGlhdGlvbk5lZWRl
ZChwYzIpOwogICAgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7CisgICAg
aGFzUHJvcHNBbmRVbmlxdWVNaWRzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwKKyAgICAgIFsKKyAg
ICAgICAgeworICAgICAgICAgIGRpcmVjdGlvbjogInN0b3BwZWQiLAorICAgICAgICAgIGN1cnJl
bnREaXJlY3Rpb246ICJzZW5kcmVjdiIsCisgICAgICAgIH0KKyAgICAgIF0pOwogCi0gICAgYXdh
aXQgbmVnb3RpYXRpb25OZWVkZWQocGMyKTsKKyAgICBhd2FpdCBuZWdvdGlhdGlvbk5lZWRlZEF3
YWl0ZXI7CiAgICAgYXdhaXQgaWNlQ29ubmVjdGVkKHBjMSk7CiAgICAgYXdhaXQgaWNlQ29ubmVj
dGVkKHBjMik7CiAKQEAgLTE1NDksMTkgKzE1NDcsMjIgQEAKICAgICBhd2FpdCBwYzIuc2V0TG9j
YWxEZXNjcmlwdGlvbihhbnN3ZXIpOwogICAgIGF3YWl0IHBjMS5zZXRSZW1vdGVEZXNjcmlwdGlv
bihhbnN3ZXIpOwogCisgICAgLy8gU2luY2UgdGhpcyBvZmZlci9hbnN3ZXIgZXhjaGFuZ2Ugd2Fz
IGluaXRpYXRlZCBmcm9tIHBjMSwKKyAgICAvLyBwYzIgc3RpbGwgZG9lc24ndCBnZXQgdG8gc2F5
IHRoYXQgaXQgaGFzIGEgc3RvcHBlZCB0cmFuc2NlaXZlciwKKyAgICAvLyBidXQgZG9lcyBnZXQg
dG8gc2V0IGl0IHRvIGluYWN0aXZlLgogICAgIGhhc1Byb3BzKHBjMS5nZXRUcmFuc2NlaXZlcnMo
KSwKICAgICAgIFsKICAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6IHRydWUsCi0gICAgICAg
ICAgbWlkOiBudWxsCisgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAorICAgICAgICAg
IGN1cnJlbnREaXJlY3Rpb246ICJpbmFjdGl2ZSIsCiAgICAgICAgIH0KICAgICAgIF0pOwogCiAg
ICAgaGFzUHJvcHMocGMyLmdldFRyYW5zY2VpdmVycygpLAogICAgICAgWwogICAgICAgICB7Ci0g
ICAgICAgICAgc3RvcHBlZDogdHJ1ZSwKLSAgICAgICAgICBtaWQ6IG51bGwKKyAgICAgICAgICBk
aXJlY3Rpb246ICJzdG9wcGVkIiwKKyAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiAiaW5hY3Rp
dmUiLAogICAgICAgICB9CiAgICAgICBdKTsKICAgfTsKQEAgLTE2MDQsNyArMTYwNSw4IEBACiAg
ICAgaGFzUHJvcHNBbmRVbmlxdWVNaWRzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwKICAgICAgIFsK
ICAgICAgICAgewotICAgICAgICAgIHN0b3BwZWQ6IHRydWUsCisgICAgICAgICAgZGlyZWN0aW9u
OiAic3RvcHBlZCIsCisgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogInNlbmRyZWN2IiwKICAg
ICAgICAgfQogICAgICAgXSk7CiAKQEAgLTE2MTIsMjggKzE2MTQsMTcgQEAKICAgICBhd2FpdCBp
Y2VDb25uZWN0ZWQocGMxKTsKICAgICBhd2FpdCBpY2VDb25uZWN0ZWQocGMyKTsKIAotICAgIG9m
ZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKCk7Ci0gICAgYXdhaXQgcGMxLnNldExvY2FsRGVz
Y3JpcHRpb24ob2ZmZXIpOwotICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZl
cik7Ci0gICAgYW5zd2VyID0gYXdhaXQgcGMyLmNyZWF0ZUFuc3dlcigpOwotICAgIGF3YWl0IHBj
Mi5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcik7Ci0gICAgYXdhaXQgcGMxLnNldFJlbW90ZURl
c2NyaXB0aW9uKGFuc3dlcik7Ci0KLSAgICBoYXNQcm9wcyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCks
Ci0gICAgICBbCi0gICAgICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlLAotICAgICAgICAg
IG1pZDogbnVsbAotICAgICAgICB9Ci0gICAgICBdKTsKKyAgICAvLyBJbml0aWF0ZSBhbiBvZmZl
ci9hbnN3ZXIgZXhjaGFuZ2UgZnJvbSBwYzIgaW4gb3JkZXIKKyAgICAvLyB0byBuZWdvdGlhdGUg
dGhlIHN0b3BwZWQgdHJhbnNjZWl2ZXIuCisgICAgb2ZmZXIgPSBhd2FpdCBwYzIuY3JlYXRlT2Zm
ZXIoKTsKKyAgICBhd2FpdCBwYzIuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisgICAgYXdh
aXQgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyKTsKKyAgICBhbnN3ZXIgPSBhd2FpdCBw
YzEuY3JlYXRlQW5zd2VyKCk7CisgICAgYXdhaXQgcGMxLnNldExvY2FsRGVzY3JpcHRpb24oYW5z
d2VyKTsKKyAgICBhd2FpdCBwYzIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKIAotICAg
IGhhc1Byb3BzKHBjMi5nZXRUcmFuc2NlaXZlcnMoKSwKLSAgICAgIFsKLSAgICAgICAgewotICAg
ICAgICAgIHN0b3BwZWQ6IHRydWUsCi0gICAgICAgICAgbWlkOiBudWxsCi0gICAgICAgIH0KLSAg
ICAgIF0pOworICAgIGFzc2VydF9lcXVhbHMocGMxLmdldFRyYW5zY2VpdmVycygpLmxlbmd0aCwg
MCk7CisgICAgYXNzZXJ0X2VxdWFscyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCkubGVuZ3RoLCAwKTsK
ICAgfTsKIAogICBjb25zdCBjaGVja1N0b3BBZnRlckNsb3NlID0gYXN5bmMgdCA9PiB7CkBAIC0x
NjgwLDcgKzE2NzEsNiBAQAogICAgICAgICAgIHNlbmRlcjoge3RyYWNrfSwKICAgICAgICAgICBk
aXJlY3Rpb246ICJzZW5kcmVjdiIsCiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwK
LSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMTcw
MCw3ICsxNjkwLDYgQEAKICAgICAgICAgICBkaXJlY3Rpb246ICJzZW5kb25seSIsCiAgICAgICAg
ICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAg
ICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAgXSk7CiAKQEAgLTE3MTAsNyArMTY5
OSwxMSBAQAogICAgIHBjLmdldFRyYW5zY2VpdmVycygpWzBdLnN0b3AoKTsKICAgICBhd2FpdCBw
Yy5zZXRMb2NhbERlc2NyaXB0aW9uKHt0eXBlOiAicm9sbGJhY2sifSk7CiAKLSAgICBoYXNQcm9w
cyhwYy5nZXRUcmFuc2NlaXZlcnMoKSwgW3sgc3RvcHBlZDogdHJ1ZSB9XSk7CisgICAgaGFzUHJv
cHMocGMuZ2V0VHJhbnNjZWl2ZXJzKCksIFsKKyAgICAgIHsKKyAgICAgICAgZGlyZWN0aW9uOiAi
c3RvcHBlZCIsCisgICAgICB9CisgICAgXSk7CiAgIH07CiAKICAgY29uc3QgY2hlY2tSb2xsYmFj
a0FuZFNldFJlbW90ZU9mZmVyV2l0aERpZmZlcmVudFR5cGUgPSBhc3luYyB0ID0+IHsKQEAgLTE3
NDEsNyArMTczNCw2IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAg
ICAgIG1pZDogbnVsbCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAg
ICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogCkBAIC0xNzUzLDcgKzE3
NDUsNiBAQAogICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgICBtaWQ6
IG51bGwsCiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9w
cGVkOiBmYWxzZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMTc2NywxNCArMTc1OCwxMiBA
QAogICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgICBtaWQ6IG51bGws
CiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBm
YWxzZQogICAgICAgICB9LAogICAgICAgICB7CiAgICAgICAgICAgcmVjZWl2ZXI6IHt0cmFjazog
e2tpbmQ6ICJ2aWRlbyJ9fSwKICAgICAgICAgICBzZW5kZXI6IHt0cmFjazogbnVsbH0sCiAgICAg
ICAgICAgZGlyZWN0aW9uOiAicmVjdm9ubHkiLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246
ICJyZWN2b25seSIsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAgICAgICAgfQogICAgICAg
XSk7CiAKQEAgLTE3ODUsNyArMTc3NCw2IEBACiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IHZp
ZGVvVHJhY2t9LAogICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgICBj
dXJyZW50RGlyZWN0aW9uOiAic2VuZG9ubHkiLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAg
ICAgICAgIH0KICAgICAgIF0pOwogCkBAIC0xODIwLDcgKzE4MDgsNiBAQAogCiAgICAgaGFzUHJv
cHMocmVtb3ZlZFRyYW5zY2VpdmVyLAogICAgICAgewotICAgICAgICBzdG9wcGVkOiB0cnVlLAog
ICAgICAgICBtaWQ6IG51bGwsCiAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwKICAgICAg
IH0KQEAgLTE4MzEsNyArMTgxOCw2IEBACiAgICAgaGFzUHJvcHMocmVtb3ZlZFRyYW5zY2VpdmVy
LAogICAgICAgewogICAgICAgICByZWNlaXZlcjoge3RyYWNrOiB7cmVhZHlTdGF0ZTogImVuZGVk
In19LAotICAgICAgICBzdG9wcGVkOiB0cnVlLAogICAgICAgICBtaWQ6IG51bGwsCiAgICAgICAg
IGN1cnJlbnREaXJlY3Rpb246IG51bGwKICAgICAgIH0KQEAgLTE4NDYsNyArMTgzMiw2IEBACiAg
ICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IG51bGx9LAogICAgICAgICAgIGRpcmVjdGlvbjogInJl
Y3Zvbmx5IiwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0
b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0KICAgICAgIF0pOwogCkBAIC0xODY2LDcgKzE4NTEsNiBA
QAogICAgICAgICAgIGRpcmVjdGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgICBtaWQ6IG1pZDAs
CiAgICAgICAgICAgY3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBm
YWxzZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMTg4Niw3ICsxODcwLDYgQEAKICAgICAg
ICAgICBkaXJlY3Rpb246ICJyZWN2b25seSIsCiAgICAgICAgICAgbWlkOiBtaWQwLAogICAgICAg
ICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogZmFsc2UKICAg
ICAgICAgfQogICAgICAgXSk7CiAKQEAgLTE5MDAsNyArMTg4Myw2IEBACiAgICAgICAgICAgZGly
ZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIG1pZDogbWlkMCwKICAgICAgICAgICBjdXJy
ZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IGZhbHNlCiAgICAgICAgIH0K
ICAgICAgIF0pOwogCkBAIC0xOTE0LDcgKzE4OTYsNiBAQAogICAgICAgICAgIGRpcmVjdGlvbjog
InNlbmRyZWN2IiwKICAgICAgICAgICBtaWQ6IG51bGwsCiAgICAgICAgICAgY3VycmVudERpcmVj
dGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQogICAgICAgICB9CiAgICAgICBd
KTsKIApAQCAtMTkyMyw2ICsxOTA0LDggQEAKIAogICAgIC8vIEFmdGVyIGFsbCB0aGlzIFNSRC9y
b2xsYmFjaywgd2Ugc2hvdWxkIHN0aWxsIGdldCB0aGUgdHJhY2sgZXZlbnQKICAgICBsZXQgdHJh
Y2tFdmVudHMgPSBhd2FpdCBzZXRSZW1vdGVEZXNjcmlwdGlvblJldHVyblRyYWNrRXZlbnRzKHBj
Miwgb2ZmZXIpOworCisgICAgYXNzZXJ0X2VxdWFscyh0cmFja0V2ZW50cy5sZW5ndGgsIDEpOwog
ICAgIGhhc1Byb3BzKHRyYWNrRXZlbnRzLAogICAgICAgWwogICAgICAgICB7CkBAIC0xOTM2LDYg
KzE5MTksNyBAQAogCiAgICAgLy8gTWFrZSBzdXJlIGFsbCB0aGlzIHJvbGxiYWNrIGhhc24ndCBt
ZXNzZWQgdXAgdGhlIHNpZ25hbGluZwogICAgIHRyYWNrRXZlbnRzID0gYXdhaXQgc2V0UmVtb3Rl
RGVzY3JpcHRpb25SZXR1cm5UcmFja0V2ZW50cyhwYzEsIGFuc3dlcik7CisgICAgYXNzZXJ0X2Vx
dWFscyh0cmFja0V2ZW50cy5sZW5ndGgsIDEpOwogICAgIGhhc1Byb3BzKHRyYWNrRXZlbnRzLAog
ICAgICAgWwogICAgICAgICB7CkBAIC0xOTUxLDcgKzE5MzUsNiBAQAogICAgICAgICAgIGRpcmVj
dGlvbjogInNlbmRyZWN2IiwKICAgICAgICAgICBtaWQ6IG1pZDAsCiAgICAgICAgICAgY3VycmVu
dERpcmVjdGlvbjogInNlbmRyZWN2IiwKLSAgICAgICAgICBzdG9wcGVkOiBmYWxzZQogICAgICAg
ICB9CiAgICAgICBdKTsKIApAQCAtMTk2Niw2ICsxOTQ5LDggQEAKIAogICAgIHRyYWNrRXZlbnRz
ID0KICAgICAgIGF3YWl0IHNldFJlbW90ZURlc2NyaXB0aW9uUmV0dXJuVHJhY2tFdmVudHMocGMy
LCB7dHlwZTogInJvbGxiYWNrIn0pOworCisgICAgYXNzZXJ0X2VxdWFscyh0cmFja0V2ZW50cy5s
ZW5ndGgsIDEsICd0cmFjayBldmVudCBmcm9tIHJlbW90ZSByb2xsYmFjaycpOwogICAgIGhhc1By
b3BzKHRyYWNrRXZlbnRzLAogICAgICAgWwogICAgICAgICB7CkBAIC0xOTg3LDIxICsxOTcyLDIw
IEBACiAgICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICAgIG1pZDogbnVs
bCwKICAgICAgICAgICBjdXJyZW50RGlyZWN0aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6
IHRydWUKICAgICAgICAgfQogICAgICAgXSk7CiAKICAgICAvLyBzdG9wKCkgY2Fubm90IGJlIHJv
bGxlZCBiYWNrIQorICAgIC8vIFRyYW5zY2VpdmVyIHNob3VsZCBoYXZlIFtbc3RvcHBpbmddXT10
cnVlLCBbW3N0b3BwZWRdXT1mYWxzZQogICAgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlv
bih7dHlwZTogInJvbGxiYWNrIn0pOwogICAgIGhhc1Byb3BzKHBjMi5nZXRUcmFuc2NlaXZlcnMo
KSwKICAgICAgIFsKICAgICAgICAgewogICAgICAgICAgIHJlY2VpdmVyOiB7dHJhY2s6IHtraW5k
OiAiYXVkaW8ifX0sCiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IHtraW5kOiAiYXVkaW8ifX0s
Ci0gICAgICAgICAgZGlyZWN0aW9uOiAic2VuZHJlY3YiLAorICAgICAgICAgIGRpcmVjdGlvbjog
InN0b3BwZWQiLAogICAgICAgICAgIG1pZDogbnVsbCwKLSAgICAgICAgICBjdXJyZW50RGlyZWN0
aW9uOiBudWxsLAotICAgICAgICAgIHN0b3BwZWQ6IHRydWUKKyAgICAgICAgICBjdXJyZW50RGly
ZWN0aW9uOiAic2VuZHJlY3YiLAogICAgICAgICB9CiAgICAgICBdKTsKICAgfTsKQEAgLTIwNTks
NyArMjA0Myw2IEBACiAgICAgICAgIHsKICAgICAgICAgICBtaWQ6IG51bGwsCiAgICAgICAgICAg
Y3VycmVudERpcmVjdGlvbjogbnVsbCwKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlCiAgICAgICAg
IH0KICAgICAgIF0pOwogCkBAIC0yMDY4LDcgKzIwNTEsNiBAQAogICAgICAgICB7CiAgICAgICAg
ICAgbWlkOiBudWxsLAogICAgICAgICAgIGN1cnJlbnREaXJlY3Rpb246IG51bGwsCi0gICAgICAg
ICAgc3RvcHBlZDogdHJ1ZQogICAgICAgICB9CiAgICAgICBdKTsKIApAQCAtMjA4NCw3ICsyMDY2
LDYgQEAKICAgICBoYXNQcm9wcyhwYzEuZ2V0VHJhbnNjZWl2ZXJzKCksCiAgICAgICBbCiAgICAg
ICAgIHsKLSAgICAgICAgICBzdG9wcGVkOiB0cnVlCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAg
ICAgICAgICBzZW5kZXI6IHt0cmFjazogdHJhY2syfQpAQCAtMjEwMCw3ICsyMDgxLDYgQEAKICAg
ICBoYXNQcm9wcyhwYzIuZ2V0VHJhbnNjZWl2ZXJzKCksCiAgICAgICBbCiAgICAgICAgIHsKLSAg
ICAgICAgICBzdG9wcGVkOiB0cnVlCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICBz
ZW5kZXI6IHt0cmFja30KQEAgLTIxNzgsNyArMjE1OCw2IEBACiAgICAgICAgIH0sCiAgICAgICAg
IHsKICAgICAgICAgICBtaWQ6IG51bGwsCi0gICAgICAgICAgc3RvcHBlZDogdHJ1ZQogICAgICAg
ICB9LAogICAgICAgICB7CiAgICAgICAgICAgc2VuZGVyOiB7dHJhY2s6IG51bGx9LApAQCAtMjIw
Myw3ICsyMTgyLDYgQEAKICAgICAgIFsKICAgICAgICAge30sCiAgICAgICAgIHsKLSAgICAgICAg
ICBzdG9wcGVkOiB0cnVlCiAgICAgICAgIH0sCiAgICAgICAgIHsKICAgICAgICAgICBtaWQ6IG1p
ZDEsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LWNvbnN0cnVjdG9yLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0
LWNvbnN0cnVjdG9yLmh0bWwKaW5kZXggNThjODgzZDUzMzc3NTJmOWNmZjg3MjcyNmY2ZDk4NWE2
NDcyMjljYS4uNDg0OTY3Zjc2YjVjOWQ1MjUwN2M2ZjJmNjYyYjQxYjQ2ZmY5ODJlNCAxMDA2NDQK
LS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDU2N0cFRyYW5zcG9ydC1jb25zdHJ1Y3Rvci5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1NjdHBUcmFuc3BvcnQtY29uc3Ry
dWN0b3IuaHRtbApAQCAtODYsNyArODYsNyBAQCBmdW5jdGlvbiB2YWxpZGF0ZVNjdHBUcmFuc3Bv
cnQoc2N0cCkgewogICBhc3NlcnRfZXF1YWxzKHNjdHAuc3RhdGUsICdjb25uZWN0aW5nJywgJ1JU
Q1NjdHBUcmFuc3BvcnQgc2hvdWxkIGJlIGluIHRoZSBjb25uZWN0aW5nIHN0YXRlJyk7CiAKICAg
Ly8gTm90ZTogWWVzLCBOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFkgaXMgYWxzbyBhICdudW1iZXIn
Ci0gIGFzc2VydF90cnVlKHR5cGVvZiBzY3RwLm1heE1lc3NhZ2VTaXplID09PSAnbnVtYmVyJywK
KyAgYXNzZXJ0X2VxdWFscyh0eXBlb2Ygc2N0cC5tYXhNZXNzYWdlU2l6ZSwgJ251bWJlcicsCiAg
ICAgJ0V4cGVjdCBzY3RwLm1heE1lc3NhZ2VTaXplIHRvIGJlIGEgbnVtYmVyJyk7CiB9CiAKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2Vi
cnRjL3Byb3RvY29sL1JUQ1BlZXJDb25uZWN0aW9uLXBheWxvYWRUeXBlcy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC9SVENQZWVyQ29ubmVjdGlvbi1wYXlsb2FkVHlwZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjU2NzAxMDdkZWI2MzM4ZTBhZTE4MjJjOWRjNTVlN2YyZWE4ZjNhODIKLS0tIC9kZXYvbnVs
bAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9SVENQZWVyQ29ubmVjdGlvbi1wYXlsb2FkVHlwZXMtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMyBAQAorCitQQVNTIGNyZWF0ZU9mZmVyIHdpdGggdGhlIG1heGltdW0gc2V0IG9m
IGNvZGVjcyBkb2VzIG5vdCBnZW5lcmF0ZSBpbnZhbGlkIHBheWxvYWQgdHlwZXMKKwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvUlRDUGVlckNvbm5lY3Rpb24tcGF5bG9hZFR5cGVzLmh0bWwgYi9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9SVENQZWVy
Q29ubmVjdGlvbi1wYXlsb2FkVHlwZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lYWNiZjM4YTBmNjEyOGVm
ZGNkNTk3Zjk5NWJmODcyZjU1OWE4ODJjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvUlRDUGVlckNv
bm5lY3Rpb24tcGF5bG9hZFR5cGVzLmh0bWwKQEAgLTAsMCArMSw0NyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorPHRpdGxlPlJUQ1BlZXJDb25uZWN0aW9uIFJUUCBwYXlsb2Fk
IHR5cGVzPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48
L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPHNjcmlwdD4KKworLy8gVGVzdCB0aGF0IHdoZW4g
Y3JlYXRpbmcgYW4gb2ZmZXIgd2UgZG8gbm90IHJ1biBvdXQgb2YgdmFsaWQgcGF5bG9hZCB0eXBl
cy4KK3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3QgcGMxID0gbmV3IFJUQ1BlZXJD
b25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkpOworCisgIGNv
bnN0IG9mZmVyID0gYXdhaXQgcGMxLmNyZWF0ZU9mZmVyKHtvZmZlclRvUmVjZWl2ZUF1ZGlvOiB0
cnVlLCBvZmZlclRvUmVjZWl2ZVZpZGVvOiB0cnVlfSk7CisKKyAgLy8gRXh0cmFjdCBhbGwgcGF5
bG9hZCB0eXBlcyBmcm9tIHRoZSBtPSBsaW5lcy4KKyAgY29uc3QgcGF5bG9hZFR5cGVzID0gb2Zm
ZXIuc2RwLnNwbGl0KCdcbicpCisgICAgLm1hcChsaW5lID0+IGxpbmUudHJpbSgpKQorICAgIC5m
aWx0ZXIobGluZSA9PiBsaW5lLnN0YXJ0c1dpdGgoJ209JykpCisgICAgLm1hcChsaW5lID0+IGxp
bmUuc3BsaXQoJyAnKS5zbGljZSgzKS5qb2luKCcgJykpCisgICAgLmpvaW4oJyAnKQorICAgIC5z
cGxpdCgnICcpCisgICAgLm1hcChwYXlsb2FkVHlwZSA9PiBwYXJzZUludChwYXlsb2FkVHlwZSwg
MTApKTsKKworICAvLyBUaGUgbGlzdCBvZiBhbGxvd2VkIHBheWxvYWQgdHlwZXMgaXMgdGFrZW4g
ZnJvbSBoZXJlCisgIC8vIGh0dHBzOi8vd3d3LmlhbmEub3JnL2Fzc2lnbm1lbnRzL3J0cC1wYXJh
bWV0ZXJzL3J0cC1wYXJhbWV0ZXJzLnhodG1sI3J0cC1wYXJhbWV0ZXJzLTEuCisgIGNvbnN0IGZv
cmJpZGRlblBheWxvYWRUeXBlcyA9IHBheWxvYWRUeXBlcworICAgIC5maWx0ZXIocGF5bG9hZFR5
cGUgPT4geworICAgICAgaWYgKHBheWxvYWRUeXBlID49IDk2ICYmIHBheWxvYWRUeXBlIDw9IDEy
NykgeworICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICB9CisgICAgICBpZiAocGF5bG9hZFR5
cGUgPj0gNzIgJiYgcGF5bG9hZFR5cGUgPCA5NikgeworICAgICAgICByZXR1cm4gdHJ1ZTsKKyAg
ICAgIH0KKyAgICAgIGlmIChwYXlsb2FkVHlwZSA+PSAzNSAmJiBwYXlsb2FkVHlwZSA8IDcyKSB7
CisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgIH0KKyAgICAgIC8vIFRPRE86IENoZWNrIGFn
YWluc3Qgc3RhdGljIHBheWxvYWQgdHlwZSBsaXN0LgorICAgICAgcmV0dXJuIGZhbHNlOworICAg
IH0pOworICBhc3NlcnRfZXF1YWxzKGZvcmJpZGRlblBheWxvYWRUeXBlcy5sZW5ndGgsIDApCit9
LCAnY3JlYXRlT2ZmZXIgd2l0aCB0aGUgbWF4aW11bSBzZXQgb2YgY29kZWNzIGRvZXMgbm90IGdl
bmVyYXRlIGludmFsaWQgcGF5bG9hZCB0eXBlcycpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRl
c3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0cHMtZXhwZWN0ZWQudHh0
IGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJv
dG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLWV4cGVjdGVkLnR4dAppbmRleCA2NDBkMjVi
YmZiOWUxMmQzMjEyMzNkMzY2Y2VlOGNmNjYwY2MxNDg4Li41MWEwYzE3YTU3YzVmYTgwN2QzZWYz
OGY1N2FmZDg2NTUzNGVlZTVmIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jYW5kaWRhdGUtZXhjaGFuZ2UuaHR0
cHMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2NhbmRpZGF0ZS1leGNoYW5nZS5odHRwcy1leHBlY3Rl
ZC50eHQKQEAgLTQsNCArNCw2IEBAIEZBSUwgQWRkaW5nIG9ubHkgY2FsbGVyIC0+IGNhbGxlZSBj
YW5kaWRhdGVzIGdpdmVzIGEgY29ubmVjdGlvbiBwcm9taXNlX3Rlc3Q6IFVuCiBGQUlMIEFkZGlu
ZyBvbmx5IGNhbGxlZSAtPiBjYWxsZXIgY2FuZGlkYXRlcyBnaXZlcyBhIGNvbm5lY3Rpb24gcHJv
bWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVy
cm9yOiB1bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAncGMyLnNjdHAudHJh
bnNwb3J0JykiCiBGQUlMIEFkZGluZyBjYWxsZWUgLT4gY2FsbGVyIGNhbmRpZGF0ZXMgZnJvbSBl
bmQtb2YtY2FuZGlkYXRlcyBnaXZlcyBhIGNvbm5lY3Rpb24gcHJvbWlzZV90ZXN0OiBVbmhhbmRs
ZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB1bmRlZmluZWQgaXMg
bm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAncGMyLnNjdHAudHJhbnNwb3J0JykiCiBGQUlMIEV4
cGxpY2l0IG9mZmVyL2Fuc3dlciBleGNoYW5nZSBnaXZlcyBhIGNvbm5lY3Rpb24gcHJvbWlzZV90
ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAiVHlwZUVycm9yOiB1
bmRlZmluZWQgaXMgbm90IGFuIG9iamVjdCAoZXZhbHVhdGluZyAncGMxLnNjdHAudHJhbnNwb3J0
JykiCitQQVNTIENhbmRpZGF0ZXMgYWx3YXlzIGFycml2ZSBhZnRlciBzZXRMb2NhbERlc2NyaXB0
aW9uKG9mZmVyKSByZXNvbHZlcworUEFTUyBDYW5kaWRhdGVzIGFsd2F5cyBhcnJpdmUgYWZ0ZXIg
c2V0TG9jYWxEZXNjcmlwdGlvbihhbnN3ZXIpIHJlc29sdmVzCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2Nh
bmRpZGF0ZS1leGNoYW5nZS5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0dHBz
Lmh0bWwKaW5kZXggNTMyYmM0ZDBkMTNkNzIxNzBmOWU1MjFjYmVkYTdkMmU2NTZlMzE3Zi4uYzU0
ZjI2ZTZkODBkZDkwNTZlOGViYzExZGY5MjliNTFmNjlmODhlYiAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2Fu
ZGlkYXRlLWV4Y2hhbmdlLmh0dHBzLmh0bWwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvY2FuZGlkYXRlLWV4Y2hhbmdlLmh0
dHBzLmh0bWwKQEAgLTEwLDIzICsxMCw2IEBACiA8Ym9keT4KIDxzY3JpcHQ+CiAKLWZ1bmN0aW9u
IGljZUdhdGhlcmluZ0NvbXBsZXRlV2FpdGVyKHBjKSB7Ci0gIGNvbnN0IHdhaXRlciA9IG5ldyBQ
cm9taXNlKChyZXNvbHZlKSA9PiB7Ci0gICAgY29uc3QgZXZlbnRIYW5kbGVyID0gKCkgPT4gewot
ICAgICAgaWYgKHBjLmljZUdhdGhlcmluZ1N0YXRlID09ICdjb21wbGV0ZScpIHsKLSAgICAgICAg
cGMucmVtb3ZlRXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5nc3RhdGVjaGFuZ2UnLCBldmVudEhh
bmRsZXIsIGZhbHNlKTsKLSAgICAgICAgcmVzb2x2ZSgpOwotICAgICAgfQotICAgIH07Ci0gICAg
aWYgKHBjLmljZUdhdGhlcmluZ1N0YXRlID09ICdjb21wbGV0ZScpIHsKLSAgICAgIHJlc29sdmUo
KTsKLSAgICB9IGVsc2UgewotICAgICAgcGMuYWRkRXZlbnRMaXN0ZW5lcignaWNlZ2F0aGVyaW5n
c3RhdGVjaGFuZ2UnLCBldmVudEhhbmRsZXIsIGZhbHNlKTsKLSAgICB9Ci0gIH0pOwotICByZXR1
cm4gd2FpdGVyOwotfQotCiBjbGFzcyBTdGF0ZUxvZ2dlciB7CiAgIGNvbnN0cnVjdG9yKHNvdXJj
ZSwgZXZlbnRuYW1lLCBmaWVsZCkgewogICAgIHNvdXJjZS5hZGRFdmVudExpc3RlbmVyKGV2ZW50
bmFtZSwgZXZlbnQgPT4gewpAQCAtNzQsNyArNTcsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9
PiB7CiAgIC8vIENhbmRpZGF0ZXMgZnJvbSBQQzIgYXJlIG5vdCBkZWxpdmVyZWQgdG8gcGMxLCBz
byBwYzEgd2lsbCB1c2UKICAgLy8gcGVlci1yZWZsZXhpdmUgY2FuZGlkYXRlcy4KICAgYXdhaXQg
ZXhjaGFuZ2VPZmZlckFuc3dlcihwYzEsIHBjMik7Ci0gIGNvbnN0IHdhaXRlciA9IGljZUdhdGhl
cmluZ0NvbXBsZXRlV2FpdGVyKHBjMSk7CisgIGNvbnN0IHdhaXRlciA9IHdhaXRGb3JJY2VHYXRo
ZXJpbmdTdGF0ZShwYzEsIFsnY29tcGxldGUnXSk7CiAgIGF3YWl0IHdhaXRlcjsKICAgZm9yIChj
b25zdCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRlcykgewogICAgIGlmIChjYW5kaWRhdGUpIHsKQEAg
LTEwNSw3ICs4OCw3IEBAIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAgLy8gQ2FuZGlkYXRl
cyBmcm9tIHBjMSBhcmUgbm90IGRlbGl2ZXJlZCB0byBwYzIuICBzbyBwYzIgd2lsbCB1c2UKICAg
Ly8gcGVlci1yZWZsZXhpdmUgY2FuZGlkYXRlcy4KICAgYXdhaXQgZXhjaGFuZ2VPZmZlckFuc3dl
cihwYzEsIHBjMik7Ci0gIGNvbnN0IHdhaXRlciA9IGljZUdhdGhlcmluZ0NvbXBsZXRlV2FpdGVy
KHBjMik7CisgIGNvbnN0IHdhaXRlciA9IHdhaXRGb3JJY2VHYXRoZXJpbmdTdGF0ZShwYzIsIFsn
Y29tcGxldGUnXSk7CiAgIGF3YWl0IHdhaXRlcjsKICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2Yg
Y2FuZGlkYXRlcykgewogICAgIGlmIChjYW5kaWRhdGUpIHsKQEAgLTE3NCw3ICsxNTcsNyBAQCBw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGF3YWl0IFByb21pc2UuYWxsKFtwYzEuc2V0TG9j
YWxEZXNjcmlwdGlvbihvZmZlciksCiAgICAgICAgICAgICAgICAgICAgICBwYzIuc2V0UmVtb3Rl
RGVzY3JpcHRpb24ob2ZmZXIpXSk7CiAgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVB
bnN3ZXIoKTsKLSAgYXdhaXQgaWNlR2F0aGVyaW5nQ29tcGxldGVXYWl0ZXIocGMxKTsKKyAgYXdh
aXQgd2FpdEZvckljZUdhdGhlcmluZ1N0YXRlKHBjMSwgWydjb21wbGV0ZSddKTsKICAgYXdhaXQg
cGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKS50aGVuKCgpID0+IHsKICAgICBmb3IgKGNv
bnN0IGNhbmRpZGF0ZSBvZiBwYzFUb1BjMkNhbmRpZGF0ZXMpIHsKICAgICAgIGlmIChjYW5kaWRh
dGUpIHsKQEAgLTE4Miw3ICsxNjUsNyBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgICAg
ICB9CiAgICAgfQogICB9KTsKLSAgYXdhaXQgaWNlR2F0aGVyaW5nQ29tcGxldGVXYWl0ZXIocGMy
KTsKKyAgYXdhaXQgd2FpdEZvckljZUdhdGhlcmluZ1N0YXRlKHBjMiwgWydjb21wbGV0ZSddKTsK
ICAgcGMxLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcikudGhlbihhc3luYyAoKSA9PiB7CiAg
ICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgcGMyVG9QYzFDYW5kaWRhdGVzKSB7CiAgICAgICBp
ZiAoY2FuZGlkYXRlKSB7CkBAIC0yMDMsNiArMTg2LDMzIEBAIHByb21pc2VfdGVzdChhc3luYyB0
ID0+IHsKICAgYXNzZXJ0X2FycmF5X2VxdWFscyhwYzJJY2VTdGF0ZXMuZXZlbnRzLCBbJ25ldycs
ICdjaGVja2luZycsICdjb25uZWN0ZWQnXSk7CiB9LCAnRXhwbGljaXQgb2ZmZXIvYW5zd2VyIGV4
Y2hhbmdlIGdpdmVzIGEgY29ubmVjdGlvbicpOwogCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7
CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVw
KCgpID0+IHBjMS5jbG9zZSgpKTsKKyAgcGMxLmNyZWF0ZURhdGFDaGFubmVsKCdkYXRhY2hhbm5l
bCcpOworICBwYzEub25pY2VjYW5kaWRhdGUgPSBhc3NlcnRfdW5yZWFjaGVkOworICBjb25zdCBv
ZmZlciA9IGF3YWl0IHBjMS5jcmVhdGVPZmZlcigpOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNj
cmlwdGlvbihvZmZlcik7CisgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgIHBj
MS5vbmljZWNhbmRpZGF0ZSA9IHJlc29sdmU7CisgIH0pOworfSwgJ0NhbmRpZGF0ZXMgYWx3YXlz
IGFycml2ZSBhZnRlciBzZXRMb2NhbERlc2NyaXB0aW9uKG9mZmVyKSByZXNvbHZlcycpOworCitw
cm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNvbnN0IHBjMSA9IG5ldyBSVENQZWVyQ29ubmVj
dGlvbigpOworICBjb25zdCBwYzIgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRf
Y2xlYW51cCgoKSA9PiBwYzEuY2xvc2UoKSk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMyLmNs
b3NlKCkpOworICBwYzEuY3JlYXRlRGF0YUNoYW5uZWwoJ2RhdGFjaGFubmVsJyk7CisgIHBjMi5v
bmljZWNhbmRpZGF0ZSA9IGFzc2VydF91bnJlYWNoZWQ7CisgIGNvbnN0IG9mZmVyID0gYXdhaXQg
cGMxLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0IHBjMi5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZl
cik7CisgIGF3YWl0IHBjMi5zZXRMb2NhbERlc2NyaXB0aW9uKGF3YWl0IHBjMi5jcmVhdGVBbnN3
ZXIoKSk7CisgIGF3YWl0IG5ldyBQcm9taXNlKHJlc29sdmUgPT4geworICAgIHBjMi5vbmljZWNh
bmRpZGF0ZSA9IHJlc29sdmU7CisgIH0pOworfSwgJ0NhbmRpZGF0ZXMgYWx3YXlzIGFycml2ZSBh
ZnRlciBzZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcikgcmVzb2x2ZXMnKTsKKwogPC9zY3JpcHQ+
CiA8L2JvZHk+CiA8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9jcnlwdG8tc3VpdGUuaHR0cHMuaHRt
bCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL2NyeXB0by1zdWl0ZS5odHRwcy5odG1sCmluZGV4IGYxYjYwNTYxYTE0MGQyMjM4ZjBm
MGEyZDc5YjA3NTljNzFkNzU0ODAuLmYxM2YyMjFiODhkNzFmMDg3YzFmNzA2ZWQ1OTUxYjliNGM2
Njk3ZjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL2NyeXB0by1zdWl0ZS5odHRwcy5odG1sCisrKyBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2Ny
eXB0by1zdWl0ZS5odHRwcy5odG1sCkBAIC00NSw3ICs0NSw3IEBAIGNvbnN0IGFjY2VwdGFibGVW
YWx1ZXMgPSB7CiB9OwogCiBmdW5jdGlvbiB2ZXJpZnlTdGF0KG5hbWUsIHRyYW5zcG9ydFN0YXRz
KSB7Ci0gIGFzc2VydF90cnVlKHR5cGVvZiB0cmFuc3BvcnRTdGF0cyAhPT0gJ3VuZGVmaW5lZCcp
OworICBhc3NlcnRfbm90X2VxdWFscyh0eXBlb2YgdHJhbnNwb3J0U3RhdHMsICd1bmRlZmluZWQn
KTsKICAgYXNzZXJ0X3RydWUobmFtZSBpbiB0cmFuc3BvcnRTdGF0cywgJ1ZhbHVlIHByZXNlbnQ6
Jyk7CiAgIGFzc2VydF90cnVlKGFjY2VwdGFibGVWYWx1ZXNbbmFtZV0uaGFzKHRyYW5zcG9ydFN0
YXRzW25hbWVdKSk7CiB9CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9oYW5kb3Zlci1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2Nv
bC9oYW5kb3Zlci1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzI2Njc5MzUzZTJkNGU5Yzk0OTI3
YzRhMTY5YTI4M2ExYmExYjlhZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxLDQgQEAKKworUEFTUyBOZWdvdGlhdGlvbiBvZiBoYW5kb3ZlciBp
bml0aWF0ZWQgYXQgY2FsbGVyIHdvcmtzCitQQVNTIE5lZ290aWF0aW9uIG9mIGhhbmRvdmVyIGlu
aXRpYXRlZCBhdCBjYWxsZWUgd29ya3MKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvaGFuZG92ZXIuaHRtbCBi
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3Rv
Y29sL2hhbmRvdmVyLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzc4ZDY1ZmZjMzIwYmYwYWM2YTZhMTY2OTBk
ZDk5MmQwZjVlNTM2ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2hhbmRvdmVyLmh0bWwKQEAgLTAs
MCArMSw3NCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxl
PlJUQ1BlZXJDb25uZWN0aW9uIEhhbmRvdmVyczwvdGl0bGU+Cis8c2NyaXB0IHNyYz0iL3Jlc291
cmNlcy90ZXN0aGFybmVzcy5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iL3Jlc291cmNlcy90
ZXN0aGFybmVzc3JlcG9ydC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vUlRDUGVlckNv
bm5lY3Rpb24taGVscGVyLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQ+CisndXNlIHN0cmljdCc7CisK
K3Byb21pc2VfdGVzdChhc3luYyB0ID0+IHsKKyAgY29uc3Qgb2ZmZXJQYyA9IG5ldyBSVENQZWVy
Q29ubmVjdGlvbigpOworICBjb25zdCBhbnN3ZXJQY0ZpcnN0ID0gbmV3IFJUQ1BlZXJDb25uZWN0
aW9uKCk7CisgIGNvbnN0IGFuc3dlclBjU2Vjb25kID0gbmV3IFJUQ1BlZXJDb25uZWN0aW9uKCk7
CisgIHQuYWRkX2NsZWFudXAoKCkgPT4geworICAgIG9mZmVyUGMuY2xvc2UoKTsKKyAgICBhbnN3
ZXJQY0ZpcnN0LmNsb3NlKCk7CisgICAgYW5zd2VyUGNTZWNvbmQuY2xvc2UoKTsKKyAgfSk7Cisg
IG9mZmVyUGMuYWRkVHJhbnNjZWl2ZXIoJ2F1ZGlvJyk7CisgIC8vIE5lZ290aWF0ZSBjb25uZWN0
aW9uIHdpdGggUEMgMQorICBjb25zdCBvZmZlcjEgPSBhd2FpdCBvZmZlclBjLmNyZWF0ZU9mZmVy
KCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcjEpOworICBhd2Fp
dCBhbnN3ZXJQY0ZpcnN0LnNldFJlbW90ZURlc2NyaXB0aW9uKG9mZmVyMSk7CisgIGNvbnN0IGFu
c3dlcjEgPSBhd2FpdCBhbnN3ZXJQY0ZpcnN0LmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBvZmZl
clBjLnNldFJlbW90ZURlc2NyaXB0aW9uKGFuc3dlcjEpOworICBhd2FpdCBhbnN3ZXJQY0ZpcnN0
LnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyMSk7CisgIC8vIFJlbmVnb3RpYXRlIHdpdGggUEMg
MgorICBjb25zdCBvZmZlcjIgPSBhd2FpdCBvZmZlclBjLmNyZWF0ZU9mZmVyKCk7CisgIGF3YWl0
IG9mZmVyUGMuc2V0TG9jYWxEZXNjcmlwdGlvbihvZmZlcjIpOworICBhd2FpdCBhbnN3ZXJQY1Nl
Y29uZC5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcjIpOworICBjb25zdCBhbnN3ZXIyID0gYXdh
aXQgYW5zd2VyUGNTZWNvbmQuY3JlYXRlQW5zd2VyKCk7CisgIGF3YWl0IG9mZmVyUGMuc2V0UmVt
b3RlRGVzY3JpcHRpb24oYW5zd2VyMik7CisgIGF3YWl0IGFuc3dlclBjU2Vjb25kLnNldExvY2Fs
RGVzY3JpcHRpb24oYW5zd2VyMik7Cit9LCAnTmVnb3RpYXRpb24gb2YgaGFuZG92ZXIgaW5pdGlh
dGVkIGF0IGNhbGxlciB3b3JrcycpOworCitwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CisgIGNv
bnN0IG9mZmVyUGMgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgYW5zd2VyUGNG
aXJzdCA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICBjb25zdCBhbnN3ZXJQY1NlY29uZCA9
IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVhbnVwKCgpID0+IHsKKyAgICBv
ZmZlclBjLmNsb3NlKCk7CisgICAgYW5zd2VyUGNGaXJzdC5jbG9zZSgpOworICAgIGFuc3dlclBj
U2Vjb25kLmNsb3NlKCk7CisgIH0pOworICBvZmZlclBjLmFkZFRyYW5zY2VpdmVyKCdhdWRpbycp
OworICAvLyBOZWdvdGlhdGUgY29ubmVjdGlvbiB3aXRoIFBDIDEKKyAgY29uc3Qgb2ZmZXIxID0g
YXdhaXQgb2ZmZXJQYy5jcmVhdGVPZmZlcigpOworICBhd2FpdCBvZmZlclBjLnNldExvY2FsRGVz
Y3JpcHRpb24ob2ZmZXIxKTsKKyAgYXdhaXQgYW5zd2VyUGNGaXJzdC5zZXRSZW1vdGVEZXNjcmlw
dGlvbihvZmZlcjEpOworICBjb25zdCBhbnN3ZXIxID0gYXdhaXQgYW5zd2VyUGNGaXJzdC5jcmVh
dGVBbnN3ZXIoKTsKKyAgYXdhaXQgb2ZmZXJQYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihhbnN3ZXIx
KTsKKyAgYXdhaXQgYW5zd2VyUGNGaXJzdC5zZXRMb2NhbERlc2NyaXB0aW9uKGFuc3dlcjEpOwor
ICAvLyBSZW5lZ290aWF0ZSB3aXRoIFBDIDIKKyAgLy8gVGhlIG9mZmVyIGZyb20gUEMgMiBuZWVk
cyB0byBiZSBjb25zaXN0ZW50IG9uIGF0IGxlYXN0IHRoZSBmb2xsb3dpbmc6CisgIC8vIC0gTnVt
YmVyLCB0eXBlIGFuZCBvcmRlciBvZiBtZWRpYSBzZWN0aW9ucworICAvLyAtIE1JRCB2YWx1ZXMK
KyAgLy8gLSBQYXlsb2FkIHR5cGUgdmFsdWVzCisgIC8vIERvIGEgImZha2UiIG9mZmVyL2Fuc3dl
ciB1c2luZyB0aGUgb3JpZ2luYWwgb2ZmZXIgYWdhaW5zdCBQQzIgdG8gYWNoaWV2ZSB0aGlzLgor
ICBhd2FpdCBhbnN3ZXJQY1NlY29uZC5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcjEpOworICAv
LyBEaXNjYXJkIHRoZSBvdXRwdXQgb2YgdGhpcyByb3VuZC4KKyAgYXdhaXQgYW5zd2VyUGNTZWNv
bmQuc2V0TG9jYWxEZXNjcmlwdGlvbihhd2FpdCBhbnN3ZXJQY1NlY29uZC5jcmVhdGVBbnN3ZXIo
KSk7CisKKyAgLy8gTm93IHdlIGNhbiBpbml0aWF0ZSBhbiBvZmZlciBmcm9tIHRoZSBuZXcgUEMu
CisgIGNvbnN0IG9mZmVyMiA9IGF3YWl0IGFuc3dlclBjU2Vjb25kLmNyZWF0ZU9mZmVyKCk7Cisg
IGF3YWl0IGFuc3dlclBjU2Vjb25kLnNldExvY2FsRGVzY3JpcHRpb24ob2ZmZXIyKTsKKyAgYXdh
aXQgb2ZmZXJQYy5zZXRSZW1vdGVEZXNjcmlwdGlvbihvZmZlcjIpOworICBjb25zdCBhbnN3ZXIy
ID0gYXdhaXQgb2ZmZXJQYy5jcmVhdGVBbnN3ZXIoKTsKKyAgYXdhaXQgYW5zd2VyUGNTZWNvbmQu
c2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyMik7CisgIGF3YWl0IG9mZmVyUGMuc2V0TG9jYWxE
ZXNjcmlwdGlvbihhbnN3ZXIyKTsKK30sICdOZWdvdGlhdGlvbiBvZiBoYW5kb3ZlciBpbml0aWF0
ZWQgYXQgY2FsbGVlIHdvcmtzJyk7CisKKworCis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3J0
cC1kZW11eGluZy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZGVtdXhpbmctZXhwZWN0ZWQudHh0Cm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjYxMjAxODRkZTc2ODg0M2UxNjY1MDQ3ODg4MmM5YmJhYjljOWY3ZTIKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy9wcm90b2NvbC9ydHAtZGVtdXhpbmctZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsNCBA
QAorCitQQVNTIENhbiBkZW11eCB0d28gdmlkZW8gdHJhY2tzIHdpdGggZGlmZmVyZW50IHBheWxv
YWQgdHlwZXMgb24gYSBidW5kbGVkIGNvbm5lY3Rpb24KK1BBU1MgQ2FuIGRlbXV4IHR3byB2aWRl
byB0cmFja3Mgd2l0aCB0aGUgc2FtZSBwYXlsb2FkIHR5cGUgb24gYW4gdW5idW5kbGVkIGNvbm5l
Y3Rpb24KKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWRlbXV4aW5nLmh0bWwgYi9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtZGVtdXhp
bmcuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi4xYjhkY2UzYjQ1ZGFiMGQzNjllNDk0OThlMTliMmZiMDM2NjM1
NzE3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWRlbXV4aW5nLmh0bWwKQEAgLTAsMCArMSwx
MDggQEAKKzwhZG9jdHlwZSBodG1sPgorPG1ldGEgY2hhcnNldD11dGYtOD4KKzx0aXRsZT5SVENQ
ZWVyQ29ubmVjdGlvbiBwYXlsb2FkIHR5cGUgZGVtdXhpbmc8L3RpdGxlPgorPHNjcmlwdCBzcmM9
Ii9yZXNvdXJjZXMvdGVzdGhhcm5lc3MuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii9yZXNv
dXJjZXMvdGVzdGhhcm5lc3NyZXBvcnQuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9Ii4uL1JU
Q1BlZXJDb25uZWN0aW9uLWhlbHBlci5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0PgorJ3VzZSBzdHJp
Y3QnOworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBjb25zdCBjYWxsZXIgPSBuZXcgUlRD
UGVlckNvbm5lY3Rpb24oKTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIuY2xvc2UoKSk7
CisgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0LmFkZF9jbGVh
bnVwKCgpID0+IGNhbGxlZS5jbG9zZSgpKTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRhdGVzKGNhbGxl
ciwgY2FsbGVlKTsKKworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7dmlk
ZW86IHRydWV9KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJhY2tzKCkuZm9y
RWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgc3RyZWFtLmdldFRyYWNrcygpLmZvckVh
Y2godHJhY2sgPT4gY2FsbGVyLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pKTsKKyAgc3RyZWFtLmdl
dFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gY2FsbGVyLmFkZFRyYWNrKHRyYWNrLmNsb25lKCks
IHN0cmVhbS5jbG9uZSgpKSk7CisKKyAgbGV0IGNhbGxDb3VudCA9IDA7CisgIGxldCBtZXRhZGF0
YVRvQmVMb2FkZWQgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICBjYWxsZWUub250cmFj
ayA9IChlKSA9PiB7CisgICAgICBjb25zdCBzdHJlYW0gPSBlLnN0cmVhbXNbMF07CisgICAgICBj
b25zdCB2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAgIHYuYXV0b3Bs
YXkgPSB0cnVlOworICAgICAgdi5zcmNPYmplY3QgPSBzdHJlYW07CisgICAgICB2LmlkID0gc3Ry
ZWFtLmlkCisgICAgICB2LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlZG1ldGFkYXRhJywgKCkgPT4g
eworICAgICAgICBpZiAoKytjYWxsQ291bnQgPT09IDIpIHsKKyAgICAgICAgICByZXNvbHZlKCk7
CisgICAgICAgIH0KKyAgICAgIH0pOworICAgIH07CisgIH0pOworCisgIC8vIFJlc3RyaWN0IGZp
cnN0IHRyYW5zY2VpdmVyIHRvIFZQOCwgc2Vjb25kIHRvIEgyNjQuCisgIGNvbnN0IHtjb2RlY3N9
ID0gUlRDUnRwU2VuZGVyLmdldENhcGFiaWxpdGllcygndmlkZW8nKTsKKyAgY29uc3QgdnA4ID0g
Y29kZWNzLmZpbmQoYyA9PiBjLm1pbWVUeXBlID09PSAndmlkZW8vVlA4Jyk7CisgIGNvbnN0IGgy
NjQgPSBjb2RlY3MuZmluZChjID0+IGMubWltZVR5cGUgPT09ICd2aWRlby9IMjY0Jyk7CisgIGNh
bGxlci5nZXRUcmFuc2NlaXZlcnMoKVswXS5zZXRDb2RlY1ByZWZlcmVuY2VzKFt2cDhdKTsKKyAg
Y2FsbGVyLmdldFRyYW5zY2VpdmVycygpWzFdLnNldENvZGVjUHJlZmVyZW5jZXMoW2gyNjRdKTsK
KworICBjb25zdCBvZmZlciA9IGF3YWl0IGNhbGxlci5jcmVhdGVPZmZlcigpOworICAvLyBSZXBs
YWNlIHRoZSBtaWQgaGVhZGVyIGV4dGVuc2lvbiBhbmQgYWxsIHNzcmMgbGluZXMKKyAgLy8gd2l0
aCBib2d1cy4gVGhlIHJlY2VpdmVyIHdpbGwgYmUgZm9yY2VkIHRvIGRvIHBheWxvYWQgdHlwZSBk
ZW11eGluZy4KKyAgY29uc3Qgc2RwID0gb2ZmZXIuc2RwCisgICAgLnJlcGxhY2UoL3J0cC1oZHJl
eHQ6c2Rlcy9nLCAncnRwLWhkcmV4dDpzb21ldGhpbmcnKQorICAgIC5yZXBsYWNlKC9hPXNzcmM6
L2csICdhPW5vdHNzcmMnKTsKKworICBhd2FpdCBjYWxsZWUuc2V0UmVtb3RlRGVzY3JpcHRpb24o
e3R5cGU6ICdvZmZlcicsIHNkcH0pOworICBhd2FpdCBjYWxsZXIuc2V0TG9jYWxEZXNjcmlwdGlv
bihvZmZlcik7CisKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgY2FsbGVlLmNyZWF0ZUFuc3dlcigp
OworICBhd2FpdCBjYWxsZXIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgYXdhaXQg
Y2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICBhd2FpdCBtZXRhZGF0YVRv
QmVMb2FkZWQ7Cit9LCAnQ2FuIGRlbXV4IHR3byB2aWRlbyB0cmFja3Mgd2l0aCBkaWZmZXJlbnQg
cGF5bG9hZCB0eXBlcyBvbiBhIGJ1bmRsZWQgY29ubmVjdGlvbicpOworCitwcm9taXNlX3Rlc3Qo
YXN5bmMgdCA9PiB7CisgIGNvbnN0IGNhbGxlciA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbih7YnVu
ZGxlUG9saWN5OiAnbWF4LWNvbXBhdCd9KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBjYWxsZXIu
Y2xvc2UoKSk7CisgIGNvbnN0IGNhbGxlZSA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICB0
LmFkZF9jbGVhbnVwKCgpID0+IGNhbGxlZS5jbG9zZSgpKTsKKyAgZXhjaGFuZ2VJY2VDYW5kaWRh
dGVzKGNhbGxlciwgY2FsbGVlKTsKKworICBjb25zdCBzdHJlYW0gPSBhd2FpdCBnZXROb2lzZVN0
cmVhbSh7dmlkZW86IHRydWV9KTsKKyAgdC5hZGRfY2xlYW51cCgoKSA9PiBzdHJlYW0uZ2V0VHJh
Y2tzKCkuZm9yRWFjaCh0cmFjayA9PiB0cmFjay5zdG9wKCkpKTsKKyAgc3RyZWFtLmdldFRyYWNr
cygpLmZvckVhY2godHJhY2sgPT4gY2FsbGVyLmFkZFRyYWNrKHRyYWNrLCBzdHJlYW0pKTsKKyAg
c3RyZWFtLmdldFRyYWNrcygpLmZvckVhY2godHJhY2sgPT4gY2FsbGVyLmFkZFRyYWNrKHRyYWNr
LmNsb25lKCksIHN0cmVhbS5jbG9uZSgpKSk7CisKKyAgbGV0IGNhbGxDb3VudCA9IDA7CisgIGxl
dCBtZXRhZGF0YVRvQmVMb2FkZWQgPSBuZXcgUHJvbWlzZShyZXNvbHZlID0+IHsKKyAgICBjYWxs
ZWUub250cmFjayA9IChlKSA9PiB7CisgICAgICBjb25zdCBzdHJlYW0gPSBlLnN0cmVhbXNbMF07
CisgICAgICBjb25zdCB2ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKTsKKyAgICAg
IHYuYXV0b3BsYXkgPSB0cnVlOworICAgICAgdi5zcmNPYmplY3QgPSBzdHJlYW07CisgICAgICB2
LmlkID0gc3RyZWFtLmlkCisgICAgICB2LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWRlZG1ldGFkYXRh
JywgKCkgPT4geworICAgICAgICBpZiAoKytjYWxsQ291bnQgPT09IDIpIHsKKyAgICAgICAgICBy
ZXNvbHZlKCk7CisgICAgICAgIH0KKyAgICAgIH0pOworICAgIH07CisgIH0pOworCisgIGNvbnN0
IG9mZmVyID0gYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CisgIC8vIFJlcGxhY2UgQlVORExF
LCB0aGUgbWlkIGhlYWRlciBleHRlbnNpb24gYW5kIGFsbCBzc3JjIGxpbmVzCisgIC8vIHdpdGgg
Ym9ndXMuIFRoZSByZWNlaXZlciB3aWxsIGJlIGZvcmNlZCB0byBkbyBwYXlsb2FkIHR5cGUgZGVt
dXhpbmcKKyAgLy8gd2hpY2ggaXMgc3RpbGwgcG9zc2libGUgYmVjYXVzZSB0aGUgZGlmZmVyZW50
IG0tbGluZXMgYXJyaXZlIG9uCisgIC8vIGRpZmZlcmVudCBwb3J0cy9zb2NrZXRzLgorICBjb25z
dCBzZHAgPSBvZmZlci5zZHAucmVwbGFjZSgnQlVORExFJywgJ1NPTUVUSElORycpCisgICAgLnJl
cGxhY2UoL3J0cC1oZHJleHQ6c2Rlcy9nLCAncnRwLWhkcmV4dDpzb21ldGhpbmcnKQorICAgIC5y
ZXBsYWNlKC9hPXNzcmM6L2csICdhPW5vdHNzcmMnKTsKKworICBhd2FpdCBjYWxsZWUuc2V0UmVt
b3RlRGVzY3JpcHRpb24oe3R5cGU6ICdvZmZlcicsIHNkcH0pOworICBhd2FpdCBjYWxsZXIuc2V0
TG9jYWxEZXNjcmlwdGlvbihvZmZlcik7CisKKyAgY29uc3QgYW5zd2VyID0gYXdhaXQgY2FsbGVl
LmNyZWF0ZUFuc3dlcigpOworICBhd2FpdCBjYWxsZXIuc2V0UmVtb3RlRGVzY3JpcHRpb24oYW5z
d2VyKTsKKyAgYXdhaXQgY2FsbGVlLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKworICBh
d2FpdCBtZXRhZGF0YVRvQmVMb2FkZWQ7Cit9LCAnQ2FuIGRlbXV4IHR3byB2aWRlbyB0cmFja3Mg
d2l0aCB0aGUgc2FtZSBwYXlsb2FkIHR5cGUgb24gYW4gdW5idW5kbGVkIGNvbm5lY3Rpb24nKTsK
KworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLWV4cGVjdGVkLnR4
dCBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3By
b3RvY29sL3J0cC1wYXlsb2FkdHlwZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjQ1NGQ3ZGY1
NzcwOGQyMWYzZWUzY2EwODRiNmNiODBiYTBhMDdhOTQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9y
dHAtcGF5bG9hZHR5cGVzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDUgQEAKKworUEFTUyBzZXRS
ZW1vdGVEZXNjcmlwdGlvbiB3aXRoIGEgY29kZWMgaW4gdGhlIHJhbmdlIDk2LTEyNyB3b3Jrcwor
RkFJTCBzZXRSZW1vdGVEZXNjcmlwdGlvbiB3aXRoIGEgY29kZWMgaW4gdGhlIHJhbmdlIDM1LTYz
IHdvcmtzIGFzc2VydF90cnVlOiBleHBlY3RlZCB0cnVlIGdvdCBmYWxzZQorRkFJTCBzZXRSZW1v
dGVEZXNjcmlwdGlvbiB3aXRoIGEgY29kZWMgaW4gdGhlIHJhbmdlIDY0LTk1IHRocm93cyBhbiBJ
bnZhbGlkQWNjZXNzRXJyb3IgYXNzZXJ0X3VucmVhY2hlZDogU2hvdWxkIGhhdmUgcmVqZWN0ZWQ6
IHVuZGVmaW5lZCBSZWFjaGVkIHVucmVhY2hhYmxlIGNvZGUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRw
LXBheWxvYWR0eXBlcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLXBheWxvYWR0eXBlcy5odG1sCm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjY4MDZlNzVlZDUxNGMwNDk2OGQwM2I2ZDg0MTNkYWEzOGI4M2QwNTMKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9w
cm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLmh0bWwKQEAgLTAsMCArMSw1OCBAQAorPCFkb2N0eXBl
IGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRpdGxlPnBheWxvYWQgdHlwZSBoYW5kbGlu
ZyAoYXNzdW1pbmcgcnRjcC1tdXgpPC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rl
c3RoYXJuZXNzLmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJu
ZXNzcmVwb3J0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlv
bi1oZWxwZXIuanMiPjwvc2NyaXB0PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKy8vIFRlc3Rz
IGJlaGF2aW91ciBmcm9tIGh0dHBzOi8vdG9vbHMuaWV0Zi5vcmcvaHRtbC9yZmM1NzYxI3NlY3Rp
b24tNAorCitmdW5jdGlvbiBjcmVhdGVPZmZlclNkcChvcHVzUGF5bG9hZFR5cGUpIHsKKyAgcmV0
dXJuIGB2PTAKK289LSAwIDMgSU4gSVA0IDEyNy4wLjAuMQorcz0tCit0PTAgMAorYT1maW5nZXJw
cmludDpzaGEtMjU2IEE3OjI0OjcyOkNBOjZFOjAyOjU1OjM5OkJBOjY2OkRGOjZFOkNDOjRDOkQ4
OkIwOjFBOkJGOjFBOjU2OjY1OjdEOkY0OjAzOkFEOjdFOjc3OjQzOjJBOjI5OkVDOjkzCithPWlj
ZS11ZnJhZzo2SEhIZHp6ZUloa0UwQ0tqCithPWljZS1wd2Q6WFlER1ZwZnZrbFFJRW5aNllueUxz
QWV3CittPWF1ZGlvIDkgUlRQL1NBVlBGICR7b3B1c1BheWxvYWRUeXBlfQorYz1JTiBJUDQgMC4w
LjAuMAorYT1ydGNwLW11eAorYT1zZW5kb25seQorYT1taWQ6YXVkaW8KK2E9cnRwbWFwOiR7b3B1
c1BheWxvYWRUeXBlfSBvcHVzLzQ4MDAwLzIKK2E9c2V0dXA6YWN0cGFzcworYDsKK30KKworcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBmb3IgKGxldCBwYXlsb2FkVHlwZSA9IDk2OyBwYXls
b2FkVHlwZSA8PSAxMjc7IHBheWxvYWRUeXBlKyspIHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQ
ZWVyQ29ubmVjdGlvbigpOworICAgIGF3YWl0IHBjLnNldFJlbW90ZURlc2NyaXB0aW9uKHt0eXBl
OiAnb2ZmZXInLCBzZHA6IGNyZWF0ZU9mZmVyU2RwKHBheWxvYWRUeXBlKX0pOworICAgIGNvbnN0
IGFuc3dlciA9IGF3YWl0IHBjLmNyZWF0ZUFuc3dlcigpOworICAgIGFzc2VydF90cnVlKGFuc3dl
ci5zZHAuaW5jbHVkZXMoYGE9cnRwbWFwOiR7cGF5bG9hZFR5cGV9IG9wdXMvNDgwMDAvMmApKTsK
KyAgICBwYy5jbG9zZSgpOworICB9Cit9LCAnc2V0UmVtb3RlRGVzY3JpcHRpb24gd2l0aCBhIGNv
ZGVjIGluIHRoZSByYW5nZSA5Ni0xMjcgd29ya3MnKTsKKworLy8gVGhpcyBpcyB3cml0dGVuIGFz
IGEgc2VwYXJhdGUgdGVzdCBzaW5jZSBpdCBjdXJyZW50bHkgZmFpbHMgaW4gQ2hyb21lLgorcHJv
bWlzZV90ZXN0KGFzeW5jIHQgPT4geworICBmb3IgKGxldCBwYXlsb2FkVHlwZSA9IDM1OyBwYXls
b2FkVHlwZSA8PSA2MzsgcGF5bG9hZFR5cGUrKykgeworICAgIGNvbnN0IHBjID0gbmV3IFJUQ1Bl
ZXJDb25uZWN0aW9uKCk7CisgICAgYXdhaXQgcGMuc2V0UmVtb3RlRGVzY3JpcHRpb24oe3R5cGU6
ICdvZmZlcicsIHNkcDogY3JlYXRlT2ZmZXJTZHAocGF5bG9hZFR5cGUpfSk7CisgICAgY29uc3Qg
YW5zd2VyID0gYXdhaXQgcGMuY3JlYXRlQW5zd2VyKCk7CisgICAgYXNzZXJ0X3RydWUoYW5zd2Vy
LnNkcC5pbmNsdWRlcyhgYT1ydHBtYXA6JHtwYXlsb2FkVHlwZX0gb3B1cy80ODAwMC8yYCkpOwor
ICAgIHBjLmNsb3NlKCk7CisgIH0KK30sICdzZXRSZW1vdGVEZXNjcmlwdGlvbiB3aXRoIGEgY29k
ZWMgaW4gdGhlIHJhbmdlIDM1LTYzIHdvcmtzJyk7CisKK3Byb21pc2VfdGVzdChhc3luYyB0ID0+
IHsKKyAgZm9yIChsZXQgcGF5bG9hZFR5cGUgPSA2NDsgcGF5bG9hZFR5cGUgPD0gOTU7IHBheWxv
YWRUeXBlKyspIHsKKyAgICBjb25zdCBwYyA9IG5ldyBSVENQZWVyQ29ubmVjdGlvbigpOworICAg
IGF3YWl0IHByb21pc2VfcmVqZWN0c19kb20odCwgJ0ludmFsaWRBY2Nlc3NFcnJvcicsCisgICAg
ICBwYy5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTogJ29mZmVyJywgc2RwOiBjcmVhdGVPZmZl
clNkcCg2NCl9KSk7CisgICAgcGMuY2xvc2UoKTsKKyAgfQorfSwgJ3NldFJlbW90ZURlc2NyaXB0
aW9uIHdpdGggYSBjb2RlYyBpbiB0aGUgcmFuZ2UgNjQtOTUgdGhyb3dzIGFuIEludmFsaWRBY2Nl
c3NFcnJvcicpOworPC9zY3JpcHQ+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1sIGIv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvc3BsaXQuaHR0cHMuaHRtbAppbmRleCAxMDI3NzFlMjNhNTM2ODQ4ZjAwMjQ5MTY2ZWNlMTAy
MTc3NjZhMzgwLi41ZWI4MzI5NTE3ZmJlZmU5NDY4MmZlNzkxYWU4MTc2OWQwM2RhMTk3IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9zcGxpdC5odHRwcy5odG1sCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3cz
Yy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3NwbGl0Lmh0dHBzLmh0bWwKQEAg
LTUzLDcgKzUzLDcgQEAgcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewogCiAgIGNvbnN0IG9mZmVy
ID0gYXdhaXQgY2FsbGVyLmNyZWF0ZU9mZmVyKCk7CiAgIGNvbnN0IHNlY3Rpb25zID0gU0RQVXRp
bHMuc3BsaXRTZWN0aW9ucyhvZmZlci5zZHApOwotICAvLyByZW1vdmUgdGhlIGE9Z3JvdXA6QlVO
RExFIGZyb20gdGhlIFNEUCB3aGVuIHNpZ25hbGluZy4KKyAgLy8gUmVtb3ZlIHRoZSBhPWdyb3Vw
OkJVTkRMRSBmcm9tIHRoZSBTRFAgd2hlbiBzaWduYWxpbmcuCiAgIGNvbnN0IGJ1bmRsZSA9IFNE
UFV0aWxzLm1hdGNoUHJlZml4KHNlY3Rpb25zWzBdLCAnYT1ncm91cDpCVU5ETEUnKVswXTsKICAg
c2VjdGlvbnNbMF0gPSBzZWN0aW9uc1swXS5yZXBsYWNlKGJ1bmRsZSArICdcclxuJywgJycpOwog
CkBAIC02OCw2ICs2OCwxOCBAQCBwcm9taXNlX3Rlc3QoYXN5bmMgdCA9PiB7CiAgIGNvbnN0IGFu
c3dlclZpZGVvID0gYXdhaXQgY2FsbGVlVmlkZW8uY3JlYXRlQW5zd2VyKCk7CiAgIGNvbnN0IGF1
ZGlvU2VjdGlvbnMgPSBTRFBVdGlscy5zcGxpdFNlY3Rpb25zKGFuc3dlckF1ZGlvLnNkcCk7CiAg
IGNvbnN0IHZpZGVvU2VjdGlvbnMgPSBTRFBVdGlscy5zcGxpdFNlY3Rpb25zKGFuc3dlclZpZGVv
LnNkcCk7CisKKyAgLy8gUmVtb3ZlIHRoZSBmaW5nZXJwcmludCBmcm9tIHRoZSBzZXNzaW9uIHBh
cnQgb2YgdGhlIFNEUCBpZiBwcmVzZW50CisgIC8vIGFuZCBtb3ZlIGl0IHRvIHRoZSBtZWRpYSBz
ZWN0aW9uLgorICBTRFBVdGlscy5tYXRjaFByZWZpeChhdWRpb1NlY3Rpb25zWzBdLCAnYT1maW5n
ZXJwcmludDonKS5mb3JFYWNoKGxpbmUgPT4geworICAgIGF1ZGlvU2VjdGlvbnNbMF0gPSBhdWRp
b1NlY3Rpb25zWzBdLnJlcGxhY2UobGluZSArICdcclxuJywgJycpOworICAgIGF1ZGlvU2VjdGlv
bnNbMV0gKz0gbGluZSArICdcclxuJzsKKyAgfSk7CisgIFNEUFV0aWxzLm1hdGNoUHJlZml4KHZp
ZGVvU2VjdGlvbnNbMF0sICdhPWZpbmdlcnByaW50OicpLmZvckVhY2gobGluZSA9PiB7CisgICAg
dmlkZW9TZWN0aW9uc1swXSA9IHZpZGVvU2VjdGlvbnNbMF0ucmVwbGFjZShsaW5lICsgJ1xyXG4n
LCAnJyk7CisgICAgdmlkZW9TZWN0aW9uc1sxXSArPSBsaW5lICsgJ1xyXG4nOworICB9KTsKKwog
ICBjb25zdCBzZHAgPSBhdWRpb1NlY3Rpb25zWzBdICsgYXVkaW9TZWN0aW9uc1sxXSArIHZpZGVv
U2VjdGlvbnNbMV07CiAgIGF3YWl0IGNhbGxlci5zZXRSZW1vdGVEZXNjcmlwdGlvbih7dHlwZTog
J2Fuc3dlcicsIHNkcH0pOwogICBhd2FpdCBjYWxsZWVBdWRpby5zZXRMb2NhbERlc2NyaXB0aW9u
KGFuc3dlckF1ZGlvKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWIt
cGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3Vua25vd24tbWVkaWF0eXBlcy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC91bmtub3duLW1lZGlhdHlwZXMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEz
OWFmZTBjYWRjYmE5ZDNhNmNmOWE1ZTc3ZmNmZjMxNWM1NjBiYzEKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC91bmtub3duLW1lZGlhdHlwZXMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMyBAQAorCitG
QUlMIFVua25vd24gbWVkaWEgdHlwZXMgYXJlIHJlamVjdGVkIHdpdGggdGhlIHBvcnQgc2V0IHRv
IDAgcHJvbWlzZV90ZXN0OiBVbmhhbmRsZWQgcmVqZWN0aW9uIHdpdGggdmFsdWU6IG9iamVjdCAi
SW52YWxpZEFjY2Vzc0Vycm9yOiBGYWlsZWQgdG8gc2V0IHJlbW90ZSBvZmZlciBzZHA6IFRoZSBC
VU5ETEUgZ3JvdXAgY29udGFpbnMgTUlEPScwJyBtYXRjaGluZyBubyBtPSBzZWN0aW9uLiIKKwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvdW5rbm93bi1tZWRpYXR5cGVzLmh0bWwgYi9MYXlvdXRUZXN0cy9pbXBv
cnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC91bmtub3duLW1lZGlh
dHlwZXMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNTE3NmQxYzg3YjZhMmExNDI4MWM2MDNmNGE0OTFlZmQ4
NmM4MjZkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdW5rbm93bi1tZWRpYXR5cGVzLmh0bWwKQEAg
LTAsMCArMSwzNCBAQAorPCFkb2N0eXBlIGh0bWw+Cis8bWV0YSBjaGFyc2V0PXV0Zi04PgorPHRp
dGxlPlJUQ1BlZXJjb25uZWN0aW9uIFNEUCBoYW5kbGluZyBvZiB1bmtub3duIG1lZGlhIHR5cGVz
PC90aXRsZT4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KKzxzY3JpcHQgc3JjPSIuLi9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXIuanMiPjwvc2NyaXB0
PgorPHNjcmlwdD4KKyd1c2Ugc3RyaWN0JzsKKworcHJvbWlzZV90ZXN0KGFzeW5jIHQgPT4gewor
ICBjb25zdCBwYzEgPSBuZXcgUlRDUGVlckNvbm5lY3Rpb24oKTsKKyAgY29uc3QgcGMyID0gbmV3
IFJUQ1BlZXJDb25uZWN0aW9uKCk7CisgIHQuYWRkX2NsZWFudXAoKCkgPT4gcGMxLmNsb3NlKCkp
OworICB0LmFkZF9jbGVhbnVwKCgpID0+IHBjMi5jbG9zZSgpKTsKKworICBjb25zdCBzdHJlYW0g
PSBhd2FpdCBnZXROb2lzZVN0cmVhbSh7YXVkaW86IHRydWV9KTsKKyAgcGMxLmFkZFRyYWNrKHN0
cmVhbS5nZXRUcmFja3MoKVswXSwgc3RyZWFtKTsKKyAgY29uc3Qgb2ZmZXIgPSBhd2FpdCBwYzEu
Y3JlYXRlT2ZmZXIoKTsKKyAgYXdhaXQgcGMyLnNldFJlbW90ZURlc2NyaXB0aW9uKHsKKyAgICB0
eXBlOiAnb2ZmZXInLAorICAgIHNkcDogb2ZmZXIuc2RwCisgICAgICAgIC5yZXBsYWNlKCdtPWF1
ZGlvICcsICdtPXVuaWNvcm5zICcpCisgIH0pOworICBhd2FpdCBwYzEuc2V0TG9jYWxEZXNjcmlw
dGlvbihvZmZlcik7CisgIGNvbnN0IGFuc3dlciA9IGF3YWl0IHBjMi5jcmVhdGVBbnN3ZXIoKTsK
KyAgYXdhaXQgcGMyLnNldExvY2FsRGVzY3JpcHRpb24oYW5zd2VyKTsKKyAgLy8gRG8gbm90IGF0
dGVtcHQgdG8gY2FsbCBwYzEuc2V0UmVtb3RlRGVzY3JpcHRpb24uCisKKyAgY29uc3QgW3ByZWFt
YmxlLCBtZWRpYV9zZWN0aW9uLCBwb3N0YW1ibGVdID0gYW5zd2VyLnNkcC5zcGxpdCgnXHJcbm09
Jyk7CisgIGFzc2VydF90cnVlKHR5cGVvZihwb3N0YW1ibGUpID09PSAndW5kZWZpbmVkJyk7Cisg
IGFzc2VydF9ncmVhdGVyX3RoYW4obWVkaWFfc2VjdGlvbi5zZWFyY2goCisgICAgL151bmljb3Ju
cyAwLyksIC0xKTsKK30sICdVbmtub3duIG1lZGlhIHR5cGVzIGFyZSByZWplY3RlZCB3aXRoIHRo
ZSBwb3J0IHNldCB0byAwJyk7Cis8L3NjcmlwdD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL3ZpZGVvLWNvZGVj
cy5odHRwcy5odG1sIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvcHJvdG9jb2wvdmlkZW8tY29kZWNzLmh0dHBzLmh0bWwKaW5kZXggYTQ5MDVhZTQ0
MWE5MTI3OTc3ODhkNmQwYjA2NWE2Yzg2MWQ3MDhiOC4uNGNlMDYxOGJjYTMwMDdlNDE5M2I5OGE5
NWIwYTZkMDMwY2MyNGI1ZiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdmlkZW8tY29kZWNzLmh0dHBzLmh0bWwK
KysrIGIvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
cHJvdG9jb2wvdmlkZW8tY29kZWNzLmh0dHBzLmh0bWwKQEAgLTcsNiArNywxMSBAQAogPHNjcmlw
dD4KICd1c2Ugc3RyaWN0JzsKIAorLyoKKyAqIENocm9taXVtIG5vdGU6IHRoaXMgcmVxdWlyZXMg
YnVpbGQgYm90cyB3aXRoIEgyNjQgc3VwcG9ydC4gU2VlCisgKiAgIGh0dHBzOi8vYnVncy5jaHJv
bWl1bS5vcmcvcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTg0MDY1OQorICogZm9yIGRldGFp
bHMgb24gaG93IHRvIGVuYWJsZSBzdXBwb3J0LgorICovCiAvLyBUZXN0cyBmb3IgY29uZm9ybWFu
Y2UgdG8gUkZDIDc3NDIsCiAvLyAiV2ViUlRDIFZpZGVvIFByb2Nlc3NpbmcgYW5kIENvZGVjIFJl
cXVpcmVtZW50cyIKIC8vIFRoZSBkb2N1bWVudCB3YXMgZm9ybWVybHkga25vd24gYXMgZHJhZnQt
aWV0Zi1ydGN3ZWItdmlkZW8tY29kZWNzLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvdzNjLWltcG9ydC5sb2cg
Yi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90
b2NvbC93M2MtaW1wb3J0LmxvZwppbmRleCBmOTRkNzlhNTQ3ZTZjNWRjMGQzNWZhYTI2NTc1OTU5
NmVmMGFlNjk0Li40ZTNjODFlNTk3MzY2YjM0MjFiNTI1MjgzZGE1NjYxNTk2ZmM2OWY2IDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC93M2MtaW1wb3J0LmxvZworKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC93M2MtaW1wb3J0LmxvZwpAQCAtMTUs
MTcgKzE1LDIyIEBAIE5vbmUKIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLQogTGlzdCBvZiBmaWxlczoKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9S
RUFETUUudHh0CisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvcHJvdG9jb2wvUlRDUGVlckNvbm5lY3Rpb24tcGF5bG9hZFR5cGVzLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9i
dW5kbGUuaHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0t
dGVzdHMvd2VicnRjL3Byb3RvY29sL2NhbmRpZGF0ZS1leGNoYW5nZS5odHRwcy5odG1sCiAvTGF5
b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wv
Y3J5cHRvLXN1aXRlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9kdGxzLWZpbmdlcnByaW50LXZhbGlkYXRpb24u
aHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRj
L3Byb3RvY29sL2hhbmRvdmVyLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9pY2Utc3RhdGUuaHR0cHMuaHRtbAogL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3Byb3RvY29sL2lj
ZS11ZnJhZ3B3ZC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvanNlcC1pbml0aWFsLW9mZmVyLmh0dHBzLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9t
aXNzaW5nLWZpZWxkcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvbXNpZC1wYXJzZS5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvcnRwLWRlbXV4aW5n
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9wcm90b2NvbC9ydHAtcGF5bG9hZHR5cGVzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9zY3RwLWZvcm1hdC5odG1sCiAv
TGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9j
b2wvc2ltdWxjYXN0LWFuc3dlci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1w
bGF0Zm9ybS10ZXN0cy93ZWJydGMvcHJvdG9jb2wvc2ltdWxjYXN0LW9mZmVyLmh0bWwKIC9MYXlv
dXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC9z
cGxpdC5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvcHJvdG9jb2wvdW5rbm93bi1tZWRpYXR5cGVzLmh0bWwKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9wcm90b2NvbC92aWRlby1j
b2RlY3MuaHR0cHMuaHRtbApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2ltdWxjYXN0L2gyNjQuaHR0cHMuaHRtbCBiL0xheW91
dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3NpbXVsY2FzdC9o
MjY0Lmh0dHBzLmh0bWwKaW5kZXggODllMThiY2Q1MWNmMDI5YjRmOTUyODE2NGU2YjkwMzA2ZjIx
MDUyNi4uMjZlZDJlOTA0YThiMzUxN2M5ZGQzNWFmMjc2MzMwZDUzNDFkNzM4OCAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvc2lt
dWxjYXN0L2gyNjQuaHR0cHMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9zaW11bGNhc3QvaDI2NC5odHRwcy5odG1sCkBAIC04LDYg
KzgsMTEgQEAKIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzLmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQgc3JjPSIvcmVzb3VyY2VzL3Rlc3RoYXJuZXNzcmVwb3J0LmpzIj48L3Njcmlw
dD4KIDxzY3JpcHQ+CisvKgorICogQ2hyb21pdW0gbm90ZTogdGhpcyByZXF1aXJlcyBidWlsZCBi
b3RzIHdpdGggSDI2NCBzdXBwb3J0LiBTZWUKKyAqICAgaHR0cHM6Ly9idWdzLmNocm9taXVtLm9y
Zy9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9ODQwNjU5CisgKiBmb3IgZGV0YWlscyBvbiBo
b3cgdG8gZW5hYmxlIHN1cHBvcnQuCisgKi8KIHByb21pc2VfdGVzdChhc3luYyB0ID0+IHsKICAg
YXNzZXJ0X2ltcGxlbWVudHMoJ2dldENhcGFiaWxpdGllcycgaW4gUlRDUnRwU2VuZGVyLCAnUlRD
UnRwU2VuZGVyLmdldENhcGFiaWxpdGllcyBub3Qgc3VwcG9ydGVkJyk7CiAgIGFzc2VydF9pbXBs
ZW1lbnRzKFJUQ1J0cFNlbmRlci5nZXRDYXBhYmlsaXRpZXMoJ3ZpZGVvJykuY29kZWNzLmZpbmQo
YyA9PiBjLm1pbWVUeXBlID09PSAndmlkZW8vSDI2NCcpLCAnSDI2NCBub3Qgc3VwcG9ydGVkJyk7
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3Rz
L3dlYnJ0Yy93M2MtaW1wb3J0LmxvZyBiL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9nCmluZGV4IGEzOTdkOGU3NmMyNzdlNGZj
NjdiZjI2ZDA3OTZjNDljYmY2YTNiYTIuLjUxNGI2MWZmMWVkNjMwODY4YmRmMzU0ZGJjYmNiZTAx
MzgzZmViY2IgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZv
cm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9nCisrKyBiL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL3czYy1pbXBvcnQubG9nCkBAIC0yOCw2ICsy
OCw3IEBAIExpc3Qgb2YgZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDRFRNRlNlbmRlci1pbnNlcnREVE1GLmh0dHBzLmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEVE1G
U2VuZGVyLW9udG9uZWNoYW5nZS1sb25nLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEVE1GU2VuZGVyLW9udG9uZWNoYW5n
ZS5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtYmluYXJ5VHlwZS53aW5kb3cuanMKIC9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENEYXRhQ2hhbm5lbC1i
dWZmZXJlZEFtb3VudC5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDRGF0YUNoYW5uZWwtY2xvc2UuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0RhdGFDaGFubmVsLWlkLmh0
bWwKQEAgLTQyLDIxICs0MywyNiBAQCBMaXN0IG9mIGZpbGVzOgogL0xheW91dFRlc3RzL2ltcG9y
dGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ0ljZVRyYW5zcG9ydC1leHRlbnNp
b24taGVscGVyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0
cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0LWV4dGVuc2lvbi5odHRwcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDSWNlVHJhbnNwb3J0
Lmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1TTEQtU1JELXRpbWluZy5odHRwcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rp
b24tYWRkLXRyYWNrLW5vLWRlYWRsb2NrLmh0dHBzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VD
YW5kaWRhdGUtY29ubmVjdGlvblNldHVwLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRh
dGUtdGltaW5nLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRm
b3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRJY2VDYW5kaWRhdGUuaHRtbAog
L0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLWFkZFRyYWNrLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93
M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1hZGRUcmFuc2Nl
aXZlci5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY2FuVHJpY2tsZUljZUNhbmRpZGF0ZXMuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNhbmRpZGF0ZS1pbi1zZHAuaHR0cHMuaHRtbAogL0xheW91dFRlc3Rz
L2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9u
LWNvbm5lY3Rpb25TdGF0ZS5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY29uc3RydWN0b3IuaHRt
bAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1BlZXJDb25uZWN0aW9uLWNyZWF0ZUFuc3dlci5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0
YUNoYW5uZWwuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVz
dHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWNyZWF0ZU9mZmVyLmh0bWwKKy9MYXlvdXRUZXN0
cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlv
bi1kZXNjcmlwdGlvbi1hdHRyaWJ1dGVzLXRpbWluZy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMv
aW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24t
ZXhwbGljaXQtcm9sbGJhY2staWNlR2F0aGVyaW5nU3RhdGUuaHRtbAogL0xheW91dFRlc3RzL2lt
cG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdl
bmVyYXRlQ2VydGlmaWNhdGUuaHRtbAotL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxh
dGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLWdldERlZmF1bHRJY2VTZXJ2ZXJz
Lmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubmVjdGlvbi1nZXRTdGF0cy5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tZ2V0
VHJhbnNjZWl2ZXJzLmh0bWwKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3Jt
LXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1oZWxwZXItdGVzdC5odG1sCiAvTGF5b3V0
VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5l
Y3Rpb24taGVscGVyLmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLWRpc2Nvbm5l
Y3RlZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10
ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24taWNlQ29ubmVjdGlvblN0YXRlLmh0dHBzLmh0
bWwKQEAgLTY4LDYgKzc0LDkgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1vbnNpZ25h
bGluZ3N0YXRlY2hhbmdlZC5odHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dl
Yi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tb250cmFjay5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tb3BlcmF0aW9ucy5odHRwcy5odG1sCisvTGF5b3V0VGVzdHMvaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcGVy
ZmVjdC1uZWdvdGlhdGlvbi1oZWxwZXIuanMKKy9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2Vi
LXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0LW5lZ290aWF0
aW9uLXN0cmVzcy1nbGFyZS1saW5lYXIuaHR0cHMuaHRtbAorL0xheW91dFRlc3RzL2ltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3Qt
bmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1wZXJmZWN0
LW5lZ290aWF0aW9uLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi1yZW1vdGUtdHJhY2stbXV0ZS5o
dHRwcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93
ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tcmVtb3ZlVHJhY2suaHR0cHMuaHRtbApAQCAtOTIsNiAr
MTAxLDcgQEAgTGlzdCBvZiBmaWxlczoKIC9MYXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi10cmFjay1zdGF0cy5odHRwcy5o
dG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tdHJhbnNjZWl2ZXJzLmh0dHBzLmh0bWwKIC9MYXlvdXRUZXN0cy9p
bXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVyQ29ubmVjdGlvbi12
aWRlb0RldGVjdG9yVGVzdC5odG1sCisvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0
Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb25JY2VFcnJvckV2ZW50Lmh0bWwKIC9M
YXlvdXRUZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQZWVy
Q29ubmVjdGlvbkljZUV2ZW50LWNvbnN0cnVjdG9yLmh0bWwKIC9MYXlvdXRUZXN0cy9pbXBvcnRl
ZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBDYXBhYmlsaXRpZXMtaGVscGVy
LmpzCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUnRwUGFyYW1ldGVycy1jb2RlY3MuaHRtbApAQCAtMTA1LDYgKzExNSw3IEBAIExpc3Qgb2Yg
ZmlsZXM6CiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUnRwUmVjZWl2ZXItZ2V0UGFyYW1ldGVycy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0
ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwUmVjZWl2ZXItZ2V0U3RhdHMu
aHR0cHMuaHRtbAogL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMv
d2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFN5bmNocm9uaXphdGlvblNvdXJjZXMuaHR0cHMuaHRt
bAorL0xheW91dFRlc3RzL2ltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JU
Q1J0cFNlbmRlci1lbmNvZGUtc2FtZS10cmFjay10d2ljZS5odHRwcy5odG1sCiAvTGF5b3V0VGVz
dHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLWdl
dENhcGFiaWxpdGllcy5odG1sCiAvTGF5b3V0VGVzdHMvaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9y
bS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLWdldFN0YXRzLmh0dHBzLmh0bWwKIC9MYXlvdXRU
ZXN0cy9pbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENSdHBTZW5kZXIt
cmVwbGFjZVRyYWNrLmh0dHBzLmh0bWwKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2lvcy1zaW11bGF0b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtc2ltdWxhdG9yLXdrMi9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDUxNzRjYzMyMGE2Y2Y0
OWY4ODFkZDViNjIzNjBhYmUyYTc1MmY3NzkuLjgzNjZmOTc0ZjdjNzg4YmRiYjRjNGVhYzcyYWFi
ZmVjNDc1YjdjODQgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0
b3Itd2syL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNp
bXVsYXRvci13azIvVGVzdEV4cGVjdGF0aW9ucwpAQCAtOTIsNiArOTIsNyBAQCB3ZWJraXQub3Jn
L2IvMjE0NzMwIFsgRGVidWcgXSBpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0
Yy9SVENQZWVyQ29ubgogd2Via2l0Lm9yZy9iLzIxNDczMCBbIERlYnVnIF0gaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDU2N0cFRyYW5zcG9ydC1jb25zdHJ1Y3Rvci5o
dG1sIFsgU2tpcCBdCiB3ZWJraXQub3JnL2IvMjE0NjYxIFsgRGVidWcgXSBpbXBvcnRlZC93M2Mv
d2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENTY3RwVHJhbnNwb3J0LWV2ZW50cy5odG1sIFsg
U2tpcCBdCiB3ZWJraXQub3JnL2IvMjE0NzMwIFsgRGVidWcgXSB3ZWJydGMvc2ltdWxjYXN0LWgy
NjQuaHRtbCBbIFNraXAgXQoraW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMv
UlRDUGVlckNvbm5lY3Rpb24tY2FuZGlkYXRlLWluLXNkcC5odHRwcy5odG1sIFsgUGFzcyBGYWls
dXJlIF0KIAogd2Via2l0Lm9yZy9iLzIxNDM1OCBmYXN0L3Njcm9sbGluZy9pb3MvcHJvZ3JhbW1h
dGljLXNjcm9sbC13aGlsZS16b29tZWQuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCiAKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3Rlc3RzLW9wdGlvbnMuanNvbiBiL0xheW91dFRlc3RzL3Rlc3RzLW9w
dGlvbnMuanNvbgppbmRleCAyZmI0MDNmOTc5OTMxOWFlZTU1YThlMDNhMTZkZTU4ZTJiNjI4MzBm
Li5iOTJkODczNTkyMzE1N2M5MjcxYmVhYjJhMjY1ODJmOTljYmEyZGMzIDEwMDY0NAotLS0gYS9M
YXlvdXRUZXN0cy90ZXN0cy1vcHRpb25zLmpzb24KKysrIGIvTGF5b3V0VGVzdHMvdGVzdHMtb3B0
aW9ucy5qc29uCkBAIC0yOTYzLDYgKzI5NjMsOSBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBs
YXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENJY2VDb25uZWN0aW9uU3RhdGUtY2FuZGlkYXRlLXBhaXIu
aHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNj
L3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tU0xELVNSRC10aW1p
bmcuaHR0cHMuaHRtbCI6IFsKKyAgICAgICAgInNsb3ciCisgICAgXSwKICAgICAiaW1wb3J0ZWQv
dzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUGVlckNvbm5lY3Rpb24tY3JlYXRlRGF0
YUNoYW5uZWwuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKQEAgLTI5NzUsNiArMjk3
OCwxMiBAQAogICAgICJpbXBvcnRlZC93M2Mvd2ViLXBsYXRmb3JtLXRlc3RzL3dlYnJ0Yy9SVENQ
ZWVyQ29ubmVjdGlvbi1tYW5kYXRvcnktZ2V0U3RhdHMuaHR0cHMuaHRtbCI6IFsKICAgICAgICAg
InNsb3ciCiAgICAgXSwKKyAgICAiaW1wb3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJy
dGMvUlRDUGVlckNvbm5lY3Rpb24tcGVyZmVjdC1uZWdvdGlhdGlvbi1zdHJlc3MtZ2xhcmUtbGlu
ZWFyLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCisgICAgImltcG9ydGVk
L3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1BlZXJDb25uZWN0aW9uLXBlcmZlY3Qt
bmVnb3RpYXRpb24tc3RyZXNzLWdsYXJlLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93Igor
ICAgIF0sCiAgICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1Bl
ZXJDb25uZWN0aW9uLXBlcmZlY3QtbmVnb3RpYXRpb24uaHR0cHMuaHRtbCI6IFsKICAgICAgICAg
InNsb3ciCiAgICAgXSwKQEAgLTI5OTYsNiArMzAwNSw5IEBACiAgICAgImltcG9ydGVkL3czYy93
ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFJlY2VpdmVyLWdldFN5bmNocm9uaXphdGlv
blNvdXJjZXMuaHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwKKyAgICAiaW1w
b3J0ZWQvdzNjL3dlYi1wbGF0Zm9ybS10ZXN0cy93ZWJydGMvUlRDUnRwU2VuZGVyLWVuY29kZS1z
YW1lLXRyYWNrLXR3aWNlLmh0dHBzLmh0bWwiOiBbCisgICAgICAgICJzbG93IgorICAgIF0sCiAg
ICAgImltcG9ydGVkL3czYy93ZWItcGxhdGZvcm0tdGVzdHMvd2VicnRjL1JUQ1J0cFNlbmRlci1y
ZXBsYWNlVHJhY2suaHR0cHMuaHRtbCI6IFsKICAgICAgICAgInNsb3ciCiAgICAgXSwK
</data>

          </attachment>
      

    </bug>

</bugzilla>