<?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>213523</bug_id>
          
          <creation_ts>2020-06-23 10:24:07 -0700</creation_ts>
          <short_desc>Removed unrestricted keyword from attributes in PannerNode</short_desc>
          <delta_ts>2020-06-25 17:01:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Web Audio</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          <blocked>212611</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Clark Wang">clark_wang</reporter>
          <assigned_to name="Clark Wang">clark_wang</assigned_to>
          <cc>cdumez</cc>
    
    <cc>darin</cc>
    
    <cc>eric.carlson</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>jer.noble</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>philipj</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1665436</commentid>
    <comment_count>0</comment_count>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-23 10:24:07 -0700</bug_when>
    <thetext>Removed unrestricted keyword from attributes in PannerNode, as specified in spec. Added new tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665439</commentid>
    <comment_count>1</comment_count>
      <attachid>402566</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-23 10:38:37 -0700</bug_when>
    <thetext>Created attachment 402566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665441</commentid>
    <comment_count>2</comment_count>
      <attachid>402566</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-23 10:45:02 -0700</bug_when>
    <thetext>Comment on attachment 402566
Patch

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

&gt; Source/WebCore/Modules/webaudio/PannerNode.cpp:236
&gt; +        return Exception { RangeError };

Please provide an exception message, for e.g.:
return Exception { RangeError, &quot;refDistance value cannot be negative&quot;_s };

&gt; Source/WebCore/Modules/webaudio/PannerNode.cpp:245
&gt; +        return Exception { RangeError };

ditto.

&gt; Source/WebCore/Modules/webaudio/PannerNode.cpp:254
&gt; +        return Exception { RangeError };

Ditto.

&gt; Source/WebCore/Modules/webaudio/PannerNode.cpp:261
&gt; +        rolloffFactor = clampTo(rolloffFactor, 0.0, DBL_MAX);

This line is not needed.

&gt; Source/WebCore/Modules/webaudio/PannerNode.cpp:262
&gt; +        break;

This line is not needed.

&gt; Source/WebCore/Modules/webaudio/PannerNode.cpp:274
&gt; +        return Exception { InvalidStateError };

Please provide exception message.

&gt; Source/WebCore/Modules/webaudio/PannerNode.h:107
&gt;      double refDistance() { return m_distanceEffect.refDistance(); }

Should be const.

&gt; Source/WebCore/Modules/webaudio/PannerNode.h:110
&gt;      double maxDistance() { return m_distanceEffect.maxDistance(); }

Should be const.

&gt; Source/WebCore/Modules/webaudio/PannerNode.h:113
&gt;      double rolloffFactor() { return m_distanceEffect.rolloffFactor(); }

Should be const.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665469</commentid>
    <comment_count>3</comment_count>
      <attachid>402575</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-23 11:44:10 -0700</bug_when>
    <thetext>Created attachment 402575
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665474</commentid>
    <comment_count>4</comment_count>
      <attachid>402575</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-23 11:47:20 -0700</bug_when>
    <thetext>Comment on attachment 402575
Patch

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

&gt; Source/WebCore/Modules/webaudio/PannerNode.cpp:244
&gt; +    if (maxDistance &lt; 0)

Can you check if other browsers throw when passing 0? non-positive may indicate we should throw when 0 but we should double check.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665478</commentid>
    <comment_count>5</comment_count>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-23 11:51:37 -0700</bug_when>
    <thetext>Good catch. Chrome is throwing exception when (maxDistance &lt;= 0), I&apos;ll update the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665482</commentid>
    <comment_count>6</comment_count>
      <attachid>402578</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-23 11:59:30 -0700</bug_when>
    <thetext>Created attachment 402578
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665496</commentid>
    <comment_count>7</comment_count>
      <attachid>402578</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-23 12:26:16 -0700</bug_when>
    <thetext>Comment on attachment 402578
Patch

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

&gt; Source/WebCore/Modules/webaudio/PannerNode.idl:42
&gt; +    [MayThrowException] attribute double refDistance;
&gt; +    [MayThrowException] attribute double maxDistance;
&gt; +    [MayThrowException] attribute double rolloffFactor;

I’m surprised that the correct attribute here is MayThrowException. I would have expected SetterMayThrowException. It’s possible I am just remembering wrong.

&gt; Source/WebCore/Modules/webaudio/PannerNode.idl:47
&gt; +    [MayThrowException] attribute double coneOuterGain;

Ditto.

&gt; LayoutTests/ChangeLog:13
&gt; +        * webaudio/pannernode-basic-expected.txt:
&gt; +        * webaudio/pannernode-basic.html:
&gt; +        * webaudio/unprefixed-pannernode-basic-expected.txt: Copied from LayoutTests/webaudio/pannernode-basic-expected.txt.
&gt; +        * webaudio/unprefixed-pannernode-basic.html: Copied from LayoutTests/webaudio/pannernode-basic.html.

Seems like the prefixed version is the one that should have the longer name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665502</commentid>
    <comment_count>8</comment_count>
      <attachid>402578</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-23 12:42:10 -0700</bug_when>
    <thetext>Comment on attachment 402578
Patch

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

&gt;&gt; Source/WebCore/Modules/webaudio/PannerNode.idl:42
&gt;&gt; +    [MayThrowException] attribute double rolloffFactor;
&gt; 
&gt; I’m surprised that the correct attribute here is MayThrowException. I would have expected SetterMayThrowException. It’s possible I am just remembering wrong.

ahah, I thought the same thing as you at first but then I found:

Remove SetterMayThrowException - https://bugs.webkit.org/show_bug.cgi?id=177408</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665504</commentid>
    <comment_count>9</comment_count>
      <attachid>402578</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-23 12:47:12 -0700</bug_when>
    <thetext>Comment on attachment 402578
Patch

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

&gt;&gt;&gt; Source/WebCore/Modules/webaudio/PannerNode.idl:42
&gt;&gt;&gt; +    [MayThrowException] attribute double rolloffFactor;
&gt;&gt; 
&gt;&gt; I’m surprised that the correct attribute here is MayThrowException. I would have expected SetterMayThrowException. It’s possible I am just remembering wrong.
&gt; 
&gt; ahah, I thought the same thing as you at first but then I found:
&gt; 
&gt; Remove SetterMayThrowException - https://bugs.webkit.org/show_bug.cgi?id=177408

That patch makes it look like we don’t need [MayThrowException] here at all, and the setter exception will just work without any attribute in the IDL file.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665505</commentid>
    <comment_count>10</comment_count>
      <attachid>402578</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-23 12:49:01 -0700</bug_when>
    <thetext>Comment on attachment 402578
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/Modules/webaudio/PannerNode.idl:42
&gt;&gt;&gt;&gt; +    [MayThrowException] attribute double rolloffFactor;
&gt;&gt;&gt; 
&gt;&gt;&gt; I’m surprised that the correct attribute here is MayThrowException. I would have expected SetterMayThrowException. It’s possible I am just remembering wrong.
&gt;&gt; 
&gt;&gt; ahah, I thought the same thing as you at first but then I found:
&gt;&gt; 
&gt;&gt; Remove SetterMayThrowException - https://bugs.webkit.org/show_bug.cgi?id=177408
&gt; 
&gt; That patch makes it look like we don’t need [MayThrowException] here at all, and the setter exception will just work without any attribute in the IDL file.

Oh indeed! I should have looked at the actual change.

@Clark: Please try to drop [MayThrowException]. Looks like it should build fine without it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665544</commentid>
    <comment_count>11</comment_count>
      <attachid>402593</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-23 14:28:27 -0700</bug_when>
    <thetext>Created attachment 402593
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665550</commentid>
    <comment_count>12</comment_count>
      <attachid>402593</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-06-23 14:44:40 -0700</bug_when>
    <thetext>Comment on attachment 402593
Patch

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

&gt; Source/WebCore/Modules/webaudio/PannerNode.cpp:257
&gt; +        rolloffFactor = clampTo(rolloffFactor, 0.0, 1.0);

Since we already checked for negative, we don’t really need clamp here. Could just use std::min(rolloffFactor, 1.0).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665561</commentid>
    <comment_count>13</comment_count>
      <attachid>402596</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-23 15:17:08 -0700</bug_when>
    <thetext>Created attachment 402596
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665563</commentid>
    <comment_count>14</comment_count>
      <attachid>402596</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-23 15:21:12 -0700</bug_when>
    <thetext>Comment on attachment 402596
Patch

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

&gt; LayoutTests/webaudio/pannernode-basic-expected.txt:28
&gt;  PASS PannerNode defaults to &apos;HRTF&apos; panningModel.

Not for this patch but it looks like Chrome and Firefox are failing this check so we are not matching other browsers here.

&gt; LayoutTests/webaudio/pannernode-basic-expected.txt:38
&gt; +PASS With linear distanceModel, rolloffFactor is clamped to [0, 1] (was set to 2).

Chrome and Firefox are failing this, so presumably we are not matching them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665566</commentid>
    <comment_count>15</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-23 15:30:26 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #14)
&gt; Comment on attachment 402596 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402596&amp;action=review
&gt; 
&gt; &gt; LayoutTests/webaudio/pannernode-basic-expected.txt:28
&gt; &gt;  PASS PannerNode defaults to &apos;HRTF&apos; panningModel.
&gt; 
&gt; Not for this patch but it looks like Chrome and Firefox are failing this
&gt; check so we are not matching other browsers here.
&gt; 
&gt; &gt; LayoutTests/webaudio/pannernode-basic-expected.txt:38
&gt; &gt; +PASS With linear distanceModel, rolloffFactor is clamped to [0, 1] (was set to 2).
&gt; 
&gt; Chrome and Firefox are failing this, so presumably we are not matching them.

I filed https://github.com/WebAudio/web-audio-api/issues/2206. In the mean time, maybe we should hold off on implementing this particular clamping on rollOffFactor until we get feedback.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665569</commentid>
    <comment_count>16</comment_count>
      <attachid>402596</attachid>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2020-06-23 15:42:15 -0700</bug_when>
    <thetext>Comment on attachment 402596
Patch

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

&gt;&gt;&gt; LayoutTests/webaudio/pannernode-basic-expected.txt:28
&gt;&gt;&gt;  PASS PannerNode defaults to &apos;HRTF&apos; panningModel.
&gt;&gt; 
&gt;&gt; Not for this patch but it looks like Chrome and Firefox are failing this check so we are not matching other browsers here.
&gt; 
&gt; I filed https://github.com/WebAudio/web-audio-api/issues/2206. In the mean time, maybe we should hold off on implementing this particular clamping on rollOffFactor until we get feedback.

Other browsers default to &quot;equalpower&quot; for panningModel, as per spec. We should address this in a follow-up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665898</commentid>
    <comment_count>17</comment_count>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-24 16:10:10 -0700</bug_when>
    <thetext>(In reply to Chris Dumez from comment #16)
&gt; Comment on attachment 402596 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=402596&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; LayoutTests/webaudio/pannernode-basic-expected.txt:28
&gt; &gt;&gt;&gt;  PASS PannerNode defaults to &apos;HRTF&apos; panningModel.
&gt; &gt;&gt; 
&gt; &gt;&gt; Not for this patch but it looks like Chrome and Firefox are failing this check so we are not matching other browsers here.
&gt; &gt; 
&gt; &gt; I filed https://github.com/WebAudio/web-audio-api/issues/2206. In the mean time, maybe we should hold off on implementing this particular clamping on rollOffFactor until we get feedback.
&gt; 
&gt; Other browsers default to &quot;equalpower&quot; for panningModel, as per spec. We
&gt; should address this in a follow-up.

Sounds good, yeah &quot;equalpower&quot; matches the spec, so I&apos;ll update that in a later patch. I&apos;ll comment out rolloffFactor clamping for now as well.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665911</commentid>
    <comment_count>18</comment_count>
      <attachid>402696</attachid>
    <who name="Clark Wang">clark_wang</who>
    <bug_when>2020-06-24 17:01:38 -0700</bug_when>
    <thetext>Created attachment 402696
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1665958</commentid>
    <comment_count>19</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-06-24 19:13:26 -0700</bug_when>
    <thetext>Committed r263493: &lt;https://trac.webkit.org/changeset/263493&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 402696.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1666287</commentid>
    <comment_count>20</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-06-25 17:01:32 -0700</bug_when>
    <thetext>&lt;rdar://problem/64781170&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402566</attachid>
            <date>2020-06-23 10:38:37 -0700</date>
            <delta_ts>2020-06-23 11:44:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213523-20200623133835.patch</filename>
            <type>text/plain</type>
            <size>21165</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE3MmE1YTlkMzY2OTky
MWU1ZTQ1YjExZWU3MDJkZTRmNDI4YjE3Ni4uZWQxMjMzZDc4MWFiMGYwYWQ3Y2IwZTVjNTBmZWYy
N2RlZGE4NDdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA2LTIzICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCB1bnJlc3Ry
aWN0ZWQga2V5d29yZCBmcm9tIGF0dHJpYnV0ZXMgaW4gUGFubmVyTm9kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNTIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCByZWZEaXN0YW5jZSwg
bWF4RGlzdGFuY2UsIHJvbGxvZmZGYWN0b3IsIGNvbmVPdXRlckdhaW4sIGNvbmVJbm5lckFuZ2xl
LCBjb25lT3V0ZXJBbmdsZSBhdHRyaWJ1dGVzIGFjY29yZGluZyB0byBzcGVjOgorICAgICAgICBo
dHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI1Bhbm5lck5vZGUtYXR0cmlidXRlcy4KKwor
ICAgICAgICBUZXN0OiB3ZWJhdWRpby91bnByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMuaHRtbAor
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhbm5lck5vZGU6OnNldFJlZkRpc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
bm5lck5vZGU6OnNldE1heERpc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6
OnNldFJvbGxvZmZGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0Q29u
ZU91dGVyR2Fpbik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmg6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbDoKKwogMjAyMC0wNi0xMCAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV2Vi
WFJdIEFkZCBhIHByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIFhSV2ViR0xMYXllcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKaW5kZXggZjM4
MDBmMWNlYzRjNzAyY2JiODBiOTRiYjJkYTExODMzZThkN2FjMy4uOGJjODZlODUyYmRkYmRiNTAw
MzZlZTkwZDcyYzk3YTQ5OTZhODQ4YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1Bhbm5lck5vZGUuY3BwCkBAIC0yMzAsNiArMjMwLDUzIEBAIHZvaWQgUGFubmVyTm9k
ZTo6c2V0RGlzdGFuY2VNb2RlbChEaXN0YW5jZU1vZGVsVHlwZSBtb2RlbCkKICAgICBtX2Rpc3Rh
bmNlRWZmZWN0LnNldE1vZGVsKG1vZGVsLCB0cnVlKTsKIH0KIAorRXhjZXB0aW9uT3I8dm9pZD4g
UGFubmVyTm9kZTo6c2V0UmVmRGlzdGFuY2UoZG91YmxlIHJlZkRpc3RhbmNlKQoreworICAgIGlm
IChyZWZEaXN0YW5jZSA8IDApCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9y
IH07CisgICAgCisgICAgbV9kaXN0YW5jZUVmZmVjdC5zZXRSZWZEaXN0YW5jZShyZWZEaXN0YW5j
ZSk7CisgICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6
c2V0TWF4RGlzdGFuY2UoZG91YmxlIG1heERpc3RhbmNlKQoreworICAgIGlmIChtYXhEaXN0YW5j
ZSA8IDApCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9yIH07CisgICAgCisg
ICAgbV9kaXN0YW5jZUVmZmVjdC5zZXRNYXhEaXN0YW5jZShtYXhEaXN0YW5jZSk7CisgICAgcmV0
dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0Um9sbG9mZkZh
Y3Rvcihkb3VibGUgcm9sbG9mZkZhY3RvcikKK3sKKyAgICBpZiAocm9sbG9mZkZhY3RvciA8IDAp
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9yIH07CisgICAgCisgICAgc3dp
dGNoIChkaXN0YW5jZU1vZGVsKCkpIHsKKyAgICBjYXNlIERpc3RhbmNlTW9kZWxUeXBlOjpMaW5l
YXI6CisgICAgICAgIHJvbGxvZmZGYWN0b3IgPSBjbGFtcFRvKHJvbGxvZmZGYWN0b3IsIDAuMCwg
MS4wKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXN0YW5jZU1vZGVsVHlwZTo6SW52ZXJz
ZToKKyAgICAgICAgcm9sbG9mZkZhY3RvciA9IGNsYW1wVG8ocm9sbG9mZkZhY3RvciwgMC4wLCBE
QkxfTUFYKTsKKyAgICAgICAgYnJlYWs7CisgICAgY2FzZSBEaXN0YW5jZU1vZGVsVHlwZTo6RXhw
b25lbnRpYWw6CisgICAgICAgIHJvbGxvZmZGYWN0b3IgPSBjbGFtcFRvKHJvbGxvZmZGYWN0b3Is
IDAuMCwgREJMX01BWCk7CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBtX2Rpc3RhbmNlRWZm
ZWN0LnNldFJvbGxvZmZGYWN0b3Iocm9sbG9mZkZhY3Rvcik7CisgICAgcmV0dXJuIHsgfTsKK30K
KworRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0Q29uZU91dGVyR2Fpbihkb3VibGUg
Z2FpbikKK3sKKyAgICBpZiAoZ2FpbiA8IDAgfHwgZ2FpbiA+IDEpCisgICAgICAgIHJldHVybiBF
eGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciB9OworICAgIAorICAgIG1fY29uZUVmZmVjdC5z
ZXRPdXRlckdhaW4oZ2Fpbik7CisgICAgcmV0dXJuIHsgfTsKK30KKwogdm9pZCBQYW5uZXJOb2Rl
OjpnZXRBemltdXRoRWxldmF0aW9uKGRvdWJsZSogb3V0QXppbXV0aCwgZG91YmxlKiBvdXRFbGV2
YXRpb24pCiB7CiAgICAgLy8gRklYTUU6IHdlIHNob3VsZCBjYWNoZSBhemltdXRoIGFuZCBlbGV2
YXRpb24gKGlmIHBvc3NpYmxlKSwgc28gd2Ugb25seSByZS1jYWxjdWxhdGUgaWYgYSBjaGFuZ2Ug
aGFzIGJlZW4gbWFkZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vUGFubmVyTm9kZS5oIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJO
b2RlLmgKaW5kZXggZjJmZjJkMjA5NjI0NDQ0MTU4MWYxNWM5OWRmNGQ1NDlhZGY5M2QxMC4uZjIw
MTk2M2MwZjkxYTY1YjM5ZGI3MDViYmZlNGIzZjJkZWUzMTcxMiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmgKQEAgLTEwNSwxMyArMTA1LDEzIEBAIHB1
YmxpYzoKICAgICB2b2lkIHNldERpc3RhbmNlTW9kZWwoRGlzdGFuY2VNb2RlbFR5cGUpOwogCiAg
ICAgZG91YmxlIHJlZkRpc3RhbmNlKCkgeyByZXR1cm4gbV9kaXN0YW5jZUVmZmVjdC5yZWZEaXN0
YW5jZSgpOyB9Ci0gICAgdm9pZCBzZXRSZWZEaXN0YW5jZShkb3VibGUgcmVmRGlzdGFuY2UpIHsg
bV9kaXN0YW5jZUVmZmVjdC5zZXRSZWZEaXN0YW5jZShyZWZEaXN0YW5jZSk7IH0KKyAgICBFeGNl
cHRpb25Pcjx2b2lkPiBzZXRSZWZEaXN0YW5jZShkb3VibGUpOwogCiAgICAgZG91YmxlIG1heERp
c3RhbmNlKCkgeyByZXR1cm4gbV9kaXN0YW5jZUVmZmVjdC5tYXhEaXN0YW5jZSgpOyB9Ci0gICAg
dm9pZCBzZXRNYXhEaXN0YW5jZShkb3VibGUgbWF4RGlzdGFuY2UpIHsgbV9kaXN0YW5jZUVmZmVj
dC5zZXRNYXhEaXN0YW5jZShtYXhEaXN0YW5jZSk7IH0KKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBz
ZXRNYXhEaXN0YW5jZShkb3VibGUpOwogCiAgICAgZG91YmxlIHJvbGxvZmZGYWN0b3IoKSB7IHJl
dHVybiBtX2Rpc3RhbmNlRWZmZWN0LnJvbGxvZmZGYWN0b3IoKTsgfQotICAgIHZvaWQgc2V0Um9s
bG9mZkZhY3Rvcihkb3VibGUgcm9sbG9mZkZhY3RvcikgeyBtX2Rpc3RhbmNlRWZmZWN0LnNldFJv
bGxvZmZGYWN0b3Iocm9sbG9mZkZhY3Rvcik7IH0KKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRS
b2xsb2ZmRmFjdG9yKGRvdWJsZSk7CiAKICAgICAvLyBTb3VuZCBjb25lcyAtIGFuZ2xlcyBpbiBk
ZWdyZWVzCiAgICAgZG91YmxlIGNvbmVJbm5lckFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9jb25l
RWZmZWN0LmlubmVyQW5nbGUoKTsgfQpAQCAtMTIxLDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldENvbmVPdXRlckFuZ2xlKGRvdWJsZSBhbmdsZSkgeyBtX2NvbmVFZmZlY3Quc2V0T3V0
ZXJBbmdsZShhbmdsZSk7IH0KIAogICAgIGRvdWJsZSBjb25lT3V0ZXJHYWluKCkgY29uc3QgeyBy
ZXR1cm4gbV9jb25lRWZmZWN0Lm91dGVyR2FpbigpOyB9Ci0gICAgdm9pZCBzZXRDb25lT3V0ZXJH
YWluKGRvdWJsZSBhbmdsZSkgeyBtX2NvbmVFZmZlY3Quc2V0T3V0ZXJHYWluKGFuZ2xlKTsgfQor
ICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENvbmVPdXRlckdhaW4oZG91YmxlKTsKIAogICAgIHZv
aWQgZ2V0QXppbXV0aEVsZXZhdGlvbihkb3VibGUqIG91dEF6aW11dGgsIGRvdWJsZSogb3V0RWxl
dmF0aW9uKTsKICAgICBmbG9hdCBkb3BwbGVyUmF0ZSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbCBiL1NvdXJjZS9XZWJD
b3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5pZGwKaW5kZXggMmNkMWEzZjFkNjY4NDIx
ZGZkOGQxZTk3Y2MzZmMxYTUyNWU4NWE4OC4uZjJkYTJjZTEzZTMxYjBlZDIxNDJiMTQ3Yzg3ZWJl
ZWQ3NTgzMDE3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9Q
YW5uZXJOb2RlLmlkbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5l
ck5vZGUuaWRsCkBAIC0zNywxNCArMzcsMTQgQEAKICAgICAvLyBEZWZhdWx0IGRpc3RhbmNlIG1v
ZGVsIGlzIGludmVyc2UKICAgICBhdHRyaWJ1dGUgRGlzdGFuY2VNb2RlbFR5cGUgZGlzdGFuY2VN
b2RlbDsKIAotICAgIGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHJlZkRpc3RhbmNlOwot
ICAgIGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIG1heERpc3RhbmNlOwotICAgIGF0dHJp
YnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHJvbGxvZmZGYWN0b3I7CisgICAgW01heVRocm93RXhj
ZXB0aW9uXSBhdHRyaWJ1dGUgZG91YmxlIHJlZkRpc3RhbmNlOworICAgIFtNYXlUaHJvd0V4Y2Vw
dGlvbl0gYXR0cmlidXRlIGRvdWJsZSBtYXhEaXN0YW5jZTsKKyAgICBbTWF5VGhyb3dFeGNlcHRp
b25dIGF0dHJpYnV0ZSBkb3VibGUgcm9sbG9mZkZhY3RvcjsKIAogICAgIC8vIERpcmVjdGlvbmFs
IHNvdW5kIGNvbmUKLSAgICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBjb25lSW5uZXJB
bmdsZTsKLSAgICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBjb25lT3V0ZXJBbmdsZTsK
LSAgICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBjb25lT3V0ZXJHYWluOworICAgIGF0
dHJpYnV0ZSBkb3VibGUgY29uZUlubmVyQW5nbGU7CisgICAgYXR0cmlidXRlIGRvdWJsZSBjb25l
T3V0ZXJBbmdsZTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBkb3VibGUgY29u
ZU91dGVyR2FpbjsKICAgICAKICAgICAvLyBQb3NpdGlvbiBvZiBhdWRpbyBzb3VyY2UgaW4gM0Qg
Q2FydGVzaWFuIHN5c3RlbQogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1BhcmFtIHBvc2l0
aW9uWDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAxMzhmOWQ1Y2ZiNWE0OTRjYzAxODViZjk4MTdiNGVmYmIxZmYxNTczLi43
YjRmYTQ3YjJkYjQ2NGUxYzAwODZjNzlhOTVlMzQ5ZDQzMjAyZjdjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMjAtMDYtMjMgIENsYXJrIFdhbmcgIDxjbGFya193YW5nQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW1vdmVkIHVucmVzdHJpY3RlZCBrZXl3b3JkIGZyb20gYXR0cmlidXRlcyBpbiBQ
YW5uZXJOb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTM1MjMKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAg
ICBTZXBhcmF0ZWQgcHJlZml4ZWQgcGFubmVybm9kZSBhbmQgdW5wcmVmaXhlZCBwYW5uZXJub2Rl
IHRlc3RzLiBBZGRlZCB0ZXN0IGNhc2VzIGZvciByZWZEaXN0YW5jZSwgbWF4RGlzdGFuY2UsIHJv
bGxvZmZGYWN0b3IsIGNvbmVPdXRlckdhaW4sIGNvbmVJbm5lckFuZ2xlLCBjb25lT3V0ZXJBbmds
ZS4KKworICAgICAgICAqIHdlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0Ogor
ICAgICAgICAqIHdlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMuaHRtbDoKKyAgICAgICAgKiB3ZWJh
dWRpby91bnByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0OiBDb3BpZWQgZnJv
bSBMYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLWV4cGVjdGVkLnR4dC4KKyAg
ICAgICAgKiB3ZWJhdWRpby91bnByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMuaHRtbDogQ29waWVk
IGZyb20gTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy5odG1sLgorCiAyMDIw
LTA2LTIyICBKYWNvYiBVcGhvZmYgIDxqYWNvYl91cGhvZmZAYXBwbGUuY29tPgogCiAgICAgICAg
IFsgbWFjT1MgaU9TIF0gUkVHUkVTU0lPTjogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVhIG10
cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbiBlLWluY3JlYXNpbmcuaHRtbCBpcyBhIGZsYWt5IGZh
aWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy1leHBl
Y3RlZC50eHQKaW5kZXggY2Y4MmFjYmI3OTk3ZmY3NTI4NTYyZjczMjAwOGJkNmVmZTNmYTgyYy4u
NGNkOGJhZTViNzRkMmZhZGE3MDBhMjJmYjYwNGYzMGNhYmM5MjdlYiAxMDA2NDQKLS0tIGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQKKysrIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTEsNCAr
MSw0IEBACi1CYXNpYyB0ZXN0cyBmb3IgUGFubmVyTm9kZS4KK0Jhc2ljIHRlc3RzIGZvciBXZWJL
aXQgUHJlZml4ZWQgUGFubmVyTm9kZS4KIAogT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2Vy
aWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgogCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLmh0bWwgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLmh0bWwKaW5kZXggYjA2ZDc5Mzc4
YTc0ZTQxNGI0MTNhYzhkZTFlYTZmMTc2NTI1ZGVhMy4uYTRjM2M5MmI1NjgwOTI0MTM2ZGVlMGMx
YzMzM2M2NTdmNDM2ZWZkNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVy
bm9kZS1iYXNpYy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFz
aWMuaHRtbApAQCAtMTAsNyArMTAsNyBAQAogPGRpdiBpZD0iY29uc29sZSI+PC9kaXY+CiAKIDxz
Y3JpcHQ+Ci1kZXNjcmlwdGlvbigiQmFzaWMgdGVzdHMgZm9yIFBhbm5lck5vZGUuIik7CitkZXNj
cmlwdGlvbigiQmFzaWMgdGVzdHMgZm9yIFdlYktpdCBQcmVmaXhlZCBQYW5uZXJOb2RlLiIpOwog
CiB2YXIgY29udGV4dCA9IDA7CiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Vu
cHJlZml4ZWQtcGFubmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJh
dWRpby91bnByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAu
LjAzNDk1OWE2OTIxYjA5OGYwMDIxMDQwMWM5MWY2ODU3MjVmZDcwYzkKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby91bnByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMtZXhw
ZWN0ZWQudHh0CkBAIC0wLDAgKzEsNDcgQEAKK0Jhc2ljIHRlc3RzIGZvciBQYW5uZXJOb2RlLgor
CitPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCisKK1BBU1MgUGFubmVyTm9kZSBoYXMgb25lIGlu
cHV0LgorUEFTUyBQYW5uZXJOb2RlIGhhcyBvbmUgb3V0cHV0LgorUEFTUyByZWZEaXN0YW5jZSBk
ZWZhdWx0IHZhbHVlIGlzIDEuCitQQVNTIHJlZkRpc3RhbmNlIHZhbHVlIGlzIHNldCB0byAyNzAu
NTIuCitQQVNTIEV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gY29ycmVjdGx5IHdoZW4gcmVmRGlz
dGFuY2UgaXMgc2V0IHRvIG5lZ2F0aXZlIHZhbHVlLgorUEFTUyBtYXhEaXN0YW5jZSBkZWZhdWx0
IHZhbHVlIGlzIDEwMDAwLgorUEFTUyBtYXhEaXN0YW5jZSB2YWx1ZSBpcyBzZXQgdG8gMTAwLjU1
LgorUEFTUyBFeGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGNvcnJlY3RseSB3aGVuIG1heERpc3Rh
bmNlIGlzIHNldCB0byBub24tcG9zaXRpdmUgdmFsdWUuCitQQVNTIHJvbGxvZmZGYWN0b3IgZGVm
YXVsdCB2YWx1ZSBpcyAxLgorUEFTUyByb2xsb2ZmRmFjdG9yIHZhbHVlIGlzIHNldCB0byAwLjgz
LgorUEFTUyBFeGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGNvcnJlY3RseSB3aGVuIHJvbGxvZmZG
YWN0b3IgaXMgc2V0IHRvIG5lZ2F0aXZlIHZhbHVlLgorUEFTUyBjb25lSW5uZXJBbmdsZSBkZWZh
dWx0IHZhbHVlIGlzIDM2MC4KK1BBU1MgY29uZUlubmVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDAK
K1BBU1MgY29uZUlubmVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDI0MC40NS4KK1BBU1MgY29uZU91
dGVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBpcyAzNjAuCitQQVNTIGNvbmVPdXRlckFuZ2xlIHZhbHVl
IGlzIHNldCB0byAwLgorUEFTUyBjb25lT3V0ZXJBbmdsZSB2YWx1ZSBpcyBzZXQgdG8gMTY2LjY2
LgorUEFTUyBjb25lT3V0ZXJHYWluIGRlZmF1bHQgdmFsdWUgaXMgMC4KK1BBU1MgY29uZU91dGVy
R2FpbiB2YWx1ZSBpcyBzZXQgdG8gMS4KK1BBU1MgY29uZU91dGVyR2FpbiB2YWx1ZSBpcyBzZXQg
dG8gMC4zNS4KK1BBU1MgRXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBjb3JyZWN0bHkgd2hlbiBj
b25lT3V0ZXJHYWluIGlzIHNldCBvdXRzaWRlIFswLCAxXSAod2FzIHNldCB0byAtMSkuCitQQVNT
IEV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gY29ycmVjdGx5IHdoZW4gY29uZU91dGVyR2FpbiBp
cyBzZXQgb3V0c2lkZSBbMCwgMV0gKHdhcyBzZXQgdG8gMikuCitQQVNTIFBhbm5lck5vZGUgZGVm
YXVsdHMgdG8gJ0hSVEYnIHBhbm5pbmdNb2RlbC4KK1BBU1MgUGFubmVyTm9kZSBkZWZhdWx0cyB0
byAnaW52ZXJzZScgZGlzdGFuY2VNb2RlbC4KK1BBU1MgcGFubmluZ01vZGVsOiAnZXF1YWxwb3dl
cicgaXMgc2V0dGFibGUuCitQQVNTIHBhbm5pbmdNb2RlbDogJ0hSVEYnIGlzIHNldHRhYmxlLgor
UEFTUyBkaXN0YW5jZU1vZGVsOiAnbGluZWFyJyBpcyBzZXR0YWJsZS4KK1BBU1MgZGlzdGFuY2VN
b2RlbDogJ2ludmVyc2UnIGlzIHNldHRhYmxlLgorUEFTUyBkaXN0YW5jZU1vZGVsOiAnZXhwb25l
bnRpYWwnIGlzIHNldHRhYmxlLgorUEFTUyBXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xs
b2ZmRmFjdG9yIGlzIHNldCB0byAwLgorUEFTUyBXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCBy
b2xsb2ZmRmFjdG9yIGlzIHNldCB0byAwLjUuCitQQVNTIFdpdGggbGluZWFyIGRpc3RhbmNlTW9k
ZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDEuCitQQVNTIFdpdGggbGluZWFyIGRpc3RhbmNl
TW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgY2xhbXBlZCB0byBbMCwgMV0gKHdhcyBzZXQgdG8gMiku
CitQQVNTIFdpdGggaW52ZXJzZSBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0
byAwLgorUEFTUyBXaXRoIGludmVyc2UgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBz
ZXQgdG8gMTAwMDAuCitQQVNTIFdpdGggZXhwb25lbnRpYWwgZGlzdGFuY2VNb2RlbCwgcm9sbG9m
ZkZhY3RvciBpcyBzZXQgdG8gMC4KK1BBU1MgV2l0aCBleHBvbmVudGlhbCBkaXN0YW5jZU1vZGVs
LCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAxMDAwMC4KK1BBU1MgU2V0dGluZyAuZGlzdGFuY2VN
b2RlbCB0byBpbGxlZ2FsIHN0cmluZyB2YWx1ZSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4K
K1BBU1MgU2V0dGluZyAuZGlzdGFuY2VNb2RlbCB0byBpbGxlZ2FsIHR5cGUgZGlkIG5vdCB0aHJv
dyBhbiBleGNlcHRpb24uCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1Qg
Q09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdW5wcmVmaXhlZC1w
YW5uZXJub2RlLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby91bnByZWZpeGVkLXBh
bm5lcm5vZGUtYmFzaWMuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5jYWQwMzk3MTQ0YWVhYzQ1NWFiZDk2Mjg0
OTQ3MmE4ZjI3MTNlMmZjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
dW5wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLmh0bWwKQEAgLTAsMCArMSwyNzIgQEAKKzwhRE9D
VFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMt
dGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3Rpbmcu
anMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48
L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24o
IkJhc2ljIHRlc3RzIGZvciBQYW5uZXJOb2RlLiIpOworCit2YXIgY29udGV4dCA9IDA7CisKK2Z1
bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisg
ICAgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgcGFubmVyID0gY29udGV4
dC5jcmVhdGVQYW5uZXIoKTsKKyAgIAorICAgIGlmIChwYW5uZXIubnVtYmVyT2ZJbnB1dHMgPT09
IDEpIAorICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uZXJOb2RlIGhhcyBvbmUgaW5wdXQuIik7Cisg
ICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXJOb2RlIHNob3VsZCBoYXZlIG9uZSBp
bnB1dC4iKTsKKyAgICAKKyAgICBpZiAocGFubmVyLm51bWJlck9mT3V0cHV0cyA9PT0gMSkgCisg
ICAgICAgIHRlc3RQYXNzZWQoIlBhbm5lck5vZGUgaGFzIG9uZSBvdXRwdXQuIik7CisgICAgZWxz
ZQorICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXJOb2RlIHNob3VsZCBoYXZlIG9uZSBvdXRwdXQu
Iik7CisKKyAgICBpZiAocGFubmVyLnJlZkRpc3RhbmNlID09PSAxKQorICAgICAgICB0ZXN0UGFz
c2VkKCJyZWZEaXN0YW5jZSBkZWZhdWx0IHZhbHVlIGlzIDEuIik7CisgICAgZWxzZQorICAgICAg
ICB0ZXN0RmFpbGVkKCJyZWZEaXN0YW5jZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAxLiIpOwor
ICAgIAorICAgIHBhbm5lci5yZWZEaXN0YW5jZSA9IDI3MC41MgorICAgIGlmIChwYW5uZXIucmVm
RGlzdGFuY2UgPT09IDI3MC41MikKKyAgICAgICAgdGVzdFBhc3NlZCgicmVmRGlzdGFuY2UgdmFs
dWUgaXMgc2V0IHRvIDI3MC41Mi4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoInJl
ZkRpc3RhbmNlIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMjcwLjUyLiIpOworCisgICAgdHJ5IHsK
KyAgICAgICAgcGFubmVyLnJlZkRpc3RhbmNlID0gLTEKKyAgICAgICAgdGVzdEZhaWxlZCgiRXhj
ZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gd2hlbiByZWZEaXN0YW5jZSBpcyBzZXQgdG8gbmVnYXRp
dmUgdmFsdWUuIik7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2Vw
dGlvbiBoYXMgYmVlbiB0aHJvd24gY29ycmVjdGx5IHdoZW4gcmVmRGlzdGFuY2UgaXMgc2V0IHRv
IG5lZ2F0aXZlIHZhbHVlLiIpOworICAgIH0KKyAgICAKKyAgICBpZiAocGFubmVyLm1heERpc3Rh
bmNlID09PSAxMDAwMCkKKyAgICAgICAgdGVzdFBhc3NlZCgibWF4RGlzdGFuY2UgZGVmYXVsdCB2
YWx1ZSBpcyAxMDAwMC4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIm1heERpc3Rh
bmNlIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDEwMDAwLiIpOworICAgIAorICAgIHBhbm5lci5t
YXhEaXN0YW5jZSA9IDEwMC41NQorICAgIGlmIChwYW5uZXIubWF4RGlzdGFuY2UgPT09IDEwMC41
NSkKKyAgICAgICAgdGVzdFBhc3NlZCgibWF4RGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRvIDEwMC41
NS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIm1heERpc3RhbmNlIHZhbHVlIHNo
b3VsZCBiZSBzZXQgdG8gMTAwLjU1LiIpOworCisgICAgdHJ5IHsKKyAgICAgICAgcGFubmVyLm1h
eERpc3RhbmNlID0gLTEKKyAgICAgICAgdGVzdEZhaWxlZCgiRXhjZXB0aW9uIHNob3VsZCBiZSB0
aHJvd24gd2hlbiBtYXhEaXN0YW5jZSBpcyBzZXQgdG8gbm9uLXBvc2l0aXZlIHZhbHVlLiIpOwor
ICAgIH0gY2F0Y2goZSkgeworICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gaGFzIGJlZW4g
dGhyb3duIGNvcnJlY3RseSB3aGVuIG1heERpc3RhbmNlIGlzIHNldCB0byBub24tcG9zaXRpdmUg
dmFsdWUuIik7CisgICAgfQorICAgIAorICAgIGlmIChwYW5uZXIucm9sbG9mZkZhY3RvciA9PT0g
MSkKKyAgICAgICAgdGVzdFBhc3NlZCgicm9sbG9mZkZhY3RvciBkZWZhdWx0IHZhbHVlIGlzIDEu
Iik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJyb2xsb2ZmRmFjdG9yIGRlZmF1bHQg
dmFsdWUgc2hvdWxkIGJlIDEuIik7CisgICAgCisgICAgcGFubmVyLnJvbGxvZmZGYWN0b3IgPSAw
LjgzCisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAwLjgzKQorICAgICAgICB0ZXN0
UGFzc2VkKCJyb2xsb2ZmRmFjdG9yIHZhbHVlIGlzIHNldCB0byAwLjgzLiIpOworICAgIGVsc2UK
KyAgICAgICAgdGVzdEZhaWxlZCgicm9sbG9mZkZhY3RvciB2YWx1ZSBzaG91bGQgYmUgc2V0IHRv
IDAuODMuIik7CisKKyAgICB0cnkgeworICAgICAgICBwYW5uZXIucm9sbG9mZkZhY3RvciA9IC0x
CisgICAgICAgIHRlc3RGYWlsZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duIHdoZW4gcm9s
bG9mZkZhY3RvciBpcyBzZXQgdG8gbmdhdGl2ZSB2YWx1ZS4iKTsKKyAgICB9IGNhdGNoKGUpIHsK
KyAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBjb3JyZWN0bHkg
d2hlbiByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byBuZWdhdGl2ZSB2YWx1ZS4iKTsKKyAgICB9Cisg
ICAgCisgICAgaWYgKHBhbm5lci5jb25lSW5uZXJBbmdsZSA9PT0gMzYwKQorICAgICAgICB0ZXN0
UGFzc2VkKCJjb25lSW5uZXJBbmdsZSBkZWZhdWx0IHZhbHVlIGlzIDM2MC4iKTsKKyAgICBlbHNl
CisgICAgICAgIHRlc3RGYWlsZWQoImNvbmVJbm5lckFuZ2xlIGRlZmF1bHQgdmFsdWUgc2hvdWxk
IGJlIDM2MC4iKTsKKworICAgIHBhbm5lci5jb25lSW5uZXJBbmdsZSA9IDAKKyAgICBpZiAocGFu
bmVyLmNvbmVJbm5lckFuZ2xlID09PSAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJjb25lSW5uZXJB
bmdsZSB2YWx1ZSBpcyBzZXQgdG8gMCIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgi
Y29uZUlubmVyQW5nbGUgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAwLiIpOworICAgIAorICAgIHBh
bm5lci5jb25lSW5uZXJBbmdsZSA9IDI0MC40NQorICAgIGlmIChwYW5uZXIuY29uZUlubmVyQW5n
bGUgPT09IDI0MC40NSkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29uZUlubmVyQW5nbGUgdmFsdWUg
aXMgc2V0IHRvIDI0MC40NS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoImNvbmVJ
bm5lckFuZ2xlIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMjQwLjQ1LiIpOworICAgIAorICAgIGlm
IChwYW5uZXIuY29uZU91dGVyQW5nbGUgPT09IDM2MCkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29u
ZU91dGVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBpcyAzNjAuIik7CisgICAgZWxzZQorICAgICAgICB0
ZXN0RmFpbGVkKCJjb25lT3V0ZXJBbmdsZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAzNjAuIik7
CisKKyAgICBwYW5uZXIuY29uZU91dGVyQW5nbGUgPSAwCisgICAgaWYgKHBhbm5lci5jb25lT3V0
ZXJBbmdsZSA9PT0gMCkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29uZU91dGVyQW5nbGUgdmFsdWUg
aXMgc2V0IHRvIDAuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJjb25lT3V0ZXJB
bmdsZSB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDAuIik7CisgICAgCisgICAgcGFubmVyLmNvbmVP
dXRlckFuZ2xlID0gMTY2LjY2CisgICAgaWYgKHBhbm5lci5jb25lT3V0ZXJBbmdsZSA9PT0gMTY2
LjY2KQorICAgICAgICB0ZXN0UGFzc2VkKCJjb25lT3V0ZXJBbmdsZSB2YWx1ZSBpcyBzZXQgdG8g
MTY2LjY2LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiY29uZU91dGVyQW5nbGUg
dmFsdWUgc2hvdWxkIGJlIHNldCB0byAxNjYuNjYuIik7CisgICAgCisgICAgaWYgKHBhbm5lci5j
b25lT3V0ZXJHYWluID09PSAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJjb25lT3V0ZXJHYWluIGRl
ZmF1bHQgdmFsdWUgaXMgMC4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoImNvbmVP
dXRlckdhaW4gZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMC4iKTsKKworICAgIHBhbm5lci5jb25l
T3V0ZXJHYWluID0gMQorICAgIGlmIChwYW5uZXIuY29uZU91dGVyR2FpbiA9PT0gMSkKKyAgICAg
ICAgdGVzdFBhc3NlZCgiY29uZU91dGVyR2FpbiB2YWx1ZSBpcyBzZXQgdG8gMS4iKTsKKyAgICBl
bHNlCisgICAgICAgIHRlc3RGYWlsZWQoImNvbmVPdXRlckdhaW4gdmFsdWUgc2hvdWxkIGJlIHNl
dCB0byAxLiIpOworCisgICAgcGFubmVyLmNvbmVPdXRlckdhaW4gPSAwLjM1CisgICAgaWYgKHBh
bm5lci5jb25lT3V0ZXJHYWluID09PSAwLjM1KQorICAgICAgICB0ZXN0UGFzc2VkKCJjb25lT3V0
ZXJHYWluIHZhbHVlIGlzIHNldCB0byAwLjM1LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZh
aWxlZCgiY29uZU91dGVyR2FpbiB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDAuMzUuIik7CisKKyAg
ICB0cnkgeworICAgICAgICBwYW5uZXIuY29uZU91dGVyR2FpbiA9IC0xCisgICAgICAgIHRlc3RG
YWlsZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duIHdoZW4gY29uZU91dGVyR2FpbiBpcyBz
ZXQgb3V0c2lkZSBbMCwgMV0gKHdhcyBzZXQgdG8gLTEpLiIpOworICAgIH0gY2F0Y2goZSkgewor
ICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGNvcnJlY3RseSB3
aGVuIGNvbmVPdXRlckdhaW4gaXMgc2V0IG91dHNpZGUgWzAsIDFdICh3YXMgc2V0IHRvIC0xKS4i
KTsKKyAgICB9CisKKyAgICB0cnkgeworICAgICAgICBwYW5uZXIuY29uZU91dGVyR2FpbiA9IDIK
KyAgICAgICAgdGVzdEZhaWxlZCgiRXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gd2hlbiBjb25l
T3V0ZXJHYWluIGlzIHNldCBvdXRzaWRlIFswLCAxXSAod2FzIHNldCB0byAyKS4iKTsKKyAgICB9
IGNhdGNoKGUpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9uIGhhcyBiZWVuIHRocm93
biBjb3JyZWN0bHkgd2hlbiBjb25lT3V0ZXJHYWluIGlzIHNldCBvdXRzaWRlIFswLCAxXSAod2Fz
IHNldCB0byAyKS4iKTsKKyAgICB9CisKKyAgICBpZiAocGFubmVyLnBhbm5pbmdNb2RlbCA9PT0g
IkhSVEYiKQorICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uZXJOb2RlIGRlZmF1bHRzIHRvICdIUlRG
JyBwYW5uaW5nTW9kZWwuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXJO
b2RlIHNob3VsZCBkZWZhdWx0IHRvICdIUlRGJyBwYW5uaW5nTW9kZWwuIik7CisgICAgCisgICAg
aWYgKHBhbm5lci5kaXN0YW5jZU1vZGVsID09PSAiaW52ZXJzZSIpCisgICAgICAgIHRlc3RQYXNz
ZWQoIlBhbm5lck5vZGUgZGVmYXVsdHMgdG8gJ2ludmVyc2UnIGRpc3RhbmNlTW9kZWwuIik7Cisg
ICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXJOb2RlIHNob3VsZCBkZWZhdWx0IHRv
ICdpbnZlcnNlJyBkaXN0YW5jZU1vZGVsLiIpOworCisgICAgLy8gQ2hlY2sgdGhhdCB0aGUgLnBh
bm5pbmdNb2RlbCBhdHRyaWJ1dGUgY2FuIGJlIHNldCB0byBhbGwgbGVnYWwgdmFsdWVzLgorICAg
IHZhciBwYW5uaW5nTW9kZWxzID0gW3t2YWx1ZTogImVxdWFscG93ZXIifSwKKyAgICAgICAgICAg
ICAgICAgICAgICAgICB7dmFsdWU6ICJIUlRGIn0sCisgICAgICAgICAgICAgICAgICAgICAgICBd
OworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYW5uaW5nTW9kZWxzLmxlbmd0aDsgKytpKSB7
CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwYW5uZXIucGFubmluZ01vZGVsID0gcGFubmlu
Z01vZGVsc1tpXS52YWx1ZTsKKyAgICAgICAgICAgIGlmIChwYW5uZXIucGFubmluZ01vZGVsID09
PSBwYW5uaW5nTW9kZWxzW2ldLnZhbHVlKSB7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2Ug
PSAicGFubmluZ01vZGVsOiAnIiArIHBhbm5pbmdNb2RlbHNbaV0udmFsdWUgKyAiJyBpcyBzZXR0
YWJsZS4iOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQobWVzc2FnZSk7CisgICAgICAgICAg
ICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gInBhbm5pbmdNb2RlbDog
JyIgKyBwYW5uaW5nTW9kZWxzW2ldLnZhbHVlICsgIicgd2FzIG5vdCBjb3JyZWN0bHkgc2V0LiI7
CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChtZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAg
ICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICB2YXIgbWVzc2FnZSA9ICJTZXR0aW5nIHBh
bm5pbmdNb2RlbCB0byAnIiArIHBhbm5pbmdNb2RlbHNbaV0udmFsdWUgKyAiJyBzaG91bGQgbm90
IHRocm93IGV4Y2VwdGlvbi4iOworICAgICAgICAgICAgdGVzdEZhaWxlZChtZXNzYWdlKTsKKyAg
ICAgICAgfQorICAgIH0KKworICAgIC8vIENoZWNrIHRoYXQgdGhlIC5kaXN0YW5jZU1vZGVsIGF0
dHJpYnV0ZSBjYW4gYmUgc2V0IHRvIGFsbCBsZWdhbCB2YWx1ZXMuCisgICAgdmFyIGRpc3RhbmNl
TW9kZWxzID0gW3t2YWx1ZTogImxpbmVhciJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7
dmFsdWU6ICJpbnZlcnNlIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZTogImV4
cG9uZW50aWFsIn1dOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXN0YW5jZU1vZGVscy5s
ZW5ndGg7ICsraSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcGFubmVyLmRpc3RhbmNl
TW9kZWwgPSBkaXN0YW5jZU1vZGVsc1tpXS52YWx1ZTsKKyAgICAgICAgICAgIGlmIChwYW5uZXIu
ZGlzdGFuY2VNb2RlbCA9PT0gZGlzdGFuY2VNb2RlbHNbaV0udmFsdWUpIHsKKyAgICAgICAgICAg
ICAgICB2YXIgbWVzc2FnZSA9ICJkaXN0YW5jZU1vZGVsOiAnIiArIGRpc3RhbmNlTW9kZWxzW2ld
LnZhbHVlICsgIicgaXMgc2V0dGFibGUuIjsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKG1l
c3NhZ2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2Fn
ZSA9ICJkaXN0YW5jZU1vZGVsOiAnIiArIGRpc3RhbmNlTW9kZWxzW2ldLnZhbHVlICsgIicgd2Fz
IG5vdCBjb3JyZWN0bHkgc2V0LiI7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChtZXNzYWdl
KTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICB2YXIg
bWVzc2FnZSA9ICJTZXR0aW5nIGRpc3RhbmNlTW9kZWwgdG8gJyIgKyBkaXN0YW5jZU1vZGVsc1tp
XS52YWx1ZSArICInIHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uLiI7CisgICAgICAgICAgICB0
ZXN0RmFpbGVkKG1lc3NhZ2UpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8gVGVzdGluZyBy
b2xsb2ZmRmFjdG9yIHdoZW4gZGlzdGFuY2VNb2RlbCBpcyBsaW5lYXIKKyAgICBwYW5uZXIuZGlz
dGFuY2VNb2RlbCA9IGRpc3RhbmNlTW9kZWxzWzBdLnZhbHVlCisKKyAgICBwYW5uZXIucm9sbG9m
ZkZhY3RvciA9IDAKKyAgICBpZiAocGFubmVyLnJvbGxvZmZGYWN0b3IgPT09IDApCisgICAgICAg
IHRlc3RQYXNzZWQoIldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMg
c2V0IHRvIDAuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJXaXRoIGxpbmVhciBk
aXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMC4iKTsKKworICAg
IHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMC41CisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9y
ID09PSAwLjUpCisgICAgICAgIHRlc3RQYXNzZWQoIldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWws
IHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDAuNS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RG
YWlsZWQoIldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Igc2hvdWxkIGJl
IHNldCB0byAwLjUuIik7CisKKyAgICBwYW5uZXIucm9sbG9mZkZhY3RvciA9IDEKKyAgICBpZiAo
cGFubmVyLnJvbGxvZmZGYWN0b3IgPT09IDEpCisgICAgICAgIHRlc3RQYXNzZWQoIldpdGggbGlu
ZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDEuIik7CisgICAgZWxz
ZQorICAgICAgICB0ZXN0RmFpbGVkKCJXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2Zm
RmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMS4iKTsKKworICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9y
ID0gMgorICAgIGlmIChwYW5uZXIucm9sbG9mZkZhY3RvciA9PT0gMSkKKyAgICAgICAgdGVzdFBh
c3NlZCgiV2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBjbGFtcGVk
IHRvIFswLCAxXSAod2FzIHNldCB0byAyKS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWls
ZWQoIldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Igc2hvdWxkIGJlIGNs
YW1wZWQgdG8gWzAsIDFdICh3YXMgc2V0IHRvIDIpLiIpOworCisgICAgLy8gVGVzdGluZyByb2xs
b2ZmRmFjdG9yIHdoZW4gZGlzdGFuY2VNb2RlbCBpcyBpbnZlcnNlCisgICAgcGFubmVyLmRpc3Rh
bmNlTW9kZWwgPSBkaXN0YW5jZU1vZGVsc1sxXS52YWx1ZQorCisgICAgcGFubmVyLnJvbGxvZmZG
YWN0b3IgPSAwCisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAwKQorICAgICAgICB0
ZXN0UGFzc2VkKCJXaXRoIGludmVyc2UgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBz
ZXQgdG8gMC4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIldpdGggaW52ZXJzZSBk
aXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMC4iKTsKKworICAg
IHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMTAwMDAKKyAgICBpZiAocGFubmVyLnJvbGxvZmZGYWN0
b3IgPT09IDEwMDAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGludmVyc2UgZGlzdGFuY2VN
b2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMTAwMDAuIik7CisgICAgZWxzZQorICAgICAg
ICB0ZXN0RmFpbGVkKCJXaXRoIGludmVyc2UgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBz
aG91bGQgYmUgc2V0IHRvIDEwMDAwLiIpOworCisgICAgLy8gVGVzdGluZyByb2xsT2ZmRmFjdG9y
IHdoZW4gZGlzdGFuY2VNb2RlbCBpcyBleHBvbmVudGlhbAorICAgIHBhbm5lci5kaXN0YW5jZU1v
ZGVsID0gZGlzdGFuY2VNb2RlbHNbMl0udmFsdWUKKworICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9y
ID0gMAorICAgIGlmIChwYW5uZXIucm9sbG9mZkZhY3RvciA9PT0gMCkKKyAgICAgICAgdGVzdFBh
c3NlZCgiV2l0aCBleHBvbmVudGlhbCBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNl
dCB0byAwLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiV2l0aCBleHBvbmVudGlh
bCBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMC4iKTsKKwor
ICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMTAwMDAKKyAgICBpZiAocGFubmVyLnJvbGxvZmZG
YWN0b3IgPT09IDEwMDAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGV4cG9uZW50aWFsIGRp
c3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDEwMDAwLiIpOworICAgIGVsc2UK
KyAgICAgICAgdGVzdEZhaWxlZCgiV2l0aCBleHBvbmVudGlhbCBkaXN0YW5jZU1vZGVsLCByb2xs
b2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMTAwMDAuIik7CisKKyAgICAvLyBDaGVjayB0aGF0
IHdlIGRvbid0IHRocm93IGFuIGV4Y2VwdGlvbiBmb3IgaWxsZWdhbCAuZGlzdGFuY2VNb2RlbCB2
YWx1ZXMgYXMgcGVyIFdlYklETC4KKyAgICBzaG91bGROb3RUaHJvd0V4Y2VwdGlvbihmdW5jdGlv
bigpIHsgcGFubmVyLmRpc3RhbmNlTW9kZWwgPSAieHl6MTIzNDlqZmtzZCI7IH0sICJTZXR0aW5n
IC5kaXN0YW5jZU1vZGVsIHRvIGlsbGVnYWwgc3RyaW5nIHZhbHVlIik7CisgICAgc2hvdWxkTm90
VGhyb3dFeGNlcHRpb24oZnVuY3Rpb24oKSB7IHBhbm5lci5kaXN0YW5jZU1vZGVsID0gbmV3IEZs
b2F0MzJBcnJheSgxKTsgfSwgIlNldHRpbmcgLmRpc3RhbmNlTW9kZWwgdG8gaWxsZWdhbCB0eXBl
Iik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworcnVuVGVzdCgpOworCis8L3NjcmlwdD4K
KzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402575</attachid>
            <date>2020-06-23 11:44:10 -0700</date>
            <delta_ts>2020-06-23 11:59:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213523-20200623144409.patch</filename>
            <type>text/plain</type>
            <size>21367</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE3MmE1YTlkMzY2OTky
MWU1ZTQ1YjExZWU3MDJkZTRmNDI4YjE3Ni4uZWQxMjMzZDc4MWFiMGYwYWQ3Y2IwZTVjNTBmZWYy
N2RlZGE4NDdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA2LTIzICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCB1bnJlc3Ry
aWN0ZWQga2V5d29yZCBmcm9tIGF0dHJpYnV0ZXMgaW4gUGFubmVyTm9kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNTIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCByZWZEaXN0YW5jZSwg
bWF4RGlzdGFuY2UsIHJvbGxvZmZGYWN0b3IsIGNvbmVPdXRlckdhaW4sIGNvbmVJbm5lckFuZ2xl
LCBjb25lT3V0ZXJBbmdsZSBhdHRyaWJ1dGVzIGFjY29yZGluZyB0byBzcGVjOgorICAgICAgICBo
dHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI1Bhbm5lck5vZGUtYXR0cmlidXRlcy4KKwor
ICAgICAgICBUZXN0OiB3ZWJhdWRpby91bnByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMuaHRtbAor
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhbm5lck5vZGU6OnNldFJlZkRpc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
bm5lck5vZGU6OnNldE1heERpc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6
OnNldFJvbGxvZmZGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0Q29u
ZU91dGVyR2Fpbik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmg6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbDoKKwogMjAyMC0wNi0xMCAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV2Vi
WFJdIEFkZCBhIHByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIFhSV2ViR0xMYXllcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKaW5kZXggZjM4
MDBmMWNlYzRjNzAyY2JiODBiOTRiYjJkYTExODMzZThkN2FjMy4uMWQ3Zjg4NjFlOTE3ZWFiNGUy
YjgzM2UwYjgyMmQ5YmY5NjI3MjNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1Bhbm5lck5vZGUuY3BwCkBAIC0yMzAsNiArMjMwLDQ1IEBAIHZvaWQgUGFubmVyTm9k
ZTo6c2V0RGlzdGFuY2VNb2RlbChEaXN0YW5jZU1vZGVsVHlwZSBtb2RlbCkKICAgICBtX2Rpc3Rh
bmNlRWZmZWN0LnNldE1vZGVsKG1vZGVsLCB0cnVlKTsKIH0KIAorRXhjZXB0aW9uT3I8dm9pZD4g
UGFubmVyTm9kZTo6c2V0UmVmRGlzdGFuY2UoZG91YmxlIHJlZkRpc3RhbmNlKQoreworICAgIGlm
IChyZWZEaXN0YW5jZSA8IDApCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9y
LCAicmVmRGlzdGFuY2UgY2Fubm90IGJlIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlIl9zIH07Cisg
ICAgCisgICAgbV9kaXN0YW5jZUVmZmVjdC5zZXRSZWZEaXN0YW5jZShyZWZEaXN0YW5jZSk7Cisg
ICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0TWF4
RGlzdGFuY2UoZG91YmxlIG1heERpc3RhbmNlKQoreworICAgIGlmIChtYXhEaXN0YW5jZSA8IDAp
CisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9yLCAibWF4RGlzdGFuY2UgY2Fu
bm90IGJlIHNldCB0byBhIG5vbi1wb3NpdGl2ZSB2YWx1ZSJfcyB9OworICAgIAorICAgIG1fZGlz
dGFuY2VFZmZlY3Quc2V0TWF4RGlzdGFuY2UobWF4RGlzdGFuY2UpOworICAgIHJldHVybiB7IH07
Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldFJvbGxvZmZGYWN0b3IoZG91
YmxlIHJvbGxvZmZGYWN0b3IpCit7CisgICAgaWYgKHJvbGxvZmZGYWN0b3IgPCAwKQorICAgICAg
ICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgInJvbGxvZmZGYWN0b3IgY2Fubm90IGJl
IHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlIl9zIH07CisgICAgCisgICAgaWYgKGRpc3RhbmNlTW9k
ZWwoKSA9PSBEaXN0YW5jZU1vZGVsVHlwZTo6TGluZWFyKQorICAgICAgICByb2xsb2ZmRmFjdG9y
ID0gY2xhbXBUbyhyb2xsb2ZmRmFjdG9yLCAwLjAsIDEuMCk7CisgICAgCisgICAgbV9kaXN0YW5j
ZUVmZmVjdC5zZXRSb2xsb2ZmRmFjdG9yKHJvbGxvZmZGYWN0b3IpOworICAgIHJldHVybiB7IH07
Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldENvbmVPdXRlckdhaW4oZG91
YmxlIGdhaW4pCit7CisgICAgaWYgKGdhaW4gPCAwIHx8IGdhaW4gPiAxKQorICAgICAgICByZXR1
cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJjb25lT3V0ZXJHYWluIG11c3QgYmUg
aW4gWzAsIDFdIl9zIH07CisgICAgCisgICAgbV9jb25lRWZmZWN0LnNldE91dGVyR2FpbihnYWlu
KTsKKyAgICByZXR1cm4geyB9OworfQorCiB2b2lkIFBhbm5lck5vZGU6OmdldEF6aW11dGhFbGV2
YXRpb24oZG91YmxlKiBvdXRBemltdXRoLCBkb3VibGUqIG91dEVsZXZhdGlvbikKIHsKICAgICAv
LyBGSVhNRTogd2Ugc2hvdWxkIGNhY2hlIGF6aW11dGggYW5kIGVsZXZhdGlvbiAoaWYgcG9zc2li
bGUpLCBzbyB3ZSBvbmx5IHJlLWNhbGN1bGF0ZSBpZiBhIGNoYW5nZSBoYXMgYmVlbiBtYWRlLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaAppbmRleCBmMmZm
MmQyMDk2MjQ0NDQxNTgxZjE1Yzk5ZGY0ZDU0OWFkZjkzZDEwLi5hOTg0YzYyMjZmNjViYzY1OWVl
MzU2ZDg1Y2FkYWYyNmI3YTM4ZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1Bhbm5lck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1Bhbm5lck5vZGUuaApAQCAtMTA0LDE0ICsxMDQsMTQgQEAgcHVibGljOgogICAgIERpc3Rh
bmNlTW9kZWxUeXBlIGRpc3RhbmNlTW9kZWwoKSBjb25zdDsKICAgICB2b2lkIHNldERpc3RhbmNl
TW9kZWwoRGlzdGFuY2VNb2RlbFR5cGUpOwogCi0gICAgZG91YmxlIHJlZkRpc3RhbmNlKCkgeyBy
ZXR1cm4gbV9kaXN0YW5jZUVmZmVjdC5yZWZEaXN0YW5jZSgpOyB9Ci0gICAgdm9pZCBzZXRSZWZE
aXN0YW5jZShkb3VibGUgcmVmRGlzdGFuY2UpIHsgbV9kaXN0YW5jZUVmZmVjdC5zZXRSZWZEaXN0
YW5jZShyZWZEaXN0YW5jZSk7IH0KKyAgICBkb3VibGUgcmVmRGlzdGFuY2UoKSBjb25zdCB7IHJl
dHVybiBtX2Rpc3RhbmNlRWZmZWN0LnJlZkRpc3RhbmNlKCk7IH0KKyAgICBFeGNlcHRpb25Pcjx2
b2lkPiBzZXRSZWZEaXN0YW5jZShkb3VibGUpOwogCi0gICAgZG91YmxlIG1heERpc3RhbmNlKCkg
eyByZXR1cm4gbV9kaXN0YW5jZUVmZmVjdC5tYXhEaXN0YW5jZSgpOyB9Ci0gICAgdm9pZCBzZXRN
YXhEaXN0YW5jZShkb3VibGUgbWF4RGlzdGFuY2UpIHsgbV9kaXN0YW5jZUVmZmVjdC5zZXRNYXhE
aXN0YW5jZShtYXhEaXN0YW5jZSk7IH0KKyAgICBkb3VibGUgbWF4RGlzdGFuY2UoKSBjb25zdCB7
IHJldHVybiBtX2Rpc3RhbmNlRWZmZWN0Lm1heERpc3RhbmNlKCk7IH0KKyAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZXRNYXhEaXN0YW5jZShkb3VibGUpOwogCi0gICAgZG91YmxlIHJvbGxvZmZGYWN0
b3IoKSB7IHJldHVybiBtX2Rpc3RhbmNlRWZmZWN0LnJvbGxvZmZGYWN0b3IoKTsgfQotICAgIHZv
aWQgc2V0Um9sbG9mZkZhY3Rvcihkb3VibGUgcm9sbG9mZkZhY3RvcikgeyBtX2Rpc3RhbmNlRWZm
ZWN0LnNldFJvbGxvZmZGYWN0b3Iocm9sbG9mZkZhY3Rvcik7IH0KKyAgICBkb3VibGUgcm9sbG9m
ZkZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGlzdGFuY2VFZmZlY3Qucm9sbG9mZkZhY3Rvcigp
OyB9CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Um9sbG9mZkZhY3Rvcihkb3VibGUpOwogCiAg
ICAgLy8gU291bmQgY29uZXMgLSBhbmdsZXMgaW4gZGVncmVlcwogICAgIGRvdWJsZSBjb25lSW5u
ZXJBbmdsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29uZUVmZmVjdC5pbm5lckFuZ2xlKCk7IH0KQEAg
LTEyMSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb25lT3V0ZXJBbmdsZShkb3Vi
bGUgYW5nbGUpIHsgbV9jb25lRWZmZWN0LnNldE91dGVyQW5nbGUoYW5nbGUpOyB9CiAKICAgICBk
b3VibGUgY29uZU91dGVyR2FpbigpIGNvbnN0IHsgcmV0dXJuIG1fY29uZUVmZmVjdC5vdXRlckdh
aW4oKTsgfQotICAgIHZvaWQgc2V0Q29uZU91dGVyR2Fpbihkb3VibGUgYW5nbGUpIHsgbV9jb25l
RWZmZWN0LnNldE91dGVyR2FpbihhbmdsZSk7IH0KKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRD
b25lT3V0ZXJHYWluKGRvdWJsZSk7CiAKICAgICB2b2lkIGdldEF6aW11dGhFbGV2YXRpb24oZG91
YmxlKiBvdXRBemltdXRoLCBkb3VibGUqIG91dEVsZXZhdGlvbik7CiAgICAgZmxvYXQgZG9wcGxl
clJhdGUoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vUGFubmVyTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5l
ck5vZGUuaWRsCmluZGV4IDJjZDFhM2YxZDY2ODQyMWRmZDhkMWU5N2NjM2ZjMWE1MjVlODVhODgu
LmYyZGEyY2UxM2UzMWIwZWQyMTQyYjE0N2M4N2ViZWVkNzU4MzAxN2IgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5pZGwKKysrIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbApAQCAtMzcsMTQgKzM3LDE0
IEBACiAgICAgLy8gRGVmYXVsdCBkaXN0YW5jZSBtb2RlbCBpcyBpbnZlcnNlCiAgICAgYXR0cmli
dXRlIERpc3RhbmNlTW9kZWxUeXBlIGRpc3RhbmNlTW9kZWw7CiAKLSAgICBhdHRyaWJ1dGUgdW5y
ZXN0cmljdGVkIGRvdWJsZSByZWZEaXN0YW5jZTsKLSAgICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVk
IGRvdWJsZSBtYXhEaXN0YW5jZTsKLSAgICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBy
b2xsb2ZmRmFjdG9yOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIGRvdWJsZSBy
ZWZEaXN0YW5jZTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBkb3VibGUgbWF4
RGlzdGFuY2U7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBhdHRyaWJ1dGUgZG91YmxlIHJvbGxv
ZmZGYWN0b3I7CiAKICAgICAvLyBEaXJlY3Rpb25hbCBzb3VuZCBjb25lCi0gICAgYXR0cmlidXRl
IHVucmVzdHJpY3RlZCBkb3VibGUgY29uZUlubmVyQW5nbGU7Ci0gICAgYXR0cmlidXRlIHVucmVz
dHJpY3RlZCBkb3VibGUgY29uZU91dGVyQW5nbGU7Ci0gICAgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGUgY29uZU91dGVyR2FpbjsKKyAgICBhdHRyaWJ1dGUgZG91YmxlIGNvbmVJbm5lckFu
Z2xlOworICAgIGF0dHJpYnV0ZSBkb3VibGUgY29uZU91dGVyQW5nbGU7CisgICAgW01heVRocm93
RXhjZXB0aW9uXSBhdHRyaWJ1dGUgZG91YmxlIGNvbmVPdXRlckdhaW47CiAgICAgCiAgICAgLy8g
UG9zaXRpb24gb2YgYXVkaW8gc291cmNlIGluIDNEIENhcnRlc2lhbiBzeXN0ZW0KICAgICByZWFk
b25seSBhdHRyaWJ1dGUgQXVkaW9QYXJhbSBwb3NpdGlvblg7CmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTM4ZjlkNWNmYjVh
NDk0Y2MwMTg1YmY5ODE3YjRlZmJiMWZmMTU3My4uN2I0ZmE0N2IyZGI0NjRlMWMwMDg2Yzc5YTk1
ZTM0OWQ0MzIwMmY3YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIwLTA2LTIzICBDbGFyayBX
YW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCB1bnJlc3RyaWN0
ZWQga2V5d29yZCBmcm9tIGF0dHJpYnV0ZXMgaW4gUGFubmVyTm9kZQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNTIzCisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU2VwYXJhdGVkIHByZWZpeGVkIHBhbm5l
cm5vZGUgYW5kIHVucHJlZml4ZWQgcGFubmVybm9kZSB0ZXN0cy4gQWRkZWQgdGVzdCBjYXNlcyBm
b3IgcmVmRGlzdGFuY2UsIG1heERpc3RhbmNlLCByb2xsb2ZmRmFjdG9yLCBjb25lT3V0ZXJHYWlu
LCBjb25lSW5uZXJBbmdsZSwgY29uZU91dGVyQW5nbGUuCisKKyAgICAgICAgKiB3ZWJhdWRpby9w
YW5uZXJub2RlLWJhc2ljLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9wYW5uZXJu
b2RlLWJhc2ljLmh0bWw6CisgICAgICAgICogd2ViYXVkaW8vdW5wcmVmaXhlZC1wYW5uZXJub2Rl
LWJhc2ljLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFu
bmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQuCisgICAgICAgICogd2ViYXVkaW8vdW5wcmVmaXhl
ZC1wYW5uZXJub2RlLWJhc2ljLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmF1ZGlv
L3Bhbm5lcm5vZGUtYmFzaWMuaHRtbC4KKwogMjAyMC0wNi0yMiAgSmFjb2IgVXBob2ZmICA8amFj
b2JfdXBob2ZmQGFwcGxlLmNvbT4KIAogICAgICAgICBbIG1hY09TIGlPUyBdIFJFR1JFU1NJT046
IGZhc3QvbWVkaWFzdHJlYW0vbWVkaWFzdHJlYSBtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb24g
ZS1pbmNyZWFzaW5nLmh0bWwgaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3Rz
L3dlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4IGNmODJhY2JiNzk5
N2ZmNzUyODU2MmY3MzIwMDhiZDZlZmUzZmE4MmMuLjRjZDhiYWU1Yjc0ZDJmYWRhNzAwYTIyZmI2
MDRmMzBjYWJjOTI3ZWIgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lcm5v
ZGUtYmFzaWMtZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lcm5v
ZGUtYmFzaWMtZXhwZWN0ZWQudHh0CkBAIC0xLDQgKzEsNCBAQAotQmFzaWMgdGVzdHMgZm9yIFBh
bm5lck5vZGUuCitCYXNpYyB0ZXN0cyBmb3IgV2ViS2l0IFByZWZpeGVkIFBhbm5lck5vZGUuCiAK
IE9uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZv
bGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KIApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2Vi
YXVkaW8vcGFubmVybm9kZS1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVy
bm9kZS1iYXNpYy5odG1sCmluZGV4IGIwNmQ3OTM3OGE3NGU0MTRiNDEzYWM4ZGUxZWE2ZjE3NjUy
NWRlYTMuLmE0YzNjOTJiNTY4MDkyNDEzNmRlZTBjMWMzMzNjNjU3ZjQzNmVmZDcgMTAwNjQ0Ci0t
LSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMuaHRtbAorKysgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLmh0bWwKQEAgLTEwLDcgKzEwLDcgQEAK
IDxkaXYgaWQ9ImNvbnNvbGUiPjwvZGl2PgogCiA8c2NyaXB0PgotZGVzY3JpcHRpb24oIkJhc2lj
IHRlc3RzIGZvciBQYW5uZXJOb2RlLiIpOworZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RzIGZvciBX
ZWJLaXQgUHJlZml4ZWQgUGFubmVyTm9kZS4iKTsKIAogdmFyIGNvbnRleHQgPSAwOwogCmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby91bnByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMt
ZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdW5wcmVmaXhlZC1wYW5uZXJub2Rl
LWJhc2ljLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wMzQ5NTlhNjkyMWIwOThmMDAyMTA0MDFj
OTFmNjg1NzI1ZmQ3MGM5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
dW5wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDQ3IEBA
CitCYXNpYyB0ZXN0cyBmb3IgUGFubmVyTm9kZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2Vl
IGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUi
LgorCitQQVNTIFBhbm5lck5vZGUgaGFzIG9uZSBpbnB1dC4KK1BBU1MgUGFubmVyTm9kZSBoYXMg
b25lIG91dHB1dC4KK1BBU1MgcmVmRGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBpcyAxLgorUEFTUyBy
ZWZEaXN0YW5jZSB2YWx1ZSBpcyBzZXQgdG8gMjcwLjUyLgorUEFTUyBFeGNlcHRpb24gaGFzIGJl
ZW4gdGhyb3duIGNvcnJlY3RseSB3aGVuIHJlZkRpc3RhbmNlIGlzIHNldCB0byBuZWdhdGl2ZSB2
YWx1ZS4KK1BBU1MgbWF4RGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBpcyAxMDAwMC4KK1BBU1MgbWF4
RGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRvIDEwMC41NS4KK1BBU1MgRXhjZXB0aW9uIGhhcyBiZWVu
IHRocm93biBjb3JyZWN0bHkgd2hlbiBtYXhEaXN0YW5jZSBpcyBzZXQgdG8gbm9uLXBvc2l0aXZl
IHZhbHVlLgorUEFTUyByb2xsb2ZmRmFjdG9yIGRlZmF1bHQgdmFsdWUgaXMgMS4KK1BBU1Mgcm9s
bG9mZkZhY3RvciB2YWx1ZSBpcyBzZXQgdG8gMC44My4KK1BBU1MgRXhjZXB0aW9uIGhhcyBiZWVu
IHRocm93biBjb3JyZWN0bHkgd2hlbiByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byBuZWdhdGl2ZSB2
YWx1ZS4KK1BBU1MgY29uZUlubmVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBpcyAzNjAuCitQQVNTIGNv
bmVJbm5lckFuZ2xlIHZhbHVlIGlzIHNldCB0byAwCitQQVNTIGNvbmVJbm5lckFuZ2xlIHZhbHVl
IGlzIHNldCB0byAyNDAuNDUuCitQQVNTIGNvbmVPdXRlckFuZ2xlIGRlZmF1bHQgdmFsdWUgaXMg
MzYwLgorUEFTUyBjb25lT3V0ZXJBbmdsZSB2YWx1ZSBpcyBzZXQgdG8gMC4KK1BBU1MgY29uZU91
dGVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDE2Ni42Ni4KK1BBU1MgY29uZU91dGVyR2FpbiBkZWZh
dWx0IHZhbHVlIGlzIDAuCitQQVNTIGNvbmVPdXRlckdhaW4gdmFsdWUgaXMgc2V0IHRvIDEuCitQ
QVNTIGNvbmVPdXRlckdhaW4gdmFsdWUgaXMgc2V0IHRvIDAuMzUuCitQQVNTIEV4Y2VwdGlvbiBo
YXMgYmVlbiB0aHJvd24gY29ycmVjdGx5IHdoZW4gY29uZU91dGVyR2FpbiBpcyBzZXQgb3V0c2lk
ZSBbMCwgMV0gKHdhcyBzZXQgdG8gLTEpLgorUEFTUyBFeGNlcHRpb24gaGFzIGJlZW4gdGhyb3du
IGNvcnJlY3RseSB3aGVuIGNvbmVPdXRlckdhaW4gaXMgc2V0IG91dHNpZGUgWzAsIDFdICh3YXMg
c2V0IHRvIDIpLgorUEFTUyBQYW5uZXJOb2RlIGRlZmF1bHRzIHRvICdIUlRGJyBwYW5uaW5nTW9k
ZWwuCitQQVNTIFBhbm5lck5vZGUgZGVmYXVsdHMgdG8gJ2ludmVyc2UnIGRpc3RhbmNlTW9kZWwu
CitQQVNTIHBhbm5pbmdNb2RlbDogJ2VxdWFscG93ZXInIGlzIHNldHRhYmxlLgorUEFTUyBwYW5u
aW5nTW9kZWw6ICdIUlRGJyBpcyBzZXR0YWJsZS4KK1BBU1MgZGlzdGFuY2VNb2RlbDogJ2xpbmVh
cicgaXMgc2V0dGFibGUuCitQQVNTIGRpc3RhbmNlTW9kZWw6ICdpbnZlcnNlJyBpcyBzZXR0YWJs
ZS4KK1BBU1MgZGlzdGFuY2VNb2RlbDogJ2V4cG9uZW50aWFsJyBpcyBzZXR0YWJsZS4KK1BBU1Mg
V2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMC4KK1BB
U1MgV2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMC41
LgorUEFTUyBXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0
byAxLgorUEFTUyBXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIGNs
YW1wZWQgdG8gWzAsIDFdICh3YXMgc2V0IHRvIDIpLgorUEFTUyBXaXRoIGludmVyc2UgZGlzdGFu
Y2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMC4KK1BBU1MgV2l0aCBpbnZlcnNlIGRp
c3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDEwMDAwLgorUEFTUyBXaXRoIGV4
cG9uZW50aWFsIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDAuCitQQVNT
IFdpdGggZXhwb25lbnRpYWwgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8g
MTAwMDAuCitQQVNTIFNldHRpbmcgLmRpc3RhbmNlTW9kZWwgdG8gaWxsZWdhbCBzdHJpbmcgdmFs
dWUgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTIFNldHRpbmcgLmRpc3RhbmNlTW9k
ZWwgdG8gaWxsZWdhbCB0eXBlIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgorUEFTUyBzdWNj
ZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3VucHJlZml4ZWQtcGFubmVybm9kZS1iYXNpYy5odG1sIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vdW5wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLmh0bWwKbmV3IGZp
bGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMC4uY2FkMDM5NzE0NGFlYWM0NTVhYmQ5NjI4NDk0NzJhOGYyNzEzZTJmYwotLS0gL2Rldi9u
dWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VucHJlZml4ZWQtcGFubmVybm9kZS1iYXNp
Yy5odG1sCkBAIC0wLDAgKzEsMjcyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlw
dCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKwor
PGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48
L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0cyBmb3IgUGFubmVyTm9k
ZS4iKTsKKwordmFyIGNvbnRleHQgPSAwOworCitmdW5jdGlvbiBydW5UZXN0KCkgeworICAgIHdp
bmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKKworICAgIGNvbnRleHQgPSBuZXcgQXVkaW9Db250
ZXh0KCk7CisgICAgdmFyIHBhbm5lciA9IGNvbnRleHQuY3JlYXRlUGFubmVyKCk7CisgICAKKyAg
ICBpZiAocGFubmVyLm51bWJlck9mSW5wdXRzID09PSAxKSAKKyAgICAgICAgdGVzdFBhc3NlZCgi
UGFubmVyTm9kZSBoYXMgb25lIGlucHV0LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxl
ZCgiUGFubmVyTm9kZSBzaG91bGQgaGF2ZSBvbmUgaW5wdXQuIik7CisgICAgCisgICAgaWYgKHBh
bm5lci5udW1iZXJPZk91dHB1dHMgPT09IDEpIAorICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uZXJO
b2RlIGhhcyBvbmUgb3V0cHV0LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFu
bmVyTm9kZSBzaG91bGQgaGF2ZSBvbmUgb3V0cHV0LiIpOworCisgICAgaWYgKHBhbm5lci5yZWZE
aXN0YW5jZSA9PT0gMSkKKyAgICAgICAgdGVzdFBhc3NlZCgicmVmRGlzdGFuY2UgZGVmYXVsdCB2
YWx1ZSBpcyAxLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgicmVmRGlzdGFuY2Ug
ZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMS4iKTsKKyAgICAKKyAgICBwYW5uZXIucmVmRGlzdGFu
Y2UgPSAyNzAuNTIKKyAgICBpZiAocGFubmVyLnJlZkRpc3RhbmNlID09PSAyNzAuNTIpCisgICAg
ICAgIHRlc3RQYXNzZWQoInJlZkRpc3RhbmNlIHZhbHVlIGlzIHNldCB0byAyNzAuNTIuIik7Cisg
ICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJyZWZEaXN0YW5jZSB2YWx1ZSBzaG91bGQgYmUg
c2V0IHRvIDI3MC41Mi4iKTsKKworICAgIHRyeSB7CisgICAgICAgIHBhbm5lci5yZWZEaXN0YW5j
ZSA9IC0xCisgICAgICAgIHRlc3RGYWlsZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duIHdo
ZW4gcmVmRGlzdGFuY2UgaXMgc2V0IHRvIG5lZ2F0aXZlIHZhbHVlLiIpOworICAgIH0gY2F0Y2go
ZSkgeworICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGNvcnJl
Y3RseSB3aGVuIHJlZkRpc3RhbmNlIGlzIHNldCB0byBuZWdhdGl2ZSB2YWx1ZS4iKTsKKyAgICB9
CisgICAgCisgICAgaWYgKHBhbm5lci5tYXhEaXN0YW5jZSA9PT0gMTAwMDApCisgICAgICAgIHRl
c3RQYXNzZWQoIm1heERpc3RhbmNlIGRlZmF1bHQgdmFsdWUgaXMgMTAwMDAuIik7CisgICAgZWxz
ZQorICAgICAgICB0ZXN0RmFpbGVkKCJtYXhEaXN0YW5jZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBi
ZSAxMDAwMC4iKTsKKyAgICAKKyAgICBwYW5uZXIubWF4RGlzdGFuY2UgPSAxMDAuNTUKKyAgICBp
ZiAocGFubmVyLm1heERpc3RhbmNlID09PSAxMDAuNTUpCisgICAgICAgIHRlc3RQYXNzZWQoIm1h
eERpc3RhbmNlIHZhbHVlIGlzIHNldCB0byAxMDAuNTUuIik7CisgICAgZWxzZQorICAgICAgICB0
ZXN0RmFpbGVkKCJtYXhEaXN0YW5jZSB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDEwMC41NS4iKTsK
KworICAgIHRyeSB7CisgICAgICAgIHBhbm5lci5tYXhEaXN0YW5jZSA9IC0xCisgICAgICAgIHRl
c3RGYWlsZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duIHdoZW4gbWF4RGlzdGFuY2UgaXMg
c2V0IHRvIG5vbi1wb3NpdGl2ZSB2YWx1ZS4iKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAg
dGVzdFBhc3NlZCgiRXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBjb3JyZWN0bHkgd2hlbiBtYXhE
aXN0YW5jZSBpcyBzZXQgdG8gbm9uLXBvc2l0aXZlIHZhbHVlLiIpOworICAgIH0KKyAgICAKKyAg
ICBpZiAocGFubmVyLnJvbGxvZmZGYWN0b3IgPT09IDEpCisgICAgICAgIHRlc3RQYXNzZWQoInJv
bGxvZmZGYWN0b3IgZGVmYXVsdCB2YWx1ZSBpcyAxLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVz
dEZhaWxlZCgicm9sbG9mZkZhY3RvciBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAxLiIpOworICAg
IAorICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMC44MworICAgIGlmIChwYW5uZXIucm9sbG9m
ZkZhY3RvciA9PT0gMC44MykKKyAgICAgICAgdGVzdFBhc3NlZCgicm9sbG9mZkZhY3RvciB2YWx1
ZSBpcyBzZXQgdG8gMC44My4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoInJvbGxv
ZmZGYWN0b3IgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAwLjgzLiIpOworCisgICAgdHJ5IHsKKyAg
ICAgICAgcGFubmVyLnJvbGxvZmZGYWN0b3IgPSAtMQorICAgICAgICB0ZXN0RmFpbGVkKCJFeGNl
cHRpb24gc2hvdWxkIGJlIHRocm93biB3aGVuIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIG5nYXRp
dmUgdmFsdWUuIik7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2Vw
dGlvbiBoYXMgYmVlbiB0aHJvd24gY29ycmVjdGx5IHdoZW4gcm9sbG9mZkZhY3RvciBpcyBzZXQg
dG8gbmVnYXRpdmUgdmFsdWUuIik7CisgICAgfQorICAgIAorICAgIGlmIChwYW5uZXIuY29uZUlu
bmVyQW5nbGUgPT09IDM2MCkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29uZUlubmVyQW5nbGUgZGVm
YXVsdCB2YWx1ZSBpcyAzNjAuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJjb25l
SW5uZXJBbmdsZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAzNjAuIik7CisKKyAgICBwYW5uZXIu
Y29uZUlubmVyQW5nbGUgPSAwCisgICAgaWYgKHBhbm5lci5jb25lSW5uZXJBbmdsZSA9PT0gMCkK
KyAgICAgICAgdGVzdFBhc3NlZCgiY29uZUlubmVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDAiKTsK
KyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoImNvbmVJbm5lckFuZ2xlIHZhbHVlIHNob3Vs
ZCBiZSBzZXQgdG8gMC4iKTsKKyAgICAKKyAgICBwYW5uZXIuY29uZUlubmVyQW5nbGUgPSAyNDAu
NDUKKyAgICBpZiAocGFubmVyLmNvbmVJbm5lckFuZ2xlID09PSAyNDAuNDUpCisgICAgICAgIHRl
c3RQYXNzZWQoImNvbmVJbm5lckFuZ2xlIHZhbHVlIGlzIHNldCB0byAyNDAuNDUuIik7CisgICAg
ZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJjb25lSW5uZXJBbmdsZSB2YWx1ZSBzaG91bGQgYmUg
c2V0IHRvIDI0MC40NS4iKTsKKyAgICAKKyAgICBpZiAocGFubmVyLmNvbmVPdXRlckFuZ2xlID09
PSAzNjApCisgICAgICAgIHRlc3RQYXNzZWQoImNvbmVPdXRlckFuZ2xlIGRlZmF1bHQgdmFsdWUg
aXMgMzYwLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiY29uZU91dGVyQW5nbGUg
ZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMzYwLiIpOworCisgICAgcGFubmVyLmNvbmVPdXRlckFu
Z2xlID0gMAorICAgIGlmIChwYW5uZXIuY29uZU91dGVyQW5nbGUgPT09IDApCisgICAgICAgIHRl
c3RQYXNzZWQoImNvbmVPdXRlckFuZ2xlIHZhbHVlIGlzIHNldCB0byAwLiIpOworICAgIGVsc2UK
KyAgICAgICAgdGVzdEZhaWxlZCgiY29uZU91dGVyQW5nbGUgdmFsdWUgc2hvdWxkIGJlIHNldCB0
byAwLiIpOworICAgIAorICAgIHBhbm5lci5jb25lT3V0ZXJBbmdsZSA9IDE2Ni42NgorICAgIGlm
IChwYW5uZXIuY29uZU91dGVyQW5nbGUgPT09IDE2Ni42NikKKyAgICAgICAgdGVzdFBhc3NlZCgi
Y29uZU91dGVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDE2Ni42Ni4iKTsKKyAgICBlbHNlCisgICAg
ICAgIHRlc3RGYWlsZWQoImNvbmVPdXRlckFuZ2xlIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMTY2
LjY2LiIpOworICAgIAorICAgIGlmIChwYW5uZXIuY29uZU91dGVyR2FpbiA9PT0gMCkKKyAgICAg
ICAgdGVzdFBhc3NlZCgiY29uZU91dGVyR2FpbiBkZWZhdWx0IHZhbHVlIGlzIDAuIik7CisgICAg
ZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJjb25lT3V0ZXJHYWluIGRlZmF1bHQgdmFsdWUgc2hv
dWxkIGJlIDAuIik7CisKKyAgICBwYW5uZXIuY29uZU91dGVyR2FpbiA9IDEKKyAgICBpZiAocGFu
bmVyLmNvbmVPdXRlckdhaW4gPT09IDEpCisgICAgICAgIHRlc3RQYXNzZWQoImNvbmVPdXRlckdh
aW4gdmFsdWUgaXMgc2V0IHRvIDEuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJj
b25lT3V0ZXJHYWluIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMS4iKTsKKworICAgIHBhbm5lci5j
b25lT3V0ZXJHYWluID0gMC4zNQorICAgIGlmIChwYW5uZXIuY29uZU91dGVyR2FpbiA9PT0gMC4z
NSkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29uZU91dGVyR2FpbiB2YWx1ZSBpcyBzZXQgdG8gMC4z
NS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoImNvbmVPdXRlckdhaW4gdmFsdWUg
c2hvdWxkIGJlIHNldCB0byAwLjM1LiIpOworCisgICAgdHJ5IHsKKyAgICAgICAgcGFubmVyLmNv
bmVPdXRlckdhaW4gPSAtMQorICAgICAgICB0ZXN0RmFpbGVkKCJFeGNlcHRpb24gc2hvdWxkIGJl
IHRocm93biB3aGVuIGNvbmVPdXRlckdhaW4gaXMgc2V0IG91dHNpZGUgWzAsIDFdICh3YXMgc2V0
IHRvIC0xKS4iKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0
aW9uIGhhcyBiZWVuIHRocm93biBjb3JyZWN0bHkgd2hlbiBjb25lT3V0ZXJHYWluIGlzIHNldCBv
dXRzaWRlIFswLCAxXSAod2FzIHNldCB0byAtMSkuIik7CisgICAgfQorCisgICAgdHJ5IHsKKyAg
ICAgICAgcGFubmVyLmNvbmVPdXRlckdhaW4gPSAyCisgICAgICAgIHRlc3RGYWlsZWQoIkV4Y2Vw
dGlvbiBzaG91bGQgYmUgdGhyb3duIHdoZW4gY29uZU91dGVyR2FpbiBpcyBzZXQgb3V0c2lkZSBb
MCwgMV0gKHdhcyBzZXQgdG8gMikuIik7CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIHRlc3RQ
YXNzZWQoIkV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gY29ycmVjdGx5IHdoZW4gY29uZU91dGVy
R2FpbiBpcyBzZXQgb3V0c2lkZSBbMCwgMV0gKHdhcyBzZXQgdG8gMikuIik7CisgICAgfQorCisg
ICAgaWYgKHBhbm5lci5wYW5uaW5nTW9kZWwgPT09ICJIUlRGIikKKyAgICAgICAgdGVzdFBhc3Nl
ZCgiUGFubmVyTm9kZSBkZWZhdWx0cyB0byAnSFJURicgcGFubmluZ01vZGVsLiIpOworICAgIGVs
c2UKKyAgICAgICAgdGVzdEZhaWxlZCgiUGFubmVyTm9kZSBzaG91bGQgZGVmYXVsdCB0byAnSFJU
RicgcGFubmluZ01vZGVsLiIpOworICAgIAorICAgIGlmIChwYW5uZXIuZGlzdGFuY2VNb2RlbCA9
PT0gImludmVyc2UiKQorICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uZXJOb2RlIGRlZmF1bHRzIHRv
ICdpbnZlcnNlJyBkaXN0YW5jZU1vZGVsLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxl
ZCgiUGFubmVyTm9kZSBzaG91bGQgZGVmYXVsdCB0byAnaW52ZXJzZScgZGlzdGFuY2VNb2RlbC4i
KTsKKworICAgIC8vIENoZWNrIHRoYXQgdGhlIC5wYW5uaW5nTW9kZWwgYXR0cmlidXRlIGNhbiBi
ZSBzZXQgdG8gYWxsIGxlZ2FsIHZhbHVlcy4KKyAgICB2YXIgcGFubmluZ01vZGVscyA9IFt7dmFs
dWU6ICJlcXVhbHBvd2VyIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAge3ZhbHVlOiAiSFJU
RiJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgXTsKKworICAgIGZvciAodmFyIGkgPSAwOyBp
IDwgcGFubmluZ01vZGVscy5sZW5ndGg7ICsraSkgeworICAgICAgICB0cnkgeworICAgICAgICAg
ICAgcGFubmVyLnBhbm5pbmdNb2RlbCA9IHBhbm5pbmdNb2RlbHNbaV0udmFsdWU7CisgICAgICAg
ICAgICBpZiAocGFubmVyLnBhbm5pbmdNb2RlbCA9PT0gcGFubmluZ01vZGVsc1tpXS52YWx1ZSkg
eworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gInBhbm5pbmdNb2RlbDogJyIgKyBwYW5u
aW5nTW9kZWxzW2ldLnZhbHVlICsgIicgaXMgc2V0dGFibGUuIjsKKyAgICAgICAgICAgICAgICB0
ZXN0UGFzc2VkKG1lc3NhZ2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAg
ICB2YXIgbWVzc2FnZSA9ICJwYW5uaW5nTW9kZWw6ICciICsgcGFubmluZ01vZGVsc1tpXS52YWx1
ZSArICInIHdhcyBub3QgY29ycmVjdGx5IHNldC4iOworICAgICAgICAgICAgICAgIHRlc3RGYWls
ZWQobWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAg
ICAgICAgdmFyIG1lc3NhZ2UgPSAiU2V0dGluZyBwYW5uaW5nTW9kZWwgdG8gJyIgKyBwYW5uaW5n
TW9kZWxzW2ldLnZhbHVlICsgIicgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24uIjsKKyAgICAg
ICAgICAgIHRlc3RGYWlsZWQobWVzc2FnZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBD
aGVjayB0aGF0IHRoZSAuZGlzdGFuY2VNb2RlbCBhdHRyaWJ1dGUgY2FuIGJlIHNldCB0byBhbGwg
bGVnYWwgdmFsdWVzLgorICAgIHZhciBkaXN0YW5jZU1vZGVscyA9IFt7dmFsdWU6ICJsaW5lYXIi
fSwKKyAgICAgICAgICAgICAgICAgICAgICAgICAge3ZhbHVlOiAiaW52ZXJzZSJ9LAorICAgICAg
ICAgICAgICAgICAgICAgICAgICB7dmFsdWU6ICJleHBvbmVudGlhbCJ9XTsKKworICAgIGZvciAo
dmFyIGkgPSAwOyBpIDwgZGlzdGFuY2VNb2RlbHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdHJ5
IHsKKyAgICAgICAgICAgIHBhbm5lci5kaXN0YW5jZU1vZGVsID0gZGlzdGFuY2VNb2RlbHNbaV0u
dmFsdWU7CisgICAgICAgICAgICBpZiAocGFubmVyLmRpc3RhbmNlTW9kZWwgPT09IGRpc3RhbmNl
TW9kZWxzW2ldLnZhbHVlKSB7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSAiZGlzdGFu
Y2VNb2RlbDogJyIgKyBkaXN0YW5jZU1vZGVsc1tpXS52YWx1ZSArICInIGlzIHNldHRhYmxlLiI7
CisgICAgICAgICAgICAgICAgdGVzdFBhc3NlZChtZXNzYWdlKTsKKyAgICAgICAgICAgIH0gZWxz
ZSB7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSAiZGlzdGFuY2VNb2RlbDogJyIgKyBk
aXN0YW5jZU1vZGVsc1tpXS52YWx1ZSArICInIHdhcyBub3QgY29ycmVjdGx5IHNldC4iOworICAg
ICAgICAgICAgICAgIHRlc3RGYWlsZWQobWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAg
IH0gY2F0Y2goZSkgeworICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSAiU2V0dGluZyBkaXN0YW5j
ZU1vZGVsIHRvICciICsgZGlzdGFuY2VNb2RlbHNbaV0udmFsdWUgKyAiJyBzaG91bGQgbm90IHRo
cm93IGV4Y2VwdGlvbi4iOworICAgICAgICAgICAgdGVzdEZhaWxlZChtZXNzYWdlKTsKKyAgICAg
ICAgfQorICAgIH0KKworICAgIC8vIFRlc3Rpbmcgcm9sbG9mZkZhY3RvciB3aGVuIGRpc3RhbmNl
TW9kZWwgaXMgbGluZWFyCisgICAgcGFubmVyLmRpc3RhbmNlTW9kZWwgPSBkaXN0YW5jZU1vZGVs
c1swXS52YWx1ZQorCisgICAgcGFubmVyLnJvbGxvZmZGYWN0b3IgPSAwCisgICAgaWYgKHBhbm5l
ci5yb2xsb2ZmRmFjdG9yID09PSAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGxpbmVhciBk
aXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAwLiIpOworICAgIGVsc2UKKyAg
ICAgICAgdGVzdEZhaWxlZCgiV2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3Rv
ciBzaG91bGQgYmUgc2V0IHRvIDAuIik7CisKKyAgICBwYW5uZXIucm9sbG9mZkZhY3RvciA9IDAu
NQorICAgIGlmIChwYW5uZXIucm9sbG9mZkZhY3RvciA9PT0gMC41KQorICAgICAgICB0ZXN0UGFz
c2VkKCJXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAw
LjUuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJXaXRoIGxpbmVhciBkaXN0YW5j
ZU1vZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMC41LiIpOworCisgICAgcGFu
bmVyLnJvbGxvZmZGYWN0b3IgPSAxCisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAx
KQorICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2Zm
RmFjdG9yIGlzIHNldCB0byAxLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiV2l0
aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBzaG91bGQgYmUgc2V0IHRvIDEu
Iik7CisKKyAgICBwYW5uZXIucm9sbG9mZkZhY3RvciA9IDIKKyAgICBpZiAocGFubmVyLnJvbGxv
ZmZGYWN0b3IgPT09IDEpCisgICAgICAgIHRlc3RQYXNzZWQoIldpdGggbGluZWFyIGRpc3RhbmNl
TW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgY2xhbXBlZCB0byBbMCwgMV0gKHdhcyBzZXQgdG8gMiku
Iik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJXaXRoIGxpbmVhciBkaXN0YW5jZU1v
ZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBjbGFtcGVkIHRvIFswLCAxXSAod2FzIHNldCB0
byAyKS4iKTsKKworICAgIC8vIFRlc3Rpbmcgcm9sbG9mZkZhY3RvciB3aGVuIGRpc3RhbmNlTW9k
ZWwgaXMgaW52ZXJzZQorICAgIHBhbm5lci5kaXN0YW5jZU1vZGVsID0gZGlzdGFuY2VNb2RlbHNb
MV0udmFsdWUKKworICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMAorICAgIGlmIChwYW5uZXIu
cm9sbG9mZkZhY3RvciA9PT0gMCkKKyAgICAgICAgdGVzdFBhc3NlZCgiV2l0aCBpbnZlcnNlIGRp
c3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDAuIik7CisgICAgZWxzZQorICAg
ICAgICB0ZXN0RmFpbGVkKCJXaXRoIGludmVyc2UgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3Rv
ciBzaG91bGQgYmUgc2V0IHRvIDAuIik7CisKKyAgICBwYW5uZXIucm9sbG9mZkZhY3RvciA9IDEw
MDAwCisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAxMDAwMCkKKyAgICAgICAgdGVz
dFBhc3NlZCgiV2l0aCBpbnZlcnNlIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0
IHRvIDEwMDAwLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiV2l0aCBpbnZlcnNl
IGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Igc2hvdWxkIGJlIHNldCB0byAxMDAwMC4iKTsK
KworICAgIC8vIFRlc3Rpbmcgcm9sbE9mZkZhY3RvciB3aGVuIGRpc3RhbmNlTW9kZWwgaXMgZXhw
b25lbnRpYWwKKyAgICBwYW5uZXIuZGlzdGFuY2VNb2RlbCA9IGRpc3RhbmNlTW9kZWxzWzJdLnZh
bHVlCisKKyAgICBwYW5uZXIucm9sbG9mZkZhY3RvciA9IDAKKyAgICBpZiAocGFubmVyLnJvbGxv
ZmZGYWN0b3IgPT09IDApCisgICAgICAgIHRlc3RQYXNzZWQoIldpdGggZXhwb25lbnRpYWwgZGlz
dGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMC4iKTsKKyAgICBlbHNlCisgICAg
ICAgIHRlc3RGYWlsZWQoIldpdGggZXhwb25lbnRpYWwgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZh
Y3RvciBzaG91bGQgYmUgc2V0IHRvIDAuIik7CisKKyAgICBwYW5uZXIucm9sbG9mZkZhY3RvciA9
IDEwMDAwCisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAxMDAwMCkKKyAgICAgICAg
dGVzdFBhc3NlZCgiV2l0aCBleHBvbmVudGlhbCBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9y
IGlzIHNldCB0byAxMDAwMC4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIldpdGgg
ZXhwb25lbnRpYWwgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBzaG91bGQgYmUgc2V0IHRv
IDEwMDAwLiIpOworCisgICAgLy8gQ2hlY2sgdGhhdCB3ZSBkb24ndCB0aHJvdyBhbiBleGNlcHRp
b24gZm9yIGlsbGVnYWwgLmRpc3RhbmNlTW9kZWwgdmFsdWVzIGFzIHBlciBXZWJJREwuCisgICAg
c2hvdWxkTm90VGhyb3dFeGNlcHRpb24oZnVuY3Rpb24oKSB7IHBhbm5lci5kaXN0YW5jZU1vZGVs
ID0gInh5ejEyMzQ5amZrc2QiOyB9LCAiU2V0dGluZyAuZGlzdGFuY2VNb2RlbCB0byBpbGxlZ2Fs
IHN0cmluZyB2YWx1ZSIpOworICAgIHNob3VsZE5vdFRocm93RXhjZXB0aW9uKGZ1bmN0aW9uKCkg
eyBwYW5uZXIuZGlzdGFuY2VNb2RlbCA9IG5ldyBGbG9hdDMyQXJyYXkoMSk7IH0sICJTZXR0aW5n
IC5kaXN0YW5jZU1vZGVsIHRvIGlsbGVnYWwgdHlwZSIpOworCisgICAgZmluaXNoSlNUZXN0KCk7
Cit9CisKK3J1blRlc3QoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402578</attachid>
            <date>2020-06-23 11:59:30 -0700</date>
            <delta_ts>2020-06-23 14:28:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213523-20200623145928.patch</filename>
            <type>text/plain</type>
            <size>21801</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE3MmE1YTlkMzY2OTky
MWU1ZTQ1YjExZWU3MDJkZTRmNDI4YjE3Ni4uZWQxMjMzZDc4MWFiMGYwYWQ3Y2IwZTVjNTBmZWYy
N2RlZGE4NDdhMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA2LTIzICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCB1bnJlc3Ry
aWN0ZWQga2V5d29yZCBmcm9tIGF0dHJpYnV0ZXMgaW4gUGFubmVyTm9kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNTIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCByZWZEaXN0YW5jZSwg
bWF4RGlzdGFuY2UsIHJvbGxvZmZGYWN0b3IsIGNvbmVPdXRlckdhaW4sIGNvbmVJbm5lckFuZ2xl
LCBjb25lT3V0ZXJBbmdsZSBhdHRyaWJ1dGVzIGFjY29yZGluZyB0byBzcGVjOgorICAgICAgICBo
dHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI1Bhbm5lck5vZGUtYXR0cmlidXRlcy4KKwor
ICAgICAgICBUZXN0OiB3ZWJhdWRpby91bnByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMuaHRtbAor
CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OlBhbm5lck5vZGU6OnNldFJlZkRpc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBh
bm5lck5vZGU6OnNldE1heERpc3RhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6
OnNldFJvbGxvZmZGYWN0b3IpOgorICAgICAgICAoV2ViQ29yZTo6UGFubmVyTm9kZTo6c2V0Q29u
ZU91dGVyR2Fpbik6CisgICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmg6Cisg
ICAgICAgICogTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbDoKKwogMjAyMC0wNi0xMCAg
U2VyZ2lvIFZpbGxhciBTZW5pbiAgPHN2aWxsYXJAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV2Vi
WFJdIEFkZCBhIHByZWxpbWluYXJ5IGltcGxlbWVudGF0aW9uIG9mIFhSV2ViR0xMYXllcgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKaW5kZXggZjM4
MDBmMWNlYzRjNzAyY2JiODBiOTRiYjJkYTExODMzZThkN2FjMy4uZDE3YjUwMGRkYmY1ZTcxOTk5
MDVkNmMxNTUxMzljMmEzYjJlNWViOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dl
YmF1ZGlvL1Bhbm5lck5vZGUuY3BwCkBAIC0yMzAsNiArMjMwLDQ1IEBAIHZvaWQgUGFubmVyTm9k
ZTo6c2V0RGlzdGFuY2VNb2RlbChEaXN0YW5jZU1vZGVsVHlwZSBtb2RlbCkKICAgICBtX2Rpc3Rh
bmNlRWZmZWN0LnNldE1vZGVsKG1vZGVsLCB0cnVlKTsKIH0KIAorRXhjZXB0aW9uT3I8dm9pZD4g
UGFubmVyTm9kZTo6c2V0UmVmRGlzdGFuY2UoZG91YmxlIHJlZkRpc3RhbmNlKQoreworICAgIGlm
IChyZWZEaXN0YW5jZSA8IDApCisgICAgICAgIHJldHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9y
LCAicmVmRGlzdGFuY2UgY2Fubm90IGJlIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlIl9zIH07Cisg
ICAgCisgICAgbV9kaXN0YW5jZUVmZmVjdC5zZXRSZWZEaXN0YW5jZShyZWZEaXN0YW5jZSk7Cisg
ICAgcmV0dXJuIHsgfTsKK30KKworRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0TWF4
RGlzdGFuY2UoZG91YmxlIG1heERpc3RhbmNlKQoreworICAgIGlmIChtYXhEaXN0YW5jZSA8PSAw
KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgIm1heERpc3RhbmNlIGNh
bm5vdCBiZSBzZXQgdG8gYSBub24tcG9zaXRpdmUgdmFsdWUiX3MgfTsKKyAgICAKKyAgICBtX2Rp
c3RhbmNlRWZmZWN0LnNldE1heERpc3RhbmNlKG1heERpc3RhbmNlKTsKKyAgICByZXR1cm4geyB9
OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBQYW5uZXJOb2RlOjpzZXRSb2xsb2ZmRmFjdG9yKGRv
dWJsZSByb2xsb2ZmRmFjdG9yKQoreworICAgIGlmIChyb2xsb2ZmRmFjdG9yIDwgMCkKKyAgICAg
ICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsICJyb2xsb2ZmRmFjdG9yIGNhbm5vdCBi
ZSBzZXQgdG8gYSBuZWdhdGl2ZSB2YWx1ZSJfcyB9OworICAgIAorICAgIGlmIChkaXN0YW5jZU1v
ZGVsKCkgPT0gRGlzdGFuY2VNb2RlbFR5cGU6OkxpbmVhcikKKyAgICAgICAgcm9sbG9mZkZhY3Rv
ciA9IGNsYW1wVG8ocm9sbG9mZkZhY3RvciwgMC4wLCAxLjApOworICAgIAorICAgIG1fZGlzdGFu
Y2VFZmZlY3Quc2V0Um9sbG9mZkZhY3Rvcihyb2xsb2ZmRmFjdG9yKTsKKyAgICByZXR1cm4geyB9
OworfQorCitFeGNlcHRpb25Pcjx2b2lkPiBQYW5uZXJOb2RlOjpzZXRDb25lT3V0ZXJHYWluKGRv
dWJsZSBnYWluKQoreworICAgIGlmIChnYWluIDwgMCB8fCBnYWluID4gMSkKKyAgICAgICAgcmV0
dXJuIEV4Y2VwdGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiY29uZU91dGVyR2FpbiBtdXN0IGJl
IGluIFswLCAxXSJfcyB9OworICAgIAorICAgIG1fY29uZUVmZmVjdC5zZXRPdXRlckdhaW4oZ2Fp
bik7CisgICAgcmV0dXJuIHsgfTsKK30KKwogdm9pZCBQYW5uZXJOb2RlOjpnZXRBemltdXRoRWxl
dmF0aW9uKGRvdWJsZSogb3V0QXppbXV0aCwgZG91YmxlKiBvdXRFbGV2YXRpb24pCiB7CiAgICAg
Ly8gRklYTUU6IHdlIHNob3VsZCBjYWNoZSBhemltdXRoIGFuZCBlbGV2YXRpb24gKGlmIHBvc3Np
YmxlKSwgc28gd2Ugb25seSByZS1jYWxjdWxhdGUgaWYgYSBjaGFuZ2UgaGFzIGJlZW4gbWFkZS4K
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5o
IGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmgKaW5kZXggZjJm
ZjJkMjA5NjI0NDQ0MTU4MWYxNWM5OWRmNGQ1NDlhZGY5M2QxMC4uYTk4NGM2MjI2ZjY1YmM2NTll
ZTM1NmQ4NWNhZGFmMjZiN2EzOGUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxl
cy93ZWJhdWRpby9QYW5uZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9QYW5uZXJOb2RlLmgKQEAgLTEwNCwxNCArMTA0LDE0IEBAIHB1YmxpYzoKICAgICBEaXN0
YW5jZU1vZGVsVHlwZSBkaXN0YW5jZU1vZGVsKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREaXN0YW5j
ZU1vZGVsKERpc3RhbmNlTW9kZWxUeXBlKTsKIAotICAgIGRvdWJsZSByZWZEaXN0YW5jZSgpIHsg
cmV0dXJuIG1fZGlzdGFuY2VFZmZlY3QucmVmRGlzdGFuY2UoKTsgfQotICAgIHZvaWQgc2V0UmVm
RGlzdGFuY2UoZG91YmxlIHJlZkRpc3RhbmNlKSB7IG1fZGlzdGFuY2VFZmZlY3Quc2V0UmVmRGlz
dGFuY2UocmVmRGlzdGFuY2UpOyB9CisgICAgZG91YmxlIHJlZkRpc3RhbmNlKCkgY29uc3QgeyBy
ZXR1cm4gbV9kaXN0YW5jZUVmZmVjdC5yZWZEaXN0YW5jZSgpOyB9CisgICAgRXhjZXB0aW9uT3I8
dm9pZD4gc2V0UmVmRGlzdGFuY2UoZG91YmxlKTsKIAotICAgIGRvdWJsZSBtYXhEaXN0YW5jZSgp
IHsgcmV0dXJuIG1fZGlzdGFuY2VFZmZlY3QubWF4RGlzdGFuY2UoKTsgfQotICAgIHZvaWQgc2V0
TWF4RGlzdGFuY2UoZG91YmxlIG1heERpc3RhbmNlKSB7IG1fZGlzdGFuY2VFZmZlY3Quc2V0TWF4
RGlzdGFuY2UobWF4RGlzdGFuY2UpOyB9CisgICAgZG91YmxlIG1heERpc3RhbmNlKCkgY29uc3Qg
eyByZXR1cm4gbV9kaXN0YW5jZUVmZmVjdC5tYXhEaXN0YW5jZSgpOyB9CisgICAgRXhjZXB0aW9u
T3I8dm9pZD4gc2V0TWF4RGlzdGFuY2UoZG91YmxlKTsKIAotICAgIGRvdWJsZSByb2xsb2ZmRmFj
dG9yKCkgeyByZXR1cm4gbV9kaXN0YW5jZUVmZmVjdC5yb2xsb2ZmRmFjdG9yKCk7IH0KLSAgICB2
b2lkIHNldFJvbGxvZmZGYWN0b3IoZG91YmxlIHJvbGxvZmZGYWN0b3IpIHsgbV9kaXN0YW5jZUVm
ZmVjdC5zZXRSb2xsb2ZmRmFjdG9yKHJvbGxvZmZGYWN0b3IpOyB9CisgICAgZG91YmxlIHJvbGxv
ZmZGYWN0b3IoKSBjb25zdCB7IHJldHVybiBtX2Rpc3RhbmNlRWZmZWN0LnJvbGxvZmZGYWN0b3Io
KTsgfQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJvbGxvZmZGYWN0b3IoZG91YmxlKTsKIAog
ICAgIC8vIFNvdW5kIGNvbmVzIC0gYW5nbGVzIGluIGRlZ3JlZXMKICAgICBkb3VibGUgY29uZUlu
bmVyQW5nbGUoKSBjb25zdCB7IHJldHVybiBtX2NvbmVFZmZlY3QuaW5uZXJBbmdsZSgpOyB9CkBA
IC0xMjEsNyArMTIxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29uZU91dGVyQW5nbGUoZG91
YmxlIGFuZ2xlKSB7IG1fY29uZUVmZmVjdC5zZXRPdXRlckFuZ2xlKGFuZ2xlKTsgfQogCiAgICAg
ZG91YmxlIGNvbmVPdXRlckdhaW4oKSBjb25zdCB7IHJldHVybiBtX2NvbmVFZmZlY3Qub3V0ZXJH
YWluKCk7IH0KLSAgICB2b2lkIHNldENvbmVPdXRlckdhaW4oZG91YmxlIGFuZ2xlKSB7IG1fY29u
ZUVmZmVjdC5zZXRPdXRlckdhaW4oYW5nbGUpOyB9CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0
Q29uZU91dGVyR2Fpbihkb3VibGUpOwogCiAgICAgdm9pZCBnZXRBemltdXRoRWxldmF0aW9uKGRv
dWJsZSogb3V0QXppbXV0aCwgZG91YmxlKiBvdXRFbGV2YXRpb24pOwogICAgIGZsb2F0IGRvcHBs
ZXJSYXRlKCkgZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1
ZGlvL1Bhbm5lck5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5u
ZXJOb2RlLmlkbAppbmRleCAyY2QxYTNmMWQ2Njg0MjFkZmQ4ZDFlOTdjYzNmYzFhNTI1ZTg1YTg4
Li5mMmRhMmNlMTNlMzFiMGVkMjE0MmIxNDdjODdlYmVlZDc1ODMwMTdiIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaWRsCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5pZGwKQEAgLTM3LDE0ICszNywx
NCBAQAogICAgIC8vIERlZmF1bHQgZGlzdGFuY2UgbW9kZWwgaXMgaW52ZXJzZQogICAgIGF0dHJp
YnV0ZSBEaXN0YW5jZU1vZGVsVHlwZSBkaXN0YW5jZU1vZGVsOwogCi0gICAgYXR0cmlidXRlIHVu
cmVzdHJpY3RlZCBkb3VibGUgcmVmRGlzdGFuY2U7Ci0gICAgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGUgbWF4RGlzdGFuY2U7Ci0gICAgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUg
cm9sbG9mZkZhY3RvcjsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIGF0dHJpYnV0ZSBkb3VibGUg
cmVmRGlzdGFuY2U7CisgICAgW01heVRocm93RXhjZXB0aW9uXSBhdHRyaWJ1dGUgZG91YmxlIG1h
eERpc3RhbmNlOworICAgIFtNYXlUaHJvd0V4Y2VwdGlvbl0gYXR0cmlidXRlIGRvdWJsZSByb2xs
b2ZmRmFjdG9yOwogCiAgICAgLy8gRGlyZWN0aW9uYWwgc291bmQgY29uZQotICAgIGF0dHJpYnV0
ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIGNvbmVJbm5lckFuZ2xlOwotICAgIGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZG91YmxlIGNvbmVPdXRlckFuZ2xlOwotICAgIGF0dHJpYnV0ZSB1bnJlc3RyaWN0
ZWQgZG91YmxlIGNvbmVPdXRlckdhaW47CisgICAgYXR0cmlidXRlIGRvdWJsZSBjb25lSW5uZXJB
bmdsZTsKKyAgICBhdHRyaWJ1dGUgZG91YmxlIGNvbmVPdXRlckFuZ2xlOworICAgIFtNYXlUaHJv
d0V4Y2VwdGlvbl0gYXR0cmlidXRlIGRvdWJsZSBjb25lT3V0ZXJHYWluOwogICAgIAogICAgIC8v
IFBvc2l0aW9uIG9mIGF1ZGlvIHNvdXJjZSBpbiAzRCBDYXJ0ZXNpYW4gc3lzdGVtCiAgICAgcmVh
ZG9ubHkgYXR0cmlidXRlIEF1ZGlvUGFyYW0gcG9zaXRpb25YOwpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEzOGY5ZDVjZmI1
YTQ5NGNjMDE4NWJmOTgxN2I0ZWZiYjFmZjE1NzMuLjdiNGZhNDdiMmRiNDY0ZTFjMDA4NmM3OWE5
NWUzNDlkNDMyMDJmN2MgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNi0yMyAgQ2xhcmsg
V2FuZyAgPGNsYXJrX3dhbmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZWQgdW5yZXN0cmlj
dGVkIGtleXdvcmQgZnJvbSBhdHRyaWJ1dGVzIGluIFBhbm5lck5vZGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzUyMworCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNlcGFyYXRlZCBwcmVmaXhlZCBwYW5u
ZXJub2RlIGFuZCB1bnByZWZpeGVkIHBhbm5lcm5vZGUgdGVzdHMuIEFkZGVkIHRlc3QgY2FzZXMg
Zm9yIHJlZkRpc3RhbmNlLCBtYXhEaXN0YW5jZSwgcm9sbG9mZkZhY3RvciwgY29uZU91dGVyR2Fp
biwgY29uZUlubmVyQW5nbGUsIGNvbmVPdXRlckFuZ2xlLgorCisgICAgICAgICogd2ViYXVkaW8v
cGFubmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8vcGFubmVy
bm9kZS1iYXNpYy5odG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3VucHJlZml4ZWQtcGFubmVybm9k
ZS1iYXNpYy1leHBlY3RlZC50eHQ6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmF1ZGlvL3Bh
bm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0LgorICAgICAgICAqIHdlYmF1ZGlvL3VucHJlZml4
ZWQtcGFubmVybm9kZS1iYXNpYy5odG1sOiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJhdWRp
by9wYW5uZXJub2RlLWJhc2ljLmh0bWwuCisKIDIwMjAtMDYtMjIgIEphY29iIFVwaG9mZiAgPGph
Y29iX3VwaG9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgWyBtYWNPUyBpT1MgXSBSRUdSRVNTSU9O
OiBmYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWEgbXRyYWNrLXZpZGVvLWZyYW1lUmF0ZS1jbG9u
IGUtaW5jcmVhc2luZy5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEvTGF5b3V0
VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLWV4cGVjdGVkLnR4dAppbmRleCBjZjgyYWNiYjc5
OTdmZjc1Mjg1NjJmNzMyMDA4YmQ2ZWZlM2ZhODJjLi40Y2Q4YmFlNWI3NGQyZmFkYTcwMGEyMmZi
NjA0ZjMwY2FiYzkyN2ViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJu
b2RlLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJu
b2RlLWJhc2ljLWV4cGVjdGVkLnR4dApAQCAtMSw0ICsxLDQgQEAKLUJhc2ljIHRlc3RzIGZvciBQ
YW5uZXJOb2RlLgorQmFzaWMgdGVzdHMgZm9yIFdlYktpdCBQcmVmaXhlZCBQYW5uZXJOb2RlLgog
CiBPbiBzdWNjZXNzLCB5b3Ugd2lsbCBzZWUgYSBzZXJpZXMgb2YgIlBBU1MiIG1lc3NhZ2VzLCBm
b2xsb3dlZCBieSAiVEVTVCBDT01QTEVURSIuCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dl
YmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5l
cm5vZGUtYmFzaWMuaHRtbAppbmRleCBiMDZkNzkzNzhhNzRlNDE0YjQxM2FjOGRlMWVhNmYxNzY1
MjVkZWEzLi5hNGMzYzkyYjU2ODA5MjQxMzZkZWUwYzFjMzMzYzY1N2Y0MzZlZmQ3IDEwMDY0NAot
LS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy5odG1sCkBAIC0xMCw3ICsxMCw3IEBA
CiA8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KIAogPHNjcmlwdD4KLWRlc2NyaXB0aW9uKCJCYXNp
YyB0ZXN0cyBmb3IgUGFubmVyTm9kZS4iKTsKK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0cyBmb3Ig
V2ViS2l0IFByZWZpeGVkIFBhbm5lck5vZGUuIik7CiAKIHZhciBjb250ZXh0ID0gMDsKIApkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdW5wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2lj
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3VucHJlZml4ZWQtcGFubmVybm9k
ZS1iYXNpYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjFiMzM1YzE4YzUzNzJiOTNiZDRlMDU1
NTBhZDc3MTI3NjQ0MWI3YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L3VucHJlZml4ZWQtcGFubmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTAsMCArMSw0OCBA
QAorQmFzaWMgdGVzdHMgZm9yIFBhbm5lck5vZGUuCisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNl
ZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMsIGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRF
Ii4KKworUEFTUyBQYW5uZXJOb2RlIGhhcyBvbmUgaW5wdXQuCitQQVNTIFBhbm5lck5vZGUgaGFz
IG9uZSBvdXRwdXQuCitQQVNTIHJlZkRpc3RhbmNlIGRlZmF1bHQgdmFsdWUgaXMgMS4KK1BBU1Mg
cmVmRGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRvIDI3MC41Mi4KK1BBU1MgRXhjZXB0aW9uIGhhcyBi
ZWVuIHRocm93biBjb3JyZWN0bHkgd2hlbiByZWZEaXN0YW5jZSBpcyBzZXQgdG8gbmVnYXRpdmUg
dmFsdWUuCitQQVNTIG1heERpc3RhbmNlIGRlZmF1bHQgdmFsdWUgaXMgMTAwMDAuCitQQVNTIG1h
eERpc3RhbmNlIHZhbHVlIGlzIHNldCB0byAxMDAuNTUuCitQQVNTIEV4Y2VwdGlvbiBoYXMgYmVl
biB0aHJvd24gY29ycmVjdGx5IHdoZW4gbWF4RGlzdGFuY2UgaXMgc2V0IHRvIG5vbi1wb3NpdGl2
ZSB2YWx1ZSAoc2V0IHRvIDApLgorUEFTUyBFeGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGNvcnJl
Y3RseSB3aGVuIG1heERpc3RhbmNlIGlzIHNldCB0byBub24tcG9zaXRpdmUgdmFsdWUgKHNldCB0
byAtMSkuCitQQVNTIHJvbGxvZmZGYWN0b3IgZGVmYXVsdCB2YWx1ZSBpcyAxLgorUEFTUyByb2xs
b2ZmRmFjdG9yIHZhbHVlIGlzIHNldCB0byAwLjgzLgorUEFTUyBFeGNlcHRpb24gaGFzIGJlZW4g
dGhyb3duIGNvcnJlY3RseSB3aGVuIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIG5lZ2F0aXZlIHZh
bHVlLgorUEFTUyBjb25lSW5uZXJBbmdsZSBkZWZhdWx0IHZhbHVlIGlzIDM2MC4KK1BBU1MgY29u
ZUlubmVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDAKK1BBU1MgY29uZUlubmVyQW5nbGUgdmFsdWUg
aXMgc2V0IHRvIDI0MC40NS4KK1BBU1MgY29uZU91dGVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBpcyAz
NjAuCitQQVNTIGNvbmVPdXRlckFuZ2xlIHZhbHVlIGlzIHNldCB0byAwLgorUEFTUyBjb25lT3V0
ZXJBbmdsZSB2YWx1ZSBpcyBzZXQgdG8gMTY2LjY2LgorUEFTUyBjb25lT3V0ZXJHYWluIGRlZmF1
bHQgdmFsdWUgaXMgMC4KK1BBU1MgY29uZU91dGVyR2FpbiB2YWx1ZSBpcyBzZXQgdG8gMS4KK1BB
U1MgY29uZU91dGVyR2FpbiB2YWx1ZSBpcyBzZXQgdG8gMC4zNS4KK1BBU1MgRXhjZXB0aW9uIGhh
cyBiZWVuIHRocm93biBjb3JyZWN0bHkgd2hlbiBjb25lT3V0ZXJHYWluIGlzIHNldCBvdXRzaWRl
IFswLCAxXSAod2FzIHNldCB0byAtMSkuCitQQVNTIEV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24g
Y29ycmVjdGx5IHdoZW4gY29uZU91dGVyR2FpbiBpcyBzZXQgb3V0c2lkZSBbMCwgMV0gKHdhcyBz
ZXQgdG8gMikuCitQQVNTIFBhbm5lck5vZGUgZGVmYXVsdHMgdG8gJ0hSVEYnIHBhbm5pbmdNb2Rl
bC4KK1BBU1MgUGFubmVyTm9kZSBkZWZhdWx0cyB0byAnaW52ZXJzZScgZGlzdGFuY2VNb2RlbC4K
K1BBU1MgcGFubmluZ01vZGVsOiAnZXF1YWxwb3dlcicgaXMgc2V0dGFibGUuCitQQVNTIHBhbm5p
bmdNb2RlbDogJ0hSVEYnIGlzIHNldHRhYmxlLgorUEFTUyBkaXN0YW5jZU1vZGVsOiAnbGluZWFy
JyBpcyBzZXR0YWJsZS4KK1BBU1MgZGlzdGFuY2VNb2RlbDogJ2ludmVyc2UnIGlzIHNldHRhYmxl
LgorUEFTUyBkaXN0YW5jZU1vZGVsOiAnZXhwb25lbnRpYWwnIGlzIHNldHRhYmxlLgorUEFTUyBX
aXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAwLgorUEFT
UyBXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAwLjUu
CitQQVNTIFdpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRv
IDEuCitQQVNTIFdpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgY2xh
bXBlZCB0byBbMCwgMV0gKHdhcyBzZXQgdG8gMikuCitQQVNTIFdpdGggaW52ZXJzZSBkaXN0YW5j
ZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAwLgorUEFTUyBXaXRoIGludmVyc2UgZGlz
dGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMTAwMDAuCitQQVNTIFdpdGggZXhw
b25lbnRpYWwgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMC4KK1BBU1Mg
V2l0aCBleHBvbmVudGlhbCBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAx
MDAwMC4KK1BBU1MgU2V0dGluZyAuZGlzdGFuY2VNb2RlbCB0byBpbGxlZ2FsIHN0cmluZyB2YWx1
ZSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KK1BBU1MgU2V0dGluZyAuZGlzdGFuY2VNb2Rl
bCB0byBpbGxlZ2FsIHR5cGUgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKKwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvd2ViYXVkaW8vdW5wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLmh0bWwgYi9MYXlv
dXRUZXN0cy93ZWJhdWRpby91bnByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMuaHRtbApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi41N2QzM2Q2YmRmOGUyZDJmZjE5MmZiM2NjY2QyMTMyNmQxMTQ3ZTQyCi0tLSAvZGV2L251
bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vdW5wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2lj
Lmh0bWwKQEAgLTAsMCArMSwyNzkgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
KzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0
IHNyYz0icmVzb3VyY2VzL2F1ZGlvLXRlc3RpbmcuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorCis8
Ym9keT4KKzxkaXYgaWQ9ImRlc2NyaXB0aW9uIj48L2Rpdj4KKzxkaXYgaWQ9ImNvbnNvbGUiPjwv
ZGl2PgorCis8c2NyaXB0PgorZGVzY3JpcHRpb24oIkJhc2ljIHRlc3RzIGZvciBQYW5uZXJOb2Rl
LiIpOworCit2YXIgY29udGV4dCA9IDA7CisKK2Z1bmN0aW9uIHJ1blRlc3QoKSB7CisgICAgd2lu
ZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRl
eHQoKTsKKyAgICB2YXIgcGFubmVyID0gY29udGV4dC5jcmVhdGVQYW5uZXIoKTsKKyAgIAorICAg
IGlmIChwYW5uZXIubnVtYmVyT2ZJbnB1dHMgPT09IDEpIAorICAgICAgICB0ZXN0UGFzc2VkKCJQ
YW5uZXJOb2RlIGhhcyBvbmUgaW5wdXQuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVk
KCJQYW5uZXJOb2RlIHNob3VsZCBoYXZlIG9uZSBpbnB1dC4iKTsKKyAgICAKKyAgICBpZiAocGFu
bmVyLm51bWJlck9mT3V0cHV0cyA9PT0gMSkgCisgICAgICAgIHRlc3RQYXNzZWQoIlBhbm5lck5v
ZGUgaGFzIG9uZSBvdXRwdXQuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJQYW5u
ZXJOb2RlIHNob3VsZCBoYXZlIG9uZSBvdXRwdXQuIik7CisKKyAgICBpZiAocGFubmVyLnJlZkRp
c3RhbmNlID09PSAxKQorICAgICAgICB0ZXN0UGFzc2VkKCJyZWZEaXN0YW5jZSBkZWZhdWx0IHZh
bHVlIGlzIDEuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJyZWZEaXN0YW5jZSBk
ZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAxLiIpOworICAgIAorICAgIHBhbm5lci5yZWZEaXN0YW5j
ZSA9IDI3MC41MgorICAgIGlmIChwYW5uZXIucmVmRGlzdGFuY2UgPT09IDI3MC41MikKKyAgICAg
ICAgdGVzdFBhc3NlZCgicmVmRGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRvIDI3MC41Mi4iKTsKKyAg
ICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoInJlZkRpc3RhbmNlIHZhbHVlIHNob3VsZCBiZSBz
ZXQgdG8gMjcwLjUyLiIpOworCisgICAgdHJ5IHsKKyAgICAgICAgcGFubmVyLnJlZkRpc3RhbmNl
ID0gLTEKKyAgICAgICAgdGVzdEZhaWxlZCgiRXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gd2hl
biByZWZEaXN0YW5jZSBpcyBzZXQgdG8gbmVnYXRpdmUgdmFsdWUuIik7CisgICAgfSBjYXRjaChl
KSB7CisgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gY29ycmVj
dGx5IHdoZW4gcmVmRGlzdGFuY2UgaXMgc2V0IHRvIG5lZ2F0aXZlIHZhbHVlLiIpOworICAgIH0K
KyAgICAKKyAgICBpZiAocGFubmVyLm1heERpc3RhbmNlID09PSAxMDAwMCkKKyAgICAgICAgdGVz
dFBhc3NlZCgibWF4RGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBpcyAxMDAwMC4iKTsKKyAgICBlbHNl
CisgICAgICAgIHRlc3RGYWlsZWQoIm1heERpc3RhbmNlIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJl
IDEwMDAwLiIpOworICAgIAorICAgIHBhbm5lci5tYXhEaXN0YW5jZSA9IDEwMC41NQorICAgIGlm
IChwYW5uZXIubWF4RGlzdGFuY2UgPT09IDEwMC41NSkKKyAgICAgICAgdGVzdFBhc3NlZCgibWF4
RGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRvIDEwMC41NS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRl
c3RGYWlsZWQoIm1heERpc3RhbmNlIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMTAwLjU1LiIpOwor
CisgICAgdHJ5IHsKKyAgICAgICAgcGFubmVyLm1heERpc3RhbmNlID0gMAorICAgICAgICB0ZXN0
RmFpbGVkKCJFeGNlcHRpb24gc2hvdWxkIGJlIHRocm93biB3aGVuIG1heERpc3RhbmNlIGlzIHNl
dCB0byBub24tcG9zaXRpdmUgdmFsdWUgKHNldCB0byAwKS4iKTsKKyAgICB9IGNhdGNoKGUpIHsK
KyAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBjb3JyZWN0bHkg
d2hlbiBtYXhEaXN0YW5jZSBpcyBzZXQgdG8gbm9uLXBvc2l0aXZlIHZhbHVlIChzZXQgdG8gMCku
Iik7CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgcGFubmVyLm1heERpc3RhbmNlID0gLTEK
KyAgICAgICAgdGVzdEZhaWxlZCgiRXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gd2hlbiBtYXhE
aXN0YW5jZSBpcyBzZXQgdG8gbm9uLXBvc2l0aXZlIHZhbHVlIChzZXQgdG8gLTEpLiIpOworICAg
IH0gY2F0Y2goZSkgeworICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gaGFzIGJlZW4gdGhy
b3duIGNvcnJlY3RseSB3aGVuIG1heERpc3RhbmNlIGlzIHNldCB0byBub24tcG9zaXRpdmUgdmFs
dWUgKHNldCB0byAtMSkuIik7CisgICAgfQorICAgIAorICAgIGlmIChwYW5uZXIucm9sbG9mZkZh
Y3RvciA9PT0gMSkKKyAgICAgICAgdGVzdFBhc3NlZCgicm9sbG9mZkZhY3RvciBkZWZhdWx0IHZh
bHVlIGlzIDEuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJyb2xsb2ZmRmFjdG9y
IGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDEuIik7CisgICAgCisgICAgcGFubmVyLnJvbGxvZmZG
YWN0b3IgPSAwLjgzCisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAwLjgzKQorICAg
ICAgICB0ZXN0UGFzc2VkKCJyb2xsb2ZmRmFjdG9yIHZhbHVlIGlzIHNldCB0byAwLjgzLiIpOwor
ICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgicm9sbG9mZkZhY3RvciB2YWx1ZSBzaG91bGQg
YmUgc2V0IHRvIDAuODMuIik7CisKKyAgICB0cnkgeworICAgICAgICBwYW5uZXIucm9sbG9mZkZh
Y3RvciA9IC0xCisgICAgICAgIHRlc3RGYWlsZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3du
IHdoZW4gcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gbmdhdGl2ZSB2YWx1ZS4iKTsKKyAgICB9IGNh
dGNoKGUpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBj
b3JyZWN0bHkgd2hlbiByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byBuZWdhdGl2ZSB2YWx1ZS4iKTsK
KyAgICB9CisgICAgCisgICAgaWYgKHBhbm5lci5jb25lSW5uZXJBbmdsZSA9PT0gMzYwKQorICAg
ICAgICB0ZXN0UGFzc2VkKCJjb25lSW5uZXJBbmdsZSBkZWZhdWx0IHZhbHVlIGlzIDM2MC4iKTsK
KyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoImNvbmVJbm5lckFuZ2xlIGRlZmF1bHQgdmFs
dWUgc2hvdWxkIGJlIDM2MC4iKTsKKworICAgIHBhbm5lci5jb25lSW5uZXJBbmdsZSA9IDAKKyAg
ICBpZiAocGFubmVyLmNvbmVJbm5lckFuZ2xlID09PSAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJj
b25lSW5uZXJBbmdsZSB2YWx1ZSBpcyBzZXQgdG8gMCIpOworICAgIGVsc2UKKyAgICAgICAgdGVz
dEZhaWxlZCgiY29uZUlubmVyQW5nbGUgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAwLiIpOworICAg
IAorICAgIHBhbm5lci5jb25lSW5uZXJBbmdsZSA9IDI0MC40NQorICAgIGlmIChwYW5uZXIuY29u
ZUlubmVyQW5nbGUgPT09IDI0MC40NSkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29uZUlubmVyQW5n
bGUgdmFsdWUgaXMgc2V0IHRvIDI0MC40NS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWls
ZWQoImNvbmVJbm5lckFuZ2xlIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMjQwLjQ1LiIpOworICAg
IAorICAgIGlmIChwYW5uZXIuY29uZU91dGVyQW5nbGUgPT09IDM2MCkKKyAgICAgICAgdGVzdFBh
c3NlZCgiY29uZU91dGVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBpcyAzNjAuIik7CisgICAgZWxzZQor
ICAgICAgICB0ZXN0RmFpbGVkKCJjb25lT3V0ZXJBbmdsZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBi
ZSAzNjAuIik7CisKKyAgICBwYW5uZXIuY29uZU91dGVyQW5nbGUgPSAwCisgICAgaWYgKHBhbm5l
ci5jb25lT3V0ZXJBbmdsZSA9PT0gMCkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29uZU91dGVyQW5n
bGUgdmFsdWUgaXMgc2V0IHRvIDAuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJj
b25lT3V0ZXJBbmdsZSB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDAuIik7CisgICAgCisgICAgcGFu
bmVyLmNvbmVPdXRlckFuZ2xlID0gMTY2LjY2CisgICAgaWYgKHBhbm5lci5jb25lT3V0ZXJBbmds
ZSA9PT0gMTY2LjY2KQorICAgICAgICB0ZXN0UGFzc2VkKCJjb25lT3V0ZXJBbmdsZSB2YWx1ZSBp
cyBzZXQgdG8gMTY2LjY2LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiY29uZU91
dGVyQW5nbGUgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAxNjYuNjYuIik7CisgICAgCisgICAgaWYg
KHBhbm5lci5jb25lT3V0ZXJHYWluID09PSAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJjb25lT3V0
ZXJHYWluIGRlZmF1bHQgdmFsdWUgaXMgMC4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWls
ZWQoImNvbmVPdXRlckdhaW4gZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMC4iKTsKKworICAgIHBh
bm5lci5jb25lT3V0ZXJHYWluID0gMQorICAgIGlmIChwYW5uZXIuY29uZU91dGVyR2FpbiA9PT0g
MSkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29uZU91dGVyR2FpbiB2YWx1ZSBpcyBzZXQgdG8gMS4i
KTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoImNvbmVPdXRlckdhaW4gdmFsdWUgc2hv
dWxkIGJlIHNldCB0byAxLiIpOworCisgICAgcGFubmVyLmNvbmVPdXRlckdhaW4gPSAwLjM1Cisg
ICAgaWYgKHBhbm5lci5jb25lT3V0ZXJHYWluID09PSAwLjM1KQorICAgICAgICB0ZXN0UGFzc2Vk
KCJjb25lT3V0ZXJHYWluIHZhbHVlIGlzIHNldCB0byAwLjM1LiIpOworICAgIGVsc2UKKyAgICAg
ICAgdGVzdEZhaWxlZCgiY29uZU91dGVyR2FpbiB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDAuMzUu
Iik7CisKKyAgICB0cnkgeworICAgICAgICBwYW5uZXIuY29uZU91dGVyR2FpbiA9IC0xCisgICAg
ICAgIHRlc3RGYWlsZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duIHdoZW4gY29uZU91dGVy
R2FpbiBpcyBzZXQgb3V0c2lkZSBbMCwgMV0gKHdhcyBzZXQgdG8gLTEpLiIpOworICAgIH0gY2F0
Y2goZSkgeworICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGNv
cnJlY3RseSB3aGVuIGNvbmVPdXRlckdhaW4gaXMgc2V0IG91dHNpZGUgWzAsIDFdICh3YXMgc2V0
IHRvIC0xKS4iKTsKKyAgICB9CisKKyAgICB0cnkgeworICAgICAgICBwYW5uZXIuY29uZU91dGVy
R2FpbiA9IDIKKyAgICAgICAgdGVzdEZhaWxlZCgiRXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24g
d2hlbiBjb25lT3V0ZXJHYWluIGlzIHNldCBvdXRzaWRlIFswLCAxXSAod2FzIHNldCB0byAyKS4i
KTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9uIGhhcyBi
ZWVuIHRocm93biBjb3JyZWN0bHkgd2hlbiBjb25lT3V0ZXJHYWluIGlzIHNldCBvdXRzaWRlIFsw
LCAxXSAod2FzIHNldCB0byAyKS4iKTsKKyAgICB9CisKKyAgICBpZiAocGFubmVyLnBhbm5pbmdN
b2RlbCA9PT0gIkhSVEYiKQorICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uZXJOb2RlIGRlZmF1bHRz
IHRvICdIUlRGJyBwYW5uaW5nTW9kZWwuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVk
KCJQYW5uZXJOb2RlIHNob3VsZCBkZWZhdWx0IHRvICdIUlRGJyBwYW5uaW5nTW9kZWwuIik7Cisg
ICAgCisgICAgaWYgKHBhbm5lci5kaXN0YW5jZU1vZGVsID09PSAiaW52ZXJzZSIpCisgICAgICAg
IHRlc3RQYXNzZWQoIlBhbm5lck5vZGUgZGVmYXVsdHMgdG8gJ2ludmVyc2UnIGRpc3RhbmNlTW9k
ZWwuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXJOb2RlIHNob3VsZCBk
ZWZhdWx0IHRvICdpbnZlcnNlJyBkaXN0YW5jZU1vZGVsLiIpOworCisgICAgLy8gQ2hlY2sgdGhh
dCB0aGUgLnBhbm5pbmdNb2RlbCBhdHRyaWJ1dGUgY2FuIGJlIHNldCB0byBhbGwgbGVnYWwgdmFs
dWVzLgorICAgIHZhciBwYW5uaW5nTW9kZWxzID0gW3t2YWx1ZTogImVxdWFscG93ZXIifSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICB7dmFsdWU6ICJIUlRGIn0sCisgICAgICAgICAgICAgICAg
ICAgICAgICBdOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYW5uaW5nTW9kZWxzLmxlbmd0
aDsgKytpKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwYW5uZXIucGFubmluZ01vZGVs
ID0gcGFubmluZ01vZGVsc1tpXS52YWx1ZTsKKyAgICAgICAgICAgIGlmIChwYW5uZXIucGFubmlu
Z01vZGVsID09PSBwYW5uaW5nTW9kZWxzW2ldLnZhbHVlKSB7CisgICAgICAgICAgICAgICAgdmFy
IG1lc3NhZ2UgPSAicGFubmluZ01vZGVsOiAnIiArIHBhbm5pbmdNb2RlbHNbaV0udmFsdWUgKyAi
JyBpcyBzZXR0YWJsZS4iOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQobWVzc2FnZSk7Cisg
ICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gInBhbm5p
bmdNb2RlbDogJyIgKyBwYW5uaW5nTW9kZWxzW2ldLnZhbHVlICsgIicgd2FzIG5vdCBjb3JyZWN0
bHkgc2V0LiI7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChtZXNzYWdlKTsKKyAgICAgICAg
ICAgIH0KKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICB2YXIgbWVzc2FnZSA9ICJT
ZXR0aW5nIHBhbm5pbmdNb2RlbCB0byAnIiArIHBhbm5pbmdNb2RlbHNbaV0udmFsdWUgKyAiJyBz
aG91bGQgbm90IHRocm93IGV4Y2VwdGlvbi4iOworICAgICAgICAgICAgdGVzdEZhaWxlZChtZXNz
YWdlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIENoZWNrIHRoYXQgdGhlIC5kaXN0YW5j
ZU1vZGVsIGF0dHJpYnV0ZSBjYW4gYmUgc2V0IHRvIGFsbCBsZWdhbCB2YWx1ZXMuCisgICAgdmFy
IGRpc3RhbmNlTW9kZWxzID0gW3t2YWx1ZTogImxpbmVhciJ9LAorICAgICAgICAgICAgICAgICAg
ICAgICAgICB7dmFsdWU6ICJpbnZlcnNlIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAgIHt2
YWx1ZTogImV4cG9uZW50aWFsIn1dOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBkaXN0YW5j
ZU1vZGVscy5sZW5ndGg7ICsraSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAgcGFubmVy
LmRpc3RhbmNlTW9kZWwgPSBkaXN0YW5jZU1vZGVsc1tpXS52YWx1ZTsKKyAgICAgICAgICAgIGlm
IChwYW5uZXIuZGlzdGFuY2VNb2RlbCA9PT0gZGlzdGFuY2VNb2RlbHNbaV0udmFsdWUpIHsKKyAg
ICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9ICJkaXN0YW5jZU1vZGVsOiAnIiArIGRpc3RhbmNl
TW9kZWxzW2ldLnZhbHVlICsgIicgaXMgc2V0dGFibGUuIjsKKyAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKG1lc3NhZ2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2
YXIgbWVzc2FnZSA9ICJkaXN0YW5jZU1vZGVsOiAnIiArIGRpc3RhbmNlTW9kZWxzW2ldLnZhbHVl
ICsgIicgd2FzIG5vdCBjb3JyZWN0bHkgc2V0LiI7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxl
ZChtZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAg
ICAgICB2YXIgbWVzc2FnZSA9ICJTZXR0aW5nIGRpc3RhbmNlTW9kZWwgdG8gJyIgKyBkaXN0YW5j
ZU1vZGVsc1tpXS52YWx1ZSArICInIHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9uLiI7CisgICAg
ICAgICAgICB0ZXN0RmFpbGVkKG1lc3NhZ2UpOworICAgICAgICB9CisgICAgfQorCisgICAgLy8g
VGVzdGluZyByb2xsb2ZmRmFjdG9yIHdoZW4gZGlzdGFuY2VNb2RlbCBpcyBsaW5lYXIKKyAgICBw
YW5uZXIuZGlzdGFuY2VNb2RlbCA9IGRpc3RhbmNlTW9kZWxzWzBdLnZhbHVlCisKKyAgICBwYW5u
ZXIucm9sbG9mZkZhY3RvciA9IDAKKyAgICBpZiAocGFubmVyLnJvbGxvZmZGYWN0b3IgPT09IDAp
CisgICAgICAgIHRlc3RQYXNzZWQoIldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZG
YWN0b3IgaXMgc2V0IHRvIDAuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJXaXRo
IGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMC4i
KTsKKworICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMC41CisgICAgaWYgKHBhbm5lci5yb2xs
b2ZmRmFjdG9yID09PSAwLjUpCisgICAgICAgIHRlc3RQYXNzZWQoIldpdGggbGluZWFyIGRpc3Rh
bmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDAuNS4iKTsKKyAgICBlbHNlCisgICAg
ICAgIHRlc3RGYWlsZWQoIldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Ig
c2hvdWxkIGJlIHNldCB0byAwLjUuIik7CisKKyAgICBwYW5uZXIucm9sbG9mZkZhY3RvciA9IDEK
KyAgICBpZiAocGFubmVyLnJvbGxvZmZGYWN0b3IgPT09IDEpCisgICAgICAgIHRlc3RQYXNzZWQo
IldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDEuIik7
CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVs
LCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMS4iKTsKKworICAgIHBhbm5lci5yb2xs
b2ZmRmFjdG9yID0gMgorICAgIGlmIChwYW5uZXIucm9sbG9mZkZhY3RvciA9PT0gMSkKKyAgICAg
ICAgdGVzdFBhc3NlZCgiV2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBp
cyBjbGFtcGVkIHRvIFswLCAxXSAod2FzIHNldCB0byAyKS4iKTsKKyAgICBlbHNlCisgICAgICAg
IHRlc3RGYWlsZWQoIldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Igc2hv
dWxkIGJlIGNsYW1wZWQgdG8gWzAsIDFdICh3YXMgc2V0IHRvIDIpLiIpOworCisgICAgLy8gVGVz
dGluZyByb2xsb2ZmRmFjdG9yIHdoZW4gZGlzdGFuY2VNb2RlbCBpcyBpbnZlcnNlCisgICAgcGFu
bmVyLmRpc3RhbmNlTW9kZWwgPSBkaXN0YW5jZU1vZGVsc1sxXS52YWx1ZQorCisgICAgcGFubmVy
LnJvbGxvZmZGYWN0b3IgPSAwCisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAwKQor
ICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGludmVyc2UgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZh
Y3RvciBpcyBzZXQgdG8gMC4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIldpdGgg
aW52ZXJzZSBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMC4i
KTsKKworICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMTAwMDAKKyAgICBpZiAocGFubmVyLnJv
bGxvZmZGYWN0b3IgPT09IDEwMDAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGludmVyc2Ug
ZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMTAwMDAuIik7CisgICAgZWxz
ZQorICAgICAgICB0ZXN0RmFpbGVkKCJXaXRoIGludmVyc2UgZGlzdGFuY2VNb2RlbCwgcm9sbG9m
ZkZhY3RvciBzaG91bGQgYmUgc2V0IHRvIDEwMDAwLiIpOworCisgICAgLy8gVGVzdGluZyByb2xs
T2ZmRmFjdG9yIHdoZW4gZGlzdGFuY2VNb2RlbCBpcyBleHBvbmVudGlhbAorICAgIHBhbm5lci5k
aXN0YW5jZU1vZGVsID0gZGlzdGFuY2VNb2RlbHNbMl0udmFsdWUKKworICAgIHBhbm5lci5yb2xs
b2ZmRmFjdG9yID0gMAorICAgIGlmIChwYW5uZXIucm9sbG9mZkZhY3RvciA9PT0gMCkKKyAgICAg
ICAgdGVzdFBhc3NlZCgiV2l0aCBleHBvbmVudGlhbCBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFj
dG9yIGlzIHNldCB0byAwLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiV2l0aCBl
eHBvbmVudGlhbCBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8g
MC4iKTsKKworICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMTAwMDAKKyAgICBpZiAocGFubmVy
LnJvbGxvZmZGYWN0b3IgPT09IDEwMDAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGV4cG9u
ZW50aWFsIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDEwMDAwLiIpOwor
ICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiV2l0aCBleHBvbmVudGlhbCBkaXN0YW5jZU1v
ZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMTAwMDAuIik7CisKKyAgICAvLyBD
aGVjayB0aGF0IHdlIGRvbid0IHRocm93IGFuIGV4Y2VwdGlvbiBmb3IgaWxsZWdhbCAuZGlzdGFu
Y2VNb2RlbCB2YWx1ZXMgYXMgcGVyIFdlYklETC4KKyAgICBzaG91bGROb3RUaHJvd0V4Y2VwdGlv
bihmdW5jdGlvbigpIHsgcGFubmVyLmRpc3RhbmNlTW9kZWwgPSAieHl6MTIzNDlqZmtzZCI7IH0s
ICJTZXR0aW5nIC5kaXN0YW5jZU1vZGVsIHRvIGlsbGVnYWwgc3RyaW5nIHZhbHVlIik7CisgICAg
c2hvdWxkTm90VGhyb3dFeGNlcHRpb24oZnVuY3Rpb24oKSB7IHBhbm5lci5kaXN0YW5jZU1vZGVs
ID0gbmV3IEZsb2F0MzJBcnJheSgxKTsgfSwgIlNldHRpbmcgLmRpc3RhbmNlTW9kZWwgdG8gaWxs
ZWdhbCB0eXBlIik7CisKKyAgICBmaW5pc2hKU1Rlc3QoKTsKK30KKworcnVuVGVzdCgpOworCis8
L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402593</attachid>
            <date>2020-06-23 14:28:27 -0700</date>
            <delta_ts>2020-06-23 15:17:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213523-20200623172825.patch</filename>
            <type>text/plain</type>
            <size>24899</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE3MmE1YTlkMzY2OTky
MWU1ZTQ1YjExZWU3MDJkZTRmNDI4YjE3Ni4uYzFjMmU4Yjc0OWMxZWFiYWM4YWJlZjE3NDJmOWNl
MDJmMWQ0OWM1NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA2LTIzICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCB1bnJlc3Ry
aWN0ZWQga2V5d29yZCBmcm9tIGF0dHJpYnV0ZXMgaW4gUGFubmVyTm9kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNTIzCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVXBkYXRlZCByZWZEaXN0YW5jZSwg
bWF4RGlzdGFuY2UsIHJvbGxvZmZGYWN0b3IsIGNvbmVPdXRlckdhaW4sIGNvbmVJbm5lckFuZ2xl
LCBjb25lT3V0ZXJBbmdsZSBhdHRyaWJ1dGVzIGFjY29yZGluZyB0byBzcGVjOgorICAgICAgICBo
dHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI1Bhbm5lck5vZGUtYXR0cmlidXRlcy4KKwor
ICAgICAgICBUZXN0OiB3ZWJhdWRpby9wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLmh0bWwKKwor
ICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpQYW5uZXJOb2RlOjpzZXRSZWZEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5u
ZXJOb2RlOjpzZXRNYXhEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpz
ZXRSb2xsb2ZmRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OnNldENvbmVP
dXRlckdhaW4pOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oOgorICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5pZGw6CisKIDIwMjAtMDYtMTAgIFNl
cmdpbyBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dlYlhS
XSBBZGQgYSBwcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiBYUldlYkdMTGF5ZXIKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCmluZGV4IGYzODAw
ZjFjZWM0YzcwMmNiYjgwYjk0YmIyZGExMTgzM2U4ZDdhYzMuLmQxN2I1MDBkZGJmNWU3MTk5OTA1
ZDZjMTU1MTM5YzJhM2IyZTVlYjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJh
dWRpby9QYW5uZXJOb2RlLmNwcApAQCAtMjMwLDYgKzIzMCw0NSBAQCB2b2lkIFBhbm5lck5vZGU6
OnNldERpc3RhbmNlTW9kZWwoRGlzdGFuY2VNb2RlbFR5cGUgbW9kZWwpCiAgICAgbV9kaXN0YW5j
ZUVmZmVjdC5zZXRNb2RlbChtb2RlbCwgdHJ1ZSk7CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBh
bm5lck5vZGU6OnNldFJlZkRpc3RhbmNlKGRvdWJsZSByZWZEaXN0YW5jZSkKK3sKKyAgICBpZiAo
cmVmRGlzdGFuY2UgPCAwKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwg
InJlZkRpc3RhbmNlIGNhbm5vdCBiZSBzZXQgdG8gYSBuZWdhdGl2ZSB2YWx1ZSJfcyB9OworICAg
IAorICAgIG1fZGlzdGFuY2VFZmZlY3Quc2V0UmVmRGlzdGFuY2UocmVmRGlzdGFuY2UpOworICAg
IHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldE1heERp
c3RhbmNlKGRvdWJsZSBtYXhEaXN0YW5jZSkKK3sKKyAgICBpZiAobWF4RGlzdGFuY2UgPD0gMCkK
KyAgICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsICJtYXhEaXN0YW5jZSBjYW5u
b3QgYmUgc2V0IHRvIGEgbm9uLXBvc2l0aXZlIHZhbHVlIl9zIH07CisgICAgCisgICAgbV9kaXN0
YW5jZUVmZmVjdC5zZXRNYXhEaXN0YW5jZShtYXhEaXN0YW5jZSk7CisgICAgcmV0dXJuIHsgfTsK
K30KKworRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0Um9sbG9mZkZhY3Rvcihkb3Vi
bGUgcm9sbG9mZkZhY3RvcikKK3sKKyAgICBpZiAocm9sbG9mZkZhY3RvciA8IDApCisgICAgICAg
IHJldHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9yLCAicm9sbG9mZkZhY3RvciBjYW5ub3QgYmUg
c2V0IHRvIGEgbmVnYXRpdmUgdmFsdWUiX3MgfTsKKyAgICAKKyAgICBpZiAoZGlzdGFuY2VNb2Rl
bCgpID09IERpc3RhbmNlTW9kZWxUeXBlOjpMaW5lYXIpCisgICAgICAgIHJvbGxvZmZGYWN0b3Ig
PSBjbGFtcFRvKHJvbGxvZmZGYWN0b3IsIDAuMCwgMS4wKTsKKyAgICAKKyAgICBtX2Rpc3RhbmNl
RWZmZWN0LnNldFJvbGxvZmZGYWN0b3Iocm9sbG9mZkZhY3Rvcik7CisgICAgcmV0dXJuIHsgfTsK
K30KKworRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0Q29uZU91dGVyR2Fpbihkb3Vi
bGUgZ2FpbikKK3sKKyAgICBpZiAoZ2FpbiA8IDAgfHwgZ2FpbiA+IDEpCisgICAgICAgIHJldHVy
biBFeGNlcHRpb24geyBJbnZhbGlkU3RhdGVFcnJvciwgImNvbmVPdXRlckdhaW4gbXVzdCBiZSBp
biBbMCwgMV0iX3MgfTsKKyAgICAKKyAgICBtX2NvbmVFZmZlY3Quc2V0T3V0ZXJHYWluKGdhaW4p
OworICAgIHJldHVybiB7IH07Cit9CisKIHZvaWQgUGFubmVyTm9kZTo6Z2V0QXppbXV0aEVsZXZh
dGlvbihkb3VibGUqIG91dEF6aW11dGgsIGRvdWJsZSogb3V0RWxldmF0aW9uKQogewogICAgIC8v
IEZJWE1FOiB3ZSBzaG91bGQgY2FjaGUgYXppbXV0aCBhbmQgZWxldmF0aW9uIChpZiBwb3NzaWJs
ZSksIHNvIHdlIG9ubHkgcmUtY2FsY3VsYXRlIGlmIGEgY2hhbmdlIGhhcyBiZWVuIG1hZGUuCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaCBi
L1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oCmluZGV4IGYyZmYy
ZDIwOTYyNDQ0NDE1ODFmMTVjOTlkZjRkNTQ5YWRmOTNkMTAuLmE5ODRjNjIyNmY2NWJjNjU5ZWUz
NTZkODVjYWRhZjI2YjdhMzhlMmQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMv
d2ViYXVkaW8vUGFubmVyTm9kZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVk
aW8vUGFubmVyTm9kZS5oCkBAIC0xMDQsMTQgKzEwNCwxNCBAQCBwdWJsaWM6CiAgICAgRGlzdGFu
Y2VNb2RlbFR5cGUgZGlzdGFuY2VNb2RlbCgpIGNvbnN0OwogICAgIHZvaWQgc2V0RGlzdGFuY2VN
b2RlbChEaXN0YW5jZU1vZGVsVHlwZSk7CiAKLSAgICBkb3VibGUgcmVmRGlzdGFuY2UoKSB7IHJl
dHVybiBtX2Rpc3RhbmNlRWZmZWN0LnJlZkRpc3RhbmNlKCk7IH0KLSAgICB2b2lkIHNldFJlZkRp
c3RhbmNlKGRvdWJsZSByZWZEaXN0YW5jZSkgeyBtX2Rpc3RhbmNlRWZmZWN0LnNldFJlZkRpc3Rh
bmNlKHJlZkRpc3RhbmNlKTsgfQorICAgIGRvdWJsZSByZWZEaXN0YW5jZSgpIGNvbnN0IHsgcmV0
dXJuIG1fZGlzdGFuY2VFZmZlY3QucmVmRGlzdGFuY2UoKTsgfQorICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldFJlZkRpc3RhbmNlKGRvdWJsZSk7CiAKLSAgICBkb3VibGUgbWF4RGlzdGFuY2UoKSB7
IHJldHVybiBtX2Rpc3RhbmNlRWZmZWN0Lm1heERpc3RhbmNlKCk7IH0KLSAgICB2b2lkIHNldE1h
eERpc3RhbmNlKGRvdWJsZSBtYXhEaXN0YW5jZSkgeyBtX2Rpc3RhbmNlRWZmZWN0LnNldE1heERp
c3RhbmNlKG1heERpc3RhbmNlKTsgfQorICAgIGRvdWJsZSBtYXhEaXN0YW5jZSgpIGNvbnN0IHsg
cmV0dXJuIG1fZGlzdGFuY2VFZmZlY3QubWF4RGlzdGFuY2UoKTsgfQorICAgIEV4Y2VwdGlvbk9y
PHZvaWQ+IHNldE1heERpc3RhbmNlKGRvdWJsZSk7CiAKLSAgICBkb3VibGUgcm9sbG9mZkZhY3Rv
cigpIHsgcmV0dXJuIG1fZGlzdGFuY2VFZmZlY3Qucm9sbG9mZkZhY3RvcigpOyB9Ci0gICAgdm9p
ZCBzZXRSb2xsb2ZmRmFjdG9yKGRvdWJsZSByb2xsb2ZmRmFjdG9yKSB7IG1fZGlzdGFuY2VFZmZl
Y3Quc2V0Um9sbG9mZkZhY3Rvcihyb2xsb2ZmRmFjdG9yKTsgfQorICAgIGRvdWJsZSByb2xsb2Zm
RmFjdG9yKCkgY29uc3QgeyByZXR1cm4gbV9kaXN0YW5jZUVmZmVjdC5yb2xsb2ZmRmFjdG9yKCk7
IH0KKyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRSb2xsb2ZmRmFjdG9yKGRvdWJsZSk7CiAKICAg
ICAvLyBTb3VuZCBjb25lcyAtIGFuZ2xlcyBpbiBkZWdyZWVzCiAgICAgZG91YmxlIGNvbmVJbm5l
ckFuZ2xlKCkgY29uc3QgeyByZXR1cm4gbV9jb25lRWZmZWN0LmlubmVyQW5nbGUoKTsgfQpAQCAt
MTIxLDcgKzEyMSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldENvbmVPdXRlckFuZ2xlKGRvdWJs
ZSBhbmdsZSkgeyBtX2NvbmVFZmZlY3Quc2V0T3V0ZXJBbmdsZShhbmdsZSk7IH0KIAogICAgIGRv
dWJsZSBjb25lT3V0ZXJHYWluKCkgY29uc3QgeyByZXR1cm4gbV9jb25lRWZmZWN0Lm91dGVyR2Fp
bigpOyB9Ci0gICAgdm9pZCBzZXRDb25lT3V0ZXJHYWluKGRvdWJsZSBhbmdsZSkgeyBtX2NvbmVF
ZmZlY3Quc2V0T3V0ZXJHYWluKGFuZ2xlKTsgfQorICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldENv
bmVPdXRlckdhaW4oZG91YmxlKTsKIAogICAgIHZvaWQgZ2V0QXppbXV0aEVsZXZhdGlvbihkb3Vi
bGUqIG91dEF6aW11dGgsIGRvdWJsZSogb3V0RWxldmF0aW9uKTsKICAgICBmbG9hdCBkb3BwbGVy
UmF0ZSgpIGZpbmFsOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9QYW5uZXJOb2RlLmlkbCBiL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVy
Tm9kZS5pZGwKaW5kZXggMmNkMWEzZjFkNjY4NDIxZGZkOGQxZTk3Y2MzZmMxYTUyNWU4NWE4OC4u
NmVhMjdmMzg5NDI0MmI1Y2QwMjAxZmJhYzAwYzA1OTExNDdhZjhiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaWRsCkBAIC0zNywxNCArMzcsMTQg
QEAKICAgICAvLyBEZWZhdWx0IGRpc3RhbmNlIG1vZGVsIGlzIGludmVyc2UKICAgICBhdHRyaWJ1
dGUgRGlzdGFuY2VNb2RlbFR5cGUgZGlzdGFuY2VNb2RlbDsKIAotICAgIGF0dHJpYnV0ZSB1bnJl
c3RyaWN0ZWQgZG91YmxlIHJlZkRpc3RhbmNlOwotICAgIGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQg
ZG91YmxlIG1heERpc3RhbmNlOwotICAgIGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIHJv
bGxvZmZGYWN0b3I7CisgICAgYXR0cmlidXRlIGRvdWJsZSByZWZEaXN0YW5jZTsKKyAgICBhdHRy
aWJ1dGUgZG91YmxlIG1heERpc3RhbmNlOworICAgIGF0dHJpYnV0ZSBkb3VibGUgcm9sbG9mZkZh
Y3RvcjsKIAogICAgIC8vIERpcmVjdGlvbmFsIHNvdW5kIGNvbmUKLSAgICBhdHRyaWJ1dGUgdW5y
ZXN0cmljdGVkIGRvdWJsZSBjb25lSW5uZXJBbmdsZTsKLSAgICBhdHRyaWJ1dGUgdW5yZXN0cmlj
dGVkIGRvdWJsZSBjb25lT3V0ZXJBbmdsZTsKLSAgICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRv
dWJsZSBjb25lT3V0ZXJHYWluOworICAgIGF0dHJpYnV0ZSBkb3VibGUgY29uZUlubmVyQW5nbGU7
CisgICAgYXR0cmlidXRlIGRvdWJsZSBjb25lT3V0ZXJBbmdsZTsKKyAgICBhdHRyaWJ1dGUgZG91
YmxlIGNvbmVPdXRlckdhaW47CiAgICAgCiAgICAgLy8gUG9zaXRpb24gb2YgYXVkaW8gc291cmNl
IGluIDNEIENhcnRlc2lhbiBzeXN0ZW0KICAgICByZWFkb25seSBhdHRyaWJ1dGUgQXVkaW9QYXJh
bSBwb3NpdGlvblg7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRU
ZXN0cy9DaGFuZ2VMb2cKaW5kZXggMTM4ZjlkNWNmYjVhNDk0Y2MwMTg1YmY5ODE3YjRlZmJiMWZm
MTU3My4uNDJkODMxNzZhZTY3M2UyMjc0ZDMwNWY2NTBiN2Q1M2FjODFkODYwZiAxMDA2NDQKLS0t
IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDE3IEBACisyMDIwLTA2LTIzICBDbGFyayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5j
b20+CisKKyAgICAgICAgUmVtb3ZlZCB1bnJlc3RyaWN0ZWQga2V5d29yZCBmcm9tIGF0dHJpYnV0
ZXMgaW4gUGFubmVyTm9kZQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MjEzNTIzCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgU2VwYXJhdGVkIHByZWZpeGVkIHBhbm5lcm5vZGUgYW5kIHVucHJlZml4ZWQgcGFu
bmVybm9kZSB0ZXN0cy4gQWRkZWQgdGVzdCBjYXNlcyBmb3IgcmVmRGlzdGFuY2UsIG1heERpc3Rh
bmNlLCByb2xsb2ZmRmFjdG9yLCBjb25lT3V0ZXJHYWluLCBjb25lSW5uZXJBbmdsZSwgY29uZU91
dGVyQW5nbGUuCisKKyAgICAgICAgKiB3ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLWV4cGVjdGVk
LnR4dDoKKyAgICAgICAgKiB3ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLmh0bWw6CisgICAgICAg
ICogd2ViYXVkaW8vcHJlZml4ZWQtcGFubmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQ6IENvcGll
ZCBmcm9tIExheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0
LgorICAgICAgICAqIHdlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMuaHRtbDogQ29w
aWVkIGZyb20gTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy5odG1sLgorCiAy
MDIwLTA2LTIyICBKYWNvYiBVcGhvZmYgIDxqYWNvYl91cGhvZmZAYXBwbGUuY29tPgogCiAgICAg
ICAgIFsgbWFjT1MgaU9TIF0gUkVHUkVTU0lPTjogZmFzdC9tZWRpYXN0cmVhbS9tZWRpYXN0cmVh
IG10cmFjay12aWRlby1mcmFtZVJhdGUtY2xvbiBlLWluY3JlYXNpbmcuaHRtbCBpcyBhIGZsYWt5
IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFz
aWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy1l
eHBlY3RlZC50eHQKaW5kZXggY2Y4MmFjYmI3OTk3ZmY3NTI4NTYyZjczMjAwOGJkNmVmZTNmYTgy
Yy4uMjFiMzM1YzE4YzUzNzJiOTNiZDRlMDU1NTBhZDc3MTI3NjQ0MWI3YyAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQKKysrIGIv
TGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQKQEAgLTYs
MTYgKzYsMjUgQEAgUEFTUyBQYW5uZXJOb2RlIGhhcyBvbmUgaW5wdXQuCiBQQVNTIFBhbm5lck5v
ZGUgaGFzIG9uZSBvdXRwdXQuCiBQQVNTIHJlZkRpc3RhbmNlIGRlZmF1bHQgdmFsdWUgaXMgMS4K
IFBBU1MgcmVmRGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRvIDI3MC41Mi4KK1BBU1MgRXhjZXB0aW9u
IGhhcyBiZWVuIHRocm93biBjb3JyZWN0bHkgd2hlbiByZWZEaXN0YW5jZSBpcyBzZXQgdG8gbmVn
YXRpdmUgdmFsdWUuCiBQQVNTIG1heERpc3RhbmNlIGRlZmF1bHQgdmFsdWUgaXMgMTAwMDAuCiBQ
QVNTIG1heERpc3RhbmNlIHZhbHVlIGlzIHNldCB0byAxMDAuNTUuCitQQVNTIEV4Y2VwdGlvbiBo
YXMgYmVlbiB0aHJvd24gY29ycmVjdGx5IHdoZW4gbWF4RGlzdGFuY2UgaXMgc2V0IHRvIG5vbi1w
b3NpdGl2ZSB2YWx1ZSAoc2V0IHRvIDApLgorUEFTUyBFeGNlcHRpb24gaGFzIGJlZW4gdGhyb3du
IGNvcnJlY3RseSB3aGVuIG1heERpc3RhbmNlIGlzIHNldCB0byBub24tcG9zaXRpdmUgdmFsdWUg
KHNldCB0byAtMSkuCiBQQVNTIHJvbGxvZmZGYWN0b3IgZGVmYXVsdCB2YWx1ZSBpcyAxLgogUEFT
UyByb2xsb2ZmRmFjdG9yIHZhbHVlIGlzIHNldCB0byAwLjgzLgorUEFTUyBFeGNlcHRpb24gaGFz
IGJlZW4gdGhyb3duIGNvcnJlY3RseSB3aGVuIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIG5lZ2F0
aXZlIHZhbHVlLgogUEFTUyBjb25lSW5uZXJBbmdsZSBkZWZhdWx0IHZhbHVlIGlzIDM2MC4KK1BB
U1MgY29uZUlubmVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDAKIFBBU1MgY29uZUlubmVyQW5nbGUg
dmFsdWUgaXMgc2V0IHRvIDI0MC40NS4KIFBBU1MgY29uZU91dGVyQW5nbGUgZGVmYXVsdCB2YWx1
ZSBpcyAzNjAuCitQQVNTIGNvbmVPdXRlckFuZ2xlIHZhbHVlIGlzIHNldCB0byAwLgogUEFTUyBj
b25lT3V0ZXJBbmdsZSB2YWx1ZSBpcyBzZXQgdG8gMTY2LjY2LgogUEFTUyBjb25lT3V0ZXJHYWlu
IGRlZmF1bHQgdmFsdWUgaXMgMC4KK1BBU1MgY29uZU91dGVyR2FpbiB2YWx1ZSBpcyBzZXQgdG8g
MS4KIFBBU1MgY29uZU91dGVyR2FpbiB2YWx1ZSBpcyBzZXQgdG8gMC4zNS4KK1BBU1MgRXhjZXB0
aW9uIGhhcyBiZWVuIHRocm93biBjb3JyZWN0bHkgd2hlbiBjb25lT3V0ZXJHYWluIGlzIHNldCBv
dXRzaWRlIFswLCAxXSAod2FzIHNldCB0byAtMSkuCitQQVNTIEV4Y2VwdGlvbiBoYXMgYmVlbiB0
aHJvd24gY29ycmVjdGx5IHdoZW4gY29uZU91dGVyR2FpbiBpcyBzZXQgb3V0c2lkZSBbMCwgMV0g
KHdhcyBzZXQgdG8gMikuCiBQQVNTIFBhbm5lck5vZGUgZGVmYXVsdHMgdG8gJ0hSVEYnIHBhbm5p
bmdNb2RlbC4KIFBBU1MgUGFubmVyTm9kZSBkZWZhdWx0cyB0byAnaW52ZXJzZScgZGlzdGFuY2VN
b2RlbC4KIFBBU1MgcGFubmluZ01vZGVsOiAnZXF1YWxwb3dlcicgaXMgc2V0dGFibGUuCkBAIC0y
Myw2ICszMiwxNCBAQCBQQVNTIHBhbm5pbmdNb2RlbDogJ0hSVEYnIGlzIHNldHRhYmxlLgogUEFT
UyBkaXN0YW5jZU1vZGVsOiAnbGluZWFyJyBpcyBzZXR0YWJsZS4KIFBBU1MgZGlzdGFuY2VNb2Rl
bDogJ2ludmVyc2UnIGlzIHNldHRhYmxlLgogUEFTUyBkaXN0YW5jZU1vZGVsOiAnZXhwb25lbnRp
YWwnIGlzIHNldHRhYmxlLgorUEFTUyBXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2Zm
RmFjdG9yIGlzIHNldCB0byAwLgorUEFTUyBXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xs
b2ZmRmFjdG9yIGlzIHNldCB0byAwLjUuCitQQVNTIFdpdGggbGluZWFyIGRpc3RhbmNlTW9kZWws
IHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDEuCitQQVNTIFdpdGggbGluZWFyIGRpc3RhbmNlTW9k
ZWwsIHJvbGxvZmZGYWN0b3IgaXMgY2xhbXBlZCB0byBbMCwgMV0gKHdhcyBzZXQgdG8gMikuCitQ
QVNTIFdpdGggaW52ZXJzZSBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAw
LgorUEFTUyBXaXRoIGludmVyc2UgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQg
dG8gMTAwMDAuCitQQVNTIFdpdGggZXhwb25lbnRpYWwgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZh
Y3RvciBpcyBzZXQgdG8gMC4KK1BBU1MgV2l0aCBleHBvbmVudGlhbCBkaXN0YW5jZU1vZGVsLCBy
b2xsb2ZmRmFjdG9yIGlzIHNldCB0byAxMDAwMC4KIFBBU1MgU2V0dGluZyAuZGlzdGFuY2VNb2Rl
bCB0byBpbGxlZ2FsIHN0cmluZyB2YWx1ZSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KIFBB
U1MgU2V0dGluZyAuZGlzdGFuY2VNb2RlbCB0byBpbGxlZ2FsIHR5cGUgZGlkIG5vdCB0aHJvdyBh
biBleGNlcHRpb24uCiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLmh0bWwgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLmh0bWwKaW5kZXggYjA2ZDc5Mzc4YTc0ZTQxNGI0
MTNhYzhkZTFlYTZmMTc2NTI1ZGVhMy4uNTdkMzNkNmJkZjhlMmQyZmYxOTJmYjNjY2NkMjEzMjZk
MTE0N2U0MiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNp
Yy5odG1sCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMuaHRtbApA
QCAtMTcsNyArMTcsNyBAQCB2YXIgY29udGV4dCA9IDA7CiBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgIHdpbmRvdy5qc1Rlc3RJc0FzeW5jID0gdHJ1ZTsKIAotICAgIGNvbnRleHQgPSBuZXcgd2Vi
a2l0QXVkaW9Db250ZXh0KCk7CisgICAgY29udGV4dCA9IG5ldyBBdWRpb0NvbnRleHQoKTsKICAg
ICB2YXIgcGFubmVyID0gY29udGV4dC5jcmVhdGVQYW5uZXIoKTsKICAgIAogICAgIGlmIChwYW5u
ZXIubnVtYmVyT2ZJbnB1dHMgPT09IDEpIApAQCAtNDAsNiArNDAsMTMgQEAgZnVuY3Rpb24gcnVu
VGVzdCgpIHsKICAgICAgICAgdGVzdFBhc3NlZCgicmVmRGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRv
IDI3MC41Mi4iKTsKICAgICBlbHNlCiAgICAgICAgIHRlc3RGYWlsZWQoInJlZkRpc3RhbmNlIHZh
bHVlIHNob3VsZCBiZSBzZXQgdG8gMjcwLjUyLiIpOworCisgICAgdHJ5IHsKKyAgICAgICAgcGFu
bmVyLnJlZkRpc3RhbmNlID0gLTEKKyAgICAgICAgdGVzdEZhaWxlZCgiRXhjZXB0aW9uIHNob3Vs
ZCBiZSB0aHJvd24gd2hlbiByZWZEaXN0YW5jZSBpcyBzZXQgdG8gbmVnYXRpdmUgdmFsdWUuIik7
CisgICAgfSBjYXRjaChlKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiBoYXMgYmVl
biB0aHJvd24gY29ycmVjdGx5IHdoZW4gcmVmRGlzdGFuY2UgaXMgc2V0IHRvIG5lZ2F0aXZlIHZh
bHVlLiIpOworICAgIH0KICAgICAKICAgICBpZiAocGFubmVyLm1heERpc3RhbmNlID09PSAxMDAw
MCkKICAgICAgICAgdGVzdFBhc3NlZCgibWF4RGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBpcyAxMDAw
MC4iKTsKQEAgLTUxLDYgKzU4LDIwIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgICAgIHRl
c3RQYXNzZWQoIm1heERpc3RhbmNlIHZhbHVlIGlzIHNldCB0byAxMDAuNTUuIik7CiAgICAgZWxz
ZQogICAgICAgICB0ZXN0RmFpbGVkKCJtYXhEaXN0YW5jZSB2YWx1ZSBzaG91bGQgYmUgc2V0IHRv
IDEwMC41NS4iKTsKKworICAgIHRyeSB7CisgICAgICAgIHBhbm5lci5tYXhEaXN0YW5jZSA9IDAK
KyAgICAgICAgdGVzdEZhaWxlZCgiRXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gd2hlbiBtYXhE
aXN0YW5jZSBpcyBzZXQgdG8gbm9uLXBvc2l0aXZlIHZhbHVlIChzZXQgdG8gMCkuIik7CisgICAg
fSBjYXRjaChlKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJv
d24gY29ycmVjdGx5IHdoZW4gbWF4RGlzdGFuY2UgaXMgc2V0IHRvIG5vbi1wb3NpdGl2ZSB2YWx1
ZSAoc2V0IHRvIDApLiIpOworICAgIH0KKworICAgIHRyeSB7CisgICAgICAgIHBhbm5lci5tYXhE
aXN0YW5jZSA9IC0xCisgICAgICAgIHRlc3RGYWlsZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhy
b3duIHdoZW4gbWF4RGlzdGFuY2UgaXMgc2V0IHRvIG5vbi1wb3NpdGl2ZSB2YWx1ZSAoc2V0IHRv
IC0xKS4iKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9u
IGhhcyBiZWVuIHRocm93biBjb3JyZWN0bHkgd2hlbiBtYXhEaXN0YW5jZSBpcyBzZXQgdG8gbm9u
LXBvc2l0aXZlIHZhbHVlIChzZXQgdG8gLTEpLiIpOworICAgIH0KICAgICAKICAgICBpZiAocGFu
bmVyLnJvbGxvZmZGYWN0b3IgPT09IDEpCiAgICAgICAgIHRlc3RQYXNzZWQoInJvbGxvZmZGYWN0
b3IgZGVmYXVsdCB2YWx1ZSBpcyAxLiIpOwpAQCAtNjIsMTEgKzgzLDI0IEBAIGZ1bmN0aW9uIHJ1
blRlc3QoKSB7CiAgICAgICAgIHRlc3RQYXNzZWQoInJvbGxvZmZGYWN0b3IgdmFsdWUgaXMgc2V0
IHRvIDAuODMuIik7CiAgICAgZWxzZQogICAgICAgICB0ZXN0RmFpbGVkKCJyb2xsb2ZmRmFjdG9y
IHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMC44My4iKTsKKworICAgIHRyeSB7CisgICAgICAgIHBh
bm5lci5yb2xsb2ZmRmFjdG9yID0gLTEKKyAgICAgICAgdGVzdEZhaWxlZCgiRXhjZXB0aW9uIHNo
b3VsZCBiZSB0aHJvd24gd2hlbiByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byBuZ2F0aXZlIHZhbHVl
LiIpOworICAgIH0gY2F0Y2goZSkgeworICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gaGFz
IGJlZW4gdGhyb3duIGNvcnJlY3RseSB3aGVuIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIG5lZ2F0
aXZlIHZhbHVlLiIpOworICAgIH0KICAgICAKICAgICBpZiAocGFubmVyLmNvbmVJbm5lckFuZ2xl
ID09PSAzNjApCiAgICAgICAgIHRlc3RQYXNzZWQoImNvbmVJbm5lckFuZ2xlIGRlZmF1bHQgdmFs
dWUgaXMgMzYwLiIpOwogICAgIGVsc2UKICAgICAgICAgdGVzdEZhaWxlZCgiY29uZUlubmVyQW5n
bGUgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMzYwLiIpOworCisgICAgcGFubmVyLmNvbmVJbm5l
ckFuZ2xlID0gMAorICAgIGlmIChwYW5uZXIuY29uZUlubmVyQW5nbGUgPT09IDApCisgICAgICAg
IHRlc3RQYXNzZWQoImNvbmVJbm5lckFuZ2xlIHZhbHVlIGlzIHNldCB0byAwIik7CisgICAgZWxz
ZQorICAgICAgICB0ZXN0RmFpbGVkKCJjb25lSW5uZXJBbmdsZSB2YWx1ZSBzaG91bGQgYmUgc2V0
IHRvIDAuIik7CiAgICAgCiAgICAgcGFubmVyLmNvbmVJbm5lckFuZ2xlID0gMjQwLjQ1CiAgICAg
aWYgKHBhbm5lci5jb25lSW5uZXJBbmdsZSA9PT0gMjQwLjQ1KQpAQCAtNzgsNiArMTEyLDEyIEBA
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgICAgIHRlc3RQYXNzZWQoImNvbmVPdXRlckFuZ2xl
IGRlZmF1bHQgdmFsdWUgaXMgMzYwLiIpOwogICAgIGVsc2UKICAgICAgICAgdGVzdEZhaWxlZCgi
Y29uZU91dGVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMzYwLiIpOworCisgICAgcGFu
bmVyLmNvbmVPdXRlckFuZ2xlID0gMAorICAgIGlmIChwYW5uZXIuY29uZU91dGVyQW5nbGUgPT09
IDApCisgICAgICAgIHRlc3RQYXNzZWQoImNvbmVPdXRlckFuZ2xlIHZhbHVlIGlzIHNldCB0byAw
LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiY29uZU91dGVyQW5nbGUgdmFsdWUg
c2hvdWxkIGJlIHNldCB0byAwLiIpOwogICAgIAogICAgIHBhbm5lci5jb25lT3V0ZXJBbmdsZSA9
IDE2Ni42NgogICAgIGlmIChwYW5uZXIuY29uZU91dGVyQW5nbGUgPT09IDE2Ni42NikKQEAgLTkw
LDEyICsxMzAsMzIgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICBlbHNlCiAgICAgICAgIHRl
c3RGYWlsZWQoImNvbmVPdXRlckdhaW4gZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMC4iKTsKIAor
ICAgIHBhbm5lci5jb25lT3V0ZXJHYWluID0gMQorICAgIGlmIChwYW5uZXIuY29uZU91dGVyR2Fp
biA9PT0gMSkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29uZU91dGVyR2FpbiB2YWx1ZSBpcyBzZXQg
dG8gMS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoImNvbmVPdXRlckdhaW4gdmFs
dWUgc2hvdWxkIGJlIHNldCB0byAxLiIpOworCiAgICAgcGFubmVyLmNvbmVPdXRlckdhaW4gPSAw
LjM1CiAgICAgaWYgKHBhbm5lci5jb25lT3V0ZXJHYWluID09PSAwLjM1KQogICAgICAgICB0ZXN0
UGFzc2VkKCJjb25lT3V0ZXJHYWluIHZhbHVlIGlzIHNldCB0byAwLjM1LiIpOwogICAgIGVsc2UK
ICAgICAgICAgdGVzdEZhaWxlZCgiY29uZU91dGVyR2FpbiB2YWx1ZSBzaG91bGQgYmUgc2V0IHRv
IDAuMzUuIik7CiAKKyAgICB0cnkgeworICAgICAgICBwYW5uZXIuY29uZU91dGVyR2FpbiA9IC0x
CisgICAgICAgIHRlc3RGYWlsZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duIHdoZW4gY29u
ZU91dGVyR2FpbiBpcyBzZXQgb3V0c2lkZSBbMCwgMV0gKHdhcyBzZXQgdG8gLTEpLiIpOworICAg
IH0gY2F0Y2goZSkgeworICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gaGFzIGJlZW4gdGhy
b3duIGNvcnJlY3RseSB3aGVuIGNvbmVPdXRlckdhaW4gaXMgc2V0IG91dHNpZGUgWzAsIDFdICh3
YXMgc2V0IHRvIC0xKS4iKTsKKyAgICB9CisKKyAgICB0cnkgeworICAgICAgICBwYW5uZXIuY29u
ZU91dGVyR2FpbiA9IDIKKyAgICAgICAgdGVzdEZhaWxlZCgiRXhjZXB0aW9uIHNob3VsZCBiZSB0
aHJvd24gd2hlbiBjb25lT3V0ZXJHYWluIGlzIHNldCBvdXRzaWRlIFswLCAxXSAod2FzIHNldCB0
byAyKS4iKTsKKyAgICB9IGNhdGNoKGUpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9u
IGhhcyBiZWVuIHRocm93biBjb3JyZWN0bHkgd2hlbiBjb25lT3V0ZXJHYWluIGlzIHNldCBvdXRz
aWRlIFswLCAxXSAod2FzIHNldCB0byAyKS4iKTsKKyAgICB9CisKICAgICBpZiAocGFubmVyLnBh
bm5pbmdNb2RlbCA9PT0gIkhSVEYiKQogICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uZXJOb2RlIGRl
ZmF1bHRzIHRvICdIUlRGJyBwYW5uaW5nTW9kZWwuIik7CiAgICAgZWxzZQpAQCAtMTQ4LDYgKzIw
OCw2MyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgICAgICB9CiAgICAgfQogCisgICAgLy8g
VGVzdGluZyByb2xsb2ZmRmFjdG9yIHdoZW4gZGlzdGFuY2VNb2RlbCBpcyBsaW5lYXIKKyAgICBw
YW5uZXIuZGlzdGFuY2VNb2RlbCA9IGRpc3RhbmNlTW9kZWxzWzBdLnZhbHVlCisKKyAgICBwYW5u
ZXIucm9sbG9mZkZhY3RvciA9IDAKKyAgICBpZiAocGFubmVyLnJvbGxvZmZGYWN0b3IgPT09IDAp
CisgICAgICAgIHRlc3RQYXNzZWQoIldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZG
YWN0b3IgaXMgc2V0IHRvIDAuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJXaXRo
IGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMC4i
KTsKKworICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMC41CisgICAgaWYgKHBhbm5lci5yb2xs
b2ZmRmFjdG9yID09PSAwLjUpCisgICAgICAgIHRlc3RQYXNzZWQoIldpdGggbGluZWFyIGRpc3Rh
bmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDAuNS4iKTsKKyAgICBlbHNlCisgICAg
ICAgIHRlc3RGYWlsZWQoIldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Ig
c2hvdWxkIGJlIHNldCB0byAwLjUuIik7CisKKyAgICBwYW5uZXIucm9sbG9mZkZhY3RvciA9IDEK
KyAgICBpZiAocGFubmVyLnJvbGxvZmZGYWN0b3IgPT09IDEpCisgICAgICAgIHRlc3RQYXNzZWQo
IldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDEuIik7
CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVs
LCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMS4iKTsKKworICAgIHBhbm5lci5yb2xs
b2ZmRmFjdG9yID0gMgorICAgIGlmIChwYW5uZXIucm9sbG9mZkZhY3RvciA9PT0gMSkKKyAgICAg
ICAgdGVzdFBhc3NlZCgiV2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBp
cyBjbGFtcGVkIHRvIFswLCAxXSAod2FzIHNldCB0byAyKS4iKTsKKyAgICBlbHNlCisgICAgICAg
IHRlc3RGYWlsZWQoIldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Igc2hv
dWxkIGJlIGNsYW1wZWQgdG8gWzAsIDFdICh3YXMgc2V0IHRvIDIpLiIpOworCisgICAgLy8gVGVz
dGluZyByb2xsb2ZmRmFjdG9yIHdoZW4gZGlzdGFuY2VNb2RlbCBpcyBpbnZlcnNlCisgICAgcGFu
bmVyLmRpc3RhbmNlTW9kZWwgPSBkaXN0YW5jZU1vZGVsc1sxXS52YWx1ZQorCisgICAgcGFubmVy
LnJvbGxvZmZGYWN0b3IgPSAwCisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAwKQor
ICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGludmVyc2UgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZh
Y3RvciBpcyBzZXQgdG8gMC4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIldpdGgg
aW52ZXJzZSBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMC4i
KTsKKworICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMTAwMDAKKyAgICBpZiAocGFubmVyLnJv
bGxvZmZGYWN0b3IgPT09IDEwMDAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGludmVyc2Ug
ZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMTAwMDAuIik7CisgICAgZWxz
ZQorICAgICAgICB0ZXN0RmFpbGVkKCJXaXRoIGludmVyc2UgZGlzdGFuY2VNb2RlbCwgcm9sbG9m
ZkZhY3RvciBzaG91bGQgYmUgc2V0IHRvIDEwMDAwLiIpOworCisgICAgLy8gVGVzdGluZyByb2xs
T2ZmRmFjdG9yIHdoZW4gZGlzdGFuY2VNb2RlbCBpcyBleHBvbmVudGlhbAorICAgIHBhbm5lci5k
aXN0YW5jZU1vZGVsID0gZGlzdGFuY2VNb2RlbHNbMl0udmFsdWUKKworICAgIHBhbm5lci5yb2xs
b2ZmRmFjdG9yID0gMAorICAgIGlmIChwYW5uZXIucm9sbG9mZkZhY3RvciA9PT0gMCkKKyAgICAg
ICAgdGVzdFBhc3NlZCgiV2l0aCBleHBvbmVudGlhbCBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFj
dG9yIGlzIHNldCB0byAwLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiV2l0aCBl
eHBvbmVudGlhbCBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8g
MC4iKTsKKworICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMTAwMDAKKyAgICBpZiAocGFubmVy
LnJvbGxvZmZGYWN0b3IgPT09IDEwMDAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGV4cG9u
ZW50aWFsIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDEwMDAwLiIpOwor
ICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiV2l0aCBleHBvbmVudGlhbCBkaXN0YW5jZU1v
ZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMTAwMDAuIik7CisKICAgICAvLyBD
aGVjayB0aGF0IHdlIGRvbid0IHRocm93IGFuIGV4Y2VwdGlvbiBmb3IgaWxsZWdhbCAuZGlzdGFu
Y2VNb2RlbCB2YWx1ZXMgYXMgcGVyIFdlYklETC4KICAgICBzaG91bGROb3RUaHJvd0V4Y2VwdGlv
bihmdW5jdGlvbigpIHsgcGFubmVyLmRpc3RhbmNlTW9kZWwgPSAieHl6MTIzNDlqZmtzZCI7IH0s
ICJTZXR0aW5nIC5kaXN0YW5jZU1vZGVsIHRvIGlsbGVnYWwgc3RyaW5nIHZhbHVlIik7CiAgICAg
c2hvdWxkTm90VGhyb3dFeGNlcHRpb24oZnVuY3Rpb24oKSB7IHBhbm5lci5kaXN0YW5jZU1vZGVs
ID0gbmV3IEZsb2F0MzJBcnJheSgxKTsgfSwgIlNldHRpbmcgLmRpc3RhbmNlTW9kZWwgdG8gaWxs
ZWdhbCB0eXBlIik7CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wcmVmaXhlZC1w
YW5uZXJub2RlLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3ByZWZp
eGVkLXBhbm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRjZDhiYWU1Yjc0
ZDJmYWRhNzAwYTIyZmI2MDRmMzBjYWJjOTI3ZWIKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy93ZWJhdWRpby9wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLWV4cGVjdGVkLnR4dApAQCAt
MCwwICsxLDMxIEBACitCYXNpYyB0ZXN0cyBmb3IgV2ViS2l0IFByZWZpeGVkIFBhbm5lck5vZGUu
CisKK09uIHN1Y2Nlc3MsIHlvdSB3aWxsIHNlZSBhIHNlcmllcyBvZiAiUEFTUyIgbWVzc2FnZXMs
IGZvbGxvd2VkIGJ5ICJURVNUIENPTVBMRVRFIi4KKworUEFTUyBQYW5uZXJOb2RlIGhhcyBvbmUg
aW5wdXQuCitQQVNTIFBhbm5lck5vZGUgaGFzIG9uZSBvdXRwdXQuCitQQVNTIHJlZkRpc3RhbmNl
IGRlZmF1bHQgdmFsdWUgaXMgMS4KK1BBU1MgcmVmRGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRvIDI3
MC41Mi4KK1BBU1MgbWF4RGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBpcyAxMDAwMC4KK1BBU1MgbWF4
RGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRvIDEwMC41NS4KK1BBU1Mgcm9sbG9mZkZhY3RvciBkZWZh
dWx0IHZhbHVlIGlzIDEuCitQQVNTIHJvbGxvZmZGYWN0b3IgdmFsdWUgaXMgc2V0IHRvIDAuODMu
CitQQVNTIGNvbmVJbm5lckFuZ2xlIGRlZmF1bHQgdmFsdWUgaXMgMzYwLgorUEFTUyBjb25lSW5u
ZXJBbmdsZSB2YWx1ZSBpcyBzZXQgdG8gMjQwLjQ1LgorUEFTUyBjb25lT3V0ZXJBbmdsZSBkZWZh
dWx0IHZhbHVlIGlzIDM2MC4KK1BBU1MgY29uZU91dGVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDE2
Ni42Ni4KK1BBU1MgY29uZU91dGVyR2FpbiBkZWZhdWx0IHZhbHVlIGlzIDAuCitQQVNTIGNvbmVP
dXRlckdhaW4gdmFsdWUgaXMgc2V0IHRvIDAuMzUuCitQQVNTIFBhbm5lck5vZGUgZGVmYXVsdHMg
dG8gJ0hSVEYnIHBhbm5pbmdNb2RlbC4KK1BBU1MgUGFubmVyTm9kZSBkZWZhdWx0cyB0byAnaW52
ZXJzZScgZGlzdGFuY2VNb2RlbC4KK1BBU1MgcGFubmluZ01vZGVsOiAnZXF1YWxwb3dlcicgaXMg
c2V0dGFibGUuCitQQVNTIHBhbm5pbmdNb2RlbDogJ0hSVEYnIGlzIHNldHRhYmxlLgorUEFTUyBk
aXN0YW5jZU1vZGVsOiAnbGluZWFyJyBpcyBzZXR0YWJsZS4KK1BBU1MgZGlzdGFuY2VNb2RlbDog
J2ludmVyc2UnIGlzIHNldHRhYmxlLgorUEFTUyBkaXN0YW5jZU1vZGVsOiAnZXhwb25lbnRpYWwn
IGlzIHNldHRhYmxlLgorUEFTUyBTZXR0aW5nIC5kaXN0YW5jZU1vZGVsIHRvIGlsbGVnYWwgc3Ry
aW5nIHZhbHVlIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgorUEFTUyBTZXR0aW5nIC5kaXN0
YW5jZU1vZGVsIHRvIGlsbGVnYWwgdHlwZSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlvbi4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLmh0bWwg
Yi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLmh0bWwKbmV3
IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMC4uYTRjM2M5MmI1NjgwOTI0MTM2ZGVlMGMxYzMzM2M2NTdmNDM2ZWZkNwotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFz
aWMuaHRtbApAQCAtMCwwICsxLDE2MiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFk
PgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3Jp
cHQgc3JjPSJyZXNvdXJjZXMvYXVkaW8tdGVzdGluZy5qcyI+PC9zY3JpcHQ+Cis8L2hlYWQ+CisK
Kzxib2R5PgorPGRpdiBpZD0iZGVzY3JpcHRpb24iPjwvZGl2PgorPGRpdiBpZD0iY29uc29sZSI+
PC9kaXY+CisKKzxzY3JpcHQ+CitkZXNjcmlwdGlvbigiQmFzaWMgdGVzdHMgZm9yIFdlYktpdCBQ
cmVmaXhlZCBQYW5uZXJOb2RlLiIpOworCit2YXIgY29udGV4dCA9IDA7CisKK2Z1bmN0aW9uIHJ1
blRlc3QoKSB7CisgICAgd2luZG93LmpzVGVzdElzQXN5bmMgPSB0cnVlOworCisgICAgY29udGV4
dCA9IG5ldyB3ZWJraXRBdWRpb0NvbnRleHQoKTsKKyAgICB2YXIgcGFubmVyID0gY29udGV4dC5j
cmVhdGVQYW5uZXIoKTsKKyAgIAorICAgIGlmIChwYW5uZXIubnVtYmVyT2ZJbnB1dHMgPT09IDEp
IAorICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uZXJOb2RlIGhhcyBvbmUgaW5wdXQuIik7CisgICAg
ZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXJOb2RlIHNob3VsZCBoYXZlIG9uZSBpbnB1
dC4iKTsKKyAgICAKKyAgICBpZiAocGFubmVyLm51bWJlck9mT3V0cHV0cyA9PT0gMSkgCisgICAg
ICAgIHRlc3RQYXNzZWQoIlBhbm5lck5vZGUgaGFzIG9uZSBvdXRwdXQuIik7CisgICAgZWxzZQor
ICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXJOb2RlIHNob3VsZCBoYXZlIG9uZSBvdXRwdXQuIik7
CisKKyAgICBpZiAocGFubmVyLnJlZkRpc3RhbmNlID09PSAxKQorICAgICAgICB0ZXN0UGFzc2Vk
KCJyZWZEaXN0YW5jZSBkZWZhdWx0IHZhbHVlIGlzIDEuIik7CisgICAgZWxzZQorICAgICAgICB0
ZXN0RmFpbGVkKCJyZWZEaXN0YW5jZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAxLiIpOworICAg
IAorICAgIHBhbm5lci5yZWZEaXN0YW5jZSA9IDI3MC41MgorICAgIGlmIChwYW5uZXIucmVmRGlz
dGFuY2UgPT09IDI3MC41MikKKyAgICAgICAgdGVzdFBhc3NlZCgicmVmRGlzdGFuY2UgdmFsdWUg
aXMgc2V0IHRvIDI3MC41Mi4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoInJlZkRp
c3RhbmNlIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMjcwLjUyLiIpOworICAgIAorICAgIGlmIChw
YW5uZXIubWF4RGlzdGFuY2UgPT09IDEwMDAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJtYXhEaXN0
YW5jZSBkZWZhdWx0IHZhbHVlIGlzIDEwMDAwLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZh
aWxlZCgibWF4RGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMTAwMDAuIik7CisgICAg
CisgICAgcGFubmVyLm1heERpc3RhbmNlID0gMTAwLjU1CisgICAgaWYgKHBhbm5lci5tYXhEaXN0
YW5jZSA9PT0gMTAwLjU1KQorICAgICAgICB0ZXN0UGFzc2VkKCJtYXhEaXN0YW5jZSB2YWx1ZSBp
cyBzZXQgdG8gMTAwLjU1LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgibWF4RGlz
dGFuY2UgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAxMDAuNTUuIik7CisgICAgCisgICAgaWYgKHBh
bm5lci5yb2xsb2ZmRmFjdG9yID09PSAxKQorICAgICAgICB0ZXN0UGFzc2VkKCJyb2xsb2ZmRmFj
dG9yIGRlZmF1bHQgdmFsdWUgaXMgMS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQo
InJvbGxvZmZGYWN0b3IgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMS4iKTsKKyAgICAKKyAgICBw
YW5uZXIucm9sbG9mZkZhY3RvciA9IDAuODMKKyAgICBpZiAocGFubmVyLnJvbGxvZmZGYWN0b3Ig
PT09IDAuODMpCisgICAgICAgIHRlc3RQYXNzZWQoInJvbGxvZmZGYWN0b3IgdmFsdWUgaXMgc2V0
IHRvIDAuODMuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJyb2xsb2ZmRmFjdG9y
IHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMC44My4iKTsKKyAgICAKKyAgICBpZiAocGFubmVyLmNv
bmVJbm5lckFuZ2xlID09PSAzNjApCisgICAgICAgIHRlc3RQYXNzZWQoImNvbmVJbm5lckFuZ2xl
IGRlZmF1bHQgdmFsdWUgaXMgMzYwLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgi
Y29uZUlubmVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBzaG91bGQgYmUgMzYwLiIpOworICAgIAorICAg
IHBhbm5lci5jb25lSW5uZXJBbmdsZSA9IDI0MC40NQorICAgIGlmIChwYW5uZXIuY29uZUlubmVy
QW5nbGUgPT09IDI0MC40NSkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29uZUlubmVyQW5nbGUgdmFs
dWUgaXMgc2V0IHRvIDI0MC40NS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoImNv
bmVJbm5lckFuZ2xlIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMjQwLjQ1LiIpOworICAgIAorICAg
IGlmIChwYW5uZXIuY29uZU91dGVyQW5nbGUgPT09IDM2MCkKKyAgICAgICAgdGVzdFBhc3NlZCgi
Y29uZU91dGVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBpcyAzNjAuIik7CisgICAgZWxzZQorICAgICAg
ICB0ZXN0RmFpbGVkKCJjb25lT3V0ZXJBbmdsZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAzNjAu
Iik7CisgICAgCisgICAgcGFubmVyLmNvbmVPdXRlckFuZ2xlID0gMTY2LjY2CisgICAgaWYgKHBh
bm5lci5jb25lT3V0ZXJBbmdsZSA9PT0gMTY2LjY2KQorICAgICAgICB0ZXN0UGFzc2VkKCJjb25l
T3V0ZXJBbmdsZSB2YWx1ZSBpcyBzZXQgdG8gMTY2LjY2LiIpOworICAgIGVsc2UKKyAgICAgICAg
dGVzdEZhaWxlZCgiY29uZU91dGVyQW5nbGUgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAxNjYuNjYu
Iik7CisgICAgCisgICAgaWYgKHBhbm5lci5jb25lT3V0ZXJHYWluID09PSAwKQorICAgICAgICB0
ZXN0UGFzc2VkKCJjb25lT3V0ZXJHYWluIGRlZmF1bHQgdmFsdWUgaXMgMC4iKTsKKyAgICBlbHNl
CisgICAgICAgIHRlc3RGYWlsZWQoImNvbmVPdXRlckdhaW4gZGVmYXVsdCB2YWx1ZSBzaG91bGQg
YmUgMC4iKTsKKworICAgIHBhbm5lci5jb25lT3V0ZXJHYWluID0gMC4zNQorICAgIGlmIChwYW5u
ZXIuY29uZU91dGVyR2FpbiA9PT0gMC4zNSkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29uZU91dGVy
R2FpbiB2YWx1ZSBpcyBzZXQgdG8gMC4zNS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWls
ZWQoImNvbmVPdXRlckdhaW4gdmFsdWUgc2hvdWxkIGJlIHNldCB0byAwLjM1LiIpOworCisgICAg
aWYgKHBhbm5lci5wYW5uaW5nTW9kZWwgPT09ICJIUlRGIikKKyAgICAgICAgdGVzdFBhc3NlZCgi
UGFubmVyTm9kZSBkZWZhdWx0cyB0byAnSFJURicgcGFubmluZ01vZGVsLiIpOworICAgIGVsc2UK
KyAgICAgICAgdGVzdEZhaWxlZCgiUGFubmVyTm9kZSBzaG91bGQgZGVmYXVsdCB0byAnSFJURicg
cGFubmluZ01vZGVsLiIpOworICAgIAorICAgIGlmIChwYW5uZXIuZGlzdGFuY2VNb2RlbCA9PT0g
ImludmVyc2UiKQorICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uZXJOb2RlIGRlZmF1bHRzIHRvICdp
bnZlcnNlJyBkaXN0YW5jZU1vZGVsLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgi
UGFubmVyTm9kZSBzaG91bGQgZGVmYXVsdCB0byAnaW52ZXJzZScgZGlzdGFuY2VNb2RlbC4iKTsK
KworICAgIC8vIENoZWNrIHRoYXQgdGhlIC5wYW5uaW5nTW9kZWwgYXR0cmlidXRlIGNhbiBiZSBz
ZXQgdG8gYWxsIGxlZ2FsIHZhbHVlcy4KKyAgICB2YXIgcGFubmluZ01vZGVscyA9IFt7dmFsdWU6
ICJlcXVhbHBvd2VyIn0sCisgICAgICAgICAgICAgICAgICAgICAgICAge3ZhbHVlOiAiSFJURiJ9
LAorICAgICAgICAgICAgICAgICAgICAgICAgXTsKKworICAgIGZvciAodmFyIGkgPSAwOyBpIDwg
cGFubmluZ01vZGVscy5sZW5ndGg7ICsraSkgeworICAgICAgICB0cnkgeworICAgICAgICAgICAg
cGFubmVyLnBhbm5pbmdNb2RlbCA9IHBhbm5pbmdNb2RlbHNbaV0udmFsdWU7CisgICAgICAgICAg
ICBpZiAocGFubmVyLnBhbm5pbmdNb2RlbCA9PT0gcGFubmluZ01vZGVsc1tpXS52YWx1ZSkgewor
ICAgICAgICAgICAgICAgIHZhciBtZXNzYWdlID0gInBhbm5pbmdNb2RlbDogJyIgKyBwYW5uaW5n
TW9kZWxzW2ldLnZhbHVlICsgIicgaXMgc2V0dGFibGUuIjsKKyAgICAgICAgICAgICAgICB0ZXN0
UGFzc2VkKG1lc3NhZ2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICB2
YXIgbWVzc2FnZSA9ICJwYW5uaW5nTW9kZWw6ICciICsgcGFubmluZ01vZGVsc1tpXS52YWx1ZSAr
ICInIHdhcyBub3QgY29ycmVjdGx5IHNldC4iOworICAgICAgICAgICAgICAgIHRlc3RGYWlsZWQo
bWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0gY2F0Y2goZSkgeworICAgICAgICAg
ICAgdmFyIG1lc3NhZ2UgPSAiU2V0dGluZyBwYW5uaW5nTW9kZWwgdG8gJyIgKyBwYW5uaW5nTW9k
ZWxzW2ldLnZhbHVlICsgIicgc2hvdWxkIG5vdCB0aHJvdyBleGNlcHRpb24uIjsKKyAgICAgICAg
ICAgIHRlc3RGYWlsZWQobWVzc2FnZSk7CisgICAgICAgIH0KKyAgICB9CisKKyAgICAvLyBDaGVj
ayB0aGF0IHRoZSAuZGlzdGFuY2VNb2RlbCBhdHRyaWJ1dGUgY2FuIGJlIHNldCB0byBhbGwgbGVn
YWwgdmFsdWVzLgorICAgIHZhciBkaXN0YW5jZU1vZGVscyA9IFt7dmFsdWU6ICJsaW5lYXIifSwK
KyAgICAgICAgICAgICAgICAgICAgICAgICAge3ZhbHVlOiAiaW52ZXJzZSJ9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICB7dmFsdWU6ICJleHBvbmVudGlhbCJ9XTsKKworICAgIGZvciAodmFy
IGkgPSAwOyBpIDwgZGlzdGFuY2VNb2RlbHMubGVuZ3RoOyArK2kpIHsKKyAgICAgICAgdHJ5IHsK
KyAgICAgICAgICAgIHBhbm5lci5kaXN0YW5jZU1vZGVsID0gZGlzdGFuY2VNb2RlbHNbaV0udmFs
dWU7CisgICAgICAgICAgICBpZiAocGFubmVyLmRpc3RhbmNlTW9kZWwgPT09IGRpc3RhbmNlTW9k
ZWxzW2ldLnZhbHVlKSB7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSAiZGlzdGFuY2VN
b2RlbDogJyIgKyBkaXN0YW5jZU1vZGVsc1tpXS52YWx1ZSArICInIGlzIHNldHRhYmxlLiI7Cisg
ICAgICAgICAgICAgICAgdGVzdFBhc3NlZChtZXNzYWdlKTsKKyAgICAgICAgICAgIH0gZWxzZSB7
CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSAiZGlzdGFuY2VNb2RlbDogJyIgKyBkaXN0
YW5jZU1vZGVsc1tpXS52YWx1ZSArICInIHdhcyBub3QgY29ycmVjdGx5IHNldC4iOworICAgICAg
ICAgICAgICAgIHRlc3RGYWlsZWQobWVzc2FnZSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0g
Y2F0Y2goZSkgeworICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSAiU2V0dGluZyBkaXN0YW5jZU1v
ZGVsIHRvICciICsgZGlzdGFuY2VNb2RlbHNbaV0udmFsdWUgKyAiJyBzaG91bGQgbm90IHRocm93
IGV4Y2VwdGlvbi4iOworICAgICAgICAgICAgdGVzdEZhaWxlZChtZXNzYWdlKTsKKyAgICAgICAg
fQorICAgIH0KKworICAgIC8vIENoZWNrIHRoYXQgd2UgZG9uJ3QgdGhyb3cgYW4gZXhjZXB0aW9u
IGZvciBpbGxlZ2FsIC5kaXN0YW5jZU1vZGVsIHZhbHVlcyBhcyBwZXIgV2ViSURMLgorICAgIHNo
b3VsZE5vdFRocm93RXhjZXB0aW9uKGZ1bmN0aW9uKCkgeyBwYW5uZXIuZGlzdGFuY2VNb2RlbCA9
ICJ4eXoxMjM0OWpma3NkIjsgfSwgIlNldHRpbmcgLmRpc3RhbmNlTW9kZWwgdG8gaWxsZWdhbCBz
dHJpbmcgdmFsdWUiKTsKKyAgICBzaG91bGROb3RUaHJvd0V4Y2VwdGlvbihmdW5jdGlvbigpIHsg
cGFubmVyLmRpc3RhbmNlTW9kZWwgPSBuZXcgRmxvYXQzMkFycmF5KDEpOyB9LCAiU2V0dGluZyAu
ZGlzdGFuY2VNb2RlbCB0byBpbGxlZ2FsIHR5cGUiKTsKKworICAgIGZpbmlzaEpTVGVzdCgpOwor
fQorCitydW5UZXN0KCk7CisKKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402596</attachid>
            <date>2020-06-23 15:17:08 -0700</date>
            <delta_ts>2020-06-24 17:01:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213523-20200623181706.patch</filename>
            <type>text/plain</type>
            <size>24889</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE3MmE1YTlkMzY2OTky
MWU1ZTQ1YjExZWU3MDJkZTRmNDI4YjE3Ni4uNzk4MzEwMGI4OTY0NjI2NTNiY2Q0NjkxYTcyMDZh
ODc5N2VjNTZlMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA2LTIzICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCB1bnJlc3Ry
aWN0ZWQga2V5d29yZCBmcm9tIGF0dHJpYnV0ZXMgaW4gUGFubmVyTm9kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNTIzCisKKyAgICAgICAgVXBk
YXRlZCByZWZEaXN0YW5jZSwgbWF4RGlzdGFuY2UsIHJvbGxvZmZGYWN0b3IsIGNvbmVPdXRlckdh
aW4sIGNvbmVJbm5lckFuZ2xlLCBjb25lT3V0ZXJBbmdsZSBhdHRyaWJ1dGVzIGFjY29yZGluZyB0
byBzcGVjOgorICAgICAgICBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI1Bhbm5lck5v
ZGUtYXR0cmlidXRlcy4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBUZXN0OiB3ZWJhdWRpby9wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLmh0bWwKKworICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYW5uZXJOb2RlOjpzZXRSZWZEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJO
b2RlOjpzZXRNYXhEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpzZXRS
b2xsb2ZmRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OnNldENvbmVPdXRl
ckdhaW4pOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5pZGw6CisKIDIwMjAtMDYtMTAgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBB
ZGQgYSBwcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiBYUldlYkdMTGF5ZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCmluZGV4IGYzODAwZjFj
ZWM0YzcwMmNiYjgwYjk0YmIyZGExMTgzM2U4ZDdhYzMuLjVjYThmMTlmYTE2MzAxZjFhNzZkODA2
NjcwNzkzZDkxOTlhMTc2YjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vUGFubmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9QYW5uZXJOb2RlLmNwcApAQCAtMjMwLDYgKzIzMCw0NSBAQCB2b2lkIFBhbm5lck5vZGU6OnNl
dERpc3RhbmNlTW9kZWwoRGlzdGFuY2VNb2RlbFR5cGUgbW9kZWwpCiAgICAgbV9kaXN0YW5jZUVm
ZmVjdC5zZXRNb2RlbChtb2RlbCwgdHJ1ZSk7CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5l
ck5vZGU6OnNldFJlZkRpc3RhbmNlKGRvdWJsZSByZWZEaXN0YW5jZSkKK3sKKyAgICBpZiAocmVm
RGlzdGFuY2UgPCAwKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgInJl
ZkRpc3RhbmNlIGNhbm5vdCBiZSBzZXQgdG8gYSBuZWdhdGl2ZSB2YWx1ZSJfcyB9OworICAgIAor
ICAgIG1fZGlzdGFuY2VFZmZlY3Quc2V0UmVmRGlzdGFuY2UocmVmRGlzdGFuY2UpOworICAgIHJl
dHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldE1heERpc3Rh
bmNlKGRvdWJsZSBtYXhEaXN0YW5jZSkKK3sKKyAgICBpZiAobWF4RGlzdGFuY2UgPD0gMCkKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsICJtYXhEaXN0YW5jZSBjYW5ub3Qg
YmUgc2V0IHRvIGEgbm9uLXBvc2l0aXZlIHZhbHVlIl9zIH07CisgICAgCisgICAgbV9kaXN0YW5j
ZUVmZmVjdC5zZXRNYXhEaXN0YW5jZShtYXhEaXN0YW5jZSk7CisgICAgcmV0dXJuIHsgfTsKK30K
KworRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0Um9sbG9mZkZhY3Rvcihkb3VibGUg
cm9sbG9mZkZhY3RvcikKK3sKKyAgICBpZiAocm9sbG9mZkZhY3RvciA8IDApCisgICAgICAgIHJl
dHVybiBFeGNlcHRpb24geyBSYW5nZUVycm9yLCAicm9sbG9mZkZhY3RvciBjYW5ub3QgYmUgc2V0
IHRvIGEgbmVnYXRpdmUgdmFsdWUiX3MgfTsKKyAgICAKKyAgICBpZiAoZGlzdGFuY2VNb2RlbCgp
ID09IERpc3RhbmNlTW9kZWxUeXBlOjpMaW5lYXIpCisgICAgICAgIHJvbGxvZmZGYWN0b3IgPSBz
dGQ6Om1pbihyb2xsb2ZmRmFjdG9yLCAxLjApOworICAgIAorICAgIG1fZGlzdGFuY2VFZmZlY3Qu
c2V0Um9sbG9mZkZhY3Rvcihyb2xsb2ZmRmFjdG9yKTsKKyAgICByZXR1cm4geyB9OworfQorCitF
eGNlcHRpb25Pcjx2b2lkPiBQYW5uZXJOb2RlOjpzZXRDb25lT3V0ZXJHYWluKGRvdWJsZSBnYWlu
KQoreworICAgIGlmIChnYWluIDwgMCB8fCBnYWluID4gMSkKKyAgICAgICAgcmV0dXJuIEV4Y2Vw
dGlvbiB7IEludmFsaWRTdGF0ZUVycm9yLCAiY29uZU91dGVyR2FpbiBtdXN0IGJlIGluIFswLCAx
XSJfcyB9OworICAgIAorICAgIG1fY29uZUVmZmVjdC5zZXRPdXRlckdhaW4oZ2Fpbik7CisgICAg
cmV0dXJuIHsgfTsKK30KKwogdm9pZCBQYW5uZXJOb2RlOjpnZXRBemltdXRoRWxldmF0aW9uKGRv
dWJsZSogb3V0QXppbXV0aCwgZG91YmxlKiBvdXRFbGV2YXRpb24pCiB7CiAgICAgLy8gRklYTUU6
IHdlIHNob3VsZCBjYWNoZSBhemltdXRoIGFuZCBlbGV2YXRpb24gKGlmIHBvc3NpYmxlKSwgc28g
d2Ugb25seSByZS1jYWxjdWxhdGUgaWYgYSBjaGFuZ2UgaGFzIGJlZW4gbWFkZS4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oIGIvU291cmNl
L1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmgKaW5kZXggZjJmZjJkMjA5NjI0
NDQ0MTU4MWYxNWM5OWRmNGQ1NDlhZGY5M2QxMC4uYTk4NGM2MjI2ZjY1YmM2NTllZTM1NmQ4NWNh
ZGFmMjZiN2EzOGUyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9QYW5uZXJOb2RlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5u
ZXJOb2RlLmgKQEAgLTEwNCwxNCArMTA0LDE0IEBAIHB1YmxpYzoKICAgICBEaXN0YW5jZU1vZGVs
VHlwZSBkaXN0YW5jZU1vZGVsKCkgY29uc3Q7CiAgICAgdm9pZCBzZXREaXN0YW5jZU1vZGVsKERp
c3RhbmNlTW9kZWxUeXBlKTsKIAotICAgIGRvdWJsZSByZWZEaXN0YW5jZSgpIHsgcmV0dXJuIG1f
ZGlzdGFuY2VFZmZlY3QucmVmRGlzdGFuY2UoKTsgfQotICAgIHZvaWQgc2V0UmVmRGlzdGFuY2Uo
ZG91YmxlIHJlZkRpc3RhbmNlKSB7IG1fZGlzdGFuY2VFZmZlY3Quc2V0UmVmRGlzdGFuY2UocmVm
RGlzdGFuY2UpOyB9CisgICAgZG91YmxlIHJlZkRpc3RhbmNlKCkgY29uc3QgeyByZXR1cm4gbV9k
aXN0YW5jZUVmZmVjdC5yZWZEaXN0YW5jZSgpOyB9CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0
UmVmRGlzdGFuY2UoZG91YmxlKTsKIAotICAgIGRvdWJsZSBtYXhEaXN0YW5jZSgpIHsgcmV0dXJu
IG1fZGlzdGFuY2VFZmZlY3QubWF4RGlzdGFuY2UoKTsgfQotICAgIHZvaWQgc2V0TWF4RGlzdGFu
Y2UoZG91YmxlIG1heERpc3RhbmNlKSB7IG1fZGlzdGFuY2VFZmZlY3Quc2V0TWF4RGlzdGFuY2Uo
bWF4RGlzdGFuY2UpOyB9CisgICAgZG91YmxlIG1heERpc3RhbmNlKCkgY29uc3QgeyByZXR1cm4g
bV9kaXN0YW5jZUVmZmVjdC5tYXhEaXN0YW5jZSgpOyB9CisgICAgRXhjZXB0aW9uT3I8dm9pZD4g
c2V0TWF4RGlzdGFuY2UoZG91YmxlKTsKIAotICAgIGRvdWJsZSByb2xsb2ZmRmFjdG9yKCkgeyBy
ZXR1cm4gbV9kaXN0YW5jZUVmZmVjdC5yb2xsb2ZmRmFjdG9yKCk7IH0KLSAgICB2b2lkIHNldFJv
bGxvZmZGYWN0b3IoZG91YmxlIHJvbGxvZmZGYWN0b3IpIHsgbV9kaXN0YW5jZUVmZmVjdC5zZXRS
b2xsb2ZmRmFjdG9yKHJvbGxvZmZGYWN0b3IpOyB9CisgICAgZG91YmxlIHJvbGxvZmZGYWN0b3Io
KSBjb25zdCB7IHJldHVybiBtX2Rpc3RhbmNlRWZmZWN0LnJvbGxvZmZGYWN0b3IoKTsgfQorICAg
IEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFJvbGxvZmZGYWN0b3IoZG91YmxlKTsKIAogICAgIC8vIFNv
dW5kIGNvbmVzIC0gYW5nbGVzIGluIGRlZ3JlZXMKICAgICBkb3VibGUgY29uZUlubmVyQW5nbGUo
KSBjb25zdCB7IHJldHVybiBtX2NvbmVFZmZlY3QuaW5uZXJBbmdsZSgpOyB9CkBAIC0xMjEsNyAr
MTIxLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0Q29uZU91dGVyQW5nbGUoZG91YmxlIGFuZ2xl
KSB7IG1fY29uZUVmZmVjdC5zZXRPdXRlckFuZ2xlKGFuZ2xlKTsgfQogCiAgICAgZG91YmxlIGNv
bmVPdXRlckdhaW4oKSBjb25zdCB7IHJldHVybiBtX2NvbmVFZmZlY3Qub3V0ZXJHYWluKCk7IH0K
LSAgICB2b2lkIHNldENvbmVPdXRlckdhaW4oZG91YmxlIGFuZ2xlKSB7IG1fY29uZUVmZmVjdC5z
ZXRPdXRlckdhaW4oYW5nbGUpOyB9CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Q29uZU91dGVy
R2Fpbihkb3VibGUpOwogCiAgICAgdm9pZCBnZXRBemltdXRoRWxldmF0aW9uKGRvdWJsZSogb3V0
QXppbXV0aCwgZG91YmxlKiBvdXRFbGV2YXRpb24pOwogICAgIGZsb2F0IGRvcHBsZXJSYXRlKCkg
ZmluYWw7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5l
ck5vZGUuaWRsIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmlk
bAppbmRleCAyY2QxYTNmMWQ2Njg0MjFkZmQ4ZDFlOTdjYzNmYzFhNTI1ZTg1YTg4Li42ZWEyN2Yz
ODk0MjQyYjVjZDAyMDFmYmFjMDBjMDU5MTE0N2FmOGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaWRsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5pZGwKQEAgLTM3LDE0ICszNywxNCBAQAogICAg
IC8vIERlZmF1bHQgZGlzdGFuY2UgbW9kZWwgaXMgaW52ZXJzZQogICAgIGF0dHJpYnV0ZSBEaXN0
YW5jZU1vZGVsVHlwZSBkaXN0YW5jZU1vZGVsOwogCi0gICAgYXR0cmlidXRlIHVucmVzdHJpY3Rl
ZCBkb3VibGUgcmVmRGlzdGFuY2U7Ci0gICAgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUg
bWF4RGlzdGFuY2U7Ci0gICAgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgcm9sbG9mZkZh
Y3RvcjsKKyAgICBhdHRyaWJ1dGUgZG91YmxlIHJlZkRpc3RhbmNlOworICAgIGF0dHJpYnV0ZSBk
b3VibGUgbWF4RGlzdGFuY2U7CisgICAgYXR0cmlidXRlIGRvdWJsZSByb2xsb2ZmRmFjdG9yOwog
CiAgICAgLy8gRGlyZWN0aW9uYWwgc291bmQgY29uZQotICAgIGF0dHJpYnV0ZSB1bnJlc3RyaWN0
ZWQgZG91YmxlIGNvbmVJbm5lckFuZ2xlOwotICAgIGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91
YmxlIGNvbmVPdXRlckFuZ2xlOwotICAgIGF0dHJpYnV0ZSB1bnJlc3RyaWN0ZWQgZG91YmxlIGNv
bmVPdXRlckdhaW47CisgICAgYXR0cmlidXRlIGRvdWJsZSBjb25lSW5uZXJBbmdsZTsKKyAgICBh
dHRyaWJ1dGUgZG91YmxlIGNvbmVPdXRlckFuZ2xlOworICAgIGF0dHJpYnV0ZSBkb3VibGUgY29u
ZU91dGVyR2FpbjsKICAgICAKICAgICAvLyBQb3NpdGlvbiBvZiBhdWRpbyBzb3VyY2UgaW4gM0Qg
Q2FydGVzaWFuIHN5c3RlbQogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBBdWRpb1BhcmFtIHBvc2l0
aW9uWDsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwppbmRleCAxMzhmOWQ1Y2ZiNWE0OTRjYzAxODViZjk4MTdiNGVmYmIxZmYxNTczLi43
Mzc3MzhhYzM5NDI3YmYyZTcwNDQxNmIyZmIyOTAyZTAwMWYxYmVjIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEs
MTcgQEAKKzIwMjAtMDYtMjMgIENsYXJrIFdhbmcgIDxjbGFya193YW5nQGFwcGxlLmNvbT4KKwor
ICAgICAgICBSZW1vdmVkIHVucmVzdHJpY3RlZCBrZXl3b3JkIGZyb20gYXR0cmlidXRlcyBpbiBQ
YW5uZXJOb2RlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0yMTM1MjMKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBT
ZXBhcmF0ZWQgcHJlZml4ZWQgcGFubmVybm9kZSBhbmQgdW5wcmVmaXhlZCBwYW5uZXJub2RlIHRl
c3RzLiBBZGRlZCB0ZXN0IGNhc2VzIGZvciByZWZEaXN0YW5jZSwgbWF4RGlzdGFuY2UsIHJvbGxv
ZmZGYWN0b3IsIGNvbmVPdXRlckdhaW4sIGNvbmVJbm5lckFuZ2xlLCBjb25lT3V0ZXJBbmdsZS4K
KworICAgICAgICAqIHdlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0OgorICAg
ICAgICAqIHdlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMuaHRtbDoKKyAgICAgICAgKiB3ZWJhdWRp
by9wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLWV4cGVjdGVkLnR4dDogQ29waWVkIGZyb20gTGF5
b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQuCisgICAgICAg
ICogd2ViYXVkaW8vcHJlZml4ZWQtcGFubmVybm9kZS1iYXNpYy5odG1sOiBDb3BpZWQgZnJvbSBM
YXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLmh0bWwuCisKIDIwMjAtMDYtMjIg
IEphY29iIFVwaG9mZiAgPGphY29iX3VwaG9mZkBhcHBsZS5jb20+CiAKICAgICAgICAgWyBtYWNP
UyBpT1MgXSBSRUdSRVNTSU9OOiBmYXN0L21lZGlhc3RyZWFtL21lZGlhc3RyZWEgbXRyYWNrLXZp
ZGVvLWZyYW1lUmF0ZS1jbG9uIGUtaW5jcmVhc2luZy5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLWV4cGVjdGVkLnR4
dAppbmRleCBjZjgyYWNiYjc5OTdmZjc1Mjg1NjJmNzMyMDA4YmQ2ZWZlM2ZhODJjLi4yMWIzMzVj
MThjNTM3MmI5M2JkNGUwNTU1MGFkNzcxMjc2NDQxYjdjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0
cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLWV4cGVjdGVkLnR4dApAQCAtNiwxNiArNiwyNSBA
QCBQQVNTIFBhbm5lck5vZGUgaGFzIG9uZSBpbnB1dC4KIFBBU1MgUGFubmVyTm9kZSBoYXMgb25l
IG91dHB1dC4KIFBBU1MgcmVmRGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBpcyAxLgogUEFTUyByZWZE
aXN0YW5jZSB2YWx1ZSBpcyBzZXQgdG8gMjcwLjUyLgorUEFTUyBFeGNlcHRpb24gaGFzIGJlZW4g
dGhyb3duIGNvcnJlY3RseSB3aGVuIHJlZkRpc3RhbmNlIGlzIHNldCB0byBuZWdhdGl2ZSB2YWx1
ZS4KIFBBU1MgbWF4RGlzdGFuY2UgZGVmYXVsdCB2YWx1ZSBpcyAxMDAwMC4KIFBBU1MgbWF4RGlz
dGFuY2UgdmFsdWUgaXMgc2V0IHRvIDEwMC41NS4KK1BBU1MgRXhjZXB0aW9uIGhhcyBiZWVuIHRo
cm93biBjb3JyZWN0bHkgd2hlbiBtYXhEaXN0YW5jZSBpcyBzZXQgdG8gbm9uLXBvc2l0aXZlIHZh
bHVlIChzZXQgdG8gMCkuCitQQVNTIEV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gY29ycmVjdGx5
IHdoZW4gbWF4RGlzdGFuY2UgaXMgc2V0IHRvIG5vbi1wb3NpdGl2ZSB2YWx1ZSAoc2V0IHRvIC0x
KS4KIFBBU1Mgcm9sbG9mZkZhY3RvciBkZWZhdWx0IHZhbHVlIGlzIDEuCiBQQVNTIHJvbGxvZmZG
YWN0b3IgdmFsdWUgaXMgc2V0IHRvIDAuODMuCitQQVNTIEV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJv
d24gY29ycmVjdGx5IHdoZW4gcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gbmVnYXRpdmUgdmFsdWUu
CiBQQVNTIGNvbmVJbm5lckFuZ2xlIGRlZmF1bHQgdmFsdWUgaXMgMzYwLgorUEFTUyBjb25lSW5u
ZXJBbmdsZSB2YWx1ZSBpcyBzZXQgdG8gMAogUEFTUyBjb25lSW5uZXJBbmdsZSB2YWx1ZSBpcyBz
ZXQgdG8gMjQwLjQ1LgogUEFTUyBjb25lT3V0ZXJBbmdsZSBkZWZhdWx0IHZhbHVlIGlzIDM2MC4K
K1BBU1MgY29uZU91dGVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDAuCiBQQVNTIGNvbmVPdXRlckFu
Z2xlIHZhbHVlIGlzIHNldCB0byAxNjYuNjYuCiBQQVNTIGNvbmVPdXRlckdhaW4gZGVmYXVsdCB2
YWx1ZSBpcyAwLgorUEFTUyBjb25lT3V0ZXJHYWluIHZhbHVlIGlzIHNldCB0byAxLgogUEFTUyBj
b25lT3V0ZXJHYWluIHZhbHVlIGlzIHNldCB0byAwLjM1LgorUEFTUyBFeGNlcHRpb24gaGFzIGJl
ZW4gdGhyb3duIGNvcnJlY3RseSB3aGVuIGNvbmVPdXRlckdhaW4gaXMgc2V0IG91dHNpZGUgWzAs
IDFdICh3YXMgc2V0IHRvIC0xKS4KK1BBU1MgRXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBjb3Jy
ZWN0bHkgd2hlbiBjb25lT3V0ZXJHYWluIGlzIHNldCBvdXRzaWRlIFswLCAxXSAod2FzIHNldCB0
byAyKS4KIFBBU1MgUGFubmVyTm9kZSBkZWZhdWx0cyB0byAnSFJURicgcGFubmluZ01vZGVsLgog
UEFTUyBQYW5uZXJOb2RlIGRlZmF1bHRzIHRvICdpbnZlcnNlJyBkaXN0YW5jZU1vZGVsLgogUEFT
UyBwYW5uaW5nTW9kZWw6ICdlcXVhbHBvd2VyJyBpcyBzZXR0YWJsZS4KQEAgLTIzLDYgKzMyLDE0
IEBAIFBBU1MgcGFubmluZ01vZGVsOiAnSFJURicgaXMgc2V0dGFibGUuCiBQQVNTIGRpc3RhbmNl
TW9kZWw6ICdsaW5lYXInIGlzIHNldHRhYmxlLgogUEFTUyBkaXN0YW5jZU1vZGVsOiAnaW52ZXJz
ZScgaXMgc2V0dGFibGUuCiBQQVNTIGRpc3RhbmNlTW9kZWw6ICdleHBvbmVudGlhbCcgaXMgc2V0
dGFibGUuCitQQVNTIFdpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMg
c2V0IHRvIDAuCitQQVNTIFdpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Ig
aXMgc2V0IHRvIDAuNS4KK1BBU1MgV2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZh
Y3RvciBpcyBzZXQgdG8gMS4KK1BBU1MgV2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9m
ZkZhY3RvciBpcyBjbGFtcGVkIHRvIFswLCAxXSAod2FzIHNldCB0byAyKS4KK1BBU1MgV2l0aCBp
bnZlcnNlIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDAuCitQQVNTIFdp
dGggaW52ZXJzZSBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAxMDAwMC4K
K1BBU1MgV2l0aCBleHBvbmVudGlhbCBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNl
dCB0byAwLgorUEFTUyBXaXRoIGV4cG9uZW50aWFsIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0
b3IgaXMgc2V0IHRvIDEwMDAwLgogUEFTUyBTZXR0aW5nIC5kaXN0YW5jZU1vZGVsIHRvIGlsbGVn
YWwgc3RyaW5nIHZhbHVlIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgogUEFTUyBTZXR0aW5n
IC5kaXN0YW5jZU1vZGVsIHRvIGlsbGVnYWwgdHlwZSBkaWQgbm90IHRocm93IGFuIGV4Y2VwdGlv
bi4KIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMuaHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlv
L3Bhbm5lcm5vZGUtYmFzaWMuaHRtbAppbmRleCBiMDZkNzkzNzhhNzRlNDE0YjQxM2FjOGRlMWVh
NmYxNzY1MjVkZWEzLi41N2QzM2Q2YmRmOGUyZDJmZjE5MmZiM2NjY2QyMTMyNmQxMTQ3ZTQyIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLmh0bWwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy5odG1sCkBAIC0xNyw3ICsx
Nyw3IEBAIHZhciBjb250ZXh0ID0gMDsKIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgd2luZG93
LmpzVGVzdElzQXN5bmMgPSB0cnVlOwogCi0gICAgY29udGV4dCA9IG5ldyB3ZWJraXRBdWRpb0Nv
bnRleHQoKTsKKyAgICBjb250ZXh0ID0gbmV3IEF1ZGlvQ29udGV4dCgpOwogICAgIHZhciBwYW5u
ZXIgPSBjb250ZXh0LmNyZWF0ZVBhbm5lcigpOwogICAgCiAgICAgaWYgKHBhbm5lci5udW1iZXJP
ZklucHV0cyA9PT0gMSkgCkBAIC00MCw2ICs0MCwxMyBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewog
ICAgICAgICB0ZXN0UGFzc2VkKCJyZWZEaXN0YW5jZSB2YWx1ZSBpcyBzZXQgdG8gMjcwLjUyLiIp
OwogICAgIGVsc2UKICAgICAgICAgdGVzdEZhaWxlZCgicmVmRGlzdGFuY2UgdmFsdWUgc2hvdWxk
IGJlIHNldCB0byAyNzAuNTIuIik7CisKKyAgICB0cnkgeworICAgICAgICBwYW5uZXIucmVmRGlz
dGFuY2UgPSAtMQorICAgICAgICB0ZXN0RmFpbGVkKCJFeGNlcHRpb24gc2hvdWxkIGJlIHRocm93
biB3aGVuIHJlZkRpc3RhbmNlIGlzIHNldCB0byBuZWdhdGl2ZSB2YWx1ZS4iKTsKKyAgICB9IGNh
dGNoKGUpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBj
b3JyZWN0bHkgd2hlbiByZWZEaXN0YW5jZSBpcyBzZXQgdG8gbmVnYXRpdmUgdmFsdWUuIik7Cisg
ICAgfQogICAgIAogICAgIGlmIChwYW5uZXIubWF4RGlzdGFuY2UgPT09IDEwMDAwKQogICAgICAg
ICB0ZXN0UGFzc2VkKCJtYXhEaXN0YW5jZSBkZWZhdWx0IHZhbHVlIGlzIDEwMDAwLiIpOwpAQCAt
NTEsNiArNTgsMjAgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICAgICAgdGVzdFBhc3NlZCgi
bWF4RGlzdGFuY2UgdmFsdWUgaXMgc2V0IHRvIDEwMC41NS4iKTsKICAgICBlbHNlCiAgICAgICAg
IHRlc3RGYWlsZWQoIm1heERpc3RhbmNlIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMTAwLjU1LiIp
OworCisgICAgdHJ5IHsKKyAgICAgICAgcGFubmVyLm1heERpc3RhbmNlID0gMAorICAgICAgICB0
ZXN0RmFpbGVkKCJFeGNlcHRpb24gc2hvdWxkIGJlIHRocm93biB3aGVuIG1heERpc3RhbmNlIGlz
IHNldCB0byBub24tcG9zaXRpdmUgdmFsdWUgKHNldCB0byAwKS4iKTsKKyAgICB9IGNhdGNoKGUp
IHsKKyAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBjb3JyZWN0
bHkgd2hlbiBtYXhEaXN0YW5jZSBpcyBzZXQgdG8gbm9uLXBvc2l0aXZlIHZhbHVlIChzZXQgdG8g
MCkuIik7CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgcGFubmVyLm1heERpc3RhbmNlID0g
LTEKKyAgICAgICAgdGVzdEZhaWxlZCgiRXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gd2hlbiBt
YXhEaXN0YW5jZSBpcyBzZXQgdG8gbm9uLXBvc2l0aXZlIHZhbHVlIChzZXQgdG8gLTEpLiIpOwor
ICAgIH0gY2F0Y2goZSkgeworICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gaGFzIGJlZW4g
dGhyb3duIGNvcnJlY3RseSB3aGVuIG1heERpc3RhbmNlIGlzIHNldCB0byBub24tcG9zaXRpdmUg
dmFsdWUgKHNldCB0byAtMSkuIik7CisgICAgfQogICAgIAogICAgIGlmIChwYW5uZXIucm9sbG9m
ZkZhY3RvciA9PT0gMSkKICAgICAgICAgdGVzdFBhc3NlZCgicm9sbG9mZkZhY3RvciBkZWZhdWx0
IHZhbHVlIGlzIDEuIik7CkBAIC02MiwxMSArODMsMjQgQEAgZnVuY3Rpb24gcnVuVGVzdCgpIHsK
ICAgICAgICAgdGVzdFBhc3NlZCgicm9sbG9mZkZhY3RvciB2YWx1ZSBpcyBzZXQgdG8gMC44My4i
KTsKICAgICBlbHNlCiAgICAgICAgIHRlc3RGYWlsZWQoInJvbGxvZmZGYWN0b3IgdmFsdWUgc2hv
dWxkIGJlIHNldCB0byAwLjgzLiIpOworCisgICAgdHJ5IHsKKyAgICAgICAgcGFubmVyLnJvbGxv
ZmZGYWN0b3IgPSAtMQorICAgICAgICB0ZXN0RmFpbGVkKCJFeGNlcHRpb24gc2hvdWxkIGJlIHRo
cm93biB3aGVuIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIG5nYXRpdmUgdmFsdWUuIik7CisgICAg
fSBjYXRjaChlKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJv
d24gY29ycmVjdGx5IHdoZW4gcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gbmVnYXRpdmUgdmFsdWUu
Iik7CisgICAgfQogICAgIAogICAgIGlmIChwYW5uZXIuY29uZUlubmVyQW5nbGUgPT09IDM2MCkK
ICAgICAgICAgdGVzdFBhc3NlZCgiY29uZUlubmVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBpcyAzNjAu
Iik7CiAgICAgZWxzZQogICAgICAgICB0ZXN0RmFpbGVkKCJjb25lSW5uZXJBbmdsZSBkZWZhdWx0
IHZhbHVlIHNob3VsZCBiZSAzNjAuIik7CisKKyAgICBwYW5uZXIuY29uZUlubmVyQW5nbGUgPSAw
CisgICAgaWYgKHBhbm5lci5jb25lSW5uZXJBbmdsZSA9PT0gMCkKKyAgICAgICAgdGVzdFBhc3Nl
ZCgiY29uZUlubmVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDAiKTsKKyAgICBlbHNlCisgICAgICAg
IHRlc3RGYWlsZWQoImNvbmVJbm5lckFuZ2xlIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMC4iKTsK
ICAgICAKICAgICBwYW5uZXIuY29uZUlubmVyQW5nbGUgPSAyNDAuNDUKICAgICBpZiAocGFubmVy
LmNvbmVJbm5lckFuZ2xlID09PSAyNDAuNDUpCkBAIC03OCw2ICsxMTIsMTIgQEAgZnVuY3Rpb24g
cnVuVGVzdCgpIHsKICAgICAgICAgdGVzdFBhc3NlZCgiY29uZU91dGVyQW5nbGUgZGVmYXVsdCB2
YWx1ZSBpcyAzNjAuIik7CiAgICAgZWxzZQogICAgICAgICB0ZXN0RmFpbGVkKCJjb25lT3V0ZXJB
bmdsZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAzNjAuIik7CisKKyAgICBwYW5uZXIuY29uZU91
dGVyQW5nbGUgPSAwCisgICAgaWYgKHBhbm5lci5jb25lT3V0ZXJBbmdsZSA9PT0gMCkKKyAgICAg
ICAgdGVzdFBhc3NlZCgiY29uZU91dGVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDAuIik7CisgICAg
ZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJjb25lT3V0ZXJBbmdsZSB2YWx1ZSBzaG91bGQgYmUg
c2V0IHRvIDAuIik7CiAgICAgCiAgICAgcGFubmVyLmNvbmVPdXRlckFuZ2xlID0gMTY2LjY2CiAg
ICAgaWYgKHBhbm5lci5jb25lT3V0ZXJBbmdsZSA9PT0gMTY2LjY2KQpAQCAtOTAsMTIgKzEzMCwz
MiBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgIGVsc2UKICAgICAgICAgdGVzdEZhaWxlZCgi
Y29uZU91dGVyR2FpbiBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAwLiIpOwogCisgICAgcGFubmVy
LmNvbmVPdXRlckdhaW4gPSAxCisgICAgaWYgKHBhbm5lci5jb25lT3V0ZXJHYWluID09PSAxKQor
ICAgICAgICB0ZXN0UGFzc2VkKCJjb25lT3V0ZXJHYWluIHZhbHVlIGlzIHNldCB0byAxLiIpOwor
ICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiY29uZU91dGVyR2FpbiB2YWx1ZSBzaG91bGQg
YmUgc2V0IHRvIDEuIik7CisKICAgICBwYW5uZXIuY29uZU91dGVyR2FpbiA9IDAuMzUKICAgICBp
ZiAocGFubmVyLmNvbmVPdXRlckdhaW4gPT09IDAuMzUpCiAgICAgICAgIHRlc3RQYXNzZWQoImNv
bmVPdXRlckdhaW4gdmFsdWUgaXMgc2V0IHRvIDAuMzUuIik7CiAgICAgZWxzZQogICAgICAgICB0
ZXN0RmFpbGVkKCJjb25lT3V0ZXJHYWluIHZhbHVlIHNob3VsZCBiZSBzZXQgdG8gMC4zNS4iKTsK
IAorICAgIHRyeSB7CisgICAgICAgIHBhbm5lci5jb25lT3V0ZXJHYWluID0gLTEKKyAgICAgICAg
dGVzdEZhaWxlZCgiRXhjZXB0aW9uIHNob3VsZCBiZSB0aHJvd24gd2hlbiBjb25lT3V0ZXJHYWlu
IGlzIHNldCBvdXRzaWRlIFswLCAxXSAod2FzIHNldCB0byAtMSkuIik7CisgICAgfSBjYXRjaChl
KSB7CisgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gY29ycmVj
dGx5IHdoZW4gY29uZU91dGVyR2FpbiBpcyBzZXQgb3V0c2lkZSBbMCwgMV0gKHdhcyBzZXQgdG8g
LTEpLiIpOworICAgIH0KKworICAgIHRyeSB7CisgICAgICAgIHBhbm5lci5jb25lT3V0ZXJHYWlu
ID0gMgorICAgICAgICB0ZXN0RmFpbGVkKCJFeGNlcHRpb24gc2hvdWxkIGJlIHRocm93biB3aGVu
IGNvbmVPdXRlckdhaW4gaXMgc2V0IG91dHNpZGUgWzAsIDFdICh3YXMgc2V0IHRvIDIpLiIpOwor
ICAgIH0gY2F0Y2goZSkgeworICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gaGFzIGJlZW4g
dGhyb3duIGNvcnJlY3RseSB3aGVuIGNvbmVPdXRlckdhaW4gaXMgc2V0IG91dHNpZGUgWzAsIDFd
ICh3YXMgc2V0IHRvIDIpLiIpOworICAgIH0KKwogICAgIGlmIChwYW5uZXIucGFubmluZ01vZGVs
ID09PSAiSFJURiIpCiAgICAgICAgIHRlc3RQYXNzZWQoIlBhbm5lck5vZGUgZGVmYXVsdHMgdG8g
J0hSVEYnIHBhbm5pbmdNb2RlbC4iKTsKICAgICBlbHNlCkBAIC0xNDgsNiArMjA4LDYzIEBAIGZ1
bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgICAgIH0KICAgICB9CiAKKyAgICAvLyBUZXN0aW5nIHJv
bGxvZmZGYWN0b3Igd2hlbiBkaXN0YW5jZU1vZGVsIGlzIGxpbmVhcgorICAgIHBhbm5lci5kaXN0
YW5jZU1vZGVsID0gZGlzdGFuY2VNb2RlbHNbMF0udmFsdWUKKworICAgIHBhbm5lci5yb2xsb2Zm
RmFjdG9yID0gMAorICAgIGlmIChwYW5uZXIucm9sbG9mZkZhY3RvciA9PT0gMCkKKyAgICAgICAg
dGVzdFBhc3NlZCgiV2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBz
ZXQgdG8gMC4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIldpdGggbGluZWFyIGRp
c3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Igc2hvdWxkIGJlIHNldCB0byAwLiIpOworCisgICAg
cGFubmVyLnJvbGxvZmZGYWN0b3IgPSAwLjUKKyAgICBpZiAocGFubmVyLnJvbGxvZmZGYWN0b3Ig
PT09IDAuNSkKKyAgICAgICAgdGVzdFBhc3NlZCgiV2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwg
cm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMC41LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZh
aWxlZCgiV2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBzaG91bGQgYmUg
c2V0IHRvIDAuNS4iKTsKKworICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMQorICAgIGlmIChw
YW5uZXIucm9sbG9mZkZhY3RvciA9PT0gMSkKKyAgICAgICAgdGVzdFBhc3NlZCgiV2l0aCBsaW5l
YXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMS4iKTsKKyAgICBlbHNl
CisgICAgICAgIHRlc3RGYWlsZWQoIldpdGggbGluZWFyIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZG
YWN0b3Igc2hvdWxkIGJlIHNldCB0byAxLiIpOworCisgICAgcGFubmVyLnJvbGxvZmZGYWN0b3Ig
PSAyCisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAxKQorICAgICAgICB0ZXN0UGFz
c2VkKCJXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIGNsYW1wZWQg
dG8gWzAsIDFdICh3YXMgc2V0IHRvIDIpLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxl
ZCgiV2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBzaG91bGQgYmUgY2xh
bXBlZCB0byBbMCwgMV0gKHdhcyBzZXQgdG8gMikuIik7CisKKyAgICAvLyBUZXN0aW5nIHJvbGxv
ZmZGYWN0b3Igd2hlbiBkaXN0YW5jZU1vZGVsIGlzIGludmVyc2UKKyAgICBwYW5uZXIuZGlzdGFu
Y2VNb2RlbCA9IGRpc3RhbmNlTW9kZWxzWzFdLnZhbHVlCisKKyAgICBwYW5uZXIucm9sbG9mZkZh
Y3RvciA9IDAKKyAgICBpZiAocGFubmVyLnJvbGxvZmZGYWN0b3IgPT09IDApCisgICAgICAgIHRl
c3RQYXNzZWQoIldpdGggaW52ZXJzZSBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNl
dCB0byAwLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiV2l0aCBpbnZlcnNlIGRp
c3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Igc2hvdWxkIGJlIHNldCB0byAwLiIpOworCisgICAg
cGFubmVyLnJvbGxvZmZGYWN0b3IgPSAxMDAwMAorICAgIGlmIChwYW5uZXIucm9sbG9mZkZhY3Rv
ciA9PT0gMTAwMDApCisgICAgICAgIHRlc3RQYXNzZWQoIldpdGggaW52ZXJzZSBkaXN0YW5jZU1v
ZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAxMDAwMC4iKTsKKyAgICBlbHNlCisgICAgICAg
IHRlc3RGYWlsZWQoIldpdGggaW52ZXJzZSBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIHNo
b3VsZCBiZSBzZXQgdG8gMTAwMDAuIik7CisKKyAgICAvLyBUZXN0aW5nIHJvbGxPZmZGYWN0b3Ig
d2hlbiBkaXN0YW5jZU1vZGVsIGlzIGV4cG9uZW50aWFsCisgICAgcGFubmVyLmRpc3RhbmNlTW9k
ZWwgPSBkaXN0YW5jZU1vZGVsc1syXS52YWx1ZQorCisgICAgcGFubmVyLnJvbGxvZmZGYWN0b3Ig
PSAwCisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAwKQorICAgICAgICB0ZXN0UGFz
c2VkKCJXaXRoIGV4cG9uZW50aWFsIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0
IHRvIDAuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJXaXRoIGV4cG9uZW50aWFs
IGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Igc2hvdWxkIGJlIHNldCB0byAwLiIpOworCisg
ICAgcGFubmVyLnJvbGxvZmZGYWN0b3IgPSAxMDAwMAorICAgIGlmIChwYW5uZXIucm9sbG9mZkZh
Y3RvciA9PT0gMTAwMDApCisgICAgICAgIHRlc3RQYXNzZWQoIldpdGggZXhwb25lbnRpYWwgZGlz
dGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMTAwMDAuIik7CisgICAgZWxzZQor
ICAgICAgICB0ZXN0RmFpbGVkKCJXaXRoIGV4cG9uZW50aWFsIGRpc3RhbmNlTW9kZWwsIHJvbGxv
ZmZGYWN0b3Igc2hvdWxkIGJlIHNldCB0byAxMDAwMC4iKTsKKwogICAgIC8vIENoZWNrIHRoYXQg
d2UgZG9uJ3QgdGhyb3cgYW4gZXhjZXB0aW9uIGZvciBpbGxlZ2FsIC5kaXN0YW5jZU1vZGVsIHZh
bHVlcyBhcyBwZXIgV2ViSURMLgogICAgIHNob3VsZE5vdFRocm93RXhjZXB0aW9uKGZ1bmN0aW9u
KCkgeyBwYW5uZXIuZGlzdGFuY2VNb2RlbCA9ICJ4eXoxMjM0OWpma3NkIjsgfSwgIlNldHRpbmcg
LmRpc3RhbmNlTW9kZWwgdG8gaWxsZWdhbCBzdHJpbmcgdmFsdWUiKTsKICAgICBzaG91bGROb3RU
aHJvd0V4Y2VwdGlvbihmdW5jdGlvbigpIHsgcGFubmVyLmRpc3RhbmNlTW9kZWwgPSBuZXcgRmxv
YXQzMkFycmF5KDEpOyB9LCAiU2V0dGluZyAuZGlzdGFuY2VNb2RlbCB0byBpbGxlZ2FsIHR5cGUi
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUt
YmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcHJlZml4ZWQtcGFubmVy
bm9kZS1iYXNpYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNkOGJhZTViNzRkMmZhZGE3MDBh
MjJmYjYwNGYzMGNhYmM5MjdlYgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3dlYmF1
ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMzEg
QEAKK0Jhc2ljIHRlc3RzIGZvciBXZWJLaXQgUHJlZml4ZWQgUGFubmVyTm9kZS4KKworT24gc3Vj
Y2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQg
YnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIFBhbm5lck5vZGUgaGFzIG9uZSBpbnB1dC4KK1BB
U1MgUGFubmVyTm9kZSBoYXMgb25lIG91dHB1dC4KK1BBU1MgcmVmRGlzdGFuY2UgZGVmYXVsdCB2
YWx1ZSBpcyAxLgorUEFTUyByZWZEaXN0YW5jZSB2YWx1ZSBpcyBzZXQgdG8gMjcwLjUyLgorUEFT
UyBtYXhEaXN0YW5jZSBkZWZhdWx0IHZhbHVlIGlzIDEwMDAwLgorUEFTUyBtYXhEaXN0YW5jZSB2
YWx1ZSBpcyBzZXQgdG8gMTAwLjU1LgorUEFTUyByb2xsb2ZmRmFjdG9yIGRlZmF1bHQgdmFsdWUg
aXMgMS4KK1BBU1Mgcm9sbG9mZkZhY3RvciB2YWx1ZSBpcyBzZXQgdG8gMC44My4KK1BBU1MgY29u
ZUlubmVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBpcyAzNjAuCitQQVNTIGNvbmVJbm5lckFuZ2xlIHZh
bHVlIGlzIHNldCB0byAyNDAuNDUuCitQQVNTIGNvbmVPdXRlckFuZ2xlIGRlZmF1bHQgdmFsdWUg
aXMgMzYwLgorUEFTUyBjb25lT3V0ZXJBbmdsZSB2YWx1ZSBpcyBzZXQgdG8gMTY2LjY2LgorUEFT
UyBjb25lT3V0ZXJHYWluIGRlZmF1bHQgdmFsdWUgaXMgMC4KK1BBU1MgY29uZU91dGVyR2FpbiB2
YWx1ZSBpcyBzZXQgdG8gMC4zNS4KK1BBU1MgUGFubmVyTm9kZSBkZWZhdWx0cyB0byAnSFJURicg
cGFubmluZ01vZGVsLgorUEFTUyBQYW5uZXJOb2RlIGRlZmF1bHRzIHRvICdpbnZlcnNlJyBkaXN0
YW5jZU1vZGVsLgorUEFTUyBwYW5uaW5nTW9kZWw6ICdlcXVhbHBvd2VyJyBpcyBzZXR0YWJsZS4K
K1BBU1MgcGFubmluZ01vZGVsOiAnSFJURicgaXMgc2V0dGFibGUuCitQQVNTIGRpc3RhbmNlTW9k
ZWw6ICdsaW5lYXInIGlzIHNldHRhYmxlLgorUEFTUyBkaXN0YW5jZU1vZGVsOiAnaW52ZXJzZScg
aXMgc2V0dGFibGUuCitQQVNTIGRpc3RhbmNlTW9kZWw6ICdleHBvbmVudGlhbCcgaXMgc2V0dGFi
bGUuCitQQVNTIFNldHRpbmcgLmRpc3RhbmNlTW9kZWwgdG8gaWxsZWdhbCBzdHJpbmcgdmFsdWUg
ZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTIFNldHRpbmcgLmRpc3RhbmNlTW9kZWwg
dG8gaWxsZWdhbCB0eXBlIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgorUEFTUyBzdWNjZXNz
ZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL3dlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMuaHRtbCBiL0xheW91dFRl
c3RzL3dlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5h
NGMzYzkyYjU2ODA5MjQxMzZkZWUwYzFjMzMzYzY1N2Y0MzZlZmQ3Ci0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcHJlZml4ZWQtcGFubmVybm9kZS1iYXNpYy5odG1sCkBA
IC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0
IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJl
c291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKworPGJvZHk+Cis8
ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25zb2xlIj48L2Rpdj4KKwor
PHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0cyBmb3IgV2ViS2l0IFByZWZpeGVkIFBh
bm5lck5vZGUuIik7CisKK3ZhciBjb250ZXh0ID0gMDsKKworZnVuY3Rpb24gcnVuVGVzdCgpIHsK
KyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBjb250ZXh0ID0gbmV3IHdl
YmtpdEF1ZGlvQ29udGV4dCgpOworICAgIHZhciBwYW5uZXIgPSBjb250ZXh0LmNyZWF0ZVBhbm5l
cigpOworICAgCisgICAgaWYgKHBhbm5lci5udW1iZXJPZklucHV0cyA9PT0gMSkgCisgICAgICAg
IHRlc3RQYXNzZWQoIlBhbm5lck5vZGUgaGFzIG9uZSBpbnB1dC4iKTsKKyAgICBlbHNlCisgICAg
ICAgIHRlc3RGYWlsZWQoIlBhbm5lck5vZGUgc2hvdWxkIGhhdmUgb25lIGlucHV0LiIpOworICAg
IAorICAgIGlmIChwYW5uZXIubnVtYmVyT2ZPdXRwdXRzID09PSAxKSAKKyAgICAgICAgdGVzdFBh
c3NlZCgiUGFubmVyTm9kZSBoYXMgb25lIG91dHB1dC4iKTsKKyAgICBlbHNlCisgICAgICAgIHRl
c3RGYWlsZWQoIlBhbm5lck5vZGUgc2hvdWxkIGhhdmUgb25lIG91dHB1dC4iKTsKKworICAgIGlm
IChwYW5uZXIucmVmRGlzdGFuY2UgPT09IDEpCisgICAgICAgIHRlc3RQYXNzZWQoInJlZkRpc3Rh
bmNlIGRlZmF1bHQgdmFsdWUgaXMgMS4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQo
InJlZkRpc3RhbmNlIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDEuIik7CisgICAgCisgICAgcGFu
bmVyLnJlZkRpc3RhbmNlID0gMjcwLjUyCisgICAgaWYgKHBhbm5lci5yZWZEaXN0YW5jZSA9PT0g
MjcwLjUyKQorICAgICAgICB0ZXN0UGFzc2VkKCJyZWZEaXN0YW5jZSB2YWx1ZSBpcyBzZXQgdG8g
MjcwLjUyLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgicmVmRGlzdGFuY2UgdmFs
dWUgc2hvdWxkIGJlIHNldCB0byAyNzAuNTIuIik7CisgICAgCisgICAgaWYgKHBhbm5lci5tYXhE
aXN0YW5jZSA9PT0gMTAwMDApCisgICAgICAgIHRlc3RQYXNzZWQoIm1heERpc3RhbmNlIGRlZmF1
bHQgdmFsdWUgaXMgMTAwMDAuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJtYXhE
aXN0YW5jZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAxMDAwMC4iKTsKKyAgICAKKyAgICBwYW5u
ZXIubWF4RGlzdGFuY2UgPSAxMDAuNTUKKyAgICBpZiAocGFubmVyLm1heERpc3RhbmNlID09PSAx
MDAuNTUpCisgICAgICAgIHRlc3RQYXNzZWQoIm1heERpc3RhbmNlIHZhbHVlIGlzIHNldCB0byAx
MDAuNTUuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJtYXhEaXN0YW5jZSB2YWx1
ZSBzaG91bGQgYmUgc2V0IHRvIDEwMC41NS4iKTsKKyAgICAKKyAgICBpZiAocGFubmVyLnJvbGxv
ZmZGYWN0b3IgPT09IDEpCisgICAgICAgIHRlc3RQYXNzZWQoInJvbGxvZmZGYWN0b3IgZGVmYXVs
dCB2YWx1ZSBpcyAxLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgicm9sbG9mZkZh
Y3RvciBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAxLiIpOworICAgIAorICAgIHBhbm5lci5yb2xs
b2ZmRmFjdG9yID0gMC44MworICAgIGlmIChwYW5uZXIucm9sbG9mZkZhY3RvciA9PT0gMC44MykK
KyAgICAgICAgdGVzdFBhc3NlZCgicm9sbG9mZkZhY3RvciB2YWx1ZSBpcyBzZXQgdG8gMC44My4i
KTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoInJvbGxvZmZGYWN0b3IgdmFsdWUgc2hv
dWxkIGJlIHNldCB0byAwLjgzLiIpOworICAgIAorICAgIGlmIChwYW5uZXIuY29uZUlubmVyQW5n
bGUgPT09IDM2MCkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29uZUlubmVyQW5nbGUgZGVmYXVsdCB2
YWx1ZSBpcyAzNjAuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJjb25lSW5uZXJB
bmdsZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAzNjAuIik7CisgICAgCisgICAgcGFubmVyLmNv
bmVJbm5lckFuZ2xlID0gMjQwLjQ1CisgICAgaWYgKHBhbm5lci5jb25lSW5uZXJBbmdsZSA9PT0g
MjQwLjQ1KQorICAgICAgICB0ZXN0UGFzc2VkKCJjb25lSW5uZXJBbmdsZSB2YWx1ZSBpcyBzZXQg
dG8gMjQwLjQ1LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiY29uZUlubmVyQW5n
bGUgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAyNDAuNDUuIik7CisgICAgCisgICAgaWYgKHBhbm5l
ci5jb25lT3V0ZXJBbmdsZSA9PT0gMzYwKQorICAgICAgICB0ZXN0UGFzc2VkKCJjb25lT3V0ZXJB
bmdsZSBkZWZhdWx0IHZhbHVlIGlzIDM2MC4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWls
ZWQoImNvbmVPdXRlckFuZ2xlIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDM2MC4iKTsKKyAgICAK
KyAgICBwYW5uZXIuY29uZU91dGVyQW5nbGUgPSAxNjYuNjYKKyAgICBpZiAocGFubmVyLmNvbmVP
dXRlckFuZ2xlID09PSAxNjYuNjYpCisgICAgICAgIHRlc3RQYXNzZWQoImNvbmVPdXRlckFuZ2xl
IHZhbHVlIGlzIHNldCB0byAxNjYuNjYuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVk
KCJjb25lT3V0ZXJBbmdsZSB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDE2Ni42Ni4iKTsKKyAgICAK
KyAgICBpZiAocGFubmVyLmNvbmVPdXRlckdhaW4gPT09IDApCisgICAgICAgIHRlc3RQYXNzZWQo
ImNvbmVPdXRlckdhaW4gZGVmYXVsdCB2YWx1ZSBpcyAwLiIpOworICAgIGVsc2UKKyAgICAgICAg
dGVzdEZhaWxlZCgiY29uZU91dGVyR2FpbiBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAwLiIpOwor
CisgICAgcGFubmVyLmNvbmVPdXRlckdhaW4gPSAwLjM1CisgICAgaWYgKHBhbm5lci5jb25lT3V0
ZXJHYWluID09PSAwLjM1KQorICAgICAgICB0ZXN0UGFzc2VkKCJjb25lT3V0ZXJHYWluIHZhbHVl
IGlzIHNldCB0byAwLjM1LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiY29uZU91
dGVyR2FpbiB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDAuMzUuIik7CisKKyAgICBpZiAocGFubmVy
LnBhbm5pbmdNb2RlbCA9PT0gIkhSVEYiKQorICAgICAgICB0ZXN0UGFzc2VkKCJQYW5uZXJOb2Rl
IGRlZmF1bHRzIHRvICdIUlRGJyBwYW5uaW5nTW9kZWwuIik7CisgICAgZWxzZQorICAgICAgICB0
ZXN0RmFpbGVkKCJQYW5uZXJOb2RlIHNob3VsZCBkZWZhdWx0IHRvICdIUlRGJyBwYW5uaW5nTW9k
ZWwuIik7CisgICAgCisgICAgaWYgKHBhbm5lci5kaXN0YW5jZU1vZGVsID09PSAiaW52ZXJzZSIp
CisgICAgICAgIHRlc3RQYXNzZWQoIlBhbm5lck5vZGUgZGVmYXVsdHMgdG8gJ2ludmVyc2UnIGRp
c3RhbmNlTW9kZWwuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXJOb2Rl
IHNob3VsZCBkZWZhdWx0IHRvICdpbnZlcnNlJyBkaXN0YW5jZU1vZGVsLiIpOworCisgICAgLy8g
Q2hlY2sgdGhhdCB0aGUgLnBhbm5pbmdNb2RlbCBhdHRyaWJ1dGUgY2FuIGJlIHNldCB0byBhbGwg
bGVnYWwgdmFsdWVzLgorICAgIHZhciBwYW5uaW5nTW9kZWxzID0gW3t2YWx1ZTogImVxdWFscG93
ZXIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB7dmFsdWU6ICJIUlRGIn0sCisgICAgICAg
ICAgICAgICAgICAgICAgICBdOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkgPCBwYW5uaW5nTW9k
ZWxzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHRyeSB7CisgICAgICAgICAgICBwYW5uZXIucGFu
bmluZ01vZGVsID0gcGFubmluZ01vZGVsc1tpXS52YWx1ZTsKKyAgICAgICAgICAgIGlmIChwYW5u
ZXIucGFubmluZ01vZGVsID09PSBwYW5uaW5nTW9kZWxzW2ldLnZhbHVlKSB7CisgICAgICAgICAg
ICAgICAgdmFyIG1lc3NhZ2UgPSAicGFubmluZ01vZGVsOiAnIiArIHBhbm5pbmdNb2RlbHNbaV0u
dmFsdWUgKyAiJyBpcyBzZXR0YWJsZS4iOworICAgICAgICAgICAgICAgIHRlc3RQYXNzZWQobWVz
c2FnZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAgIHZhciBtZXNzYWdl
ID0gInBhbm5pbmdNb2RlbDogJyIgKyBwYW5uaW5nTW9kZWxzW2ldLnZhbHVlICsgIicgd2FzIG5v
dCBjb3JyZWN0bHkgc2V0LiI7CisgICAgICAgICAgICAgICAgdGVzdEZhaWxlZChtZXNzYWdlKTsK
KyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICB2YXIgbWVz
c2FnZSA9ICJTZXR0aW5nIHBhbm5pbmdNb2RlbCB0byAnIiArIHBhbm5pbmdNb2RlbHNbaV0udmFs
dWUgKyAiJyBzaG91bGQgbm90IHRocm93IGV4Y2VwdGlvbi4iOworICAgICAgICAgICAgdGVzdEZh
aWxlZChtZXNzYWdlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8vIENoZWNrIHRoYXQgdGhl
IC5kaXN0YW5jZU1vZGVsIGF0dHJpYnV0ZSBjYW4gYmUgc2V0IHRvIGFsbCBsZWdhbCB2YWx1ZXMu
CisgICAgdmFyIGRpc3RhbmNlTW9kZWxzID0gW3t2YWx1ZTogImxpbmVhciJ9LAorICAgICAgICAg
ICAgICAgICAgICAgICAgICB7dmFsdWU6ICJpbnZlcnNlIn0sCisgICAgICAgICAgICAgICAgICAg
ICAgICAgIHt2YWx1ZTogImV4cG9uZW50aWFsIn1dOworCisgICAgZm9yICh2YXIgaSA9IDA7IGkg
PCBkaXN0YW5jZU1vZGVscy5sZW5ndGg7ICsraSkgeworICAgICAgICB0cnkgeworICAgICAgICAg
ICAgcGFubmVyLmRpc3RhbmNlTW9kZWwgPSBkaXN0YW5jZU1vZGVsc1tpXS52YWx1ZTsKKyAgICAg
ICAgICAgIGlmIChwYW5uZXIuZGlzdGFuY2VNb2RlbCA9PT0gZGlzdGFuY2VNb2RlbHNbaV0udmFs
dWUpIHsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9ICJkaXN0YW5jZU1vZGVsOiAnIiAr
IGRpc3RhbmNlTW9kZWxzW2ldLnZhbHVlICsgIicgaXMgc2V0dGFibGUuIjsKKyAgICAgICAgICAg
ICAgICB0ZXN0UGFzc2VkKG1lc3NhZ2UpOworICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAg
ICAgICAgICB2YXIgbWVzc2FnZSA9ICJkaXN0YW5jZU1vZGVsOiAnIiArIGRpc3RhbmNlTW9kZWxz
W2ldLnZhbHVlICsgIicgd2FzIG5vdCBjb3JyZWN0bHkgc2V0LiI7CisgICAgICAgICAgICAgICAg
dGVzdEZhaWxlZChtZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaChlKSB7
CisgICAgICAgICAgICB2YXIgbWVzc2FnZSA9ICJTZXR0aW5nIGRpc3RhbmNlTW9kZWwgdG8gJyIg
KyBkaXN0YW5jZU1vZGVsc1tpXS52YWx1ZSArICInIHNob3VsZCBub3QgdGhyb3cgZXhjZXB0aW9u
LiI7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKG1lc3NhZ2UpOworICAgICAgICB9CisgICAgfQor
CisgICAgLy8gQ2hlY2sgdGhhdCB3ZSBkb24ndCB0aHJvdyBhbiBleGNlcHRpb24gZm9yIGlsbGVn
YWwgLmRpc3RhbmNlTW9kZWwgdmFsdWVzIGFzIHBlciBXZWJJREwuCisgICAgc2hvdWxkTm90VGhy
b3dFeGNlcHRpb24oZnVuY3Rpb24oKSB7IHBhbm5lci5kaXN0YW5jZU1vZGVsID0gInh5ejEyMzQ5
amZrc2QiOyB9LCAiU2V0dGluZyAuZGlzdGFuY2VNb2RlbCB0byBpbGxlZ2FsIHN0cmluZyB2YWx1
ZSIpOworICAgIHNob3VsZE5vdFRocm93RXhjZXB0aW9uKGZ1bmN0aW9uKCkgeyBwYW5uZXIuZGlz
dGFuY2VNb2RlbCA9IG5ldyBGbG9hdDMyQXJyYXkoMSk7IH0sICJTZXR0aW5nIC5kaXN0YW5jZU1v
ZGVsIHRvIGlsbGVnYWwgdHlwZSIpOworCisgICAgZmluaXNoSlNUZXN0KCk7Cit9CisKK3J1blRl
c3QoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>402696</attachid>
            <date>2020-06-24 17:01:38 -0700</date>
            <delta_ts>2020-06-24 19:13:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-213523-20200624200137.patch</filename>
            <type>text/plain</type>
            <size>24505</size>
            <attacher name="Clark Wang">clark_wang</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYzMzQ4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMWE3MmE1YTlkMzY2OTky
MWU1ZTQ1YjExZWU3MDJkZTRmNDI4YjE3Ni4uZGY2NTQ4NWI0YWRhMmJjMThkNTk2MDgyOWNmYmJm
YWJmYjMyNTNkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA2LTI0ICBDbGFy
ayBXYW5nICA8Y2xhcmtfd2FuZ0BhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlZCB1bnJlc3Ry
aWN0ZWQga2V5d29yZCBmcm9tIGF0dHJpYnV0ZXMgaW4gUGFubmVyTm9kZQorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEzNTIzCisKKyAgICAgICAgVXBk
YXRlZCByZWZEaXN0YW5jZSwgbWF4RGlzdGFuY2UsIHJvbGxvZmZGYWN0b3IsIGNvbmVPdXRlckdh
aW4sIGNvbmVJbm5lckFuZ2xlLCBjb25lT3V0ZXJBbmdsZSBhdHRyaWJ1dGVzIGFjY29yZGluZyB0
byBzcGVjOgorICAgICAgICBodHRwczovL3d3dy53My5vcmcvVFIvd2ViYXVkaW8vI1Bhbm5lck5v
ZGUtYXR0cmlidXRlcy4KKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAg
ICAgICBUZXN0OiB3ZWJhdWRpby9wcmVmaXhlZC1wYW5uZXJub2RlLWJhc2ljLmh0bWwKKworICAg
ICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpQYW5uZXJOb2RlOjpzZXRSZWZEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJO
b2RlOjpzZXRNYXhEaXN0YW5jZSk6CisgICAgICAgIChXZWJDb3JlOjpQYW5uZXJOb2RlOjpzZXRS
b2xsb2ZmRmFjdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OlBhbm5lck5vZGU6OnNldENvbmVPdXRl
ckdhaW4pOgorICAgICAgICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5oOgorICAgICAg
ICAqIE1vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5pZGw6CisKIDIwMjAtMDYtMTAgIFNlcmdp
byBWaWxsYXIgU2VuaW4gIDxzdmlsbGFyQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dlYlhSXSBB
ZGQgYSBwcmVsaW1pbmFyeSBpbXBsZW1lbnRhdGlvbiBvZiBYUldlYkdMTGF5ZXIKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuY3BwCmluZGV4IGYzODAwZjFj
ZWM0YzcwMmNiYjgwYjk0YmIyZGExMTgzM2U4ZDdhYzMuLjExNWYzZGQxYmY4YzRhZjViZjdlNTgw
ZjMyMzExM2E0Y2VmNzdiMTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2Vi
YXVkaW8vUGFubmVyTm9kZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9QYW5uZXJOb2RlLmNwcApAQCAtMjMwLDYgKzIzMCw0NCBAQCB2b2lkIFBhbm5lck5vZGU6OnNl
dERpc3RhbmNlTW9kZWwoRGlzdGFuY2VNb2RlbFR5cGUgbW9kZWwpCiAgICAgbV9kaXN0YW5jZUVm
ZmVjdC5zZXRNb2RlbChtb2RlbCwgdHJ1ZSk7CiB9CiAKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5l
ck5vZGU6OnNldFJlZkRpc3RhbmNlKGRvdWJsZSByZWZEaXN0YW5jZSkKK3sKKyAgICBpZiAocmVm
RGlzdGFuY2UgPCAwKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgInJl
ZkRpc3RhbmNlIGNhbm5vdCBiZSBzZXQgdG8gYSBuZWdhdGl2ZSB2YWx1ZSJfcyB9OworICAgIAor
ICAgIG1fZGlzdGFuY2VFZmZlY3Quc2V0UmVmRGlzdGFuY2UocmVmRGlzdGFuY2UpOworICAgIHJl
dHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldE1heERpc3Rh
bmNlKGRvdWJsZSBtYXhEaXN0YW5jZSkKK3sKKyAgICBpZiAobWF4RGlzdGFuY2UgPD0gMCkKKyAg
ICAgICAgcmV0dXJuIEV4Y2VwdGlvbiB7IFJhbmdlRXJyb3IsICJtYXhEaXN0YW5jZSBjYW5ub3Qg
YmUgc2V0IHRvIGEgbm9uLXBvc2l0aXZlIHZhbHVlIl9zIH07CisgICAgCisgICAgbV9kaXN0YW5j
ZUVmZmVjdC5zZXRNYXhEaXN0YW5jZShtYXhEaXN0YW5jZSk7CisgICAgcmV0dXJuIHsgfTsKK30K
KworRXhjZXB0aW9uT3I8dm9pZD4gUGFubmVyTm9kZTo6c2V0Um9sbG9mZkZhY3Rvcihkb3VibGUg
cm9sbG9mZkZhY3RvcikKK3sKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGNsYW1waW5nIG9mIGxp
bmVhciBtb2RlbCBvbmNlIGZlZWRiYWNrIGlzIHJlY2VpdmVkCisgICAgCisgICAgaWYgKHJvbGxv
ZmZGYWN0b3IgPCAwKQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgUmFuZ2VFcnJvciwgInJv
bGxvZmZGYWN0b3IgY2Fubm90IGJlIHNldCB0byBhIG5lZ2F0aXZlIHZhbHVlIl9zIH07CisgICAg
CisgICAgbV9kaXN0YW5jZUVmZmVjdC5zZXRSb2xsb2ZmRmFjdG9yKHJvbGxvZmZGYWN0b3IpOwor
ICAgIHJldHVybiB7IH07Cit9CisKK0V4Y2VwdGlvbk9yPHZvaWQ+IFBhbm5lck5vZGU6OnNldENv
bmVPdXRlckdhaW4oZG91YmxlIGdhaW4pCit7CisgICAgaWYgKGdhaW4gPCAwIHx8IGdhaW4gPiAx
KQorICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZFN0YXRlRXJyb3IsICJjb25lT3V0
ZXJHYWluIG11c3QgYmUgaW4gWzAsIDFdIl9zIH07CisgICAgCisgICAgbV9jb25lRWZmZWN0LnNl
dE91dGVyR2FpbihnYWluKTsKKyAgICByZXR1cm4geyB9OworfQorCiB2b2lkIFBhbm5lck5vZGU6
OmdldEF6aW11dGhFbGV2YXRpb24oZG91YmxlKiBvdXRBemltdXRoLCBkb3VibGUqIG91dEVsZXZh
dGlvbikKIHsKICAgICAvLyBGSVhNRTogd2Ugc2hvdWxkIGNhY2hlIGF6aW11dGggYW5kIGVsZXZh
dGlvbiAoaWYgcG9zc2libGUpLCBzbyB3ZSBvbmx5IHJlLWNhbGN1bGF0ZSBpZiBhIGNoYW5nZSBo
YXMgYmVlbiBtYWRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRp
by9QYW5uZXJOb2RlLmggYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5v
ZGUuaAppbmRleCBmMmZmMmQyMDk2MjQ0NDQxNTgxZjE1Yzk5ZGY0ZDU0OWFkZjkzZDEwLi5hOTg0
YzYyMjZmNjViYzY1OWVlMzU2ZDg1Y2FkYWYyNmI3YTM4ZTJkIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9Nb2R1bGVzL3dlYmF1ZGlvL1Bhbm5lck5vZGUuaApAQCAtMTA0LDE0ICsxMDQsMTQgQEAgcHVi
bGljOgogICAgIERpc3RhbmNlTW9kZWxUeXBlIGRpc3RhbmNlTW9kZWwoKSBjb25zdDsKICAgICB2
b2lkIHNldERpc3RhbmNlTW9kZWwoRGlzdGFuY2VNb2RlbFR5cGUpOwogCi0gICAgZG91YmxlIHJl
ZkRpc3RhbmNlKCkgeyByZXR1cm4gbV9kaXN0YW5jZUVmZmVjdC5yZWZEaXN0YW5jZSgpOyB9Ci0g
ICAgdm9pZCBzZXRSZWZEaXN0YW5jZShkb3VibGUgcmVmRGlzdGFuY2UpIHsgbV9kaXN0YW5jZUVm
ZmVjdC5zZXRSZWZEaXN0YW5jZShyZWZEaXN0YW5jZSk7IH0KKyAgICBkb3VibGUgcmVmRGlzdGFu
Y2UoKSBjb25zdCB7IHJldHVybiBtX2Rpc3RhbmNlRWZmZWN0LnJlZkRpc3RhbmNlKCk7IH0KKyAg
ICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRSZWZEaXN0YW5jZShkb3VibGUpOwogCi0gICAgZG91Ymxl
IG1heERpc3RhbmNlKCkgeyByZXR1cm4gbV9kaXN0YW5jZUVmZmVjdC5tYXhEaXN0YW5jZSgpOyB9
Ci0gICAgdm9pZCBzZXRNYXhEaXN0YW5jZShkb3VibGUgbWF4RGlzdGFuY2UpIHsgbV9kaXN0YW5j
ZUVmZmVjdC5zZXRNYXhEaXN0YW5jZShtYXhEaXN0YW5jZSk7IH0KKyAgICBkb3VibGUgbWF4RGlz
dGFuY2UoKSBjb25zdCB7IHJldHVybiBtX2Rpc3RhbmNlRWZmZWN0Lm1heERpc3RhbmNlKCk7IH0K
KyAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRNYXhEaXN0YW5jZShkb3VibGUpOwogCi0gICAgZG91
YmxlIHJvbGxvZmZGYWN0b3IoKSB7IHJldHVybiBtX2Rpc3RhbmNlRWZmZWN0LnJvbGxvZmZGYWN0
b3IoKTsgfQotICAgIHZvaWQgc2V0Um9sbG9mZkZhY3Rvcihkb3VibGUgcm9sbG9mZkZhY3Rvcikg
eyBtX2Rpc3RhbmNlRWZmZWN0LnNldFJvbGxvZmZGYWN0b3Iocm9sbG9mZkZhY3Rvcik7IH0KKyAg
ICBkb3VibGUgcm9sbG9mZkZhY3RvcigpIGNvbnN0IHsgcmV0dXJuIG1fZGlzdGFuY2VFZmZlY3Qu
cm9sbG9mZkZhY3RvcigpOyB9CisgICAgRXhjZXB0aW9uT3I8dm9pZD4gc2V0Um9sbG9mZkZhY3Rv
cihkb3VibGUpOwogCiAgICAgLy8gU291bmQgY29uZXMgLSBhbmdsZXMgaW4gZGVncmVlcwogICAg
IGRvdWJsZSBjb25lSW5uZXJBbmdsZSgpIGNvbnN0IHsgcmV0dXJuIG1fY29uZUVmZmVjdC5pbm5l
ckFuZ2xlKCk7IH0KQEAgLTEyMSw3ICsxMjEsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRDb25l
T3V0ZXJBbmdsZShkb3VibGUgYW5nbGUpIHsgbV9jb25lRWZmZWN0LnNldE91dGVyQW5nbGUoYW5n
bGUpOyB9CiAKICAgICBkb3VibGUgY29uZU91dGVyR2FpbigpIGNvbnN0IHsgcmV0dXJuIG1fY29u
ZUVmZmVjdC5vdXRlckdhaW4oKTsgfQotICAgIHZvaWQgc2V0Q29uZU91dGVyR2Fpbihkb3VibGUg
YW5nbGUpIHsgbV9jb25lRWZmZWN0LnNldE91dGVyR2FpbihhbmdsZSk7IH0KKyAgICBFeGNlcHRp
b25Pcjx2b2lkPiBzZXRDb25lT3V0ZXJHYWluKGRvdWJsZSk7CiAKICAgICB2b2lkIGdldEF6aW11
dGhFbGV2YXRpb24oZG91YmxlKiBvdXRBemltdXRoLCBkb3VibGUqIG91dEVsZXZhdGlvbik7CiAg
ICAgZmxvYXQgZG9wcGxlclJhdGUoKSBmaW5hbDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9Nb2R1bGVz
L3dlYmF1ZGlvL1Bhbm5lck5vZGUuaWRsCmluZGV4IDJjZDFhM2YxZDY2ODQyMWRmZDhkMWU5N2Nj
M2ZjMWE1MjVlODVhODguLjZlYTI3ZjM4OTQyNDJiNWNkMDIwMWZiYWMwMGMwNTkxMTQ3YWY4YmEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL01vZHVsZXMvd2ViYXVkaW8vUGFubmVyTm9kZS5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvTW9kdWxlcy93ZWJhdWRpby9QYW5uZXJOb2RlLmlkbApA
QCAtMzcsMTQgKzM3LDE0IEBACiAgICAgLy8gRGVmYXVsdCBkaXN0YW5jZSBtb2RlbCBpcyBpbnZl
cnNlCiAgICAgYXR0cmlidXRlIERpc3RhbmNlTW9kZWxUeXBlIGRpc3RhbmNlTW9kZWw7CiAKLSAg
ICBhdHRyaWJ1dGUgdW5yZXN0cmljdGVkIGRvdWJsZSByZWZEaXN0YW5jZTsKLSAgICBhdHRyaWJ1
dGUgdW5yZXN0cmljdGVkIGRvdWJsZSBtYXhEaXN0YW5jZTsKLSAgICBhdHRyaWJ1dGUgdW5yZXN0
cmljdGVkIGRvdWJsZSByb2xsb2ZmRmFjdG9yOworICAgIGF0dHJpYnV0ZSBkb3VibGUgcmVmRGlz
dGFuY2U7CisgICAgYXR0cmlidXRlIGRvdWJsZSBtYXhEaXN0YW5jZTsKKyAgICBhdHRyaWJ1dGUg
ZG91YmxlIHJvbGxvZmZGYWN0b3I7CiAKICAgICAvLyBEaXJlY3Rpb25hbCBzb3VuZCBjb25lCi0g
ICAgYXR0cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgY29uZUlubmVyQW5nbGU7Ci0gICAgYXR0
cmlidXRlIHVucmVzdHJpY3RlZCBkb3VibGUgY29uZU91dGVyQW5nbGU7Ci0gICAgYXR0cmlidXRl
IHVucmVzdHJpY3RlZCBkb3VibGUgY29uZU91dGVyR2FpbjsKKyAgICBhdHRyaWJ1dGUgZG91Ymxl
IGNvbmVJbm5lckFuZ2xlOworICAgIGF0dHJpYnV0ZSBkb3VibGUgY29uZU91dGVyQW5nbGU7Cisg
ICAgYXR0cmlidXRlIGRvdWJsZSBjb25lT3V0ZXJHYWluOwogICAgIAogICAgIC8vIFBvc2l0aW9u
IG9mIGF1ZGlvIHNvdXJjZSBpbiAzRCBDYXJ0ZXNpYW4gc3lzdGVtCiAgICAgcmVhZG9ubHkgYXR0
cmlidXRlIEF1ZGlvUGFyYW0gcG9zaXRpb25YOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDEzOGY5ZDVjZmI1YTQ5NGNjMDE4
NWJmOTgxN2I0ZWZiYjFmZjE1NzMuLmM3NWNiNjBhNDMwZDA5MTU5YTY2MzM2Y2Q3ZWU5Y2JlYjQx
NTUxNzYgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0
cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAyMC0wNi0yNCAgQ2xhcmsgV2FuZyAgPGNs
YXJrX3dhbmdAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZWQgdW5yZXN0cmljdGVkIGtleXdv
cmQgZnJvbSBhdHRyaWJ1dGVzIGluIFBhbm5lck5vZGUKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxMzUyMworCisgICAgICAgIFJldmlld2VkIGJ5IERh
cmluIEFkbGVyLgorCisgICAgICAgIFNlcGFyYXRlZCBwcmVmaXhlZCBwYW5uZXJub2RlIGFuZCB1
bnByZWZpeGVkIHBhbm5lcm5vZGUgdGVzdHMuIEFkZGVkIHRlc3QgY2FzZXMgZm9yIHJlZkRpc3Rh
bmNlLCBtYXhEaXN0YW5jZSwgcm9sbG9mZkZhY3RvciwgY29uZU91dGVyR2FpbiwgY29uZUlubmVy
QW5nbGUsIGNvbmVPdXRlckFuZ2xlLgorCisgICAgICAgICogd2ViYXVkaW8vcGFubmVybm9kZS1i
YXNpYy1leHBlY3RlZC50eHQ6CisgICAgICAgICogd2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy5o
dG1sOgorICAgICAgICAqIHdlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMtZXhwZWN0
ZWQudHh0OiBDb3BpZWQgZnJvbSBMYXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2lj
LWV4cGVjdGVkLnR4dC4KKyAgICAgICAgKiB3ZWJhdWRpby9wcmVmaXhlZC1wYW5uZXJub2RlLWJh
c2ljLmh0bWw6IENvcGllZCBmcm9tIExheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFz
aWMuaHRtbC4KKwogMjAyMC0wNi0yMiAgSmFjb2IgVXBob2ZmICA8amFjb2JfdXBob2ZmQGFwcGxl
LmNvbT4KIAogICAgICAgICBbIG1hY09TIGlPUyBdIFJFR1JFU1NJT046IGZhc3QvbWVkaWFzdHJl
YW0vbWVkaWFzdHJlYSBtdHJhY2stdmlkZW8tZnJhbWVSYXRlLWNsb24gZS1pbmNyZWFzaW5nLmh0
bWwgaXMgYSBmbGFreSBmYWlsdXJlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy93ZWJhdWRpby9w
YW5uZXJub2RlLWJhc2ljLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5l
cm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0CmluZGV4IGNmODJhY2JiNzk5N2ZmNzUyODU2MmY3MzIw
MDhiZDZlZmUzZmE4MmMuLjY5MDU4ZmFiZTRkYjRmNjRlY2M4ODZjZGE0OWE4N2EwNzQxYjMyZjQg
MTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMtZXhwZWN0
ZWQudHh0CisrKyBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMtZXhwZWN0
ZWQudHh0CkBAIC02LDE2ICs2LDI1IEBAIFBBU1MgUGFubmVyTm9kZSBoYXMgb25lIGlucHV0Lgog
UEFTUyBQYW5uZXJOb2RlIGhhcyBvbmUgb3V0cHV0LgogUEFTUyByZWZEaXN0YW5jZSBkZWZhdWx0
IHZhbHVlIGlzIDEuCiBQQVNTIHJlZkRpc3RhbmNlIHZhbHVlIGlzIHNldCB0byAyNzAuNTIuCitQ
QVNTIEV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gY29ycmVjdGx5IHdoZW4gcmVmRGlzdGFuY2Ug
aXMgc2V0IHRvIG5lZ2F0aXZlIHZhbHVlLgogUEFTUyBtYXhEaXN0YW5jZSBkZWZhdWx0IHZhbHVl
IGlzIDEwMDAwLgogUEFTUyBtYXhEaXN0YW5jZSB2YWx1ZSBpcyBzZXQgdG8gMTAwLjU1LgorUEFT
UyBFeGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGNvcnJlY3RseSB3aGVuIG1heERpc3RhbmNlIGlz
IHNldCB0byBub24tcG9zaXRpdmUgdmFsdWUgKHNldCB0byAwKS4KK1BBU1MgRXhjZXB0aW9uIGhh
cyBiZWVuIHRocm93biBjb3JyZWN0bHkgd2hlbiBtYXhEaXN0YW5jZSBpcyBzZXQgdG8gbm9uLXBv
c2l0aXZlIHZhbHVlIChzZXQgdG8gLTEpLgogUEFTUyByb2xsb2ZmRmFjdG9yIGRlZmF1bHQgdmFs
dWUgaXMgMS4KIFBBU1Mgcm9sbG9mZkZhY3RvciB2YWx1ZSBpcyBzZXQgdG8gMC44My4KK1BBU1Mg
RXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBjb3JyZWN0bHkgd2hlbiByb2xsb2ZmRmFjdG9yIGlz
IHNldCB0byBuZWdhdGl2ZSB2YWx1ZS4KIFBBU1MgY29uZUlubmVyQW5nbGUgZGVmYXVsdCB2YWx1
ZSBpcyAzNjAuCitQQVNTIGNvbmVJbm5lckFuZ2xlIHZhbHVlIGlzIHNldCB0byAwCiBQQVNTIGNv
bmVJbm5lckFuZ2xlIHZhbHVlIGlzIHNldCB0byAyNDAuNDUuCiBQQVNTIGNvbmVPdXRlckFuZ2xl
IGRlZmF1bHQgdmFsdWUgaXMgMzYwLgorUEFTUyBjb25lT3V0ZXJBbmdsZSB2YWx1ZSBpcyBzZXQg
dG8gMC4KIFBBU1MgY29uZU91dGVyQW5nbGUgdmFsdWUgaXMgc2V0IHRvIDE2Ni42Ni4KIFBBU1Mg
Y29uZU91dGVyR2FpbiBkZWZhdWx0IHZhbHVlIGlzIDAuCitQQVNTIGNvbmVPdXRlckdhaW4gdmFs
dWUgaXMgc2V0IHRvIDEuCiBQQVNTIGNvbmVPdXRlckdhaW4gdmFsdWUgaXMgc2V0IHRvIDAuMzUu
CitQQVNTIEV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJvd24gY29ycmVjdGx5IHdoZW4gY29uZU91dGVy
R2FpbiBpcyBzZXQgb3V0c2lkZSBbMCwgMV0gKHdhcyBzZXQgdG8gLTEpLgorUEFTUyBFeGNlcHRp
b24gaGFzIGJlZW4gdGhyb3duIGNvcnJlY3RseSB3aGVuIGNvbmVPdXRlckdhaW4gaXMgc2V0IG91
dHNpZGUgWzAsIDFdICh3YXMgc2V0IHRvIDIpLgogUEFTUyBQYW5uZXJOb2RlIGRlZmF1bHRzIHRv
ICdIUlRGJyBwYW5uaW5nTW9kZWwuCiBQQVNTIFBhbm5lck5vZGUgZGVmYXVsdHMgdG8gJ2ludmVy
c2UnIGRpc3RhbmNlTW9kZWwuCiBQQVNTIHBhbm5pbmdNb2RlbDogJ2VxdWFscG93ZXInIGlzIHNl
dHRhYmxlLgpAQCAtMjMsNiArMzIsMTMgQEAgUEFTUyBwYW5uaW5nTW9kZWw6ICdIUlRGJyBpcyBz
ZXR0YWJsZS4KIFBBU1MgZGlzdGFuY2VNb2RlbDogJ2xpbmVhcicgaXMgc2V0dGFibGUuCiBQQVNT
IGRpc3RhbmNlTW9kZWw6ICdpbnZlcnNlJyBpcyBzZXR0YWJsZS4KIFBBU1MgZGlzdGFuY2VNb2Rl
bDogJ2V4cG9uZW50aWFsJyBpcyBzZXR0YWJsZS4KK1BBU1MgV2l0aCBsaW5lYXIgZGlzdGFuY2VN
b2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMC4KK1BBU1MgV2l0aCBsaW5lYXIgZGlzdGFu
Y2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMC41LgorUEFTUyBXaXRoIGxpbmVhciBk
aXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAxLgorUEFTUyBXaXRoIGludmVy
c2UgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMC4KK1BBU1MgV2l0aCBp
bnZlcnNlIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRvIDEwMDAwLgorUEFT
UyBXaXRoIGV4cG9uZW50aWFsIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3IgaXMgc2V0IHRv
IDAuCitQQVNTIFdpdGggZXhwb25lbnRpYWwgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBp
cyBzZXQgdG8gMTAwMDAuCiBQQVNTIFNldHRpbmcgLmRpc3RhbmNlTW9kZWwgdG8gaWxsZWdhbCBz
dHJpbmcgdmFsdWUgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCiBQQVNTIFNldHRpbmcgLmRp
c3RhbmNlTW9kZWwgdG8gaWxsZWdhbCB0eXBlIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9uLgog
UEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
d2ViYXVkaW8vcGFubmVybm9kZS1iYXNpYy5odG1sIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcGFu
bmVybm9kZS1iYXNpYy5odG1sCmluZGV4IGIwNmQ3OTM3OGE3NGU0MTRiNDEzYWM4ZGUxZWE2ZjE3
NjUyNWRlYTMuLjAxZWQzZDVlNmVjNTc4NTRjMzExOTVjMDQ5YWM4YWY3MDNiNTdhNWIgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3Bhbm5lcm5vZGUtYmFzaWMuaHRtbAorKysgYi9M
YXlvdXRUZXN0cy93ZWJhdWRpby9wYW5uZXJub2RlLWJhc2ljLmh0bWwKQEAgLTE3LDcgKzE3LDcg
QEAgdmFyIGNvbnRleHQgPSAwOwogZnVuY3Rpb24gcnVuVGVzdCgpIHsKICAgICB3aW5kb3cuanNU
ZXN0SXNBc3luYyA9IHRydWU7CiAKLSAgICBjb250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4
dCgpOworICAgIGNvbnRleHQgPSBuZXcgQXVkaW9Db250ZXh0KCk7CiAgICAgdmFyIHBhbm5lciA9
IGNvbnRleHQuY3JlYXRlUGFubmVyKCk7CiAgICAKICAgICBpZiAocGFubmVyLm51bWJlck9mSW5w
dXRzID09PSAxKSAKQEAgLTQwLDYgKzQwLDEzIEBAIGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAg
ICAgIHRlc3RQYXNzZWQoInJlZkRpc3RhbmNlIHZhbHVlIGlzIHNldCB0byAyNzAuNTIuIik7CiAg
ICAgZWxzZQogICAgICAgICB0ZXN0RmFpbGVkKCJyZWZEaXN0YW5jZSB2YWx1ZSBzaG91bGQgYmUg
c2V0IHRvIDI3MC41Mi4iKTsKKworICAgIHRyeSB7CisgICAgICAgIHBhbm5lci5yZWZEaXN0YW5j
ZSA9IC0xCisgICAgICAgIHRlc3RGYWlsZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duIHdo
ZW4gcmVmRGlzdGFuY2UgaXMgc2V0IHRvIG5lZ2F0aXZlIHZhbHVlLiIpOworICAgIH0gY2F0Y2go
ZSkgeworICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGNvcnJl
Y3RseSB3aGVuIHJlZkRpc3RhbmNlIGlzIHNldCB0byBuZWdhdGl2ZSB2YWx1ZS4iKTsKKyAgICB9
CiAgICAgCiAgICAgaWYgKHBhbm5lci5tYXhEaXN0YW5jZSA9PT0gMTAwMDApCiAgICAgICAgIHRl
c3RQYXNzZWQoIm1heERpc3RhbmNlIGRlZmF1bHQgdmFsdWUgaXMgMTAwMDAuIik7CkBAIC01MSw2
ICs1OCwyMCBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAgICAgICB0ZXN0UGFzc2VkKCJtYXhE
aXN0YW5jZSB2YWx1ZSBpcyBzZXQgdG8gMTAwLjU1LiIpOwogICAgIGVsc2UKICAgICAgICAgdGVz
dEZhaWxlZCgibWF4RGlzdGFuY2UgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAxMDAuNTUuIik7CisK
KyAgICB0cnkgeworICAgICAgICBwYW5uZXIubWF4RGlzdGFuY2UgPSAwCisgICAgICAgIHRlc3RG
YWlsZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duIHdoZW4gbWF4RGlzdGFuY2UgaXMgc2V0
IHRvIG5vbi1wb3NpdGl2ZSB2YWx1ZSAoc2V0IHRvIDApLiIpOworICAgIH0gY2F0Y2goZSkgewor
ICAgICAgICB0ZXN0UGFzc2VkKCJFeGNlcHRpb24gaGFzIGJlZW4gdGhyb3duIGNvcnJlY3RseSB3
aGVuIG1heERpc3RhbmNlIGlzIHNldCB0byBub24tcG9zaXRpdmUgdmFsdWUgKHNldCB0byAwKS4i
KTsKKyAgICB9CisKKyAgICB0cnkgeworICAgICAgICBwYW5uZXIubWF4RGlzdGFuY2UgPSAtMQor
ICAgICAgICB0ZXN0RmFpbGVkKCJFeGNlcHRpb24gc2hvdWxkIGJlIHRocm93biB3aGVuIG1heERp
c3RhbmNlIGlzIHNldCB0byBub24tcG9zaXRpdmUgdmFsdWUgKHNldCB0byAtMSkuIik7CisgICAg
fSBjYXRjaChlKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJv
d24gY29ycmVjdGx5IHdoZW4gbWF4RGlzdGFuY2UgaXMgc2V0IHRvIG5vbi1wb3NpdGl2ZSB2YWx1
ZSAoc2V0IHRvIC0xKS4iKTsKKyAgICB9CiAgICAgCiAgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFj
dG9yID09PSAxKQogICAgICAgICB0ZXN0UGFzc2VkKCJyb2xsb2ZmRmFjdG9yIGRlZmF1bHQgdmFs
dWUgaXMgMS4iKTsKQEAgLTYyLDExICs4MywyNCBAQCBmdW5jdGlvbiBydW5UZXN0KCkgewogICAg
ICAgICB0ZXN0UGFzc2VkKCJyb2xsb2ZmRmFjdG9yIHZhbHVlIGlzIHNldCB0byAwLjgzLiIpOwog
ICAgIGVsc2UKICAgICAgICAgdGVzdEZhaWxlZCgicm9sbG9mZkZhY3RvciB2YWx1ZSBzaG91bGQg
YmUgc2V0IHRvIDAuODMuIik7CisKKyAgICB0cnkgeworICAgICAgICBwYW5uZXIucm9sbG9mZkZh
Y3RvciA9IC0xCisgICAgICAgIHRlc3RGYWlsZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3du
IHdoZW4gcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gbmdhdGl2ZSB2YWx1ZS4iKTsKKyAgICB9IGNh
dGNoKGUpIHsKKyAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBj
b3JyZWN0bHkgd2hlbiByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byBuZWdhdGl2ZSB2YWx1ZS4iKTsK
KyAgICB9CiAgICAgCiAgICAgaWYgKHBhbm5lci5jb25lSW5uZXJBbmdsZSA9PT0gMzYwKQogICAg
ICAgICB0ZXN0UGFzc2VkKCJjb25lSW5uZXJBbmdsZSBkZWZhdWx0IHZhbHVlIGlzIDM2MC4iKTsK
ICAgICBlbHNlCiAgICAgICAgIHRlc3RGYWlsZWQoImNvbmVJbm5lckFuZ2xlIGRlZmF1bHQgdmFs
dWUgc2hvdWxkIGJlIDM2MC4iKTsKKworICAgIHBhbm5lci5jb25lSW5uZXJBbmdsZSA9IDAKKyAg
ICBpZiAocGFubmVyLmNvbmVJbm5lckFuZ2xlID09PSAwKQorICAgICAgICB0ZXN0UGFzc2VkKCJj
b25lSW5uZXJBbmdsZSB2YWx1ZSBpcyBzZXQgdG8gMCIpOworICAgIGVsc2UKKyAgICAgICAgdGVz
dEZhaWxlZCgiY29uZUlubmVyQW5nbGUgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAwLiIpOwogICAg
IAogICAgIHBhbm5lci5jb25lSW5uZXJBbmdsZSA9IDI0MC40NQogICAgIGlmIChwYW5uZXIuY29u
ZUlubmVyQW5nbGUgPT09IDI0MC40NSkKQEAgLTc4LDYgKzExMiwxMiBAQCBmdW5jdGlvbiBydW5U
ZXN0KCkgewogICAgICAgICB0ZXN0UGFzc2VkKCJjb25lT3V0ZXJBbmdsZSBkZWZhdWx0IHZhbHVl
IGlzIDM2MC4iKTsKICAgICBlbHNlCiAgICAgICAgIHRlc3RGYWlsZWQoImNvbmVPdXRlckFuZ2xl
IGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDM2MC4iKTsKKworICAgIHBhbm5lci5jb25lT3V0ZXJB
bmdsZSA9IDAKKyAgICBpZiAocGFubmVyLmNvbmVPdXRlckFuZ2xlID09PSAwKQorICAgICAgICB0
ZXN0UGFzc2VkKCJjb25lT3V0ZXJBbmdsZSB2YWx1ZSBpcyBzZXQgdG8gMC4iKTsKKyAgICBlbHNl
CisgICAgICAgIHRlc3RGYWlsZWQoImNvbmVPdXRlckFuZ2xlIHZhbHVlIHNob3VsZCBiZSBzZXQg
dG8gMC4iKTsKICAgICAKICAgICBwYW5uZXIuY29uZU91dGVyQW5nbGUgPSAxNjYuNjYKICAgICBp
ZiAocGFubmVyLmNvbmVPdXRlckFuZ2xlID09PSAxNjYuNjYpCkBAIC05MCwxMiArMTMwLDMyIEBA
IGZ1bmN0aW9uIHJ1blRlc3QoKSB7CiAgICAgZWxzZQogICAgICAgICB0ZXN0RmFpbGVkKCJjb25l
T3V0ZXJHYWluIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDAuIik7CiAKKyAgICBwYW5uZXIuY29u
ZU91dGVyR2FpbiA9IDEKKyAgICBpZiAocGFubmVyLmNvbmVPdXRlckdhaW4gPT09IDEpCisgICAg
ICAgIHRlc3RQYXNzZWQoImNvbmVPdXRlckdhaW4gdmFsdWUgaXMgc2V0IHRvIDEuIik7CisgICAg
ZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJjb25lT3V0ZXJHYWluIHZhbHVlIHNob3VsZCBiZSBz
ZXQgdG8gMS4iKTsKKwogICAgIHBhbm5lci5jb25lT3V0ZXJHYWluID0gMC4zNQogICAgIGlmIChw
YW5uZXIuY29uZU91dGVyR2FpbiA9PT0gMC4zNSkKICAgICAgICAgdGVzdFBhc3NlZCgiY29uZU91
dGVyR2FpbiB2YWx1ZSBpcyBzZXQgdG8gMC4zNS4iKTsKICAgICBlbHNlCiAgICAgICAgIHRlc3RG
YWlsZWQoImNvbmVPdXRlckdhaW4gdmFsdWUgc2hvdWxkIGJlIHNldCB0byAwLjM1LiIpOwogCisg
ICAgdHJ5IHsKKyAgICAgICAgcGFubmVyLmNvbmVPdXRlckdhaW4gPSAtMQorICAgICAgICB0ZXN0
RmFpbGVkKCJFeGNlcHRpb24gc2hvdWxkIGJlIHRocm93biB3aGVuIGNvbmVPdXRlckdhaW4gaXMg
c2V0IG91dHNpZGUgWzAsIDFdICh3YXMgc2V0IHRvIC0xKS4iKTsKKyAgICB9IGNhdGNoKGUpIHsK
KyAgICAgICAgdGVzdFBhc3NlZCgiRXhjZXB0aW9uIGhhcyBiZWVuIHRocm93biBjb3JyZWN0bHkg
d2hlbiBjb25lT3V0ZXJHYWluIGlzIHNldCBvdXRzaWRlIFswLCAxXSAod2FzIHNldCB0byAtMSku
Iik7CisgICAgfQorCisgICAgdHJ5IHsKKyAgICAgICAgcGFubmVyLmNvbmVPdXRlckdhaW4gPSAy
CisgICAgICAgIHRlc3RGYWlsZWQoIkV4Y2VwdGlvbiBzaG91bGQgYmUgdGhyb3duIHdoZW4gY29u
ZU91dGVyR2FpbiBpcyBzZXQgb3V0c2lkZSBbMCwgMV0gKHdhcyBzZXQgdG8gMikuIik7CisgICAg
fSBjYXRjaChlKSB7CisgICAgICAgIHRlc3RQYXNzZWQoIkV4Y2VwdGlvbiBoYXMgYmVlbiB0aHJv
d24gY29ycmVjdGx5IHdoZW4gY29uZU91dGVyR2FpbiBpcyBzZXQgb3V0c2lkZSBbMCwgMV0gKHdh
cyBzZXQgdG8gMikuIik7CisgICAgfQorCiAgICAgaWYgKHBhbm5lci5wYW5uaW5nTW9kZWwgPT09
ICJIUlRGIikKICAgICAgICAgdGVzdFBhc3NlZCgiUGFubmVyTm9kZSBkZWZhdWx0cyB0byAnSFJU
RicgcGFubmluZ01vZGVsLiIpOwogICAgIGVsc2UKQEAgLTE0OCw2ICsyMDgsNTggQEAgZnVuY3Rp
b24gcnVuVGVzdCgpIHsKICAgICAgICAgfQogICAgIH0KIAorICAgIC8vIFRlc3Rpbmcgcm9sbG9m
ZkZhY3RvciB3aGVuIGRpc3RhbmNlTW9kZWwgaXMgbGluZWFyCisgICAgcGFubmVyLmRpc3RhbmNl
TW9kZWwgPSBkaXN0YW5jZU1vZGVsc1swXS52YWx1ZQorCisgICAgcGFubmVyLnJvbGxvZmZGYWN0
b3IgPSAwCisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAwKQorICAgICAgICB0ZXN0
UGFzc2VkKCJXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0
byAwLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiV2l0aCBsaW5lYXIgZGlzdGFu
Y2VNb2RlbCwgcm9sbG9mZkZhY3RvciBzaG91bGQgYmUgc2V0IHRvIDAuIik7CisKKyAgICBwYW5u
ZXIucm9sbG9mZkZhY3RvciA9IDAuNQorICAgIGlmIChwYW5uZXIucm9sbG9mZkZhY3RvciA9PT0g
MC41KQorICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xs
b2ZmRmFjdG9yIGlzIHNldCB0byAwLjUuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVk
KCJXaXRoIGxpbmVhciBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQg
dG8gMC41LiIpOworCisgICAgcGFubmVyLnJvbGxvZmZGYWN0b3IgPSAxCisgICAgaWYgKHBhbm5l
ci5yb2xsb2ZmRmFjdG9yID09PSAxKQorICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGxpbmVhciBk
aXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAxLiIpOworICAgIGVsc2UKKyAg
ICAgICAgdGVzdEZhaWxlZCgiV2l0aCBsaW5lYXIgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3Rv
ciBzaG91bGQgYmUgc2V0IHRvIDEuIik7CisKKyAgICAvLyBGSVhNRTogSW1wbGVtZW50IGNsYW1w
aW5nIHRlc3QgZm9yIGxpbmVhciBtb2RlbCBvbmNlIGZlZWRiYWNrIGlzIHJlY2VpdmVkCisKKyAg
ICBwYW5uZXIuZGlzdGFuY2VNb2RlbCA9IGRpc3RhbmNlTW9kZWxzWzFdLnZhbHVlCisKKyAgICBw
YW5uZXIucm9sbG9mZkZhY3RvciA9IDAKKyAgICBpZiAocGFubmVyLnJvbGxvZmZGYWN0b3IgPT09
IDApCisgICAgICAgIHRlc3RQYXNzZWQoIldpdGggaW52ZXJzZSBkaXN0YW5jZU1vZGVsLCByb2xs
b2ZmRmFjdG9yIGlzIHNldCB0byAwLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgi
V2l0aCBpbnZlcnNlIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Igc2hvdWxkIGJlIHNldCB0
byAwLiIpOworCisgICAgcGFubmVyLnJvbGxvZmZGYWN0b3IgPSAxMDAwMAorICAgIGlmIChwYW5u
ZXIucm9sbG9mZkZhY3RvciA9PT0gMTAwMDApCisgICAgICAgIHRlc3RQYXNzZWQoIldpdGggaW52
ZXJzZSBkaXN0YW5jZU1vZGVsLCByb2xsb2ZmRmFjdG9yIGlzIHNldCB0byAxMDAwMC4iKTsKKyAg
ICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIldpdGggaW52ZXJzZSBkaXN0YW5jZU1vZGVsLCBy
b2xsb2ZmRmFjdG9yIHNob3VsZCBiZSBzZXQgdG8gMTAwMDAuIik7CisKKyAgICAvLyBUZXN0aW5n
IHJvbGxPZmZGYWN0b3Igd2hlbiBkaXN0YW5jZU1vZGVsIGlzIGV4cG9uZW50aWFsCisgICAgcGFu
bmVyLmRpc3RhbmNlTW9kZWwgPSBkaXN0YW5jZU1vZGVsc1syXS52YWx1ZQorCisgICAgcGFubmVy
LnJvbGxvZmZGYWN0b3IgPSAwCisgICAgaWYgKHBhbm5lci5yb2xsb2ZmRmFjdG9yID09PSAwKQor
ICAgICAgICB0ZXN0UGFzc2VkKCJXaXRoIGV4cG9uZW50aWFsIGRpc3RhbmNlTW9kZWwsIHJvbGxv
ZmZGYWN0b3IgaXMgc2V0IHRvIDAuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJX
aXRoIGV4cG9uZW50aWFsIGRpc3RhbmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Igc2hvdWxkIGJlIHNl
dCB0byAwLiIpOworCisgICAgcGFubmVyLnJvbGxvZmZGYWN0b3IgPSAxMDAwMAorICAgIGlmIChw
YW5uZXIucm9sbG9mZkZhY3RvciA9PT0gMTAwMDApCisgICAgICAgIHRlc3RQYXNzZWQoIldpdGgg
ZXhwb25lbnRpYWwgZGlzdGFuY2VNb2RlbCwgcm9sbG9mZkZhY3RvciBpcyBzZXQgdG8gMTAwMDAu
Iik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJXaXRoIGV4cG9uZW50aWFsIGRpc3Rh
bmNlTW9kZWwsIHJvbGxvZmZGYWN0b3Igc2hvdWxkIGJlIHNldCB0byAxMDAwMC4iKTsKKwogICAg
IC8vIENoZWNrIHRoYXQgd2UgZG9uJ3QgdGhyb3cgYW4gZXhjZXB0aW9uIGZvciBpbGxlZ2FsIC5k
aXN0YW5jZU1vZGVsIHZhbHVlcyBhcyBwZXIgV2ViSURMLgogICAgIHNob3VsZE5vdFRocm93RXhj
ZXB0aW9uKGZ1bmN0aW9uKCkgeyBwYW5uZXIuZGlzdGFuY2VNb2RlbCA9ICJ4eXoxMjM0OWpma3Nk
IjsgfSwgIlNldHRpbmcgLmRpc3RhbmNlTW9kZWwgdG8gaWxsZWdhbCBzdHJpbmcgdmFsdWUiKTsK
ICAgICBzaG91bGROb3RUaHJvd0V4Y2VwdGlvbihmdW5jdGlvbigpIHsgcGFubmVyLmRpc3RhbmNl
TW9kZWwgPSBuZXcgRmxvYXQzMkFycmF5KDEpOyB9LCAiU2V0dGluZyAuZGlzdGFuY2VNb2RlbCB0
byBpbGxlZ2FsIHR5cGUiKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3ByZWZp
eGVkLXBhbm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8v
cHJlZml4ZWQtcGFubmVybm9kZS1iYXNpYy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGNkOGJh
ZTViNzRkMmZhZGE3MDBhMjJmYjYwNGYzMGNhYmM5MjdlYgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3dlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMzEgQEAKK0Jhc2ljIHRlc3RzIGZvciBXZWJLaXQgUHJlZml4ZWQgUGFubmVy
Tm9kZS4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9mICJQQVNTIiBtZXNz
YWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCitQQVNTIFBhbm5lck5vZGUgaGFz
IG9uZSBpbnB1dC4KK1BBU1MgUGFubmVyTm9kZSBoYXMgb25lIG91dHB1dC4KK1BBU1MgcmVmRGlz
dGFuY2UgZGVmYXVsdCB2YWx1ZSBpcyAxLgorUEFTUyByZWZEaXN0YW5jZSB2YWx1ZSBpcyBzZXQg
dG8gMjcwLjUyLgorUEFTUyBtYXhEaXN0YW5jZSBkZWZhdWx0IHZhbHVlIGlzIDEwMDAwLgorUEFT
UyBtYXhEaXN0YW5jZSB2YWx1ZSBpcyBzZXQgdG8gMTAwLjU1LgorUEFTUyByb2xsb2ZmRmFjdG9y
IGRlZmF1bHQgdmFsdWUgaXMgMS4KK1BBU1Mgcm9sbG9mZkZhY3RvciB2YWx1ZSBpcyBzZXQgdG8g
MC44My4KK1BBU1MgY29uZUlubmVyQW5nbGUgZGVmYXVsdCB2YWx1ZSBpcyAzNjAuCitQQVNTIGNv
bmVJbm5lckFuZ2xlIHZhbHVlIGlzIHNldCB0byAyNDAuNDUuCitQQVNTIGNvbmVPdXRlckFuZ2xl
IGRlZmF1bHQgdmFsdWUgaXMgMzYwLgorUEFTUyBjb25lT3V0ZXJBbmdsZSB2YWx1ZSBpcyBzZXQg
dG8gMTY2LjY2LgorUEFTUyBjb25lT3V0ZXJHYWluIGRlZmF1bHQgdmFsdWUgaXMgMC4KK1BBU1Mg
Y29uZU91dGVyR2FpbiB2YWx1ZSBpcyBzZXQgdG8gMC4zNS4KK1BBU1MgUGFubmVyTm9kZSBkZWZh
dWx0cyB0byAnSFJURicgcGFubmluZ01vZGVsLgorUEFTUyBQYW5uZXJOb2RlIGRlZmF1bHRzIHRv
ICdpbnZlcnNlJyBkaXN0YW5jZU1vZGVsLgorUEFTUyBwYW5uaW5nTW9kZWw6ICdlcXVhbHBvd2Vy
JyBpcyBzZXR0YWJsZS4KK1BBU1MgcGFubmluZ01vZGVsOiAnSFJURicgaXMgc2V0dGFibGUuCitQ
QVNTIGRpc3RhbmNlTW9kZWw6ICdsaW5lYXInIGlzIHNldHRhYmxlLgorUEFTUyBkaXN0YW5jZU1v
ZGVsOiAnaW52ZXJzZScgaXMgc2V0dGFibGUuCitQQVNTIGRpc3RhbmNlTW9kZWw6ICdleHBvbmVu
dGlhbCcgaXMgc2V0dGFibGUuCitQQVNTIFNldHRpbmcgLmRpc3RhbmNlTW9kZWwgdG8gaWxsZWdh
bCBzdHJpbmcgdmFsdWUgZGlkIG5vdCB0aHJvdyBhbiBleGNlcHRpb24uCitQQVNTIFNldHRpbmcg
LmRpc3RhbmNlTW9kZWwgdG8gaWxsZWdhbCB0eXBlIGRpZCBub3QgdGhyb3cgYW4gZXhjZXB0aW9u
LgorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCisKZGlm
ZiAtLWdpdCBhL0xheW91dFRlc3RzL3dlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMu
aHRtbCBiL0xheW91dFRlc3RzL3dlYmF1ZGlvL3ByZWZpeGVkLXBhbm5lcm5vZGUtYmFzaWMuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi5hNGMzYzkyYjU2ODA5MjQxMzZkZWUwYzFjMzMzYzY1N2Y0MzZlZmQ3Ci0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvd2ViYXVkaW8vcHJlZml4ZWQtcGFubmVybm9k
ZS1iYXNpYy5odG1sCkBAIC0wLDAgKzEsMTYyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2pzLXRlc3QuanMiPjwvc2NyaXB0Pgor
PHNjcmlwdCBzcmM9InJlc291cmNlcy9hdWRpby10ZXN0aW5nLmpzIj48L3NjcmlwdD4KKzwvaGVh
ZD4KKworPGJvZHk+Cis8ZGl2IGlkPSJkZXNjcmlwdGlvbiI+PC9kaXY+Cis8ZGl2IGlkPSJjb25z
b2xlIj48L2Rpdj4KKworPHNjcmlwdD4KK2Rlc2NyaXB0aW9uKCJCYXNpYyB0ZXN0cyBmb3IgV2Vi
S2l0IFByZWZpeGVkIFBhbm5lck5vZGUuIik7CisKK3ZhciBjb250ZXh0ID0gMDsKKworZnVuY3Rp
b24gcnVuVGVzdCgpIHsKKyAgICB3aW5kb3cuanNUZXN0SXNBc3luYyA9IHRydWU7CisKKyAgICBj
b250ZXh0ID0gbmV3IHdlYmtpdEF1ZGlvQ29udGV4dCgpOworICAgIHZhciBwYW5uZXIgPSBjb250
ZXh0LmNyZWF0ZVBhbm5lcigpOworICAgCisgICAgaWYgKHBhbm5lci5udW1iZXJPZklucHV0cyA9
PT0gMSkgCisgICAgICAgIHRlc3RQYXNzZWQoIlBhbm5lck5vZGUgaGFzIG9uZSBpbnB1dC4iKTsK
KyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoIlBhbm5lck5vZGUgc2hvdWxkIGhhdmUgb25l
IGlucHV0LiIpOworICAgIAorICAgIGlmIChwYW5uZXIubnVtYmVyT2ZPdXRwdXRzID09PSAxKSAK
KyAgICAgICAgdGVzdFBhc3NlZCgiUGFubmVyTm9kZSBoYXMgb25lIG91dHB1dC4iKTsKKyAgICBl
bHNlCisgICAgICAgIHRlc3RGYWlsZWQoIlBhbm5lck5vZGUgc2hvdWxkIGhhdmUgb25lIG91dHB1
dC4iKTsKKworICAgIGlmIChwYW5uZXIucmVmRGlzdGFuY2UgPT09IDEpCisgICAgICAgIHRlc3RQ
YXNzZWQoInJlZkRpc3RhbmNlIGRlZmF1bHQgdmFsdWUgaXMgMS4iKTsKKyAgICBlbHNlCisgICAg
ICAgIHRlc3RGYWlsZWQoInJlZkRpc3RhbmNlIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJlIDEuIik7
CisgICAgCisgICAgcGFubmVyLnJlZkRpc3RhbmNlID0gMjcwLjUyCisgICAgaWYgKHBhbm5lci5y
ZWZEaXN0YW5jZSA9PT0gMjcwLjUyKQorICAgICAgICB0ZXN0UGFzc2VkKCJyZWZEaXN0YW5jZSB2
YWx1ZSBpcyBzZXQgdG8gMjcwLjUyLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgi
cmVmRGlzdGFuY2UgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAyNzAuNTIuIik7CisgICAgCisgICAg
aWYgKHBhbm5lci5tYXhEaXN0YW5jZSA9PT0gMTAwMDApCisgICAgICAgIHRlc3RQYXNzZWQoIm1h
eERpc3RhbmNlIGRlZmF1bHQgdmFsdWUgaXMgMTAwMDAuIik7CisgICAgZWxzZQorICAgICAgICB0
ZXN0RmFpbGVkKCJtYXhEaXN0YW5jZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAxMDAwMC4iKTsK
KyAgICAKKyAgICBwYW5uZXIubWF4RGlzdGFuY2UgPSAxMDAuNTUKKyAgICBpZiAocGFubmVyLm1h
eERpc3RhbmNlID09PSAxMDAuNTUpCisgICAgICAgIHRlc3RQYXNzZWQoIm1heERpc3RhbmNlIHZh
bHVlIGlzIHNldCB0byAxMDAuNTUuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJt
YXhEaXN0YW5jZSB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDEwMC41NS4iKTsKKyAgICAKKyAgICBp
ZiAocGFubmVyLnJvbGxvZmZGYWN0b3IgPT09IDEpCisgICAgICAgIHRlc3RQYXNzZWQoInJvbGxv
ZmZGYWN0b3IgZGVmYXVsdCB2YWx1ZSBpcyAxLiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZh
aWxlZCgicm9sbG9mZkZhY3RvciBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAxLiIpOworICAgIAor
ICAgIHBhbm5lci5yb2xsb2ZmRmFjdG9yID0gMC44MworICAgIGlmIChwYW5uZXIucm9sbG9mZkZh
Y3RvciA9PT0gMC44MykKKyAgICAgICAgdGVzdFBhc3NlZCgicm9sbG9mZkZhY3RvciB2YWx1ZSBp
cyBzZXQgdG8gMC44My4iKTsKKyAgICBlbHNlCisgICAgICAgIHRlc3RGYWlsZWQoInJvbGxvZmZG
YWN0b3IgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAwLjgzLiIpOworICAgIAorICAgIGlmIChwYW5u
ZXIuY29uZUlubmVyQW5nbGUgPT09IDM2MCkKKyAgICAgICAgdGVzdFBhc3NlZCgiY29uZUlubmVy
QW5nbGUgZGVmYXVsdCB2YWx1ZSBpcyAzNjAuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFp
bGVkKCJjb25lSW5uZXJBbmdsZSBkZWZhdWx0IHZhbHVlIHNob3VsZCBiZSAzNjAuIik7CisgICAg
CisgICAgcGFubmVyLmNvbmVJbm5lckFuZ2xlID0gMjQwLjQ1CisgICAgaWYgKHBhbm5lci5jb25l
SW5uZXJBbmdsZSA9PT0gMjQwLjQ1KQorICAgICAgICB0ZXN0UGFzc2VkKCJjb25lSW5uZXJBbmds
ZSB2YWx1ZSBpcyBzZXQgdG8gMjQwLjQ1LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVzdEZhaWxl
ZCgiY29uZUlubmVyQW5nbGUgdmFsdWUgc2hvdWxkIGJlIHNldCB0byAyNDAuNDUuIik7CisgICAg
CisgICAgaWYgKHBhbm5lci5jb25lT3V0ZXJBbmdsZSA9PT0gMzYwKQorICAgICAgICB0ZXN0UGFz
c2VkKCJjb25lT3V0ZXJBbmdsZSBkZWZhdWx0IHZhbHVlIGlzIDM2MC4iKTsKKyAgICBlbHNlCisg
ICAgICAgIHRlc3RGYWlsZWQoImNvbmVPdXRlckFuZ2xlIGRlZmF1bHQgdmFsdWUgc2hvdWxkIGJl
IDM2MC4iKTsKKyAgICAKKyAgICBwYW5uZXIuY29uZU91dGVyQW5nbGUgPSAxNjYuNjYKKyAgICBp
ZiAocGFubmVyLmNvbmVPdXRlckFuZ2xlID09PSAxNjYuNjYpCisgICAgICAgIHRlc3RQYXNzZWQo
ImNvbmVPdXRlckFuZ2xlIHZhbHVlIGlzIHNldCB0byAxNjYuNjYuIik7CisgICAgZWxzZQorICAg
ICAgICB0ZXN0RmFpbGVkKCJjb25lT3V0ZXJBbmdsZSB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDE2
Ni42Ni4iKTsKKyAgICAKKyAgICBpZiAocGFubmVyLmNvbmVPdXRlckdhaW4gPT09IDApCisgICAg
ICAgIHRlc3RQYXNzZWQoImNvbmVPdXRlckdhaW4gZGVmYXVsdCB2YWx1ZSBpcyAwLiIpOworICAg
IGVsc2UKKyAgICAgICAgdGVzdEZhaWxlZCgiY29uZU91dGVyR2FpbiBkZWZhdWx0IHZhbHVlIHNo
b3VsZCBiZSAwLiIpOworCisgICAgcGFubmVyLmNvbmVPdXRlckdhaW4gPSAwLjM1CisgICAgaWYg
KHBhbm5lci5jb25lT3V0ZXJHYWluID09PSAwLjM1KQorICAgICAgICB0ZXN0UGFzc2VkKCJjb25l
T3V0ZXJHYWluIHZhbHVlIGlzIHNldCB0byAwLjM1LiIpOworICAgIGVsc2UKKyAgICAgICAgdGVz
dEZhaWxlZCgiY29uZU91dGVyR2FpbiB2YWx1ZSBzaG91bGQgYmUgc2V0IHRvIDAuMzUuIik7CisK
KyAgICBpZiAocGFubmVyLnBhbm5pbmdNb2RlbCA9PT0gIkhSVEYiKQorICAgICAgICB0ZXN0UGFz
c2VkKCJQYW5uZXJOb2RlIGRlZmF1bHRzIHRvICdIUlRGJyBwYW5uaW5nTW9kZWwuIik7CisgICAg
ZWxzZQorICAgICAgICB0ZXN0RmFpbGVkKCJQYW5uZXJOb2RlIHNob3VsZCBkZWZhdWx0IHRvICdI
UlRGJyBwYW5uaW5nTW9kZWwuIik7CisgICAgCisgICAgaWYgKHBhbm5lci5kaXN0YW5jZU1vZGVs
ID09PSAiaW52ZXJzZSIpCisgICAgICAgIHRlc3RQYXNzZWQoIlBhbm5lck5vZGUgZGVmYXVsdHMg
dG8gJ2ludmVyc2UnIGRpc3RhbmNlTW9kZWwuIik7CisgICAgZWxzZQorICAgICAgICB0ZXN0RmFp
bGVkKCJQYW5uZXJOb2RlIHNob3VsZCBkZWZhdWx0IHRvICdpbnZlcnNlJyBkaXN0YW5jZU1vZGVs
LiIpOworCisgICAgLy8gQ2hlY2sgdGhhdCB0aGUgLnBhbm5pbmdNb2RlbCBhdHRyaWJ1dGUgY2Fu
IGJlIHNldCB0byBhbGwgbGVnYWwgdmFsdWVzLgorICAgIHZhciBwYW5uaW5nTW9kZWxzID0gW3t2
YWx1ZTogImVxdWFscG93ZXIifSwKKyAgICAgICAgICAgICAgICAgICAgICAgICB7dmFsdWU6ICJI
UlRGIn0sCisgICAgICAgICAgICAgICAgICAgICAgICBdOworCisgICAgZm9yICh2YXIgaSA9IDA7
IGkgPCBwYW5uaW5nTW9kZWxzLmxlbmd0aDsgKytpKSB7CisgICAgICAgIHRyeSB7CisgICAgICAg
ICAgICBwYW5uZXIucGFubmluZ01vZGVsID0gcGFubmluZ01vZGVsc1tpXS52YWx1ZTsKKyAgICAg
ICAgICAgIGlmIChwYW5uZXIucGFubmluZ01vZGVsID09PSBwYW5uaW5nTW9kZWxzW2ldLnZhbHVl
KSB7CisgICAgICAgICAgICAgICAgdmFyIG1lc3NhZ2UgPSAicGFubmluZ01vZGVsOiAnIiArIHBh
bm5pbmdNb2RlbHNbaV0udmFsdWUgKyAiJyBpcyBzZXR0YWJsZS4iOworICAgICAgICAgICAgICAg
IHRlc3RQYXNzZWQobWVzc2FnZSk7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAg
ICAgIHZhciBtZXNzYWdlID0gInBhbm5pbmdNb2RlbDogJyIgKyBwYW5uaW5nTW9kZWxzW2ldLnZh
bHVlICsgIicgd2FzIG5vdCBjb3JyZWN0bHkgc2V0LiI7CisgICAgICAgICAgICAgICAgdGVzdEZh
aWxlZChtZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfSBjYXRjaChlKSB7CisgICAg
ICAgICAgICB2YXIgbWVzc2FnZSA9ICJTZXR0aW5nIHBhbm5pbmdNb2RlbCB0byAnIiArIHBhbm5p
bmdNb2RlbHNbaV0udmFsdWUgKyAiJyBzaG91bGQgbm90IHRocm93IGV4Y2VwdGlvbi4iOworICAg
ICAgICAgICAgdGVzdEZhaWxlZChtZXNzYWdlKTsKKyAgICAgICAgfQorICAgIH0KKworICAgIC8v
IENoZWNrIHRoYXQgdGhlIC5kaXN0YW5jZU1vZGVsIGF0dHJpYnV0ZSBjYW4gYmUgc2V0IHRvIGFs
bCBsZWdhbCB2YWx1ZXMuCisgICAgdmFyIGRpc3RhbmNlTW9kZWxzID0gW3t2YWx1ZTogImxpbmVh
ciJ9LAorICAgICAgICAgICAgICAgICAgICAgICAgICB7dmFsdWU6ICJpbnZlcnNlIn0sCisgICAg
ICAgICAgICAgICAgICAgICAgICAgIHt2YWx1ZTogImV4cG9uZW50aWFsIn1dOworCisgICAgZm9y
ICh2YXIgaSA9IDA7IGkgPCBkaXN0YW5jZU1vZGVscy5sZW5ndGg7ICsraSkgeworICAgICAgICB0
cnkgeworICAgICAgICAgICAgcGFubmVyLmRpc3RhbmNlTW9kZWwgPSBkaXN0YW5jZU1vZGVsc1tp
XS52YWx1ZTsKKyAgICAgICAgICAgIGlmIChwYW5uZXIuZGlzdGFuY2VNb2RlbCA9PT0gZGlzdGFu
Y2VNb2RlbHNbaV0udmFsdWUpIHsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9ICJkaXN0
YW5jZU1vZGVsOiAnIiArIGRpc3RhbmNlTW9kZWxzW2ldLnZhbHVlICsgIicgaXMgc2V0dGFibGUu
IjsKKyAgICAgICAgICAgICAgICB0ZXN0UGFzc2VkKG1lc3NhZ2UpOworICAgICAgICAgICAgfSBl
bHNlIHsKKyAgICAgICAgICAgICAgICB2YXIgbWVzc2FnZSA9ICJkaXN0YW5jZU1vZGVsOiAnIiAr
IGRpc3RhbmNlTW9kZWxzW2ldLnZhbHVlICsgIicgd2FzIG5vdCBjb3JyZWN0bHkgc2V0LiI7Cisg
ICAgICAgICAgICAgICAgdGVzdEZhaWxlZChtZXNzYWdlKTsKKyAgICAgICAgICAgIH0KKyAgICAg
ICAgfSBjYXRjaChlKSB7CisgICAgICAgICAgICB2YXIgbWVzc2FnZSA9ICJTZXR0aW5nIGRpc3Rh
bmNlTW9kZWwgdG8gJyIgKyBkaXN0YW5jZU1vZGVsc1tpXS52YWx1ZSArICInIHNob3VsZCBub3Qg
dGhyb3cgZXhjZXB0aW9uLiI7CisgICAgICAgICAgICB0ZXN0RmFpbGVkKG1lc3NhZ2UpOworICAg
ICAgICB9CisgICAgfQorCisgICAgLy8gQ2hlY2sgdGhhdCB3ZSBkb24ndCB0aHJvdyBhbiBleGNl
cHRpb24gZm9yIGlsbGVnYWwgLmRpc3RhbmNlTW9kZWwgdmFsdWVzIGFzIHBlciBXZWJJREwuCisg
ICAgc2hvdWxkTm90VGhyb3dFeGNlcHRpb24oZnVuY3Rpb24oKSB7IHBhbm5lci5kaXN0YW5jZU1v
ZGVsID0gInh5ejEyMzQ5amZrc2QiOyB9LCAiU2V0dGluZyAuZGlzdGFuY2VNb2RlbCB0byBpbGxl
Z2FsIHN0cmluZyB2YWx1ZSIpOworICAgIHNob3VsZE5vdFRocm93RXhjZXB0aW9uKGZ1bmN0aW9u
KCkgeyBwYW5uZXIuZGlzdGFuY2VNb2RlbCA9IG5ldyBGbG9hdDMyQXJyYXkoMSk7IH0sICJTZXR0
aW5nIC5kaXN0YW5jZU1vZGVsIHRvIGlsbGVnYWwgdHlwZSIpOworCisgICAgZmluaXNoSlNUZXN0
KCk7Cit9CisKK3J1blRlc3QoKTsKKworPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>