<?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>217002</bug_id>
          
          <creation_ts>2020-09-25 16:44:35 -0700</creation_ts>
          <short_desc>Remove support for setting CMYKA fill and stroke colors in 2D canvas</short_desc>
          <delta_ts>2020-09-26 19:49:52 -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>Canvas</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Wenson Hsieh">wenson_hsieh</reporter>
          <assigned_to name="Wenson Hsieh">wenson_hsieh</assigned_to>
          <cc>cdumez</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>hi</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>sabouhallawa</cc>
    
    <cc>sam</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1692109</commentid>
    <comment_count>0</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-25 16:44:35 -0700</bug_when>
    <thetext>`CanvasRenderingContext2D.setFillColor(c, m, y, k, a)` and `CanvasRenderingContext2D.setStrokeColor(c, m, y, k, a)` are both non-standard, and unsupported in both Chrome and Firefox.

(Additionally, `setFillColor` and `setStrokeColor` are also nonstandard, though this patch will only track removing support for setting CMYKA fill and stroke colors via setFillColor and setStrokeColor).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692209</commentid>
    <comment_count>1</comment_count>
      <attachid>409789</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-26 13:45:43 -0700</bug_when>
    <thetext>Created attachment 409789
For EWS</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692214</commentid>
    <comment_count>2</comment_count>
      <attachid>409791</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-26 14:31:48 -0700</bug_when>
    <thetext>Created attachment 409791
Rebaseline more tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692233</commentid>
    <comment_count>3</comment_count>
    <who name="Sam Weinig">sam</who>
    <bug_when>2020-09-26 15:26:38 -0700</bug_when>
    <thetext>Do you have any telemetry indicating this is ok to remove (kind of rhetorical, I expect the answer is no). There is quite a bit of WebKit only canvas code. While I would love to remove a ton of these non-standard APIs we have, it doesn&apos;t seem to safe to do until there is some indication of usage.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692237</commentid>
    <comment_count>4</comment_count>
      <attachid>409791</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-26 15:57:02 -0700</bug_when>
    <thetext>Comment on attachment 409791
Rebaseline more tests

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        In lieu of adding new DisplayList items to support setting fill and stroke colors with CMYKA components,
&gt; +        we can take this opportunity to just drop support for this canvas API entirely. Fixes the following tests
&gt; +        when using the GPU Process to render canvas:

I understand this feature is WebKit-only; WebKit’s canvas was the original and predates the standard. How did you determine this feature is not used?

&gt; Source/WebCore/html/canvas/CanvasStyle.h:107
&gt; +    return serializationForHTML(WTF::holds_alternative&lt;Color&gt;(m_style) ? WTF::get&lt;Color&gt;(m_style) : Color());

