<?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>214971</bug_id>
          
          <creation_ts>2020-07-30 09:09:42 -0700</creation_ts>
          <short_desc>Use more inclusive terminology in Tools</short_desc>
          <delta_ts>2020-08-04 15:22:37 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>213092</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Alex Christensen">achristensen</reporter>
          <assigned_to name="Alex Christensen">achristensen</assigned_to>
          <cc>darin</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>mkwst</cc>
    
    <cc>sam</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1676403</commentid>
    <comment_count>0</comment_count>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-30 09:09:42 -0700</bug_when>
    <thetext>Use more inclusive terminology in Tools</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676408</commentid>
    <comment_count>1</comment_count>
      <attachid>405577</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-30 09:14:18 -0700</bug_when>
    <thetext>Created attachment 405577
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676412</commentid>
    <comment_count>2</comment_count>
      <attachid>405579</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-30 09:24:04 -0700</bug_when>
    <thetext>Created attachment 405579
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676422</commentid>
    <comment_count>3</comment_count>
      <attachid>405582</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-30 09:57:44 -0700</bug_when>
    <thetext>Created attachment 405582
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676429</commentid>
    <comment_count>4</comment_count>
      <attachid>405582</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-07-30 10:03:44 -0700</bug_when>
    <thetext>Comment on attachment 405582
patch

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

&gt; LayoutTests/ChangeLog:21
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-all.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-exact-match.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-https.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-removal.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-subdomains.html:

Probably worth renaming the tests while you are doing this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676436</commentid>
    <comment_count>5</comment_count>
      <attachid>405586</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-30 10:16:39 -0700</bug_when>
    <thetext>Created attachment 405586
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676441</commentid>
    <comment_count>6</comment_count>
      <attachid>405586</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-07-30 10:22:29 -0700</bug_when>
    <thetext>Comment on attachment 405586
Patch

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

&gt; LayoutTests/ChangeLog:21
&gt; +        * http/tests/security/local-image-from-remote-whitelisted.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-all.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-exact-match.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-https.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-ip-addresses-with-subdomains.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-ip-addresses.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-removal.html:
&gt; +        * http/tests/xmlhttprequest/origin-whitelisting-subdomains.html:

Probably want to regenerate this ChangeLog.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1676887</commentid>
    <comment_count>7</comment_count>
      <attachid>405714</attachid>
    <who name="Alex Christensen">achristensen</who>
    <bug_when>2020-07-31 11:31:16 -0700</bug_when>
    <thetext>Created attachment 405714
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677060</commentid>
    <comment_count>8</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-07-31 17:30:13 -0700</bug_when>
    <thetext>Committed r265169: &lt;https://trac.webkit.org/changeset/265169&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 405714.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677061</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-07-31 17:31:18 -0700</bug_when>
    <thetext>&lt;rdar://problem/66406437&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1677768</commentid>
    <comment_count>10</comment_count>
      <attachid>405714</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-08-04 15:22:37 -0700</bug_when>
    <thetext>Comment on attachment 405714
Patch

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

&gt; Source/WebKitLegacy/win/WebView.cpp:6992
&gt; +    unsigned blockListCount, __inout_ecount_full(blockListCount) BSTR* blocklist,

Mix of blockList and blocklist here.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405577</attachid>
            <date>2020-07-30 09:14:18 -0700</date>
            <delta_ts>2020-07-30 09:24:04 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214971-20200730091417.patch</filename>
            <type>text/plain</type>
            <size>51069</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NTA4MSkKKysrIFNv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDEzIEBACisyMDIwLTA3LTMwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVXNlIG1vcmUgaW5jbHVzaXZlIHRlcm1pbm9sb2d5IGluIFRvb2xz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ5NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIEludGVy
ZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbDoKKyAgICAgICAgKiBXZWJWaWV3Lmg6CisKIDIwMjAt
MDctMjMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBTcGxpdCBXaW5kb3dzIHBhcnRzIGZyb20gQ0ZOZXR3b3JrU1BJLmggdG8gQ0ZOZXR3b3Jr
U1BJV2luLmgKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuaAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmgJKHJldmlzaW9uIDI2NTA4
MSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcuaAkod29ya2luZyBjb3B5KQpA
QCAtMzQ3LDEwICszNDcsMTAgQEAgcHVibGljOgogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgc2V0SmF2YVNjcmlwdFVSTHNBcmVBbGxvd2VkKEJPT0wpIG92ZXJyaWRlOwogICAgIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0Q2FuU3RhcnRQbHVnaW5zKEJPT0wpIG92ZXJyaWRlOwog
ICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWRkVXNlclNjcmlwdFRvR3JvdXAoX0luXyBC
U1RSIGdyb3VwTmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKiwgX0luXyBCU1RSIHNvdXJj
ZSwgX0luXyBCU1RSIHVybCwKLSAgICAgICAgdW5zaWduZWQgd2hpdGVsaXN0Q291bnQsIF9faW5v
dXRfZWNvdW50X2Z1bGwod2hpdGVsaXN0Q291bnQpIEJTVFIqIHdoaXRlbGlzdCwgdW5zaWduZWQg
YmxhY2tsaXN0Q291bnQsCi0gICAgICAgIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxhY2tsaXN0Q291
bnQpIEJTVFIqIGJsYWNrbGlzdCwgV2ViVXNlclNjcmlwdEluamVjdGlvblRpbWUpIG92ZXJyaWRl
OworICAgICAgICB1bnNpZ25lZCBhbGxvd0xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChh
bGxvd0xpc3RDb3VudCkgQlNUUiogYWxsb3dMaXN0LCB1bnNpZ25lZCBibG9ja0xpc3RDb3VudCwK
KyAgICAgICAgX19pbm91dF9lY291bnRfZnVsbChibG9ja0xpc3RDb3VudCkgQlNUUiogYmxvY2tM
aXN0LCBXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSkgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBhZGRVc2VyU3R5bGVTaGVldFRvR3JvdXAoX0luXyBCU1RSIGdyb3Vw
TmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKiwgX0luXyBCU1RSIHNvdXJjZSwgX0luXyBC
U1RSIHVybCwKLSAgICAgICAgdW5zaWduZWQgd2hpdGVsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50
X2Z1bGwod2hpdGVsaXN0Q291bnQpIEJTVFIqIHdoaXRlbGlzdCwgdW5zaWduZWQgYmxhY2tsaXN0
Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxhY2tsaXN0Q291bnQpIEJTVFIqIGJsYWNrbGlz
dCkgb3ZlcnJpZGU7CisgICAgICAgIHVuc2lnbmVkIGFsbG93TGlzdENvdW50LCBfX2lub3V0X2Vj
b3VudF9mdWxsKGFsbG93TGlzdENvdW50KSBCU1RSKiBhbGxvd0xpc3QsIHVuc2lnbmVkIGJsb2Nr
TGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJsb2NrTGlzdENvdW50KSBCU1RSKiBibG9j
a0xpc3QpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVtb3ZlVXNl
clNjcmlwdEZyb21Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0XyBJV2ViU2NyaXB0
V29ybGQqLCBfSW5fIEJTVFIgdXJsKSBvdmVycmlkZTsKICAgICBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIHJlbW92ZVVzZXJTdHlsZVNoZWV0RnJvbUdyb3VwKF9Jbl8gQlNUUiBncm91cE5hbWUs
IF9Jbl9vcHRfIElXZWJTY3JpcHRXb3JsZCosIF9Jbl8gQlNUUiB1cmwpIG92ZXJyaWRlOwogICAg
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVtb3ZlVXNlclNjcmlwdHNGcm9tR3JvdXAoX0lu
XyBCU1RSIGdyb3VwTmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKikgb3ZlcnJpZGU7CkBA
IC0zNTksOSArMzU5LDkgQEAgcHVibGljOgogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
dW51c2VkMSgpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgdW51c2Vk
MigpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaW52YWxpZGF0ZUJh
Y2tpbmdTdG9yZShfSW5fb3B0XyBjb25zdCBSRUNUKikgb3ZlcnJpZGU7Ci0gICAgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShfSW5fIEJTVFIg
c291cmNlT3JpZ2luLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgX0luXyBCU1RSIGRl
c3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykgb3ZlcnJpZGU7
Ci0gICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeShfSW5fIEJTVFIgc291cmNlT3JpZ2luLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Qcm90
b2NvbCwgX0luXyBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucykgb3ZlcnJpZGU7Ci0gICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZXNldE9y
aWdpbkFjY2Vzc1doaXRlbGlzdHMoKSBvdmVycmlkZTsKKyAgICBIUkVTVUxUIFNURE1FVEhPRENB
TExUWVBFIGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KF9Jbl8gQlNUUiBzb3VyY2VPcmln
aW4sIF9Jbl8gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBfSW5fIEJTVFIgZGVzdGluYXRpb25I
b3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKSBvdmVycmlkZTsKKyAgICBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KF9J
bl8gQlNUUiBzb3VyY2VPcmlnaW4sIF9Jbl8gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBfSW5f
IEJTVFIgZGVzdGluYXRpb25Ib3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKSBv
dmVycmlkZTsKKyAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlc2V0T3JpZ2luQWNjZXNz
QWxsb3dMaXN0cygpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgc2V0
SGlzdG9yeURlbGVnYXRlKF9Jbl8gSVdlYkhpc3RvcnlEZWxlZ2F0ZSopIG92ZXJyaWRlOwogICAg
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaGlzdG9yeURlbGVnYXRlKF9DT01fT3V0cHRyX29w
dF8gSVdlYkhpc3RvcnlEZWxlZ2F0ZSoqKSBvdmVycmlkZTsKICAgICBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIGFkZFZpc2l0ZWRMaW5rcyhfX2lub3V0X2Vjb3VudF9mdWxsKHZpc2l0ZWRVUkxD
b3VudCkgQlNUUiogdmlzaXRlZFVSTHMsIHVuc2lnbmVkIHZpc2l0ZWRVUkxDb3VudCkgb3ZlcnJp
ZGU7CkBAIC0zOTEsOSArMzkxLDkgQEAgcHVibGljOgogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgc2V0Q3VzdG9tQmFja2luZ1NjYWxlRmFjdG9yKGRvdWJsZSkgb3ZlcnJpZGU7CiAgICAg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBiYWNraW5nU2NhbGVGYWN0b3IoX091dF8gZG91Ymxl
Kikgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBhZGRVc2VyU2NyaXB0
VG9Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0XyBJV2ViU2NyaXB0V29ybGQqLCBf
SW5fIEJTVFIgc291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgICAgICB1bnNpZ25lZCB3aGl0ZWxp
c3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbCh3aGl0ZWxpc3RDb3VudCkgQlNUUiogd2hpdGVs
aXN0LCB1bnNpZ25lZCBibGFja2xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChibGFja2xp
c3RDb3VudCkgQlNUUiogYmxhY2tsaXN0LCBXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSwgV2Vi
VXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcykgb3ZlcnJpZGU7CisgICAgICAgIHVuc2lnbmVkIGFs
bG93TGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGFsbG93TGlzdENvdW50KSBCU1RSKiBh
bGxvd0xpc3QsIHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJs
b2NrTGlzdENvdW50KSBCU1RSKiBibG9ja0xpc3QsIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1l
LCBXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzKSBvdmVycmlkZTsKICAgICBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIGFkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cChfSW5fIEJTVFIgZ3JvdXBO
YW1lLCBfSW5fb3B0XyBJV2ViU2NyaXB0V29ybGQqLCBfSW5fIEJTVFIgc291cmNlLCBfSW5fIEJT
VFIgdXJsLAotICAgICAgICB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgX19pbm91dF9lY291bnRf
ZnVsbCh3aGl0ZWxpc3RDb3VudCkgQlNUUiogd2hpdGVsaXN0LCB1bnNpZ25lZCBibGFja2xpc3RD
b3VudCwgX19pbm91dF9lY291bnRfZnVsbChibGFja2xpc3RDb3VudCkgQlNUUiogYmxhY2tsaXN0
LCBXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzKSBvdmVycmlkZTsKKyAgICAgICAgdW5zaWdu
ZWQgYWxsb3dMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0Q291bnQpIEJT
VFIqIGFsbG93TGlzdCwgdW5zaWduZWQgYmxvY2tMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1
bGwoYmxvY2tMaXN0Q291bnQpIEJTVFIqIGJsb2NrTGlzdCwgV2ViVXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lcykgb3ZlcnJpZGU7CiAKICAgICAvLyBJV2ViVmlld1ByaXZhdGUzCiAgICAgSFJFU1VM
VCBTVERNRVRIT0RDQUxMVFlQRSBsYXllclRyZWVBc1N0cmluZyhfRGVyZWZfb3B0X291dF8gQlNU
UiopIG92ZXJyaWRlOwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9J
V2ViVmlld1ByaXZhdGUuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2lu
L0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAkocmV2aXNpb24gMjY1MDgxKQorKysgU291
cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1ByaXZhdGUuaWRsCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xODksMTIgKzE4OSwxMiBAQCBpbnRlcmZhY2UgSVdlYlZpZXdQcml2YXRl
IDogSVVua25vd24KICAgICBIUkVTVUxUIE1JTUVUeXBlRm9yRXh0ZW5zaW9uKFtpbl0gQlNUUiBl
eHRlbnNpb24sIFtvdXQsIHJldHZhbF0gQlNUUiogbWltZVR5cGUpOwogCiAgICAgSFJFU1VMVCBh
ZGRVc2VyU2NyaXB0VG9Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1lLCBbaW5dIElXZWJTY3JpcHRX
b3JsZCosIFtpbl0gQlNUUiBzb3VyY2UsIFtpbl0gQlNUUiB1cmwsCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIHdoaXRlbGlzdENvdW50LCBbaW4sIHNpemVf
aXMod2hpdGVsaXN0Q291bnQpXSBCU1RSKiB3aGl0ZWxpc3QsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBbaW4sIHNpemVfaXMo
YmxhY2tsaXN0Q291bnQpXSBCU1RSKiBibGFja2xpc3QsCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbaW5dIHVuc2lnbmVkIGFsbG93TGlzdENvdW50LCBbaW4sIHNpemVfaXMoYWxs
b3dMaXN0Q291bnQpXSBCU1RSKiBhbGxvd0xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBbaW5dIHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LCBbaW4sIHNpemVfaXMoYmxvY2tM
aXN0Q291bnQpXSBCU1RSKiBibG9ja0xpc3QsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBbaW5dIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUpOwogICAg
IEhSRVNVTFQgYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKFtpbl0gQlNUUiBncm91cE5hbWUsIFtp
bl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHNvdXJjZSwgW2luXSBCU1RSIHVybCwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIHdoaXRlbGlz
dENvdW50LCBbaW4sIHNpemVfaXMod2hpdGVsaXN0Q291bnQpXSBCU1RSKiB3aGl0ZWxpc3QsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luXSB1bnNpZ25lZCBibGFja2xp
c3RDb3VudCwgW2luLCBzaXplX2lzKGJsYWNrbGlzdENvdW50KV0gQlNUUiogYmxhY2tsaXN0KTsK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIGFsbG93
TGlzdENvdW50LCBbaW4sIHNpemVfaXMoYWxsb3dMaXN0Q291bnQpXSBCU1RSKiBhbGxvd0xpc3Qs
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luXSB1bnNpZ25lZCBibG9j
a0xpc3RDb3VudCwgW2luLCBzaXplX2lzKGJsb2NrTGlzdENvdW50KV0gQlNUUiogYmxvY2tMaXN0
KTsKICAgICBIUkVTVUxUIHJlbW92ZVVzZXJTY3JpcHRGcm9tR3JvdXAoW2luXSBCU1RSIGdyb3Vw
TmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqLCBbaW5dIEJTVFIgdXJsKTsKICAgICBIUkVTVUxU
IHJlbW92ZVVzZXJTdHlsZVNoZWV0RnJvbUdyb3VwKFtpbl0gQlNUUiBncm91cE5hbWUsIFtpbl0g
SVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHVybCk7CiAgICAgSFJFU1VMVCByZW1vdmVVc2Vy
U2NyaXB0c0Zyb21Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1lLCBbaW5dIElXZWJTY3JpcHRXb3Js
ZCopOwpAQCAtMjA3LDE3ICsyMDcsMTcgQEAgaW50ZXJmYWNlIElXZWJWaWV3UHJpdmF0ZSA6IElV
bmtub3duCiAgICAgLy8gSWYgcmVjdCBpcyAwLCB0aGUgZW50aXJlIGJhY2tpbmcgc3RvcmUgd2ls
bCBiZSBpbnZhbGlkYXRlZC4KICAgICBIUkVTVUxUIGludmFsaWRhdGVCYWNraW5nU3RvcmUoW2lu
XSBjb25zdCBSRUNUKiByZWN0KTsKIAotICAgIC8vIFdoaXRlbGlzdHMgYWNjZXNzIGZyb20gYW4g
b3JpZ2luIChzb3VyY2VPcmlnaW4pIHRvIGEgc2V0IG9mIG9uZSBvciBtb3JlIG9yaWdpbnMgZGVz
Y3JpYmVkIGJ5IHRoZSBwYXJhbWV0ZXJzOgorICAgIC8vIEFsbG93TGlzdHMgYWNjZXNzIGZyb20g
YW4gb3JpZ2luIChzb3VyY2VPcmlnaW4pIHRvIGEgc2V0IG9mIG9uZSBvciBtb3JlIG9yaWdpbnMg
ZGVzY3JpYmVkIGJ5IHRoZSBwYXJhbWV0ZXJzOgogICAgIC8vIC0gZGVzdGluYXRpb25Qcm90b2Nv
bDogVGhlIHByb3RvY29sIHRvIGdyYW50IGFjY2VzcyB0by4KICAgICAvLyAtIGRlc3RpbmF0aW9u
SG9zdDogVGhlIGhvc3QgdG8gZ3JhbnQgYWNjZXNzIHRvLgotICAgIC8vIC0gYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnM6IElmIGhvc3QgaXMgYSBkb21haW4sIHNldHRpbmcgdGhpcyB0byBZRVMg
d2lsbCB3aGl0ZWxpc3QgaG9zdCBhbmQgYWxsIGl0cyBzdWJkb21haW5zLCByZWN1cnNpdmVseS4K
LSAgICBIUkVTVUxUIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFtpbl0gQlNUUiBzb3Vy
Y2VPcmlnaW4sIFtpbl0gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBbaW5dIEJTVFIgZGVzdGlu
YXRpb25Ib3N0LCBbaW5dIEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIC8v
IC0gYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6IElmIGhvc3QgaXMgYSBkb21haW4sIHNldHRp
bmcgdGhpcyB0byBZRVMgd2lsbCBhbGxvdyBob3N0IGFuZCBhbGwgaXRzIHN1YmRvbWFpbnMsIHJl
Y3Vyc2l2ZWx5LgorICAgIEhSRVNVTFQgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoW2lu
XSBCU1RSIHNvdXJjZU9yaWdpbiwgW2luXSBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2wsIFtpbl0g
QlNUUiBkZXN0aW5hdGlvbkhvc3QsIFtpbl0gQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlu
cyk7CiAKLSAgICAvLyBSZW1vdmVzIGEgd2hpdGUgbGlzdCBlbnRyeSBjcmVhdGVkIHdpdGggYWRk
T3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkuIFNlZSBhYm92ZS4KLSAgICBIUkVTVUxUIHJlbW92
ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KFtpbl0gQlNUUiBzb3VyY2VPcmlnaW4sIFtpbl0g
QlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBbaW5dIEJTVFIgZGVzdGluYXRpb25Ib3N0LCBbaW5d
IEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIC8vIFJlbW92ZXMgYSB3aGl0
ZSBsaXN0IGVudHJ5IGNyZWF0ZWQgd2l0aCBhZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeS4g
U2VlIGFib3ZlLgorICAgIEhSRVNVTFQgcmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnko
W2luXSBCU1RSIHNvdXJjZU9yaWdpbiwgW2luXSBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2wsIFtp
bl0gQlNUUiBkZXN0aW5hdGlvbkhvc3QsIFtpbl0gQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9t
YWlucyk7CiAKLSAgICAvLyBSZW1vdmVzIGFsbCB3aGl0ZSBsaXN0IGVudHJpZXMgY3JlYXRlZCB3
aXRoIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5LgotICAgIEhSRVNVTFQgcmVzZXRPcmln
aW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CisgICAgLy8gUmVtb3ZlcyBhbGwgd2hpdGUgbGlzdCBlbnRy
aWVzIGNyZWF0ZWQgd2l0aCBhZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeS4KKyAgICBIUkVT
VUxUIHJlc2V0T3JpZ2luQWNjZXNzQWxsb3dMaXN0cygpOwogCiAgICAgSFJFU1VMVCBzZXRIaXN0
b3J5RGVsZWdhdGUoW2luXSBJV2ViSGlzdG9yeURlbGVnYXRlKiBoaXN0b3J5RGVsZWdhdGUpOwog
ICAgIEhSRVNVTFQgaGlzdG9yeURlbGVnYXRlKFtvdXQscmV0dmFsXSBJV2ViSGlzdG9yeURlbGVn
YXRlKiogaGlzdG9yeURlbGVnYXRlKTsKQEAgLTMxNiwxMyArMzE2LDEzIEBAIGludGVyZmFjZSBJ
V2ViVmlld1ByaXZhdGUyIDogSVdlYlZpZXdQcmkKICAgICBIUkVTVUxUIGJhY2tpbmdTY2FsZUZh
Y3Rvcihbb3V0XSBkb3VibGUqKTsKIAogICAgIEhSRVNVTFQgYWRkVXNlclNjcmlwdFRvR3JvdXAo
W2luXSBCU1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqLCBbaW5dIEJTVFIgc291
cmNlLCBbaW5dIEJTVFIgdXJsLAotICAgICAgICBbaW5dIHVuc2lnbmVkIHdoaXRlbGlzdENvdW50
LCBbaW4sIHNpemVfaXMod2hpdGVsaXN0Q291bnQpXSBCU1RSKiB3aGl0ZWxpc3QsCi0gICAgICAg
IFtpbl0gdW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyhibGFja2xpc3RDb3Vu
dCldIEJTVFIqIGJsYWNrbGlzdCwKKyAgICAgICAgW2luXSB1bnNpZ25lZCBhbGxvd0xpc3RDb3Vu
dCwgW2luLCBzaXplX2lzKGFsbG93TGlzdENvdW50KV0gQlNUUiogYWxsb3dMaXN0LAorICAgICAg
ICBbaW5dIHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LCBbaW4sIHNpemVfaXMoYmxvY2tMaXN0Q291
bnQpXSBCU1RSKiBibG9ja0xpc3QsCiAgICAgICAgIFtpbl0gV2ViVXNlclNjcmlwdEluamVjdGlv
blRpbWUgaW5qZWN0aW9uVGltZSwgW2luXSBXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGlu
amVjdGVkRnJhbWVzKTsKIAogICAgIEhSRVNVTFQgYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKFtp
bl0gQlNUUiBncm91cE5hbWUsIFtpbl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHNvdXJj
ZSwgW2luXSBCU1RSIHVybCwKLSAgICAgICAgW2luXSB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwg
W2luLCBzaXplX2lzKHdoaXRlbGlzdENvdW50KV0gQlNUUiogd2hpdGVsaXN0LAotICAgICAgICBb
aW5dIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBbaW4sIHNpemVfaXMoYmxhY2tsaXN0Q291bnQp
XSBCU1RSKiBibGFja2xpc3QsCisgICAgICAgIFtpbl0gdW5zaWduZWQgYWxsb3dMaXN0Q291bnQs
IFtpbiwgc2l6ZV9pcyhhbGxvd0xpc3RDb3VudCldIEJTVFIqIGFsbG93TGlzdCwKKyAgICAgICAg
W2luXSB1bnNpZ25lZCBibG9ja0xpc3RDb3VudCwgW2luLCBzaXplX2lzKGJsb2NrTGlzdENvdW50
KV0gQlNUUiogYmxvY2tMaXN0LAogICAgICAgICBbaW5dIFdlYlVzZXJDb250ZW50SW5qZWN0ZWRG
cmFtZXMgaW5qZWN0ZWRGcmFtZXMpOwogfQogCkluZGV4OiBUb29scy9DaGFuZ2VMb2cKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gVG9vbHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAyNjUwODMpCisrKyBUb29scy9DaGFu
Z2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSw0MiBAQAorMjAyMC0wNy0zMCAgQWxleCBD
aHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBtb3Jl
IGluY2x1c2l2ZSB0ZXJtaW5vbG9neSBpbiBUb29scworICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0OTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoK
KyAgICAgICAgKGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5Q2FsbGJhY2spOgorICAgICAg
ICAocmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlDYWxsYmFjayk6CisgICAgICAgIChU
ZXN0UnVubmVyOjpzdGF0aWNGdW5jdGlvbnMpOgorICAgICAgICAoYWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnlDYWxsYmFjayk6IERlbGV0ZWQuCisgICAgICAgIChyZW1vdmVPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeUNhbGxiYWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVy
VHJlZS9UZXN0UnVubmVyLmg6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5u
ZXJNYWMubW06CisgICAgICAgIChUZXN0UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RF
bnRyeSk6CisgICAgICAgIChUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RF
bnRyeSk6CisgICAgICAgIChUZXN0UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eSk6IERlbGV0ZWQuCisgICAgICAgIChUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeSk6IERlbGV0ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBS
ZW5kZXJUcmVlLmNwcDoKKyAgICAgICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVm
b3JlVGVzdGluZyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4u
Y3BwOgorICAgICAgICAoVGVzdFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkp
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkp
OgorICAgICAgICAoVGVzdFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOiBE
ZWxldGVkLgorICAgICAgICAoVGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkpOiBEZWxldGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKHJlbW92ZU9sZElu
amVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHMpOgorICAgICAgICAodGVzdFVzZXJDb250ZW50TWFu
YWdlckluamVjdGVkU3R5bGVTaGVldCk6CisgICAgICAgICh0ZXN0VXNlckNvbnRlbnRNYW5hZ2Vy
SW5qZWN0ZWRTY3JpcHQpOgorICAgICAgICAodGVzdFVzZXJDb250ZW50TWFuYWdlckNvbnRlbnRG
aWx0ZXIpOgorICAgICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGlu
Z3MvVGVzdFJ1bm5lci5pZGw6CisgICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6YWRkT3JpZ2lu
QWNjZXNzQWxsb3dMaXN0RW50cnkpOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpyZW1vdmVP
cmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmFk
ZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVz
dFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOiBEZWxldGVkLgorICAg
ICAgICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorCiAy
MDIwLTA3LTMwICBKb25hdGhhbiBCZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAg
ICBbQmlnIFN1cl0gQWRkIGxpbWl0ZWQgU2VlZCAzIHN1cHBvcnQgdG8gRVdTCkluZGV4OiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1w
UmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAkocmV2aXNpb24gMjY1MDgxKQorKysgVG9vbHMvRHVt
cFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MzQsNyArMTUz
NCw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZUMKICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVm
IGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRD
b3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQorc3RhdGljIEpTVmFsdWVSZWYgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gNCkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwpAQCAtMTU0OCwxMSAr
MTU0OCwxMSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpCiAgICAg
Ym9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyA9IEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4
dCwgYXJndW1lbnRzWzNdKTsKIAogICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNf
Y2FzdDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBj
b250cm9sbGVyLT5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShzb3VyY2VPcmlnaW4uZ2V0
KCksIGRlc3RpbmF0aW9uUHJvdG9jb2wuZ2V0KCksIGRlc3RpbmF0aW9uSG9zdC5nZXQoKSwgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIGNvbnRyb2xsZXItPmFkZE9yaWdpbkFjY2Vz
c0FsbG93TGlzdEVudHJ5KHNvdXJjZU9yaWdpbi5nZXQoKSwgZGVzdGluYXRpb25Qcm90b2NvbC5n
ZXQoKSwgZGVzdGluYXRpb25Ib3N0LmdldCgpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7
CiAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMg
SlNWYWx1ZVJlZiByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUNhbGxiYWNrKEpTQ29u
dGV4dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6
ZV90IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVS
ZWYqIGV4Y2VwdGlvbikKK3N0YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93
TGlzdEVudHJ5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChhcmd1bWVu
dENvdW50ICE9IDQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKQEAgLTE1NjYsNyArMTU2Niw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZU9yaWdpbkFj
Y2Vzc1doaXQKICAgICBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zID0gSlNWYWx1ZVRv
Qm9vbGVhbihjb250ZXh0LCBhcmd1bWVudHNbM10pOwogCiAgICAgVGVzdFJ1bm5lciogY29udHJv
bGxlciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09i
amVjdCkpOwotICAgIGNvbnRyb2xsZXItPnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
KHNvdXJjZU9yaWdpbi5nZXQoKSwgZGVzdGluYXRpb25Qcm90b2NvbC5nZXQoKSwgZGVzdGluYXRp
b25Ib3N0LmdldCgpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgY29udHJvbGxl
ci0+cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoc291cmNlT3JpZ2luLmdldCgpLCBk
ZXN0aW5hdGlvblByb3RvY29sLmdldCgpLCBkZXN0aW5hdGlvbkhvc3QuZ2V0KCksIGFsbG93RGVz
dGluYXRpb25TdWJkb21haW5zKTsKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29u
dGV4dCk7CiB9CiAKQEAgLTIyMDcsNyArMjIwNyw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RS
dW5uZXI6OnN0YXRpY0Z1bmMKICAgICAgICAgeyAicXVldWVOb25Mb2FkaW5nU2NyaXB0IiwgcXVl
dWVOb25Mb2FkaW5nU2NyaXB0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicXVldWVSZWxv
YWQiLCBxdWV1ZVJlbG9hZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwg
a0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZUFsbFZp
c2l0ZWRMaW5rcyIsIHJlbW92ZUFsbFZpc2l0ZWRMaW5rc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAg
ICAgIHsgInJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5IiwgcmVtb3ZlT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJyZW1vdmVPcmln
aW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSIsIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5Iiwg
cmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicmVz
ZXRQYWdlVmlzaWJpbGl0eSIsIHJlc2V0UGFnZVZpc2liaWxpdHlDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJzZXRBY2NlcHRzRWRpdGluZyIsIHNldEFjY2VwdHNFZGl0aW5nQ2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKQEAgLTIyNzYsNyArMjI3Niw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5u
ZXI6OnN0YXRpY0Z1bmMKICAgICAgICAgeyAid2FpdEZvclBvbGljeURlbGVnYXRlIiwgd2FpdEZv
clBvbGljeURlbGVnYXRlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAid2FpdFVudGlsRG9u
ZSIsIHdhaXRVbnRpbERvbmVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ3aW5kb3dDb3Vu
dCIsIHdpbmRvd0NvdW50Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAiYWRkT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkiLCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCisgICAgICAgIHsgImFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5IiwgYWRk
T3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVS
ZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJz
ZXRTY3JvbGxiYXJQb2xpY3kiLCBzZXRTY3JvbGxiYXJQb2xpY3lDYWxsYmFjaywga0pTUHJvcGVy
dHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAog
ICAgICAgICB7ICJhdXRoZW50aWNhdGVTZXNzaW9uIiwgYXV0aGVudGljYXRlU2Vzc2lvbkNhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFNob3VsZFBhaW50QnJva2VuSW1hZ2UiLCBzZXRT
aG91bGRQYWludEJyb2tlbkltYWdlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBS
ZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJl
ZS9UZXN0UnVubmVyLmgJKHJldmlzaW9uIDI2NTA4MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RSdW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEzLDggKzMxMyw4IEBAIHB1YmxpYzoK
ICAgICBjb25zdCBzdGQ6OnZlY3RvcjxjaGFyPiYgYXVkaW9SZXN1bHQoKSBjb25zdCB7IHJldHVy
biBtX2F1ZGlvUmVzdWx0OyB9CiAgICAgdm9pZCBzZXRBdWRpb1Jlc3VsdChjb25zdCBzdGQ6OnZl
Y3RvcjxjaGFyPiYgYXVkaW9EYXRhKSB7IG1fYXVkaW9SZXN1bHQgPSBhdWRpb0RhdGE7IH0KIAot
ICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNl
T3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0
aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwotICAgIHZvaWQg
cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2lu
LCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlv
bkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZvaWQgYWRkT3Jp
Z2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmlu
Z1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJv
b2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNj
ZXNzQWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBk
ZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogCiAgICAgdm9pZCBhZGRVc2VyU2NyaXB0KEpTU3Ry
aW5nUmVmIHNvdXJjZSwgYm9vbCBydW5BdFN0YXJ0LCBib29sIGFsbEZyYW1lcyk7CiAgICAgdm9p
ZCBhZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgYWxsRnJhbWVzKTsK
SW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCShyZXZpc2lv
biAyNjUwODEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQko
d29ya2luZyBjb3B5KQpAQCAtNzUyLDcgKzc1Miw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6d2FpdEZv
clBvbGljeURlbGVnYXRlKCkKICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRQb2xpY3lEZWxl
Z2F0ZTpwb2xpY3lEZWxlZ2F0ZV07CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6YWRkT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBk
ZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vz
c0FsbG93TGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVz
dGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zKQogewogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc291
cmNlT3JpZ2luQ0YgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIHNvdXJjZU9yaWdpbikpOwogICAgIE5TU3RyaW5nICpzb3VyY2VPcmlnaW5OUyA9IChf
X2JyaWRnZSBOU1N0cmluZyAqKXNvdXJjZU9yaWdpbkNGLmdldCgpOwpAQCAtNzYzLDcgKzc2Myw3
IEBAIHZvaWQgVGVzdFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXMKICAgICBbV2ViVmll
dyBfYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOnNvdXJjZU9y
aWdpbk5TIGRlc3RpbmF0aW9uUHJvdG9jb2w6ZGVzdGluYXRpb25Qcm90b2NvbE5TIGRlc3RpbmF0
aW9uSG9zdDpkZXN0aW5hdGlvbkhvc3ROUyBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczphbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWluc107CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmlu
Z1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJv
b2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIFRlc3RSdW5uZXI6OnJlbW92ZU9y
aWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJp
bmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBi
b29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewogICAgIFJldGFpblB0cjxDRlN0cmlu
Z1JlZj4gc291cmNlT3JpZ2luQ0YgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFs
bG9jYXRvckRlZmF1bHQsIHNvdXJjZU9yaWdpbikpOwogICAgIE5TU3RyaW5nICpzb3VyY2VPcmln
aW5OUyA9IChfX2JyaWRnZSBOU1N0cmluZyAqKXNvdXJjZU9yaWdpbkNGLmdldCgpOwpJbmRleDog
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCShyZXZpc2lvbiAy
NjUwODEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCSh3
b3JraW5nIGNvcHkpCkBAIC0xMDUyLDcgKzEwNTIsNyBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZp
ZXdUb0NvbnNpc3RlbnRTdGF0CiAgICAgaWYgKHdlYlZpZXdQcml2YXRlICYmIFNVQ0NFRURFRCh3
ZWJWaWV3UHJpdmF0ZS0+dmlld1dpbmRvdygmdmlld1dpbmRvdykpICYmIHZpZXdXaW5kb3cpCiAg
ICAgICAgIDo6U2V0Rm9jdXModmlld1dpbmRvdyk7CiAKLSAgICB3ZWJWaWV3UHJpdmF0ZS0+cmVz
ZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CisgICAgd2ViVmlld1ByaXZhdGUtPnJlc2V0T3Jp
Z2luQWNjZXNzQWxsb3dMaXN0cygpOwogCiAgICAgc2hhcmVkVUlEZWxlZ2F0ZS0+cmVzZXRVbmRv
TWFuYWdlcigpOwogCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldp
bi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJX
aW4uY3BwCShyZXZpc2lvbiAyNjUwODEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVz
dFJ1bm5lcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNzIsMjIgKzEwNzIsMjIgQEAgc3Rh
dGljIF9ic3RyX3QgYnN0clQoSlNTdHJpbmdSZWYganNTdHJpbgogICAgIHJldHVybiBfYnN0cl90
KEpTU3RyaW5nQ29weUJTVFIoanNTdHJpbmcpLCBmYWxzZSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5l
cjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2lu
LCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlv
bkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIFRlc3RSdW5uZXI6
OmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwg
SlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25I
b3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewogICAgIENPTVB0cjxJV2Vi
Vmlld1ByaXZhdGUyPiB3ZWJWaWV3OwogICAgIGlmIChGQUlMRUQoV2ViS2l0Q3JlYXRlSW5zdGFu
Y2UoX191dWlkb2YoV2ViVmlldyksIDAsIF9fdXVpZG9mKHdlYlZpZXcpLCByZWludGVycHJldF9j
YXN0PHZvaWQqKj4oJndlYlZpZXcpKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYlZpZXct
PmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGJzdHJUKHNvdXJjZU9yaWdpbikuR2V0QlNU
UigpLCBic3RyVChkZXN0aW5hdGlvblByb3RvY29sKS5HZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0
aW9uSG9zdCkuR2V0QlNUUigpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgd2Vi
Vmlldy0+YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoYnN0clQoc291cmNlT3JpZ2luKS5H
ZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9uUHJvdG9jb2wpLkdldEJTVFIoKSwgYnN0clQoZGVz
dGluYXRpb25Ib3N0KS5HZXRCU1RSKCksIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0K
IAotdm9pZCBUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0
cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpT
U3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlu
cykKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSlNT
dHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBK
U1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpCiB7CiAgICAgQ09NUHRyPElXZWJWaWV3UHJpdmF0ZTI+IHdlYlZpZXc7CiAgICAgaWYgKEZB
SUxFRChXZWJLaXRDcmVhdGVJbnN0YW5jZShfX3V1aWRvZihXZWJWaWV3KSwgMCwgX191dWlkb2Yo
d2ViVmlldyksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmd2ViVmlldykpKSkKICAgICAgICAg
cmV0dXJuOwogCi0gICAgd2ViVmlldy0+cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
YnN0clQoc291cmNlT3JpZ2luKS5HZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9uUHJvdG9jb2wp
LkdldEJTVFIoKSwgYnN0clQoZGVzdGluYXRpb25Ib3N0KS5HZXRCU1RSKCksIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKTsKKyAgICB3ZWJWaWV3LT5yZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xp
c3RFbnRyeShic3RyVChzb3VyY2VPcmlnaW4pLkdldEJTVFIoKSwgYnN0clQoZGVzdGluYXRpb25Q
cm90b2NvbCkuR2V0QlNUUigpLCBic3RyVChkZXN0aW5hdGlvbkhvc3QpLkdldEJTVFIoKSwgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldFNjcm9s
bGJhclBvbGljeShKU1N0cmluZ1JlZiBvcmllbnRhdGlvbiwgSlNTdHJpbmdSZWYgcG9saWN5KQpJ
bmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRVc2Vy
Q29udGVudE1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAkocmV2aXNpb24g
MjY1MDgxKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJL
aXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsMzMgKzEyMCwz
MyBAQCBzdGF0aWMgdm9pZCBmaWxsVVJMTGlzdEZyb21QYXRocyhjaGFyKiogCiAgICAgfQogfQog
Ci1zdGF0aWMgdm9pZCByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKFdlYktp
dFVzZXJDb250ZW50TWFuYWdlciogdXNlckNvbnRlbnRNYW5hZ2VyLCBjaGFyKiogd2hpdGVsaXN0
LCBjaGFyKiogYmxhY2tsaXN0KQorc3RhdGljIHZvaWQgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50
QW5kUmVzZXRMaXN0cyhXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIqIHVzZXJDb250ZW50TWFuYWdl
ciwgY2hhcioqIGFsbG93TGlzdCwgY2hhcioqIGJsb2NrTGlzdCkKIHsKICAgICB3ZWJraXRfdXNl
cl9jb250ZW50X21hbmFnZXJfcmVtb3ZlX2FsbF9zdHlsZV9zaGVldHModXNlckNvbnRlbnRNYW5h
Z2VyKTsKICAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfcmVtb3ZlX2FsbF9zY3JpcHRz
KHVzZXJDb250ZW50TWFuYWdlcik7CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3Jl
bW92ZV9hbGxfZmlsdGVycyh1c2VyQ29udGVudE1hbmFnZXIpOwogCi0gICAgd2hpbGUgKCp3aGl0
ZWxpc3QpIHsKLSAgICAgICAgZ19mcmVlKCp3aGl0ZWxpc3QpOwotICAgICAgICAqd2hpdGVsaXN0
ID0gMDsKLSAgICAgICAgd2hpdGVsaXN0Kys7CisgICAgd2hpbGUgKCphbGxvd0xpc3QpIHsKKyAg
ICAgICAgZ19mcmVlKCphbGxvd0xpc3QpOworICAgICAgICAqYWxsb3dMaXN0ID0gMDsKKyAgICAg
ICAgYWxsb3dMaXN0Kys7CiAgICAgfQogCi0gICAgd2hpbGUgKCpibGFja2xpc3QpIHsKLSAgICAg
ICAgZ19mcmVlKCpibGFja2xpc3QpOwotICAgICAgICAqYmxhY2tsaXN0ID0gMDsKLSAgICAgICAg
YmxhY2tsaXN0Kys7CisgICAgd2hpbGUgKCpibG9ja0xpc3QpIHsKKyAgICAgICAgZ19mcmVlKCpi
bG9ja0xpc3QpOworICAgICAgICAqYmxvY2tMaXN0ID0gMDsKKyAgICAgICAgYmxvY2tMaXN0Kys7
CiAgICAgfQogfQogCiBzdGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0ZWRT
dHlsZVNoZWV0KFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewotICAgIGNoYXIq
IHdoaXRlbGlzdFszXSA9IHsgMCwgMCwgMCB9OwotICAgIGNoYXIqIGJsYWNrbGlzdFszXSA9IHsg
MCwgMCwgMCB9OworICAgIGNoYXIqIGFsbG93TGlzdFszXSA9IHsgMCwgMCwgMCB9OworICAgIGNo
YXIqIGJsb2NrTGlzdFszXSA9IHsgMCwgMCwgMCB9OwogCi0gICAgcmVtb3ZlT2xkSW5qZWN0ZWRD
b250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hp
dGVsaXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0
TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIGFsbG93TGlzdCwgYmxvY2tM
aXN0KTsKIAotICAgIC8vIFdpdGhvdXQgYSB3aGl0ZWxpc3Qgb3IgYSBibGFja2xpc3QgYWxsIFVS
THMgc2hvdWxkIGhhdmUgdGhlIGluamVjdGVkIHN0eWxlIHNoZWV0LgorICAgIC8vIFdpdGhvdXQg
YSBhbGxvd0xpc3Qgb3IgYSBibG9ja0xpc3QgYWxsIFVSTHMgc2hvdWxkIGhhdmUgdGhlIGluamVj
dGVkIHN0eWxlIHNoZWV0LgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiByYW5kb21QYXRoID0gInNv
bWVyYW5kb21wYXRoIjsKICAgICBnX2Fzc2VydF9mYWxzZShpc1N0eWxlU2hlZXRJbmplY3RlZEZv
clVSTEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CiAgICAgV2ViS2l0VXNlclN0eWxlU2hlZXQq
IHN0eWxlU2hlZXQgPSB3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF9uZXcoa0luamVjdGVkU3R5bGVT
aGVldCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJf
U1RZTEVfTEVWRUxfVVNFUiwgbnVsbHB0ciwgbnVsbHB0cik7CkBAIC0xNTQsNyArMTU0LDcgQEAg
c3RhdGljIHZvaWQgdGVzdFVzZXJDb250ZW50TWFuYWdlckluamVjdAogICAgIHdlYmtpdF91c2Vy
X3N0eWxlX3NoZWV0X3VucmVmKHN0eWxlU2hlZXQpOwogICAgIGdfYXNzZXJ0X3RydWUoaXNTdHls
ZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCkpOwogCi0gICAgcmVt
b3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFu
YWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVk
Q29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIGFs
bG93TGlzdCwgYmxvY2tMaXN0KTsKIAogICAgIGdfYXNzZXJ0X2ZhbHNlKGlzU3R5bGVTaGVldElu
amVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIHJhbmRvbVBhdGgsICJXZWJFeHRlbnNpb25UZXN0U2Ny
aXB0V29ybGQiKSk7CiAgICAgc3R5bGVTaGVldCA9IHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X25l
d19mb3Jfd29ybGQoa0luamVjdGVkU3R5bGVTaGVldCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpF
Q1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU1RZTEVfTEVWRUxfVVNFUiwgIldlYkV4dGVuc2lv
blRlc3RTY3JpcHRXb3JsZCIsIG51bGxwdHIsIG51bGxwdHIpOwpAQCAtMTYyLDQyICsxNjIsNDIg
QEAgc3RhdGljIHZvaWQgdGVzdFVzZXJDb250ZW50TWFuYWdlckluamVjdAogICAgIHdlYmtpdF91
c2VyX3N0eWxlX3NoZWV0X3VucmVmKHN0eWxlU2hlZXQpOwogICAgIGdfYXNzZXJ0X3RydWUoaXNT
dHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCwgIldlYkV4dGVu
c2lvblRlc3RTY3JpcHRXb3JsZCIpKTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFu
ZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwg
YmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRl
c3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiAK
LSAgICBmaWxsVVJMTGlzdEZyb21QYXRocyhibGFja2xpc3QsIHJhbmRvbVBhdGgsIDApOwotICAg
IHN0eWxlU2hlZXQgPSB3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF9uZXcoa0luamVjdGVkU3R5bGVT
aGVldCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJf
U1RZTEVfTEVWRUxfVVNFUiwgbnVsbHB0ciwgYmxhY2tsaXN0KTsKKyAgICBmaWxsVVJMTGlzdEZy
b21QYXRocyhibG9ja0xpc3QsIHJhbmRvbVBhdGgsIDApOworICAgIHN0eWxlU2hlZXQgPSB3ZWJr
aXRfdXNlcl9zdHlsZV9zaGVldF9uZXcoa0luamVjdGVkU3R5bGVTaGVldCwgV0VCS0lUX1VTRVJf
Q09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU1RZTEVfTEVWRUxfVVNFUiwg
bnVsbHB0ciwgYmxvY2tMaXN0KTsKICAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfYWRk
X3N0eWxlX3NoZWV0KHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBzdHlsZVNoZWV0
KTsKICAgICB3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF91bnJlZihzdHlsZVNoZWV0KTsKICAgICBn
X2Fzc2VydF9mYWxzZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5k
b21QYXRoKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0
UGF0aCh0ZXN0LCAic29tZW90aGVycmFuZG9tcGF0aCIpKTsKIAotICAgIHJlbW92ZU9sZEluamVj
dGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCks
IHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRS
ZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJs
b2NrTGlzdCk7CiAKLSAgICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVXaGl0ZUxpc3QgPSAiaW50
aGV3aGl0ZWxpc3QiOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBub3RJbldoaXRlbGlzdCA9ICJu
b3RpbnRoZXdoaXRlbGlzdCI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhlV2hpdGVMaXN0
QW5kQmxhY2tMaXN0ID0gImludGhld2hpdGVsaXN0YW5kYmxhY2tsaXN0IjsKLQotICAgIGZpbGxV
UkxMaXN0RnJvbVBhdGhzKHdoaXRlbGlzdCwgaW5UaGVXaGl0ZUxpc3QsIGluVGhlV2hpdGVMaXN0
QW5kQmxhY2tMaXN0LCAwKTsKLSAgICBmaWxsVVJMTGlzdEZyb21QYXRocyhibGFja2xpc3QsIGlu
VGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0LCAwKTsKLSAgICBzdHlsZVNoZWV0ID0gd2Via2l0X3Vz
ZXJfc3R5bGVfc2hlZXRfbmV3KGtJbmplY3RlZFN0eWxlU2hlZXQsIFdFQktJVF9VU0VSX0NPTlRF
TlRfSU5KRUNUX0FMTF9GUkFNRVMsIFdFQktJVF9VU0VSX1NUWUxFX0xFVkVMX1VTRVIsIHdoaXRl
bGlzdCwgYmxhY2tsaXN0KTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVBbGxvd0xpc3Qg
PSAiaW50aGVhbGxvd2xpc3QiOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBub3RJbkFsbG93TGlz
dCA9ICJub3RpbnRoZWFsbG93bGlzdCI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhlQWxs
b3dMaXN0QW5kQmxvY2tMaXN0ID0gImludGhlYWxsb3dsaXN0YW5kYmxvY2tsaXN0IjsKKworICAg
IGZpbGxVUkxMaXN0RnJvbVBhdGhzKGFsbG93TGlzdCwgaW5UaGVBbGxvd0xpc3QsIGluVGhlQWxs
b3dMaXN0QW5kQmxvY2tMaXN0LCAwKTsKKyAgICBmaWxsVVJMTGlzdEZyb21QYXRocyhibG9ja0xp
c3QsIGluVGhlQWxsb3dMaXN0QW5kQmxvY2tMaXN0LCAwKTsKKyAgICBzdHlsZVNoZWV0ID0gd2Vi
a2l0X3VzZXJfc3R5bGVfc2hlZXRfbmV3KGtJbmplY3RlZFN0eWxlU2hlZXQsIFdFQktJVF9VU0VS
X0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFNRVMsIFdFQktJVF9VU0VSX1NUWUxFX0xFVkVMX1VTRVIs
IGFsbG93TGlzdCwgYmxvY2tMaXN0KTsKICAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJf
YWRkX3N0eWxlX3NoZWV0KHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBzdHlsZVNo
ZWV0KTsKICAgICB3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF91bnJlZihzdHlsZVNoZWV0KTsKLSAg
ICBnX2Fzc2VydF90cnVlKGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIGlu
VGhlV2hpdGVMaXN0KSk7Ci0gICAgZ19hc3NlcnRfZmFsc2UoaXNTdHlsZVNoZWV0SW5qZWN0ZWRG
b3JVUkxBdFBhdGgodGVzdCwgaW5UaGVXaGl0ZUxpc3RBbmRCbGFja0xpc3QpKTsKLSAgICBnX2Fz
c2VydF9mYWxzZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBub3RJbldo
aXRlbGlzdCkpOworICAgIGdfYXNzZXJ0X3RydWUoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxB
dFBhdGgodGVzdCwgaW5UaGVBbGxvd0xpc3QpKTsKKyAgICBnX2Fzc2VydF9mYWxzZShpc1N0eWxl
U2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBpblRoZUFsbG93TGlzdEFuZEJsb2NrTGlz
dCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRo
KHRlc3QsIG5vdEluQWxsb3dMaXN0KSk7CiAKICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBjbGVh
biB1cCB0aGUgZW52aXJvbm1lbnQgYmVmb3JlIG90aGVyIHRlc3RzLgotICAgIHJlbW92ZU9sZElu
amVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0
KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRB
bmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3Qs
IGJsb2NrTGlzdCk7CiB9CiAKIHN0YXRpYyB2b2lkIHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmpl
Y3RlZFNjcmlwdChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBjaGFy
KiB3aGl0ZWxpc3RbM10gPSB7IDAsIDAsIDAgfTsKLSAgICBjaGFyKiBibGFja2xpc3RbM10gPSB7
IDAsIDAsIDAgfTsKKyAgICBjaGFyKiBhbGxvd0xpc3RbM10gPSB7IDAsIDAsIDAgfTsKKyAgICBj
aGFyKiBibG9ja0xpc3RbM10gPSB7IDAsIDAsIDAgfTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVk
Q29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdo
aXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNl
dExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2Nr
TGlzdCk7CiAKLSAgICAvLyBXaXRob3V0IGEgd2hpdGVsaXN0IG9yIGEgYmxhY2tsaXN0IGFsbCBV
UkxzIHNob3VsZCBoYXZlIHRoZSBpbmplY3RlZCBzY3JpcHQuCisgICAgLy8gV2l0aG91dCBhIGFs
bG93TGlzdCBvciBhIGJsb2NrTGlzdCBhbGwgVVJMcyBzaG91bGQgaGF2ZSB0aGUgaW5qZWN0ZWQg
c2NyaXB0LgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiByYW5kb21QYXRoID0gInNvbWVyYW5kb21w
YXRoIjsKICAgICBnX2Fzc2VydF9mYWxzZShpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRl
c3QsIHJhbmRvbVBhdGgpKTsKICAgICBXZWJLaXRVc2VyU2NyaXB0KiBzY3JpcHQgPSB3ZWJraXRf
dXNlcl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpF
Q1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQs
IG51bGxwdHIsIG51bGxwdHIpOwpAQCAtMjA1LDcgKzIwNSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RV
c2VyQ29udGVudE1hbmFnZXJJbmplY3QKICAgICB3ZWJraXRfdXNlcl9zY3JpcHRfdW5yZWYoc2Ny
aXB0KTsKICAgICBnX2Fzc2VydF90cnVlKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVz
dCwgcmFuZG9tUGF0aCkpOwogCi0gICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRM
aXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFja2xp
c3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91
c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIGFsbG93TGlzdCwgYmxvY2tMaXN0KTsKIAogICAgIGdf
YXNzZXJ0X2ZhbHNlKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0
aCwgIldlYkV4dGVuc2lvblRlc3RTY3JpcHRXb3JsZCIpKTsKICAgICBzY3JpcHQgPSB3ZWJraXRf
dXNlcl9zY3JpcHRfbmV3X2Zvcl93b3JsZChrSW5qZWN0ZWRTY3JpcHQsIFdFQktJVF9VU0VSX0NP
TlRFTlRfSU5KRUNUX0FMTF9GUkFNRVMsIFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRfRE9D
VU1FTlRfRU5ELCAiV2ViRXh0ZW5zaW9uVGVzdFNjcmlwdFdvcmxkIiwgbnVsbHB0ciwgbnVsbHB0
cik7CkBAIC0yMTMsMzIgKzIxMywzMiBAQCBzdGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5h
Z2VySW5qZWN0CiAgICAgd2Via2l0X3VzZXJfc2NyaXB0X3VucmVmKHNjcmlwdCk7CiAgICAgZ19h
c3NlcnRfdHJ1ZShpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIHJhbmRvbVBhdGgs
ICJXZWJFeHRlbnNpb25UZXN0U2NyaXB0V29ybGQiKSk7CiAKLSAgICByZW1vdmVPbGRJbmplY3Rl
ZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3
aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVz
ZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9j
a0xpc3QpOwogCi0gICAgZmlsbFVSTExpc3RGcm9tUGF0aHMoYmxhY2tsaXN0LCByYW5kb21QYXRo
LCAwKTsKLSAgICBzY3JpcHQgPSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlw
dCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NS
SVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQsIG51bGxwdHIsIGJsYWNrbGlzdCk7CisgICAgZmls
bFVSTExpc3RGcm9tUGF0aHMoYmxvY2tMaXN0LCByYW5kb21QYXRoLCAwKTsKKyAgICBzY3JpcHQg
PSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09O
VEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NV
TUVOVF9FTkQsIG51bGxwdHIsIGJsb2NrTGlzdCk7CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9t
YW5hZ2VyX2FkZF9zY3JpcHQodGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHNjcmlw
dCk7CiAgICAgd2Via2l0X3VzZXJfc2NyaXB0X3VucmVmKHNjcmlwdCk7CiAgICAgZ19hc3NlcnRf
ZmFsc2UoaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CiAg
ICAgZ19hc3NlcnRfdHJ1ZShpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsICJzb21l
b3RoZXJyYW5kb21wYXRoIikpOwogCi0gICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVz
ZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFj
a2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+
bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIGFsbG93TGlzdCwgYmxvY2tMaXN0KTsKIAotICAg
IHN0YXRpYyBjb25zdCBjaGFyKiBpblRoZVdoaXRlTGlzdCA9ICJpbnRoZXdoaXRlbGlzdCI7Ci0g
ICAgc3RhdGljIGNvbnN0IGNoYXIqIG5vdEluV2hpdGVsaXN0ID0gIm5vdGludGhld2hpdGVsaXN0
IjsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVXaGl0ZUxpc3RBbmRCbGFja0xpc3QgPSAi
aW50aGV3aGl0ZWxpc3RhbmRibGFja2xpc3QiOwotCi0gICAgZmlsbFVSTExpc3RGcm9tUGF0aHMo
d2hpdGVsaXN0LCBpblRoZVdoaXRlTGlzdCwgaW5UaGVXaGl0ZUxpc3RBbmRCbGFja0xpc3QsIDAp
OwotICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKGJsYWNrbGlzdCwgaW5UaGVXaGl0ZUxpc3RBbmRC
bGFja0xpc3QsIDApOwotICAgIHNjcmlwdCA9IHdlYmtpdF91c2VyX3NjcmlwdF9uZXcoa0luamVj
dGVkU2NyaXB0LCBXRUJLSVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJLSVRf
VVNFUl9TQ1JJUFRfSU5KRUNUX0FUX0RPQ1VNRU5UX0VORCwgd2hpdGVsaXN0LCBibGFja2xpc3Qp
OworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpblRoZUFsbG93TGlzdCA9ICJpbnRoZWFsbG93bGlz
dCI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIG5vdEluQWxsb3dMaXN0ID0gIm5vdGludGhlYWxs
b3dsaXN0IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVBbGxvd0xpc3RBbmRCbG9ja0xp
c3QgPSAiaW50aGVhbGxvd2xpc3RhbmRibG9ja0xpc3QiOworCisgICAgZmlsbFVSTExpc3RGcm9t
UGF0aHMoYWxsb3dMaXN0LCBpblRoZUFsbG93TGlzdCwgaW5UaGVBbGxvd0xpc3RBbmRCbG9ja0xp
c3QsIDApOworICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKGJsb2NrTGlzdCwgaW5UaGVBbGxvd0xp
c3RBbmRCbG9ja0xpc3QsIDApOworICAgIHNjcmlwdCA9IHdlYmtpdF91c2VyX3NjcmlwdF9uZXco
a0luamVjdGVkU2NyaXB0LCBXRUJLSVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVTLCBX
RUJLSVRfVVNFUl9TQ1JJUFRfSU5KRUNUX0FUX0RPQ1VNRU5UX0VORCwgYWxsb3dMaXN0LCBibG9j
a0xpc3QpOwogICAgIHdlYmtpdF91c2VyX2NvbnRlbnRfbWFuYWdlcl9hZGRfc2NyaXB0KHRlc3Qt
Pm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBzY3JpcHQpOwogICAgIHdlYmtpdF91c2VyX3Nj
cmlwdF91bnJlZihzY3JpcHQpOwotICAgIGdfYXNzZXJ0X3RydWUoaXNTY3JpcHRJbmplY3RlZEZv
clVSTEF0UGF0aCh0ZXN0LCBpblRoZVdoaXRlTGlzdCkpOwotICAgIGdfYXNzZXJ0X2ZhbHNlKGlz
U2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5UaGVXaGl0ZUxpc3RBbmRCbGFja0xp
c3QpKTsKLSAgICBnX2Fzc2VydF9mYWxzZShpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRl
c3QsIG5vdEluV2hpdGVsaXN0KSk7CisgICAgZ19hc3NlcnRfdHJ1ZShpc1NjcmlwdEluamVjdGVk
Rm9yVVJMQXRQYXRoKHRlc3QsIGluVGhlQWxsb3dMaXN0KSk7CisgICAgZ19hc3NlcnRfZmFsc2Uo
aXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBpblRoZUFsbG93TGlzdEFuZEJsb2Nr
TGlzdCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgo
dGVzdCwgbm90SW5BbGxvd0xpc3QpKTsKIAogICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIGNsZWFu
IHVwIHRoZSBlbnZpcm9ubWVudCBiZWZvcmUgb3RoZXIgdGVzdHMuCi0gICAgcmVtb3ZlT2xkSW5q
ZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQo
KSwgd2hpdGVsaXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFu
ZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIGFsbG93TGlzdCwg
YmxvY2tMaXN0KTsKIH0KIAogY2xhc3MgVXNlclNjcmlwdE1lc3NhZ2VUZXN0IDogcHVibGljIFdl
YlZpZXdUZXN0IHsKQEAgLTQ3NywxMCArNDc3LDEwIEBAIHN0YXRpYyBXZWJLaXRVc2VyQ29udGVu
dEZpbHRlciogZ2V0VXNlckMKIAogc3RhdGljIHZvaWQgdGVzdFVzZXJDb250ZW50TWFuYWdlckNv
bnRlbnRGaWx0ZXIoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAgY2hh
ciogd2hpdGVsaXN0W10gPSB7IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKLSAgICBjaGFy
KiBibGFja2xpc3RbXSA9IHsgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OworICAgIGNoYXIq
IGFsbG93TGlzdFtdID0geyBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07CisgICAgY2hhciog
YmxvY2tMaXN0W10gPSB7IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKIAotICAgIHJlbW92
ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFn
ZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENv
bnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxv
d0xpc3QsIGJsb2NrTGlzdCk7CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogc29tZVBhdGggPSAi
c29tZXBhdGgiOwogICAgIGdfYXNzZXJ0X2ZhbHNlKGlzQ1NTQmxvY2tlZEZvclVSTEF0UGF0aCh0
ZXN0LCBzb21lUGF0aCkpOwpJbmRleDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVy
L0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCShyZXZpc2lvbiAyNjUwODEpCisrKyBUb29s
cy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC01NzEsMTIgKzU3MSwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEF1dGhvckFu
ZFVzZXJTdHlsZXNFCiAgICAgV0tCdW5kbGVTZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChp
bmplY3RlZEJ1bmRsZS5idW5kbGUoKSwgaW5qZWN0ZWRCdW5kbGUucGFnZUdyb3VwKCksIGVuYWJs
ZWQpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2Nv
bCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJk
b21haW5zKQordm9pZCBUZXN0UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShK
U1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2ws
IEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9t
YWlucykKIHsKICAgICBXS0J1bmRsZUFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEluamVj
dGVkQnVuZGxlOjpzaW5nbGV0b24oKS5idW5kbGUoKSwgdG9XSyhzb3VyY2VPcmlnaW4pLmdldCgp
LCB0b1dLKGRlc3RpbmF0aW9uUHJvdG9jb2wpLmdldCgpLCB0b1dLKGRlc3RpbmF0aW9uSG9zdCku
Z2V0KCksIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0KIAotdm9pZCBUZXN0UnVubmVy
OjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmln
aW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0
aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK3ZvaWQgVGVzdFJ1bm5l
cjo6cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3Jp
Z2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5h
dGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgV0tCdW5k
bGVSZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShJbmplY3RlZEJ1bmRsZTo6c2luZ2xl
dG9uKCkuYnVuZGxlKCksIHRvV0soc291cmNlT3JpZ2luKS5nZXQoKSwgdG9XSyhkZXN0aW5hdGlv
blByb3RvY29sKS5nZXQoKSwgdG9XSyhkZXN0aW5hdGlvbkhvc3QpLmdldCgpLCBhbGxvd0Rlc3Rp
bmF0aW9uU3ViZG9tYWlucyk7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVu
bmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkocmV2aXNpb24gMjY1MDgxKQorKysgVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTExNSw4ICsxMTUsOCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQb3B1cEJsb2Nr
aW5nRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVk
KGJvb2wpOwogICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBi
b29sIHBlcm1pc3NpdmUgPSBmYWxzZSk7Ci0gICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9u
UHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWlucyk7Ci0gICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CisgICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmlu
Z1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3Ry
aW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7
CisgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1JlZiBz
b3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVm
IGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAg
dm9pZCBzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRVc2VyU3R5
bGVTaGVldExvY2F0aW9uKEpTU3RyaW5nUmVmKTsKICAgICB2b2lkIHNldFNwYXRpYWxOYXZpZ2F0
aW9uRW5hYmxlZChib29sKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRC
dW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAkocmV2aXNp
b24gMjY1MDgxKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5k
aW5ncy9UZXN0UnVubmVyLmlkbAkod29ya2luZyBjb3B5KQpAQCAtODgsOCArODgsOCBAQCBpbnRl
cmZhY2UgVGVzdFJ1bm5lciB7CiAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29s
ZWFuIHZhbHVlKTsKICAgICB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2xl
YW4gdmFsdWUpOwogICAgIHZvaWQgc2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbGVhbiBlbmFi
bGVkLCBib29sZWFuIHBlcm1pc3NpdmUpOwotICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoRE9NU3RyaW5nIHNvdXJjZU9yaWdpbiwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uUHJv
dG9jb2wsIERPTVN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2xlYW4gYWxsb3dEZXN0aW5hdGlv
blN1YmRvbWFpbnMpOwotICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
RE9NU3RyaW5nIHNvdXJjZU9yaWdpbiwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uUHJvdG9jb2wsIERP
TVN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2xlYW4gYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpOworICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoRE9NU3RyaW5nIHNv
dXJjZU9yaWdpbiwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uUHJvdG9jb2wsIERPTVN0cmluZyBkZXN0
aW5hdGlvbkhvc3QsIGJvb2xlYW4gYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZv
aWQgcmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoRE9NU3RyaW5nIHNvdXJjZU9yaWdp
biwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uUHJvdG9jb2wsIERPTVN0cmluZyBkZXN0aW5hdGlvbkhv
c3QsIGJvb2xlYW4gYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgc2V0VXNl
clN0eWxlU2hlZXRFbmFibGVkKGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0VXNlclN0eWxl
U2hlZXRMb2NhdGlvbihET01TdHJpbmcgbG9jYXRpb24pOwogICAgIHZvaWQgc2V0U3BhdGlhbE5h
dmlnYXRpb25FbmFibGVkKGJvb2xlYW4gdmFsdWUpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjY1MDgx
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUg
QEAKKzIwMjAtMDctMzAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9y
Zz4KKworICAgICAgICBVc2UgbW9yZSBpbmNsdXNpdmUgdGVybWlub2xvZ3kgaW4gVG9vbHMKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDk3MQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVwb3J0LWJsb2NrZWQtZmlsZS11cmku
cGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3hzbC1yZWRpcmVjdC1hbGxvd2VkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93ZWQyLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGly
ZWN0LWJsb2NrZWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVk
V29ybGQvY3Jvc3Mtb3JpZ2luLXhoci5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJp
dHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVs
aXN0ZWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13
aGl0ZWxpc3RpbmctYWxsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9vcmlnaW4td2hpdGVsaXN0aW5nLWV4YWN0LW1hdGNoLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWh0dHBzLmh0bWw6CisgICAg
ICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFk
ZHJlc3Nlcy13aXRoLXN1YmRvbWFpbnMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2VzLmh0bWw6CisgICAgICAg
ICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJlbW92YWwu
aHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxp
c3Rpbmctc3ViZG9tYWlucy5odG1sOgorCiAyMDIwLTA3LTI5ICBLYXRlIENoZW5leSAgPGthdGhl
cmluZV9jaGVuZXlAYXBwbGUuY29tPgogCiAgICAgICAgIE1pZ3JhdGUgQXBwLUJvdW5kIERvbWFp
bnMgY29kZSBmcm9tIFdlYktpdCBBZGRpdGlvbnMKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwt
aW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjUw
ODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20t
cmVtb3RlLXdoaXRlbGlzdGVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsx
LDQgQEAKIAotVGhpcyB0ZXN0IGlzIHRvIHNlZSBpZiBhIHJlbW90ZSBmaWxlIGNhbiBpbmNsdWRl
IGEgbG9jYWwgaW1hZ2Ugd2hlbiB0aGUgYWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3RlZCB1c2lu
ZyBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KK1RoaXMgdGVzdCBpcyB0byBzZWUgaWYg
YSByZW1vdGUgZmlsZSBjYW4gaW5jbHVkZSBhIGxvY2FsIGltYWdlIHdoZW4gdGhlIGFjY2VzcyBo
YXMgYmVlbiB3aGl0ZSBsaXN0ZWQgdXNpbmcgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnku
CiAKIFRlc3QgUGFzc2VkLiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3RlbHkuCkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRl
bGlzdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sCShyZXZpc2lvbiAyNjUw
ODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20t
cmVtb3RlLXdoaXRlbGlzdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBACiA8
c2NyaXB0PgogCiB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLXRlc3RSdW5uZXIuYWRkT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnkoJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycs
IHRydWUpOwordGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSgnaHR0cDov
LzEyNy4wLjAuMTo4MDAwJywgJ2ZpbGUnLCAnJywgdHJ1ZSk7CiAKIHZhciBsb2NhbEltYWdlTG9j
YXRpb24gPSB0ZXN0UnVubmVyLnBhdGhUb0xvY2FsUmVzb3VyY2UoJ2ZpbGU6Ly8vdG1wL0xheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2NvbXBhc3MuanBnJyk7CiAKQEAg
LTI0LDcgKzI0LDcgQEAgd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewogPC9zY3JpcHQ+CiAK
IDxwPlRoaXMgdGVzdCBpcyB0byBzZWUgaWYgYSByZW1vdGUgZmlsZSBjYW4gaW5jbHVkZSBhIGxv
Y2FsIGltYWdlIHdoZW4gdGhlCi1hY2Nlc3MgaGFzIGJlZW4gd2hpdGUgbGlzdGVkIHVzaW5nIGFk
ZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5LgorYWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3Rl
ZCB1c2luZyBhZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeS4KIAogPHAgaWQ9cmVzdWx0PlRl
c3QgaGFzIG5vdCBydW4uCiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkv
Y29udGVudFNlY3VyaXR5UG9saWN5L3JlcG9ydC1ibG9ja2VkLWZpbGUtdXJpLnBocAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBv
bGljeS9yZXBvcnQtYmxvY2tlZC1maWxlLXVyaS5waHAJKHJldmlzaW9uIDI2NTA4MSkKKysrIExh
eW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3JlcG9y
dC1ibG9ja2VkLWZpbGUtdXJpLnBocAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAKIDxo
dG1sPgogPGJvZHk+CiAgICAgPHNjcmlwdD4KLSAgICAgICAgdGVzdFJ1bm5lci5hZGRPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeSgnaHR0cDovLzEyNy4wLjAuMTo4MDAwJywgJ2ZpbGUnLCAnJywg
dHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnko
J2h0dHA6Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycsIHRydWUpOwogICAgICAgICB2YXIg
bG9jYWxJbWFnZUxvY2F0aW9uID0gdGVzdFJ1bm5lci5wYXRoVG9Mb2NhbFJlc291cmNlKCdmaWxl
Oi8vL3RtcC9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jb21wYXNz
LmpwZycpOwogCiAgICAgICAgIHZhciBsb2NhbEltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0
ZUVsZW1lbnQoJ2ltZycpOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93ZWQyLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kveHNsLXJlZGlyZWN0LWFsbG93ZWQyLmh0bWwJKHJldmlzaW9uIDI2NTA4MSkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1yZWRp
cmVjdC1hbGxvd2VkMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgp
OwogCiAgICAgLy8gVGhpcyBpcyBhIGNvbnRyaXZlZCB0ZXN0LiBXZSBub3JtYWxseSBkbyBub3Qg
YWxsb3cgY3Jvc3Mtb3JpZ2luIFhNTCBTdHlsZXNoZWV0cy4KLSAgICB0ZXN0UnVubmVyLmFkZE9y
aWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIs
ICJsb2NhbGhvc3QiLCBmYWxzZSk7CisgICAgdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NBbGxv
d0xpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9jYWxob3N0Iiwg
ZmFsc2UpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtcmVkaXJlY3QtYWxsb3dlZC5o
dG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3hzbC1yZWRpcmVjdC1hbGxvd2VkLmh0bWwJKHJldmlzaW9uIDI2NTA4
MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3hzbC1yZWRpcmVjdC1hbGxvd2VkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3
IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJh
bWVzQXNUZXh0KCk7CiAKICAgICAvLyBUaGlzIGlzIGEgY29udHJpdmVkIHRlc3QuIFdlIG5vcm1h
bGx5IGRvIG5vdCBhbGxvdyBjcm9zcy1vcmlnaW4gWE1MIFN0eWxlc2hlZXRzLgotICAgIHRlc3RS
dW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKKyAgICB0ZXN0UnVubmVyLmFkZE9yaWdp
bkFjY2Vzc0FsbG93TGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJs
b2NhbGhvc3QiLCBmYWxzZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1yZWRpcmVj
dC1ibG9ja2VkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWJsb2NrZWQuaHRtbAkocmV2
aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWJsb2NrZWQuaHRtbAkod29ya2luZyBjb3B5KQpA
QCAtNyw3ICs3LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAgdGVzdFJ1bm5lci5k
dW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKIAogICAgIC8vIFRoaXMgaXMgYSBjb250cml2ZWQgdGVz
dC4gV2Ugbm9ybWFsbHkgZG8gbm90IGFsbG93IGNyb3NzLW9yaWdpbiBYTUwgU3R5bGVzaGVldHMu
Ci0gICAgdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9jYWxob3N0IiwgZmFsc2UpOworICAgIHRlc3RSdW5u
ZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIs
ICJodHRwIiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Nyb3NzLW9y
aWdpbi14aHIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2lzb2xhdGVkV29ybGQvY3Jvc3Mtb3JpZ2luLXhoci5odG1sCShyZXZpc2lvbiAyNjUwODEp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY3Jvc3Mt
b3JpZ2luLXhoci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3IEBAIHZhciB0ZXN0
cyA9IFsKICAgICBmdW5jdGlvbigpIHsKICAgICAgICAgZGVidWcoJ1hIUiBmcm9tIGlzb2xhdGVk
IHdvcmxkIHdpdGggc2VjdXJpdHkgb3JpZ2luIHRoYXQgaXMgd2hpdGVsaXN0ZWQgZm9yIFhIUiB0
YXJnZXQnKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRJc29sYXRlZFdvcmxkU2VjdXJpdHlPcmln
aW4oMiwgJ2Nocm9tZS1leHRlbnNpb246Ly8xMjMnKTsKLSAgICAgICAgdGVzdFJ1bm5lci5hZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgnY2hyb21lLWV4dGVuc2lvbjovLzEyMycsICdodHRw
JywgJ2xvY2FsaG9zdCcsIGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nl
c3NBbGxvd0xpc3RFbnRyeSgnY2hyb21lLWV4dGVuc2lvbjovLzEyMycsICdodHRwJywgJ2xvY2Fs
aG9zdCcsIGZhbHNlKTsKICAgICAgICAgcnVuVGVzdEluV29ybGQoMiwgJ3hocicpOwogICAgIH0s
CiAgICAgZnVuY3Rpb24oKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctYWxsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWFsbC5o
dG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctYWxsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQs
OCArNCw4IEBACiA8c2NyaXB0PgogdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLXRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50
cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwgIiIsIHRydWUpOwotdGVzdFJ1bm5l
ci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiwg
Imh0dHAiLCAiIiwgdHJ1ZSk7Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVu
dHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICIiLCB0cnVlKTsKK3Rlc3RSdW5u
ZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIs
ICJodHRwIiwgIiIsIHRydWUpOwogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKIHsKSW5kZXg6IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1l
eGFjdC1tYXRjaC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1leGFjdC1tYXRjaC5odG1sCShyZXZpc2lv
biAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdp
bi13aGl0ZWxpc3RpbmctZXhhY3QtbWF0Y2guaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0
LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIHRlc3RSdW5uZXIud2Fp
dFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgi
aHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9jYWxob3N0IiwgZmFsc2UpOwordGVz
dFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIiwgImh0dHAiLCAibG9jYWxob3N0IiwgZmFsc2UpOwogCiBmdW5jdGlvbiBsb2cobWVzc2Fn
ZSkKIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2lu
LXdoaXRlbGlzdGluZy1odHRwcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1odHRwcy5odG1sCShyZXZp
c2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29y
aWdpbi13aGl0ZWxpc3RpbmctaHR0cHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcg
QEAKIDxzY3JpcHQ+CiB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIHRlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0
cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHBzIiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKK3Rlc3RS
dW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIsICJodHRwcyIsICJsb2NhbGhvc3QiLCBmYWxzZSk7CiAKIGZ1bmN0aW9uIGxvZyhtZXNzYWdl
KQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4t
d2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy13aXRoLXN1YmRvbWFpbnMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxp
c3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5odG1sCShyZXZpc2lvbiAyNjUwODEp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxp
c3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5odG1sCSh3b3JraW5nIGNvcHkpCkBA
IC0zLDcgKzMsNyBAQAogPHNjcmlwdD4KIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogdGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Ci10ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlz
dEVudHJ5KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIqLjAuMC4xIiwgdHJ1ZSk7
Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KCJodHRwOi8vbG9jYWxo
b3N0OjgwMDAiLCAiaHR0cCIsICIqLjAuMC4xIiwgdHJ1ZSk7CiAKIGZ1bmN0aW9uIGxvZyhtZXNz
YWdlKQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmln
aW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRy
ZXNzZXMuaHRtbAkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdD4KIHRlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwogdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci10ZXN0UnVubmVyLmFkZE9yaWdpbkFj
Y2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIxMjcu
MC4wLjEiLCBmYWxzZSk7Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5
KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIxMjcuMC4wLjEiLCBmYWxzZSk7CiAK
IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJlbW92YWwuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxp
c3RpbmctcmVtb3ZhbC5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0yOSwxMSArMjksMTEgQEAgZnVuY3Rpb24gdGVzdChvcmlnaW4sIHBy
b3RvY29sLCBob3N0LCBzdQogCiAgICAgbG9hZFVSTCh1cmwsIGZhbHNlKTsKIAotICAgIHRlc3RS
dW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkob3JpZ2luLCBwcm90b2NvbC50b0xv
d2VyQ2FzZSgpLCBob3N0LnRvTG93ZXJDYXNlKCksIHN1YmRvbWFpbnMpOworICAgIHRlc3RSdW5u
ZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkob3JpZ2luLCBwcm90b2NvbC50b0xvd2Vy
Q2FzZSgpLCBob3N0LnRvTG93ZXJDYXNlKCksIHN1YmRvbWFpbnMpOwogCiAgICAgbG9hZFVSTCh1
cmwsIHRydWUpOwogCi0gICAgdGVzdFJ1bm5lci5yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RF
bnRyeShvcmlnaW4sIHByb3RvY29sLCBob3N0LCBzdWJkb21haW5zKTsKKyAgICB0ZXN0UnVubmVy
LnJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KG9yaWdpbiwgcHJvdG9jb2wsIGhvc3Qs
IHN1YmRvbWFpbnMpOwogCiAgICAgbG9hZFVSTCh1cmwsIGZhbHNlKTsKIApJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXN1YmRv
bWFpbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmctc3ViZG9tYWlucy5odG1sCShyZXZpc2lvbiAyNjUw
ODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0
ZWxpc3Rpbmctc3ViZG9tYWlucy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQAog
PHNjcmlwdD4KIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Ci10ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2NhbGhvc3QiLCB0cnVlKTsKK3Rlc3RSdW5uZXIu
YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJo
dHRwIiwgImxvY2FsaG9zdCIsIHRydWUpOwogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405579</attachid>
            <date>2020-07-30 09:24:04 -0700</date>
            <delta_ts>2020-07-30 09:57:44 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>56431</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI2NTA4MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA3LTMwICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIG1vcmUgaW5jbHVzaXZl
IHRlcm1pbm9sb2d5IGluIFRvb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTQ5NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3JlcG9ydC1ibG9ja2VkLWZpbGUtdXJpLnBocDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtcmVkaXJlY3QtYWxsb3dlZC5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1yZWRp
cmVjdC1hbGxvd2VkMi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3hzbC1yZWRpcmVjdC1ibG9ja2VkLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRl
bGlzdGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2Fs
LWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWFsbC5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1leGFjdC1tYXRj
aC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRl
bGlzdGluZy1odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
b3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMtd2l0aC1zdWJkb21haW5zLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlw
LWFkZHJlc3Nlcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXN1YmRvbWFpbnMuaHRtbDoKKwogMjAyMC0w
Ny0yOSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAg
ICBNaWdyYXRlIEFwcC1Cb3VuZCBEb21haW5zIGNvZGUgZnJvbSBXZWJLaXQgQWRkaXRpb25zCklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9yZXBvcnQtYmxvY2tlZC1maWxlLXVyaS5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVwb3J0LWJsb2NrZWQt
ZmlsZS11cmkucGhwCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYmxvY2tlZC1maWxlLXVyaS5w
aHAJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBACiA8aHRtbD4KIDxib2R5PgogICAgIDxz
Y3JpcHQ+Ci0gICAgICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
J2h0dHA6Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycsIHRydWUpOworICAgICAgICB0ZXN0
UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KCdodHRwOi8vMTI3LjAuMC4xOjgw
MDAnLCAnZmlsZScsICcnLCB0cnVlKTsKICAgICAgICAgdmFyIGxvY2FsSW1hZ2VMb2NhdGlvbiA9
IHRlc3RSdW5uZXIucGF0aFRvTG9jYWxSZXNvdXJjZSgnZmlsZTovLy90bXAvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY29tcGFzcy5qcGcnKTsKIAogICAgICAgICB2
YXIgbG9jYWxJbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3hzbC1yZWRpcmVjdC1hbGxvd2VkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93
ZWQuaHRtbAkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAKICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1l
c0FzVGV4dCgpOwogCiAgICAgLy8gVGhpcyBpcyBhIGNvbnRyaXZlZCB0ZXN0LiBXZSBub3JtYWxs
eSBkbyBub3QgYWxsb3cgY3Jvc3Mtb3JpZ2luIFhNTCBTdHlsZXNoZWV0cy4KLSAgICB0ZXN0UnVu
bmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
LCAiaHR0cCIsICJsb2NhbGhvc3QiLCBmYWxzZSk7CisgICAgdGVzdFJ1bm5lci5hZGRPcmlnaW5B
Y2Nlc3NBbGxvd0xpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9j
YWxob3N0IiwgZmFsc2UpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtcmVkaXJlY3Qt
YWxsb3dlZDIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtcmVkaXJlY3QtYWxsb3dlZDIuaHRtbAkocmV2
aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93ZWQyLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTcsNyArNyw3IEBACiAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsK
IAogICAgIC8vIFRoaXMgaXMgYSBjb250cml2ZWQgdGVzdC4gV2Ugbm9ybWFsbHkgZG8gbm90IGFs
bG93IGNyb3NzLW9yaWdpbiBYTUwgU3R5bGVzaGVldHMuCi0gICAgdGVzdFJ1bm5lci5hZGRPcmln
aW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAi
bG9jYWxob3N0IiwgZmFsc2UpOworICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dM
aXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZh
bHNlKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWJsb2NrZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS94c2wtcmVkaXJlY3QtYmxvY2tlZC5odG1sCShyZXZpc2lvbiAyNjUwODEp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS94c2wtcmVkaXJlY3QtYmxvY2tlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBA
QAogICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CiAKICAgICAvLyBUaGlz
IGlzIGEgY29udHJpdmVkIHRlc3QuIFdlIG5vcm1hbGx5IGRvIG5vdCBhbGxvdyBjcm9zcy1vcmln
aW4gWE1MIFN0eWxlc2hlZXRzLgotICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZh
bHNlKTsKKyAgICB0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KCJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2NhbGhvc3QiLCBmYWxzZSk7CiB9CiA8L3Nj
cmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNv
bGF0ZWRXb3JsZC9jcm9zcy1vcmlnaW4teGhyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRt
bAkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9p
c29sYXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NyArMjcsNyBAQAogICAgIGZ1bmN0aW9uKCkgewogICAgICAgICBkZWJ1ZygnWEhSIGZyb20gaXNv
bGF0ZWQgd29ybGQgd2l0aCBzZWN1cml0eSBvcmlnaW4gdGhhdCBpcyB3aGl0ZWxpc3RlZCBmb3Ig
WEhSIHRhcmdldCcpOwogICAgICAgICB0ZXN0UnVubmVyLnNldElzb2xhdGVkV29ybGRTZWN1cml0
eU9yaWdpbigyLCAnY2hyb21lLWV4dGVuc2lvbjovLzEyMycpOwotICAgICAgICB0ZXN0UnVubmVy
LmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCdjaHJvbWUtZXh0ZW5zaW9uOi8vMTIzJywg
J2h0dHAnLCAnbG9jYWxob3N0JywgZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLmFkZE9yaWdp
bkFjY2Vzc0FsbG93TGlzdEVudHJ5KCdjaHJvbWUtZXh0ZW5zaW9uOi8vMTIzJywgJ2h0dHAnLCAn
bG9jYWxob3N0JywgZmFsc2UpOwogICAgICAgICBydW5UZXN0SW5Xb3JsZCgyLCAneGhyJyk7CiAg
ICAgfSwKICAgICBmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2Ut
ZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjUwODEpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3Rl
LXdoaXRlbGlzdGVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAK
IAotVGhpcyB0ZXN0IGlzIHRvIHNlZSBpZiBhIHJlbW90ZSBmaWxlIGNhbiBpbmNsdWRlIGEgbG9j
YWwgaW1hZ2Ugd2hlbiB0aGUgYWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3RlZCB1c2luZyBhZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KK1RoaXMgdGVzdCBpcyB0byBzZWUgaWYgYSByZW1v
dGUgZmlsZSBjYW4gaW5jbHVkZSBhIGxvY2FsIGltYWdlIHdoZW4gdGhlIGFjY2VzcyBoYXMgYmVl
biB3aGl0ZSBsaXN0ZWQgdXNpbmcgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkuCiAKIFRl
c3QgUGFzc2VkLiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3RlbHkuCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2Nh
bC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sCShyZXZpc2lvbiAyNjUwODEpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3Rl
LXdoaXRlbGlzdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBACiA8c2NyaXB0
PgogCiB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLXRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkoJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycsIHRydWUp
OwordGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSgnaHR0cDovLzEyNy4w
LjAuMTo4MDAwJywgJ2ZpbGUnLCAnJywgdHJ1ZSk7CiAKIHZhciBsb2NhbEltYWdlTG9jYXRpb24g
PSB0ZXN0UnVubmVyLnBhdGhUb0xvY2FsUmVzb3VyY2UoJ2ZpbGU6Ly8vdG1wL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2NvbXBhc3MuanBnJyk7CiAKQEAgLTI0LDcg
KzI0LDcgQEAKIDwvc2NyaXB0PgogCiA8cD5UaGlzIHRlc3QgaXMgdG8gc2VlIGlmIGEgcmVtb3Rl
IGZpbGUgY2FuIGluY2x1ZGUgYSBsb2NhbCBpbWFnZSB3aGVuIHRoZQotYWNjZXNzIGhhcyBiZWVu
IHdoaXRlIGxpc3RlZCB1c2luZyBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KK2FjY2Vz
cyBoYXMgYmVlbiB3aGl0ZSBsaXN0ZWQgdXNpbmcgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50
cnkuCiAKIDxwIGlkPXJlc3VsdD5UZXN0IGhhcyBub3QgcnVuLgogCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctYWxsLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmln
aW4td2hpdGVsaXN0aW5nLWFsbC5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctYWxsLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw4IEBACiA8c2NyaXB0PgogdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLXRlc3RSdW5uZXIuYWRkT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwg
IiIsIHRydWUpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIiwgImh0dHAiLCAiIiwgdHJ1ZSk7Cit0ZXN0UnVubmVyLmFkZE9y
aWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIs
ICIiLCB0cnVlKTsKK3Rlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIsICJodHRwIiwgIiIsIHRydWUpOwogCiBmdW5jdGlvbiBsb2co
bWVzc2FnZSkKIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
b3JpZ2luLXdoaXRlbGlzdGluZy1leGFjdC1tYXRjaC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1leGFj
dC1tYXRjaC5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctZXhhY3QtbWF0Y2guaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9j
YWxob3N0IiwgZmFsc2UpOwordGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRy
eSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9jYWxob3N0IiwgZmFsc2UpOwog
CiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1odHRwcy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlz
dGluZy1odHRwcy5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaHR0cHMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHBzIiwgImxvY2Fs
aG9zdCIsIGZhbHNlKTsKK3Rlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnko
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwcyIsICJsb2NhbGhvc3QiLCBmYWxzZSk7CiAK
IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy13aXRoLXN1YmRv
bWFpbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5o
dG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdD4KIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwogdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci10ZXN0UnVubmVyLmFk
ZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0
cCIsICIqLjAuMC4xIiwgdHJ1ZSk7Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlz
dEVudHJ5KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIqLjAuMC4xIiwgdHJ1ZSk7
CiAKIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2lu
LXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMuaHRtbAkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlw
LWFkZHJlc3Nlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdD4K
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci10
ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vbG9jYWxob3N0
OjgwMDAiLCAiaHR0cCIsICIxMjcuMC4wLjEiLCBmYWxzZSk7Cit0ZXN0UnVubmVyLmFkZE9yaWdp
bkFjY2Vzc0FsbG93TGlzdEVudHJ5KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIx
MjcuMC4wLjEiLCBmYWxzZSk7CiAKIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogewpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJl
bW92YWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC5odG1sCShyZXZpc2lvbiAyNjUwODEp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxp
c3RpbmctcmVtb3ZhbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMSArMjksMTEgQEAKIAog
ICAgIGxvYWRVUkwodXJsLCBmYWxzZSk7CiAKLSAgICB0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5KG9yaWdpbiwgcHJvdG9jb2wudG9Mb3dlckNhc2UoKSwgaG9zdC50b0xv
d2VyQ2FzZSgpLCBzdWJkb21haW5zKTsKKyAgICB0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0Fs
bG93TGlzdEVudHJ5KG9yaWdpbiwgcHJvdG9jb2wudG9Mb3dlckNhc2UoKSwgaG9zdC50b0xvd2Vy
Q2FzZSgpLCBzdWJkb21haW5zKTsKIAogICAgIGxvYWRVUkwodXJsLCB0cnVlKTsKIAotICAgIHRl
c3RSdW5uZXIucmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkob3JpZ2luLCBwcm90b2Nv
bCwgaG9zdCwgc3ViZG9tYWlucyk7CisgICAgdGVzdFJ1bm5lci5yZW1vdmVPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RFbnRyeShvcmlnaW4sIHByb3RvY29sLCBob3N0LCBzdWJkb21haW5zKTsKIAogICAg
IGxvYWRVUkwodXJsLCBmYWxzZSk7CiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1zdWJkb21haW5zLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVs
aXN0aW5nLXN1YmRvbWFpbnMuaHRtbAkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXN1YmRvbWFpbnMu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5h
ZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0
dHAiLCAibG9jYWxob3N0IiwgdHJ1ZSk7Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93
TGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2NhbGhvc3QiLCB0
cnVlKTsKIAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNjUwODEpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0zMCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBt
b3JlIGluY2x1c2l2ZSB0ZXJtaW5vbG9neSBpbiBUb29scworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0OTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5p
ZGw6CisgICAgICAgIFJlbmFtZSBzb21lIHRlc3Qtb25seSBBUEkuICBUaGlzIHNob3VsZCBub3Qg
YWZmZWN0IGJpbmFyeSBjb21wYXRpYmlsaXR5IGJlY2F1c2UgZXZlcnl0aGluZyBpcyBpbiB0aGUg
c2FtZSBsb2NhdGlvbnMsIGFuZCB0aGUgY2hhbmdlZCBBUEkgaXMgb25seSB1c2VkIGZvciB0ZXN0
cy4KKyAgICAgICAgKiBXZWJWaWV3Lmg6CisgICAgICAgICogV2ViVmlldy5jcHA6CisKIDIwMjAt
MDctMjMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBTcGxpdCBXaW5kb3dzIHBhcnRzIGZyb20gQ0ZOZXR3b3JrU1BJLmggdG8gQ0ZOZXR3b3Jr
U1BJV2luLmgKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlZp
ZXdQcml2YXRlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRl
cmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwJKHJldmlzaW9uIDI2NTA4MSkKKysrIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMTg5LDEyICsxODksMTIgQEAKICAgICBIUkVTVUxUIE1JTUVUeXBlRm9yRXh0ZW5z
aW9uKFtpbl0gQlNUUiBleHRlbnNpb24sIFtvdXQsIHJldHZhbF0gQlNUUiogbWltZVR5cGUpOwog
CiAgICAgSFJFU1VMVCBhZGRVc2VyU2NyaXB0VG9Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1lLCBb
aW5dIElXZWJTY3JpcHRXb3JsZCosIFtpbl0gQlNUUiBzb3VyY2UsIFtpbl0gQlNUUiB1cmwsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIHdoaXRlbGlzdENv
dW50LCBbaW4sIHNpemVfaXMod2hpdGVsaXN0Q291bnQpXSBCU1RSKiB3aGl0ZWxpc3QsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50
LCBbaW4sIHNpemVfaXMoYmxhY2tsaXN0Q291bnQpXSBCU1RSKiBibGFja2xpc3QsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIGFsbG93TGlzdENvdW50LCBb
aW4sIHNpemVfaXMoYWxsb3dMaXN0Q291bnQpXSBCU1RSKiBhbGxvd0xpc3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LCBbaW4s
IHNpemVfaXMoYmxvY2tMaXN0Q291bnQpXSBCU1RSKiBibG9ja0xpc3QsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbaW5dIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVj
dGlvblRpbWUpOwogICAgIEhSRVNVTFQgYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKFtpbl0gQlNU
UiBncm91cE5hbWUsIFtpbl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHNvdXJjZSwgW2lu
XSBCU1RSIHVybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5dIHVu
c2lnbmVkIHdoaXRlbGlzdENvdW50LCBbaW4sIHNpemVfaXMod2hpdGVsaXN0Q291bnQpXSBCU1RS
KiB3aGl0ZWxpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luXSB1
bnNpZ25lZCBibGFja2xpc3RDb3VudCwgW2luLCBzaXplX2lzKGJsYWNrbGlzdENvdW50KV0gQlNU
UiogYmxhY2tsaXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5d
IHVuc2lnbmVkIGFsbG93TGlzdENvdW50LCBbaW4sIHNpemVfaXMoYWxsb3dMaXN0Q291bnQpXSBC
U1RSKiBhbGxvd0xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lu
XSB1bnNpZ25lZCBibG9ja0xpc3RDb3VudCwgW2luLCBzaXplX2lzKGJsb2NrTGlzdENvdW50KV0g
QlNUUiogYmxvY2tMaXN0KTsKICAgICBIUkVTVUxUIHJlbW92ZVVzZXJTY3JpcHRGcm9tR3JvdXAo
W2luXSBCU1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqLCBbaW5dIEJTVFIgdXJs
KTsKICAgICBIUkVTVUxUIHJlbW92ZVVzZXJTdHlsZVNoZWV0RnJvbUdyb3VwKFtpbl0gQlNUUiBn
cm91cE5hbWUsIFtpbl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHVybCk7CiAgICAgSFJF
U1VMVCByZW1vdmVVc2VyU2NyaXB0c0Zyb21Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1lLCBbaW5d
IElXZWJTY3JpcHRXb3JsZCopOwpAQCAtMjA3LDE3ICsyMDcsMTcgQEAKICAgICAvLyBJZiByZWN0
IGlzIDAsIHRoZSBlbnRpcmUgYmFja2luZyBzdG9yZSB3aWxsIGJlIGludmFsaWRhdGVkLgogICAg
IEhSRVNVTFQgaW52YWxpZGF0ZUJhY2tpbmdTdG9yZShbaW5dIGNvbnN0IFJFQ1QqIHJlY3QpOwog
Ci0gICAgLy8gV2hpdGVsaXN0cyBhY2Nlc3MgZnJvbSBhbiBvcmlnaW4gKHNvdXJjZU9yaWdpbikg
dG8gYSBzZXQgb2Ygb25lIG9yIG1vcmUgb3JpZ2lucyBkZXNjcmliZWQgYnkgdGhlIHBhcmFtZXRl
cnM6CisgICAgLy8gQWxsb3dMaXN0cyBhY2Nlc3MgZnJvbSBhbiBvcmlnaW4gKHNvdXJjZU9yaWdp
bikgdG8gYSBzZXQgb2Ygb25lIG9yIG1vcmUgb3JpZ2lucyBkZXNjcmliZWQgYnkgdGhlIHBhcmFt
ZXRlcnM6CiAgICAgLy8gLSBkZXN0aW5hdGlvblByb3RvY29sOiBUaGUgcHJvdG9jb2wgdG8gZ3Jh
bnQgYWNjZXNzIHRvLgogICAgIC8vIC0gZGVzdGluYXRpb25Ib3N0OiBUaGUgaG9zdCB0byBncmFu
dCBhY2Nlc3MgdG8uCi0gICAgLy8gLSBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczogSWYgaG9z
dCBpcyBhIGRvbWFpbiwgc2V0dGluZyB0aGlzIHRvIFlFUyB3aWxsIHdoaXRlbGlzdCBob3N0IGFu
ZCBhbGwgaXRzIHN1YmRvbWFpbnMsIHJlY3Vyc2l2ZWx5LgotICAgIEhSRVNVTFQgYWRkT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnkoW2luXSBCU1RSIHNvdXJjZU9yaWdpbiwgW2luXSBCU1RSIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIFtpbl0gQlNUUiBkZXN0aW5hdGlvbkhvc3QsIFtpbl0gQk9PTCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgLy8gLSBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWluczogSWYgaG9zdCBpcyBhIGRvbWFpbiwgc2V0dGluZyB0aGlzIHRvIFlFUyB3aWxsIGFs
bG93IGhvc3QgYW5kIGFsbCBpdHMgc3ViZG9tYWlucywgcmVjdXJzaXZlbHkuCisgICAgSFJFU1VM
VCBhZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShbaW5dIEJTVFIgc291cmNlT3JpZ2luLCBb
aW5dIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgW2luXSBCU1RSIGRlc3RpbmF0aW9uSG9zdCwg
W2luXSBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIAotICAgIC8vIFJlbW92ZXMg
YSB3aGl0ZSBsaXN0IGVudHJ5IGNyZWF0ZWQgd2l0aCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RF
bnRyeS4gU2VlIGFib3ZlLgotICAgIEhSRVNVTFQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoW2luXSBCU1RSIHNvdXJjZU9yaWdpbiwgW2luXSBCU1RSIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIFtpbl0gQlNUUiBkZXN0aW5hdGlvbkhvc3QsIFtpbl0gQk9PTCBhbGxvd0Rlc3RpbmF0aW9u
U3ViZG9tYWlucyk7CisgICAgLy8gUmVtb3ZlcyBhIHdoaXRlIGxpc3QgZW50cnkgY3JlYXRlZCB3
aXRoIGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5LiBTZWUgYWJvdmUuCisgICAgSFJFU1VM
VCByZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShbaW5dIEJTVFIgc291cmNlT3JpZ2lu
LCBbaW5dIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgW2luXSBCU1RSIGRlc3RpbmF0aW9uSG9z
dCwgW2luXSBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIAotICAgIC8vIFJlbW92
ZXMgYWxsIHdoaXRlIGxpc3QgZW50cmllcyBjcmVhdGVkIHdpdGggYWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkuCi0gICAgSFJFU1VMVCByZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsK
KyAgICAvLyBSZW1vdmVzIGFsbCB3aGl0ZSBsaXN0IGVudHJpZXMgY3JlYXRlZCB3aXRoIGFkZE9y
aWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5LgorICAgIEhSRVNVTFQgcmVzZXRPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RzKCk7CiAKICAgICBIUkVTVUxUIHNldEhpc3RvcnlEZWxlZ2F0ZShbaW5dIElXZWJI
aXN0b3J5RGVsZWdhdGUqIGhpc3RvcnlEZWxlZ2F0ZSk7CiAgICAgSFJFU1VMVCBoaXN0b3J5RGVs
ZWdhdGUoW291dCxyZXR2YWxdIElXZWJIaXN0b3J5RGVsZWdhdGUqKiBoaXN0b3J5RGVsZWdhdGUp
OwpAQCAtMzE2LDEzICszMTYsMTMgQEAKICAgICBIUkVTVUxUIGJhY2tpbmdTY2FsZUZhY3Rvcihb
b3V0XSBkb3VibGUqKTsKIAogICAgIEhSRVNVTFQgYWRkVXNlclNjcmlwdFRvR3JvdXAoW2luXSBC
U1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqLCBbaW5dIEJTVFIgc291cmNlLCBb
aW5dIEJTVFIgdXJsLAotICAgICAgICBbaW5dIHVuc2lnbmVkIHdoaXRlbGlzdENvdW50LCBbaW4s
IHNpemVfaXMod2hpdGVsaXN0Q291bnQpXSBCU1RSKiB3aGl0ZWxpc3QsCi0gICAgICAgIFtpbl0g
dW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyhibGFja2xpc3RDb3VudCldIEJT
VFIqIGJsYWNrbGlzdCwKKyAgICAgICAgW2luXSB1bnNpZ25lZCBhbGxvd0xpc3RDb3VudCwgW2lu
LCBzaXplX2lzKGFsbG93TGlzdENvdW50KV0gQlNUUiogYWxsb3dMaXN0LAorICAgICAgICBbaW5d
IHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LCBbaW4sIHNpemVfaXMoYmxvY2tMaXN0Q291bnQpXSBC
U1RSKiBibG9ja0xpc3QsCiAgICAgICAgIFtpbl0gV2ViVXNlclNjcmlwdEluamVjdGlvblRpbWUg
aW5qZWN0aW9uVGltZSwgW2luXSBXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVk
RnJhbWVzKTsKIAogICAgIEhSRVNVTFQgYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKFtpbl0gQlNU
UiBncm91cE5hbWUsIFtpbl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHNvdXJjZSwgW2lu
XSBCU1RSIHVybCwKLSAgICAgICAgW2luXSB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgW2luLCBz
aXplX2lzKHdoaXRlbGlzdENvdW50KV0gQlNUUiogd2hpdGVsaXN0LAotICAgICAgICBbaW5dIHVu
c2lnbmVkIGJsYWNrbGlzdENvdW50LCBbaW4sIHNpemVfaXMoYmxhY2tsaXN0Q291bnQpXSBCU1RS
KiBibGFja2xpc3QsCisgICAgICAgIFtpbl0gdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIFtpbiwg
c2l6ZV9pcyhhbGxvd0xpc3RDb3VudCldIEJTVFIqIGFsbG93TGlzdCwKKyAgICAgICAgW2luXSB1
bnNpZ25lZCBibG9ja0xpc3RDb3VudCwgW2luLCBzaXplX2lzKGJsb2NrTGlzdENvdW50KV0gQlNU
UiogYmxvY2tMaXN0LAogICAgICAgICBbaW5dIFdlYlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMg
aW5qZWN0ZWRGcmFtZXMpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cAkocmV2aXNpb24gMjY1MDgxKQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY5ODgsMTEgKzY5ODgsMTEgQEAKIH0KIAogSFJFU1VMVCBX
ZWJWaWV3OjphZGRVc2VyU2NyaXB0VG9Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0
XyBJV2ViU2NyaXB0V29ybGQqIGlXb3JsZCwgX0luXyBCU1RSIHNvdXJjZSwgX0luXyBCU1RSIHVy
bCwKLSAgICB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbCh3aGl0
ZWxpc3RDb3VudCkgQlNUUiogd2hpdGVsaXN0LAotICAgIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50
LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJsYWNrbGlzdENvdW50KSBCU1RSKiBibGFja2xpc3QsCisg
ICAgdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0
Q291bnQpIEJTVFIqIGFsbG93TGlzdCwKKyAgICB1bnNpZ25lZCBibG9ja0xpc3RDb3VudCwgX19p
bm91dF9lY291bnRfZnVsbChibG9ja0xpc3RDb3VudCkgQlNUUiogYmxvY2tsaXN0LAogICAgIFdl
YlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUpCiB7Ci0gICAgcmV0dXJuIGFk
ZFVzZXJTY3JpcHRUb0dyb3VwKGdyb3VwTmFtZSwgaVdvcmxkLCBzb3VyY2UsIHVybCwgd2hpdGVs
aXN0Q291bnQsIHdoaXRlbGlzdCwgYmxhY2tsaXN0Q291bnQsIGJsYWNrbGlzdCwgaW5qZWN0aW9u
VGltZSwgV2ViSW5qZWN0SW5BbGxGcmFtZXMpOworICAgIHJldHVybiBhZGRVc2VyU2NyaXB0VG9H
cm91cChncm91cE5hbWUsIGlXb3JsZCwgc291cmNlLCB1cmwsIGFsbG93TGlzdENvdW50LCBhbGxv
d0xpc3QsIGJsb2NrbGlzdENvdW50LCBibG9ja2xpc3QsIGluamVjdGlvblRpbWUsIFdlYkluamVj
dEluQWxsRnJhbWVzKTsKIH0KIAogc3RhdGljIFZlY3RvcjxTdHJpbmc+IHRvU3RyaW5nVmVjdG9y
KEJTVFIqIGVudHJpZXMsIHVuc2lnbmVkIGNvdW50KQpAQCAtNzAwOCw4ICs3MDA4LDggQEAKIH0K
IAogSFJFU1VMVCBXZWJWaWV3OjphZGRVc2VyU2NyaXB0VG9Hcm91cChfSW5fIEJTVFIgZ3JvdXBO
YW1lLCBfSW5fb3B0XyBJV2ViU2NyaXB0V29ybGQqIGlXb3JsZCwgX0luXyBCU1RSIHNvdXJjZSwg
X0luXyBCU1RSIHVybCwKLSAgICB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgX19pbm91dF9lY291
bnRfZnVsbCh3aGl0ZWxpc3RDb3VudCkgQlNUUiogd2hpdGVsaXN0LAotICAgIHVuc2lnbmVkIGJs
YWNrbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJsYWNrbGlzdENvdW50KSBCU1RSKiBi
bGFja2xpc3QsCisgICAgdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1
bGwoYWxsb3dMaXN0Q291bnQpIEJTVFIqIGFsbG93TGlzdCwKKyAgICB1bnNpZ25lZCBibG9ja2xp
c3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChibG9ja2xpc3RDb3VudCkgQlNUUiogYmxvY2ts
aXN0LAogICAgIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUsIFdlYlVz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFtZXMpCiB7CiAgICAgU3RyaW5nIGdy
b3VwID0gdG9TdHJpbmcoZ3JvdXBOYW1lKTsKQEAgLTcwMjIsOCArNzAyMiw4IEBACiAgICAgICAg
IHJldHVybiBFX1BPSU5URVI7CiAKICAgICBXZWJTY3JpcHRXb3JsZCogd29ybGQgPSByZWludGVy
cHJldF9jYXN0PFdlYlNjcmlwdFdvcmxkKj4oaVdvcmxkKTsKLSAgICBhdXRvIHVzZXJTY3JpcHQg
PSBtYWtlVW5pcXVlPFVzZXJTY3JpcHQ+KHNvdXJjZSwgdG9VUkwodXJsKSwgdG9TdHJpbmdWZWN0
b3Iod2hpdGVsaXN0LCB3aGl0ZWxpc3RDb3VudCksCi0gICAgICAgIHRvU3RyaW5nVmVjdG9yKGJs
YWNrbGlzdCwgYmxhY2tsaXN0Q291bnQpLCBpbmplY3Rpb25UaW1lID09IFdlYkluamVjdEF0RG9j
dW1lbnRTdGFydCA/IFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lOjpEb2N1bWVudFN0YXJ0IDogVXNl
clNjcmlwdEluamVjdGlvblRpbWU6OkRvY3VtZW50RW5kLAorICAgIGF1dG8gdXNlclNjcmlwdCA9
IG1ha2VVbmlxdWU8VXNlclNjcmlwdD4oc291cmNlLCB0b1VSTCh1cmwpLCB0b1N0cmluZ1ZlY3Rv
cihhbGxvd0xpc3QsIGFsbG93TGlzdENvdW50KSwKKyAgICAgICAgdG9TdHJpbmdWZWN0b3IoYmxv
Y2tsaXN0LCBibG9ja2xpc3RDb3VudCksIGluamVjdGlvblRpbWUgPT0gV2ViSW5qZWN0QXREb2N1
bWVudFN0YXJ0ID8gVXNlclNjcmlwdEluamVjdGlvblRpbWU6OkRvY3VtZW50U3RhcnQgOiBVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZTo6RG9jdW1lbnRFbmQsCiAgICAgICAgIGluamVjdGVkRnJhbWVz
ID09IFdlYkluamVjdEluQWxsRnJhbWVzID8gVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5q
ZWN0SW5BbGxGcmFtZXMgOiBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZy
YW1lT25seSwgV2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8pOwogICAgIHZp
ZXdHcm91cC0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkuYWRkVXNlclNjcmlwdCh3b3JsZC0+d29y
bGQoKSwgV1RGTW92ZSh1c2VyU2NyaXB0KSk7CiAgICAgcmV0dXJuIFNfT0s7CkBAIC03MDMwLDEz
ICs3MDMwLDEzIEBACiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXRUb0dy
b3VwKF9Jbl8gQlNUUiBncm91cE5hbWUsIF9Jbl9vcHRfIElXZWJTY3JpcHRXb3JsZCogaVdvcmxk
LCBfSW5fIEJTVFIgc291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgIHVuc2lnbmVkIHdoaXRlbGlz
dENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKHdoaXRlbGlzdENvdW50KSBCU1RSKiB3aGl0ZWxp
c3QsIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJsYWNrbGlz
dENvdW50KSBCU1RSKiBibGFja2xpc3QpCisgICAgdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIF9f
aW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0Q291bnQpIEJTVFIqIGFsbG93TGlzdCwgdW5zaWdu
ZWQgYmxvY2tsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxvY2tsaXN0Q291bnQpIEJT
VFIqIGJsb2NrbGlzdCkKIHsKLSAgICByZXR1cm4gYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKGdy
b3VwTmFtZSwgaVdvcmxkLCBzb3VyY2UsIHVybCwgd2hpdGVsaXN0Q291bnQsIHdoaXRlbGlzdCwg
YmxhY2tsaXN0Q291bnQsIGJsYWNrbGlzdCwgV2ViSW5qZWN0SW5BbGxGcmFtZXMpOworICAgIHJl
dHVybiBhZGRVc2VyU3R5bGVTaGVldFRvR3JvdXAoZ3JvdXBOYW1lLCBpV29ybGQsIHNvdXJjZSwg
dXJsLCBhbGxvd0xpc3RDb3VudCwgYWxsb3dMaXN0LCBibG9ja2xpc3RDb3VudCwgYmxvY2tsaXN0
LCBXZWJJbmplY3RJbkFsbEZyYW1lcyk7CiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclN0
eWxlU2hlZXRUb0dyb3VwKF9Jbl8gQlNUUiBncm91cE5hbWUsIF9Jbl9vcHRfIElXZWJTY3JpcHRX
b3JsZCogaVdvcmxkLCBfSW5fIEJTVFIgc291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgIHVuc2ln
bmVkIHdoaXRlbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKHdoaXRlbGlzdENvdW50KSBC
U1RSKiB3aGl0ZWxpc3QsIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9m
dWxsKGJsYWNrbGlzdENvdW50KSBCU1RSKiBibGFja2xpc3QsCisgICAgdW5zaWduZWQgYWxsb3dM
aXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0Q291bnQpIEJTVFIqIGFsbG93
TGlzdCwgdW5zaWduZWQgYmxvY2tsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxvY2ts
aXN0Q291bnQpIEJTVFIqIGJsb2NrbGlzdCwKICAgICBXZWJVc2VyQ29udGVudEluamVjdGVkRnJh
bWVzIGluamVjdGVkRnJhbWVzKQogewogICAgIFN0cmluZyBncm91cCA9IHRvU3RyaW5nKGdyb3Vw
TmFtZSk7CkBAIC03MDQ5LDcgKzcwNDksNyBAQAogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwog
CiAgICAgV2ViU2NyaXB0V29ybGQqIHdvcmxkID0gcmVpbnRlcnByZXRfY2FzdDxXZWJTY3JpcHRX
b3JsZCo+KGlXb3JsZCk7Ci0gICAgYXV0byBzdHlsZVNoZWV0ID0gbWFrZVVuaXF1ZTxVc2VyU3R5
bGVTaGVldD4oc291cmNlLCB0b1VSTCh1cmwpLCB0b1N0cmluZ1ZlY3Rvcih3aGl0ZWxpc3QsIHdo
aXRlbGlzdENvdW50KSwgdG9TdHJpbmdWZWN0b3IoYmxhY2tsaXN0LCBibGFja2xpc3RDb3VudCks
CisgICAgYXV0byBzdHlsZVNoZWV0ID0gbWFrZVVuaXF1ZTxVc2VyU3R5bGVTaGVldD4oc291cmNl
LCB0b1VSTCh1cmwpLCB0b1N0cmluZ1ZlY3RvcihhbGxvd0xpc3QsIGFsbG93TGlzdENvdW50KSwg
dG9TdHJpbmdWZWN0b3IoYmxvY2tsaXN0LCBibG9ja2xpc3RDb3VudCksCiAgICAgICAgIGluamVj
dGVkRnJhbWVzID09IFdlYkluamVjdEluQWxsRnJhbWVzID8gVXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lczo6SW5qZWN0SW5BbGxGcmFtZXMgOiBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmpl
Y3RJblRvcEZyYW1lT25seSwgVXNlclN0eWxlVXNlckxldmVsKTsKICAgICB2aWV3R3JvdXAtPnVz
ZXJDb250ZW50Q29udHJvbGxlcigpLmFkZFVzZXJTdHlsZVNoZWV0KHdvcmxkLT53b3JsZCgpLCBX
VEZNb3ZlKHN0eWxlU2hlZXQpLCBJbmplY3RJbkV4aXN0aW5nRG9jdW1lbnRzKTsKICAgICByZXR1
cm4gU19PSzsKQEAgLTcxNjAsMTkgKzcxNjAsMTkgQEAKICAgICByZXR1cm4gU19PSzsKIH0KIAot
SFJFU1VMVCBXZWJWaWV3OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShfSW5fIEJTVFIg
c291cmNlT3JpZ2luLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgX0luXyBCU1RSIGRl
c3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK0hSRVNVTFQg
V2ViVmlldzo6YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoX0luXyBCU1RSIHNvdXJjZU9y
aWdpbiwgX0luXyBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2wsIF9Jbl8gQlNUUiBkZXN0aW5hdGlv
bkhvc3QsIEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgU2VjdXJpdHlQ
b2xpY3k6OmFkZE9yaWdpbkFjY2Vzc0FsbG93bGlzdEVudHJ5KFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGVGcm9tU3RyaW5nKHRvU3RyaW5nKHNvdXJjZU9yaWdpbikpLmdldCgpLCB0b1N0cmluZyhkZXN0
aW5hdGlvblByb3RvY29sKSwgdG9TdHJpbmcoZGVzdGluYXRpb25Ib3N0KSwgYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMpOwogICAgIHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFdlYlZpZXc6
OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KF9Jbl8gQlNUUiBzb3VyY2VPcmlnaW4s
IF9Jbl8gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Ib3N0
LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQorSFJFU1VMVCBXZWJWaWV3OjpyZW1v
dmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShfSW5fIEJTVFIgc291cmNlT3JpZ2luLCBfSW5f
IEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgX0luXyBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9P
TCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsKICAgICBTZWN1cml0eVBvbGljeTo6cmVt
b3ZlT3JpZ2luQWNjZXNzQWxsb3dsaXN0RW50cnkoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21T
dHJpbmcodG9TdHJpbmcoc291cmNlT3JpZ2luKSkuZ2V0KCksIHRvU3RyaW5nKGRlc3RpbmF0aW9u
UHJvdG9jb2wpLCB0b1N0cmluZyhkZXN0aW5hdGlvbkhvc3QpLCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgV2ViVmlldzo6cmVzZXRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCkKK0hSRVNVTFQgV2ViVmlldzo6cmVzZXRPcmlnaW5BY2Nl
c3NBbGxvd0xpc3RzKCkKIHsKICAgICBTZWN1cml0eVBvbGljeTo6cmVzZXRPcmlnaW5BY2Nlc3NB
bGxvd2xpc3RzKCk7CiAgICAgcmV0dXJuIFNfT0s7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Vmlldy5oCShyZXZpc2lvbiAyNjUwODEpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0NywxMCArMzQ3LDEwIEBACiAgICAgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBzZXRKYXZhU2NyaXB0VVJMc0FyZUFsbG93ZWQoQk9PTCkgb3ZlcnJp
ZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRDYW5TdGFydFBsdWdpbnMoQk9P
TCkgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBhZGRVc2VyU2NyaXB0
VG9Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0XyBJV2ViU2NyaXB0V29ybGQqLCBf
SW5fIEJTVFIgc291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgICAgICB1bnNpZ25lZCB3aGl0ZWxp
c3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbCh3aGl0ZWxpc3RDb3VudCkgQlNUUiogd2hpdGVs
aXN0LCB1bnNpZ25lZCBibGFja2xpc3RDb3VudCwKLSAgICAgICAgX19pbm91dF9lY291bnRfZnVs
bChibGFja2xpc3RDb3VudCkgQlNUUiogYmxhY2tsaXN0LCBXZWJVc2VyU2NyaXB0SW5qZWN0aW9u
VGltZSkgb3ZlcnJpZGU7CisgICAgICAgIHVuc2lnbmVkIGFsbG93TGlzdENvdW50LCBfX2lub3V0
X2Vjb3VudF9mdWxsKGFsbG93TGlzdENvdW50KSBCU1RSKiBhbGxvd0xpc3QsIHVuc2lnbmVkIGJs
b2NrTGlzdENvdW50LAorICAgICAgICBfX2lub3V0X2Vjb3VudF9mdWxsKGJsb2NrTGlzdENvdW50
KSBCU1RSKiBibG9ja0xpc3QsIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKSBvdmVycmlkZTsK
ICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGFkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cChf
SW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0XyBJV2ViU2NyaXB0V29ybGQqLCBfSW5fIEJTVFIg
c291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgICAgICB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwg
X19pbm91dF9lY291bnRfZnVsbCh3aGl0ZWxpc3RDb3VudCkgQlNUUiogd2hpdGVsaXN0LCB1bnNp
Z25lZCBibGFja2xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChibGFja2xpc3RDb3VudCkg
QlNUUiogYmxhY2tsaXN0KSBvdmVycmlkZTsKKyAgICAgICAgdW5zaWduZWQgYWxsb3dMaXN0Q291
bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0Q291bnQpIEJTVFIqIGFsbG93TGlzdCwg
dW5zaWduZWQgYmxvY2tMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxvY2tMaXN0Q291
bnQpIEJTVFIqIGJsb2NrTGlzdCkgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSByZW1vdmVVc2VyU2NyaXB0RnJvbUdyb3VwKF9Jbl8gQlNUUiBncm91cE5hbWUsIF9Jbl9v
cHRfIElXZWJTY3JpcHRXb3JsZCosIF9Jbl8gQlNUUiB1cmwpIG92ZXJyaWRlOwogICAgIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVtb3ZlVXNlclN0eWxlU2hlZXRGcm9tR3JvdXAoX0luXyBC
U1RSIGdyb3VwTmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKiwgX0luXyBCU1RSIHVybCkg
b3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZW1vdmVVc2VyU2NyaXB0
c0Zyb21Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0XyBJV2ViU2NyaXB0V29ybGQq
KSBvdmVycmlkZTsKQEAgLTM1OSw5ICszNTksOSBAQAogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgdW51c2VkMSgpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
dW51c2VkMigpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaW52YWxp
ZGF0ZUJhY2tpbmdTdG9yZShfSW5fb3B0XyBjb25zdCBSRUNUKikgb3ZlcnJpZGU7Ci0gICAgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShfSW5f
IEJTVFIgc291cmNlT3JpZ2luLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgX0luXyBC
U1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykgb3Zl
cnJpZGU7Ci0gICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZW1vdmVPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeShfSW5fIEJTVFIgc291cmNlT3JpZ2luLCBfSW5fIEJTVFIgZGVzdGluYXRp
b25Qcm90b2NvbCwgX0luXyBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWlucykgb3ZlcnJpZGU7Ci0gICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBy
ZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKSBvdmVycmlkZTsKKyAgICBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KF9Jbl8gQlNUUiBzb3Vy
Y2VPcmlnaW4sIF9Jbl8gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBfSW5fIEJTVFIgZGVzdGlu
YXRpb25Ib3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKSBvdmVycmlkZTsKKyAg
ICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVu
dHJ5KF9Jbl8gQlNUUiBzb3VyY2VPcmlnaW4sIF9Jbl8gQlNUUiBkZXN0aW5hdGlvblByb3RvY29s
LCBfSW5fIEJTVFIgZGVzdGluYXRpb25Ib3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21h
aW5zKSBvdmVycmlkZTsKKyAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlc2V0T3JpZ2lu
QWNjZXNzQWxsb3dMaXN0cygpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgc2V0SGlzdG9yeURlbGVnYXRlKF9Jbl8gSVdlYkhpc3RvcnlEZWxlZ2F0ZSopIG92ZXJyaWRl
OwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaGlzdG9yeURlbGVnYXRlKF9DT01fT3V0
cHRyX29wdF8gSVdlYkhpc3RvcnlEZWxlZ2F0ZSoqKSBvdmVycmlkZTsKICAgICBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIGFkZFZpc2l0ZWRMaW5rcyhfX2lub3V0X2Vjb3VudF9mdWxsKHZpc2l0
ZWRVUkxDb3VudCkgQlNUUiogdmlzaXRlZFVSTHMsIHVuc2lnbmVkIHZpc2l0ZWRVUkxDb3VudCkg
b3ZlcnJpZGU7CkBAIC0zOTEsOSArMzkxLDkgQEAKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIHNldEN1c3RvbUJhY2tpbmdTY2FsZUZhY3Rvcihkb3VibGUpIG92ZXJyaWRlOwogICAgIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYmFja2luZ1NjYWxlRmFjdG9yKF9PdXRfIGRvdWJsZSop
IG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWRkVXNlclNjcmlwdFRv
R3JvdXAoX0luXyBCU1RSIGdyb3VwTmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKiwgX0lu
XyBCU1RSIHNvdXJjZSwgX0luXyBCU1RSIHVybCwKLSAgICAgICAgdW5zaWduZWQgd2hpdGVsaXN0
Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwod2hpdGVsaXN0Q291bnQpIEJTVFIqIHdoaXRlbGlz
dCwgdW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxhY2tsaXN0
Q291bnQpIEJTVFIqIGJsYWNrbGlzdCwgV2ViVXNlclNjcmlwdEluamVjdGlvblRpbWUsIFdlYlVz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpIG92ZXJyaWRlOworICAgICAgICB1bnNpZ25lZCBhbGxv
d0xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChhbGxvd0xpc3RDb3VudCkgQlNUUiogYWxs
b3dMaXN0LCB1bnNpZ25lZCBibG9ja0xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChibG9j
a0xpc3RDb3VudCkgQlNUUiogYmxvY2tMaXN0LCBXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSwg
V2ViVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcykgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBhZGRVc2VyU3R5bGVTaGVldFRvR3JvdXAoX0luXyBCU1RSIGdyb3VwTmFt
ZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKiwgX0luXyBCU1RSIHNvdXJjZSwgX0luXyBCU1RS
IHVybCwKLSAgICAgICAgdW5zaWduZWQgd2hpdGVsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1
bGwod2hpdGVsaXN0Q291bnQpIEJTVFIqIHdoaXRlbGlzdCwgdW5zaWduZWQgYmxhY2tsaXN0Q291
bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxhY2tsaXN0Q291bnQpIEJTVFIqIGJsYWNrbGlzdCwg
V2ViVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcykgb3ZlcnJpZGU7CisgICAgICAgIHVuc2lnbmVk
IGFsbG93TGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGFsbG93TGlzdENvdW50KSBCU1RS
KiBhbGxvd0xpc3QsIHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxs
KGJsb2NrTGlzdENvdW50KSBCU1RSKiBibG9ja0xpc3QsIFdlYlVzZXJDb250ZW50SW5qZWN0ZWRG
cmFtZXMpIG92ZXJyaWRlOwogCiAgICAgLy8gSVdlYlZpZXdQcml2YXRlMwogICAgIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgbGF5ZXJUcmVlQXNTdHJpbmcoX0RlcmVmX29wdF9vdXRfIEJTVFIq
KSBvdmVycmlkZTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI2NTA4MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA3LTMwICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIG1vcmUgaW5jbHVzaXZlIHRlcm1p
bm9sb2d5IGluIFRvb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTQ5NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoYWRkT3Jp
Z2luQWNjZXNzQWxsb3dMaXN0RW50cnlDYWxsYmFjayk6CisgICAgICAgIChyZW1vdmVPcmlnaW5B
Y2Nlc3NBbGxvd0xpc3RFbnRyeUNhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0YXRp
Y0Z1bmN0aW9ucyk6CisgICAgICAgIChhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUNhbGxi
YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
Q2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
aDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAg
ICAgKFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KTogRGVsZXRlZC4KKyAg
ICAgICAgKFRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgor
ICAgICAgICAocmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHA6CisgICAgICAgIChU
ZXN0UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSk6CisgICAgICAgIChUZXN0
UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSk6CisgICAgICAgIChUZXN0
UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6IERlbGV0ZWQuCisgICAgICAg
IChUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6IERlbGV0ZWQu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRVc2Vy
Q29udGVudE1hbmFnZXIuY3BwOgorICAgICAgICAocmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5k
UmVzZXRMaXN0cyk6CisgICAgICAgICh0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0ZWRTdHls
ZVNoZWV0KToKKyAgICAgICAgKHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmplY3RlZFNjcmlwdCk6
CisgICAgICAgICh0ZXN0VXNlckNvbnRlbnRNYW5hZ2VyQ29udGVudEZpbHRlcik6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RF
bnRyeSk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93
TGlzdEVudHJ5KToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpyZW1vdmVP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisKIDIwMjAtMDctMzAgIEpvbmF0
aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtCaWcgU3VyXSBBZGQg
bGltaXRlZCBTZWVkIDMgc3VwcG9ydCB0byBFV1MKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RSdW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuY3BwCShyZXZpc2lvbiAyNjUwODEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUzNCw3ICsxNTM0LDcgQEAKICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVm
IGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRD
b3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQorc3RhdGljIEpTVmFsdWVSZWYgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gNCkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwpAQCAtMTU0OCwxMSAr
MTU0OCwxMSBAQAogICAgIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMgPSBKU1ZhbHVl
VG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1szXSk7CiAKICAgICBUZXN0UnVubmVyKiBjb250
cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlz
T2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
c291cmNlT3JpZ2luLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLmdldCgpLCBkZXN0aW5hdGlv
bkhvc3QuZ2V0KCksIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICBjb250cm9sbGVy
LT5hZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShzb3VyY2VPcmlnaW4uZ2V0KCksIGRlc3Rp
bmF0aW9uUHJvdG9jb2wuZ2V0KCksIGRlc3RpbmF0aW9uSG9zdC5nZXQoKSwgYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMpOwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50
cnlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitzdGF0aWMgSlNWYWx1ZVJlZiByZW1vdmVP
cmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsK
ICAgICBpZiAoYXJndW1lbnRDb3VudCAhPSA0KQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VV
bmRlZmluZWQoY29udGV4dCk7CkBAIC0xNTY2LDcgKzE1NjYsNyBAQAogICAgIGJvb2wgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnMgPSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50
c1szXSk7CiAKICAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1
bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+
cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoc291cmNlT3JpZ2luLmdldCgpLCBkZXN0
aW5hdGlvblByb3RvY29sLmdldCgpLCBkZXN0aW5hdGlvbkhvc3QuZ2V0KCksIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKTsKKyAgICBjb250cm9sbGVyLT5yZW1vdmVPcmlnaW5BY2Nlc3NBbGxv
d0xpc3RFbnRyeShzb3VyY2VPcmlnaW4uZ2V0KCksIGRlc3RpbmF0aW9uUHJvdG9jb2wuZ2V0KCks
IGRlc3RpbmF0aW9uSG9zdC5nZXQoKSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIApAQCAtMjIwNyw3ICsy
MjA3LDcgQEAKICAgICAgICAgeyAicXVldWVOb25Mb2FkaW5nU2NyaXB0IiwgcXVldWVOb25Mb2Fk
aW5nU2NyaXB0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicXVldWVSZWxvYWQiLCBxdWV1
ZVJlbG9hZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZUFsbFZpc2l0ZWRMaW5r
cyIsIHJlbW92ZUFsbFZpc2l0ZWRMaW5rc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInJl
bW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5IiwgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJyZW1vdmVPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RFbnRyeSIsIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5Q2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAicmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5IiwgcmVwYWludFN3
ZWVwSG9yaXpvbnRhbGx5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicmVzZXRQYWdlVmlz
aWJpbGl0eSIsIHJlc2V0UGFnZVZpc2liaWxpdHlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJzZXRBY2NlcHRzRWRpdGluZyIsIHNldEFjY2VwdHNFZGl0aW5nQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
QEAgLTIyNzYsNyArMjI3Niw3IEBACiAgICAgICAgIHsgIndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSIs
IHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgIndhaXRV
bnRpbERvbmUiLCB3YWl0VW50aWxEb25lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAid2lu
ZG93Q291bnQiLCB3aW5kb3dDb3VudENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgImFkZE9y
aWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5IiwgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJhZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRy
eSIsIGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAic2V0U2Nyb2xsYmFyUG9saWN5Iiwgc2V0U2Nyb2xsYmFyUG9saWN5Q2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAiYXV0aGVudGljYXRlU2Vzc2lvbiIsIGF1dGhlbnRpY2F0ZVNlc3Np
b25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTaG91bGRQYWludEJyb2tlbkltYWdl
Iiwgc2V0U2hvdWxkUGFpbnRCcm9rZW5JbWFnZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkluZGV4OiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5oCShyZXZpc2lvbiAyNjUwODEpCisrKyBUb29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxMyw4ICszMTMsOCBAQAog
ICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGNoYXI+JiBhdWRpb1Jlc3VsdCgpIGNvbnN0IHsgcmV0dXJu
IG1fYXVkaW9SZXN1bHQ7IH0KICAgICB2b2lkIHNldEF1ZGlvUmVzdWx0KGNvbnN0IHN0ZDo6dmVj
dG9yPGNoYXI+JiBhdWRpb0RhdGEpIHsgbV9hdWRpb1Jlc3VsdCA9IGF1ZGlvRGF0YTsgfQogCi0g
ICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VP
cmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3Rp
bmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Ci0gICAgdm9pZCBy
ZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4s
IEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9u
SG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCBhZGRPcmln
aW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5n
UmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nl
c3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAKICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoSlNTdHJp
bmdSZWYgc291cmNlLCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgYWxsRnJhbWVzKTsKICAgICB2b2lk
IGFkZFVzZXJTdHlsZVNoZWV0KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBhbGxGcmFtZXMpOwpJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0JKHJldmlzaW9u
IDI2NTA4MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC03NTIsNyArNzUyLDcgQEAKICAgICBbW21haW5GcmFtZSB3ZWJWaWV3
XSBzZXRQb2xpY3lEZWxlZ2F0ZTpwb2xpY3lEZWxlZ2F0ZV07CiB9CiAKLXZvaWQgVGVzdFJ1bm5l
cjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2lu
LCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlv
bkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIFRlc3RSdW5uZXI6
OmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwg
SlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25I
b3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewogICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gc291cmNlT3JpZ2luQ0YgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5n
KGtDRkFsbG9jYXRvckRlZmF1bHQsIHNvdXJjZU9yaWdpbikpOwogICAgIE5TU3RyaW5nICpzb3Vy
Y2VPcmlnaW5OUyA9IChfX2JyaWRnZSBOU1N0cmluZyAqKXNvdXJjZU9yaWdpbkNGLmdldCgpOwpA
QCAtNzYzLDcgKzc2Myw3IEBACiAgICAgW1dlYlZpZXcgX2FkZE9yaWdpbkFjY2Vzc0FsbG93TGlz
dEVudHJ5V2l0aFNvdXJjZU9yaWdpbjpzb3VyY2VPcmlnaW5OUyBkZXN0aW5hdGlvblByb3RvY29s
OmRlc3RpbmF0aW9uUHJvdG9jb2xOUyBkZXN0aW5hdGlvbkhvc3Q6ZGVzdGluYXRpb25Ib3N0TlMg
YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnNdOwog
fQogCi12b2lkIFRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpT
U3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwg
SlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21h
aW5zKQordm9pZCBUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShK
U1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2ws
IEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9t
YWlucykKIHsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNvdXJjZU9yaWdpbkNGID0gYWRv
cHRDRihKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzb3VyY2VPcmln
aW4pKTsKICAgICBOU1N0cmluZyAqc291cmNlT3JpZ2luTlMgPSAoX19icmlkZ2UgTlNTdHJpbmcg
Kilzb3VyY2VPcmlnaW5DRi5nZXQoKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9E
dW1wUmVuZGVyVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcAkocmV2aXNpb24gMjY1MDgxKQorKysgVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1Miw3ICsx
MDUyLDcgQEAKICAgICBpZiAod2ViVmlld1ByaXZhdGUgJiYgU1VDQ0VFREVEKHdlYlZpZXdQcml2
YXRlLT52aWV3V2luZG93KCZ2aWV3V2luZG93KSkgJiYgdmlld1dpbmRvdykKICAgICAgICAgOjpT
ZXRGb2N1cyh2aWV3V2luZG93KTsKIAotICAgIHdlYlZpZXdQcml2YXRlLT5yZXNldE9yaWdpbkFj
Y2Vzc1doaXRlbGlzdHMoKTsKKyAgICB3ZWJWaWV3UHJpdmF0ZS0+cmVzZXRPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RzKCk7CiAKICAgICBzaGFyZWRVSURlbGVnYXRlLT5yZXNldFVuZG9NYW5hZ2VyKCk7
CiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAJKHJl
dmlzaW9uIDI2NTA4MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3MiwyMiArMTA3MiwyMiBAQAogICAgIHJldHVybiBf
YnN0cl90KEpTU3RyaW5nQ29weUJTVFIoanNTdHJpbmcpLCBmYWxzZSk7CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNl
T3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0
aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIFRlc3RS
dW5uZXI6OmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9y
aWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGlu
YXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewogICAgIENPTVB0
cjxJV2ViVmlld1ByaXZhdGUyPiB3ZWJWaWV3OwogICAgIGlmIChGQUlMRUQoV2ViS2l0Q3JlYXRl
SW5zdGFuY2UoX191dWlkb2YoV2ViVmlldyksIDAsIF9fdXVpZG9mKHdlYlZpZXcpLCByZWludGVy
cHJldF9jYXN0PHZvaWQqKj4oJndlYlZpZXcpKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdl
YlZpZXctPmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGJzdHJUKHNvdXJjZU9yaWdpbiku
R2V0QlNUUigpLCBic3RyVChkZXN0aW5hdGlvblByb3RvY29sKS5HZXRCU1RSKCksIGJzdHJUKGRl
c3RpbmF0aW9uSG9zdCkuR2V0QlNUUigpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Cisg
ICAgd2ViVmlldy0+YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoYnN0clQoc291cmNlT3Jp
Z2luKS5HZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9uUHJvdG9jb2wpLkdldEJTVFIoKSwgYnN0
clQoZGVzdGluYXRpb25Ib3N0KS5HZXRCU1RSKCksIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5z
KTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucykKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50
cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3Rv
Y29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpCiB7CiAgICAgQ09NUHRyPElXZWJWaWV3UHJpdmF0ZTI+IHdlYlZpZXc7CiAgICAg
aWYgKEZBSUxFRChXZWJLaXRDcmVhdGVJbnN0YW5jZShfX3V1aWRvZihXZWJWaWV3KSwgMCwgX191
dWlkb2Yod2ViVmlldyksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmd2ViVmlldykpKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgd2ViVmlldy0+cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoYnN0clQoc291cmNlT3JpZ2luKS5HZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9uUHJv
dG9jb2wpLkdldEJTVFIoKSwgYnN0clQoZGVzdGluYXRpb25Ib3N0KS5HZXRCU1RSKCksIGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICB3ZWJWaWV3LT5yZW1vdmVPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RFbnRyeShic3RyVChzb3VyY2VPcmlnaW4pLkdldEJTVFIoKSwgYnN0clQoZGVzdGlu
YXRpb25Qcm90b2NvbCkuR2V0QlNUUigpLCBic3RyVChkZXN0aW5hdGlvbkhvc3QpLkdldEJTVFIo
KSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNl
dFNjcm9sbGJhclBvbGljeShKU1N0cmluZ1JlZiBvcmllbnRhdGlvbiwgSlNTdHJpbmdSZWYgcG9s
aWN5KQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJL
aXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAkocmV2
aXNpb24gMjY1MDgxKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsMzMg
KzEyMCwzMyBAQAogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgcmVtb3ZlT2xkSW5qZWN0ZWRDb250
ZW50QW5kUmVzZXRMaXN0cyhXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIqIHVzZXJDb250ZW50TWFu
YWdlciwgY2hhcioqIHdoaXRlbGlzdCwgY2hhcioqIGJsYWNrbGlzdCkKK3N0YXRpYyB2b2lkIHJl
bW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHMoV2ViS2l0VXNlckNvbnRlbnRNYW5h
Z2VyKiB1c2VyQ29udGVudE1hbmFnZXIsIGNoYXIqKiBhbGxvd0xpc3QsIGNoYXIqKiBibG9ja0xp
c3QpCiB7CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlbW92ZV9hbGxfc3R5bGVf
c2hlZXRzKHVzZXJDb250ZW50TWFuYWdlcik7CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5h
Z2VyX3JlbW92ZV9hbGxfc2NyaXB0cyh1c2VyQ29udGVudE1hbmFnZXIpOwogICAgIHdlYmtpdF91
c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxsX2ZpbHRlcnModXNlckNvbnRlbnRNYW5hZ2Vy
KTsKIAotICAgIHdoaWxlICgqd2hpdGVsaXN0KSB7Ci0gICAgICAgIGdfZnJlZSgqd2hpdGVsaXN0
KTsKLSAgICAgICAgKndoaXRlbGlzdCA9IDA7Ci0gICAgICAgIHdoaXRlbGlzdCsrOworICAgIHdo
aWxlICgqYWxsb3dMaXN0KSB7CisgICAgICAgIGdfZnJlZSgqYWxsb3dMaXN0KTsKKyAgICAgICAg
KmFsbG93TGlzdCA9IDA7CisgICAgICAgIGFsbG93TGlzdCsrOwogICAgIH0KIAotICAgIHdoaWxl
ICgqYmxhY2tsaXN0KSB7Ci0gICAgICAgIGdfZnJlZSgqYmxhY2tsaXN0KTsKLSAgICAgICAgKmJs
YWNrbGlzdCA9IDA7Ci0gICAgICAgIGJsYWNrbGlzdCsrOworICAgIHdoaWxlICgqYmxvY2tMaXN0
KSB7CisgICAgICAgIGdfZnJlZSgqYmxvY2tMaXN0KTsKKyAgICAgICAgKmJsb2NrTGlzdCA9IDA7
CisgICAgICAgIGJsb2NrTGlzdCsrOwogICAgIH0KIH0KIAogc3RhdGljIHZvaWQgdGVzdFVzZXJD
b250ZW50TWFuYWdlckluamVjdGVkU3R5bGVTaGVldChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0
cG9pbnRlcikKIHsKLSAgICBjaGFyKiB3aGl0ZWxpc3RbM10gPSB7IDAsIDAsIDAgfTsKLSAgICBj
aGFyKiBibGFja2xpc3RbM10gPSB7IDAsIDAsIDAgfTsKKyAgICBjaGFyKiBhbGxvd0xpc3RbM10g
PSB7IDAsIDAsIDAgfTsKKyAgICBjaGFyKiBibG9ja0xpc3RbM10gPSB7IDAsIDAsIDAgfTsKIAot
ICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29u
dGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJ
bmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdl
dCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiAKLSAgICAvLyBXaXRob3V0IGEgd2hpdGVsaXN0
IG9yIGEgYmxhY2tsaXN0IGFsbCBVUkxzIHNob3VsZCBoYXZlIHRoZSBpbmplY3RlZCBzdHlsZSBz
aGVldC4KKyAgICAvLyBXaXRob3V0IGEgYWxsb3dMaXN0IG9yIGEgYmxvY2tMaXN0IGFsbCBVUkxz
IHNob3VsZCBoYXZlIHRoZSBpbmplY3RlZCBzdHlsZSBzaGVldC4KICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogcmFuZG9tUGF0aCA9ICJzb21lcmFuZG9tcGF0aCI7CiAgICAgZ19hc3NlcnRfZmFsc2Uo
aXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCkpOwogICAg
IFdlYktpdFVzZXJTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gd2Via2l0X3VzZXJfc3R5bGVfc2hl
ZXRfbmV3KGtJbmplY3RlZFN0eWxlU2hlZXQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FM
TF9GUkFNRVMsIFdFQktJVF9VU0VSX1NUWUxFX0xFVkVMX1VTRVIsIG51bGxwdHIsIG51bGxwdHIp
OwpAQCAtMTU0LDcgKzE1NCw3IEBACiAgICAgd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfdW5yZWYo
c3R5bGVTaGVldCk7CiAgICAgZ19hc3NlcnRfdHJ1ZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVS
TEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CiAKLSAgICByZW1vdmVPbGRJbmplY3RlZENvbnRl
bnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxp
c3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0
cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9ja0xpc3Qp
OwogCiAgICAgZ19hc3NlcnRfZmFsc2UoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgo
dGVzdCwgcmFuZG9tUGF0aCwgIldlYkV4dGVuc2lvblRlc3RTY3JpcHRXb3JsZCIpKTsKICAgICBz
dHlsZVNoZWV0ID0gd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfbmV3X2Zvcl93b3JsZChrSW5qZWN0
ZWRTdHlsZVNoZWV0LCBXRUJLSVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJL
SVRfVVNFUl9TVFlMRV9MRVZFTF9VU0VSLCAiV2ViRXh0ZW5zaW9uVGVzdFNjcmlwdFdvcmxkIiwg
bnVsbHB0ciwgbnVsbHB0cik7CkBAIC0xNjIsNDIgKzE2Miw0MiBAQAogICAgIHdlYmtpdF91c2Vy
X3N0eWxlX3NoZWV0X3VucmVmKHN0eWxlU2hlZXQpOwogICAgIGdfYXNzZXJ0X3RydWUoaXNTdHls
ZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCwgIldlYkV4dGVuc2lv
blRlc3RTY3JpcHRXb3JsZCIpKTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJl
c2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxh
Y2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3Qt
Pm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiAKLSAg
ICBmaWxsVVJMTGlzdEZyb21QYXRocyhibGFja2xpc3QsIHJhbmRvbVBhdGgsIDApOwotICAgIHN0
eWxlU2hlZXQgPSB3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF9uZXcoa0luamVjdGVkU3R5bGVTaGVl
dCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU1RZ
TEVfTEVWRUxfVVNFUiwgbnVsbHB0ciwgYmxhY2tsaXN0KTsKKyAgICBmaWxsVVJMTGlzdEZyb21Q
YXRocyhibG9ja0xpc3QsIHJhbmRvbVBhdGgsIDApOworICAgIHN0eWxlU2hlZXQgPSB3ZWJraXRf
dXNlcl9zdHlsZV9zaGVldF9uZXcoa0luamVjdGVkU3R5bGVTaGVldCwgV0VCS0lUX1VTRVJfQ09O
VEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU1RZTEVfTEVWRUxfVVNFUiwgbnVs
bHB0ciwgYmxvY2tMaXN0KTsKICAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfYWRkX3N0
eWxlX3NoZWV0KHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBzdHlsZVNoZWV0KTsK
ICAgICB3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF91bnJlZihzdHlsZVNoZWV0KTsKICAgICBnX2Fz
c2VydF9mYWxzZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5kb21Q
YXRoKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0
aCh0ZXN0LCAic29tZW90aGVycmFuZG9tcGF0aCIpKTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVk
Q29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdo
aXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNl
dExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2Nr
TGlzdCk7CiAKLSAgICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVXaGl0ZUxpc3QgPSAiaW50aGV3
aGl0ZWxpc3QiOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBub3RJbldoaXRlbGlzdCA9ICJub3Rp
bnRoZXdoaXRlbGlzdCI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhlV2hpdGVMaXN0QW5k
QmxhY2tMaXN0ID0gImludGhld2hpdGVsaXN0YW5kYmxhY2tsaXN0IjsKKyAgICBzdGF0aWMgY29u
c3QgY2hhciogaW5UaGVBbGxvd0xpc3QgPSAiaW50aGVhbGxvd2xpc3QiOworICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBub3RJbkFsbG93TGlzdCA9ICJub3RpbnRoZWFsbG93bGlzdCI7CisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGluVGhlQWxsb3dMaXN0QW5kQmxvY2tMaXN0ID0gImludGhlYWxsb3ds
aXN0YW5kYmxvY2tsaXN0IjsKIAotICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKHdoaXRlbGlzdCwg
aW5UaGVXaGl0ZUxpc3QsIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0LCAwKTsKLSAgICBmaWxs
VVJMTGlzdEZyb21QYXRocyhibGFja2xpc3QsIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0LCAw
KTsKLSAgICBzdHlsZVNoZWV0ID0gd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfbmV3KGtJbmplY3Rl
ZFN0eWxlU2hlZXQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFNRVMsIFdFQktJ
VF9VU0VSX1NUWUxFX0xFVkVMX1VTRVIsIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICBmaWxs
VVJMTGlzdEZyb21QYXRocyhhbGxvd0xpc3QsIGluVGhlQWxsb3dMaXN0LCBpblRoZUFsbG93TGlz
dEFuZEJsb2NrTGlzdCwgMCk7CisgICAgZmlsbFVSTExpc3RGcm9tUGF0aHMoYmxvY2tMaXN0LCBp
blRoZUFsbG93TGlzdEFuZEJsb2NrTGlzdCwgMCk7CisgICAgc3R5bGVTaGVldCA9IHdlYmtpdF91
c2VyX3N0eWxlX3NoZWV0X25ldyhrSW5qZWN0ZWRTdHlsZVNoZWV0LCBXRUJLSVRfVVNFUl9DT05U
RU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJLSVRfVVNFUl9TVFlMRV9MRVZFTF9VU0VSLCBhbGxv
d0xpc3QsIGJsb2NrTGlzdCk7CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX2FkZF9z
dHlsZV9zaGVldCh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgc3R5bGVTaGVldCk7
CiAgICAgd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfdW5yZWYoc3R5bGVTaGVldCk7Ci0gICAgZ19h
c3NlcnRfdHJ1ZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBpblRoZVdo
aXRlTGlzdCkpOwotICAgIGdfYXNzZXJ0X2ZhbHNlKGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJM
QXRQYXRoKHRlc3QsIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0KSk7Ci0gICAgZ19hc3NlcnRf
ZmFsc2UoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgbm90SW5XaGl0ZWxp
c3QpKTsKKyAgICBnX2Fzc2VydF90cnVlKGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRo
KHRlc3QsIGluVGhlQWxsb3dMaXN0KSk7CisgICAgZ19hc3NlcnRfZmFsc2UoaXNTdHlsZVNoZWV0
SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5UaGVBbGxvd0xpc3RBbmRCbG9ja0xpc3QpKTsK
KyAgICBnX2Fzc2VydF9mYWxzZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0
LCBub3RJbkFsbG93TGlzdCkpOwogCiAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gY2xlYW4gdXAg
dGhlIGVudmlyb25tZW50IGJlZm9yZSBvdGhlciB0ZXN0cy4KLSAgICByZW1vdmVPbGRJbmplY3Rl
ZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3
aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVz
ZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9j
a0xpc3QpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0ZWRT
Y3JpcHQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAgY2hhciogd2hp
dGVsaXN0WzNdID0geyAwLCAwLCAwIH07Ci0gICAgY2hhciogYmxhY2tsaXN0WzNdID0geyAwLCAw
LCAwIH07CisgICAgY2hhciogYWxsb3dMaXN0WzNdID0geyAwLCAwLCAwIH07CisgICAgY2hhciog
YmxvY2tMaXN0WzNdID0geyAwLCAwLCAwIH07CiAKLSAgICByZW1vdmVPbGRJbmplY3RlZENvbnRl
bnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxp
c3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0
cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9ja0xpc3Qp
OwogCi0gICAgLy8gV2l0aG91dCBhIHdoaXRlbGlzdCBvciBhIGJsYWNrbGlzdCBhbGwgVVJMcyBz
aG91bGQgaGF2ZSB0aGUgaW5qZWN0ZWQgc2NyaXB0LgorICAgIC8vIFdpdGhvdXQgYSBhbGxvd0xp
c3Qgb3IgYSBibG9ja0xpc3QgYWxsIFVSTHMgc2hvdWxkIGhhdmUgdGhlIGluamVjdGVkIHNjcmlw
dC4KICAgICBzdGF0aWMgY29uc3QgY2hhciogcmFuZG9tUGF0aCA9ICJzb21lcmFuZG9tcGF0aCI7
CiAgICAgZ19hc3NlcnRfZmFsc2UoaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBy
YW5kb21QYXRoKSk7CiAgICAgV2ViS2l0VXNlclNjcmlwdCogc2NyaXB0ID0gd2Via2l0X3VzZXJf
c2NyaXB0X25ldyhrSW5qZWN0ZWRTY3JpcHQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FM
TF9GUkFNRVMsIFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRfRE9DVU1FTlRfRU5ELCBudWxs
cHRyLCBudWxscHRyKTsKQEAgLTIwNSw3ICsyMDUsNyBAQAogICAgIHdlYmtpdF91c2VyX3Njcmlw
dF91bnJlZihzY3JpcHQpOwogICAgIGdfYXNzZXJ0X3RydWUoaXNTY3JpcHRJbmplY3RlZEZvclVS
TEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CiAKLSAgICByZW1vdmVPbGRJbmplY3RlZENvbnRl
bnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxp
c3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0
cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9ja0xpc3Qp
OwogCiAgICAgZ19hc3NlcnRfZmFsc2UoaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0
LCByYW5kb21QYXRoLCAiV2ViRXh0ZW5zaW9uVGVzdFNjcmlwdFdvcmxkIikpOwogICAgIHNjcmlw
dCA9IHdlYmtpdF91c2VyX3NjcmlwdF9uZXdfZm9yX3dvcmxkKGtJbmplY3RlZFNjcmlwdCwgV0VC
S0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lO
SkVDVF9BVF9ET0NVTUVOVF9FTkQsICJXZWJFeHRlbnNpb25UZXN0U2NyaXB0V29ybGQiLCBudWxs
cHRyLCBudWxscHRyKTsKQEAgLTIxMywzMiArMjEzLDMyIEBACiAgICAgd2Via2l0X3VzZXJfc2Ny
aXB0X3VucmVmKHNjcmlwdCk7CiAgICAgZ19hc3NlcnRfdHJ1ZShpc1NjcmlwdEluamVjdGVkRm9y
VVJMQXRQYXRoKHRlc3QsIHJhbmRvbVBhdGgsICJXZWJFeHRlbnNpb25UZXN0U2NyaXB0V29ybGQi
KSk7CiAKLSAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1f
dXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgcmVt
b3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFu
YWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9ja0xpc3QpOwogCi0gICAgZmlsbFVSTExpc3RGcm9t
UGF0aHMoYmxhY2tsaXN0LCByYW5kb21QYXRoLCAwKTsKLSAgICBzY3JpcHQgPSB3ZWJraXRfdXNl
cl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1Rf
QUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQsIG51
bGxwdHIsIGJsYWNrbGlzdCk7CisgICAgZmlsbFVSTExpc3RGcm9tUGF0aHMoYmxvY2tMaXN0LCBy
YW5kb21QYXRoLCAwKTsKKyAgICBzY3JpcHQgPSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KGtJbmpl
Y3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lU
X1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQsIG51bGxwdHIsIGJsb2NrTGlzdCk7
CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX2FkZF9zY3JpcHQodGVzdC0+bV91c2Vy
Q29udGVudE1hbmFnZXIuZ2V0KCksIHNjcmlwdCk7CiAgICAgd2Via2l0X3VzZXJfc2NyaXB0X3Vu
cmVmKHNjcmlwdCk7CiAgICAgZ19hc3NlcnRfZmFsc2UoaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0
UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZShpc1NjcmlwdEluamVj
dGVkRm9yVVJMQXRQYXRoKHRlc3QsICJzb21lb3RoZXJyYW5kb21wYXRoIikpOwogCi0gICAgcmVt
b3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFu
YWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVk
Q29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIGFs
bG93TGlzdCwgYmxvY2tMaXN0KTsKIAotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpblRoZVdoaXRl
TGlzdCA9ICJpbnRoZXdoaXRlbGlzdCI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5vdEluV2hp
dGVsaXN0ID0gIm5vdGludGhld2hpdGVsaXN0IjsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogaW5U
aGVXaGl0ZUxpc3RBbmRCbGFja0xpc3QgPSAiaW50aGV3aGl0ZWxpc3RhbmRibGFja2xpc3QiOwor
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpblRoZUFsbG93TGlzdCA9ICJpbnRoZWFsbG93bGlzdCI7
CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIG5vdEluQWxsb3dMaXN0ID0gIm5vdGludGhlYWxsb3ds
aXN0IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVBbGxvd0xpc3RBbmRCbG9ja0xpc3Qg
PSAiaW50aGVhbGxvd2xpc3RhbmRibG9ja0xpc3QiOwogCi0gICAgZmlsbFVSTExpc3RGcm9tUGF0
aHMod2hpdGVsaXN0LCBpblRoZVdoaXRlTGlzdCwgaW5UaGVXaGl0ZUxpc3RBbmRCbGFja0xpc3Qs
IDApOwotICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKGJsYWNrbGlzdCwgaW5UaGVXaGl0ZUxpc3RB
bmRCbGFja0xpc3QsIDApOwotICAgIHNjcmlwdCA9IHdlYmtpdF91c2VyX3NjcmlwdF9uZXcoa0lu
amVjdGVkU2NyaXB0LCBXRUJLSVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJL
SVRfVVNFUl9TQ1JJUFRfSU5KRUNUX0FUX0RPQ1VNRU5UX0VORCwgd2hpdGVsaXN0LCBibGFja2xp
c3QpOworICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKGFsbG93TGlzdCwgaW5UaGVBbGxvd0xpc3Qs
IGluVGhlQWxsb3dMaXN0QW5kQmxvY2tMaXN0LCAwKTsKKyAgICBmaWxsVVJMTGlzdEZyb21QYXRo
cyhibG9ja0xpc3QsIGluVGhlQWxsb3dMaXN0QW5kQmxvY2tMaXN0LCAwKTsKKyAgICBzY3JpcHQg
PSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09O
VEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NV
TUVOVF9FTkQsIGFsbG93TGlzdCwgYmxvY2tMaXN0KTsKICAgICB3ZWJraXRfdXNlcl9jb250ZW50
X21hbmFnZXJfYWRkX3NjcmlwdCh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgc2Ny
aXB0KTsKICAgICB3ZWJraXRfdXNlcl9zY3JpcHRfdW5yZWYoc2NyaXB0KTsKLSAgICBnX2Fzc2Vy
dF90cnVlKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5UaGVXaGl0ZUxpc3Qp
KTsKLSAgICBnX2Fzc2VydF9mYWxzZShpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3Qs
IGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0KSk7Ci0gICAgZ19hc3NlcnRfZmFsc2UoaXNTY3Jp
cHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBub3RJbldoaXRlbGlzdCkpOworICAgIGdfYXNz
ZXJ0X3RydWUoaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBpblRoZUFsbG93TGlz
dCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVz
dCwgaW5UaGVBbGxvd0xpc3RBbmRCbG9ja0xpc3QpKTsKKyAgICBnX2Fzc2VydF9mYWxzZShpc1Nj
cmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIG5vdEluQWxsb3dMaXN0KSk7CiAKICAgICAv
LyBJdCdzIGltcG9ydGFudCB0byBjbGVhbiB1cCB0aGUgZW52aXJvbm1lbnQgYmVmb3JlIG90aGVy
IHRlc3RzLgotICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+
bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICBy
ZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRN
YW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiB9CiAKIGNsYXNzIFVzZXJTY3Jp
cHRNZXNzYWdlVGVzdCA6IHB1YmxpYyBXZWJWaWV3VGVzdCB7CkBAIC00NzcsMTAgKzQ3NywxMCBA
QAogCiBzdGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VyQ29udGVudEZpbHRlcihXZWJW
aWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBjaGFyKiB3aGl0ZWxpc3RbXSA9
IHsgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OwotICAgIGNoYXIqIGJsYWNrbGlzdFtdID0g
eyBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07CisgICAgY2hhciogYWxsb3dMaXN0W10gPSB7
IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKKyAgICBjaGFyKiBibG9ja0xpc3RbXSA9IHsg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OwogCi0gICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250
ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVs
aXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlz
dHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIGFsbG93TGlzdCwgYmxvY2tMaXN0
KTsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzb21lUGF0aCA9ICJzb21lcGF0aCI7CiAgICAg
Z19hc3NlcnRfZmFsc2UoaXNDU1NCbG9ja2VkRm9yVVJMQXRQYXRoKHRlc3QsIHNvbWVQYXRoKSk7
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwJKHJldmlzaW9uIDI2NTA4MSkKKysrIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTg4LDggKzg4LDggQEAKICAgICB2b2lkIHNldFBvcHVwQmxv
Y2tpbmdFbmFibGVkKGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0QXV0aG9yQW5kVXNlclN0
eWxlc0VuYWJsZWQoYm9vbGVhbiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxl
Z2F0ZShib29sZWFuIGVuYWJsZWQsIGJvb2xlYW4gcGVybWlzc2l2ZSk7Ci0gICAgdm9pZCBhZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShET01TdHJpbmcgc291cmNlT3JpZ2luLCBET01TdHJp
bmcgZGVzdGluYXRpb25Qcm90b2NvbCwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbGVh
biBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Ci0gICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeShET01TdHJpbmcgc291cmNlT3JpZ2luLCBET01TdHJpbmcgZGVzdGlu
YXRpb25Qcm90b2NvbCwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbGVhbiBhbGxvd0Rl
c3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RF
bnRyeShET01TdHJpbmcgc291cmNlT3JpZ2luLCBET01TdHJpbmcgZGVzdGluYXRpb25Qcm90b2Nv
bCwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbGVhbiBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CisgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShET01T
dHJpbmcgc291cmNlT3JpZ2luLCBET01TdHJpbmcgZGVzdGluYXRpb25Qcm90b2NvbCwgRE9NU3Ry
aW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbGVhbiBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7
CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQoYm9vbGVhbiB2YWx1ZSk7CiAgICAg
dm9pZCBzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKERPTVN0cmluZyBsb2NhdGlvbik7CiAgICAg
dm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbGVhbiB2YWx1ZSk7CkluZGV4OiBU
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAJKHJldmlzaW9uIDI2NTA4MSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3MSwxMiArNTcxLDEy
IEBACiAgICAgV0tCdW5kbGVTZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChpbmplY3RlZEJ1
bmRsZS5idW5kbGUoKSwgaW5qZWN0ZWRCdW5kbGUucGFnZUdyb3VwKCksIGVuYWJsZWQpOwogfQog
Ci12b2lkIFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpTU3RyaW5n
UmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJp
bmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQor
dm9pZCBUZXN0UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1Jl
ZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5n
UmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsK
ICAgICBXS0J1bmRsZUFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEluamVjdGVkQnVuZGxl
OjpzaW5nbGV0b24oKS5idW5kbGUoKSwgdG9XSyhzb3VyY2VPcmlnaW4pLmdldCgpLCB0b1dLKGRl
c3RpbmF0aW9uUHJvdG9jb2wpLmdldCgpLCB0b1dLKGRlc3RpbmF0aW9uSG9zdCkuZ2V0KCksIGFs
bG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpyZW1vdmVP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3Ry
aW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwg
Ym9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3Zl
T3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0
cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3Qs
IGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgV0tCdW5kbGVSZW1vdmVP
cmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVu
ZGxlKCksIHRvV0soc291cmNlT3JpZ2luKS5nZXQoKSwgdG9XSyhkZXN0aW5hdGlvblByb3RvY29s
KS5nZXQoKSwgdG9XSyhkZXN0aW5hdGlvbkhvc3QpLmdldCgpLCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkocmV2aXNpb24gMjY1MDgxKQorKysgVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTExNSw4ICsxMTUsOCBAQAogICAgIHZvaWQgc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCk7
CiAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChib29sKTsKICAgICB2b2lk
IHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlID0g
ZmFsc2UpOwotICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdS
ZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmlu
Z1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwot
ICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291
cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBk
ZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZv
aWQgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2lu
LCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlv
bkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZvaWQgcmVtb3Zl
T3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0
cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3Qs
IGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgc2V0VXNlclN0eWxl
U2hlZXRFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihK
U1N0cmluZ1JlZik7CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405582</attachid>
            <date>2020-07-30 09:57:44 -0700</date>
            <delta_ts>2020-07-30 10:16:38 -0700</delta_ts>
            <desc>patch</desc>
            <filename>patch</filename>
            <type>text/plain</type>
            <size>56431</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IExheW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI2NTA4MSkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29y
a2luZyBjb3B5KQpAQCAtMSwzICsxLDI1IEBACisyMDIwLTA3LTMwICBBbGV4IENocmlzdGVuc2Vu
ICA8YWNocmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIG1vcmUgaW5jbHVzaXZl
IHRlcm1pbm9sb2d5IGluIFRvb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTQ5NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3JlcG9ydC1ibG9ja2VkLWZpbGUtdXJpLnBocDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtcmVkaXJlY3QtYWxsb3dlZC5odG1sOgorICAg
ICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1yZWRp
cmVjdC1hbGxvd2VkMi5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3hzbC1yZWRpcmVjdC1ibG9ja2VkLmh0bWw6CisgICAgICAgICogaHR0
cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRl
bGlzdGVkLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2Fs
LWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWFsbC5odG1sOgorICAgICAgICAq
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1leGFjdC1tYXRj
aC5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRl
bGlzdGluZy1odHRwcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
b3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMtd2l0aC1zdWJkb21haW5zLmh0bWw6Cisg
ICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlw
LWFkZHJlc3Nlcy5odG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXN1YmRvbWFpbnMuaHRtbDoKKwogMjAyMC0w
Ny0yOSAgS2F0ZSBDaGVuZXkgIDxrYXRoZXJpbmVfY2hlbmV5QGFwcGxlLmNvbT4KIAogICAgICAg
ICBNaWdyYXRlIEFwcC1Cb3VuZCBEb21haW5zIGNvZGUgZnJvbSBXZWJLaXQgQWRkaXRpb25zCklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS9yZXBvcnQtYmxvY2tlZC1maWxlLXVyaS5waHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVwb3J0LWJsb2NrZWQt
ZmlsZS11cmkucGhwCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYmxvY2tlZC1maWxlLXVyaS5w
aHAJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBACiA8aHRtbD4KIDxib2R5PgogICAgIDxz
Y3JpcHQ+Ci0gICAgICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
J2h0dHA6Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycsIHRydWUpOworICAgICAgICB0ZXN0
UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KCdodHRwOi8vMTI3LjAuMC4xOjgw
MDAnLCAnZmlsZScsICcnLCB0cnVlKTsKICAgICAgICAgdmFyIGxvY2FsSW1hZ2VMb2NhdGlvbiA9
IHRlc3RSdW5uZXIucGF0aFRvTG9jYWxSZXNvdXJjZSgnZmlsZTovLy90bXAvTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY29tcGFzcy5qcGcnKTsKIAogICAgICAgICB2
YXIgbG9jYWxJbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3hzbC1yZWRpcmVjdC1hbGxvd2VkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93
ZWQuaHRtbAkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93ZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAKICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1l
c0FzVGV4dCgpOwogCiAgICAgLy8gVGhpcyBpcyBhIGNvbnRyaXZlZCB0ZXN0LiBXZSBub3JtYWxs
eSBkbyBub3QgYWxsb3cgY3Jvc3Mtb3JpZ2luIFhNTCBTdHlsZXNoZWV0cy4KLSAgICB0ZXN0UnVu
bmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
LCAiaHR0cCIsICJsb2NhbGhvc3QiLCBmYWxzZSk7CisgICAgdGVzdFJ1bm5lci5hZGRPcmlnaW5B
Y2Nlc3NBbGxvd0xpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9j
YWxob3N0IiwgZmFsc2UpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtcmVkaXJlY3Qt
YWxsb3dlZDIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3Vy
aXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtcmVkaXJlY3QtYWxsb3dlZDIuaHRtbAkocmV2
aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93ZWQyLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTcsNyArNyw3IEBACiAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsK
IAogICAgIC8vIFRoaXMgaXMgYSBjb250cml2ZWQgdGVzdC4gV2Ugbm9ybWFsbHkgZG8gbm90IGFs
bG93IGNyb3NzLW9yaWdpbiBYTUwgU3R5bGVzaGVldHMuCi0gICAgdGVzdFJ1bm5lci5hZGRPcmln
aW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAi
bG9jYWxob3N0IiwgZmFsc2UpOworICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dM
aXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZh
bHNlKTsKIH0KIDwvc2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWJsb2NrZWQuaHRt
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRT
ZWN1cml0eVBvbGljeS94c2wtcmVkaXJlY3QtYmxvY2tlZC5odG1sCShyZXZpc2lvbiAyNjUwODEp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS94c2wtcmVkaXJlY3QtYmxvY2tlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBA
QAogICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CiAKICAgICAvLyBUaGlz
IGlzIGEgY29udHJpdmVkIHRlc3QuIFdlIG5vcm1hbGx5IGRvIG5vdCBhbGxvdyBjcm9zcy1vcmln
aW4gWE1MIFN0eWxlc2hlZXRzLgotICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZh
bHNlKTsKKyAgICB0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KCJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2NhbGhvc3QiLCBmYWxzZSk7CiB9CiA8L3Nj
cmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNv
bGF0ZWRXb3JsZC9jcm9zcy1vcmlnaW4teGhyLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRt
bAkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9p
c29sYXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjcs
NyArMjcsNyBAQAogICAgIGZ1bmN0aW9uKCkgewogICAgICAgICBkZWJ1ZygnWEhSIGZyb20gaXNv
bGF0ZWQgd29ybGQgd2l0aCBzZWN1cml0eSBvcmlnaW4gdGhhdCBpcyB3aGl0ZWxpc3RlZCBmb3Ig
WEhSIHRhcmdldCcpOwogICAgICAgICB0ZXN0UnVubmVyLnNldElzb2xhdGVkV29ybGRTZWN1cml0
eU9yaWdpbigyLCAnY2hyb21lLWV4dGVuc2lvbjovLzEyMycpOwotICAgICAgICB0ZXN0UnVubmVy
LmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCdjaHJvbWUtZXh0ZW5zaW9uOi8vMTIzJywg
J2h0dHAnLCAnbG9jYWxob3N0JywgZmFsc2UpOworICAgICAgICB0ZXN0UnVubmVyLmFkZE9yaWdp
bkFjY2Vzc0FsbG93TGlzdEVudHJ5KCdjaHJvbWUtZXh0ZW5zaW9uOi8vMTIzJywgJ2h0dHAnLCAn
bG9jYWxob3N0JywgZmFsc2UpOwogICAgICAgICBydW5UZXN0SW5Xb3JsZCgyLCAneGhyJyk7CiAg
ICAgfSwKICAgICBmdW5jdGlvbigpIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0Cj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2Ut
ZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjUwODEpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3Rl
LXdoaXRlbGlzdGVkLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAK
IAotVGhpcyB0ZXN0IGlzIHRvIHNlZSBpZiBhIHJlbW90ZSBmaWxlIGNhbiBpbmNsdWRlIGEgbG9j
YWwgaW1hZ2Ugd2hlbiB0aGUgYWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3RlZCB1c2luZyBhZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KK1RoaXMgdGVzdCBpcyB0byBzZWUgaWYgYSByZW1v
dGUgZmlsZSBjYW4gaW5jbHVkZSBhIGxvY2FsIGltYWdlIHdoZW4gdGhlIGFjY2VzcyBoYXMgYmVl
biB3aGl0ZSBsaXN0ZWQgdXNpbmcgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkuCiAKIFRl
c3QgUGFzc2VkLiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3RlbHkuCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVk
Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2Nh
bC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sCShyZXZpc2lvbiAyNjUwODEpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3Rl
LXdoaXRlbGlzdGVkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBACiA8c2NyaXB0
PgogCiB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLXRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkoJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycsIHRydWUp
OwordGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSgnaHR0cDovLzEyNy4w
LjAuMTo4MDAwJywgJ2ZpbGUnLCAnJywgdHJ1ZSk7CiAKIHZhciBsb2NhbEltYWdlTG9jYXRpb24g
PSB0ZXN0UnVubmVyLnBhdGhUb0xvY2FsUmVzb3VyY2UoJ2ZpbGU6Ly8vdG1wL0xheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2NvbXBhc3MuanBnJyk7CiAKQEAgLTI0LDcg
KzI0LDcgQEAKIDwvc2NyaXB0PgogCiA8cD5UaGlzIHRlc3QgaXMgdG8gc2VlIGlmIGEgcmVtb3Rl
IGZpbGUgY2FuIGluY2x1ZGUgYSBsb2NhbCBpbWFnZSB3aGVuIHRoZQotYWNjZXNzIGhhcyBiZWVu
IHdoaXRlIGxpc3RlZCB1c2luZyBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KK2FjY2Vz
cyBoYXMgYmVlbiB3aGl0ZSBsaXN0ZWQgdXNpbmcgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50
cnkuCiAKIDxwIGlkPXJlc3VsdD5UZXN0IGhhcyBub3QgcnVuLgogCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctYWxsLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmln
aW4td2hpdGVsaXN0aW5nLWFsbC5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctYWxsLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTQsOCArNCw4IEBACiA8c2NyaXB0PgogdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLXRlc3RSdW5uZXIuYWRkT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwg
IiIsIHRydWUpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIiwgImh0dHAiLCAiIiwgdHJ1ZSk7Cit0ZXN0UnVubmVyLmFkZE9y
aWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIs
ICIiLCB0cnVlKTsKK3Rlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMCIsICJodHRwIiwgIiIsIHRydWUpOwogCiBmdW5jdGlvbiBsb2co
bWVzc2FnZSkKIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
b3JpZ2luLXdoaXRlbGlzdGluZy1leGFjdC1tYXRjaC5odG1sCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1leGFj
dC1tYXRjaC5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctZXhhY3QtbWF0Y2guaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9j
YWxob3N0IiwgZmFsc2UpOwordGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRy
eSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9jYWxob3N0IiwgZmFsc2UpOwog
CiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1odHRwcy5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlz
dGluZy1odHRwcy5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaHR0cHMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0UnVubmVyLmR1bXBBc1RleHQo
KTsKIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHBzIiwgImxvY2Fs
aG9zdCIsIGZhbHNlKTsKK3Rlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnko
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwcyIsICJsb2NhbGhvc3QiLCBmYWxzZSk7CiAK
IGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy13aXRoLXN1YmRv
bWFpbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5o
dG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5o
dG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdD4KIHRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwogdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci10ZXN0UnVubmVyLmFk
ZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0
cCIsICIqLjAuMC4xIiwgdHJ1ZSk7Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlz
dEVudHJ5KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIqLjAuMC4xIiwgdHJ1ZSk7
CiAKIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2lu
LXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMuaHRtbAkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlw
LWFkZHJlc3Nlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdD4K
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci10
ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vbG9jYWxob3N0
OjgwMDAiLCAiaHR0cCIsICIxMjcuMC4wLjEiLCBmYWxzZSk7Cit0ZXN0UnVubmVyLmFkZE9yaWdp
bkFjY2Vzc0FsbG93TGlzdEVudHJ5KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIx
MjcuMC4wLjEiLCBmYWxzZSk7CiAKIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQogewpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJl
bW92YWwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC5odG1sCShyZXZpc2lvbiAyNjUwODEp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxp
c3RpbmctcmVtb3ZhbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yOSwxMSArMjksMTEgQEAKIAog
ICAgIGxvYWRVUkwodXJsLCBmYWxzZSk7CiAKLSAgICB0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5KG9yaWdpbiwgcHJvdG9jb2wudG9Mb3dlckNhc2UoKSwgaG9zdC50b0xv
d2VyQ2FzZSgpLCBzdWJkb21haW5zKTsKKyAgICB0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0Fs
bG93TGlzdEVudHJ5KG9yaWdpbiwgcHJvdG9jb2wudG9Mb3dlckNhc2UoKSwgaG9zdC50b0xvd2Vy
Q2FzZSgpLCBzdWJkb21haW5zKTsKIAogICAgIGxvYWRVUkwodXJsLCB0cnVlKTsKIAotICAgIHRl
c3RSdW5uZXIucmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkob3JpZ2luLCBwcm90b2Nv
bCwgaG9zdCwgc3ViZG9tYWlucyk7CisgICAgdGVzdFJ1bm5lci5yZW1vdmVPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RFbnRyeShvcmlnaW4sIHByb3RvY29sLCBob3N0LCBzdWJkb21haW5zKTsKIAogICAg
IGxvYWRVUkwodXJsLCBmYWxzZSk7CiAKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1zdWJkb21haW5zLmh0bWwKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVs
aXN0aW5nLXN1YmRvbWFpbnMuaHRtbAkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXN1YmRvbWFpbnMu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5h
ZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0
dHAiLCAibG9jYWxob3N0IiwgdHJ1ZSk7Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93
TGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2NhbGhvc3QiLCB0
cnVlKTsKIAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiB7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVn
YWN5L3dpbi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4v
Q2hhbmdlTG9nCShyZXZpc2lvbiAyNjUwODEpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9D
aGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNSBAQAorMjAyMC0wNy0zMCAgQWxl
eCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgorCisgICAgICAgIFVzZSBt
b3JlIGluY2x1c2l2ZSB0ZXJtaW5vbG9neSBpbiBUb29scworICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE0OTcxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBJbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5p
ZGw6CisgICAgICAgIFJlbmFtZSBzb21lIHRlc3Qtb25seSBBUEkuICBUaGlzIHNob3VsZCBub3Qg
YWZmZWN0IGJpbmFyeSBjb21wYXRpYmlsaXR5IGJlY2F1c2UgZXZlcnl0aGluZyBpcyBpbiB0aGUg
c2FtZSBsb2NhdGlvbnMsIGFuZCB0aGUgY2hhbmdlZCBBUEkgaXMgb25seSB1c2VkIGZvciB0ZXN0
cy4KKyAgICAgICAgKiBXZWJWaWV3Lmg6CisgICAgICAgICogV2ViVmlldy5jcHA6CisKIDIwMjAt
MDctMjMgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAg
ICAgICBTcGxpdCBXaW5kb3dzIHBhcnRzIGZyb20gQ0ZOZXR3b3JrU1BJLmggdG8gQ0ZOZXR3b3Jr
U1BJV2luLmgKSW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlZp
ZXdQcml2YXRlLmlkbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRl
cmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwJKHJldmlzaW9uIDI2NTA4MSkKKysrIFNvdXJjZS9X
ZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAkod29ya2luZyBj
b3B5KQpAQCAtMTg5LDEyICsxODksMTIgQEAKICAgICBIUkVTVUxUIE1JTUVUeXBlRm9yRXh0ZW5z
aW9uKFtpbl0gQlNUUiBleHRlbnNpb24sIFtvdXQsIHJldHZhbF0gQlNUUiogbWltZVR5cGUpOwog
CiAgICAgSFJFU1VMVCBhZGRVc2VyU2NyaXB0VG9Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1lLCBb
aW5dIElXZWJTY3JpcHRXb3JsZCosIFtpbl0gQlNUUiBzb3VyY2UsIFtpbl0gQlNUUiB1cmwsCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIHdoaXRlbGlzdENv
dW50LCBbaW4sIHNpemVfaXMod2hpdGVsaXN0Q291bnQpXSBCU1RSKiB3aGl0ZWxpc3QsCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50
LCBbaW4sIHNpemVfaXMoYmxhY2tsaXN0Q291bnQpXSBCU1RSKiBibGFja2xpc3QsCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIGFsbG93TGlzdENvdW50LCBb
aW4sIHNpemVfaXMoYWxsb3dMaXN0Q291bnQpXSBCU1RSKiBhbGxvd0xpc3QsCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LCBbaW4s
IHNpemVfaXMoYmxvY2tMaXN0Q291bnQpXSBCU1RSKiBibG9ja0xpc3QsCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBbaW5dIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVj
dGlvblRpbWUpOwogICAgIEhSRVNVTFQgYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKFtpbl0gQlNU
UiBncm91cE5hbWUsIFtpbl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHNvdXJjZSwgW2lu
XSBCU1RSIHVybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5dIHVu
c2lnbmVkIHdoaXRlbGlzdENvdW50LCBbaW4sIHNpemVfaXMod2hpdGVsaXN0Q291bnQpXSBCU1RS
KiB3aGl0ZWxpc3QsCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luXSB1
bnNpZ25lZCBibGFja2xpc3RDb3VudCwgW2luLCBzaXplX2lzKGJsYWNrbGlzdENvdW50KV0gQlNU
UiogYmxhY2tsaXN0KTsKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaW5d
IHVuc2lnbmVkIGFsbG93TGlzdENvdW50LCBbaW4sIHNpemVfaXMoYWxsb3dMaXN0Q291bnQpXSBC
U1RSKiBhbGxvd0xpc3QsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lu
XSB1bnNpZ25lZCBibG9ja0xpc3RDb3VudCwgW2luLCBzaXplX2lzKGJsb2NrTGlzdENvdW50KV0g
QlNUUiogYmxvY2tMaXN0KTsKICAgICBIUkVTVUxUIHJlbW92ZVVzZXJTY3JpcHRGcm9tR3JvdXAo
W2luXSBCU1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqLCBbaW5dIEJTVFIgdXJs
KTsKICAgICBIUkVTVUxUIHJlbW92ZVVzZXJTdHlsZVNoZWV0RnJvbUdyb3VwKFtpbl0gQlNUUiBn
cm91cE5hbWUsIFtpbl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHVybCk7CiAgICAgSFJF
U1VMVCByZW1vdmVVc2VyU2NyaXB0c0Zyb21Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1lLCBbaW5d
IElXZWJTY3JpcHRXb3JsZCopOwpAQCAtMjA3LDE3ICsyMDcsMTcgQEAKICAgICAvLyBJZiByZWN0
IGlzIDAsIHRoZSBlbnRpcmUgYmFja2luZyBzdG9yZSB3aWxsIGJlIGludmFsaWRhdGVkLgogICAg
IEhSRVNVTFQgaW52YWxpZGF0ZUJhY2tpbmdTdG9yZShbaW5dIGNvbnN0IFJFQ1QqIHJlY3QpOwog
Ci0gICAgLy8gV2hpdGVsaXN0cyBhY2Nlc3MgZnJvbSBhbiBvcmlnaW4gKHNvdXJjZU9yaWdpbikg
dG8gYSBzZXQgb2Ygb25lIG9yIG1vcmUgb3JpZ2lucyBkZXNjcmliZWQgYnkgdGhlIHBhcmFtZXRl
cnM6CisgICAgLy8gQWxsb3dMaXN0cyBhY2Nlc3MgZnJvbSBhbiBvcmlnaW4gKHNvdXJjZU9yaWdp
bikgdG8gYSBzZXQgb2Ygb25lIG9yIG1vcmUgb3JpZ2lucyBkZXNjcmliZWQgYnkgdGhlIHBhcmFt
ZXRlcnM6CiAgICAgLy8gLSBkZXN0aW5hdGlvblByb3RvY29sOiBUaGUgcHJvdG9jb2wgdG8gZ3Jh
bnQgYWNjZXNzIHRvLgogICAgIC8vIC0gZGVzdGluYXRpb25Ib3N0OiBUaGUgaG9zdCB0byBncmFu
dCBhY2Nlc3MgdG8uCi0gICAgLy8gLSBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczogSWYgaG9z
dCBpcyBhIGRvbWFpbiwgc2V0dGluZyB0aGlzIHRvIFlFUyB3aWxsIHdoaXRlbGlzdCBob3N0IGFu
ZCBhbGwgaXRzIHN1YmRvbWFpbnMsIHJlY3Vyc2l2ZWx5LgotICAgIEhSRVNVTFQgYWRkT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnkoW2luXSBCU1RSIHNvdXJjZU9yaWdpbiwgW2luXSBCU1RSIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIFtpbl0gQlNUUiBkZXN0aW5hdGlvbkhvc3QsIFtpbl0gQk9PTCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgLy8gLSBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWluczogSWYgaG9zdCBpcyBhIGRvbWFpbiwgc2V0dGluZyB0aGlzIHRvIFlFUyB3aWxsIGFs
bG93IGhvc3QgYW5kIGFsbCBpdHMgc3ViZG9tYWlucywgcmVjdXJzaXZlbHkuCisgICAgSFJFU1VM
VCBhZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShbaW5dIEJTVFIgc291cmNlT3JpZ2luLCBb
aW5dIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgW2luXSBCU1RSIGRlc3RpbmF0aW9uSG9zdCwg
W2luXSBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIAotICAgIC8vIFJlbW92ZXMg
YSB3aGl0ZSBsaXN0IGVudHJ5IGNyZWF0ZWQgd2l0aCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RF
bnRyeS4gU2VlIGFib3ZlLgotICAgIEhSRVNVTFQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoW2luXSBCU1RSIHNvdXJjZU9yaWdpbiwgW2luXSBCU1RSIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIFtpbl0gQlNUUiBkZXN0aW5hdGlvbkhvc3QsIFtpbl0gQk9PTCBhbGxvd0Rlc3RpbmF0aW9u
U3ViZG9tYWlucyk7CisgICAgLy8gUmVtb3ZlcyBhIHdoaXRlIGxpc3QgZW50cnkgY3JlYXRlZCB3
aXRoIGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5LiBTZWUgYWJvdmUuCisgICAgSFJFU1VM
VCByZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShbaW5dIEJTVFIgc291cmNlT3JpZ2lu
LCBbaW5dIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgW2luXSBCU1RSIGRlc3RpbmF0aW9uSG9z
dCwgW2luXSBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIAotICAgIC8vIFJlbW92
ZXMgYWxsIHdoaXRlIGxpc3QgZW50cmllcyBjcmVhdGVkIHdpdGggYWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkuCi0gICAgSFJFU1VMVCByZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsK
KyAgICAvLyBSZW1vdmVzIGFsbCB3aGl0ZSBsaXN0IGVudHJpZXMgY3JlYXRlZCB3aXRoIGFkZE9y
aWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5LgorICAgIEhSRVNVTFQgcmVzZXRPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RzKCk7CiAKICAgICBIUkVTVUxUIHNldEhpc3RvcnlEZWxlZ2F0ZShbaW5dIElXZWJI
aXN0b3J5RGVsZWdhdGUqIGhpc3RvcnlEZWxlZ2F0ZSk7CiAgICAgSFJFU1VMVCBoaXN0b3J5RGVs
ZWdhdGUoW291dCxyZXR2YWxdIElXZWJIaXN0b3J5RGVsZWdhdGUqKiBoaXN0b3J5RGVsZWdhdGUp
OwpAQCAtMzE2LDEzICszMTYsMTMgQEAKICAgICBIUkVTVUxUIGJhY2tpbmdTY2FsZUZhY3Rvcihb
b3V0XSBkb3VibGUqKTsKIAogICAgIEhSRVNVTFQgYWRkVXNlclNjcmlwdFRvR3JvdXAoW2luXSBC
U1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqLCBbaW5dIEJTVFIgc291cmNlLCBb
aW5dIEJTVFIgdXJsLAotICAgICAgICBbaW5dIHVuc2lnbmVkIHdoaXRlbGlzdENvdW50LCBbaW4s
IHNpemVfaXMod2hpdGVsaXN0Q291bnQpXSBCU1RSKiB3aGl0ZWxpc3QsCi0gICAgICAgIFtpbl0g
dW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyhibGFja2xpc3RDb3VudCldIEJT
VFIqIGJsYWNrbGlzdCwKKyAgICAgICAgW2luXSB1bnNpZ25lZCBhbGxvd0xpc3RDb3VudCwgW2lu
LCBzaXplX2lzKGFsbG93TGlzdENvdW50KV0gQlNUUiogYWxsb3dMaXN0LAorICAgICAgICBbaW5d
IHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LCBbaW4sIHNpemVfaXMoYmxvY2tMaXN0Q291bnQpXSBC
U1RSKiBibG9ja0xpc3QsCiAgICAgICAgIFtpbl0gV2ViVXNlclNjcmlwdEluamVjdGlvblRpbWUg
aW5qZWN0aW9uVGltZSwgW2luXSBXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVk
RnJhbWVzKTsKIAogICAgIEhSRVNVTFQgYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKFtpbl0gQlNU
UiBncm91cE5hbWUsIFtpbl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHNvdXJjZSwgW2lu
XSBCU1RSIHVybCwKLSAgICAgICAgW2luXSB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgW2luLCBz
aXplX2lzKHdoaXRlbGlzdENvdW50KV0gQlNUUiogd2hpdGVsaXN0LAotICAgICAgICBbaW5dIHVu
c2lnbmVkIGJsYWNrbGlzdENvdW50LCBbaW4sIHNpemVfaXMoYmxhY2tsaXN0Q291bnQpXSBCU1RS
KiBibGFja2xpc3QsCisgICAgICAgIFtpbl0gdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIFtpbiwg
c2l6ZV9pcyhhbGxvd0xpc3RDb3VudCldIEJTVFIqIGFsbG93TGlzdCwKKyAgICAgICAgW2luXSB1
bnNpZ25lZCBibG9ja0xpc3RDb3VudCwgW2luLCBzaXplX2lzKGJsb2NrTGlzdENvdW50KV0gQlNU
UiogYmxvY2tMaXN0LAogICAgICAgICBbaW5dIFdlYlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMg
aW5qZWN0ZWRGcmFtZXMpOwogfQogCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmNw
cAkocmV2aXNpb24gMjY1MDgxKQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTY5ODgsMTEgKzY5ODgsMTEgQEAKIH0KIAogSFJFU1VMVCBX
ZWJWaWV3OjphZGRVc2VyU2NyaXB0VG9Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0
XyBJV2ViU2NyaXB0V29ybGQqIGlXb3JsZCwgX0luXyBCU1RSIHNvdXJjZSwgX0luXyBCU1RSIHVy
bCwKLSAgICB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbCh3aGl0
ZWxpc3RDb3VudCkgQlNUUiogd2hpdGVsaXN0LAotICAgIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50
LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJsYWNrbGlzdENvdW50KSBCU1RSKiBibGFja2xpc3QsCisg
ICAgdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0
Q291bnQpIEJTVFIqIGFsbG93TGlzdCwKKyAgICB1bnNpZ25lZCBibG9ja0xpc3RDb3VudCwgX19p
bm91dF9lY291bnRfZnVsbChibG9ja0xpc3RDb3VudCkgQlNUUiogYmxvY2tsaXN0LAogICAgIFdl
YlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUpCiB7Ci0gICAgcmV0dXJuIGFk
ZFVzZXJTY3JpcHRUb0dyb3VwKGdyb3VwTmFtZSwgaVdvcmxkLCBzb3VyY2UsIHVybCwgd2hpdGVs
aXN0Q291bnQsIHdoaXRlbGlzdCwgYmxhY2tsaXN0Q291bnQsIGJsYWNrbGlzdCwgaW5qZWN0aW9u
VGltZSwgV2ViSW5qZWN0SW5BbGxGcmFtZXMpOworICAgIHJldHVybiBhZGRVc2VyU2NyaXB0VG9H
cm91cChncm91cE5hbWUsIGlXb3JsZCwgc291cmNlLCB1cmwsIGFsbG93TGlzdENvdW50LCBhbGxv
d0xpc3QsIGJsb2NrTGlzdENvdW50LCBibG9ja2xpc3QsIGluamVjdGlvblRpbWUsIFdlYkluamVj
dEluQWxsRnJhbWVzKTsKIH0KIAogc3RhdGljIFZlY3RvcjxTdHJpbmc+IHRvU3RyaW5nVmVjdG9y
KEJTVFIqIGVudHJpZXMsIHVuc2lnbmVkIGNvdW50KQpAQCAtNzAwOCw4ICs3MDA4LDggQEAKIH0K
IAogSFJFU1VMVCBXZWJWaWV3OjphZGRVc2VyU2NyaXB0VG9Hcm91cChfSW5fIEJTVFIgZ3JvdXBO
YW1lLCBfSW5fb3B0XyBJV2ViU2NyaXB0V29ybGQqIGlXb3JsZCwgX0luXyBCU1RSIHNvdXJjZSwg
X0luXyBCU1RSIHVybCwKLSAgICB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgX19pbm91dF9lY291
bnRfZnVsbCh3aGl0ZWxpc3RDb3VudCkgQlNUUiogd2hpdGVsaXN0LAotICAgIHVuc2lnbmVkIGJs
YWNrbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJsYWNrbGlzdENvdW50KSBCU1RSKiBi
bGFja2xpc3QsCisgICAgdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1
bGwoYWxsb3dMaXN0Q291bnQpIEJTVFIqIGFsbG93TGlzdCwKKyAgICB1bnNpZ25lZCBibG9ja0xp
c3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChibG9ja0xpc3RDb3VudCkgQlNUUiogYmxvY2ts
aXN0LAogICAgIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRpbWUsIFdlYlVz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFtZXMpCiB7CiAgICAgU3RyaW5nIGdy
b3VwID0gdG9TdHJpbmcoZ3JvdXBOYW1lKTsKQEAgLTcwMjIsOCArNzAyMiw4IEBACiAgICAgICAg
IHJldHVybiBFX1BPSU5URVI7CiAKICAgICBXZWJTY3JpcHRXb3JsZCogd29ybGQgPSByZWludGVy
cHJldF9jYXN0PFdlYlNjcmlwdFdvcmxkKj4oaVdvcmxkKTsKLSAgICBhdXRvIHVzZXJTY3JpcHQg
PSBtYWtlVW5pcXVlPFVzZXJTY3JpcHQ+KHNvdXJjZSwgdG9VUkwodXJsKSwgdG9TdHJpbmdWZWN0
b3Iod2hpdGVsaXN0LCB3aGl0ZWxpc3RDb3VudCksCi0gICAgICAgIHRvU3RyaW5nVmVjdG9yKGJs
YWNrbGlzdCwgYmxhY2tsaXN0Q291bnQpLCBpbmplY3Rpb25UaW1lID09IFdlYkluamVjdEF0RG9j
dW1lbnRTdGFydCA/IFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lOjpEb2N1bWVudFN0YXJ0IDogVXNl
clNjcmlwdEluamVjdGlvblRpbWU6OkRvY3VtZW50RW5kLAorICAgIGF1dG8gdXNlclNjcmlwdCA9
IG1ha2VVbmlxdWU8VXNlclNjcmlwdD4oc291cmNlLCB0b1VSTCh1cmwpLCB0b1N0cmluZ1ZlY3Rv
cihhbGxvd0xpc3QsIGFsbG93TGlzdENvdW50KSwKKyAgICAgICAgdG9TdHJpbmdWZWN0b3IoYmxv
Y2tsaXN0LCBibG9ja0xpc3RDb3VudCksIGluamVjdGlvblRpbWUgPT0gV2ViSW5qZWN0QXREb2N1
bWVudFN0YXJ0ID8gVXNlclNjcmlwdEluamVjdGlvblRpbWU6OkRvY3VtZW50U3RhcnQgOiBVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZTo6RG9jdW1lbnRFbmQsCiAgICAgICAgIGluamVjdGVkRnJhbWVz
ID09IFdlYkluamVjdEluQWxsRnJhbWVzID8gVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5q
ZWN0SW5BbGxGcmFtZXMgOiBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJblRvcEZy
YW1lT25seSwgV2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6Tm8pOwogICAgIHZp
ZXdHcm91cC0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkuYWRkVXNlclNjcmlwdCh3b3JsZC0+d29y
bGQoKSwgV1RGTW92ZSh1c2VyU2NyaXB0KSk7CiAgICAgcmV0dXJuIFNfT0s7CkBAIC03MDMwLDEz
ICs3MDMwLDEzIEBACiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXRUb0dy
b3VwKF9Jbl8gQlNUUiBncm91cE5hbWUsIF9Jbl9vcHRfIElXZWJTY3JpcHRXb3JsZCogaVdvcmxk
LCBfSW5fIEJTVFIgc291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgIHVuc2lnbmVkIHdoaXRlbGlz
dENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKHdoaXRlbGlzdENvdW50KSBCU1RSKiB3aGl0ZWxp
c3QsIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJsYWNrbGlz
dENvdW50KSBCU1RSKiBibGFja2xpc3QpCisgICAgdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIF9f
aW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0Q291bnQpIEJTVFIqIGFsbG93TGlzdCwgdW5zaWdu
ZWQgYmxvY2tMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxvY2tMaXN0Q291bnQpIEJT
VFIqIGJsb2NrbGlzdCkKIHsKLSAgICByZXR1cm4gYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKGdy
b3VwTmFtZSwgaVdvcmxkLCBzb3VyY2UsIHVybCwgd2hpdGVsaXN0Q291bnQsIHdoaXRlbGlzdCwg
YmxhY2tsaXN0Q291bnQsIGJsYWNrbGlzdCwgV2ViSW5qZWN0SW5BbGxGcmFtZXMpOworICAgIHJl
dHVybiBhZGRVc2VyU3R5bGVTaGVldFRvR3JvdXAoZ3JvdXBOYW1lLCBpV29ybGQsIHNvdXJjZSwg
dXJsLCBhbGxvd0xpc3RDb3VudCwgYWxsb3dMaXN0LCBibG9ja0xpc3RDb3VudCwgYmxvY2tsaXN0
LCBXZWJJbmplY3RJbkFsbEZyYW1lcyk7CiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclN0
eWxlU2hlZXRUb0dyb3VwKF9Jbl8gQlNUUiBncm91cE5hbWUsIF9Jbl9vcHRfIElXZWJTY3JpcHRX
b3JsZCogaVdvcmxkLCBfSW5fIEJTVFIgc291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgIHVuc2ln
bmVkIHdoaXRlbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKHdoaXRlbGlzdENvdW50KSBC
U1RSKiB3aGl0ZWxpc3QsIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9m
dWxsKGJsYWNrbGlzdENvdW50KSBCU1RSKiBibGFja2xpc3QsCisgICAgdW5zaWduZWQgYWxsb3dM
aXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0Q291bnQpIEJTVFIqIGFsbG93
TGlzdCwgdW5zaWduZWQgYmxvY2tMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxvY2tM
aXN0Q291bnQpIEJTVFIqIGJsb2NrbGlzdCwKICAgICBXZWJVc2VyQ29udGVudEluamVjdGVkRnJh
bWVzIGluamVjdGVkRnJhbWVzKQogewogICAgIFN0cmluZyBncm91cCA9IHRvU3RyaW5nKGdyb3Vw
TmFtZSk7CkBAIC03MDQ5LDcgKzcwNDksNyBAQAogICAgICAgICByZXR1cm4gRV9QT0lOVEVSOwog
CiAgICAgV2ViU2NyaXB0V29ybGQqIHdvcmxkID0gcmVpbnRlcnByZXRfY2FzdDxXZWJTY3JpcHRX
b3JsZCo+KGlXb3JsZCk7Ci0gICAgYXV0byBzdHlsZVNoZWV0ID0gbWFrZVVuaXF1ZTxVc2VyU3R5
bGVTaGVldD4oc291cmNlLCB0b1VSTCh1cmwpLCB0b1N0cmluZ1ZlY3Rvcih3aGl0ZWxpc3QsIHdo
aXRlbGlzdENvdW50KSwgdG9TdHJpbmdWZWN0b3IoYmxhY2tsaXN0LCBibGFja2xpc3RDb3VudCks
CisgICAgYXV0byBzdHlsZVNoZWV0ID0gbWFrZVVuaXF1ZTxVc2VyU3R5bGVTaGVldD4oc291cmNl
LCB0b1VSTCh1cmwpLCB0b1N0cmluZ1ZlY3RvcihhbGxvd0xpc3QsIGFsbG93TGlzdENvdW50KSwg
dG9TdHJpbmdWZWN0b3IoYmxvY2tsaXN0LCBibG9ja0xpc3RDb3VudCksCiAgICAgICAgIGluamVj
dGVkRnJhbWVzID09IFdlYkluamVjdEluQWxsRnJhbWVzID8gVXNlckNvbnRlbnRJbmplY3RlZEZy
YW1lczo6SW5qZWN0SW5BbGxGcmFtZXMgOiBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmpl
Y3RJblRvcEZyYW1lT25seSwgVXNlclN0eWxlVXNlckxldmVsKTsKICAgICB2aWV3R3JvdXAtPnVz
ZXJDb250ZW50Q29udHJvbGxlcigpLmFkZFVzZXJTdHlsZVNoZWV0KHdvcmxkLT53b3JsZCgpLCBX
VEZNb3ZlKHN0eWxlU2hlZXQpLCBJbmplY3RJbkV4aXN0aW5nRG9jdW1lbnRzKTsKICAgICByZXR1
cm4gU19PSzsKQEAgLTcxNjAsMTkgKzcxNjAsMTkgQEAKICAgICByZXR1cm4gU19PSzsKIH0KIAot
SFJFU1VMVCBXZWJWaWV3OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShfSW5fIEJTVFIg
c291cmNlT3JpZ2luLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgX0luXyBCU1RSIGRl
c3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK0hSRVNVTFQg
V2ViVmlldzo6YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoX0luXyBCU1RSIHNvdXJjZU9y
aWdpbiwgX0luXyBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2wsIF9Jbl8gQlNUUiBkZXN0aW5hdGlv
bkhvc3QsIEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgU2VjdXJpdHlQ
b2xpY3k6OmFkZE9yaWdpbkFjY2Vzc0FsbG93bGlzdEVudHJ5KFNlY3VyaXR5T3JpZ2luOjpjcmVh
dGVGcm9tU3RyaW5nKHRvU3RyaW5nKHNvdXJjZU9yaWdpbikpLmdldCgpLCB0b1N0cmluZyhkZXN0
aW5hdGlvblByb3RvY29sKSwgdG9TdHJpbmcoZGVzdGluYXRpb25Ib3N0KSwgYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMpOwogICAgIHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFdlYlZpZXc6
OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KF9Jbl8gQlNUUiBzb3VyY2VPcmlnaW4s
IF9Jbl8gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Ib3N0
LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQorSFJFU1VMVCBXZWJWaWV3OjpyZW1v
dmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShfSW5fIEJTVFIgc291cmNlT3JpZ2luLCBfSW5f
IEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgX0luXyBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9P
TCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsKICAgICBTZWN1cml0eVBvbGljeTo6cmVt
b3ZlT3JpZ2luQWNjZXNzQWxsb3dsaXN0RW50cnkoU2VjdXJpdHlPcmlnaW46OmNyZWF0ZUZyb21T
dHJpbmcodG9TdHJpbmcoc291cmNlT3JpZ2luKSkuZ2V0KCksIHRvU3RyaW5nKGRlc3RpbmF0aW9u
UHJvdG9jb2wpLCB0b1N0cmluZyhkZXN0aW5hdGlvbkhvc3QpLCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNVTFQgV2ViVmlldzo6cmVzZXRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCkKK0hSRVNVTFQgV2ViVmlldzo6cmVzZXRPcmlnaW5BY2Nl
c3NBbGxvd0xpc3RzKCkKIHsKICAgICBTZWN1cml0eVBvbGljeTo6cmVzZXRPcmlnaW5BY2Nlc3NB
bGxvd2xpc3RzKCk7CiAgICAgcmV0dXJuIFNfT0s7CkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5
L3dpbi9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Vmlldy5oCShyZXZpc2lvbiAyNjUwODEpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0NywxMCArMzQ3LDEwIEBACiAgICAgSFJFU1VMVCBT
VERNRVRIT0RDQUxMVFlQRSBzZXRKYXZhU2NyaXB0VVJMc0FyZUFsbG93ZWQoQk9PTCkgb3ZlcnJp
ZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRDYW5TdGFydFBsdWdpbnMoQk9P
TCkgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBhZGRVc2VyU2NyaXB0
VG9Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0XyBJV2ViU2NyaXB0V29ybGQqLCBf
SW5fIEJTVFIgc291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgICAgICB1bnNpZ25lZCB3aGl0ZWxp
c3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbCh3aGl0ZWxpc3RDb3VudCkgQlNUUiogd2hpdGVs
aXN0LCB1bnNpZ25lZCBibGFja2xpc3RDb3VudCwKLSAgICAgICAgX19pbm91dF9lY291bnRfZnVs
bChibGFja2xpc3RDb3VudCkgQlNUUiogYmxhY2tsaXN0LCBXZWJVc2VyU2NyaXB0SW5qZWN0aW9u
VGltZSkgb3ZlcnJpZGU7CisgICAgICAgIHVuc2lnbmVkIGFsbG93TGlzdENvdW50LCBfX2lub3V0
X2Vjb3VudF9mdWxsKGFsbG93TGlzdENvdW50KSBCU1RSKiBhbGxvd0xpc3QsIHVuc2lnbmVkIGJs
b2NrTGlzdENvdW50LAorICAgICAgICBfX2lub3V0X2Vjb3VudF9mdWxsKGJsb2NrTGlzdENvdW50
KSBCU1RSKiBibG9ja0xpc3QsIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKSBvdmVycmlkZTsK
ICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGFkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cChf
SW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0XyBJV2ViU2NyaXB0V29ybGQqLCBfSW5fIEJTVFIg
c291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgICAgICB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwg
X19pbm91dF9lY291bnRfZnVsbCh3aGl0ZWxpc3RDb3VudCkgQlNUUiogd2hpdGVsaXN0LCB1bnNp
Z25lZCBibGFja2xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChibGFja2xpc3RDb3VudCkg
QlNUUiogYmxhY2tsaXN0KSBvdmVycmlkZTsKKyAgICAgICAgdW5zaWduZWQgYWxsb3dMaXN0Q291
bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0Q291bnQpIEJTVFIqIGFsbG93TGlzdCwg
dW5zaWduZWQgYmxvY2tMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxvY2tMaXN0Q291
bnQpIEJTVFIqIGJsb2NrTGlzdCkgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSByZW1vdmVVc2VyU2NyaXB0RnJvbUdyb3VwKF9Jbl8gQlNUUiBncm91cE5hbWUsIF9Jbl9v
cHRfIElXZWJTY3JpcHRXb3JsZCosIF9Jbl8gQlNUUiB1cmwpIG92ZXJyaWRlOwogICAgIEhSRVNV
TFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVtb3ZlVXNlclN0eWxlU2hlZXRGcm9tR3JvdXAoX0luXyBC
U1RSIGdyb3VwTmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKiwgX0luXyBCU1RSIHVybCkg
b3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZW1vdmVVc2VyU2NyaXB0
c0Zyb21Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0XyBJV2ViU2NyaXB0V29ybGQq
KSBvdmVycmlkZTsKQEAgLTM1OSw5ICszNTksOSBAQAogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FM
TFRZUEUgdW51c2VkMSgpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
dW51c2VkMigpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaW52YWxp
ZGF0ZUJhY2tpbmdTdG9yZShfSW5fb3B0XyBjb25zdCBSRUNUKikgb3ZlcnJpZGU7Ci0gICAgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShfSW5f
IEJTVFIgc291cmNlT3JpZ2luLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgX0luXyBC
U1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykgb3Zl
cnJpZGU7Ci0gICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZW1vdmVPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeShfSW5fIEJTVFIgc291cmNlT3JpZ2luLCBfSW5fIEJTVFIgZGVzdGluYXRp
b25Qcm90b2NvbCwgX0luXyBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0
aW9uU3ViZG9tYWlucykgb3ZlcnJpZGU7Ci0gICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBy
ZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKSBvdmVycmlkZTsKKyAgICBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KF9Jbl8gQlNUUiBzb3Vy
Y2VPcmlnaW4sIF9Jbl8gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBfSW5fIEJTVFIgZGVzdGlu
YXRpb25Ib3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKSBvdmVycmlkZTsKKyAg
ICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVu
dHJ5KF9Jbl8gQlNUUiBzb3VyY2VPcmlnaW4sIF9Jbl8gQlNUUiBkZXN0aW5hdGlvblByb3RvY29s
LCBfSW5fIEJTVFIgZGVzdGluYXRpb25Ib3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21h
aW5zKSBvdmVycmlkZTsKKyAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlc2V0T3JpZ2lu
QWNjZXNzQWxsb3dMaXN0cygpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgc2V0SGlzdG9yeURlbGVnYXRlKF9Jbl8gSVdlYkhpc3RvcnlEZWxlZ2F0ZSopIG92ZXJyaWRl
OwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgaGlzdG9yeURlbGVnYXRlKF9DT01fT3V0
cHRyX29wdF8gSVdlYkhpc3RvcnlEZWxlZ2F0ZSoqKSBvdmVycmlkZTsKICAgICBIUkVTVUxUIFNU
RE1FVEhPRENBTExUWVBFIGFkZFZpc2l0ZWRMaW5rcyhfX2lub3V0X2Vjb3VudF9mdWxsKHZpc2l0
ZWRVUkxDb3VudCkgQlNUUiogdmlzaXRlZFVSTHMsIHVuc2lnbmVkIHZpc2l0ZWRVUkxDb3VudCkg
b3ZlcnJpZGU7CkBAIC0zOTEsOSArMzkxLDkgQEAKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIHNldEN1c3RvbUJhY2tpbmdTY2FsZUZhY3Rvcihkb3VibGUpIG92ZXJyaWRlOwogICAgIEhS
RVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYmFja2luZ1NjYWxlRmFjdG9yKF9PdXRfIGRvdWJsZSop
IG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWRkVXNlclNjcmlwdFRv
R3JvdXAoX0luXyBCU1RSIGdyb3VwTmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKiwgX0lu
XyBCU1RSIHNvdXJjZSwgX0luXyBCU1RSIHVybCwKLSAgICAgICAgdW5zaWduZWQgd2hpdGVsaXN0
Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwod2hpdGVsaXN0Q291bnQpIEJTVFIqIHdoaXRlbGlz
dCwgdW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxhY2tsaXN0
Q291bnQpIEJTVFIqIGJsYWNrbGlzdCwgV2ViVXNlclNjcmlwdEluamVjdGlvblRpbWUsIFdlYlVz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpIG92ZXJyaWRlOworICAgICAgICB1bnNpZ25lZCBhbGxv
d0xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChhbGxvd0xpc3RDb3VudCkgQlNUUiogYWxs
b3dMaXN0LCB1bnNpZ25lZCBibG9ja0xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChibG9j
a0xpc3RDb3VudCkgQlNUUiogYmxvY2tMaXN0LCBXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSwg
V2ViVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcykgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERN
RVRIT0RDQUxMVFlQRSBhZGRVc2VyU3R5bGVTaGVldFRvR3JvdXAoX0luXyBCU1RSIGdyb3VwTmFt
ZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKiwgX0luXyBCU1RSIHNvdXJjZSwgX0luXyBCU1RS
IHVybCwKLSAgICAgICAgdW5zaWduZWQgd2hpdGVsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1
bGwod2hpdGVsaXN0Q291bnQpIEJTVFIqIHdoaXRlbGlzdCwgdW5zaWduZWQgYmxhY2tsaXN0Q291
bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxhY2tsaXN0Q291bnQpIEJTVFIqIGJsYWNrbGlzdCwg
V2ViVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcykgb3ZlcnJpZGU7CisgICAgICAgIHVuc2lnbmVk
IGFsbG93TGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGFsbG93TGlzdENvdW50KSBCU1RS
KiBhbGxvd0xpc3QsIHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxs
KGJsb2NrTGlzdENvdW50KSBCU1RSKiBibG9ja0xpc3QsIFdlYlVzZXJDb250ZW50SW5qZWN0ZWRG
cmFtZXMpIG92ZXJyaWRlOwogCiAgICAgLy8gSVdlYlZpZXdQcml2YXRlMwogICAgIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgbGF5ZXJUcmVlQXNTdHJpbmcoX0RlcmVmX29wdF9vdXRfIEJTVFIq
KSBvdmVycmlkZTsKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9D
aGFuZ2VMb2cJKHJldmlzaW9uIDI2NTA4MykKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBj
b3B5KQpAQCAtMSwzICsxLDQyIEBACisyMDIwLTA3LTMwICBBbGV4IENocmlzdGVuc2VuICA8YWNo
cmlzdGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIG1vcmUgaW5jbHVzaXZlIHRlcm1p
bm9sb2d5IGluIFRvb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTQ5NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuY3BwOgorICAgICAgICAoYWRkT3Jp
Z2luQWNjZXNzQWxsb3dMaXN0RW50cnlDYWxsYmFjayk6CisgICAgICAgIChyZW1vdmVPcmlnaW5B
Y2Nlc3NBbGxvd0xpc3RFbnRyeUNhbGxiYWNrKToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnN0YXRp
Y0Z1bmN0aW9ucyk6CisgICAgICAgIChhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUNhbGxi
YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
Q2FsbGJhY2spOiBEZWxldGVkLgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
aDoKKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbToKKyAgICAg
ICAgKFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KToKKyAgICAgICAg
KFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KTogRGVsZXRlZC4KKyAg
ICAgICAgKFRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KTogRGVs
ZXRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwOgor
ICAgICAgICAocmVzZXRXZWJWaWV3VG9Db25zaXN0ZW50U3RhdGVCZWZvcmVUZXN0aW5nKToKKyAg
ICAgICAgKiBEdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHA6CisgICAgICAgIChU
ZXN0UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSk6CisgICAgICAgIChUZXN0
UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSk6CisgICAgICAgIChUZXN0
UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6IERlbGV0ZWQuCisgICAgICAg
IChUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6IERlbGV0ZWQu
CisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRVc2Vy
Q29udGVudE1hbmFnZXIuY3BwOgorICAgICAgICAocmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5k
UmVzZXRMaXN0cyk6CisgICAgICAgICh0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0ZWRTdHls
ZVNoZWV0KToKKyAgICAgICAgKHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmplY3RlZFNjcmlwdCk6
CisgICAgICAgICh0ZXN0VXNlckNvbnRlbnRNYW5hZ2VyQ29udGVudEZpbHRlcik6CisgICAgICAg
ICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlk
bDoKKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
Y3BwOgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RF
bnRyeSk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93
TGlzdEVudHJ5KToKKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkpOiBEZWxldGVkLgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpyZW1vdmVP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6IERlbGV0ZWQuCisgICAgICAgICogV2ViS2l0VGVz
dFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmg6CisKIDIwMjAtMDctMzAgIEpvbmF0
aGFuIEJlZGFyZCAgPGpiZWRhcmRAYXBwbGUuY29tPgogCiAgICAgICAgIFtCaWcgU3VyXSBBZGQg
bGltaXRlZCBTZWVkIDMgc3VwcG9ydCB0byBFV1MKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVl
L1Rlc3RSdW5uZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RS
dW5uZXIuY3BwCShyZXZpc2lvbiAyNjUwODEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTUzNCw3ICsxNTM0LDcgQEAKICAgICByZXR1
cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVm
IGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRl
eHQsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRD
b3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9u
KQorc3RhdGljIEpTVmFsdWVSZWYgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlDYWxsYmFj
ayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmpl
Y3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBK
U1ZhbHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gNCkKICAg
ICAgICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwpAQCAtMTU0OCwxMSAr
MTU0OCwxMSBAQAogICAgIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMgPSBKU1ZhbHVl
VG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50c1szXSk7CiAKICAgICBUZXN0UnVubmVyKiBjb250
cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlz
T2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
c291cmNlT3JpZ2luLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLmdldCgpLCBkZXN0aW5hdGlv
bkhvc3QuZ2V0KCksIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICBjb250cm9sbGVy
LT5hZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShzb3VyY2VPcmlnaW4uZ2V0KCksIGRlc3Rp
bmF0aW9uUHJvdG9jb2wuZ2V0KCksIGRlc3RpbmF0aW9uSG9zdC5nZXQoKSwgYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMpOwogICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0
KTsKIH0KIAotc3RhdGljIEpTVmFsdWVSZWYgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50
cnlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVm
IHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3Vt
ZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24pCitzdGF0aWMgSlNWYWx1ZVJlZiByZW1vdmVP
cmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBK
U09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQs
IGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKIHsK
ICAgICBpZiAoYXJndW1lbnRDb3VudCAhPSA0KQogICAgICAgICByZXR1cm4gSlNWYWx1ZU1ha2VV
bmRlZmluZWQoY29udGV4dCk7CkBAIC0xNTY2LDcgKzE1NjYsNyBAQAogICAgIGJvb2wgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnMgPSBKU1ZhbHVlVG9Cb29sZWFuKGNvbnRleHQsIGFyZ3VtZW50
c1szXSk7CiAKICAgICBUZXN0UnVubmVyKiBjb250cm9sbGVyID0gc3RhdGljX2Nhc3Q8VGVzdFJ1
bm5lcio+KEpTT2JqZWN0R2V0UHJpdmF0ZSh0aGlzT2JqZWN0KSk7Ci0gICAgY29udHJvbGxlci0+
cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoc291cmNlT3JpZ2luLmdldCgpLCBkZXN0
aW5hdGlvblByb3RvY29sLmdldCgpLCBkZXN0aW5hdGlvbkhvc3QuZ2V0KCksIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKTsKKyAgICBjb250cm9sbGVyLT5yZW1vdmVPcmlnaW5BY2Nlc3NBbGxv
d0xpc3RFbnRyeShzb3VyY2VPcmlnaW4uZ2V0KCksIGRlc3RpbmF0aW9uUHJvdG9jb2wuZ2V0KCks
IGRlc3RpbmF0aW9uSG9zdC5nZXQoKSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKIH0KIApAQCAtMjIwNyw3ICsy
MjA3LDcgQEAKICAgICAgICAgeyAicXVldWVOb25Mb2FkaW5nU2NyaXB0IiwgcXVldWVOb25Mb2Fk
aW5nU2NyaXB0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9w
ZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicXVldWVSZWxvYWQiLCBxdWV1
ZVJlbG9hZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVy
dHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZUFsbFZpc2l0ZWRMaW5r
cyIsIHJlbW92ZUFsbFZpc2l0ZWRMaW5rc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJl
YWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInJl
bW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5IiwgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3Bl
cnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJyZW1vdmVPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RFbnRyeSIsIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5Q2FsbGJhY2ss
IGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnRE
ZWxldGUgfSwKICAgICAgICAgeyAicmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5IiwgcmVwYWludFN3
ZWVwSG9yaXpvbnRhbGx5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicmVzZXRQYWdlVmlz
aWJpbGl0eSIsIHJlc2V0UGFnZVZpc2liaWxpdHlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1
dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7
ICJzZXRBY2NlcHRzRWRpdGluZyIsIHNldEFjY2VwdHNFZGl0aW5nQ2FsbGJhY2ssIGtKU1Byb3Bl
cnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwK
QEAgLTIyNzYsNyArMjI3Niw3IEBACiAgICAgICAgIHsgIndhaXRGb3JQb2xpY3lEZWxlZ2F0ZSIs
IHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgIndhaXRV
bnRpbERvbmUiLCB3YWl0VW50aWxEb25lQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVh
ZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAid2lu
ZG93Q291bnQiLCB3aW5kb3dDb3VudENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRP
bmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgImFkZE9y
aWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5IiwgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlD
YWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmli
dXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJhZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRy
eSIsIGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0
cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAg
ICAgeyAic2V0U2Nyb2xsYmFyUG9saWN5Iiwgc2V0U2Nyb2xsYmFyUG9saWN5Q2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKICAgICAgICAgeyAiYXV0aGVudGljYXRlU2Vzc2lvbiIsIGF1dGhlbnRpY2F0ZVNlc3Np
b25DYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0
cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTaG91bGRQYWludEJyb2tlbkltYWdl
Iiwgc2V0U2hvdWxkUGFpbnRCcm9rZW5JbWFnZUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCkluZGV4OiBUb29s
cy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5oCShyZXZpc2lvbiAyNjUwODEpCisrKyBUb29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTMxMyw4ICszMTMsOCBAQAog
ICAgIGNvbnN0IHN0ZDo6dmVjdG9yPGNoYXI+JiBhdWRpb1Jlc3VsdCgpIGNvbnN0IHsgcmV0dXJu
IG1fYXVkaW9SZXN1bHQ7IH0KICAgICB2b2lkIHNldEF1ZGlvUmVzdWx0KGNvbnN0IHN0ZDo6dmVj
dG9yPGNoYXI+JiBhdWRpb0RhdGEpIHsgbV9hdWRpb1Jlc3VsdCA9IGF1ZGlvRGF0YTsgfQogCi0g
ICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VP
cmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3Rp
bmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Ci0gICAgdm9pZCBy
ZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4s
IEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9u
SG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCBhZGRPcmln
aW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5n
UmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nl
c3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAKICAgICB2b2lkIGFkZFVzZXJTY3JpcHQoSlNTdHJp
bmdSZWYgc291cmNlLCBib29sIHJ1bkF0U3RhcnQsIGJvb2wgYWxsRnJhbWVzKTsKICAgICB2b2lk
IGFkZFVzZXJTdHlsZVNoZWV0KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBhbGxGcmFtZXMpOwpJ
bmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0KPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW0JKHJldmlzaW9u
IDI2NTA4MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCSh3
b3JraW5nIGNvcHkpCkBAIC03NTIsNyArNzUyLDcgQEAKICAgICBbW21haW5GcmFtZSB3ZWJWaWV3
XSBzZXRQb2xpY3lEZWxlZ2F0ZTpwb2xpY3lEZWxlZ2F0ZV07CiB9CiAKLXZvaWQgVGVzdFJ1bm5l
cjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2lu
LCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlv
bkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIFRlc3RSdW5uZXI6
OmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwg
SlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25I
b3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewogICAgIFJldGFpblB0cjxD
RlN0cmluZ1JlZj4gc291cmNlT3JpZ2luQ0YgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5n
KGtDRkFsbG9jYXRvckRlZmF1bHQsIHNvdXJjZU9yaWdpbikpOwogICAgIE5TU3RyaW5nICpzb3Vy
Y2VPcmlnaW5OUyA9IChfX2JyaWRnZSBOU1N0cmluZyAqKXNvdXJjZU9yaWdpbkNGLmdldCgpOwpA
QCAtNzYzLDcgKzc2Myw3IEBACiAgICAgW1dlYlZpZXcgX2FkZE9yaWdpbkFjY2Vzc0FsbG93TGlz
dEVudHJ5V2l0aFNvdXJjZU9yaWdpbjpzb3VyY2VPcmlnaW5OUyBkZXN0aW5hdGlvblByb3RvY29s
OmRlc3RpbmF0aW9uUHJvdG9jb2xOUyBkZXN0aW5hdGlvbkhvc3Q6ZGVzdGluYXRpb25Ib3N0TlMg
YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnM6YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnNdOwog
fQogCi12b2lkIFRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpT
U3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwg
SlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21h
aW5zKQordm9pZCBUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShK
U1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2ws
IEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9t
YWlucykKIHsKICAgICBSZXRhaW5QdHI8Q0ZTdHJpbmdSZWY+IHNvdXJjZU9yaWdpbkNGID0gYWRv
cHRDRihKU1N0cmluZ0NvcHlDRlN0cmluZyhrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBzb3VyY2VPcmln
aW4pKTsKICAgICBOU1N0cmluZyAqc291cmNlT3JpZ2luTlMgPSAoX19icmlkZ2UgTlNTdHJpbmcg
Kilzb3VyY2VPcmlnaW5DRi5nZXQoKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9E
dW1wUmVuZGVyVHJlZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2lu
L0R1bXBSZW5kZXJUcmVlLmNwcAkocmV2aXNpb24gMjY1MDgxKQorKysgVG9vbHMvRHVtcFJlbmRl
clRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA1Miw3ICsx
MDUyLDcgQEAKICAgICBpZiAod2ViVmlld1ByaXZhdGUgJiYgU1VDQ0VFREVEKHdlYlZpZXdQcml2
YXRlLT52aWV3V2luZG93KCZ2aWV3V2luZG93KSkgJiYgdmlld1dpbmRvdykKICAgICAgICAgOjpT
ZXRGb2N1cyh2aWV3V2luZG93KTsKIAotICAgIHdlYlZpZXdQcml2YXRlLT5yZXNldE9yaWdpbkFj
Y2Vzc1doaXRlbGlzdHMoKTsKKyAgICB3ZWJWaWV3UHJpdmF0ZS0+cmVzZXRPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RzKCk7CiAKICAgICBzaGFyZWRVSURlbGVnYXRlLT5yZXNldFVuZG9NYW5hZ2VyKCk7
CiAKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAJKHJl
dmlzaW9uIDI2NTA4MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2lu
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTA3MiwyMiArMTA3MiwyMiBAQAogICAgIHJldHVybiBf
YnN0cl90KEpTU3RyaW5nQ29weUJTVFIoanNTdHJpbmcpLCBmYWxzZSk7CiB9CiAKLXZvaWQgVGVz
dFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNl
T3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0
aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIFRlc3RS
dW5uZXI6OmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9y
aWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGlu
YXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewogICAgIENPTVB0
cjxJV2ViVmlld1ByaXZhdGUyPiB3ZWJWaWV3OwogICAgIGlmIChGQUlMRUQoV2ViS2l0Q3JlYXRl
SW5zdGFuY2UoX191dWlkb2YoV2ViVmlldyksIDAsIF9fdXVpZG9mKHdlYlZpZXcpLCByZWludGVy
cHJldF9jYXN0PHZvaWQqKj4oJndlYlZpZXcpKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdl
YlZpZXctPmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KGJzdHJUKHNvdXJjZU9yaWdpbiku
R2V0QlNUUigpLCBic3RyVChkZXN0aW5hdGlvblByb3RvY29sKS5HZXRCU1RSKCksIGJzdHJUKGRl
c3RpbmF0aW9uSG9zdCkuR2V0QlNUUigpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Cisg
ICAgd2ViVmlldy0+YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoYnN0clQoc291cmNlT3Jp
Z2luKS5HZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9uUHJvdG9jb2wpLkdldEJTVFIoKSwgYnN0
clQoZGVzdGluYXRpb25Ib3N0KS5HZXRCU1RSKCksIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5z
KTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucykKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50
cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3Rv
Y29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpCiB7CiAgICAgQ09NUHRyPElXZWJWaWV3UHJpdmF0ZTI+IHdlYlZpZXc7CiAgICAg
aWYgKEZBSUxFRChXZWJLaXRDcmVhdGVJbnN0YW5jZShfX3V1aWRvZihXZWJWaWV3KSwgMCwgX191
dWlkb2Yod2ViVmlldyksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmd2ViVmlldykpKSkKICAg
ICAgICAgcmV0dXJuOwogCi0gICAgd2ViVmlldy0+cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoYnN0clQoc291cmNlT3JpZ2luKS5HZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9uUHJv
dG9jb2wpLkdldEJTVFIoKSwgYnN0clQoZGVzdGluYXRpb25Ib3N0KS5HZXRCU1RSKCksIGFsbG93
RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICB3ZWJWaWV3LT5yZW1vdmVPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RFbnRyeShic3RyVChzb3VyY2VPcmlnaW4pLkdldEJTVFIoKSwgYnN0clQoZGVzdGlu
YXRpb25Qcm90b2NvbCkuR2V0QlNUUigpLCBic3RyVChkZXN0aW5hdGlvbkhvc3QpLkdldEJTVFIo
KSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNl
dFNjcm9sbGJhclBvbGljeShKU1N0cmluZ1JlZiBvcmllbnRhdGlvbiwgSlNTdHJpbmdSZWYgcG9s
aWN5KQpJbmRleDogVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJL
aXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAkocmV2
aXNpb24gMjY1MDgxKQorKysgVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rl
c3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsMzMg
KzEyMCwzMyBAQAogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgcmVtb3ZlT2xkSW5qZWN0ZWRDb250
ZW50QW5kUmVzZXRMaXN0cyhXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIqIHVzZXJDb250ZW50TWFu
YWdlciwgY2hhcioqIHdoaXRlbGlzdCwgY2hhcioqIGJsYWNrbGlzdCkKK3N0YXRpYyB2b2lkIHJl
bW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHMoV2ViS2l0VXNlckNvbnRlbnRNYW5h
Z2VyKiB1c2VyQ29udGVudE1hbmFnZXIsIGNoYXIqKiBhbGxvd0xpc3QsIGNoYXIqKiBibG9ja0xp
c3QpCiB7CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlbW92ZV9hbGxfc3R5bGVf
c2hlZXRzKHVzZXJDb250ZW50TWFuYWdlcik7CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5h
Z2VyX3JlbW92ZV9hbGxfc2NyaXB0cyh1c2VyQ29udGVudE1hbmFnZXIpOwogICAgIHdlYmtpdF91
c2VyX2NvbnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxsX2ZpbHRlcnModXNlckNvbnRlbnRNYW5hZ2Vy
KTsKIAotICAgIHdoaWxlICgqd2hpdGVsaXN0KSB7Ci0gICAgICAgIGdfZnJlZSgqd2hpdGVsaXN0
KTsKLSAgICAgICAgKndoaXRlbGlzdCA9IDA7Ci0gICAgICAgIHdoaXRlbGlzdCsrOworICAgIHdo
aWxlICgqYWxsb3dMaXN0KSB7CisgICAgICAgIGdfZnJlZSgqYWxsb3dMaXN0KTsKKyAgICAgICAg
KmFsbG93TGlzdCA9IDA7CisgICAgICAgIGFsbG93TGlzdCsrOwogICAgIH0KIAotICAgIHdoaWxl
ICgqYmxhY2tsaXN0KSB7Ci0gICAgICAgIGdfZnJlZSgqYmxhY2tsaXN0KTsKLSAgICAgICAgKmJs
YWNrbGlzdCA9IDA7Ci0gICAgICAgIGJsYWNrbGlzdCsrOworICAgIHdoaWxlICgqYmxvY2tMaXN0
KSB7CisgICAgICAgIGdfZnJlZSgqYmxvY2tMaXN0KTsKKyAgICAgICAgKmJsb2NrTGlzdCA9IDA7
CisgICAgICAgIGJsb2NrTGlzdCsrOwogICAgIH0KIH0KIAogc3RhdGljIHZvaWQgdGVzdFVzZXJD
b250ZW50TWFuYWdlckluamVjdGVkU3R5bGVTaGVldChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0
cG9pbnRlcikKIHsKLSAgICBjaGFyKiB3aGl0ZWxpc3RbM10gPSB7IDAsIDAsIDAgfTsKLSAgICBj
aGFyKiBibGFja2xpc3RbM10gPSB7IDAsIDAsIDAgfTsKKyAgICBjaGFyKiBhbGxvd0xpc3RbM10g
PSB7IDAsIDAsIDAgfTsKKyAgICBjaGFyKiBibG9ja0xpc3RbM10gPSB7IDAsIDAsIDAgfTsKIAot
ICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29u
dGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJ
bmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdl
dCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiAKLSAgICAvLyBXaXRob3V0IGEgd2hpdGVsaXN0
IG9yIGEgYmxhY2tsaXN0IGFsbCBVUkxzIHNob3VsZCBoYXZlIHRoZSBpbmplY3RlZCBzdHlsZSBz
aGVldC4KKyAgICAvLyBXaXRob3V0IGEgYWxsb3dMaXN0IG9yIGEgYmxvY2tMaXN0IGFsbCBVUkxz
IHNob3VsZCBoYXZlIHRoZSBpbmplY3RlZCBzdHlsZSBzaGVldC4KICAgICBzdGF0aWMgY29uc3Qg
Y2hhciogcmFuZG9tUGF0aCA9ICJzb21lcmFuZG9tcGF0aCI7CiAgICAgZ19hc3NlcnRfZmFsc2Uo
aXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCkpOwogICAg
IFdlYktpdFVzZXJTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gd2Via2l0X3VzZXJfc3R5bGVfc2hl
ZXRfbmV3KGtJbmplY3RlZFN0eWxlU2hlZXQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FM
TF9GUkFNRVMsIFdFQktJVF9VU0VSX1NUWUxFX0xFVkVMX1VTRVIsIG51bGxwdHIsIG51bGxwdHIp
OwpAQCAtMTU0LDcgKzE1NCw3IEBACiAgICAgd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfdW5yZWYo
c3R5bGVTaGVldCk7CiAgICAgZ19hc3NlcnRfdHJ1ZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVS
TEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CiAKLSAgICByZW1vdmVPbGRJbmplY3RlZENvbnRl
bnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxp
c3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0
cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9ja0xpc3Qp
OwogCiAgICAgZ19hc3NlcnRfZmFsc2UoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgo
dGVzdCwgcmFuZG9tUGF0aCwgIldlYkV4dGVuc2lvblRlc3RTY3JpcHRXb3JsZCIpKTsKICAgICBz
dHlsZVNoZWV0ID0gd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfbmV3X2Zvcl93b3JsZChrSW5qZWN0
ZWRTdHlsZVNoZWV0LCBXRUJLSVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJL
SVRfVVNFUl9TVFlMRV9MRVZFTF9VU0VSLCAiV2ViRXh0ZW5zaW9uVGVzdFNjcmlwdFdvcmxkIiwg
bnVsbHB0ciwgbnVsbHB0cik7CkBAIC0xNjIsNDIgKzE2Miw0MiBAQAogICAgIHdlYmtpdF91c2Vy
X3N0eWxlX3NoZWV0X3VucmVmKHN0eWxlU2hlZXQpOwogICAgIGdfYXNzZXJ0X3RydWUoaXNTdHls
ZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCwgIldlYkV4dGVuc2lv
blRlc3RTY3JpcHRXb3JsZCIpKTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJl
c2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxh
Y2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3Qt
Pm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiAKLSAg
ICBmaWxsVVJMTGlzdEZyb21QYXRocyhibGFja2xpc3QsIHJhbmRvbVBhdGgsIDApOwotICAgIHN0
eWxlU2hlZXQgPSB3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF9uZXcoa0luamVjdGVkU3R5bGVTaGVl
dCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU1RZ
TEVfTEVWRUxfVVNFUiwgbnVsbHB0ciwgYmxhY2tsaXN0KTsKKyAgICBmaWxsVVJMTGlzdEZyb21Q
YXRocyhibG9ja0xpc3QsIHJhbmRvbVBhdGgsIDApOworICAgIHN0eWxlU2hlZXQgPSB3ZWJraXRf
dXNlcl9zdHlsZV9zaGVldF9uZXcoa0luamVjdGVkU3R5bGVTaGVldCwgV0VCS0lUX1VTRVJfQ09O
VEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU1RZTEVfTEVWRUxfVVNFUiwgbnVs
bHB0ciwgYmxvY2tMaXN0KTsKICAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfYWRkX3N0
eWxlX3NoZWV0KHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBzdHlsZVNoZWV0KTsK
ICAgICB3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF91bnJlZihzdHlsZVNoZWV0KTsKICAgICBnX2Fz
c2VydF9mYWxzZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5kb21Q
YXRoKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0
aCh0ZXN0LCAic29tZW90aGVycmFuZG9tcGF0aCIpKTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVk
Q29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdo
aXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNl
dExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2Nr
TGlzdCk7CiAKLSAgICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVXaGl0ZUxpc3QgPSAiaW50aGV3
aGl0ZWxpc3QiOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBub3RJbldoaXRlbGlzdCA9ICJub3Rp
bnRoZXdoaXRlbGlzdCI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhlV2hpdGVMaXN0QW5k
QmxhY2tMaXN0ID0gImludGhld2hpdGVsaXN0YW5kYmxhY2tsaXN0IjsKKyAgICBzdGF0aWMgY29u
c3QgY2hhciogaW5UaGVBbGxvd0xpc3QgPSAiaW50aGVhbGxvd2xpc3QiOworICAgIHN0YXRpYyBj
b25zdCBjaGFyKiBub3RJbkFsbG93TGlzdCA9ICJub3RpbnRoZWFsbG93bGlzdCI7CisgICAgc3Rh
dGljIGNvbnN0IGNoYXIqIGluVGhlQWxsb3dMaXN0QW5kQmxvY2tMaXN0ID0gImludGhlYWxsb3ds
aXN0YW5kYmxvY2tsaXN0IjsKIAotICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKHdoaXRlbGlzdCwg
aW5UaGVXaGl0ZUxpc3QsIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0LCAwKTsKLSAgICBmaWxs
VVJMTGlzdEZyb21QYXRocyhibGFja2xpc3QsIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0LCAw
KTsKLSAgICBzdHlsZVNoZWV0ID0gd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfbmV3KGtJbmplY3Rl
ZFN0eWxlU2hlZXQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFNRVMsIFdFQktJ
VF9VU0VSX1NUWUxFX0xFVkVMX1VTRVIsIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICBmaWxs
VVJMTGlzdEZyb21QYXRocyhhbGxvd0xpc3QsIGluVGhlQWxsb3dMaXN0LCBpblRoZUFsbG93TGlz
dEFuZEJsb2NrTGlzdCwgMCk7CisgICAgZmlsbFVSTExpc3RGcm9tUGF0aHMoYmxvY2tMaXN0LCBp
blRoZUFsbG93TGlzdEFuZEJsb2NrTGlzdCwgMCk7CisgICAgc3R5bGVTaGVldCA9IHdlYmtpdF91
c2VyX3N0eWxlX3NoZWV0X25ldyhrSW5qZWN0ZWRTdHlsZVNoZWV0LCBXRUJLSVRfVVNFUl9DT05U
RU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJLSVRfVVNFUl9TVFlMRV9MRVZFTF9VU0VSLCBhbGxv
d0xpc3QsIGJsb2NrTGlzdCk7CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX2FkZF9z
dHlsZV9zaGVldCh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgc3R5bGVTaGVldCk7
CiAgICAgd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfdW5yZWYoc3R5bGVTaGVldCk7Ci0gICAgZ19h
c3NlcnRfdHJ1ZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBpblRoZVdo
aXRlTGlzdCkpOwotICAgIGdfYXNzZXJ0X2ZhbHNlKGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJM
QXRQYXRoKHRlc3QsIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0KSk7Ci0gICAgZ19hc3NlcnRf
ZmFsc2UoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgbm90SW5XaGl0ZWxp
c3QpKTsKKyAgICBnX2Fzc2VydF90cnVlKGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRo
KHRlc3QsIGluVGhlQWxsb3dMaXN0KSk7CisgICAgZ19hc3NlcnRfZmFsc2UoaXNTdHlsZVNoZWV0
SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5UaGVBbGxvd0xpc3RBbmRCbG9ja0xpc3QpKTsK
KyAgICBnX2Fzc2VydF9mYWxzZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0
LCBub3RJbkFsbG93TGlzdCkpOwogCiAgICAgLy8gSXQncyBpbXBvcnRhbnQgdG8gY2xlYW4gdXAg
dGhlIGVudmlyb25tZW50IGJlZm9yZSBvdGhlciB0ZXN0cy4KLSAgICByZW1vdmVPbGRJbmplY3Rl
ZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3
aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVz
ZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9j
a0xpc3QpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0ZWRT
Y3JpcHQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAgY2hhciogd2hp
dGVsaXN0WzNdID0geyAwLCAwLCAwIH07Ci0gICAgY2hhciogYmxhY2tsaXN0WzNdID0geyAwLCAw
LCAwIH07CisgICAgY2hhciogYWxsb3dMaXN0WzNdID0geyAwLCAwLCAwIH07CisgICAgY2hhciog
YmxvY2tMaXN0WzNdID0geyAwLCAwLCAwIH07CiAKLSAgICByZW1vdmVPbGRJbmplY3RlZENvbnRl
bnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxp
c3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0
cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9ja0xpc3Qp
OwogCi0gICAgLy8gV2l0aG91dCBhIHdoaXRlbGlzdCBvciBhIGJsYWNrbGlzdCBhbGwgVVJMcyBz
aG91bGQgaGF2ZSB0aGUgaW5qZWN0ZWQgc2NyaXB0LgorICAgIC8vIFdpdGhvdXQgYSBhbGxvd0xp
c3Qgb3IgYSBibG9ja0xpc3QgYWxsIFVSTHMgc2hvdWxkIGhhdmUgdGhlIGluamVjdGVkIHNjcmlw
dC4KICAgICBzdGF0aWMgY29uc3QgY2hhciogcmFuZG9tUGF0aCA9ICJzb21lcmFuZG9tcGF0aCI7
CiAgICAgZ19hc3NlcnRfZmFsc2UoaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBy
YW5kb21QYXRoKSk7CiAgICAgV2ViS2l0VXNlclNjcmlwdCogc2NyaXB0ID0gd2Via2l0X3VzZXJf
c2NyaXB0X25ldyhrSW5qZWN0ZWRTY3JpcHQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FM
TF9GUkFNRVMsIFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRfRE9DVU1FTlRfRU5ELCBudWxs
cHRyLCBudWxscHRyKTsKQEAgLTIwNSw3ICsyMDUsNyBAQAogICAgIHdlYmtpdF91c2VyX3Njcmlw
dF91bnJlZihzY3JpcHQpOwogICAgIGdfYXNzZXJ0X3RydWUoaXNTY3JpcHRJbmplY3RlZEZvclVS
TEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CiAKLSAgICByZW1vdmVPbGRJbmplY3RlZENvbnRl
bnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxp
c3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0
cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9ja0xpc3Qp
OwogCiAgICAgZ19hc3NlcnRfZmFsc2UoaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0
LCByYW5kb21QYXRoLCAiV2ViRXh0ZW5zaW9uVGVzdFNjcmlwdFdvcmxkIikpOwogICAgIHNjcmlw
dCA9IHdlYmtpdF91c2VyX3NjcmlwdF9uZXdfZm9yX3dvcmxkKGtJbmplY3RlZFNjcmlwdCwgV0VC
S0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lO
SkVDVF9BVF9ET0NVTUVOVF9FTkQsICJXZWJFeHRlbnNpb25UZXN0U2NyaXB0V29ybGQiLCBudWxs
cHRyLCBudWxscHRyKTsKQEAgLTIxMywzMiArMjEzLDMyIEBACiAgICAgd2Via2l0X3VzZXJfc2Ny
aXB0X3VucmVmKHNjcmlwdCk7CiAgICAgZ19hc3NlcnRfdHJ1ZShpc1NjcmlwdEluamVjdGVkRm9y
VVJMQXRQYXRoKHRlc3QsIHJhbmRvbVBhdGgsICJXZWJFeHRlbnNpb25UZXN0U2NyaXB0V29ybGQi
KSk7CiAKLSAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1f
dXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgcmVt
b3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFu
YWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9ja0xpc3QpOwogCi0gICAgZmlsbFVSTExpc3RGcm9t
UGF0aHMoYmxhY2tsaXN0LCByYW5kb21QYXRoLCAwKTsKLSAgICBzY3JpcHQgPSB3ZWJraXRfdXNl
cl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1Rf
QUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQsIG51
bGxwdHIsIGJsYWNrbGlzdCk7CisgICAgZmlsbFVSTExpc3RGcm9tUGF0aHMoYmxvY2tMaXN0LCBy
YW5kb21QYXRoLCAwKTsKKyAgICBzY3JpcHQgPSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KGtJbmpl
Y3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lU
X1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQsIG51bGxwdHIsIGJsb2NrTGlzdCk7
CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX2FkZF9zY3JpcHQodGVzdC0+bV91c2Vy
Q29udGVudE1hbmFnZXIuZ2V0KCksIHNjcmlwdCk7CiAgICAgd2Via2l0X3VzZXJfc2NyaXB0X3Vu
cmVmKHNjcmlwdCk7CiAgICAgZ19hc3NlcnRfZmFsc2UoaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0
UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZShpc1NjcmlwdEluamVj
dGVkRm9yVVJMQXRQYXRoKHRlc3QsICJzb21lb3RoZXJyYW5kb21wYXRoIikpOwogCi0gICAgcmVt
b3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFu
YWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVk
Q29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIGFs
bG93TGlzdCwgYmxvY2tMaXN0KTsKIAotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpblRoZVdoaXRl
TGlzdCA9ICJpbnRoZXdoaXRlbGlzdCI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIG5vdEluV2hp
dGVsaXN0ID0gIm5vdGludGhld2hpdGVsaXN0IjsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogaW5U
aGVXaGl0ZUxpc3RBbmRCbGFja0xpc3QgPSAiaW50aGV3aGl0ZWxpc3RhbmRibGFja2xpc3QiOwor
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBpblRoZUFsbG93TGlzdCA9ICJpbnRoZWFsbG93bGlzdCI7
CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIG5vdEluQWxsb3dMaXN0ID0gIm5vdGludGhlYWxsb3ds
aXN0IjsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVBbGxvd0xpc3RBbmRCbG9ja0xpc3Qg
PSAiaW50aGVhbGxvd2xpc3RhbmRibG9ja0xpc3QiOwogCi0gICAgZmlsbFVSTExpc3RGcm9tUGF0
aHMod2hpdGVsaXN0LCBpblRoZVdoaXRlTGlzdCwgaW5UaGVXaGl0ZUxpc3RBbmRCbGFja0xpc3Qs
IDApOwotICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKGJsYWNrbGlzdCwgaW5UaGVXaGl0ZUxpc3RB
bmRCbGFja0xpc3QsIDApOwotICAgIHNjcmlwdCA9IHdlYmtpdF91c2VyX3NjcmlwdF9uZXcoa0lu
amVjdGVkU2NyaXB0LCBXRUJLSVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJL
SVRfVVNFUl9TQ1JJUFRfSU5KRUNUX0FUX0RPQ1VNRU5UX0VORCwgd2hpdGVsaXN0LCBibGFja2xp
c3QpOworICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKGFsbG93TGlzdCwgaW5UaGVBbGxvd0xpc3Qs
IGluVGhlQWxsb3dMaXN0QW5kQmxvY2tMaXN0LCAwKTsKKyAgICBmaWxsVVJMTGlzdEZyb21QYXRo
cyhibG9ja0xpc3QsIGluVGhlQWxsb3dMaXN0QW5kQmxvY2tMaXN0LCAwKTsKKyAgICBzY3JpcHQg
PSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09O
VEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NV
TUVOVF9FTkQsIGFsbG93TGlzdCwgYmxvY2tMaXN0KTsKICAgICB3ZWJraXRfdXNlcl9jb250ZW50
X21hbmFnZXJfYWRkX3NjcmlwdCh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgc2Ny
aXB0KTsKICAgICB3ZWJraXRfdXNlcl9zY3JpcHRfdW5yZWYoc2NyaXB0KTsKLSAgICBnX2Fzc2Vy
dF90cnVlKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5UaGVXaGl0ZUxpc3Qp
KTsKLSAgICBnX2Fzc2VydF9mYWxzZShpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3Qs
IGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0KSk7Ci0gICAgZ19hc3NlcnRfZmFsc2UoaXNTY3Jp
cHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBub3RJbldoaXRlbGlzdCkpOworICAgIGdfYXNz
ZXJ0X3RydWUoaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBpblRoZUFsbG93TGlz
dCkpOworICAgIGdfYXNzZXJ0X2ZhbHNlKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVz
dCwgaW5UaGVBbGxvd0xpc3RBbmRCbG9ja0xpc3QpKTsKKyAgICBnX2Fzc2VydF9mYWxzZShpc1Nj
cmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIG5vdEluQWxsb3dMaXN0KSk7CiAKICAgICAv
LyBJdCdzIGltcG9ydGFudCB0byBjbGVhbiB1cCB0aGUgZW52aXJvbm1lbnQgYmVmb3JlIG90aGVy
IHRlc3RzLgotICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+
bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICBy
ZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRN
YW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiB9CiAKIGNsYXNzIFVzZXJTY3Jp
cHRNZXNzYWdlVGVzdCA6IHB1YmxpYyBXZWJWaWV3VGVzdCB7CkBAIC00NzcsMTAgKzQ3NywxMCBA
QAogCiBzdGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VyQ29udGVudEZpbHRlcihXZWJW
aWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBjaGFyKiB3aGl0ZWxpc3RbXSA9
IHsgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OwotICAgIGNoYXIqIGJsYWNrbGlzdFtdID0g
eyBudWxscHRyLCBudWxscHRyLCBudWxscHRyIH07CisgICAgY2hhciogYWxsb3dMaXN0W10gPSB7
IG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKKyAgICBjaGFyKiBibG9ja0xpc3RbXSA9IHsg
bnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OwogCi0gICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250
ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVs
aXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlz
dHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIGFsbG93TGlzdCwgYmxvY2tMaXN0
KTsKIAogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBzb21lUGF0aCA9ICJzb21lcGF0aCI7CiAgICAg
Z19hc3NlcnRfZmFsc2UoaXNDU1NCbG9ja2VkRm9yVVJMQXRQYXRoKHRlc3QsIHNvbWVQYXRoKSk7
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rl
c3RSdW5uZXIuaWRsCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwJKHJldmlzaW9uIDI2NTA4MSkKKysrIFRv
b2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5p
ZGwJKHdvcmtpbmcgY29weSkKQEAgLTg4LDggKzg4LDggQEAKICAgICB2b2lkIHNldFBvcHVwQmxv
Y2tpbmdFbmFibGVkKGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0QXV0aG9yQW5kVXNlclN0
eWxlc0VuYWJsZWQoYm9vbGVhbiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRDdXN0b21Qb2xpY3lEZWxl
Z2F0ZShib29sZWFuIGVuYWJsZWQsIGJvb2xlYW4gcGVybWlzc2l2ZSk7Ci0gICAgdm9pZCBhZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShET01TdHJpbmcgc291cmNlT3JpZ2luLCBET01TdHJp
bmcgZGVzdGluYXRpb25Qcm90b2NvbCwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbGVh
biBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Ci0gICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeShET01TdHJpbmcgc291cmNlT3JpZ2luLCBET01TdHJpbmcgZGVzdGlu
YXRpb25Qcm90b2NvbCwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbGVhbiBhbGxvd0Rl
c3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RF
bnRyeShET01TdHJpbmcgc291cmNlT3JpZ2luLCBET01TdHJpbmcgZGVzdGluYXRpb25Qcm90b2Nv
bCwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbGVhbiBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CisgICAgdm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShET01T
dHJpbmcgc291cmNlT3JpZ2luLCBET01TdHJpbmcgZGVzdGluYXRpb25Qcm90b2NvbCwgRE9NU3Ry
aW5nIGRlc3RpbmF0aW9uSG9zdCwgYm9vbGVhbiBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7
CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldEVuYWJsZWQoYm9vbGVhbiB2YWx1ZSk7CiAgICAg
dm9pZCBzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKERPTVN0cmluZyBsb2NhdGlvbik7CiAgICAg
dm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbGVhbiB2YWx1ZSk7CkluZGV4OiBU
b29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5l
ci5jcHAJKHJldmlzaW9uIDI2NTA4MSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0
ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTU3MSwxMiArNTcxLDEy
IEBACiAgICAgV0tCdW5kbGVTZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChpbmplY3RlZEJ1
bmRsZS5idW5kbGUoKSwgaW5qZWN0ZWRCdW5kbGUucGFnZUdyb3VwKCksIGVuYWJsZWQpOwogfQog
Ci12b2lkIFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpTU3RyaW5n
UmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJp
bmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQor
dm9pZCBUZXN0UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1Jl
ZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5n
UmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsK
ICAgICBXS0J1bmRsZUFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEluamVjdGVkQnVuZGxl
OjpzaW5nbGV0b24oKS5idW5kbGUoKSwgdG9XSyhzb3VyY2VPcmlnaW4pLmdldCgpLCB0b1dLKGRl
c3RpbmF0aW9uUHJvdG9jb2wpLmdldCgpLCB0b1dLKGRlc3RpbmF0aW9uSG9zdCkuZ2V0KCksIGFs
bG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpyZW1vdmVP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3Ry
aW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwg
Ym9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3Zl
T3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0
cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3Qs
IGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgV0tCdW5kbGVSZW1vdmVP
cmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVu
ZGxlKCksIHRvV0soc291cmNlT3JpZ2luKS5nZXQoKSwgdG9XSyhkZXN0aW5hdGlvblByb3RvY29s
KS5nZXQoKSwgdG9XSyhkZXN0aW5hdGlvbkhvc3QpLmdldCgpLCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucyk7CiB9CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxl
L1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVj
dGVkQnVuZGxlL1Rlc3RSdW5uZXIuaAkocmV2aXNpb24gMjY1MDgxKQorKysgVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcgY29weSkKQEAg
LTExNSw4ICsxMTUsOCBAQAogICAgIHZvaWQgc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCk7
CiAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChib29sKTsKICAgICB2b2lk
IHNldEN1c3RvbVBvbGljeURlbGVnYXRlKGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlID0g
ZmFsc2UpOwotICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdS
ZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmlu
Z1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwot
ICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291
cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBk
ZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZv
aWQgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2lu
LCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlv
bkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZvaWQgcmVtb3Zl
T3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0
cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3Qs
IGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgc2V0VXNlclN0eWxl
U2hlZXRFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihK
U1N0cmluZ1JlZik7CiAgICAgdm9pZCBzZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405586</attachid>
            <date>2020-07-30 10:16:39 -0700</date>
            <delta_ts>2020-07-31 11:31:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214971-20200730101638.patch</filename>
            <type>text/plain</type>
            <size>116409</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NTA4MSkKKysrIFNv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE1IEBACisyMDIwLTA3LTMwICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVXNlIG1vcmUgaW5jbHVzaXZlIHRlcm1pbm9sb2d5IGluIFRvb2xz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ5NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICogSW50ZXJmYWNl
cy9JV2ViVmlld1ByaXZhdGUuaWRsOgorICAgICAgICBSZW5hbWUgc29tZSB0ZXN0LW9ubHkgQVBJ
LiAgVGhpcyBzaG91bGQgbm90IGFmZmVjdCBiaW5hcnkgY29tcGF0aWJpbGl0eSBiZWNhdXNlIGV2
ZXJ5dGhpbmcgaXMgaW4gdGhlIHNhbWUgbG9jYXRpb25zLCBhbmQgdGhlIGNoYW5nZWQgQVBJIGlz
IG9ubHkgdXNlZCBmb3IgdGVzdHMuCisgICAgICAgICogV2ViVmlldy5oOgorICAgICAgICAqIFdl
YlZpZXcuY3BwOgorCiAyMDIwLTA3LTIzICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2Vu
QHdlYmtpdC5vcmc+CiAKICAgICAgICAgU3BsaXQgV2luZG93cyBwYXJ0cyBmcm9tIENGTmV0d29y
a1NQSS5oIHRvIENGTmV0d29ya1NQSVdpbi5oCkluZGV4OiBTb3VyY2UvV2ViS2l0TGVnYWN5L3dp
bi9XZWJWaWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJW
aWV3LmNwcAkocmV2aXNpb24gMjY1MDgxKQorKysgU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Vmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTY5ODgsMTEgKzY5ODgsMTEgQEAgdm9pZCBXZWJW
aWV3OjpleGl0VmlkZW9GdWxsc2NyZWVuRm9yVmlkZQogfQogCiBIUkVTVUxUIFdlYlZpZXc6OmFk
ZFVzZXJTY3JpcHRUb0dyb3VwKF9Jbl8gQlNUUiBncm91cE5hbWUsIF9Jbl9vcHRfIElXZWJTY3Jp
cHRXb3JsZCogaVdvcmxkLCBfSW5fIEJTVFIgc291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgIHVu
c2lnbmVkIHdoaXRlbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKHdoaXRlbGlzdENvdW50
KSBCU1RSKiB3aGl0ZWxpc3QsCi0gICAgdW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIF9faW5vdXRf
ZWNvdW50X2Z1bGwoYmxhY2tsaXN0Q291bnQpIEJTVFIqIGJsYWNrbGlzdCwKKyAgICB1bnNpZ25l
ZCBhbGxvd0xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChhbGxvd0xpc3RDb3VudCkgQlNU
UiogYWxsb3dMaXN0LAorICAgIHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LCBfX2lub3V0X2Vjb3Vu
dF9mdWxsKGJsb2NrTGlzdENvdW50KSBCU1RSKiBibG9ja2xpc3QsCiAgICAgV2ViVXNlclNjcmlw
dEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSkKIHsKLSAgICByZXR1cm4gYWRkVXNlclNjcmlw
dFRvR3JvdXAoZ3JvdXBOYW1lLCBpV29ybGQsIHNvdXJjZSwgdXJsLCB3aGl0ZWxpc3RDb3VudCwg
d2hpdGVsaXN0LCBibGFja2xpc3RDb3VudCwgYmxhY2tsaXN0LCBpbmplY3Rpb25UaW1lLCBXZWJJ
bmplY3RJbkFsbEZyYW1lcyk7CisgICAgcmV0dXJuIGFkZFVzZXJTY3JpcHRUb0dyb3VwKGdyb3Vw
TmFtZSwgaVdvcmxkLCBzb3VyY2UsIHVybCwgYWxsb3dMaXN0Q291bnQsIGFsbG93TGlzdCwgYmxv
Y2tMaXN0Q291bnQsIGJsb2NrbGlzdCwgaW5qZWN0aW9uVGltZSwgV2ViSW5qZWN0SW5BbGxGcmFt
ZXMpOwogfQogCiBzdGF0aWMgVmVjdG9yPFN0cmluZz4gdG9TdHJpbmdWZWN0b3IoQlNUUiogZW50
cmllcywgdW5zaWduZWQgY291bnQpCkBAIC03MDA4LDggKzcwMDgsOCBAQCBzdGF0aWMgVmVjdG9y
PFN0cmluZz4gdG9TdHJpbmdWZWN0b3IoQlNUCiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNl
clNjcmlwdFRvR3JvdXAoX0luXyBCU1RSIGdyb3VwTmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdv
cmxkKiBpV29ybGQsIF9Jbl8gQlNUUiBzb3VyY2UsIF9Jbl8gQlNUUiB1cmwsCi0gICAgdW5zaWdu
ZWQgd2hpdGVsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwod2hpdGVsaXN0Q291bnQpIEJT
VFIqIHdoaXRlbGlzdCwKLSAgICB1bnNpZ25lZCBibGFja2xpc3RDb3VudCwgX19pbm91dF9lY291
bnRfZnVsbChibGFja2xpc3RDb3VudCkgQlNUUiogYmxhY2tsaXN0LAorICAgIHVuc2lnbmVkIGFs
bG93TGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGFsbG93TGlzdENvdW50KSBCU1RSKiBh
bGxvd0xpc3QsCisgICAgdW5zaWduZWQgYmxvY2tMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1
bGwoYmxvY2tMaXN0Q291bnQpIEJTVFIqIGJsb2NrbGlzdCwKICAgICBXZWJVc2VyU2NyaXB0SW5q
ZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lLCBXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGlu
amVjdGVkRnJhbWVzKQogewogICAgIFN0cmluZyBncm91cCA9IHRvU3RyaW5nKGdyb3VwTmFtZSk7
CkBAIC03MDIyLDIxICs3MDIyLDIxIEBAIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclNjcmlwdFRv
R3JvdXAoX0kKICAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKIAogICAgIFdlYlNjcmlwdFdvcmxk
KiB3b3JsZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViU2NyaXB0V29ybGQqPihpV29ybGQpOwotICAg
IGF1dG8gdXNlclNjcmlwdCA9IG1ha2VVbmlxdWU8VXNlclNjcmlwdD4oc291cmNlLCB0b1VSTCh1
cmwpLCB0b1N0cmluZ1ZlY3Rvcih3aGl0ZWxpc3QsIHdoaXRlbGlzdENvdW50KSwKLSAgICAgICAg
dG9TdHJpbmdWZWN0b3IoYmxhY2tsaXN0LCBibGFja2xpc3RDb3VudCksIGluamVjdGlvblRpbWUg
PT0gV2ViSW5qZWN0QXREb2N1bWVudFN0YXJ0ID8gVXNlclNjcmlwdEluamVjdGlvblRpbWU6OkRv
Y3VtZW50U3RhcnQgOiBVc2VyU2NyaXB0SW5qZWN0aW9uVGltZTo6RG9jdW1lbnRFbmQsCisgICAg
YXV0byB1c2VyU2NyaXB0ID0gbWFrZVVuaXF1ZTxVc2VyU2NyaXB0Pihzb3VyY2UsIHRvVVJMKHVy
bCksIHRvU3RyaW5nVmVjdG9yKGFsbG93TGlzdCwgYWxsb3dMaXN0Q291bnQpLAorICAgICAgICB0
b1N0cmluZ1ZlY3RvcihibG9ja2xpc3QsIGJsb2NrTGlzdENvdW50KSwgaW5qZWN0aW9uVGltZSA9
PSBXZWJJbmplY3RBdERvY3VtZW50U3RhcnQgPyBVc2VyU2NyaXB0SW5qZWN0aW9uVGltZTo6RG9j
dW1lbnRTdGFydCA6IFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lOjpEb2N1bWVudEVuZCwKICAgICAg
ICAgaW5qZWN0ZWRGcmFtZXMgPT0gV2ViSW5qZWN0SW5BbGxGcmFtZXMgPyBVc2VyQ29udGVudElu
amVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcyA6IFVzZXJDb250ZW50SW5qZWN0ZWRGcmFt
ZXM6OkluamVjdEluVG9wRnJhbWVPbmx5LCBXYWl0Rm9yTm90aWZpY2F0aW9uQmVmb3JlSW5qZWN0
aW5nOjpObyk7CiAgICAgdmlld0dyb3VwLT51c2VyQ29udGVudENvbnRyb2xsZXIoKS5hZGRVc2Vy
U2NyaXB0KHdvcmxkLT53b3JsZCgpLCBXVEZNb3ZlKHVzZXJTY3JpcHQpKTsKICAgICByZXR1cm4g
U19PSzsKIH0KIAogSFJFU1VMVCBXZWJWaWV3OjphZGRVc2VyU3R5bGVTaGVldFRvR3JvdXAoX0lu
XyBCU1RSIGdyb3VwTmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKiBpV29ybGQsIF9Jbl8g
QlNUUiBzb3VyY2UsIF9Jbl8gQlNUUiB1cmwsCi0gICAgdW5zaWduZWQgd2hpdGVsaXN0Q291bnQs
IF9faW5vdXRfZWNvdW50X2Z1bGwod2hpdGVsaXN0Q291bnQpIEJTVFIqIHdoaXRlbGlzdCwgdW5z
aWduZWQgYmxhY2tsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxhY2tsaXN0Q291bnQp
IEJTVFIqIGJsYWNrbGlzdCkKKyAgICB1bnNpZ25lZCBhbGxvd0xpc3RDb3VudCwgX19pbm91dF9l
Y291bnRfZnVsbChhbGxvd0xpc3RDb3VudCkgQlNUUiogYWxsb3dMaXN0LCB1bnNpZ25lZCBibG9j
a0xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChibG9ja0xpc3RDb3VudCkgQlNUUiogYmxv
Y2tsaXN0KQogewotICAgIHJldHVybiBhZGRVc2VyU3R5bGVTaGVldFRvR3JvdXAoZ3JvdXBOYW1l
LCBpV29ybGQsIHNvdXJjZSwgdXJsLCB3aGl0ZWxpc3RDb3VudCwgd2hpdGVsaXN0LCBibGFja2xp
c3RDb3VudCwgYmxhY2tsaXN0LCBXZWJJbmplY3RJbkFsbEZyYW1lcyk7CisgICAgcmV0dXJuIGFk
ZFVzZXJTdHlsZVNoZWV0VG9Hcm91cChncm91cE5hbWUsIGlXb3JsZCwgc291cmNlLCB1cmwsIGFs
bG93TGlzdENvdW50LCBhbGxvd0xpc3QsIGJsb2NrTGlzdENvdW50LCBibG9ja2xpc3QsIFdlYklu
amVjdEluQWxsRnJhbWVzKTsKIH0KIAogSFJFU1VMVCBXZWJWaWV3OjphZGRVc2VyU3R5bGVTaGVl
dFRvR3JvdXAoX0luXyBCU1RSIGdyb3VwTmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKiBp
V29ybGQsIF9Jbl8gQlNUUiBzb3VyY2UsIF9Jbl8gQlNUUiB1cmwsCi0gICAgdW5zaWduZWQgd2hp
dGVsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwod2hpdGVsaXN0Q291bnQpIEJTVFIqIHdo
aXRlbGlzdCwgdW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxh
Y2tsaXN0Q291bnQpIEJTVFIqIGJsYWNrbGlzdCwKKyAgICB1bnNpZ25lZCBhbGxvd0xpc3RDb3Vu
dCwgX19pbm91dF9lY291bnRfZnVsbChhbGxvd0xpc3RDb3VudCkgQlNUUiogYWxsb3dMaXN0LCB1
bnNpZ25lZCBibG9ja0xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChibG9ja0xpc3RDb3Vu
dCkgQlNUUiogYmxvY2tsaXN0LAogICAgIFdlYlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5q
ZWN0ZWRGcmFtZXMpCiB7CiAgICAgU3RyaW5nIGdyb3VwID0gdG9TdHJpbmcoZ3JvdXBOYW1lKTsK
QEAgLTcwNDksNyArNzA0OSw3IEBAIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXRU
b0dyb3UKICAgICAgICAgcmV0dXJuIEVfUE9JTlRFUjsKIAogICAgIFdlYlNjcmlwdFdvcmxkKiB3
b3JsZCA9IHJlaW50ZXJwcmV0X2Nhc3Q8V2ViU2NyaXB0V29ybGQqPihpV29ybGQpOwotICAgIGF1
dG8gc3R5bGVTaGVldCA9IG1ha2VVbmlxdWU8VXNlclN0eWxlU2hlZXQ+KHNvdXJjZSwgdG9VUkwo
dXJsKSwgdG9TdHJpbmdWZWN0b3Iod2hpdGVsaXN0LCB3aGl0ZWxpc3RDb3VudCksIHRvU3RyaW5n
VmVjdG9yKGJsYWNrbGlzdCwgYmxhY2tsaXN0Q291bnQpLAorICAgIGF1dG8gc3R5bGVTaGVldCA9
IG1ha2VVbmlxdWU8VXNlclN0eWxlU2hlZXQ+KHNvdXJjZSwgdG9VUkwodXJsKSwgdG9TdHJpbmdW
ZWN0b3IoYWxsb3dMaXN0LCBhbGxvd0xpc3RDb3VudCksIHRvU3RyaW5nVmVjdG9yKGJsb2NrbGlz
dCwgYmxvY2tMaXN0Q291bnQpLAogICAgICAgICBpbmplY3RlZEZyYW1lcyA9PSBXZWJJbmplY3RJ
bkFsbEZyYW1lcyA/IFVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluQWxsRnJhbWVz
IDogVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lczo6SW5qZWN0SW5Ub3BGcmFtZU9ubHksIFVzZXJT
dHlsZVVzZXJMZXZlbCk7CiAgICAgdmlld0dyb3VwLT51c2VyQ29udGVudENvbnRyb2xsZXIoKS5h
ZGRVc2VyU3R5bGVTaGVldCh3b3JsZC0+d29ybGQoKSwgV1RGTW92ZShzdHlsZVNoZWV0KSwgSW5q
ZWN0SW5FeGlzdGluZ0RvY3VtZW50cyk7CiAgICAgcmV0dXJuIFNfT0s7CkBAIC03MTYwLDE5ICs3
MTYwLDE5IEBAIEhSRVNVTFQgV2ViVmlldzo6aW52YWxpZGF0ZUJhY2tpbmdTdG9yZSgKICAgICBy
ZXR1cm4gU19PSzsKIH0KIAotSFJFU1VMVCBXZWJWaWV3OjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RFbnRyeShfSW5fIEJTVFIgc291cmNlT3JpZ2luLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Qcm90
b2NvbCwgX0luXyBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWlucykKK0hSRVNVTFQgV2ViVmlldzo6YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnko
X0luXyBCU1RSIHNvdXJjZU9yaWdpbiwgX0luXyBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2wsIF9J
bl8gQlNUUiBkZXN0aW5hdGlvbkhvc3QsIEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMp
CiB7CiAgICAgU2VjdXJpdHlQb2xpY3k6OmFkZE9yaWdpbkFjY2Vzc0FsbG93bGlzdEVudHJ5KFNl
Y3VyaXR5T3JpZ2luOjpjcmVhdGVGcm9tU3RyaW5nKHRvU3RyaW5nKHNvdXJjZU9yaWdpbikpLmdl
dCgpLCB0b1N0cmluZyhkZXN0aW5hdGlvblByb3RvY29sKSwgdG9TdHJpbmcoZGVzdGluYXRpb25I
b3N0KSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHJldHVybiBTX09LOwogfQog
Ci1IUkVTVUxUIFdlYlZpZXc6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KF9Jbl8g
QlNUUiBzb3VyY2VPcmlnaW4sIF9Jbl8gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBfSW5fIEJT
VFIgZGVzdGluYXRpb25Ib3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQorSFJF
U1VMVCBXZWJWaWV3OjpyZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShfSW5fIEJTVFIg
c291cmNlT3JpZ2luLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgX0luXyBCU1RSIGRl
c3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsKICAgICBT
ZWN1cml0eVBvbGljeTo6cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dsaXN0RW50cnkoU2VjdXJpdHlP
cmlnaW46OmNyZWF0ZUZyb21TdHJpbmcodG9TdHJpbmcoc291cmNlT3JpZ2luKSkuZ2V0KCksIHRv
U3RyaW5nKGRlc3RpbmF0aW9uUHJvdG9jb2wpLCB0b1N0cmluZyhkZXN0aW5hdGlvbkhvc3QpLCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgcmV0dXJuIFNfT0s7CiB9CiAKLUhSRVNV
TFQgV2ViVmlldzo6cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCkKK0hSRVNVTFQgV2ViVmll
dzo6cmVzZXRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RzKCkKIHsKICAgICBTZWN1cml0eVBvbGljeTo6
cmVzZXRPcmlnaW5BY2Nlc3NBbGxvd2xpc3RzKCk7CiAgICAgcmV0dXJuIFNfT0s7CkluZGV4OiBT
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9XZWJWaWV3LmgKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdExlZ2FjeS93aW4vV2ViVmlldy5oCShyZXZpc2lvbiAyNjUwODEpCisrKyBTb3VyY2UvV2Vi
S2l0TGVnYWN5L3dpbi9XZWJWaWV3LmgJKHdvcmtpbmcgY29weSkKQEAgLTM0NywxMCArMzQ3LDEw
IEBAIHB1YmxpYzoKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEphdmFTY3JpcHRV
UkxzQXJlQWxsb3dlZChCT09MKSBvdmVycmlkZTsKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIHNldENhblN0YXJ0UGx1Z2lucyhCT09MKSBvdmVycmlkZTsKICAgICBIUkVTVUxUIFNURE1F
VEhPRENBTExUWVBFIGFkZFVzZXJTY3JpcHRUb0dyb3VwKF9Jbl8gQlNUUiBncm91cE5hbWUsIF9J
bl9vcHRfIElXZWJTY3JpcHRXb3JsZCosIF9Jbl8gQlNUUiBzb3VyY2UsIF9Jbl8gQlNUUiB1cmws
Ci0gICAgICAgIHVuc2lnbmVkIHdoaXRlbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKHdo
aXRlbGlzdENvdW50KSBCU1RSKiB3aGl0ZWxpc3QsIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LAot
ICAgICAgICBfX2lub3V0X2Vjb3VudF9mdWxsKGJsYWNrbGlzdENvdW50KSBCU1RSKiBibGFja2xp
c3QsIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lKSBvdmVycmlkZTsKKyAgICAgICAgdW5zaWdu
ZWQgYWxsb3dMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0Q291bnQpIEJT
VFIqIGFsbG93TGlzdCwgdW5zaWduZWQgYmxvY2tMaXN0Q291bnQsCisgICAgICAgIF9faW5vdXRf
ZWNvdW50X2Z1bGwoYmxvY2tMaXN0Q291bnQpIEJTVFIqIGJsb2NrTGlzdCwgV2ViVXNlclNjcmlw
dEluamVjdGlvblRpbWUpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
YWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKF9Jbl8gQlNUUiBncm91cE5hbWUsIF9Jbl9vcHRfIElX
ZWJTY3JpcHRXb3JsZCosIF9Jbl8gQlNUUiBzb3VyY2UsIF9Jbl8gQlNUUiB1cmwsCi0gICAgICAg
IHVuc2lnbmVkIHdoaXRlbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKHdoaXRlbGlzdENv
dW50KSBCU1RSKiB3aGl0ZWxpc3QsIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBfX2lub3V0X2Vj
b3VudF9mdWxsKGJsYWNrbGlzdENvdW50KSBCU1RSKiBibGFja2xpc3QpIG92ZXJyaWRlOworICAg
ICAgICB1bnNpZ25lZCBhbGxvd0xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChhbGxvd0xp
c3RDb3VudCkgQlNUUiogYWxsb3dMaXN0LCB1bnNpZ25lZCBibG9ja0xpc3RDb3VudCwgX19pbm91
dF9lY291bnRfZnVsbChibG9ja0xpc3RDb3VudCkgQlNUUiogYmxvY2tMaXN0KSBvdmVycmlkZTsK
ICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlbW92ZVVzZXJTY3JpcHRGcm9tR3JvdXAo
X0luXyBCU1RSIGdyb3VwTmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKiwgX0luXyBCU1RS
IHVybCkgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZW1vdmVVc2Vy
U3R5bGVTaGVldEZyb21Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0XyBJV2ViU2Ny
aXB0V29ybGQqLCBfSW5fIEJTVFIgdXJsKSBvdmVycmlkZTsKICAgICBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHJlbW92ZVVzZXJTY3JpcHRzRnJvbUdyb3VwKF9Jbl8gQlNUUiBncm91cE5hbWUs
IF9Jbl9vcHRfIElXZWJTY3JpcHRXb3JsZCopIG92ZXJyaWRlOwpAQCAtMzU5LDkgKzM1OSw5IEBA
IHB1YmxpYzoKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHVudXNlZDEoKSBvdmVycmlk
ZTsKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHVudXNlZDIoKSBvdmVycmlkZTsKICAg
ICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGludmFsaWRhdGVCYWNraW5nU3RvcmUoX0luX29w
dF8gY29uc3QgUkVDVCopIG92ZXJyaWRlOwotICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoX0luXyBCU1RSIHNvdXJjZU9yaWdpbiwgX0lu
XyBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2wsIF9Jbl8gQlNUUiBkZXN0aW5hdGlvbkhvc3QsIEJP
T0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpIG92ZXJyaWRlOwotICAgIEhSRVNVTFQgU1RE
TUVUSE9EQ0FMTFRZUEUgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoX0luXyBCU1RS
IHNvdXJjZU9yaWdpbiwgX0luXyBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2wsIF9Jbl8gQlNUUiBk
ZXN0aW5hdGlvbkhvc3QsIEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpIG92ZXJyaWRl
OwotICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RzKCkgb3ZlcnJpZGU7CisgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBhZGRPcmlnaW5B
Y2Nlc3NBbGxvd0xpc3RFbnRyeShfSW5fIEJTVFIgc291cmNlT3JpZ2luLCBfSW5fIEJTVFIgZGVz
dGluYXRpb25Qcm90b2NvbCwgX0luXyBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rl
c3RpbmF0aW9uU3ViZG9tYWlucykgb3ZlcnJpZGU7CisgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSByZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShfSW5fIEJTVFIgc291cmNlT3Jp
Z2luLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgX0luXyBCU1RSIGRlc3RpbmF0aW9u
SG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykgb3ZlcnJpZGU7CisgICAgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZXNldE9yaWdpbkFjY2Vzc0FsbG93TGlzdHMoKSBvdmVy
cmlkZTsKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEhpc3RvcnlEZWxlZ2F0ZShf
SW5fIElXZWJIaXN0b3J5RGVsZWdhdGUqKSBvdmVycmlkZTsKICAgICBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIGhpc3RvcnlEZWxlZ2F0ZShfQ09NX091dHB0cl9vcHRfIElXZWJIaXN0b3J5RGVs
ZWdhdGUqKikgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBhZGRWaXNp
dGVkTGlua3MoX19pbm91dF9lY291bnRfZnVsbCh2aXNpdGVkVVJMQ291bnQpIEJTVFIqIHZpc2l0
ZWRVUkxzLCB1bnNpZ25lZCB2aXNpdGVkVVJMQ291bnQpIG92ZXJyaWRlOwpAQCAtMzkxLDkgKzM5
MSw5IEBAIHB1YmxpYzoKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHNldEN1c3RvbUJh
Y2tpbmdTY2FsZUZhY3Rvcihkb3VibGUpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9E
Q0FMTFRZUEUgYmFja2luZ1NjYWxlRmFjdG9yKF9PdXRfIGRvdWJsZSopIG92ZXJyaWRlOwogICAg
IEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWRkVXNlclNjcmlwdFRvR3JvdXAoX0luXyBCU1RS
IGdyb3VwTmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdvcmxkKiwgX0luXyBCU1RSIHNvdXJjZSwg
X0luXyBCU1RSIHVybCwKLSAgICAgICAgdW5zaWduZWQgd2hpdGVsaXN0Q291bnQsIF9faW5vdXRf
ZWNvdW50X2Z1bGwod2hpdGVsaXN0Q291bnQpIEJTVFIqIHdoaXRlbGlzdCwgdW5zaWduZWQgYmxh
Y2tsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxhY2tsaXN0Q291bnQpIEJTVFIqIGJs
YWNrbGlzdCwgV2ViVXNlclNjcmlwdEluamVjdGlvblRpbWUsIFdlYlVzZXJDb250ZW50SW5qZWN0
ZWRGcmFtZXMpIG92ZXJyaWRlOworICAgICAgICB1bnNpZ25lZCBhbGxvd0xpc3RDb3VudCwgX19p
bm91dF9lY291bnRfZnVsbChhbGxvd0xpc3RDb3VudCkgQlNUUiogYWxsb3dMaXN0LCB1bnNpZ25l
ZCBibG9ja0xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChibG9ja0xpc3RDb3VudCkgQlNU
UiogYmxvY2tMaXN0LCBXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSwgV2ViVXNlckNvbnRlbnRJ
bmplY3RlZEZyYW1lcykgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBh
ZGRVc2VyU3R5bGVTaGVldFRvR3JvdXAoX0luXyBCU1RSIGdyb3VwTmFtZSwgX0luX29wdF8gSVdl
YlNjcmlwdFdvcmxkKiwgX0luXyBCU1RSIHNvdXJjZSwgX0luXyBCU1RSIHVybCwKLSAgICAgICAg
dW5zaWduZWQgd2hpdGVsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwod2hpdGVsaXN0Q291
bnQpIEJTVFIqIHdoaXRlbGlzdCwgdW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIF9faW5vdXRfZWNv
dW50X2Z1bGwoYmxhY2tsaXN0Q291bnQpIEJTVFIqIGJsYWNrbGlzdCwgV2ViVXNlckNvbnRlbnRJ
bmplY3RlZEZyYW1lcykgb3ZlcnJpZGU7CisgICAgICAgIHVuc2lnbmVkIGFsbG93TGlzdENvdW50
LCBfX2lub3V0X2Vjb3VudF9mdWxsKGFsbG93TGlzdENvdW50KSBCU1RSKiBhbGxvd0xpc3QsIHVu
c2lnbmVkIGJsb2NrTGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJsb2NrTGlzdENvdW50
KSBCU1RSKiBibG9ja0xpc3QsIFdlYlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMpIG92ZXJyaWRl
OwogCiAgICAgLy8gSVdlYlZpZXdQcml2YXRlMwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZ
UEUgbGF5ZXJUcmVlQXNTdHJpbmcoX0RlcmVmX29wdF9vdXRfIEJTVFIqKSBvdmVycmlkZTsKSW5k
ZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlk
bAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJW
aWV3UHJpdmF0ZS5pZGwJKHJldmlzaW9uIDI2NTA4MSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kv
d2luL0ludGVyZmFjZXMvSVdlYlZpZXdQcml2YXRlLmlkbAkod29ya2luZyBjb3B5KQpAQCAtMTg5
LDEyICsxODksMTIgQEAgaW50ZXJmYWNlIElXZWJWaWV3UHJpdmF0ZSA6IElVbmtub3duCiAgICAg
SFJFU1VMVCBNSU1FVHlwZUZvckV4dGVuc2lvbihbaW5dIEJTVFIgZXh0ZW5zaW9uLCBbb3V0LCBy
ZXR2YWxdIEJTVFIqIG1pbWVUeXBlKTsKIAogICAgIEhSRVNVTFQgYWRkVXNlclNjcmlwdFRvR3Jv
dXAoW2luXSBCU1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqLCBbaW5dIEJTVFIg
c291cmNlLCBbaW5dIEJTVFIgdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
W2luXSB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgW2luLCBzaXplX2lzKHdoaXRlbGlzdENvdW50
KV0gQlNUUiogd2hpdGVsaXN0LAotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lu
XSB1bnNpZ25lZCBibGFja2xpc3RDb3VudCwgW2luLCBzaXplX2lzKGJsYWNrbGlzdENvdW50KV0g
QlNUUiogYmxhY2tsaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luXSB1
bnNpZ25lZCBhbGxvd0xpc3RDb3VudCwgW2luLCBzaXplX2lzKGFsbG93TGlzdENvdW50KV0gQlNU
UiogYWxsb3dMaXN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luXSB1bnNp
Z25lZCBibG9ja0xpc3RDb3VudCwgW2luLCBzaXplX2lzKGJsb2NrTGlzdENvdW50KV0gQlNUUiog
YmxvY2tMaXN0LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2luXSBXZWJVc2Vy
U2NyaXB0SW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lKTsKICAgICBIUkVTVUxUIGFkZFVzZXJT
dHlsZVNoZWV0VG9Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1lLCBbaW5dIElXZWJTY3JpcHRXb3Js
ZCosIFtpbl0gQlNUUiBzb3VyY2UsIFtpbl0gQlNUUiB1cmwsCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgW2luXSB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgW2luLCBzaXpl
X2lzKHdoaXRlbGlzdENvdW50KV0gQlNUUiogd2hpdGVsaXN0LAotICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIFtpbl0gdW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIFtpbiwgc2l6
ZV9pcyhibGFja2xpc3RDb3VudCldIEJTVFIqIGJsYWNrbGlzdCk7CisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgW2luXSB1bnNpZ25lZCBhbGxvd0xpc3RDb3VudCwgW2luLCBz
aXplX2lzKGFsbG93TGlzdENvdW50KV0gQlNUUiogYWxsb3dMaXN0LAorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIFtpbl0gdW5zaWduZWQgYmxvY2tMaXN0Q291bnQsIFtpbiwg
c2l6ZV9pcyhibG9ja0xpc3RDb3VudCldIEJTVFIqIGJsb2NrTGlzdCk7CiAgICAgSFJFU1VMVCBy
ZW1vdmVVc2VyU2NyaXB0RnJvbUdyb3VwKFtpbl0gQlNUUiBncm91cE5hbWUsIFtpbl0gSVdlYlNj
cmlwdFdvcmxkKiwgW2luXSBCU1RSIHVybCk7CiAgICAgSFJFU1VMVCByZW1vdmVVc2VyU3R5bGVT
aGVldEZyb21Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1lLCBbaW5dIElXZWJTY3JpcHRXb3JsZCos
IFtpbl0gQlNUUiB1cmwpOwogICAgIEhSRVNVTFQgcmVtb3ZlVXNlclNjcmlwdHNGcm9tR3JvdXAo
W2luXSBCU1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqKTsKQEAgLTIwNywxNyAr
MjA3LDE3IEBAIGludGVyZmFjZSBJV2ViVmlld1ByaXZhdGUgOiBJVW5rbm93bgogICAgIC8vIElm
IHJlY3QgaXMgMCwgdGhlIGVudGlyZSBiYWNraW5nIHN0b3JlIHdpbGwgYmUgaW52YWxpZGF0ZWQu
CiAgICAgSFJFU1VMVCBpbnZhbGlkYXRlQmFja2luZ1N0b3JlKFtpbl0gY29uc3QgUkVDVCogcmVj
dCk7CiAKLSAgICAvLyBXaGl0ZWxpc3RzIGFjY2VzcyBmcm9tIGFuIG9yaWdpbiAoc291cmNlT3Jp
Z2luKSB0byBhIHNldCBvZiBvbmUgb3IgbW9yZSBvcmlnaW5zIGRlc2NyaWJlZCBieSB0aGUgcGFy
YW1ldGVyczoKKyAgICAvLyBBbGxvd0xpc3RzIGFjY2VzcyBmcm9tIGFuIG9yaWdpbiAoc291cmNl
T3JpZ2luKSB0byBhIHNldCBvZiBvbmUgb3IgbW9yZSBvcmlnaW5zIGRlc2NyaWJlZCBieSB0aGUg
cGFyYW1ldGVyczoKICAgICAvLyAtIGRlc3RpbmF0aW9uUHJvdG9jb2w6IFRoZSBwcm90b2NvbCB0
byBncmFudCBhY2Nlc3MgdG8uCiAgICAgLy8gLSBkZXN0aW5hdGlvbkhvc3Q6IFRoZSBob3N0IHRv
IGdyYW50IGFjY2VzcyB0by4KLSAgICAvLyAtIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zOiBJ
ZiBob3N0IGlzIGEgZG9tYWluLCBzZXR0aW5nIHRoaXMgdG8gWUVTIHdpbGwgd2hpdGVsaXN0IGhv
c3QgYW5kIGFsbCBpdHMgc3ViZG9tYWlucywgcmVjdXJzaXZlbHkuCi0gICAgSFJFU1VMVCBhZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShbaW5dIEJTVFIgc291cmNlT3JpZ2luLCBbaW5dIEJT
VFIgZGVzdGluYXRpb25Qcm90b2NvbCwgW2luXSBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgW2luXSBC
T09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICAvLyAtIGFsbG93RGVzdGluYXRp
b25TdWJkb21haW5zOiBJZiBob3N0IGlzIGEgZG9tYWluLCBzZXR0aW5nIHRoaXMgdG8gWUVTIHdp
bGwgYWxsb3cgaG9zdCBhbmQgYWxsIGl0cyBzdWJkb21haW5zLCByZWN1cnNpdmVseS4KKyAgICBI
UkVTVUxUIGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KFtpbl0gQlNUUiBzb3VyY2VPcmln
aW4sIFtpbl0gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBbaW5dIEJTVFIgZGVzdGluYXRpb25I
b3N0LCBbaW5dIEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogCi0gICAgLy8gUmVt
b3ZlcyBhIHdoaXRlIGxpc3QgZW50cnkgY3JlYXRlZCB3aXRoIGFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5LiBTZWUgYWJvdmUuCi0gICAgSFJFU1VMVCByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeShbaW5dIEJTVFIgc291cmNlT3JpZ2luLCBbaW5dIEJTVFIgZGVzdGluYXRpb25Q
cm90b2NvbCwgW2luXSBCU1RSIGRlc3RpbmF0aW9uSG9zdCwgW2luXSBCT09MIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKTsKKyAgICAvLyBSZW1vdmVzIGEgd2hpdGUgbGlzdCBlbnRyeSBjcmVh
dGVkIHdpdGggYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkuIFNlZSBhYm92ZS4KKyAgICBI
UkVTVUxUIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KFtpbl0gQlNUUiBzb3VyY2VP
cmlnaW4sIFtpbl0gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBbaW5dIEJTVFIgZGVzdGluYXRp
b25Ib3N0LCBbaW5dIEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogCi0gICAgLy8g
UmVtb3ZlcyBhbGwgd2hpdGUgbGlzdCBlbnRyaWVzIGNyZWF0ZWQgd2l0aCBhZGRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeS4KLSAgICBIUkVTVUxUIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0
cygpOworICAgIC8vIFJlbW92ZXMgYWxsIHdoaXRlIGxpc3QgZW50cmllcyBjcmVhdGVkIHdpdGgg
YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkuCisgICAgSFJFU1VMVCByZXNldE9yaWdpbkFj
Y2Vzc0FsbG93TGlzdHMoKTsKIAogICAgIEhSRVNVTFQgc2V0SGlzdG9yeURlbGVnYXRlKFtpbl0g
SVdlYkhpc3RvcnlEZWxlZ2F0ZSogaGlzdG9yeURlbGVnYXRlKTsKICAgICBIUkVTVUxUIGhpc3Rv
cnlEZWxlZ2F0ZShbb3V0LHJldHZhbF0gSVdlYkhpc3RvcnlEZWxlZ2F0ZSoqIGhpc3RvcnlEZWxl
Z2F0ZSk7CkBAIC0zMTYsMTMgKzMxNiwxMyBAQCBpbnRlcmZhY2UgSVdlYlZpZXdQcml2YXRlMiA6
IElXZWJWaWV3UHJpCiAgICAgSFJFU1VMVCBiYWNraW5nU2NhbGVGYWN0b3IoW291dF0gZG91Ymxl
Kik7CiAKICAgICBIUkVTVUxUIGFkZFVzZXJTY3JpcHRUb0dyb3VwKFtpbl0gQlNUUiBncm91cE5h
bWUsIFtpbl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHNvdXJjZSwgW2luXSBCU1RSIHVy
bCwKLSAgICAgICAgW2luXSB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgW2luLCBzaXplX2lzKHdo
aXRlbGlzdENvdW50KV0gQlNUUiogd2hpdGVsaXN0LAotICAgICAgICBbaW5dIHVuc2lnbmVkIGJs
YWNrbGlzdENvdW50LCBbaW4sIHNpemVfaXMoYmxhY2tsaXN0Q291bnQpXSBCU1RSKiBibGFja2xp
c3QsCisgICAgICAgIFtpbl0gdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyhh
bGxvd0xpc3RDb3VudCldIEJTVFIqIGFsbG93TGlzdCwKKyAgICAgICAgW2luXSB1bnNpZ25lZCBi
bG9ja0xpc3RDb3VudCwgW2luLCBzaXplX2lzKGJsb2NrTGlzdENvdW50KV0gQlNUUiogYmxvY2tM
aXN0LAogICAgICAgICBbaW5dIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lIGluamVjdGlvblRp
bWUsIFtpbl0gV2ViVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcyk7CiAK
ICAgICBIUkVTVUxUIGFkZFVzZXJTdHlsZVNoZWV0VG9Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1l
LCBbaW5dIElXZWJTY3JpcHRXb3JsZCosIFtpbl0gQlNUUiBzb3VyY2UsIFtpbl0gQlNUUiB1cmws
Ci0gICAgICAgIFtpbl0gdW5zaWduZWQgd2hpdGVsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyh3aGl0
ZWxpc3RDb3VudCldIEJTVFIqIHdoaXRlbGlzdCwKLSAgICAgICAgW2luXSB1bnNpZ25lZCBibGFj
a2xpc3RDb3VudCwgW2luLCBzaXplX2lzKGJsYWNrbGlzdENvdW50KV0gQlNUUiogYmxhY2tsaXN0
LAorICAgICAgICBbaW5dIHVuc2lnbmVkIGFsbG93TGlzdENvdW50LCBbaW4sIHNpemVfaXMoYWxs
b3dMaXN0Q291bnQpXSBCU1RSKiBhbGxvd0xpc3QsCisgICAgICAgIFtpbl0gdW5zaWduZWQgYmxv
Y2tMaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyhibG9ja0xpc3RDb3VudCldIEJTVFIqIGJsb2NrTGlz
dCwKICAgICAgICAgW2luXSBXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVkRnJh
bWVzKTsKIH0KIApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0No
YW5nZUxvZwkocmV2aXNpb24gMjY1MDgzKQorKysgVG9vbHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsNDIgQEAKKzIwMjAtMDctMzAgIEFsZXggQ2hyaXN0ZW5zZW4gIDxhY2hy
aXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgbW9yZSBpbmNsdXNpdmUgdGVybWlu
b2xvZ3kgaW4gVG9vbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIxNDk3MQorCisgICAgICAgIFJldmlld2VkIGJ5IFNhbSBXZWluaWcuCisKKyAgICAg
ICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKGFkZE9yaWdpbkFj
Y2Vzc0FsbG93TGlzdEVudHJ5Q2FsbGJhY2spOgorICAgICAgICAocmVtb3ZlT3JpZ2luQWNjZXNz
QWxsb3dMaXN0RW50cnlDYWxsYmFjayk6CisgICAgICAgIChUZXN0UnVubmVyOjpzdGF0aWNGdW5j
dGlvbnMpOgorICAgICAgICAoYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlDYWxsYmFjayk6
IERlbGV0ZWQuCisgICAgICAgIChyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUNhbGxi
YWNrKTogRGVsZXRlZC4KKyAgICAgICAgKiBEdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmg6Cisg
ICAgICAgICogRHVtcFJlbmRlclRyZWUvbWFjL1Rlc3RSdW5uZXJNYWMubW06CisgICAgICAgIChU
ZXN0UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSk6CisgICAgICAgIChUZXN0
UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSk6CisgICAgICAgIChUZXN0
UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6IERlbGV0ZWQuCisgICAgICAg
IChUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSk6IERlbGV0ZWQu
CisgICAgICAgICogRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcDoKKyAgICAg
ICAgKHJlc2V0V2ViVmlld1RvQ29uc2lzdGVudFN0YXRlQmVmb3JlVGVzdGluZyk6CisgICAgICAg
ICogRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwOgorICAgICAgICAoVGVzdFJ1
bm5lcjo6YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkpOgorICAgICAgICAoVGVzdFJ1bm5l
cjo6cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkpOgorICAgICAgICAoVGVzdFJ1bm5l
cjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOiBEZWxldGVkLgorICAgICAgICAoVGVz
dFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOiBEZWxldGVkLgorICAg
ICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2ViS2l0VXNlckNvbnRl
bnRNYW5hZ2VyLmNwcDoKKyAgICAgICAgKHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0
TGlzdHMpOgorICAgICAgICAodGVzdFVzZXJDb250ZW50TWFuYWdlckluamVjdGVkU3R5bGVTaGVl
dCk6CisgICAgICAgICh0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0ZWRTY3JpcHQpOgorICAg
ICAgICAodGVzdFVzZXJDb250ZW50TWFuYWdlckNvbnRlbnRGaWx0ZXIpOgorICAgICAgICAqIFdl
YktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGw6Cisg
ICAgICAgICogV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcDoK
KyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkp
OgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RF
bnRyeSk6CisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlz
dEVudHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnkpOiBEZWxldGVkLgorICAgICAgICAqIFdlYktpdFRlc3RSdW5u
ZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5oOgorCiAyMDIwLTA3LTMwICBKb25hdGhhbiBC
ZWRhcmQgIDxqYmVkYXJkQGFwcGxlLmNvbT4KIAogICAgICAgICBbQmlnIFN1cl0gQWRkIGxpbWl0
ZWQgU2VlZCAzIHN1cHBvcnQgdG8gRVdTCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0
UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVy
LmNwcAkocmV2aXNpb24gMjY1MDgxKQorKysgVG9vbHMvRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5l
ci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MzQsNyArMTUzNCw3IEBAIHN0YXRpYyBKU1ZhbHVl
UmVmIHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZUMKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmlu
ZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIGFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09i
amVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJl
ZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQorc3RhdGljIEpTVmFsdWVSZWYg
YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlDYWxsYmFjayhKU0NvbnRleHRSZWYgY29udGV4
dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3QsIHNpemVfdCBhcmd1bWVudENv
dW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1ZhbHVlUmVmKiBleGNlcHRpb24p
CiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gNCkKICAgICAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOwpAQCAtMTU0OCwxMSArMTU0OCwxMSBAQCBzdGF0aWMgSlNW
YWx1ZVJlZiBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpCiAgICAgYm9vbCBhbGxvd0Rlc3RpbmF0aW9u
U3ViZG9tYWlucyA9IEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwgYXJndW1lbnRzWzNdKTsKIAog
ICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2FzdDxUZXN0UnVubmVyKj4oSlNP
YmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250cm9sbGVyLT5hZGRPcmlnaW5B
Y2Nlc3NXaGl0ZWxpc3RFbnRyeShzb3VyY2VPcmlnaW4uZ2V0KCksIGRlc3RpbmF0aW9uUHJvdG9j
b2wuZ2V0KCksIGRlc3RpbmF0aW9uSG9zdC5nZXQoKSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpOworICAgIGNvbnRyb2xsZXItPmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KHNvdXJj
ZU9yaWdpbi5nZXQoKSwgZGVzdGluYXRpb25Qcm90b2NvbC5nZXQoKSwgZGVzdGluYXRpb25Ib3N0
LmdldCgpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgcmV0dXJuIEpTVmFsdWVN
YWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNWYWx1ZVJlZiByZW1vdmVPcmln
aW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUNhbGxiYWNrKEpTQ29udGV4dFJlZiBjb250ZXh0LCBKU09i
amVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90IGFyZ3VtZW50Q291bnQsIGNv
bnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYqIGV4Y2VwdGlvbikKK3N0YXRp
YyBKU1ZhbHVlUmVmIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5Q2FsbGJhY2soSlND
b250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBz
aXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1
ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChhcmd1bWVudENvdW50ICE9IDQpCiAgICAgICAg
IHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsKQEAgLTE1NjYsNyArMTU2Niw3
IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZU9yaWdpbkFjY2Vzc1doaXQKICAgICBib29sIGFs
bG93RGVzdGluYXRpb25TdWJkb21haW5zID0gSlNWYWx1ZVRvQm9vbGVhbihjb250ZXh0LCBhcmd1
bWVudHNbM10pOwogCiAgICAgVGVzdFJ1bm5lciogY29udHJvbGxlciA9IHN0YXRpY19jYXN0PFRl
c3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVjdCkpOwotICAgIGNvbnRyb2xs
ZXItPnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KHNvdXJjZU9yaWdpbi5nZXQoKSwg
ZGVzdGluYXRpb25Qcm90b2NvbC5nZXQoKSwgZGVzdGluYXRpb25Ib3N0LmdldCgpLCBhbGxvd0Rl
c3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgY29udHJvbGxlci0+cmVtb3ZlT3JpZ2luQWNjZXNz
QWxsb3dMaXN0RW50cnkoc291cmNlT3JpZ2luLmdldCgpLCBkZXN0aW5hdGlvblByb3RvY29sLmdl
dCgpLCBkZXN0aW5hdGlvbkhvc3QuZ2V0KCksIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsK
ICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKQEAgLTIyMDcs
NyArMjIwNyw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmMKICAg
ICAgICAgeyAicXVldWVOb25Mb2FkaW5nU2NyaXB0IiwgcXVldWVOb25Mb2FkaW5nU2NyaXB0Q2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicXVldWVSZWxvYWQiLCBxdWV1ZVJlbG9hZENhbGxi
YWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVE
b250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZUFsbFZpc2l0ZWRMaW5rcyIsIHJlbW92ZUFs
bFZpc2l0ZWRMaW5rc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAgIHsgInJlbW92ZU9yaWdpbkFj
Y2Vzc1doaXRlbGlzdEVudHJ5IiwgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAorICAgICAgICB7ICJyZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRy
eSIsIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5
QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAg
ICAgICAgeyAicmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5IiwgcmVwYWludFN3ZWVwSG9yaXpvbnRh
bGx5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0
dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicmVzZXRQYWdlVmlzaWJpbGl0eSIsIHJl
c2V0UGFnZVZpc2liaWxpdHlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRBY2NlcHRz
RWRpdGluZyIsIHNldEFjY2VwdHNFZGl0aW5nQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRl
UmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKQEAgLTIyNzYsNyAr
MjI3Niw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6OnN0YXRpY0Z1bmMKICAgICAg
ICAgeyAid2FpdEZvclBvbGljeURlbGVnYXRlIiwgd2FpdEZvclBvbGljeURlbGVnYXRlQ2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKICAgICAgICAgeyAid2FpdFVudGlsRG9uZSIsIHdhaXRVbnRpbERvbmVDYWxs
YmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRl
RG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ3aW5kb3dDb3VudCIsIHdpbmRvd0NvdW50Q2FsbGJh
Y2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURv
bnREZWxldGUgfSwKLSAgICAgICAgeyAiYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkiLCBh
ZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCisgICAgICAgIHsg
ImFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5IiwgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0
RW50cnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5
QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRTY3JvbGxiYXJQb2xpY3kiLCBz
ZXRTY3JvbGxiYXJQb2xpY3lDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8
IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJhdXRoZW50aWNh
dGVTZXNzaW9uIiwgYXV0aGVudGljYXRlU2Vzc2lvbkNhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAg
IHsgInNldFNob3VsZFBhaW50QnJva2VuSW1hZ2UiLCBzZXRTaG91bGRQYWludEJyb2tlbkltYWdl
Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmgJKHJldmlz
aW9uIDI2NTA4MSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rlc3RSdW5uZXIuaAkod29ya2lu
ZyBjb3B5KQpAQCAtMzEzLDggKzMxMyw4IEBAIHB1YmxpYzoKICAgICBjb25zdCBzdGQ6OnZlY3Rv
cjxjaGFyPiYgYXVkaW9SZXN1bHQoKSBjb25zdCB7IHJldHVybiBtX2F1ZGlvUmVzdWx0OyB9CiAg
ICAgdm9pZCBzZXRBdWRpb1Jlc3VsdChjb25zdCBzdGQ6OnZlY3RvcjxjaGFyPiYgYXVkaW9EYXRh
KSB7IG1fYXVkaW9SZXN1bHQgPSBhdWRpb0RhdGE7IH0KIAotICAgIHZvaWQgYWRkT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBk
ZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwotICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5h
dGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50
cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3Rv
Y29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpOworICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSlNT
dHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBK
U1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpOwogCiAgICAgdm9pZCBhZGRVc2VyU2NyaXB0KEpTU3RyaW5nUmVmIHNvdXJjZSwgYm9vbCBy
dW5BdFN0YXJ0LCBib29sIGFsbEZyYW1lcyk7CiAgICAgdm9pZCBhZGRVc2VyU3R5bGVTaGVldChK
U1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgYWxsRnJhbWVzKTsKSW5kZXg6IFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCShyZXZpc2lvbiAyNjUwODEpCisrKyBUb29scy9E
dW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQkod29ya2luZyBjb3B5KQpAQCAtNzUy
LDcgKzc1Miw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6d2FpdEZvclBvbGljeURlbGVnYXRlKCkKICAg
ICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRQb2xpY3lEZWxlZ2F0ZTpwb2xpY3lEZWxlZ2F0ZV07
CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNT
dHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBK
U1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpCit2b2lkIFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEpTU3Ry
aW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNT
dHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5z
KQogewogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc291cmNlT3JpZ2luQ0YgPSBhZG9wdENG
KEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHNvdXJjZU9yaWdpbikp
OwogICAgIE5TU3RyaW5nICpzb3VyY2VPcmlnaW5OUyA9IChfX2JyaWRnZSBOU1N0cmluZyAqKXNv
dXJjZU9yaWdpbkNGLmdldCgpOwpAQCAtNzYzLDcgKzc2Myw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6
YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXMKICAgICBbV2ViVmlldyBfYWRkT3JpZ2luQWNjZXNzQWxs
b3dMaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOnNvdXJjZU9yaWdpbk5TIGRlc3RpbmF0aW9uUHJv
dG9jb2w6ZGVzdGluYXRpb25Qcm90b2NvbE5TIGRlc3RpbmF0aW9uSG9zdDpkZXN0aW5hdGlvbkhv
c3ROUyBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczphbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlu
c107CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50
cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3Rv
Y29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpCit2b2lkIFRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVu
dHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90
b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25T
dWJkb21haW5zKQogewogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc291cmNlT3JpZ2luQ0Yg
PSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1bHQsIHNvdXJj
ZU9yaWdpbikpOwogICAgIE5TU3RyaW5nICpzb3VyY2VPcmlnaW5OUyA9IChfX2JyaWRnZSBOU1N0
cmluZyAqKXNvdXJjZU9yaWdpbkNGLmdldCgpOwpJbmRleDogVG9vbHMvRHVtcFJlbmRlclRyZWUv
d2luL0R1bXBSZW5kZXJUcmVlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJl
ZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCShyZXZpc2lvbiAyNjUwODEpCisrKyBUb29scy9EdW1w
UmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUy
LDcgKzEwNTIsNyBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0CiAg
ICAgaWYgKHdlYlZpZXdQcml2YXRlICYmIFNVQ0NFRURFRCh3ZWJWaWV3UHJpdmF0ZS0+dmlld1dp
bmRvdygmdmlld1dpbmRvdykpICYmIHZpZXdXaW5kb3cpCiAgICAgICAgIDo6U2V0Rm9jdXModmll
d1dpbmRvdyk7CiAKLSAgICB3ZWJWaWV3UHJpdmF0ZS0+cmVzZXRPcmlnaW5BY2Nlc3NXaGl0ZWxp
c3RzKCk7CisgICAgd2ViVmlld1ByaXZhdGUtPnJlc2V0T3JpZ2luQWNjZXNzQWxsb3dMaXN0cygp
OwogCiAgICAgc2hhcmVkVUlEZWxlZ2F0ZS0+cmVzZXRVbmRvTWFuYWdlcigpOwogCkluZGV4OiBU
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
VG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4uY3BwCShyZXZpc2lvbiAyNjUw
ODEpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTEwNzIsMjIgKzEwNzIsMjIgQEAgc3RhdGljIF9ic3RyX3QgYnN0clQoSlNT
dHJpbmdSZWYganNTdHJpbgogICAgIHJldHVybiBfYnN0cl90KEpTU3RyaW5nQ29weUJTVFIoanNT
dHJpbmcpLCBmYWxzZSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5h
dGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc0FsbG93
TGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRp
b25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKQogewogICAgIENPTVB0cjxJV2ViVmlld1ByaXZhdGUyPiB3ZWJWaWV3
OwogICAgIGlmIChGQUlMRUQoV2ViS2l0Q3JlYXRlSW5zdGFuY2UoX191dWlkb2YoV2ViVmlldyks
IDAsIF9fdXVpZG9mKHdlYlZpZXcpLCByZWludGVycHJldF9jYXN0PHZvaWQqKj4oJndlYlZpZXcp
KSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYlZpZXctPmFkZE9yaWdpbkFjY2Vzc1doaXRl
bGlzdEVudHJ5KGJzdHJUKHNvdXJjZU9yaWdpbikuR2V0QlNUUigpLCBic3RyVChkZXN0aW5hdGlv
blByb3RvY29sKS5HZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9uSG9zdCkuR2V0QlNUUigpLCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgd2ViVmlldy0+YWRkT3JpZ2luQWNjZXNz
QWxsb3dMaXN0RW50cnkoYnN0clQoc291cmNlT3JpZ2luKS5HZXRCU1RSKCksIGJzdHJUKGRlc3Rp
bmF0aW9uUHJvdG9jb2wpLkdldEJTVFIoKSwgYnN0clQoZGVzdGluYXRpb25Ib3N0KS5HZXRCU1RS
KCksIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpy
ZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4s
IEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9u
SG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK3ZvaWQgVGVzdFJ1bm5lcjo6
cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2lu
LCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlv
bkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgQ09NUHRyPElX
ZWJWaWV3UHJpdmF0ZTI+IHdlYlZpZXc7CiAgICAgaWYgKEZBSUxFRChXZWJLaXRDcmVhdGVJbnN0
YW5jZShfX3V1aWRvZihXZWJWaWV3KSwgMCwgX191dWlkb2Yod2ViVmlldyksIHJlaW50ZXJwcmV0
X2Nhc3Q8dm9pZCoqPigmd2ViVmlldykpKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgd2ViVmll
dy0+cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoYnN0clQoc291cmNlT3JpZ2luKS5H
ZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9uUHJvdG9jb2wpLkdldEJTVFIoKSwgYnN0clQoZGVz
dGluYXRpb25Ib3N0KS5HZXRCU1RSKCksIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAg
ICB3ZWJWaWV3LT5yZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShic3RyVChzb3VyY2VP
cmlnaW4pLkdldEJTVFIoKSwgYnN0clQoZGVzdGluYXRpb25Qcm90b2NvbCkuR2V0QlNUUigpLCBi
c3RyVChkZXN0aW5hdGlvbkhvc3QpLkdldEJTVFIoKSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpOwogfQogCiB2b2lkIFRlc3RSdW5uZXI6OnNldFNjcm9sbGJhclBvbGljeShKU1N0cmluZ1Jl
ZiBvcmllbnRhdGlvbiwgSlNTdHJpbmdSZWYgcG9saWN5KQpJbmRleDogVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0V2Vi
S2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAkocmV2aXNpb24gMjY1MDgxKQorKysgVG9vbHMvVGVz
dFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAsMzMgKzEyMCwzMyBAQCBzdGF0aWMgdm9pZCBmaWxs
VVJMTGlzdEZyb21QYXRocyhjaGFyKiogCiAgICAgfQogfQogCi1zdGF0aWMgdm9pZCByZW1vdmVP
bGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKFdlYktpdFVzZXJDb250ZW50TWFuYWdlciog
dXNlckNvbnRlbnRNYW5hZ2VyLCBjaGFyKiogd2hpdGVsaXN0LCBjaGFyKiogYmxhY2tsaXN0KQor
c3RhdGljIHZvaWQgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyhXZWJLaXRV
c2VyQ29udGVudE1hbmFnZXIqIHVzZXJDb250ZW50TWFuYWdlciwgY2hhcioqIGFsbG93TGlzdCwg
Y2hhcioqIGJsb2NrTGlzdCkKIHsKICAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfcmVt
b3ZlX2FsbF9zdHlsZV9zaGVldHModXNlckNvbnRlbnRNYW5hZ2VyKTsKICAgICB3ZWJraXRfdXNl
cl9jb250ZW50X21hbmFnZXJfcmVtb3ZlX2FsbF9zY3JpcHRzKHVzZXJDb250ZW50TWFuYWdlcik7
CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlbW92ZV9hbGxfZmlsdGVycyh1c2Vy
Q29udGVudE1hbmFnZXIpOwogCi0gICAgd2hpbGUgKCp3aGl0ZWxpc3QpIHsKLSAgICAgICAgZ19m
cmVlKCp3aGl0ZWxpc3QpOwotICAgICAgICAqd2hpdGVsaXN0ID0gMDsKLSAgICAgICAgd2hpdGVs
aXN0Kys7CisgICAgd2hpbGUgKCphbGxvd0xpc3QpIHsKKyAgICAgICAgZ19mcmVlKCphbGxvd0xp
c3QpOworICAgICAgICAqYWxsb3dMaXN0ID0gMDsKKyAgICAgICAgYWxsb3dMaXN0Kys7CiAgICAg
fQogCi0gICAgd2hpbGUgKCpibGFja2xpc3QpIHsKLSAgICAgICAgZ19mcmVlKCpibGFja2xpc3Qp
OwotICAgICAgICAqYmxhY2tsaXN0ID0gMDsKLSAgICAgICAgYmxhY2tsaXN0Kys7CisgICAgd2hp
bGUgKCpibG9ja0xpc3QpIHsKKyAgICAgICAgZ19mcmVlKCpibG9ja0xpc3QpOworICAgICAgICAq
YmxvY2tMaXN0ID0gMDsKKyAgICAgICAgYmxvY2tMaXN0Kys7CiAgICAgfQogfQogCiBzdGF0aWMg
dm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0ZWRTdHlsZVNoZWV0KFdlYlZpZXdUZXN0
KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQogewotICAgIGNoYXIqIHdoaXRlbGlzdFszXSA9IHsgMCwg
MCwgMCB9OwotICAgIGNoYXIqIGJsYWNrbGlzdFszXSA9IHsgMCwgMCwgMCB9OworICAgIGNoYXIq
IGFsbG93TGlzdFszXSA9IHsgMCwgMCwgMCB9OworICAgIGNoYXIqIGJsb2NrTGlzdFszXSA9IHsg
MCwgMCwgMCB9OwogCi0gICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0
ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFja2xpc3QpOwor
ICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29u
dGVudE1hbmFnZXIuZ2V0KCksIGFsbG93TGlzdCwgYmxvY2tMaXN0KTsKIAotICAgIC8vIFdpdGhv
dXQgYSB3aGl0ZWxpc3Qgb3IgYSBibGFja2xpc3QgYWxsIFVSTHMgc2hvdWxkIGhhdmUgdGhlIGlu
amVjdGVkIHN0eWxlIHNoZWV0LgorICAgIC8vIFdpdGhvdXQgYSBhbGxvd0xpc3Qgb3IgYSBibG9j
a0xpc3QgYWxsIFVSTHMgc2hvdWxkIGhhdmUgdGhlIGluamVjdGVkIHN0eWxlIHNoZWV0LgogICAg
IHN0YXRpYyBjb25zdCBjaGFyKiByYW5kb21QYXRoID0gInNvbWVyYW5kb21wYXRoIjsKICAgICBn
X2Fzc2VydF9mYWxzZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5k
b21QYXRoKSk7CiAgICAgV2ViS2l0VXNlclN0eWxlU2hlZXQqIHN0eWxlU2hlZXQgPSB3ZWJraXRf
dXNlcl9zdHlsZV9zaGVldF9uZXcoa0luamVjdGVkU3R5bGVTaGVldCwgV0VCS0lUX1VTRVJfQ09O
VEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU1RZTEVfTEVWRUxfVVNFUiwgbnVs
bHB0ciwgbnVsbHB0cik7CkBAIC0xNTQsNyArMTU0LDcgQEAgc3RhdGljIHZvaWQgdGVzdFVzZXJD
b250ZW50TWFuYWdlckluamVjdAogICAgIHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X3VucmVmKHN0
eWxlU2hlZXQpOwogICAgIGdfYXNzZXJ0X3RydWUoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxB
dFBhdGgodGVzdCwgcmFuZG9tUGF0aCkpOwogCi0gICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50
QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0
LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHMo
dGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIGFsbG93TGlzdCwgYmxvY2tMaXN0KTsK
IAogICAgIGdfYXNzZXJ0X2ZhbHNlKGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRoKHRl
c3QsIHJhbmRvbVBhdGgsICJXZWJFeHRlbnNpb25UZXN0U2NyaXB0V29ybGQiKSk7CiAgICAgc3R5
bGVTaGVldCA9IHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X25ld19mb3Jfd29ybGQoa0luamVjdGVk
U3R5bGVTaGVldCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lU
X1VTRVJfU1RZTEVfTEVWRUxfVVNFUiwgIldlYkV4dGVuc2lvblRlc3RTY3JpcHRXb3JsZCIsIG51
bGxwdHIsIG51bGxwdHIpOwpAQCAtMTYyLDQyICsxNjIsNDIgQEAgc3RhdGljIHZvaWQgdGVzdFVz
ZXJDb250ZW50TWFuYWdlckluamVjdAogICAgIHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X3VucmVm
KHN0eWxlU2hlZXQpOwogICAgIGdfYXNzZXJ0X3RydWUoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JV
UkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCwgIldlYkV4dGVuc2lvblRlc3RTY3JpcHRXb3JsZCIp
KTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91
c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1v
dmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5h
Z2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiAKLSAgICBmaWxsVVJMTGlzdEZyb21Q
YXRocyhibGFja2xpc3QsIHJhbmRvbVBhdGgsIDApOwotICAgIHN0eWxlU2hlZXQgPSB3ZWJraXRf
dXNlcl9zdHlsZV9zaGVldF9uZXcoa0luamVjdGVkU3R5bGVTaGVldCwgV0VCS0lUX1VTRVJfQ09O
VEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU1RZTEVfTEVWRUxfVVNFUiwgbnVs
bHB0ciwgYmxhY2tsaXN0KTsKKyAgICBmaWxsVVJMTGlzdEZyb21QYXRocyhibG9ja0xpc3QsIHJh
bmRvbVBhdGgsIDApOworICAgIHN0eWxlU2hlZXQgPSB3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF9u
ZXcoa0luamVjdGVkU3R5bGVTaGVldCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZS
QU1FUywgV0VCS0lUX1VTRVJfU1RZTEVfTEVWRUxfVVNFUiwgbnVsbHB0ciwgYmxvY2tMaXN0KTsK
ICAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfYWRkX3N0eWxlX3NoZWV0KHRlc3QtPm1f
dXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBzdHlsZVNoZWV0KTsKICAgICB3ZWJraXRfdXNlcl9z
dHlsZV9zaGVldF91bnJlZihzdHlsZVNoZWV0KTsKICAgICBnX2Fzc2VydF9mYWxzZShpc1N0eWxl
U2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CiAgICAgZ19hc3Nl
cnRfdHJ1ZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCAic29tZW90aGVy
cmFuZG9tcGF0aCIpKTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlz
dHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0
KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNl
ckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiAKLSAgICBzdGF0
aWMgY29uc3QgY2hhciogaW5UaGVXaGl0ZUxpc3QgPSAiaW50aGV3aGl0ZWxpc3QiOwotICAgIHN0
YXRpYyBjb25zdCBjaGFyKiBub3RJbldoaXRlbGlzdCA9ICJub3RpbnRoZXdoaXRlbGlzdCI7Ci0g
ICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0ID0gImludGhl
d2hpdGVsaXN0YW5kYmxhY2tsaXN0IjsKLQotICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKHdoaXRl
bGlzdCwgaW5UaGVXaGl0ZUxpc3QsIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0LCAwKTsKLSAg
ICBmaWxsVVJMTGlzdEZyb21QYXRocyhibGFja2xpc3QsIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tM
aXN0LCAwKTsKLSAgICBzdHlsZVNoZWV0ID0gd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfbmV3KGtJ
bmplY3RlZFN0eWxlU2hlZXQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFNRVMs
IFdFQktJVF9VU0VSX1NUWUxFX0xFVkVMX1VTRVIsIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAg
ICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVBbGxvd0xpc3QgPSAiaW50aGVhbGxvd2xpc3QiOwor
ICAgIHN0YXRpYyBjb25zdCBjaGFyKiBub3RJbkFsbG93TGlzdCA9ICJub3RpbnRoZWFsbG93bGlz
dCI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhlQWxsb3dMaXN0QW5kQmxvY2tMaXN0ID0g
ImludGhlYWxsb3dsaXN0YW5kYmxvY2tsaXN0IjsKKworICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhz
KGFsbG93TGlzdCwgaW5UaGVBbGxvd0xpc3QsIGluVGhlQWxsb3dMaXN0QW5kQmxvY2tMaXN0LCAw
KTsKKyAgICBmaWxsVVJMTGlzdEZyb21QYXRocyhibG9ja0xpc3QsIGluVGhlQWxsb3dMaXN0QW5k
QmxvY2tMaXN0LCAwKTsKKyAgICBzdHlsZVNoZWV0ID0gd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRf
bmV3KGtJbmplY3RlZFN0eWxlU2hlZXQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9G
UkFNRVMsIFdFQktJVF9VU0VSX1NUWUxFX0xFVkVMX1VTRVIsIGFsbG93TGlzdCwgYmxvY2tMaXN0
KTsKICAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJfYWRkX3N0eWxlX3NoZWV0KHRlc3Qt
Pm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBzdHlsZVNoZWV0KTsKICAgICB3ZWJraXRfdXNl
cl9zdHlsZV9zaGVldF91bnJlZihzdHlsZVNoZWV0KTsKLSAgICBnX2Fzc2VydF90cnVlKGlzU3R5
bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIGluVGhlV2hpdGVMaXN0KSk7Ci0gICAg
Z19hc3NlcnRfZmFsc2UoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5U
aGVXaGl0ZUxpc3RBbmRCbGFja0xpc3QpKTsKLSAgICBnX2Fzc2VydF9mYWxzZShpc1N0eWxlU2hl
ZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBub3RJbldoaXRlbGlzdCkpOworICAgIGdfYXNz
ZXJ0X3RydWUoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5UaGVBbGxv
d0xpc3QpKTsKKyAgICBnX2Fzc2VydF9mYWxzZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0
UGF0aCh0ZXN0LCBpblRoZUFsbG93TGlzdEFuZEJsb2NrTGlzdCkpOworICAgIGdfYXNzZXJ0X2Zh
bHNlKGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIG5vdEluQWxsb3dMaXN0
KSk7CiAKICAgICAvLyBJdCdzIGltcG9ydGFudCB0byBjbGVhbiB1cCB0aGUgZW52aXJvbm1lbnQg
YmVmb3JlIG90aGVyIHRlc3RzLgotICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0
TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2ts
aXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1f
dXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiB9CiAKIHN0
YXRpYyB2b2lkIHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmplY3RlZFNjcmlwdChXZWJWaWV3VGVz
dCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBjaGFyKiB3aGl0ZWxpc3RbM10gPSB7IDAs
IDAsIDAgfTsKLSAgICBjaGFyKiBibGFja2xpc3RbM10gPSB7IDAsIDAsIDAgfTsKKyAgICBjaGFy
KiBhbGxvd0xpc3RbM10gPSB7IDAsIDAsIDAgfTsKKyAgICBjaGFyKiBibG9ja0xpc3RbM10gPSB7
IDAsIDAsIDAgfTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHMo
dGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsK
KyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNv
bnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiAKLSAgICAvLyBXaXRo
b3V0IGEgd2hpdGVsaXN0IG9yIGEgYmxhY2tsaXN0IGFsbCBVUkxzIHNob3VsZCBoYXZlIHRoZSBp
bmplY3RlZCBzY3JpcHQuCisgICAgLy8gV2l0aG91dCBhIGFsbG93TGlzdCBvciBhIGJsb2NrTGlz
dCBhbGwgVVJMcyBzaG91bGQgaGF2ZSB0aGUgaW5qZWN0ZWQgc2NyaXB0LgogICAgIHN0YXRpYyBj
b25zdCBjaGFyKiByYW5kb21QYXRoID0gInNvbWVyYW5kb21wYXRoIjsKICAgICBnX2Fzc2VydF9m
YWxzZShpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIHJhbmRvbVBhdGgpKTsKICAg
ICBXZWJLaXRVc2VyU2NyaXB0KiBzY3JpcHQgPSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3KGtJbmpl
Y3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lU
X1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQsIG51bGxwdHIsIG51bGxwdHIpOwpA
QCAtMjA1LDcgKzIwNSw3IEBAIHN0YXRpYyB2b2lkIHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmpl
Y3QKICAgICB3ZWJraXRfdXNlcl9zY3JpcHRfdW5yZWYoc2NyaXB0KTsKICAgICBnX2Fzc2VydF90
cnVlKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCkpOwogCi0g
ICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250
ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZElu
amVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0
KCksIGFsbG93TGlzdCwgYmxvY2tMaXN0KTsKIAogICAgIGdfYXNzZXJ0X2ZhbHNlKGlzU2NyaXB0
SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCwgIldlYkV4dGVuc2lvblRlc3RT
Y3JpcHRXb3JsZCIpKTsKICAgICBzY3JpcHQgPSB3ZWJraXRfdXNlcl9zY3JpcHRfbmV3X2Zvcl93
b3JsZChrSW5qZWN0ZWRTY3JpcHQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFN
RVMsIFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRfRE9DVU1FTlRfRU5ELCAiV2ViRXh0ZW5z
aW9uVGVzdFNjcmlwdFdvcmxkIiwgbnVsbHB0ciwgbnVsbHB0cik7CkBAIC0yMTMsMzIgKzIxMywz
MiBAQCBzdGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0CiAgICAgd2Via2l0
X3VzZXJfc2NyaXB0X3VucmVmKHNjcmlwdCk7CiAgICAgZ19hc3NlcnRfdHJ1ZShpc1NjcmlwdElu
amVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIHJhbmRvbVBhdGgsICJXZWJFeHRlbnNpb25UZXN0U2Ny
aXB0V29ybGQiKSk7CiAKLSAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3Rz
KHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7
CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJD
b250ZW50TWFuYWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9ja0xpc3QpOwogCi0gICAgZmlsbFVS
TExpc3RGcm9tUGF0aHMoYmxhY2tsaXN0LCByYW5kb21QYXRoLCAwKTsKLSAgICBzY3JpcHQgPSB3
ZWJraXRfdXNlcl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVO
VF9JTkpFQ1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVO
VF9FTkQsIG51bGxwdHIsIGJsYWNrbGlzdCk7CisgICAgZmlsbFVSTExpc3RGcm9tUGF0aHMoYmxv
Y2tMaXN0LCByYW5kb21QYXRoLCAwKTsKKyAgICBzY3JpcHQgPSB3ZWJraXRfdXNlcl9zY3JpcHRf
bmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxMX0ZSQU1F
UywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQsIG51bGxwdHIsIGJs
b2NrTGlzdCk7CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX2FkZF9zY3JpcHQodGVz
dC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHNjcmlwdCk7CiAgICAgd2Via2l0X3VzZXJf
c2NyaXB0X3VucmVmKHNjcmlwdCk7CiAgICAgZ19hc3NlcnRfZmFsc2UoaXNTY3JpcHRJbmplY3Rl
ZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CiAgICAgZ19hc3NlcnRfdHJ1ZShpc1Nj
cmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsICJzb21lb3RoZXJyYW5kb21wYXRoIikpOwog
Ci0gICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJD
b250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9s
ZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIu
Z2V0KCksIGFsbG93TGlzdCwgYmxvY2tMaXN0KTsKIAotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBp
blRoZVdoaXRlTGlzdCA9ICJpbnRoZXdoaXRlbGlzdCI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIq
IG5vdEluV2hpdGVsaXN0ID0gIm5vdGludGhld2hpdGVsaXN0IjsKLSAgICBzdGF0aWMgY29uc3Qg
Y2hhciogaW5UaGVXaGl0ZUxpc3RBbmRCbGFja0xpc3QgPSAiaW50aGV3aGl0ZWxpc3RhbmRibGFj
a2xpc3QiOwotCi0gICAgZmlsbFVSTExpc3RGcm9tUGF0aHMod2hpdGVsaXN0LCBpblRoZVdoaXRl
TGlzdCwgaW5UaGVXaGl0ZUxpc3RBbmRCbGFja0xpc3QsIDApOwotICAgIGZpbGxVUkxMaXN0RnJv
bVBhdGhzKGJsYWNrbGlzdCwgaW5UaGVXaGl0ZUxpc3RBbmRCbGFja0xpc3QsIDApOwotICAgIHNj
cmlwdCA9IHdlYmtpdF91c2VyX3NjcmlwdF9uZXcoa0luamVjdGVkU2NyaXB0LCBXRUJLSVRfVVNF
Ul9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJLSVRfVVNFUl9TQ1JJUFRfSU5KRUNUX0FU
X0RPQ1VNRU5UX0VORCwgd2hpdGVsaXN0LCBibGFja2xpc3QpOworICAgIHN0YXRpYyBjb25zdCBj
aGFyKiBpblRoZUFsbG93TGlzdCA9ICJpbnRoZWFsbG93bGlzdCI7CisgICAgc3RhdGljIGNvbnN0
IGNoYXIqIG5vdEluQWxsb3dMaXN0ID0gIm5vdGludGhlYWxsb3dsaXN0IjsKKyAgICBzdGF0aWMg
Y29uc3QgY2hhciogaW5UaGVBbGxvd0xpc3RBbmRCbG9ja0xpc3QgPSAiaW50aGVhbGxvd2xpc3Rh
bmRibG9ja0xpc3QiOworCisgICAgZmlsbFVSTExpc3RGcm9tUGF0aHMoYWxsb3dMaXN0LCBpblRo
ZUFsbG93TGlzdCwgaW5UaGVBbGxvd0xpc3RBbmRCbG9ja0xpc3QsIDApOworICAgIGZpbGxVUkxM
aXN0RnJvbVBhdGhzKGJsb2NrTGlzdCwgaW5UaGVBbGxvd0xpc3RBbmRCbG9ja0xpc3QsIDApOwor
ICAgIHNjcmlwdCA9IHdlYmtpdF91c2VyX3NjcmlwdF9uZXcoa0luamVjdGVkU2NyaXB0LCBXRUJL
SVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJLSVRfVVNFUl9TQ1JJUFRfSU5K
RUNUX0FUX0RPQ1VNRU5UX0VORCwgYWxsb3dMaXN0LCBibG9ja0xpc3QpOwogICAgIHdlYmtpdF91
c2VyX2NvbnRlbnRfbWFuYWdlcl9hZGRfc2NyaXB0KHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2Vy
LmdldCgpLCBzY3JpcHQpOwogICAgIHdlYmtpdF91c2VyX3NjcmlwdF91bnJlZihzY3JpcHQpOwot
ICAgIGdfYXNzZXJ0X3RydWUoaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBpblRo
ZVdoaXRlTGlzdCkpOwotICAgIGdfYXNzZXJ0X2ZhbHNlKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxB
dFBhdGgodGVzdCwgaW5UaGVXaGl0ZUxpc3RBbmRCbGFja0xpc3QpKTsKLSAgICBnX2Fzc2VydF9m
YWxzZShpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIG5vdEluV2hpdGVsaXN0KSk7
CisgICAgZ19hc3NlcnRfdHJ1ZShpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIGlu
VGhlQWxsb3dMaXN0KSk7CisgICAgZ19hc3NlcnRfZmFsc2UoaXNTY3JpcHRJbmplY3RlZEZvclVS
TEF0UGF0aCh0ZXN0LCBpblRoZUFsbG93TGlzdEFuZEJsb2NrTGlzdCkpOworICAgIGdfYXNzZXJ0
X2ZhbHNlKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgbm90SW5BbGxvd0xpc3Qp
KTsKIAogICAgIC8vIEl0J3MgaW1wb3J0YW50IHRvIGNsZWFuIHVwIHRoZSBlbnZpcm9ubWVudCBi
ZWZvcmUgb3RoZXIgdGVzdHMuCi0gICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRM
aXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFja2xp
c3QpOworICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91
c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIGFsbG93TGlzdCwgYmxvY2tMaXN0KTsKIH0KIAogY2xh
c3MgVXNlclNjcmlwdE1lc3NhZ2VUZXN0IDogcHVibGljIFdlYlZpZXdUZXN0IHsKQEAgLTQ3Nywx
MCArNDc3LDEwIEBAIHN0YXRpYyBXZWJLaXRVc2VyQ29udGVudEZpbHRlciogZ2V0VXNlckMKIAog
c3RhdGljIHZvaWQgdGVzdFVzZXJDb250ZW50TWFuYWdlckNvbnRlbnRGaWx0ZXIoV2ViVmlld1Rl
c3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7Ci0gICAgY2hhciogd2hpdGVsaXN0W10gPSB7IG51
bGxwdHIsIG51bGxwdHIsIG51bGxwdHIgfTsKLSAgICBjaGFyKiBibGFja2xpc3RbXSA9IHsgbnVs
bHB0ciwgbnVsbHB0ciwgbnVsbHB0ciB9OworICAgIGNoYXIqIGFsbG93TGlzdFtdID0geyBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyIH07CisgICAgY2hhciogYmxvY2tMaXN0W10gPSB7IG51bGxw
dHIsIG51bGxwdHIsIG51bGxwdHIgfTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFu
ZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwg
YmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRl
c3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiAK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogc29tZVBhdGggPSAic29tZXBhdGgiOwogICAgIGdfYXNz
ZXJ0X2ZhbHNlKGlzQ1NTQmxvY2tlZEZvclVSTEF0UGF0aCh0ZXN0LCBzb21lUGF0aCkpOwpJbmRl
eDogVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RS
dW5uZXIuY3BwCShyZXZpc2lvbiAyNjUwODEpCisrKyBUb29scy9XZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC01NzEsMTIgKzU3
MSwxMiBAQCB2b2lkIFRlc3RSdW5uZXI6OnNldEF1dGhvckFuZFVzZXJTdHlsZXNFCiAgICAgV0tC
dW5kbGVTZXRBdXRob3JBbmRVc2VyU3R5bGVzRW5hYmxlZChpbmplY3RlZEJ1bmRsZS5idW5kbGUo
KSwgaW5qZWN0ZWRCdW5kbGUucGFnZUdyb3VwKCksIGVuYWJsZWQpOwogfQogCi12b2lkIFRlc3RS
dW5uZXI6OmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9y
aWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGlu
YXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQordm9pZCBUZXN0UnVu
bmVyOjphZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmln
aW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0
aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsKICAgICBXS0J1bmRs
ZUFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEluamVjdGVkQnVuZGxlOjpzaW5nbGV0b24o
KS5idW5kbGUoKSwgdG9XSyhzb3VyY2VPcmlnaW4pLmdldCgpLCB0b1dLKGRlc3RpbmF0aW9uUHJv
dG9jb2wpLmdldCgpLCB0b1dLKGRlc3RpbmF0aW9uSG9zdCkuZ2V0KCksIGFsbG93RGVzdGluYXRp
b25TdWJkb21haW5zKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjpyZW1vdmVPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3Rp
bmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rl
c3RpbmF0aW9uU3ViZG9tYWlucykKK3ZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNz
QWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0
aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgV0tCdW5kbGVSZW1vdmVPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RFbnRyeShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIHRvV0so
c291cmNlT3JpZ2luKS5nZXQoKSwgdG9XSyhkZXN0aW5hdGlvblByb3RvY29sKS5nZXQoKSwgdG9X
SyhkZXN0aW5hdGlvbkhvc3QpLmdldCgpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiB9
CkluZGV4OiBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9XZWJLaXRUZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL1Rl
c3RSdW5uZXIuaAkocmV2aXNpb24gMjY1MDgxKQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9J
bmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHdvcmtpbmcgY29weSkKQEAgLTExNSw4ICsxMTUs
OCBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sKTsKICAg
ICB2b2lkIHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2wpOwogICAgIHZvaWQgc2V0
Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbCBlbmFibGVkLCBib29sIHBlcm1pc3NpdmUgPSBmYWxz
ZSk7Ci0gICAgdm9pZCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBz
b3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVm
IGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7Ci0gICAg
dm9pZCByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VP
cmlnaW4sIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3Rp
bmF0aW9uSG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCBh
ZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpT
U3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9z
dCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgdm9pZCByZW1vdmVPcmln
aW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5n
UmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVl
dEVuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRVc2VyU3R5bGVTaGVldExvY2F0aW9uKEpTU3Ry
aW5nUmVmKTsKICAgICB2b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29sKTsKSW5k
ZXg6IFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1
bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAkocmV2aXNpb24gMjY1MDgxKQorKysgVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9CaW5kaW5ncy9UZXN0UnVubmVyLmlkbAko
d29ya2luZyBjb3B5KQpAQCAtODgsOCArODgsOCBAQCBpbnRlcmZhY2UgVGVzdFJ1bm5lciB7CiAg
ICAgdm9pZCBzZXRQb3B1cEJsb2NraW5nRW5hYmxlZChib29sZWFuIHZhbHVlKTsKICAgICB2b2lk
IHNldEF1dGhvckFuZFVzZXJTdHlsZXNFbmFibGVkKGJvb2xlYW4gdmFsdWUpOwogICAgIHZvaWQg
c2V0Q3VzdG9tUG9saWN5RGVsZWdhdGUoYm9vbGVhbiBlbmFibGVkLCBib29sZWFuIHBlcm1pc3Np
dmUpOwotICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoRE9NU3RyaW5nIHNv
dXJjZU9yaWdpbiwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uUHJvdG9jb2wsIERPTVN0cmluZyBkZXN0
aW5hdGlvbkhvc3QsIGJvb2xlYW4gYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwotICAgIHZv
aWQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoRE9NU3RyaW5nIHNvdXJjZU9yaWdp
biwgRE9NU3RyaW5nIGRlc3RpbmF0aW9uUHJvdG9jb2wsIERPTVN0cmluZyBkZXN0aW5hdGlvbkhv
c3QsIGJvb2xlYW4gYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZvaWQgYWRkT3Jp
Z2luQWNjZXNzQWxsb3dMaXN0RW50cnkoRE9NU3RyaW5nIHNvdXJjZU9yaWdpbiwgRE9NU3RyaW5n
IGRlc3RpbmF0aW9uUHJvdG9jb2wsIERPTVN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2xlYW4g
YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNz
QWxsb3dMaXN0RW50cnkoRE9NU3RyaW5nIHNvdXJjZU9yaWdpbiwgRE9NU3RyaW5nIGRlc3RpbmF0
aW9uUHJvdG9jb2wsIERPTVN0cmluZyBkZXN0aW5hdGlvbkhvc3QsIGJvb2xlYW4gYWxsb3dEZXN0
aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKGJv
b2xlYW4gdmFsdWUpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihET01TdHJp
bmcgbG9jYXRpb24pOwogICAgIHZvaWQgc2V0U3BhdGlhbE5hdmlnYXRpb25FbmFibGVkKGJvb2xl
YW4gdmFsdWUpOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExh
eW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMjAtMDctMzAgIEFsZXgg
Q2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KKworICAgICAgICBVc2UgbW9y
ZSBpbmNsdXNpdmUgdGVybWlub2xvZ3kgaW4gVG9vbHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNDk3MQorCisgICAgICAgIFJldmlld2VkIGJ5IFNh
bSBXZWluaWcuCisKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9yZXBvcnQtYmxvY2tlZC1maWxlLXVyaS5waHA6CisgICAgICAgICogaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93ZWQuaHRt
bDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94
c2wtcmVkaXJlY3QtYWxsb3dlZDIuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3VyaXR5
L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtcmVkaXJlY3QtYmxvY2tlZC5odG1sOgorICAgICAg
ICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9jcm9zcy1vcmlnaW4teGhyLmh0
bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90
ZS13aGl0ZWxpc3RlZC1leHBlY3RlZC50eHQ6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0
eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sOgorICAgICAgICAqIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1hbGwuaHRtbDoKKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctZXhh
Y3QtbWF0Y2guaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdp
bi13aGl0ZWxpc3RpbmctaHR0cHMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5o
dG1sOgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlz
dGluZy1pcC1hZGRyZXNzZXMuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC5odG1sOgorICAgICAgICAqIGh0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1zdWJkb21haW5zLmh0bWw6CisK
IDIwMjAtMDctMjkgIEthdGUgQ2hlbmV5ICA8a2F0aGVyaW5lX2NoZW5leUBhcHBsZS5jb20+CiAK
ICAgICAgICAgTWlncmF0ZSBBcHAtQm91bmQgRG9tYWlucyBjb2RlIGZyb20gV2ViS2l0IEFkZGl0
aW9ucwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1m
cm9tLXJlbW90ZS1hbGxvdy1saXN0LWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLWFsbG93LWxp
c3QtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjUwODEpCShmcm9tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0
ZWQudHh0OjI2NTA4MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwt
aW1hZ2UtZnJvbS1yZW1vdGUtYWxsb3ctbGlzdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkK
QEAgLTAsMCArMSw0IEBACisKK1RoaXMgdGVzdCBpcyB0byBzZWUgaWYgYSByZW1vdGUgZmlsZSBj
YW4gaW5jbHVkZSBhIGxvY2FsIGltYWdlIHdoZW4gdGhlIGFjY2VzcyBoYXMgYmVlbiB3aGl0ZSBs
aXN0ZWQgdXNpbmcgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkuCisKK1Rlc3QgUGFzc2Vk
LiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3RlbHkuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLWFsbG93LWxpc3QtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwt
aW1hZ2UtZnJvbS1yZW1vdGUtYWxsb3ctbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2NTA4
MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1y
ZW1vdGUtYWxsb3ctbGlzdC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTEsNCArMSw0
IEBACiAKLVRoaXMgdGVzdCBpcyB0byBzZWUgaWYgYSByZW1vdGUgZmlsZSBjYW4gaW5jbHVkZSBh
IGxvY2FsIGltYWdlIHdoZW4gdGhlIGFjY2VzcyBoYXMgYmVlbiB3aGl0ZSBsaXN0ZWQgdXNpbmcg
YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkuCitUaGlzIHRlc3QgaXMgdG8gc2VlIGlmIGEg
cmVtb3RlIGZpbGUgY2FuIGluY2x1ZGUgYSBsb2NhbCBpbWFnZSB3aGVuIHRoZSBhY2Nlc3MgaGFz
IGJlZW4gd2hpdGUgbGlzdGVkIHVzaW5nIGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5Lgog
CiBUZXN0IFBhc3NlZC4gTG9jYWwgaW1hZ2UgbG9hZGVkIHJlbW90ZWx5LgpJbmRleDogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS1hbGxvdy1s
aXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9s
b2NhbC1pbWFnZS1mcm9tLXJlbW90ZS1hbGxvdy1saXN0Lmh0bWwJKHJldmlzaW9uIDI2NTA4MSkJ
KGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJl
bW90ZS13aGl0ZWxpc3RlZC5odG1sOjI2NTA4MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtYWxsb3ctbGlzdC5odG1sCSh3b3JraW5n
IGNvcHkpCkBAIC0wLDAgKzEsMzIgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8Ym9keT4K
KworPHNjcmlwdD4KKwordGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit0ZXN0UnVubmVyLmFkZE9y
aWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCdodHRwOi8vMTI3LjAuMC4xOjgwMDAnLCAnZmlsZScs
ICcnLCB0cnVlKTsKKwordmFyIGxvY2FsSW1hZ2VMb2NhdGlvbiA9IHRlc3RSdW5uZXIucGF0aFRv
TG9jYWxSZXNvdXJjZSgnZmlsZTovLy90bXAvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9yZXNvdXJjZXMvY29tcGFzcy5qcGcnKTsKKwordmFyIGxvY2FsSW1hZ2VFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Citsb2NhbEltYWdlRWxlbWVudC5zcmMgPSBsb2Nh
bEltYWdlTG9jYXRpb247Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxvY2FsSW1hZ2VFbGVt
ZW50KTsKKword2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgIHZhciByZXN1bHQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0Jyk7CisgICAgaWYgKGxvY2FsSW1hZ2VFbGVt
ZW50LmhlaWdodCA9PSAwICYmIGxvY2FsSW1hZ2VFbGVtZW50LndpZHRoID09IDApCisgICAgICAg
IHJlc3VsdC50ZXh0Q29udGVudCA9ICdUZXN0IEZhaWxlZDogTG9jYWwgaW1hZ2Ugbm90IGxvYWRl
ZCByZW1vdGVseS4nOworICAgIGVsc2UKKyAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gJ1Rl
c3QgUGFzc2VkLiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3RlbHkuJzsKK307CisKKzwvc2NyaXB0
PgorCis8cD5UaGlzIHRlc3QgaXMgdG8gc2VlIGlmIGEgcmVtb3RlIGZpbGUgY2FuIGluY2x1ZGUg
YSBsb2NhbCBpbWFnZSB3aGVuIHRoZQorYWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3RlZCB1c2lu
ZyBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KKworPHAgaWQ9cmVzdWx0PlRlc3QgaGFz
IG5vdCBydW4uCisKKzwvYm9keT4KKzwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtYWxsb3ctbGlzdC5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJv
bS1yZW1vdGUtYWxsb3ctbGlzdC5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLWFsbG93LWxpc3Qu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNSw3ICs1LDcgQEAKIDxzY3JpcHQ+CiAKIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eSgnaHR0cDovLzEyNy4wLjAuMTo4MDAwJywgJ2ZpbGUnLCAnJywgdHJ1ZSk7Cit0ZXN0UnVubmVy
LmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KCdodHRwOi8vMTI3LjAuMC4xOjgwMDAnLCAn
ZmlsZScsICcnLCB0cnVlKTsKIAogdmFyIGxvY2FsSW1hZ2VMb2NhdGlvbiA9IHRlc3RSdW5uZXIu
cGF0aFRvTG9jYWxSZXNvdXJjZSgnZmlsZTovLy90bXAvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9yZXNvdXJjZXMvY29tcGFzcy5qcGcnKTsKIApAQCAtMjQsNyArMjQsNyBAQCB3aW5k
b3cub25sb2FkID0gZnVuY3Rpb24oKSB7CiA8L3NjcmlwdD4KIAogPHA+VGhpcyB0ZXN0IGlzIHRv
IHNlZSBpZiBhIHJlbW90ZSBmaWxlIGNhbiBpbmNsdWRlIGEgbG9jYWwgaW1hZ2Ugd2hlbiB0aGUK
LWFjY2VzcyBoYXMgYmVlbiB3aGl0ZSBsaXN0ZWQgdXNpbmcgYWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkuCithY2Nlc3MgaGFzIGJlZW4gd2hpdGUgbGlzdGVkIHVzaW5nIGFkZE9yaWdpbkFj
Y2Vzc0FsbG93TGlzdEVudHJ5LgogCiA8cCBpZD1yZXN1bHQ+VGVzdCBoYXMgbm90IHJ1bi4KIApJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJl
bW90ZS13aGl0ZWxpc3RlZC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC1l
eHBlY3RlZC50eHQJKHJldmlzaW9uIDI2NTA4MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0
CShub25leGlzdGVudCkKQEAgLTEsNCArMCwwIEBACi0KLVRoaXMgdGVzdCBpcyB0byBzZWUgaWYg
YSByZW1vdGUgZmlsZSBjYW4gaW5jbHVkZSBhIGxvY2FsIGltYWdlIHdoZW4gdGhlIGFjY2VzcyBo
YXMgYmVlbiB3aGl0ZSBsaXN0ZWQgdXNpbmcgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnku
Ci0KLVRlc3QgUGFzc2VkLiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3RlbHkuCkluZGV4OiBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRl
bGlzdGVkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sCShyZXZpc2lvbiAyNjUw
ODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20t
cmVtb3RlLXdoaXRlbGlzdGVkLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSwzMiArMCwwIEBACi08
IURPQ1RZUEUgaHRtbD4KLTxodG1sPgotPGJvZHk+Ci0KLTxzY3JpcHQ+Ci0KLXRlc3RSdW5uZXIu
ZHVtcEFzVGV4dCgpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgn
aHR0cDovLzEyNy4wLjAuMTo4MDAwJywgJ2ZpbGUnLCAnJywgdHJ1ZSk7Ci0KLXZhciBsb2NhbElt
YWdlTG9jYXRpb24gPSB0ZXN0UnVubmVyLnBhdGhUb0xvY2FsUmVzb3VyY2UoJ2ZpbGU6Ly8vdG1w
L0xheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvcmVzb3VyY2VzL2NvbXBhc3MuanBnJyk7
Ci0KLXZhciBsb2NhbEltYWdlRWxlbWVudCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycp
OwotbG9jYWxJbWFnZUVsZW1lbnQuc3JjID0gbG9jYWxJbWFnZUxvY2F0aW9uOwotZG9jdW1lbnQu
Ym9keS5hcHBlbmRDaGlsZChsb2NhbEltYWdlRWxlbWVudCk7Ci0KLXdpbmRvdy5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKLSAgICB2YXIgcmVzdWx0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Jl
c3VsdCcpOwotICAgIGlmIChsb2NhbEltYWdlRWxlbWVudC5oZWlnaHQgPT0gMCAmJiBsb2NhbElt
YWdlRWxlbWVudC53aWR0aCA9PSAwKQotICAgICAgICByZXN1bHQudGV4dENvbnRlbnQgPSAnVGVz
dCBGYWlsZWQ6IExvY2FsIGltYWdlIG5vdCBsb2FkZWQgcmVtb3RlbHkuJzsKLSAgICBlbHNlCi0g
ICAgICAgIHJlc3VsdC50ZXh0Q29udGVudCA9ICdUZXN0IFBhc3NlZC4gTG9jYWwgaW1hZ2UgbG9h
ZGVkIHJlbW90ZWx5Lic7Ci19OwotCi08L3NjcmlwdD4KLQotPHA+VGhpcyB0ZXN0IGlzIHRvIHNl
ZSBpZiBhIHJlbW90ZSBmaWxlIGNhbiBpbmNsdWRlIGEgbG9jYWwgaW1hZ2Ugd2hlbiB0aGUKLWFj
Y2VzcyBoYXMgYmVlbiB3aGl0ZSBsaXN0ZWQgdXNpbmcgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkuCi0KLTxwIGlkPXJlc3VsdD5UZXN0IGhhcyBub3QgcnVuLgotCi08L2JvZHk+Ci08L2h0
bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0
eVBvbGljeS9yZXBvcnQtYmxvY2tlZC1maWxlLXVyaS5waHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVwb3J0LWJs
b2NrZWQtZmlsZS11cmkucGhwCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYmxvY2tlZC1maWxl
LXVyaS5waHAJKHdvcmtpbmcgY29weSkKQEAgLTUsNyArNSw3IEBACiA8aHRtbD4KIDxib2R5Pgog
ICAgIDxzY3JpcHQ+Ci0gICAgICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycsIHRydWUpOworICAgICAg
ICB0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KCdodHRwOi8vMTI3LjAu
MC4xOjgwMDAnLCAnZmlsZScsICcnLCB0cnVlKTsKICAgICAgICAgdmFyIGxvY2FsSW1hZ2VMb2Nh
dGlvbiA9IHRlc3RSdW5uZXIucGF0aFRvTG9jYWxSZXNvdXJjZSgnZmlsZTovLy90bXAvTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9yZXNvdXJjZXMvY29tcGFzcy5qcGcnKTsKIAogICAg
ICAgICB2YXIgbG9jYWxJbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcn
KTsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3hzbC1yZWRpcmVjdC1hbGxvd2VkMi5odG1sCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1yZWRpcmVj
dC1hbGxvd2VkMi5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtcmVkaXJlY3QtYWxsb3dlZDIu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVy
KSB7CiAgICAgdGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKIAogICAgIC8vIFRo
aXMgaXMgYSBjb250cml2ZWQgdGVzdC4gV2Ugbm9ybWFsbHkgZG8gbm90IGFsbG93IGNyb3NzLW9y
aWdpbiBYTUwgU3R5bGVzaGVldHMuCi0gICAgdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9jYWxob3N0Iiwg
ZmFsc2UpOworICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0
dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKIH0KIDwv
c2NyaXB0PgogPC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9j
b250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93ZWQuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGlj
eS94c2wtcmVkaXJlY3QtYWxsb3dlZC5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtcmVkaXJl
Y3QtYWxsb3dlZC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcsNyBAQCBpZiAod2luZG93
LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZyYW1lc0FzVGV4dCgpOwog
CiAgICAgLy8gVGhpcyBpcyBhIGNvbnRyaXZlZCB0ZXN0LiBXZSBub3JtYWxseSBkbyBub3QgYWxs
b3cgY3Jvc3Mtb3JpZ2luIFhNTCBTdHlsZXNoZWV0cy4KLSAgICB0ZXN0UnVubmVyLmFkZE9yaWdp
bkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJs
b2NhbGhvc3QiLCBmYWxzZSk7CisgICAgdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NBbGxvd0xp
c3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9jYWxob3N0IiwgZmFs
c2UpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtcmVkaXJlY3QtYmxvY2tlZC5odG1s
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3hzbC1yZWRpcmVjdC1ibG9ja2VkLmh0bWwJKHJldmlzaW9uIDI2NTA4MSkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3hzbC1yZWRpcmVjdC1ibG9ja2VkLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTcsNyArNyw3IEBA
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIuZHVtcENoaWxkRnJhbWVz
QXNUZXh0KCk7CiAKICAgICAvLyBUaGlzIGlzIGEgY29udHJpdmVkIHRlc3QuIFdlIG5vcm1hbGx5
IGRvIG5vdCBhbGxvdyBjcm9zcy1vcmlnaW4gWE1MIFN0eWxlc2hlZXRzLgotICAgIHRlc3RSdW5u
ZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIs
ICJodHRwIiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKKyAgICB0ZXN0UnVubmVyLmFkZE9yaWdpbkFj
Y2Vzc0FsbG93TGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2Nh
bGhvc3QiLCBmYWxzZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5kZXg6IExheW91dFRlc3Rz
L2h0dHAvdGVzdHMvc2VjdXJpdHkvaXNvbGF0ZWRXb3JsZC9jcm9zcy1vcmlnaW4teGhyLmh0bWwK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdv
cmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRtbAkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdvcmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtMjcsNyArMjcsNyBAQCB2YXIgdGVzdHMgPSBbCiAgICAgZnVu
Y3Rpb24oKSB7CiAgICAgICAgIGRlYnVnKCdYSFIgZnJvbSBpc29sYXRlZCB3b3JsZCB3aXRoIHNl
Y3VyaXR5IG9yaWdpbiB0aGF0IGlzIHdoaXRlbGlzdGVkIGZvciBYSFIgdGFyZ2V0Jyk7CiAgICAg
ICAgIHRlc3RSdW5uZXIuc2V0SXNvbGF0ZWRXb3JsZFNlY3VyaXR5T3JpZ2luKDIsICdjaHJvbWUt
ZXh0ZW5zaW9uOi8vMTIzJyk7Ci0gICAgICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkoJ2Nocm9tZS1leHRlbnNpb246Ly8xMjMnLCAnaHR0cCcsICdsb2NhbGhvc3Qn
LCBmYWxzZSk7CisgICAgICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50
cnkoJ2Nocm9tZS1leHRlbnNpb246Ly8xMjMnLCAnaHR0cCcsICdsb2NhbGhvc3QnLCBmYWxzZSk7
CiAgICAgICAgIHJ1blRlc3RJbldvcmxkKDIsICd4aHInKTsKICAgICB9LAogICAgIGZ1bmN0aW9u
KCkgewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3Mt
Y29udHJvbC1iYXNpYy1hbGxvdy1saXN0LXJlcXVlc3QtaGVhZGVycy1leHBlY3RlZC50eHQKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3Mt
Y29udHJvbC1iYXNpYy1hbGxvdy1saXN0LXJlcXVlc3QtaGVhZGVycy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDI2NTA4MSkJKGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVxdWVzdC1oZWFkZXJzLWV4cGVjdGVk
LnR4dDoyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Fj
Y2Vzcy1jb250cm9sLWJhc2ljLWFsbG93LWxpc3QtcmVxdWVzdC1oZWFkZXJzLWV4cGVjdGVkLnR4
dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDYgQEAKK0FjY2VwdDogKgorQWNjZXB0LUxhbmd1
YWdlOiBydQorQ29udGVudC1MYW5ndWFnZTogcnUKK0NvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgor
CisKClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtYWxsb3ctbGlzdC1yZXF1ZXN0LWhlYWRlcnMtZXhw
ZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX18KQWRkZWQ6IHN2bjplb2wtc3R5bGUKIyMgLTAsMCArMSAjIwor
bmF0aXZlClwgTm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKQWRkZWQ6IHN2bjptaW1lLXR5
cGUKIyMgLTAsMCArMSAjIwordGV4dC9wbGFpbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3Bl
cnR5CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1j
b250cm9sLWJhc2ljLWFsbG93LWxpc3QtcmVxdWVzdC1oZWFkZXJzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1i
YXNpYy1hbGxvdy1saXN0LXJlcXVlc3QtaGVhZGVycy5odG1sCShyZXZpc2lvbiAyNjUwODEpCShm
cm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wt
YmFzaWMtd2hpdGVsaXN0LXJlcXVlc3QtaGVhZGVycy5odG1sOjI2NTA4MSkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtYWxsb3ct
bGlzdC1yZXF1ZXN0LWhlYWRlcnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDI4IEBA
Cis8aHRtbD4KKzxib2R5PgorPHByZSBpZD0nY29uc29sZSc+PC9wcmU+Cis8c2NyaXB0IHR5cGU9
InRleHQvamF2YXNjcmlwdCI+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQorICAg
IHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgIlxuIikpOworICAgIH0KKworICAg
IHRyeSB7CisgICAgICAgIHZhciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CisgICAgICAgIHho
ci5vcGVuKCJQT1NUIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFzaWMtd2hpdGVsaXN0LXJlcXVlc3QtaGVhZGVycy5jZ2ki
LCBmYWxzZSk7CisgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLCAiKiIpOwor
ICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigiQWNjZXB0LUxhbmd1YWdlIiwgInJ1Iik7Cisg
ICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LUxhbmd1YWdlIiwgInJ1Iik7Cisg
ICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIp
OworICAgICAgICB4aHIuc2VuZCgiIik7CisgICAgCisgICAgICAgIGxvZyh4aHIucmVzcG9uc2VU
ZXh0KTsKKyAgICB9IGNhdGNoIChleCkgeworICAgICAgICBsb2coIlVuZXhwZWN0ZWQgZXhjZXB0
aW9uOiAiICsgZXgpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgoKUHJvcGVy
dHkgY2hhbmdlcyBvbjogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nl
c3MtY29udHJvbC1iYXNpYy1hbGxvdy1saXN0LXJlcXVlc3QtaGVhZGVycy5odG1sCl9fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X18KQWRkZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTAsMCArMSAjIwordGV4dC9odG1sClwgTm8gbmV3
bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtYWxsb3ctbGlzdC1yZXNwb25zZS1oZWFk
ZXJzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLWFsbG93LWxpc3QtcmVzcG9uc2UtaGVh
ZGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2NTA4MSkJKGZyb20gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVz
cG9uc2UtaGVhZGVycy1leHBlY3RlZC50eHQ6MjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy1hbGxvdy1saXN0LXJlc3Bv
bnNlLWhlYWRlcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsOSBAQAor
UEFTUzogUmVzcG9uc2UgaGVhZGVyIGNhY2hlLWNvbnRyb2wgYWxsb3dlZC4KK1BBU1M6IFJlc3Bv
bnNlIGhlYWRlciBjb250ZW50LWxhbmd1YWdlIGFsbG93ZWQuCitQQVNTOiBSZXNwb25zZSBoZWFk
ZXIgY29udGVudC10eXBlIGFsbG93ZWQuCitQQVNTOiBSZXNwb25zZSBoZWFkZXIgZXhwaXJlcyBh
bGxvd2VkLgorUEFTUzogUmVzcG9uc2UgaGVhZGVyIGxhc3QtbW9kaWZpZWQgYWxsb3dlZC4KK1BB
U1M6IFJlc3BvbnNlIGhlYWRlciBwcmFnbWEgYWxsb3dlZC4KK1BBU1M6IFJlc3BvbnNlIGhlYWRl
ciB4LXdlYmtpdCBkZW5pZWQuCitQQVNTOiBOb24td2hpdGVsaXN0ZWQgaGVhZGVycyBub3QgcGFz
c2VkIHRvIGdldEFsbFJlc3BvbnNlSGVhZGVycygpLgorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLWFsbG93LWxpc3QtcmVz
cG9uc2UtaGVhZGVycy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtYWxsb3ctbGlzdC1yZXNwb25zZS1o
ZWFkZXJzLmh0bWwJKHJldmlzaW9uIDI2NTA4MSkJKGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVzcG9uc2Ut
aGVhZGVycy5odG1sOjI2NTA4MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtYWxsb3ctbGlzdC1yZXNwb25zZS1oZWFkZXJzLmh0
bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1MiBAQAorPGh0bWw+Cis8Ym9keT4KKzxwcmUg
aWQ9J2NvbnNvbGUnPjwvcHJlPgorPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgorICAg
IGlmICh3aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7
CisKKyAgICBmdW5jdGlvbiBsb2cobWVzc2FnZSkKKyAgICB7CisgICAgICAgIGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5v
ZGUobWVzc2FnZSArICJcbiIpKTsKKyAgICB9CisKKyAgICB2YXIgeGhyOworCisgICAgZnVuY3Rp
b24gdGVzdEFsbG93ZWQobmFtZSkKKyAgICB7CisgICAgICAgIGlmICh4aHIuZ2V0UmVzcG9uc2VI
ZWFkZXIobmFtZSkpCisgICAgICAgICAgICBsb2coIlBBU1M6IFJlc3BvbnNlIGhlYWRlciAiICsg
bmFtZSArICIgYWxsb3dlZC4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgbG9nKCJGQUlM
OiBSZXNwb25zZSBoZWFkZXIgIiArIG5hbWUgKyAiIG5vdCBhbGxvd2VkLiIpOworICAgIH0KKwor
ICAgIGZ1bmN0aW9uIHRlc3REZW5pZWQobmFtZSkKKyAgICB7CisgICAgICAgIGlmICgheGhyLmdl
dFJlc3BvbnNlSGVhZGVyKG5hbWUpKQorICAgICAgICAgICAgbG9nKCJQQVNTOiBSZXNwb25zZSBo
ZWFkZXIgIiArIG5hbWUgKyAiIGRlbmllZC4iKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAg
bG9nKCJGQUlMOiBSZXNwb25zZSBoZWFkZXIgIiArIG5hbWUgKyAiIG5vdCBkZW5pZWQuIik7Cisg
ICAgfQorCisKKyAgICB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7CisgICAgeGhyLm9wZW4oIkdF
VCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vz
cy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1yZXNwb25zZS1oZWFkZXJzLmNnaSIsIGZhbHNlKTsK
KyAgICB4aHIuc2VuZCgpOworCisgICAgLy8gVGVzdCBnZXRSZXNwb25zZUhlYWRlcigpCisgICAg
dGVzdEFsbG93ZWQoImNhY2hlLWNvbnRyb2wiKTsKKyAgICB0ZXN0QWxsb3dlZCgiY29udGVudC1s
YW5ndWFnZSIpOworICAgIHRlc3RBbGxvd2VkKCJjb250ZW50LXR5cGUiKTsKKyAgICB0ZXN0QWxs
b3dlZCgiZXhwaXJlcyIpOworICAgIHRlc3RBbGxvd2VkKCJsYXN0LW1vZGlmaWVkIik7CisgICAg
dGVzdEFsbG93ZWQoInByYWdtYSIpOworICAgIHRlc3REZW5pZWQoIngtd2Via2l0Iik7CisKKyAg
ICAvLyBUZXN0IGdldEFsbFJlc3BvbnNlSGVhZGVycygpCisgICAgaWYgKCF4aHIuZ2V0QWxsUmVz
cG9uc2VIZWFkZXJzKCkubWF0Y2goImZvb2JhciIpKQorICAgICAgICBsb2coIlBBU1M6IE5vbi13
aGl0ZWxpc3RlZCBoZWFkZXJzIG5vdCBwYXNzZWQgdG8gZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCku
Iik7CisgICAgZWxzZQorICAgICAgICBsb2coIkZBSUw6IE5vbi13aGl0ZWxpc3RlZCBoZWFkZXJz
IHBhc3NlZCB0byBnZXRBbGxSZXNwb25zZUhlYWRlcnMoKS4iKTsKKzwvc2NyaXB0PgorPC9ib2R5
PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9h
Y2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVxdWVzdC1oZWFkZXJzLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Fj
Y2Vzcy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0
CShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0
ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsNiArMCwwIEBACi1BY2NlcHQ6ICoKLUFjY2VwdC1M
YW5ndWFnZTogcnUKLUNvbnRlbnQtTGFuZ3VhZ2U6IHJ1Ci1Db250ZW50LVR5cGU6IHRleHQvcGxh
aW4KLQotCgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1yZXF1ZXN0LWhlYWRlcnMt
ZXhwZWN0ZWQudHh0Cl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOmVvbC1zdHlsZQojIyAtMSArMCww
ICMjCi1uYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpEZWxldGVkOiBzdm46
bWltZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvcGxhaW4KXCBObyBuZXdsaW5lIGF0IGVuZCBv
ZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9h
Y2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVxdWVzdC1oZWFkZXJzLmh0bWwKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29u
dHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVxdWVzdC1oZWFkZXJzLmh0bWwJKHJldmlzaW9uIDI2NTA4
MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRy
b2wtYmFzaWMtd2hpdGVsaXN0LXJlcXVlc3QtaGVhZGVycy5odG1sCShub25leGlzdGVudCkKQEAg
LTEsMjggKzAsMCBAQAotPGh0bWw+Ci08Ym9keT4KLTxwcmUgaWQ9J2NvbnNvbGUnPjwvcHJlPgot
PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGlmICh3aW5kb3cudGVzdFJ1bm5l
cikKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLSAgICBmdW5jdGlvbiBsb2co
bWVzc2FnZSkKLSAgICB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xl
JykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJcbiIpKTsK
LSAgICB9Ci0KLSAgICB0cnkgewotICAgICAgICB2YXIgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0
OwotICAgICAgICB4aHIub3BlbigiUE9TVCIsICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1yZXF1ZXN0
LWhlYWRlcnMuY2dpIiwgZmFsc2UpOwotICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigiQWNj
ZXB0IiwgIioiKTsKLSAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoIkFjY2VwdC1MYW5ndWFn
ZSIsICJydSIpOwotICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1MYW5ndWFn
ZSIsICJydSIpOwotICAgICAgICB4aHIuc2V0UmVxdWVzdEhlYWRlcigiQ29udGVudC1UeXBlIiwg
InRleHQvcGxhaW4iKTsKLSAgICAgICAgeGhyLnNlbmQoIiIpOwotICAgIAotICAgICAgICBsb2co
eGhyLnJlc3BvbnNlVGV4dCk7Ci0gICAgfSBjYXRjaCAoZXgpIHsKLSAgICAgICAgbG9nKCJVbmV4
cGVjdGVkIGV4Y2VwdGlvbjogIiArIGV4KTsKLSAgICB9Ci08L3NjcmlwdD4KLTwvYm9keT4KLTwv
aHRtbD4KClByb3BlcnR5IGNoYW5nZXMgb246IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtd2hpdGVsaXN0LXJlcXVlc3QtaGVhZGVycy5o
dG1sCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX18KRGVsZXRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMSArMCwwICMjCi10ZXh0
L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3Qt
cmVzcG9uc2UtaGVhZGVycy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3Qt
cmVzcG9uc2UtaGVhZGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2NTA4MSkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtd2hp
dGVsaXN0LXJlc3BvbnNlLWhlYWRlcnMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEs
OSArMCwwIEBACi1QQVNTOiBSZXNwb25zZSBoZWFkZXIgY2FjaGUtY29udHJvbCBhbGxvd2VkLgot
UEFTUzogUmVzcG9uc2UgaGVhZGVyIGNvbnRlbnQtbGFuZ3VhZ2UgYWxsb3dlZC4KLVBBU1M6IFJl
c3BvbnNlIGhlYWRlciBjb250ZW50LXR5cGUgYWxsb3dlZC4KLVBBU1M6IFJlc3BvbnNlIGhlYWRl
ciBleHBpcmVzIGFsbG93ZWQuCi1QQVNTOiBSZXNwb25zZSBoZWFkZXIgbGFzdC1tb2RpZmllZCBh
bGxvd2VkLgotUEFTUzogUmVzcG9uc2UgaGVhZGVyIHByYWdtYSBhbGxvd2VkLgotUEFTUzogUmVz
cG9uc2UgaGVhZGVyIHgtd2Via2l0IGRlbmllZC4KLVBBU1M6IE5vbi13aGl0ZWxpc3RlZCBoZWFk
ZXJzIG5vdCBwYXNzZWQgdG8gZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkuCi0KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtd2hp
dGVsaXN0LXJlc3BvbnNlLWhlYWRlcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1y
ZXNwb25zZS1oZWFkZXJzLmh0bWwJKHJldmlzaW9uIDI2NTA4MSkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtd2hpdGVsaXN0LXJl
c3BvbnNlLWhlYWRlcnMuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDUyICswLDAgQEAKLTxodG1s
PgotPGJvZHk+Ci08cHJlIGlkPSdjb25zb2xlJz48L3ByZT4KLTxzY3JpcHQgdHlwZT0idGV4dC9q
YXZhc2NyaXB0Ij4KLSAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCi0gICAgICAgIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwotCi0gICAgZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCi0gICAgewotICAg
ICAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Ci0gICAgfQotCi0gICAgdmFyIHho
cjsKLQotICAgIGZ1bmN0aW9uIHRlc3RBbGxvd2VkKG5hbWUpCi0gICAgewotICAgICAgICBpZiAo
eGhyLmdldFJlc3BvbnNlSGVhZGVyKG5hbWUpKQotICAgICAgICAgICAgbG9nKCJQQVNTOiBSZXNw
b25zZSBoZWFkZXIgIiArIG5hbWUgKyAiIGFsbG93ZWQuIik7Ci0gICAgICAgIGVsc2UKLSAgICAg
ICAgICAgIGxvZygiRkFJTDogUmVzcG9uc2UgaGVhZGVyICIgKyBuYW1lICsgIiBub3QgYWxsb3dl
ZC4iKTsKLSAgICB9Ci0KLSAgICBmdW5jdGlvbiB0ZXN0RGVuaWVkKG5hbWUpCi0gICAgewotICAg
ICAgICBpZiAoIXhoci5nZXRSZXNwb25zZUhlYWRlcihuYW1lKSkKLSAgICAgICAgICAgIGxvZygi
UEFTUzogUmVzcG9uc2UgaGVhZGVyICIgKyBuYW1lICsgIiBkZW5pZWQuIik7Ci0gICAgICAgIGVs
c2UKLSAgICAgICAgICAgIGxvZygiRkFJTDogUmVzcG9uc2UgaGVhZGVyICIgKyBuYW1lICsgIiBu
b3QgZGVuaWVkLiIpOwotICAgIH0KLQotCi0gICAgeGhyID0gbmV3IFhNTEh0dHBSZXF1ZXN0Owot
ICAgIHhoci5vcGVuKCJHRVQiLCAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVzcG9uc2UtaGVhZGVy
cy5jZ2kiLCBmYWxzZSk7Ci0gICAgeGhyLnNlbmQoKTsKLQotICAgIC8vIFRlc3QgZ2V0UmVzcG9u
c2VIZWFkZXIoKQotICAgIHRlc3RBbGxvd2VkKCJjYWNoZS1jb250cm9sIik7Ci0gICAgdGVzdEFs
bG93ZWQoImNvbnRlbnQtbGFuZ3VhZ2UiKTsKLSAgICB0ZXN0QWxsb3dlZCgiY29udGVudC10eXBl
Iik7Ci0gICAgdGVzdEFsbG93ZWQoImV4cGlyZXMiKTsKLSAgICB0ZXN0QWxsb3dlZCgibGFzdC1t
b2RpZmllZCIpOwotICAgIHRlc3RBbGxvd2VkKCJwcmFnbWEiKTsKLSAgICB0ZXN0RGVuaWVkKCJ4
LXdlYmtpdCIpOwotCi0gICAgLy8gVGVzdCBnZXRBbGxSZXNwb25zZUhlYWRlcnMoKQotICAgIGlm
ICgheGhyLmdldEFsbFJlc3BvbnNlSGVhZGVycygpLm1hdGNoKCJmb29iYXIiKSkKLSAgICAgICAg
bG9nKCJQQVNTOiBOb24td2hpdGVsaXN0ZWQgaGVhZGVycyBub3QgcGFzc2VkIHRvIGdldEFsbFJl
c3BvbnNlSGVhZGVycygpLiIpOwotICAgIGVsc2UKLSAgICAgICAgbG9nKCJGQUlMOiBOb24td2hp
dGVsaXN0ZWQgaGVhZGVycyBwYXNzZWQgdG8gZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkuIik7Ci08
L3NjcmlwdD4KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtYWxsLWV4cGVjdGVkLnR4dAo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxv
dy1saXN0LWFsbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2NTA4MSkJKGZyb20gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWFsbC1leHBl
Y3RlZC50eHQ6MjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9vcmlnaW4tYWxsb3ctbGlzdC1hbGwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMTEgQEAKK1Rlc3RzIHRoZSBzcGVjaWFsIGNhc2Ugb2Ygd2hpdGVsaXN0aW5nIGFsbCBv
cmlnaW5zLgorCitUZXN0aW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL2dldC50eHQgKHN5bmMpCitQQVNTOiBQQVNTCitUZXN0aW5nOiBodHRwOi8vbG9j
YWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGFzeW5jKQorUEFT
UzogUEFTUworVGVzdGluZzogaHR0cDovLzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jl
c291cmNlcy9nZXQudHh0IChzeW5jKQorUEFTUzogUEFTUworVGVzdGluZzogaHR0cDovLzEyNy4w
LjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChhc3luYykKK1BBU1M6
IFBBU1MKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmln
aW4tYWxsb3ctbGlzdC1hbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWFsbC5odG1sCShyZXZpc2lvbiAy
NjUwODEpCShmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2lu
LXdoaXRlbGlzdGluZy1hbGwuaHRtbDoyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWFsbC5odG1sCSh3b3JraW5nIGNvcHkp
CkBAIC0wLDAgKzEsNTYgQEAKKzxwPlRlc3RzIHRoZSBzcGVjaWFsIGNhc2Ugb2Ygd2hpdGVsaXN0
aW5nIGFsbCBvcmlnaW5zLjwvcD4KKworPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0
PgordGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsK
K3Rlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly8xMjcuMC4w
LjE6ODAwMCIsICJodHRwIiwgIiIsIHRydWUpOwordGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiwgImh0dHAiLCAiIiwgdHJ1ZSk7
CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlk
KCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSAr
ICdcbicpKTsKK30KKworZnVuY3Rpb24gdGVzdERvbWFpbigpCit7CisgICAgdmFyIHVybCA9ICJo
dHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiOwor
ICAgIGxvZygiVGVzdGluZzogIiArIHVybCArICIgKHN5bmMpIik7CisgICAgdmFyIHJlcSA9IG5l
dyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKKyAg
ICB0cnkgeworICAgICAgICByZXEuc2VuZChudWxsKTsKKyAgICAgICAgbG9nKCJQQVNTOiAiICsg
cmVxLnJlc3BvbnNlVGV4dCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBsb2coIkZBSUw6
ICIgKyBlKTsKKyAgICB9CisKKyAgICBsb2coIlRlc3Rpbmc6ICIgKyB1cmwgKyAiIChhc3luYyki
KTsKKyAgICByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICByZXEub3BlbigiR0VUIiwg
dXJsLCB0cnVlKTsKKyAgICByZXEub25sb2FkID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGxvZygi
UEFTUzogIiArIHJlcS5yZXNwb25zZVRleHQpOworICAgICAgICB0ZXN0SVBBZGRyZXNzKCk7Cisg
ICAgfTsKKyAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICBsb2coIkZBSUw6
ICIgKyByZXEuc3RhdHVzKTsKKyAgICAgICAgdGVzdElQQWRkcmVzcygpOworICAgIH07CisgICAg
cmVxLnNlbmQobnVsbCk7Cit9CisKK2Z1bmN0aW9uIHRlc3RJUEFkZHJlc3MoKQoreworICAgIHZh
ciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKKyAgICBkb2N1bWVu
dC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CisgICAgaWZyYW1lLnNyYyA9ICJodHRwOi8vbG9j
YWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL29yaWdpbi13aGl0ZWxpc3Rpbmct
aXAtYWRkcmVzcy10ZXN0Lmh0bWwiOworICAgIHdpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNz
YWdlIiwgZnVuY3Rpb24oZSkgeworICAgICAgICBpZiAoZS5kYXRhID09ICJET05FIikKKyAgICAg
ICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgICAgICBlbHNlCisgICAgICAgICAg
ICBsb2coZS5kYXRhKTsKKyAgICB9LCBmYWxzZSk7Cit9CisKK3Rlc3REb21haW4oKTsKKzwvc2Ny
aXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4t
YWxsb3ctbGlzdC1hbGwuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWFsbC5odG1sCShyZXZpc2lvbiAyNjUw
ODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxv
dy1saXN0LWFsbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDggKzQsOCBAQAogPHNjcmlwdD4K
IHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci10
ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4x
OjgwMDAiLCAiaHR0cCIsICIiLCB0cnVlKTsKLXRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIsICJodHRwIiwgIiIsIHRydWUpOwor
dGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAu
MTo4MDAwIiwgImh0dHAiLCAiIiwgdHJ1ZSk7Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0Fs
bG93TGlzdEVudHJ5KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIiLCB0cnVlKTsK
IAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWV4YWN0LW1hdGNoLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29y
aWdpbi1hbGxvdy1saXN0LWV4YWN0LW1hdGNoLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY1MDgx
KQkoZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0
ZWxpc3RpbmctZXhhY3QtbWF0Y2gtZXhwZWN0ZWQudHh0OjI2NTA4MSkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtZXhhY3QtbWF0Y2gt
ZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAKK1Rlc3RzIHRoZSBi
ZWhhdmlvciBvZiB3aGl0ZWxpc3Rpbmcgb3JpZ2lucyB1c2luZyBleGFjdCBtYXRjaGluZy4KKwor
VGVzdGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9n
ZXQudHh0IChzeW5jKQorUEFTUzogUEFTUworVGVzdGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChhc3luYykKK1BBU1M6IFBBU1MKK1Rl
c3Rpbmc6IGh0dHA6Ly9sb0NBTGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0
LnR4dCAoc3luYykKK1BBU1M6IFBBU1MKK1Rlc3Rpbmc6IGh0dHA6Ly9sb0NBTGhvc3Q6ODAwMC94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoYXN5bmMpCitQQVNTOiBQQVNTCisKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxp
c3QtZXhhY3QtbWF0Y2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWV4YWN0LW1hdGNoLmh0bWwJKHJldmlz
aW9uIDI2NTA4MSkJKGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9v
cmlnaW4td2hpdGVsaXN0aW5nLWV4YWN0LW1hdGNoLmh0bWw6MjY1MDgxKQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1leGFjdC1tYXRj
aC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNjAgQEAKKzxwPlRlc3RzIHRoZSBiZWhh
dmlvciBvZiB3aGl0ZWxpc3Rpbmcgb3JpZ2lucyB1c2luZyBleGFjdCBtYXRjaGluZy48L3A+CisK
KzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KK3Rlc3RSdW5uZXIuZHVtcEFzVGV4
dCgpOwordGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFj
Y2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2Nh
bGhvc3QiLCBmYWxzZSk7CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50
LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4
dE5vZGUobWVzc2FnZSArICdcbicpKTsKK30KKworZnVuY3Rpb24gdGVzdCh1cmwsIGV4cGVjdFN1
Y2Nlc3MpCit7CisgICAgbG9nKCJUZXN0aW5nOiAiICsgdXJsICsgIiAoc3luYykiKTsKKyAgICB2
YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9wZW4oIkdFVCIsIHVybCwg
ZmFsc2UpOworICAgIHRyeSB7CisgICAgICAgIHJlcS5zZW5kKG51bGwpOworICAgICAgICBsb2co
KGV4cGVjdFN1Y2Nlc3MgPyAiUEFTUzogIiA6ICJGQUlMOiAiKSArIHJlcS5yZXNwb25zZVRleHQp
OworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIkZBSUw6
ICIgOiAiUEFTUzogIikgKyBlKTsKKyAgICB9CisKKyAgICBsb2coIlRlc3Rpbmc6ICIgKyB1cmwg
KyAiIChhc3luYykiKTsKKyAgICByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICByZXEu
b3BlbigiR0VUIiwgdXJsLCB0cnVlKTsKKyAgICByZXEub25sb2FkID0gZnVuY3Rpb24oKSB7Cisg
ICAgICAgIGxvZygoZXhwZWN0U3VjY2VzcyA/ICJQQVNTOiAiIDogIkZBSUw6ICIpICsgcmVxLnJl
c3BvbnNlVGV4dCk7CisgICAgICAgIG5leHRUZXN0KCk7CisgICAgfTsKKyAgICByZXEub25lcnJv
ciA9IGZ1bmN0aW9uKCkgeworICAgICAgICBsb2coKGV4cGVjdFN1Y2Nlc3MgPyAiRkFJTDogIiA6
ICJQQVNTOiAiKSArIHJlcS5zdGF0dXMpOworICAgICAgICBuZXh0VGVzdCgpOworICAgIH07Cisg
ICAgcmVxLnNlbmQobnVsbCk7Cit9CisKK3ZhciB0ZXN0cyA9IFsKKyAgICBbImh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCIsIHRydWVdLAorICAg
IFsiaHR0cDovL2xvQ0FMaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0
IiwgdHJ1ZV0KKyAgICAvLyBGSVhNRTogSXMgaXQgcG9zc2libGUgdG8gc2V0dXAgdGhlIGZvbGxv
d2luZyB0ZXN0cz8KKyAgICAvLyBbImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMS94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvZ2V0LnR4dCIsIGZhbHNlXSwKKyAgICAvLyBbImh0dHA6Ly9mb28ubG9jYWxo
b3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiLCBmYWxzZV0sCisgICAg
Ly8gWyJodHRwczovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQu
dHh0IiwgZmFsc2VdCitdOworCit2YXIgY3VycmVudFRlc3QgPSAwOworCitmdW5jdGlvbiBuZXh0
VGVzdCgpCit7CisgICAgaWYgKGN1cnJlbnRUZXN0IDwgdGVzdHMubGVuZ3RoKQorICAgICAgICB0
ZXN0LmFwcGx5KG51bGwsIHRlc3RzW2N1cnJlbnRUZXN0KytdKTsKKyAgICBlbHNlCisgICAgICAg
IHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworfQorCituZXh0VGVzdCgpOworPC9zY3JpcHQ+Cklu
ZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1s
aXN0LWV4YWN0LW1hdGNoLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1leGFjdC1tYXRjaC5odG1sCShyZXZp
c2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29y
aWdpbi1hbGxvdy1saXN0LWV4YWN0LW1hdGNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTQsNyAr
NCw3IEBACiA8c2NyaXB0PgogdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKLXRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnko
Imh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKK3Rl
c3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKIAogZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdp
bi1hbGxvdy1saXN0LWh0dHBzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWh0dHBzLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMjY1MDgxKQkoZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaHR0cHMtZXhwZWN0ZWQudHh0OjI2NTA4
MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93
LWxpc3QtaHR0cHMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMTEgQEAK
K0NPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxs
b3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitDT05TT0xFIE1FU1NBR0U6IFhN
TEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVx
dWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorQ09O
U09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2Vk
IGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9nZXQudHh0IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitUZXN0cyB0
aGF0IG9yaWdpbiB3aGl0ZWxpc3RpbmcgZm9yIGh0dHBzIGRvZXMgbm90IG1hdGNoIGh0dHAgVVJM
cy4KKworVGVzdGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9nZXQudHh0IChzeW5jKQorUEFTUzogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3JrIGVycm9y
IG9jY3VycmVkLgorVGVzdGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9nZXQudHh0IChhc3luYykKK1BBU1M6IDAKKwpJbmRleDogTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1odHRwcy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2lu
LWFsbG93LWxpc3QtaHR0cHMuaHRtbAkocmV2aXNpb24gMjY1MDgxKQkoZnJvbSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaHR0cHMuaHRt
bDoyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdp
bi1hbGxvdy1saXN0LWh0dHBzLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NyBAQAor
PHA+VGVzdHMgdGhhdCBvcmlnaW4gd2hpdGVsaXN0aW5nIGZvciBodHRwcyBkb2VzIG5vdCBtYXRj
aCBodHRwIFVSTHMuPC9wPgorCis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+Cit0
ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK3Rlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwordGVz
dFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4
MDAwIiwgImh0dHBzIiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKKworZnVuY3Rpb24gbG9nKG1lc3Nh
Z2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGls
ZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworfQorCitmdW5jdGlv
biB0ZXN0KHVybCwgZXhwZWN0U3VjY2VzcykKK3sKKyAgICBsb2coIlRlc3Rpbmc6ICIgKyB1cmwg
KyAiIChzeW5jKSIpOworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKKyAgICBy
ZXEub3BlbigiR0VUIiwgdXJsLCBmYWxzZSk7CisgICAgdHJ5IHsKKyAgICAgICAgcmVxLnNlbmQo
bnVsbCk7CisgICAgICAgIGxvZygoZXhwZWN0U3VjY2VzcyA/ICJQQVNTOiAiIDogIkZBSUw6ICIp
ICsgcmVxLnJlc3BvbnNlVGV4dCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBsb2coKGV4
cGVjdFN1Y2Nlc3MgPyAiRkFJTDogIiA6ICJQQVNTOiAiKSArIGUpOworICAgIH0KKworICAgIGxv
ZygiVGVzdGluZzogIiArIHVybCArICIgKGFzeW5jKSIpOworICAgIHJlcSA9IG5ldyBYTUxIdHRw
UmVxdWVzdCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOworICAgIHJlcS5vbmxv
YWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIlBBU1M6ICIg
OiAiRkFJTDogIikgKyByZXEucmVzcG9uc2VUZXh0KTsKKyAgICAgICAgbmV4dFRlc3QoKTsKKyAg
ICB9OworICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGxvZygoZXhwZWN0
U3VjY2VzcyA/ICJGQUlMOiAiIDogIlBBU1M6ICIpICsgcmVxLnN0YXR1cyk7CisgICAgICAgIG5l
eHRUZXN0KCk7CisgICAgfTsKKyAgICByZXEuc2VuZChudWxsKTsKK30KKwordmFyIHRlc3RzID0g
WworICAgIFsiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9n
ZXQudHh0IiwgZmFsc2VdCisgICAgLy8gRklYTUU6IElzIGl0IHBvc3NpYmxlIHRvIHNldHVwIHRo
ZSBmb2xsb3dpbmcgdGVzdHM/CisgICAgLy8gWyJodHRwczovL2xvY2FsaG9zdDo4MDAwL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IiwgdHJ1ZV0KK107CisKK3ZhciBjdXJyZW50VGVz
dCA9IDA7CisKK2Z1bmN0aW9uIG5leHRUZXN0KCkKK3sKKyAgICBpZiAoY3VycmVudFRlc3QgPCB0
ZXN0cy5sZW5ndGgpCisgICAgICAgIHRlc3QuYXBwbHkobnVsbCwgdGVzdHNbY3VycmVudFRlc3Qr
K10pOworICAgIGVsc2UKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisKK25l
eHRUZXN0KCk7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtaHR0cHMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWh0dHBz
Lmh0bWwJKHJldmlzaW9uIDI2NTA4MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtaHR0cHMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAt
NCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKIHRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RF
bnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHBzIiwgImxvY2FsaG9zdCIsIGZhbHNl
KTsKK3Rlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIsICJodHRwcyIsICJsb2NhbGhvc3QiLCBmYWxzZSk7CiAKIGZ1bmN0aW9uIGxv
ZyhtZXNzYWdlKQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9vcmlnaW4tYWxsb3ctbGlzdC1pcC1hZGRyZXNzZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxp
c3QtaXAtYWRkcmVzc2VzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY1MDgxKQkoZnJvbSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAt
YWRkcmVzc2VzLWV4cGVjdGVkLnR4dDoyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWlwLWFkZHJlc3Nlcy1leHBlY3RlZC50
eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw3IEBACitUZXN0cyBvcmlnaW4gd2hpdGVsaXN0
aW5nIHdpdGggSVAgYWRkcmVzc2VzLgorCitUZXN0aW5nOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKHN5bmMpCitQQVNTOiBQQVNTCitUZXN0
aW5nOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50
eHQgKGFzeW5jKQorUEFTUzogUEFTUworCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWlwLWFkZHJlc3Nlcy13aXRoLXN1YmRvbWFp
bnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlu
cy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2NTA4MSkJKGZyb20gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy13aXRo
LXN1YmRvbWFpbnMtZXhwZWN0ZWQudHh0OjI2NTA4MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtaXAtYWRkcmVzc2VzLXdpdGgtc3Vi
ZG9tYWlucy1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorQ09O
U09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovL2xvY2FsaG9zdDo4MDAwIGlzIG5vdCBhbGxvd2Vk
IGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0
cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovLzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9nZXQudHh0IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xF
IE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vbG9jYWxob3N0OjgwMDAgaXMgbm90IGFsbG93ZWQgYnkg
QWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVx
dWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vMTI3LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVz
b3VyY2VzL2dldC50eHQgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK1NwZWNpZnlpbmcg
dGhhdCBhbiBJUCBhZGRyZXNzIHNob3VsZCBtYXRjaCBzdWJkb21haW5zIGRvZXNuJ3QgbWFrZSBz
ZW5zZS4gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgaXQgZG9lc24ndCBkbyBhbnl0aGluZy4KKwor
VGVzdGluZzogaHR0cDovLzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9n
ZXQudHh0IChzeW5jKQorRkFJTDogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3JrIGVycm9yIG9jY3Vy
cmVkLgorVGVzdGluZzogaHR0cDovLzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9nZXQudHh0IChhc3luYykKK0ZBSUw6IDAKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1pcC1hZGRyZXNzZXMtd2l0aC1z
dWJkb21haW5zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1pcC1hZGRyZXNzZXMtd2l0aC1zdWJkb21haW5z
Lmh0bWwJKHJldmlzaW9uIDI2NTA4MSkJKGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy13aXRoLXN1YmRvbWFp
bnMuaHRtbDoyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L29yaWdpbi1hbGxvdy1saXN0LWlwLWFkZHJlc3Nlcy13aXRoLXN1YmRvbWFpbnMuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtMCwwICsxLDIyIEBACis8cD5TcGVjaWZ5aW5nIHRoYXQgYW4gSVAgYWRk
cmVzcyBzaG91bGQgbWF0Y2ggc3ViZG9tYWlucyBkb2Vzbid0IG1ha2Ugc2Vuc2UuIFRoaXMgdGVz
dCB2ZXJpZmllcyB0aGF0IGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcuPC9wPgorPHByZSBpZD0iY29u
c29sZSI+PC9wcmU+Cis8c2NyaXB0PgordGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit0ZXN0UnVu
bmVyLndhaXRVbnRpbERvbmUoKTsKK3Rlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIsICJodHRwIiwgIiouMC4wLjEiLCB0cnVlKTsK
KworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQo
J2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsg
J1xuJykpOworfQorCit2YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1l
Iik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7CitpZnJhbWUuc3JjID0gImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvb3JpZ2luLXdoaXRl
bGlzdGluZy1pcC1hZGRyZXNzLXRlc3QuaHRtbCI7Cit3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigi
bWVzc2FnZSIsIGZ1bmN0aW9uKGUpIHsKKyAgICBpZiAoZS5kYXRhID09ICJET05FIikKKyAgICAg
ICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgZWxzZQorICAgICAgICBsb2coZS5kYXRh
KTsKK30sIGZhbHNlKTsKKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1pcC1hZGRyZXNzZXMtd2l0aC1zdWJkb21h
aW5zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1pcC1hZGRyZXNzZXMtd2l0aC1zdWJkb21haW5zLmh0bWwJ
KHJldmlzaW9uIDI2NTA4MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3Qvb3JpZ2luLWFsbG93LWxpc3QtaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5odG1sCSh3
b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMsNyBAQAogPHNjcmlwdD4KIHRlc3RSdW5uZXIuZHVtcEFz
VGV4dCgpOwogdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci10ZXN0UnVubmVyLmFkZE9yaWdp
bkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIq
LjAuMC4xIiwgdHJ1ZSk7Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5
KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIqLjAuMC4xIiwgdHJ1ZSk7CiAKIGZ1
bmN0aW9uIGxvZyhtZXNzYWdlKQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1pcC1hZGRyZXNzZXMuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1s
aXN0LWlwLWFkZHJlc3Nlcy5odG1sCShyZXZpc2lvbiAyNjUwODEpCShmcm9tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNz
ZXMuaHRtbDoyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L29yaWdpbi1hbGxvdy1saXN0LWlwLWFkZHJlc3Nlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0w
LDAgKzEsMjIgQEAKKzxwPlRlc3RzIG9yaWdpbiB3aGl0ZWxpc3Rpbmcgd2l0aCBJUCBhZGRyZXNz
ZXMuPC9wPgorPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0PgordGVzdFJ1bm5lci5k
dW1wQXNUZXh0KCk7Cit0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK3Rlc3RSdW5uZXIuYWRk
T3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIsICJodHRw
IiwgIjEyNy4wLjAuMSIsIGZhbHNlKTsKKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7CisgICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworfQorCit2YXIgaWZyYW1lID0gZG9jdW1l
bnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Citkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlm
cmFtZSk7CitpZnJhbWUuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzLXRlc3QuaHRtbCI7Cit3
aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGUpIHsKKyAgICBpZiAo
ZS5kYXRhID09ICJET05FIikKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAg
ZWxzZQorICAgICAgICBsb2coZS5kYXRhKTsKK30sIGZhbHNlKTsKKzwvc2NyaXB0PgpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1p
cC1hZGRyZXNzZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWlwLWFkZHJlc3Nlcy5odG1sCShyZXZpc2lv
biAyNjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdp
bi1hbGxvdy1saXN0LWlwLWFkZHJlc3Nlcy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0zLDcgKzMs
NyBAQAogPHNjcmlwdD4KIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Ci10ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJo
dHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIxMjcuMC4wLjEiLCBmYWxzZSk7Cit0ZXN0
UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KCJodHRwOi8vbG9jYWxob3N0Ojgw
MDAiLCAiaHR0cCIsICIxMjcuMC4wLjEiLCBmYWxzZSk7CiAKIGZ1bmN0aW9uIGxvZyhtZXNzYWdl
KQogewpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4t
YWxsb3ctbGlzdC1yZW1vdmFsLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LXJlbW92YWwtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyNjUwODEpCShmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLWV4cGVjdGVkLnR4dDoy
NjUwODEpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1h
bGxvdy1saXN0LXJlbW92YWwtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEs
NTUgQEAKK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBu
b3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitDT05TT0xFIE1FU1NB
R0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tz
LgorQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBh
bGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FHRTog
WE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHBy
ZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitD
T05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93
ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQ09OU09MRSBNRVNTQUdFOiBYTUxI
dHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzL2dldC50eHQgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK0NPTlNP
TEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBi
eSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBS
ZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvZ2V0LnR4dCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorQ09OU09MRSBN
RVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFj
Y2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVl
c3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9nZXQudHh0IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xFIE1FU1NB
R0U6IE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNz
LUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBj
YW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2Vz
L2dldC50eHQgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK0NPTlNPTEUgTUVTU0FHRTog
T3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4uCitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0
LnR4dCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgorQ09OU09MRSBNRVNTQUdFOiBPcmln
aW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9s
LUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxv
YWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0
IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitUZXN0cyB0aGUgYmVoYXZpb3Igb2Ygd2hp
dGVsaXN0aW5nIG9yaWdpbnMgYW5kIHJlbW92aW5nIHRoZW0gbGF0ZXIuCisKK1Rlc3Rpbmc6IHNv
dXJjZSBvcmlnaW46IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBkZXN0aW5hdGlvbiBvcmlnaW46IGh0
dHA6bG9jYWxob3N0IAorTG9hZGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy9nZXQudHh0IChleHBlY3RpbmcgTkVUV09SS19FUlIpCitQQVNTOiBOZXR3
b3JrRXJyb3I6ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCitMb2FkaW5nOiBodHRwOi8vbG9j
YWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBQ
QVNTKQorUEFTUzogUEFTUworTG9hZGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHBy
ZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChleHBlY3RpbmcgTkVUV09SS19FUlIpCitQQVNTOiBO
ZXR3b3JrRXJyb3I6ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCisKKworVGVzdGluZzogc291
cmNlIG9yaWdpbjogaHR0cDovLzEyNy4wLjAuMTo4MDAwIGRlc3RpbmF0aW9uIG9yaWdpbjogaHR0
cDpsb2NhbGhvc3QgYWxsb3dpbmcgc3ViZG9tYWlucworTG9hZGluZzogaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChleHBlY3RpbmcgTkVUV09S
S19FUlIpCitQQVNTOiBOZXR3b3JrRXJyb3I6ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCitM
b2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dl
dC50eHQgKGV4cGVjdGluZyBQQVNTKQorUEFTUzogUEFTUworTG9hZGluZzogaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChleHBlY3RpbmcgTkVU
V09SS19FUlIpCitQQVNTOiBOZXR3b3JrRXJyb3I6ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQu
CisKKworVGVzdGluZzogc291cmNlIG9yaWdpbjogaHR0cDovLzEyNy4wLjAuMTo4MDAwIGRlc3Rp
bmF0aW9uIG9yaWdpbjogaFR0UDpMb0NhTGhPc1QgYWxsb3dpbmcgc3ViZG9tYWlucworTG9hZGlu
ZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0
IChleHBlY3RpbmcgTkVUV09SS19FUlIpCitQQVNTOiBOZXR3b3JrRXJyb3I6ICBBIG5ldHdvcmsg
ZXJyb3Igb2NjdXJyZWQuCitMb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBQQVNTKQorUEFTUzogUEFTUworTG9h
ZGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQu
dHh0IChleHBlY3RpbmcgTkVUV09SS19FUlIpCitQQVNTOiBOZXR3b3JrRXJyb3I6ICBBIG5ldHdv
cmsgZXJyb3Igb2NjdXJyZWQuCisKKworVGVzdGluZzogc291cmNlIG9yaWdpbjogaHR0cDovLzEy
Ny4wLjAuMTo4MDAwIGRlc3RpbmF0aW9uIG9yaWdpbjogaHR0cDogYWxsb3dpbmcgc3ViZG9tYWlu
cworTG9hZGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNl
cy9nZXQudHh0IChleHBlY3RpbmcgTkVUV09SS19FUlIpCitQQVNTOiBOZXR3b3JrRXJyb3I6ICBB
IG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCitMb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBQQVNTKQorUEFTUzog
UEFTUworTG9hZGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9nZXQudHh0IChleHBlY3RpbmcgTkVUV09SS19FUlIpCitQQVNTOiBOZXR3b3JrRXJyb3I6
ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCisKKworCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LXJlbW92YWwuaHRtbAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1h
bGxvdy1saXN0LXJlbW92YWwuaHRtbAkocmV2aXNpb24gMjY1MDgxKQkoZnJvbSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC5o
dG1sOjI2NTA4MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLWFsbG93LWxpc3QtcmVtb3ZhbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTEg
QEAKKzxwPlRlc3RzIHRoZSBiZWhhdmlvciBvZiB3aGl0ZWxpc3Rpbmcgb3JpZ2lucyBhbmQgcmVt
b3ZpbmcgdGhlbSBsYXRlci48L3A+CisKKzxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgorPHNjcmlw
dD4KK3Rlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sK
KyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Cit9CisKK2Z1bmN0aW9uIGxvYWRV
UkwodXJsLCBleHBlY3RTdWNjZXNzKQoreworICAgIGxvZygiTG9hZGluZzogIiArIHVybCArICIg
IiArIChleHBlY3RTdWNjZXNzID8gIihleHBlY3RpbmcgUEFTUykiIDogIihleHBlY3RpbmcgTkVU
V09SS19FUlIpIikpOworCisgICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOworICAg
IHJlcS5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKKyAgICB0cnkgeworICAgICAgICByZXEuc2Vu
ZChudWxsKTsKKyAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIlBBU1M6ICIgOiAiRkFJTDog
IikgKyByZXEucmVzcG9uc2VUZXh0KTsKKyAgICB9IGNhdGNoIChlKSB7CisgICAgICAgIGxvZygo
ZXhwZWN0U3VjY2VzcyA/ICJGQUlMOiAiIDogIlBBU1M6ICIpICsgZSk7CisgICAgfQorfQorCitm
dW5jdGlvbiB0ZXN0KG9yaWdpbiwgcHJvdG9jb2wsIGhvc3QsIHN1YmRvbWFpbnMsIHVybCkKK3sK
KyAgICBsb2coIlRlc3Rpbmc6IHNvdXJjZSBvcmlnaW46ICIgKyBvcmlnaW4gKyAiIGRlc3RpbmF0
aW9uIG9yaWdpbjogIiArIHByb3RvY29sICsgIjoiICsgaG9zdCArICIgIiArIChzdWJkb21haW5z
ID8gImFsbG93aW5nIHN1YmRvbWFpbnMiIDogIiIpKTsKKworICAgIGxvYWRVUkwodXJsLCBmYWxz
ZSk7CisKKyAgICB0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KG9yaWdp
biwgcHJvdG9jb2wudG9Mb3dlckNhc2UoKSwgaG9zdC50b0xvd2VyQ2FzZSgpLCBzdWJkb21haW5z
KTsKKworICAgIGxvYWRVUkwodXJsLCB0cnVlKTsKKworICAgIHRlc3RSdW5uZXIucmVtb3ZlT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnkob3JpZ2luLCBwcm90b2NvbCwgaG9zdCwgc3ViZG9tYWlu
cyk7CisKKyAgICBsb2FkVVJMKHVybCwgZmFsc2UpOworCisgICAgbG9nKCJcbiIpOworfQorCit2
YXIgdGVzdHMgPSBbCisgICAgWyJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2Nh
bGhvc3QiLCBmYWxzZSwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvZ2V0LnR4dCJdLAorICAgIFsiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAi
bG9jYWxob3N0IiwgdHJ1ZSwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvZ2V0LnR4dCJdLAorICAgIFsiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImhUdFAi
LCAiTG9DYUxoT3NUIiwgdHJ1ZSwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvZ2V0LnR4dCJdLAorICAgIFsiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0
dHAiLCAiIiwgdHJ1ZSwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvZ2V0LnR4dCJdCitdOworCit0ZXN0cy5mb3JFYWNoKGZ1bmN0aW9uKHRlc3RFbnRyeSkg
eyB0ZXN0LmFwcGx5KG51bGwsIHRlc3RFbnRyeSkgfSk7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtcmVtb3Zh
bC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3Qvb3JpZ2luLWFsbG93LWxpc3QtcmVtb3ZhbC5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LXJl
bW92YWwuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5LDExIEBAIGZ1bmN0aW9uIHRl
c3Qob3JpZ2luLCBwcm90b2NvbCwgaG9zdCwgc3UKIAogICAgIGxvYWRVUkwodXJsLCBmYWxzZSk7
CiAKLSAgICB0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KG9yaWdpbiwg
cHJvdG9jb2wudG9Mb3dlckNhc2UoKSwgaG9zdC50b0xvd2VyQ2FzZSgpLCBzdWJkb21haW5zKTsK
KyAgICB0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KG9yaWdpbiwgcHJv
dG9jb2wudG9Mb3dlckNhc2UoKSwgaG9zdC50b0xvd2VyQ2FzZSgpLCBzdWJkb21haW5zKTsKIAog
ICAgIGxvYWRVUkwodXJsLCB0cnVlKTsKIAotICAgIHRlc3RSdW5uZXIucmVtb3ZlT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkob3JpZ2luLCBwcm90b2NvbCwgaG9zdCwgc3ViZG9tYWlucyk7Cisg
ICAgdGVzdFJ1bm5lci5yZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShvcmlnaW4sIHBy
b3RvY29sLCBob3N0LCBzdWJkb21haW5zKTsKIAogICAgIGxvYWRVUkwodXJsLCBmYWxzZSk7CiAK
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93
LWxpc3Qtc3ViZG9tYWlucy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1zdWJkb21haW5zLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMjY1MDgxKQkoZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmctc3ViZG9tYWlucy1leHBlY3RlZC50
eHQ6MjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmln
aW4tYWxsb3ctbGlzdC1zdWJkb21haW5zLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAt
MCwwICsxLDcgQEAKK1Rlc3RzIG9yaWdpbiB3aGl0ZWxpc3Rpbmcgc3ViZG9tYWluIGJlaGF2aW9y
LgorCitUZXN0aW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3Vy
Y2VzL2dldC50eHQgKHN5bmMpCitQQVNTOiBQQVNTCitUZXN0aW5nOiBodHRwOi8vbG9jYWxob3N0
OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGFzeW5jKQorUEFTUzogUEFT
UworCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1h
bGxvdy1saXN0LXN1YmRvbWFpbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LXN1YmRvbWFpbnMuaHRtbAko
cmV2aXNpb24gMjY1MDgxKQkoZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmctc3ViZG9tYWlucy5odG1sOjI2NTA4MSkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3Qtc3ViZG9t
YWlucy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNTkgQEAKKzxwPlRlc3RzIG9yaWdp
biB3aGl0ZWxpc3Rpbmcgc3ViZG9tYWluIGJlaGF2aW9yLjwvcD4KKworPHByZSBpZD0iY29uc29s
ZSI+PC9wcmU+Cis8c2NyaXB0PgordGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit0ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKK3Rlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50
cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIHRydWUpOwor
CitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgn
Y29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAn
XG4nKSk7Cit9CisKK2Z1bmN0aW9uIHRlc3QodXJsLCBleHBlY3RTdWNjZXNzKQoreworICAgIGxv
ZygiVGVzdGluZzogIiArIHVybCArICIgKHN5bmMpIik7CisgICAgdmFyIHJlcSA9IG5ldyBYTUxI
dHRwUmVxdWVzdCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKKyAgICB0cnkg
eworICAgICAgICByZXEuc2VuZChudWxsKTsKKyAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8g
IlBBU1M6ICIgOiAiRkFJTDogIikgKyByZXEucmVzcG9uc2VUZXh0KTsKKyAgICB9IGNhdGNoIChl
KSB7CisgICAgICAgIGxvZygoZXhwZWN0U3VjY2VzcyA/ICJGQUlMOiAiIDogIlBBU1M6ICIpICsg
ZSk7CisgICAgfQorCisgICAgbG9nKCJUZXN0aW5nOiAiICsgdXJsICsgIiAoYXN5bmMpIik7Cisg
ICAgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9wZW4oIkdFVCIsIHVybCwg
dHJ1ZSk7CisgICAgcmVxLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICBsb2coKGV4cGVj
dFN1Y2Nlc3MgPyAiUEFTUzogIiA6ICJGQUlMOiAiKSArIHJlcS5yZXNwb25zZVRleHQpOworICAg
ICAgICBuZXh0VGVzdCgpOworICAgIH07CisgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsK
KyAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIkZBSUw6ICIgOiAiUEFTUzogIikgKyByZXEu
c3RhdHVzKTsKKyAgICAgICAgbmV4dFRlc3QoKTsKKyAgICB9OworICAgIHJlcS5zZW5kKG51bGwp
OworfQorCit2YXIgdGVzdHMgPSBbCisgICAgWyJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiLCB0cnVlXQorICAgIC8vIEZJWE1FOiBJcyBpdCBw
b3NzaWJsZSB0byBzZXR1cCB0aGUgZm9sbG93aW5nIHRlc3RzPworICAgIC8vIFsiaHR0cDovL2Zv
by5sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCIsIHRydWVd
CisgICAgLy8gWyJodHRwOi8vYmFyLmZvby5sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvZ2V0LnR4dCIsIHRydWVdCisgICAgLy8gWyJodHRwOi8vZm9vbG9jYWxob3N0Ojgw
MDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiLCBmYWxzZV0KK107CisKK3ZhciBj
dXJyZW50VGVzdCA9IDA7CisKK2Z1bmN0aW9uIG5leHRUZXN0KCkKK3sKKyAgICBpZiAoY3VycmVu
dFRlc3QgPCB0ZXN0cy5sZW5ndGgpCisgICAgICAgIHRlc3QuYXBwbHkobnVsbCwgdGVzdHNbY3Vy
cmVudFRlc3QrK10pOworICAgIGVsc2UKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
Cit9CisKK25leHRUZXN0KCk7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3Qtc3ViZG9tYWlucy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFs
bG93LWxpc3Qtc3ViZG9tYWlucy5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LXN1YmRvbWFpbnMu
aHRtbAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5h
ZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0
dHAiLCAibG9jYWxob3N0IiwgdHJ1ZSk7Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93
TGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2NhbGhvc3QiLCB0
cnVlKTsKIAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctYWxsLWV4cGVjdGVkLnR4
dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29y
aWdpbi13aGl0ZWxpc3RpbmctYWxsLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY1MDgxKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5n
LWFsbC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMSArMCwwIEBACi1UZXN0cyB0
aGUgc3BlY2lhbCBjYXNlIG9mIHdoaXRlbGlzdGluZyBhbGwgb3JpZ2lucy4KLQotVGVzdGluZzog
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChz
eW5jKQotUEFTUzogUEFTUwotVGVzdGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHBy
ZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChhc3luYykKLVBBU1M6IFBBU1MKLVRlc3Rpbmc6IGh0
dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoc3lu
YykKLVBBU1M6IFBBU1MKLVRlc3Rpbmc6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWxodHRwcmVx
dWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoYXN5bmMpCi1QQVNTOiBQQVNTCi0KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1hbGwu
aHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L29yaWdpbi13aGl0ZWxpc3RpbmctYWxsLmh0bWwJKHJldmlzaW9uIDI2NTA4MSkKKysrIExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1hbGwu
aHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDU2ICswLDAgQEAKLTxwPlRlc3RzIHRoZSBzcGVjaWFs
IGNhc2Ugb2Ygd2hpdGVsaXN0aW5nIGFsbCBvcmlnaW5zLjwvcD4KLQotPHByZSBpZD0iY29uc29s
ZSI+PC9wcmU+Ci08c2NyaXB0PgotdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci10ZXN0UnVubmVy
LndhaXRVbnRpbERvbmUoKTsKLXRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50
cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwgIiIsIHRydWUpOwotdGVzdFJ1bm5l
ci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiwg
Imh0dHAiLCAiIiwgdHJ1ZSk7Ci0KLWZ1bmN0aW9uIGxvZyhtZXNzYWdlKQotewotICAgIGRvY3Vt
ZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRl
VGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKLX0KLQotZnVuY3Rpb24gdGVzdERvbWFpbigpCi17
Ci0gICAgdmFyIHVybCA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVz
b3VyY2VzL2dldC50eHQiOwotICAgIGxvZygiVGVzdGluZzogIiArIHVybCArICIgKHN5bmMpIik7
Ci0gICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHJlcS5vcGVuKCJHRVQi
LCB1cmwsIGZhbHNlKTsKLSAgICB0cnkgewotICAgICAgICByZXEuc2VuZChudWxsKTsKLSAgICAg
ICAgbG9nKCJQQVNTOiAiICsgcmVxLnJlc3BvbnNlVGV4dCk7Ci0gICAgfSBjYXRjaCAoZSkgewot
ICAgICAgICBsb2coIkZBSUw6ICIgKyBlKTsKLSAgICB9Ci0KLSAgICBsb2coIlRlc3Rpbmc6ICIg
KyB1cmwgKyAiIChhc3luYykiKTsKLSAgICByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAg
ICByZXEub3BlbigiR0VUIiwgdXJsLCB0cnVlKTsKLSAgICByZXEub25sb2FkID0gZnVuY3Rpb24o
KSB7Ci0gICAgICAgIGxvZygiUEFTUzogIiArIHJlcS5yZXNwb25zZVRleHQpOwotICAgICAgICB0
ZXN0SVBBZGRyZXNzKCk7Ci0gICAgfTsKLSAgICByZXEub25lcnJvciA9IGZ1bmN0aW9uKCkgewot
ICAgICAgICBsb2coIkZBSUw6ICIgKyByZXEuc3RhdHVzKTsKLSAgICAgICAgdGVzdElQQWRkcmVz
cygpOwotICAgIH07Ci0gICAgcmVxLnNlbmQobnVsbCk7Ci19Ci0KLWZ1bmN0aW9uIHRlc3RJUEFk
ZHJlc3MoKQotewotICAgIHZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKLSAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci0gICAgaWZyYW1l
LnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL29y
aWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzcy10ZXN0Lmh0bWwiOwotICAgIHdpbmRvdy5hZGRF
dmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZSkgewotICAgICAgICBpZiAoZS5kYXRh
ID09ICJET05FIikKLSAgICAgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOwotICAgICAg
ICBlbHNlCi0gICAgICAgICAgICBsb2coZS5kYXRhKTsKLSAgICB9LCBmYWxzZSk7Ci19Ci0KLXRl
c3REb21haW4oKTsKLTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWV4YWN0LW1hdGNoLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdp
bi13aGl0ZWxpc3RpbmctZXhhY3QtbWF0Y2gtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjUwODEp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxp
c3RpbmctZXhhY3QtbWF0Y2gtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsMTEgKzAs
MCBAQAotVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHdoaXRlbGlzdGluZyBvcmlnaW5zIHVzaW5nIGV4
YWN0IG1hdGNoaW5nLgotCi1UZXN0aW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKHN5bmMpCi1QQVNTOiBQQVNTCi1UZXN0aW5nOiBodHRw
Oi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGFzeW5j
KQotUEFTUzogUEFTUwotVGVzdGluZzogaHR0cDovL2xvQ0FMaG9zdDo4MDAwL3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy9nZXQudHh0IChzeW5jKQotUEFTUzogUEFTUwotVGVzdGluZzogaHR0cDov
L2xvQ0FMaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChhc3luYykK
LVBBU1M6IFBBU1MKLQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9vcmlnaW4td2hpdGVsaXN0aW5nLWV4YWN0LW1hdGNoLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWV4
YWN0LW1hdGNoLmh0bWwJKHJldmlzaW9uIDI2NTA4MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1leGFjdC1tYXRjaC5odG1sCShu
b25leGlzdGVudCkKQEAgLTEsNjAgKzAsMCBAQAotPHA+VGVzdHMgdGhlIGJlaGF2aW9yIG9mIHdo
aXRlbGlzdGluZyBvcmlnaW5zIHVzaW5nIGV4YWN0IG1hdGNoaW5nLjwvcD4KLQotPHByZSBpZD0i
Y29uc29sZSI+PC9wcmU+Ci08c2NyaXB0PgotdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci10ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLXRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZh
bHNlKTsKLQotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVu
dEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNz
YWdlICsgJ1xuJykpOwotfQotCi1mdW5jdGlvbiB0ZXN0KHVybCwgZXhwZWN0U3VjY2VzcykKLXsK
LSAgICBsb2coIlRlc3Rpbmc6ICIgKyB1cmwgKyAiIChzeW5jKSIpOwotICAgIHZhciByZXEgPSBu
ZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICByZXEub3BlbigiR0VUIiwgdXJsLCBmYWxzZSk7Ci0g
ICAgdHJ5IHsKLSAgICAgICAgcmVxLnNlbmQobnVsbCk7Ci0gICAgICAgIGxvZygoZXhwZWN0U3Vj
Y2VzcyA/ICJQQVNTOiAiIDogIkZBSUw6ICIpICsgcmVxLnJlc3BvbnNlVGV4dCk7Ci0gICAgfSBj
YXRjaCAoZSkgewotICAgICAgICBsb2coKGV4cGVjdFN1Y2Nlc3MgPyAiRkFJTDogIiA6ICJQQVNT
OiAiKSArIGUpOwotICAgIH0KLQotICAgIGxvZygiVGVzdGluZzogIiArIHVybCArICIgKGFzeW5j
KSIpOwotICAgIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHJlcS5vcGVuKCJHRVQi
LCB1cmwsIHRydWUpOwotICAgIHJlcS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgbG9n
KChleHBlY3RTdWNjZXNzID8gIlBBU1M6ICIgOiAiRkFJTDogIikgKyByZXEucmVzcG9uc2VUZXh0
KTsKLSAgICAgICAgbmV4dFRlc3QoKTsKLSAgICB9OwotICAgIHJlcS5vbmVycm9yID0gZnVuY3Rp
b24oKSB7Ci0gICAgICAgIGxvZygoZXhwZWN0U3VjY2VzcyA/ICJGQUlMOiAiIDogIlBBU1M6ICIp
ICsgcmVxLnN0YXR1cyk7Ci0gICAgICAgIG5leHRUZXN0KCk7Ci0gICAgfTsKLSAgICByZXEuc2Vu
ZChudWxsKTsKLX0KLQotdmFyIHRlc3RzID0gWwotICAgIFsiaHR0cDovL2xvY2FsaG9zdDo4MDAw
L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IiwgdHJ1ZV0sCi0gICAgWyJodHRwOi8v
bG9DQUxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiLCB0cnVlXQot
ICAgIC8vIEZJWE1FOiBJcyBpdCBwb3NzaWJsZSB0byBzZXR1cCB0aGUgZm9sbG93aW5nIHRlc3Rz
PwotICAgIC8vIFsiaHR0cDovL2xvY2FsaG9zdDo4MDAxL3htbGh0dHByZXF1ZXN0L3Jlc291cmNl
cy9nZXQudHh0IiwgZmFsc2VdLAotICAgIC8vIFsiaHR0cDovL2Zvby5sb2NhbGhvc3Q6ODAwMC94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCIsIGZhbHNlXSwKLSAgICAvLyBbImh0dHBz
Oi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiLCBmYWxz
ZV0KLV07Ci0KLXZhciBjdXJyZW50VGVzdCA9IDA7Ci0KLWZ1bmN0aW9uIG5leHRUZXN0KCkKLXsK
LSAgICBpZiAoY3VycmVudFRlc3QgPCB0ZXN0cy5sZW5ndGgpCi0gICAgICAgIHRlc3QuYXBwbHko
bnVsbCwgdGVzdHNbY3VycmVudFRlc3QrK10pOwotICAgIGVsc2UKLSAgICAgICAgdGVzdFJ1bm5l
ci5ub3RpZnlEb25lKCk7Ci19Ci0KLW5leHRUZXN0KCk7Ci08L3NjcmlwdD4KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1odHRw
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWh0dHBzLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmln
aW4td2hpdGVsaXN0aW5nLWh0dHBzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDEx
ICswLDAgQEAKLUNPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBp
cyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1F
U1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hl
Y2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5v
dCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FH
RTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3Mu
Ci1UZXN0cyB0aGF0IG9yaWdpbiB3aGl0ZWxpc3RpbmcgZm9yIGh0dHBzIGRvZXMgbm90IG1hdGNo
IGh0dHAgVVJMcy4KLQotVGVzdGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy9nZXQudHh0IChzeW5jKQotUEFTUzogTmV0d29ya0Vycm9yOiAgQSBuZXR3
b3JrIGVycm9yIG9jY3VycmVkLgotVGVzdGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChhc3luYykKLVBBU1M6IDAKLQpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWh0
dHBzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWh0dHBzLmh0bWwJKHJldmlzaW9uIDI2NTA4MSkKKysr
IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGlu
Zy1odHRwcy5odG1sCShub25leGlzdGVudCkKQEAgLTEsNTcgKzAsMCBAQAotPHA+VGVzdHMgdGhh
dCBvcmlnaW4gd2hpdGVsaXN0aW5nIGZvciBodHRwcyBkb2VzIG5vdCBtYXRjaCBodHRwIFVSTHMu
PC9wPgotCi08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci10ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKLXRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5hZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHBz
IiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKLQotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCi17Ci0gICAg
ZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5j
cmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOwotfQotCi1mdW5jdGlvbiB0ZXN0KHVybCwg
ZXhwZWN0U3VjY2VzcykKLXsKLSAgICBsb2coIlRlc3Rpbmc6ICIgKyB1cmwgKyAiIChzeW5jKSIp
OwotICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICByZXEub3BlbigiR0VU
IiwgdXJsLCBmYWxzZSk7Ci0gICAgdHJ5IHsKLSAgICAgICAgcmVxLnNlbmQobnVsbCk7Ci0gICAg
ICAgIGxvZygoZXhwZWN0U3VjY2VzcyA/ICJQQVNTOiAiIDogIkZBSUw6ICIpICsgcmVxLnJlc3Bv
bnNlVGV4dCk7Ci0gICAgfSBjYXRjaCAoZSkgewotICAgICAgICBsb2coKGV4cGVjdFN1Y2Nlc3Mg
PyAiRkFJTDogIiA6ICJQQVNTOiAiKSArIGUpOwotICAgIH0KLQotICAgIGxvZygiVGVzdGluZzog
IiArIHVybCArICIgKGFzeW5jKSIpOwotICAgIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwot
ICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOwotICAgIHJlcS5vbmxvYWQgPSBmdW5jdGlv
bigpIHsKLSAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIlBBU1M6ICIgOiAiRkFJTDogIikg
KyByZXEucmVzcG9uc2VUZXh0KTsKLSAgICAgICAgbmV4dFRlc3QoKTsKLSAgICB9OwotICAgIHJl
cS5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGxvZygoZXhwZWN0U3VjY2VzcyA/ICJG
QUlMOiAiIDogIlBBU1M6ICIpICsgcmVxLnN0YXR1cyk7Ci0gICAgICAgIG5leHRUZXN0KCk7Ci0g
ICAgfTsKLSAgICByZXEuc2VuZChudWxsKTsKLX0KLQotdmFyIHRlc3RzID0gWwotICAgIFsiaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IiwgZmFs
c2VdCi0gICAgLy8gRklYTUU6IElzIGl0IHBvc3NpYmxlIHRvIHNldHVwIHRoZSBmb2xsb3dpbmcg
dGVzdHM/Ci0gICAgLy8gWyJodHRwczovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jl
c291cmNlcy9nZXQudHh0IiwgdHJ1ZV0KLV07Ci0KLXZhciBjdXJyZW50VGVzdCA9IDA7Ci0KLWZ1
bmN0aW9uIG5leHRUZXN0KCkKLXsKLSAgICBpZiAoY3VycmVudFRlc3QgPCB0ZXN0cy5sZW5ndGgp
Ci0gICAgICAgIHRlc3QuYXBwbHkobnVsbCwgdGVzdHNbY3VycmVudFRlc3QrK10pOwotICAgIGVs
c2UKLSAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19Ci0KLW5leHRUZXN0KCk7Ci08
L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGlu
Zy1pcC1hZGRyZXNzZXMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRk
cmVzc2VzLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQpCkBAIC0xLDcgKzAsMCBAQAotVGVzdHMg
b3JpZ2luIHdoaXRlbGlzdGluZyB3aXRoIElQIGFkZHJlc3Nlcy4KLQotVGVzdGluZzogaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChzeW5jKQot
UEFTUzogUEFTUwotVGVzdGluZzogaHR0cDovLzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9nZXQudHh0IChhc3luYykKLVBBU1M6IFBBU1MKLQpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJl
c3Nlcy13aXRoLXN1YmRvbWFpbnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRy
ZXNzZXMtd2l0aC1zdWJkb21haW5zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY1MDgxKQorKysg
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5n
LWlwLWFkZHJlc3Nlcy13aXRoLXN1YmRvbWFpbnMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkK
QEAgLTEsMTEgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovL2xvY2FsaG9z
dDo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNP
TlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovLzEyNy4wLjAu
MTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IGR1ZSB0byBhY2Nlc3MgY29u
dHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vbG9jYWxob3N0Ojgw
MDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09M
RSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vMTI3LjAuMC4xOjgw
MDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgZHVlIHRvIGFjY2VzcyBjb250cm9s
IGNoZWNrcy4KLVNwZWNpZnlpbmcgdGhhdCBhbiBJUCBhZGRyZXNzIHNob3VsZCBtYXRjaCBzdWJk
b21haW5zIGRvZXNuJ3QgbWFrZSBzZW5zZS4gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgaXQgZG9l
c24ndCBkbyBhbnl0aGluZy4KLQotVGVzdGluZzogaHR0cDovLzEyNy4wLjAuMTo4MDAwL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChzeW5jKQotRkFJTDogTmV0d29ya0Vycm9yOiAg
QSBuZXR3b3JrIGVycm9yIG9jY3VycmVkLgotVGVzdGluZzogaHR0cDovLzEyNy4wLjAuMTo4MDAw
L3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChhc3luYykKLUZBSUw6IDAKLQpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0
aW5nLWlwLWFkZHJlc3Nlcy13aXRoLXN1YmRvbWFpbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAt
YWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5odG1sCShyZXZpc2lvbiAyNjUwODEpCisrKyBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAt
YWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5odG1sCShub25leGlzdGVudCkKQEAgLTEsMjIgKzAs
MCBAQAotPHA+U3BlY2lmeWluZyB0aGF0IGFuIElQIGFkZHJlc3Mgc2hvdWxkIG1hdGNoIHN1YmRv
bWFpbnMgZG9lc24ndCBtYWtlIHNlbnNlLiBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBpdCBkb2Vz
bid0IGRvIGFueXRoaW5nLjwvcD4KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNjcmlwdD4K
LXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci10
ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vbG9jYWxob3N0
OjgwMDAiLCAiaHR0cCIsICIqLjAuMC4xIiwgdHJ1ZSk7Ci0KLWZ1bmN0aW9uIGxvZyhtZXNzYWdl
KQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQo
ZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKLX0KLQotdmFyIGlmcmFt
ZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotZG9jdW1lbnQuYm9keS5hcHBl
bmRDaGlsZChpZnJhbWUpOwotaWZyYW1lLnNyYyA9ICJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1s
aHR0cHJlcXVlc3QvcmVzb3VyY2VzL29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzcy10ZXN0
Lmh0bWwiOwotd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihlKSB7
Ci0gICAgaWYgKGUuZGF0YSA9PSAiRE9ORSIpCi0gICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9u
ZSgpOwotICAgIGVsc2UKLSAgICAgICAgbG9nKGUuZGF0YSk7Ci19LCBmYWxzZSk7Ci08L3Njcmlw
dD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdo
aXRlbGlzdGluZy1pcC1hZGRyZXNzZXMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2Vz
Lmh0bWwJKHJldmlzaW9uIDI2NTA4MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMuaHRtbAkobm9uZXhpc3Rl
bnQpCkBAIC0xLDIyICswLDAgQEAKLTxwPlRlc3RzIG9yaWdpbiB3aGl0ZWxpc3Rpbmcgd2l0aCBJ
UCBhZGRyZXNzZXMuPC9wPgotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08c2NyaXB0PgotdGVz
dFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci10ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLXRlc3RS
dW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MCIsICJodHRwIiwgIjEyNy4wLjAuMSIsIGZhbHNlKTsKLQotZnVuY3Rpb24gbG9nKG1lc3NhZ2Up
Ci17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChk
b2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOwotfQotCi12YXIgaWZyYW1l
ID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZyYW1lIik7Ci1kb2N1bWVudC5ib2R5LmFwcGVu
ZENoaWxkKGlmcmFtZSk7Ci1pZnJhbWUuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzLXRlc3Qu
aHRtbCI7Ci13aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcigibWVzc2FnZSIsIGZ1bmN0aW9uKGUpIHsK
LSAgICBpZiAoZS5kYXRhID09ICJET05FIikKLSAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25l
KCk7Ci0gICAgZWxzZQotICAgICAgICBsb2coZS5kYXRhKTsKLX0sIGZhbHNlKTsKLTwvc2NyaXB0
PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hp
dGVsaXN0aW5nLXJlbW92YWwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJlbW92YWwtZXhwZWN0ZWQudHh0CShu
b25leGlzdGVudCkKQEAgLTEsNTUgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0
cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93
LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0
cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IGR1ZSB0
byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8v
MTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3Jp
Z2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8v
bG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgZHVlIHRvIGFj
Y2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4u
Ci1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCBkdWUgdG8gYWNjZXNz
IGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAu
MTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNP
TlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IGR1ZSB0byBhY2Nlc3MgY29u
dHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgw
MDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09M
RSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0Ojgw
MDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgZHVlIHRvIGFjY2VzcyBjb250cm9s
IGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBp
cyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1F
U1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hl
Y2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5v
dCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FH
RTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3Mu
Ci1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFs
bG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBY
TUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL2dldC50eHQgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLVRl
c3RzIHRoZSBiZWhhdmlvciBvZiB3aGl0ZWxpc3Rpbmcgb3JpZ2lucyBhbmQgcmVtb3ZpbmcgdGhl
bSBsYXRlci4KLQotVGVzdGluZzogc291cmNlIG9yaWdpbjogaHR0cDovLzEyNy4wLjAuMTo4MDAw
IGRlc3RpbmF0aW9uIG9yaWdpbjogaHR0cDpsb2NhbGhvc3QgCi1Mb2FkaW5nOiBodHRwOi8vbG9j
YWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBO
RVRXT1JLX0VSUikKLVBBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJl
ZC4KLUxvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJj
ZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIFBBU1MpCi1QQVNTOiBQQVNTCi1Mb2FkaW5nOiBodHRwOi8v
bG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGlu
ZyBORVRXT1JLX0VSUikKLVBBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1
cnJlZC4KLQotCi1UZXN0aW5nOiBzb3VyY2Ugb3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAg
ZGVzdGluYXRpb24gb3JpZ2luOiBodHRwOmxvY2FsaG9zdCBhbGxvd2luZyBzdWJkb21haW5zCi1M
b2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dl
dC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikKLVBBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0
d29yayBlcnJvciBvY2N1cnJlZC4KLUxvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIFBBU1MpCi1QQVNTOiBQQVNT
Ci1Mb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2Vz
L2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikKLVBBU1M6IE5ldHdvcmtFcnJvcjogIEEg
bmV0d29yayBlcnJvciBvY2N1cnJlZC4KLQotCi1UZXN0aW5nOiBzb3VyY2Ugb3JpZ2luOiBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAgZGVzdGluYXRpb24gb3JpZ2luOiBoVHRQOkxvQ2FMaE9zVCBhbGxv
d2luZyBzdWJkb21haW5zCi1Mb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikKLVBBU1M6IE5l
dHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4KLUxvYWRpbmc6IGh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5n
IFBBU1MpCi1QQVNTOiBQQVNTCi1Mb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikKLVBBU1M6
IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4KLQotCi1UZXN0aW5nOiBz
b3VyY2Ugb3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgZGVzdGluYXRpb24gb3JpZ2luOiBo
dHRwOiBhbGxvd2luZyBzdWJkb21haW5zCi1Mb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikK
LVBBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4KLUxvYWRpbmc6
IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAo
ZXhwZWN0aW5nIFBBU1MpCi1QQVNTOiBQQVNTCi1Mb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0Ojgw
MDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VS
UikKLVBBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4KLQotCi0K
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRl
bGlzdGluZy1yZW1vdmFsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJlbW92YWwuaHRtbAkocmV2aXNp
b24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmln
aW4td2hpdGVsaXN0aW5nLXJlbW92YWwuaHRtbAkobm9uZXhpc3RlbnQpCkBAIC0xLDUxICswLDAg
QEAKLTxwPlRlc3RzIHRoZSBiZWhhdmlvciBvZiB3aGl0ZWxpc3Rpbmcgb3JpZ2lucyBhbmQgcmVt
b3ZpbmcgdGhlbSBsYXRlci48L3A+Ci0KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJlPgotPHNjcmlw
dD4KLXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotCi1mdW5jdGlvbiBsb2cobWVzc2FnZSkKLXsK
LSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29uc29sZSIpLmFwcGVuZENoaWxkKGRvY3Vt
ZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAiXG4iKSk7Ci19Ci0KLWZ1bmN0aW9uIGxvYWRV
UkwodXJsLCBleHBlY3RTdWNjZXNzKQotewotICAgIGxvZygiTG9hZGluZzogIiArIHVybCArICIg
IiArIChleHBlY3RTdWNjZXNzID8gIihleHBlY3RpbmcgUEFTUykiIDogIihleHBlY3RpbmcgTkVU
V09SS19FUlIpIikpOwotCi0gICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAg
IHJlcS5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKLSAgICB0cnkgewotICAgICAgICByZXEuc2Vu
ZChudWxsKTsKLSAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIlBBU1M6ICIgOiAiRkFJTDog
IikgKyByZXEucmVzcG9uc2VUZXh0KTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIGxvZygo
ZXhwZWN0U3VjY2VzcyA/ICJGQUlMOiAiIDogIlBBU1M6ICIpICsgZSk7Ci0gICAgfQotfQotCi1m
dW5jdGlvbiB0ZXN0KG9yaWdpbiwgcHJvdG9jb2wsIGhvc3QsIHN1YmRvbWFpbnMsIHVybCkKLXsK
LSAgICBsb2coIlRlc3Rpbmc6IHNvdXJjZSBvcmlnaW46ICIgKyBvcmlnaW4gKyAiIGRlc3RpbmF0
aW9uIG9yaWdpbjogIiArIHByb3RvY29sICsgIjoiICsgaG9zdCArICIgIiArIChzdWJkb21haW5z
ID8gImFsbG93aW5nIHN1YmRvbWFpbnMiIDogIiIpKTsKLQotICAgIGxvYWRVUkwodXJsLCBmYWxz
ZSk7Ci0KLSAgICB0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KG9yaWdp
biwgcHJvdG9jb2wudG9Mb3dlckNhc2UoKSwgaG9zdC50b0xvd2VyQ2FzZSgpLCBzdWJkb21haW5z
KTsKLQotICAgIGxvYWRVUkwodXJsLCB0cnVlKTsKLQotICAgIHRlc3RSdW5uZXIucmVtb3ZlT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnkob3JpZ2luLCBwcm90b2NvbCwgaG9zdCwgc3ViZG9tYWlu
cyk7Ci0KLSAgICBsb2FkVVJMKHVybCwgZmFsc2UpOwotCi0gICAgbG9nKCJcbiIpOwotfQotCi12
YXIgdGVzdHMgPSBbCi0gICAgWyJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2Nh
bGhvc3QiLCBmYWxzZSwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvZ2V0LnR4dCJdLAotICAgIFsiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAi
bG9jYWxob3N0IiwgdHJ1ZSwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvZ2V0LnR4dCJdLAotICAgIFsiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImhUdFAi
LCAiTG9DYUxoT3NUIiwgdHJ1ZSwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvZ2V0LnR4dCJdLAotICAgIFsiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0
dHAiLCAiIiwgdHJ1ZSwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvZ2V0LnR4dCJdCi1dOwotCi10ZXN0cy5mb3JFYWNoKGZ1bmN0aW9uKHRlc3RFbnRyeSkg
eyB0ZXN0LmFwcGx5KG51bGwsIHRlc3RFbnRyeSkgfSk7Ci08L3NjcmlwdD4KSW5kZXg6IExheW91
dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1zdWJk
b21haW5zLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmctc3ViZG9tYWlucy1leHBlY3RlZC50
eHQJKHJldmlzaW9uIDI2NTA4MSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1zdWJkb21haW5zLWV4cGVjdGVkLnR4dAkobm9uZXhp
c3RlbnQpCkBAIC0xLDcgKzAsMCBAQAotVGVzdHMgb3JpZ2luIHdoaXRlbGlzdGluZyBzdWJkb21h
aW4gYmVoYXZpb3IuCi0KLVRlc3Rpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVx
dWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoc3luYykKLVBBU1M6IFBBU1MKLVRlc3Rpbmc6IGh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoYXN5bmMp
Ci1QQVNTOiBQQVNTCi0KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1zdWJkb21haW5zLmh0bWwKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXN1
YmRvbWFpbnMuaHRtbAkocmV2aXNpb24gMjY1MDgxKQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXN1YmRvbWFpbnMuaHRtbAkobm9u
ZXhpc3RlbnQpCkBAIC0xLDU5ICswLDAgQEAKLTxwPlRlc3RzIG9yaWdpbiB3aGl0ZWxpc3Rpbmcg
c3ViZG9tYWluIGJlaGF2aW9yLjwvcD4KLQotPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Ci08c2Ny
aXB0PgotdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci10ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKLXRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIHRydWUpOwotCi1mdW5jdGlvbiBsb2co
bWVzc2FnZSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVu
ZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Ci19Ci0KLWZ1
bmN0aW9uIHRlc3QodXJsLCBleHBlY3RTdWNjZXNzKQotewotICAgIGxvZygiVGVzdGluZzogIiAr
IHVybCArICIgKHN5bmMpIik7Ci0gICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwot
ICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKLSAgICB0cnkgewotICAgICAgICByZXEu
c2VuZChudWxsKTsKLSAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIlBBU1M6ICIgOiAiRkFJ
TDogIikgKyByZXEucmVzcG9uc2VUZXh0KTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIGxv
ZygoZXhwZWN0U3VjY2VzcyA/ICJGQUlMOiAiIDogIlBBU1M6ICIpICsgZSk7Ci0gICAgfQotCi0g
ICAgbG9nKCJUZXN0aW5nOiAiICsgdXJsICsgIiAoYXN5bmMpIik7Ci0gICAgcmVxID0gbmV3IFhN
TEh0dHBSZXF1ZXN0KCk7Ci0gICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgdHJ1ZSk7Ci0gICAgcmVx
Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICBsb2coKGV4cGVjdFN1Y2Nlc3MgPyAiUEFT
UzogIiA6ICJGQUlMOiAiKSArIHJlcS5yZXNwb25zZVRleHQpOwotICAgICAgICBuZXh0VGVzdCgp
OwotICAgIH07Ci0gICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgbG9nKChl
eHBlY3RTdWNjZXNzID8gIkZBSUw6ICIgOiAiUEFTUzogIikgKyByZXEuc3RhdHVzKTsKLSAgICAg
ICAgbmV4dFRlc3QoKTsKLSAgICB9OwotICAgIHJlcS5zZW5kKG51bGwpOwotfQotCi12YXIgdGVz
dHMgPSBbCi0gICAgWyJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3Vy
Y2VzL2dldC50eHQiLCB0cnVlXQotICAgIC8vIEZJWE1FOiBJcyBpdCBwb3NzaWJsZSB0byBzZXR1
cCB0aGUgZm9sbG93aW5nIHRlc3RzPwotICAgIC8vIFsiaHR0cDovL2Zvby5sb2NhbGhvc3Q6ODAw
MC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCIsIHRydWVdCi0gICAgLy8gWyJodHRw
Oi8vYmFyLmZvby5sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4
dCIsIHRydWVdCi0gICAgLy8gWyJodHRwOi8vZm9vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzL2dldC50eHQiLCBmYWxzZV0KLV07Ci0KLXZhciBjdXJyZW50VGVzdCA9IDA7
Ci0KLWZ1bmN0aW9uIG5leHRUZXN0KCkKLXsKLSAgICBpZiAoY3VycmVudFRlc3QgPCB0ZXN0cy5s
ZW5ndGgpCi0gICAgICAgIHRlc3QuYXBwbHkobnVsbCwgdGVzdHNbY3VycmVudFRlc3QrK10pOwot
ICAgIGVsc2UKLSAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci19Ci0KLW5leHRUZXN0
KCk7Ci08L3NjcmlwdD4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>405714</attachid>
            <date>2020-07-31 11:31:16 -0700</date>
            <delta_ts>2020-07-31 17:30:13 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-214971-20200731113115.patch</filename>
            <type>text/plain</type>
            <size>123377</size>
            <attacher name="Alex Christensen">achristensen</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9DaGFuZ2VMb2cJKHJldmlzaW9uIDI2NTE0OSkKKysrIFNv
dXJjZS9XZWJLaXRMZWdhY3kvd2luL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsx
LDE1IEBACisyMDIwLTA3LTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CisKKyAgICAgICAgVXNlIG1vcmUgaW5jbHVzaXZlIHRlcm1pbm9sb2d5IGluIFRvb2xz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTQ5NzEK
KworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICogSW50ZXJmYWNl
cy9JV2ViVmlld1ByaXZhdGUuaWRsOgorICAgICAgICBSZW5hbWUgc29tZSB0ZXN0LW9ubHkgQVBJ
LiAgVGhpcyBzaG91bGQgbm90IGFmZmVjdCBiaW5hcnkgY29tcGF0aWJpbGl0eSBiZWNhdXNlIGV2
ZXJ5dGhpbmcgaXMgaW4gdGhlIHNhbWUgbG9jYXRpb25zLCBhbmQgdGhlIGNoYW5nZWQgQVBJIGlz
IG9ubHkgdXNlZCBmb3IgdGVzdHMuCisgICAgICAgICogV2ViVmlldy5oOgorICAgICAgICAqIFdl
YlZpZXcuY3BwOgorCiAyMDIwLTA3LTMwICBEYXJpbiBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4K
IAogICAgICAgICBGdXJ0aGVyIHJlZHVjdGlvbiBpbiB0aGUgdXNlIG9mIGxpdmUgcmFuZ2VzLCBw
YXJ0aWN1bGFybHkgaW4gaGVhZGVycwpJbmRleDogU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2Vi
Vmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5j
cHAJKHJldmlzaW9uIDI2NTE0OSkKKysrIFNvdXJjZS9XZWJLaXRMZWdhY3kvd2luL1dlYlZpZXcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC02OTg4LDExICs2OTg4LDExIEBAIHZvaWQgV2ViVmlldzo6
ZXhpdFZpZGVvRnVsbHNjcmVlbkZvclZpZGUKIH0KIAogSFJFU1VMVCBXZWJWaWV3OjphZGRVc2Vy
U2NyaXB0VG9Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0XyBJV2ViU2NyaXB0V29y
bGQqIGlXb3JsZCwgX0luXyBCU1RSIHNvdXJjZSwgX0luXyBCU1RSIHVybCwKLSAgICB1bnNpZ25l
ZCB3aGl0ZWxpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbCh3aGl0ZWxpc3RDb3VudCkgQlNU
Uiogd2hpdGVsaXN0LAotICAgIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBfX2lub3V0X2Vjb3Vu
dF9mdWxsKGJsYWNrbGlzdENvdW50KSBCU1RSKiBibGFja2xpc3QsCisgICAgdW5zaWduZWQgYWxs
b3dMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0Q291bnQpIEJTVFIqIGFs
bG93TGlzdCwKKyAgICB1bnNpZ25lZCBibG9ja0xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVs
bChibG9ja0xpc3RDb3VudCkgQlNUUiogYmxvY2tsaXN0LAogICAgIFdlYlVzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lIGluamVjdGlvblRpbWUpCiB7Ci0gICAgcmV0dXJuIGFkZFVzZXJTY3JpcHRUb0dy
b3VwKGdyb3VwTmFtZSwgaVdvcmxkLCBzb3VyY2UsIHVybCwgd2hpdGVsaXN0Q291bnQsIHdoaXRl
bGlzdCwgYmxhY2tsaXN0Q291bnQsIGJsYWNrbGlzdCwgaW5qZWN0aW9uVGltZSwgV2ViSW5qZWN0
SW5BbGxGcmFtZXMpOworICAgIHJldHVybiBhZGRVc2VyU2NyaXB0VG9Hcm91cChncm91cE5hbWUs
IGlXb3JsZCwgc291cmNlLCB1cmwsIGFsbG93TGlzdENvdW50LCBhbGxvd0xpc3QsIGJsb2NrTGlz
dENvdW50LCBibG9ja2xpc3QsIGluamVjdGlvblRpbWUsIFdlYkluamVjdEluQWxsRnJhbWVzKTsK
IH0KIAogc3RhdGljIFZlY3RvcjxTdHJpbmc+IHRvU3RyaW5nVmVjdG9yKEJTVFIqIGVudHJpZXMs
IHVuc2lnbmVkIGNvdW50KQpAQCAtNzAwOCw4ICs3MDA4LDggQEAgc3RhdGljIFZlY3RvcjxTdHJp
bmc+IHRvU3RyaW5nVmVjdG9yKEJTVAogfQogCiBIUkVTVUxUIFdlYlZpZXc6OmFkZFVzZXJTY3Jp
cHRUb0dyb3VwKF9Jbl8gQlNUUiBncm91cE5hbWUsIF9Jbl9vcHRfIElXZWJTY3JpcHRXb3JsZCog
aVdvcmxkLCBfSW5fIEJTVFIgc291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgIHVuc2lnbmVkIHdo
aXRlbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKHdoaXRlbGlzdENvdW50KSBCU1RSKiB3
aGl0ZWxpc3QsCi0gICAgdW5zaWduZWQgYmxhY2tsaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1
bGwoYmxhY2tsaXN0Q291bnQpIEJTVFIqIGJsYWNrbGlzdCwKKyAgICB1bnNpZ25lZCBhbGxvd0xp
c3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChhbGxvd0xpc3RDb3VudCkgQlNUUiogYWxsb3dM
aXN0LAorICAgIHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJs
b2NrTGlzdENvdW50KSBCU1RSKiBibG9ja2xpc3QsCiAgICAgV2ViVXNlclNjcmlwdEluamVjdGlv
blRpbWUgaW5qZWN0aW9uVGltZSwgV2ViVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3Rl
ZEZyYW1lcykKIHsKICAgICBTdHJpbmcgZ3JvdXAgPSB0b1N0cmluZyhncm91cE5hbWUpOwpAQCAt
NzAyMiwyMSArNzAyMiwyMSBAQCBIUkVTVUxUIFdlYlZpZXc6OmFkZFVzZXJTY3JpcHRUb0dyb3Vw
KF9JCiAgICAgICAgIHJldHVybiBFX1BPSU5URVI7CiAKICAgICBXZWJTY3JpcHRXb3JsZCogd29y
bGQgPSByZWludGVycHJldF9jYXN0PFdlYlNjcmlwdFdvcmxkKj4oaVdvcmxkKTsKLSAgICBhdXRv
IHVzZXJTY3JpcHQgPSBtYWtlVW5pcXVlPFVzZXJTY3JpcHQ+KHNvdXJjZSwgdG9VUkwodXJsKSwg
dG9TdHJpbmdWZWN0b3Iod2hpdGVsaXN0LCB3aGl0ZWxpc3RDb3VudCksCi0gICAgICAgIHRvU3Ry
aW5nVmVjdG9yKGJsYWNrbGlzdCwgYmxhY2tsaXN0Q291bnQpLCBpbmplY3Rpb25UaW1lID09IFdl
YkluamVjdEF0RG9jdW1lbnRTdGFydCA/IFVzZXJTY3JpcHRJbmplY3Rpb25UaW1lOjpEb2N1bWVu
dFN0YXJ0IDogVXNlclNjcmlwdEluamVjdGlvblRpbWU6OkRvY3VtZW50RW5kLAorICAgIGF1dG8g
dXNlclNjcmlwdCA9IG1ha2VVbmlxdWU8VXNlclNjcmlwdD4oc291cmNlLCB0b1VSTCh1cmwpLCB0
b1N0cmluZ1ZlY3RvcihhbGxvd0xpc3QsIGFsbG93TGlzdENvdW50KSwKKyAgICAgICAgdG9TdHJp
bmdWZWN0b3IoYmxvY2tsaXN0LCBibG9ja0xpc3RDb3VudCksIGluamVjdGlvblRpbWUgPT0gV2Vi
SW5qZWN0QXREb2N1bWVudFN0YXJ0ID8gVXNlclNjcmlwdEluamVjdGlvblRpbWU6OkRvY3VtZW50
U3RhcnQgOiBVc2VyU2NyaXB0SW5qZWN0aW9uVGltZTo6RG9jdW1lbnRFbmQsCiAgICAgICAgIGlu
amVjdGVkRnJhbWVzID09IFdlYkluamVjdEluQWxsRnJhbWVzID8gVXNlckNvbnRlbnRJbmplY3Rl
ZEZyYW1lczo6SW5qZWN0SW5BbGxGcmFtZXMgOiBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJ
bmplY3RJblRvcEZyYW1lT25seSwgV2FpdEZvck5vdGlmaWNhdGlvbkJlZm9yZUluamVjdGluZzo6
Tm8pOwogICAgIHZpZXdHcm91cC0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkuYWRkVXNlclNjcmlw
dCh3b3JsZC0+d29ybGQoKSwgV1RGTW92ZSh1c2VyU2NyaXB0KSk7CiAgICAgcmV0dXJuIFNfT0s7
CiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKF9Jbl8gQlNU
UiBncm91cE5hbWUsIF9Jbl9vcHRfIElXZWJTY3JpcHRXb3JsZCogaVdvcmxkLCBfSW5fIEJTVFIg
c291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgIHVuc2lnbmVkIHdoaXRlbGlzdENvdW50LCBfX2lu
b3V0X2Vjb3VudF9mdWxsKHdoaXRlbGlzdENvdW50KSBCU1RSKiB3aGl0ZWxpc3QsIHVuc2lnbmVk
IGJsYWNrbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJsYWNrbGlzdENvdW50KSBCU1RS
KiBibGFja2xpc3QpCisgICAgdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50
X2Z1bGwoYWxsb3dMaXN0Q291bnQpIEJTVFIqIGFsbG93TGlzdCwgdW5zaWduZWQgYmxvY2tMaXN0
Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxvY2tMaXN0Q291bnQpIEJTVFIqIGJsb2NrbGlz
dCkKIHsKLSAgICByZXR1cm4gYWRkVXNlclN0eWxlU2hlZXRUb0dyb3VwKGdyb3VwTmFtZSwgaVdv
cmxkLCBzb3VyY2UsIHVybCwgd2hpdGVsaXN0Q291bnQsIHdoaXRlbGlzdCwgYmxhY2tsaXN0Q291
bnQsIGJsYWNrbGlzdCwgV2ViSW5qZWN0SW5BbGxGcmFtZXMpOworICAgIHJldHVybiBhZGRVc2Vy
U3R5bGVTaGVldFRvR3JvdXAoZ3JvdXBOYW1lLCBpV29ybGQsIHNvdXJjZSwgdXJsLCBhbGxvd0xp
c3RDb3VudCwgYWxsb3dMaXN0LCBibG9ja0xpc3RDb3VudCwgYmxvY2tsaXN0LCBXZWJJbmplY3RJ
bkFsbEZyYW1lcyk7CiB9CiAKIEhSRVNVTFQgV2ViVmlldzo6YWRkVXNlclN0eWxlU2hlZXRUb0dy
b3VwKF9Jbl8gQlNUUiBncm91cE5hbWUsIF9Jbl9vcHRfIElXZWJTY3JpcHRXb3JsZCogaVdvcmxk
LCBfSW5fIEJTVFIgc291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgIHVuc2lnbmVkIHdoaXRlbGlz
dENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKHdoaXRlbGlzdENvdW50KSBCU1RSKiB3aGl0ZWxp
c3QsIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJsYWNrbGlz
dENvdW50KSBCU1RSKiBibGFja2xpc3QsCisgICAgdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIF9f
aW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0Q291bnQpIEJTVFIqIGFsbG93TGlzdCwgdW5zaWdu
ZWQgYmxvY2tMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxvY2tMaXN0Q291bnQpIEJT
VFIqIGJsb2NrbGlzdCwKICAgICBXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzIGluamVjdGVk
RnJhbWVzKQogewogICAgIFN0cmluZyBncm91cCA9IHRvU3RyaW5nKGdyb3VwTmFtZSk7CkBAIC03
MDQ5LDcgKzcwNDksNyBAQCBIUkVTVUxUIFdlYlZpZXc6OmFkZFVzZXJTdHlsZVNoZWV0VG9Hcm91
CiAgICAgICAgIHJldHVybiBFX1BPSU5URVI7CiAKICAgICBXZWJTY3JpcHRXb3JsZCogd29ybGQg
PSByZWludGVycHJldF9jYXN0PFdlYlNjcmlwdFdvcmxkKj4oaVdvcmxkKTsKLSAgICBhdXRvIHN0
eWxlU2hlZXQgPSBtYWtlVW5pcXVlPFVzZXJTdHlsZVNoZWV0Pihzb3VyY2UsIHRvVVJMKHVybCks
IHRvU3RyaW5nVmVjdG9yKHdoaXRlbGlzdCwgd2hpdGVsaXN0Q291bnQpLCB0b1N0cmluZ1ZlY3Rv
cihibGFja2xpc3QsIGJsYWNrbGlzdENvdW50KSwKKyAgICBhdXRvIHN0eWxlU2hlZXQgPSBtYWtl
VW5pcXVlPFVzZXJTdHlsZVNoZWV0Pihzb3VyY2UsIHRvVVJMKHVybCksIHRvU3RyaW5nVmVjdG9y
KGFsbG93TGlzdCwgYWxsb3dMaXN0Q291bnQpLCB0b1N0cmluZ1ZlY3RvcihibG9ja2xpc3QsIGJs
b2NrTGlzdENvdW50KSwKICAgICAgICAgaW5qZWN0ZWRGcmFtZXMgPT0gV2ViSW5qZWN0SW5BbGxG
cmFtZXMgPyBVc2VyQ29udGVudEluamVjdGVkRnJhbWVzOjpJbmplY3RJbkFsbEZyYW1lcyA6IFVz
ZXJDb250ZW50SW5qZWN0ZWRGcmFtZXM6OkluamVjdEluVG9wRnJhbWVPbmx5LCBVc2VyU3R5bGVV
c2VyTGV2ZWwpOwogICAgIHZpZXdHcm91cC0+dXNlckNvbnRlbnRDb250cm9sbGVyKCkuYWRkVXNl
clN0eWxlU2hlZXQod29ybGQtPndvcmxkKCksIFdURk1vdmUoc3R5bGVTaGVldCksIEluamVjdElu
RXhpc3RpbmdEb2N1bWVudHMpOwogICAgIHJldHVybiBTX09LOwpAQCAtNzE2MCwxOSArNzE2MCwx
OSBAQCBIUkVTVUxUIFdlYlZpZXc6OmludmFsaWRhdGVCYWNraW5nU3RvcmUoCiAgICAgcmV0dXJu
IFNfT0s7CiB9CiAKLUhSRVNVTFQgV2ViVmlldzo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50
cnkoX0luXyBCU1RSIHNvdXJjZU9yaWdpbiwgX0luXyBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2ws
IF9Jbl8gQlNUUiBkZXN0aW5hdGlvbkhvc3QsIEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFp
bnMpCitIUkVTVUxUIFdlYlZpZXc6OmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KF9Jbl8g
QlNUUiBzb3VyY2VPcmlnaW4sIF9Jbl8gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBfSW5fIEJT
VFIgZGVzdGluYXRpb25Ib3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewog
ICAgIFNlY3VyaXR5UG9saWN5OjphZGRPcmlnaW5BY2Nlc3NBbGxvd2xpc3RFbnRyeShTZWN1cml0
eU9yaWdpbjo6Y3JlYXRlRnJvbVN0cmluZyh0b1N0cmluZyhzb3VyY2VPcmlnaW4pKS5nZXQoKSwg
dG9TdHJpbmcoZGVzdGluYXRpb25Qcm90b2NvbCksIHRvU3RyaW5nKGRlc3RpbmF0aW9uSG9zdCks
IGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKICAgICByZXR1cm4gU19PSzsKIH0KIAotSFJF
U1VMVCBXZWJWaWV3OjpyZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShfSW5fIEJTVFIg
c291cmNlT3JpZ2luLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgX0luXyBCU1RSIGRl
c3RpbmF0aW9uSG9zdCwgQk9PTCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK0hSRVNVTFQg
V2ViVmlldzo6cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoX0luXyBCU1RSIHNvdXJj
ZU9yaWdpbiwgX0luXyBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2wsIF9Jbl8gQlNUUiBkZXN0aW5h
dGlvbkhvc3QsIEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgU2VjdXJp
dHlQb2xpY3k6OnJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93bGlzdEVudHJ5KFNlY3VyaXR5T3JpZ2lu
OjpjcmVhdGVGcm9tU3RyaW5nKHRvU3RyaW5nKHNvdXJjZU9yaWdpbikpLmdldCgpLCB0b1N0cmlu
ZyhkZXN0aW5hdGlvblByb3RvY29sKSwgdG9TdHJpbmcoZGVzdGluYXRpb25Ib3N0KSwgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogICAgIHJldHVybiBTX09LOwogfQogCi1IUkVTVUxUIFdl
YlZpZXc6OnJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygpCitIUkVTVUxUIFdlYlZpZXc6OnJl
c2V0T3JpZ2luQWNjZXNzQWxsb3dMaXN0cygpCiB7CiAgICAgU2VjdXJpdHlQb2xpY3k6OnJlc2V0
T3JpZ2luQWNjZXNzQWxsb3dsaXN0cygpOwogICAgIHJldHVybiBTX09LOwpJbmRleDogU291cmNl
L1dlYktpdExlZ2FjeS93aW4vV2ViVmlldy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXRM
ZWdhY3kvd2luL1dlYlZpZXcuaAkocmV2aXNpb24gMjY1MTQ5KQorKysgU291cmNlL1dlYktpdExl
Z2FjeS93aW4vV2ViVmlldy5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNDcsMTAgKzM0NywxMCBAQCBw
dWJsaWM6CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRKYXZhU2NyaXB0VVJMc0Fy
ZUFsbG93ZWQoQk9PTCkgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBz
ZXRDYW5TdGFydFBsdWdpbnMoQk9PTCkgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RD
QUxMVFlQRSBhZGRVc2VyU2NyaXB0VG9Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0
XyBJV2ViU2NyaXB0V29ybGQqLCBfSW5fIEJTVFIgc291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAg
ICAgICB1bnNpZ25lZCB3aGl0ZWxpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbCh3aGl0ZWxp
c3RDb3VudCkgQlNUUiogd2hpdGVsaXN0LCB1bnNpZ25lZCBibGFja2xpc3RDb3VudCwKLSAgICAg
ICAgX19pbm91dF9lY291bnRfZnVsbChibGFja2xpc3RDb3VudCkgQlNUUiogYmxhY2tsaXN0LCBX
ZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSkgb3ZlcnJpZGU7CisgICAgICAgIHVuc2lnbmVkIGFs
bG93TGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGFsbG93TGlzdENvdW50KSBCU1RSKiBh
bGxvd0xpc3QsIHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LAorICAgICAgICBfX2lub3V0X2Vjb3Vu
dF9mdWxsKGJsb2NrTGlzdENvdW50KSBCU1RSKiBibG9ja0xpc3QsIFdlYlVzZXJTY3JpcHRJbmpl
Y3Rpb25UaW1lKSBvdmVycmlkZTsKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGFkZFVz
ZXJTdHlsZVNoZWV0VG9Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5fb3B0XyBJV2ViU2Ny
aXB0V29ybGQqLCBfSW5fIEJTVFIgc291cmNlLCBfSW5fIEJTVFIgdXJsLAotICAgICAgICB1bnNp
Z25lZCB3aGl0ZWxpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbCh3aGl0ZWxpc3RDb3VudCkg
QlNUUiogd2hpdGVsaXN0LCB1bnNpZ25lZCBibGFja2xpc3RDb3VudCwgX19pbm91dF9lY291bnRf
ZnVsbChibGFja2xpc3RDb3VudCkgQlNUUiogYmxhY2tsaXN0KSBvdmVycmlkZTsKKyAgICAgICAg
dW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYWxsb3dMaXN0Q291
bnQpIEJTVFIqIGFsbG93TGlzdCwgdW5zaWduZWQgYmxvY2tMaXN0Q291bnQsIF9faW5vdXRfZWNv
dW50X2Z1bGwoYmxvY2tMaXN0Q291bnQpIEJTVFIqIGJsb2NrTGlzdCkgb3ZlcnJpZGU7CiAgICAg
SFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSByZW1vdmVVc2VyU2NyaXB0RnJvbUdyb3VwKF9Jbl8g
QlNUUiBncm91cE5hbWUsIF9Jbl9vcHRfIElXZWJTY3JpcHRXb3JsZCosIF9Jbl8gQlNUUiB1cmwp
IG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgcmVtb3ZlVXNlclN0eWxl
U2hlZXRGcm9tR3JvdXAoX0luXyBCU1RSIGdyb3VwTmFtZSwgX0luX29wdF8gSVdlYlNjcmlwdFdv
cmxkKiwgX0luXyBCU1RSIHVybCkgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSByZW1vdmVVc2VyU2NyaXB0c0Zyb21Hcm91cChfSW5fIEJTVFIgZ3JvdXBOYW1lLCBfSW5f
b3B0XyBJV2ViU2NyaXB0V29ybGQqKSBvdmVycmlkZTsKQEAgLTM1OSw5ICszNTksOSBAQCBwdWJs
aWM6CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB1bnVzZWQxKCkgb3ZlcnJpZGU7CiAg
ICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSB1bnVzZWQyKCkgb3ZlcnJpZGU7CiAgICAgSFJF
U1VMVCBTVERNRVRIT0RDQUxMVFlQRSBpbnZhbGlkYXRlQmFja2luZ1N0b3JlKF9Jbl9vcHRfIGNv
bnN0IFJFQ1QqKSBvdmVycmlkZTsKLSAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGFkZE9y
aWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KF9Jbl8gQlNUUiBzb3VyY2VPcmlnaW4sIF9Jbl8gQlNU
UiBkZXN0aW5hdGlvblByb3RvY29sLCBfSW5fIEJTVFIgZGVzdGluYXRpb25Ib3N0LCBCT09MIGFs
bG93RGVzdGluYXRpb25TdWJkb21haW5zKSBvdmVycmlkZTsKLSAgICBIUkVTVUxUIFNURE1FVEhP
RENBTExUWVBFIHJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KF9Jbl8gQlNUUiBzb3Vy
Y2VPcmlnaW4sIF9Jbl8gQlNUUiBkZXN0aW5hdGlvblByb3RvY29sLCBfSW5fIEJTVFIgZGVzdGlu
YXRpb25Ib3N0LCBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKSBvdmVycmlkZTsKLSAg
ICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIHJlc2V0T3JpZ2luQWNjZXNzV2hpdGVsaXN0cygp
IG92ZXJyaWRlOworICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWRkT3JpZ2luQWNjZXNz
QWxsb3dMaXN0RW50cnkoX0luXyBCU1RSIHNvdXJjZU9yaWdpbiwgX0luXyBCU1RSIGRlc3RpbmF0
aW9uUHJvdG9jb2wsIF9Jbl8gQlNUUiBkZXN0aW5hdGlvbkhvc3QsIEJPT0wgYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMpIG92ZXJyaWRlOworICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUg
cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoX0luXyBCU1RSIHNvdXJjZU9yaWdpbiwg
X0luXyBCU1RSIGRlc3RpbmF0aW9uUHJvdG9jb2wsIF9Jbl8gQlNUUiBkZXN0aW5hdGlvbkhvc3Qs
IEJPT0wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpIG92ZXJyaWRlOworICAgIEhSRVNVTFQg
U1RETUVUSE9EQ0FMTFRZUEUgcmVzZXRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RzKCkgb3ZlcnJpZGU7
CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRIaXN0b3J5RGVsZWdhdGUoX0luXyBJ
V2ViSGlzdG9yeURlbGVnYXRlKikgb3ZlcnJpZGU7CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxM
VFlQRSBoaXN0b3J5RGVsZWdhdGUoX0NPTV9PdXRwdHJfb3B0XyBJV2ViSGlzdG9yeURlbGVnYXRl
KiopIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWRkVmlzaXRlZExp
bmtzKF9faW5vdXRfZWNvdW50X2Z1bGwodmlzaXRlZFVSTENvdW50KSBCU1RSKiB2aXNpdGVkVVJM
cywgdW5zaWduZWQgdmlzaXRlZFVSTENvdW50KSBvdmVycmlkZTsKQEAgLTM5MSw5ICszOTEsOSBA
QCBwdWJsaWM6CiAgICAgSFJFU1VMVCBTVERNRVRIT0RDQUxMVFlQRSBzZXRDdXN0b21CYWNraW5n
U2NhbGVGYWN0b3IoZG91YmxlKSBvdmVycmlkZTsKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExU
WVBFIGJhY2tpbmdTY2FsZUZhY3RvcihfT3V0XyBkb3VibGUqKSBvdmVycmlkZTsKICAgICBIUkVT
VUxUIFNURE1FVEhPRENBTExUWVBFIGFkZFVzZXJTY3JpcHRUb0dyb3VwKF9Jbl8gQlNUUiBncm91
cE5hbWUsIF9Jbl9vcHRfIElXZWJTY3JpcHRXb3JsZCosIF9Jbl8gQlNUUiBzb3VyY2UsIF9Jbl8g
QlNUUiB1cmwsCi0gICAgICAgIHVuc2lnbmVkIHdoaXRlbGlzdENvdW50LCBfX2lub3V0X2Vjb3Vu
dF9mdWxsKHdoaXRlbGlzdENvdW50KSBCU1RSKiB3aGl0ZWxpc3QsIHVuc2lnbmVkIGJsYWNrbGlz
dENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKGJsYWNrbGlzdENvdW50KSBCU1RSKiBibGFja2xp
c3QsIFdlYlVzZXJTY3JpcHRJbmplY3Rpb25UaW1lLCBXZWJVc2VyQ29udGVudEluamVjdGVkRnJh
bWVzKSBvdmVycmlkZTsKKyAgICAgICAgdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIF9faW5vdXRf
ZWNvdW50X2Z1bGwoYWxsb3dMaXN0Q291bnQpIEJTVFIqIGFsbG93TGlzdCwgdW5zaWduZWQgYmxv
Y2tMaXN0Q291bnQsIF9faW5vdXRfZWNvdW50X2Z1bGwoYmxvY2tMaXN0Q291bnQpIEJTVFIqIGJs
b2NrTGlzdCwgV2ViVXNlclNjcmlwdEluamVjdGlvblRpbWUsIFdlYlVzZXJDb250ZW50SW5qZWN0
ZWRGcmFtZXMpIG92ZXJyaWRlOwogICAgIEhSRVNVTFQgU1RETUVUSE9EQ0FMTFRZUEUgYWRkVXNl
clN0eWxlU2hlZXRUb0dyb3VwKF9Jbl8gQlNUUiBncm91cE5hbWUsIF9Jbl9vcHRfIElXZWJTY3Jp
cHRXb3JsZCosIF9Jbl8gQlNUUiBzb3VyY2UsIF9Jbl8gQlNUUiB1cmwsCi0gICAgICAgIHVuc2ln
bmVkIHdoaXRlbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9mdWxsKHdoaXRlbGlzdENvdW50KSBC
U1RSKiB3aGl0ZWxpc3QsIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBfX2lub3V0X2Vjb3VudF9m
dWxsKGJsYWNrbGlzdENvdW50KSBCU1RSKiBibGFja2xpc3QsIFdlYlVzZXJDb250ZW50SW5qZWN0
ZWRGcmFtZXMpIG92ZXJyaWRlOworICAgICAgICB1bnNpZ25lZCBhbGxvd0xpc3RDb3VudCwgX19p
bm91dF9lY291bnRfZnVsbChhbGxvd0xpc3RDb3VudCkgQlNUUiogYWxsb3dMaXN0LCB1bnNpZ25l
ZCBibG9ja0xpc3RDb3VudCwgX19pbm91dF9lY291bnRfZnVsbChibG9ja0xpc3RDb3VudCkgQlNU
UiogYmxvY2tMaXN0LCBXZWJVc2VyQ29udGVudEluamVjdGVkRnJhbWVzKSBvdmVycmlkZTsKIAog
ICAgIC8vIElXZWJWaWV3UHJpdmF0ZTMKICAgICBIUkVTVUxUIFNURE1FVEhPRENBTExUWVBFIGxh
eWVyVHJlZUFzU3RyaW5nKF9EZXJlZl9vcHRfb3V0XyBCU1RSKikgb3ZlcnJpZGU7CkluZGV4OiBT
b3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9JbnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdExlZ2FjeS93aW4vSW50ZXJmYWNlcy9JV2ViVmlld1By
aXZhdGUuaWRsCShyZXZpc2lvbiAyNjUxNDkpCisrKyBTb3VyY2UvV2ViS2l0TGVnYWN5L3dpbi9J
bnRlcmZhY2VzL0lXZWJWaWV3UHJpdmF0ZS5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTE4OSwxMiAr
MTg5LDEyIEBAIGludGVyZmFjZSBJV2ViVmlld1ByaXZhdGUgOiBJVW5rbm93bgogICAgIEhSRVNV
TFQgTUlNRVR5cGVGb3JFeHRlbnNpb24oW2luXSBCU1RSIGV4dGVuc2lvbiwgW291dCwgcmV0dmFs
XSBCU1RSKiBtaW1lVHlwZSk7CiAKICAgICBIUkVTVUxUIGFkZFVzZXJTY3JpcHRUb0dyb3VwKFtp
bl0gQlNUUiBncm91cE5hbWUsIFtpbl0gSVdlYlNjcmlwdFdvcmxkKiwgW2luXSBCU1RSIHNvdXJj
ZSwgW2luXSBCU1RSIHVybCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbl0g
dW5zaWduZWQgd2hpdGVsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyh3aGl0ZWxpc3RDb3VudCldIEJT
VFIqIHdoaXRlbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbl0gdW5z
aWduZWQgYmxhY2tsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyhibGFja2xpc3RDb3VudCldIEJTVFIq
IGJsYWNrbGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbl0gdW5zaWdu
ZWQgYWxsb3dMaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyhhbGxvd0xpc3RDb3VudCldIEJTVFIqIGFs
bG93TGlzdCwKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbl0gdW5zaWduZWQg
YmxvY2tMaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyhibG9ja0xpc3RDb3VudCldIEJTVFIqIGJsb2Nr
TGlzdCwKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtpbl0gV2ViVXNlclNjcmlw
dEluamVjdGlvblRpbWUgaW5qZWN0aW9uVGltZSk7CiAgICAgSFJFU1VMVCBhZGRVc2VyU3R5bGVT
aGVldFRvR3JvdXAoW2luXSBCU1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqLCBb
aW5dIEJTVFIgc291cmNlLCBbaW5dIEJTVFIgdXJsLAotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIFtpbl0gdW5zaWduZWQgd2hpdGVsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyh3
aGl0ZWxpc3RDb3VudCldIEJTVFIqIHdoaXRlbGlzdCwKLSAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIGJsYWNrbGlzdENvdW50LCBbaW4sIHNpemVfaXMo
YmxhY2tsaXN0Q291bnQpXSBCU1RSKiBibGFja2xpc3QpOworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIFtpbl0gdW5zaWduZWQgYWxsb3dMaXN0Q291bnQsIFtpbiwgc2l6ZV9p
cyhhbGxvd0xpc3RDb3VudCldIEJTVFIqIGFsbG93TGlzdCwKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICBbaW5dIHVuc2lnbmVkIGJsb2NrTGlzdENvdW50LCBbaW4sIHNpemVf
aXMoYmxvY2tMaXN0Q291bnQpXSBCU1RSKiBibG9ja0xpc3QpOwogICAgIEhSRVNVTFQgcmVtb3Zl
VXNlclNjcmlwdEZyb21Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1lLCBbaW5dIElXZWJTY3JpcHRX
b3JsZCosIFtpbl0gQlNUUiB1cmwpOwogICAgIEhSRVNVTFQgcmVtb3ZlVXNlclN0eWxlU2hlZXRG
cm9tR3JvdXAoW2luXSBCU1RSIGdyb3VwTmFtZSwgW2luXSBJV2ViU2NyaXB0V29ybGQqLCBbaW5d
IEJTVFIgdXJsKTsKICAgICBIUkVTVUxUIHJlbW92ZVVzZXJTY3JpcHRzRnJvbUdyb3VwKFtpbl0g
QlNUUiBncm91cE5hbWUsIFtpbl0gSVdlYlNjcmlwdFdvcmxkKik7CkBAIC0yMDcsMTcgKzIwNywx
NyBAQCBpbnRlcmZhY2UgSVdlYlZpZXdQcml2YXRlIDogSVVua25vd24KICAgICAvLyBJZiByZWN0
IGlzIDAsIHRoZSBlbnRpcmUgYmFja2luZyBzdG9yZSB3aWxsIGJlIGludmFsaWRhdGVkLgogICAg
IEhSRVNVTFQgaW52YWxpZGF0ZUJhY2tpbmdTdG9yZShbaW5dIGNvbnN0IFJFQ1QqIHJlY3QpOwog
Ci0gICAgLy8gV2hpdGVsaXN0cyBhY2Nlc3MgZnJvbSBhbiBvcmlnaW4gKHNvdXJjZU9yaWdpbikg
dG8gYSBzZXQgb2Ygb25lIG9yIG1vcmUgb3JpZ2lucyBkZXNjcmliZWQgYnkgdGhlIHBhcmFtZXRl
cnM6CisgICAgLy8gQWxsb3dMaXN0cyBhY2Nlc3MgZnJvbSBhbiBvcmlnaW4gKHNvdXJjZU9yaWdp
bikgdG8gYSBzZXQgb2Ygb25lIG9yIG1vcmUgb3JpZ2lucyBkZXNjcmliZWQgYnkgdGhlIHBhcmFt
ZXRlcnM6CiAgICAgLy8gLSBkZXN0aW5hdGlvblByb3RvY29sOiBUaGUgcHJvdG9jb2wgdG8gZ3Jh
bnQgYWNjZXNzIHRvLgogICAgIC8vIC0gZGVzdGluYXRpb25Ib3N0OiBUaGUgaG9zdCB0byBncmFu
dCBhY2Nlc3MgdG8uCi0gICAgLy8gLSBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczogSWYgaG9z
dCBpcyBhIGRvbWFpbiwgc2V0dGluZyB0aGlzIHRvIFlFUyB3aWxsIHdoaXRlbGlzdCBob3N0IGFu
ZCBhbGwgaXRzIHN1YmRvbWFpbnMsIHJlY3Vyc2l2ZWx5LgotICAgIEhSRVNVTFQgYWRkT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnkoW2luXSBCU1RSIHNvdXJjZU9yaWdpbiwgW2luXSBCU1RSIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIFtpbl0gQlNUUiBkZXN0aW5hdGlvbkhvc3QsIFtpbl0gQk9PTCBh
bGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgLy8gLSBhbGxvd0Rlc3RpbmF0aW9uU3Vi
ZG9tYWluczogSWYgaG9zdCBpcyBhIGRvbWFpbiwgc2V0dGluZyB0aGlzIHRvIFlFUyB3aWxsIGFs
bG93IGhvc3QgYW5kIGFsbCBpdHMgc3ViZG9tYWlucywgcmVjdXJzaXZlbHkuCisgICAgSFJFU1VM
VCBhZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShbaW5dIEJTVFIgc291cmNlT3JpZ2luLCBb
aW5dIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgW2luXSBCU1RSIGRlc3RpbmF0aW9uSG9zdCwg
W2luXSBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIAotICAgIC8vIFJlbW92ZXMg
YSB3aGl0ZSBsaXN0IGVudHJ5IGNyZWF0ZWQgd2l0aCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RF
bnRyeS4gU2VlIGFib3ZlLgotICAgIEhSRVNVTFQgcmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0
RW50cnkoW2luXSBCU1RSIHNvdXJjZU9yaWdpbiwgW2luXSBCU1RSIGRlc3RpbmF0aW9uUHJvdG9j
b2wsIFtpbl0gQlNUUiBkZXN0aW5hdGlvbkhvc3QsIFtpbl0gQk9PTCBhbGxvd0Rlc3RpbmF0aW9u
U3ViZG9tYWlucyk7CisgICAgLy8gUmVtb3ZlcyBhIHdoaXRlIGxpc3QgZW50cnkgY3JlYXRlZCB3
aXRoIGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5LiBTZWUgYWJvdmUuCisgICAgSFJFU1VM
VCByZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShbaW5dIEJTVFIgc291cmNlT3JpZ2lu
LCBbaW5dIEJTVFIgZGVzdGluYXRpb25Qcm90b2NvbCwgW2luXSBCU1RSIGRlc3RpbmF0aW9uSG9z
dCwgW2luXSBCT09MIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIAotICAgIC8vIFJlbW92
ZXMgYWxsIHdoaXRlIGxpc3QgZW50cmllcyBjcmVhdGVkIHdpdGggYWRkT3JpZ2luQWNjZXNzV2hp
dGVsaXN0RW50cnkuCi0gICAgSFJFU1VMVCByZXNldE9yaWdpbkFjY2Vzc1doaXRlbGlzdHMoKTsK
KyAgICAvLyBSZW1vdmVzIGFsbCB3aGl0ZSBsaXN0IGVudHJpZXMgY3JlYXRlZCB3aXRoIGFkZE9y
aWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5LgorICAgIEhSRVNVTFQgcmVzZXRPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RzKCk7CiAKICAgICBIUkVTVUxUIHNldEhpc3RvcnlEZWxlZ2F0ZShbaW5dIElXZWJI
aXN0b3J5RGVsZWdhdGUqIGhpc3RvcnlEZWxlZ2F0ZSk7CiAgICAgSFJFU1VMVCBoaXN0b3J5RGVs
ZWdhdGUoW291dCxyZXR2YWxdIElXZWJIaXN0b3J5RGVsZWdhdGUqKiBoaXN0b3J5RGVsZWdhdGUp
OwpAQCAtMzE2LDEzICszMTYsMTMgQEAgaW50ZXJmYWNlIElXZWJWaWV3UHJpdmF0ZTIgOiBJV2Vi
Vmlld1ByaQogICAgIEhSRVNVTFQgYmFja2luZ1NjYWxlRmFjdG9yKFtvdXRdIGRvdWJsZSopOwog
CiAgICAgSFJFU1VMVCBhZGRVc2VyU2NyaXB0VG9Hcm91cChbaW5dIEJTVFIgZ3JvdXBOYW1lLCBb
aW5dIElXZWJTY3JpcHRXb3JsZCosIFtpbl0gQlNUUiBzb3VyY2UsIFtpbl0gQlNUUiB1cmwsCi0g
ICAgICAgIFtpbl0gdW5zaWduZWQgd2hpdGVsaXN0Q291bnQsIFtpbiwgc2l6ZV9pcyh3aGl0ZWxp
c3RDb3VudCldIEJTVFIqIHdoaXRlbGlzdCwKLSAgICAgICAgW2luXSB1bnNpZ25lZCBibGFja2xp
c3RDb3VudCwgW2luLCBzaXplX2lzKGJsYWNrbGlzdENvdW50KV0gQlNUUiogYmxhY2tsaXN0LAor
ICAgICAgICBbaW5dIHVuc2lnbmVkIGFsbG93TGlzdENvdW50LCBbaW4sIHNpemVfaXMoYWxsb3dM
aXN0Q291bnQpXSBCU1RSKiBhbGxvd0xpc3QsCisgICAgICAgIFtpbl0gdW5zaWduZWQgYmxvY2tM
aXN0Q291bnQsIFtpbiwgc2l6ZV9pcyhibG9ja0xpc3RDb3VudCldIEJTVFIqIGJsb2NrTGlzdCwK
ICAgICAgICAgW2luXSBXZWJVc2VyU2NyaXB0SW5qZWN0aW9uVGltZSBpbmplY3Rpb25UaW1lLCBb
aW5dIFdlYlVzZXJDb250ZW50SW5qZWN0ZWRGcmFtZXMgaW5qZWN0ZWRGcmFtZXMpOwogCiAgICAg
SFJFU1VMVCBhZGRVc2VyU3R5bGVTaGVldFRvR3JvdXAoW2luXSBCU1RSIGdyb3VwTmFtZSwgW2lu
XSBJV2ViU2NyaXB0V29ybGQqLCBbaW5dIEJTVFIgc291cmNlLCBbaW5dIEJTVFIgdXJsLAotICAg
ICAgICBbaW5dIHVuc2lnbmVkIHdoaXRlbGlzdENvdW50LCBbaW4sIHNpemVfaXMod2hpdGVsaXN0
Q291bnQpXSBCU1RSKiB3aGl0ZWxpc3QsCi0gICAgICAgIFtpbl0gdW5zaWduZWQgYmxhY2tsaXN0
Q291bnQsIFtpbiwgc2l6ZV9pcyhibGFja2xpc3RDb3VudCldIEJTVFIqIGJsYWNrbGlzdCwKKyAg
ICAgICAgW2luXSB1bnNpZ25lZCBhbGxvd0xpc3RDb3VudCwgW2luLCBzaXplX2lzKGFsbG93TGlz
dENvdW50KV0gQlNUUiogYWxsb3dMaXN0LAorICAgICAgICBbaW5dIHVuc2lnbmVkIGJsb2NrTGlz
dENvdW50LCBbaW4sIHNpemVfaXMoYmxvY2tMaXN0Q291bnQpXSBCU1RSKiBibG9ja0xpc3QsCiAg
ICAgICAgIFtpbl0gV2ViVXNlckNvbnRlbnRJbmplY3RlZEZyYW1lcyBpbmplY3RlZEZyYW1lcyk7
CiB9CiAKSW5kZXg6IFRvb2xzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9DaGFuZ2VM
b2cJKHJldmlzaW9uIDI2NTE0OSkKKysrIFRvb2xzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpA
QCAtMSwzICsxLDQyIEBACisyMDIwLTA3LTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVu
c2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIG1vcmUgaW5jbHVzaXZlIHRlcm1pbm9sb2d5
IGluIFRvb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTQ5NzEKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAgICog
RHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChhZGRPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RFbnRyeUNhbGxiYWNrKToKKyAgICAgICAgKHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93
TGlzdEVudHJ5Q2FsbGJhY2spOgorICAgICAgICAoVGVzdFJ1bm5lcjo6c3RhdGljRnVuY3Rpb25z
KToKKyAgICAgICAgKGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5Q2FsbGJhY2spOiBEZWxl
dGVkLgorICAgICAgICAocmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnlDYWxsYmFjayk6
IERlbGV0ZWQuCisgICAgICAgICogRHVtcFJlbmRlclRyZWUvVGVzdFJ1bm5lci5oOgorICAgICAg
ICAqIER1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tOgorICAgICAgICAoVGVzdFJ1
bm5lcjo6YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkpOgorICAgICAgICAoVGVzdFJ1bm5l
cjo6cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkpOgorICAgICAgICAoVGVzdFJ1bm5l
cjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOiBEZWxldGVkLgorICAgICAgICAoVGVz
dFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkpOiBEZWxldGVkLgorICAg
ICAgICAqIER1bXBSZW5kZXJUcmVlL3dpbi9EdW1wUmVuZGVyVHJlZS5jcHA6CisgICAgICAgIChy
ZXNldFdlYlZpZXdUb0NvbnNpc3RlbnRTdGF0ZUJlZm9yZVRlc3RpbmcpOgorICAgICAgICAqIER1
bXBSZW5kZXJUcmVlL3dpbi9UZXN0UnVubmVyV2luLmNwcDoKKyAgICAgICAgKFRlc3RSdW5uZXI6
OmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OnJl
bW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KToKKyAgICAgICAgKFRlc3RSdW5uZXI6OmFk
ZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKFRlc3RSdW5u
ZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KTogRGVsZXRlZC4KKyAgICAgICAg
KiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFVzZXJDb250ZW50TWFu
YWdlci5jcHA6CisgICAgICAgIChyZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3Rz
KToKKyAgICAgICAgKHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmplY3RlZFN0eWxlU2hlZXQpOgor
ICAgICAgICAodGVzdFVzZXJDb250ZW50TWFuYWdlckluamVjdGVkU2NyaXB0KToKKyAgICAgICAg
KHRlc3RVc2VyQ29udGVudE1hbmFnZXJDb250ZW50RmlsdGVyKToKKyAgICAgICAgKiBXZWJLaXRU
ZXN0UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsOgorICAgICAg
ICAqIFdlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHA6CisgICAg
ICAgIChXVFI6OlRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KToKKyAg
ICAgICAgKFdUUjo6VGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkp
OgorICAgICAgICAoV1RSOjpUZXN0UnVubmVyOjphZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eSk6IERlbGV0ZWQuCisgICAgICAgIChXVFI6OlRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5KTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJLaXRUZXN0UnVubmVyL0lu
amVjdGVkQnVuZGxlL1Rlc3RSdW5uZXIuaDoKKwogMjAyMC0wNy0zMSAgU2lodWkgTGl1ICA8c2lo
dWlfbGl1QGFwcGUuY29tPgogCiAgICAgICAgIC1bV0tXZWJzaXRlRGF0YVN0b3JlIF9yZW5hbWVP
cmlnaW46XSBuZWVkcyB0byBzdXBwb3J0IEluZGV4ZWREQiByZW5hbWVzCkluZGV4OiBUb29scy9E
dW1wUmVuZGVyVHJlZS9UZXN0UnVubmVyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVu
ZGVyVHJlZS9UZXN0UnVubmVyLmNwcAkocmV2aXNpb24gMjY1MTQ5KQorKysgVG9vbHMvRHVtcFJl
bmRlclRyZWUvVGVzdFJ1bm5lci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE1MzQsNyArMTUzNCw3
IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHdhaXRGb3JQb2xpY3lEZWxlZ2F0ZUMKICAgICByZXR1cm4g
SlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4dCk7CiB9CiAKLXN0YXRpYyBKU1ZhbHVlUmVmIGFk
ZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQs
IEpTT2JqZWN0UmVmLCBKU09iamVjdFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3Vu
dCwgY29uc3QgSlNWYWx1ZVJlZiBhcmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQor
c3RhdGljIEpTVmFsdWVSZWYgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlDYWxsYmFjayhK
U0NvbnRleHRSZWYgY29udGV4dCwgSlNPYmplY3RSZWYsIEpTT2JqZWN0UmVmIHRoaXNPYmplY3Qs
IHNpemVfdCBhcmd1bWVudENvdW50LCBjb25zdCBKU1ZhbHVlUmVmIGFyZ3VtZW50c1tdLCBKU1Zh
bHVlUmVmKiBleGNlcHRpb24pCiB7CiAgICAgaWYgKGFyZ3VtZW50Q291bnQgIT0gNCkKICAgICAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwpAQCAtMTU0OCwxMSArMTU0
OCwxMSBAQCBzdGF0aWMgSlNWYWx1ZVJlZiBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpCiAgICAgYm9v
bCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyA9IEpTVmFsdWVUb0Jvb2xlYW4oY29udGV4dCwg
YXJndW1lbnRzWzNdKTsKIAogICAgIFRlc3RSdW5uZXIqIGNvbnRyb2xsZXIgPSBzdGF0aWNfY2Fz
dDxUZXN0UnVubmVyKj4oSlNPYmplY3RHZXRQcml2YXRlKHRoaXNPYmplY3QpKTsKLSAgICBjb250
cm9sbGVyLT5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShzb3VyY2VPcmlnaW4uZ2V0KCks
IGRlc3RpbmF0aW9uUHJvdG9jb2wuZ2V0KCksIGRlc3RpbmF0aW9uSG9zdC5nZXQoKSwgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIGNvbnRyb2xsZXItPmFkZE9yaWdpbkFjY2Vzc0Fs
bG93TGlzdEVudHJ5KHNvdXJjZU9yaWdpbi5nZXQoKSwgZGVzdGluYXRpb25Qcm90b2NvbC5nZXQo
KSwgZGVzdGluYXRpb25Ib3N0LmdldCgpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiAg
ICAgcmV0dXJuIEpTVmFsdWVNYWtlVW5kZWZpbmVkKGNvbnRleHQpOwogfQogCi1zdGF0aWMgSlNW
YWx1ZVJlZiByZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUNhbGxiYWNrKEpTQ29udGV4
dFJlZiBjb250ZXh0LCBKU09iamVjdFJlZiwgSlNPYmplY3RSZWYgdGhpc09iamVjdCwgc2l6ZV90
IGFyZ3VtZW50Q291bnQsIGNvbnN0IEpTVmFsdWVSZWYgYXJndW1lbnRzW10sIEpTVmFsdWVSZWYq
IGV4Y2VwdGlvbikKK3N0YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlz
dEVudHJ5Q2FsbGJhY2soSlNDb250ZXh0UmVmIGNvbnRleHQsIEpTT2JqZWN0UmVmLCBKU09iamVj
dFJlZiB0aGlzT2JqZWN0LCBzaXplX3QgYXJndW1lbnRDb3VudCwgY29uc3QgSlNWYWx1ZVJlZiBh
cmd1bWVudHNbXSwgSlNWYWx1ZVJlZiogZXhjZXB0aW9uKQogewogICAgIGlmIChhcmd1bWVudENv
dW50ICE9IDQpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlTWFrZVVuZGVmaW5lZChjb250ZXh0KTsK
QEAgLTE1NjYsNyArMTU2Niw3IEBAIHN0YXRpYyBKU1ZhbHVlUmVmIHJlbW92ZU9yaWdpbkFjY2Vz
c1doaXQKICAgICBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zID0gSlNWYWx1ZVRvQm9v
bGVhbihjb250ZXh0LCBhcmd1bWVudHNbM10pOwogCiAgICAgVGVzdFJ1bm5lciogY29udHJvbGxl
ciA9IHN0YXRpY19jYXN0PFRlc3RSdW5uZXIqPihKU09iamVjdEdldFByaXZhdGUodGhpc09iamVj
dCkpOwotICAgIGNvbnRyb2xsZXItPnJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KHNv
dXJjZU9yaWdpbi5nZXQoKSwgZGVzdGluYXRpb25Qcm90b2NvbC5nZXQoKSwgZGVzdGluYXRpb25I
b3N0LmdldCgpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgY29udHJvbGxlci0+
cmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoc291cmNlT3JpZ2luLmdldCgpLCBkZXN0
aW5hdGlvblByb3RvY29sLmdldCgpLCBkZXN0aW5hdGlvbkhvc3QuZ2V0KCksIGFsbG93RGVzdGlu
YXRpb25TdWJkb21haW5zKTsKICAgICByZXR1cm4gSlNWYWx1ZU1ha2VVbmRlZmluZWQoY29udGV4
dCk7CiB9CiAKQEAgLTIyMDcsNyArMjIwNyw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5u
ZXI6OnN0YXRpY0Z1bmMKICAgICAgICAgeyAicXVldWVOb25Mb2FkaW5nU2NyaXB0IiwgcXVldWVO
b25Mb2FkaW5nU2NyaXB0Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicXVldWVSZWxvYWQi
LCBxdWV1ZVJlbG9hZENhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pT
UHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCiAgICAgICAgIHsgInJlbW92ZUFsbFZpc2l0
ZWRMaW5rcyIsIHJlbW92ZUFsbFZpc2l0ZWRMaW5rc0NhbGxiYWNrLCBrSlNQcm9wZXJ0eUF0dHJp
YnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVsZXRlIH0sCi0gICAgICAg
IHsgInJlbW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5IiwgcmVtb3ZlT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAorICAgICAgICB7ICJyZW1vdmVPcmlnaW5B
Y2Nlc3NBbGxvd0xpc3RFbnRyeSIsIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5Q2Fs
bGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0
ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicmVwYWludFN3ZWVwSG9yaXpvbnRhbGx5IiwgcmVw
YWludFN3ZWVwSG9yaXpvbnRhbGx5Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9u
bHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAicmVzZXRQ
YWdlVmlzaWJpbGl0eSIsIHJlc2V0UGFnZVZpc2liaWxpdHlDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJzZXRBY2NlcHRzRWRpdGluZyIsIHNldEFjY2VwdHNFZGl0aW5nQ2FsbGJhY2ssIGtK
U1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxl
dGUgfSwKQEAgLTIyNzYsNyArMjI3Niw3IEBAIEpTU3RhdGljRnVuY3Rpb24qIFRlc3RSdW5uZXI6
OnN0YXRpY0Z1bmMKICAgICAgICAgeyAid2FpdEZvclBvbGljeURlbGVnYXRlIiwgd2FpdEZvclBv
bGljeURlbGVnYXRlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKICAgICAgICAgeyAid2FpdFVudGlsRG9uZSIs
IHdhaXRVbnRpbERvbmVDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFkT25seSB8IGtK
U1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJ3aW5kb3dDb3VudCIs
IHdpbmRvd0NvdW50Q2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkgfCBrSlNQ
cm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKLSAgICAgICAgeyAiYWRkT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkiLCBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeUNhbGxiYWNrLCBr
SlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250RGVs
ZXRlIH0sCisgICAgICAgIHsgImFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5IiwgYWRkT3Jp
Z2luQWNjZXNzQWxsb3dMaXN0RW50cnlDYWxsYmFjaywga0pTUHJvcGVydHlBdHRyaWJ1dGVSZWFk
T25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAgICAgICB7ICJzZXRT
Y3JvbGxiYXJQb2xpY3kiLCBzZXRTY3JvbGxiYXJQb2xpY3lDYWxsYmFjaywga0pTUHJvcGVydHlB
dHRyaWJ1dGVSZWFkT25seSB8IGtKU1Byb3BlcnR5QXR0cmlidXRlRG9udERlbGV0ZSB9LAogICAg
ICAgICB7ICJhdXRoZW50aWNhdGVTZXNzaW9uIiwgYXV0aGVudGljYXRlU2Vzc2lvbkNhbGxiYWNr
LCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZVJlYWRPbmx5IHwga0pTUHJvcGVydHlBdHRyaWJ1dGVEb250
RGVsZXRlIH0sCiAgICAgICAgIHsgInNldFNob3VsZFBhaW50QnJva2VuSW1hZ2UiLCBzZXRTaG91
bGRQYWludEJyb2tlbkltYWdlQ2FsbGJhY2ssIGtKU1Byb3BlcnR5QXR0cmlidXRlUmVhZE9ubHkg
fCBrSlNQcm9wZXJ0eUF0dHJpYnV0ZURvbnREZWxldGUgfSwKSW5kZXg6IFRvb2xzL0R1bXBSZW5k
ZXJUcmVlL1Rlc3RSdW5uZXIuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9EdW1wUmVuZGVyVHJlZS9U
ZXN0UnVubmVyLmgJKHJldmlzaW9uIDI2NTE0OSkKKysrIFRvb2xzL0R1bXBSZW5kZXJUcmVlL1Rl
c3RSdW5uZXIuaAkod29ya2luZyBjb3B5KQpAQCAtMzEzLDggKzMxMyw4IEBAIHB1YmxpYzoKICAg
ICBjb25zdCBzdGQ6OnZlY3RvcjxjaGFyPiYgYXVkaW9SZXN1bHQoKSBjb25zdCB7IHJldHVybiBt
X2F1ZGlvUmVzdWx0OyB9CiAgICAgdm9pZCBzZXRBdWRpb1Jlc3VsdChjb25zdCBzdGQ6OnZlY3Rv
cjxjaGFyPiYgYXVkaW9EYXRhKSB7IG1fYXVkaW9SZXN1bHQgPSBhdWRpb0RhdGE7IH0KIAotICAg
IHZvaWQgYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3Jp
Z2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5h
dGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwotICAgIHZvaWQgcmVt
b3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBK
U1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhv
c3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZvaWQgYWRkT3JpZ2lu
QWNjZXNzQWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1Jl
ZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wg
YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNz
QWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0
aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogCiAgICAgdm9pZCBhZGRVc2VyU2NyaXB0KEpTU3RyaW5n
UmVmIHNvdXJjZSwgYm9vbCBydW5BdFN0YXJ0LCBib29sIGFsbEZyYW1lcyk7CiAgICAgdm9pZCBh
ZGRVc2VyU3R5bGVTaGVldChKU1N0cmluZ1JlZiBzb3VyY2UsIGJvb2wgYWxsRnJhbWVzKTsKSW5k
ZXg6IFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL0R1bXBSZW5kZXJUcmVlL21hYy9UZXN0UnVubmVyTWFjLm1tCShyZXZpc2lvbiAy
NjUxNDkpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS9tYWMvVGVzdFJ1bm5lck1hYy5tbQkod29y
a2luZyBjb3B5KQpAQCAtNzUyLDcgKzc1Miw3IEBAIHZvaWQgVGVzdFJ1bm5lcjo6d2FpdEZvclBv
bGljeURlbGVnYXRlKCkKICAgICBbW21haW5GcmFtZSB3ZWJWaWV3XSBzZXRQb2xpY3lEZWxlZ2F0
ZTpwb2xpY3lEZWxlZ2F0ZV07CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNz
V2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0
aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIFRlc3RSdW5uZXI6OmFkZE9yaWdpbkFjY2Vzc0Fs
bG93TGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGlu
YXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVz
dGluYXRpb25TdWJkb21haW5zKQogewogICAgIFJldGFpblB0cjxDRlN0cmluZ1JlZj4gc291cmNl
T3JpZ2luQ0YgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9jYXRvckRlZmF1
bHQsIHNvdXJjZU9yaWdpbikpOwogICAgIE5TU3RyaW5nICpzb3VyY2VPcmlnaW5OUyA9IChfX2Jy
aWRnZSBOU1N0cmluZyAqKXNvdXJjZU9yaWdpbkNGLmdldCgpOwpAQCAtNzYzLDcgKzc2Myw3IEBA
IHZvaWQgVGVzdFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXMKICAgICBbV2ViVmlldyBf
YWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnlXaXRoU291cmNlT3JpZ2luOnNvdXJjZU9yaWdp
bk5TIGRlc3RpbmF0aW9uUHJvdG9jb2w6ZGVzdGluYXRpb25Qcm90b2NvbE5TIGRlc3RpbmF0aW9u
SG9zdDpkZXN0aW5hdGlvbkhvc3ROUyBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWluczphbGxvd0Rl
c3RpbmF0aW9uU3ViZG9tYWluc107CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1Jl
ZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wg
YWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIFRlc3RSdW5uZXI6OnJlbW92ZU9yaWdp
bkFjY2Vzc0FsbG93TGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdS
ZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29s
IGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewogICAgIFJldGFpblB0cjxDRlN0cmluZ1Jl
Zj4gc291cmNlT3JpZ2luQ0YgPSBhZG9wdENGKEpTU3RyaW5nQ29weUNGU3RyaW5nKGtDRkFsbG9j
YXRvckRlZmF1bHQsIHNvdXJjZU9yaWdpbikpOwogICAgIE5TU3RyaW5nICpzb3VyY2VPcmlnaW5O
UyA9IChfX2JyaWRnZSBOU1N0cmluZyAqKXNvdXJjZU9yaWdpbkNGLmdldCgpOwpJbmRleDogVG9v
bHMvRHVtcFJlbmRlclRyZWUvd2luL0R1bXBSZW5kZXJUcmVlLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBU
b29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCShyZXZpc2lvbiAyNjUx
NDkpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vRHVtcFJlbmRlclRyZWUuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0xMDUyLDcgKzEwNTIsNyBAQCBzdGF0aWMgdm9pZCByZXNldFdlYlZpZXdU
b0NvbnNpc3RlbnRTdGF0CiAgICAgaWYgKHdlYlZpZXdQcml2YXRlICYmIFNVQ0NFRURFRCh3ZWJW
aWV3UHJpdmF0ZS0+dmlld1dpbmRvdygmdmlld1dpbmRvdykpICYmIHZpZXdXaW5kb3cpCiAgICAg
ICAgIDo6U2V0Rm9jdXModmlld1dpbmRvdyk7CiAKLSAgICB3ZWJWaWV3UHJpdmF0ZS0+cmVzZXRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RzKCk7CisgICAgd2ViVmlld1ByaXZhdGUtPnJlc2V0T3JpZ2lu
QWNjZXNzQWxsb3dMaXN0cygpOwogCiAgICAgc2hhcmVkVUlEZWxlZ2F0ZS0+cmVzZXRVbmRvTWFu
YWdlcigpOwogCkluZGV4OiBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1bm5lcldpbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gVG9vbHMvRHVtcFJlbmRlclRyZWUvd2luL1Rlc3RSdW5uZXJXaW4u
Y3BwCShyZXZpc2lvbiAyNjUxNDkpCisrKyBUb29scy9EdW1wUmVuZGVyVHJlZS93aW4vVGVzdFJ1
bm5lcldpbi5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNzIsMjIgKzEwNzIsMjIgQEAgc3RhdGlj
IF9ic3RyX3QgYnN0clQoSlNTdHJpbmdSZWYganNTdHJpbgogICAgIHJldHVybiBfYnN0cl90KEpT
U3RyaW5nQ29weUJTVFIoanNTdHJpbmcpLCBmYWxzZSk7CiB9CiAKLXZvaWQgVGVzdFJ1bm5lcjo6
YWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBK
U1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhv
c3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpCit2b2lkIFRlc3RSdW5uZXI6OmFk
ZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNT
dHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0
LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQogewotICAgIENPTVB0cjxJV2ViVmll
d1ByaXZhdGUyPiB3ZWJWaWV3OworICAgIENPTVB0cjxJV2ViVmlld1ByaXZhdGU+IHdlYlZpZXc7
CiAgICAgaWYgKEZBSUxFRChXZWJLaXRDcmVhdGVJbnN0YW5jZShfX3V1aWRvZihXZWJWaWV3KSwg
MCwgX191dWlkb2Yod2ViVmlldyksIHJlaW50ZXJwcmV0X2Nhc3Q8dm9pZCoqPigmd2ViVmlldykp
KSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgd2ViVmlldy0+YWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoYnN0clQoc291cmNlT3JpZ2luKS5HZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9u
UHJvdG9jb2wpLkdldEJTVFIoKSwgYnN0clQoZGVzdGluYXRpb25Ib3N0KS5HZXRCU1RSKCksIGFs
bG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKKyAgICB3ZWJWaWV3LT5hZGRPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RFbnRyeShic3RyVChzb3VyY2VPcmlnaW4pLkdldEJTVFIoKSwgYnN0clQoZGVzdGlu
YXRpb25Qcm90b2NvbCkuR2V0QlNUUigpLCBic3RyVChkZXN0aW5hdGlvbkhvc3QpLkdldEJTVFIo
KSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogfQogCi12b2lkIFRlc3RSdW5uZXI6OnJl
bW92ZU9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KEpTU3RyaW5nUmVmIHNvdXJjZU9yaWdpbiwg
SlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25I
b3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKQordm9pZCBUZXN0UnVubmVyOjpy
ZW1vdmVPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4s
IEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9u
SG9zdCwgYm9vbCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKIHsKLSAgICBDT01QdHI8SVdl
YlZpZXdQcml2YXRlMj4gd2ViVmlldzsKKyAgICBDT01QdHI8SVdlYlZpZXdQcml2YXRlPiB3ZWJW
aWV3OwogICAgIGlmIChGQUlMRUQoV2ViS2l0Q3JlYXRlSW5zdGFuY2UoX191dWlkb2YoV2ViVmll
dyksIDAsIF9fdXVpZG9mKHdlYlZpZXcpLCByZWludGVycHJldF9jYXN0PHZvaWQqKj4oJndlYlZp
ZXcpKSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIHdlYlZpZXctPnJlbW92ZU9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5KGJzdHJUKHNvdXJjZU9yaWdpbikuR2V0QlNUUigpLCBic3RyVChkZXN0
aW5hdGlvblByb3RvY29sKS5HZXRCU1RSKCksIGJzdHJUKGRlc3RpbmF0aW9uSG9zdCkuR2V0QlNU
UigpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CisgICAgd2ViVmlldy0+cmVtb3ZlT3Jp
Z2luQWNjZXNzQWxsb3dMaXN0RW50cnkoYnN0clQoc291cmNlT3JpZ2luKS5HZXRCU1RSKCksIGJz
dHJUKGRlc3RpbmF0aW9uUHJvdG9jb2wpLkdldEJTVFIoKSwgYnN0clQoZGVzdGluYXRpb25Ib3N0
KS5HZXRCU1RSKCksIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKIH0KIAogdm9pZCBUZXN0
UnVubmVyOjpzZXRTY3JvbGxiYXJQb2xpY3koSlNTdHJpbmdSZWYgb3JpZW50YXRpb24sIEpTU3Ry
aW5nUmVmIHBvbGljeSkKSW5kZXg6IFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xp
Yi9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBUb29scy9U
ZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFdlYktpdFVzZXJDb250ZW50TWFuYWdl
ci5jcHAJKHJldmlzaW9uIDI2NTE0OSkKKysrIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2Vi
S2l0R0xpYi9UZXN0V2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMTIwLDMzICsxMjAsMzMgQEAgc3RhdGljIHZvaWQgZmlsbFVSTExpc3RGcm9tUGF0aHMoY2hh
cioqIAogICAgIH0KIH0KIAotc3RhdGljIHZvaWQgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5k
UmVzZXRMaXN0cyhXZWJLaXRVc2VyQ29udGVudE1hbmFnZXIqIHVzZXJDb250ZW50TWFuYWdlciwg
Y2hhcioqIHdoaXRlbGlzdCwgY2hhcioqIGJsYWNrbGlzdCkKK3N0YXRpYyB2b2lkIHJlbW92ZU9s
ZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHMoV2ViS2l0VXNlckNvbnRlbnRNYW5hZ2VyKiB1
c2VyQ29udGVudE1hbmFnZXIsIGNoYXIqKiBhbGxvd0xpc3QsIGNoYXIqKiBibG9ja0xpc3QpCiB7
CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3JlbW92ZV9hbGxfc3R5bGVfc2hlZXRz
KHVzZXJDb250ZW50TWFuYWdlcik7CiAgICAgd2Via2l0X3VzZXJfY29udGVudF9tYW5hZ2VyX3Jl
bW92ZV9hbGxfc2NyaXB0cyh1c2VyQ29udGVudE1hbmFnZXIpOwogICAgIHdlYmtpdF91c2VyX2Nv
bnRlbnRfbWFuYWdlcl9yZW1vdmVfYWxsX2ZpbHRlcnModXNlckNvbnRlbnRNYW5hZ2VyKTsKIAot
ICAgIHdoaWxlICgqd2hpdGVsaXN0KSB7Ci0gICAgICAgIGdfZnJlZSgqd2hpdGVsaXN0KTsKLSAg
ICAgICAgKndoaXRlbGlzdCA9IDA7Ci0gICAgICAgIHdoaXRlbGlzdCsrOworICAgIHdoaWxlICgq
YWxsb3dMaXN0KSB7CisgICAgICAgIGdfZnJlZSgqYWxsb3dMaXN0KTsKKyAgICAgICAgKmFsbG93
TGlzdCA9IDA7CisgICAgICAgIGFsbG93TGlzdCsrOwogICAgIH0KIAotICAgIHdoaWxlICgqYmxh
Y2tsaXN0KSB7Ci0gICAgICAgIGdfZnJlZSgqYmxhY2tsaXN0KTsKLSAgICAgICAgKmJsYWNrbGlz
dCA9IDA7Ci0gICAgICAgIGJsYWNrbGlzdCsrOworICAgIHdoaWxlICgqYmxvY2tMaXN0KSB7Cisg
ICAgICAgIGdfZnJlZSgqYmxvY2tMaXN0KTsKKyAgICAgICAgKmJsb2NrTGlzdCA9IDA7CisgICAg
ICAgIGJsb2NrTGlzdCsrOwogICAgIH0KIH0KIAogc3RhdGljIHZvaWQgdGVzdFVzZXJDb250ZW50
TWFuYWdlckluamVjdGVkU3R5bGVTaGVldChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRl
cikKIHsKLSAgICBjaGFyKiB3aGl0ZWxpc3RbM10gPSB7IDAsIDAsIDAgfTsKLSAgICBjaGFyKiBi
bGFja2xpc3RbM10gPSB7IDAsIDAsIDAgfTsKKyAgICBjaGFyKiBhbGxvd0xpc3RbM10gPSB7IDAs
IDAsIDAgfTsKKyAgICBjaGFyKiBibG9ja0xpc3RbM10gPSB7IDAsIDAsIDAgfTsKIAotICAgIHJl
bW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1h
bmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3Rl
ZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBh
bGxvd0xpc3QsIGJsb2NrTGlzdCk7CiAKLSAgICAvLyBXaXRob3V0IGEgd2hpdGVsaXN0IG9yIGEg
YmxhY2tsaXN0IGFsbCBVUkxzIHNob3VsZCBoYXZlIHRoZSBpbmplY3RlZCBzdHlsZSBzaGVldC4K
KyAgICAvLyBXaXRob3V0IGEgYWxsb3dMaXN0IG9yIGEgYmxvY2tMaXN0IGFsbCBVUkxzIHNob3Vs
ZCBoYXZlIHRoZSBpbmplY3RlZCBzdHlsZSBzaGVldC4KICAgICBzdGF0aWMgY29uc3QgY2hhciog
cmFuZG9tUGF0aCA9ICJzb21lcmFuZG9tcGF0aCI7CiAgICAgZ19hc3NlcnRfZmFsc2UoaXNTdHls
ZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgcmFuZG9tUGF0aCkpOwogICAgIFdlYktp
dFVzZXJTdHlsZVNoZWV0KiBzdHlsZVNoZWV0ID0gd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfbmV3
KGtJbmplY3RlZFN0eWxlU2hlZXQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFN
RVMsIFdFQktJVF9VU0VSX1NUWUxFX0xFVkVMX1VTRVIsIG51bGxwdHIsIG51bGxwdHIpOwpAQCAt
MTU0LDcgKzE1NCw3IEBAIHN0YXRpYyB2b2lkIHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmplY3QK
ICAgICB3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF91bnJlZihzdHlsZVNoZWV0KTsKICAgICBnX2Fz
c2VydF90cnVlKGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIHJhbmRvbVBh
dGgpKTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+
bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICBy
ZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRN
YW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiAKICAgICBnX2Fzc2VydF9mYWxz
ZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoLCAiV2Vi
RXh0ZW5zaW9uVGVzdFNjcmlwdFdvcmxkIikpOwogICAgIHN0eWxlU2hlZXQgPSB3ZWJraXRfdXNl
cl9zdHlsZV9zaGVldF9uZXdfZm9yX3dvcmxkKGtJbmplY3RlZFN0eWxlU2hlZXQsIFdFQktJVF9V
U0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFNRVMsIFdFQktJVF9VU0VSX1NUWUxFX0xFVkVMX1VT
RVIsICJXZWJFeHRlbnNpb25UZXN0U2NyaXB0V29ybGQiLCBudWxscHRyLCBudWxscHRyKTsKQEAg
LTE2Miw0MiArMTYyLDQyIEBAIHN0YXRpYyB2b2lkIHRlc3RVc2VyQ29udGVudE1hbmFnZXJJbmpl
Y3QKICAgICB3ZWJraXRfdXNlcl9zdHlsZV9zaGVldF91bnJlZihzdHlsZVNoZWV0KTsKICAgICBn
X2Fzc2VydF90cnVlKGlzU3R5bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIHJhbmRv
bVBhdGgsICJXZWJFeHRlbnNpb25UZXN0U2NyaXB0V29ybGQiKSk7CiAKLSAgICByZW1vdmVPbGRJ
bmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdl
dCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50
QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgYWxsb3dMaXN0
LCBibG9ja0xpc3QpOwogCi0gICAgZmlsbFVSTExpc3RGcm9tUGF0aHMoYmxhY2tsaXN0LCByYW5k
b21QYXRoLCAwKTsKLSAgICBzdHlsZVNoZWV0ID0gd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfbmV3
KGtJbmplY3RlZFN0eWxlU2hlZXQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFN
RVMsIFdFQktJVF9VU0VSX1NUWUxFX0xFVkVMX1VTRVIsIG51bGxwdHIsIGJsYWNrbGlzdCk7Cisg
ICAgZmlsbFVSTExpc3RGcm9tUGF0aHMoYmxvY2tMaXN0LCByYW5kb21QYXRoLCAwKTsKKyAgICBz
dHlsZVNoZWV0ID0gd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfbmV3KGtJbmplY3RlZFN0eWxlU2hl
ZXQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFNRVMsIFdFQktJVF9VU0VSX1NU
WUxFX0xFVkVMX1VTRVIsIG51bGxwdHIsIGJsb2NrTGlzdCk7CiAgICAgd2Via2l0X3VzZXJfY29u
dGVudF9tYW5hZ2VyX2FkZF9zdHlsZV9zaGVldCh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5n
ZXQoKSwgc3R5bGVTaGVldCk7CiAgICAgd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfdW5yZWYoc3R5
bGVTaGVldCk7CiAgICAgZ19hc3NlcnRfZmFsc2UoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxB
dFBhdGgodGVzdCwgcmFuZG9tUGF0aCkpOwogICAgIGdfYXNzZXJ0X3RydWUoaXNTdHlsZVNoZWV0
SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgInNvbWVvdGhlcnJhbmRvbXBhdGgiKSk7CiAKLSAg
ICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRl
bnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5q
ZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQo
KSwgYWxsb3dMaXN0LCBibG9ja0xpc3QpOwogCi0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhl
V2hpdGVMaXN0ID0gImludGhld2hpdGVsaXN0IjsKLSAgICBzdGF0aWMgY29uc3QgY2hhciogbm90
SW5XaGl0ZWxpc3QgPSAibm90aW50aGV3aGl0ZWxpc3QiOwotICAgIHN0YXRpYyBjb25zdCBjaGFy
KiBpblRoZVdoaXRlTGlzdEFuZEJsYWNrTGlzdCA9ICJpbnRoZXdoaXRlbGlzdGFuZGJsYWNrbGlz
dCI7Ci0KLSAgICBmaWxsVVJMTGlzdEZyb21QYXRocyh3aGl0ZWxpc3QsIGluVGhlV2hpdGVMaXN0
LCBpblRoZVdoaXRlTGlzdEFuZEJsYWNrTGlzdCwgMCk7Ci0gICAgZmlsbFVSTExpc3RGcm9tUGF0
aHMoYmxhY2tsaXN0LCBpblRoZVdoaXRlTGlzdEFuZEJsYWNrTGlzdCwgMCk7Ci0gICAgc3R5bGVT
aGVldCA9IHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X25ldyhrSW5qZWN0ZWRTdHlsZVNoZWV0LCBX
RUJLSVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJLSVRfVVNFUl9TVFlMRV9M
RVZFTF9VU0VSLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgc3RhdGljIGNvbnN0IGNoYXIq
IGluVGhlQWxsb3dMaXN0ID0gImludGhlYWxsb3dsaXN0IjsKKyAgICBzdGF0aWMgY29uc3QgY2hh
ciogbm90SW5BbGxvd0xpc3QgPSAibm90aW50aGVhbGxvd2xpc3QiOworICAgIHN0YXRpYyBjb25z
dCBjaGFyKiBpblRoZUFsbG93TGlzdEFuZEJsb2NrTGlzdCA9ICJpbnRoZWFsbG93bGlzdGFuZGJs
b2NrbGlzdCI7CisKKyAgICBmaWxsVVJMTGlzdEZyb21QYXRocyhhbGxvd0xpc3QsIGluVGhlQWxs
b3dMaXN0LCBpblRoZUFsbG93TGlzdEFuZEJsb2NrTGlzdCwgMCk7CisgICAgZmlsbFVSTExpc3RG
cm9tUGF0aHMoYmxvY2tMaXN0LCBpblRoZUFsbG93TGlzdEFuZEJsb2NrTGlzdCwgMCk7CisgICAg
c3R5bGVTaGVldCA9IHdlYmtpdF91c2VyX3N0eWxlX3NoZWV0X25ldyhrSW5qZWN0ZWRTdHlsZVNo
ZWV0LCBXRUJLSVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJLSVRfVVNFUl9T
VFlMRV9MRVZFTF9VU0VSLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiAgICAgd2Via2l0X3VzZXJf
Y29udGVudF9tYW5hZ2VyX2FkZF9zdHlsZV9zaGVldCh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdl
ci5nZXQoKSwgc3R5bGVTaGVldCk7CiAgICAgd2Via2l0X3VzZXJfc3R5bGVfc2hlZXRfdW5yZWYo
c3R5bGVTaGVldCk7Ci0gICAgZ19hc3NlcnRfdHJ1ZShpc1N0eWxlU2hlZXRJbmplY3RlZEZvclVS
TEF0UGF0aCh0ZXN0LCBpblRoZVdoaXRlTGlzdCkpOwotICAgIGdfYXNzZXJ0X2ZhbHNlKGlzU3R5
bGVTaGVldEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIGluVGhlV2hpdGVMaXN0QW5kQmxhY2tM
aXN0KSk7Ci0gICAgZ19hc3NlcnRfZmFsc2UoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBh
dGgodGVzdCwgbm90SW5XaGl0ZWxpc3QpKTsKKyAgICBnX2Fzc2VydF90cnVlKGlzU3R5bGVTaGVl
dEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIGluVGhlQWxsb3dMaXN0KSk7CisgICAgZ19hc3Nl
cnRfZmFsc2UoaXNTdHlsZVNoZWV0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5UaGVBbGxv
d0xpc3RBbmRCbG9ja0xpc3QpKTsKKyAgICBnX2Fzc2VydF9mYWxzZShpc1N0eWxlU2hlZXRJbmpl
Y3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBub3RJbkFsbG93TGlzdCkpOwogCiAgICAgLy8gSXQncyBp
bXBvcnRhbnQgdG8gY2xlYW4gdXAgdGhlIGVudmlyb25tZW50IGJlZm9yZSBvdGhlciB0ZXN0cy4K
LSAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNv
bnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xk
SW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5n
ZXQoKSwgYWxsb3dMaXN0LCBibG9ja0xpc3QpOwogfQogCiBzdGF0aWMgdm9pZCB0ZXN0VXNlckNv
bnRlbnRNYW5hZ2VySW5qZWN0ZWRTY3JpcHQoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50
ZXIpCiB7Ci0gICAgY2hhciogd2hpdGVsaXN0WzNdID0geyAwLCAwLCAwIH07Ci0gICAgY2hhciog
YmxhY2tsaXN0WzNdID0geyAwLCAwLCAwIH07CisgICAgY2hhciogYWxsb3dMaXN0WzNdID0geyAw
LCAwLCAwIH07CisgICAgY2hhciogYmxvY2tMaXN0WzNdID0geyAwLCAwLCAwIH07CiAKLSAgICBy
ZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRN
YW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgcmVtb3ZlT2xkSW5qZWN0
ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwg
YWxsb3dMaXN0LCBibG9ja0xpc3QpOwogCi0gICAgLy8gV2l0aG91dCBhIHdoaXRlbGlzdCBvciBh
IGJsYWNrbGlzdCBhbGwgVVJMcyBzaG91bGQgaGF2ZSB0aGUgaW5qZWN0ZWQgc2NyaXB0LgorICAg
IC8vIFdpdGhvdXQgYSBhbGxvd0xpc3Qgb3IgYSBibG9ja0xpc3QgYWxsIFVSTHMgc2hvdWxkIGhh
dmUgdGhlIGluamVjdGVkIHNjcmlwdC4KICAgICBzdGF0aWMgY29uc3QgY2hhciogcmFuZG9tUGF0
aCA9ICJzb21lcmFuZG9tcGF0aCI7CiAgICAgZ19hc3NlcnRfZmFsc2UoaXNTY3JpcHRJbmplY3Rl
ZEZvclVSTEF0UGF0aCh0ZXN0LCByYW5kb21QYXRoKSk7CiAgICAgV2ViS2l0VXNlclNjcmlwdCog
c2NyaXB0ID0gd2Via2l0X3VzZXJfc2NyaXB0X25ldyhrSW5qZWN0ZWRTY3JpcHQsIFdFQktJVF9V
U0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFNRVMsIFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1Rf
QVRfRE9DVU1FTlRfRU5ELCBudWxscHRyLCBudWxscHRyKTsKQEAgLTIwNSw3ICsyMDUsNyBAQCBz
dGF0aWMgdm9pZCB0ZXN0VXNlckNvbnRlbnRNYW5hZ2VySW5qZWN0CiAgICAgd2Via2l0X3VzZXJf
c2NyaXB0X3VucmVmKHNjcmlwdCk7CiAgICAgZ19hc3NlcnRfdHJ1ZShpc1NjcmlwdEluamVjdGVk
Rm9yVVJMQXRQYXRoKHRlc3QsIHJhbmRvbVBhdGgpKTsKIAotICAgIHJlbW92ZU9sZEluamVjdGVk
Q29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCksIHdo
aXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNl
dExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJsb2Nr
TGlzdCk7CiAKICAgICBnX2Fzc2VydF9mYWxzZShpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRo
KHRlc3QsIHJhbmRvbVBhdGgsICJXZWJFeHRlbnNpb25UZXN0U2NyaXB0V29ybGQiKSk7CiAgICAg
c2NyaXB0ID0gd2Via2l0X3VzZXJfc2NyaXB0X25ld19mb3Jfd29ybGQoa0luamVjdGVkU2NyaXB0
LCBXRUJLSVRfVVNFUl9DT05URU5UX0lOSkVDVF9BTExfRlJBTUVTLCBXRUJLSVRfVVNFUl9TQ1JJ
UFRfSU5KRUNUX0FUX0RPQ1VNRU5UX0VORCwgIldlYkV4dGVuc2lvblRlc3RTY3JpcHRXb3JsZCIs
IG51bGxwdHIsIG51bGxwdHIpOwpAQCAtMjEzLDMyICsyMTMsMzIgQEAgc3RhdGljIHZvaWQgdGVz
dFVzZXJDb250ZW50TWFuYWdlckluamVjdAogICAgIHdlYmtpdF91c2VyX3NjcmlwdF91bnJlZihz
Y3JpcHQpOwogICAgIGdfYXNzZXJ0X3RydWUoaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0
ZXN0LCByYW5kb21QYXRoLCAiV2ViRXh0ZW5zaW9uVGVzdFNjcmlwdFdvcmxkIikpOwogCi0gICAg
cmVtb3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50
TWFuYWdlci5nZXQoKSwgd2hpdGVsaXN0LCBibGFja2xpc3QpOworICAgIHJlbW92ZU9sZEluamVj
dGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCks
IGFsbG93TGlzdCwgYmxvY2tMaXN0KTsKIAotICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKGJsYWNr
bGlzdCwgcmFuZG9tUGF0aCwgMCk7Ci0gICAgc2NyaXB0ID0gd2Via2l0X3VzZXJfc2NyaXB0X25l
dyhrSW5qZWN0ZWRTY3JpcHQsIFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFNRVMs
IFdFQktJVF9VU0VSX1NDUklQVF9JTkpFQ1RfQVRfRE9DVU1FTlRfRU5ELCBudWxscHRyLCBibGFj
a2xpc3QpOworICAgIGZpbGxVUkxMaXN0RnJvbVBhdGhzKGJsb2NrTGlzdCwgcmFuZG9tUGF0aCwg
MCk7CisgICAgc2NyaXB0ID0gd2Via2l0X3VzZXJfc2NyaXB0X25ldyhrSW5qZWN0ZWRTY3JpcHQs
IFdFQktJVF9VU0VSX0NPTlRFTlRfSU5KRUNUX0FMTF9GUkFNRVMsIFdFQktJVF9VU0VSX1NDUklQ
VF9JTkpFQ1RfQVRfRE9DVU1FTlRfRU5ELCBudWxscHRyLCBibG9ja0xpc3QpOwogICAgIHdlYmtp
dF91c2VyX2NvbnRlbnRfbWFuYWdlcl9hZGRfc2NyaXB0KHRlc3QtPm1fdXNlckNvbnRlbnRNYW5h
Z2VyLmdldCgpLCBzY3JpcHQpOwogICAgIHdlYmtpdF91c2VyX3NjcmlwdF91bnJlZihzY3JpcHQp
OwogICAgIGdfYXNzZXJ0X2ZhbHNlKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwg
cmFuZG9tUGF0aCkpOwogICAgIGdfYXNzZXJ0X3RydWUoaXNTY3JpcHRJbmplY3RlZEZvclVSTEF0
UGF0aCh0ZXN0LCAic29tZW90aGVycmFuZG9tcGF0aCIpKTsKIAotICAgIHJlbW92ZU9sZEluamVj
dGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29udGVudE1hbmFnZXIuZ2V0KCks
IHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRS
ZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCBhbGxvd0xpc3QsIGJs
b2NrTGlzdCk7CiAKLSAgICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVXaGl0ZUxpc3QgPSAiaW50
aGV3aGl0ZWxpc3QiOwotICAgIHN0YXRpYyBjb25zdCBjaGFyKiBub3RJbldoaXRlbGlzdCA9ICJu
b3RpbnRoZXdoaXRlbGlzdCI7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhlV2hpdGVMaXN0
QW5kQmxhY2tMaXN0ID0gImludGhld2hpdGVsaXN0YW5kYmxhY2tsaXN0IjsKLQotICAgIGZpbGxV
UkxMaXN0RnJvbVBhdGhzKHdoaXRlbGlzdCwgaW5UaGVXaGl0ZUxpc3QsIGluVGhlV2hpdGVMaXN0
QW5kQmxhY2tMaXN0LCAwKTsKLSAgICBmaWxsVVJMTGlzdEZyb21QYXRocyhibGFja2xpc3QsIGlu
VGhlV2hpdGVMaXN0QW5kQmxhY2tMaXN0LCAwKTsKLSAgICBzY3JpcHQgPSB3ZWJraXRfdXNlcl9z
Y3JpcHRfbmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpFQ1RfQUxM
X0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQsIHdoaXRl
bGlzdCwgYmxhY2tsaXN0KTsKKyAgICBzdGF0aWMgY29uc3QgY2hhciogaW5UaGVBbGxvd0xpc3Qg
PSAiaW50aGVhbGxvd2xpc3QiOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiBub3RJbkFsbG93TGlz
dCA9ICJub3RpbnRoZWFsbG93bGlzdCI7CisgICAgc3RhdGljIGNvbnN0IGNoYXIqIGluVGhlQWxs
b3dMaXN0QW5kQmxvY2tMaXN0ID0gImludGhlYWxsb3dsaXN0YW5kYmxvY2tMaXN0IjsKKworICAg
IGZpbGxVUkxMaXN0RnJvbVBhdGhzKGFsbG93TGlzdCwgaW5UaGVBbGxvd0xpc3QsIGluVGhlQWxs
b3dMaXN0QW5kQmxvY2tMaXN0LCAwKTsKKyAgICBmaWxsVVJMTGlzdEZyb21QYXRocyhibG9ja0xp
c3QsIGluVGhlQWxsb3dMaXN0QW5kQmxvY2tMaXN0LCAwKTsKKyAgICBzY3JpcHQgPSB3ZWJraXRf
dXNlcl9zY3JpcHRfbmV3KGtJbmplY3RlZFNjcmlwdCwgV0VCS0lUX1VTRVJfQ09OVEVOVF9JTkpF
Q1RfQUxMX0ZSQU1FUywgV0VCS0lUX1VTRVJfU0NSSVBUX0lOSkVDVF9BVF9ET0NVTUVOVF9FTkQs
IGFsbG93TGlzdCwgYmxvY2tMaXN0KTsKICAgICB3ZWJraXRfdXNlcl9jb250ZW50X21hbmFnZXJf
YWRkX3NjcmlwdCh0ZXN0LT5tX3VzZXJDb250ZW50TWFuYWdlci5nZXQoKSwgc2NyaXB0KTsKICAg
ICB3ZWJraXRfdXNlcl9zY3JpcHRfdW5yZWYoc2NyaXB0KTsKLSAgICBnX2Fzc2VydF90cnVlKGlz
U2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5UaGVXaGl0ZUxpc3QpKTsKLSAgICBn
X2Fzc2VydF9mYWxzZShpc1NjcmlwdEluamVjdGVkRm9yVVJMQXRQYXRoKHRlc3QsIGluVGhlV2hp
dGVMaXN0QW5kQmxhY2tMaXN0KSk7Ci0gICAgZ19hc3NlcnRfZmFsc2UoaXNTY3JpcHRJbmplY3Rl
ZEZvclVSTEF0UGF0aCh0ZXN0LCBub3RJbldoaXRlbGlzdCkpOworICAgIGdfYXNzZXJ0X3RydWUo
aXNTY3JpcHRJbmplY3RlZEZvclVSTEF0UGF0aCh0ZXN0LCBpblRoZUFsbG93TGlzdCkpOworICAg
IGdfYXNzZXJ0X2ZhbHNlKGlzU2NyaXB0SW5qZWN0ZWRGb3JVUkxBdFBhdGgodGVzdCwgaW5UaGVB
bGxvd0xpc3RBbmRCbG9ja0xpc3QpKTsKKyAgICBnX2Fzc2VydF9mYWxzZShpc1NjcmlwdEluamVj
dGVkRm9yVVJMQXRQYXRoKHRlc3QsIG5vdEluQWxsb3dMaXN0KSk7CiAKICAgICAvLyBJdCdzIGlt
cG9ydGFudCB0byBjbGVhbiB1cCB0aGUgZW52aXJvbm1lbnQgYmVmb3JlIG90aGVyIHRlc3RzLgot
ICAgIHJlbW92ZU9sZEluamVjdGVkQ29udGVudEFuZFJlc2V0TGlzdHModGVzdC0+bV91c2VyQ29u
dGVudE1hbmFnZXIuZ2V0KCksIHdoaXRlbGlzdCwgYmxhY2tsaXN0KTsKKyAgICByZW1vdmVPbGRJ
bmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1fdXNlckNvbnRlbnRNYW5hZ2VyLmdl
dCgpLCBhbGxvd0xpc3QsIGJsb2NrTGlzdCk7CiB9CiAKIGNsYXNzIFVzZXJTY3JpcHRNZXNzYWdl
VGVzdCA6IHB1YmxpYyBXZWJWaWV3VGVzdCB7CkBAIC00NzcsMTAgKzQ3NywxMCBAQCBzdGF0aWMg
V2ViS2l0VXNlckNvbnRlbnRGaWx0ZXIqIGdldFVzZXJDCiAKIHN0YXRpYyB2b2lkIHRlc3RVc2Vy
Q29udGVudE1hbmFnZXJDb250ZW50RmlsdGVyKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2lu
dGVyKQogewotICAgIGNoYXIqIHdoaXRlbGlzdFtdID0geyBudWxscHRyLCBudWxscHRyLCBudWxs
cHRyIH07Ci0gICAgY2hhciogYmxhY2tsaXN0W10gPSB7IG51bGxwdHIsIG51bGxwdHIsIG51bGxw
dHIgfTsKKyAgICBjaGFyKiBhbGxvd0xpc3RbXSA9IHsgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0
ciB9OworICAgIGNoYXIqIGJsb2NrTGlzdFtdID0geyBudWxscHRyLCBudWxscHRyLCBudWxscHRy
IH07CiAKLSAgICByZW1vdmVPbGRJbmplY3RlZENvbnRlbnRBbmRSZXNldExpc3RzKHRlc3QtPm1f
dXNlckNvbnRlbnRNYW5hZ2VyLmdldCgpLCB3aGl0ZWxpc3QsIGJsYWNrbGlzdCk7CisgICAgcmVt
b3ZlT2xkSW5qZWN0ZWRDb250ZW50QW5kUmVzZXRMaXN0cyh0ZXN0LT5tX3VzZXJDb250ZW50TWFu
YWdlci5nZXQoKSwgYWxsb3dMaXN0LCBibG9ja0xpc3QpOwogCiAgICAgc3RhdGljIGNvbnN0IGNo
YXIqIHNvbWVQYXRoID0gInNvbWVwYXRoIjsKICAgICBnX2Fzc2VydF9mYWxzZShpc0NTU0Jsb2Nr
ZWRGb3JVUkxBdFBhdGgodGVzdCwgc29tZVBhdGgpKTsKSW5kZXg6IFRvb2xzL1dlYktpdFRlc3RS
dW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1bm5lci5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9vbHMv
V2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmNwcAkocmV2aXNpb24g
MjY1MTQ5KQorKysgVG9vbHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVu
bmVyLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTcxLDEyICs1NzEsMTIgQEAgdm9pZCBUZXN0UnVu
bmVyOjpzZXRBdXRob3JBbmRVc2VyU3R5bGVzRQogICAgIFdLQnVuZGxlU2V0QXV0aG9yQW5kVXNl
clN0eWxlc0VuYWJsZWQoaW5qZWN0ZWRCdW5kbGUuYnVuZGxlKCksIGluamVjdGVkQnVuZGxlLnBh
Z2VHcm91cCgpLCBlbmFibGVkKTsKIH0KIAotdm9pZCBUZXN0UnVubmVyOjphZGRPcmlnaW5BY2Nl
c3NXaGl0ZWxpc3RFbnRyeShKU1N0cmluZ1JlZiBzb3VyY2VPcmlnaW4sIEpTU3RyaW5nUmVmIGRl
c3RpbmF0aW9uUHJvdG9jb2wsIEpTU3RyaW5nUmVmIGRlc3RpbmF0aW9uSG9zdCwgYm9vbCBhbGxv
d0Rlc3RpbmF0aW9uU3ViZG9tYWlucykKK3ZvaWQgVGVzdFJ1bm5lcjo6YWRkT3JpZ2luQWNjZXNz
QWxsb3dMaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0
aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dE
ZXN0aW5hdGlvblN1YmRvbWFpbnMpCiB7CiAgICAgV0tCdW5kbGVBZGRPcmlnaW5BY2Nlc3NBbGxv
d0xpc3RFbnRyeShJbmplY3RlZEJ1bmRsZTo6c2luZ2xldG9uKCkuYnVuZGxlKCksIHRvV0soc291
cmNlT3JpZ2luKS5nZXQoKSwgdG9XSyhkZXN0aW5hdGlvblByb3RvY29sKS5nZXQoKSwgdG9XSyhk
ZXN0aW5hdGlvbkhvc3QpLmdldCgpLCBhbGxvd0Rlc3RpbmF0aW9uU3ViZG9tYWlucyk7CiB9CiAK
LXZvaWQgVGVzdFJ1bm5lcjo6cmVtb3ZlT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJp
bmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0
cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMp
Cit2b2lkIFRlc3RSdW5uZXI6OnJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KEpTU3Ry
aW5nUmVmIHNvdXJjZU9yaWdpbiwgSlNTdHJpbmdSZWYgZGVzdGluYXRpb25Qcm90b2NvbCwgSlNT
dHJpbmdSZWYgZGVzdGluYXRpb25Ib3N0LCBib29sIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5z
KQogewogICAgIFdLQnVuZGxlUmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoSW5qZWN0
ZWRCdW5kbGU6OnNpbmdsZXRvbigpLmJ1bmRsZSgpLCB0b1dLKHNvdXJjZU9yaWdpbikuZ2V0KCks
IHRvV0soZGVzdGluYXRpb25Qcm90b2NvbCkuZ2V0KCksIHRvV0soZGVzdGluYXRpb25Ib3N0KS5n
ZXQoKSwgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwogfQpJbmRleDogVG9vbHMvV2ViS2l0
VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gVG9v
bHMvV2ViS2l0VGVzdFJ1bm5lci9JbmplY3RlZEJ1bmRsZS9UZXN0UnVubmVyLmgJKHJldmlzaW9u
IDI2NTE0OSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvVGVzdFJ1
bm5lci5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMTUsOCArMTE1LDggQEAgcHVibGljOgogICAgIHZv
aWQgc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzZXRBdXRob3JBbmRV
c2VyU3R5bGVzRW5hYmxlZChib29sKTsKICAgICB2b2lkIHNldEN1c3RvbVBvbGljeURlbGVnYXRl
KGJvb2wgZW5hYmxlZCwgYm9vbCBwZXJtaXNzaXZlID0gZmFsc2UpOwotICAgIHZvaWQgYWRkT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmlu
Z1JlZiBkZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJv
b2wgYWxsb3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOwotICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBk
ZXN0aW5hdGlvblByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxs
b3dEZXN0aW5hdGlvblN1YmRvbWFpbnMpOworICAgIHZvaWQgYWRkT3JpZ2luQWNjZXNzQWxsb3dM
aXN0RW50cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlv
blByb3RvY29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5h
dGlvblN1YmRvbWFpbnMpOworICAgIHZvaWQgcmVtb3ZlT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50
cnkoSlNTdHJpbmdSZWYgc291cmNlT3JpZ2luLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvblByb3Rv
Y29sLCBKU1N0cmluZ1JlZiBkZXN0aW5hdGlvbkhvc3QsIGJvb2wgYWxsb3dEZXN0aW5hdGlvblN1
YmRvbWFpbnMpOwogICAgIHZvaWQgc2V0VXNlclN0eWxlU2hlZXRFbmFibGVkKGJvb2wpOwogICAg
IHZvaWQgc2V0VXNlclN0eWxlU2hlZXRMb2NhdGlvbihKU1N0cmluZ1JlZik7CiAgICAgdm9pZCBz
ZXRTcGF0aWFsTmF2aWdhdGlvbkVuYWJsZWQoYm9vbCk7CkluZGV4OiBUb29scy9XZWJLaXRUZXN0
UnVubmVyL0luamVjdGVkQnVuZGxlL0JpbmRpbmdzL1Rlc3RSdW5uZXIuaWRsCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5qZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1
bm5lci5pZGwJKHJldmlzaW9uIDI2NTE0OSkKKysrIFRvb2xzL1dlYktpdFRlc3RSdW5uZXIvSW5q
ZWN0ZWRCdW5kbGUvQmluZGluZ3MvVGVzdFJ1bm5lci5pZGwJKHdvcmtpbmcgY29weSkKQEAgLTg4
LDggKzg4LDggQEAgaW50ZXJmYWNlIFRlc3RSdW5uZXIgewogICAgIHZvaWQgc2V0UG9wdXBCbG9j
a2luZ0VuYWJsZWQoYm9vbGVhbiB2YWx1ZSk7CiAgICAgdm9pZCBzZXRBdXRob3JBbmRVc2VyU3R5
bGVzRW5hYmxlZChib29sZWFuIHZhbHVlKTsKICAgICB2b2lkIHNldEN1c3RvbVBvbGljeURlbGVn
YXRlKGJvb2xlYW4gZW5hYmxlZCwgYm9vbGVhbiBwZXJtaXNzaXZlKTsKLSAgICB2b2lkIGFkZE9y
aWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KERPTVN0cmluZyBzb3VyY2VPcmlnaW4sIERPTVN0cmlu
ZyBkZXN0aW5hdGlvblByb3RvY29sLCBET01TdHJpbmcgZGVzdGluYXRpb25Ib3N0LCBib29sZWFu
IGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsKLSAgICB2b2lkIHJlbW92ZU9yaWdpbkFjY2Vz
c1doaXRlbGlzdEVudHJ5KERPTVN0cmluZyBzb3VyY2VPcmlnaW4sIERPTVN0cmluZyBkZXN0aW5h
dGlvblByb3RvY29sLCBET01TdHJpbmcgZGVzdGluYXRpb25Ib3N0LCBib29sZWFuIGFsbG93RGVz
dGluYXRpb25TdWJkb21haW5zKTsKKyAgICB2b2lkIGFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVu
dHJ5KERPTVN0cmluZyBzb3VyY2VPcmlnaW4sIERPTVN0cmluZyBkZXN0aW5hdGlvblByb3RvY29s
LCBET01TdHJpbmcgZGVzdGluYXRpb25Ib3N0LCBib29sZWFuIGFsbG93RGVzdGluYXRpb25TdWJk
b21haW5zKTsKKyAgICB2b2lkIHJlbW92ZU9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KERPTVN0
cmluZyBzb3VyY2VPcmlnaW4sIERPTVN0cmluZyBkZXN0aW5hdGlvblByb3RvY29sLCBET01TdHJp
bmcgZGVzdGluYXRpb25Ib3N0LCBib29sZWFuIGFsbG93RGVzdGluYXRpb25TdWJkb21haW5zKTsK
ICAgICB2b2lkIHNldFVzZXJTdHlsZVNoZWV0RW5hYmxlZChib29sZWFuIHZhbHVlKTsKICAgICB2
b2lkIHNldFVzZXJTdHlsZVNoZWV0TG9jYXRpb24oRE9NU3RyaW5nIGxvY2F0aW9uKTsKICAgICB2
b2lkIHNldFNwYXRpYWxOYXZpZ2F0aW9uRW5hYmxlZChib29sZWFuIHZhbHVlKTsKSW5kZXg6IExh
eW91dFRlc3RzL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cJ
KHJldmlzaW9uIDI2NTE1MCkKKysrIExheW91dFRlc3RzL0NoYW5nZUxvZwkod29ya2luZyBjb3B5
KQpAQCAtMSwzICsxLDU4IEBACisyMDIwLTA3LTMxICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlz
dGVuc2VuQHdlYmtpdC5vcmc+CisKKyAgICAgICAgVXNlIG1vcmUgaW5jbHVzaXZlIHRlcm1pbm9s
b2d5IGluIFRvb2xzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTQ5NzEKKworICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgorCisgICAgICAg
ICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kvcmVwb3J0LWJsb2Nr
ZWQtZmlsZS11cmkucGhwOgorICAgICAgICAqIGh0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNl
Y3VyaXR5UG9saWN5L3hzbC1yZWRpcmVjdC1hbGxvd2VkLmh0bWw6CisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93ZWQy
Lmh0bWw6CisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xp
Y3kveHNsLXJlZGlyZWN0LWJsb2NrZWQuaHRtbDoKKyAgICAgICAgKiBodHRwL3Rlc3RzL3NlY3Vy
aXR5L2lzb2xhdGVkV29ybGQvY3Jvc3Mtb3JpZ2luLXhoci5odG1sOgorICAgICAgICAqIGh0dHAv
dGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtYWxsb3ctbGlzdC1leHBlY3Rl
ZC50eHQ6IENvcGllZCBmcm9tIGh0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1y
ZW1vdGUtd2hpdGVsaXN0ZWQtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMvc2Vj
dXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtYWxsb3ctbGlzdC5odG1sOiBDb3BpZWQgZnJv
bSBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVk
Lmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJl
bW90ZS13aGl0ZWxpc3RlZC1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sOiBS
ZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRy
b2wtYmFzaWMtYWxsb3ctbGlzdC1yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0OiBDb3BpZWQg
ZnJvbSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLXdoaXRl
bGlzdC1yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtYWxsb3ctbGlzdC1yZXF1ZXN0LWhl
YWRlcnMuaHRtbDogQ29waWVkIGZyb20gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3Mt
Y29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVxdWVzdC1oZWFkZXJzLmh0bWwuCisgICAgICAgICog
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy1hbGxvdy1saXN0
LXJlc3BvbnNlLWhlYWRlcnMtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJvbSBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1yZXNwb25zZS1oZWFk
ZXJzLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2Fj
Y2Vzcy1jb250cm9sLWJhc2ljLWFsbG93LWxpc3QtcmVzcG9uc2UtaGVhZGVycy5odG1sOiBDb3Bp
ZWQgZnJvbSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLXdo
aXRlbGlzdC1yZXNwb25zZS1oZWFkZXJzLmh0bWwuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVxdWVzdC1oZWFkZXJz
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1yZXF1ZXN0LWhlYWRlcnMuaHRtbDog
UmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250
cm9sLWJhc2ljLXdoaXRlbGlzdC1yZXNwb25zZS1oZWFkZXJzLWV4cGVjdGVkLnR4dDogUmVtb3Zl
ZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJh
c2ljLXdoaXRlbGlzdC1yZXNwb25zZS1oZWFkZXJzLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICog
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1hbGwtZXhwZWN0ZWQu
dHh0OiBDb3BpZWQgZnJvbSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxp
c3RpbmctYWxsLWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L29yaWdpbi1hbGxvdy1saXN0LWFsbC5odG1sOiBDb3BpZWQgZnJvbSBodHRwL3Rlc3RzL3ht
bGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctYWxsLmh0bWwuCisgICAgICAgICogaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1leGFjdC1tYXRjaC1leHBl
Y3RlZC50eHQ6IENvcGllZCBmcm9tIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdo
aXRlbGlzdGluZy1leGFjdC1tYXRjaC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1leGFjdC1tYXRjaC5odG1sOiBDb3Bp
ZWQgZnJvbSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctZXhh
Y3QtbWF0Y2guaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdp
bi1hbGxvdy1saXN0LWh0dHBzLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWh0dHBzLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWh0dHBz
Lmh0bWw6IENvcGllZCBmcm9tIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRl
bGlzdGluZy1odHRwcy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
b3JpZ2luLWFsbG93LWxpc3QtaXAtYWRkcmVzc2VzLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20g
aHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nl
cy1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmln
aW4tYWxsb3ctbGlzdC1pcC1hZGRyZXNzZXMtd2l0aC1zdWJkb21haW5zLWV4cGVjdGVkLnR4dDog
Q29waWVkIGZyb20gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5n
LWlwLWFkZHJlc3Nlcy13aXRoLXN1YmRvbWFpbnMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtaXAtYWRkcmVzc2VzLXdp
dGgtc3ViZG9tYWlucy5odG1sOiBDb3BpZWQgZnJvbSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0
L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5odG1sLgor
ICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtaXAt
YWRkcmVzc2VzLmh0bWw6IENvcGllZCBmcm9tIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMuaHRtbC4KKyAgICAgICAgKiBodHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LXJlbW92YWwtZXhwZWN0ZWQudHh0OiBD
b3BpZWQgZnJvbSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmct
cmVtb3ZhbC1leHBlY3RlZC50eHQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9vcmlnaW4tYWxsb3ctbGlzdC1yZW1vdmFsLmh0bWw6IENvcGllZCBmcm9tIGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWwuCisgICAgICAg
ICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1zdWJkb21haW5z
LWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmln
aW4td2hpdGVsaXN0aW5nLXN1YmRvbWFpbnMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3Qtc3ViZG9tYWlucy5odG1sOiBD
b3BpZWQgZnJvbSBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmct
c3ViZG9tYWlucy5odG1sLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLXdoaXRlbGlzdGluZy1hbGwtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1hbGwuaHRtbDogUmVt
b3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxp
c3RpbmctZXhhY3QtbWF0Y2gtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1leGFjdC1tYXRjaC5odG1s
OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdo
aXRlbGlzdGluZy1odHRwcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWh0dHBzLmh0bWw6IFJlbW92
ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0
aW5nLWlwLWFkZHJlc3Nlcy1leHBlY3RlZC50eHQ6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy13aXRo
LXN1YmRvbWFpbnMtZXhwZWN0ZWQudHh0OiBSZW1vdmVkLgorICAgICAgICAqIGh0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMtd2l0aC1zdWJk
b21haW5zLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1yZW1vdmFs
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC5odG1sOiBSZW1vdmVkLgorICAgICAgICAq
IGh0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1zdWJkb21haW5z
LWV4cGVjdGVkLnR4dDogUmVtb3ZlZC4KKyAgICAgICAgKiBodHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmctc3ViZG9tYWlucy5odG1sOiBSZW1vdmVkLgorICAgICAg
ICAqIHBsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zOgorICAgICAgICAqIHBsYXRmb3JtL3dr
Mi9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDIwLTA3LTMwICBMYXVybyBNb3VyYSAgPGxtb3VyYUBp
Z2FsaWEuY29tPgogCiAgICAgICAgIFtHVEtdW1dQRV0gR2FyZGVuIHRocmVlIHBlcnNpc3RlbnQg
ZmFpbHVyZXMgZnJvbSBndGsgcmVsZWFzZSBib3QuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLWFsbG93LWxpc3QtZXhwZWN0ZWQu
dHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwt
aW1hZ2UtZnJvbS1yZW1vdGUtYWxsb3ctbGlzdC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2NTE0
OSkJKGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9t
LXJlbW90ZS13aGl0ZWxpc3RlZC1leHBlY3RlZC50eHQ6MjY1MTQ5KQorKysgTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS1hbGxvdy1saXN0LWV4
cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDQgQEAKKworVGhpcyB0ZXN0IGlz
IHRvIHNlZSBpZiBhIHJlbW90ZSBmaWxlIGNhbiBpbmNsdWRlIGEgbG9jYWwgaW1hZ2Ugd2hlbiB0
aGUgYWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3RlZCB1c2luZyBhZGRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeS4KKworVGVzdCBQYXNzZWQuIExvY2FsIGltYWdlIGxvYWRlZCByZW1vdGVseS4K
SW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1y
ZW1vdGUtYWxsb3ctbGlzdC1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMv
aHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS1hbGxvdy1saXN0LWV4
cGVjdGVkLnR4dAkocmV2aXNpb24gMjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9z
ZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS1hbGxvdy1saXN0LWV4cGVjdGVkLnR4dAko
d29ya2luZyBjb3B5KQpAQCAtMSw0ICsxLDQgQEAKIAotVGhpcyB0ZXN0IGlzIHRvIHNlZSBpZiBh
IHJlbW90ZSBmaWxlIGNhbiBpbmNsdWRlIGEgbG9jYWwgaW1hZ2Ugd2hlbiB0aGUgYWNjZXNzIGhh
cyBiZWVuIHdoaXRlIGxpc3RlZCB1c2luZyBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4K
K1RoaXMgdGVzdCBpcyB0byBzZWUgaWYgYSByZW1vdGUgZmlsZSBjYW4gaW5jbHVkZSBhIGxvY2Fs
IGltYWdlIHdoZW4gdGhlIGFjY2VzcyBoYXMgYmVlbiB3aGl0ZSBsaXN0ZWQgdXNpbmcgYWRkT3Jp
Z2luQWNjZXNzQWxsb3dMaXN0RW50cnkuCiAKIFRlc3QgUGFzc2VkLiBMb2NhbCBpbWFnZSBsb2Fk
ZWQgcmVtb3RlbHkuCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2Fs
LWltYWdlLWZyb20tcmVtb3RlLWFsbG93LWxpc3QuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLWFsbG93LWxp
c3QuaHRtbAkocmV2aXNpb24gMjY1MTQ5KQkoZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLmh0bWw6MjY1MTQ5KQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90
ZS1hbGxvdy1saXN0Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwzMiBAQAorPCFET0NU
WVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorCis8c2NyaXB0PgorCit0ZXN0UnVubmVyLmR1bXBB
c1RleHQoKTsKK3Rlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoJ2h0dHA6
Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycsIHRydWUpOworCit2YXIgbG9jYWxJbWFnZUxv
Y2F0aW9uID0gdGVzdFJ1bm5lci5wYXRoVG9Mb2NhbFJlc291cmNlKCdmaWxlOi8vL3RtcC9MYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jb21wYXNzLmpwZycpOworCit2
YXIgbG9jYWxJbWFnZUVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbWcnKTsKK2xv
Y2FsSW1hZ2VFbGVtZW50LnNyYyA9IGxvY2FsSW1hZ2VMb2NhdGlvbjsKK2RvY3VtZW50LmJvZHku
YXBwZW5kQ2hpbGQobG9jYWxJbWFnZUVsZW1lbnQpOworCit3aW5kb3cub25sb2FkID0gZnVuY3Rp
b24oKSB7CisgICAgdmFyIHJlc3VsdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdyZXN1bHQn
KTsKKyAgICBpZiAobG9jYWxJbWFnZUVsZW1lbnQuaGVpZ2h0ID09IDAgJiYgbG9jYWxJbWFnZUVs
ZW1lbnQud2lkdGggPT0gMCkKKyAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gJ1Rlc3QgRmFp
bGVkOiBMb2NhbCBpbWFnZSBub3QgbG9hZGVkIHJlbW90ZWx5Lic7CisgICAgZWxzZQorICAgICAg
ICByZXN1bHQudGV4dENvbnRlbnQgPSAnVGVzdCBQYXNzZWQuIExvY2FsIGltYWdlIGxvYWRlZCBy
ZW1vdGVseS4nOworfTsKKworPC9zY3JpcHQ+CisKKzxwPlRoaXMgdGVzdCBpcyB0byBzZWUgaWYg
YSByZW1vdGUgZmlsZSBjYW4gaW5jbHVkZSBhIGxvY2FsIGltYWdlIHdoZW4gdGhlCithY2Nlc3Mg
aGFzIGJlZW4gd2hpdGUgbGlzdGVkIHVzaW5nIGFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
LgorCis8cCBpZD1yZXN1bHQ+VGVzdCBoYXMgbm90IHJ1bi4KKworPC9ib2R5PgorPC9odG1sPgpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJl
bW90ZS1hbGxvdy1saXN0Lmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS1hbGxvdy1saXN0Lmh0bWwJKHJldmlz
aW9uIDI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9jYWwtaW1h
Z2UtZnJvbS1yZW1vdGUtYWxsb3ctbGlzdC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC01LDcgKzUs
NyBAQAogPHNjcmlwdD4KIAogdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci10ZXN0UnVubmVyLmFk
ZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCdodHRwOi8vMTI3LjAuMC4xOjgwMDAnLCAnZmls
ZScsICcnLCB0cnVlKTsKK3Rlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnko
J2h0dHA6Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycsIHRydWUpOwogCiB2YXIgbG9jYWxJ
bWFnZUxvY2F0aW9uID0gdGVzdFJ1bm5lci5wYXRoVG9Mb2NhbFJlc291cmNlKCdmaWxlOi8vL3Rt
cC9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291cmNlcy9jb21wYXNzLmpwZycp
OwogCkBAIC0yNCw3ICsyNCw3IEBAIHdpbmRvdy5vbmxvYWQgPSBmdW5jdGlvbigpIHsKIDwvc2Ny
aXB0PgogCiA8cD5UaGlzIHRlc3QgaXMgdG8gc2VlIGlmIGEgcmVtb3RlIGZpbGUgY2FuIGluY2x1
ZGUgYSBsb2NhbCBpbWFnZSB3aGVuIHRoZQotYWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3RlZCB1
c2luZyBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KK2FjY2VzcyBoYXMgYmVlbiB3aGl0
ZSBsaXN0ZWQgdXNpbmcgYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkuCiAKIDxwIGlkPXJl
c3VsdD5UZXN0IGhhcyBub3QgcnVuLgogCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3Nl
Y3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdl
LWZyb20tcmVtb3RlLXdoaXRlbGlzdGVkLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY1MTQ5KQor
KysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90
ZS13aGl0ZWxpc3RlZC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSw0ICswLDAgQEAK
LQotVGhpcyB0ZXN0IGlzIHRvIHNlZSBpZiBhIHJlbW90ZSBmaWxlIGNhbiBpbmNsdWRlIGEgbG9j
YWwgaW1hZ2Ugd2hlbiB0aGUgYWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3RlZCB1c2luZyBhZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KLQotVGVzdCBQYXNzZWQuIExvY2FsIGltYWdlIGxv
YWRlZCByZW1vdGVseS4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvbG9j
YWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQuaHRtbAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlv
dXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRl
bGlzdGVkLmh0bWwJKHJldmlzaW9uIDI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
c2VjdXJpdHkvbG9jYWwtaW1hZ2UtZnJvbS1yZW1vdGUtd2hpdGVsaXN0ZWQuaHRtbAkobm9uZXhp
c3RlbnQpCkBAIC0xLDMyICswLDAgQEAKLTwhRE9DVFlQRSBodG1sPgotPGh0bWw+Ci08Ym9keT4K
LQotPHNjcmlwdD4KLQotdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci10ZXN0UnVubmVyLmFkZE9y
aWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCdodHRwOi8vMTI3LjAuMC4xOjgwMDAnLCAnZmlsZScs
ICcnLCB0cnVlKTsKLQotdmFyIGxvY2FsSW1hZ2VMb2NhdGlvbiA9IHRlc3RSdW5uZXIucGF0aFRv
TG9jYWxSZXNvdXJjZSgnZmlsZTovLy90bXAvTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0
eS9yZXNvdXJjZXMvY29tcGFzcy5qcGcnKTsKLQotdmFyIGxvY2FsSW1hZ2VFbGVtZW50ID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgnaW1nJyk7Ci1sb2NhbEltYWdlRWxlbWVudC5zcmMgPSBsb2Nh
bEltYWdlTG9jYXRpb247Ci1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGxvY2FsSW1hZ2VFbGVt
ZW50KTsKLQotd2luZG93Lm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgIHZhciByZXN1bHQgPSBk
b2N1bWVudC5nZXRFbGVtZW50QnlJZCgncmVzdWx0Jyk7Ci0gICAgaWYgKGxvY2FsSW1hZ2VFbGVt
ZW50LmhlaWdodCA9PSAwICYmIGxvY2FsSW1hZ2VFbGVtZW50LndpZHRoID09IDApCi0gICAgICAg
IHJlc3VsdC50ZXh0Q29udGVudCA9ICdUZXN0IEZhaWxlZDogTG9jYWwgaW1hZ2Ugbm90IGxvYWRl
ZCByZW1vdGVseS4nOwotICAgIGVsc2UKLSAgICAgICAgcmVzdWx0LnRleHRDb250ZW50ID0gJ1Rl
c3QgUGFzc2VkLiBMb2NhbCBpbWFnZSBsb2FkZWQgcmVtb3RlbHkuJzsKLX07Ci0KLTwvc2NyaXB0
PgotCi08cD5UaGlzIHRlc3QgaXMgdG8gc2VlIGlmIGEgcmVtb3RlIGZpbGUgY2FuIGluY2x1ZGUg
YSBsb2NhbCBpbWFnZSB3aGVuIHRoZQotYWNjZXNzIGhhcyBiZWVuIHdoaXRlIGxpc3RlZCB1c2lu
ZyBhZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeS4KLQotPHAgaWQ9cmVzdWx0PlRlc3QgaGFz
IG5vdCBydW4uCi0KLTwvYm9keT4KLTwvaHRtbD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3JlcG9ydC1ibG9ja2VkLWZpbGUtdXJp
LnBocAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRl
bnRTZWN1cml0eVBvbGljeS9yZXBvcnQtYmxvY2tlZC1maWxlLXVyaS5waHAJKHJldmlzaW9uIDI2
NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5
UG9saWN5L3JlcG9ydC1ibG9ja2VkLWZpbGUtdXJpLnBocAkod29ya2luZyBjb3B5KQpAQCAtNSw3
ICs1LDcgQEAKIDxodG1sPgogPGJvZHk+CiAgICAgPHNjcmlwdD4KLSAgICAgICAgdGVzdFJ1bm5l
ci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgnaHR0cDovLzEyNy4wLjAuMTo4MDAwJywg
J2ZpbGUnLCAnJywgdHJ1ZSk7CisgICAgICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxs
b3dMaXN0RW50cnkoJ2h0dHA6Ly8xMjcuMC4wLjE6ODAwMCcsICdmaWxlJywgJycsIHRydWUpOwog
ICAgICAgICB2YXIgbG9jYWxJbWFnZUxvY2F0aW9uID0gdGVzdFJ1bm5lci5wYXRoVG9Mb2NhbFJl
c291cmNlKCdmaWxlOi8vL3RtcC9MYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L3Jlc291
cmNlcy9jb21wYXNzLmpwZycpOwogCiAgICAgICAgIHZhciBsb2NhbEltYWdlRWxlbWVudCA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2ltZycpOwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93ZWQyLmh0
bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9jb250ZW50
U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWFsbG93ZWQyLmh0bWwJKHJldmlzaW9uIDI2NTE0
OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9s
aWN5L3hzbC1yZWRpcmVjdC1hbGxvd2VkMi5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC03LDcgKzcs
NyBAQCBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKICAgICB0ZXN0UnVubmVyLmR1bXBDaGlsZEZy
YW1lc0FzVGV4dCgpOwogCiAgICAgLy8gVGhpcyBpcyBhIGNvbnRyaXZlZCB0ZXN0LiBXZSBub3Jt
YWxseSBkbyBub3QgYWxsb3cgY3Jvc3Mtb3JpZ2luIFhNTCBTdHlsZXNoZWV0cy4KLSAgICB0ZXN0
UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgw
MDAiLCAiaHR0cCIsICJsb2NhbGhvc3QiLCBmYWxzZSk7CisgICAgdGVzdFJ1bm5lci5hZGRPcmln
aW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAi
bG9jYWxob3N0IiwgZmFsc2UpOwogfQogPC9zY3JpcHQ+CiA8L2hlYWQ+CkluZGV4OiBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2NvbnRlbnRTZWN1cml0eVBvbGljeS94c2wtcmVkaXJl
Y3QtYWxsb3dlZC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2Vj
dXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5L3hzbC1yZWRpcmVjdC1hbGxvd2VkLmh0bWwJKHJl
dmlzaW9uIDI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVu
dFNlY3VyaXR5UG9saWN5L3hzbC1yZWRpcmVjdC1hbGxvd2VkLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTcsNyArNyw3IEBAIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewogICAgIHRlc3RSdW5uZXIu
ZHVtcENoaWxkRnJhbWVzQXNUZXh0KCk7CiAKICAgICAvLyBUaGlzIGlzIGEgY29udHJpdmVkIHRl
c3QuIFdlIG5vcm1hbGx5IGRvIG5vdCBhbGxvdyBjcm9zcy1vcmlnaW4gWE1MIFN0eWxlc2hlZXRz
LgotICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKKyAgICB0ZXN0UnVu
bmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93TGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAi
LCAiaHR0cCIsICJsb2NhbGhvc3QiLCBmYWxzZSk7CiB9CiA8L3NjcmlwdD4KIDwvaGVhZD4KSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMvc2VjdXJpdHkvY29udGVudFNlY3VyaXR5UG9saWN5
L3hzbC1yZWRpcmVjdC1ibG9ja2VkLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy9zZWN1cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWJsb2Nr
ZWQuaHRtbAkocmV2aXNpb24gMjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1
cml0eS9jb250ZW50U2VjdXJpdHlQb2xpY3kveHNsLXJlZGlyZWN0LWJsb2NrZWQuaHRtbAkod29y
a2luZyBjb3B5KQpAQCAtNyw3ICs3LDcgQEAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CiAgICAg
dGVzdFJ1bm5lci5kdW1wQ2hpbGRGcmFtZXNBc1RleHQoKTsKIAogICAgIC8vIFRoaXMgaXMgYSBj
b250cml2ZWQgdGVzdC4gV2Ugbm9ybWFsbHkgZG8gbm90IGFsbG93IGNyb3NzLW9yaWdpbiBYTUwg
U3R5bGVzaGVldHMuCi0gICAgdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRy
eSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9jYWxob3N0IiwgZmFsc2UpOwor
ICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKIH0KIDwvc2NyaXB0Pgog
PC9oZWFkPgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy9zZWN1cml0eS9pc29sYXRlZFdv
cmxkL2Nyb3NzLW9yaWdpbi14aHIuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVkV29ybGQvY3Jvc3Mtb3JpZ2luLXhoci5odG1sCShyZXZp
c2lvbiAyNjUxNDkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3NlY3VyaXR5L2lzb2xhdGVk
V29ybGQvY3Jvc3Mtb3JpZ2luLXhoci5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0yNyw3ICsyNyw3
IEBAIHZhciB0ZXN0cyA9IFsKICAgICBmdW5jdGlvbigpIHsKICAgICAgICAgZGVidWcoJ1hIUiBm
cm9tIGlzb2xhdGVkIHdvcmxkIHdpdGggc2VjdXJpdHkgb3JpZ2luIHRoYXQgaXMgd2hpdGVsaXN0
ZWQgZm9yIFhIUiB0YXJnZXQnKTsKICAgICAgICAgdGVzdFJ1bm5lci5zZXRJc29sYXRlZFdvcmxk
U2VjdXJpdHlPcmlnaW4oMiwgJ2Nocm9tZS1leHRlbnNpb246Ly8xMjMnKTsKLSAgICAgICAgdGVz
dFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgnY2hyb21lLWV4dGVuc2lvbjov
LzEyMycsICdodHRwJywgJ2xvY2FsaG9zdCcsIGZhbHNlKTsKKyAgICAgICAgdGVzdFJ1bm5lci5h
ZGRPcmlnaW5BY2Nlc3NBbGxvd0xpc3RFbnRyeSgnY2hyb21lLWV4dGVuc2lvbjovLzEyMycsICdo
dHRwJywgJ2xvY2FsaG9zdCcsIGZhbHNlKTsKICAgICAgICAgcnVuVGVzdEluV29ybGQoMiwgJ3ho
cicpOwogICAgIH0sCiAgICAgZnVuY3Rpb24oKSB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLWFsbG93LWxpc3QtcmVxdWVz
dC1oZWFkZXJzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLWFsbG93LWxpc3QtcmVxdWVz
dC1oZWFkZXJzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY1MTQ5KQkoZnJvbSBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLXdoaXRlbGlz
dC1yZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0OjI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtYWxsb3ctbGlzdC1y
ZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNiBA
QAorQWNjZXB0OiAqCitBY2NlcHQtTGFuZ3VhZ2U6IHJ1CitDb250ZW50LUxhbmd1YWdlOiBydQor
Q29udGVudC1UeXBlOiB0ZXh0L3BsYWluCisKKwoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy1hbGxv
dy1saXN0LXJlcXVlc3QtaGVhZGVycy1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3Zu
OmVvbC1zdHlsZQojIyAtMCwwICsxICMjCituYXRpdmUKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBw
cm9wZXJ0eQpBZGRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMCwwICsxICMjCit0ZXh0L3BsYWluClwg
Tm8gbmV3bGluZSBhdCBlbmQgb2YgcHJvcGVydHkKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtYWxsb3ctbGlzdC1yZXF1ZXN0
LWhlYWRlcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLWFsbG93LWxpc3QtcmVxdWVzdC1oZWFkZXJz
Lmh0bWwJKHJldmlzaW9uIDI2NTE0OSkJKGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVxdWVzdC1oZWFkZXJz
Lmh0bWw6MjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9h
Y2Nlc3MtY29udHJvbC1iYXNpYy1hbGxvdy1saXN0LXJlcXVlc3QtaGVhZGVycy5odG1sCSh3b3Jr
aW5nIGNvcHkpCkBAIC0wLDAgKzEsMjggQEAKKzxodG1sPgorPGJvZHk+Cis8cHJlIGlkPSdjb25z
b2xlJz48L3ByZT4KKzxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4KKyAgICBpZiAod2lu
ZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworCisgICAg
ZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCisgICAgeworICAgICAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3Nh
Z2UgKyAiXG4iKSk7CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgdmFyIHhociA9IG5ldyBY
TUxIdHRwUmVxdWVzdDsKKyAgICAgICAgeGhyLm9wZW4oIlBPU1QiLCAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0
ZWxpc3QtcmVxdWVzdC1oZWFkZXJzLmNnaSIsIGZhbHNlKTsKKyAgICAgICAgeGhyLnNldFJlcXVl
c3RIZWFkZXIoIkFjY2VwdCIsICIqIik7CisgICAgICAgIHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJB
Y2NlcHQtTGFuZ3VhZ2UiLCAicnUiKTsKKyAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoIkNv
bnRlbnQtTGFuZ3VhZ2UiLCAicnUiKTsKKyAgICAgICAgeGhyLnNldFJlcXVlc3RIZWFkZXIoIkNv
bnRlbnQtVHlwZSIsICJ0ZXh0L3BsYWluIik7CisgICAgICAgIHhoci5zZW5kKCIiKTsKKyAgICAK
KyAgICAgICAgbG9nKHhoci5yZXNwb25zZVRleHQpOworICAgIH0gY2F0Y2ggKGV4KSB7CisgICAg
ICAgIGxvZygiVW5leHBlY3RlZCBleGNlcHRpb246ICIgKyBleCk7CisgICAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CgpQcm9wZXJ0eSBjaGFuZ2VzIG9uOiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLWFsbG93LWxpc3QtcmVx
dWVzdC1oZWFkZXJzLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fXwpBZGRlZDogc3ZuOm1pbWUtdHlwZQojIyAtMCww
ICsxICMjCit0ZXh0L2h0bWwKXCBObyBuZXdsaW5lIGF0IGVuZCBvZiBwcm9wZXJ0eQpJbmRleDog
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNp
Yy1hbGxvdy1saXN0LXJlc3BvbnNlLWhlYWRlcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFz
aWMtYWxsb3ctbGlzdC1yZXNwb25zZS1oZWFkZXJzLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY1
MTQ5KQkoZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1j
b250cm9sLWJhc2ljLXdoaXRlbGlzdC1yZXNwb25zZS1oZWFkZXJzLWV4cGVjdGVkLnR4dDoyNjUx
NDkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250
cm9sLWJhc2ljLWFsbG93LWxpc3QtcmVzcG9uc2UtaGVhZGVycy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSw5IEBACitQQVNTOiBSZXNwb25zZSBoZWFkZXIgY2FjaGUtY29u
dHJvbCBhbGxvd2VkLgorUEFTUzogUmVzcG9uc2UgaGVhZGVyIGNvbnRlbnQtbGFuZ3VhZ2UgYWxs
b3dlZC4KK1BBU1M6IFJlc3BvbnNlIGhlYWRlciBjb250ZW50LXR5cGUgYWxsb3dlZC4KK1BBU1M6
IFJlc3BvbnNlIGhlYWRlciBleHBpcmVzIGFsbG93ZWQuCitQQVNTOiBSZXNwb25zZSBoZWFkZXIg
bGFzdC1tb2RpZmllZCBhbGxvd2VkLgorUEFTUzogUmVzcG9uc2UgaGVhZGVyIHByYWdtYSBhbGxv
d2VkLgorUEFTUzogUmVzcG9uc2UgaGVhZGVyIHgtd2Via2l0IGRlbmllZC4KK1BBU1M6IE5vbi13
aGl0ZWxpc3RlZCBoZWFkZXJzIG5vdCBwYXNzZWQgdG8gZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCku
CisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNv
bnRyb2wtYmFzaWMtYWxsb3ctbGlzdC1yZXNwb25zZS1oZWFkZXJzLmh0bWwKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1i
YXNpYy1hbGxvdy1saXN0LXJlc3BvbnNlLWhlYWRlcnMuaHRtbAkocmV2aXNpb24gMjY1MTQ5KQko
ZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9s
LWJhc2ljLXdoaXRlbGlzdC1yZXNwb25zZS1oZWFkZXJzLmh0bWw6MjY1MTQ5KQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy1hbGxv
dy1saXN0LXJlc3BvbnNlLWhlYWRlcnMuaHRtbAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDUy
IEBACis8aHRtbD4KKzxib2R5PgorPHByZSBpZD0nY29uc29sZSc+PC9wcmU+Cis8c2NyaXB0IHR5
cGU9InRleHQvamF2YXNjcmlwdCI+CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKKworICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQor
ICAgIHsKKyAgICAgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRD
aGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgIlxuIikpOworICAgIH0KKwor
ICAgIHZhciB4aHI7CisKKyAgICBmdW5jdGlvbiB0ZXN0QWxsb3dlZChuYW1lKQorICAgIHsKKyAg
ICAgICAgaWYgKHhoci5nZXRSZXNwb25zZUhlYWRlcihuYW1lKSkKKyAgICAgICAgICAgIGxvZygi
UEFTUzogUmVzcG9uc2UgaGVhZGVyICIgKyBuYW1lICsgIiBhbGxvd2VkLiIpOworICAgICAgICBl
bHNlCisgICAgICAgICAgICBsb2coIkZBSUw6IFJlc3BvbnNlIGhlYWRlciAiICsgbmFtZSArICIg
bm90IGFsbG93ZWQuIik7CisgICAgfQorCisgICAgZnVuY3Rpb24gdGVzdERlbmllZChuYW1lKQor
ICAgIHsKKyAgICAgICAgaWYgKCF4aHIuZ2V0UmVzcG9uc2VIZWFkZXIobmFtZSkpCisgICAgICAg
ICAgICBsb2coIlBBU1M6IFJlc3BvbnNlIGhlYWRlciAiICsgbmFtZSArICIgZGVuaWVkLiIpOwor
ICAgICAgICBlbHNlCisgICAgICAgICAgICBsb2coIkZBSUw6IFJlc3BvbnNlIGhlYWRlciAiICsg
bmFtZSArICIgbm90IGRlbmllZC4iKTsKKyAgICB9CisKKworICAgIHhociA9IG5ldyBYTUxIdHRw
UmVxdWVzdDsKKyAgICB4aHIub3BlbigiR0VUIiwgImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRyb2wtYmFzaWMtd2hpdGVsaXN0LXJlc3Bv
bnNlLWhlYWRlcnMuY2dpIiwgZmFsc2UpOworICAgIHhoci5zZW5kKCk7CisKKyAgICAvLyBUZXN0
IGdldFJlc3BvbnNlSGVhZGVyKCkKKyAgICB0ZXN0QWxsb3dlZCgiY2FjaGUtY29udHJvbCIpOwor
ICAgIHRlc3RBbGxvd2VkKCJjb250ZW50LWxhbmd1YWdlIik7CisgICAgdGVzdEFsbG93ZWQoImNv
bnRlbnQtdHlwZSIpOworICAgIHRlc3RBbGxvd2VkKCJleHBpcmVzIik7CisgICAgdGVzdEFsbG93
ZWQoImxhc3QtbW9kaWZpZWQiKTsKKyAgICB0ZXN0QWxsb3dlZCgicHJhZ21hIik7CisgICAgdGVz
dERlbmllZCgieC13ZWJraXQiKTsKKworICAgIC8vIFRlc3QgZ2V0QWxsUmVzcG9uc2VIZWFkZXJz
KCkKKyAgICBpZiAoIXhoci5nZXRBbGxSZXNwb25zZUhlYWRlcnMoKS5tYXRjaCgiZm9vYmFyIikp
CisgICAgICAgIGxvZygiUEFTUzogTm9uLXdoaXRlbGlzdGVkIGhlYWRlcnMgbm90IHBhc3NlZCB0
byBnZXRBbGxSZXNwb25zZUhlYWRlcnMoKS4iKTsKKyAgICBlbHNlCisgICAgICAgIGxvZygiRkFJ
TDogTm9uLXdoaXRlbGlzdGVkIGhlYWRlcnMgcGFzc2VkIHRvIGdldEFsbFJlc3BvbnNlSGVhZGVy
cygpLiIpOworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1y
ZXF1ZXN0LWhlYWRlcnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtd2hpdGVsaXN0LXJl
cXVlc3QtaGVhZGVycy1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2NTE0OSkKKysrIExheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtd2hpdGVs
aXN0LXJlcXVlc3QtaGVhZGVycy1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSw2ICsw
LDAgQEAKLUFjY2VwdDogKgotQWNjZXB0LUxhbmd1YWdlOiBydQotQ29udGVudC1MYW5ndWFnZTog
cnUKLUNvbnRlbnQtVHlwZTogdGV4dC9wbGFpbgotCi0KClByb3BlcnR5IGNoYW5nZXMgb246IExh
eW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMt
d2hpdGVsaXN0LXJlcXVlc3QtaGVhZGVycy1leHBlY3RlZC50eHQKX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVk
OiBzdm46ZW9sLXN0eWxlCiMjIC0xICswLDAgIyMKLW5hdGl2ZQpcIE5vIG5ld2xpbmUgYXQgZW5k
IG9mIHByb3BlcnR5CkRlbGV0ZWQ6IHN2bjptaW1lLXR5cGUKIyMgLTEgKzAsMCAjIwotdGV4dC9w
bGFpbgpcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHByb3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1y
ZXF1ZXN0LWhlYWRlcnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1yZXF1ZXN0LWhl
YWRlcnMuaHRtbAkocmV2aXNpb24gMjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVxdWVzdC1oZWFk
ZXJzLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSwyOCArMCwwIEBACi08aHRtbD4KLTxib2R5Pgot
PHByZSBpZD0nY29uc29sZSc+PC9wcmU+Ci08c2NyaXB0IHR5cGU9InRleHQvamF2YXNjcmlwdCI+
Ci0gICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQotICAgICAgICB0ZXN0UnVubmVyLmR1bXBBc1Rl
eHQoKTsKLQotICAgIGZ1bmN0aW9uIGxvZyhtZXNzYWdlKQotICAgIHsKLSAgICAgICAgZG9jdW1l
bnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVU
ZXh0Tm9kZShtZXNzYWdlICsgIlxuIikpOwotICAgIH0KLQotICAgIHRyeSB7Ci0gICAgICAgIHZh
ciB4aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7Ci0gICAgICAgIHhoci5vcGVuKCJQT1NUIiwgImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvYWNjZXNzLWNvbnRy
b2wtYmFzaWMtd2hpdGVsaXN0LXJlcXVlc3QtaGVhZGVycy5jZ2kiLCBmYWxzZSk7Ci0gICAgICAg
IHhoci5zZXRSZXF1ZXN0SGVhZGVyKCJBY2NlcHQiLCAiKiIpOwotICAgICAgICB4aHIuc2V0UmVx
dWVzdEhlYWRlcigiQWNjZXB0LUxhbmd1YWdlIiwgInJ1Iik7Ci0gICAgICAgIHhoci5zZXRSZXF1
ZXN0SGVhZGVyKCJDb250ZW50LUxhbmd1YWdlIiwgInJ1Iik7Ci0gICAgICAgIHhoci5zZXRSZXF1
ZXN0SGVhZGVyKCJDb250ZW50LVR5cGUiLCAidGV4dC9wbGFpbiIpOwotICAgICAgICB4aHIuc2Vu
ZCgiIik7Ci0gICAgCi0gICAgICAgIGxvZyh4aHIucmVzcG9uc2VUZXh0KTsKLSAgICB9IGNhdGNo
IChleCkgewotICAgICAgICBsb2coIlVuZXhwZWN0ZWQgZXhjZXB0aW9uOiAiICsgZXgpOwotICAg
IH0KLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgoKUHJvcGVydHkgY2hhbmdlcyBvbjogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3MtY29udHJvbC1iYXNpYy13
aGl0ZWxpc3QtcmVxdWVzdC1oZWFkZXJzLmh0bWwKX19fX19fX19fX19fX19fX19fX19fX19fX19f
X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpEZWxldGVkOiBzdm46bWlt
ZS10eXBlCiMjIC0xICswLDAgIyMKLXRleHQvaHRtbApcIE5vIG5ld2xpbmUgYXQgZW5kIG9mIHBy
b3BlcnR5CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vz
cy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1yZXNwb25zZS1oZWFkZXJzLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vz
cy1jb250cm9sLWJhc2ljLXdoaXRlbGlzdC1yZXNwb25zZS1oZWFkZXJzLWV4cGVjdGVkLnR4dAko
cmV2aXNpb24gMjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVzcG9uc2UtaGVhZGVycy1leHBlY3Rl
ZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSw5ICswLDAgQEAKLVBBU1M6IFJlc3BvbnNlIGhlYWRl
ciBjYWNoZS1jb250cm9sIGFsbG93ZWQuCi1QQVNTOiBSZXNwb25zZSBoZWFkZXIgY29udGVudC1s
YW5ndWFnZSBhbGxvd2VkLgotUEFTUzogUmVzcG9uc2UgaGVhZGVyIGNvbnRlbnQtdHlwZSBhbGxv
d2VkLgotUEFTUzogUmVzcG9uc2UgaGVhZGVyIGV4cGlyZXMgYWxsb3dlZC4KLVBBU1M6IFJlc3Bv
bnNlIGhlYWRlciBsYXN0LW1vZGlmaWVkIGFsbG93ZWQuCi1QQVNTOiBSZXNwb25zZSBoZWFkZXIg
cHJhZ21hIGFsbG93ZWQuCi1QQVNTOiBSZXNwb25zZSBoZWFkZXIgeC13ZWJraXQgZGVuaWVkLgot
UEFTUzogTm9uLXdoaXRlbGlzdGVkIGhlYWRlcnMgbm90IHBhc3NlZCB0byBnZXRBbGxSZXNwb25z
ZUhlYWRlcnMoKS4KLQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9hY2Nlc3MtY29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVzcG9uc2UtaGVhZGVycy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNz
LWNvbnRyb2wtYmFzaWMtd2hpdGVsaXN0LXJlc3BvbnNlLWhlYWRlcnMuaHRtbAkocmV2aXNpb24g
MjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9hY2Nlc3Mt
Y29udHJvbC1iYXNpYy13aGl0ZWxpc3QtcmVzcG9uc2UtaGVhZGVycy5odG1sCShub25leGlzdGVu
dCkKQEAgLTEsNTIgKzAsMCBAQAotPGh0bWw+Ci08Ym9keT4KLTxwcmUgaWQ9J2NvbnNvbGUnPjwv
cHJlPgotPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPgotICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKLSAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0KLSAgICBmdW5jdGlv
biBsb2cobWVzc2FnZSkKLSAgICB7Ci0gICAgICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdj
b25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJc
biIpKTsKLSAgICB9Ci0KLSAgICB2YXIgeGhyOwotCi0gICAgZnVuY3Rpb24gdGVzdEFsbG93ZWQo
bmFtZSkKLSAgICB7Ci0gICAgICAgIGlmICh4aHIuZ2V0UmVzcG9uc2VIZWFkZXIobmFtZSkpCi0g
ICAgICAgICAgICBsb2coIlBBU1M6IFJlc3BvbnNlIGhlYWRlciAiICsgbmFtZSArICIgYWxsb3dl
ZC4iKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbG9nKCJGQUlMOiBSZXNwb25zZSBoZWFk
ZXIgIiArIG5hbWUgKyAiIG5vdCBhbGxvd2VkLiIpOwotICAgIH0KLQotICAgIGZ1bmN0aW9uIHRl
c3REZW5pZWQobmFtZSkKLSAgICB7Ci0gICAgICAgIGlmICgheGhyLmdldFJlc3BvbnNlSGVhZGVy
KG5hbWUpKQotICAgICAgICAgICAgbG9nKCJQQVNTOiBSZXNwb25zZSBoZWFkZXIgIiArIG5hbWUg
KyAiIGRlbmllZC4iKTsKLSAgICAgICAgZWxzZQotICAgICAgICAgICAgbG9nKCJGQUlMOiBSZXNw
b25zZSBoZWFkZXIgIiArIG5hbWUgKyAiIG5vdCBkZW5pZWQuIik7Ci0gICAgfQotCi0KLSAgICB4
aHIgPSBuZXcgWE1MSHR0cFJlcXVlc3Q7Ci0gICAgeGhyLm9wZW4oIkdFVCIsICJodHRwOi8vbG9j
YWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2FjY2Vzcy1jb250cm9sLWJhc2lj
LXdoaXRlbGlzdC1yZXNwb25zZS1oZWFkZXJzLmNnaSIsIGZhbHNlKTsKLSAgICB4aHIuc2VuZCgp
OwotCi0gICAgLy8gVGVzdCBnZXRSZXNwb25zZUhlYWRlcigpCi0gICAgdGVzdEFsbG93ZWQoImNh
Y2hlLWNvbnRyb2wiKTsKLSAgICB0ZXN0QWxsb3dlZCgiY29udGVudC1sYW5ndWFnZSIpOwotICAg
IHRlc3RBbGxvd2VkKCJjb250ZW50LXR5cGUiKTsKLSAgICB0ZXN0QWxsb3dlZCgiZXhwaXJlcyIp
OwotICAgIHRlc3RBbGxvd2VkKCJsYXN0LW1vZGlmaWVkIik7Ci0gICAgdGVzdEFsbG93ZWQoInBy
YWdtYSIpOwotICAgIHRlc3REZW5pZWQoIngtd2Via2l0Iik7Ci0KLSAgICAvLyBUZXN0IGdldEFs
bFJlc3BvbnNlSGVhZGVycygpCi0gICAgaWYgKCF4aHIuZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCku
bWF0Y2goImZvb2JhciIpKQotICAgICAgICBsb2coIlBBU1M6IE5vbi13aGl0ZWxpc3RlZCBoZWFk
ZXJzIG5vdCBwYXNzZWQgdG8gZ2V0QWxsUmVzcG9uc2VIZWFkZXJzKCkuIik7Ci0gICAgZWxzZQot
ICAgICAgICBsb2coIkZBSUw6IE5vbi13aGl0ZWxpc3RlZCBoZWFkZXJzIHBhc3NlZCB0byBnZXRB
bGxSZXNwb25zZUhlYWRlcnMoKS4iKTsKLTwvc2NyaXB0PgotPC9ib2R5PgotPC9odG1sPgpJbmRl
eDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlz
dC1hbGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtYWxsLWV4cGVjdGVkLnR4dAkocmV2aXNp
b24gMjY1MTQ5KQkoZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29y
aWdpbi13aGl0ZWxpc3RpbmctYWxsLWV4cGVjdGVkLnR4dDoyNjUxNDkpCisrKyBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWFsbC1leHBlY3Rl
ZC50eHQJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorVGVzdHMgdGhlIHNwZWNpYWwg
Y2FzZSBvZiB3aGl0ZWxpc3RpbmcgYWxsIG9yaWdpbnMuCisKK1Rlc3Rpbmc6IGh0dHA6Ly9sb2Nh
bGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoc3luYykKK1BBU1M6
IFBBU1MKK1Rlc3Rpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvZ2V0LnR4dCAoYXN5bmMpCitQQVNTOiBQQVNTCitUZXN0aW5nOiBodHRwOi8vMTI3LjAu
MC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKHN5bmMpCitQQVNTOiBQ
QVNTCitUZXN0aW5nOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3Vy
Y2VzL2dldC50eHQgKGFzeW5jKQorUEFTUzogUEFTUworCkluZGV4OiBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWFsbC5odG1sCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93
LWxpc3QtYWxsLmh0bWwJKHJldmlzaW9uIDI2NTE0OSkJKGZyb20gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWFsbC5odG1sOjI2NTE0OSkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxp
c3QtYWxsLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NiBAQAorPHA+VGVzdHMgdGhl
IHNwZWNpYWwgY2FzZSBvZiB3aGl0ZWxpc3RpbmcgYWxsIG9yaWdpbnMuPC9wPgorCis8cHJlIGlk
PSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+Cit0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK3Rl
c3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwordGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0
ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAiIiwgdHJ1ZSk7Cit0
ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vbG9jYWxob3N0
OjgwMDAiLCAiaHR0cCIsICIiLCB0cnVlKTsKKworZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCit7Cisg
ICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVu
dC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworfQorCitmdW5jdGlvbiB0ZXN0RG9t
YWluKCkKK3sKKyAgICB2YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVx
dWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCI7CisgICAgbG9nKCJUZXN0aW5nOiAiICsgdXJsICsgIiAo
c3luYykiKTsKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9w
ZW4oIkdFVCIsIHVybCwgZmFsc2UpOworICAgIHRyeSB7CisgICAgICAgIHJlcS5zZW5kKG51bGwp
OworICAgICAgICBsb2coIlBBU1M6ICIgKyByZXEucmVzcG9uc2VUZXh0KTsKKyAgICB9IGNhdGNo
IChlKSB7CisgICAgICAgIGxvZygiRkFJTDogIiArIGUpOworICAgIH0KKworICAgIGxvZygiVGVz
dGluZzogIiArIHVybCArICIgKGFzeW5jKSIpOworICAgIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVz
dCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOworICAgIHJlcS5vbmxvYWQgPSBm
dW5jdGlvbigpIHsKKyAgICAgICAgbG9nKCJQQVNTOiAiICsgcmVxLnJlc3BvbnNlVGV4dCk7Cisg
ICAgICAgIHRlc3RJUEFkZHJlc3MoKTsKKyAgICB9OworICAgIHJlcS5vbmVycm9yID0gZnVuY3Rp
b24oKSB7CisgICAgICAgIGxvZygiRkFJTDogIiArIHJlcS5zdGF0dXMpOworICAgICAgICB0ZXN0
SVBBZGRyZXNzKCk7CisgICAgfTsKKyAgICByZXEuc2VuZChudWxsKTsKK30KKworZnVuY3Rpb24g
dGVzdElQQWRkcmVzcygpCit7CisgICAgdmFyIGlmcmFtZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImlmcmFtZSIpOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKKyAg
ICBpZnJhbWUuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzLXRlc3QuaHRtbCI7CisgICAgd2lu
ZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlvbihlKSB7CisgICAgICAgIGlm
IChlLmRhdGEgPT0gIkRPTkUiKQorICAgICAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7
CisgICAgICAgIGVsc2UKKyAgICAgICAgICAgIGxvZyhlLmRhdGEpOworICAgIH0sIGZhbHNlKTsK
K30KKwordGVzdERvbWFpbigpOworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWFsbC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxp
c3QtYWxsLmh0bWwJKHJldmlzaW9uIDI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtYWxsLmh0bWwJKHdvcmtpbmcgY29weSkK
QEAgLTQsOCArNCw4IEBACiA8c2NyaXB0PgogdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB0ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLXRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAwMCIsICJodHRwIiwgIiIsIHRydWUpOwotdGVz
dFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovL2xvY2FsaG9zdDo4
MDAwIiwgImh0dHAiLCAiIiwgdHJ1ZSk7Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc0FsbG93
TGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICIiLCB0cnVlKTsKK3Rl
c3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMCIsICJodHRwIiwgIiIsIHRydWUpOwogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKIHsKSW5k
ZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxp
c3QtZXhhY3QtbWF0Y2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtZXhhY3QtbWF0Y2gtZXhw
ZWN0ZWQudHh0CShyZXZpc2lvbiAyNjUxNDkpCShmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMv
eG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1leGFjdC1tYXRjaC1leHBlY3RlZC50
eHQ6MjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmln
aW4tYWxsb3ctbGlzdC1leGFjdC1tYXRjaC1leHBlY3RlZC50eHQJKHdvcmtpbmcgY29weSkKQEAg
LTAsMCArMSwxMSBAQAorVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHdoaXRlbGlzdGluZyBvcmlnaW5z
IHVzaW5nIGV4YWN0IG1hdGNoaW5nLgorCitUZXN0aW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKHN5bmMpCitQQVNTOiBQQVNTCitUZXN0
aW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50
eHQgKGFzeW5jKQorUEFTUzogUEFTUworVGVzdGluZzogaHR0cDovL2xvQ0FMaG9zdDo4MDAwL3ht
bGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChzeW5jKQorUEFTUzogUEFTUworVGVzdGlu
ZzogaHR0cDovL2xvQ0FMaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0
IChhc3luYykKK1BBU1M6IFBBU1MKKwpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1leGFjdC1tYXRjaC5odG1sCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxp
c3QtZXhhY3QtbWF0Y2guaHRtbAkocmV2aXNpb24gMjY1MTQ5KQkoZnJvbSBMYXlvdXRUZXN0cy9o
dHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctZXhhY3QtbWF0Y2gu
aHRtbDoyNjUxNDkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29y
aWdpbi1hbGxvdy1saXN0LWV4YWN0LW1hdGNoLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCAr
MSw2MCBAQAorPHA+VGVzdHMgdGhlIGJlaGF2aW9yIG9mIHdoaXRlbGlzdGluZyBvcmlnaW5zIHVz
aW5nIGV4YWN0IG1hdGNoaW5nLjwvcD4KKworPHByZSBpZD0iY29uc29sZSI+PC9wcmU+Cis8c2Ny
aXB0PgordGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Cit0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUo
KTsKK3Rlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZhbHNlKTsKKworZnVuY3Rpb24gbG9n
KG1lc3NhZ2UpCit7CisgICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5hcHBl
bmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOworfQorCitm
dW5jdGlvbiB0ZXN0KHVybCwgZXhwZWN0U3VjY2VzcykKK3sKKyAgICBsb2coIlRlc3Rpbmc6ICIg
KyB1cmwgKyAiIChzeW5jKSIpOworICAgIHZhciByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsK
KyAgICByZXEub3BlbigiR0VUIiwgdXJsLCBmYWxzZSk7CisgICAgdHJ5IHsKKyAgICAgICAgcmVx
LnNlbmQobnVsbCk7CisgICAgICAgIGxvZygoZXhwZWN0U3VjY2VzcyA/ICJQQVNTOiAiIDogIkZB
SUw6ICIpICsgcmVxLnJlc3BvbnNlVGV4dCk7CisgICAgfSBjYXRjaCAoZSkgeworICAgICAgICBs
b2coKGV4cGVjdFN1Y2Nlc3MgPyAiRkFJTDogIiA6ICJQQVNTOiAiKSArIGUpOworICAgIH0KKwor
ICAgIGxvZygiVGVzdGluZzogIiArIHVybCArICIgKGFzeW5jKSIpOworICAgIHJlcSA9IG5ldyBY
TUxIdHRwUmVxdWVzdCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOworICAgIHJl
cS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKKyAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIlBB
U1M6ICIgOiAiRkFJTDogIikgKyByZXEucmVzcG9uc2VUZXh0KTsKKyAgICAgICAgbmV4dFRlc3Qo
KTsKKyAgICB9OworICAgIHJlcS5vbmVycm9yID0gZnVuY3Rpb24oKSB7CisgICAgICAgIGxvZygo
ZXhwZWN0U3VjY2VzcyA/ICJGQUlMOiAiIDogIlBBU1M6ICIpICsgcmVxLnN0YXR1cyk7CisgICAg
ICAgIG5leHRUZXN0KCk7CisgICAgfTsKKyAgICByZXEuc2VuZChudWxsKTsKK30KKwordmFyIHRl
c3RzID0gWworICAgIFsiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9nZXQudHh0IiwgdHJ1ZV0sCisgICAgWyJodHRwOi8vbG9DQUxob3N0OjgwMDAveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiLCB0cnVlXQorICAgIC8vIEZJWE1FOiBJcyBpdCBw
b3NzaWJsZSB0byBzZXR1cCB0aGUgZm9sbG93aW5nIHRlc3RzPworICAgIC8vIFsiaHR0cDovL2xv
Y2FsaG9zdDo4MDAxL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IiwgZmFsc2VdLAor
ICAgIC8vIFsiaHR0cDovL2Zvby5sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJj
ZXMvZ2V0LnR4dCIsIGZhbHNlXSwKKyAgICAvLyBbImh0dHBzOi8vbG9jYWxob3N0OjgwMDAveG1s
aHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiLCBmYWxzZV0KK107CisKK3ZhciBjdXJyZW50
VGVzdCA9IDA7CisKK2Z1bmN0aW9uIG5leHRUZXN0KCkKK3sKKyAgICBpZiAoY3VycmVudFRlc3Qg
PCB0ZXN0cy5sZW5ndGgpCisgICAgICAgIHRlc3QuYXBwbHkobnVsbCwgdGVzdHNbY3VycmVudFRl
c3QrK10pOworICAgIGVsc2UKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Cit9CisK
K25leHRUZXN0KCk7Cis8L3NjcmlwdD4KSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtZXhhY3QtbWF0Y2guaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1s
aXN0LWV4YWN0LW1hdGNoLmh0bWwJKHJldmlzaW9uIDI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtZXhhY3QtbWF0Y2guaHRt
bAkod29ya2luZyBjb3B5KQpAQCAtNCw3ICs0LDcgQEAKIDxzY3JpcHQ+CiB0ZXN0UnVubmVyLmR1
bXBBc1RleHQoKTsKIHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5hZGRP
cmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAi
LCAibG9jYWxob3N0IiwgZmFsc2UpOwordGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NBbGxvd0xp
c3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9jYWxob3N0IiwgZmFs
c2UpOwogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkKIHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtaHR0cHMtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLWFsbG93LWxpc3QtaHR0cHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjUxNDkpCShmcm9t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGlu
Zy1odHRwcy1leHBlY3RlZC50eHQ6MjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1odHRwcy1leHBlY3RlZC50eHQJKHdvcmtp
bmcgY29weSkKQEAgLTAsMCArMSwxMSBAQAorQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDov
LzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9y
aWdpbi4KK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IGR1ZSB0byBh
Y2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vMTI3
LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu
LgorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9j
YWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgZHVlIHRvIGFjY2Vz
cyBjb250cm9sIGNoZWNrcy4KK1Rlc3RzIHRoYXQgb3JpZ2luIHdoaXRlbGlzdGluZyBmb3IgaHR0
cHMgZG9lcyBub3QgbWF0Y2ggaHR0cCBVUkxzLgorCitUZXN0aW5nOiBodHRwOi8vbG9jYWxob3N0
OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKHN5bmMpCitQQVNTOiBOZXR3
b3JrRXJyb3I6ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCitUZXN0aW5nOiBodHRwOi8vbG9j
YWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGFzeW5jKQorUEFT
UzogMAorCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdp
bi1hbGxvdy1saXN0LWh0dHBzLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90
ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1odHRwcy5odG1sCShyZXZpc2lv
biAyNjUxNDkpCShmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLXdoaXRlbGlzdGluZy1odHRwcy5odG1sOjI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtaHR0cHMuaHRtbAkod29ya2lu
ZyBjb3B5KQpAQCAtMCwwICsxLDU3IEBACis8cD5UZXN0cyB0aGF0IG9yaWdpbiB3aGl0ZWxpc3Rp
bmcgZm9yIGh0dHBzIGRvZXMgbm90IG1hdGNoIGh0dHAgVVJMcy48L3A+CisKKzxwcmUgaWQ9ImNv
bnNvbGUiPjwvcHJlPgorPHNjcmlwdD4KK3Rlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwordGVzdFJ1
bm5lci53YWl0VW50aWxEb25lKCk7Cit0ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlz
dEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cHMiLCAibG9jYWxob3N0IiwgZmFs
c2UpOworCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3Nh
Z2UgKyAnXG4nKSk7Cit9CisKK2Z1bmN0aW9uIHRlc3QodXJsLCBleHBlY3RTdWNjZXNzKQorewor
ICAgIGxvZygiVGVzdGluZzogIiArIHVybCArICIgKHN5bmMpIik7CisgICAgdmFyIHJlcSA9IG5l
dyBYTUxIdHRwUmVxdWVzdCgpOworICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKKyAg
ICB0cnkgeworICAgICAgICByZXEuc2VuZChudWxsKTsKKyAgICAgICAgbG9nKChleHBlY3RTdWNj
ZXNzID8gIlBBU1M6ICIgOiAiRkFJTDogIikgKyByZXEucmVzcG9uc2VUZXh0KTsKKyAgICB9IGNh
dGNoIChlKSB7CisgICAgICAgIGxvZygoZXhwZWN0U3VjY2VzcyA/ICJGQUlMOiAiIDogIlBBU1M6
ICIpICsgZSk7CisgICAgfQorCisgICAgbG9nKCJUZXN0aW5nOiAiICsgdXJsICsgIiAoYXN5bmMp
Iik7CisgICAgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9wZW4oIkdFVCIs
IHVybCwgdHJ1ZSk7CisgICAgcmVxLm9ubG9hZCA9IGZ1bmN0aW9uKCkgeworICAgICAgICBsb2co
KGV4cGVjdFN1Y2Nlc3MgPyAiUEFTUzogIiA6ICJGQUlMOiAiKSArIHJlcS5yZXNwb25zZVRleHQp
OworICAgICAgICBuZXh0VGVzdCgpOworICAgIH07CisgICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlv
bigpIHsKKyAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIkZBSUw6ICIgOiAiUEFTUzogIikg
KyByZXEuc3RhdHVzKTsKKyAgICAgICAgbmV4dFRlc3QoKTsKKyAgICB9OworICAgIHJlcS5zZW5k
KG51bGwpOworfQorCit2YXIgdGVzdHMgPSBbCisgICAgWyJodHRwOi8vbG9jYWxob3N0OjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiLCBmYWxzZV0KKyAgICAvLyBGSVhNRTog
SXMgaXQgcG9zc2libGUgdG8gc2V0dXAgdGhlIGZvbGxvd2luZyB0ZXN0cz8KKyAgICAvLyBbImh0
dHBzOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiLCB0
cnVlXQorXTsKKwordmFyIGN1cnJlbnRUZXN0ID0gMDsKKworZnVuY3Rpb24gbmV4dFRlc3QoKQor
eworICAgIGlmIChjdXJyZW50VGVzdCA8IHRlc3RzLmxlbmd0aCkKKyAgICAgICAgdGVzdC5hcHBs
eShudWxsLCB0ZXN0c1tjdXJyZW50VGVzdCsrXSk7CisgICAgZWxzZQorICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKK30KKworbmV4dFRlc3QoKTsKKzwvc2NyaXB0PgpJbmRleDogTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1odHRw
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3Qvb3JpZ2luLWFsbG93LWxpc3QtaHR0cHMuaHRtbAkocmV2aXNpb24gMjY1MTQ5KQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1odHRw
cy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQsNyBAQAogPHNjcmlwdD4KIHRlc3RSdW5u
ZXIuZHVtcEFzVGV4dCgpOwogdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7Ci10ZXN0UnVubmVy
LmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAi
aHR0cHMiLCAibG9jYWxob3N0IiwgZmFsc2UpOwordGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NB
bGxvd0xpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHBzIiwgImxvY2FsaG9z
dCIsIGZhbHNlKTsKIAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiB7CkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWlwLWFkZHJlc3Nl
cy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxo
dHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1pcC1hZGRyZXNzZXMtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAyNjUxNDkpCShmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMtZXhwZWN0ZWQudHh0OjI2NTE0OSkK
KysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxp
c3QtaXAtYWRkcmVzc2VzLWV4cGVjdGVkLnR4dAkod29ya2luZyBjb3B5KQpAQCAtMCwwICsxLDcg
QEAKK1Rlc3RzIG9yaWdpbiB3aGl0ZWxpc3Rpbmcgd2l0aCBJUCBhZGRyZXNzZXMuCisKK1Rlc3Rp
bmc6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4
dCAoc3luYykKK1BBU1M6IFBBU1MKK1Rlc3Rpbmc6IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWxo
dHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoYXN5bmMpCitQQVNTOiBQQVNTCisKSW5kZXg6
IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3Qt
aXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy1leHBlY3RlZC50eHQKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
TGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1p
cC1hZGRyZXNzZXMtd2l0aC1zdWJkb21haW5zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY1MTQ5
KQkoZnJvbSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0
ZWxpc3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy1leHBlY3RlZC50eHQ6MjY1MTQ5
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ct
bGlzdC1pcC1hZGRyZXNzZXMtd2l0aC1zdWJkb21haW5zLWV4cGVjdGVkLnR4dAkod29ya2luZyBj
b3B5KQpAQCAtMCwwICsxLDExIEBACitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vbG9j
YWxob3N0OjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2lu
LgorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vMTI3
LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgZHVlIHRvIGFjY2Vz
cyBjb250cm9sIGNoZWNrcy4KK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitD
T05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly8xMjcuMC4w
LjE6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCBkdWUgdG8gYWNjZXNzIGNv
bnRyb2wgY2hlY2tzLgorU3BlY2lmeWluZyB0aGF0IGFuIElQIGFkZHJlc3Mgc2hvdWxkIG1hdGNo
IHN1YmRvbWFpbnMgZG9lc24ndCBtYWtlIHNlbnNlLiBUaGlzIHRlc3QgdmVyaWZpZXMgdGhhdCBp
dCBkb2Vzbid0IGRvIGFueXRoaW5nLgorCitUZXN0aW5nOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAv
eG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKHN5bmMpCitGQUlMOiBOZXR3b3JrRXJy
b3I6ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCitUZXN0aW5nOiBodHRwOi8vMTI3LjAuMC4x
OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGFzeW5jKQorRkFJTDogMAor
CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxv
dy1saXN0LWlwLWFkZHJlc3Nlcy13aXRoLXN1YmRvbWFpbnMuaHRtbAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWlw
LWFkZHJlc3Nlcy13aXRoLXN1YmRvbWFpbnMuaHRtbAkocmV2aXNpb24gMjY1MTQ5KQkoZnJvbSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmct
aXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy5odG1sOjI2NTE0OSkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtaXAtYWRkcmVzc2Vz
LXdpdGgtc3ViZG9tYWlucy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsMjIgQEAKKzxw
PlNwZWNpZnlpbmcgdGhhdCBhbiBJUCBhZGRyZXNzIHNob3VsZCBtYXRjaCBzdWJkb21haW5zIGRv
ZXNuJ3QgbWFrZSBzZW5zZS4gVGhpcyB0ZXN0IHZlcmlmaWVzIHRoYXQgaXQgZG9lc24ndCBkbyBh
bnl0aGluZy48L3A+Cis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+Cit0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKK3Rlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwordGVzdFJ1bm5l
ci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiwg
Imh0dHAiLCAiKi4wLjAuMSIsIHRydWUpOworCitmdW5jdGlvbiBsb2cobWVzc2FnZSkKK3sKKyAg
ICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50
LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Cit9CisKK3ZhciBpZnJhbWUgPSBkb2N1
bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKK2RvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQo
aWZyYW1lKTsKK2lmcmFtZS5zcmMgPSAiaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3MtdGVzdC5odG1sIjsK
K3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdlIiwgZnVuY3Rpb24oZSkgeworICAgIGlm
IChlLmRhdGEgPT0gIkRPTkUiKQorICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAg
ICBlbHNlCisgICAgICAgIGxvZyhlLmRhdGEpOworfSwgZmFsc2UpOworPC9zY3JpcHQ+CkluZGV4
OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0
LWlwLWFkZHJlc3Nlcy13aXRoLXN1YmRvbWFpbnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWlwLWFkZHJl
c3Nlcy13aXRoLXN1YmRvbWFpbnMuaHRtbAkocmV2aXNpb24gMjY1MTQ5KQorKysgTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1pcC1hZGRyZXNz
ZXMtd2l0aC1zdWJkb21haW5zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiA8
c2NyaXB0PgogdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CiB0ZXN0UnVubmVyLndhaXRVbnRpbERv
bmUoKTsKLXRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMCIsICJodHRwIiwgIiouMC4wLjEiLCB0cnVlKTsKK3Rlc3RSdW5uZXIuYWRk
T3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIsICJodHRw
IiwgIiouMC4wLjEiLCB0cnVlKTsKIAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiB7CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWlw
LWFkZHJlc3Nlcy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtaXAtYWRkcmVzc2VzLmh0bWwJKHJldmlzaW9u
IDI2NTE0OSkJKGZyb20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmln
aW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy5odG1sOjI2NTE0OSkKKysrIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtaXAtYWRkcmVzc2Vz
Lmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSwyMiBAQAorPHA+VGVzdHMgb3JpZ2luIHdo
aXRlbGlzdGluZyB3aXRoIElQIGFkZHJlc3Nlcy48L3A+Cis8cHJlIGlkPSJjb25zb2xlIj48L3By
ZT4KKzxzY3JpcHQ+Cit0ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKK3Rlc3RSdW5uZXIud2FpdFVu
dGlsRG9uZSgpOwordGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0
cDovL2xvY2FsaG9zdDo4MDAwIiwgImh0dHAiLCAiMTI3LjAuMC4xIiwgZmFsc2UpOworCitmdW5j
dGlvbiBsb2cobWVzc2FnZSkKK3sKKyAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29s
ZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7
Cit9CisKK3ZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJhbWUiKTsKK2Rv
Y3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKK2lmcmFtZS5zcmMgPSAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9vcmlnaW4td2hpdGVsaXN0aW5n
LWlwLWFkZHJlc3MtdGVzdC5odG1sIjsKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCJtZXNzYWdl
IiwgZnVuY3Rpb24oZSkgeworICAgIGlmIChlLmRhdGEgPT0gIkRPTkUiKQorICAgICAgICB0ZXN0
UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICBlbHNlCisgICAgICAgIGxvZyhlLmRhdGEpOworfSwg
ZmFsc2UpOworPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LWlwLWFkZHJlc3Nlcy5odG1sCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3Qt
aXAtYWRkcmVzc2VzLmh0bWwJKHJldmlzaW9uIDI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtaXAtYWRkcmVzc2VzLmh0bWwJ
KHdvcmtpbmcgY29weSkKQEAgLTMsNyArMyw3IEBACiA8c2NyaXB0PgogdGVzdFJ1bm5lci5kdW1w
QXNUZXh0KCk7CiB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLXRlc3RSdW5uZXIuYWRkT3Jp
Z2luQWNjZXNzV2hpdGVsaXN0RW50cnkoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIsICJodHRwIiwg
IjEyNy4wLjAuMSIsIGZhbHNlKTsKK3Rlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0
RW50cnkoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIsICJodHRwIiwgIjEyNy4wLjAuMSIsIGZhbHNl
KTsKIAogZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCiB7CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rl
c3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LXJlbW92YWwtZXhwZWN0ZWQudHh0
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLWFsbG93LWxpc3QtcmVtb3ZhbC1leHBlY3RlZC50eHQJKHJldmlzaW9uIDI2NTE0OSkJKGZy
b20gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0
aW5nLXJlbW92YWwtZXhwZWN0ZWQudHh0OjI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtcmVtb3ZhbC1leHBlY3RlZC50eHQJ
KHdvcmtpbmcgY29weSkKQEAgLTAsMCArMSw1NSBAQAorQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4g
aHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFs
bG93LU9yaWdpbi4KK0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQg
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IGR1
ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRw
Oi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ct
T3JpZ2luLgorQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRw
Oi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgZHVlIHRv
IGFjY2VzcyBjb250cm9sIGNoZWNrcy4KK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8x
MjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1Pcmln
aW4uCitDT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9s
b2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCBkdWUgdG8gYWNj
ZXNzIGNvbnRyb2wgY2hlY2tzLgorQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4w
LjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4K
K0NPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IGR1ZSB0byBhY2Nlc3Mg
Y29udHJvbCBjaGVja3MuCitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vMTI3LjAuMC4x
OjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQ09O
U09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0
OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgZHVlIHRvIGFjY2VzcyBjb250
cm9sIGNoZWNrcy4KK0NPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCitDT05TT0xF
IE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wg
Y2hlY2tzLgorQ09OU09MRSBNRVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlz
IG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KK0NPTlNPTEUgTUVT
U0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3ht
bGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVj
a3MuCitDT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90
IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgorQ09OU09MRSBNRVNTQUdF
OiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4K
K1Rlc3RzIHRoZSBiZWhhdmlvciBvZiB3aGl0ZWxpc3Rpbmcgb3JpZ2lucyBhbmQgcmVtb3Zpbmcg
dGhlbSBsYXRlci4KKworVGVzdGluZzogc291cmNlIG9yaWdpbjogaHR0cDovLzEyNy4wLjAuMTo4
MDAwIGRlc3RpbmF0aW9uIG9yaWdpbjogaHR0cDpsb2NhbGhvc3QgCitMb2FkaW5nOiBodHRwOi8v
bG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGlu
ZyBORVRXT1JLX0VSUikKK1BBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1
cnJlZC4KK0xvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIFBBU1MpCitQQVNTOiBQQVNTCitMb2FkaW5nOiBodHRw
Oi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVj
dGluZyBORVRXT1JLX0VSUikKK1BBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBv
Y2N1cnJlZC4KKworCitUZXN0aW5nOiBzb3VyY2Ugb3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgw
MDAgZGVzdGluYXRpb24gb3JpZ2luOiBodHRwOmxvY2FsaG9zdCBhbGxvd2luZyBzdWJkb21haW5z
CitMb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2Vz
L2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikKK1BBU1M6IE5ldHdvcmtFcnJvcjogIEEg
bmV0d29yayBlcnJvciBvY2N1cnJlZC4KK0xvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIFBBU1MpCitQQVNTOiBQ
QVNTCitMb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3Vy
Y2VzL2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikKK1BBU1M6IE5ldHdvcmtFcnJvcjog
IEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4KKworCitUZXN0aW5nOiBzb3VyY2Ugb3JpZ2luOiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAgZGVzdGluYXRpb24gb3JpZ2luOiBoVHRQOkxvQ2FMaE9zVCBh
bGxvd2luZyBzdWJkb21haW5zCitMb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0
cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikKK1BBU1M6
IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4KK0xvYWRpbmc6IGh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0
aW5nIFBBU1MpCitQQVNTOiBQQVNTCitMb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1s
aHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VSUikKK1BB
U1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4KKworCitUZXN0aW5n
OiBzb3VyY2Ugb3JpZ2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgZGVzdGluYXRpb24gb3JpZ2lu
OiBodHRwOiBhbGxvd2luZyBzdWJkb21haW5zCitMb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0Ojgw
MDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JLX0VS
UikKK1BBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4KK0xvYWRp
bmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4
dCAoZXhwZWN0aW5nIFBBU1MpCitQQVNTOiBQQVNTCitMb2FkaW5nOiBodHRwOi8vbG9jYWxob3N0
OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGV4cGVjdGluZyBORVRXT1JL
X0VSUikKK1BBU1M6IE5ldHdvcmtFcnJvcjogIEEgbmV0d29yayBlcnJvciBvY2N1cnJlZC4KKwor
CisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFs
bG93LWxpc3QtcmVtb3ZhbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtcmVtb3ZhbC5odG1sCShyZXZpc2lv
biAyNjUxNDkpCShmcm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLXdoaXRlbGlzdGluZy1yZW1vdmFsLmh0bWw6MjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1yZW1vdmFsLmh0bWwJKHdv
cmtpbmcgY29weSkKQEAgLTAsMCArMSw1MSBAQAorPHA+VGVzdHMgdGhlIGJlaGF2aW9yIG9mIHdo
aXRlbGlzdGluZyBvcmlnaW5zIGFuZCByZW1vdmluZyB0aGVtIGxhdGVyLjwvcD4KKworPHByZSBp
ZD0iY29uc29sZSI+PC9wcmU+Cis8c2NyaXB0PgordGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisK
K2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJc
biIpKTsKK30KKworZnVuY3Rpb24gbG9hZFVSTCh1cmwsIGV4cGVjdFN1Y2Nlc3MpCit7CisgICAg
bG9nKCJMb2FkaW5nOiAiICsgdXJsICsgIiAiICsgKGV4cGVjdFN1Y2Nlc3MgPyAiKGV4cGVjdGlu
ZyBQQVNTKSIgOiAiKGV4cGVjdGluZyBORVRXT1JLX0VSUikiKSk7CisKKyAgICB2YXIgcmVxID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOwor
ICAgIHRyeSB7CisgICAgICAgIHJlcS5zZW5kKG51bGwpOworICAgICAgICBsb2coKGV4cGVjdFN1
Y2Nlc3MgPyAiUEFTUzogIiA6ICJGQUlMOiAiKSArIHJlcS5yZXNwb25zZVRleHQpOworICAgIH0g
Y2F0Y2ggKGUpIHsKKyAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIkZBSUw6ICIgOiAiUEFT
UzogIikgKyBlKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIHRlc3Qob3JpZ2luLCBwcm90b2NvbCwg
aG9zdCwgc3ViZG9tYWlucywgdXJsKQoreworICAgIGxvZygiVGVzdGluZzogc291cmNlIG9yaWdp
bjogIiArIG9yaWdpbiArICIgZGVzdGluYXRpb24gb3JpZ2luOiAiICsgcHJvdG9jb2wgKyAiOiIg
KyBob3N0ICsgIiAiICsgKHN1YmRvbWFpbnMgPyAiYWxsb3dpbmcgc3ViZG9tYWlucyIgOiAiIikp
OworCisgICAgbG9hZFVSTCh1cmwsIGZhbHNlKTsKKworICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnkob3JpZ2luLCBwcm90b2NvbC50b0xvd2VyQ2FzZSgpLCBob3N0
LnRvTG93ZXJDYXNlKCksIHN1YmRvbWFpbnMpOworCisgICAgbG9hZFVSTCh1cmwsIHRydWUpOwor
CisgICAgdGVzdFJ1bm5lci5yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShvcmlnaW4s
IHByb3RvY29sLCBob3N0LCBzdWJkb21haW5zKTsKKworICAgIGxvYWRVUkwodXJsLCBmYWxzZSk7
CisKKyAgICBsb2coIlxuIik7Cit9CisKK3ZhciB0ZXN0cyA9IFsKKyAgICBbImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZhbHNlLCAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0Il0sCisgICAgWyJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2NhbGhvc3QiLCB0cnVlLCAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0Il0sCisgICAgWyJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiLCAiaFR0UCIsICJMb0NhTGhPc1QiLCB0cnVlLCAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0Il0sCisgICAgWyJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICIiLCB0cnVlLCAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0Il0KK107CisKK3Rlc3RzLmZv
ckVhY2goZnVuY3Rpb24odGVzdEVudHJ5KSB7IHRlc3QuYXBwbHkobnVsbCwgdGVzdEVudHJ5KSB9
KTsKKzwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9vcmlnaW4tYWxsb3ctbGlzdC1yZW1vdmFsLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1yZW1vdmFsLmh0
bWwJKHJldmlzaW9uIDI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJl
cXVlc3Qvb3JpZ2luLWFsbG93LWxpc3QtcmVtb3ZhbC5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC0y
OSwxMSArMjksMTEgQEAgZnVuY3Rpb24gdGVzdChvcmlnaW4sIHByb3RvY29sLCBob3N0LCBzdQog
CiAgICAgbG9hZFVSTCh1cmwsIGZhbHNlKTsKIAotICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNj
ZXNzV2hpdGVsaXN0RW50cnkob3JpZ2luLCBwcm90b2NvbC50b0xvd2VyQ2FzZSgpLCBob3N0LnRv
TG93ZXJDYXNlKCksIHN1YmRvbWFpbnMpOworICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNz
QWxsb3dMaXN0RW50cnkob3JpZ2luLCBwcm90b2NvbC50b0xvd2VyQ2FzZSgpLCBob3N0LnRvTG93
ZXJDYXNlKCksIHN1YmRvbWFpbnMpOwogCiAgICAgbG9hZFVSTCh1cmwsIHRydWUpOwogCi0gICAg
dGVzdFJ1bm5lci5yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShvcmlnaW4sIHByb3Rv
Y29sLCBob3N0LCBzdWJkb21haW5zKTsKKyAgICB0ZXN0UnVubmVyLnJlbW92ZU9yaWdpbkFjY2Vz
c0FsbG93TGlzdEVudHJ5KG9yaWdpbiwgcHJvdG9jb2wsIGhvc3QsIHN1YmRvbWFpbnMpOwogCiAg
ICAgbG9hZFVSTCh1cmwsIGZhbHNlKTsKIApJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1zdWJkb21haW5zLWV4cGVjdGVkLnR4dAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdp
bi1hbGxvdy1saXN0LXN1YmRvbWFpbnMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjUxNDkpCShm
cm9tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlz
dGluZy1zdWJkb21haW5zLWV4cGVjdGVkLnR4dDoyNjUxNDkpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi1hbGxvdy1saXN0LXN1YmRvbWFpbnMtZXhwZWN0
ZWQudHh0CSh3b3JraW5nIGNvcHkpCkBAIC0wLDAgKzEsNyBAQAorVGVzdHMgb3JpZ2luIHdoaXRl
bGlzdGluZyBzdWJkb21haW4gYmVoYXZpb3IuCisKK1Rlc3Rpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoc3luYykKK1BBU1M6IFBBU1MK
K1Rlc3Rpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMv
Z2V0LnR4dCAoYXN5bmMpCitQQVNTOiBQQVNTCisKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVz
dHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFsbG93LWxpc3Qtc3ViZG9tYWlucy5odG1sCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLWFs
bG93LWxpc3Qtc3ViZG9tYWlucy5odG1sCShyZXZpc2lvbiAyNjUxNDkpCShmcm9tIExheW91dFRl
c3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1zdWJkb21h
aW5zLmh0bWw6MjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9vcmlnaW4tYWxsb3ctbGlzdC1zdWJkb21haW5zLmh0bWwJKHdvcmtpbmcgY29weSkKQEAgLTAs
MCArMSw1OSBAQAorPHA+VGVzdHMgb3JpZ2luIHdoaXRlbGlzdGluZyBzdWJkb21haW4gYmVoYXZp
b3IuPC9wPgorCis8cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KKzxzY3JpcHQ+Cit0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKK3Rlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwordGVzdFJ1bm5lci5h
ZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0
dHAiLCAibG9jYWxob3N0IiwgdHJ1ZSk7CisKK2Z1bmN0aW9uIGxvZyhtZXNzYWdlKQoreworICAg
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQu
Y3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICdcbicpKTsKK30KKworZnVuY3Rpb24gdGVzdCh1cmws
IGV4cGVjdFN1Y2Nlc3MpCit7CisgICAgbG9nKCJUZXN0aW5nOiAiICsgdXJsICsgIiAoc3luYyki
KTsKKyAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7CisgICAgcmVxLm9wZW4oIkdF
VCIsIHVybCwgZmFsc2UpOworICAgIHRyeSB7CisgICAgICAgIHJlcS5zZW5kKG51bGwpOworICAg
ICAgICBsb2coKGV4cGVjdFN1Y2Nlc3MgPyAiUEFTUzogIiA6ICJGQUlMOiAiKSArIHJlcS5yZXNw
b25zZVRleHQpOworICAgIH0gY2F0Y2ggKGUpIHsKKyAgICAgICAgbG9nKChleHBlY3RTdWNjZXNz
ID8gIkZBSUw6ICIgOiAiUEFTUzogIikgKyBlKTsKKyAgICB9CisKKyAgICBsb2coIlRlc3Rpbmc6
ICIgKyB1cmwgKyAiIChhc3luYykiKTsKKyAgICByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsK
KyAgICByZXEub3BlbigiR0VUIiwgdXJsLCB0cnVlKTsKKyAgICByZXEub25sb2FkID0gZnVuY3Rp
b24oKSB7CisgICAgICAgIGxvZygoZXhwZWN0U3VjY2VzcyA/ICJQQVNTOiAiIDogIkZBSUw6ICIp
ICsgcmVxLnJlc3BvbnNlVGV4dCk7CisgICAgICAgIG5leHRUZXN0KCk7CisgICAgfTsKKyAgICBy
ZXEub25lcnJvciA9IGZ1bmN0aW9uKCkgeworICAgICAgICBsb2coKGV4cGVjdFN1Y2Nlc3MgPyAi
RkFJTDogIiA6ICJQQVNTOiAiKSArIHJlcS5zdGF0dXMpOworICAgICAgICBuZXh0VGVzdCgpOwor
ICAgIH07CisgICAgcmVxLnNlbmQobnVsbCk7Cit9CisKK3ZhciB0ZXN0cyA9IFsKKyAgICBbImh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCIsIHRy
dWVdCisgICAgLy8gRklYTUU6IElzIGl0IHBvc3NpYmxlIHRvIHNldHVwIHRoZSBmb2xsb3dpbmcg
dGVzdHM/CisgICAgLy8gWyJodHRwOi8vZm9vLmxvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9nZXQudHh0IiwgdHJ1ZV0KKyAgICAvLyBbImh0dHA6Ly9iYXIuZm9vLmxvY2Fs
aG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IiwgdHJ1ZV0KKyAgICAv
LyBbImh0dHA6Ly9mb29sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0
LnR4dCIsIGZhbHNlXQorXTsKKwordmFyIGN1cnJlbnRUZXN0ID0gMDsKKworZnVuY3Rpb24gbmV4
dFRlc3QoKQoreworICAgIGlmIChjdXJyZW50VGVzdCA8IHRlc3RzLmxlbmd0aCkKKyAgICAgICAg
dGVzdC5hcHBseShudWxsLCB0ZXN0c1tjdXJyZW50VGVzdCsrXSk7CisgICAgZWxzZQorICAgICAg
ICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKK30KKworbmV4dFRlc3QoKTsKKzwvc2NyaXB0PgpJ
bmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ct
bGlzdC1zdWJkb21haW5zLmh0bWwKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4tYWxsb3ctbGlzdC1zdWJkb21haW5zLmh0bWwJKHJldmlz
aW9uIDI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3Jp
Z2luLWFsbG93LWxpc3Qtc3ViZG9tYWlucy5odG1sCSh3b3JraW5nIGNvcHkpCkBAIC00LDcgKzQs
NyBAQAogPHNjcmlwdD4KIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwogdGVzdFJ1bm5lci53YWl0
VW50aWxEb25lKCk7Ci10ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2NhbGhvc3QiLCB0cnVlKTsKK3Rlc3RS
dW5uZXIuYWRkT3JpZ2luQWNjZXNzQWxsb3dMaXN0RW50cnkoImh0dHA6Ly8xMjcuMC4wLjE6ODAw
MCIsICJodHRwIiwgImxvY2FsaG9zdCIsIHRydWUpOwogCiBmdW5jdGlvbiBsb2cobWVzc2FnZSkK
IHsKSW5kZXg6IExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdo
aXRlbGlzdGluZy1hbGwtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0
dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1hbGwtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAyNjUxNDkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctYWxsLWV4cGVjdGVkLnR4dAkobm9uZXhpc3RlbnQp
CkBAIC0xLDExICswLDAgQEAKLVRlc3RzIHRoZSBzcGVjaWFsIGNhc2Ugb2Ygd2hpdGVsaXN0aW5n
IGFsbCBvcmlnaW5zLgotCi1UZXN0aW5nOiBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJl
cXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKHN5bmMpCi1QQVNTOiBQQVNTCi1UZXN0aW5nOiBodHRw
Oi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGFzeW5j
KQotUEFTUzogUEFTUwotVGVzdGluZzogaHR0cDovLzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1
ZXN0L3Jlc291cmNlcy9nZXQudHh0IChzeW5jKQotUEFTUzogUEFTUwotVGVzdGluZzogaHR0cDov
LzEyNy4wLjAuMTo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChhc3luYykK
LVBBU1M6IFBBU1MKLQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9vcmlnaW4td2hpdGVsaXN0aW5nLWFsbC5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3Rz
L2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1hbGwuaHRtbAko
cmV2aXNpb24gMjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9vcmlnaW4td2hpdGVsaXN0aW5nLWFsbC5odG1sCShub25leGlzdGVudCkKQEAgLTEsNTYgKzAs
MCBAQAotPHA+VGVzdHMgdGhlIHNwZWNpYWwgY2FzZSBvZiB3aGl0ZWxpc3RpbmcgYWxsIG9yaWdp
bnMuPC9wPgotCi08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci10ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKLXRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5h
ZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0
dHAiLCAiIiwgdHJ1ZSk7Ci10ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5
KCJodHRwOi8vbG9jYWxob3N0OjgwMDAiLCAiaHR0cCIsICIiLCB0cnVlKTsKLQotZnVuY3Rpb24g
bG9nKG1lc3NhZ2UpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2NvbnNvbGUnKS5h
cHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdlICsgJ1xuJykpOwotfQot
Ci1mdW5jdGlvbiB0ZXN0RG9tYWluKCkKLXsKLSAgICB2YXIgdXJsID0gImh0dHA6Ly9sb2NhbGhv
c3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCI7Ci0gICAgbG9nKCJUZXN0
aW5nOiAiICsgdXJsICsgIiAoc3luYykiKTsKLSAgICB2YXIgcmVxID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7Ci0gICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOwotICAgIHRyeSB7Ci0gICAg
ICAgIHJlcS5zZW5kKG51bGwpOwotICAgICAgICBsb2coIlBBU1M6ICIgKyByZXEucmVzcG9uc2VU
ZXh0KTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIGxvZygiRkFJTDogIiArIGUpOwotICAg
IH0KLQotICAgIGxvZygiVGVzdGluZzogIiArIHVybCArICIgKGFzeW5jKSIpOwotICAgIHJlcSA9
IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIHRydWUpOwot
ICAgIHJlcS5vbmxvYWQgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgbG9nKCJQQVNTOiAiICsgcmVx
LnJlc3BvbnNlVGV4dCk7Ci0gICAgICAgIHRlc3RJUEFkZHJlc3MoKTsKLSAgICB9OwotICAgIHJl
cS5vbmVycm9yID0gZnVuY3Rpb24oKSB7Ci0gICAgICAgIGxvZygiRkFJTDogIiArIHJlcS5zdGF0
dXMpOwotICAgICAgICB0ZXN0SVBBZGRyZXNzKCk7Ci0gICAgfTsKLSAgICByZXEuc2VuZChudWxs
KTsKLX0KLQotZnVuY3Rpb24gdGVzdElQQWRkcmVzcygpCi17Ci0gICAgdmFyIGlmcmFtZSA9IGRv
Y3VtZW50LmNyZWF0ZUVsZW1lbnQoImlmcmFtZSIpOwotICAgIGRvY3VtZW50LmJvZHkuYXBwZW5k
Q2hpbGQoaWZyYW1lKTsKLSAgICBpZnJhbWUuc3JjID0gImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzLXRl
c3QuaHRtbCI7Ci0gICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoIm1lc3NhZ2UiLCBmdW5jdGlv
bihlKSB7Ci0gICAgICAgIGlmIChlLmRhdGEgPT0gIkRPTkUiKQotICAgICAgICAgICAgdGVzdFJ1
bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgICAgIGVsc2UKLSAgICAgICAgICAgIGxvZyhlLmRhdGEp
OwotICAgIH0sIGZhbHNlKTsKLX0KLQotdGVzdERvbWFpbigpOwotPC9zY3JpcHQ+CkluZGV4OiBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmct
ZXhhY3QtbWF0Y2gtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1leGFjdC1tYXRjaC1leHBl
Y3RlZC50eHQJKHJldmlzaW9uIDI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1s
aHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1leGFjdC1tYXRjaC1leHBlY3RlZC50eHQJ
KG5vbmV4aXN0ZW50KQpAQCAtMSwxMSArMCwwIEBACi1UZXN0cyB0aGUgYmVoYXZpb3Igb2Ygd2hp
dGVsaXN0aW5nIG9yaWdpbnMgdXNpbmcgZXhhY3QgbWF0Y2hpbmcuCi0KLVRlc3Rpbmc6IGh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoc3luYykK
LVBBU1M6IFBBU1MKLVRlc3Rpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvZ2V0LnR4dCAoYXN5bmMpCi1QQVNTOiBQQVNTCi1UZXN0aW5nOiBodHRwOi8v
bG9DQUxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKHN5bmMpCi1Q
QVNTOiBQQVNTCi1UZXN0aW5nOiBodHRwOi8vbG9DQUxob3N0OjgwMDAveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL2dldC50eHQgKGFzeW5jKQotUEFTUzogUEFTUwotCkluZGV4OiBMYXlvdXRUZXN0
cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctZXhhY3QtbWF0
Y2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctZXhhY3QtbWF0Y2guaHRtbAkocmV2aXNpb24gMjY1MTQ5
KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVs
aXN0aW5nLWV4YWN0LW1hdGNoLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAtMSw2MCArMCwwIEBACi08
cD5UZXN0cyB0aGUgYmVoYXZpb3Igb2Ygd2hpdGVsaXN0aW5nIG9yaWdpbnMgdXNpbmcgZXhhY3Qg
bWF0Y2hpbmcuPC9wPgotCi08cHJlIGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci10ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKLXRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1
bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAw
IiwgImh0dHAiLCAibG9jYWxob3N0IiwgZmFsc2UpOwotCi1mdW5jdGlvbiBsb2cobWVzc2FnZSkK
LXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRv
Y3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7Ci19Ci0KLWZ1bmN0aW9uIHRl
c3QodXJsLCBleHBlY3RTdWNjZXNzKQotewotICAgIGxvZygiVGVzdGluZzogIiArIHVybCArICIg
KHN5bmMpIik7Ci0gICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVxdWVzdCgpOwotICAgIHJlcS5v
cGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKLSAgICB0cnkgewotICAgICAgICByZXEuc2VuZChudWxs
KTsKLSAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIlBBU1M6ICIgOiAiRkFJTDogIikgKyBy
ZXEucmVzcG9uc2VUZXh0KTsKLSAgICB9IGNhdGNoIChlKSB7Ci0gICAgICAgIGxvZygoZXhwZWN0
U3VjY2VzcyA/ICJGQUlMOiAiIDogIlBBU1M6ICIpICsgZSk7Ci0gICAgfQotCi0gICAgbG9nKCJU
ZXN0aW5nOiAiICsgdXJsICsgIiAoYXN5bmMpIik7Ci0gICAgcmVxID0gbmV3IFhNTEh0dHBSZXF1
ZXN0KCk7Ci0gICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgdHJ1ZSk7Ci0gICAgcmVxLm9ubG9hZCA9
IGZ1bmN0aW9uKCkgewotICAgICAgICBsb2coKGV4cGVjdFN1Y2Nlc3MgPyAiUEFTUzogIiA6ICJG
QUlMOiAiKSArIHJlcS5yZXNwb25zZVRleHQpOwotICAgICAgICBuZXh0VGVzdCgpOwotICAgIH07
Ci0gICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAgICAgbG9nKChleHBlY3RTdWNj
ZXNzID8gIkZBSUw6ICIgOiAiUEFTUzogIikgKyByZXEuc3RhdHVzKTsKLSAgICAgICAgbmV4dFRl
c3QoKTsKLSAgICB9OwotICAgIHJlcS5zZW5kKG51bGwpOwotfQotCi12YXIgdGVzdHMgPSBbCi0g
ICAgWyJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50
eHQiLCB0cnVlXSwKLSAgICBbImh0dHA6Ly9sb0NBTGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvZ2V0LnR4dCIsIHRydWVdCi0gICAgLy8gRklYTUU6IElzIGl0IHBvc3NpYmxlIHRv
IHNldHVwIHRoZSBmb2xsb3dpbmcgdGVzdHM/Ci0gICAgLy8gWyJodHRwOi8vbG9jYWxob3N0Ojgw
MDEveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiLCBmYWxzZV0sCi0gICAgLy8gWyJo
dHRwOi8vZm9vLmxvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0
IiwgZmFsc2VdLAotICAgIC8vIFsiaHR0cHM6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVz
dC9yZXNvdXJjZXMvZ2V0LnR4dCIsIGZhbHNlXQotXTsKLQotdmFyIGN1cnJlbnRUZXN0ID0gMDsK
LQotZnVuY3Rpb24gbmV4dFRlc3QoKQotewotICAgIGlmIChjdXJyZW50VGVzdCA8IHRlc3RzLmxl
bmd0aCkKLSAgICAgICAgdGVzdC5hcHBseShudWxsLCB0ZXN0c1tjdXJyZW50VGVzdCsrXSk7Ci0g
ICAgZWxzZQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLX0KLQotbmV4dFRlc3Qo
KTsKLTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9vcmlnaW4td2hpdGVsaXN0aW5nLWh0dHBzLWV4cGVjdGVkLnR4dAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmct
aHR0cHMtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjUxNDkpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaHR0cHMtZXhwZWN0ZWQu
dHh0CShub25leGlzdGVudCkKQEAgLTEsMTEgKzAsMCBAQAotQ09OU09MRSBNRVNTQUdFOiBPcmln
aW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9s
LUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxv
YWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0
IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxs
b3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBo
dHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgZHVl
IHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLVRlc3RzIHRoYXQgb3JpZ2luIHdoaXRlbGlzdGlu
ZyBmb3IgaHR0cHMgZG9lcyBub3QgbWF0Y2ggaHR0cCBVUkxzLgotCi1UZXN0aW5nOiBodHRwOi8v
bG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKHN5bmMpCi1Q
QVNTOiBOZXR3b3JrRXJyb3I6ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCi1UZXN0aW5nOiBo
dHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGFz
eW5jKQotUEFTUzogMAotCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaHR0cHMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRU
ZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaHR0cHMu
aHRtbAkocmV2aXNpb24gMjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWh0dHBzLmh0bWwJKG5vbmV4aXN0ZW50KQpAQCAt
MSw1NyArMCwwIEBACi08cD5UZXN0cyB0aGF0IG9yaWdpbiB3aGl0ZWxpc3RpbmcgZm9yIGh0dHBz
IGRvZXMgbm90IG1hdGNoIGh0dHAgVVJMcy48L3A+Ci0KLTxwcmUgaWQ9ImNvbnNvbGUiPjwvcHJl
PgotPHNjcmlwdD4KLXRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOwotdGVzdFJ1bm5lci53YWl0VW50
aWxEb25lKCk7Ci10ZXN0UnVubmVyLmFkZE9yaWdpbkFjY2Vzc1doaXRlbGlzdEVudHJ5KCJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cHMiLCAibG9jYWxob3N0IiwgZmFsc2UpOwotCi1mdW5j
dGlvbiBsb2cobWVzc2FnZSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnY29uc29s
ZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2UgKyAnXG4nKSk7
Ci19Ci0KLWZ1bmN0aW9uIHRlc3QodXJsLCBleHBlY3RTdWNjZXNzKQotewotICAgIGxvZygiVGVz
dGluZzogIiArIHVybCArICIgKHN5bmMpIik7Ci0gICAgdmFyIHJlcSA9IG5ldyBYTUxIdHRwUmVx
dWVzdCgpOwotICAgIHJlcS5vcGVuKCJHRVQiLCB1cmwsIGZhbHNlKTsKLSAgICB0cnkgewotICAg
ICAgICByZXEuc2VuZChudWxsKTsKLSAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIlBBU1M6
ICIgOiAiRkFJTDogIikgKyByZXEucmVzcG9uc2VUZXh0KTsKLSAgICB9IGNhdGNoIChlKSB7Ci0g
ICAgICAgIGxvZygoZXhwZWN0U3VjY2VzcyA/ICJGQUlMOiAiIDogIlBBU1M6ICIpICsgZSk7Ci0g
ICAgfQotCi0gICAgbG9nKCJUZXN0aW5nOiAiICsgdXJsICsgIiAoYXN5bmMpIik7Ci0gICAgcmVx
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgdHJ1ZSk7
Ci0gICAgcmVxLm9ubG9hZCA9IGZ1bmN0aW9uKCkgewotICAgICAgICBsb2coKGV4cGVjdFN1Y2Nl
c3MgPyAiUEFTUzogIiA6ICJGQUlMOiAiKSArIHJlcS5yZXNwb25zZVRleHQpOwotICAgICAgICBu
ZXh0VGVzdCgpOwotICAgIH07Ci0gICAgcmVxLm9uZXJyb3IgPSBmdW5jdGlvbigpIHsKLSAgICAg
ICAgbG9nKChleHBlY3RTdWNjZXNzID8gIkZBSUw6ICIgOiAiUEFTUzogIikgKyByZXEuc3RhdHVz
KTsKLSAgICAgICAgbmV4dFRlc3QoKTsKLSAgICB9OwotICAgIHJlcS5zZW5kKG51bGwpOwotfQot
Ci12YXIgdGVzdHMgPSBbCi0gICAgWyJodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzL2dldC50eHQiLCBmYWxzZV0KLSAgICAvLyBGSVhNRTogSXMgaXQgcG9zc2li
bGUgdG8gc2V0dXAgdGhlIGZvbGxvd2luZyB0ZXN0cz8KLSAgICAvLyBbImh0dHBzOi8vbG9jYWxo
b3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQiLCB0cnVlXQotXTsKLQot
dmFyIGN1cnJlbnRUZXN0ID0gMDsKLQotZnVuY3Rpb24gbmV4dFRlc3QoKQotewotICAgIGlmIChj
dXJyZW50VGVzdCA8IHRlc3RzLmxlbmd0aCkKLSAgICAgICAgdGVzdC5hcHBseShudWxsLCB0ZXN0
c1tjdXJyZW50VGVzdCsrXSk7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURv
bmUoKTsKLX0KLQotbmV4dFRlc3QoKTsKLTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0
cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy1l
eHBlY3RlZC50eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRw
cmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy1leHBlY3RlZC50eHQJKHJl
dmlzaW9uIDI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qv
b3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMtZXhwZWN0ZWQudHh0CShub25leGlzdGVu
dCkKQEAgLTEsNyArMCwwIEBACi1UZXN0cyBvcmlnaW4gd2hpdGVsaXN0aW5nIHdpdGggSVAgYWRk
cmVzc2VzLgotCi1UZXN0aW5nOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3Qv
cmVzb3VyY2VzL2dldC50eHQgKHN5bmMpCi1QQVNTOiBQQVNTCi1UZXN0aW5nOiBodHRwOi8vMTI3
LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKGFzeW5jKQotUEFT
UzogUEFTUwotCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29y
aWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy1leHBlY3RlZC50
eHQKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9v
cmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy13aXRoLXN1YmRvbWFpbnMtZXhwZWN0ZWQu
dHh0CShyZXZpc2lvbiAyNjUxNDkpCisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHBy
ZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlucy1l
eHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSwxMSArMCwwIEBACi1DT05TT0xFIE1FU1NB
R0U6IE9yaWdpbiBodHRwOi8vbG9jYWxob3N0OjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNz
LUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBj
YW5ub3QgbG9hZCBodHRwOi8vMTI3LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2Vz
L2dldC50eHQgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTog
T3JpZ2luIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0
LnR4dCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotU3BlY2lmeWluZyB0aGF0IGFuIElQ
IGFkZHJlc3Mgc2hvdWxkIG1hdGNoIHN1YmRvbWFpbnMgZG9lc24ndCBtYWtlIHNlbnNlLiBUaGlz
IHRlc3QgdmVyaWZpZXMgdGhhdCBpdCBkb2Vzbid0IGRvIGFueXRoaW5nLgotCi1UZXN0aW5nOiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgKHN5
bmMpCi1GQUlMOiBOZXR3b3JrRXJyb3I6ICBBIG5ldHdvcmsgZXJyb3Igb2NjdXJyZWQuCi1UZXN0
aW5nOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50
eHQgKGFzeW5jKQotRkFJTDogMAotCkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0
dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctaXAtYWRkcmVzc2VzLXdpdGgtc3ViZG9tYWlu
cy5odG1sCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMtd2l0aC1zdWJkb21haW5zLmh0bWwJ
KHJldmlzaW9uIDI2NTE0OSkKKysrIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3Qvb3JpZ2luLXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMtd2l0aC1zdWJkb21haW5zLmh0bWwJ
KG5vbmV4aXN0ZW50KQpAQCAtMSwyMiArMCwwIEBACi08cD5TcGVjaWZ5aW5nIHRoYXQgYW4gSVAg
YWRkcmVzcyBzaG91bGQgbWF0Y2ggc3ViZG9tYWlucyBkb2Vzbid0IG1ha2Ugc2Vuc2UuIFRoaXMg
dGVzdCB2ZXJpZmllcyB0aGF0IGl0IGRvZXNuJ3QgZG8gYW55dGhpbmcuPC9wPgotPHByZSBpZD0i
Y29uc29sZSI+PC9wcmU+Ci08c2NyaXB0PgotdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci10ZXN0
UnVubmVyLndhaXRVbnRpbERvbmUoKTsKLXRlc3RSdW5uZXIuYWRkT3JpZ2luQWNjZXNzV2hpdGVs
aXN0RW50cnkoImh0dHA6Ly9sb2NhbGhvc3Q6ODAwMCIsICJodHRwIiwgIiouMC4wLjEiLCB0cnVl
KTsKLQotZnVuY3Rpb24gbG9nKG1lc3NhZ2UpCi17Ci0gICAgZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2NvbnNvbGUnKS5hcHBlbmRDaGlsZChkb2N1bWVudC5jcmVhdGVUZXh0Tm9kZShtZXNzYWdl
ICsgJ1xuJykpOwotfQotCi12YXIgaWZyYW1lID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiaWZy
YW1lIik7Ci1kb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGlmcmFtZSk7Ci1pZnJhbWUuc3JjID0g
Imh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvb3JpZ2luLXdo
aXRlbGlzdGluZy1pcC1hZGRyZXNzLXRlc3QuaHRtbCI7Ci13aW5kb3cuYWRkRXZlbnRMaXN0ZW5l
cigibWVzc2FnZSIsIGZ1bmN0aW9uKGUpIHsKLSAgICBpZiAoZS5kYXRhID09ICJET05FIikKLSAg
ICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7Ci0gICAgZWxzZQotICAgICAgICBsb2coZS5k
YXRhKTsKLX0sIGZhbHNlKTsKLTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0
cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlwLWFkZHJlc3Nlcy5odG1sCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2lu
LXdoaXRlbGlzdGluZy1pcC1hZGRyZXNzZXMuaHRtbAkocmV2aXNpb24gMjY1MTQ5KQorKysgTGF5
b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLWlw
LWFkZHJlc3Nlcy5odG1sCShub25leGlzdGVudCkKQEAgLTEsMjIgKzAsMCBAQAotPHA+VGVzdHMg
b3JpZ2luIHdoaXRlbGlzdGluZyB3aXRoIElQIGFkZHJlc3Nlcy48L3A+Ci08cHJlIGlkPSJjb25z
b2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci10ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsKLXRlc3RSdW5u
ZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RF
bnRyeSgiaHR0cDovL2xvY2FsaG9zdDo4MDAwIiwgImh0dHAiLCAiMTI3LjAuMC4xIiwgZmFsc2Up
OwotCi1mdW5jdGlvbiBsb2cobWVzc2FnZSkKLXsKLSAgICBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnY29uc29sZScpLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZVRleHROb2RlKG1lc3NhZ2Ug
KyAnXG4nKSk7Ci19Ci0KLXZhciBpZnJhbWUgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCJpZnJh
bWUiKTsKLWRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaWZyYW1lKTsKLWlmcmFtZS5zcmMgPSAi
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9vcmlnaW4td2hp
dGVsaXN0aW5nLWlwLWFkZHJlc3MtdGVzdC5odG1sIjsKLXdpbmRvdy5hZGRFdmVudExpc3RlbmVy
KCJtZXNzYWdlIiwgZnVuY3Rpb24oZSkgewotICAgIGlmIChlLmRhdGEgPT0gIkRPTkUiKQotICAg
ICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKLSAgICBlbHNlCi0gICAgICAgIGxvZyhlLmRh
dGEpOwotfSwgZmFsc2UpOwotPC9zY3JpcHQ+CkluZGV4OiBMYXlvdXRUZXN0cy9odHRwL3Rlc3Rz
L3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC1leHBlY3RlZC50eHQK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmln
aW4td2hpdGVsaXN0aW5nLXJlbW92YWwtZXhwZWN0ZWQudHh0CShyZXZpc2lvbiAyNjUxNDkpCisr
KyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3Rp
bmctcmVtb3ZhbC1leHBlY3RlZC50eHQJKG5vbmV4aXN0ZW50KQpAQCAtMSw1NSArMCwwIEBACi1D
T05TT0xFIE1FU1NBR0U6IE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93
ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxI
dHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVl
c3QvcmVzb3VyY2VzL2dldC50eHQgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNP
TEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBi
eSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBS
ZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvZ2V0LnR4dCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBN
RVNTQUdFOiBPcmlnaW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFj
Y2Vzcy1Db250cm9sLUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVl
c3QgY2Fubm90IGxvYWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291
cmNlcy9nZXQudHh0IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NB
R0U6IE9yaWdpbiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNz
LUNvbnRyb2wtQWxsb3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBj
YW5ub3QgbG9hZCBodHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2Vz
L2dldC50eHQgZHVlIHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTog
T3JpZ2luIGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29u
dHJvbC1BbGxvdy1PcmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5v
dCBsb2FkIGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0
LnR4dCBkdWUgdG8gYWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotQ09OU09MRSBNRVNTQUdFOiBPcmln
aW4gaHR0cDovLzEyNy4wLjAuMTo4MDAwIGlzIG5vdCBhbGxvd2VkIGJ5IEFjY2Vzcy1Db250cm9s
LUFsbG93LU9yaWdpbi4KLUNPTlNPTEUgTUVTU0FHRTogWE1MSHR0cFJlcXVlc3QgY2Fubm90IGxv
YWQgaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0
IGR1ZSB0byBhY2Nlc3MgY29udHJvbCBjaGVja3MuCi1DT05TT0xFIE1FU1NBR0U6IE9yaWdpbiBo
dHRwOi8vMTI3LjAuMC4xOjgwMDAgaXMgbm90IGFsbG93ZWQgYnkgQWNjZXNzLUNvbnRyb2wtQWxs
b3ctT3JpZ2luLgotQ09OU09MRSBNRVNTQUdFOiBYTUxIdHRwUmVxdWVzdCBjYW5ub3QgbG9hZCBo
dHRwOi8vbG9jYWxob3N0OjgwMDAveG1saHR0cHJlcXVlc3QvcmVzb3VyY2VzL2dldC50eHQgZHVl
IHRvIGFjY2VzcyBjb250cm9sIGNoZWNrcy4KLUNPTlNPTEUgTUVTU0FHRTogT3JpZ2luIGh0dHA6
Ly8xMjcuMC4wLjE6ODAwMCBpcyBub3QgYWxsb3dlZCBieSBBY2Nlc3MtQ29udHJvbC1BbGxvdy1P
cmlnaW4uCi1DT05TT0xFIE1FU1NBR0U6IFhNTEh0dHBSZXF1ZXN0IGNhbm5vdCBsb2FkIGh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCBkdWUgdG8g
YWNjZXNzIGNvbnRyb2wgY2hlY2tzLgotVGVzdHMgdGhlIGJlaGF2aW9yIG9mIHdoaXRlbGlzdGlu
ZyBvcmlnaW5zIGFuZCByZW1vdmluZyB0aGVtIGxhdGVyLgotCi1UZXN0aW5nOiBzb3VyY2Ugb3Jp
Z2luOiBodHRwOi8vMTI3LjAuMC4xOjgwMDAgZGVzdGluYXRpb24gb3JpZ2luOiBodHRwOmxvY2Fs
aG9zdCAKLUxvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNv
dXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIE5FVFdPUktfRVJSKQotUEFTUzogTmV0d29ya0Vycm9y
OiAgQSBuZXR3b3JrIGVycm9yIG9jY3VycmVkLgotTG9hZGluZzogaHR0cDovL2xvY2FsaG9zdDo4
MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChleHBlY3RpbmcgUEFTUykKLVBB
U1M6IFBBU1MKLUxvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9y
ZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIE5FVFdPUktfRVJSKQotUEFTUzogTmV0d29ya0Vy
cm9yOiAgQSBuZXR3b3JrIGVycm9yIG9jY3VycmVkLgotCi0KLVRlc3Rpbmc6IHNvdXJjZSBvcmln
aW46IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBkZXN0aW5hdGlvbiBvcmlnaW46IGh0dHA6bG9jYWxo
b3N0IGFsbG93aW5nIHN1YmRvbWFpbnMKLUxvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94
bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIE5FVFdPUktfRVJSKQot
UEFTUzogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3JrIGVycm9yIG9jY3VycmVkLgotTG9hZGluZzog
aHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChl
eHBlY3RpbmcgUEFTUykKLVBBU1M6IFBBU1MKLUxvYWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAw
MC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0aW5nIE5FVFdPUktfRVJS
KQotUEFTUzogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3JrIGVycm9yIG9jY3VycmVkLgotCi0KLVRl
c3Rpbmc6IHNvdXJjZSBvcmlnaW46IGh0dHA6Ly8xMjcuMC4wLjE6ODAwMCBkZXN0aW5hdGlvbiBv
cmlnaW46IGhUdFA6TG9DYUxoT3NUIGFsbG93aW5nIHN1YmRvbWFpbnMKLUxvYWRpbmc6IGh0dHA6
Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhwZWN0
aW5nIE5FVFdPUktfRVJSKQotUEFTUzogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3JrIGVycm9yIG9j
Y3VycmVkLgotTG9hZGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jl
c291cmNlcy9nZXQudHh0IChleHBlY3RpbmcgUEFTUykKLVBBU1M6IFBBU1MKLUxvYWRpbmc6IGh0
dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCAoZXhw
ZWN0aW5nIE5FVFdPUktfRVJSKQotUEFTUzogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3JrIGVycm9y
IG9jY3VycmVkLgotCi0KLVRlc3Rpbmc6IHNvdXJjZSBvcmlnaW46IGh0dHA6Ly8xMjcuMC4wLjE6
ODAwMCBkZXN0aW5hdGlvbiBvcmlnaW46IGh0dHA6IGFsbG93aW5nIHN1YmRvbWFpbnMKLUxvYWRp
bmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4
dCAoZXhwZWN0aW5nIE5FVFdPUktfRVJSKQotUEFTUzogTmV0d29ya0Vycm9yOiAgQSBuZXR3b3Jr
IGVycm9yIG9jY3VycmVkLgotTG9hZGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHBy
ZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChleHBlY3RpbmcgUEFTUykKLVBBU1M6IFBBU1MKLUxv
YWRpbmc6IGh0dHA6Ly9sb2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0
LnR4dCAoZXhwZWN0aW5nIE5FVFdPUktfRVJSKQotUEFTUzogTmV0d29ya0Vycm9yOiAgQSBuZXR3
b3JrIGVycm9yIG9jY3VycmVkLgotCi0KLQpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94
bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXJlbW92YWwuaHRtbAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxp
c3RpbmctcmVtb3ZhbC5odG1sCShyZXZpc2lvbiAyNjUxNDkpCisrKyBMYXlvdXRUZXN0cy9odHRw
L3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxpc3RpbmctcmVtb3ZhbC5odG1sCShu
b25leGlzdGVudCkKQEAgLTEsNTEgKzAsMCBAQAotPHA+VGVzdHMgdGhlIGJlaGF2aW9yIG9mIHdo
aXRlbGlzdGluZyBvcmlnaW5zIGFuZCByZW1vdmluZyB0aGVtIGxhdGVyLjwvcD4KLQotPHByZSBp
ZD0iY29uc29sZSI+PC9wcmU+Ci08c2NyaXB0PgotdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7Ci0K
LWZ1bmN0aW9uIGxvZyhtZXNzYWdlKQotewotICAgIGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b25zb2xlIikuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUobWVzc2FnZSArICJc
biIpKTsKLX0KLQotZnVuY3Rpb24gbG9hZFVSTCh1cmwsIGV4cGVjdFN1Y2Nlc3MpCi17Ci0gICAg
bG9nKCJMb2FkaW5nOiAiICsgdXJsICsgIiAiICsgKGV4cGVjdFN1Y2Nlc3MgPyAiKGV4cGVjdGlu
ZyBQQVNTKSIgOiAiKGV4cGVjdGluZyBORVRXT1JLX0VSUikiKSk7Ci0KLSAgICB2YXIgcmVxID0g
bmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgZmFsc2UpOwot
ICAgIHRyeSB7Ci0gICAgICAgIHJlcS5zZW5kKG51bGwpOwotICAgICAgICBsb2coKGV4cGVjdFN1
Y2Nlc3MgPyAiUEFTUzogIiA6ICJGQUlMOiAiKSArIHJlcS5yZXNwb25zZVRleHQpOwotICAgIH0g
Y2F0Y2ggKGUpIHsKLSAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIkZBSUw6ICIgOiAiUEFT
UzogIikgKyBlKTsKLSAgICB9Ci19Ci0KLWZ1bmN0aW9uIHRlc3Qob3JpZ2luLCBwcm90b2NvbCwg
aG9zdCwgc3ViZG9tYWlucywgdXJsKQotewotICAgIGxvZygiVGVzdGluZzogc291cmNlIG9yaWdp
bjogIiArIG9yaWdpbiArICIgZGVzdGluYXRpb24gb3JpZ2luOiAiICsgcHJvdG9jb2wgKyAiOiIg
KyBob3N0ICsgIiAiICsgKHN1YmRvbWFpbnMgPyAiYWxsb3dpbmcgc3ViZG9tYWlucyIgOiAiIikp
OwotCi0gICAgbG9hZFVSTCh1cmwsIGZhbHNlKTsKLQotICAgIHRlc3RSdW5uZXIuYWRkT3JpZ2lu
QWNjZXNzV2hpdGVsaXN0RW50cnkob3JpZ2luLCBwcm90b2NvbC50b0xvd2VyQ2FzZSgpLCBob3N0
LnRvTG93ZXJDYXNlKCksIHN1YmRvbWFpbnMpOwotCi0gICAgbG9hZFVSTCh1cmwsIHRydWUpOwot
Ci0gICAgdGVzdFJ1bm5lci5yZW1vdmVPcmlnaW5BY2Nlc3NXaGl0ZWxpc3RFbnRyeShvcmlnaW4s
IHByb3RvY29sLCBob3N0LCBzdWJkb21haW5zKTsKLQotICAgIGxvYWRVUkwodXJsLCBmYWxzZSk7
Ci0KLSAgICBsb2coIlxuIik7Ci19Ci0KLXZhciB0ZXN0cyA9IFsKLSAgICBbImh0dHA6Ly8xMjcu
MC4wLjE6ODAwMCIsICJodHRwIiwgImxvY2FsaG9zdCIsIGZhbHNlLCAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0Il0sCi0gICAgWyJodHRwOi8v
MTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICJsb2NhbGhvc3QiLCB0cnVlLCAiaHR0cDovL2xvY2Fs
aG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0Il0sCi0gICAgWyJodHRw
Oi8vMTI3LjAuMC4xOjgwMDAiLCAiaFR0UCIsICJMb0NhTGhPc1QiLCB0cnVlLCAiaHR0cDovL2xv
Y2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0Il0sCi0gICAgWyJo
dHRwOi8vMTI3LjAuMC4xOjgwMDAiLCAiaHR0cCIsICIiLCB0cnVlLCAiaHR0cDovL2xvY2FsaG9z
dDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0Il0KLV07Ci0KLXRlc3RzLmZv
ckVhY2goZnVuY3Rpb24odGVzdEVudHJ5KSB7IHRlc3QuYXBwbHkobnVsbCwgdGVzdEVudHJ5KSB9
KTsKLTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVz
dC9vcmlnaW4td2hpdGVsaXN0aW5nLXN1YmRvbWFpbnMtZXhwZWN0ZWQudHh0Cj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL2h0dHAvdGVzdHMveG1saHR0cHJlcXVlc3Qvb3JpZ2luLXdoaXRlbGlz
dGluZy1zdWJkb21haW5zLWV4cGVjdGVkLnR4dAkocmV2aXNpb24gMjY1MTQ5KQorKysgTGF5b3V0
VGVzdHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXN1YmRv
bWFpbnMtZXhwZWN0ZWQudHh0CShub25leGlzdGVudCkKQEAgLTEsNyArMCwwIEBACi1UZXN0cyBv
cmlnaW4gd2hpdGVsaXN0aW5nIHN1YmRvbWFpbiBiZWhhdmlvci4KLQotVGVzdGluZzogaHR0cDov
L2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IChzeW5jKQot
UEFTUzogUEFTUwotVGVzdGluZzogaHR0cDovL2xvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0
L3Jlc291cmNlcy9nZXQudHh0IChhc3luYykKLVBBU1M6IFBBU1MKLQpJbmRleDogTGF5b3V0VGVz
dHMvaHR0cC90ZXN0cy94bWxodHRwcmVxdWVzdC9vcmlnaW4td2hpdGVsaXN0aW5nLXN1YmRvbWFp
bnMuaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1
ZXN0L29yaWdpbi13aGl0ZWxpc3Rpbmctc3ViZG9tYWlucy5odG1sCShyZXZpc2lvbiAyNjUxNDkp
CisrKyBMYXlvdXRUZXN0cy9odHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L29yaWdpbi13aGl0ZWxp
c3Rpbmctc3ViZG9tYWlucy5odG1sCShub25leGlzdGVudCkKQEAgLTEsNTkgKzAsMCBAQAotPHA+
VGVzdHMgb3JpZ2luIHdoaXRlbGlzdGluZyBzdWJkb21haW4gYmVoYXZpb3IuPC9wPgotCi08cHJl
IGlkPSJjb25zb2xlIj48L3ByZT4KLTxzY3JpcHQ+Ci10ZXN0UnVubmVyLmR1bXBBc1RleHQoKTsK
LXRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOwotdGVzdFJ1bm5lci5hZGRPcmlnaW5BY2Nlc3NX
aGl0ZWxpc3RFbnRyeSgiaHR0cDovLzEyNy4wLjAuMTo4MDAwIiwgImh0dHAiLCAibG9jYWxob3N0
IiwgdHJ1ZSk7Ci0KLWZ1bmN0aW9uIGxvZyhtZXNzYWdlKQotewotICAgIGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdjb25zb2xlJykuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlVGV4dE5vZGUo
bWVzc2FnZSArICdcbicpKTsKLX0KLQotZnVuY3Rpb24gdGVzdCh1cmwsIGV4cGVjdFN1Y2Nlc3Mp
Ci17Ci0gICAgbG9nKCJUZXN0aW5nOiAiICsgdXJsICsgIiAoc3luYykiKTsKLSAgICB2YXIgcmVx
ID0gbmV3IFhNTEh0dHBSZXF1ZXN0KCk7Ci0gICAgcmVxLm9wZW4oIkdFVCIsIHVybCwgZmFsc2Up
OwotICAgIHRyeSB7Ci0gICAgICAgIHJlcS5zZW5kKG51bGwpOwotICAgICAgICBsb2coKGV4cGVj
dFN1Y2Nlc3MgPyAiUEFTUzogIiA6ICJGQUlMOiAiKSArIHJlcS5yZXNwb25zZVRleHQpOwotICAg
IH0gY2F0Y2ggKGUpIHsKLSAgICAgICAgbG9nKChleHBlY3RTdWNjZXNzID8gIkZBSUw6ICIgOiAi
UEFTUzogIikgKyBlKTsKLSAgICB9Ci0KLSAgICBsb2coIlRlc3Rpbmc6ICIgKyB1cmwgKyAiIChh
c3luYykiKTsKLSAgICByZXEgPSBuZXcgWE1MSHR0cFJlcXVlc3QoKTsKLSAgICByZXEub3Blbigi
R0VUIiwgdXJsLCB0cnVlKTsKLSAgICByZXEub25sb2FkID0gZnVuY3Rpb24oKSB7Ci0gICAgICAg
IGxvZygoZXhwZWN0U3VjY2VzcyA/ICJQQVNTOiAiIDogIkZBSUw6ICIpICsgcmVxLnJlc3BvbnNl
VGV4dCk7Ci0gICAgICAgIG5leHRUZXN0KCk7Ci0gICAgfTsKLSAgICByZXEub25lcnJvciA9IGZ1
bmN0aW9uKCkgewotICAgICAgICBsb2coKGV4cGVjdFN1Y2Nlc3MgPyAiRkFJTDogIiA6ICJQQVNT
OiAiKSArIHJlcS5zdGF0dXMpOwotICAgICAgICBuZXh0VGVzdCgpOwotICAgIH07Ci0gICAgcmVx
LnNlbmQobnVsbCk7Ci19Ci0KLXZhciB0ZXN0cyA9IFsKLSAgICBbImh0dHA6Ly9sb2NhbGhvc3Q6
ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCIsIHRydWVdCi0gICAgLy8gRklY
TUU6IElzIGl0IHBvc3NpYmxlIHRvIHNldHVwIHRoZSBmb2xsb3dpbmcgdGVzdHM/Ci0gICAgLy8g
WyJodHRwOi8vZm9vLmxvY2FsaG9zdDo4MDAwL3htbGh0dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQu
dHh0IiwgdHJ1ZV0KLSAgICAvLyBbImh0dHA6Ly9iYXIuZm9vLmxvY2FsaG9zdDo4MDAwL3htbGh0
dHByZXF1ZXN0L3Jlc291cmNlcy9nZXQudHh0IiwgdHJ1ZV0KLSAgICAvLyBbImh0dHA6Ly9mb29s
b2NhbGhvc3Q6ODAwMC94bWxodHRwcmVxdWVzdC9yZXNvdXJjZXMvZ2V0LnR4dCIsIGZhbHNlXQot
XTsKLQotdmFyIGN1cnJlbnRUZXN0ID0gMDsKLQotZnVuY3Rpb24gbmV4dFRlc3QoKQotewotICAg
IGlmIChjdXJyZW50VGVzdCA8IHRlc3RzLmxlbmd0aCkKLSAgICAgICAgdGVzdC5hcHBseShudWxs
LCB0ZXN0c1tjdXJyZW50VGVzdCsrXSk7Ci0gICAgZWxzZQotICAgICAgICB0ZXN0UnVubmVyLm5v
dGlmeURvbmUoKTsKLX0KLQotbmV4dFRlc3QoKTsKLTwvc2NyaXB0PgpJbmRleDogTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0VGVz
dHMvcGxhdGZvcm0vd2luL1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDI2NTE0OSkKKysrIExh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBA
IC0yMzk3LDcgKzIzOTcsNyBAQCBodHRwL3Rlc3RzL3NzbC9waW5nLXdpdGgtdW5zYWZlLXJlZGly
ZWN0CiBodHRwL3Rlc3RzL3NzbC9yZWZlcmVyLTMwMS5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rl
c3RzL3NzbC9yZWZlcmVyLTMwMy5odG1sIFsgRmFpbHVyZSBdCiBodHRwL3Rlc3RzL3NzbC92ZXJp
Znktc3NsLWVuYWJsZWQucGhwIFsgRmFpbHVyZSBdICMgRWFzeT8KLWh0dHAvdGVzdHMveG1saHR0
cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtYmFzaWMtd2hpdGVsaXN0LXJlcXVlc3QtaGVhZGVycy5o
dG1sIFsgRmFpbHVyZSBdCitodHRwL3Rlc3RzL3htbGh0dHByZXF1ZXN0L2FjY2Vzcy1jb250cm9s
LWJhc2ljLWFsbG93LWxpc3QtcmVxdWVzdC1oZWFkZXJzLmh0bWwgWyBGYWlsdXJlIF0KIGh0dHAv
dGVzdHMveG1saHR0cHJlcXVlc3QvYWNjZXNzLWNvbnRyb2wtcHJlZmxpZ2h0LWhlYWRlcnMtYXN5
bmMuaHRtbCBbIFBhc3MgRmFpbHVyZSBdICMgRWFzeT8KIGh0dHAvdGVzdHMveG1saHR0cHJlcXVl
c3QvY2FjaGUtb3ZlcnJpZGUuaHRtbCBbIEZhaWx1cmUgXQogaHR0cC90ZXN0cy94bWxodHRwcmVx
dWVzdC9jcm9zcy1vcmlnaW4tYXV0aG9yaXphdGlvbi13aXRoLWVtYmVkZGVyLmh0bWwgWyBGYWls
dXJlIF0KQEAgLTQxNjQsNyArNDE2NCw3IEBAIHdlYmtpdC5vcmcvYi8xODk4MzYgd2ViYW5pbWF0
aW9ucy9hY2NlbGUKIFsgV2luMTAgXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLUNTUy1mcm9t
LXJlbW90ZS5odG1sIFsgRmFpbHVyZSBdCiBbIFdpbjEwIF0gaHR0cC90ZXN0cy9zZWN1cml0eS9s
b2NhbC1KYXZhU2NyaXB0LWZyb20tcmVtb3RlLmh0bWwgWyBGYWlsdXJlIF0KIFsgV2luMTAgXSBo
dHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWlGcmFtZS1mcm9tLXJlbW90ZS5odG1sIFsgRmFpbHVy
ZSBdCi1bIFdpbjEwIF0gaHR0cC90ZXN0cy9zZWN1cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90
ZS13aGl0ZWxpc3RlZC5odG1sIFsgRmFpbHVyZSBdCitbIFdpbjEwIF0gaHR0cC90ZXN0cy9zZWN1
cml0eS9sb2NhbC1pbWFnZS1mcm9tLXJlbW90ZS1hbGxvdy1saXN0Lmh0bWwgWyBGYWlsdXJlIF0K
IFsgV2luMTAgXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLmh0
bWwgWyBGYWlsdXJlIF0KIFsgV2luMTAgXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLXZpZGVv
LXBvc3Rlci1mcm9tLXJlbW90ZS5odG1sIFsgRmFpbHVyZSBdCiBbIFdpbjEwIF0gc3RvcmFnZS9p
bmRleGVkZGIvbW9kZXJuL2lkYmluZGV4LWdldGFsbGtleXMtMS5odG1sIFsgRmFpbHVyZSBdCklu
ZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS93azIvVGVzdEV4cGVjdGF0aW9ucwkocmV2aXNpb24g
MjY1MTQ5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2syL1Rlc3RFeHBlY3RhdGlvbnMJKHdv
cmtpbmcgY29weSkKQEAgLTQ3MSw5ICs0NzEsOSBAQCBzdG9yYWdlL3dlYnNxbC9tdWx0aXBsZS1k
YXRhYmFzZXMtZ2FyYmFnCiAjIE15c3RlcmlvdXMgZmFpbHVyZSBhZnRlciBlbmFibGluZyBwYXN0
ZSB0ZXN0cwogZWRpdGluZy9tYWMvcGFzdGVib2FyZC90ZXh0LXByZWNvbXBvc2VkLmh0bWwKIAot
IyBbV0syXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLXdoaXRl
bGlzdGVkLmh0bWwgY3Jhc2hlcworIyBbV0syXSBodHRwL3Rlc3RzL3NlY3VyaXR5L2xvY2FsLWlt
YWdlLWZyb20tcmVtb3RlLWFsbG93LWxpc3QuaHRtbCBjcmFzaGVzCiAjIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD03MzQzNQotaHR0cC90ZXN0cy9zZWN1cml0eS9sb2Nh
bC1pbWFnZS1mcm9tLXJlbW90ZS13aGl0ZWxpc3RlZC5odG1sCitodHRwL3Rlc3RzL3NlY3VyaXR5
L2xvY2FsLWltYWdlLWZyb20tcmVtb3RlLWFsbG93LWxpc3QuaHRtbAogCiAjIEVkaXRpbmcgaW5w
dXQgdGVzdHMgdGhhdCB0aW1lIG91dCB1bmV4cGVjdGVkbHkuCiAjIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD04MTU0Nwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>