<?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>238680</bug_id>
          
          <creation_ts>2022-04-01 13:02:04 -0700</creation_ts>
          <short_desc>AccessibilityNodeObject::elementRect should use children rects for display:contents AX objects</short_desc>
          <delta_ts>2022-04-04 13:42:47 -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>Accessibility</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="Tyler Wilcock">tyler_w</reporter>
          <assigned_to name="Tyler Wilcock">tyler_w</assigned_to>
          <cc>aboxhall</cc>
    
    <cc>andresg_22</cc>
    
    <cc>apinheiro</cc>
    
    <cc>cfleizach</cc>
    
    <cc>dmazzoni</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>jcraig</cc>
    
    <cc>jdiggs</cc>
    
    <cc>samuel_white</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1857372</commentid>
    <comment_count>0</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-04-01 13:02:04 -0700</bug_when>
    <thetext>Because display:contents AccessibilityNodeObjects can have rendered content (unlike `hidden`, `aria-hidden=&quot;false&quot;` node objects), we can compute AccessibilityNodeObject::elementRect by adding up the rectangles of the object&apos;s children.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857373</commentid>
    <comment_count>1</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2022-04-01 13:02:15 -0700</bug_when>
    <thetext>&lt;rdar://problem/91177670&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857376</commentid>
    <comment_count>2</comment_count>
      <attachid>456393</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-04-01 13:05:38 -0700</bug_when>
    <thetext>Created attachment 456393
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857378</commentid>
    <comment_count>3</comment_count>
      <attachid>456393</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-04-01 13:17:20 -0700</bug_when>
    <thetext>Comment on attachment 456393
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:227
&gt; +        if (is&lt;AccessibilityNodeObject&gt;(ancestor))

since AXRenderObject inherits from AXNodeObject isn&apos;t this true for render objects?
is this better as

