<?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>234018</bug_id>
          
          <creation_ts>2021-12-08 10:25:36 -0800</creation_ts>
          <short_desc>nullptr deref in ComputeFloatOffsetForLineLayoutAdapter&lt;FloatingObject::FloatLeft&gt;::updateOffsetIfNeeded</short_desc>
          <delta_ts>2022-01-27 14:56:48 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>REOPENED</bug_status>
          <resolution></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="Gabriel Nava Marino">gnavamarino</reporter>
          <assigned_to name="Gabriel Nava Marino">gnavamarino</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gavin.p</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1821615</commentid>
    <comment_count>0</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-08 10:25:36 -0800</bug_when>
    <thetext>We are accessing a renderer for a floatingObject that has already been destroyed because the floatingObject was never cleaned up from the current block.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821627</commentid>
    <comment_count>1</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-08 10:47:11 -0800</bug_when>
    <thetext>RenderTree structure from attached test case with proposed patch. Notice the two floating objects:
Content-Type: text/plain
layer at (0,0) size 816x585
  RenderView at (0,0) size 800x585
layer at (0,0) size 816x16
  RenderBlock (floating) {HTML} at (0,0) size 816x16
    RenderBlock (anonymous) at (0,0) size 816x0
      RenderInline {SPAN} at (0,0) size 0x0
      RenderBody {BODY} at (8,8) size 800x0
        RenderBlock {DIV} at (0,0) size 800x0
        RenderBlock (anonymous) at (0,0) size 800x0
          RenderInline {SPAN} at (0,0) size 0x0
          RenderBlock (floating) {HTML} at (0,0) size 800x0
            RenderInline {Q} at (0,0) size 14x18
              RenderInline (generated) at (0,0) size 8x18
                RenderQuote at (0,0) size 8x18
                  RenderText at (150,0) size 8x18
                    text run at (150,0) width 8: &quot;\&quot;&quot;
              RenderInline (generated) at (0,0) size 7x18
                RenderQuote at (0,0) size 7x18
                  RenderText at (157,0) size 7x18
                    text run at (157,0) width 7: &quot;\&quot;&quot;
            RenderTextControl {INPUT} at (2,2) size 147x19 [bgcolor=#FFFFFF] [border: (2px inset #000000)]
    RenderBlock {DIV} at (0,0) size 816x0
layer at (13,13) size 141x13
  RenderBlock {DIV} at (3,3) size 141x13
layer at (8,31) size 800x400
  RenderVideo {VIDEO} at (0,23) size 800x400
#EOF
#EOF
#EOF</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821662</commentid>
    <comment_count>2</comment_count>
      <attachid>446394</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-08 11:25:36 -0800</bug_when>
    <thetext>Created attachment 446394
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1821667</commentid>
    <comment_count>3</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-08 11:34:27 -0800</bug_when>
    <thetext>&lt;rdar://problem/85503666&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822754</commentid>
    <comment_count>4</comment_count>
      <attachid>446394</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-12-10 09:25:45 -0800</bug_when>
    <thetext>Comment on attachment 446394
Patch

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

&gt; Source/WebCore/ChangeLog:17
&gt; +        or be able to shrink to avoid floats. However, we can have a scenario where the current child block
&gt; +        doesnât have a float, but one of its descendants does. In this case, although we should continue to

and we don&apos;t propagate this &quot;contains float&quot; state to the ancestors when we insert the float to a descendant block? I wonder how this works during layout when we need to discover these floats.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822769</commentid>
    <comment_count>5</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-10 09:55:20 -0800</bug_when>
    <thetext>(In reply to zalan from comment #4)
&gt; Comment on attachment 446394 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=446394&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:17
&gt; &gt; +        or be able to shrink to avoid floats. However, we can have a scenario where the current child block
&gt; &gt; +        doesnât have a float, but one of its descendants does. In this case, although we should continue to
&gt; 
&gt; and we don&apos;t propagate this &quot;contains float&quot; state to the ancestors when we
&gt; insert the float to a descendant block? I wonder how this works during
&gt; layout when we need to discover these floats.

Currently this &quot;contains float&quot; state is only a function of the block&apos;s `m_floatingObjects` set:
```
bool containsFloats() const override { return m_floatingObjects &amp;&amp; !m_floatingObjects-&gt;set().isEmpty(); }
```

and

```
bool RenderBlockFlow::containsFloat(RenderBox&amp; renderer) const
{
    return m_floatingObjects &amp;&amp; m_floatingObjects-&gt;set().contains&lt;FloatingObjectHashTranslator&gt;(renderer);
}
```

so only the object that contains this float will have this state. There is no analogous flag.

It is not a flag.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822846</commentid>
    <comment_count>6</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-12-10 11:38:56 -0800</bug_when>
    <thetext>Committed r286866 (245097@main): &lt;https://commits.webkit.org/245097@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 446394.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1822866</commentid>
    <comment_count>7</comment_count>
      <attachid>446394</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-10 11:58:42 -0800</bug_when>
    <thetext>Comment on attachment 446394
Patch

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

&gt; Source/WebCore/rendering/RenderBlockFlow.cpp:2121
&gt; +    bool contains = m_floatingObjects &amp;&amp; m_floatingObjects-&gt;set().contains&lt;FloatingObjectHashTranslator&gt;(renderer);
&gt; +    for (auto&amp; block : childrenOfType&lt;RenderBlock&gt;(*this)) {
&gt; +        if (!is&lt;RenderBlockFlow&gt;(block))
&gt; +            continue;
&gt; +        auto&amp; blockFlow = downcast&lt;RenderBlockFlow&gt;(block);
&gt; +        contains |= blockFlow.subtreeContainsFloat(renderer);
&gt; +    }
&gt; +    return contains;

Since this boolean only gets more true over time, we should not use a local variable. We should just return true when we find something, and then return false at the end of the function.

&gt; Source/WebCore/rendering/RenderBlockFlow.cpp:2133
&gt; +    bool contains = m_floatingObjects &amp;&amp; !m_floatingObjects-&gt;set().isEmpty();
&gt; +    for (auto&amp; block : childrenOfType&lt;RenderBlock&gt;(*this)) {
&gt; +        if (!is&lt;RenderBlockFlow&gt;(block))
&gt; +            continue;
&gt; +        auto&amp; blockFlow = downcast&lt;RenderBlockFlow&gt;(block);
&gt; +        contains |= blockFlow.subtreeContainsFloats();
&gt; +    }
&gt; +    return contains;

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823076</commentid>
    <comment_count>8</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-10 16:22:24 -0800</bug_when>
    <thetext>Reopening to attach new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823077</commentid>
    <comment_count>9</comment_count>
      <attachid>446840</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-10 16:22:27 -0800</bug_when>
    <thetext>Created attachment 446840
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823078</commentid>
    <comment_count>10</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-10 16:23:15 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #7)
&gt; Comment on attachment 446394 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=446394&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlockFlow.cpp:2121
&gt; &gt; +    bool contains = m_floatingObjects &amp;&amp; m_floatingObjects-&gt;set().contains&lt;FloatingObjectHashTranslator&gt;(renderer);
&gt; &gt; +    for (auto&amp; block : childrenOfType&lt;RenderBlock&gt;(*this)) {
&gt; &gt; +        if (!is&lt;RenderBlockFlow&gt;(block))
&gt; &gt; +            continue;
&gt; &gt; +        auto&amp; blockFlow = downcast&lt;RenderBlockFlow&gt;(block);
&gt; &gt; +        contains |= blockFlow.subtreeContainsFloat(renderer);
&gt; &gt; +    }
&gt; &gt; +    return contains;
&gt; 
&gt; Since this boolean only gets more true over time, we should not use a local
&gt; variable. We should just return true when we find something, and then return
&gt; false at the end of the function.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlockFlow.cpp:2133
&gt; &gt; +    bool contains = m_floatingObjects &amp;&amp; !m_floatingObjects-&gt;set().isEmpty();
&gt; &gt; +    for (auto&amp; block : childrenOfType&lt;RenderBlock&gt;(*this)) {
&gt; &gt; +        if (!is&lt;RenderBlockFlow&gt;(block))
&gt; &gt; +            continue;
&gt; &gt; +        auto&amp; blockFlow = downcast&lt;RenderBlockFlow&gt;(block);
&gt; &gt; +        contains |= blockFlow.subtreeContainsFloats();
&gt; &gt; +    }
&gt; &gt; +    return contains;
&gt; 
&gt; Ditto.

Thank you for the suggestion Darin! I have updated the patch so that we have this early return.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823090</commentid>
    <comment_count>11</comment_count>
      <attachid>446840</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-10 16:36:34 -0800</bug_when>
    <thetext>Comment on attachment 446840
Patch

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

&gt; Source/WebCore/rendering/RenderBlockFlow.cpp:2121
&gt; +        return blockFlow.subtreeContainsFloat(renderer);

This is wrong. Should be:

    if (blockFlow.subtreeContainsFloat(renderer))
        return true;

One other thought: we could probably do a version of this algorithm that walks the tree without using recursion.

&gt; Source/WebCore/rendering/RenderBlockFlow.cpp:2136
&gt; +        return blockFlow.subtreeContainsFloats();

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823101</commentid>
    <comment_count>12</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-10 16:49:05 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #11)
&gt; Comment on attachment 446840 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=446840&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlockFlow.cpp:2121
&gt; &gt; +        return blockFlow.subtreeContainsFloat(renderer);
&gt; 
&gt; This is wrong. Should be:

Thank you for pointing this out. I now see the issue, we would be returning early on the first child, without checking the other siblings.

&gt; 
&gt;     if (blockFlow.subtreeContainsFloat(renderer))
&gt;         return true;
&gt; 
&gt; One other thought: we could probably do a version of this algorithm that
&gt; walks the tree without using recursion.

In WebKit, is there a preference for using one vs. the other?

&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlockFlow.cpp:2136
&gt; &gt; +        return blockFlow.subtreeContainsFloats();
&gt; 
&gt; Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823154</commentid>
    <comment_count>13</comment_count>
      <attachid>446856</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-10 20:07:33 -0800</bug_when>
    <thetext>Created attachment 446856
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823742</commentid>
    <comment_count>14</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-13 14:07:55 -0800</bug_when>
    <thetext>There are ios-wk2 failures, but they appear unrelated to the changes in this bug and tracked in Bug 234181.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1823768</commentid>
    <comment_count>15</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-13 14:32:25 -0800</bug_when>
    <thetext>(In reply to Gabriel Nava Marino from comment #12)
&gt; (In reply to Darin Adler from comment #11)
&gt; &gt; One other thought: we could probably do a version of this algorithm that
&gt; &gt; walks the tree without using recursion.
&gt; 
&gt; In WebKit, is there a preference for using one vs. the other?

I think we prefer non-recursive.

Our tree structure is designed so we can walk it without using a stack, and write non-recursive versions of algorithms that involve walking the entire tree, and I think we want to take advantage of that when possible for better efficiency.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824026</commentid>
    <comment_count>16</comment_count>
    <who name="Gavin">gavin.p</who>
    <bug_when>2021-12-14 09:25:04 -0800</bug_when>
    <thetext>*** Bug 233554 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824169</commentid>
    <comment_count>17</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-14 16:16:46 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #15)
&gt; (In reply to Gabriel Nava Marino from comment #12)
&gt; &gt; (In reply to Darin Adler from comment #11)
&gt; &gt; &gt; One other thought: we could probably do a version of this algorithm that
&gt; &gt; &gt; walks the tree without using recursion.
&gt; &gt; 
&gt; &gt; In WebKit, is there a preference for using one vs. the other?
&gt; 
&gt; I think we prefer non-recursive.
&gt; 
&gt; Our tree structure is designed so we can walk it without using a stack, and
&gt; write non-recursive versions of algorithms that involve walking the entire
&gt; tree, and I think we want to take advantage of that when possible for better
&gt; efficiency.

I have attempted the non-recursive route using an iterator, but unfortunately the render descendant iterator does not currently work with const objects. That issue is tracked in bug 234325. I am moving these changes to commit-queue? for now, and filing a separate bug to bring non-recursion via the iterator blocked on 234325.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824193</commentid>
    <comment_count>18</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2021-12-14 17:38:33 -0800</bug_when>
    <thetext>(In reply to Gabriel Nava Marino from comment #17)
&gt; the render descendant iterator does not currently work with
&gt; const objects

I’d suggest using const_cast to work around that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824422</commentid>
    <comment_count>19</comment_count>
      <attachid>447254</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-15 10:28:39 -0800</bug_when>
    <thetext>Created attachment 447254
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824423</commentid>
    <comment_count>20</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-15 10:30:25 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #18)
&gt; (In reply to Gabriel Nava Marino from comment #17)
&gt; &gt; the render descendant iterator does not currently work with
&gt; &gt; const objects
&gt; 
&gt; I’d suggest using const_cast to work around that.

Thank you for the recommendation! I have updated the patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1824533</commentid>
    <comment_count>21</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2021-12-15 13:48:53 -0800</bug_when>
    <thetext>*** Bug 234326 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828983</commentid>
    <comment_count>22</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-01-07 10:52:33 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #18)
&gt; (In reply to Gabriel Nava Marino from comment #17)
&gt; &gt; the render descendant iterator does not currently work with
&gt; &gt; const objects
&gt; 
&gt; I’d suggest using const_cast to work around that.

This approach worked and seems to have made EWS happy, so I have updated the cq flag to cq?.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1828991</commentid>
    <comment_count>23</comment_count>
      <attachid>447254</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-07 10:58:59 -0800</bug_when>
    <thetext>Comment on attachment 447254
Patch

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

This is great. Fine to land as is.

To refine further, we can take one more step by adding inclusiveDescendantsOfType to RenderDescendantIterator.h, which we already have in TypedElementDecendantIterator.h. If we do that, we can remove the check at the top of the function, and have only the loop.

&gt; Source/WebCore/rendering/RenderBlockFlow.cpp:2122
&gt;          if (!is&lt;RenderBlockFlow&gt;(block))
&gt;              continue;
&gt;          auto&amp; blockFlow = downcast&lt;RenderBlockFlow&gt;(block);
&gt; -        contains |= blockFlow.subtreeContainsFloat(renderer);
&gt; +        if (blockFlow.containsFloat(renderer))
&gt; +            return true;

To refine further we *could* collapse these 5 lines into two:

    if (is&lt;RenderBlockFlow&gt;(block) &amp;&amp; downcast&lt;RenderBlockFlow&gt;(block).containsFloat(renderer))
        return true;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829008</commentid>
    <comment_count>24</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2022-01-07 11:36:10 -0800</bug_when>
    <thetext>Committed r287771 (245831@main): &lt;https://commits.webkit.org/245831@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 447254.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1829508</commentid>
    <comment_count>25</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-01-10 09:42:47 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #23)
&gt; Comment on attachment 447254 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=447254&amp;action=review
&gt; 
&gt; This is great. Fine to land as is.
&gt; 
&gt; To refine further, we can take one more step by adding
&gt; inclusiveDescendantsOfType to RenderDescendantIterator.h, which we already
&gt; have in TypedElementDecendantIterator.h. If we do that, we can remove the
&gt; check at the top of the function, and have only the loop.
&gt; 
&gt; &gt; Source/WebCore/rendering/RenderBlockFlow.cpp:2122
&gt; &gt;          if (!is&lt;RenderBlockFlow&gt;(block))
&gt; &gt;              continue;
&gt; &gt;          auto&amp; blockFlow = downcast&lt;RenderBlockFlow&gt;(block);
&gt; &gt; -        contains |= blockFlow.subtreeContainsFloat(renderer);
&gt; &gt; +        if (blockFlow.containsFloat(renderer))
&gt; &gt; +            return true;
&gt; 
&gt; To refine further we *could* collapse these 5 lines into two:
&gt; 
&gt;     if (is&lt;RenderBlockFlow&gt;(block) &amp;&amp;
&gt; downcast&lt;RenderBlockFlow&gt;(block).containsFloat(renderer))
&gt;         return true;

Thank you for the feedback. I will update these functions per the refinement recommendations.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830738</commentid>
    <comment_count>26</comment_count>
      <attachid>449116</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-01-13 15:09:32 -0800</bug_when>
    <thetext>Created attachment 449116
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830740</commentid>
    <comment_count>27</comment_count>
      <attachid>449117</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-01-13 15:11:44 -0800</bug_when>
    <thetext>Created attachment 449117
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1830760</commentid>
    <comment_count>28</comment_count>
      <attachid>449117</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-13 15:53:46 -0800</bug_when>
    <thetext>Comment on attachment 449117
Patch

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

&gt; Source/WebCore/ChangeLog:9
&gt; +        Implement InclusiveRenderDescendantIteratorAdapter and use inclusiveDescendantsOfType in
&gt; +        RenderBlockFlow::subtreeContainsFloat and RenderBlockFlow::subtreeContainsFloats.

I suspect there is a way to implement this sharing more code with the non-inclusive case, since non-inclusive is just like inclusive, but just skipping the thing itself, but it’s more important how we *use* inclusiveDescendantsOfType than how smooth the implementation is. That can always be refined later.

I would suggest, though, that we address the const-ness issue eventually. Maybe even at the same time.

Ideally the descendantsOfType on a const reference would iterate const references, and non-const would iterate non-const. Ideally without duplicating all the code twice, so maybe using some const_cast in the implementation.

&gt; Source/WebCore/rendering/RenderBlockFlow.cpp:1957
&gt; +    for (auto&amp; block : inclusiveDescendantsOfType&lt;RenderBlock&gt;(const_cast&lt;RenderBlockFlow&amp;&gt;(*this))) {
&gt; +        if (is&lt;RenderBlockFlow&gt;(block) &amp;&amp; downcast&lt;RenderBlockFlow&gt;(block).containsFloat(renderer))
&gt;              return true;
&gt;      }

Hmm, can we write this?

    for (auto&amp; block : inclusiveDescendantsOfType&lt;RenderBlockFlow&gt;(*this)) {
        if (block.containsFloat(renderer))
            return true;
    }

That’s the whole point of having the xxxOfType feature (and assumes the const).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834588</commentid>
    <comment_count>29</comment_count>
      <attachid>449117</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-01-27 10:24:57 -0800</bug_when>
    <thetext>Comment on attachment 449117
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:9
&gt;&gt; +        RenderBlockFlow::subtreeContainsFloat and RenderBlockFlow::subtreeContainsFloats.
&gt; 
&gt; I suspect there is a way to implement this sharing more code with the non-inclusive case, since non-inclusive is just like inclusive, but just skipping the thing itself, but it’s more important how we *use* inclusiveDescendantsOfType than how smooth the implementation is. That can always be refined later.
&gt; 
&gt; I would suggest, though, that we address the const-ness issue eventually. Maybe even at the same time.
&gt; 
&gt; Ideally the descendantsOfType on a const reference would iterate const references, and non-const would iterate non-const. Ideally without duplicating all the code twice, so maybe using some const_cast in the implementation.

Thank you very much for the suggestion Darin. I have some ideas on how I might tackle the implementation of the inclusive and non-inclusive cases as well as how one might address the const-ness issue using the recommended tips.

Given the scope of the changes required, I would prefer to tackle this separately in https://bugs.webkit.org/show_bug.cgi?id=235680, as I expect it will require updating areas of code currently using const_cast with descendantsOfType.

&gt;&gt; Source/WebCore/rendering/RenderBlockFlow.cpp:1957
&gt;&gt;      }
&gt; 
&gt; Hmm, can we write this?
&gt; 
&gt;     for (auto&amp; block : inclusiveDescendantsOfType&lt;RenderBlockFlow&gt;(*this)) {
&gt;         if (block.containsFloat(renderer))
&gt;             return true;
&gt;     }
&gt; 
&gt; That’s the whole point of having the xxxOfType feature (and assumes the const).

Thank you for pointing this out! I will update the patch.

However, please see my other comment. I would prefer to deal with the const issue separately in another patch for a cleaner change-set.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834589</commentid>
    <comment_count>30</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-27 10:26:22 -0800</bug_when>
    <thetext>Sounds great.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834591</commentid>
    <comment_count>31</comment_count>
      <attachid>450152</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-01-27 10:27:28 -0800</bug_when>
    <thetext>Created attachment 450152
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834592</commentid>
    <comment_count>32</comment_count>
      <attachid>449117</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-27 10:28:00 -0800</bug_when>
    <thetext>Comment on attachment 449117
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderBlockFlow.cpp:1957
&gt;&gt;&gt;      }
&gt;&gt; 
&gt;&gt; Hmm, can we write this?
&gt;&gt; 
&gt;&gt;     for (auto&amp; block : inclusiveDescendantsOfType&lt;RenderBlockFlow&gt;(*this)) {
&gt;&gt;         if (block.containsFloat(renderer))
&gt;&gt;             return true;
&gt;&gt;     }
&gt;&gt; 
&gt;&gt; That’s the whole point of having the xxxOfType feature (and assumes the const).
&gt; 
&gt; Thank you for pointing this out! I will update the patch.
&gt; 
&gt; However, please see my other comment. I would prefer to deal with the const issue separately in another patch for a cleaner change-set.

Yes, eventually we’ll deal with const. But built-in type checking is available now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834597</commentid>
    <comment_count>33</comment_count>
      <attachid>450152</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-27 10:30:49 -0800</bug_when>
    <thetext>Comment on attachment 450152
Patch

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        nullptr deref in ComputeFloatOffsetForLineLayoutAdapter&lt;FloatingObject::FloatLeft&gt;::updateOffsetIfNeeded

This doesn’t seem the right title any more. At this point, this patch is a refactor so the title would be:

    Simplify code by using inclusiveDescendantsOfType

The reason I suggested fixing the const, is that it’s a similar refactoring, but fine to do this one step at a time.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834598</commentid>
    <comment_count>34</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2022-01-27 10:31:57 -0800</bug_when>
    <thetext>Doing this clean-up and refactoring all on this original bug isn’t the ideal way to use bugs.webkit.org; I would have used a new bug. But let’s just get the change in.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834600</commentid>
    <comment_count>35</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-01-27 10:34:34 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #34)
&gt; Doing this clean-up and refactoring all on this original bug isn’t the ideal
&gt; way to use bugs.webkit.org; I would have used a new bug. But let’s just get
&gt; the change in.

I will be sure to create a new bug for these type of clean-up and refactoring-related changes in subsequent patches.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834613</commentid>
    <comment_count>36</comment_count>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-01-27 10:41:37 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #33)
&gt; Comment on attachment 450152 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=450152&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        nullptr deref in ComputeFloatOffsetForLineLayoutAdapter&lt;FloatingObject::FloatLeft&gt;::updateOffsetIfNeeded
&gt; 
&gt; This doesn’t seem the right title any more. At this point, this patch is a
&gt; refactor so the title would be:
&gt; 
&gt;     Simplify code by using inclusiveDescendantsOfType
&gt; 

Thank you for the suggestion. I will update the title. 

&gt; The reason I suggested fixing the const, is that it’s a similar refactoring,
&gt; but fine to do this one step at a time.

Thank you, I see. I was not sure about the scope of the required changes to fix the const issue outside of RenderBlockFlow, and so that is why I originally created the other bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1834614</commentid>
    <comment_count>37</comment_count>
      <attachid>450157</attachid>
    <who name="Gabriel Nava Marino">gnavamarino</who>
    <bug_when>2022-01-27 10:42:57 -0800</bug_when>
    <thetext>Created attachment 450157
Patch</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446394</attachid>
            <date>2021-12-08 11:25:36 -0800</date>
            <delta_ts>2021-12-10 16:22:20 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234018-20211208112535.patch</filename>
            <type>text/plain</type>
            <size>7222</size>
            <attacher name="Gabriel Nava Marino">gnavamarino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2MzA1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjAzOTM2MGJiNzEyNTU5
NDgwYTk3OWIxNWUzM2RkZjZhZWY4ZDk4YS4uMmVhYmEyNTcwMWMxM2JhNmQ2YmZkOWM3NGZjMDRk
ODg0YzI3YzA5YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDIxLTEyLTA4ICBHYWJy
aWVsIE5hdmEgTWFyaW5vICA8Z25hdmFtYXJpbm9AYXBwbGUuY29tPgorCisgICAgICAgIG51bGxw
dHIgZGVyZWYgaW4gQ29tcHV0ZUZsb2F0T2Zmc2V0Rm9yTGluZUxheW91dEFkYXB0ZXI8RmxvYXRp
bmdPYmplY3Q6OkZsb2F0TGVmdD46OnVwZGF0ZU9mZnNldElmTmVlZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUZXN0OiBmYXN0L3JlbmRlcmluZy9m
bG9hdGluZy1vYmplY3QtcmVuZGVyZXItY3Jhc2guaHRtbAorCisgICAgICAgIFdoZW4gZGVzdHJv
eWluZyBhIGdpdmVuIHJlbmRlcmVyLCB3ZSBmaXJzdCByZW1vdmUgZmxvYXRzIGFuZCBvdXQtb2Yt
ZmxvdyBwb3NpdGlvbmVkIG9iamVjdHMKKyAgICAgICAgZnJvbSB0aGVpciBjb250YWluaW5nIGJs
b2NrIGJlZm9yZSBkZXRhY2hpbmcgdGhlIHJlbmRlcmVyIGZyb20gdGhlIHRyZWUuIFdlIGRvIHRo
aXMgYnkgb2J0YWluaW5nCisgICAgICAgIHRoZSByZW5kZXJlcuKAmXMgb3V0ZXJtb3N0IGJsb2Nr
IGNvbnRhaW5pbmcgYSBmbG9hdGluZyBvYmplY3QgYW5kIHJlY3Vyc2l2ZWx5IG1hcmtpbmcgYWxs
IHNpYmxpbmdzCisgICAgICAgIGFuZCBkZXNjZW5kYW50cyBmb3IgbGF5b3V0LgorCisgICAgICAg
IFRoZSBjcml0ZXJpYSBmb3IgY29udGludWluZyBkb3duIHRoZSBsaXN0IG9mIGNoaWxkcmVuIHJl
cXVpcmUgdGhlIGN1cnJlbnQgYmxvY2sgdG8gY29udGFpbiBmbG9hdHMKKyAgICAgICAgb3IgYmUg
YWJsZSB0byBzaHJpbmsgdG8gYXZvaWQgZmxvYXRzLiBIb3dldmVyLCB3ZSBjYW4gaGF2ZSBhIHNj
ZW5hcmlvIHdoZXJlIHRoZSBjdXJyZW50IGNoaWxkIGJsb2NrCisgICAgICAgIGRvZXNu4oCZdCBo
YXZlIGEgZmxvYXQsIGJ1dCBvbmUgb2YgaXRzIGRlc2NlbmRhbnRzIGRvZXMuIEluIHRoaXMgY2Fz
ZSwgYWx0aG91Z2ggd2Ugc2hvdWxkIGNvbnRpbnVlIHRvCisgICAgICAgIHRoYXQgZGVzY2VuZGFu
dCBhbmQgcmVtb3ZlIHRoZSBmbG9hdCwgd2UgZG8gbm90LgorCisgICAgICAgIFRoZSBwcm9wb3Nh
bCBpbiB0aGlzIHBhdGNoIHdpbGwgaW5zdGVhZCBjaGVjayB3aGV0aGVyIHRoZSBjaGlsZCBibG9j
ayBjb250YWlucyBhIGZsb2F0LCBvciBhbnkgb2YgaXRzIGRlc2NlbmRhbnRzIGRvLgorICAgICAg
ICBJZiBzbyB3ZSBzaG91bGQgY29udGludWUgdHJhdmVyc2luZyB0b3dhcmRzIHRoYXQgZGVzY2Vu
ZGFudC4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAg
ICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpzdWJ0cmVlQ29udGFpbnNGbG9hdCBjb25zdCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6OnN1YnRyZWVDb250YWluc0Zsb2F0
cyBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJCbG9ja0Zsb3c6Om1hcmtBbGxEZXNj
ZW5kYW50c1dpdGhGbG9hdHNGb3JMYXlvdXQpOgorICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuaDoKKwogMjAyMS0xMS0zMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5j
b20+CiAKICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJ2ZmMgdG8gTWVkaWFQbGF5ZXJQcml2YXRl
TWVkaWFTb3VyY2VBVkZPYmpDCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyQmxvY2tGbG93LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9j
a0Zsb3cuY3BwCmluZGV4IDhiYzM0YmMxNTUzZGI1OGRiMzkzMjMwOTVhNzk2NWU0ZjE5OTcxZWQu
LmU3ZGYzZDAzY2E1OTk2ZTRjODM1ZjdjZWQyNzZiNDNiZWI4ZmE1NGIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCkBAIC0yMTA5LDYgKzIxMDksMzAg
QEAgYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OmNvbnRhaW5zRmxvYXQoUmVuZGVyQm94JiByZW5kZXJl
cikgY29uc3QKICAgICByZXR1cm4gbV9mbG9hdGluZ09iamVjdHMgJiYgbV9mbG9hdGluZ09iamVj
dHMtPnNldCgpLmNvbnRhaW5zPEZsb2F0aW5nT2JqZWN0SGFzaFRyYW5zbGF0b3I+KHJlbmRlcmVy
KTsKIH0KIAorYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OnN1YnRyZWVDb250YWluc0Zsb2F0KFJlbmRl
ckJveCYgcmVuZGVyZXIpIGNvbnN0Cit7CisgICAgYm9vbCBjb250YWlucyA9IG1fZmxvYXRpbmdP
YmplY3RzICYmIG1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKS5jb250YWluczxGbG9hdGluZ09iamVj
dEhhc2hUcmFuc2xhdG9yPihyZW5kZXJlcik7CisgICAgZm9yIChhdXRvJiBibG9jayA6IGNoaWxk
cmVuT2ZUeXBlPFJlbmRlckJsb2NrPigqdGhpcykpIHsKKyAgICAgICAgaWYgKCFpczxSZW5kZXJC
bG9ja0Zsb3c+KGJsb2NrKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBhdXRvJiBi
bG9ja0Zsb3cgPSBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKTsKKyAgICAgICAgY29u
dGFpbnMgfD0gYmxvY2tGbG93LnN1YnRyZWVDb250YWluc0Zsb2F0KHJlbmRlcmVyKTsKKyAgICB9
CisgICAgcmV0dXJuIGNvbnRhaW5zOworfQorCitib29sIFJlbmRlckJsb2NrRmxvdzo6c3VidHJl
ZUNvbnRhaW5zRmxvYXRzKCkgY29uc3QKK3sKKyAgICBib29sIGNvbnRhaW5zID0gbV9mbG9hdGlu
Z09iamVjdHMgJiYgIW1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKS5pc0VtcHR5KCk7CisgICAgZm9y
IChhdXRvJiBibG9jayA6IGNoaWxkcmVuT2ZUeXBlPFJlbmRlckJsb2NrPigqdGhpcykpIHsKKyAg
ICAgICAgaWYgKCFpczxSZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKSkKKyAgICAgICAgICAgIGNvbnRp
bnVlOworICAgICAgICBhdXRvJiBibG9ja0Zsb3cgPSBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+
KGJsb2NrKTsKKyAgICAgICAgY29udGFpbnMgfD0gYmxvY2tGbG93LnN1YnRyZWVDb250YWluc0Zs
b2F0cygpOworICAgIH0KKyAgICByZXR1cm4gY29udGFpbnM7Cit9CisKIHZvaWQgUmVuZGVyQmxv
Y2tGbG93OjpzdHlsZURpZENoYW5nZShTdHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVy
U3R5bGUqIG9sZFN0eWxlKQogewogICAgIFJlbmRlckJsb2NrOjpzdHlsZURpZENoYW5nZShkaWZm
LCBvbGRTdHlsZSk7CkBAIC0yODc4LDcgKzI5MDIsNyBAQCB2b2lkIFJlbmRlckJsb2NrRmxvdzo6
bWFya0FsbERlc2NlbmRhbnRzV2l0aEZsb2F0c0ZvckxheW91dChSZW5kZXJCb3gqIGZsb2F0VG9S
ZQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIH0KICAgICAgICAgYXV0byYgYmxvY2tG
bG93ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihibG9jayk7Ci0gICAgICAgIGlmICgoZmxv
YXRUb1JlbW92ZSA/IGJsb2NrRmxvdy5jb250YWluc0Zsb2F0KCpmbG9hdFRvUmVtb3ZlKSA6IGJs
b2NrRmxvdy5jb250YWluc0Zsb2F0cygpKSB8fCBibG9ja0Zsb3cuc2hyaW5rVG9Bdm9pZEZsb2F0
cygpKQorICAgICAgICBpZiAoKGZsb2F0VG9SZW1vdmUgPyBibG9ja0Zsb3cuc3VidHJlZUNvbnRh
aW5zRmxvYXQoKmZsb2F0VG9SZW1vdmUpIDogYmxvY2tGbG93LnN1YnRyZWVDb250YWluc0Zsb2F0
cygpKSB8fCBibG9ja0Zsb3cuc2hyaW5rVG9Bdm9pZEZsb2F0cygpKQogICAgICAgICAgICAgYmxv
Y2tGbG93Lm1hcmtBbGxEZXNjZW5kYW50c1dpdGhGbG9hdHNGb3JMYXlvdXQoZmxvYXRUb1JlbW92
ZSwgaW5MYXlvdXQpOwogICAgIH0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuaAppbmRleCA2NTYyYWMwMmFjNzBjNzRlN2I5MGRjZDE0NzljZGE0ZTc3ZmVlYTdh
Li4xN2JjN2JkNWNkOWEzMjdhNTJkM2ZhNTc0YzExOTA1YmUxOTJhZDZmIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmgKKysrIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5oCkBAIC0yNzgsNiArMjc4LDggQEAgcHVi
bGljOgogCiAgICAgYm9vbCBjb250YWluc0Zsb2F0cygpIGNvbnN0IG92ZXJyaWRlIHsgcmV0dXJu
IG1fZmxvYXRpbmdPYmplY3RzICYmICFtX2Zsb2F0aW5nT2JqZWN0cy0+c2V0KCkuaXNFbXB0eSgp
OyB9CiAgICAgYm9vbCBjb250YWluc0Zsb2F0KFJlbmRlckJveCYpIGNvbnN0OworICAgIGJvb2wg
c3VidHJlZUNvbnRhaW5zRmxvYXRzKCkgY29uc3Q7CisgICAgYm9vbCBzdWJ0cmVlQ29udGFpbnNG
bG9hdChSZW5kZXJCb3gmKSBjb25zdDsKIAogICAgIHZvaWQgZGVsZXRlTGluZXMoKSBvdmVycmlk
ZTsKICAgICB2b2lkIGNvbXB1dGVPdmVyZmxvdyhMYXlvdXRVbml0IG9sZENsaWVudEFmdGVyRWRn
ZSwgYm9vbCByZWNvbXB1dGVGbG9hdHMgPSBmYWxzZSkgb3ZlcnJpZGU7CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggM2U2ZDJl
M2Y2YzVjNTcwOTQyNzRhNWIwZjAyZTBlOTAzZWVkODBkYy4uZDMwMWUwOTBjZjEzYjkzOTNhZjUz
OThmZDEwMjQyYmI1NGFkMTlhMiAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisr
KyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIxLTEyLTA4ICBH
YWJyaWVsIE5hdmEgTWFyaW5vICA8Z25hdmFtYXJpbm9AYXBwbGUuY29tPgorCisgICAgICAgIG51
bGxwdHIgZGVyZWYgaW4gQ29tcHV0ZUZsb2F0T2Zmc2V0Rm9yTGluZUxheW91dEFkYXB0ZXI8Rmxv
YXRpbmdPYmplY3Q6OkZsb2F0TGVmdD46OnVwZGF0ZU9mZnNldElmTmVlZGVkCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTgKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGZhc3QvcmVuZGVyaW5nL2Zs
b2F0aW5nLW9iamVjdC1yZW5kZXJlci1jcmFzaC1leHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAg
ICAqIGZhc3QvcmVuZGVyaW5nL2Zsb2F0aW5nLW9iamVjdC1yZW5kZXJlci1jcmFzaC5odG1sOiBB
ZGRlZC4KKwogMjAyMS0xMS0zMCAgWW91ZW5uIEZhYmxldCAgPHlvdWVubkBhcHBsZS5jb20+CiAK
ICAgICAgICAgQWRkIHN1cHBvcnQgZm9yIHJ2ZmMgdG8gTWVkaWFQbGF5ZXJQcml2YXRlTWVkaWFT
b3VyY2VBVkZPYmpDCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3JlbmRlcmluZy9mbG9h
dGluZy1vYmplY3QtcmVuZGVyZXItY3Jhc2gtZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFz
dC9yZW5kZXJpbmcvZmxvYXRpbmctb2JqZWN0LXJlbmRlcmVyLWNyYXNoLWV4cGVjdGVkLnR4dApu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi5jYzQ5OGRkY2VkMTFiYzBlZDJhMmJhMGIxZGZhZjM0MTAwY2JkYWM2Ci0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJpbmcvZmxvYXRpbmctb2JqZWN0
LXJlbmRlcmVyLWNyYXNoLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDMgQEAKK1BBU1MgaWYgdGhp
cyBkb2Vzbid0IGNyYXNoCisKKwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJp
bmcvZmxvYXRpbmctb2JqZWN0LXJlbmRlcmVyLWNyYXNoLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0
L3JlbmRlcmluZy9mbG9hdGluZy1vYmplY3QtcmVuZGVyZXItY3Jhc2guaHRtbApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
Li4xZDVlYmY3ZTNkZTcyNjVmOTcxNjdmZTdlZDk4YWMwYWJmMjAzMzFmCi0tLSAvZGV2L251bGwK
KysrIGIvTGF5b3V0VGVzdHMvZmFzdC9yZW5kZXJpbmcvZmxvYXRpbmctb2JqZWN0LXJlbmRlcmVy
LWNyYXNoLmh0bWwKQEAgLTAsMCArMSwyOSBAQAorPCFET0NUWVBFIGh0bWw+Cis8c3R5bGU+Cisg
IHZpZGVvIHsKKyAgICBibG9jay1zaXplOiA0MDBweDsKKyAgfQorICBpbnB1dCB7CisgICAgZmxv
YXQ6IGxlZnQ7CisgICAgY29udGVudDogdXJsKCk7CisgIH0KKzwvc3R5bGU+Cis8c2NyaXB0Pgor
ICBvbmxvYWQgPSAoKSA9PiB7CisgICAgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnByZXBlbmQo
ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKKyAgICBkb2N1bWVudC5ib2R5LmFwcGVu
ZChkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKSk7CisgICAgZG9jdW1lbnQuYm9keS5hcHBl
bmQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnc3BhbicpKTsKKyAgICBkb2N1bWVudC5kb2N1bWVu
dEVsZW1lbnQuYXBwZW5kKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2RpdicpKTsKKyAgICBsZXQg
aHRtbDIgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdodG1sJyk7CisgICAgaHRtbDIuc3R5bGUu
YmxvY2tTaXplID0gJzAnOworICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoaHRtbDIpOwor
ICAgIGh0bWwyLmFwcGVuZENoaWxkKGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3EnKSk7CisgICAg
aHRtbDIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnaW5wdXQnKSk7CisgICAg
aHRtbDIuYXBwZW5kQ2hpbGQoZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgndmlkZW8nKSk7CisgICAg
ZG9jdW1lbnQuYm9keS5vZmZzZXRUb3A7CisgICAgZG9jdW1lbnQuc3R5bGVTaGVldHNbMF0uaW5z
ZXJ0UnVsZShgaHRtbCwgYm9keSwgdmlkZW8geyBmbG9hdDogbGVmdDsgfWApOworICAgIGlmICh3
aW5kb3cudGVzdFJ1bm5lcikKKyAgICAgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgIH07
Cis8L3NjcmlwdD4KK1BBU1MgaWYgdGhpcyBkb2Vzbid0IGNyYXNoCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446840</attachid>
            <date>2021-12-10 16:22:27 -0800</date>
            <delta_ts>2021-12-10 20:07:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234018-20211210162226.patch</filename>
            <type>text/plain</type>
            <size>2683</size>
            <attacher name="Gabriel Nava Marino">gnavamarino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjEyYTk0YzRhOWEwM2Ey
ZTIxNzZhMTlmMjcyNjdkY2UwNGVlMzU5Mi4uZTM2NWVhNzJhZjZmNWNmNjlmNzlhNGNjZTFmN2Q3
NGJiYmNlNmM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEyLTEwICBHYWJy
aWVsIE5hdmEgTWFyaW5vICA8Z25hdmFtYXJpbm9AYXBwbGUuY29tPgorCisgICAgICAgIG51bGxw
dHIgZGVyZWYgaW4gQ29tcHV0ZUZsb2F0T2Zmc2V0Rm9yTGluZUxheW91dEFkYXB0ZXI8RmxvYXRp
bmdPYmplY3Q6OkZsb2F0TGVmdD46OnVwZGF0ZU9mZnNldElmTmVlZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTgjYWRkX2NvbW1lbnQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBSZW5kZXJC
bG9ja0Zsb3c6OnN1YnRyZWVDb250YWluc0Zsb2F0IGFuZCBSZW5kZXJCbG9ja0Zsb3c6OnN1YnRy
ZWVDb250YWluc0Zsb2F0cyB3ZSBub3cgd2lsbCByZXR1cm4gdHJ1ZQorICAgICAgICB3aGVuIHdl
IGZpbmQgc29tZXRoaW5nLCBhbmQgdGhlbiByZXR1cm4gZmFsc2UgYXQgdGhlIGVuZCBvZiB0aGUg
ZnVuY3Rpb24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpzdWJ0cmVlQ29udGFpbnNG
bG9hdHMgY29uc3QpOgorCiAyMDIxLTEyLTEwICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIEV4cG9zZSB0aGUgbWF4aW11bSBkZXZpY2UgZnJhbWUgcmF0ZSB0
byB0aGUgV2ViIEFuaW1hdGlvbnMgbW9kZWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHAKaW5kZXggZTdkZjNkMDNjYTU5OTZlNGM4MzVmN2NlZDI3NmI0M2Jl
YjhmYTU0Yi4uMDM3MzhmODU2MmJiY2JjNDUxZmI2ZWM2MDFhZjZlY2M0MzJlNmRjMCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTIxMTEsMjYg
KzIxMTEsMzIgQEAgYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OmNvbnRhaW5zRmxvYXQoUmVuZGVyQm94
JiByZW5kZXJlcikgY29uc3QKIAogYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OnN1YnRyZWVDb250YWlu
c0Zsb2F0KFJlbmRlckJveCYgcmVuZGVyZXIpIGNvbnN0CiB7Ci0gICAgYm9vbCBjb250YWlucyA9
IG1fZmxvYXRpbmdPYmplY3RzICYmIG1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKS5jb250YWluczxG
bG9hdGluZ09iamVjdEhhc2hUcmFuc2xhdG9yPihyZW5kZXJlcik7CisgICAgaWYgKGNvbnRhaW5z
RmxvYXQocmVuZGVyZXIpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGZvciAoYXV0byYg
YmxvY2sgOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJCbG9jaz4oKnRoaXMpKSB7CiAgICAgICAgIGlm
ICghaXM8UmVuZGVyQmxvY2tGbG93PihibG9jaykpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgYXV0byYgYmxvY2tGbG93ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihibG9jayk7
Ci0gICAgICAgIGNvbnRhaW5zIHw9IGJsb2NrRmxvdy5zdWJ0cmVlQ29udGFpbnNGbG9hdChyZW5k
ZXJlcik7CisgICAgICAgIHJldHVybiBibG9ja0Zsb3cuc3VidHJlZUNvbnRhaW5zRmxvYXQocmVu
ZGVyZXIpOwogICAgIH0KLSAgICByZXR1cm4gY29udGFpbnM7CisKKyAgICByZXR1cm4gZmFsc2U7
CiB9CiAKIGJvb2wgUmVuZGVyQmxvY2tGbG93OjpzdWJ0cmVlQ29udGFpbnNGbG9hdHMoKSBjb25z
dAogewotICAgIGJvb2wgY29udGFpbnMgPSBtX2Zsb2F0aW5nT2JqZWN0cyAmJiAhbV9mbG9hdGlu
Z09iamVjdHMtPnNldCgpLmlzRW1wdHkoKTsKKyAgICBpZiAoY29udGFpbnNGbG9hdHMoKSkKKyAg
ICAgICAgcmV0dXJuIHRydWU7CisKICAgICBmb3IgKGF1dG8mIGJsb2NrIDogY2hpbGRyZW5PZlR5
cGU8UmVuZGVyQmxvY2s+KCp0aGlzKSkgewogICAgICAgICBpZiAoIWlzPFJlbmRlckJsb2NrRmxv
dz4oYmxvY2spKQogICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgIGF1dG8mIGJsb2NrRmxv
dyA9IGRvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4oYmxvY2spOwotICAgICAgICBjb250YWlucyB8
PSBibG9ja0Zsb3cuc3VidHJlZUNvbnRhaW5zRmxvYXRzKCk7CisgICAgICAgIHJldHVybiBibG9j
a0Zsb3cuc3VidHJlZUNvbnRhaW5zRmxvYXRzKCk7CiAgICAgfQotICAgIHJldHVybiBjb250YWlu
czsKKworICAgIHJldHVybiBmYWxzZTsKIH0KIAogdm9pZCBSZW5kZXJCbG9ja0Zsb3c6OnN0eWxl
RGlkQ2hhbmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5
bGUpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>446856</attachid>
            <date>2021-12-10 20:07:33 -0800</date>
            <delta_ts>2021-12-15 10:28:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234018-20211210200732.patch</filename>
            <type>text/plain</type>
            <size>2729</size>
            <attacher name="Gabriel Nava Marino">gnavamarino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg2ODgyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjEyYTk0YzRhOWEwM2Ey
ZTIxNzZhMTlmMjcyNjdkY2UwNGVlMzU5Mi4uZTM2NWVhNzJhZjZmNWNmNjlmNzlhNGNjZTFmN2Q3
NGJiYmNlNmM5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE3IEBACisyMDIxLTEyLTEwICBHYWJy
aWVsIE5hdmEgTWFyaW5vICA8Z25hdmFtYXJpbm9AYXBwbGUuY29tPgorCisgICAgICAgIG51bGxw
dHIgZGVyZWYgaW4gQ29tcHV0ZUZsb2F0T2Zmc2V0Rm9yTGluZUxheW91dEFkYXB0ZXI8RmxvYXRp
bmdPYmplY3Q6OkZsb2F0TGVmdD46OnVwZGF0ZU9mZnNldElmTmVlZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTgjYWRkX2NvbW1lbnQKKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBSZW5kZXJC
bG9ja0Zsb3c6OnN1YnRyZWVDb250YWluc0Zsb2F0IGFuZCBSZW5kZXJCbG9ja0Zsb3c6OnN1YnRy
ZWVDb250YWluc0Zsb2F0cyB3ZSBub3cgd2lsbCByZXR1cm4gdHJ1ZQorICAgICAgICB3aGVuIHdl
IGZpbmQgc29tZXRoaW5nLCBhbmQgdGhlbiByZXR1cm4gZmFsc2UgYXQgdGhlIGVuZCBvZiB0aGUg
ZnVuY3Rpb24uCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXQgY29u
c3QpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tGbG93OjpzdWJ0cmVlQ29udGFpbnNG
bG9hdHMgY29uc3QpOgorCiAyMDIxLTEyLTEwICBBbnRvaW5lIFF1aW50ICA8Z3Jhb3V0c0B3ZWJr
aXQub3JnPgogCiAgICAgICAgIEV4cG9zZSB0aGUgbWF4aW11bSBkZXZpY2UgZnJhbWUgcmF0ZSB0
byB0aGUgV2ViIEFuaW1hdGlvbnMgbW9kZWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckJsb2NrRmxvdy5jcHAKaW5kZXggZTdkZjNkMDNjYTU5OTZlNGM4MzVmN2NlZDI3NmI0M2Jl
YjhmYTU0Yi4uMzU4MzQ5NTVlOWNkYWQwNDZkZjBlODc5YWI2MjkzYzA0Y2MzNjIyYSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTIxMTEsMjYg
KzIxMTEsMzQgQEAgYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OmNvbnRhaW5zRmxvYXQoUmVuZGVyQm94
JiByZW5kZXJlcikgY29uc3QKIAogYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OnN1YnRyZWVDb250YWlu
c0Zsb2F0KFJlbmRlckJveCYgcmVuZGVyZXIpIGNvbnN0CiB7Ci0gICAgYm9vbCBjb250YWlucyA9
IG1fZmxvYXRpbmdPYmplY3RzICYmIG1fZmxvYXRpbmdPYmplY3RzLT5zZXQoKS5jb250YWluczxG
bG9hdGluZ09iamVjdEhhc2hUcmFuc2xhdG9yPihyZW5kZXJlcik7CisgICAgaWYgKGNvbnRhaW5z
RmxvYXQocmVuZGVyZXIpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGZvciAoYXV0byYg
YmxvY2sgOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJCbG9jaz4oKnRoaXMpKSB7CiAgICAgICAgIGlm
ICghaXM8UmVuZGVyQmxvY2tGbG93PihibG9jaykpCiAgICAgICAgICAgICBjb250aW51ZTsKICAg
ICAgICAgYXV0byYgYmxvY2tGbG93ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihibG9jayk7
Ci0gICAgICAgIGNvbnRhaW5zIHw9IGJsb2NrRmxvdy5zdWJ0cmVlQ29udGFpbnNGbG9hdChyZW5k
ZXJlcik7CisgICAgICAgIGlmIChibG9ja0Zsb3cuc3VidHJlZUNvbnRhaW5zRmxvYXQocmVuZGVy
ZXIpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVybiBjb250YWlu
czsKKworICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OnN1YnRy
ZWVDb250YWluc0Zsb2F0cygpIGNvbnN0CiB7Ci0gICAgYm9vbCBjb250YWlucyA9IG1fZmxvYXRp
bmdPYmplY3RzICYmICFtX2Zsb2F0aW5nT2JqZWN0cy0+c2V0KCkuaXNFbXB0eSgpOworICAgIGlm
IChjb250YWluc0Zsb2F0cygpKQorICAgICAgICByZXR1cm4gdHJ1ZTsKKwogICAgIGZvciAoYXV0
byYgYmxvY2sgOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJCbG9jaz4oKnRoaXMpKSB7CiAgICAgICAg
IGlmICghaXM8UmVuZGVyQmxvY2tGbG93PihibG9jaykpCiAgICAgICAgICAgICBjb250aW51ZTsK
ICAgICAgICAgYXV0byYgYmxvY2tGbG93ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihibG9j
ayk7Ci0gICAgICAgIGNvbnRhaW5zIHw9IGJsb2NrRmxvdy5zdWJ0cmVlQ29udGFpbnNGbG9hdHMo
KTsKKyAgICAgICAgaWYgKGJsb2NrRmxvdy5zdWJ0cmVlQ29udGFpbnNGbG9hdHMoKSkKKyAgICAg
ICAgICAgIHJldHVybiB0cnVlOwogICAgIH0KLSAgICByZXR1cm4gY29udGFpbnM7CisKKyAgICBy
ZXR1cm4gZmFsc2U7CiB9CiAKIHZvaWQgUmVuZGVyQmxvY2tGbG93OjpzdHlsZURpZENoYW5nZShT
dHlsZURpZmZlcmVuY2UgZGlmZiwgY29uc3QgUmVuZGVyU3R5bGUqIG9sZFN0eWxlKQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>447254</attachid>
            <date>2021-12-15 10:28:39 -0800</date>
            <delta_ts>2022-01-13 15:09:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234018-20211215102838.patch</filename>
            <type>text/plain</type>
            <size>2940</size>
            <attacher name="Gabriel Nava Marino">gnavamarino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3MDU2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYTNlOWEwYmQ5MGUzYWZh
Yzk3NWZmNTBkZTRmYTg0NWY4ZjZiM2YxMi4uOWY1ZTM2OTljMmQxMzBmMDQyMWQ4MWQzOWEyZmRl
MTlhOTQwNDFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE4IEBACisyMDIxLTEyLTE1ICBHYWJy
aWVsIE5hdmEgTWFyaW5vICA8Z25hdmFtYXJpbm9AYXBwbGUuY29tPgorCisgICAgICAgIG51bGxw
dHIgZGVyZWYgaW4gQ29tcHV0ZUZsb2F0T2Zmc2V0Rm9yTGluZUxheW91dEFkYXB0ZXI8RmxvYXRp
bmdPYmplY3Q6OkZsb2F0TGVmdD46OnVwZGF0ZU9mZnNldElmTmVlZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbiBSZW5kZXJCbG9ja0Zsb3c6OnN1
YnRyZWVDb250YWluc0Zsb2F0IGFuZCBSZW5kZXJCbG9ja0Zsb3c6OnN1YnRyZWVDb250YWluc0Zs
b2F0cyB3ZSBub3cgd2lsbAorICAgICAgICB1c2UgYSBub24tcmVjdXJzaXZlIGl0ZXJhdG9yIGFu
ZCByZXR1cm4gdHJ1ZSB3aGVuIHdlIGZpbmQgc29tZXRoaW5nLCBvciB0aGVuIHJldHVybiBmYWxz
ZSBhdCB0aGUKKyAgICAgICAgZW5kIG9mIHRoZSBmdW5jdGlvbi4KKworICAgICAgICAqIHJlbmRl
cmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyQmxvY2tG
bG93OjpzdWJ0cmVlQ29udGFpbnNGbG9hdCBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJCbG9ja0Zsb3c6OnN1YnRyZWVDb250YWluc0Zsb2F0cyBjb25zdCk6CisKIDIwMjEtMTItMTQg
IEplYW4tWXZlcyBBdmVuYXJkICA8anlhQGFwcGxlLmNvbT4KIAogICAgICAgICBNYWtlIFByZXZp
ZXdDb252ZXJ0ZXJQcm92aWRlciBub3QgbW9kaWZ5IHRoZSBTaGFyZWRCdWZmZXIgb25jZSByZXR1
cm5lZApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxv
dy5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRl
eCBmYmI1M2UwYjUxMDQ1OTA0MzFhM2VlZDdmMTZlYzZhYzM1Nzg2MWI4Li4yNTc3MjE0ZWZmZDc3
NTdiYTMxMjg2ZDc3M2Y1M2FmYWNhYzU4NDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyQmxvY2tGbG93LmNwcApAQCAtMjExMSwyNiArMjExMSwzNCBAQCBib29sIFJlbmRl
ckJsb2NrRmxvdzo6Y29udGFpbnNGbG9hdChSZW5kZXJCb3gmIHJlbmRlcmVyKSBjb25zdAogCiBi
b29sIFJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXQoUmVuZGVyQm94JiByZW5k
ZXJlcikgY29uc3QKIHsKLSAgICBib29sIGNvbnRhaW5zID0gbV9mbG9hdGluZ09iamVjdHMgJiYg
bV9mbG9hdGluZ09iamVjdHMtPnNldCgpLmNvbnRhaW5zPEZsb2F0aW5nT2JqZWN0SGFzaFRyYW5z
bGF0b3I+KHJlbmRlcmVyKTsKLSAgICBmb3IgKGF1dG8mIGJsb2NrIDogY2hpbGRyZW5PZlR5cGU8
UmVuZGVyQmxvY2s+KCp0aGlzKSkgeworICAgIGlmIChjb250YWluc0Zsb2F0KHJlbmRlcmVyKSkK
KyAgICAgICAgcmV0dXJuIHRydWU7CisKKyAgICBmb3IgKGF1dG8mIGJsb2NrIDogZGVzY2VuZGFu
dHNPZlR5cGU8UmVuZGVyQmxvY2s+KGNvbnN0X2Nhc3Q8UmVuZGVyQmxvY2tGbG93Jj4oKnRoaXMp
KSkgewogICAgICAgICBpZiAoIWlzPFJlbmRlckJsb2NrRmxvdz4oYmxvY2spKQogICAgICAgICAg
ICAgY29udGludWU7CiAgICAgICAgIGF1dG8mIGJsb2NrRmxvdyA9IGRvd25jYXN0PFJlbmRlckJs
b2NrRmxvdz4oYmxvY2spOwotICAgICAgICBjb250YWlucyB8PSBibG9ja0Zsb3cuc3VidHJlZUNv
bnRhaW5zRmxvYXQocmVuZGVyZXIpOworICAgICAgICBpZiAoYmxvY2tGbG93LmNvbnRhaW5zRmxv
YXQocmVuZGVyZXIpKQorICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQotICAgIHJldHVy
biBjb250YWluczsKKworICAgIHJldHVybiBmYWxzZTsKIH0KIAogYm9vbCBSZW5kZXJCbG9ja0Zs
b3c6OnN1YnRyZWVDb250YWluc0Zsb2F0cygpIGNvbnN0CiB7Ci0gICAgYm9vbCBjb250YWlucyA9
IG1fZmxvYXRpbmdPYmplY3RzICYmICFtX2Zsb2F0aW5nT2JqZWN0cy0+c2V0KCkuaXNFbXB0eSgp
OwotICAgIGZvciAoYXV0byYgYmxvY2sgOiBjaGlsZHJlbk9mVHlwZTxSZW5kZXJCbG9jaz4oKnRo
aXMpKSB7CisgICAgaWYgKGNvbnRhaW5zRmxvYXRzKCkpCisgICAgICAgIHJldHVybiB0cnVlOwor
CisgICAgZm9yIChhdXRvJiBibG9jayA6IGRlc2NlbmRhbnRzT2ZUeXBlPFJlbmRlckJsb2NrPihj
b25zdF9jYXN0PFJlbmRlckJsb2NrRmxvdyY+KCp0aGlzKSkpIHsKICAgICAgICAgaWYgKCFpczxS
ZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKSkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBh
dXRvJiBibG9ja0Zsb3cgPSBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKTsKLSAgICAg
ICAgY29udGFpbnMgfD0gYmxvY2tGbG93LnN1YnRyZWVDb250YWluc0Zsb2F0cygpOworICAgICAg
ICBpZiAoYmxvY2tGbG93LmNvbnRhaW5zRmxvYXRzKCkpCisgICAgICAgICAgICByZXR1cm4gdHJ1
ZTsKICAgICB9Ci0gICAgcmV0dXJuIGNvbnRhaW5zOworCisgICAgcmV0dXJuIGZhbHNlOwogfQog
CiB2b2lkIFJlbmRlckJsb2NrRmxvdzo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRp
ZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449116</attachid>
            <date>2022-01-13 15:09:32 -0800</date>
            <delta_ts>2022-01-13 15:11:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234018-20220113150931.patch</filename>
            <type>text/plain</type>
            <size>6884</size>
            <attacher name="Gabriel Nava Marino">gnavamarino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDBiMzdiZmQ0NzkxNWM5
MGE2NjkwM2RiYzc4OWMxYTdlZmZlNDczOS4uNjlmNmEwOGYzNTVjYzMzMjU2OGQ2ZmEyNzUxNzEw
YTU2YWY5NDQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTEzICBHYWJy
aWVsIE5hdmEgTWFyaW5vICA8Z25hdmFtYXJpbm9AYXBwbGUuY29tPgorCisgICAgICAgIG51bGxw
dHIgZGVyZWYgaW4gQ29tcHV0ZUZsb2F0T2Zmc2V0Rm9yTGluZUxheW91dEFkYXB0ZXI8RmxvYXRp
bmdPYmplY3Q6OkZsb2F0TGVmdD46OnVwZGF0ZU9mZnNldElmTmVlZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgSW5jbHVzaXZlUmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlciBhbmQgdXNlIGluY2x1c2l2ZURlc2NlbmRhbnRz
T2ZUeXBlIGluCisgICAgICAgIFJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXQg
YW5kIFJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXRzLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OnN1YnRyZWVDb250YWluc0Zsb2F0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXRzIGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyOjplbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6
SW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPFQ+OjpiZWdpbik6
CisgICAgICAgIChXZWJDb3JlOjpJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFw
dGVyPFQ+OjphdCk6CisgICAgICAgIChXZWJDb3JlOjppbmNsdXNpdmVEZXNjZW5kYW50c09mVHlw
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUcmF2ZXJzYWw6OmluY2x1c2l2ZUZpcnN0V2l0aGluKToKKwogMjAyMi0wMS0x
MSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBjc3MvY3Nz
LXRyYW5zaXRpb25zL0tleWZyYW1lRWZmZWN0LXNldEtleWZyYW1lcy50ZW50YXRpdmUuaHRtbCBp
cyBhIGZhaWx1cmUgKHBhcnQgMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAKaW5kZXggM2U3ZTBjY2UxNTkyMDQzYThlYjE0OTkwODQwNjI2MDc5MDRjZjRm
MC4uODM5YWJhOWFmYzAxMjJlODU1YjEwNTg0MGU4YjlhZTZlMTRhNmY0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTE5NTEsMTQgKzE5NTEs
OCBAQCBib29sIFJlbmRlckJsb2NrRmxvdzo6Y29udGFpbnNGbG9hdChSZW5kZXJCb3gmIHJlbmRl
cmVyKSBjb25zdAogCiBib29sIFJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXQo
UmVuZGVyQm94JiByZW5kZXJlcikgY29uc3QKIHsKLSAgICBpZiAoY29udGFpbnNGbG9hdChyZW5k
ZXJlcikpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgZm9yIChhdXRvJiBibG9jayA6IGRl
c2NlbmRhbnRzT2ZUeXBlPFJlbmRlckJsb2NrPihjb25zdF9jYXN0PFJlbmRlckJsb2NrRmxvdyY+
KCp0aGlzKSkpIHsKLSAgICAgICAgaWYgKCFpczxSZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKSkKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBhdXRvJiBibG9ja0Zsb3cgPSBkb3duY2FzdDxS
ZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKTsKLSAgICAgICAgaWYgKGJsb2NrRmxvdy5jb250YWluc0Zs
b2F0KHJlbmRlcmVyKSkKKyAgICBmb3IgKGF1dG8mIGJsb2NrIDogaW5jbHVzaXZlRGVzY2VuZGFu
dHNPZlR5cGU8UmVuZGVyQmxvY2s+KGNvbnN0X2Nhc3Q8UmVuZGVyQmxvY2tGbG93Jj4oKnRoaXMp
KSkgeworICAgICAgICBpZiAoaXM8UmVuZGVyQmxvY2tGbG93PihibG9jaykgJiYgZG93bmNhc3Q8
UmVuZGVyQmxvY2tGbG93PihibG9jaykuY29udGFpbnNGbG9hdChyZW5kZXJlcikpCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTE5NjcsMTQgKzE5NjEsOCBAQCBib29sIFJl
bmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXQoUmVuZGVyQm94JiByZW5kZXJlcikg
Y29uc3QKIAogYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OnN1YnRyZWVDb250YWluc0Zsb2F0cygpIGNv
bnN0CiB7Ci0gICAgaWYgKGNvbnRhaW5zRmxvYXRzKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgZm9yIChhdXRvJiBibG9jayA6IGRlc2NlbmRhbnRzT2ZUeXBlPFJlbmRlckJsb2NrPihj
b25zdF9jYXN0PFJlbmRlckJsb2NrRmxvdyY+KCp0aGlzKSkpIHsKLSAgICAgICAgaWYgKCFpczxS
ZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBh
dXRvJiBibG9ja0Zsb3cgPSBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKTsKLSAgICAg
ICAgaWYgKGJsb2NrRmxvdy5jb250YWluc0Zsb2F0cygpKQorICAgIGZvciAoYXV0byYgYmxvY2sg
OiBpbmNsdXNpdmVEZXNjZW5kYW50c09mVHlwZTxSZW5kZXJCbG9jaz4oY29uc3RfY2FzdDxSZW5k
ZXJCbG9ja0Zsb3cmPigqdGhpcykpKSB7CisgICAgICAgIGlmIChpczxSZW5kZXJCbG9ja0Zsb3c+
KGJsb2NrKSAmJiBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKS5jb250YWluc0Zsb2F0
cygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmgKaW5kZXggODYyNTAw
YWUyMTZiODVhODdhNjJlOTljZWVhOTA1ZjFhOWU3NzhhZS4uYWY2Y2ZiZTNkZTU0ODFlNzIzZTcx
YWUwNzMzNjA0NzlhZTNjODU0NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJEZXNjZW5kYW50SXRlcmF0b3IuaApAQCAtNTcsNiArNTcsMTggQEAgcHJpdmF0ZToK
ICAgICBSZW5kZXJFbGVtZW50JiBtX3Jvb3Q7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
Y2xhc3MgSW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlciB7CitwdWJsaWM6
CisgICAgSW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcihSZW5kZXJFbGVt
ZW50JiByb290KTsKKyAgICBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8VD4gYmVnaW4oKTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHN0ZDo6bnVsbHB0cl90IGVuZCgpIHsgcmV0dXJuIG51bGxwdHI7
IH0KKyAgICBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8VD4gYXQoVCYpOworCitwcml2YXRlOgor
ICAgIFJlbmRlckVsZW1lbnQmIG1fcm9vdDsKK307CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgog
Y2xhc3MgUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyIHsKIHB1YmxpYzoKQEAg
LTEzOCw2ICsxNTAsNTEgQEAgaW5saW5lIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvcjxUPiBSZW5k
ZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPFQ+OjphdChUJiBjdXIKICAgICByZXR1cm4gUmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+KG1fcm9vdCwgJmN1cnJlbnQpOwogfQogCisvLyBJbmNs
dXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyCisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+CitJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPFQ+OjpJbmNsdXNp
dmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyKFJlbmRlckVsZW1lbnQmIHJvb3QpCisg
ICAgOiBtX3Jvb3Qocm9vdCkKK3sKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK1JlbmRlckRl
c2NlbmRhbnRJdGVyYXRvcjxUPiBJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFw
dGVyPFQ+OjpiZWdpbigpCit7CisgICAgcmV0dXJuIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvcjxU
PihtX3Jvb3QsIFJlbmRlclRyYXZlcnNhbDo6aW5jbHVzaXZlRmlyc3RXaXRoaW48VD4obV9yb290
KSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8
VD4gSW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6YXQoVCYgZGVz
Y2VuZGFudCkKK3sKKyAgICBBU1NFUlQoJm1fcm9vdCA9PSAmZGVzY2VuZGFudCB8fCBkZXNjZW5k
YW50LmlzRGVzY2VuZGFudE9mKG1fcm9vdCkpOworICAgIHJldHVybiBSZW5kZXJEZXNjZW5kYW50
SXRlcmF0b3I8VD4obV9yb290LCAmZGVzY2VuZGFudCk7Cit9CisKKy8qCit0ZW1wbGF0ZTx0eXBl
bmFtZSBUPgorRWxlbWVudERlc2NlbmRhbnRJdGVyYXRvcjxUPiBJbmNsdXNpdmVFbGVtZW50RGVz
Y2VuZGFudFJhbmdlPFQ+Ojpmcm9tKEVsZW1lbnQmIGRlc2NlbmRhbnQpIGNvbnN0Cit7CisgICAg
QVNTRVJUKCZtX3Jvb3QgPT0gJmRlc2NlbmRhbnQgfHwgZGVzY2VuZGFudC5pc0Rlc2NlbmRhbnRP
ZihtX3Jvb3QpKTsKKyAgICBpZiAoaXM8VD4oZGVzY2VuZGFudCkpCisgICAgICAgIHJldHVybiBF
bGVtZW50RGVzY2VuZGFudEl0ZXJhdG9yPFQ+KG1fcm9vdCwgZG93bmNhc3Q8VD4oJmRlc2NlbmRh
bnQpKTsKKyAgICBUKiBuZXh0ID0gVHJhdmVyc2FsPFQ+OjpuZXh0KGRlc2NlbmRhbnQsICZtX3Jv
b3QpOworICAgIHJldHVybiBFbGVtZW50RGVzY2VuZGFudEl0ZXJhdG9yPFQ+KG1fcm9vdCwgbmV4
dCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitUKiBJbmNsdXNpdmVFbGVtZW50RGVzY2Vu
ZGFudFJhbmdlPFQ+OjpmaXJzdCgpIGNvbnN0Cit7CisgICAgcmV0dXJuIFRyYXZlcnNhbDxUPjo6
aW5jbHVzaXZlRmlyc3RXaXRoaW4obV9yb290KTsKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4K
K1QqIEluY2x1c2l2ZUVsZW1lbnREZXNjZW5kYW50UmFuZ2U8VD46Omxhc3QoKSBjb25zdAorewor
ICAgIHJldHVybiBUcmF2ZXJzYWw8VD46OmluY2x1c2l2ZUxhc3RXaXRoaW4obV9yb290KTsKK30K
KyovCisKIC8vIFJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcgogCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KQEAgLTE3Miw2ICsyMjksMTIgQEAgaW5saW5lIFJlbmRlckRlc2NlbmRh
bnRJdGVyYXRvckFkYXB0ZXI8VD4gZGVzY2VuZGFudHNPZlR5cGUoUmVuZGVyRWxlbWVudCYgcm9v
dCkKICAgICByZXR1cm4gUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPihyb290KTsK
IH0KIAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2lubGluZSBJbmNsdXNpdmVSZW5kZXJEZXNjZW5k
YW50SXRlcmF0b3JBZGFwdGVyPFQ+IGluY2x1c2l2ZURlc2NlbmRhbnRzT2ZUeXBlKFJlbmRlckVs
ZW1lbnQmIHJvb3QpCit7CisgICAgcmV0dXJuIEluY2x1c2l2ZVJlbmRlckRlc2NlbmRhbnRJdGVy
YXRvckFkYXB0ZXI8VD4ocm9vdCk7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogaW5saW5l
IFJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxUPiBkZXNjZW5kYW50c09mVHlw
ZShjb25zdCBSZW5kZXJFbGVtZW50JiByb290KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlckl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVySXRlcmF0b3IuaAppbmRleCA1YjlmMjU3ZGE2MWMxMGUwYjY3MjNmZjg4MjQwYWJkYzk5
NTk0MjQ0Li5kYzJjMjllMzVkYWQzOGQ1Nzc1ZDhkNjIwY2Y5MmQ2MzRjZjFjNDcxIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySXRlcmF0b3IuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySXRlcmF0b3IuaApAQCAtMjAxLDYgKzIwMSwxNCBA
QCBpbmxpbmUgVCogZmlyc3RXaXRoaW4oVSYgY3VycmVudCkKICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8VCo+KGRlc2NlbmRhbnQpOwogfQogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUg
VT4KK2lubGluZSBUKiBpbmNsdXNpdmVGaXJzdFdpdGhpbihVJiBjdXJyZW50KQoreworICAgIGlm
IChpc1JlbmRlcmVyT2ZUeXBlPFQ+KGN1cnJlbnQpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nh
c3Q8VCo+KCZjdXJyZW50KTsKKyAgICByZXR1cm4gZmlyc3RXaXRoaW48VD4oY3VycmVudCk7Cit9
CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgogaW5saW5lIFQqIG5leHQoVSYg
Y3VycmVudCwgY29uc3QgUmVuZGVyT2JqZWN0KiBzdGF5V2l0aGluKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>449117</attachid>
            <date>2022-01-13 15:11:44 -0800</date>
            <delta_ts>2022-01-27 10:27:24 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234018-20220113151143.patch</filename>
            <type>text/plain</type>
            <size>6176</size>
            <attacher name="Gabriel Nava Marino">gnavamarino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg3ODk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMDBiMzdiZmQ0NzkxNWM5
MGE2NjkwM2RiYzc4OWMxYTdlZmZlNDczOS4uNjlmNmEwOGYzNTVjYzMzMjU2OGQ2ZmEyNzUxNzEw
YTU2YWY5NDQ5OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTEzICBHYWJy
aWVsIE5hdmEgTWFyaW5vICA8Z25hdmFtYXJpbm9AYXBwbGUuY29tPgorCisgICAgICAgIG51bGxw
dHIgZGVyZWYgaW4gQ29tcHV0ZUZsb2F0T2Zmc2V0Rm9yTGluZUxheW91dEFkYXB0ZXI8RmxvYXRp
bmdPYmplY3Q6OkZsb2F0TGVmdD46OnVwZGF0ZU9mZnNldElmTmVlZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgSW5jbHVzaXZlUmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlciBhbmQgdXNlIGluY2x1c2l2ZURlc2NlbmRhbnRz
T2ZUeXBlIGluCisgICAgICAgIFJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXQg
YW5kIFJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXRzLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OnN1YnRyZWVDb250YWluc0Zsb2F0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXRzIGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyOjplbmQpOgorICAgICAg
ICAoV2ViQ29yZTo6SW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6
SW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcik6CisgICAgICAgIChXZWJD
b3JlOjpJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPFQ+OjpiZWdpbik6
CisgICAgICAgIChXZWJDb3JlOjpJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFw
dGVyPFQ+OjphdCk6CisgICAgICAgIChXZWJDb3JlOjppbmNsdXNpdmVEZXNjZW5kYW50c09mVHlw
ZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJD
b3JlOjpSZW5kZXJUcmF2ZXJzYWw6OmluY2x1c2l2ZUZpcnN0V2l0aGluKToKKwogMjAyMi0wMS0x
MSAgQW50b2luZSBRdWludCAgPGdyYW91dHNAd2Via2l0Lm9yZz4KIAogICAgICAgICBjc3MvY3Nz
LXRyYW5zaXRpb25zL0tleWZyYW1lRWZmZWN0LXNldEtleWZyYW1lcy50ZW50YXRpdmUuaHRtbCBp
cyBhIGZhaWx1cmUgKHBhcnQgMikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJCbG9ja0Zsb3cuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJs
b2NrRmxvdy5jcHAKaW5kZXggM2U3ZTBjY2UxNTkyMDQzYThlYjE0OTkwODQwNjI2MDc5MDRjZjRm
MC4uODM5YWJhOWFmYzAxMjJlODU1YjEwNTg0MGU4YjlhZTZlMTRhNmY0MCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAKQEAgLTE5NTEsMTQgKzE5NTEs
OCBAQCBib29sIFJlbmRlckJsb2NrRmxvdzo6Y29udGFpbnNGbG9hdChSZW5kZXJCb3gmIHJlbmRl
cmVyKSBjb25zdAogCiBib29sIFJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXQo
UmVuZGVyQm94JiByZW5kZXJlcikgY29uc3QKIHsKLSAgICBpZiAoY29udGFpbnNGbG9hdChyZW5k
ZXJlcikpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgZm9yIChhdXRvJiBibG9jayA6IGRl
c2NlbmRhbnRzT2ZUeXBlPFJlbmRlckJsb2NrPihjb25zdF9jYXN0PFJlbmRlckJsb2NrRmxvdyY+
KCp0aGlzKSkpIHsKLSAgICAgICAgaWYgKCFpczxSZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKSkKLSAg
ICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBhdXRvJiBibG9ja0Zsb3cgPSBkb3duY2FzdDxS
ZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKTsKLSAgICAgICAgaWYgKGJsb2NrRmxvdy5jb250YWluc0Zs
b2F0KHJlbmRlcmVyKSkKKyAgICBmb3IgKGF1dG8mIGJsb2NrIDogaW5jbHVzaXZlRGVzY2VuZGFu
dHNPZlR5cGU8UmVuZGVyQmxvY2s+KGNvbnN0X2Nhc3Q8UmVuZGVyQmxvY2tGbG93Jj4oKnRoaXMp
KSkgeworICAgICAgICBpZiAoaXM8UmVuZGVyQmxvY2tGbG93PihibG9jaykgJiYgZG93bmNhc3Q8
UmVuZGVyQmxvY2tGbG93PihibG9jaykuY29udGFpbnNGbG9hdChyZW5kZXJlcikpCiAgICAgICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTE5NjcsMTQgKzE5NjEsOCBAQCBib29sIFJl
bmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXQoUmVuZGVyQm94JiByZW5kZXJlcikg
Y29uc3QKIAogYm9vbCBSZW5kZXJCbG9ja0Zsb3c6OnN1YnRyZWVDb250YWluc0Zsb2F0cygpIGNv
bnN0CiB7Ci0gICAgaWYgKGNvbnRhaW5zRmxvYXRzKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwot
Ci0gICAgZm9yIChhdXRvJiBibG9jayA6IGRlc2NlbmRhbnRzT2ZUeXBlPFJlbmRlckJsb2NrPihj
b25zdF9jYXN0PFJlbmRlckJsb2NrRmxvdyY+KCp0aGlzKSkpIHsKLSAgICAgICAgaWYgKCFpczxS
ZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKSkKLSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBh
dXRvJiBibG9ja0Zsb3cgPSBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKTsKLSAgICAg
ICAgaWYgKGJsb2NrRmxvdy5jb250YWluc0Zsb2F0cygpKQorICAgIGZvciAoYXV0byYgYmxvY2sg
OiBpbmNsdXNpdmVEZXNjZW5kYW50c09mVHlwZTxSZW5kZXJCbG9jaz4oY29uc3RfY2FzdDxSZW5k
ZXJCbG9ja0Zsb3cmPigqdGhpcykpKSB7CisgICAgICAgIGlmIChpczxSZW5kZXJCbG9ja0Zsb3c+
KGJsb2NrKSAmJiBkb3duY2FzdDxSZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKS5jb250YWluc0Zsb2F0
cygpKQogICAgICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmggYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmgKaW5kZXggODYyNTAw
YWUyMTZiODVhODdhNjJlOTljZWVhOTA1ZjFhOWU3NzhhZS4uM2EwZmQwZjM5ZjgwYWY4MzU4YTA4
OWY4OWRkY2JjMjdiZjU1ZTQzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJEZXNjZW5kYW50SXRlcmF0b3IuaApAQCAtNTcsNiArNTcsMTggQEAgcHJpdmF0ZToK
ICAgICBSZW5kZXJFbGVtZW50JiBtX3Jvb3Q7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgor
Y2xhc3MgSW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlciB7CitwdWJsaWM6
CisgICAgSW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcihSZW5kZXJFbGVt
ZW50JiByb290KTsKKyAgICBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8VD4gYmVnaW4oKTsKKyAg
ICBzdGF0aWMgY29uc3RleHByIHN0ZDo6bnVsbHB0cl90IGVuZCgpIHsgcmV0dXJuIG51bGxwdHI7
IH0KKyAgICBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8VD4gYXQoVCYpOworCitwcml2YXRlOgor
ICAgIFJlbmRlckVsZW1lbnQmIG1fcm9vdDsKK307CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgog
Y2xhc3MgUmVuZGVyRGVzY2VuZGFudENvbnN0SXRlcmF0b3JBZGFwdGVyIHsKIHB1YmxpYzoKQEAg
LTEzOCw2ICsxNTAsMjcgQEAgaW5saW5lIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvcjxUPiBSZW5k
ZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPFQ+OjphdChUJiBjdXIKICAgICByZXR1cm4gUmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+KG1fcm9vdCwgJmN1cnJlbnQpOwogfQogCisvLyBJbmNs
dXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyCisKK3RlbXBsYXRlPHR5cGVuYW1l
IFQ+CitJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPFQ+OjpJbmNsdXNp
dmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyKFJlbmRlckVsZW1lbnQmIHJvb3QpCisg
ICAgOiBtX3Jvb3Qocm9vdCkKK3sKK30KKwordGVtcGxhdGU8dHlwZW5hbWUgVD4KK1JlbmRlckRl
c2NlbmRhbnRJdGVyYXRvcjxUPiBJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFw
dGVyPFQ+OjpiZWdpbigpCit7CisgICAgcmV0dXJuIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvcjxU
PihtX3Jvb3QsIFJlbmRlclRyYXZlcnNhbDo6aW5jbHVzaXZlRmlyc3RXaXRoaW48VD4obV9yb290
KSk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8
VD4gSW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6YXQoVCYgZGVz
Y2VuZGFudCkKK3sKKyAgICBBU1NFUlQoJm1fcm9vdCA9PSAmZGVzY2VuZGFudCB8fCBkZXNjZW5k
YW50LmlzRGVzY2VuZGFudE9mKG1fcm9vdCkpOworICAgIHJldHVybiBSZW5kZXJEZXNjZW5kYW50
SXRlcmF0b3I8VD4obV9yb290LCAmZGVzY2VuZGFudCk7Cit9CisKIC8vIFJlbmRlckRlc2NlbmRh
bnRDb25zdEl0ZXJhdG9yQWRhcHRlcgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KQEAgLTE3Miw2
ICsyMDUsMTIgQEAgaW5saW5lIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD4gZGVz
Y2VuZGFudHNPZlR5cGUoUmVuZGVyRWxlbWVudCYgcm9vdCkKICAgICByZXR1cm4gUmVuZGVyRGVz
Y2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPihyb290KTsKIH0KIAordGVtcGxhdGU8dHlwZW5hbWUg
VD4KK2lubGluZSBJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPFQ+IGlu
Y2x1c2l2ZURlc2NlbmRhbnRzT2ZUeXBlKFJlbmRlckVsZW1lbnQmIHJvb3QpCit7CisgICAgcmV0
dXJuIEluY2x1c2l2ZVJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD4ocm9vdCk7Cit9
CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogaW5saW5lIFJlbmRlckRlc2NlbmRhbnRDb25zdEl0
ZXJhdG9yQWRhcHRlcjxUPiBkZXNjZW5kYW50c09mVHlwZShjb25zdCBSZW5kZXJFbGVtZW50JiBy
b290KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckl0ZXJh
dG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySXRlcmF0b3IuaAppbmRleCA1
YjlmMjU3ZGE2MWMxMGUwYjY3MjNmZjg4MjQwYWJkYzk5NTk0MjQ0Li5kYzJjMjllMzVkYWQzOGQ1
Nzc1ZDhkNjIwY2Y5MmQ2MzRjZjFjNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvUmVuZGVySXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVySXRlcmF0b3IuaApAQCAtMjAxLDYgKzIwMSwxNCBAQCBpbmxpbmUgVCogZmlyc3RXaXRoaW4o
VSYgY3VycmVudCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KGRlc2NlbmRhbnQpOwogfQog
Cit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KK2lubGluZSBUKiBpbmNsdXNpdmVG
aXJzdFdpdGhpbihVJiBjdXJyZW50KQoreworICAgIGlmIChpc1JlbmRlcmVyT2ZUeXBlPFQ+KGN1
cnJlbnQpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KCZjdXJyZW50KTsKKyAgICBy
ZXR1cm4gZmlyc3RXaXRoaW48VD4oY3VycmVudCk7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBU
LCB0eXBlbmFtZSBVPgogaW5saW5lIFQqIG5leHQoVSYgY3VycmVudCwgY29uc3QgUmVuZGVyT2Jq
ZWN0KiBzdGF5V2l0aGluKQogewo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450152</attachid>
            <date>2022-01-27 10:27:28 -0800</date>
            <delta_ts>2022-01-27 10:42:53 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234018-20220127102727.patch</filename>
            <type>text/plain</type>
            <size>6243</size>
            <attacher name="Gabriel Nava Marino">gnavamarino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmZjM2M4MzlhNWEzY2M1
MTYwNzUzZDM0YTdiMjI4M2Y4NWM2NjFhZS4uZDEyMzQ3OTMxNTk3MDA3ZmMzYWFjNzJmYzg5N2Yy
NDBjMzUwYzFjZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTI2ICBHYWJy
aWVsIE5hdmEgTWFyaW5vICA8Z25hdmFtYXJpbm9AYXBwbGUuY29tPgorCisgICAgICAgIG51bGxw
dHIgZGVyZWYgaW4gQ29tcHV0ZUZsb2F0T2Zmc2V0Rm9yTGluZUxheW91dEFkYXB0ZXI8RmxvYXRp
bmdPYmplY3Q6OkZsb2F0TGVmdD46OnVwZGF0ZU9mZnNldElmTmVlZGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMzQwMTgKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbXBsZW1lbnQgSW5jbHVzaXZlUmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlciBhbmQgdXNlIGluY2x1c2l2ZURlc2NlbmRhbnRz
T2ZUeXBlIGluCisgICAgICAgIFJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXQg
YW5kIFJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXRzLgorCisgICAgICAgICog
cmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJC
bG9ja0Zsb3c6OnN1YnRyZWVDb250YWluc0Zsb2F0IGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXRzIGNvbnN0KToKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmg6CisgICAgICAgIChXZWJDb3Jl
OjpJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPFQ+OjpJbmNsdXNpdmVS
ZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyKToKKyAgICAgICAgKFdlYkNvcmU6OkluY2x1
c2l2ZVJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD46OmJlZ2luKToKKyAgICAgICAg
KFdlYkNvcmU6OkluY2x1c2l2ZVJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD46OmVu
ZCk6CisgICAgICAgIChXZWJDb3JlOjpJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JB
ZGFwdGVyPFQ+OjphdCk6CisgICAgICAgIChXZWJDb3JlOjppbmNsdXNpdmVEZXNjZW5kYW50c09m
VHlwZSk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlckl0ZXJhdG9yLmg6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUcmF2ZXJzYWw6OmluY2x1c2l2ZUZpcnN0V2l0aGluKToKKwogMjAyMi0w
MS0yNiAgQW50dGkgS29pdmlzdG8gIDxhbnR0aUBhcHBsZS5jb20+CiAKICAgICAgICAgW0NTUyBD
b250YWluZXIgUXVlcmllc10gY29udGFpbmVyLXR5cGUgcHJvcGVydHkgc2hvdWxkIGVzdGFibGlz
aCBjb250YWlubWVudCBmb3IgJ3NpemUnIGFuZCAnaW5saW5lLXNpemUnIHZhbHVlcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckJsb2NrRmxvdy5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcAppbmRleCA5N2M2ODY1M2U1
ZjBlZmY0YmE5YTA3NDM4ZjQzOWI0MTNiNmQxNTBiLi5iZWZiYTI3YzQ3YjljZmU3MDA0YjYzYTAy
ZmJjYzJkZDY1OTM5OTRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyQmxvY2tGbG93LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxv
Y2tGbG93LmNwcApAQCAtMTk1MSwxNCArMTk1MSw4IEBAIGJvb2wgUmVuZGVyQmxvY2tGbG93Ojpj
b250YWluc0Zsb2F0KFJlbmRlckJveCYgcmVuZGVyZXIpIGNvbnN0CiAKIGJvb2wgUmVuZGVyQmxv
Y2tGbG93OjpzdWJ0cmVlQ29udGFpbnNGbG9hdChSZW5kZXJCb3gmIHJlbmRlcmVyKSBjb25zdAog
ewotICAgIGlmIChjb250YWluc0Zsb2F0KHJlbmRlcmVyKSkKLSAgICAgICAgcmV0dXJuIHRydWU7
Ci0KLSAgICBmb3IgKGF1dG8mIGJsb2NrIDogZGVzY2VuZGFudHNPZlR5cGU8UmVuZGVyQmxvY2s+
KGNvbnN0X2Nhc3Q8UmVuZGVyQmxvY2tGbG93Jj4oKnRoaXMpKSkgewotICAgICAgICBpZiAoIWlz
PFJlbmRlckJsb2NrRmxvdz4oYmxvY2spKQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAg
IGF1dG8mIGJsb2NrRmxvdyA9IGRvd25jYXN0PFJlbmRlckJsb2NrRmxvdz4oYmxvY2spOwotICAg
ICAgICBpZiAoYmxvY2tGbG93LmNvbnRhaW5zRmxvYXQocmVuZGVyZXIpKQorICAgIGZvciAoYXV0
byYgYmxvY2sgOiBpbmNsdXNpdmVEZXNjZW5kYW50c09mVHlwZTxSZW5kZXJCbG9ja0Zsb3c+KGNv
bnN0X2Nhc3Q8UmVuZGVyQmxvY2tGbG93Jj4oKnRoaXMpKSkgeworICAgICAgICBpZiAoYmxvY2su
Y29udGFpbnNGbG9hdChyZW5kZXJlcikpCiAgICAgICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9
CiAKQEAgLTE5NjcsMTQgKzE5NjEsOCBAQCBib29sIFJlbmRlckJsb2NrRmxvdzo6c3VidHJlZUNv
bnRhaW5zRmxvYXQoUmVuZGVyQm94JiByZW5kZXJlcikgY29uc3QKIAogYm9vbCBSZW5kZXJCbG9j
a0Zsb3c6OnN1YnRyZWVDb250YWluc0Zsb2F0cygpIGNvbnN0CiB7Ci0gICAgaWYgKGNvbnRhaW5z
RmxvYXRzKCkpCi0gICAgICAgIHJldHVybiB0cnVlOwotCi0gICAgZm9yIChhdXRvJiBibG9jayA6
IGRlc2NlbmRhbnRzT2ZUeXBlPFJlbmRlckJsb2NrPihjb25zdF9jYXN0PFJlbmRlckJsb2NrRmxv
dyY+KCp0aGlzKSkpIHsKLSAgICAgICAgaWYgKCFpczxSZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKSkK
LSAgICAgICAgICAgIGNvbnRpbnVlOwotICAgICAgICBhdXRvJiBibG9ja0Zsb3cgPSBkb3duY2Fz
dDxSZW5kZXJCbG9ja0Zsb3c+KGJsb2NrKTsKLSAgICAgICAgaWYgKGJsb2NrRmxvdy5jb250YWlu
c0Zsb2F0cygpKQorICAgIGZvciAoYXV0byYgYmxvY2sgOiBpbmNsdXNpdmVEZXNjZW5kYW50c09m
VHlwZTxSZW5kZXJCbG9ja0Zsb3c+KGNvbnN0X2Nhc3Q8UmVuZGVyQmxvY2tGbG93Jj4oKnRoaXMp
KSkgeworICAgICAgICBpZiAoYmxvY2suY29udGFpbnNGbG9hdHMoKSkKICAgICAgICAgICAgIHJl
dHVybiB0cnVlOwogICAgIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckRlc2NlbmRhbnRJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckRlc2NlbmRhbnRJdGVyYXRvci5oCmluZGV4IDg2MjUwMGFlMjE2Yjg1YTg3YTYyZTk5Y2Vl
YTkwNWYxYTllNzc4YWUuLjJiNWVjMTllMjEwNDkxM2VlMjkyZjI3Zjc3NDM4NDIwZThhZGM1Mjkg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXNjZW5kYW50SXRl
cmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyRGVzY2VuZGFudEl0
ZXJhdG9yLmgKQEAgLTU3LDYgKzU3LDE4IEBAIHByaXZhdGU6CiAgICAgUmVuZGVyRWxlbWVudCYg
bV9yb290OwogfTsKIAordGVtcGxhdGU8dHlwZW5hbWUgVD4KK2NsYXNzIEluY2x1c2l2ZVJlbmRl
ckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXIgeworcHVibGljOgorICAgIEluY2x1c2l2ZVJlbmRl
ckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXIoUmVuZGVyRWxlbWVudCYgcm9vdCk7CisgICAgUmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+IGJlZ2luKCk7CisgICAgUmVuZGVyRGVzY2VuZGFudEl0
ZXJhdG9yPFQ+IGVuZCgpOworICAgIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvcjxUPiBhdChUJik7
CisKK3ByaXZhdGU6CisgICAgUmVuZGVyRWxlbWVudCYgbV9yb290OworfTsKKwogdGVtcGxhdGUg
PHR5cGVuYW1lIFQ+CiBjbGFzcyBSZW5kZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXIg
ewogcHVibGljOgpAQCAtMTM4LDYgKzE1MCwzMyBAQCBpbmxpbmUgUmVuZGVyRGVzY2VuZGFudEl0
ZXJhdG9yPFQ+IFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD46OmF0KFQmIGN1cgog
ICAgIHJldHVybiBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8VD4obV9yb290LCAmY3VycmVudCk7
CiB9CiAKKy8vIEluY2x1c2l2ZVJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXIKKwordGVt
cGxhdGU8dHlwZW5hbWUgVD4KK0luY2x1c2l2ZVJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0
ZXI8VD46OkluY2x1c2l2ZVJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXIoUmVuZGVyRWxl
bWVudCYgcm9vdCkKKyAgICA6IG1fcm9vdChyb290KQoreworfQorCit0ZW1wbGF0ZTx0eXBlbmFt
ZSBUPgorUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+IEluY2x1c2l2ZVJlbmRlckRlc2NlbmRh
bnRJdGVyYXRvckFkYXB0ZXI8VD46OmJlZ2luKCkKK3sKKyAgICByZXR1cm4gUmVuZGVyRGVzY2Vu
ZGFudEl0ZXJhdG9yPFQ+KG1fcm9vdCwgUmVuZGVyVHJhdmVyc2FsOjppbmNsdXNpdmVGaXJzdFdp
dGhpbjxUPihtX3Jvb3QpKTsKK30KKwordGVtcGxhdGUgPHR5cGVuYW1lIFQ+CitpbmxpbmUgUmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+IEluY2x1c2l2ZVJlbmRlckRlc2NlbmRhbnRJdGVyYXRv
ckFkYXB0ZXI8VD46OmVuZCgpCit7CisgICAgcmV0dXJuIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRv
cjxUPihtX3Jvb3QpOworfQorCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorUmVuZGVyRGVzY2VuZGFu
dEl0ZXJhdG9yPFQ+IEluY2x1c2l2ZVJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD46
OmF0KFQmIGRlc2NlbmRhbnQpCit7CisgICAgQVNTRVJUKCZtX3Jvb3QgPT0gJmRlc2NlbmRhbnQg
fHwgZGVzY2VuZGFudC5pc0Rlc2NlbmRhbnRPZihtX3Jvb3QpKTsKKyAgICByZXR1cm4gUmVuZGVy
RGVzY2VuZGFudEl0ZXJhdG9yPFQ+KG1fcm9vdCwgJmRlc2NlbmRhbnQpOworfQorCiAvLyBSZW5k
ZXJEZXNjZW5kYW50Q29uc3RJdGVyYXRvckFkYXB0ZXIKIAogdGVtcGxhdGUgPHR5cGVuYW1lIFQ+
CkBAIC0xNzIsNiArMjExLDEyIEBAIGlubGluZSBSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFw
dGVyPFQ+IGRlc2NlbmRhbnRzT2ZUeXBlKFJlbmRlckVsZW1lbnQmIHJvb3QpCiAgICAgcmV0dXJu
IFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD4ocm9vdCk7CiB9CiAKK3RlbXBsYXRl
PHR5cGVuYW1lIFQ+CitpbmxpbmUgSW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRh
cHRlcjxUPiBpbmNsdXNpdmVEZXNjZW5kYW50c09mVHlwZShSZW5kZXJFbGVtZW50JiByb290KQor
eworICAgIHJldHVybiBJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyPFQ+
KHJvb3QpOworfQorCiB0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KIGlubGluZSBSZW5kZXJEZXNjZW5k
YW50Q29uc3RJdGVyYXRvckFkYXB0ZXI8VD4gZGVzY2VuZGFudHNPZlR5cGUoY29uc3QgUmVuZGVy
RWxlbWVudCYgcm9vdCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJJdGVyYXRvci5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckl0ZXJhdG9y
LmgKaW5kZXggNWI5ZjI1N2RhNjFjMTBlMGI2NzIzZmY4ODI0MGFiZGM5OTU5NDI0NC4uZGMyYzI5
ZTM1ZGFkMzhkNTc3NWQ4ZDYyMGNmOTJkNjM0Y2YxYzQ3MSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlckl0ZXJhdG9yLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlckl0ZXJhdG9yLmgKQEAgLTIwMSw2ICsyMDEsMTQgQEAgaW5saW5lIFQqIGZp
cnN0V2l0aGluKFUmIGN1cnJlbnQpCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPihkZXNjZW5k
YW50KTsKIH0KIAordGVtcGxhdGUgPHR5cGVuYW1lIFQsIHR5cGVuYW1lIFU+CitpbmxpbmUgVCog
aW5jbHVzaXZlRmlyc3RXaXRoaW4oVSYgY3VycmVudCkKK3sKKyAgICBpZiAoaXNSZW5kZXJlck9m
VHlwZTxUPihjdXJyZW50KSkKKyAgICAgICAgcmV0dXJuIHN0YXRpY19jYXN0PFQqPigmY3VycmVu
dCk7CisgICAgcmV0dXJuIGZpcnN0V2l0aGluPFQ+KGN1cnJlbnQpOworfQorCiB0ZW1wbGF0ZSA8
dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KIGlubGluZSBUKiBuZXh0KFUmIGN1cnJlbnQsIGNvbnN0
IFJlbmRlck9iamVjdCogc3RheVdpdGhpbikKIHsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>450157</attachid>
            <date>2022-01-27 10:42:57 -0800</date>
            <delta_ts>2022-01-27 14:56:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-234018-20220127104256.patch</filename>
            <type>text/plain</type>
            <size>6188</size>
            <attacher name="Gabriel Nava Marino">gnavamarino</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjg4NjI3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmZjM2M4MzlhNWEzY2M1
MTYwNzUzZDM0YTdiMjI4M2Y4NWM2NjFhZS4uZWI1YWNlOTdiMmE0MDQxMTkzZGI4YzY4MjlkZDQz
YjAxZTlkYjE2MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI1IEBACisyMDIyLTAxLTI2ICBHYWJy
aWVsIE5hdmEgTWFyaW5vICA8Z25hdmFtYXJpbm9AYXBwbGUuY29tPgorCisgICAgICAgIFNpbXBs
aWZ5IGNvZGUgYnkgdXNpbmcgaW5jbHVzaXZlRGVzY2VuZGFudHNPZlR5cGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIzNDAxOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBJbmNsdXNpdmVS
ZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JBZGFwdGVyIGFuZCB1c2UgaW5jbHVzaXZlRGVzY2VuZGFu
dHNPZlR5cGUgaW4KKyAgICAgICAgUmVuZGVyQmxvY2tGbG93OjpzdWJ0cmVlQ29udGFpbnNGbG9h
dCBhbmQgUmVuZGVyQmxvY2tGbG93OjpzdWJ0cmVlQ29udGFpbnNGbG9hdHMuCisKKyAgICAgICAg
KiByZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRl
ckJsb2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXQgY29uc3QpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyQmxvY2tGbG93OjpzdWJ0cmVlQ29udGFpbnNGbG9hdHMgY29uc3QpOgorICAgICAg
ICAqIHJlbmRlcmluZy9SZW5kZXJEZXNjZW5kYW50SXRlcmF0b3IuaDoKKyAgICAgICAgKFdlYkNv
cmU6OkluY2x1c2l2ZVJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8VD46OkluY2x1c2l2
ZVJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXIpOgorICAgICAgICAoV2ViQ29yZTo6SW5j
bHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6YmVnaW4pOgorICAgICAg
ICAoV2ViQ29yZTo6SW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6
ZW5kKToKKyAgICAgICAgKFdlYkNvcmU6OkluY2x1c2l2ZVJlbmRlckRlc2NlbmRhbnRJdGVyYXRv
ckFkYXB0ZXI8VD46OmF0KToKKyAgICAgICAgKFdlYkNvcmU6OmluY2x1c2l2ZURlc2NlbmRhbnRz
T2ZUeXBlKToKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVySXRlcmF0b3IuaDoKKyAgICAgICAg
KFdlYkNvcmU6OlJlbmRlclRyYXZlcnNhbDo6aW5jbHVzaXZlRmlyc3RXaXRoaW4pOgorCiAyMDIy
LTAxLTI2ICBBbnR0aSBLb2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KIAogICAgICAgICBbQ1NT
IENvbnRhaW5lciBRdWVyaWVzXSBjb250YWluZXItdHlwZSBwcm9wZXJ0eSBzaG91bGQgZXN0YWJs
aXNoIGNvbnRhaW5tZW50IGZvciAnc2l6ZScgYW5kICdpbmxpbmUtc2l6ZScgdmFsdWVzCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyQmxvY2tGbG93LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJCbG9ja0Zsb3cuY3BwCmluZGV4IDk3YzY4NjUz
ZTVmMGVmZjRiYTlhMDc0MzhmNDM5YjQxM2I2ZDE1MGIuLmJlZmJhMjdjNDdiOWNmZTcwMDRiNjNh
MDJmYmNjMmRkNjU5Mzk5NGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJCbG9ja0Zsb3cuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJC
bG9ja0Zsb3cuY3BwCkBAIC0xOTUxLDE0ICsxOTUxLDggQEAgYm9vbCBSZW5kZXJCbG9ja0Zsb3c6
OmNvbnRhaW5zRmxvYXQoUmVuZGVyQm94JiByZW5kZXJlcikgY29uc3QKIAogYm9vbCBSZW5kZXJC
bG9ja0Zsb3c6OnN1YnRyZWVDb250YWluc0Zsb2F0KFJlbmRlckJveCYgcmVuZGVyZXIpIGNvbnN0
CiB7Ci0gICAgaWYgKGNvbnRhaW5zRmxvYXQocmVuZGVyZXIpKQotICAgICAgICByZXR1cm4gdHJ1
ZTsKLQotICAgIGZvciAoYXV0byYgYmxvY2sgOiBkZXNjZW5kYW50c09mVHlwZTxSZW5kZXJCbG9j
az4oY29uc3RfY2FzdDxSZW5kZXJCbG9ja0Zsb3cmPigqdGhpcykpKSB7Ci0gICAgICAgIGlmICgh
aXM8UmVuZGVyQmxvY2tGbG93PihibG9jaykpCi0gICAgICAgICAgICBjb250aW51ZTsKLSAgICAg
ICAgYXV0byYgYmxvY2tGbG93ID0gZG93bmNhc3Q8UmVuZGVyQmxvY2tGbG93PihibG9jayk7Ci0g
ICAgICAgIGlmIChibG9ja0Zsb3cuY29udGFpbnNGbG9hdChyZW5kZXJlcikpCisgICAgZm9yIChh
dXRvJiBibG9jayA6IGluY2x1c2l2ZURlc2NlbmRhbnRzT2ZUeXBlPFJlbmRlckJsb2NrRmxvdz4o
Y29uc3RfY2FzdDxSZW5kZXJCbG9ja0Zsb3cmPigqdGhpcykpKSB7CisgICAgICAgIGlmIChibG9j
ay5jb250YWluc0Zsb2F0KHJlbmRlcmVyKSkKICAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAg
IH0KIApAQCAtMTk2NywxNCArMTk2MSw4IEBAIGJvb2wgUmVuZGVyQmxvY2tGbG93OjpzdWJ0cmVl
Q29udGFpbnNGbG9hdChSZW5kZXJCb3gmIHJlbmRlcmVyKSBjb25zdAogCiBib29sIFJlbmRlckJs
b2NrRmxvdzo6c3VidHJlZUNvbnRhaW5zRmxvYXRzKCkgY29uc3QKIHsKLSAgICBpZiAoY29udGFp
bnNGbG9hdHMoKSkKLSAgICAgICAgcmV0dXJuIHRydWU7Ci0KLSAgICBmb3IgKGF1dG8mIGJsb2Nr
IDogZGVzY2VuZGFudHNPZlR5cGU8UmVuZGVyQmxvY2s+KGNvbnN0X2Nhc3Q8UmVuZGVyQmxvY2tG
bG93Jj4oKnRoaXMpKSkgewotICAgICAgICBpZiAoIWlzPFJlbmRlckJsb2NrRmxvdz4oYmxvY2sp
KQotICAgICAgICAgICAgY29udGludWU7Ci0gICAgICAgIGF1dG8mIGJsb2NrRmxvdyA9IGRvd25j
YXN0PFJlbmRlckJsb2NrRmxvdz4oYmxvY2spOwotICAgICAgICBpZiAoYmxvY2tGbG93LmNvbnRh
aW5zRmxvYXRzKCkpCisgICAgZm9yIChhdXRvJiBibG9jayA6IGluY2x1c2l2ZURlc2NlbmRhbnRz
T2ZUeXBlPFJlbmRlckJsb2NrRmxvdz4oY29uc3RfY2FzdDxSZW5kZXJCbG9ja0Zsb3cmPigqdGhp
cykpKSB7CisgICAgICAgIGlmIChibG9jay5jb250YWluc0Zsb2F0cygpKQogICAgICAgICAgICAg
cmV0dXJuIHRydWU7CiAgICAgfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yLmgKaW5kZXggODYyNTAwYWUyMTZiODVhODdhNjJlOTlj
ZWVhOTA1ZjFhOWU3NzhhZS4uMmI1ZWMxOWUyMTA0OTEzZWUyOTJmMjdmNzc0Mzg0MjBlOGFkYzUy
OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlckRlc2NlbmRhbnRJ
dGVyYXRvci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJEZXNjZW5kYW50
SXRlcmF0b3IuaApAQCAtNTcsNiArNTcsMTggQEAgcHJpdmF0ZToKICAgICBSZW5kZXJFbGVtZW50
JiBtX3Jvb3Q7CiB9OwogCit0ZW1wbGF0ZTx0eXBlbmFtZSBUPgorY2xhc3MgSW5jbHVzaXZlUmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlciB7CitwdWJsaWM6CisgICAgSW5jbHVzaXZlUmVu
ZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcihSZW5kZXJFbGVtZW50JiByb290KTsKKyAgICBS
ZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8VD4gYmVnaW4oKTsKKyAgICBSZW5kZXJEZXNjZW5kYW50
SXRlcmF0b3I8VD4gZW5kKCk7CisgICAgUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yPFQ+IGF0KFQm
KTsKKworcHJpdmF0ZToKKyAgICBSZW5kZXJFbGVtZW50JiBtX3Jvb3Q7Cit9OworCiB0ZW1wbGF0
ZSA8dHlwZW5hbWUgVD4KIGNsYXNzIFJlbmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRl
ciB7CiBwdWJsaWM6CkBAIC0xMzgsNiArMTUwLDMzIEBAIGlubGluZSBSZW5kZXJEZXNjZW5kYW50
SXRlcmF0b3I8VD4gUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6YXQoVCYgY3Vy
CiAgICAgcmV0dXJuIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvcjxUPihtX3Jvb3QsICZjdXJyZW50
KTsKIH0KIAorLy8gSW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcgorCit0
ZW1wbGF0ZTx0eXBlbmFtZSBUPgorSW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRh
cHRlcjxUPjo6SW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcihSZW5kZXJF
bGVtZW50JiByb290KQorICAgIDogbV9yb290KHJvb3QpCit7Cit9CisKK3RlbXBsYXRlPHR5cGVu
YW1lIFQ+CitSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8VD4gSW5jbHVzaXZlUmVuZGVyRGVzY2Vu
ZGFudEl0ZXJhdG9yQWRhcHRlcjxUPjo6YmVnaW4oKQoreworICAgIHJldHVybiBSZW5kZXJEZXNj
ZW5kYW50SXRlcmF0b3I8VD4obV9yb290LCBSZW5kZXJUcmF2ZXJzYWw6OmluY2x1c2l2ZUZpcnN0
V2l0aGluPFQ+KG1fcm9vdCkpOworfQorCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVD4KK2lubGluZSBS
ZW5kZXJEZXNjZW5kYW50SXRlcmF0b3I8VD4gSW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJh
dG9yQWRhcHRlcjxUPjo6ZW5kKCkKK3sKKyAgICByZXR1cm4gUmVuZGVyRGVzY2VuZGFudEl0ZXJh
dG9yPFQ+KG1fcm9vdCk7Cit9CisKK3RlbXBsYXRlPHR5cGVuYW1lIFQ+CitSZW5kZXJEZXNjZW5k
YW50SXRlcmF0b3I8VD4gSW5jbHVzaXZlUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxU
Pjo6YXQoVCYgZGVzY2VuZGFudCkKK3sKKyAgICBBU1NFUlQoJm1fcm9vdCA9PSAmZGVzY2VuZGFu
dCB8fCBkZXNjZW5kYW50LmlzRGVzY2VuZGFudE9mKG1fcm9vdCkpOworICAgIHJldHVybiBSZW5k
ZXJEZXNjZW5kYW50SXRlcmF0b3I8VD4obV9yb290LCAmZGVzY2VuZGFudCk7Cit9CisKIC8vIFJl
bmRlckRlc2NlbmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcgogCiB0ZW1wbGF0ZSA8dHlwZW5hbWUg
VD4KQEAgLTE3Miw2ICsyMTEsMTIgQEAgaW5saW5lIFJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFk
YXB0ZXI8VD4gZGVzY2VuZGFudHNPZlR5cGUoUmVuZGVyRWxlbWVudCYgcm9vdCkKICAgICByZXR1
cm4gUmVuZGVyRGVzY2VuZGFudEl0ZXJhdG9yQWRhcHRlcjxUPihyb290KTsKIH0KIAordGVtcGxh
dGU8dHlwZW5hbWUgVD4KK2lubGluZSBJbmNsdXNpdmVSZW5kZXJEZXNjZW5kYW50SXRlcmF0b3JB
ZGFwdGVyPFQ+IGluY2x1c2l2ZURlc2NlbmRhbnRzT2ZUeXBlKFJlbmRlckVsZW1lbnQmIHJvb3Qp
Cit7CisgICAgcmV0dXJuIEluY2x1c2l2ZVJlbmRlckRlc2NlbmRhbnRJdGVyYXRvckFkYXB0ZXI8
VD4ocm9vdCk7Cit9CisKIHRlbXBsYXRlIDx0eXBlbmFtZSBUPgogaW5saW5lIFJlbmRlckRlc2Nl
bmRhbnRDb25zdEl0ZXJhdG9yQWRhcHRlcjxUPiBkZXNjZW5kYW50c09mVHlwZShjb25zdCBSZW5k
ZXJFbGVtZW50JiByb290KQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlckl0ZXJhdG9yLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySXRlcmF0
b3IuaAppbmRleCA1YjlmMjU3ZGE2MWMxMGUwYjY3MjNmZjg4MjQwYWJkYzk5NTk0MjQ0Li5kYzJj
MjllMzVkYWQzOGQ1Nzc1ZDhkNjIwY2Y5MmQ2MzRjZjFjNDcxIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVySXRlcmF0b3IuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVySXRlcmF0b3IuaApAQCAtMjAxLDYgKzIwMSwxNCBAQCBpbmxpbmUgVCog
Zmlyc3RXaXRoaW4oVSYgY3VycmVudCkKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KGRlc2Nl
bmRhbnQpOwogfQogCit0ZW1wbGF0ZSA8dHlwZW5hbWUgVCwgdHlwZW5hbWUgVT4KK2lubGluZSBU
KiBpbmNsdXNpdmVGaXJzdFdpdGhpbihVJiBjdXJyZW50KQoreworICAgIGlmIChpc1JlbmRlcmVy
T2ZUeXBlPFQ+KGN1cnJlbnQpKQorICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8VCo+KCZjdXJy
ZW50KTsKKyAgICByZXR1cm4gZmlyc3RXaXRoaW48VD4oY3VycmVudCk7Cit9CisKIHRlbXBsYXRl
IDx0eXBlbmFtZSBULCB0eXBlbmFtZSBVPgogaW5saW5lIFQqIG5leHQoVSYgY3VycmVudCwgY29u
c3QgUmVuZGVyT2JqZWN0KiBzdGF5V2l0aGluKQogewo=
</data>
<flag name="commit-queue"
          id="476507"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>