This should just call get&lt;Color&gt;, no need to call holds_alternative&lt;&gt;. The function had a precondition before that it m_style needed to be either Color or CMYKAColor, and it would assert if that was not so. No reason we have to add support for the case where it’s neither just because we are removing CMYKAColor.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692238</commentid>
    <comment_count>5</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-26 16:02:20 -0700</bug_when>
    <thetext>(In reply to Sam Weinig from comment #3)
&gt; Do you have any telemetry indicating this is ok to remove (kind of
&gt; rhetorical, I expect the answer is no). There is quite a bit of WebKit only
&gt; canvas code. While I would love to remove a ton of these non-standard APIs
&gt; we have, it doesn&apos;t seem to safe to do until there is some indication of
&gt; usage.

I verified that at least no Apple-internal clients use the CMYKA (i.e. 5 argument) variant of setFillColor or setStrokeColor, but unfortunately, I don’t have telemetry for the usage of these CMYKA setters on the web :(. I did, however, find one internal use of the RGBA (4 argument) version of setFillColor, which does make me believe that we should hold off on removing the setFillColor or setStrokeColor methods entirely.

I do think it’s unlikely enough that any websites would be using these 5-argument CMYKA methods, such that we could _probably_ remove them without risk of breaking anything.

I originally considered implementing these CMYKA setters using new display list items for GPUP, but after talking with Dean and Simon last year, we came to the conclusion that it would be better to just remove these instead…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692244</commentid>
    <comment_count>6</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-09-26 16:21:51 -0700</bug_when>
    <thetext>(In reply to Wenson Hsieh from comment #5)
&gt; I do think it’s unlikely enough that any websites would be using these
&gt; 5-argument CMYKA methods, such that we could _probably_ remove them without
&gt; risk of breaking anything.

Sure, there probably aren’t a lot of websites that are intentionally WebKit-only, and it seems unlikely someone would do this by mistake.

We do need to consider apps with embedded HTML content. The &lt;canvas&gt; element was originally designed for use by Dashboard widgets, which, like HTML content in apps, might only be tested with WebKit.

I’m not saying we can’t &quot;play the odds&quot; here, but there is a chance this breaks an iOS app, for example. On the other hand, that’s true almost any time we change WebKit’s behavior, whether our goal is fixing a bug or changing to be more like other web engines for better interoperability and standards compliance.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692248</commentid>
    <comment_count>7</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-26 16:34:29 -0700</bug_when>
    <thetext>(In reply to Darin Adler from comment #6)
&gt; (In reply to Wenson Hsieh from comment #5)
&gt; &gt; I do think it’s unlikely enough that any websites would be using these
&gt; &gt; 5-argument CMYKA methods, such that we could _probably_ remove them without
&gt; &gt; risk of breaking anything.
&gt; 
&gt; Sure, there probably aren’t a lot of websites that are intentionally
&gt; WebKit-only, and it seems unlikely someone would do this by mistake.
&gt; 
&gt; We do need to consider apps with embedded HTML content. The &lt;canvas&gt; element
&gt; was originally designed for use by Dashboard widgets, which, like HTML
&gt; content in apps, might only be tested with WebKit.

I see!

&gt; 
&gt; I’m not saying we can’t &quot;play the odds&quot; here, but there is a chance this
&gt; breaks an iOS app, for example. On the other hand, that’s true almost any
&gt; time we change WebKit’s behavior, whether our goal is fixing a bug or
&gt; changing to be more like other web engines for better interoperability and
&gt; standards compliance.

That’s true — 3rd party app compatibility is a potential risk, though it still seems super unlikely that any apps will be affected. If we do see any reports, I suppose we could enable this at runtime behind a linked-on-or-after check...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692254</commentid>
    <comment_count>8</comment_count>
      <attachid>409800</attachid>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-09-26 17:15:44 -0700</bug_when>
    <thetext>Created attachment 409800
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692273</commentid>
    <comment_count>9</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-26 19:48:44 -0700</bug_when>
    <thetext>Committed r267645: &lt;https://trac.webkit.org/changeset/267645&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 409800.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1692274</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-26 19:49:52 -0700</bug_when>
    <thetext>&lt;rdar://problem/69641490&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409789</attachid>
            <date>2020-09-26 13:45:43 -0700</date>
            <delta_ts>2020-09-26 14:31:47 -0700</delta_ts>
            <desc>For EWS</desc>
            <filename>bug-217002-20200926134543.patch</filename>
            <type>text/plain</type>
            <size>14282</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzJjOTE4MDIwOTgxNzg2
ZGE5YzY3NTAyYTI2ODM5MTIyNWY4ZDQ2Zi4uNzdmMjU0MDJhZWZhNDY1ZGMzYTcwOWU1MGFjOTk5
MzMxMGI4MDU5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTA5LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzdXBw
b3J0IGZvciBzZXR0aW5nIENNWUtBIGZpbGwgYW5kIHN0cm9rZSBjb2xvcnMgaW4gMkQgY2FudmFz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcwMDIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
c3VwcG9ydCBmb3IgYHNldEZpbGxDb2xvcihjLCBtLCB5LCBrLCBhKWAgYW5kIGBzZXRTdHJva2VD
b2xvcihjLCBtLCB5LCBrLCBhKWAgb24KKyAgICAgICAgYENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RGAsIHdoaWNoIHdhcyBpbml0aWFsbHkgaW50cm9kdWNlZCBpbiAyMDA0IHdpdGggPGh0dHBzOi8v
dHJhYy53ZWJraXQub3JnL3I2NzMwPi4KKyAgICAgICAgU2V0dGluZyBjb2xvcnMgZnJvbSBDTVlL
QSBjb21wb25lbnRzIGlzIG5vbi1zdGFuZGFyZCBhbmQgdW5zdXBwb3J0ZWQgaW4gYm90aCBGaXJl
Zm94IGFuZCBDaHJvbWU7CisgICAgICAgIGltcG9ydGFudGx5LCB0aGlzIGlzIGltcGxlbWVudGVk
IGluIGBDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvcmAgYnkgY2FsbGluZyBkaXJlY3RseSBp
bnRvIENvcmVHcmFwaGljcworICAgICAgICBBUEkgdXNpbmcgdGhlIHBsYXRmb3JtIGBDR0NvbnRl
eHRSZWZgLCB3aGljaCBpcyBudWxsIHdoZW4gdXNpbmcgdGhlIEdQVSBQcm9jZXNzOyB0aGlzIHN1
YnNlcXVlbnRseSBjYXVzZXMKKyAgICAgICAgdGhlIHdlYiBwcm9jZXNzIHRvIGNyYXNoLgorCisg
ICAgICAgIEluIGxpZXUgb2YgYWRkaW5nIG5ldyBEaXNwbGF5TGlzdCBpdGVtcyB0byBzdXBwb3J0
IHNldHRpbmcgZmlsbCBhbmQgc3Ryb2tlIGNvbG9ycyB3aXRoIENNWUtBIGNvbXBvbmVudHMsCisg
ICAgICAgIHdlIGNhbiB0YWtlIHRoaXMgb3Bwb3J0dW5pdHkgdG8ganVzdCBkcm9wIHN1cHBvcnQg
Zm9yIHRoaXMgY2FudmFzIEFQSSBlbnRpcmVseS4gRml4ZXMgdGhlIGZvbGxvd2luZyB0ZXN0cwor
ICAgICAgICB3aGVuIHVzaW5nIHRoZSBHUFUgUHJvY2VzcyB0byByZW5kZXIgY2FudmFzOgorICAg
ICAgICAtIGZhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zZXJpYWxpemF0aW9uLmh0bWwKKyAgICAg
ICAgLSBmYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmxvYWRzLXNldEZpbGxDb2xvci5odG1sCisgICAg
ICAgIC0gZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1zZXRTdHJva2VDb2xvci5odG1sCisK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0NhbnZhc1N0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6Y29sb3IgY29u
c3QpOgorCiAyMDIwLTA5LTI1ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29t
PgogCiAgICAgICAgIFtHUFUgUHJvY2Vzc10gZmFzdC9jYW52YXMvY2FudmFzLWNvbXBvc2l0ZS1j
YW52YXMuaHRtbCBhbmQgZmFzdC9jYW52YXMvY2FudmFzLWNvbXBvc2l0ZS1pbWFnZS5odG1sIGZh
aWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyRC5pZGwgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkQuaWRsCmluZGV4IGE5NjljZTAyZWJkYjIzZjk4NjlkNzU1MDg2NDFjMTllMjg5
OWZhZWYuLmI1YTEzYjYyM2MyNmQ2YTI0ZThjMTExMmFlNTZmNDNhMDU5ZDE2ZmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyRC5p
ZGwKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmlkbApAQCAtNDYsMTEgKzQ2LDkgQEAKICAgICB1bmRlZmluZWQgc2V0U3Ryb2tlQ29sb3Io
RE9NU3RyaW5nIGNvbG9yLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZmxvYXQgYWxwaGEpOwogICAg
IHVuZGVmaW5lZCBzZXRTdHJva2VDb2xvcih1bnJlc3RyaWN0ZWQgZmxvYXQgZ3JheUxldmVsLCBv
cHRpb25hbCBmbG9hdCBhbHBoYSA9IDEpOwogICAgIHVuZGVmaW5lZCBzZXRTdHJva2VDb2xvcih1
bnJlc3RyaWN0ZWQgZmxvYXQgciwgdW5yZXN0cmljdGVkIGZsb2F0IGcsIHVucmVzdHJpY3RlZCBm
bG9hdCBiLCB1bnJlc3RyaWN0ZWQgZmxvYXQgYSk7Ci0gICAgdW5kZWZpbmVkIHNldFN0cm9rZUNv
bG9yKHVucmVzdHJpY3RlZCBmbG9hdCBjLCB1bnJlc3RyaWN0ZWQgZmxvYXQgbSwgdW5yZXN0cmlj
dGVkIGZsb2F0IHksIHVucmVzdHJpY3RlZCBmbG9hdCBrLCB1bnJlc3RyaWN0ZWQgZmxvYXQgYSk7
CiAgICAgdW5kZWZpbmVkIHNldEZpbGxDb2xvcihET01TdHJpbmcgY29sb3IsIG9wdGlvbmFsIHVu
cmVzdHJpY3RlZCBmbG9hdCBhbHBoYSk7CiAgICAgdW5kZWZpbmVkIHNldEZpbGxDb2xvcih1bnJl
c3RyaWN0ZWQgZmxvYXQgZ3JheUxldmVsLCBvcHRpb25hbCB1bnJlc3RyaWN0ZWQgZmxvYXQgYWxw
aGEgPSAxKTsKICAgICB1bmRlZmluZWQgc2V0RmlsbENvbG9yKHVucmVzdHJpY3RlZCBmbG9hdCBy
LCB1bnJlc3RyaWN0ZWQgZmxvYXQgZywgdW5yZXN0cmljdGVkIGZsb2F0IGIsIHVucmVzdHJpY3Rl
ZCBmbG9hdCBhKTsKLSAgICB1bmRlZmluZWQgc2V0RmlsbENvbG9yKHVucmVzdHJpY3RlZCBmbG9h
dCBjLCB1bnJlc3RyaWN0ZWQgZmxvYXQgbSwgdW5yZXN0cmljdGVkIGZsb2F0IHksIHVucmVzdHJp
Y3RlZCBmbG9hdCBrLCB1bnJlc3RyaWN0ZWQgZmxvYXQgYSk7CiAKICAgICAvLyBOb24tc3RhbmRh
cmQgZnVuY3Rpb25hbGl0eSAoQ2FudmFzSW1hZ2VEYXRhKS4KICAgICByZWFkb25seSBhdHRyaWJ1
dGUgZmxvYXQgd2Via2l0QmFja2luZ1N0b3JlUGl4ZWxSYXRpbzsgLy8gQWx3YXlzIHJldHVybnMg
MS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2UuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKaW5kZXggYmE3ZjNkZTZiMGE0ZTg4ODNkMjYwNTY2N2Y1
NzQ1NWRiMzRiMTdiOC4uNmJjMGYwOGQwZWQzZjExNDVhNmVmZTNjNWMyNDMxMDhmMjFhMzk1MSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJEQmFzZS5jcHAKQEAgLTkzMSwxNCArOTMxLDYgQEAgdm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpzZXRTdHJva2VDb2xvcihmbG9hdCByLCBmbG9hdCBnLCBm
bG9hdCBiLCBmbG8KICAgICBzZXRTdHJva2VTdHlsZShDYW52YXNTdHlsZShjb2xvcikpOwogfQog
Ci12b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2U6OnNldFN0cm9rZUNvbG9yKGZsb2F0
IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpCi17Ci0gICAgYXV0byBjb2xv
ciA9IENNWUtBIHsgYywgbSwgeSwgaywgYSB9OwotICAgIGlmIChzdGF0ZSgpLnN0cm9rZVN0eWxl
LmlzRXF1aXZhbGVudChjb2xvcikpCi0gICAgICAgIHJldHVybjsKLSAgICBzZXRTdHJva2VTdHls
ZShDYW52YXNTdHlsZShjb2xvcikpOwotfQotCiB2b2lkIENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
REJhc2U6OnNldEZpbGxDb2xvcihjb25zdCBTdHJpbmcmIGNvbG9yLCBPcHRpb25hbDxmbG9hdD4g
YWxwaGEpCiB7CiAgICAgaWYgKGFscGhhKSB7CkBAIC05NzAsMTQgKzk2Miw2IEBAIHZvaWQgQ2Fu
dmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c2V0RmlsbENvbG9yKGZsb2F0IHIsIGZsb2F0IGcs
IGZsb2F0IGIsIGZsb2F0CiAgICAgc2V0RmlsbFN0eWxlKENhbnZhc1N0eWxlKGNvbG9yKSk7CiB9
CiAKLXZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c2V0RmlsbENvbG9yKGZsb2F0
IGMsIGZsb2F0IG0sIGZsb2F0IHksIGZsb2F0IGssIGZsb2F0IGEpCi17Ci0gICAgYXV0byBjb2xv
ciA9IENNWUtBIHsgYywgbSwgeSwgaywgYSB9OwotICAgIGlmIChzdGF0ZSgpLmZpbGxTdHlsZS5p
c0VxdWl2YWxlbnQoY29sb3IpKQotICAgICAgICByZXR1cm47Ci0gICAgc2V0RmlsbFN0eWxlKENh
bnZhc1N0eWxlKGNvbG9yKSk7Ci19Ci0KIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZTo6YmVnaW5QYXRoKCkKIHsKICAgICBtX3BhdGguY2xlYXIoKTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcAppbmRleCAxNGNjYWUxNDljYTViM2ZiNTBiMGQ5ZWI4
ODU2ZjQyNzk1YmVmMDM0Li5kZDU2MjA5ZDI1MjZlNGQ1Mzk1MjM0OGVlZGEyNTQ0ZmIyOWUxNTZi
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwCkBAIC05OSwx
MSArOTksNiBAQCBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoY29uc3QgU1JHQkE8ZmxvYXQ+JiBj
b2xvckNvbXBvbmVudHMpCiB7CiB9CiAKLUNhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShjb25zdCBD
TVlLQTxmbG9hdD4mIGNvbG9yQ29tcG9uZW50cykKLSAgICA6IG1fc3R5bGUoQ01ZS0FDb2xvciB7
IGNvbnZlcnRUb0NvbXBvbmVudEJ5dGVzKHRvU1JHQkEoY29sb3JDb21wb25lbnRzKSksIGNvbG9y
Q29tcG9uZW50cyB9KQotewotfQotCiBDYW52YXNTdHlsZTo6Q2FudmFzU3R5bGUoQ2FudmFzR3Jh
ZGllbnQmIGdyYWRpZW50KQogICAgIDogbV9zdHlsZShtYWtlUmVmUHRyKGdyYWRpZW50KSkKIHsK
QEAgLTE0OCw5ICsxNDMsNiBAQCBib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDb2xvcihj
b25zdCBDYW52YXNTdHlsZSYgb3RoZXIpIGNvbnN0CiAgICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJu
YXRpdmU8Q29sb3I+KG1fc3R5bGUpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+KG90
aGVyLm1fc3R5bGUpKQogICAgICAgICByZXR1cm4gV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09
IFdURjo6Z2V0PENvbG9yPihvdGhlci5tX3N0eWxlKTsKIAotICAgIGlmIChXVEY6OmhvbGRzX2Fs
dGVybmF0aXZlPENNWUtBQ29sb3I+KG1fc3R5bGUpICYmIFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8
Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHlsZSkpCi0gICAgICAgIHJldHVybiBXVEY6OmdldDxDTVlL
QUNvbG9yPihtX3N0eWxlKS5jb21wb25lbnRzID09IFdURjo6Z2V0PENNWUtBQ29sb3I+KG90aGVy
Lm1fc3R5bGUpLmNvbXBvbmVudHM7Ci0KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKQEAgLTE1OSwy
NiArMTUxLDEyIEBAIGJvb2wgQ2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudChjb25zdCBTUkdCQTxm
bG9hdD4mIGNvbXBvbmVudHMpIGNvbnN0CiAgICAgcmV0dXJuIFdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8Q29sb3I+KG1fc3R5bGUpICYmIFdURjo6Z2V0PENvbG9yPihtX3N0eWxlKSA9PSBjb252ZXJ0
VG9Db21wb25lbnRCeXRlcyhjb21wb25lbnRzKTsKIH0KIAotYm9vbCBDYW52YXNTdHlsZTo6aXNF
cXVpdmFsZW50KGNvbnN0IENNWUtBPGZsb2F0PiYgY29tcG9uZW50cykgY29uc3QKLXsKLSAgICBy
ZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDTVlLQUNvbG9yPihtX3N0eWxlKSAmJiBXVEY6
OmdldDxDTVlLQUNvbG9yPihtX3N0eWxlKS5jb21wb25lbnRzID09IGNvbXBvbmVudHM7Ci19Ci0K
IHZvaWQgQ2FudmFzU3R5bGU6OmFwcGx5U3Ryb2tlQ29sb3IoR3JhcGhpY3NDb250ZXh0JiBjb250
ZXh0KSBjb25zdAogewogICAgIFdURjo6c3dpdGNoT24obV9zdHlsZSwKICAgICAgICAgWyZjb250
ZXh0XSAoY29uc3QgQ29sb3ImIGNvbG9yKSB7CiAgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9r
ZUNvbG9yKGNvbG9yKTsKICAgICAgICAgfSwKLSAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgQ01Z
S0FDb2xvciYgY29sb3IpIHsKLSAgICAgICAgICAgIC8vIEZJWE1FOiBEbyB0aGlzIHRocm91Z2gg
cGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhpY3NDb250ZXh0IEFQSS4KLSAgICAgICAgICAgIC8v
IFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9yIGFic3RyYWN0aW9uIHRvIHN1cHBvcnQgQ01ZS0Eg
Y29ycmVjdGx5Ci0jaWYgVVNFKENHKQotICAgICAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS1N0cm9r
ZUNvbG9yKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGNvbG9yLmNvbXBvbmVudHMuY3lhbiwg
Y29sb3IuY29tcG9uZW50cy5tYWdlbnRhLCBjb2xvci5jb21wb25lbnRzLnllbGxvdywgY29sb3Iu
Y29tcG9uZW50cy5ibGFjaywgY29sb3IuY29tcG9uZW50cy5hbHBoYSk7Ci0jZWxzZQotICAgICAg
ICAgICAgY29udGV4dC5zZXRTdHJva2VDb2xvcihjb2xvci5jb2xvckNvbnZlcnRlZFRvU1JHQkEp
OwotI2VuZGlmCi0gICAgICAgIH0sCiAgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IFJlZlB0cjxD
YW52YXNHcmFkaWVudD4mIGdyYWRpZW50KSB7CiAgICAgICAgICAgICBjb250ZXh0LnNldFN0cm9r
ZUdyYWRpZW50KGdyYWRpZW50LT5ncmFkaWVudCgpKTsKICAgICAgICAgfSwKQEAgLTIwMCwxNSAr
MTc4LDYgQEAgdm9pZCBDYW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IoR3JhcGhpY3NDb250ZXh0
JiBjb250ZXh0KSBjb25zdAogICAgICAgICBbJmNvbnRleHRdIChjb25zdCBDb2xvciYgY29sb3Ip
IHsKICAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGNvbG9yKTsKICAgICAgICAgfSwK
LSAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgQ01ZS0FDb2xvciYgY29sb3IpIHsKLSAgICAgICAg
ICAgIC8vIEZJWE1FOiBEbyB0aGlzIHRocm91Z2ggcGxhdGZvcm0taW5kZXBlbmRlbnQgR3JhcGhp
Y3NDb250ZXh0IEFQSS4KLSAgICAgICAgICAgIC8vIFdlJ2xsIG5lZWQgYSBmYW5jaWVyIENvbG9y
IGFic3RyYWN0aW9uIHRvIHN1cHBvcnQgQ01ZS0EgY29ycmVjdGx5Ci0jaWYgVVNFKENHKQotICAg
ICAgICAgICAgQ0dDb250ZXh0U2V0Q01ZS0ZpbGxDb2xvcihjb250ZXh0LnBsYXRmb3JtQ29udGV4
dCgpLCBjb2xvci5jb21wb25lbnRzLmN5YW4sIGNvbG9yLmNvbXBvbmVudHMubWFnZW50YSwgY29s
b3IuY29tcG9uZW50cy55ZWxsb3csIGNvbG9yLmNvbXBvbmVudHMuYmxhY2ssIGNvbG9yLmNvbXBv
bmVudHMuYWxwaGEpOwotI2Vsc2UKLSAgICAgICAgICAgIGNvbnRleHQuc2V0RmlsbENvbG9yKGNv
bG9yLmNvbG9yQ29udmVydGVkVG9TUkdCQSk7Ci0jZW5kaWYKLSAgICAgICAgfSwKICAgICAgICAg
WyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc0dyYWRpZW50PiYgZ3JhZGllbnQpIHsKICAg
ICAgICAgICAgIGNvbnRleHQuc2V0RmlsbEdyYWRpZW50KGdyYWRpZW50LT5ncmFkaWVudCgpKTsK
ICAgICAgICAgfSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZh
c1N0eWxlLmggYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5oCmluZGV4
IGQ4NTIyODA1OTYxODdjNjgzMGI0ZjhjNTg1MGFmYmE4NjEwM2I0MzMuLjFkZDNlNDIxZmQ1N2M1
NDA1YjQyNGM2YThlNTkyMjI4YzFjMmIyOTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0
bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMv
Q2FudmFzU3R5bGUuaApAQCAtNjgsMTggKzY4LDEzIEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAg
c3RydWN0IEludmFsaWQgeyB9OwogCi0gICAgc3RydWN0IENNWUtBQ29sb3IgewotICAgICAgICBD
b2xvciBjb2xvckNvbnZlcnRlZFRvU1JHQkE7Ci0gICAgICAgIENNWUtBPGZsb2F0PiBjb21wb25l
bnRzOwotICAgIH07Ci0KICAgICBzdHJ1Y3QgQ3VycmVudENvbG9yIHsKICAgICAgICAgT3B0aW9u
YWw8ZmxvYXQ+IG92ZXJyaWRlQWxwaGE7CiAgICAgfTsKIAogICAgIENhbnZhc1N0eWxlKEN1cnJl
bnRDb2xvcik7CiAKLSAgICBWYXJpYW50PEludmFsaWQsIENvbG9yLCBDTVlLQUNvbG9yLCBSZWZQ
dHI8Q2FudmFzR3JhZGllbnQ+LCBSZWZQdHI8Q2FudmFzUGF0dGVybj4sIEN1cnJlbnRDb2xvcj4g
bV9zdHlsZTsKKyAgICBWYXJpYW50PEludmFsaWQsIENvbG9yLCBSZWZQdHI8Q2FudmFzR3JhZGll
bnQ+LCBSZWZQdHI8Q2FudmFzUGF0dGVybj4sIEN1cnJlbnRDb2xvcj4gbV9zdHlsZTsKIH07CiAK
IGJvb2wgaXNDdXJyZW50Q29sb3JTdHJpbmcoY29uc3QgU3RyaW5nJiBjb2xvclN0cmluZyk7CkBA
IC0xMDksNyArMTA0LDcgQEAgaW5saW5lIFJlZlB0cjxDYW52YXNQYXR0ZXJuPiBDYW52YXNTdHls
ZTo6Y2FudmFzUGF0dGVybigpIGNvbnN0CiAKIGlubGluZSBTdHJpbmcgQ2FudmFzU3R5bGU6OmNv
bG9yKCkgY29uc3QKIHsKLSAgICByZXR1cm4gc2VyaWFsaXphdGlvbkZvckhUTUwoV1RGOjpob2xk
c19hbHRlcm5hdGl2ZTxDb2xvcj4obV9zdHlsZSkgPyBXVEY6OmdldDxDb2xvcj4obV9zdHlsZSkg
OiBXVEY6OmdldDxDTVlLQUNvbG9yPihtX3N0eWxlKS5jb2xvckNvbnZlcnRlZFRvU1JHQkEpOwor
ICAgIHJldHVybiBzZXJpYWxpemF0aW9uRm9ySFRNTChXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENv
bG9yPihtX3N0eWxlKSA/IFdURjo6Z2V0PENvbG9yPihtX3N0eWxlKSA6IENvbG9yKCkpOwogfQog
CiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjFlNjM5NWRlNWM4NjkyN2JjMDZlNThk
YzUxNDVmNjZjYzFkZmJlYS4uODIyNTBiMzU0ZTU2NTBiYjEzNjM4ZWIyYjVkNmU3NDMwN2QyZmYz
MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDIwLTA5LTI2ICBXZW5zb24gSHNpZWggIDx3ZW5z
b25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzdXBwb3J0IGZvciBzZXR0aW5n
IENNWUtBIGZpbGwgYW5kIHN0cm9rZSBjb2xvcnMgaW4gMkQgY2FudmFzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcwMDIKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgY2FsbHMgdG8gYENhbnZh
c1JlbmRlcmluZ0NvbnRleHQyRC5zZXRGaWxsQ29sb3IoYywgbSwgeSwgaywgYSlgIGluIHRoaXMg
bGF5b3V0IHRlc3QuCisKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc2VyaWFs
aXphdGlvbi1leHBlY3RlZC50eHQ6CisgICAgICAgICogZmFzdC9jYW52YXMvY2FudmFzLWNvbG9y
LXNlcmlhbGl6YXRpb24uaHRtbDoKKwogMjAyMC0wOS0yNSAgV2Vuc29uIEhzaWVoICA8d2Vuc29u
X2hzaWVoQGFwcGxlLmNvbT4KIAogICAgICAgICBbR1BVIFByb2Nlc3NdIGZhc3QvY2FudmFzL2Nh
bnZhcy1jb21wb3NpdGUtY2FudmFzLmh0bWwgYW5kIGZhc3QvY2FudmFzL2NhbnZhcy1jb21wb3Np
dGUtaW1hZ2UuaHRtbCBmYWlsCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9j
YW52YXMtY29sb3Itc2VyaWFsaXphdGlvbi1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2NhbnZhcy9jYW52YXMtY29sb3Itc2VyaWFsaXphdGlvbi1leHBlY3RlZC50eHQKaW5kZXggYjhm
M2ViZDRlNDhjN2FhNjA3YjYwZjBjNTYyZGU4YThmY2YzN2EwNi4uM2RhMmE5NWNkNTc4MjYwMmE4
YWM5MTFjMTAxOWNiMDgzNDc2ZGE1ZSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52
YXMvY2FudmFzLWNvbG9yLXNlcmlhbGl6YXRpb24tZXhwZWN0ZWQudHh0CisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zZXJpYWxpemF0aW9uLWV4cGVjdGVkLnR4dApA
QCAtMjQsMjQgKzI0LDYgQEAgUEFTUyB0cnlTZXR0aW5nU2hhZG93UkdCQSgyNTUsIDAsIDAsIDAp
IGlzICdyZ2JhKDI1NSwgMCwgMCwgMCknCiBQQVNTIHRyeVNldHRpbmdGaWxsQ29sb3JSR0JBKDI1
NSwgMCwgMCwgMC40KSBpcyAncmdiYSgyNTUsIDAsIDAsIDAuNCknCiBQQVNTIHRyeVNldHRpbmdT
dHJva2VDb2xvclJHQkEoMjU1LCAwLCAwLCAwLjQpIGlzICdyZ2JhKDI1NSwgMCwgMCwgMC40KScK
IFBBU1MgdHJ5U2V0dGluZ1NoYWRvd1JHQkEoMjU1LCAwLCAwLCAwLjQpIGlzICdyZ2JhKDI1NSwg
MCwgMCwgMC40KScKLVBBU1MgdHJ5U2V0dGluZ0ZpbGxDb2xvckNNWUtBKDAsIDAsIDAsIDAsIDAp
IGlzICdyZ2JhKDI1NSwgMjU1LCAyNTUsIDApJwotUEFTUyB0cnlTZXR0aW5nU3Ryb2tlQ29sb3JD
TVlLQSgwLCAwLCAwLCAwLCAwKSBpcyAncmdiYSgyNTUsIDI1NSwgMjU1LCAwKScKLVBBU1MgdHJ5
U2V0dGluZ1NoYWRvd0NNWUtBKDAsIDAsIDAsIDAsIDApIGlzICdyZ2JhKDI1NSwgMjU1LCAyNTUs
IDApJwotUEFTUyB0cnlTZXR0aW5nRmlsbENvbG9yQ01ZS0EoMCwgMCwgMCwgMCwgMSkgaXMgJyNm
ZmZmZmYnCi1QQVNTIHRyeVNldHRpbmdTdHJva2VDb2xvckNNWUtBKDAsIDAsIDAsIDAsIDEpIGlz
ICcjZmZmZmZmJwotUEFTUyB0cnlTZXR0aW5nU2hhZG93Q01ZS0EoMCwgMCwgMCwgMCwgMSkgaXMg
JyNmZmZmZmYnCi1QQVNTIHRyeVNldHRpbmdGaWxsQ29sb3JDTVlLQSgwLCAxLCAwLCAwLCAwKSBp
cyAncmdiYSgyNTUsIDAsIDI1NSwgMCknCi1QQVNTIHRyeVNldHRpbmdTdHJva2VDb2xvckNNWUtB
KDAsIDEsIDAsIDAsIDApIGlzICdyZ2JhKDI1NSwgMCwgMjU1LCAwKScKLVBBU1MgdHJ5U2V0dGlu
Z1NoYWRvd0NNWUtBKDAsIDEsIDAsIDAsIDApIGlzICdyZ2JhKDI1NSwgMCwgMjU1LCAwKScKLVBB
U1MgdHJ5U2V0dGluZ0ZpbGxDb2xvckNNWUtBKDAsIDEsIDAsIDAsIDEpIGlzICcjZmYwMGZmJwot
UEFTUyB0cnlTZXR0aW5nU3Ryb2tlQ29sb3JDTVlLQSgwLCAxLCAwLCAwLCAxKSBpcyAnI2ZmMDBm
ZicKLVBBU1MgdHJ5U2V0dGluZ1NoYWRvd0NNWUtBKDAsIDEsIDAsIDAsIDEpIGlzICcjZmYwMGZm
JwotUEFTUyB0cnlTZXR0aW5nRmlsbENvbG9yQ01ZS0EoMCwgMCwgMCwgMSwgMCkgaXMgJ3JnYmEo
MCwgMCwgMCwgMCknCi1QQVNTIHRyeVNldHRpbmdTdHJva2VDb2xvckNNWUtBKDAsIDAsIDAsIDEs
IDApIGlzICdyZ2JhKDAsIDAsIDAsIDApJwotUEFTUyB0cnlTZXR0aW5nU2hhZG93Q01ZS0EoMCwg
MCwgMCwgMSwgMCkgaXMgJ3JnYmEoMCwgMCwgMCwgMCknCi1QQVNTIHRyeVNldHRpbmdGaWxsQ29s
b3JDTVlLQSgwLCAwLCAwLCAxLCAxKSBpcyAnIzAwMDAwMCcKLVBBU1MgdHJ5U2V0dGluZ1N0cm9r
ZUNvbG9yQ01ZS0EoMCwgMCwgMCwgMSwgMSkgaXMgJyMwMDAwMDAnCi1QQVNTIHRyeVNldHRpbmdT
aGFkb3dDTVlLQSgwLCAwLCAwLCAxLCAxKSBpcyAnIzAwMDAwMCcKIFBBU1MgdHJ5U2V0dGluZ0Zp
bGxDb2xvckdyYXlMZXZlbCgwKSBpcyAnIzAwMDAwMCcKIFBBU1MgdHJ5U2V0dGluZ1N0cm9rZUNv
bG9yR3JheUxldmVsKDApIGlzICcjMDAwMDAwJwogUEFTUyB0cnlTZXR0aW5nU2hhZG93R3JheUxl
dmVsKDApIGlzICcjMDAwMDAwJwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
Y2FudmFzLWNvbG9yLXNlcmlhbGl6YXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvY2FudmFz
L2NhbnZhcy1jb2xvci1zZXJpYWxpemF0aW9uLmh0bWwKaW5kZXggMWRlMTRhZmQzYmU3ZWEzMDc5
NDE0MDQ0YmQxMjA5MzhiNDQyZTI1YS4uZDRiNjFkZTM5YzdmZTdlY2VjNDdlZjlkZDU2YTZiZWE1
NDZkYjc2MSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9y
LXNlcmlhbGl6YXRpb24uaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMt
Y29sb3Itc2VyaWFsaXphdGlvbi5odG1sCkBAIC04MSwzMCArODEsNiBAQCBmdW5jdGlvbiB0cnlT
ZXR0aW5nUkdCQShyLCBnLCBiLCBhLCBleHBlY3RlZCkgewogICAgIHNob3VsZEJlKCJ0cnlTZXR0
aW5nU2hhZG93UkdCQSgiICsgciArICIsICIgKyBnICsgIiwgIiArIGIgKyAiLCAiICsgYSArICIp
IiwgZXhwZWN0ZWQpOwogfQogCi1mdW5jdGlvbiB0cnlTZXR0aW5nRmlsbENvbG9yQ01ZS0EoYywg
bSwgeSwgaywgYSkgewotICAgIGN0eC5maWxsU3R5bGUgPSAnIzY2Nic7Ci0gICAgY3R4LnNldEZp
bGxDb2xvcihjLCBtLCB5LCBrLCBhKTsKLSAgICByZXR1cm4gY3R4LmZpbGxTdHlsZTsKLX0KLQot
ZnVuY3Rpb24gdHJ5U2V0dGluZ1N0cm9rZUNvbG9yQ01ZS0EoYywgbSwgeSwgaywgYSkgewotICAg
IGN0eC5zdHJva2VTdHlsZSA9ICcjNjY2JzsKLSAgICBjdHguc2V0U3Ryb2tlQ29sb3IoYywgbSwg
eSwgaywgYSk7Ci0gICAgcmV0dXJuIGN0eC5zdHJva2VTdHlsZTsKLX0KLQotZnVuY3Rpb24gdHJ5
U2V0dGluZ1NoYWRvd0NNWUtBKGMsIG0sIHksIGssIGEpIHsKLSAgICBjdHguc3Ryb2tlU3R5bGUg
PSAnIzY2Nic7Ci0gICAgY3R4LnNldFN0cm9rZUNvbG9yKGMsIG0sIHksIGssIGEpOwotICAgIHJl
dHVybiBjdHguc3Ryb2tlU3R5bGU7Ci19Ci0KLWZ1bmN0aW9uIHRyeVNldHRpbmdDTVlLQShjLCBt
LCB5LCBrLCBhLCBleHBlY3RlZCkgewotICAgIHNob3VsZEJlKCJ0cnlTZXR0aW5nRmlsbENvbG9y
Q01ZS0EoIiArIGMgKyAiLCAiICsgbSArICIsICIgKyB5ICsgIiwgIiArIGsgKyAiLCAiICsgYSAr
ICIpIiwgZXhwZWN0ZWQpOwotICAgIHNob3VsZEJlKCJ0cnlTZXR0aW5nU3Ryb2tlQ29sb3JDTVlL
QSgiICsgYyArICIsICIgKyBtICsgIiwgIiArIHkgKyAiLCAiICsgayArICIsICIgKyBhICsgIiki
LCBleHBlY3RlZCk7Ci0gICAgc2hvdWxkQmUoInRyeVNldHRpbmdTaGFkb3dDTVlLQSgiICsgYyAr
ICIsICIgKyBtICsgIiwgIiArIHkgKyAiLCAiICsgayArICIsICIgKyBhICsgIikiLCBleHBlY3Rl
ZCk7Ci19Ci0KIGZ1bmN0aW9uIHRyeVNldHRpbmdGaWxsQ29sb3JXaXRoT3ZlcnJpZGVBbHBoYShj
b2xvciwgYWxwaGEpIHsKICAgICBjdHguZmlsbFN0eWxlID0gJyM2NjYnOwogICAgIGN0eC5zZXRG
aWxsQ29sb3IoY29sb3IsIGFscGhhKTsKQEAgLTE5OSwxMyArMTc1LDYgQEAgdHJ5U2V0dGluZ1JH
QkEoMjU1LCAyNTUsIDI1NSwgMS4wLCAiJyNmZmZmZmYnIik7CiB0cnlTZXR0aW5nUkdCQSgyNTUs
IDAsIDAsIDAuMCwgIidyZ2JhKDI1NSwgMCwgMCwgMCknIik7CiB0cnlTZXR0aW5nUkdCQSgyNTUs
IDAsIDAsIDAuNCwgIidyZ2JhKDI1NSwgMCwgMCwgMC40KSciKTsKIAotdHJ5U2V0dGluZ0NNWUtB
KDAsIDAsIDAsIDAsIDAuMCwgIidyZ2JhKDI1NSwgMjU1LCAyNTUsIDApJyIpOwotdHJ5U2V0dGlu
Z0NNWUtBKDAsIDAsIDAsIDAsIDEuMCwgIicjZmZmZmZmJyIpOwotdHJ5U2V0dGluZ0NNWUtBKDAs
IDEsIDAsIDAsIDAuMCwgIidyZ2JhKDI1NSwgMCwgMjU1LCAwKSciKTsKLXRyeVNldHRpbmdDTVlL
QSgwLCAxLCAwLCAwLCAxLjAsICInI2ZmMDBmZiciKTsKLXRyeVNldHRpbmdDTVlLQSgwLCAwLCAw
LCAxLCAwLjAsICIncmdiYSgwLCAwLCAwLCAwKSciKTsKLXRyeVNldHRpbmdDTVlLQSgwLCAwLCAw
LCAxLCAxLjAsICInIzAwMDAwMCciKTsKLQogdHJ5U2V0dGluZ0dyYXlMZXZlbCgwLjAsICInIzAw
MDAwMCciKTsKIHRyeVNldHRpbmdHcmF5TGV2ZWwoMC41LCAiJyM4MDgwODAnIik7CiB0cnlTZXR0
aW5nR3JheUxldmVsKDEuMCwgIicjZmZmZmZmJyIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409791</attachid>
            <date>2020-09-26 14:31:48 -0700</date>
            <delta_ts>2020-09-26 15:57:02 -0700</delta_ts>
            <desc>Rebaseline more tests</desc>
            <filename>bug-217002-20200926143148.patch</filename>
            <type>text/plain</type>
            <size>22608</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RmZjk3ZTMyM2RkY2M2
OTdjY2NkZmI3MjYyNTdiNjNlNGJkMzViOS4uNDBhMTE5OGJjNzE4MGI4YjU4MWM2OGQ3MjNiMzE4
NjVkODFlMzRhNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTA5LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzdXBw
b3J0IGZvciBzZXR0aW5nIENNWUtBIGZpbGwgYW5kIHN0cm9rZSBjb2xvcnMgaW4gMkQgY2FudmFz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcwMDIK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUg
c3VwcG9ydCBmb3IgYHNldEZpbGxDb2xvcihjLCBtLCB5LCBrLCBhKWAgYW5kIGBzZXRTdHJva2VD
b2xvcihjLCBtLCB5LCBrLCBhKWAgb24KKyAgICAgICAgYENhbnZhc1JlbmRlcmluZ0NvbnRleHQy
RGAsIHdoaWNoIHdhcyBpbml0aWFsbHkgaW50cm9kdWNlZCBpbiAyMDA0IHdpdGggPGh0dHBzOi8v
dHJhYy53ZWJraXQub3JnL3I2NzMwPi4KKyAgICAgICAgU2V0dGluZyBjb2xvcnMgZnJvbSBDTVlL
QSBjb21wb25lbnRzIGlzIG5vbi1zdGFuZGFyZCBhbmQgdW5zdXBwb3J0ZWQgaW4gYm90aCBGaXJl
Zm94IGFuZCBDaHJvbWU7CisgICAgICAgIGltcG9ydGFudGx5LCB0aGlzIGlzIGltcGxlbWVudGVk
IGluIGBDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvcmAgYnkgY2FsbGluZyBkaXJlY3RseSBp
bnRvIENvcmVHcmFwaGljcworICAgICAgICBBUEkgdXNpbmcgdGhlIHBsYXRmb3JtIGBDR0NvbnRl
eHRSZWZgLCB3aGljaCBpcyBudWxsIHdoZW4gdXNpbmcgdGhlIEdQVSBQcm9jZXNzOyB0aGlzIHN1
YnNlcXVlbnRseSBjYXVzZXMKKyAgICAgICAgdGhlIHdlYiBwcm9jZXNzIHRvIGNyYXNoLgorCisg
ICAgICAgIEluIGxpZXUgb2YgYWRkaW5nIG5ldyBEaXNwbGF5TGlzdCBpdGVtcyB0byBzdXBwb3J0
IHNldHRpbmcgZmlsbCBhbmQgc3Ryb2tlIGNvbG9ycyB3aXRoIENNWUtBIGNvbXBvbmVudHMsCisg
ICAgICAgIHdlIGNhbiB0YWtlIHRoaXMgb3Bwb3J0dW5pdHkgdG8ganVzdCBkcm9wIHN1cHBvcnQg
Zm9yIHRoaXMgY2FudmFzIEFQSSBlbnRpcmVseS4gRml4ZXMgdGhlIGZvbGxvd2luZyB0ZXN0cwor
ICAgICAgICB3aGVuIHVzaW5nIHRoZSBHUFUgUHJvY2VzcyB0byByZW5kZXIgY2FudmFzOgorICAg
ICAgICAtIGZhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zZXJpYWxpemF0aW9uLmh0bWwKKyAgICAg
ICAgLSBmYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmxvYWRzLXNldEZpbGxDb2xvci5odG1sCisgICAg
ICAgIC0gZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1zZXRTdHJva2VDb2xvci5odG1sCisK
KyAgICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAg
ICAgICAqIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNh
bnZhc1N0eWxlOjppc0VxdWl2YWxlbnRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpD
YW52YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFz
L0NhbnZhc1N0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6Y29sb3IgY29u
c3QpOgorCiAyMDIwLTA5LTI2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtp
dC5vcmc+CiAKICAgICAgICAgRml4IEJpZyBTdXIgY2xlYW4gYnVpbGQgYWZ0ZXIgcjI2NzYxMwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJELmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0Nv
bnRleHQyRC5pZGwKaW5kZXggYTk2OWNlMDJlYmRiMjNmOTg2OWQ3NTUwODY0MWMxOWUyODk5ZmFl
Zi4uYjVhMTNiNjIzYzI2ZDZhMjRlOGMxMTEyYWU1NmY0M2EwNTlkMTZmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQu
aWRsCkBAIC00NiwxMSArNDYsOSBAQAogICAgIHVuZGVmaW5lZCBzZXRTdHJva2VDb2xvcihET01T
dHJpbmcgY29sb3IsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCBhbHBoYSk7CiAgICAgdW5k
ZWZpbmVkIHNldFN0cm9rZUNvbG9yKHVucmVzdHJpY3RlZCBmbG9hdCBncmF5TGV2ZWwsIG9wdGlv
bmFsIGZsb2F0IGFscGhhID0gMSk7CiAgICAgdW5kZWZpbmVkIHNldFN0cm9rZUNvbG9yKHVucmVz
dHJpY3RlZCBmbG9hdCByLCB1bnJlc3RyaWN0ZWQgZmxvYXQgZywgdW5yZXN0cmljdGVkIGZsb2F0
IGIsIHVucmVzdHJpY3RlZCBmbG9hdCBhKTsKLSAgICB1bmRlZmluZWQgc2V0U3Ryb2tlQ29sb3Io
dW5yZXN0cmljdGVkIGZsb2F0IGMsIHVucmVzdHJpY3RlZCBmbG9hdCBtLCB1bnJlc3RyaWN0ZWQg
ZmxvYXQgeSwgdW5yZXN0cmljdGVkIGZsb2F0IGssIHVucmVzdHJpY3RlZCBmbG9hdCBhKTsKICAg
ICB1bmRlZmluZWQgc2V0RmlsbENvbG9yKERPTVN0cmluZyBjb2xvciwgb3B0aW9uYWwgdW5yZXN0
cmljdGVkIGZsb2F0IGFscGhhKTsKICAgICB1bmRlZmluZWQgc2V0RmlsbENvbG9yKHVucmVzdHJp
Y3RlZCBmbG9hdCBncmF5TGV2ZWwsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCBhbHBoYSA9
IDEpOwogICAgIHVuZGVmaW5lZCBzZXRGaWxsQ29sb3IodW5yZXN0cmljdGVkIGZsb2F0IHIsIHVu
cmVzdHJpY3RlZCBmbG9hdCBnLCB1bnJlc3RyaWN0ZWQgZmxvYXQgYiwgdW5yZXN0cmljdGVkIGZs
b2F0IGEpOwotICAgIHVuZGVmaW5lZCBzZXRGaWxsQ29sb3IodW5yZXN0cmljdGVkIGZsb2F0IGMs
IHVucmVzdHJpY3RlZCBmbG9hdCBtLCB1bnJlc3RyaWN0ZWQgZmxvYXQgeSwgdW5yZXN0cmljdGVk
IGZsb2F0IGssIHVucmVzdHJpY3RlZCBmbG9hdCBhKTsKIAogICAgIC8vIE5vbi1zdGFuZGFyZCBm
dW5jdGlvbmFsaXR5IChDYW52YXNJbWFnZURhdGEpLgogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBm
bG9hdCB3ZWJraXRCYWNraW5nU3RvcmVQaXhlbFJhdGlvOyAvLyBBbHdheXMgcmV0dXJucyAxLgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29u
dGV4dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlLmNwcAppbmRleCBiYTdmM2RlNmIwYTRlODg4M2QyNjA1NjY3ZjU3NDU1
ZGIzNGIxN2I4Li42YmMwZjA4ZDBlZDNmMTE0NWE2ZWZlM2M1YzI0MzEwOGYyMWEzOTUxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0
MkRCYXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJp
bmdDb250ZXh0MkRCYXNlLmNwcApAQCAtOTMxLDE0ICs5MzEsNiBAQCB2b2lkIENhbnZhc1JlbmRl
cmluZ0NvbnRleHQyREJhc2U6OnNldFN0cm9rZUNvbG9yKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0
IGIsIGZsbwogICAgIHNldFN0cm9rZVN0eWxlKENhbnZhc1N0eWxlKGNvbG9yKSk7CiB9CiAKLXZv
aWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c2V0U3Ryb2tlQ29sb3IoZmxvYXQgYywg
ZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkKLXsKLSAgICBhdXRvIGNvbG9yID0g
Q01ZS0EgeyBjLCBtLCB5LCBrLCBhIH07Ci0gICAgaWYgKHN0YXRlKCkuc3Ryb2tlU3R5bGUuaXNF
cXVpdmFsZW50KGNvbG9yKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHNldFN0cm9rZVN0eWxlKENh
bnZhc1N0eWxlKGNvbG9yKSk7Ci19Ci0KIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFz
ZTo6c2V0RmlsbENvbG9yKGNvbnN0IFN0cmluZyYgY29sb3IsIE9wdGlvbmFsPGZsb2F0PiBhbHBo
YSkKIHsKICAgICBpZiAoYWxwaGEpIHsKQEAgLTk3MCwxNCArOTYyLDYgQEAgdm9pZCBDYW52YXNS
ZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpzZXRGaWxsQ29sb3IoZmxvYXQgciwgZmxvYXQgZywgZmxv
YXQgYiwgZmxvYXQKICAgICBzZXRGaWxsU3R5bGUoQ2FudmFzU3R5bGUoY29sb3IpKTsKIH0KIAot
dm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpzZXRGaWxsQ29sb3IoZmxvYXQgYywg
ZmxvYXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkKLXsKLSAgICBhdXRvIGNvbG9yID0g
Q01ZS0EgeyBjLCBtLCB5LCBrLCBhIH07Ci0gICAgaWYgKHN0YXRlKCkuZmlsbFN0eWxlLmlzRXF1
aXZhbGVudChjb2xvcikpCi0gICAgICAgIHJldHVybjsKLSAgICBzZXRGaWxsU3R5bGUoQ2FudmFz
U3R5bGUoY29sb3IpKTsKLX0KLQogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpi
ZWdpblBhdGgoKQogewogICAgIG1fcGF0aC5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzU3R5bGUuY3BwCmluZGV4IDE0Y2NhZTE0OWNhNWIzZmI1MGIwZDllYjg4NTZm
NDI3OTViZWYwMzQuLmRkNTYyMDlkMjUyNmU0ZDUzOTUyMzQ4ZWVkYTI1NDRmYjI5ZTE1NmIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKQEAgLTk5LDExICs5
OSw2IEBAIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9y
Q29tcG9uZW50cykKIHsKIH0KIAotQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGNvbnN0IENNWUtB
PGZsb2F0PiYgY29sb3JDb21wb25lbnRzKQotICAgIDogbV9zdHlsZShDTVlLQUNvbG9yIHsgY29u
dmVydFRvQ29tcG9uZW50Qnl0ZXModG9TUkdCQShjb2xvckNvbXBvbmVudHMpKSwgY29sb3JDb21w
b25lbnRzIH0pCi17Ci19Ci0KIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNHcmFkaWVu
dCYgZ3JhZGllbnQpCiAgICAgOiBtX3N0eWxlKG1ha2VSZWZQdHIoZ3JhZGllbnQpKQogewpAQCAt
MTQ4LDkgKzE0Myw2IEBAIGJvb2wgQ2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudENvbG9yKGNvbnN0
IENhbnZhc1N0eWxlJiBvdGhlcikgY29uc3QKICAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2
ZTxDb2xvcj4obV9zdHlsZSkgJiYgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDb2xvcj4ob3RoZXIu
bV9zdHlsZSkpCiAgICAgICAgIHJldHVybiBXVEY6OmdldDxDb2xvcj4obV9zdHlsZSkgPT0gV1RG
OjpnZXQ8Q29sb3I+KG90aGVyLm1fc3R5bGUpOwogCi0gICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJu
YXRpdmU8Q01ZS0FDb2xvcj4obV9zdHlsZSkgJiYgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDTVlL
QUNvbG9yPihvdGhlci5tX3N0eWxlKSkKLSAgICAgICAgcmV0dXJuIFdURjo6Z2V0PENNWUtBQ29s
b3I+KG1fc3R5bGUpLmNvbXBvbmVudHMgPT0gV1RGOjpnZXQ8Q01ZS0FDb2xvcj4ob3RoZXIubV9z
dHlsZSkuY29tcG9uZW50czsKLQogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTU5LDI2ICsx
NTEsMTIgQEAgYm9vbCBDYW52YXNTdHlsZTo6aXNFcXVpdmFsZW50KGNvbnN0IFNSR0JBPGZsb2F0
PiYgY29tcG9uZW50cykgY29uc3QKICAgICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxD
b2xvcj4obV9zdHlsZSkgJiYgV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IGNvbnZlcnRUb0Nv
bXBvbmVudEJ5dGVzKGNvbXBvbmVudHMpOwogfQogCi1ib29sIENhbnZhc1N0eWxlOjppc0VxdWl2
YWxlbnQoY29uc3QgQ01ZS0E8ZmxvYXQ+JiBjb21wb25lbnRzKSBjb25zdAotewotICAgIHJldHVy
biBXVEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29sb3I+KG1fc3R5bGUpICYmIFdURjo6Z2V0
PENNWUtBQ29sb3I+KG1fc3R5bGUpLmNvbXBvbmVudHMgPT0gY29tcG9uZW50czsKLX0KLQogdm9p
ZCBDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQp
IGNvbnN0CiB7CiAgICAgV1RGOjpzd2l0Y2hPbihtX3N0eWxlLAogICAgICAgICBbJmNvbnRleHRd
IChjb25zdCBDb2xvciYgY29sb3IpIHsKICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29s
b3IoY29sb3IpOwogICAgICAgICB9LAotICAgICAgICBbJmNvbnRleHRdIChjb25zdCBDTVlLQUNv
bG9yJiBjb2xvcikgewotICAgICAgICAgICAgLy8gRklYTUU6IERvIHRoaXMgdGhyb3VnaCBwbGF0
Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGljc0NvbnRleHQgQVBJLgotICAgICAgICAgICAgLy8gV2Un
bGwgbmVlZCBhIGZhbmNpZXIgQ29sb3IgYWJzdHJhY3Rpb24gdG8gc3VwcG9ydCBDTVlLQSBjb3Jy
ZWN0bHkKLSNpZiBVU0UoQ0cpCi0gICAgICAgICAgICBDR0NvbnRleHRTZXRDTVlLU3Ryb2tlQ29s
b3IoY29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgY29sb3IuY29tcG9uZW50cy5jeWFuLCBjb2xv
ci5jb21wb25lbnRzLm1hZ2VudGEsIGNvbG9yLmNvbXBvbmVudHMueWVsbG93LCBjb2xvci5jb21w
b25lbnRzLmJsYWNrLCBjb2xvci5jb21wb25lbnRzLmFscGhhKTsKLSNlbHNlCi0gICAgICAgICAg
ICBjb250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yLmNvbG9yQ29udmVydGVkVG9TUkdCQSk7Ci0j
ZW5kaWYKLSAgICAgICAgfSwKICAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZh
c0dyYWRpZW50PiYgZ3JhZGllbnQpIHsKICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlR3Jh
ZGllbnQoZ3JhZGllbnQtPmdyYWRpZW50KCkpOwogICAgICAgICB9LApAQCAtMjAwLDE1ICsxNzgs
NiBAQCB2b2lkIENhbnZhc1N0eWxlOjphcHBseUZpbGxDb2xvcihHcmFwaGljc0NvbnRleHQmIGNv
bnRleHQpIGNvbnN0CiAgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IENvbG9yJiBjb2xvcikgewog
ICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29sb3IpOwogICAgICAgICB9LAotICAg
ICAgICBbJmNvbnRleHRdIChjb25zdCBDTVlLQUNvbG9yJiBjb2xvcikgewotICAgICAgICAgICAg
Ly8gRklYTUU6IERvIHRoaXMgdGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGljc0Nv
bnRleHQgQVBJLgotICAgICAgICAgICAgLy8gV2UnbGwgbmVlZCBhIGZhbmNpZXIgQ29sb3IgYWJz
dHJhY3Rpb24gdG8gc3VwcG9ydCBDTVlLQSBjb3JyZWN0bHkKLSNpZiBVU0UoQ0cpCi0gICAgICAg
ICAgICBDR0NvbnRleHRTZXRDTVlLRmlsbENvbG9yKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCks
IGNvbG9yLmNvbXBvbmVudHMuY3lhbiwgY29sb3IuY29tcG9uZW50cy5tYWdlbnRhLCBjb2xvci5j
b21wb25lbnRzLnllbGxvdywgY29sb3IuY29tcG9uZW50cy5ibGFjaywgY29sb3IuY29tcG9uZW50
cy5hbHBoYSk7Ci0jZWxzZQotICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29sb3Iu
Y29sb3JDb252ZXJ0ZWRUb1NSR0JBKTsKLSNlbmRpZgotICAgICAgICB9LAogICAgICAgICBbJmNv
bnRleHRdIChjb25zdCBSZWZQdHI8Q2FudmFzR3JhZGllbnQ+JiBncmFkaWVudCkgewogICAgICAg
ICAgICAgY29udGV4dC5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQtPmdyYWRpZW50KCkpOwogICAg
ICAgICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5
bGUuaCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgKaW5kZXggZDg1
MjI4MDU5NjE4N2M2ODMwYjRmOGM1ODUwYWZiYTg2MTAzYjQzMy4uMWRkM2U0MjFmZDU3YzU0MDVi
NDI0YzZhOGU1OTIyMjhjMWMyYjI5MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9j
YW52YXMvQ2FudmFzU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52
YXNTdHlsZS5oCkBAIC02OCwxOCArNjgsMTMgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdHJ1
Y3QgSW52YWxpZCB7IH07CiAKLSAgICBzdHJ1Y3QgQ01ZS0FDb2xvciB7Ci0gICAgICAgIENvbG9y
IGNvbG9yQ29udmVydGVkVG9TUkdCQTsKLSAgICAgICAgQ01ZS0E8ZmxvYXQ+IGNvbXBvbmVudHM7
Ci0gICAgfTsKLQogICAgIHN0cnVjdCBDdXJyZW50Q29sb3IgewogICAgICAgICBPcHRpb25hbDxm
bG9hdD4gb3ZlcnJpZGVBbHBoYTsKICAgICB9OwogCiAgICAgQ2FudmFzU3R5bGUoQ3VycmVudENv
bG9yKTsKIAotICAgIFZhcmlhbnQ8SW52YWxpZCwgQ29sb3IsIENNWUtBQ29sb3IsIFJlZlB0cjxD
YW52YXNHcmFkaWVudD4sIFJlZlB0cjxDYW52YXNQYXR0ZXJuPiwgQ3VycmVudENvbG9yPiBtX3N0
eWxlOworICAgIFZhcmlhbnQ8SW52YWxpZCwgQ29sb3IsIFJlZlB0cjxDYW52YXNHcmFkaWVudD4s
IFJlZlB0cjxDYW52YXNQYXR0ZXJuPiwgQ3VycmVudENvbG9yPiBtX3N0eWxlOwogfTsKIAogYm9v
bCBpc0N1cnJlbnRDb2xvclN0cmluZyhjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nKTsKQEAgLTEw
OSw3ICsxMDQsNyBAQCBpbmxpbmUgUmVmUHRyPENhbnZhc1BhdHRlcm4+IENhbnZhc1N0eWxlOjpj
YW52YXNQYXR0ZXJuKCkgY29uc3QKIAogaW5saW5lIFN0cmluZyBDYW52YXNTdHlsZTo6Y29sb3Io
KSBjb25zdAogewotICAgIHJldHVybiBzZXJpYWxpemF0aW9uRm9ySFRNTChXVEY6OmhvbGRzX2Fs
dGVybmF0aXZlPENvbG9yPihtX3N0eWxlKSA/IFdURjo6Z2V0PENvbG9yPihtX3N0eWxlKSA6IFdU
Rjo6Z2V0PENNWUtBQ29sb3I+KG1fc3R5bGUpLmNvbG9yQ29udmVydGVkVG9TUkdCQSk7CisgICAg
cmV0dXJuIHNlcmlhbGl6YXRpb25Gb3JIVE1MKFdURjo6aG9sZHNfYWx0ZXJuYXRpdmU8Q29sb3I+
KG1fc3R5bGUpID8gV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpIDogQ29sb3IoKSk7CiB9CiAKIH0g
Ly8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMDVkNzM5MDAwNmUyNDhmZWZlODEyMTUzMTIz
YzVlNGFkNTgwYTQxLi40ZWNiNTAxMDAzMjg2NjA1NDg3YjdmNWRlNWUwMTAxNTVjNjE5NWY1IDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDktMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9o
c2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIHNldHRpbmcgQ01Z
S0EgZmlsbCBhbmQgc3Ryb2tlIGNvbG9ycyBpbiAyRCBjYW52YXMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzAwMgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFJlbW92ZSBjYWxscyB0byBgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELnNldEZpbGxDb2xvcihjLCBtLCB5LCBrLCBhKWAgYW5kCisgICAgICAg
IGBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuc2V0U3Ryb2tlQ29sb3IoYywgbSwgeSwgaywgYSlg
IGluIHRoZXNlIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1j
b2xvci1zZXJpYWxpemF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9j
YW52YXMtY29sb3Itc2VyaWFsaXphdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL3Nl
dC1jb2xvcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3NldC1jb2xvcnMu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy0yZC1mdWxsLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmct
MmQuanM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL2Zhc3QvY2FudmFzL3NldC1jb2xvcnMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2NhbnZhcy9zZXQtY29sb3Jz
LWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wOS0yNiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gTGluZSBjb250ZW50IGxvZ2ljYWwgd2lkdGggZXhw
YW5kcyB3aXRoIHJ1biBleHBhbnNpb25zICh0ZXh0LWFsaWduOiBqdXN0aWZ5KQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNlcmlhbGl6YXRpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNlcmlhbGl6
YXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IGI4ZjNlYmQ0ZTQ4YzdhYTYwN2I2MGYwYzU2MmRlOGE4
ZmNmMzdhMDYuLjNkYTJhOTVjZDU3ODI2MDJhOGFjOTExYzEwMTljYjA4MzQ3NmRhNWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zZXJpYWxpemF0aW9u
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3It
c2VyaWFsaXphdGlvbi1leHBlY3RlZC50eHQKQEAgLTI0LDI0ICsyNCw2IEBAIFBBU1MgdHJ5U2V0
dGluZ1NoYWRvd1JHQkEoMjU1LCAwLCAwLCAwKSBpcyAncmdiYSgyNTUsIDAsIDAsIDApJwogUEFT
UyB0cnlTZXR0aW5nRmlsbENvbG9yUkdCQSgyNTUsIDAsIDAsIDAuNCkgaXMgJ3JnYmEoMjU1LCAw
LCAwLCAwLjQpJwogUEFTUyB0cnlTZXR0aW5nU3Ryb2tlQ29sb3JSR0JBKDI1NSwgMCwgMCwgMC40
KSBpcyAncmdiYSgyNTUsIDAsIDAsIDAuNCknCiBQQVNTIHRyeVNldHRpbmdTaGFkb3dSR0JBKDI1
NSwgMCwgMCwgMC40KSBpcyAncmdiYSgyNTUsIDAsIDAsIDAuNCknCi1QQVNTIHRyeVNldHRpbmdG
aWxsQ29sb3JDTVlLQSgwLCAwLCAwLCAwLCAwKSBpcyAncmdiYSgyNTUsIDI1NSwgMjU1LCAwKScK
LVBBU1MgdHJ5U2V0dGluZ1N0cm9rZUNvbG9yQ01ZS0EoMCwgMCwgMCwgMCwgMCkgaXMgJ3JnYmEo
MjU1LCAyNTUsIDI1NSwgMCknCi1QQVNTIHRyeVNldHRpbmdTaGFkb3dDTVlLQSgwLCAwLCAwLCAw
LCAwKSBpcyAncmdiYSgyNTUsIDI1NSwgMjU1LCAwKScKLVBBU1MgdHJ5U2V0dGluZ0ZpbGxDb2xv
ckNNWUtBKDAsIDAsIDAsIDAsIDEpIGlzICcjZmZmZmZmJwotUEFTUyB0cnlTZXR0aW5nU3Ryb2tl
Q29sb3JDTVlLQSgwLCAwLCAwLCAwLCAxKSBpcyAnI2ZmZmZmZicKLVBBU1MgdHJ5U2V0dGluZ1No
YWRvd0NNWUtBKDAsIDAsIDAsIDAsIDEpIGlzICcjZmZmZmZmJwotUEFTUyB0cnlTZXR0aW5nRmls
bENvbG9yQ01ZS0EoMCwgMSwgMCwgMCwgMCkgaXMgJ3JnYmEoMjU1LCAwLCAyNTUsIDApJwotUEFT
UyB0cnlTZXR0aW5nU3Ryb2tlQ29sb3JDTVlLQSgwLCAxLCAwLCAwLCAwKSBpcyAncmdiYSgyNTUs
IDAsIDI1NSwgMCknCi1QQVNTIHRyeVNldHRpbmdTaGFkb3dDTVlLQSgwLCAxLCAwLCAwLCAwKSBp
cyAncmdiYSgyNTUsIDAsIDI1NSwgMCknCi1QQVNTIHRyeVNldHRpbmdGaWxsQ29sb3JDTVlLQSgw
LCAxLCAwLCAwLCAxKSBpcyAnI2ZmMDBmZicKLVBBU1MgdHJ5U2V0dGluZ1N0cm9rZUNvbG9yQ01Z
S0EoMCwgMSwgMCwgMCwgMSkgaXMgJyNmZjAwZmYnCi1QQVNTIHRyeVNldHRpbmdTaGFkb3dDTVlL
QSgwLCAxLCAwLCAwLCAxKSBpcyAnI2ZmMDBmZicKLVBBU1MgdHJ5U2V0dGluZ0ZpbGxDb2xvckNN
WUtBKDAsIDAsIDAsIDEsIDApIGlzICdyZ2JhKDAsIDAsIDAsIDApJwotUEFTUyB0cnlTZXR0aW5n
U3Ryb2tlQ29sb3JDTVlLQSgwLCAwLCAwLCAxLCAwKSBpcyAncmdiYSgwLCAwLCAwLCAwKScKLVBB
U1MgdHJ5U2V0dGluZ1NoYWRvd0NNWUtBKDAsIDAsIDAsIDEsIDApIGlzICdyZ2JhKDAsIDAsIDAs
IDApJwotUEFTUyB0cnlTZXR0aW5nRmlsbENvbG9yQ01ZS0EoMCwgMCwgMCwgMSwgMSkgaXMgJyMw
MDAwMDAnCi1QQVNTIHRyeVNldHRpbmdTdHJva2VDb2xvckNNWUtBKDAsIDAsIDAsIDEsIDEpIGlz
ICcjMDAwMDAwJwotUEFTUyB0cnlTZXR0aW5nU2hhZG93Q01ZS0EoMCwgMCwgMCwgMSwgMSkgaXMg
JyMwMDAwMDAnCiBQQVNTIHRyeVNldHRpbmdGaWxsQ29sb3JHcmF5TGV2ZWwoMCkgaXMgJyMwMDAw
MDAnCiBQQVNTIHRyeVNldHRpbmdTdHJva2VDb2xvckdyYXlMZXZlbCgwKSBpcyAnIzAwMDAwMCcK
IFBBU1MgdHJ5U2V0dGluZ1NoYWRvd0dyYXlMZXZlbCgwKSBpcyAnIzAwMDAwMCcKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zZXJpYWxpemF0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc2VyaWFsaXphdGlvbi5o
dG1sCmluZGV4IDFkZTE0YWZkM2JlN2VhMzA3OTQxNDA0NGJkMTIwOTM4YjQ0MmUyNWEuLmQ0YjYx
ZGUzOWM3ZmU3ZWNlYzQ3ZWY5ZGQ1NmE2YmVhNTQ2ZGI3NjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zZXJpYWxpemF0aW9uLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNlcmlhbGl6YXRpb24uaHRtbApAQCAt
ODEsMzAgKzgxLDYgQEAgZnVuY3Rpb24gdHJ5U2V0dGluZ1JHQkEociwgZywgYiwgYSwgZXhwZWN0
ZWQpIHsKICAgICBzaG91bGRCZSgidHJ5U2V0dGluZ1NoYWRvd1JHQkEoIiArIHIgKyAiLCAiICsg
ZyArICIsICIgKyBiICsgIiwgIiArIGEgKyAiKSIsIGV4cGVjdGVkKTsKIH0KIAotZnVuY3Rpb24g
dHJ5U2V0dGluZ0ZpbGxDb2xvckNNWUtBKGMsIG0sIHksIGssIGEpIHsKLSAgICBjdHguZmlsbFN0
eWxlID0gJyM2NjYnOwotICAgIGN0eC5zZXRGaWxsQ29sb3IoYywgbSwgeSwgaywgYSk7Ci0gICAg
cmV0dXJuIGN0eC5maWxsU3R5bGU7Ci19Ci0KLWZ1bmN0aW9uIHRyeVNldHRpbmdTdHJva2VDb2xv
ckNNWUtBKGMsIG0sIHksIGssIGEpIHsKLSAgICBjdHguc3Ryb2tlU3R5bGUgPSAnIzY2Nic7Ci0g
ICAgY3R4LnNldFN0cm9rZUNvbG9yKGMsIG0sIHksIGssIGEpOwotICAgIHJldHVybiBjdHguc3Ry
b2tlU3R5bGU7Ci19Ci0KLWZ1bmN0aW9uIHRyeVNldHRpbmdTaGFkb3dDTVlLQShjLCBtLCB5LCBr
LCBhKSB7Ci0gICAgY3R4LnN0cm9rZVN0eWxlID0gJyM2NjYnOwotICAgIGN0eC5zZXRTdHJva2VD
b2xvcihjLCBtLCB5LCBrLCBhKTsKLSAgICByZXR1cm4gY3R4LnN0cm9rZVN0eWxlOwotfQotCi1m
dW5jdGlvbiB0cnlTZXR0aW5nQ01ZS0EoYywgbSwgeSwgaywgYSwgZXhwZWN0ZWQpIHsKLSAgICBz
aG91bGRCZSgidHJ5U2V0dGluZ0ZpbGxDb2xvckNNWUtBKCIgKyBjICsgIiwgIiArIG0gKyAiLCAi
ICsgeSArICIsICIgKyBrICsgIiwgIiArIGEgKyAiKSIsIGV4cGVjdGVkKTsKLSAgICBzaG91bGRC
ZSgidHJ5U2V0dGluZ1N0cm9rZUNvbG9yQ01ZS0EoIiArIGMgKyAiLCAiICsgbSArICIsICIgKyB5
ICsgIiwgIiArIGsgKyAiLCAiICsgYSArICIpIiwgZXhwZWN0ZWQpOwotICAgIHNob3VsZEJlKCJ0
cnlTZXR0aW5nU2hhZG93Q01ZS0EoIiArIGMgKyAiLCAiICsgbSArICIsICIgKyB5ICsgIiwgIiAr
IGsgKyAiLCAiICsgYSArICIpIiwgZXhwZWN0ZWQpOwotfQotCiBmdW5jdGlvbiB0cnlTZXR0aW5n
RmlsbENvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3IsIGFscGhhKSB7CiAgICAgY3R4LmZpbGxT
dHlsZSA9ICcjNjY2JzsKICAgICBjdHguc2V0RmlsbENvbG9yKGNvbG9yLCBhbHBoYSk7CkBAIC0x
OTksMTMgKzE3NSw2IEBAIHRyeVNldHRpbmdSR0JBKDI1NSwgMjU1LCAyNTUsIDEuMCwgIicjZmZm
ZmZmJyIpOwogdHJ5U2V0dGluZ1JHQkEoMjU1LCAwLCAwLCAwLjAsICIncmdiYSgyNTUsIDAsIDAs
IDApJyIpOwogdHJ5U2V0dGluZ1JHQkEoMjU1LCAwLCAwLCAwLjQsICIncmdiYSgyNTUsIDAsIDAs
IDAuNCknIik7CiAKLXRyeVNldHRpbmdDTVlLQSgwLCAwLCAwLCAwLCAwLjAsICIncmdiYSgyNTUs
IDI1NSwgMjU1LCAwKSciKTsKLXRyeVNldHRpbmdDTVlLQSgwLCAwLCAwLCAwLCAxLjAsICInI2Zm
ZmZmZiciKTsKLXRyeVNldHRpbmdDTVlLQSgwLCAxLCAwLCAwLCAwLjAsICIncmdiYSgyNTUsIDAs
IDI1NSwgMCknIik7Ci10cnlTZXR0aW5nQ01ZS0EoMCwgMSwgMCwgMCwgMS4wLCAiJyNmZjAwZmYn
Iik7Ci10cnlTZXR0aW5nQ01ZS0EoMCwgMCwgMCwgMSwgMC4wLCAiJ3JnYmEoMCwgMCwgMCwgMCkn
Iik7Ci10cnlTZXR0aW5nQ01ZS0EoMCwgMCwgMCwgMSwgMS4wLCAiJyMwMDAwMDAnIik7Ci0KIHRy
eVNldHRpbmdHcmF5TGV2ZWwoMC4wLCAiJyMwMDAwMDAnIik7CiB0cnlTZXR0aW5nR3JheUxldmVs
KDAuNSwgIicjODA4MDgwJyIpOwogdHJ5U2V0dGluZ0dyYXlMZXZlbCgxLjAsICInI2ZmZmZmZici
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NldC1jb2xvcnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2V0LWNvbG9ycy1leHBlY3RlZC50eHQK
aW5kZXggNjFiYzQ5MGYyMzIxZWRkY2ZiODc4ZDcwMDBkZjYzZjFmMTg4ZmJiYy4uNDIyYWMxODA0
YTY0NjRlZmI4MmZkODdjYTliMWM4ZTUyYjMzMjkxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvc2V0LWNvbG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvc2V0LWNvbG9ycy1leHBlY3RlZC50eHQKQEAgLTMxLDkgKzMxLDYgQEAgUEFTUyB0
ZXN0U2V0RmlsbENvbG9yKCcxJykgaXMgd2hpdGUKIFBBU1MgdGVzdFNldEZpbGxDb2xvcignMSwg
MC44JykgaXMgdHJhbnNsdWNlbnRXaGl0ZQogUEFTUyB0ZXN0U2V0RmlsbENvbG9yKCcwLCAxLCAw
LCAxJykgaXMgZ3JlZW4KIFBBU1MgdGVzdFNldEZpbGxDb2xvcignMCwgMSwgMCwgMC44JykgaXMg
dHJhbnNsdWNlbnRHcmVlbgotRkFJTCB0ZXN0U2V0RmlsbENvbG9yKCcwLCAwLCAwLCAxLCAxJykg
c2hvdWxkIGJlICMxYTFhMWEuIFdhcyAjMDAwMDAwLgotRkFJTCB0ZXN0U2V0RmlsbENvbG9yKCcw
LCAwLCAwLCAxLCAwLjgnKSBzaG91bGQgYmUgcmdiYSgyNSwgMjUsIDI1LCAwLjgpLiBXYXMgcmdi
YSgwLCAwLCAwLCAwLjgpLgotUEFTUyB0ZXN0U2V0RmlsbENvbG9yKCcwLCAwLCAwLCAxLCAwJykg
aXMgdHJhbnNwYXJlbnQKIFBBU1MgdGVzdFN0cm9rZVN0eWxlKCd0cmFuc3BhcmVudCcpIGlzIHRy
YW5zcGFyZW50CiBQQVNTIHRlc3RTdHJva2VTdHlsZSgnYmx1ZScpIGlzIGJsdWUKIFBBU1MgdGVz
dFN0cm9rZVN0eWxlKCcjRkYwMDAwJykgaXMgcmVkCkBAIC02Miw5ICs1OSw2IEBAIFBBU1MgdGVz
dFNldFN0cm9rZUNvbG9yKCcxJykgaXMgd2hpdGUKIFBBU1MgdGVzdFNldFN0cm9rZUNvbG9yKCcx
LCAwLjgnKSBpcyB0cmFuc2x1Y2VudFdoaXRlCiBQQVNTIHRlc3RTZXRTdHJva2VDb2xvcignMCwg
MSwgMCwgMScpIGlzIGdyZWVuCiBQQVNTIHRlc3RTZXRTdHJva2VDb2xvcignMCwgMSwgMCwgMC44
JykgaXMgdHJhbnNsdWNlbnRHcmVlbgotRkFJTCB0ZXN0U2V0U3Ryb2tlQ29sb3IoJzAsIDAsIDAs
IDEsIDEnKSBzaG91bGQgYmUgIzFhMWExYS4gV2FzICMwMDAwMDAuCi1GQUlMIHRlc3RTZXRTdHJv
a2VDb2xvcignMCwgMCwgMCwgMSwgMC44Jykgc2hvdWxkIGJlIHJnYmEoMjUsIDI1LCAyNSwgMC44
KS4gV2FzIHJnYmEoMCwgMCwgMCwgMC44KS4KLVBBU1MgdGVzdFNldFN0cm9rZUNvbG9yKCcwLCAw
LCAwLCAxLCAwJykgaXMgdHJhbnNwYXJlbnQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
c2V0LWNvbG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2V0LWNvbG9ycy5odG1s
CmluZGV4IGNmODdmMDlkMGVlMDFiZjFlMjBiM2I1YzQ3NjkzNzdiZjM2YTY5ZWQuLjY3MjM0MjNh
OWVmMGFlMGNkNmFlZmIwYjY1ZmY1ZDBjYTQxMTE5MTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3NldC1jb2xvcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9zZXQtY29sb3JzLmh0bWwKQEAgLTEzMiw5ICsxMzIsNiBAQCBzaG91bGRCZSgidGVzdFNldEZp
bGxDb2xvcignMScpIiwgIndoaXRlIik7CiBzaG91bGRCZSgidGVzdFNldEZpbGxDb2xvcignMSwg
MC44JykiLCAidHJhbnNsdWNlbnRXaGl0ZSIpOwogc2hvdWxkQmUoInRlc3RTZXRGaWxsQ29sb3Io
JzAsIDEsIDAsIDEnKSIsICJncmVlbiIpOwogc2hvdWxkQmUoInRlc3RTZXRGaWxsQ29sb3IoJzAs
IDEsIDAsIDAuOCcpIiwgInRyYW5zbHVjZW50R3JlZW4iKTsKLXNob3VsZEJlKCJ0ZXN0U2V0Rmls
bENvbG9yKCcwLCAwLCAwLCAxLCAxJykiLCAiJyMxYTFhMWEnIik7ICAgICAgICAgICAgICAgICAg
IC8vIFRoaXMgdGVzdCBpcyBleHBlY3RlZCB0byBmYWlsIG9uIG9sZGVyIHZlcnNpb25zIG9mIE1h
YyBPUyBYLgotc2hvdWxkQmUoInRlc3RTZXRGaWxsQ29sb3IoJzAsIDAsIDAsIDEsIDAuOCcpIiwg
IidyZ2JhKDI1LCAyNSwgMjUsIDAuOCknIik7ICAgLy8gRGl0dG8uCi1zaG91bGRCZSgidGVzdFNl
dEZpbGxDb2xvcignMCwgMCwgMCwgMSwgMCcpIiwgInRyYW5zcGFyZW50Iik7CiBzaG91bGRCZSgi
dGVzdFN0cm9rZVN0eWxlKCd0cmFuc3BhcmVudCcpIiwgInRyYW5zcGFyZW50Iik7CiBzaG91bGRC
ZSgidGVzdFN0cm9rZVN0eWxlKCdibHVlJykiLCAiYmx1ZSIpOwogc2hvdWxkQmUoInRlc3RTdHJv
a2VTdHlsZSgnI0ZGMDAwMCcpIiwgInJlZCIpOwpAQCAtMTYzLDkgKzE2MCw2IEBAIHNob3VsZEJl
KCJ0ZXN0U2V0U3Ryb2tlQ29sb3IoJzEnKSIsICJ3aGl0ZSIpOwogc2hvdWxkQmUoInRlc3RTZXRT
dHJva2VDb2xvcignMSwgMC44JykiLCAidHJhbnNsdWNlbnRXaGl0ZSIpOwogc2hvdWxkQmUoInRl
c3RTZXRTdHJva2VDb2xvcignMCwgMSwgMCwgMScpIiwgImdyZWVuIik7CiBzaG91bGRCZSgidGVz
dFNldFN0cm9rZUNvbG9yKCcwLCAxLCAwLCAwLjgnKSIsICJ0cmFuc2x1Y2VudEdyZWVuIik7Ci1z
aG91bGRCZSgidGVzdFNldFN0cm9rZUNvbG9yKCcwLCAwLCAwLCAxLCAxJykiLCAiJyMxYTFhMWEn
Iik7ICAgICAgICAgICAgICAgICAgLy8gVGhpcyB0ZXN0IGlzIGV4cGVjdGVkIHRvIGZhaWwgb24g
b2xkZXIgdmVyc2lvbnMgb2YgTWFjIE9TIFguCi1zaG91bGRCZSgidGVzdFNldFN0cm9rZUNvbG9y
KCcwLCAwLCAwLCAxLCAwLjgnKSIsICIncmdiYSgyNSwgMjUsIDI1LCAwLjgpJyIpOyAgLy8gRGl0
dG8uCi1zaG91bGRCZSgidGVzdFNldFN0cm9rZUNvbG9yKCcwLCAwLCAwLCAxLCAwJykiLCAidHJh
bnNwYXJlbnQiKTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctMmQtZnVsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy0yZC1mdWxsLWV4cGVjdGVkLnR4dAppbmRl
eCBiMDEyZDJlMDIwZWQ3NTRiZjA5MjRmZGI3M2Y0NGNmY2NmNzA5ZjliLi5hYjQ4NTFhMmFlOTNk
MWQ0YTZiZGMwOWRlMDdlMTc5ZTA5ZjQ4ZjAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3JlY29yZGluZy0yZC1mdWxsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy0yZC1mdWxsLWV4cGVjdGVkLnR4dApAQCAt
Njk1LDEyICs2OTUsNiBAQCBmcmFtZXM6CiAgICAgICAgIDA6IHNldEZpbGxDb2xvcgogICAgICAg
ICAxOiAoYW5vbnltb3VzIGZ1bmN0aW9uKQogICAgICAgICAyOiBleGVjdXRlRnJhbWVGdW5jdGlv
bgotICAgIDU6IHNldEZpbGxDb2xvcig5LCAxMCwgMTEsIDEyLCAxMykKLSAgICAgIHN3aXp6bGVU
eXBlczogW051bWJlciwgTnVtYmVyLCBOdW1iZXIsIE51bWJlciwgTnVtYmVyXQotICAgICAgdHJh
Y2U6Ci0gICAgICAgIDA6IHNldEZpbGxDb2xvcgotICAgICAgICAxOiAoYW5vbnltb3VzIGZ1bmN0
aW9uKQotICAgICAgICAyOiBleGVjdXRlRnJhbWVGdW5jdGlvbgogICA1MDogKGR1cmF0aW9uKQog
ICAgIDA6IHNldExpbmVDYXAoIiIpCiAgICAgICBzd2l6emxlVHlwZXM6IFtTdHJpbmddCkBAIC04
MjgsMTIgKzgyMiw2IEBAIGZyYW1lczoKICAgICAgICAgMDogc2V0U3Ryb2tlQ29sb3IKICAgICAg
ICAgMTogKGFub255bW91cyBmdW5jdGlvbikKICAgICAgICAgMjogZXhlY3V0ZUZyYW1lRnVuY3Rp
b24KLSAgICA1OiBzZXRTdHJva2VDb2xvcig5LCAxMCwgMTEsIDEyLCAxMykKLSAgICAgIHN3aXp6
bGVUeXBlczogW051bWJlciwgTnVtYmVyLCBOdW1iZXIsIE51bWJlciwgTnVtYmVyXQotICAgICAg
dHJhY2U6Ci0gICAgICAgIDA6IHNldFN0cm9rZUNvbG9yCi0gICAgICAgIDE6IChhbm9ueW1vdXMg
ZnVuY3Rpb24pCi0gICAgICAgIDI6IGV4ZWN1dGVGcmFtZUZ1bmN0aW9uCiAgIDU3OiAoZHVyYXRp
b24pCiAgICAgMDogc2V0VHJhbnNmb3JtKDEsIDIsIDMsIDQsIDUsIDYpCiAgICAgICBzd2l6emxl
VHlwZXM6IFtOdW1iZXIsIE51bWJlciwgTnVtYmVyLCBOdW1iZXIsIE51bWJlciwgTnVtYmVyXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3Jk
aW5nLTJkLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3Jk
aW5nLTJkLmpzCmluZGV4IDdlODdkZjIwNTQ0OTg4M2ZmMjFlNzA0MjZmYTc2N2M4YjViMzJjODgu
LmU2OTI0NWNjNzBjNDRjNDQxMjVmOWU4NmI1ODU0NTBmNzc2MmQ1N2UgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy0yZC5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctMmQuanMK
QEAgLTI3Myw3ICsyNzMsNiBAQCBmdW5jdGlvbiBwZXJmb3JtQWN0aW9ucygpIHsKICAgICAgICAg
ICAgIGN0eC5zZXRGaWxsQ29sb3IoMik7CiAgICAgICAgICAgICBjdHguc2V0RmlsbENvbG9yKDMs
IDQpOwogICAgICAgICAgICAgY3R4LnNldEZpbGxDb2xvcig1LCA2LCA3LCA4KTsKLSAgICAgICAg
ICAgIGN0eC5zZXRGaWxsQ29sb3IoOSwgMTAsIDExLCAxMiwgMTMpOwogICAgICAgICB9LAogICAg
ICAgICAoKSA9PiB7CiAgICAgICAgICAgICBjdHguc2V0TGluZUNhcCgpOwpAQCAtMzA4LDcgKzMw
Nyw2IEBAIGZ1bmN0aW9uIHBlcmZvcm1BY3Rpb25zKCkgewogICAgICAgICAgICAgY3R4LnNldFN0
cm9rZUNvbG9yKDIpOwogICAgICAgICAgICAgY3R4LnNldFN0cm9rZUNvbG9yKDMsIDQpOwogICAg
ICAgICAgICAgY3R4LnNldFN0cm9rZUNvbG9yKDUsIDYsIDcsIDgpOwotICAgICAgICAgICAgY3R4
LnNldFN0cm9rZUNvbG9yKDksIDEwLCAxMSwgMTIsIDEzKTsKICAgICAgICAgfSwKICAgICAgICAg
KCkgPT4gewogICAgICAgICAgICAgY3R4LnNldFRyYW5zZm9ybSgxLCAyLCAzLCA0LCA1LCA2KTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9mYXN0L2NhbnZhcy9zZXQtY29s
b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9mYXN0L2NhbnZhcy9z
ZXQtY29sb3JzLWV4cGVjdGVkLnR4dAppbmRleCAyOTdkMDY4NzdjZmJiNDVjZWE0YTlmZjUxZTM0
M2M5NmZkY2M2NzdmLi40MjJhYzE4MDRhNjQ2NGVmYjgyZmQ4N2NhOWIxYzhlNTJiMzMyOTFkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvZmFzdC9jYW52YXMvc2V0LWNvbG9y
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2Zhc3QvY2FudmFz
L3NldC1jb2xvcnMtZXhwZWN0ZWQudHh0CkBAIC0zMSw5ICszMSw2IEBAIFBBU1MgdGVzdFNldEZp
bGxDb2xvcignMScpIGlzIHdoaXRlCiBQQVNTIHRlc3RTZXRGaWxsQ29sb3IoJzEsIDAuOCcpIGlz
IHRyYW5zbHVjZW50V2hpdGUKIFBBU1MgdGVzdFNldEZpbGxDb2xvcignMCwgMSwgMCwgMScpIGlz
IGdyZWVuCiBQQVNTIHRlc3RTZXRGaWxsQ29sb3IoJzAsIDEsIDAsIDAuOCcpIGlzIHRyYW5zbHVj
ZW50R3JlZW4KLUZBSUwgdGVzdFNldEZpbGxDb2xvcignMCwgMCwgMCwgMSwgMScpIHNob3VsZCBi
ZSAjMWExYTFhLiBXYXMgIzFhMTkxOS4KLUZBSUwgdGVzdFNldEZpbGxDb2xvcignMCwgMCwgMCwg
MSwgMC44Jykgc2hvdWxkIGJlIHJnYmEoMjUsIDI1LCAyNSwgMC44KS4gV2FzIHJnYmEoMjYsIDI1
LCAyNSwgMC44KS4KLVBBU1MgdGVzdFNldEZpbGxDb2xvcignMCwgMCwgMCwgMSwgMCcpIGlzIHRy
YW5zcGFyZW50CiBQQVNTIHRlc3RTdHJva2VTdHlsZSgndHJhbnNwYXJlbnQnKSBpcyB0cmFuc3Bh
cmVudAogUEFTUyB0ZXN0U3Ryb2tlU3R5bGUoJ2JsdWUnKSBpcyBibHVlCiBQQVNTIHRlc3RTdHJv
a2VTdHlsZSgnI0ZGMDAwMCcpIGlzIHJlZApAQCAtNjIsOSArNTksNiBAQCBQQVNTIHRlc3RTZXRT
dHJva2VDb2xvcignMScpIGlzIHdoaXRlCiBQQVNTIHRlc3RTZXRTdHJva2VDb2xvcignMSwgMC44
JykgaXMgdHJhbnNsdWNlbnRXaGl0ZQogUEFTUyB0ZXN0U2V0U3Ryb2tlQ29sb3IoJzAsIDEsIDAs
IDEnKSBpcyBncmVlbgogUEFTUyB0ZXN0U2V0U3Ryb2tlQ29sb3IoJzAsIDEsIDAsIDAuOCcpIGlz
IHRyYW5zbHVjZW50R3JlZW4KLUZBSUwgdGVzdFNldFN0cm9rZUNvbG9yKCcwLCAwLCAwLCAxLCAx
Jykgc2hvdWxkIGJlICMxYTFhMWEuIFdhcyAjMWExOTE5LgotRkFJTCB0ZXN0U2V0U3Ryb2tlQ29s
b3IoJzAsIDAsIDAsIDEsIDAuOCcpIHNob3VsZCBiZSByZ2JhKDI1LCAyNSwgMjUsIDAuOCkuIFdh
cyByZ2JhKDI2LCAyNSwgMjUsIDAuOCkuCi1QQVNTIHRlc3RTZXRTdHJva2VDb2xvcignMCwgMCwg
MCwgMSwgMCcpIGlzIHRyYW5zcGFyZW50CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2NhbnZhcy9zZXQtY29sb3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2NhbnZhcy9zZXQtY29sb3JzLWV4cGVjdGVkLnR4dAppbmRleCAyOTdkMDY4Nzdj
ZmJiNDVjZWE0YTlmZjUxZTM0M2M5NmZkY2M2NzdmLi40MjJhYzE4MDRhNjQ2NGVmYjgyZmQ4N2Nh
OWIxYzhlNTJiMzMyOTFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9jYW52YXMvc2V0LWNvbG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvY2FudmFzL3NldC1jb2xvcnMtZXhwZWN0ZWQudHh0CkBAIC0zMSw5ICszMSw2
IEBAIFBBU1MgdGVzdFNldEZpbGxDb2xvcignMScpIGlzIHdoaXRlCiBQQVNTIHRlc3RTZXRGaWxs
Q29sb3IoJzEsIDAuOCcpIGlzIHRyYW5zbHVjZW50V2hpdGUKIFBBU1MgdGVzdFNldEZpbGxDb2xv
cignMCwgMSwgMCwgMScpIGlzIGdyZWVuCiBQQVNTIHRlc3RTZXRGaWxsQ29sb3IoJzAsIDEsIDAs
IDAuOCcpIGlzIHRyYW5zbHVjZW50R3JlZW4KLUZBSUwgdGVzdFNldEZpbGxDb2xvcignMCwgMCwg
MCwgMSwgMScpIHNob3VsZCBiZSAjMWExYTFhLiBXYXMgIzFhMTkxOS4KLUZBSUwgdGVzdFNldEZp
bGxDb2xvcignMCwgMCwgMCwgMSwgMC44Jykgc2hvdWxkIGJlIHJnYmEoMjUsIDI1LCAyNSwgMC44
KS4gV2FzIHJnYmEoMjYsIDI1LCAyNSwgMC44KS4KLVBBU1MgdGVzdFNldEZpbGxDb2xvcignMCwg
MCwgMCwgMSwgMCcpIGlzIHRyYW5zcGFyZW50CiBQQVNTIHRlc3RTdHJva2VTdHlsZSgndHJhbnNw
YXJlbnQnKSBpcyB0cmFuc3BhcmVudAogUEFTUyB0ZXN0U3Ryb2tlU3R5bGUoJ2JsdWUnKSBpcyBi
bHVlCiBQQVNTIHRlc3RTdHJva2VTdHlsZSgnI0ZGMDAwMCcpIGlzIHJlZApAQCAtNjIsOSArNTks
NiBAQCBQQVNTIHRlc3RTZXRTdHJva2VDb2xvcignMScpIGlzIHdoaXRlCiBQQVNTIHRlc3RTZXRT
dHJva2VDb2xvcignMSwgMC44JykgaXMgdHJhbnNsdWNlbnRXaGl0ZQogUEFTUyB0ZXN0U2V0U3Ry
b2tlQ29sb3IoJzAsIDEsIDAsIDEnKSBpcyBncmVlbgogUEFTUyB0ZXN0U2V0U3Ryb2tlQ29sb3Io
JzAsIDEsIDAsIDAuOCcpIGlzIHRyYW5zbHVjZW50R3JlZW4KLUZBSUwgdGVzdFNldFN0cm9rZUNv
bG9yKCcwLCAwLCAwLCAxLCAxJykgc2hvdWxkIGJlICMxYTFhMWEuIFdhcyAjMWExOTE5LgotRkFJ
TCB0ZXN0U2V0U3Ryb2tlQ29sb3IoJzAsIDAsIDAsIDEsIDAuOCcpIHNob3VsZCBiZSByZ2JhKDI1
LCAyNSwgMjUsIDAuOCkuIFdhcyByZ2JhKDI2LCAyNSwgMjUsIDAuOCkuCi1QQVNTIHRlc3RTZXRT
dHJva2VDb2xvcignMCwgMCwgMCwgMSwgMCcpIGlzIHRyYW5zcGFyZW50CiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
</data>
<flag name="review"
          id="425610"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>409800</attachid>
            <date>2020-09-26 17:15:44 -0700</date>
            <delta_ts>2020-09-26 19:48:45 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217002-20200926171544.patch</filename>
            <type>text/plain</type>
            <size>22551</size>
            <attacher name="Wenson Hsieh">wenson_hsieh</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3NjI1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2RmZjk3ZTMyM2RkY2M2
OTdjY2NkZmI3MjYyNTdiNjNlNGJkMzViOS4uZWFiNWViM2UwYmRkZGJjZTlkMWIxZWI5M2MwMzk1
ZDZkMTIyNTRjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDIwLTA5LTI2ICBXZW5z
b24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUuY29tPgorCisgICAgICAgIFJlbW92ZSBzdXBw
b3J0IGZvciBzZXR0aW5nIENNWUtBIGZpbGwgYW5kIHN0cm9rZSBjb2xvcnMgaW4gMkQgY2FudmFz
CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTcwMDIK
KworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBSZW1vdmUgc3Vw
cG9ydCBmb3IgYHNldEZpbGxDb2xvcihjLCBtLCB5LCBrLCBhKWAgYW5kIGBzZXRTdHJva2VDb2xv
cihjLCBtLCB5LCBrLCBhKWAgb24KKyAgICAgICAgYENhbnZhc1JlbmRlcmluZ0NvbnRleHQyRGAs
IHdoaWNoIHdhcyBpbml0aWFsbHkgaW50cm9kdWNlZCBpbiAyMDA0IHdpdGggPGh0dHBzOi8vdHJh
Yy53ZWJraXQub3JnL3I2NzMwPi4KKyAgICAgICAgU2V0dGluZyBjb2xvcnMgZnJvbSBDTVlLQSBj
b21wb25lbnRzIGlzIG5vbi1zdGFuZGFyZCBhbmQgdW5zdXBwb3J0ZWQgaW4gYm90aCBGaXJlZm94
IGFuZCBDaHJvbWU7CisgICAgICAgIGltcG9ydGFudGx5LCB0aGlzIGlzIGltcGxlbWVudGVkIGlu
IGBDYW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvcmAgYnkgY2FsbGluZyBkaXJlY3RseSBpbnRv
IENvcmVHcmFwaGljcworICAgICAgICBBUEkgdXNpbmcgdGhlIHBsYXRmb3JtIGBDR0NvbnRleHRS
ZWZgLCB3aGljaCBpcyBudWxsIHdoZW4gdXNpbmcgdGhlIEdQVSBQcm9jZXNzOyB0aGlzIHN1YnNl
cXVlbnRseSBjYXVzZXMKKyAgICAgICAgdGhlIHdlYiBwcm9jZXNzIHRvIGNyYXNoLgorCisgICAg
ICAgIEluIGxpZXUgb2YgYWRkaW5nIG5ldyBEaXNwbGF5TGlzdCBpdGVtcyB0byBzdXBwb3J0IHNl
dHRpbmcgZmlsbCBhbmQgc3Ryb2tlIGNvbG9ycyB3aXRoIENNWUtBIGNvbXBvbmVudHMsCisgICAg
ICAgIHdlIGNhbiB0YWtlIHRoaXMgb3Bwb3J0dW5pdHkgdG8ganVzdCBkcm9wIHN1cHBvcnQgZm9y
IHRoaXMgY2FudmFzIEFQSSBlbnRpcmVseS4gRml4ZXMgdGhlIGZvbGxvd2luZyB0ZXN0cworICAg
ICAgICB3aGVuIHVzaW5nIHRoZSBHUFUgUHJvY2VzcyB0byByZW5kZXIgY2FudmFzOgorICAgICAg
ICAtIGZhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zZXJpYWxpemF0aW9uLmh0bWwKKyAgICAgICAg
LSBmYXN0L2NhbnZhcy9jYW52YXMtb3ZlcmxvYWRzLXNldEZpbGxDb2xvci5odG1sCisgICAgICAg
IC0gZmFzdC9jYW52YXMvY2FudmFzLW92ZXJsb2Fkcy1zZXRTdHJva2VDb2xvci5odG1sCisKKyAg
ICAgICAgKiBodG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRsOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRleHQyREJhc2UuY3BwOgorICAgICAg
ICAqIGh0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNhbnZh
c1N0eWxlOjppc0VxdWl2YWxlbnRDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvciBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpDYW52
YXNTdHlsZTo6YXBwbHlGaWxsQ29sb3IgY29uc3QpOgorICAgICAgICAqIGh0bWwvY2FudmFzL0Nh
bnZhc1N0eWxlLmg6CisgICAgICAgIChXZWJDb3JlOjpDYW52YXNTdHlsZTo6Y29sb3IgY29uc3Qp
OgorCiAyMDIwLTA5LTI2ICBBbGV4IENocmlzdGVuc2VuICA8YWNocmlzdGVuc2VuQHdlYmtpdC5v
cmc+CiAKICAgICAgICAgRml4IEJpZyBTdXIgY2xlYW4gYnVpbGQgYWZ0ZXIgcjI2NzYxMwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJELmlkbCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1JlbmRlcmluZ0NvbnRl
eHQyRC5pZGwKaW5kZXggYTk2OWNlMDJlYmRiMjNmOTg2OWQ3NTUwODY0MWMxOWUyODk5ZmFlZi4u
YjVhMTNiNjIzYzI2ZDZhMjRlOGMxMTEyYWU1NmY0M2EwNTlkMTZmZSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJELmlkbAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuaWRs
CkBAIC00NiwxMSArNDYsOSBAQAogICAgIHVuZGVmaW5lZCBzZXRTdHJva2VDb2xvcihET01TdHJp
bmcgY29sb3IsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCBhbHBoYSk7CiAgICAgdW5kZWZp
bmVkIHNldFN0cm9rZUNvbG9yKHVucmVzdHJpY3RlZCBmbG9hdCBncmF5TGV2ZWwsIG9wdGlvbmFs
IGZsb2F0IGFscGhhID0gMSk7CiAgICAgdW5kZWZpbmVkIHNldFN0cm9rZUNvbG9yKHVucmVzdHJp
Y3RlZCBmbG9hdCByLCB1bnJlc3RyaWN0ZWQgZmxvYXQgZywgdW5yZXN0cmljdGVkIGZsb2F0IGIs
IHVucmVzdHJpY3RlZCBmbG9hdCBhKTsKLSAgICB1bmRlZmluZWQgc2V0U3Ryb2tlQ29sb3IodW5y
ZXN0cmljdGVkIGZsb2F0IGMsIHVucmVzdHJpY3RlZCBmbG9hdCBtLCB1bnJlc3RyaWN0ZWQgZmxv
YXQgeSwgdW5yZXN0cmljdGVkIGZsb2F0IGssIHVucmVzdHJpY3RlZCBmbG9hdCBhKTsKICAgICB1
bmRlZmluZWQgc2V0RmlsbENvbG9yKERPTVN0cmluZyBjb2xvciwgb3B0aW9uYWwgdW5yZXN0cmlj
dGVkIGZsb2F0IGFscGhhKTsKICAgICB1bmRlZmluZWQgc2V0RmlsbENvbG9yKHVucmVzdHJpY3Rl
ZCBmbG9hdCBncmF5TGV2ZWwsIG9wdGlvbmFsIHVucmVzdHJpY3RlZCBmbG9hdCBhbHBoYSA9IDEp
OwogICAgIHVuZGVmaW5lZCBzZXRGaWxsQ29sb3IodW5yZXN0cmljdGVkIGZsb2F0IHIsIHVucmVz
dHJpY3RlZCBmbG9hdCBnLCB1bnJlc3RyaWN0ZWQgZmxvYXQgYiwgdW5yZXN0cmljdGVkIGZsb2F0
IGEpOwotICAgIHVuZGVmaW5lZCBzZXRGaWxsQ29sb3IodW5yZXN0cmljdGVkIGZsb2F0IGMsIHVu
cmVzdHJpY3RlZCBmbG9hdCBtLCB1bnJlc3RyaWN0ZWQgZmxvYXQgeSwgdW5yZXN0cmljdGVkIGZs
b2F0IGssIHVucmVzdHJpY3RlZCBmbG9hdCBhKTsKIAogICAgIC8vIE5vbi1zdGFuZGFyZCBmdW5j
dGlvbmFsaXR5IChDYW52YXNJbWFnZURhdGEpLgogICAgIHJlYWRvbmx5IGF0dHJpYnV0ZSBmbG9h
dCB3ZWJraXRCYWNraW5nU3RvcmVQaXhlbFJhdGlvOyAvLyBBbHdheXMgcmV0dXJucyAxLgpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzUmVuZGVyaW5nQ29udGV4
dDJEQmFzZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlLmNwcAppbmRleCBiYTdmM2RlNmIwYTRlODg4M2QyNjA1NjY3ZjU3NDU1ZGIz
NGIxN2I4Li42YmMwZjA4ZDBlZDNmMTE0NWE2ZWZlM2M1YzI0MzEwOGYyMWEzOTUxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdDb250ZXh0MkRC
YXNlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNSZW5kZXJpbmdD
b250ZXh0MkRCYXNlLmNwcApAQCAtOTMxLDE0ICs5MzEsNiBAQCB2b2lkIENhbnZhc1JlbmRlcmlu
Z0NvbnRleHQyREJhc2U6OnNldFN0cm9rZUNvbG9yKGZsb2F0IHIsIGZsb2F0IGcsIGZsb2F0IGIs
IGZsbwogICAgIHNldFN0cm9rZVN0eWxlKENhbnZhc1N0eWxlKGNvbG9yKSk7CiB9CiAKLXZvaWQg
Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6c2V0U3Ryb2tlQ29sb3IoZmxvYXQgYywgZmxv
YXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkKLXsKLSAgICBhdXRvIGNvbG9yID0gQ01Z
S0EgeyBjLCBtLCB5LCBrLCBhIH07Ci0gICAgaWYgKHN0YXRlKCkuc3Ryb2tlU3R5bGUuaXNFcXVp
dmFsZW50KGNvbG9yKSkKLSAgICAgICAgcmV0dXJuOwotICAgIHNldFN0cm9rZVN0eWxlKENhbnZh
c1N0eWxlKGNvbG9yKSk7Ci19Ci0KIHZvaWQgQ2FudmFzUmVuZGVyaW5nQ29udGV4dDJEQmFzZTo6
c2V0RmlsbENvbG9yKGNvbnN0IFN0cmluZyYgY29sb3IsIE9wdGlvbmFsPGZsb2F0PiBhbHBoYSkK
IHsKICAgICBpZiAoYWxwaGEpIHsKQEAgLTk3MCwxNCArOTYyLDYgQEAgdm9pZCBDYW52YXNSZW5k
ZXJpbmdDb250ZXh0MkRCYXNlOjpzZXRGaWxsQ29sb3IoZmxvYXQgciwgZmxvYXQgZywgZmxvYXQg
YiwgZmxvYXQKICAgICBzZXRGaWxsU3R5bGUoQ2FudmFzU3R5bGUoY29sb3IpKTsKIH0KIAotdm9p
ZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpzZXRGaWxsQ29sb3IoZmxvYXQgYywgZmxv
YXQgbSwgZmxvYXQgeSwgZmxvYXQgaywgZmxvYXQgYSkKLXsKLSAgICBhdXRvIGNvbG9yID0gQ01Z
S0EgeyBjLCBtLCB5LCBrLCBhIH07Ci0gICAgaWYgKHN0YXRlKCkuZmlsbFN0eWxlLmlzRXF1aXZh
bGVudChjb2xvcikpCi0gICAgICAgIHJldHVybjsKLSAgICBzZXRGaWxsU3R5bGUoQ2FudmFzU3R5
bGUoY29sb3IpKTsKLX0KLQogdm9pZCBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkRCYXNlOjpiZWdp
blBhdGgoKQogewogICAgIG1fcGF0aC5jbGVhcigpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzU3R5bGUuY3BwCmluZGV4IDE0Y2NhZTE0OWNhNWIzZmI1MGIwZDllYjg4NTZmNDI3
OTViZWYwMzQuLmRkNTYyMDlkMjUyNmU0ZDUzOTUyMzQ4ZWVkYTI1NDRmYjI5ZTE1NmIgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmNwcAorKysgYi9T
b3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNTdHlsZS5jcHAKQEAgLTk5LDExICs5OSw2
IEBAIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShjb25zdCBTUkdCQTxmbG9hdD4mIGNvbG9yQ29t
cG9uZW50cykKIHsKIH0KIAotQ2FudmFzU3R5bGU6OkNhbnZhc1N0eWxlKGNvbnN0IENNWUtBPGZs
b2F0PiYgY29sb3JDb21wb25lbnRzKQotICAgIDogbV9zdHlsZShDTVlLQUNvbG9yIHsgY29udmVy
dFRvQ29tcG9uZW50Qnl0ZXModG9TUkdCQShjb2xvckNvbXBvbmVudHMpKSwgY29sb3JDb21wb25l
bnRzIH0pCi17Ci19Ci0KIENhbnZhc1N0eWxlOjpDYW52YXNTdHlsZShDYW52YXNHcmFkaWVudCYg
Z3JhZGllbnQpCiAgICAgOiBtX3N0eWxlKG1ha2VSZWZQdHIoZ3JhZGllbnQpKQogewpAQCAtMTQ4
LDkgKzE0Myw2IEBAIGJvb2wgQ2FudmFzU3R5bGU6OmlzRXF1aXZhbGVudENvbG9yKGNvbnN0IENh
bnZhc1N0eWxlJiBvdGhlcikgY29uc3QKICAgICBpZiAoV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxD
b2xvcj4obV9zdHlsZSkgJiYgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDb2xvcj4ob3RoZXIubV9z
dHlsZSkpCiAgICAgICAgIHJldHVybiBXVEY6OmdldDxDb2xvcj4obV9zdHlsZSkgPT0gV1RGOjpn
ZXQ8Q29sb3I+KG90aGVyLm1fc3R5bGUpOwogCi0gICAgaWYgKFdURjo6aG9sZHNfYWx0ZXJuYXRp
dmU8Q01ZS0FDb2xvcj4obV9zdHlsZSkgJiYgV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDTVlLQUNv
bG9yPihvdGhlci5tX3N0eWxlKSkKLSAgICAgICAgcmV0dXJuIFdURjo6Z2V0PENNWUtBQ29sb3I+
KG1fc3R5bGUpLmNvbXBvbmVudHMgPT0gV1RGOjpnZXQ8Q01ZS0FDb2xvcj4ob3RoZXIubV9zdHls
ZSkuY29tcG9uZW50czsKLQogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMTU5LDI2ICsxNTEs
MTIgQEAgYm9vbCBDYW52YXNTdHlsZTo6aXNFcXVpdmFsZW50KGNvbnN0IFNSR0JBPGZsb2F0PiYg
Y29tcG9uZW50cykgY29uc3QKICAgICByZXR1cm4gV1RGOjpob2xkc19hbHRlcm5hdGl2ZTxDb2xv
cj4obV9zdHlsZSkgJiYgV1RGOjpnZXQ8Q29sb3I+KG1fc3R5bGUpID09IGNvbnZlcnRUb0NvbXBv
bmVudEJ5dGVzKGNvbXBvbmVudHMpOwogfQogCi1ib29sIENhbnZhc1N0eWxlOjppc0VxdWl2YWxl
bnQoY29uc3QgQ01ZS0E8ZmxvYXQ+JiBjb21wb25lbnRzKSBjb25zdAotewotICAgIHJldHVybiBX
VEY6OmhvbGRzX2FsdGVybmF0aXZlPENNWUtBQ29sb3I+KG1fc3R5bGUpICYmIFdURjo6Z2V0PENN
WUtBQ29sb3I+KG1fc3R5bGUpLmNvbXBvbmVudHMgPT0gY29tcG9uZW50czsKLX0KLQogdm9pZCBD
YW52YXNTdHlsZTo6YXBwbHlTdHJva2VDb2xvcihHcmFwaGljc0NvbnRleHQmIGNvbnRleHQpIGNv
bnN0CiB7CiAgICAgV1RGOjpzd2l0Y2hPbihtX3N0eWxlLAogICAgICAgICBbJmNvbnRleHRdIChj
b25zdCBDb2xvciYgY29sb3IpIHsKICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlQ29sb3Io
Y29sb3IpOwogICAgICAgICB9LAotICAgICAgICBbJmNvbnRleHRdIChjb25zdCBDTVlLQUNvbG9y
JiBjb2xvcikgewotICAgICAgICAgICAgLy8gRklYTUU6IERvIHRoaXMgdGhyb3VnaCBwbGF0Zm9y
bS1pbmRlcGVuZGVudCBHcmFwaGljc0NvbnRleHQgQVBJLgotICAgICAgICAgICAgLy8gV2UnbGwg
bmVlZCBhIGZhbmNpZXIgQ29sb3IgYWJzdHJhY3Rpb24gdG8gc3VwcG9ydCBDTVlLQSBjb3JyZWN0
bHkKLSNpZiBVU0UoQ0cpCi0gICAgICAgICAgICBDR0NvbnRleHRTZXRDTVlLU3Ryb2tlQ29sb3Io
Y29udGV4dC5wbGF0Zm9ybUNvbnRleHQoKSwgY29sb3IuY29tcG9uZW50cy5jeWFuLCBjb2xvci5j
b21wb25lbnRzLm1hZ2VudGEsIGNvbG9yLmNvbXBvbmVudHMueWVsbG93LCBjb2xvci5jb21wb25l
bnRzLmJsYWNrLCBjb2xvci5jb21wb25lbnRzLmFscGhhKTsKLSNlbHNlCi0gICAgICAgICAgICBj
b250ZXh0LnNldFN0cm9rZUNvbG9yKGNvbG9yLmNvbG9yQ29udmVydGVkVG9TUkdCQSk7Ci0jZW5k
aWYKLSAgICAgICAgfSwKICAgICAgICAgWyZjb250ZXh0XSAoY29uc3QgUmVmUHRyPENhbnZhc0dy
YWRpZW50PiYgZ3JhZGllbnQpIHsKICAgICAgICAgICAgIGNvbnRleHQuc2V0U3Ryb2tlR3JhZGll
bnQoZ3JhZGllbnQtPmdyYWRpZW50KCkpOwogICAgICAgICB9LApAQCAtMjAwLDE1ICsxNzgsNiBA
QCB2b2lkIENhbnZhc1N0eWxlOjphcHBseUZpbGxDb2xvcihHcmFwaGljc0NvbnRleHQmIGNvbnRl
eHQpIGNvbnN0CiAgICAgICAgIFsmY29udGV4dF0gKGNvbnN0IENvbG9yJiBjb2xvcikgewogICAg
ICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29sb3IpOwogICAgICAgICB9LAotICAgICAg
ICBbJmNvbnRleHRdIChjb25zdCBDTVlLQUNvbG9yJiBjb2xvcikgewotICAgICAgICAgICAgLy8g
RklYTUU6IERvIHRoaXMgdGhyb3VnaCBwbGF0Zm9ybS1pbmRlcGVuZGVudCBHcmFwaGljc0NvbnRl
eHQgQVBJLgotICAgICAgICAgICAgLy8gV2UnbGwgbmVlZCBhIGZhbmNpZXIgQ29sb3IgYWJzdHJh
Y3Rpb24gdG8gc3VwcG9ydCBDTVlLQSBjb3JyZWN0bHkKLSNpZiBVU0UoQ0cpCi0gICAgICAgICAg
ICBDR0NvbnRleHRTZXRDTVlLRmlsbENvbG9yKGNvbnRleHQucGxhdGZvcm1Db250ZXh0KCksIGNv
bG9yLmNvbXBvbmVudHMuY3lhbiwgY29sb3IuY29tcG9uZW50cy5tYWdlbnRhLCBjb2xvci5jb21w
b25lbnRzLnllbGxvdywgY29sb3IuY29tcG9uZW50cy5ibGFjaywgY29sb3IuY29tcG9uZW50cy5h
bHBoYSk7Ci0jZWxzZQotICAgICAgICAgICAgY29udGV4dC5zZXRGaWxsQ29sb3IoY29sb3IuY29s
b3JDb252ZXJ0ZWRUb1NSR0JBKTsKLSNlbmRpZgotICAgICAgICB9LAogICAgICAgICBbJmNvbnRl
eHRdIChjb25zdCBSZWZQdHI8Q2FudmFzR3JhZGllbnQ+JiBncmFkaWVudCkgewogICAgICAgICAg
ICAgY29udGV4dC5zZXRGaWxsR3JhZGllbnQoZ3JhZGllbnQtPmdyYWRpZW50KCkpOwogICAgICAg
ICB9LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52YXMvQ2FudmFzU3R5bGUu
aCBiL1NvdXJjZS9XZWJDb3JlL2h0bWwvY2FudmFzL0NhbnZhc1N0eWxlLmgKaW5kZXggZDg1MjI4
MDU5NjE4N2M2ODMwYjRmOGM1ODUwYWZiYTg2MTAzYjQzMy4uZDcwYmRhODA4N2FkODFlNTg4ZTc1
ZTczYTU3M2QwZTcwNTIxMTAwMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9jYW52
YXMvQ2FudmFzU3R5bGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL2NhbnZhcy9DYW52YXNT
dHlsZS5oCkBAIC02OCwxOCArNjgsMTMgQEAgcHVibGljOgogcHJpdmF0ZToKICAgICBzdHJ1Y3Qg
SW52YWxpZCB7IH07CiAKLSAgICBzdHJ1Y3QgQ01ZS0FDb2xvciB7Ci0gICAgICAgIENvbG9yIGNv
bG9yQ29udmVydGVkVG9TUkdCQTsKLSAgICAgICAgQ01ZS0E8ZmxvYXQ+IGNvbXBvbmVudHM7Ci0g
ICAgfTsKLQogICAgIHN0cnVjdCBDdXJyZW50Q29sb3IgewogICAgICAgICBPcHRpb25hbDxmbG9h
dD4gb3ZlcnJpZGVBbHBoYTsKICAgICB9OwogCiAgICAgQ2FudmFzU3R5bGUoQ3VycmVudENvbG9y
KTsKIAotICAgIFZhcmlhbnQ8SW52YWxpZCwgQ29sb3IsIENNWUtBQ29sb3IsIFJlZlB0cjxDYW52
YXNHcmFkaWVudD4sIFJlZlB0cjxDYW52YXNQYXR0ZXJuPiwgQ3VycmVudENvbG9yPiBtX3N0eWxl
OworICAgIFZhcmlhbnQ8SW52YWxpZCwgQ29sb3IsIFJlZlB0cjxDYW52YXNHcmFkaWVudD4sIFJl
ZlB0cjxDYW52YXNQYXR0ZXJuPiwgQ3VycmVudENvbG9yPiBtX3N0eWxlOwogfTsKIAogYm9vbCBp
c0N1cnJlbnRDb2xvclN0cmluZyhjb25zdCBTdHJpbmcmIGNvbG9yU3RyaW5nKTsKQEAgLTEwOSw3
ICsxMDQsNyBAQCBpbmxpbmUgUmVmUHRyPENhbnZhc1BhdHRlcm4+IENhbnZhc1N0eWxlOjpjYW52
YXNQYXR0ZXJuKCkgY29uc3QKIAogaW5saW5lIFN0cmluZyBDYW52YXNTdHlsZTo6Y29sb3IoKSBj
b25zdAogewotICAgIHJldHVybiBzZXJpYWxpemF0aW9uRm9ySFRNTChXVEY6OmhvbGRzX2FsdGVy
bmF0aXZlPENvbG9yPihtX3N0eWxlKSA/IFdURjo6Z2V0PENvbG9yPihtX3N0eWxlKSA6IFdURjo6
Z2V0PENNWUtBQ29sb3I+KG1fc3R5bGUpLmNvbG9yQ29udmVydGVkVG9TUkdCQSk7CisgICAgcmV0
dXJuIHNlcmlhbGl6YXRpb25Gb3JIVE1MKFdURjo6Z2V0PENvbG9yPihtX3N0eWxlKSk7CiB9CiAK
IH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxv
ZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBmMDVkNzM5MDAwNmUyNDhmZWZlODEyMTUz
MTIzYzVlNGFkNTgwYTQxLi4yMGQ0NDBiOTQwMDMyZTM4YzdmMmY4NmNjNjBhMmI0Mjc5ZjU0MmU5
IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMjAtMDktMjYgIFdlbnNvbiBIc2llaCAgPHdlbnNv
bl9oc2llaEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIHN1cHBvcnQgZm9yIHNldHRpbmcg
Q01ZS0EgZmlsbCBhbmQgc3Ryb2tlIGNvbG9ycyBpbiAyRCBjYW52YXMKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzAwMgorCisgICAgICAgIFJldmll
d2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgIFJlbW92ZSBjYWxscyB0byBgQ2FudmFzUmVu
ZGVyaW5nQ29udGV4dDJELnNldEZpbGxDb2xvcihjLCBtLCB5LCBrLCBhKWAgYW5kCisgICAgICAg
IGBDYW52YXNSZW5kZXJpbmdDb250ZXh0MkQuc2V0U3Ryb2tlQ29sb3IoYywgbSwgeSwgaywgYSlg
IGluIHRoZXNlIGxheW91dCB0ZXN0cy4KKworICAgICAgICAqIGZhc3QvY2FudmFzL2NhbnZhcy1j
b2xvci1zZXJpYWxpemF0aW9uLWV4cGVjdGVkLnR4dDoKKyAgICAgICAgKiBmYXN0L2NhbnZhcy9j
YW52YXMtY29sb3Itc2VyaWFsaXphdGlvbi5odG1sOgorICAgICAgICAqIGZhc3QvY2FudmFzL3Nl
dC1jb2xvcnMtZXhwZWN0ZWQudHh0OgorICAgICAgICAqIGZhc3QvY2FudmFzL3NldC1jb2xvcnMu
aHRtbDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy0yZC1mdWxsLWV4cGVj
dGVkLnR4dDoKKyAgICAgICAgKiBpbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmct
MmQuanM6CisgICAgICAgICogcGxhdGZvcm0vaW9zL2Zhc3QvY2FudmFzL3NldC1jb2xvcnMtZXhw
ZWN0ZWQudHh0OgorICAgICAgICAqIHBsYXRmb3JtL21hYy9mYXN0L2NhbnZhcy9zZXQtY29sb3Jz
LWV4cGVjdGVkLnR4dDoKKwogMjAyMC0wOS0yNiAgWmFsYW4gQnVqdGFzICA8emFsYW5AYXBwbGUu
Y29tPgogCiAgICAgICAgIFtMRkNdW0lGQ10gTGluZSBjb250ZW50IGxvZ2ljYWwgd2lkdGggZXhw
YW5kcyB3aXRoIHJ1biBleHBhbnNpb25zICh0ZXh0LWFsaWduOiBqdXN0aWZ5KQpkaWZmIC0tZ2l0
IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNlcmlhbGl6YXRpb24tZXhw
ZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNlcmlhbGl6
YXRpb24tZXhwZWN0ZWQudHh0CmluZGV4IGI4ZjNlYmQ0ZTQ4YzdhYTYwN2I2MGYwYzU2MmRlOGE4
ZmNmMzdhMDYuLjNkYTJhOTVjZDU3ODI2MDJhOGFjOTExYzEwMTljYjA4MzQ3NmRhNWUgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zZXJpYWxpemF0aW9u
LWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3It
c2VyaWFsaXphdGlvbi1leHBlY3RlZC50eHQKQEAgLTI0LDI0ICsyNCw2IEBAIFBBU1MgdHJ5U2V0
dGluZ1NoYWRvd1JHQkEoMjU1LCAwLCAwLCAwKSBpcyAncmdiYSgyNTUsIDAsIDAsIDApJwogUEFT
UyB0cnlTZXR0aW5nRmlsbENvbG9yUkdCQSgyNTUsIDAsIDAsIDAuNCkgaXMgJ3JnYmEoMjU1LCAw
LCAwLCAwLjQpJwogUEFTUyB0cnlTZXR0aW5nU3Ryb2tlQ29sb3JSR0JBKDI1NSwgMCwgMCwgMC40
KSBpcyAncmdiYSgyNTUsIDAsIDAsIDAuNCknCiBQQVNTIHRyeVNldHRpbmdTaGFkb3dSR0JBKDI1
NSwgMCwgMCwgMC40KSBpcyAncmdiYSgyNTUsIDAsIDAsIDAuNCknCi1QQVNTIHRyeVNldHRpbmdG
aWxsQ29sb3JDTVlLQSgwLCAwLCAwLCAwLCAwKSBpcyAncmdiYSgyNTUsIDI1NSwgMjU1LCAwKScK
LVBBU1MgdHJ5U2V0dGluZ1N0cm9rZUNvbG9yQ01ZS0EoMCwgMCwgMCwgMCwgMCkgaXMgJ3JnYmEo
MjU1LCAyNTUsIDI1NSwgMCknCi1QQVNTIHRyeVNldHRpbmdTaGFkb3dDTVlLQSgwLCAwLCAwLCAw
LCAwKSBpcyAncmdiYSgyNTUsIDI1NSwgMjU1LCAwKScKLVBBU1MgdHJ5U2V0dGluZ0ZpbGxDb2xv
ckNNWUtBKDAsIDAsIDAsIDAsIDEpIGlzICcjZmZmZmZmJwotUEFTUyB0cnlTZXR0aW5nU3Ryb2tl
Q29sb3JDTVlLQSgwLCAwLCAwLCAwLCAxKSBpcyAnI2ZmZmZmZicKLVBBU1MgdHJ5U2V0dGluZ1No
YWRvd0NNWUtBKDAsIDAsIDAsIDAsIDEpIGlzICcjZmZmZmZmJwotUEFTUyB0cnlTZXR0aW5nRmls
bENvbG9yQ01ZS0EoMCwgMSwgMCwgMCwgMCkgaXMgJ3JnYmEoMjU1LCAwLCAyNTUsIDApJwotUEFT
UyB0cnlTZXR0aW5nU3Ryb2tlQ29sb3JDTVlLQSgwLCAxLCAwLCAwLCAwKSBpcyAncmdiYSgyNTUs
IDAsIDI1NSwgMCknCi1QQVNTIHRyeVNldHRpbmdTaGFkb3dDTVlLQSgwLCAxLCAwLCAwLCAwKSBp
cyAncmdiYSgyNTUsIDAsIDI1NSwgMCknCi1QQVNTIHRyeVNldHRpbmdGaWxsQ29sb3JDTVlLQSgw
LCAxLCAwLCAwLCAxKSBpcyAnI2ZmMDBmZicKLVBBU1MgdHJ5U2V0dGluZ1N0cm9rZUNvbG9yQ01Z
S0EoMCwgMSwgMCwgMCwgMSkgaXMgJyNmZjAwZmYnCi1QQVNTIHRyeVNldHRpbmdTaGFkb3dDTVlL
QSgwLCAxLCAwLCAwLCAxKSBpcyAnI2ZmMDBmZicKLVBBU1MgdHJ5U2V0dGluZ0ZpbGxDb2xvckNN
WUtBKDAsIDAsIDAsIDEsIDApIGlzICdyZ2JhKDAsIDAsIDAsIDApJwotUEFTUyB0cnlTZXR0aW5n
U3Ryb2tlQ29sb3JDTVlLQSgwLCAwLCAwLCAxLCAwKSBpcyAncmdiYSgwLCAwLCAwLCAwKScKLVBB
U1MgdHJ5U2V0dGluZ1NoYWRvd0NNWUtBKDAsIDAsIDAsIDEsIDApIGlzICdyZ2JhKDAsIDAsIDAs
IDApJwotUEFTUyB0cnlTZXR0aW5nRmlsbENvbG9yQ01ZS0EoMCwgMCwgMCwgMSwgMSkgaXMgJyMw
MDAwMDAnCi1QQVNTIHRyeVNldHRpbmdTdHJva2VDb2xvckNNWUtBKDAsIDAsIDAsIDEsIDEpIGlz
ICcjMDAwMDAwJwotUEFTUyB0cnlTZXR0aW5nU2hhZG93Q01ZS0EoMCwgMCwgMCwgMSwgMSkgaXMg
JyMwMDAwMDAnCiBQQVNTIHRyeVNldHRpbmdGaWxsQ29sb3JHcmF5TGV2ZWwoMCkgaXMgJyMwMDAw
MDAnCiBQQVNTIHRyeVNldHRpbmdTdHJva2VDb2xvckdyYXlMZXZlbCgwKSBpcyAnIzAwMDAwMCcK
IFBBU1MgdHJ5U2V0dGluZ1NoYWRvd0dyYXlMZXZlbCgwKSBpcyAnIzAwMDAwMCcKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zZXJpYWxpemF0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZhcy9jYW52YXMtY29sb3Itc2VyaWFsaXphdGlvbi5o
dG1sCmluZGV4IDFkZTE0YWZkM2JlN2VhMzA3OTQxNDA0NGJkMTIwOTM4YjQ0MmUyNWEuLmQ0YjYx
ZGUzOWM3ZmU3ZWNlYzQ3ZWY5ZGQ1NmE2YmVhNTQ2ZGI3NjEgMTAwNjQ0Ci0tLSBhL0xheW91dFRl
c3RzL2Zhc3QvY2FudmFzL2NhbnZhcy1jb2xvci1zZXJpYWxpemF0aW9uLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC9jYW52YXMvY2FudmFzLWNvbG9yLXNlcmlhbGl6YXRpb24uaHRtbApAQCAt
ODEsMzAgKzgxLDYgQEAgZnVuY3Rpb24gdHJ5U2V0dGluZ1JHQkEociwgZywgYiwgYSwgZXhwZWN0
ZWQpIHsKICAgICBzaG91bGRCZSgidHJ5U2V0dGluZ1NoYWRvd1JHQkEoIiArIHIgKyAiLCAiICsg
ZyArICIsICIgKyBiICsgIiwgIiArIGEgKyAiKSIsIGV4cGVjdGVkKTsKIH0KIAotZnVuY3Rpb24g
dHJ5U2V0dGluZ0ZpbGxDb2xvckNNWUtBKGMsIG0sIHksIGssIGEpIHsKLSAgICBjdHguZmlsbFN0
eWxlID0gJyM2NjYnOwotICAgIGN0eC5zZXRGaWxsQ29sb3IoYywgbSwgeSwgaywgYSk7Ci0gICAg
cmV0dXJuIGN0eC5maWxsU3R5bGU7Ci19Ci0KLWZ1bmN0aW9uIHRyeVNldHRpbmdTdHJva2VDb2xv
ckNNWUtBKGMsIG0sIHksIGssIGEpIHsKLSAgICBjdHguc3Ryb2tlU3R5bGUgPSAnIzY2Nic7Ci0g
ICAgY3R4LnNldFN0cm9rZUNvbG9yKGMsIG0sIHksIGssIGEpOwotICAgIHJldHVybiBjdHguc3Ry
b2tlU3R5bGU7Ci19Ci0KLWZ1bmN0aW9uIHRyeVNldHRpbmdTaGFkb3dDTVlLQShjLCBtLCB5LCBr
LCBhKSB7Ci0gICAgY3R4LnN0cm9rZVN0eWxlID0gJyM2NjYnOwotICAgIGN0eC5zZXRTdHJva2VD
b2xvcihjLCBtLCB5LCBrLCBhKTsKLSAgICByZXR1cm4gY3R4LnN0cm9rZVN0eWxlOwotfQotCi1m
dW5jdGlvbiB0cnlTZXR0aW5nQ01ZS0EoYywgbSwgeSwgaywgYSwgZXhwZWN0ZWQpIHsKLSAgICBz
aG91bGRCZSgidHJ5U2V0dGluZ0ZpbGxDb2xvckNNWUtBKCIgKyBjICsgIiwgIiArIG0gKyAiLCAi
ICsgeSArICIsICIgKyBrICsgIiwgIiArIGEgKyAiKSIsIGV4cGVjdGVkKTsKLSAgICBzaG91bGRC
ZSgidHJ5U2V0dGluZ1N0cm9rZUNvbG9yQ01ZS0EoIiArIGMgKyAiLCAiICsgbSArICIsICIgKyB5
ICsgIiwgIiArIGsgKyAiLCAiICsgYSArICIpIiwgZXhwZWN0ZWQpOwotICAgIHNob3VsZEJlKCJ0
cnlTZXR0aW5nU2hhZG93Q01ZS0EoIiArIGMgKyAiLCAiICsgbSArICIsICIgKyB5ICsgIiwgIiAr
IGsgKyAiLCAiICsgYSArICIpIiwgZXhwZWN0ZWQpOwotfQotCiBmdW5jdGlvbiB0cnlTZXR0aW5n
RmlsbENvbG9yV2l0aE92ZXJyaWRlQWxwaGEoY29sb3IsIGFscGhhKSB7CiAgICAgY3R4LmZpbGxT
dHlsZSA9ICcjNjY2JzsKICAgICBjdHguc2V0RmlsbENvbG9yKGNvbG9yLCBhbHBoYSk7CkBAIC0x
OTksMTMgKzE3NSw2IEBAIHRyeVNldHRpbmdSR0JBKDI1NSwgMjU1LCAyNTUsIDEuMCwgIicjZmZm
ZmZmJyIpOwogdHJ5U2V0dGluZ1JHQkEoMjU1LCAwLCAwLCAwLjAsICIncmdiYSgyNTUsIDAsIDAs
IDApJyIpOwogdHJ5U2V0dGluZ1JHQkEoMjU1LCAwLCAwLCAwLjQsICIncmdiYSgyNTUsIDAsIDAs
IDAuNCknIik7CiAKLXRyeVNldHRpbmdDTVlLQSgwLCAwLCAwLCAwLCAwLjAsICIncmdiYSgyNTUs
IDI1NSwgMjU1LCAwKSciKTsKLXRyeVNldHRpbmdDTVlLQSgwLCAwLCAwLCAwLCAxLjAsICInI2Zm
ZmZmZiciKTsKLXRyeVNldHRpbmdDTVlLQSgwLCAxLCAwLCAwLCAwLjAsICIncmdiYSgyNTUsIDAs
IDI1NSwgMCknIik7Ci10cnlTZXR0aW5nQ01ZS0EoMCwgMSwgMCwgMCwgMS4wLCAiJyNmZjAwZmYn
Iik7Ci10cnlTZXR0aW5nQ01ZS0EoMCwgMCwgMCwgMSwgMC4wLCAiJ3JnYmEoMCwgMCwgMCwgMCkn
Iik7Ci10cnlTZXR0aW5nQ01ZS0EoMCwgMCwgMCwgMSwgMS4wLCAiJyMwMDAwMDAnIik7Ci0KIHRy
eVNldHRpbmdHcmF5TGV2ZWwoMC4wLCAiJyMwMDAwMDAnIik7CiB0cnlTZXR0aW5nR3JheUxldmVs
KDAuNSwgIicjODA4MDgwJyIpOwogdHJ5U2V0dGluZ0dyYXlMZXZlbCgxLjAsICInI2ZmZmZmZici
KTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvY2FudmFzL3NldC1jb2xvcnMtZXhwZWN0
ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2V0LWNvbG9ycy1leHBlY3RlZC50eHQK
aW5kZXggNjFiYzQ5MGYyMzIxZWRkY2ZiODc4ZDcwMDBkZjYzZjFmMTg4ZmJiYy4uNDIyYWMxODA0
YTY0NjRlZmI4MmZkODdjYTliMWM4ZTUyYjMzMjkxZCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
ZmFzdC9jYW52YXMvc2V0LWNvbG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvZmFz
dC9jYW52YXMvc2V0LWNvbG9ycy1leHBlY3RlZC50eHQKQEAgLTMxLDkgKzMxLDYgQEAgUEFTUyB0
ZXN0U2V0RmlsbENvbG9yKCcxJykgaXMgd2hpdGUKIFBBU1MgdGVzdFNldEZpbGxDb2xvcignMSwg
MC44JykgaXMgdHJhbnNsdWNlbnRXaGl0ZQogUEFTUyB0ZXN0U2V0RmlsbENvbG9yKCcwLCAxLCAw
LCAxJykgaXMgZ3JlZW4KIFBBU1MgdGVzdFNldEZpbGxDb2xvcignMCwgMSwgMCwgMC44JykgaXMg
dHJhbnNsdWNlbnRHcmVlbgotRkFJTCB0ZXN0U2V0RmlsbENvbG9yKCcwLCAwLCAwLCAxLCAxJykg
c2hvdWxkIGJlICMxYTFhMWEuIFdhcyAjMDAwMDAwLgotRkFJTCB0ZXN0U2V0RmlsbENvbG9yKCcw
LCAwLCAwLCAxLCAwLjgnKSBzaG91bGQgYmUgcmdiYSgyNSwgMjUsIDI1LCAwLjgpLiBXYXMgcmdi
YSgwLCAwLCAwLCAwLjgpLgotUEFTUyB0ZXN0U2V0RmlsbENvbG9yKCcwLCAwLCAwLCAxLCAwJykg
aXMgdHJhbnNwYXJlbnQKIFBBU1MgdGVzdFN0cm9rZVN0eWxlKCd0cmFuc3BhcmVudCcpIGlzIHRy
YW5zcGFyZW50CiBQQVNTIHRlc3RTdHJva2VTdHlsZSgnYmx1ZScpIGlzIGJsdWUKIFBBU1MgdGVz
dFN0cm9rZVN0eWxlKCcjRkYwMDAwJykgaXMgcmVkCkBAIC02Miw5ICs1OSw2IEBAIFBBU1MgdGVz
dFNldFN0cm9rZUNvbG9yKCcxJykgaXMgd2hpdGUKIFBBU1MgdGVzdFNldFN0cm9rZUNvbG9yKCcx
LCAwLjgnKSBpcyB0cmFuc2x1Y2VudFdoaXRlCiBQQVNTIHRlc3RTZXRTdHJva2VDb2xvcignMCwg
MSwgMCwgMScpIGlzIGdyZWVuCiBQQVNTIHRlc3RTZXRTdHJva2VDb2xvcignMCwgMSwgMCwgMC44
JykgaXMgdHJhbnNsdWNlbnRHcmVlbgotRkFJTCB0ZXN0U2V0U3Ryb2tlQ29sb3IoJzAsIDAsIDAs
IDEsIDEnKSBzaG91bGQgYmUgIzFhMWExYS4gV2FzICMwMDAwMDAuCi1GQUlMIHRlc3RTZXRTdHJv
a2VDb2xvcignMCwgMCwgMCwgMSwgMC44Jykgc2hvdWxkIGJlIHJnYmEoMjUsIDI1LCAyNSwgMC44
KS4gV2FzIHJnYmEoMCwgMCwgMCwgMC44KS4KLVBBU1MgdGVzdFNldFN0cm9rZUNvbG9yKCcwLCAw
LCAwLCAxLCAwJykgaXMgdHJhbnNwYXJlbnQKIFBBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRy
dWUKIAogVEVTVCBDT01QTEVURQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMv
c2V0LWNvbG9ycy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9jYW52YXMvc2V0LWNvbG9ycy5odG1s
CmluZGV4IGNmODdmMDlkMGVlMDFiZjFlMjBiM2I1YzQ3NjkzNzdiZjM2YTY5ZWQuLjY3MjM0MjNh
OWVmMGFlMGNkNmFlZmIwYjY1ZmY1ZDBjYTQxMTE5MTEgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L2Zhc3QvY2FudmFzL3NldC1jb2xvcnMuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2NhbnZh
cy9zZXQtY29sb3JzLmh0bWwKQEAgLTEzMiw5ICsxMzIsNiBAQCBzaG91bGRCZSgidGVzdFNldEZp
bGxDb2xvcignMScpIiwgIndoaXRlIik7CiBzaG91bGRCZSgidGVzdFNldEZpbGxDb2xvcignMSwg
MC44JykiLCAidHJhbnNsdWNlbnRXaGl0ZSIpOwogc2hvdWxkQmUoInRlc3RTZXRGaWxsQ29sb3Io
JzAsIDEsIDAsIDEnKSIsICJncmVlbiIpOwogc2hvdWxkQmUoInRlc3RTZXRGaWxsQ29sb3IoJzAs
IDEsIDAsIDAuOCcpIiwgInRyYW5zbHVjZW50R3JlZW4iKTsKLXNob3VsZEJlKCJ0ZXN0U2V0Rmls
bENvbG9yKCcwLCAwLCAwLCAxLCAxJykiLCAiJyMxYTFhMWEnIik7ICAgICAgICAgICAgICAgICAg
IC8vIFRoaXMgdGVzdCBpcyBleHBlY3RlZCB0byBmYWlsIG9uIG9sZGVyIHZlcnNpb25zIG9mIE1h
YyBPUyBYLgotc2hvdWxkQmUoInRlc3RTZXRGaWxsQ29sb3IoJzAsIDAsIDAsIDEsIDAuOCcpIiwg
IidyZ2JhKDI1LCAyNSwgMjUsIDAuOCknIik7ICAgLy8gRGl0dG8uCi1zaG91bGRCZSgidGVzdFNl
dEZpbGxDb2xvcignMCwgMCwgMCwgMSwgMCcpIiwgInRyYW5zcGFyZW50Iik7CiBzaG91bGRCZSgi
dGVzdFN0cm9rZVN0eWxlKCd0cmFuc3BhcmVudCcpIiwgInRyYW5zcGFyZW50Iik7CiBzaG91bGRC
ZSgidGVzdFN0cm9rZVN0eWxlKCdibHVlJykiLCAiYmx1ZSIpOwogc2hvdWxkQmUoInRlc3RTdHJv
a2VTdHlsZSgnI0ZGMDAwMCcpIiwgInJlZCIpOwpAQCAtMTYzLDkgKzE2MCw2IEBAIHNob3VsZEJl
KCJ0ZXN0U2V0U3Ryb2tlQ29sb3IoJzEnKSIsICJ3aGl0ZSIpOwogc2hvdWxkQmUoInRlc3RTZXRT
dHJva2VDb2xvcignMSwgMC44JykiLCAidHJhbnNsdWNlbnRXaGl0ZSIpOwogc2hvdWxkQmUoInRl
c3RTZXRTdHJva2VDb2xvcignMCwgMSwgMCwgMScpIiwgImdyZWVuIik7CiBzaG91bGRCZSgidGVz
dFNldFN0cm9rZUNvbG9yKCcwLCAxLCAwLCAwLjgnKSIsICJ0cmFuc2x1Y2VudEdyZWVuIik7Ci1z
aG91bGRCZSgidGVzdFNldFN0cm9rZUNvbG9yKCcwLCAwLCAwLCAxLCAxJykiLCAiJyMxYTFhMWEn
Iik7ICAgICAgICAgICAgICAgICAgLy8gVGhpcyB0ZXN0IGlzIGV4cGVjdGVkIHRvIGZhaWwgb24g
b2xkZXIgdmVyc2lvbnMgb2YgTWFjIE9TIFguCi1zaG91bGRCZSgidGVzdFNldFN0cm9rZUNvbG9y
KCcwLCAwLCAwLCAxLCAwLjgnKSIsICIncmdiYSgyNSwgMjUsIDI1LCAwLjgpJyIpOyAgLy8gRGl0
dG8uCi1zaG91bGRCZSgidGVzdFNldFN0cm9rZUNvbG9yKCcwLCAwLCAwLCAxLCAwJykiLCAidHJh
bnNwYXJlbnQiKTsKIDwvc2NyaXB0PgogPHNjcmlwdCBzcmM9Ii4uLy4uL3Jlc291cmNlcy9qcy10
ZXN0LXBvc3QuanMiPjwvc2NyaXB0PgogPC9ib2R5PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
aW5zcGVjdG9yL2NhbnZhcy9yZWNvcmRpbmctMmQtZnVsbC1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy0yZC1mdWxsLWV4cGVjdGVkLnR4dAppbmRl
eCBiMDEyZDJlMDIwZWQ3NTRiZjA5MjRmZGI3M2Y0NGNmY2NmNzA5ZjliLi5hYjQ4NTFhMmFlOTNk
MWQ0YTZiZGMwOWRlMDdlMTc5ZTA5ZjQ4ZjAyIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9pbnNw
ZWN0b3IvY2FudmFzL3JlY29yZGluZy0yZC1mdWxsLWV4cGVjdGVkLnR4dAorKysgYi9MYXlvdXRU
ZXN0cy9pbnNwZWN0b3IvY2FudmFzL3JlY29yZGluZy0yZC1mdWxsLWV4cGVjdGVkLnR4dApAQCAt
Njk1LDEyICs2OTUsNiBAQCBmcmFtZXM6CiAgICAgICAgIDA6IHNldEZpbGxDb2xvcgogICAgICAg
ICAxOiAoYW5vbnltb3VzIGZ1bmN0aW9uKQogICAgICAgICAyOiBleGVjdXRlRnJhbWVGdW5jdGlv
bgotICAgIDU6IHNldEZpbGxDb2xvcig5LCAxMCwgMTEsIDEyLCAxMykKLSAgICAgIHN3aXp6bGVU
eXBlczogW051bWJlciwgTnVtYmVyLCBOdW1iZXIsIE51bWJlciwgTnVtYmVyXQotICAgICAgdHJh
Y2U6Ci0gICAgICAgIDA6IHNldEZpbGxDb2xvcgotICAgICAgICAxOiAoYW5vbnltb3VzIGZ1bmN0
aW9uKQotICAgICAgICAyOiBleGVjdXRlRnJhbWVGdW5jdGlvbgogICA1MDogKGR1cmF0aW9uKQog
ICAgIDA6IHNldExpbmVDYXAoIiIpCiAgICAgICBzd2l6emxlVHlwZXM6IFtTdHJpbmddCkBAIC04
MjgsMTIgKzgyMiw2IEBAIGZyYW1lczoKICAgICAgICAgMDogc2V0U3Ryb2tlQ29sb3IKICAgICAg
ICAgMTogKGFub255bW91cyBmdW5jdGlvbikKICAgICAgICAgMjogZXhlY3V0ZUZyYW1lRnVuY3Rp
b24KLSAgICA1OiBzZXRTdHJva2VDb2xvcig5LCAxMCwgMTEsIDEyLCAxMykKLSAgICAgIHN3aXp6
bGVUeXBlczogW051bWJlciwgTnVtYmVyLCBOdW1iZXIsIE51bWJlciwgTnVtYmVyXQotICAgICAg
dHJhY2U6Ci0gICAgICAgIDA6IHNldFN0cm9rZUNvbG9yCi0gICAgICAgIDE6IChhbm9ueW1vdXMg
ZnVuY3Rpb24pCi0gICAgICAgIDI6IGV4ZWN1dGVGcmFtZUZ1bmN0aW9uCiAgIDU3OiAoZHVyYXRp
b24pCiAgICAgMDogc2V0VHJhbnNmb3JtKDEsIDIsIDMsIDQsIDUsIDYpCiAgICAgICBzd2l6emxl
VHlwZXM6IFtOdW1iZXIsIE51bWJlciwgTnVtYmVyLCBOdW1iZXIsIE51bWJlciwgTnVtYmVyXQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3Jk
aW5nLTJkLmpzIGIvTGF5b3V0VGVzdHMvaW5zcGVjdG9yL2NhbnZhcy9yZXNvdXJjZXMvcmVjb3Jk
aW5nLTJkLmpzCmluZGV4IDdlODdkZjIwNTQ0OTg4M2ZmMjFlNzA0MjZmYTc2N2M4YjViMzJjODgu
LmU2OTI0NWNjNzBjNDRjNDQxMjVmOWU4NmI1ODU0NTBmNzc2MmQ1N2UgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL2luc3BlY3Rvci9jYW52YXMvcmVzb3VyY2VzL3JlY29yZGluZy0yZC5qcworKysg
Yi9MYXlvdXRUZXN0cy9pbnNwZWN0b3IvY2FudmFzL3Jlc291cmNlcy9yZWNvcmRpbmctMmQuanMK
QEAgLTI3Myw3ICsyNzMsNiBAQCBmdW5jdGlvbiBwZXJmb3JtQWN0aW9ucygpIHsKICAgICAgICAg
ICAgIGN0eC5zZXRGaWxsQ29sb3IoMik7CiAgICAgICAgICAgICBjdHguc2V0RmlsbENvbG9yKDMs
IDQpOwogICAgICAgICAgICAgY3R4LnNldEZpbGxDb2xvcig1LCA2LCA3LCA4KTsKLSAgICAgICAg
ICAgIGN0eC5zZXRGaWxsQ29sb3IoOSwgMTAsIDExLCAxMiwgMTMpOwogICAgICAgICB9LAogICAg
ICAgICAoKSA9PiB7CiAgICAgICAgICAgICBjdHguc2V0TGluZUNhcCgpOwpAQCAtMzA4LDcgKzMw
Nyw2IEBAIGZ1bmN0aW9uIHBlcmZvcm1BY3Rpb25zKCkgewogICAgICAgICAgICAgY3R4LnNldFN0
cm9rZUNvbG9yKDIpOwogICAgICAgICAgICAgY3R4LnNldFN0cm9rZUNvbG9yKDMsIDQpOwogICAg
ICAgICAgICAgY3R4LnNldFN0cm9rZUNvbG9yKDUsIDYsIDcsIDgpOwotICAgICAgICAgICAgY3R4
LnNldFN0cm9rZUNvbG9yKDksIDEwLCAxMSwgMTIsIDEzKTsKICAgICAgICAgfSwKICAgICAgICAg
KCkgPT4gewogICAgICAgICAgICAgY3R4LnNldFRyYW5zZm9ybSgxLCAyLCAzLCA0LCA1LCA2KTsK
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9mYXN0L2NhbnZhcy9zZXQtY29s
b3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9mYXN0L2NhbnZhcy9z
ZXQtY29sb3JzLWV4cGVjdGVkLnR4dAppbmRleCAyOTdkMDY4NzdjZmJiNDVjZWE0YTlmZjUxZTM0
M2M5NmZkY2M2NzdmLi40MjJhYzE4MDRhNjQ2NGVmYjgyZmQ4N2NhOWIxYzhlNTJiMzMyOTFkIDEw
MDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvZmFzdC9jYW52YXMvc2V0LWNvbG9y
cy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2Zhc3QvY2FudmFz
L3NldC1jb2xvcnMtZXhwZWN0ZWQudHh0CkBAIC0zMSw5ICszMSw2IEBAIFBBU1MgdGVzdFNldEZp
bGxDb2xvcignMScpIGlzIHdoaXRlCiBQQVNTIHRlc3RTZXRGaWxsQ29sb3IoJzEsIDAuOCcpIGlz
IHRyYW5zbHVjZW50V2hpdGUKIFBBU1MgdGVzdFNldEZpbGxDb2xvcignMCwgMSwgMCwgMScpIGlz
IGdyZWVuCiBQQVNTIHRlc3RTZXRGaWxsQ29sb3IoJzAsIDEsIDAsIDAuOCcpIGlzIHRyYW5zbHVj
ZW50R3JlZW4KLUZBSUwgdGVzdFNldEZpbGxDb2xvcignMCwgMCwgMCwgMSwgMScpIHNob3VsZCBi
ZSAjMWExYTFhLiBXYXMgIzFhMTkxOS4KLUZBSUwgdGVzdFNldEZpbGxDb2xvcignMCwgMCwgMCwg
MSwgMC44Jykgc2hvdWxkIGJlIHJnYmEoMjUsIDI1LCAyNSwgMC44KS4gV2FzIHJnYmEoMjYsIDI1
LCAyNSwgMC44KS4KLVBBU1MgdGVzdFNldEZpbGxDb2xvcignMCwgMCwgMCwgMSwgMCcpIGlzIHRy
YW5zcGFyZW50CiBQQVNTIHRlc3RTdHJva2VTdHlsZSgndHJhbnNwYXJlbnQnKSBpcyB0cmFuc3Bh
cmVudAogUEFTUyB0ZXN0U3Ryb2tlU3R5bGUoJ2JsdWUnKSBpcyBibHVlCiBQQVNTIHRlc3RTdHJv
a2VTdHlsZSgnI0ZGMDAwMCcpIGlzIHJlZApAQCAtNjIsOSArNTksNiBAQCBQQVNTIHRlc3RTZXRT
dHJva2VDb2xvcignMScpIGlzIHdoaXRlCiBQQVNTIHRlc3RTZXRTdHJva2VDb2xvcignMSwgMC44
JykgaXMgdHJhbnNsdWNlbnRXaGl0ZQogUEFTUyB0ZXN0U2V0U3Ryb2tlQ29sb3IoJzAsIDEsIDAs
IDEnKSBpcyBncmVlbgogUEFTUyB0ZXN0U2V0U3Ryb2tlQ29sb3IoJzAsIDEsIDAsIDAuOCcpIGlz
IHRyYW5zbHVjZW50R3JlZW4KLUZBSUwgdGVzdFNldFN0cm9rZUNvbG9yKCcwLCAwLCAwLCAxLCAx
Jykgc2hvdWxkIGJlICMxYTFhMWEuIFdhcyAjMWExOTE5LgotRkFJTCB0ZXN0U2V0U3Ryb2tlQ29s
b3IoJzAsIDAsIDAsIDEsIDAuOCcpIHNob3VsZCBiZSByZ2JhKDI1LCAyNSwgMjUsIDAuOCkuIFdh
cyByZ2JhKDI2LCAyNSwgMjUsIDAuOCkuCi1QQVNTIHRlc3RTZXRTdHJva2VDb2xvcignMCwgMCwg
MCwgMSwgMCcpIGlzIHRyYW5zcGFyZW50CiBQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVl
CiAKIFRFU1QgQ09NUExFVEUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9m
YXN0L2NhbnZhcy9zZXQtY29sb3JzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L21hYy9mYXN0L2NhbnZhcy9zZXQtY29sb3JzLWV4cGVjdGVkLnR4dAppbmRleCAyOTdkMDY4Nzdj
ZmJiNDVjZWE0YTlmZjUxZTM0M2M5NmZkY2M2NzdmLi40MjJhYzE4MDRhNjQ2NGVmYjgyZmQ4N2Nh
OWIxYzhlNTJiMzMyOTFkIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvZmFz
dC9jYW52YXMvc2V0LWNvbG9ycy1leHBlY3RlZC50eHQKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZv
cm0vbWFjL2Zhc3QvY2FudmFzL3NldC1jb2xvcnMtZXhwZWN0ZWQudHh0CkBAIC0zMSw5ICszMSw2
IEBAIFBBU1MgdGVzdFNldEZpbGxDb2xvcignMScpIGlzIHdoaXRlCiBQQVNTIHRlc3RTZXRGaWxs
Q29sb3IoJzEsIDAuOCcpIGlzIHRyYW5zbHVjZW50V2hpdGUKIFBBU1MgdGVzdFNldEZpbGxDb2xv
cignMCwgMSwgMCwgMScpIGlzIGdyZWVuCiBQQVNTIHRlc3RTZXRGaWxsQ29sb3IoJzAsIDEsIDAs
IDAuOCcpIGlzIHRyYW5zbHVjZW50R3JlZW4KLUZBSUwgdGVzdFNldEZpbGxDb2xvcignMCwgMCwg
MCwgMSwgMScpIHNob3VsZCBiZSAjMWExYTFhLiBXYXMgIzFhMTkxOS4KLUZBSUwgdGVzdFNldEZp
bGxDb2xvcignMCwgMCwgMCwgMSwgMC44Jykgc2hvdWxkIGJlIHJnYmEoMjUsIDI1LCAyNSwgMC44
KS4gV2FzIHJnYmEoMjYsIDI1LCAyNSwgMC44KS4KLVBBU1MgdGVzdFNldEZpbGxDb2xvcignMCwg
MCwgMCwgMSwgMCcpIGlzIHRyYW5zcGFyZW50CiBQQVNTIHRlc3RTdHJva2VTdHlsZSgndHJhbnNw
YXJlbnQnKSBpcyB0cmFuc3BhcmVudAogUEFTUyB0ZXN0U3Ryb2tlU3R5bGUoJ2JsdWUnKSBpcyBi
bHVlCiBQQVNTIHRlc3RTdHJva2VTdHlsZSgnI0ZGMDAwMCcpIGlzIHJlZApAQCAtNjIsOSArNTks
NiBAQCBQQVNTIHRlc3RTZXRTdHJva2VDb2xvcignMScpIGlzIHdoaXRlCiBQQVNTIHRlc3RTZXRT
dHJva2VDb2xvcignMSwgMC44JykgaXMgdHJhbnNsdWNlbnRXaGl0ZQogUEFTUyB0ZXN0U2V0U3Ry
b2tlQ29sb3IoJzAsIDEsIDAsIDEnKSBpcyBncmVlbgogUEFTUyB0ZXN0U2V0U3Ryb2tlQ29sb3Io
JzAsIDEsIDAsIDAuOCcpIGlzIHRyYW5zbHVjZW50R3JlZW4KLUZBSUwgdGVzdFNldFN0cm9rZUNv
bG9yKCcwLCAwLCAwLCAxLCAxJykgc2hvdWxkIGJlICMxYTFhMWEuIFdhcyAjMWExOTE5LgotRkFJ
TCB0ZXN0U2V0U3Ryb2tlQ29sb3IoJzAsIDAsIDAsIDEsIDAuOCcpIHNob3VsZCBiZSByZ2JhKDI1
LCAyNSwgMjUsIDAuOCkuIFdhcyByZ2JhKDI2LCAyNSwgMjUsIDAuOCkuCi1QQVNTIHRlc3RTZXRT
dHJva2VDb2xvcignMCwgMCwgMCwgMSwgMCcpIGlzIHRyYW5zcGFyZW50CiBQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCiAKIFRFU1QgQ09NUExFVEUK
</data>

          </attachment>
      

    </bug>

</bugzilla>