if (!is&lt;AccessibilityRenderObject&gt;) { continue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857385</commentid>
    <comment_count>4</comment_count>
      <attachid>456397</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-04-01 13:31:49 -0700</bug_when>
    <thetext>Created attachment 456397
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857386</commentid>
    <comment_count>5</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-04-01 13:32:24 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #3)
&gt; Comment on attachment 456393 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=456393&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:227
&gt; &gt; +        if (is&lt;AccessibilityNodeObject&gt;(ancestor))
&gt; 
&gt; since AXRenderObject inherits from AXNodeObject isn&apos;t this true for render
&gt; objects?
&gt; is this better as
&gt; 
&gt; if (!is&lt;AccessibilityRenderObject&gt;) { continue
Yes, thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857388</commentid>
    <comment_count>6</comment_count>
      <attachid>456397</attachid>
    <who name="chris fleizach">cfleizach</who>
    <bug_when>2022-04-01 13:41:31 -0700</bug_when>
    <thetext>Comment on attachment 456397
Patch

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

&gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:212
&gt; +        auto childrenCopy = m_children;

are we actually doing any copying here? or can we just iteration m_children?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857390</commentid>
    <comment_count>7</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-04-01 13:55:29 -0700</bug_when>
    <thetext>(In reply to chris fleizach from comment #6)
&gt; Comment on attachment 456397 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=456397&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:212
&gt; &gt; +        auto childrenCopy = m_children;
&gt; 
&gt; are we actually doing any copying here? or can we just iteration m_children?

Yes, I think the copy is not necessary since m_children is a Vector&lt;RefPtr&lt;AXCoreObject&gt;&gt; so the objects are not going away since they are held by the RefPtr.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857391</commentid>
    <comment_count>8</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-04-01 13:59:11 -0700</bug_when>
    <thetext>(In reply to Andres Gonzalez from comment #7)
&gt; (In reply to chris fleizach from comment #6)
&gt; &gt; Comment on attachment 456397 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=456397&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Source/WebCore/accessibility/AccessibilityNodeObject.cpp:212
&gt; &gt; &gt; +        auto childrenCopy = m_children;
&gt; &gt; 
&gt; &gt; are we actually doing any copying here? or can we just iteration m_children?
&gt; 
&gt; Yes, I think the copy is not necessary since m_children is a
&gt; Vector&lt;RefPtr&lt;AXCoreObject&gt;&gt; so the objects are not going away since they
&gt; are held by the RefPtr.

So I think you can do just:

+        for (const auto&amp; child : children(false))</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857685</commentid>
    <comment_count>9</comment_count>
      <attachid>456508</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-04-03 12:23:17 -0700</bug_when>
    <thetext>Created attachment 456508
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857686</commentid>
    <comment_count>10</comment_count>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-04-03 12:26:24 -0700</bug_when>
    <thetext>&gt; So I think you can do just:
&gt; 
&gt; +        for (const auto&amp; child : children(false))
We can&apos;t use children() (even children(false)) because AXCoreObject::children is not const, while boundingBoxRect is. So we can loop through m_children, which is essentially the same as children(false).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857715</commentid>
    <comment_count>11</comment_count>
      <attachid>456525</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-04-03 18:37:29 -0700</bug_when>
    <thetext>Created attachment 456525
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857837</commentid>
    <comment_count>12</comment_count>
    <who name="Andres Gonzalez">andresg_22</who>
    <bug_when>2022-04-04 07:03:15 -0700</bug_when>
    <thetext>(In reply to Tyler Wilcock from comment #10)
&gt; &gt; So I think you can do just:
&gt; &gt; 
&gt; &gt; +        for (const auto&amp; child : children(false))
&gt; We can&apos;t use children() (even children(false)) because
&gt; AXCoreObject::children is not const, while boundingBoxRect is. So we can
&gt; loop through m_children, which is essentially the same as children(false).

The problem with that is that a subclass of AXNodeObject now or in the future may override children() and do something that is not equivalent to just m_children. A workaround for the const issue is to use const_cast as ugly as it is.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1857838</commentid>
    <comment_count>13</comment_count>
      <attachid>456566</attachid>
    <who name="Tyler Wilcock">tyler_w</who>
    <bug_when>2022-04-04 07:11:31 -0700</bug_when>
    <thetext>Created attachment 456566
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1858034</commentid>
    <comment_count>14</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-04-04 13:42:44 -0700</bug_when>
    <thetext>Committed r292314 (249207@main): &lt;https://commits.webkit.org/249207@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 456566.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456393</attachid>
            <date>2022-04-01 13:05:38 -0700</date>
            <delta_ts>2022-04-01 13:31:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238680-20220401150536.patch</filename>
            <type>text/plain</type>
            <size>6942</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWEyMDY0MzNmNmU2NDQ4
YzUxMzhmMWNkMDQ4MTY0NjU0NWU0NTRiOS4uNmM3MTQxNGQzMjMwMjFhODIxOTk0ODJlMWQxNWRi
YjQ5ZWIzNjFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTA0LTAxICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmVsZW1lbnRSZWN0IHNob3VsZCB1c2UgY2hpbGRyZW4gcmVjdHMgZm9yIGRpc3Bs
YXk6Y29udGVudHMgQVggb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM4NjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQmVjYXVzZSBkaXNwbGF5OmNvbnRlbnRzIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0cyBjYW4gaGF2ZSByZW5kZXJlZAorICAgICAgICBjb250ZW50ICh1bmxpa2UgYGhpZGRl
bmAsIGBhcmlhLWhpZGRlbj0iZmFsc2UiYCBub2RlIG9iamVjdHMpLCB3ZSBjYW4gY29tcHV0ZQor
ICAgICAgICBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZWxlbWVudFJlY3QgYnkgYWRkaW5nIHVw
IHRoZSByZWN0YW5nbGVzIG9mIHRoZSBvYmplY3QncyBjaGlsZHJlbi4KKyAgICAgICAgVGhpcyBw
cm92aWRlcyBhIG1vcmUgYWNjdXJhdGUgZnJhbWUgZm9yIHRoZXNlIG9iamVjdHMuCisKKyAgICAg
ICAgVGVzdDogYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC5odG1s
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpib3VuZGluZ0JveFJl
Y3QgY29uc3QpOgorCiAyMDIyLTAzLTMwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBJbXBsZW1lbnQgU2VydmljZVdvcmtlciBXaW5kb3dDbGllbnQuYW5jZXN0
b3JPcmlnaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGIyZDhjNDk3MGYyYWQ2ZTM0MGVkYTVkNzNm
OTQxYTEyODY1NmYyM2MuLmRmOGVlNzc3YzU2OGVlYzM2YjUzYjE1NmFlNTU5YTc2NTEwNTE1ZDUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCkBAIC0yMDUsMjIgKzIwNSwzNyBAQCBMYXlvdXRSZWN0IEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjplbGVtZW50UmVjdCgpIGNvbnN0CiAKIExheW91dFJlY3QgQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmJvdW5kaW5nQm94UmVjdCgpIGNvbnN0CiB7Ci0gICAgLy8g
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3RzIGhhdmUgbm8gbWVjaGFuaXNtIHlldCB0byByZXR1cm4g
YSBzaXplIG9yIHBvc2l0aW9uLgotICAgIC8vIEZvciBub3csIGxldCdzIHJldHVybiB0aGUgcG9z
aXRpb24gb2YgdGhlIGFuY2VzdG9yIHRoYXQgZG9lcyBoYXZlIGEgcG9zaXRpb24sCi0gICAgLy8g
YW5kIG1ha2UgaXQgdGhlIHdpZHRoIG9mIHRoYXQgcGFyZW50LCBhbmQgYWJvdXQgdGhlIGhlaWdo
dCBvZiBhIGxpbmUgb2YgdGV4dCwgc28gdGhhdCBpdCdzIGNsZWFyIHRoZSBvYmplY3QgaXMgYSBj
aGlsZCBvZiB0aGUgcGFyZW50LgotICAgIAotICAgIExheW91dFJlY3QgYm91bmRpbmdCb3g7Ci0g
ICAgCi0gICAgZm9yIChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwb3NpdGlvblByb3ZpZGVyID0gcGFy
ZW50T2JqZWN0KCk7IHBvc2l0aW9uUHJvdmlkZXI7IHBvc2l0aW9uUHJvdmlkZXIgPSBwb3NpdGlv
blByb3ZpZGVyLT5wYXJlbnRPYmplY3QoKSkgewotICAgICAgICBpZiAocG9zaXRpb25Qcm92aWRl
ci0+aXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkpIHsKLSAgICAgICAgICAgIExheW91dFJl
Y3QgcGFyZW50UmVjdCA9IHBvc2l0aW9uUHJvdmlkZXItPmVsZW1lbnRSZWN0KCk7Ci0gICAgICAg
ICAgICBib3VuZGluZ0JveC5zZXRTaXplKExheW91dFNpemUocGFyZW50UmVjdC53aWR0aCgpLCBM
YXlvdXRVbml0KHN0ZDo6bWluKDEwLjBmLCBwYXJlbnRSZWN0LmhlaWdodCgpLnRvRmxvYXQoKSkp
KSk7Ci0gICAgICAgICAgICBib3VuZGluZ0JveC5zZXRMb2NhdGlvbihwYXJlbnRSZWN0LmxvY2F0
aW9uKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKyAgICBpZiAoaGFzRGlzcGxh
eUNvbnRlbnRzKCkpIHsKKyAgICAgICAgTGF5b3V0UmVjdCBjb250ZW50c1JlY3Q7CisgICAgICAg
IC8vIENhbGxpbmcgZWxlbWVudFJlY3QoKSBjYW4gY2F1c2UgQVggb2JqZWN0IGludmFsaWRhdGlv
biwgc28gbWFrZSBhIGNvcHkgb2YgY2hpbGRyZW4gZmlyc3QuCisgICAgICAgIC8vIChTZWUgc2lt
aWxhciBjb21tZW50IGluIEFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbjo6ZWxlbWVudFJlY3QoKSku
CisgICAgICAgIGF1dG8gY2hpbGRyZW5Db3B5ID0gbV9jaGlsZHJlbjsKKyAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBjaGlsZCA6IGNoaWxkcmVuQ29weSkKKyAgICAgICAgICAgIGNvbnRlbnRzUmVj
dC51bml0ZShjaGlsZC0+ZWxlbWVudFJlY3QoKSk7CisKKyAgICAgICAgaWYgKCFjb250ZW50c1Jl
Y3QuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRzUmVjdDsKKyAgICB9CisK
KyAgICAvLyBOb24tZGlzcGxheTpjb250ZW50cyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdHMgaGF2
ZSBubyBtZWNoYW5pc20gdG8gcmV0dXJuIGEgc2l6ZSBvciBwb3NpdGlvbi4KKyAgICAvLyBJbnN0
ZWFkLCBsZXQncyByZXR1cm4gYSBib3ggYXQgdGhlIHBvc2l0aW9uIG9mIGFuIGFuY2VzdG9yIHRo
YXQgZG9lcyBoYXZlIGEgcG9zaXRpb24sIG1ha2UgaXQKKyAgICAvLyB0aGUgd2lkdGggb2YgdGhh
dCBhbmNlc3RvciwgYW5kIGFib3V0IHRoZSBoZWlnaHQgb2YgYSBsaW5lIG9mIHRleHQsIHNvIGl0
J3MgY2xlYXIgdGhpcyBvYmplY3QgaXMKKyAgICAvLyBhIGRlc2NlbmRhbnQgb2YgdGhhdCBhbmNl
c3Rvci4KKyAgICBmb3IgKFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBhbmNlc3RvciA9IHBh
cmVudE9iamVjdCgpOyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50T2JqZWN0
KCkpIHsKKyAgICAgICAgLy8gSWYgYW5jZXN0b3IgaXMgYWxzbyBhbiBBY2Nlc3NpYmlsaXR5Tm9k
ZU9iamVjdCwgY2FsbGluZyBlbGVtZW50UmVjdCBvbiBpdCB3aWxsCisgICAgICAgIC8vIGNhdXNl
IGluZmluaXRlIHJlY3Vyc2lvbiwgc28gc2tpcCBpdC4KKyAgICAgICAgaWYgKGlzPEFjY2Vzc2li
aWxpdHlOb2RlT2JqZWN0PihhbmNlc3RvcikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAg
ICAgYXV0byBhbmNlc3RvclJlY3QgPSBhbmNlc3Rvci0+ZWxlbWVudFJlY3QoKTsKKyAgICAgICAg
aWYgKGFuY2VzdG9yUmVjdC5pc0VtcHR5KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAg
ICAgICByZXR1cm4geworICAgICAgICAgICAgYW5jZXN0b3JSZWN0LmxvY2F0aW9uKCksCisgICAg
ICAgICAgICBMYXlvdXRTaXplKGFuY2VzdG9yUmVjdC53aWR0aCgpLCBMYXlvdXRVbml0KHN0ZDo6
bWluKDEwLjBmLCBhbmNlc3RvclJlY3QuaGVpZ2h0KCkudG9GbG9hdCgpKSkpCisgICAgICAgIH07
CiAgICAgfQotICAgIAotICAgIHJldHVybiBib3VuZGluZ0JveDsKKyAgICByZXR1cm4geyB9Owog
fQogCiB2b2lkIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjpzZXROb2RlKE5vZGUqIG5vZGUpCmRp
ZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
aW5kZXggMGQ1YTI1ZmFiZTljOTJiNzZkZjk3YTkxODE0N2ViNDJlMmRjMzQ0NC4uODQ4MTIyNDEw
MWM1MjI0ZmJhNjRlYzkxMmYyMmY4ZWMxYWM4ZTI4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisy
MDIyLTA0LTAxICBUeWxlciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAg
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmVsZW1lbnRSZWN0IHNob3VsZCB1c2UgY2hpbGRyZW4g
cmVjdHMgZm9yIGRpc3BsYXk6Y29udGVudHMgQVggb2JqZWN0cworICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjM4NjgwCisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L25vZGUtb25seS1v
YmplY3QtZWxlbWVudC1yZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNz
aWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC5odG1sOiBBZGRlZC4KKwogMjAy
Mi0wMy0zMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1w
bGVtZW50IFNlcnZpY2VXb3JrZXIgV2luZG93Q2xpZW50LmFuY2VzdG9yT3JpZ2lucwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQt
cmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1v
YmplY3QtZWxlbWVudC1yZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yYjM1YTliOTlmNDBl
MTM5MGVlOGI2NWZjYjg3YTY1YzAwYWRiN2EyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC1leHBlY3RlZC50
eHQKQEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgd2UgY2FsY3VsYXRlIHRoZSBm
cmFtZSBjb3JyZWN0bHkgZm9yIG9iamVjdHMgdGhhdCBkb24ndCBoYXZlIGEgcmVuZGVyZXIgKGxp
a2UgZGlzcGxheTogY29udGVudHMgZWxlbWVudHMpLgorCisjdG9vbGJhcjoge3dpZHRoOiA3ODQs
IGhlaWdodDogMjJ9CisjZ3JvdXA6IHt3aWR0aDogNDYsIGhlaWdodDogMjh9CisjYnV0dG9uOiB7
d2lkdGg6IDgwMCwgaGVpZ2h0OiAxMH0KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1
ZQorCitURVNUIENPTVBMRVRFCitGb28KK0ZvbworRm9vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxlbWVudC1yZWN0Lmh0bWwgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxlbWVudC1yZWN0Lmh0bWwK
bmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMC4uMzljY2YwMDdjYWY5YzY1MTU4ZTU5ZmVlYWNkZjE3OWM0YmExNjBkMAotLS0g
L2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9iamVj
dC1lbGVtZW50LXJlY3QuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJM
SUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9
Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNv
dXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+
CisKKzxkaXYgaWQ9InRvb2xiYXIiIHJvbGU9InRvb2xiYXIiIHN0eWxlPSJkaXNwbGF5OiBjb250
ZW50czsiPgorICAgIDxkaXY+CisgICAgICAgIDxidXR0b24+Rm9vPC9idXR0b24+CisgICAgPC9k
aXY+Cis8L2Rpdj4KKworPGRpdiByb2xlPSJ0b29sYmFyIj4KKyAgICA8ZGl2IGlkPSJncm91cCIg
cm9sZT0iZ3JvdXAiIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50czsiPgorICAgICAgICA8YnV0dG9u
PkZvbzwvYnV0dG9uPgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgcm9sZT0idG9vbGJhciI+
CisgICAgPGRpdj4KKyAgICAgICAgPGJ1dHRvbiBpZD0iYnV0dG9uIiBzdHlsZT0iZGlzcGxheTog
Y29udGVudHM7Ij5Gb288L2J1dHRvbj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0Pgor
ICAgIHZhciB0ZXN0T3V0cHV0ID0gIlRoaXMgdGVzdCBlbnN1cmVzIHdlIGNhbGN1bGF0ZSB0aGUg
ZnJhbWUgY29ycmVjdGx5IGZvciBvYmplY3RzIHRoYXQgZG9uJ3QgaGF2ZSBhIHJlbmRlcmVyIChs
aWtlIGRpc3BsYXk6IGNvbnRlbnRzIGVsZW1lbnRzKS5cblxuIjsKKworICAgIGZ1bmN0aW9uIGxv
Z1NpemUoaWQpIHsKKyAgICAgICAgY29uc3QgYXhFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRy
b2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBg
IyR7aWR9OiB7d2lkdGg6ICR7YXhFbGVtZW50LndpZHRofSwgaGVpZ2h0OiAke2F4RWxlbWVudC5o
ZWlnaHR9fVxuYDsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9s
bGVyKSB7CisgICAgICAgIGxvZ1NpemUoInRvb2xiYXIiKTsKKyAgICAgICAgbG9nU2l6ZSgiZ3Jv
dXAiKTsKKyAgICAgICAgbG9nU2l6ZSgiYnV0dG9uIik7CisKKyAgICAgICAgZGVidWcodGVzdE91
dHB1dCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456397</attachid>
            <date>2022-04-01 13:31:49 -0700</date>
            <delta_ts>2022-04-03 12:23:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238680-20220401153147.patch</filename>
            <type>text/plain</type>
            <size>6804</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWEyMDY0MzNmNmU2NDQ4
YzUxMzhmMWNkMDQ4MTY0NjU0NWU0NTRiOS4uNmM3MTQxNGQzMjMwMjFhODIxOTk0ODJlMWQxNWRi
YjQ5ZWIzNjFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTA0LTAxICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmVsZW1lbnRSZWN0IHNob3VsZCB1c2UgY2hpbGRyZW4gcmVjdHMgZm9yIGRpc3Bs
YXk6Y29udGVudHMgQVggb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM4NjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQmVjYXVzZSBkaXNwbGF5OmNvbnRlbnRzIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0cyBjYW4gaGF2ZSByZW5kZXJlZAorICAgICAgICBjb250ZW50ICh1bmxpa2UgYGhpZGRl
bmAsIGBhcmlhLWhpZGRlbj0iZmFsc2UiYCBub2RlIG9iamVjdHMpLCB3ZSBjYW4gY29tcHV0ZQor
ICAgICAgICBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZWxlbWVudFJlY3QgYnkgYWRkaW5nIHVw
IHRoZSByZWN0YW5nbGVzIG9mIHRoZSBvYmplY3QncyBjaGlsZHJlbi4KKyAgICAgICAgVGhpcyBw
cm92aWRlcyBhIG1vcmUgYWNjdXJhdGUgZnJhbWUgZm9yIHRoZXNlIG9iamVjdHMuCisKKyAgICAg
ICAgVGVzdDogYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC5odG1s
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpib3VuZGluZ0JveFJl
Y3QgY29uc3QpOgorCiAyMDIyLTAzLTMwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBJbXBsZW1lbnQgU2VydmljZVdvcmtlciBXaW5kb3dDbGllbnQuYW5jZXN0
b3JPcmlnaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGIyZDhjNDk3MGYyYWQ2ZTM0MGVkYTVkNzNm
OTQxYTEyODY1NmYyM2MuLjcxYWIzZDBmYmNmMzliNGMwNGM3ZjE3OWJhNTYzZGZmM2NhNGMzYWUg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCkBAIC0yMDUsMjIgKzIwNSwzNSBAQCBMYXlvdXRSZWN0IEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjplbGVtZW50UmVjdCgpIGNvbnN0CiAKIExheW91dFJlY3QgQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmJvdW5kaW5nQm94UmVjdCgpIGNvbnN0CiB7Ci0gICAgLy8g
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3RzIGhhdmUgbm8gbWVjaGFuaXNtIHlldCB0byByZXR1cm4g
YSBzaXplIG9yIHBvc2l0aW9uLgotICAgIC8vIEZvciBub3csIGxldCdzIHJldHVybiB0aGUgcG9z
aXRpb24gb2YgdGhlIGFuY2VzdG9yIHRoYXQgZG9lcyBoYXZlIGEgcG9zaXRpb24sCi0gICAgLy8g
YW5kIG1ha2UgaXQgdGhlIHdpZHRoIG9mIHRoYXQgcGFyZW50LCBhbmQgYWJvdXQgdGhlIGhlaWdo
dCBvZiBhIGxpbmUgb2YgdGV4dCwgc28gdGhhdCBpdCdzIGNsZWFyIHRoZSBvYmplY3QgaXMgYSBj
aGlsZCBvZiB0aGUgcGFyZW50LgotICAgIAotICAgIExheW91dFJlY3QgYm91bmRpbmdCb3g7Ci0g
ICAgCi0gICAgZm9yIChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwb3NpdGlvblByb3ZpZGVyID0gcGFy
ZW50T2JqZWN0KCk7IHBvc2l0aW9uUHJvdmlkZXI7IHBvc2l0aW9uUHJvdmlkZXIgPSBwb3NpdGlv
blByb3ZpZGVyLT5wYXJlbnRPYmplY3QoKSkgewotICAgICAgICBpZiAocG9zaXRpb25Qcm92aWRl
ci0+aXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkpIHsKLSAgICAgICAgICAgIExheW91dFJl
Y3QgcGFyZW50UmVjdCA9IHBvc2l0aW9uUHJvdmlkZXItPmVsZW1lbnRSZWN0KCk7Ci0gICAgICAg
ICAgICBib3VuZGluZ0JveC5zZXRTaXplKExheW91dFNpemUocGFyZW50UmVjdC53aWR0aCgpLCBM
YXlvdXRVbml0KHN0ZDo6bWluKDEwLjBmLCBwYXJlbnRSZWN0LmhlaWdodCgpLnRvRmxvYXQoKSkp
KSk7Ci0gICAgICAgICAgICBib3VuZGluZ0JveC5zZXRMb2NhdGlvbihwYXJlbnRSZWN0LmxvY2F0
aW9uKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKyAgICBpZiAoaGFzRGlzcGxh
eUNvbnRlbnRzKCkpIHsKKyAgICAgICAgTGF5b3V0UmVjdCBjb250ZW50c1JlY3Q7CisgICAgICAg
IC8vIENhbGxpbmcgZWxlbWVudFJlY3QoKSBjYW4gY2F1c2UgQVggb2JqZWN0IGludmFsaWRhdGlv
biwgc28gbWFrZSBhIGNvcHkgb2YgY2hpbGRyZW4gZmlyc3QuCisgICAgICAgIC8vIChTZWUgc2lt
aWxhciBjb21tZW50IGluIEFjY2Vzc2liaWxpdHlUYWJsZUNvbHVtbjo6ZWxlbWVudFJlY3QoKSku
CisgICAgICAgIGF1dG8gY2hpbGRyZW5Db3B5ID0gbV9jaGlsZHJlbjsKKyAgICAgICAgZm9yIChj
b25zdCBhdXRvJiBjaGlsZCA6IGNoaWxkcmVuQ29weSkKKyAgICAgICAgICAgIGNvbnRlbnRzUmVj
dC51bml0ZShjaGlsZC0+ZWxlbWVudFJlY3QoKSk7CisKKyAgICAgICAgaWYgKCFjb250ZW50c1Jl
Y3QuaXNFbXB0eSgpKQorICAgICAgICAgICAgcmV0dXJuIGNvbnRlbnRzUmVjdDsKKyAgICB9CisK
KyAgICAvLyBOb24tZGlzcGxheTpjb250ZW50cyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdHMgaGF2
ZSBubyBtZWNoYW5pc20gdG8gcmV0dXJuIGEgc2l6ZSBvciBwb3NpdGlvbi4KKyAgICAvLyBJbnN0
ZWFkLCBsZXQncyByZXR1cm4gYSBib3ggYXQgdGhlIHBvc2l0aW9uIG9mIGFuIGFuY2VzdG9yIHRo
YXQgZG9lcyBoYXZlIGEgcG9zaXRpb24sIG1ha2UgaXQKKyAgICAvLyB0aGUgd2lkdGggb2YgdGhh
dCBhbmNlc3RvciwgYW5kIGFib3V0IHRoZSBoZWlnaHQgb2YgYSBsaW5lIG9mIHRleHQsIHNvIGl0
J3MgY2xlYXIgdGhpcyBvYmplY3QgaXMKKyAgICAvLyBhIGRlc2NlbmRhbnQgb2YgdGhhdCBhbmNl
c3Rvci4KKyAgICBmb3IgKFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBhbmNlc3RvciA9IHBh
cmVudE9iamVjdCgpOyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50T2JqZWN0
KCkpIHsKKyAgICAgICAgaWYgKCFpczxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PihhbmNlc3Rv
cikpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byBhbmNlc3RvclJlY3QgPSBh
bmNlc3Rvci0+ZWxlbWVudFJlY3QoKTsKKyAgICAgICAgaWYgKGFuY2VzdG9yUmVjdC5pc0VtcHR5
KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICByZXR1cm4geworICAgICAgICAg
ICAgYW5jZXN0b3JSZWN0LmxvY2F0aW9uKCksCisgICAgICAgICAgICBMYXlvdXRTaXplKGFuY2Vz
dG9yUmVjdC53aWR0aCgpLCBMYXlvdXRVbml0KHN0ZDo6bWluKDEwLjBmLCBhbmNlc3RvclJlY3Qu
aGVpZ2h0KCkudG9GbG9hdCgpKSkpCisgICAgICAgIH07CiAgICAgfQotICAgIAotICAgIHJldHVy
biBib3VuZGluZ0JveDsKKyAgICByZXR1cm4geyB9OwogfQogCiB2b2lkIEFjY2Vzc2liaWxpdHlO
b2RlT2JqZWN0OjpzZXROb2RlKE5vZGUqIG5vZGUpCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMGQ1YTI1ZmFiZTljOTJiNzZk
Zjk3YTkxODE0N2ViNDJlMmRjMzQ0NC4uODQ4MTIyNDEwMWM1MjI0ZmJhNjRlYzkxMmYyMmY4ZWMx
YWM4ZTI4YiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIyLTA0LTAxICBUeWxlciBXaWxjb2Nr
ICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6
OmVsZW1lbnRSZWN0IHNob3VsZCB1c2UgY2hpbGRyZW4gcmVjdHMgZm9yIGRpc3BsYXk6Y29udGVu
dHMgQVggb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MjM4NjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgKiBhY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxlbWVudC1yZWN0LWV4cGVj
dGVkLnR4dDogQWRkZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0
LWVsZW1lbnQtcmVjdC5odG1sOiBBZGRlZC4KKwogMjAyMi0wMy0zMCAgWW91ZW5uIEZhYmxldCAg
PHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgSW1wbGVtZW50IFNlcnZpY2VXb3JrZXIgV2lu
ZG93Q2xpZW50LmFuY2VzdG9yT3JpZ2lucwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNz
aWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC1leHBlY3RlZC50eHQgYi9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxlbWVudC1yZWN0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi40YjgwZDk2NWY4Y2I4MGEyNWYxMTI2M2IyMWU3YzYwYzdiODg1
ZmY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ub2RlLW9u
bHktb2JqZWN0LWVsZW1lbnQtcmVjdC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGhp
cyB0ZXN0IGVuc3VyZXMgd2UgY2FsY3VsYXRlIHRoZSBmcmFtZSBjb3JyZWN0bHkgZm9yIG9iamVj
dHMgdGhhdCBkb24ndCBoYXZlIGEgcmVuZGVyZXIgKGxpa2UgZGlzcGxheTogY29udGVudHMgZWxl
bWVudHMpLgorCisjdG9vbGJhcjoge3dpZHRoOiA3ODQsIGhlaWdodDogMjJ9CisjZ3JvdXA6IHt3
aWR0aDogNDYsIGhlaWdodDogMjh9CisjYnV0dG9uOiB7d2lkdGg6IDc4NCwgaGVpZ2h0OiAxMH0K
KworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitGb28K
K0ZvbworRm9vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L25vZGUtb25s
eS1vYmplY3QtZWxlbWVudC1yZWN0Lmh0bWwgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L25v
ZGUtb25seS1vYmplY3QtZWxlbWVudC1yZWN0Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMzljY2YwMDdjYWY5
YzY1MTU4ZTU5ZmVlYWNkZjE3OWM0YmExNjBkMAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2FjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QuaHRtbApAQCAt
MCwwICsxLDQ1IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9F
TiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0Lmpz
Ij48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxw
ZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisKKzxkaXYgaWQ9InRvb2xiYXIiIHJv
bGU9InRvb2xiYXIiIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50czsiPgorICAgIDxkaXY+CisgICAg
ICAgIDxidXR0b24+Rm9vPC9idXR0b24+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiByb2xl
PSJ0b29sYmFyIj4KKyAgICA8ZGl2IGlkPSJncm91cCIgcm9sZT0iZ3JvdXAiIHN0eWxlPSJkaXNw
bGF5OiBjb250ZW50czsiPgorICAgICAgICA8YnV0dG9uPkZvbzwvYnV0dG9uPgorICAgIDwvZGl2
PgorPC9kaXY+CisKKzxkaXYgcm9sZT0idG9vbGJhciI+CisgICAgPGRpdj4KKyAgICAgICAgPGJ1
dHRvbiBpZD0iYnV0dG9uIiBzdHlsZT0iZGlzcGxheTogY29udGVudHM7Ij5Gb288L2J1dHRvbj4K
KyAgICA8L2Rpdj4KKzwvZGl2PgorCis8c2NyaXB0PgorICAgIHZhciB0ZXN0T3V0cHV0ID0gIlRo
aXMgdGVzdCBlbnN1cmVzIHdlIGNhbGN1bGF0ZSB0aGUgZnJhbWUgY29ycmVjdGx5IGZvciBvYmpl
Y3RzIHRoYXQgZG9uJ3QgaGF2ZSBhIHJlbmRlcmVyIChsaWtlIGRpc3BsYXk6IGNvbnRlbnRzIGVs
ZW1lbnRzKS5cblxuIjsKKworICAgIGZ1bmN0aW9uIGxvZ1NpemUoaWQpIHsKKyAgICAgICAgY29u
c3QgYXhFbGVtZW50ID0gYWNjZXNzaWJpbGl0eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRC
eUlkKGlkKTsKKyAgICAgICAgdGVzdE91dHB1dCArPSBgIyR7aWR9OiB7d2lkdGg6ICR7YXhFbGVt
ZW50LndpZHRofSwgaGVpZ2h0OiAke2F4RWxlbWVudC5oZWlnaHR9fVxuYDsKKyAgICB9CisKKyAg
ICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlDb250cm9sbGVyKSB7CisgICAgICAgIGxvZ1NpemUo
InRvb2xiYXIiKTsKKyAgICAgICAgbG9nU2l6ZSgiZ3JvdXAiKTsKKyAgICAgICAgbG9nU2l6ZSgi
YnV0dG9uIik7CisKKyAgICAgICAgZGVidWcodGVzdE91dHB1dCk7CisgICAgfQorPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+CisK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456508</attachid>
            <date>2022-04-03 12:23:17 -0700</date>
            <delta_ts>2022-04-03 18:37:27 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238680-20220403152316.patch</filename>
            <type>text/plain</type>
            <size>8909</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWEyMDY0MzNmNmU2NDQ4
YzUxMzhmMWNkMDQ4MTY0NjU0NWU0NTRiOS4uOTZhMTFiOTU1NmJjNTkxZTIyOTU3YmMzMzc5M2Ex
MWI5YmE1NTRmNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTA0LTAzICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmVsZW1lbnRSZWN0IHNob3VsZCB1c2UgY2hpbGRyZW4gcmVjdHMgZm9yIGRpc3Bs
YXk6Y29udGVudHMgQVggb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM4NjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQmVjYXVzZSBkaXNwbGF5OmNvbnRlbnRzIEFjY2Vzc2liaWxpdHlOb2Rl
T2JqZWN0cyBjYW4gaGF2ZSByZW5kZXJlZAorICAgICAgICBjb250ZW50ICh1bmxpa2UgYGhpZGRl
bmAsIGBhcmlhLWhpZGRlbj0iZmFsc2UiYCBub2RlIG9iamVjdHMpLCB3ZSBjYW4gY29tcHV0ZQor
ICAgICAgICBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6ZWxlbWVudFJlY3QgYnkgYWRkaW5nIHVw
IHRoZSByZWN0YW5nbGVzIG9mIHRoZSBvYmplY3QncyBjaGlsZHJlbi4KKyAgICAgICAgVGhpcyBw
cm92aWRlcyBhIG1vcmUgYWNjdXJhdGUgZnJhbWUgZm9yIHRoZXNlIG9iamVjdHMuCisKKyAgICAg
ICAgVGVzdDogYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC5odG1s
CisKKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L0FjY2Vzc2liaWxpdHlOb2RlT2JqZWN0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OkFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0Ojpib3VuZGluZ0JveFJl
Y3QgY29uc3QpOgorCiAyMDIyLTAzLTMwICBZb3Vlbm4gRmFibGV0ICA8eW91ZW5uQGFwcGxlLmNv
bT4KIAogICAgICAgICBJbXBsZW1lbnQgU2VydmljZVdvcmtlciBXaW5kb3dDbGllbnQuYW5jZXN0
b3JPcmlnaW5zCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9hY2Nlc3NpYmlsaXR5L0FjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwCmluZGV4IGIyZDhjNDk3MGYyYWQ2ZTM0MGVkYTVkNzNm
OTQxYTEyODY1NmYyM2MuLmNmZjAxODA0Y2U3YzE2NzMxMDgzYmM0Yjk5ZDJkMWQzOTUzZTMzZDEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3QuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwCkBAIC0yMDUsMjIgKzIwNSwzMiBAQCBMYXlvdXRSZWN0IEFjY2Vz
c2liaWxpdHlOb2RlT2JqZWN0OjplbGVtZW50UmVjdCgpIGNvbnN0CiAKIExheW91dFJlY3QgQWNj
ZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmJvdW5kaW5nQm94UmVjdCgpIGNvbnN0CiB7Ci0gICAgLy8g
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3RzIGhhdmUgbm8gbWVjaGFuaXNtIHlldCB0byByZXR1cm4g
YSBzaXplIG9yIHBvc2l0aW9uLgotICAgIC8vIEZvciBub3csIGxldCdzIHJldHVybiB0aGUgcG9z
aXRpb24gb2YgdGhlIGFuY2VzdG9yIHRoYXQgZG9lcyBoYXZlIGEgcG9zaXRpb24sCi0gICAgLy8g
YW5kIG1ha2UgaXQgdGhlIHdpZHRoIG9mIHRoYXQgcGFyZW50LCBhbmQgYWJvdXQgdGhlIGhlaWdo
dCBvZiBhIGxpbmUgb2YgdGV4dCwgc28gdGhhdCBpdCdzIGNsZWFyIHRoZSBvYmplY3QgaXMgYSBj
aGlsZCBvZiB0aGUgcGFyZW50LgotICAgIAotICAgIExheW91dFJlY3QgYm91bmRpbmdCb3g7Ci0g
ICAgCi0gICAgZm9yIChBY2Nlc3NpYmlsaXR5T2JqZWN0KiBwb3NpdGlvblByb3ZpZGVyID0gcGFy
ZW50T2JqZWN0KCk7IHBvc2l0aW9uUHJvdmlkZXI7IHBvc2l0aW9uUHJvdmlkZXIgPSBwb3NpdGlv
blByb3ZpZGVyLT5wYXJlbnRPYmplY3QoKSkgewotICAgICAgICBpZiAocG9zaXRpb25Qcm92aWRl
ci0+aXNBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0KCkpIHsKLSAgICAgICAgICAgIExheW91dFJl
Y3QgcGFyZW50UmVjdCA9IHBvc2l0aW9uUHJvdmlkZXItPmVsZW1lbnRSZWN0KCk7Ci0gICAgICAg
ICAgICBib3VuZGluZ0JveC5zZXRTaXplKExheW91dFNpemUocGFyZW50UmVjdC53aWR0aCgpLCBM
YXlvdXRVbml0KHN0ZDo6bWluKDEwLjBmLCBwYXJlbnRSZWN0LmhlaWdodCgpLnRvRmxvYXQoKSkp
KSk7Ci0gICAgICAgICAgICBib3VuZGluZ0JveC5zZXRMb2NhdGlvbihwYXJlbnRSZWN0LmxvY2F0
aW9uKCkpOwotICAgICAgICAgICAgYnJlYWs7Ci0gICAgICAgIH0KKyAgICBpZiAoaGFzRGlzcGxh
eUNvbnRlbnRzKCkpIHsKKyAgICAgICAgTGF5b3V0UmVjdCBjb250ZW50c1JlY3Q7CisgICAgICAg
IGZvciAoY29uc3QgYXV0byYgY2hpbGQgOiBtX2NoaWxkcmVuKQorICAgICAgICAgICAgY29udGVu
dHNSZWN0LnVuaXRlKGNoaWxkLT5lbGVtZW50UmVjdCgpKTsKKworICAgICAgICBpZiAoIWNvbnRl
bnRzUmVjdC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gY29udGVudHNSZWN0OwogICAg
IH0KLSAgICAKLSAgICByZXR1cm4gYm91bmRpbmdCb3g7CisKKyAgICAvLyBOb24tZGlzcGxheTpj
b250ZW50cyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdHMgaGF2ZSBubyBtZWNoYW5pc20gdG8gcmV0
dXJuIGEgc2l6ZSBvciBwb3NpdGlvbi4KKyAgICAvLyBJbnN0ZWFkLCBsZXQncyByZXR1cm4gYSBi
b3ggYXQgdGhlIHBvc2l0aW9uIG9mIGFuIGFuY2VzdG9yIHRoYXQgZG9lcyBoYXZlIGEgcG9zaXRp
b24sIG1ha2UgaXQKKyAgICAvLyB0aGUgd2lkdGggb2YgdGhhdCBhbmNlc3RvciwgYW5kIGFib3V0
IHRoZSBoZWlnaHQgb2YgYSBsaW5lIG9mIHRleHQsIHNvIGl0J3MgY2xlYXIgdGhpcyBvYmplY3Qg
aXMKKyAgICAvLyBhIGRlc2NlbmRhbnQgb2YgdGhhdCBhbmNlc3Rvci4KKyAgICBmb3IgKFJlZlB0
cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBhbmNlc3RvciA9IHBhcmVudE9iamVjdCgpOyBhbmNlc3Rv
cjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50T2JqZWN0KCkpIHsKKyAgICAgICAgaWYgKCFp
czxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PihhbmNlc3RvcikpCisgICAgICAgICAgICBjb250
aW51ZTsKKyAgICAgICAgYXV0byBhbmNlc3RvclJlY3QgPSBhbmNlc3Rvci0+ZWxlbWVudFJlY3Qo
KTsKKyAgICAgICAgaWYgKGFuY2VzdG9yUmVjdC5pc0VtcHR5KCkpCisgICAgICAgICAgICBjb250
aW51ZTsKKworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgYW5jZXN0b3JSZWN0LmxvY2F0
aW9uKCksCisgICAgICAgICAgICBMYXlvdXRTaXplKGFuY2VzdG9yUmVjdC53aWR0aCgpLCBMYXlv
dXRVbml0KHN0ZDo6bWluKDEwLjBmLCBhbmNlc3RvclJlY3QuaGVpZ2h0KCkudG9GbG9hdCgpKSkp
CisgICAgICAgIH07CisgICAgfQorICAgIHJldHVybiB7IH07CiB9CiAKIHZvaWQgQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3Q6OnNldE5vZGUoTm9kZSogbm9kZSkKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAwZDVhMjVmYWJlOWM5
MmI3NmRmOTdhOTE4MTQ3ZWI0MmUyZGMzNDQ0Li5mMmMxZGE5NTkwMzUwMTRhMjhkM2MwOWY4YmJk
NTVhYTk0N2JmYzIwIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTYgQEAKKzIwMjItMDQtMDMgIFR5bGVyIFdp
bGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KKworICAgICAgICBBY2Nlc3NpYmlsaXR5Tm9kZU9i
amVjdDo6ZWxlbWVudFJlY3Qgc2hvdWxkIHVzZSBjaGlsZHJlbiByZWN0cyBmb3IgZGlzcGxheTpj
b250ZW50cyBBWCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0yMzg2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3Qt
ZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBhY2Nlc3NpYmlsaXR5L25vZGUtb25seS1v
YmplY3QtZWxlbWVudC1yZWN0Lmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2dsaWIv
YWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC1leHBlY3RlZC50eHQ6
IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zOiBFbmFibGUg
bmV3IHRlc3QuCisgICAgICAgICogcGxhdGZvcm0vd2luL25vZGUtb25seS1vYmplY3QtZWxlbWVu
dC1yZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMjItMDMtMzAgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBTZXJ2aWNlV29ya2VyIFdp
bmRvd0NsaWVudC5hbmNlc3Rvck9yaWdpbnMKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2FjY2Vz
c2liaWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC1leHBl
Y3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI4MGQ5NjVmOGNiODBhMjVmMTEyNjNiMjFlN2M2MGM3Yjg4
NWZmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbm9kZS1v
bmx5LW9iamVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1Ro
aXMgdGVzdCBlbnN1cmVzIHdlIGNhbGN1bGF0ZSB0aGUgZnJhbWUgY29ycmVjdGx5IGZvciBvYmpl
Y3RzIHRoYXQgZG9uJ3QgaGF2ZSBhIHJlbmRlcmVyIChsaWtlIGRpc3BsYXk6IGNvbnRlbnRzIGVs
ZW1lbnRzKS4KKworI3Rvb2xiYXI6IHt3aWR0aDogNzg0LCBoZWlnaHQ6IDIyfQorI2dyb3VwOiB7
d2lkdGg6IDQ2LCBoZWlnaHQ6IDI4fQorI2J1dHRvbjoge3dpZHRoOiA3ODQsIGhlaWdodDogMTB9
CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorRm9v
CitGb28KK0ZvbwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ub2RlLW9u
bHktb2JqZWN0LWVsZW1lbnQtcmVjdC5odG1sIGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9u
b2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjM5Y2NmMDA3Y2Fm
OWM2NTE1OGU1OWZlZWFjZGYxNzljNGJhMTYwZDAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxlbWVudC1yZWN0Lmh0bWwKQEAg
LTAsMCArMSw0NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9JRVRGLy9EVEQgSFRNTC8v
RU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi9yZXNvdXJjZXMvanMtdGVzdC5q
cyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3VyY2VzL2FjY2Vzc2liaWxpdHktaGVs
cGVyLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorCis8ZGl2IGlkPSJ0b29sYmFyIiBy
b2xlPSJ0b29sYmFyIiBzdHlsZT0iZGlzcGxheTogY29udGVudHM7Ij4KKyAgICA8ZGl2PgorICAg
ICAgICA8YnV0dG9uPkZvbzwvYnV0dG9uPgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgcm9s
ZT0idG9vbGJhciI+CisgICAgPGRpdiBpZD0iZ3JvdXAiIHJvbGU9Imdyb3VwIiBzdHlsZT0iZGlz
cGxheTogY29udGVudHM7Ij4KKyAgICAgICAgPGJ1dHRvbj5Gb288L2J1dHRvbj4KKyAgICA8L2Rp
dj4KKzwvZGl2PgorCis8ZGl2IHJvbGU9InRvb2xiYXIiPgorICAgIDxkaXY+CisgICAgICAgIDxi
dXR0b24gaWQ9ImJ1dHRvbiIgc3R5bGU9ImRpc3BsYXk6IGNvbnRlbnRzOyI+Rm9vPC9idXR0b24+
CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KKyAgICB2YXIgdGVzdE91dHB1dCA9ICJU
aGlzIHRlc3QgZW5zdXJlcyB3ZSBjYWxjdWxhdGUgdGhlIGZyYW1lIGNvcnJlY3RseSBmb3Igb2Jq
ZWN0cyB0aGF0IGRvbid0IGhhdmUgYSByZW5kZXJlciAobGlrZSBkaXNwbGF5OiBjb250ZW50cyBl
bGVtZW50cykuXG5cbiI7CisKKyAgICBmdW5jdGlvbiBsb2dTaXplKGlkKSB7CisgICAgICAgIGNv
bnN0IGF4RWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9sbGVyLmFjY2Vzc2libGVFbGVtZW50
QnlJZChpZCk7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gYCMke2lkfToge3dpZHRoOiAke2F4RWxl
bWVudC53aWR0aH0sIGhlaWdodDogJHtheEVsZW1lbnQuaGVpZ2h0fX1cbmA7CisgICAgfQorCisg
ICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxlcikgeworICAgICAgICBsb2dTaXpl
KCJ0b29sYmFyIik7CisgICAgICAgIGxvZ1NpemUoImdyb3VwIik7CisgICAgICAgIGxvZ1NpemUo
ImJ1dHRvbiIpOworCisgICAgICAgIGRlYnVnKHRlc3RPdXRwdXQpOworICAgIH0KKzwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
bGliL2FjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1v
YmplY3QtZWxlbWVudC1yZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi44NzljZjRkMWE2NWRk
MzNkYTQ2NmNkNTk0Y2JmZjE4MDVjMDYzZWIyCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxlbWVudC1y
ZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUaGlzIHRlc3QgZW5zdXJlcyB3ZSBj
YWxjdWxhdGUgdGhlIGZyYW1lIGNvcnJlY3RseSBmb3Igb2JqZWN0cyB0aGF0IGRvbid0IGhhdmUg
YSByZW5kZXJlciAobGlrZSBkaXNwbGF5OiBjb250ZW50cyBlbGVtZW50cykuCisKKyN0b29sYmFy
OiB7d2lkdGg6IDc4NCwgaGVpZ2h0OiAzMX0KKyNncm91cDoge3dpZHRoOiA0NCwgaGVpZ2h0OiAy
N30KKyNidXR0b246IHt3aWR0aDogNzg0LCBoZWlnaHQ6IDEwfQorCitQQVNTIHN1Y2Nlc3NmdWxs
eVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0ZvbworRm9vCitGb28KZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhwZWN0YXRpb25zIGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5kZXggNGMwZWQyNzdhZjQ3Yzk5M2Y0
YmZkODQ3YjIyOWRkNTgxNmY4NWVmYS4uMDgxMjNjYTdlNDI0YzgzODI4Y2U0YjJhYzM4ZjM3OWYy
YWRkM2RkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3Rh
dGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKQEAg
LTIwOTcsNiArMjA5Nyw3IEBAIGZhc3QvZG9tL2xpbmtpZnktcGhvbmUtbnVtYmVycy5odG1sIFsg
UGFzcyBdCiAKIGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4tZGlzcGxheS1jb250ZW50cy1lbGVt
ZW50Lmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvZGlzcGxheS1jb250ZW50cy1lbGVtZW50
LXJvbGVzLmh0bWwgWyBQYXNzIF0KK2FjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVt
ZW50LXJlY3QuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS92aWRlby1lbGVtZW50LXVybC1h
dHRyaWJ1dGUuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0eS92aXNpYmxlLWNoYXJhY3Rlci1y
YW5nZS1iYXNpYy5odG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmlsaXR5L3Zpc2libGUtY2hhcmFjdGVy
LXJhbmdlLWhlaWdodC1jaGFuZ2VzLmh0bWwgWyBQYXNzIF0KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL3dpbi9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC1leHBlY3RlZC50
eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJl
Y3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5MGExY2EyYjkyNDRhYjFhMmM4OTRlZDcxMjll
ZDI3MjY1NjMzM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4v
bm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIg
QEAKK1RoaXMgdGVzdCBlbnN1cmVzIHdlIGNhbGN1bGF0ZSB0aGUgZnJhbWUgY29ycmVjdGx5IGZv
ciBvYmplY3RzIHRoYXQgZG9uJ3QgaGF2ZSBhIHJlbmRlcmVyIChsaWtlIGRpc3BsYXk6IGNvbnRl
bnRzIGVsZW1lbnRzKS4KKworI3Rvb2xiYXI6IHt3aWR0aDogNzg0LCBoZWlnaHQ6IDI1fQorI2dy
b3VwOiB7d2lkdGg6IDM4LCBoZWlnaHQ6IDIxfQorI2J1dHRvbjoge3dpZHRoOiA3ODQsIGhlaWdo
dDogMTB9CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVU
RQorRm9vCitGb28KK0Zvbwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456525</attachid>
            <date>2022-04-03 18:37:29 -0700</date>
            <delta_ts>2022-04-04 07:11:29 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238680-20220403213728.patch</filename>
            <type>text/plain</type>
            <size>9801</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWEyMDY0MzNmNmU2NDQ4
YzUxMzhmMWNkMDQ4MTY0NjU0NWU0NTRiOS4uZTAwZDM0NTkxZWZmYjZiYmUwNGRkMmJiMjMzNWEz
OTEyY2U3YmZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTA0LTAzICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmVsZW1lbnRSZWN0IHNob3VsZCB1c2UgY2hpbGRyZW4gcmVjdHMgZm9yIGRpc3Bs
YXk6Y29udGVudHMgQVggb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM4NjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXph
Y2ggYW5kIEFuZHJlcyBHb256YWxlei4KKworICAgICAgICBCZWNhdXNlIGRpc3BsYXk6Y29udGVu
dHMgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3RzIGNhbiBoYXZlIHJlbmRlcmVkCisgICAgICAgIGNv
bnRlbnQgKHVubGlrZSBgaGlkZGVuYCwgYGFyaWEtaGlkZGVuPSJmYWxzZSJgIG5vZGUgb2JqZWN0
cyksIHdlIGNhbiBjb21wdXRlCisgICAgICAgIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjplbGVt
ZW50UmVjdCBieSBhZGRpbmcgdXAgdGhlIHJlY3RhbmdsZXMgb2YgdGhlIG9iamVjdCdzIGNoaWxk
cmVuLgorICAgICAgICBUaGlzIHByb3ZpZGVzIGEgbW9yZSBhY2N1cmF0ZSBmcmFtZSBmb3IgdGhl
c2Ugb2JqZWN0cy4KKworICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmpl
Y3QtZWxlbWVudC1yZWN0Lmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmJvdW5kaW5nQm94UmVjdCBjb25zdCk6CisKIDIwMjItMDMtMzAgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBTZXJ2aWNlV29ya2Vy
IFdpbmRvd0NsaWVudC5hbmNlc3Rvck9yaWdpbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggYjJkOGM0
OTcwZjJhZDZlMzQwZWRhNWQ3M2Y5NDFhMTI4NjU2ZjIzYy4uY2ZmMDE4MDRjZTdjMTY3MzEwODNi
YzRiOTlkMmQxZDM5NTNlMzNkMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTIwNSwyMiArMjA1LDMy
IEBAIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmVsZW1lbnRSZWN0KCkgY29u
c3QKIAogTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Ym91bmRpbmdCb3hSZWN0
KCkgY29uc3QKIHsKLSAgICAvLyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdHMgaGF2ZSBubyBtZWNo
YW5pc20geWV0IHRvIHJldHVybiBhIHNpemUgb3IgcG9zaXRpb24uCi0gICAgLy8gRm9yIG5vdywg
bGV0J3MgcmV0dXJuIHRoZSBwb3NpdGlvbiBvZiB0aGUgYW5jZXN0b3IgdGhhdCBkb2VzIGhhdmUg
YSBwb3NpdGlvbiwKLSAgICAvLyBhbmQgbWFrZSBpdCB0aGUgd2lkdGggb2YgdGhhdCBwYXJlbnQs
IGFuZCBhYm91dCB0aGUgaGVpZ2h0IG9mIGEgbGluZSBvZiB0ZXh0LCBzbyB0aGF0IGl0J3MgY2xl
YXIgdGhlIG9iamVjdCBpcyBhIGNoaWxkIG9mIHRoZSBwYXJlbnQuCi0gICAgCi0gICAgTGF5b3V0
UmVjdCBib3VuZGluZ0JveDsKLSAgICAKLSAgICBmb3IgKEFjY2Vzc2liaWxpdHlPYmplY3QqIHBv
c2l0aW9uUHJvdmlkZXIgPSBwYXJlbnRPYmplY3QoKTsgcG9zaXRpb25Qcm92aWRlcjsgcG9zaXRp
b25Qcm92aWRlciA9IHBvc2l0aW9uUHJvdmlkZXItPnBhcmVudE9iamVjdCgpKSB7Ci0gICAgICAg
IGlmIChwb3NpdGlvblByb3ZpZGVyLT5pc0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSkgewot
ICAgICAgICAgICAgTGF5b3V0UmVjdCBwYXJlbnRSZWN0ID0gcG9zaXRpb25Qcm92aWRlci0+ZWxl
bWVudFJlY3QoKTsKLSAgICAgICAgICAgIGJvdW5kaW5nQm94LnNldFNpemUoTGF5b3V0U2l6ZShw
YXJlbnRSZWN0LndpZHRoKCksIExheW91dFVuaXQoc3RkOjptaW4oMTAuMGYsIHBhcmVudFJlY3Qu
aGVpZ2h0KCkudG9GbG9hdCgpKSkpKTsKLSAgICAgICAgICAgIGJvdW5kaW5nQm94LnNldExvY2F0
aW9uKHBhcmVudFJlY3QubG9jYXRpb24oKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
fQorICAgIGlmIChoYXNEaXNwbGF5Q29udGVudHMoKSkgeworICAgICAgICBMYXlvdXRSZWN0IGNv
bnRlbnRzUmVjdDsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IG1fY2hpbGRyZW4p
CisgICAgICAgICAgICBjb250ZW50c1JlY3QudW5pdGUoY2hpbGQtPmVsZW1lbnRSZWN0KCkpOwor
CisgICAgICAgIGlmICghY29udGVudHNSZWN0LmlzRW1wdHkoKSkKKyAgICAgICAgICAgIHJldHVy
biBjb250ZW50c1JlY3Q7CiAgICAgfQotICAgIAotICAgIHJldHVybiBib3VuZGluZ0JveDsKKwor
ICAgIC8vIE5vbi1kaXNwbGF5OmNvbnRlbnRzIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0cyBoYXZl
IG5vIG1lY2hhbmlzbSB0byByZXR1cm4gYSBzaXplIG9yIHBvc2l0aW9uLgorICAgIC8vIEluc3Rl
YWQsIGxldCdzIHJldHVybiBhIGJveCBhdCB0aGUgcG9zaXRpb24gb2YgYW4gYW5jZXN0b3IgdGhh
dCBkb2VzIGhhdmUgYSBwb3NpdGlvbiwgbWFrZSBpdAorICAgIC8vIHRoZSB3aWR0aCBvZiB0aGF0
IGFuY2VzdG9yLCBhbmQgYWJvdXQgdGhlIGhlaWdodCBvZiBhIGxpbmUgb2YgdGV4dCwgc28gaXQn
cyBjbGVhciB0aGlzIG9iamVjdCBpcworICAgIC8vIGEgZGVzY2VuZGFudCBvZiB0aGF0IGFuY2Vz
dG9yLgorICAgIGZvciAoUmVmUHRyPEFjY2Vzc2liaWxpdHlPYmplY3Q+IGFuY2VzdG9yID0gcGFy
ZW50T2JqZWN0KCk7IGFuY2VzdG9yOyBhbmNlc3RvciA9IGFuY2VzdG9yLT5wYXJlbnRPYmplY3Qo
KSkgeworICAgICAgICBpZiAoIWlzPEFjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3Q+KGFuY2VzdG9y
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBhdXRvIGFuY2VzdG9yUmVjdCA9IGFu
Y2VzdG9yLT5lbGVtZW50UmVjdCgpOworICAgICAgICBpZiAoYW5jZXN0b3JSZWN0LmlzRW1wdHko
KSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIHJldHVybiB7CisgICAgICAgICAg
ICBhbmNlc3RvclJlY3QubG9jYXRpb24oKSwKKyAgICAgICAgICAgIExheW91dFNpemUoYW5jZXN0
b3JSZWN0LndpZHRoKCksIExheW91dFVuaXQoc3RkOjptaW4oMTAuMGYsIGFuY2VzdG9yUmVjdC5o
ZWlnaHQoKS50b0Zsb2F0KCkpKSkKKyAgICAgICAgfTsKKyAgICB9CisgICAgcmV0dXJuIHsgfTsK
IH0KIAogdm9pZCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6c2V0Tm9kZShOb2RlKiBub2RlKQpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CmluZGV4IDBkNWEyNWZhYmU5YzkyYjc2ZGY5N2E5MTgxNDdlYjQyZTJkYzM0NDQuLmMwMjNjN2Iz
YTdjN2U5ZGFiODkzNDVhZjIwZDEwODE4ZjhhMTIzZTggMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3Rz
L0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAor
MjAyMi0wNC0wMyAgVHlsZXIgV2lsY29jayAgPHR5bGVyX3dAYXBwbGUuY29tPgorCisgICAgICAg
IEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjplbGVtZW50UmVjdCBzaG91bGQgdXNlIGNoaWxkcmVu
IHJlY3RzIGZvciBkaXNwbGF5OmNvbnRlbnRzIEFYIG9iamVjdHMKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzODY4MAorCisgICAgICAgIFJldmlld2Vk
IGJ5IENocmlzIEZsZWl6YWNoIGFuZCBBbmRyZXMgR29uemFsZXouCisKKyAgICAgICAgKiBhY2Nl
c3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxlbWVudC1yZWN0LWV4cGVjdGVkLnR4dDogQWRk
ZWQuCisgICAgICAgICogYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVj
dC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvbm9k
ZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAg
KiBwbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9uczogRW5hYmxlIG5ldyB0ZXN0LgorICAgICAg
ICAqIHBsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxlbWVudC1y
ZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vd2luL2FjY2Vzc2li
aWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQudHh0OiBBZGRlZC4K
KwogMjAyMi0wMy0zMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAKICAgICAg
ICAgSW1wbGVtZW50IFNlcnZpY2VXb3JrZXIgV2luZG93Q2xpZW50LmFuY2VzdG9yT3JpZ2lucwpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVs
ZW1lbnQtcmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L25vZGUt
b25seS1vYmplY3QtZWxlbWVudC1yZWN0LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40YjgwZDk2
NWY4Y2I4MGEyNWYxMTI2M2IyMWU3YzYwYzdiODg1ZmY5Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC1leHBl
Y3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgd2UgY2FsY3VsYXRl
IHRoZSBmcmFtZSBjb3JyZWN0bHkgZm9yIG9iamVjdHMgdGhhdCBkb24ndCBoYXZlIGEgcmVuZGVy
ZXIgKGxpa2UgZGlzcGxheTogY29udGVudHMgZWxlbWVudHMpLgorCisjdG9vbGJhcjoge3dpZHRo
OiA3ODQsIGhlaWdodDogMjJ9CisjZ3JvdXA6IHt3aWR0aDogNDYsIGhlaWdodDogMjh9CisjYnV0
dG9uOiB7d2lkdGg6IDc4NCwgaGVpZ2h0OiAxMH0KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQg
aXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitGb28KK0ZvbworRm9vCmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxlbWVudC1yZWN0Lmh0bWwg
Yi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxlbWVudC1yZWN0
Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMzljY2YwMDdjYWY5YzY1MTU4ZTU5ZmVlYWNkZjE3OWM0YmExNjBk
MAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbm9kZS1vbmx5
LW9iamVjdC1lbGVtZW50LXJlY3QuaHRtbApAQCAtMCwwICsxLDQ1IEBACis8IURPQ1RZUEUgSFRN
TCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlw
dCBzcmM9Ii4uL3Jlc291cmNlcy9qcy10ZXN0LmpzIj48L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvYWNjZXNzaWJpbGl0eS1oZWxwZXIuanMiPjwvc2NyaXB0PgorPC9oZWFkPgor
PGJvZHk+CisKKzxkaXYgaWQ9InRvb2xiYXIiIHJvbGU9InRvb2xiYXIiIHN0eWxlPSJkaXNwbGF5
OiBjb250ZW50czsiPgorICAgIDxkaXY+CisgICAgICAgIDxidXR0b24+Rm9vPC9idXR0b24+Cisg
ICAgPC9kaXY+Cis8L2Rpdj4KKworPGRpdiByb2xlPSJ0b29sYmFyIj4KKyAgICA8ZGl2IGlkPSJn
cm91cCIgcm9sZT0iZ3JvdXAiIHN0eWxlPSJkaXNwbGF5OiBjb250ZW50czsiPgorICAgICAgICA8
YnV0dG9uPkZvbzwvYnV0dG9uPgorICAgIDwvZGl2PgorPC9kaXY+CisKKzxkaXYgcm9sZT0idG9v
bGJhciI+CisgICAgPGRpdj4KKyAgICAgICAgPGJ1dHRvbiBpZD0iYnV0dG9uIiBzdHlsZT0iZGlz
cGxheTogY29udGVudHM7Ij5Gb288L2J1dHRvbj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8c2Ny
aXB0PgorICAgIHZhciB0ZXN0T3V0cHV0ID0gIlRoaXMgdGVzdCBlbnN1cmVzIHdlIGNhbGN1bGF0
ZSB0aGUgZnJhbWUgY29ycmVjdGx5IGZvciBvYmplY3RzIHRoYXQgZG9uJ3QgaGF2ZSBhIHJlbmRl
cmVyIChsaWtlIGRpc3BsYXk6IGNvbnRlbnRzIGVsZW1lbnRzKS5cblxuIjsKKworICAgIGZ1bmN0
aW9uIGxvZ1NpemUoaWQpIHsKKyAgICAgICAgY29uc3QgYXhFbGVtZW50ID0gYWNjZXNzaWJpbGl0
eUNvbnRyb2xsZXIuYWNjZXNzaWJsZUVsZW1lbnRCeUlkKGlkKTsKKyAgICAgICAgdGVzdE91dHB1
dCArPSBgIyR7aWR9OiB7d2lkdGg6ICR7YXhFbGVtZW50LndpZHRofSwgaGVpZ2h0OiAke2F4RWxl
bWVudC5oZWlnaHR9fVxuYDsKKyAgICB9CisKKyAgICBpZiAod2luZG93LmFjY2Vzc2liaWxpdHlD
b250cm9sbGVyKSB7CisgICAgICAgIGxvZ1NpemUoInRvb2xiYXIiKTsKKyAgICAgICAgbG9nU2l6
ZSgiZ3JvdXAiKTsKKyAgICAgICAgbG9nU2l6ZSgiYnV0dG9uIik7CisKKyAgICAgICAgZGVidWco
dGVzdE91dHB1dCk7CisgICAgfQorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CisKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2dsaWIvYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHkt
b2JqZWN0LWVsZW1lbnQtcmVjdC1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9n
bGliL2FjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQu
dHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg3OWNmNGQxYTY1ZGQzM2RhNDY2Y2Q1OTRjYmZmMTgwNWMwNjNlYjIK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxp
dHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEs
MTIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHdlIGNhbGN1bGF0ZSB0aGUgZnJhbWUgY29ycmVjdGx5
IGZvciBvYmplY3RzIHRoYXQgZG9uJ3QgaGF2ZSBhIHJlbmRlcmVyIChsaWtlIGRpc3BsYXk6IGNv
bnRlbnRzIGVsZW1lbnRzKS4KKworI3Rvb2xiYXI6IHt3aWR0aDogNzg0LCBoZWlnaHQ6IDMxfQor
I2dyb3VwOiB7d2lkdGg6IDQ0LCBoZWlnaHQ6IDI3fQorI2J1dHRvbjoge3dpZHRoOiA3ODQsIGhl
aWdodDogMTB9CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01Q
TEVURQorRm9vCitGb28KK0ZvbwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0
aW9ucwppbmRleCA0YzBlZDI3N2FmNDdjOTkzZjRiZmQ4NDdiMjI5ZGQ1ODE2Zjg1ZWZhLi4wODEy
M2NhN2U0MjRjODM4MjhjZTRiMmFjMzhmMzc5ZjJhZGQzZGQ5IDEwMDY0NAotLS0gYS9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9pb3MvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMjA5Nyw2ICsyMDk3LDcgQEAgZmFzdC9kb20v
bGlua2lmeS1waG9uZS1udW1iZXJzLmh0bWwgWyBQYXNzIF0KIAogYWNjZXNzaWJpbGl0eS9hcmlh
LWhpZGRlbi1kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJp
bGl0eS9kaXNwbGF5LWNvbnRlbnRzLWVsZW1lbnQtcm9sZXMuaHRtbCBbIFBhc3MgXQorYWNjZXNz
aWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC5odG1sIFsgUGFzcyBdCiBhY2Nl
c3NpYmlsaXR5L3ZpZGVvLWVsZW1lbnQtdXJsLWF0dHJpYnV0ZS5odG1sIFsgUGFzcyBdCiBhY2Nl
c3NpYmlsaXR5L3Zpc2libGUtY2hhcmFjdGVyLXJhbmdlLWJhc2ljLmh0bWwgWyBQYXNzIF0KIGFj
Y2Vzc2liaWxpdHkvdmlzaWJsZS1jaGFyYWN0ZXItcmFuZ2UtaGVpZ2h0LWNoYW5nZXMuaHRtbCBb
IFBhc3MgXQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxp
dHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVz
dHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJl
Y3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmM0ODFlZjIyMjM5ZGIzZmM1NzllYzRmMGViMDkw
NWRjNTZkMjYwMzAKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mv
YWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC1leHBlY3RlZC50eHQK
QEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgd2UgY2FsY3VsYXRlIHRoZSBmcmFt
ZSBjb3JyZWN0bHkgZm9yIG9iamVjdHMgdGhhdCBkb24ndCBoYXZlIGEgcmVuZGVyZXIgKGxpa2Ug
ZGlzcGxheTogY29udGVudHMgZWxlbWVudHMpLgorCisjdG9vbGJhcjoge3dpZHRoOiA3ODQsIGhl
aWdodDogMjR9CisjZ3JvdXA6IHt3aWR0aDogNDQsIGhlaWdodDogMjB9CisjYnV0dG9uOiB7d2lk
dGg6IDc4NCwgaGVpZ2h0OiAxMH0KKworUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQor
CitURVNUIENPTVBMRVRFCitGb28KK0ZvbworRm9vCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9ub2Rl
LW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNzkwYTFj
YTJiOTI0NGFiMWEyYzg5NGVkNzEyOWVkMjcyNjU2MzMzZAotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxl
bWVudC1yZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitUaGlzIHRlc3QgZW5zdXJl
cyB3ZSBjYWxjdWxhdGUgdGhlIGZyYW1lIGNvcnJlY3RseSBmb3Igb2JqZWN0cyB0aGF0IGRvbid0
IGhhdmUgYSByZW5kZXJlciAobGlrZSBkaXNwbGF5OiBjb250ZW50cyBlbGVtZW50cykuCisKKyN0
b29sYmFyOiB7d2lkdGg6IDc4NCwgaGVpZ2h0OiAyNX0KKyNncm91cDoge3dpZHRoOiAzOCwgaGVp
Z2h0OiAyMX0KKyNidXR0b246IHt3aWR0aDogNzg0LCBoZWlnaHQ6IDEwfQorCitQQVNTIHN1Y2Nl
c3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0ZvbworRm9vCitGb28K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>456566</attachid>
            <date>2022-04-04 07:11:31 -0700</date>
            <delta_ts>2022-04-04 13:42:46 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-238680-20220404101130.patch</filename>
            <type>text/plain</type>
            <size>9850</size>
            <attacher name="Tyler Wilcock">tyler_w</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjkyMTA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWEyMDY0MzNmNmU2NDQ4
YzUxMzhmMWNkMDQ4MTY0NjU0NWU0NTRiOS4uZTAwZDM0NTkxZWZmYjZiYmUwNGRkMmJiMjMzNWEz
OTEyY2U3YmZmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIwIEBACisyMDIyLTA0LTAzICBUeWxl
ciBXaWxjb2NrICA8dHlsZXJfd0BhcHBsZS5jb20+CisKKyAgICAgICAgQWNjZXNzaWJpbGl0eU5v
ZGVPYmplY3Q6OmVsZW1lbnRSZWN0IHNob3VsZCB1c2UgY2hpbGRyZW4gcmVjdHMgZm9yIGRpc3Bs
YXk6Y29udGVudHMgQVggb2JqZWN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9MjM4NjgwCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgQ2hyaXMgRmxlaXph
Y2ggYW5kIEFuZHJlcyBHb256YWxlei4KKworICAgICAgICBCZWNhdXNlIGRpc3BsYXk6Y29udGVu
dHMgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3RzIGNhbiBoYXZlIHJlbmRlcmVkCisgICAgICAgIGNv
bnRlbnQgKHVubGlrZSBgaGlkZGVuYCwgYGFyaWEtaGlkZGVuPSJmYWxzZSJgIG5vZGUgb2JqZWN0
cyksIHdlIGNhbiBjb21wdXRlCisgICAgICAgIEFjY2Vzc2liaWxpdHlOb2RlT2JqZWN0OjplbGVt
ZW50UmVjdCBieSBhZGRpbmcgdXAgdGhlIHJlY3RhbmdsZXMgb2YgdGhlIG9iamVjdCdzIGNoaWxk
cmVuLgorICAgICAgICBUaGlzIHByb3ZpZGVzIGEgbW9yZSBhY2N1cmF0ZSBmcmFtZSBmb3IgdGhl
c2Ugb2JqZWN0cy4KKworICAgICAgICBUZXN0OiBhY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmpl
Y3QtZWxlbWVudC1yZWN0Lmh0bWwKKworICAgICAgICAqIGFjY2Vzc2liaWxpdHkvQWNjZXNzaWJp
bGl0eU5vZGVPYmplY3QuY3BwOgorICAgICAgICAoV2ViQ29yZTo6QWNjZXNzaWJpbGl0eU5vZGVP
YmplY3Q6OmJvdW5kaW5nQm94UmVjdCBjb25zdCk6CisKIDIwMjItMDMtMzAgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxlbWVudCBTZXJ2aWNlV29ya2Vy
IFdpbmRvd0NsaWVudC5hbmNlc3Rvck9yaWdpbnMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2FjY2Vzc2liaWxpdHkvQWNjZXNzaWJpbGl0eU5vZGVPYmplY3QuY3BwIGIvU291cmNlL1dlYkNv
cmUvYWNjZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKaW5kZXggYjJkOGM0
OTcwZjJhZDZlMzQwZWRhNWQ3M2Y5NDFhMTI4NjU2ZjIzYy4uMTkyYjE0OTAxN2E0ZmQ3MGExMTlh
NTdiMjI2OTk2Y2Y3NzZmYjlhOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvYWNjZXNzaWJp
bGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvYWNj
ZXNzaWJpbGl0eS9BY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdC5jcHAKQEAgLTIwNSwyMiArMjA1LDMy
IEBAIExheW91dFJlY3QgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OmVsZW1lbnRSZWN0KCkgY29u
c3QKIAogTGF5b3V0UmVjdCBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdDo6Ym91bmRpbmdCb3hSZWN0
KCkgY29uc3QKIHsKLSAgICAvLyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdHMgaGF2ZSBubyBtZWNo
YW5pc20geWV0IHRvIHJldHVybiBhIHNpemUgb3IgcG9zaXRpb24uCi0gICAgLy8gRm9yIG5vdywg
bGV0J3MgcmV0dXJuIHRoZSBwb3NpdGlvbiBvZiB0aGUgYW5jZXN0b3IgdGhhdCBkb2VzIGhhdmUg
YSBwb3NpdGlvbiwKLSAgICAvLyBhbmQgbWFrZSBpdCB0aGUgd2lkdGggb2YgdGhhdCBwYXJlbnQs
IGFuZCBhYm91dCB0aGUgaGVpZ2h0IG9mIGEgbGluZSBvZiB0ZXh0LCBzbyB0aGF0IGl0J3MgY2xl
YXIgdGhlIG9iamVjdCBpcyBhIGNoaWxkIG9mIHRoZSBwYXJlbnQuCi0gICAgCi0gICAgTGF5b3V0
UmVjdCBib3VuZGluZ0JveDsKLSAgICAKLSAgICBmb3IgKEFjY2Vzc2liaWxpdHlPYmplY3QqIHBv
c2l0aW9uUHJvdmlkZXIgPSBwYXJlbnRPYmplY3QoKTsgcG9zaXRpb25Qcm92aWRlcjsgcG9zaXRp
b25Qcm92aWRlciA9IHBvc2l0aW9uUHJvdmlkZXItPnBhcmVudE9iamVjdCgpKSB7Ci0gICAgICAg
IGlmIChwb3NpdGlvblByb3ZpZGVyLT5pc0FjY2Vzc2liaWxpdHlSZW5kZXJPYmplY3QoKSkgewot
ICAgICAgICAgICAgTGF5b3V0UmVjdCBwYXJlbnRSZWN0ID0gcG9zaXRpb25Qcm92aWRlci0+ZWxl
bWVudFJlY3QoKTsKLSAgICAgICAgICAgIGJvdW5kaW5nQm94LnNldFNpemUoTGF5b3V0U2l6ZShw
YXJlbnRSZWN0LndpZHRoKCksIExheW91dFVuaXQoc3RkOjptaW4oMTAuMGYsIHBhcmVudFJlY3Qu
aGVpZ2h0KCkudG9GbG9hdCgpKSkpKTsKLSAgICAgICAgICAgIGJvdW5kaW5nQm94LnNldExvY2F0
aW9uKHBhcmVudFJlY3QubG9jYXRpb24oKSk7Ci0gICAgICAgICAgICBicmVhazsKLSAgICAgICAg
fQorICAgIGlmIChoYXNEaXNwbGF5Q29udGVudHMoKSkgeworICAgICAgICBMYXlvdXRSZWN0IGNv
bnRlbnRzUmVjdDsKKyAgICAgICAgZm9yIChjb25zdCBhdXRvJiBjaGlsZCA6IGNvbnN0X2Nhc3Q8
QWNjZXNzaWJpbGl0eU5vZGVPYmplY3QqPih0aGlzKS0+Y2hpbGRyZW4oZmFsc2UpKQorICAgICAg
ICAgICAgY29udGVudHNSZWN0LnVuaXRlKGNoaWxkLT5lbGVtZW50UmVjdCgpKTsKKworICAgICAg
ICBpZiAoIWNvbnRlbnRzUmVjdC5pc0VtcHR5KCkpCisgICAgICAgICAgICByZXR1cm4gY29udGVu
dHNSZWN0OwogICAgIH0KLSAgICAKLSAgICByZXR1cm4gYm91bmRpbmdCb3g7CisKKyAgICAvLyBO
b24tZGlzcGxheTpjb250ZW50cyBBY2Nlc3NpYmlsaXR5Tm9kZU9iamVjdHMgaGF2ZSBubyBtZWNo
YW5pc20gdG8gcmV0dXJuIGEgc2l6ZSBvciBwb3NpdGlvbi4KKyAgICAvLyBJbnN0ZWFkLCBsZXQn
cyByZXR1cm4gYSBib3ggYXQgdGhlIHBvc2l0aW9uIG9mIGFuIGFuY2VzdG9yIHRoYXQgZG9lcyBo
YXZlIGEgcG9zaXRpb24sIG1ha2UgaXQKKyAgICAvLyB0aGUgd2lkdGggb2YgdGhhdCBhbmNlc3Rv
ciwgYW5kIGFib3V0IHRoZSBoZWlnaHQgb2YgYSBsaW5lIG9mIHRleHQsIHNvIGl0J3MgY2xlYXIg
dGhpcyBvYmplY3QgaXMKKyAgICAvLyBhIGRlc2NlbmRhbnQgb2YgdGhhdCBhbmNlc3Rvci4KKyAg
ICBmb3IgKFJlZlB0cjxBY2Nlc3NpYmlsaXR5T2JqZWN0PiBhbmNlc3RvciA9IHBhcmVudE9iamVj
dCgpOyBhbmNlc3RvcjsgYW5jZXN0b3IgPSBhbmNlc3Rvci0+cGFyZW50T2JqZWN0KCkpIHsKKyAg
ICAgICAgaWYgKCFpczxBY2Nlc3NpYmlsaXR5UmVuZGVyT2JqZWN0PihhbmNlc3RvcikpCisgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAgICAgYXV0byBhbmNlc3RvclJlY3QgPSBhbmNlc3Rvci0+
ZWxlbWVudFJlY3QoKTsKKyAgICAgICAgaWYgKGFuY2VzdG9yUmVjdC5pc0VtcHR5KCkpCisgICAg
ICAgICAgICBjb250aW51ZTsKKworICAgICAgICByZXR1cm4geworICAgICAgICAgICAgYW5jZXN0
b3JSZWN0LmxvY2F0aW9uKCksCisgICAgICAgICAgICBMYXlvdXRTaXplKGFuY2VzdG9yUmVjdC53
aWR0aCgpLCBMYXlvdXRVbml0KHN0ZDo6bWluKDEwLjBmLCBhbmNlc3RvclJlY3QuaGVpZ2h0KCku
dG9GbG9hdCgpKSkpCisgICAgICAgIH07CisgICAgfQorICAgIHJldHVybiB7IH07CiB9CiAKIHZv
aWQgQWNjZXNzaWJpbGl0eU5vZGVPYmplY3Q6OnNldE5vZGUoTm9kZSogbm9kZSkKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCAw
ZDVhMjVmYWJlOWM5MmI3NmRmOTdhOTE4MTQ3ZWI0MmUyZGMzNDQ0Li5jMDIzYzdiM2E3YzdlOWRh
Yjg5MzQ1YWYyMGQxMDgxOGY4YTEyM2U4IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMjItMDQt
MDMgIFR5bGVyIFdpbGNvY2sgIDx0eWxlcl93QGFwcGxlLmNvbT4KKworICAgICAgICBBY2Nlc3Np
YmlsaXR5Tm9kZU9iamVjdDo6ZWxlbWVudFJlY3Qgc2hvdWxkIHVzZSBjaGlsZHJlbiByZWN0cyBm
b3IgZGlzcGxheTpjb250ZW50cyBBWCBvYmplY3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzg2ODAKKworICAgICAgICBSZXZpZXdlZCBieSBDaHJp
cyBGbGVpemFjaCBhbmQgQW5kcmVzIEdvbnphbGV6LgorCisgICAgICAgICogYWNjZXNzaWJpbGl0
eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAg
ICAgICAqIGFjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QuaHRtbDog
QWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1v
YmplY3QtZWxlbWVudC1yZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZv
cm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnM6IEVuYWJsZSBuZXcgdGVzdC4KKyAgICAgICAgKiBwbGF0
Zm9ybS9pb3MvYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC1leHBl
Y3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL3dpbi9hY2Nlc3NpYmlsaXR5L25v
ZGUtb25seS1vYmplY3QtZWxlbWVudC1yZWN0LWV4cGVjdGVkLnR4dDogQWRkZWQuCisKIDIwMjIt
MDMtMzAgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIEltcGxl
bWVudCBTZXJ2aWNlV29ya2VyIFdpbmRvd0NsaWVudC5hbmNlc3Rvck9yaWdpbnMKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2FjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJl
Y3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2Jq
ZWN0LWVsZW1lbnQtcmVjdC1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uNGI4MGQ5NjVmOGNiODBh
MjVmMTEyNjNiMjFlN2M2MGM3Yjg4NWZmOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2FjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQudHh0
CkBAIC0wLDAgKzEsMTIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHdlIGNhbGN1bGF0ZSB0aGUgZnJh
bWUgY29ycmVjdGx5IGZvciBvYmplY3RzIHRoYXQgZG9uJ3QgaGF2ZSBhIHJlbmRlcmVyIChsaWtl
IGRpc3BsYXk6IGNvbnRlbnRzIGVsZW1lbnRzKS4KKworI3Rvb2xiYXI6IHt3aWR0aDogNzg0LCBo
ZWlnaHQ6IDIyfQorI2dyb3VwOiB7d2lkdGg6IDQ2LCBoZWlnaHQ6IDI4fQorI2J1dHRvbjoge3dp
ZHRoOiA3ODQsIGhlaWdodDogMTB9CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUK
KworVEVTVCBDT01QTEVURQorRm9vCitGb28KK0ZvbwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMv
YWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC5odG1sIGIvTGF5b3V0
VGVzdHMvYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVjdC5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjM5Y2NmMDA3Y2FmOWM2NTE1OGU1OWZlZWFjZGYxNzljNGJhMTYwZDAKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmplY3Qt
ZWxlbWVudC1yZWN0Lmh0bWwKQEAgLTAsMCArMSw0NSBAQAorPCFET0NUWVBFIEhUTUwgUFVCTElD
ICItLy9JRVRGLy9EVEQgSFRNTC8vRU4iPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIu
Li9yZXNvdXJjZXMvanMtdGVzdC5qcyI+PC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vcmVzb3Vy
Y2VzL2FjY2Vzc2liaWxpdHktaGVscGVyLmpzIj48L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5Pgor
Cis8ZGl2IGlkPSJ0b29sYmFyIiByb2xlPSJ0b29sYmFyIiBzdHlsZT0iZGlzcGxheTogY29udGVu
dHM7Ij4KKyAgICA8ZGl2PgorICAgICAgICA8YnV0dG9uPkZvbzwvYnV0dG9uPgorICAgIDwvZGl2
PgorPC9kaXY+CisKKzxkaXYgcm9sZT0idG9vbGJhciI+CisgICAgPGRpdiBpZD0iZ3JvdXAiIHJv
bGU9Imdyb3VwIiBzdHlsZT0iZGlzcGxheTogY29udGVudHM7Ij4KKyAgICAgICAgPGJ1dHRvbj5G
b288L2J1dHRvbj4KKyAgICA8L2Rpdj4KKzwvZGl2PgorCis8ZGl2IHJvbGU9InRvb2xiYXIiPgor
ICAgIDxkaXY+CisgICAgICAgIDxidXR0b24gaWQ9ImJ1dHRvbiIgc3R5bGU9ImRpc3BsYXk6IGNv
bnRlbnRzOyI+Rm9vPC9idXR0b24+CisgICAgPC9kaXY+Cis8L2Rpdj4KKworPHNjcmlwdD4KKyAg
ICB2YXIgdGVzdE91dHB1dCA9ICJUaGlzIHRlc3QgZW5zdXJlcyB3ZSBjYWxjdWxhdGUgdGhlIGZy
YW1lIGNvcnJlY3RseSBmb3Igb2JqZWN0cyB0aGF0IGRvbid0IGhhdmUgYSByZW5kZXJlciAobGlr
ZSBkaXNwbGF5OiBjb250ZW50cyBlbGVtZW50cykuXG5cbiI7CisKKyAgICBmdW5jdGlvbiBsb2dT
aXplKGlkKSB7CisgICAgICAgIGNvbnN0IGF4RWxlbWVudCA9IGFjY2Vzc2liaWxpdHlDb250cm9s
bGVyLmFjY2Vzc2libGVFbGVtZW50QnlJZChpZCk7CisgICAgICAgIHRlc3RPdXRwdXQgKz0gYCMk
e2lkfToge3dpZHRoOiAke2F4RWxlbWVudC53aWR0aH0sIGhlaWdodDogJHtheEVsZW1lbnQuaGVp
Z2h0fX1cbmA7CisgICAgfQorCisgICAgaWYgKHdpbmRvdy5hY2Nlc3NpYmlsaXR5Q29udHJvbGxl
cikgeworICAgICAgICBsb2dTaXplKCJ0b29sYmFyIik7CisgICAgICAgIGxvZ1NpemUoImdyb3Vw
Iik7CisgICAgICAgIGxvZ1NpemUoImJ1dHRvbiIpOworCisgICAgICAgIGRlYnVnKHRlc3RPdXRw
dXQpOworICAgIH0KKzwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgorCmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9nbGliL2FjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9iamVjdC1l
bGVtZW50LXJlY3QtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nl
c3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxlbWVudC1yZWN0LWV4cGVjdGVkLnR4dApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi44NzljZjRkMWE2NWRkMzNkYTQ2NmNkNTk0Y2JmZjE4MDVjMDYzZWIyCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vZ2xpYi9hY2Nlc3NpYmlsaXR5L25vZGUt
b25seS1vYmplY3QtZWxlbWVudC1yZWN0LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitU
aGlzIHRlc3QgZW5zdXJlcyB3ZSBjYWxjdWxhdGUgdGhlIGZyYW1lIGNvcnJlY3RseSBmb3Igb2Jq
ZWN0cyB0aGF0IGRvbid0IGhhdmUgYSByZW5kZXJlciAobGlrZSBkaXNwbGF5OiBjb250ZW50cyBl
bGVtZW50cykuCisKKyN0b29sYmFyOiB7d2lkdGg6IDc4NCwgaGVpZ2h0OiAzMX0KKyNncm91cDog
e3dpZHRoOiA0NCwgaGVpZ2h0OiAyN30KKyNidXR0b246IHt3aWR0aDogNzg0LCBoZWlnaHQ6IDEw
fQorCitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK0Zv
bworRm9vCitGb28KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9UZXN0RXhw
ZWN0YXRpb25zIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKaW5k
ZXggNGMwZWQyNzdhZjQ3Yzk5M2Y0YmZkODQ3YjIyOWRkNTgxNmY4NWVmYS4uMDgxMjNjYTdlNDI0
YzgzODI4Y2U0YjJhYzM4ZjM3OWYyYWRkM2RkOSAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvcGxh
dGZvcm0vaW9zL1Rlc3RFeHBlY3RhdGlvbnMKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9z
L1Rlc3RFeHBlY3RhdGlvbnMKQEAgLTIwOTcsNiArMjA5Nyw3IEBAIGZhc3QvZG9tL2xpbmtpZnkt
cGhvbmUtbnVtYmVycy5odG1sIFsgUGFzcyBdCiAKIGFjY2Vzc2liaWxpdHkvYXJpYS1oaWRkZW4t
ZGlzcGxheS1jb250ZW50cy1lbGVtZW50Lmh0bWwgWyBQYXNzIF0KIGFjY2Vzc2liaWxpdHkvZGlz
cGxheS1jb250ZW50cy1lbGVtZW50LXJvbGVzLmh0bWwgWyBQYXNzIF0KK2FjY2Vzc2liaWxpdHkv
bm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0
eS92aWRlby1lbGVtZW50LXVybC1hdHRyaWJ1dGUuaHRtbCBbIFBhc3MgXQogYWNjZXNzaWJpbGl0
eS92aXNpYmxlLWNoYXJhY3Rlci1yYW5nZS1iYXNpYy5odG1sIFsgUGFzcyBdCiBhY2Nlc3NpYmls
aXR5L3Zpc2libGUtY2hhcmFjdGVyLXJhbmdlLWhlaWdodC1jaGFuZ2VzLmh0bWwgWyBQYXNzIF0K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy9hY2Nlc3NpYmlsaXR5L25vZGUt
b25seS1vYmplY3QtZWxlbWVudC1yZWN0LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRm
b3JtL2lvcy9hY2Nlc3NpYmlsaXR5L25vZGUtb25seS1vYmplY3QtZWxlbWVudC1yZWN0LWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5jNDgxZWYyMjIzOWRiM2ZjNTc5ZWM0ZjBlYjA5MDVkYzU2ZDI2
MDMwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zL2FjY2Vzc2li
aWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQudHh0CkBAIC0wLDAg
KzEsMTIgQEAKK1RoaXMgdGVzdCBlbnN1cmVzIHdlIGNhbGN1bGF0ZSB0aGUgZnJhbWUgY29ycmVj
dGx5IGZvciBvYmplY3RzIHRoYXQgZG9uJ3QgaGF2ZSBhIHJlbmRlcmVyIChsaWtlIGRpc3BsYXk6
IGNvbnRlbnRzIGVsZW1lbnRzKS4KKworI3Rvb2xiYXI6IHt3aWR0aDogNzg0LCBoZWlnaHQ6IDI0
fQorI2dyb3VwOiB7d2lkdGg6IDQ0LCBoZWlnaHQ6IDIwfQorI2J1dHRvbjoge3dpZHRoOiA3ODQs
IGhlaWdodDogMTB9CisKK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBD
T01QTEVURQorRm9vCitGb28KK0ZvbwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0v
d2luL2FjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9iamVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQu
dHh0IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vd2luL2FjY2Vzc2liaWxpdHkvbm9kZS1vbmx5LW9i
amVjdC1lbGVtZW50LXJlY3QtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjc5MGExY2EyYjkyNDRh
YjFhMmM4OTRlZDcxMjllZDI3MjY1NjMzM2QKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS93aW4vYWNjZXNzaWJpbGl0eS9ub2RlLW9ubHktb2JqZWN0LWVsZW1lbnQtcmVj
dC1leHBlY3RlZC50eHQKQEAgLTAsMCArMSwxMiBAQAorVGhpcyB0ZXN0IGVuc3VyZXMgd2UgY2Fs
Y3VsYXRlIHRoZSBmcmFtZSBjb3JyZWN0bHkgZm9yIG9iamVjdHMgdGhhdCBkb24ndCBoYXZlIGEg
cmVuZGVyZXIgKGxpa2UgZGlzcGxheTogY29udGVudHMgZWxlbWVudHMpLgorCisjdG9vbGJhcjog
e3dpZHRoOiA3ODQsIGhlaWdodDogMjV9CisjZ3JvdXA6IHt3aWR0aDogMzgsIGhlaWdodDogMjF9
CisjYnV0dG9uOiB7d2lkdGg6IDc4NCwgaGVpZ2h0OiAxMH0KKworUEFTUyBzdWNjZXNzZnVsbHlQ
YXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitGb28KK0ZvbworRm9vCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>