<?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>217417</bug_id>
          
          <creation_ts>2020-10-06 17:50:16 -0700</creation_ts>
          <short_desc>Paint CSS highlights over images</short_desc>
          <delta_ts>2020-10-14 13:55:06 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Megan Gardner">megan_gardner</reporter>
          <assigned_to name="Megan Gardner">megan_gardner</assigned_to>
          <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>peng.liu6</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>wenson_hsieh</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1695417</commentid>
    <comment_count>0</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-06 17:50:16 -0700</bug_when>
    <thetext>Paint CSS highlights over images</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695435</commentid>
    <comment_count>1</comment_count>
      <attachid>410725</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-06 19:15:14 -0700</bug_when>
    <thetext>Created attachment 410725
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1695550</commentid>
    <comment_count>2</comment_count>
      <attachid>410725</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-07 08:46:47 -0700</bug_when>
    <thetext>Comment on attachment 410725
Patch

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

&gt; Source/WebCore/rendering/RenderReplaced.cpp:159
&gt; +    auto* parentRenderer = parent();

Put this inside the if?

&gt; Source/WebCore/rendering/RenderReplaced.cpp:160
&gt; +    const RenderStyle* parentStyle;

This unused local is why Windows build is failing and should be deleted.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:161
&gt; +    Color highlightColor;

This is unused and should be deleted.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:167
&gt; +                Position startPosition = rangeData-&gt;startPosition.value();

auto?

&gt; Source/WebCore/rendering/RenderReplaced.cpp:169
&gt; +                auto* startRenderer = startPosition.deprecatedNode()-&gt;renderer();

Should use containerNode here, not deprecatedNode. Same below.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:170
&gt; +                unsigned startOffset = startPosition.deprecatedEditingOffset();

Should use computeOffsetInContainerNode here, not deprecatedEditingOffset. Same below.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:174
&gt; +                    continue;

Used continue here but nested if above. Should pick one style and stick with it.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:177
&gt; +                highlightData.setRenderRange({ startRenderer, endRenderer, startOffset, endOffset });

I think we need a helper function to make an optional render range from range data to avoid that long 9 lines of code above and the extra if nesting too. But could land like this and refactor I guess.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:178
&gt; +                

Extra blank line

&gt; Source/WebCore/rendering/RenderReplaced.cpp:182
&gt; +                    auto renderStyle = parentRenderer-&gt;getUncachedPseudoStyle({ PseudoId::Highlight, highlight.key }, parentStyle);

Put this inside the if? Also could just name it style.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:242
&gt; +    bool drawHighlight = shouldDrawHighlight(paintInfo);

I suggest we use a transparent highlight color to signify this instead of a separate boolean.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:246
&gt; +        if (!highlightColor.isVisible())

Just do this isVisible check below instead off checking the boolean.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:252
&gt;          if (selectionState() == HighlightState::None)

Don’t we need to set drawHighlight to false here? (Or in my new proposal, set highlightColor to invalid or transparent.) Or maybe optimize to not even call shouldDrawHighlight or potentialHighlightColor or even shouldDrawSelectionTint in this case? I am confused about this.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:285
&gt; +        LayoutRect selectionPaintingRect = localSelectionRect(false);

auto

&gt; Source/WebCore/rendering/RenderReplaced.h:98
&gt; +    virtual bool shouldDrawHighlight(PaintInfo&amp;) const;

Maybe this can just return the color instead of a bool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696027</commentid>
    <comment_count>3</comment_count>
      <attachid>410883</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-08 14:14:27 -0700</bug_when>
    <thetext>Created attachment 410883
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696060</commentid>
    <comment_count>4</comment_count>
      <attachid>410883</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-08 16:11:05 -0700</bug_when>
    <thetext>Comment on attachment 410883
Patch

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

&gt; Source/WebCore/rendering/HighlightData.cpp:169
&gt; +    Position startPosition = rangeData.startPosition.value();
&gt; +    Position endPosition = rangeData.endPosition.value();

auto?

&gt; Source/WebCore/rendering/HighlightData.h:76
&gt; +    bool setRenderRange(HighlightRangeData&amp;);

const HighlightRangeData&amp;

What does the return value mean? Either use an enum or a comment.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:162
&gt; +    parentStyle = &amp;parentRenderer-&gt;style();

Just const RenderStyle* parentStyle = here

&gt; Source/WebCore/rendering/RenderReplaced.cpp:165
&gt; +    for (auto&amp; highlight : document().highlightMap().map()) {
&gt; +        for (auto&amp; rangeData : highlight.value-&gt;rangesData()) {
&gt; +            if (!rangeData-&gt;startPosition || !rangeData-&gt;endPosition)

If a document has many highlight ranges, this is going to start to be a perf problem.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:176
&gt; +            if (auto style = parentRenderer-&gt;getUncachedPseudoStyle({ PseudoId::Highlight, highlight.key }, parentStyle))

Why does this use the parent renderer for getUncachedPseudoStyle and the style? Why not this renderer?

&gt; Source/WebCore/rendering/RenderReplaced.cpp:739
&gt; +bool RenderReplaced::verifySelectionState(HighlightState state, HighlightData&amp; rangeData) const

&quot;verify&quot; isn&apos;t really telling me what this function does.

&gt; Source/WebCore/rendering/RenderReplaced.h:98
&gt; +    virtual bool shouldDrawHighlight(PaintInfo&amp;) const;

const PaintInfo&amp;

&gt; Source/WebCore/rendering/RenderReplaced.h:100
&gt; +    bool verifySelectionState(HighlightState, HighlightData&amp;) const;

const HighlightData&amp;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696103</commentid>
    <comment_count>5</comment_count>
      <attachid>410883</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-08 18:18:35 -0700</bug_when>
    <thetext>Comment on attachment 410883
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderReplaced.cpp:165
&gt;&gt; +            if (!rangeData-&gt;startPosition || !rangeData-&gt;endPosition)
&gt; 
&gt; If a document has many highlight ranges, this is going to start to be a perf problem.

Yes, I believe we might need to look into other options, but this is also how we render ranges for text, so we&apos;ll need a cross-cutting solution.

&gt;&gt; Source/WebCore/rendering/RenderReplaced.cpp:176
&gt;&gt; +            if (auto style = parentRenderer-&gt;getUncachedPseudoStyle({ PseudoId::Highlight, highlight.key }, parentStyle))
&gt; 
&gt; Why does this use the parent renderer for getUncachedPseudoStyle and the style? Why not this renderer?

Because I was following what I did for inlineTextBox, but I believe that actually isn&apos;t the same a this, probably no reason to not just use this renderer, since it is one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696105</commentid>
    <comment_count>6</comment_count>
      <attachid>410883</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-08 18:28:55 -0700</bug_when>
    <thetext>Comment on attachment 410883
Patch

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

&gt;&gt;&gt; Source/WebCore/rendering/RenderReplaced.cpp:165
&gt;&gt;&gt; +            if (!rangeData-&gt;startPosition || !rangeData-&gt;endPosition)
&gt;&gt; 
&gt;&gt; If a document has many highlight ranges, this is going to start to be a perf problem.
&gt; 
&gt; Yes, I believe we might need to look into other options, but this is also how we render ranges for text, so we&apos;ll need a cross-cutting solution.

DocumentMarkers have a significantly (I think) more performance-thoughtful architecture for painting/lookup time. Might be worth looking at.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696106</commentid>
    <comment_count>7</comment_count>
      <attachid>410883</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-08 18:30:46 -0700</bug_when>
    <thetext>Comment on attachment 410883
Patch

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

&gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderReplaced.cpp:165
&gt;&gt;&gt;&gt; +            if (!rangeData-&gt;startPosition || !rangeData-&gt;endPosition)
&gt;&gt;&gt; 
&gt;&gt;&gt; If a document has many highlight ranges, this is going to start to be a perf problem.
&gt;&gt; 
&gt;&gt; Yes, I believe we might need to look into other options, but this is also how we render ranges for text, so we&apos;ll need a cross-cutting solution.
&gt; 
&gt; DocumentMarkers have a significantly (I think) more performance-thoughtful architecture for painting/lookup time. Might be worth looking at.

I&apos;ll have to go back and look, but I thought there was a reason we specifically did not use these in the first place. But I&apos;d have to refresh to defend that position.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696128</commentid>
    <comment_count>8</comment_count>
    <who name="Tim Horton">thorton</who>
    <bug_when>2020-10-08 21:43:46 -0700</bug_when>
    <thetext>(In reply to Megan Gardner from comment #7)
&gt; Comment on attachment 410883 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=410883&amp;action=review
&gt; 
&gt; &gt;&gt;&gt;&gt; Source/WebCore/rendering/RenderReplaced.cpp:165
&gt; &gt;&gt;&gt;&gt; +            if (!rangeData-&gt;startPosition || !rangeData-&gt;endPosition)
&gt; &gt;&gt;&gt; 
&gt; &gt;&gt;&gt; If a document has many highlight ranges, this is going to start to be a perf problem.
&gt; &gt;&gt; 
&gt; &gt;&gt; Yes, I believe we might need to look into other options, but this is also how we render ranges for text, so we&apos;ll need a cross-cutting solution.
&gt; &gt; 
&gt; &gt; DocumentMarkers have a significantly (I think) more performance-thoughtful architecture for painting/lookup time. Might be worth looking at.
&gt; 
&gt; I&apos;ll have to go back and look, but I thought there was a reason we
&gt; specifically did not use these in the first place. But I&apos;d have to refresh
&gt; to defend that position.

I&apos;m not saying &quot;use DocumentMarkers&quot; necessarily. I&apos;m saying &quot;maybe learn something from their implementation&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696135</commentid>
    <comment_count>9</comment_count>
      <attachid>410915</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-08 22:31:49 -0700</bug_when>
    <thetext>Created attachment 410915
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696343</commentid>
    <comment_count>10</comment_count>
      <attachid>410915</attachid>
    <who name="Peng Liu">peng.liu6</who>
    <bug_when>2020-10-09 13:45:20 -0700</bug_when>
    <thetext>Comment on attachment 410915
Patch

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

&gt; Source/WebCore/rendering/HighlightData.cpp:176
&gt; +    if (!startRenderer || !endRenderer)

Nit. Looks like we can bail out earlier to avoid two computeOffsetInContainerNode().

&gt; Source/WebCore/rendering/HighlightData.h:76
&gt; +    bool setRenderRange(HighlightRangeData&amp;); // returns if the setting of the renderRange from the HighlightRangeData has been successful.

I guess you mean &quot;returns true&quot;?

&gt; Source/WebCore/rendering/RenderReplaced.cpp:236
&gt; +            drawHighlight = false;

Nit. Can we use one line like below?
drawHighlight = highlightColor.isVisible();</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1696456</commentid>
    <comment_count>11</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-09 19:41:29 -0700</bug_when>
    <thetext>What happened to my suggestion of removing the boolean?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697139</commentid>
    <comment_count>12</comment_count>
      <attachid>411185</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-12 18:20:24 -0700</bug_when>
    <thetext>Created attachment 411185
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697154</commentid>
    <comment_count>13</comment_count>
      <attachid>411185</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-12 19:45:43 -0700</bug_when>
    <thetext>Comment on attachment 411185
Patch

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

&gt; Source/WebCore/rendering/RenderReplaced.cpp:151
&gt; +Color RenderReplaced::calculateHighlightColor(const PaintInfo&amp; paintInfo) const

How does this work in the face of multiple overlapping ranges with non-opaque colors? Don&apos;t we have to paint each one?

&gt; Source/WebCore/rendering/RenderReplaced.cpp:153
&gt; +    if (document().printing() || paintInfo.paintBehavior.contains(PaintBehavior::ExcludeSelection))

The caller should be checking ExcludeSelection, not this function.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:160
&gt; +    const RenderStyle* parentStyle = &amp;parentRenderer-&gt;style();

Why the parent still?

&gt; Source/WebCore/rendering/RenderReplaced.cpp:166
&gt; +            auto highlightData = HighlightData(view());

Do we need to make a HighlightData each time through the loop?

&gt; Source/WebCore/rendering/RenderReplaced.h:99
&gt; +    bool verifySelectionState(HighlightState, const HighlightData&amp;) const;

I think this could use a better name. I&apos;m not sure what I expect it to do with a term like &quot;verify&quot;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697173</commentid>
    <comment_count>14</comment_count>
      <attachid>411185</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-12 22:40:38 -0700</bug_when>
    <thetext>Comment on attachment 411185
Patch

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

&gt;&gt; Source/WebCore/rendering/RenderReplaced.cpp:151
&gt;&gt; +Color RenderReplaced::calculateHighlightColor(const PaintInfo&amp; paintInfo) const
&gt; 
&gt; How does this work in the face of multiple overlapping ranges with non-opaque colors? Don&apos;t we have to paint each one?

The spec is not clear on this point. It focuses more on priority, which I have not implemented yet. Baring priority, the style that was added first wins.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697174</commentid>
    <comment_count>15</comment_count>
      <attachid>411197</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-12 22:42:56 -0700</bug_when>
    <thetext>Created attachment 411197
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697283</commentid>
    <comment_count>16</comment_count>
      <attachid>411197</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-13 09:34:06 -0700</bug_when>
    <thetext>Comment on attachment 411197
Patch

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

I think this patch is OK, but there are quite a few things that should be improved; not sure if I should have said review+ given the Simon made comments and did not say that.

&gt; Source/WebCore/rendering/HighlightData.cpp:166
&gt; +bool HighlightData::setRenderRange(HighlightRangeData&amp; rangeData)

Is there a reason you didn’t take Simon’s suggestion of making this &quot;const HighlightRangeData&amp;&quot;?

&gt; Source/WebCore/rendering/HighlightData.cpp:169
&gt; +    auto startPosition = rangeData.startPosition.value();
&gt; +    auto endPosition = rangeData.endPosition.value();

I suggest checking these for null here in this function, rather than doing it in the caller.

(Wow, just noticed that startPosition and endPosition in HighlightRangeData are optional. I don’t understand why. Position already has a null value and I don’t see why we also need them to be optional. I guess I can come through and clean that up separately.)

&gt; Source/WebCore/rendering/HighlightData.cpp:175
&gt; +    auto* startRenderer = startPosition.containerNode()-&gt;renderer();
&gt; +    auto* endRenderer = endPosition.containerNode()-&gt;renderer();
&gt; +    
&gt; +    if (!startRenderer || !endRenderer)
&gt; +        return false;

I think this also needs to check the containerNode values for nullptr (or check the positions for null, same thing). Unless there’s a guarantee they will never be null.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:157
&gt; +            if (!rangeData-&gt;startPosition || !rangeData-&gt;endPosition)
&gt; +                continue;

I suggest moving this check inside setRenderRange.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:223
&gt; +    Color highlightColor = Color();

There’s no need to write &quot;= Color()&quot;, that will happen even if we don’t specify a value explicitly.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:266
&gt; +

Stray blank line here we should delete.

&gt; LayoutTests/http/wpt/css/css-highlight-api/highlight-image-expected-mismatched.html:13
&gt; +    &lt;div id=&quot;style1&quot;&gt;&lt;img src=&quot;../../images/blank-highlight.png&quot;&gt;&lt;/div&gt;
&gt; +    &lt;div id=&quot;style2&quot;&gt;&lt;img src=&quot;../../images/blank-highlight.png&quot;&gt;&lt;/div&gt;
&gt; +    &lt;div id=&quot;style3&quot;&gt;&lt;img src=&quot;../../images/blank-highlight.png&quot;&gt;&lt;/div&gt;

In a mismatch test, there’s no point in having three different test cases here. If any of the three works, then the test will pass. If we want to test three different things, then we need to find a way to do this as a match test, or do it with three separate mismatch tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697339</commentid>
    <comment_count>17</comment_count>
      <attachid>411236</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-13 12:24:02 -0700</bug_when>
    <thetext>Created attachment 411236
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697341</commentid>
    <comment_count>18</comment_count>
    <who name="Wenson Hsieh">wenson_hsieh</who>
    <bug_when>2020-10-13 12:31:19 -0700</bug_when>
    <thetext>&gt; &gt; Source/WebCore/rendering/HighlightData.cpp:175
&gt; &gt; +    auto* startRenderer = startPosition.containerNode()-&gt;renderer();
&gt; &gt; +    auto* endRenderer = endPosition.containerNode()-&gt;renderer();
&gt; &gt; +    
&gt; &gt; +    if (!startRenderer || !endRenderer)
&gt; &gt; +        return false;
&gt; 
&gt; I think this also needs to check the containerNode values for nullptr (or
&gt; check the positions for null, same thing). Unless there’s a guarantee they
&gt; will never be null.

I think it&apos;s actually possible for a Position to be non-null but have a null containerNode(), in the case where its AnchorType is either PositionIsBeforeAnchor or PositionIsAfterAnchor and the anchor node is unparented; I think checking for containerNode() would be the safer option here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697345</commentid>
    <comment_count>19</comment_count>
      <attachid>411239</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-13 12:48:09 -0700</bug_when>
    <thetext>Created attachment 411239
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697395</commentid>
    <comment_count>20</comment_count>
      <attachid>411253</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-13 14:11:14 -0700</bug_when>
    <thetext>Created attachment 411253
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697403</commentid>
    <comment_count>21</comment_count>
      <attachid>411239</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-13 14:22:54 -0700</bug_when>
    <thetext>Comment on attachment 411239
Patch

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

&gt; Source/WebCore/rendering/HighlightData.cpp:205
&gt; +        if (currentRenderer == m_renderRange.start() || currentRenderer == highlightEnd)

Just realized the second half of this expression isn’t ever true — it’s already checked by the loop condition.

&gt; Source/WebCore/rendering/HighlightData.h:76
&gt; +    bool setRenderRange(const HighlightRangeData&amp;); // returns true if the setting of the renderRange from the HighlightRangeData has been successful.

I would have written this comment: &quot;// Returns true if successful.&quot;

&gt; Source/WebCore/rendering/RenderReplaced.cpp:156
&gt; +            

I suggest removing this blank line.

&gt; Source/WebCore/rendering/RenderReplaced.cpp:220
&gt; +    

I suggest not adding this blank line.

&gt; Source/WebCore/rendering/RenderReplaced.h:98
&gt; +    virtual Color calculateHighlightColor() const;

Not sure why this is marked virtual. I don’t see a derived class overriding it.

&gt; LayoutTests/http/wpt/css/css-highlight-api/highlight-image-expected-mismatched.html:9
&gt; +&lt;head&gt;
&gt; +    &lt;meta charset=&quot;utf-8&quot;&gt;
&gt; +    &lt;title&gt;Multiple custom highlight pseudo elements.&lt;/title&gt;
&gt; +    &lt;link rel=&quot;help&quot; href=&quot;https://drafts.csswg.org/css-highlight-api-1/#creating-highlights&quot;&gt;
&gt; +    &lt;link rel=&quot;match&quot; href=&quot;highlight-text-expected.html&quot;&gt;
&gt; +    &lt;meta name=&quot;assert&quot; content=&quot;Multiple highlights should be able to be specified.&quot;&gt;
&gt; +&lt;/head&gt;

None of this is needed in the reference file; but maybe WPT tests normally do repeat these?

&gt; LayoutTests/http/wpt/css/css-highlight-api/highlight-image-expected-mismatched.html:11
&gt; +    &lt;div id=&quot;style1&quot;&gt;&lt;img src=&quot;../../images/blank-highlight.png&quot;&gt;&lt;/div&gt;

Surprised that we do not need to set the display:inline-block.

&gt; LayoutTests/http/wpt/css/css-highlight-api/highlight-image.html:5
&gt; +    &lt;title&gt;Multiple custom highlight pseudo elements.&lt;/title&gt;

This title seems wrong.

&gt; LayoutTests/http/wpt/css/css-highlight-api/highlight-image.html:7
&gt; +    &lt;link rel=&quot;match&quot; href=&quot;highlight-text-expected.html&quot;&gt;

This is wrong.

&gt; LayoutTests/http/wpt/css/css-highlight-api/highlight-image.html:8
&gt; +    &lt;meta name=&quot;assert&quot; content=&quot;Multiple highlights should be able to be specified.&quot;&gt;

This text does not match this test.

&gt; LayoutTests/http/wpt/css/css-highlight-api/highlight-image.html:12
&gt; +        #img1 {
&gt; +            display: inline-block;
&gt; +        }

Why is this needed?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697408</commentid>
    <comment_count>22</comment_count>
      <attachid>411253</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2020-10-13 14:27:04 -0700</bug_when>
    <thetext>Comment on attachment 411253
Patch for landing

Clearing cq+ based on Darin&apos;s comments.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697409</commentid>
    <comment_count>23</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2020-10-13 14:30:09 -0700</bug_when>
    <thetext>Those could be addressed in follow-ups, but some of the things in the test do seem wrong.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697427</commentid>
    <comment_count>24</comment_count>
      <attachid>411263</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-13 15:02:27 -0700</bug_when>
    <thetext>Created attachment 411263
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697522</commentid>
    <comment_count>25</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-13 17:19:11 -0700</bug_when>
    <thetext>Committed r268436: &lt;https://trac.webkit.org/changeset/268436&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411263.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697526</commentid>
    <comment_count>26</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-13 17:25:06 -0700</bug_when>
    <thetext>&lt;rdar://problem/58459054&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697810</commentid>
    <comment_count>27</comment_count>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-14 12:00:40 -0700</bug_when>
    <thetext>Reopening to fix test name.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697812</commentid>
    <comment_count>28</comment_count>
      <attachid>411355</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-14 12:05:20 -0700</bug_when>
    <thetext>Created attachment 411355
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697814</commentid>
    <comment_count>29</comment_count>
      <attachid>411356</attachid>
    <who name="Megan Gardner">megan_gardner</who>
    <bug_when>2020-10-14 12:07:58 -0700</bug_when>
    <thetext>Created attachment 411356
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1697868</commentid>
    <comment_count>30</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-10-14 13:55:05 -0700</bug_when>
    <thetext>Committed r268487: &lt;https://trac.webkit.org/changeset/268487&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 411356.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410725</attachid>
            <date>2020-10-06 19:15:14 -0700</date>
            <delta_ts>2020-10-08 14:14:26 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217417-20201006191513.patch</filename>
            <type>text/plain</type>
            <size>13072</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTE2MTIzNmMwMDY1Yjdk
ZjVjODdhOTI5NjU0NTJhYjE0MDgzMTMyMC4uZjI4ZTA2NjJmOWY3ZjViNzk0YjYzZjgzZTcxZWM5
NmVmNmZiZDRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTEwLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NT
IGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzQxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg0NTkwNTQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgdG8gcGFpbnQgQ1NTIHBzZXVkbyBoaWdobGlnaHRzIG92ZXIgaW1hZ2VzIHRoYXQgYXJl
IGluIHRoZSAKKyAgICAgICAgcmFuZ2Ugb2YgdGhlIGRlZmluZWQgaGlnaGxpZ2h0LgorCisgICAg
ICAgIFRlc3Q6IGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2Uu
aHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcik6CisgICAg
ICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBvdGVu
dGlhbEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxh
Y2VkOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisKIDIw
MjAtMTAtMDUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtM
RkNdW0ludGVncmF0aW9uXSBNb3ZlIERpc3BsYXk6OklubGluZUNvbnRlbnQgdG8gTGF5b3V0SW50
ZWdyYXRpb24gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SGlnaGxpZ2h0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0
YS5jcHAKaW5kZXggMmVmN2JhNzUxNTczYjI4OTlhY2QzZTZkZjJjZDcxODY3MTJiOWIwNS4uYWMy
NGQ0Y2IzY2ViYmMwNjcxNjk1Nzc4MmU0OTM3MGMzNDQ5ZDVlMyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcApAQCAtMTYyLDcgKzE2Miw3IEBAIHZvaWQgSGln
aGxpZ2h0RGF0YTo6c2V0UmVuZGVyUmFuZ2UoY29uc3QgUmVuZGVyUmFuZ2UmIHJlbmRlclJhbmdl
KQogICAgIG1fcmVuZGVyUmFuZ2UgPSByZW5kZXJSYW5nZTsKIH0KIAotUmVuZGVyT2JqZWN0OjpI
aWdobGlnaHRTdGF0ZSBIaWdobGlnaHREYXRhOjpoaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVyKFJl
bmRlck9iamVjdCYgcmVuZGVyZXIpCitSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIEhpZ2hs
aWdodERhdGE6OmhpZ2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0JiBy
ZW5kZXJlcikKIHsKICAgICBpZiAoJnJlbmRlcmVyID09IG1fcmVuZGVyUmFuZ2Uuc3RhcnQoKSkg
ewogICAgICAgICBpZiAobV9yZW5kZXJSYW5nZS5zdGFydCgpICYmIG1fcmVuZGVyUmFuZ2UuZW5k
KCkgJiYgbV9yZW5kZXJSYW5nZS5zdGFydCgpID09IG1fcmVuZGVyUmFuZ2UuZW5kKCkpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaAppbmRleCBhZDgwZmQzZDZlM2U5YTZk
MGNhMzE1MTQyMzBlMjRjMjM5MGMxMzE0Li42OWVhZDhlOGY1N2M4Njg4NjlmYzc1MDgwZmNiODc4
YWE3MjE1Y2E4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0
RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmgKQEAg
LTg3LDcgKzg3LDcgQEAgcHVibGljOgogICAgIEludFJlY3QgYm91bmRzQ2xpcHBlZFRvVmlzaWJs
ZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBjb2xsZWN0Qm91bmRzKENsaXBUb1Zpc2libGVDb250
ZW50OjpZZXMpOyB9CiAgICAgdm9pZCByZXBhaW50U2VsZWN0aW9uKCkgY29uc3Q7CiAgICAgCi0g
ICAgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBoaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVy
KFJlbmRlck9iamVjdCYpOworICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgaGlnaGxp
Z2h0U3RhdGVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmKTsKIAogcHJpdmF0ZToKICAg
ICBlbnVtIGNsYXNzIENsaXBUb1Zpc2libGVDb250ZW50IHsgWWVzLCBObyB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggMjU3MWI2NTQyYTQ2ZWI2
NTVhMDMyZWQxZTlmMDFhZTc3ODY3MjAxZS4uYjIwOTIzM2FhNDY0ZmM3ODNhZDE1MjhhZDljNTA1
ODhlNzc5ODkxOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
Y3BwCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2lu
Y2x1ZGUgIkhpZ2hsaWdodERhdGEuaCIKKyNpbmNsdWRlICJIaWdobGlnaHRNYXAuaCIKICNpbmNs
dWRlICJJbmxpbmVFbGVtZW50Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgiCiAj
aW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKQEAgLTE0Niw2ICsxNDgsNDggQEAgaW5saW5lIHN0YXRp
YyBib29sIGRyYWdnZWRDb250ZW50Q29udGFpbnNSZXBsYWNlZEVsZW1lbnQoY29uc3QgVmVjdG9y
PFJlbmRlcmVkRG8KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK2Jvb2wgUmVuZGVyUmVwbGFjZWQ6
OnNob3VsZERyYXdIaWdobGlnaHQoUGFpbnRJbmZvJiBwYWludEluZm8pIGNvbnN0Cit7CisgICAg
cmV0dXJuICFkb2N1bWVudCgpLnByaW50aW5nKCkgJiYgIXBhaW50SW5mby5wYWludEJlaGF2aW9y
LmNvbnRhaW5zKFBhaW50QmVoYXZpb3I6OkV4Y2x1ZGVTZWxlY3Rpb24pOworfQorCitDb2xvciBS
ZW5kZXJSZXBsYWNlZDo6cG90ZW50aWFsSGlnaGxpZ2h0Q29sb3IoKSBjb25zdAoreworICAgIAor
ICAgIGF1dG8qIHBhcmVudFJlbmRlcmVyID0gcGFyZW50KCk7CisgICAgY29uc3QgUmVuZGVyU3R5
bGUqIHBhcmVudFN0eWxlOworICAgIENvbG9yIGhpZ2hsaWdodENvbG9yOworICAgIGlmIChwYXJl
bnRSZW5kZXJlcikKKyAgICAgICAgcGFyZW50U3R5bGUgPSAmcGFyZW50UmVuZGVyZXItPnN0eWxl
KCk7CisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBkb2N1bWVudCgpLmhpZ2hsaWdodE1hcCgp
Lm1hcCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVl
LT5yYW5nZXNEYXRhKCkpIHsKKyAgICAgICAgICAgIGlmIChyYW5nZURhdGEtPnN0YXJ0UG9zaXRp
b24gJiYgcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbikgeworICAgICAgICAgICAgICAgIFBvc2l0aW9u
IHN0YXJ0UG9zaXRpb24gPSByYW5nZURhdGEtPnN0YXJ0UG9zaXRpb24udmFsdWUoKTsKKyAgICAg
ICAgICAgICAgICBQb3NpdGlvbiBlbmRQb3NpdGlvbiA9IHJhbmdlRGF0YS0+ZW5kUG9zaXRpb24u
dmFsdWUoKTsKKyAgICAgICAgICAgICAgICBhdXRvKiBzdGFydFJlbmRlcmVyID0gc3RhcnRQb3Np
dGlvbi5kZXByZWNhdGVkTm9kZSgpLT5yZW5kZXJlcigpOworICAgICAgICAgICAgICAgIHVuc2ln
bmVkIHN0YXJ0T2Zmc2V0ID0gc3RhcnRQb3NpdGlvbi5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgp
OworICAgICAgICAgICAgICAgIGF1dG8qIGVuZFJlbmRlcmVyID0gZW5kUG9zaXRpb24uZGVwcmVj
YXRlZE5vZGUoKS0+cmVuZGVyZXIoKTsKKyAgICAgICAgICAgICAgICB1bnNpZ25lZCBlbmRPZmZz
ZXQgPSBlbmRQb3NpdGlvbi5kZXByZWNhdGVkRWRpdGluZ09mZnNldCgpOworICAgICAgICAgICAg
ICAgIGlmICghc3RhcnRSZW5kZXJlciB8fCAhZW5kUmVuZGVyZXIpCisgICAgICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgICAgIAorICAgICAgICAgICAgICAgIGF1dG8gaGln
aGxpZ2h0RGF0YSA9IEhpZ2hsaWdodERhdGEodmlldygpKTsKKyAgICAgICAgICAgICAgICBoaWdo
bGlnaHREYXRhLnNldFJlbmRlclJhbmdlKHsgc3RhcnRSZW5kZXJlciwgZW5kUmVuZGVyZXIsIHN0
YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgfSk7CisgICAgICAgICAgICAgICAgCisgICAgICAgICAgICAg
ICAgCisgICAgICAgICAgICAgICAgYXV0byBzdGF0ZSA9IGhpZ2hsaWdodERhdGEuaGlnaGxpZ2h0
U3RhdGVGb3JSZW5kZXJlcigqdGhpcyk7CisgICAgICAgICAgICAgICAgaWYgKHZlcmlmeVNlbGVj
dGlvblN0YXRlKHN0YXRlLCBoaWdobGlnaHREYXRhKSkgeworICAgICAgICAgICAgICAgICAgICBh
dXRvIHJlbmRlclN0eWxlID0gcGFyZW50UmVuZGVyZXItPmdldFVuY2FjaGVkUHNldWRvU3R5bGUo
eyBQc2V1ZG9JZDo6SGlnaGxpZ2h0LCBoaWdobGlnaHQua2V5IH0sIHBhcmVudFN0eWxlKTsKKyAg
ICAgICAgICAgICAgICAgICAgaWYgKHJlbmRlclN0eWxlKQorICAgICAgICAgICAgICAgICAgICAg
ICAgcmV0dXJuIHJlbmRlclN0eWxlLT5iYWNrZ3JvdW5kQ29sb3IoKTsKKyAgICAgICAgICAgICAg
ICB9CisgICAgICAgICAgICB9CisgICAgICAgIAorICAgICAgICB9CisgICAgfQorICAgIHJldHVy
biBDb2xvcigpOworfQorCiB2b2lkIFJlbmRlclJlcGxhY2VkOjpwYWludChQYWludEluZm8mIHBh
aW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogewogICAgIGlmICghc2hv
dWxkUGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNldCkpCkBAIC0xOTUsNiArMjM5LDE0IEBAIHZv
aWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZmZzZXQpCiAgICAgaWYgKCFwYWludEluZm8uc2hvdWxkUGFpbnRXaXRo
aW5Sb290KCp0aGlzKSkKICAgICAgICAgcmV0dXJuOwogICAgIAorICAgIGJvb2wgZHJhd0hpZ2hs
aWdodCA9IHNob3VsZERyYXdIaWdobGlnaHQocGFpbnRJbmZvKTsKKyAgICBDb2xvciBoaWdobGln
aHRDb2xvcjsKKyAgICBpZiAoZHJhd0hpZ2hsaWdodCkgeworICAgICAgICBoaWdobGlnaHRDb2xv
ciA9IHBvdGVudGlhbEhpZ2hsaWdodENvbG9yKCk7CisgICAgICAgIGlmICghaGlnaGxpZ2h0Q29s
b3IuaXNWaXNpYmxlKCkpCisgICAgICAgICAgICBkcmF3SGlnaGxpZ2h0ID0gZmFsc2U7CisgICAg
fQorICAgIAogICAgIGJvb2wgZHJhd1NlbGVjdGlvblRpbnQgPSBzaG91bGREcmF3U2VsZWN0aW9u
VGludCgpOwogICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZTo6U2VsZWN0aW9u
KSB7CiAgICAgICAgIGlmIChzZWxlY3Rpb25TdGF0ZSgpID09IEhpZ2hsaWdodFN0YXRlOjpOb25l
KQpAQCAtMjI4LDYgKzI4MCwxMyBAQCB2b2lkIFJlbmRlclJlcGxhY2VkOjpwYWludChQYWludElu
Zm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgICAgICBz
ZWxlY3Rpb25QYWludGluZ1JlY3QubW92ZUJ5KGFkanVzdGVkUGFpbnRPZmZzZXQpOwogICAgICAg
ICBwYWludEluZm8uY29udGV4dCgpLmZpbGxSZWN0KHNuYXBwZWRJbnRSZWN0KHNlbGVjdGlvblBh
aW50aW5nUmVjdCksIHNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpKTsKICAgICB9CisgICAgCisg
ICAgaWYgKGRyYXdIaWdobGlnaHQpIHsKKyAgICAgICAgTGF5b3V0UmVjdCBzZWxlY3Rpb25QYWlu
dGluZ1JlY3QgPSBsb2NhbFNlbGVjdGlvblJlY3QoZmFsc2UpOworICAgICAgICBzZWxlY3Rpb25Q
YWludGluZ1JlY3QubW92ZUJ5KGFkanVzdGVkUGFpbnRPZmZzZXQpOworICAgICAgICBwYWludElu
Zm8uY29udGV4dCgpLmZpbGxSZWN0KHNuYXBwZWRJbnRSZWN0KHNlbGVjdGlvblBhaW50aW5nUmVj
dCksIGhpZ2hsaWdodENvbG9yKTsKKyAgICB9CisKIH0KIAogYm9vbCBSZW5kZXJSZXBsYWNlZDo6
c2hvdWxkUGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWlu
dE9mZnNldCkKQEAgLTY3OSwxOSArNzM4LDIzIEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnNldFNl
bGVjdGlvblN0YXRlKEhpZ2hsaWdodFN0YXRlIHN0YXRlKQogICAgIFJlbmRlckJveDo6c2V0U2Vs
ZWN0aW9uU3RhdGUoc3RhdGUpOwogCiAgICAgaWYgKG1faW5saW5lQm94V3JhcHBlciAmJiBjYW5V
cGRhdGVTZWxlY3Rpb25PblJvb3RMaW5lQm94ZXMoKSkKLSAgICAgICAgbV9pbmxpbmVCb3hXcmFw
cGVyLT5yb290KCkuc2V0SGFzU2VsZWN0ZWRDaGlsZHJlbihpc1NlbGVjdGVkKCkpOworICAgICAg
ICBtX2lubGluZUJveFdyYXBwZXItPnJvb3QoKS5zZXRIYXNTZWxlY3RlZENoaWxkcmVuKHZlcmlm
eVNlbGVjdGlvblN0YXRlKHNlbGVjdGlvblN0YXRlKCksIHZpZXcoKS5zZWxlY3Rpb24oKSkpOwog
fQogCiBib29sIFJlbmRlclJlcGxhY2VkOjppc1NlbGVjdGVkKCkgY29uc3QKIHsKLSAgICBIaWdo
bGlnaHRTdGF0ZSBzdGF0ZSA9IHNlbGVjdGlvblN0YXRlKCk7CisgICAgcmV0dXJuIHZlcmlmeVNl
bGVjdGlvblN0YXRlKHNlbGVjdGlvblN0YXRlKCksIHZpZXcoKS5zZWxlY3Rpb24oKSk7Cit9CisK
K2Jvb2wgUmVuZGVyUmVwbGFjZWQ6OnZlcmlmeVNlbGVjdGlvblN0YXRlKEhpZ2hsaWdodFN0YXRl
IHN0YXRlLCBIaWdobGlnaHREYXRhJiByYW5nZURhdGEpIGNvbnN0Cit7CiAgICAgaWYgKHN0YXRl
ID09IEhpZ2hsaWdodFN0YXRlOjpOb25lKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgaWYg
KHN0YXRlID09IEhpZ2hsaWdodFN0YXRlOjpJbnNpZGUpCiAgICAgICAgIHJldHVybiB0cnVlOwog
Ci0gICAgYXV0byBzZWxlY3Rpb25TdGFydCA9IHZpZXcoKS5zZWxlY3Rpb24oKS5zdGFydE9mZnNl
dCgpOwotICAgIGF1dG8gc2VsZWN0aW9uRW5kID0gdmlldygpLnNlbGVjdGlvbigpLmVuZE9mZnNl
dCgpOworICAgIGF1dG8gc2VsZWN0aW9uU3RhcnQgPSByYW5nZURhdGEuc3RhcnRPZmZzZXQoKTsK
KyAgICBhdXRvIHNlbGVjdGlvbkVuZCA9IHJhbmdlRGF0YS5lbmRPZmZzZXQoKTsKICAgICBpZiAo
c3RhdGUgPT0gSGlnaGxpZ2h0U3RhdGU6OlN0YXJ0KQogICAgICAgICByZXR1cm4gIXNlbGVjdGlv
blN0YXJ0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVw
bGFjZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCmluZGV4
IGU2NGMzZDc1ZDgwMTk2NTE4ODNmMTkxY2FhMzdmODk1YjRhYzFhYmUuLjYxODhmNTE4NjJkODE3
NGQyNTkyODU0MDgzMDc4NDhjNGRiNzUyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJSZXBsYWNlZC5oCkBAIC05NCw2ICs5NCwxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgY29t
cHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyQm94KiwgRmxvYXRT
aXplJiBjb25zdHJhaW5lZFNpemUsIGRvdWJsZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OwogCiAg
ICAgdmlydHVhbCBib29sIHNob3VsZERyYXdTZWxlY3Rpb25UaW50KCkgY29uc3Q7CisgICAgCisg
ICAgdmlydHVhbCBib29sIHNob3VsZERyYXdIaWdobGlnaHQoUGFpbnRJbmZvJikgY29uc3Q7Cisg
ICAgdmlydHVhbCBDb2xvciBwb3RlbnRpYWxIaWdobGlnaHRDb2xvcigpIGNvbnN0OworICAgIGJv
b2wgdmVyaWZ5U2VsZWN0aW9uU3RhdGUoSGlnaGxpZ2h0U3RhdGUsIEhpZ2hsaWdodERhdGEmKSBj
b25zdDsKIAogICAgIG11dGFibGUgTGF5b3V0U2l6ZSBtX2ludHJpbnNpY1NpemU7CiB9OwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDQxMDljMzA1YjQ3ZjRjMzg4OGE5ZmFkZDRhOTA5YWMxYmI3ODQwY2EuLjMyZjZiMDc5Zjg3
MDJkYmI1NWM0NTA3YjcyYmY0MDhmNmQxODkzYzkgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAy
MC0xMC0wNiAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29tPgorCisgICAg
ICAgIFBhaW50IENTUyBoaWdobGlnaHRzIG92ZXIgaW1hZ2VzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc0MTcKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0
LWFwaS9oaWdobGlnaHQtaW1hZ2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAgICAgICogaHR0
cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sOiBBZGRlZC4K
KwogMjAyMC0xMC0wNSAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEuY29tPgogCiAg
ICAgICAgIFtHTElCXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBNZXJnZSBjb21tb24gR1RL
IGFuZCBXUEUgYmFzZWxpbmVzIGFuZCBlbWl0IG5ldyBiYXNlbGluZXMgZm9yIFdQRSB0ZXN0cyBh
ZnRlciByMjY3OTYwLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1o
aWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLmZiMDhiNjBhY2UwMDI1ZGI1Yzc2OTAxZTUzNTFkMDNjNmY0ZjA1MDMK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdo
dC1hcGkvaGlnaGxpZ2h0LWltYWdlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzNiBAQAorPCFE
T0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4K
KyAgICA8dGl0bGU+TXVsdGlwbGUgY3VzdG9tIGhpZ2hsaWdodCBwc2V1ZG8gZWxlbWVudHMuPC90
aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9y
Zy9jc3MtaGlnaGxpZ2h0LWFwaS0xLyNjcmVhdGluZy1oaWdobGlnaHRzIj4KKyAgICA8bGluayBy
ZWw9Im1hdGNoIiBocmVmPSJoaWdobGlnaHQtdGV4dC1leHBlY3RlZC5odG1sIj4KKyAgICA8bWV0
YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ik11bHRpcGxlIGhpZ2hsaWdodHMgc2hvdWxkIGJlIGFi
bGUgdG8gYmUgc3BlY2lmaWVkLiI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgI3N0eWxlMSB7
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwwLDAsLjUpOworICAgICAg
ICAgICAgY29sb3I6Z3JlZW47CisgICAgICAgIH0KKyAgICAgICAgI3N0eWxlMiB7CisgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgY29sb3I6cmVkOworICAg
ICAgICB9CisgICAgICAgICNzdHlsZTMgeworICAgICAgICAgICAgY29sb3I6cGluazsKKyAgICAg
ICAgfQorICAgICAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPHNwYW4gc3R5bGU9
InBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyI+CisgICAgICAgIDxp
bWcgc3JjPSIuLi8uLi9pbWFnZXMvcGF0dGVybi5wbmciPgorICAgICAgICA8c3BhbiBzdHlsZT0i
cG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7IGxlZnQ6IDA7
IGJhY2tncm91bmQ6IHJnYmEoMjAwLDAsMCwuNSk7Ij48L3NwYW4+CisgICAgPC9zcGFuPgorICAg
IDxzcGFuIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGlubGluZS1ibG9jazsi
PgorICAgICAgICA8aW1nIHNyYz0iLi4vLi4vaW1hZ2VzL3BhdHRlcm4ucG5nIj4KKyAgICAgICAg
PHNwYW4gc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyByaWdodDogMDsgYm90dG9t
OiAwOyBsZWZ0OiAwOyBiYWNrZ3JvdW5kOiBibHVlOyI+PC9zcGFuPgorICAgIDwvc3Bhbj4KKyAg
ICA8c3BhbiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CisgICAgICAgIDxpbWcgc3JjPSIu
Li8uLi9pbWFnZXMvcGF0dGVybi5wbmciPgorICAgIDwvc3Bhbj4KKzwvYm9keT4KKzwvaHRtbD4K
ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9o
aWdobGlnaHQtaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxp
Z2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDdmMTY0ZmMyZjM5NDlk
Mzg1ZDMwNWY0NDNiYjliMDBlYmI2OTljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sCkBAIC0w
LDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBj
aGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPk11bHRpcGxlIGN1c3RvbSBoaWdobGlnaHQgcHNl
dWRvIGVsZW1lbnRzLjwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczov
L2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWhpZ2hsaWdodC1hcGktMS8jY3JlYXRpbmctaGlnaGxpZ2h0
cyI+CisgICAgPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iaGlnaGxpZ2h0LXRleHQtZXhwZWN0ZWQu
aHRtbCI+CisgICAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJNdWx0aXBsZSBoaWdobGln
aHRzIHNob3VsZCBiZSBhYmxlIHRvIGJlIHNwZWNpZmllZC4iPgorICAgICAgICA8c3R5bGU+Cisg
ICAgICAgIDo6aGlnaGxpZ2h0KGV4YW1wbGUtaGlnaGxpZ2h0MSkgeworICAgICAgICAgICAgYmFj
a2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsMCwwLC41KTsKKyAgICAgICAgICAgIGNvbG9yOmdyZWVu
OworICAgICAgICB9CisgICAgICAgIDo6aGlnaGxpZ2h0KGV4YW1wbGUtaGlnaGxpZ2h0Mikgewor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAgIGNvbG9yOnJl
ZDsKKyAgICAgICAgfQorICAgICAgICA6OmhpZ2hsaWdodChleGFtcGxlLWhpZ2hsaWdodDMpIHsK
KyAgICAgICAgICAgIGNvbG9yOnBpbms7CisgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorICAgIDxzcGFuIGlkPSJpbWcxIj48aW1nIHNyYz0iLi4vLi4vaW1hZ2Vz
L3BhdHRlcm4ucG5nIj48L3NwYW4+CisgICAgPHNwYW4gaWQ9ImltZzIiPjxpbWcgc3JjPSIuLi8u
Li9pbWFnZXMvcGF0dGVybi5wbmciPjwvc3Bhbj4KKyAgICA8c3BhbiBpZD0iaW1nMyI+PGltZyBz
cmM9Ii4uLy4uL2ltYWdlcy9wYXR0ZXJuLnBuZyI+PC9zcGFuPgorCisgICAgPHNjcmlwdD4KKyAg
ICAgICAgbGV0IGltYWdlRWxlbWVudDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScp
OworICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VH
cm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBpbWFnZUVsZW1lbnQxLmNoaWxk
Tm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hp
bGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxfSkpOworCisgICAgICAgIGxldCBpbWFnZUVsZW1lbnQy
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZzInKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdo
dFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtz
dGFydENvbnRhaW5lcjogaW1hZ2VFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDog
MCwgZW5kQ29udGFpbmVyOiBpbWFnZUVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDog
MX0pKTsKKworICAgICAgICBsZXQgaW1hZ2VFbGVtZW50MyA9IGRvY3VtZW50LmdldEVsZW1lbnRC
eUlkKCdpbWczJyk7CisgICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdo
bGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGltYWdlRWxl
bWVudDMuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogaW1hZ2VF
bGVtZW50My5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDF9KSk7CisgICAgICAgIAorCisgICAg
ICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0UmFu
Z2VHcm91cDEpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0
MiIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJl
eGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGlnaHRSYW5nZUdyb3VwMyk7CisgICAgPC9zY3JpcHQ+
Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410883</attachid>
            <date>2020-10-08 14:14:27 -0700</date>
            <delta_ts>2020-10-08 22:31:47 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217417-20201008141426.patch</filename>
            <type>text/plain</type>
            <size>14848</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY3OTY5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTE2MTIzNmMwMDY1Yjdk
ZjVjODdhOTI5NjU0NTJhYjE0MDgzMTMyMC4uZjI4ZTA2NjJmOWY3ZjViNzk0YjYzZjgzZTcxZWM5
NmVmNmZiZDRjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTEwLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NT
IGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzQxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg0NTkwNTQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgdG8gcGFpbnQgQ1NTIHBzZXVkbyBoaWdobGlnaHRzIG92ZXIgaW1hZ2VzIHRoYXQgYXJl
IGluIHRoZSAKKyAgICAgICAgcmFuZ2Ugb2YgdGhlIGRlZmluZWQgaGlnaGxpZ2h0LgorCisgICAg
ICAgIFRlc3Q6IGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2Uu
aHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcik6CisgICAg
ICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBvdGVu
dGlhbEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxh
Y2VkOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisKIDIw
MjAtMTAtMDUgIEFudHRpIEtvaXZpc3RvICA8YW50dGlAYXBwbGUuY29tPgogCiAgICAgICAgIFtM
RkNdW0ludGVncmF0aW9uXSBNb3ZlIERpc3BsYXk6OklubGluZUNvbnRlbnQgdG8gTGF5b3V0SW50
ZWdyYXRpb24gbmFtZXNwYWNlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
SGlnaGxpZ2h0RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0
YS5jcHAKaW5kZXggMmVmN2JhNzUxNTczYjI4OTlhY2QzZTZkZjJjZDcxODY3MTJiOWIwNS4uYWEw
ZTgwYTJmMDA0MmRjODRmNzFhNWZmMzMzZmJhMDI5YzRkNTRjMCAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVk
ZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJGcmFtZVNlbGVjdGlvbi5oIgorI2luY2x1ZGUgIkhp
Z2hsaWdodFJhbmdlR3JvdXAuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCiAjaW5jbHVkZSAiUG9z
aXRpb24uaCIKICNpbmNsdWRlICJSYW5nZS5oIgpAQCAtMTYyLDcgKzE2MywyMyBAQCB2b2lkIEhp
Z2hsaWdodERhdGE6OnNldFJlbmRlclJhbmdlKGNvbnN0IFJlbmRlclJhbmdlJiByZW5kZXJSYW5n
ZSkKICAgICBtX3JlbmRlclJhbmdlID0gcmVuZGVyUmFuZ2U7CiB9CiAKLVJlbmRlck9iamVjdDo6
SGlnaGxpZ2h0U3RhdGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcihS
ZW5kZXJPYmplY3QmIHJlbmRlcmVyKQorYm9vbCBIaWdobGlnaHREYXRhOjpzZXRSZW5kZXJSYW5n
ZShIaWdobGlnaHRSYW5nZURhdGEmIHJhbmdlRGF0YSkKK3sKKyAgICBQb3NpdGlvbiBzdGFydFBv
c2l0aW9uID0gcmFuZ2VEYXRhLnN0YXJ0UG9zaXRpb24udmFsdWUoKTsKKyAgICBQb3NpdGlvbiBl
bmRQb3NpdGlvbiA9IHJhbmdlRGF0YS5lbmRQb3NpdGlvbi52YWx1ZSgpOworICAgIGF1dG8qIHN0
YXJ0UmVuZGVyZXIgPSBzdGFydFBvc2l0aW9uLmNvbnRhaW5lck5vZGUoKS0+cmVuZGVyZXIoKTsK
KyAgICB1bnNpZ25lZCBzdGFydE9mZnNldCA9IHN0YXJ0UG9zaXRpb24uY29tcHV0ZU9mZnNldElu
Q29udGFpbmVyTm9kZSgpOworICAgIGF1dG8qIGVuZFJlbmRlcmVyID0gZW5kUG9zaXRpb24uY29u
dGFpbmVyTm9kZSgpLT5yZW5kZXJlcigpOworICAgIHVuc2lnbmVkIGVuZE9mZnNldCA9IGVuZFBv
c2l0aW9uLmNvbXB1dGVPZmZzZXRJbkNvbnRhaW5lck5vZGUoKTsKKyAgICAKKyAgICBpZiAoIXN0
YXJ0UmVuZGVyZXIgfHwgIWVuZFJlbmRlcmVyKQorICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAg
ICBzZXRSZW5kZXJSYW5nZSh7IHN0YXJ0UmVuZGVyZXIsIGVuZFJlbmRlcmVyLCBzdGFydE9mZnNl
dCwgZW5kT2Zmc2V0IH0pOworICAgIHJldHVybiB0cnVlOworfQorCitSZW5kZXJPYmplY3Q6Okhp
Z2hsaWdodFN0YXRlIEhpZ2hsaWdodERhdGE6OmhpZ2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoY29u
c3QgUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKIHsKICAgICBpZiAoJnJlbmRlcmVyID09IG1fcmVu
ZGVyUmFuZ2Uuc3RhcnQoKSkgewogICAgICAgICBpZiAobV9yZW5kZXJSYW5nZS5zdGFydCgpICYm
IG1fcmVuZGVyUmFuZ2UuZW5kKCkgJiYgbV9yZW5kZXJSYW5nZS5zdGFydCgpID09IG1fcmVuZGVy
UmFuZ2UuZW5kKCkpCkBAIC0xNzMsMTQgKzE5MCwxMSBAQCBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdo
dFN0YXRlIEhpZ2hsaWdodERhdGE6OmhpZ2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoUmVuZGVyT2Jq
ZQogICAgIGlmICgmcmVuZGVyZXIgPT0gbV9yZW5kZXJSYW5nZS5lbmQoKSkKICAgICAgICAgcmV0
dXJuIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGU6OkVuZDsKIAotICAgIFJlbmRlck9iamVj
dCogaGlnaGxpZ2h0RW5kID0gbnVsbHB0cjsKLSAgICBhdXRvKiBoaWdobGlnaHREYXRhRW5kID0g
bV9yZW5kZXJSYW5nZS5lbmQoKTsKLSAgICBpZiAoaGlnaGxpZ2h0RGF0YUVuZCkKLSAgICAgICAg
aGlnaGxpZ2h0RW5kID0gcmVuZGVyZXJBZnRlck9mZnNldCgqaGlnaGxpZ2h0RGF0YUVuZCwgbV9y
ZW5kZXJSYW5nZS5lbmRPZmZzZXQoKS52YWx1ZSgpKTsKLSAgICBVTlVTRURfUEFSQU0oaGlnaGxp
Z2h0RW5kKTsKKyAgICBhdXRvKiBoaWdobGlnaHRFbmQgPSByZW5kZXJlckFmdGVyT2Zmc2V0KCpt
X3JlbmRlclJhbmdlLmVuZCgpLCBtX3JlbmRlclJhbmdlLmVuZE9mZnNldCgpLnZhbHVlKCkpOwor
ICAgIAogICAgIEhpZ2hsaWdodEl0ZXJhdG9yIGhpZ2hsaWdodEl0ZXJhdG9yKG1fcmVuZGVyUmFu
Z2Uuc3RhcnQoKSk7Ci0gICAgZm9yIChhdXRvKiBjdXJyZW50UmVuZGVyZXIgPSBtX3JlbmRlclJh
bmdlLnN0YXJ0KCk7IGN1cnJlbnRSZW5kZXJlciAmJiBjdXJyZW50UmVuZGVyZXIgIT0gbV9yZW5k
ZXJSYW5nZS5lbmQoKTsgY3VycmVudFJlbmRlcmVyID0gaGlnaGxpZ2h0SXRlcmF0b3IubmV4dCgp
KSB7Ci0gICAgICAgIGlmIChjdXJyZW50UmVuZGVyZXIgPT0gbV9yZW5kZXJSYW5nZS5zdGFydCgp
IHx8IGN1cnJlbnRSZW5kZXJlciA9PSBtX3JlbmRlclJhbmdlLmVuZCgpKQorICAgIGZvciAoYXV0
byogY3VycmVudFJlbmRlcmVyID0gbV9yZW5kZXJSYW5nZS5zdGFydCgpOyBjdXJyZW50UmVuZGVy
ZXIgJiYgY3VycmVudFJlbmRlcmVyICE9IGhpZ2hsaWdodEVuZDsgY3VycmVudFJlbmRlcmVyID0g
aGlnaGxpZ2h0SXRlcmF0b3IubmV4dCgpKSB7CisgICAgICAgIGlmIChjdXJyZW50UmVuZGVyZXIg
PT0gbV9yZW5kZXJSYW5nZS5zdGFydCgpIHx8IGN1cnJlbnRSZW5kZXJlciA9PSBoaWdobGlnaHRF
bmQpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYgKCFjdXJyZW50UmVuZGVyZXIt
PmNhbkJlU2VsZWN0aW9uTGVhZigpKQogICAgICAgICAgICAgY29udGludWU7CmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5oIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaAppbmRleCBhZDgwZmQzZDZlM2U5YTZkMGNhMzE1
MTQyMzBlMjRjMjM5MGMxMzE0Li4xYTk4Y2M5N2M3NmQyODkzMjk2MDcxYjUzZDA5ZWMwNGIzMzI5
M2QwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmgKQEAgLTM3LDYg
KzM3LDggQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBIaWdobGln
aHRSYW5nZURhdGE7CiAgICAgCiBjbGFzcyBIaWdobGlnaHREYXRhIHsKIHB1YmxpYzoKQEAgLTcx
LDYgKzczLDcgQEAgcHVibGljOgogICAgIH07CiAgICAgCiAgICAgdm9pZCBzZXRSZW5kZXJSYW5n
ZShjb25zdCBSZW5kZXJSYW5nZSYpOworICAgIGJvb2wgc2V0UmVuZGVyUmFuZ2UoSGlnaGxpZ2h0
UmFuZ2VEYXRhJik7CiAgICAgCiAgICAgZW51bSBjbGFzcyBSZXBhaW50TW9kZSB7IE5ld1hPUk9s
ZCwgTmV3TWludXNPbGQsIE5vdGhpbmcgfTsKICAgICB2b2lkIHNldFNlbGVjdGlvbihjb25zdCBS
ZW5kZXJSYW5nZSYsIFJlcGFpbnRNb2RlID0gUmVwYWludE1vZGU6Ok5ld1hPUk9sZCk7CkBAIC04
Nyw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IGJvdW5kc0NsaXBwZWRUb1Zpc2libGVD
b250ZW50KCkgY29uc3QgeyByZXR1cm4gY29sbGVjdEJvdW5kcyhDbGlwVG9WaXNpYmxlQ29udGVu
dDo6WWVzKTsgfQogICAgIHZvaWQgcmVwYWludFNlbGVjdGlvbigpIGNvbnN0OwogICAgIAotICAg
IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgaGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcihS
ZW5kZXJPYmplY3QmKTsKKyAgICBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIGhpZ2hsaWdo
dFN0YXRlRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0Jik7CiAKIHByaXZhdGU6CiAgICAg
ZW51bSBjbGFzcyBDbGlwVG9WaXNpYmxlQ29udGVudCB7IFllcywgTm8gfTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDI1NzFiNjU0MmE0NmViNjU1
YTAzMmVkMWU5ZjAxYWU3Nzg2NzIwMWUuLjkyMzVkMTA1NDkwOThkOTIzODdlMTMyNjljMjgyMzM0
MjM3ZjUwZTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBs
YWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNw
cApAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVkZSAi
SFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKKyNpbmNs
dWRlICJIaWdobGlnaHREYXRhLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0TWFwLmgiCiAjaW5jbHVk
ZSAiSW5saW5lRWxlbWVudEJveC5oIgogI2luY2x1ZGUgIkxheW91dFJlcGFpbnRlci5oIgogI2lu
Y2x1ZGUgIlJlbmRlckJsb2NrLmgiCkBAIC0xNDYsNiArMTQ4LDM4IEBAIGlubGluZSBzdGF0aWMg
Ym9vbCBkcmFnZ2VkQ29udGVudENvbnRhaW5zUmVwbGFjZWRFbGVtZW50KGNvbnN0IFZlY3RvcjxS
ZW5kZXJlZERvCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFJlbmRlclJlcGxhY2VkOjpz
aG91bGREcmF3SGlnaGxpZ2h0KFBhaW50SW5mbyYgcGFpbnRJbmZvKSBjb25zdAoreworICAgIHJl
dHVybiAhZG9jdW1lbnQoKS5wcmludGluZygpICYmICFwYWludEluZm8ucGFpbnRCZWhhdmlvci5j
b250YWlucyhQYWludEJlaGF2aW9yOjpFeGNsdWRlU2VsZWN0aW9uKTsKK30KKworQ29sb3IgUmVu
ZGVyUmVwbGFjZWQ6OnBvdGVudGlhbEhpZ2hsaWdodENvbG9yKCkgY29uc3QKK3sKKyAgICBjb25z
dCBSZW5kZXJTdHlsZSogcGFyZW50U3R5bGUgPSBudWxscHRyOworICAgIGF1dG8qIHBhcmVudFJl
bmRlcmVyID0gcGFyZW50KCk7CisgICAgaWYgKCFwYXJlbnRSZW5kZXJlcikKKyAgICAgICAgcmV0
dXJuIENvbG9yKCk7CisgICAgcGFyZW50U3R5bGUgPSAmcGFyZW50UmVuZGVyZXItPnN0eWxlKCk7
CisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBkb2N1bWVudCgpLmhpZ2hsaWdodE1hcCgpLm1h
cCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgcmFuZ2VEYXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5y
YW5nZXNEYXRhKCkpIHsKKyAgICAgICAgICAgIGlmICghcmFuZ2VEYXRhLT5zdGFydFBvc2l0aW9u
IHx8ICFyYW5nZURhdGEtPmVuZFBvc2l0aW9uKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOwor
ICAgIAorICAgICAgICAgICAgYXV0byBoaWdobGlnaHREYXRhID0gSGlnaGxpZ2h0RGF0YSh2aWV3
KCkpOworICAgICAgICAgICAgaWYgKCFoaWdobGlnaHREYXRhLnNldFJlbmRlclJhbmdlKHJhbmdl
RGF0YSkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgICAgICAgICAKKyAgICAgICAg
ICAgIGF1dG8gc3RhdGUgPSBoaWdobGlnaHREYXRhLmhpZ2hsaWdodFN0YXRlRm9yUmVuZGVyZXIo
KnRoaXMpOworICAgICAgICAgICAgaWYgKCF2ZXJpZnlTZWxlY3Rpb25TdGF0ZShzdGF0ZSwgaGln
aGxpZ2h0RGF0YSkpCisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlm
IChhdXRvIHN0eWxlID0gcGFyZW50UmVuZGVyZXItPmdldFVuY2FjaGVkUHNldWRvU3R5bGUoeyBQ
c2V1ZG9JZDo6SGlnaGxpZ2h0LCBoaWdobGlnaHQua2V5IH0sIHBhcmVudFN0eWxlKSkKKyAgICAg
ICAgICAgICAgICByZXR1cm4gc3R5bGUtPmJhY2tncm91bmRDb2xvcigpOworICAgICAgICB9Cisg
ICAgfQorICAgIHJldHVybiBDb2xvcigpOworfQorCiB2b2lkIFJlbmRlclJlcGxhY2VkOjpwYWlu
dChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQog
ewogICAgIGlmICghc2hvdWxkUGFpbnQocGFpbnRJbmZvLCBwYWludE9mZnNldCkpCkBAIC0xOTUs
NiArMjI5LDE0IEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAgICAgaWYgKCFwYWludEluZm8u
c2hvdWxkUGFpbnRXaXRoaW5Sb290KCp0aGlzKSkKICAgICAgICAgcmV0dXJuOwogICAgIAorICAg
IGJvb2wgZHJhd0hpZ2hsaWdodCA9IHNob3VsZERyYXdIaWdobGlnaHQocGFpbnRJbmZvKTsKKyAg
ICBDb2xvciBoaWdobGlnaHRDb2xvcjsKKyAgICBpZiAoZHJhd0hpZ2hsaWdodCkgeworICAgICAg
ICBoaWdobGlnaHRDb2xvciA9IHBvdGVudGlhbEhpZ2hsaWdodENvbG9yKCk7CisgICAgICAgIGlm
ICghaGlnaGxpZ2h0Q29sb3IuaXNWaXNpYmxlKCkpCisgICAgICAgICAgICBkcmF3SGlnaGxpZ2h0
ID0gZmFsc2U7CisgICAgfQorICAgIAogICAgIGJvb2wgZHJhd1NlbGVjdGlvblRpbnQgPSBzaG91
bGREcmF3U2VsZWN0aW9uVGludCgpOwogICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQ
aGFzZTo6U2VsZWN0aW9uKSB7CiAgICAgICAgIGlmIChzZWxlY3Rpb25TdGF0ZSgpID09IEhpZ2hs
aWdodFN0YXRlOjpOb25lKQpAQCAtMjI4LDYgKzI3MCwxMyBAQCB2b2lkIFJlbmRlclJlcGxhY2Vk
OjpwYWludChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zm
c2V0KQogICAgICAgICBzZWxlY3Rpb25QYWludGluZ1JlY3QubW92ZUJ5KGFkanVzdGVkUGFpbnRP
ZmZzZXQpOwogICAgICAgICBwYWludEluZm8uY29udGV4dCgpLmZpbGxSZWN0KHNuYXBwZWRJbnRS
ZWN0KHNlbGVjdGlvblBhaW50aW5nUmVjdCksIHNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpKTsK
ICAgICB9CisgICAgCisgICAgaWYgKGRyYXdIaWdobGlnaHQpIHsKKyAgICAgICAgYXV0byBzZWxl
Y3Rpb25QYWludGluZ1JlY3QgPSBsb2NhbFNlbGVjdGlvblJlY3QoZmFsc2UpOworICAgICAgICBz
ZWxlY3Rpb25QYWludGluZ1JlY3QubW92ZUJ5KGFkanVzdGVkUGFpbnRPZmZzZXQpOworICAgICAg
ICBwYWludEluZm8uY29udGV4dCgpLmZpbGxSZWN0KHNuYXBwZWRJbnRSZWN0KHNlbGVjdGlvblBh
aW50aW5nUmVjdCksIGhpZ2hsaWdodENvbG9yKTsKKyAgICB9CisKIH0KIAogYm9vbCBSZW5kZXJS
ZXBsYWNlZDo6c2hvdWxkUGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JiBwYWludE9mZnNldCkKQEAgLTY3OSwxOSArNzI4LDIzIEBAIHZvaWQgUmVuZGVyUmVwbGFj
ZWQ6OnNldFNlbGVjdGlvblN0YXRlKEhpZ2hsaWdodFN0YXRlIHN0YXRlKQogICAgIFJlbmRlckJv
eDo6c2V0U2VsZWN0aW9uU3RhdGUoc3RhdGUpOwogCiAgICAgaWYgKG1faW5saW5lQm94V3JhcHBl
ciAmJiBjYW5VcGRhdGVTZWxlY3Rpb25PblJvb3RMaW5lQm94ZXMoKSkKLSAgICAgICAgbV9pbmxp
bmVCb3hXcmFwcGVyLT5yb290KCkuc2V0SGFzU2VsZWN0ZWRDaGlsZHJlbihpc1NlbGVjdGVkKCkp
OworICAgICAgICBtX2lubGluZUJveFdyYXBwZXItPnJvb3QoKS5zZXRIYXNTZWxlY3RlZENoaWxk
cmVuKHZlcmlmeVNlbGVjdGlvblN0YXRlKHNlbGVjdGlvblN0YXRlKCksIHZpZXcoKS5zZWxlY3Rp
b24oKSkpOwogfQogCiBib29sIFJlbmRlclJlcGxhY2VkOjppc1NlbGVjdGVkKCkgY29uc3QKIHsK
LSAgICBIaWdobGlnaHRTdGF0ZSBzdGF0ZSA9IHNlbGVjdGlvblN0YXRlKCk7CisgICAgcmV0dXJu
IHZlcmlmeVNlbGVjdGlvblN0YXRlKHNlbGVjdGlvblN0YXRlKCksIHZpZXcoKS5zZWxlY3Rpb24o
KSk7Cit9CisKK2Jvb2wgUmVuZGVyUmVwbGFjZWQ6OnZlcmlmeVNlbGVjdGlvblN0YXRlKEhpZ2hs
aWdodFN0YXRlIHN0YXRlLCBIaWdobGlnaHREYXRhJiByYW5nZURhdGEpIGNvbnN0Cit7CiAgICAg
aWYgKHN0YXRlID09IEhpZ2hsaWdodFN0YXRlOjpOb25lKQogICAgICAgICByZXR1cm4gZmFsc2U7
CiAgICAgaWYgKHN0YXRlID09IEhpZ2hsaWdodFN0YXRlOjpJbnNpZGUpCiAgICAgICAgIHJldHVy
biB0cnVlOwogCi0gICAgYXV0byBzZWxlY3Rpb25TdGFydCA9IHZpZXcoKS5zZWxlY3Rpb24oKS5z
dGFydE9mZnNldCgpOwotICAgIGF1dG8gc2VsZWN0aW9uRW5kID0gdmlldygpLnNlbGVjdGlvbigp
LmVuZE9mZnNldCgpOworICAgIGF1dG8gc2VsZWN0aW9uU3RhcnQgPSByYW5nZURhdGEuc3RhcnRP
ZmZzZXQoKTsKKyAgICBhdXRvIHNlbGVjdGlvbkVuZCA9IHJhbmdlRGF0YS5lbmRPZmZzZXQoKTsK
ICAgICBpZiAoc3RhdGUgPT0gSGlnaGxpZ2h0U3RhdGU6OlN0YXJ0KQogICAgICAgICByZXR1cm4g
IXNlbGVjdGlvblN0YXJ0OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5oCmluZGV4IGU2NGMzZDc1ZDgwMTk2NTE4ODNmMTkxY2FhMzdmODk1YjRhYzFhYmUuLjYxODhm
NTE4NjJkODE3NGQyNTkyODU0MDgzMDc4NDhjNGRiNzUyYjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oCkBAIC05NCw2ICs5NCwxMCBAQCBwcml2YXRlOgogICAg
IHZvaWQgY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyQm94
KiwgRmxvYXRTaXplJiBjb25zdHJhaW5lZFNpemUsIGRvdWJsZSYgaW50cmluc2ljUmF0aW8pIGNv
bnN0OwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERyYXdTZWxlY3Rpb25UaW50KCkgY29uc3Q7
CisgICAgCisgICAgdmlydHVhbCBib29sIHNob3VsZERyYXdIaWdobGlnaHQoUGFpbnRJbmZvJikg
Y29uc3Q7CisgICAgdmlydHVhbCBDb2xvciBwb3RlbnRpYWxIaWdobGlnaHRDb2xvcigpIGNvbnN0
OworICAgIGJvb2wgdmVyaWZ5U2VsZWN0aW9uU3RhdGUoSGlnaGxpZ2h0U3RhdGUsIEhpZ2hsaWdo
dERhdGEmKSBjb25zdDsKIAogICAgIG11dGFibGUgTGF5b3V0U2l6ZSBtX2ludHJpbnNpY1NpemU7
CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hh
bmdlTG9nCmluZGV4IDQxMDljMzA1YjQ3ZjRjMzg4OGE5ZmFkZDRhOTA5YWMxYmI3ODQwY2EuLjMy
ZjZiMDc5Zjg3MDJkYmI1NWM0NTA3YjcyYmY0MDhmNmQxODkzYzkgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwx
MyBAQAorMjAyMC0xMC0wNiAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUuY29t
PgorCisgICAgICAgIFBhaW50IENTUyBoaWdobGlnaHRzIG92ZXIgaW1hZ2VzCisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc0MTcKKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIGh0dHAvd3B0L2Nzcy9jc3Mt
aGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UtZXhwZWN0ZWQuaHRtbDogQWRkZWQuCisgICAg
ICAgICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1s
OiBBZGRlZC4KKwogMjAyMC0xMC0wNSAgRGllZ28gUGlubyBHYXJjaWEgIDxkcGlub0BpZ2FsaWEu
Y29tPgogCiAgICAgICAgIFtHTElCXSBVbnJldmlld2VkIHRlc3QgZ2FyZGVuaW5nLiBNZXJnZSBj
b21tb24gR1RLIGFuZCBXUEUgYmFzZWxpbmVzIGFuZCBlbWl0IG5ldyBiYXNlbGluZXMgZm9yIFdQ
RSB0ZXN0cyBhZnRlciByMjY3OTYwLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
Y3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC5odG1sIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1l
eHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLmZiMDhiNjBhY2UwMDI1ZGI1Yzc2OTAxZTUzNTFkMDNj
NmY0ZjA1MDMKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3Nz
LWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLWV4cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwz
NiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9
InV0Zi04Ij4KKyAgICA8dGl0bGU+TXVsdGlwbGUgY3VzdG9tIGhpZ2hsaWdodCBwc2V1ZG8gZWxl
bWVudHMuPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRz
LmNzc3dnLm9yZy9jc3MtaGlnaGxpZ2h0LWFwaS0xLyNjcmVhdGluZy1oaWdobGlnaHRzIj4KKyAg
ICA8bGluayByZWw9Im1hdGNoIiBocmVmPSJoaWdobGlnaHQtdGV4dC1leHBlY3RlZC5odG1sIj4K
KyAgICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ik11bHRpcGxlIGhpZ2hsaWdodHMgc2hv
dWxkIGJlIGFibGUgdG8gYmUgc3BlY2lmaWVkLiI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAg
I3N0eWxlMSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwwLDAsLjUp
OworICAgICAgICAgICAgY29sb3I6Z3JlZW47CisgICAgICAgIH0KKyAgICAgICAgI3N0eWxlMiB7
CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVlOworICAgICAgICAgICAgY29sb3I6
cmVkOworICAgICAgICB9CisgICAgICAgICNzdHlsZTMgeworICAgICAgICAgICAgY29sb3I6cGlu
azsKKyAgICAgICAgfQorICAgICAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPHNw
YW4gc3R5bGU9InBvc2l0aW9uOiByZWxhdGl2ZTsgZGlzcGxheTogaW5saW5lLWJsb2NrOyI+Cisg
ICAgICAgIDxpbWcgc3JjPSIuLi8uLi9pbWFnZXMvcGF0dGVybi5wbmciPgorICAgICAgICA8c3Bh
biBzdHlsZT0icG9zaXRpb246IGFic29sdXRlOyB0b3A6IDA7IHJpZ2h0OiAwOyBib3R0b206IDA7
IGxlZnQ6IDA7IGJhY2tncm91bmQ6IHJnYmEoMjAwLDAsMCwuNSk7Ij48L3NwYW4+CisgICAgPC9z
cGFuPgorICAgIDxzcGFuIHN0eWxlPSJwb3NpdGlvbjogcmVsYXRpdmU7IGRpc3BsYXk6IGlubGlu
ZS1ibG9jazsiPgorICAgICAgICA8aW1nIHNyYz0iLi4vLi4vaW1hZ2VzL3BhdHRlcm4ucG5nIj4K
KyAgICAgICAgPHNwYW4gc3R5bGU9InBvc2l0aW9uOiBhYnNvbHV0ZTsgdG9wOiAwOyByaWdodDog
MDsgYm90dG9tOiAwOyBsZWZ0OiAwOyBiYWNrZ3JvdW5kOiBibHVlOyI+PC9zcGFuPgorICAgIDwv
c3Bhbj4KKyAgICA8c3BhbiBzdHlsZT0icG9zaXRpb246IHJlbGF0aXZlOyI+CisgICAgICAgIDxp
bWcgc3JjPSIuLi8uLi9pbWFnZXMvcGF0dGVybi5wbmciPgorICAgIDwvc3Bhbj4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxp
Z2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9j
c3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5lZDdmMTY0
ZmMyZjM5NDlkMzg1ZDMwNWY0NDNiYjliMDBlYmI2OTljCi0tLSAvZGV2L251bGwKKysrIGIvTGF5
b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5o
dG1sCkBAIC0wLDAgKzEsNDQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAg
ICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPk11bHRpcGxlIGN1c3RvbSBoaWdo
bGlnaHQgcHNldWRvIGVsZW1lbnRzLjwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVm
PSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWhpZ2hsaWdodC1hcGktMS8jY3JlYXRpbmct
aGlnaGxpZ2h0cyI+CisgICAgPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iaGlnaGxpZ2h0LXRleHQt
ZXhwZWN0ZWQuaHRtbCI+CisgICAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJNdWx0aXBs
ZSBoaWdobGlnaHRzIHNob3VsZCBiZSBhYmxlIHRvIGJlIHNwZWNpZmllZC4iPgorICAgICAgICA8
c3R5bGU+CisgICAgICAgIDo6aGlnaGxpZ2h0KGV4YW1wbGUtaGlnaGxpZ2h0MSkgeworICAgICAg
ICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsMCwwLC41KTsKKyAgICAgICAgICAgIGNv
bG9yOmdyZWVuOworICAgICAgICB9CisgICAgICAgIDo6aGlnaGxpZ2h0KGV4YW1wbGUtaGlnaGxp
Z2h0MikgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAg
IGNvbG9yOnJlZDsKKyAgICAgICAgfQorICAgICAgICA6OmhpZ2hsaWdodChleGFtcGxlLWhpZ2hs
aWdodDMpIHsKKyAgICAgICAgICAgIGNvbG9yOnBpbms7CisgICAgICAgIH0KKyAgICAgICAgPC9z
dHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxzcGFuIGlkPSJpbWcxIj48aW1nIHNyYz0iLi4v
Li4vaW1hZ2VzL3BhdHRlcm4ucG5nIj48L3NwYW4+CisgICAgPHNwYW4gaWQ9ImltZzIiPjxpbWcg
c3JjPSIuLi8uLi9pbWFnZXMvcGF0dGVybi5wbmciPjwvc3Bhbj4KKyAgICA8c3BhbiBpZD0iaW1n
MyI+PGltZyBzcmM9Ii4uLy4uL2ltYWdlcy9wYXR0ZXJuLnBuZyI+PC9zcGFuPgorCisgICAgPHNj
cmlwdD4KKyAgICAgICAgbGV0IGltYWdlRWxlbWVudDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJ
ZCgnaW1nMScpOworICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxp
Z2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBpbWFnZUVsZW1l
bnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IGltYWdlRWxl
bWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxfSkpOworCisgICAgICAgIGxldCBpbWFn
ZUVsZW1lbnQyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZzInKTsKKyAgICAgICAgbGV0
IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRp
Y1JhbmdlKHtzdGFydENvbnRhaW5lcjogaW1hZ2VFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFy
dE9mZnNldDogMCwgZW5kQ29udGFpbmVyOiBpbWFnZUVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIGVu
ZE9mZnNldDogMX0pKTsKKworICAgICAgICBsZXQgaW1hZ2VFbGVtZW50MyA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCdpbWczJyk7CisgICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9
IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6
IGltYWdlRWxlbWVudDMuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5l
cjogaW1hZ2VFbGVtZW50My5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDF9KSk7CisgICAgICAg
IAorCisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGln
aGxpZ2h0UmFuZ2VHcm91cDEpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUt
aGlnaGxpZ2h0MiIsIGhpZ2hsaWdodFJhbmdlR3JvdXAyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdo
dHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdobGlnaHRSYW5nZUdyb3VwMyk7CisgICAg
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>410915</attachid>
            <date>2020-10-08 22:31:49 -0700</date>
            <delta_ts>2020-10-12 18:20:22 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217417-20201008223148.patch</filename>
            <type>text/plain</type>
            <size>15841</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhhMmY5Y2MwNDQ0NDBm
NGE1ZjgwN2RhOTlhZWYwZWFmOTU1NWI0Mi4uOWM2ZDc1OWZiMTcwZjdmMmIwZGVkZWRmNDI2Mjky
YjIzNjNiNmM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTEwLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NT
IGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzQxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg0NTkwNTQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgdG8gcGFpbnQgQ1NTIHBzZXVkbyBoaWdobGlnaHRzIG92ZXIgaW1hZ2VzIHRoYXQgYXJl
IGluIHRoZSAKKyAgICAgICAgcmFuZ2Ugb2YgdGhlIGRlZmluZWQgaGlnaGxpZ2h0LgorCisgICAg
ICAgIFRlc3Q6IGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2Uu
aHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcik6CisgICAg
ICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBvdGVu
dGlhbEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxh
Y2VkOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisKIDIw
MjAtMTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01vdGlvbk1hcmtdIEFkZCBhIGZhc3QgcGF0aCBmb3IgR3JhcGhpY3NDb250ZXh0OjpzdHJv
a2VQYXRoIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBwYXRoIGlzIGEgbGluZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCmluZGV4IDJlZjdiYTc1MTU3M2IyODk5YWNk
M2U2ZGYyY2Q3MTg2NzEyYjliMDUuLmFmN2E0MWRiYTEwMzgwNmZlOGJlNWU0NzdjYzBhM2I3ZGRj
NDg3Y2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVT
ZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAg
LTE2Miw3ICsxNjMsMjQgQEAgdm9pZCBIaWdobGlnaHREYXRhOjpzZXRSZW5kZXJSYW5nZShjb25z
dCBSZW5kZXJSYW5nZSYgcmVuZGVyUmFuZ2UpCiAgICAgbV9yZW5kZXJSYW5nZSA9IHJlbmRlclJh
bmdlOwogfQogCi1SZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIEhpZ2hsaWdodERhdGE6Omhp
Z2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK2Jvb2wgSGln
aGxpZ2h0RGF0YTo6c2V0UmVuZGVyUmFuZ2UoSGlnaGxpZ2h0UmFuZ2VEYXRhJiByYW5nZURhdGEp
Cit7CisgICAgYXV0byBzdGFydFBvc2l0aW9uID0gcmFuZ2VEYXRhLnN0YXJ0UG9zaXRpb24udmFs
dWUoKTsKKyAgICBhdXRvIGVuZFBvc2l0aW9uID0gcmFuZ2VEYXRhLmVuZFBvc2l0aW9uLnZhbHVl
KCk7CisgICAgCisgICAgYXV0byogc3RhcnRSZW5kZXJlciA9IHN0YXJ0UG9zaXRpb24uY29udGFp
bmVyTm9kZSgpLT5yZW5kZXJlcigpOworICAgIHVuc2lnbmVkIHN0YXJ0T2Zmc2V0ID0gc3RhcnRQ
b3NpdGlvbi5jb21wdXRlT2Zmc2V0SW5Db250YWluZXJOb2RlKCk7CisgICAgYXV0byogZW5kUmVu
ZGVyZXIgPSBlbmRQb3NpdGlvbi5jb250YWluZXJOb2RlKCktPnJlbmRlcmVyKCk7CisgICAgdW5z
aWduZWQgZW5kT2Zmc2V0ID0gZW5kUG9zaXRpb24uY29tcHV0ZU9mZnNldEluQ29udGFpbmVyTm9k
ZSgpOworICAgIAorICAgIGlmICghc3RhcnRSZW5kZXJlciB8fCAhZW5kUmVuZGVyZXIpCisgICAg
ICAgIHJldHVybiBmYWxzZTsKKworICAgIHNldFJlbmRlclJhbmdlKHsgc3RhcnRSZW5kZXJlciwg
ZW5kUmVuZGVyZXIsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgfSk7CisgICAgcmV0dXJuIHRydWU7
Cit9CisKK1JlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxp
Z2h0U3RhdGVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAg
IGlmICgmcmVuZGVyZXIgPT0gbV9yZW5kZXJSYW5nZS5zdGFydCgpKSB7CiAgICAgICAgIGlmICht
X3JlbmRlclJhbmdlLnN0YXJ0KCkgJiYgbV9yZW5kZXJSYW5nZS5lbmQoKSAmJiBtX3JlbmRlclJh
bmdlLnN0YXJ0KCkgPT0gbV9yZW5kZXJSYW5nZS5lbmQoKSkKQEAgLTE3MywxNCArMTkxLDExIEBA
IFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3Rh
dGVGb3JSZW5kZXJlcihSZW5kZXJPYmplCiAgICAgaWYgKCZyZW5kZXJlciA9PSBtX3JlbmRlclJh
bmdlLmVuZCgpKQogICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6
RW5kOwogCi0gICAgUmVuZGVyT2JqZWN0KiBoaWdobGlnaHRFbmQgPSBudWxscHRyOwotICAgIGF1
dG8qIGhpZ2hsaWdodERhdGFFbmQgPSBtX3JlbmRlclJhbmdlLmVuZCgpOwotICAgIGlmIChoaWdo
bGlnaHREYXRhRW5kKQotICAgICAgICBoaWdobGlnaHRFbmQgPSByZW5kZXJlckFmdGVyT2Zmc2V0
KCpoaWdobGlnaHREYXRhRW5kLCBtX3JlbmRlclJhbmdlLmVuZE9mZnNldCgpLnZhbHVlKCkpOwot
ICAgIFVOVVNFRF9QQVJBTShoaWdobGlnaHRFbmQpOworICAgIGF1dG8qIGhpZ2hsaWdodEVuZCA9
IHJlbmRlcmVyQWZ0ZXJPZmZzZXQoKm1fcmVuZGVyUmFuZ2UuZW5kKCksIG1fcmVuZGVyUmFuZ2Uu
ZW5kT2Zmc2V0KCkudmFsdWUoKSk7CisgICAgCiAgICAgSGlnaGxpZ2h0SXRlcmF0b3IgaGlnaGxp
Z2h0SXRlcmF0b3IobV9yZW5kZXJSYW5nZS5zdGFydCgpKTsKLSAgICBmb3IgKGF1dG8qIGN1cnJl
bnRSZW5kZXJlciA9IG1fcmVuZGVyUmFuZ2Uuc3RhcnQoKTsgY3VycmVudFJlbmRlcmVyICYmIGN1
cnJlbnRSZW5kZXJlciAhPSBtX3JlbmRlclJhbmdlLmVuZCgpOyBjdXJyZW50UmVuZGVyZXIgPSBo
aWdobGlnaHRJdGVyYXRvci5uZXh0KCkpIHsKLSAgICAgICAgaWYgKGN1cnJlbnRSZW5kZXJlciA9
PSBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgfHwgY3VycmVudFJlbmRlcmVyID09IG1fcmVuZGVyUmFu
Z2UuZW5kKCkpCisgICAgZm9yIChhdXRvKiBjdXJyZW50UmVuZGVyZXIgPSBtX3JlbmRlclJhbmdl
LnN0YXJ0KCk7IGN1cnJlbnRSZW5kZXJlciAmJiBjdXJyZW50UmVuZGVyZXIgIT0gaGlnaGxpZ2h0
RW5kOyBjdXJyZW50UmVuZGVyZXIgPSBoaWdobGlnaHRJdGVyYXRvci5uZXh0KCkpIHsKKyAgICAg
ICAgaWYgKGN1cnJlbnRSZW5kZXJlciA9PSBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgfHwgY3VycmVu
dFJlbmRlcmVyID09IGhpZ2hsaWdodEVuZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAg
ICBpZiAoIWN1cnJlbnRSZW5kZXJlci0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkpCiAgICAgICAgICAg
ICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGln
aHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5oCmluZGV4
IGFkODBmZDNkNmUzZTlhNmQwY2EzMTUxNDIzMGUyNGMyMzkwYzEzMTQuLjE1MDM1OGU2YWJiN2Yy
ZmUzMGZkOWZmNjA5NTUyNjJmNzBhNGQzM2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9IaWdobGlnaHREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hp
Z2hsaWdodERhdGEuaApAQCAtMzcsNiArMzcsOCBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YTsKICAgICAKIGNsYXNzIEhpZ2hsaWdo
dERhdGEgewogcHVibGljOgpAQCAtNzEsNiArNzMsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICAK
ICAgICB2b2lkIHNldFJlbmRlclJhbmdlKGNvbnN0IFJlbmRlclJhbmdlJik7CisgICAgYm9vbCBz
ZXRSZW5kZXJSYW5nZShIaWdobGlnaHRSYW5nZURhdGEmKTsgLy8gcmV0dXJucyBpZiB0aGUgc2V0
dGluZyBvZiB0aGUgcmVuZGVyUmFuZ2UgZnJvbSB0aGUgSGlnaGxpZ2h0UmFuZ2VEYXRhIGhhcyBi
ZWVuIHN1Y2Nlc3NmdWwuCiAgICAgCiAgICAgZW51bSBjbGFzcyBSZXBhaW50TW9kZSB7IE5ld1hP
Uk9sZCwgTmV3TWludXNPbGQsIE5vdGhpbmcgfTsKICAgICB2b2lkIHNldFNlbGVjdGlvbihjb25z
dCBSZW5kZXJSYW5nZSYsIFJlcGFpbnRNb2RlID0gUmVwYWludE1vZGU6Ok5ld1hPUk9sZCk7CkBA
IC04Nyw3ICs5MCw3IEBAIHB1YmxpYzoKICAgICBJbnRSZWN0IGJvdW5kc0NsaXBwZWRUb1Zpc2li
bGVDb250ZW50KCkgY29uc3QgeyByZXR1cm4gY29sbGVjdEJvdW5kcyhDbGlwVG9WaXNpYmxlQ29u
dGVudDo6WWVzKTsgfQogICAgIHZvaWQgcmVwYWludFNlbGVjdGlvbigpIGNvbnN0OwogICAgIAot
ICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgaGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJl
cihSZW5kZXJPYmplY3QmKTsKKyAgICBSZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIGhpZ2hs
aWdodFN0YXRlRm9yUmVuZGVyZXIoY29uc3QgUmVuZGVyT2JqZWN0Jik7CiAKIHByaXZhdGU6CiAg
ICAgZW51bSBjbGFzcyBDbGlwVG9WaXNpYmxlQ29udGVudCB7IFllcywgTm8gfTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCmluZGV4IDI1NzFiNjU0MmE0NmVi
NjU1YTAzMmVkMWU5ZjAxYWU3Nzg2NzIwMWUuLmY2ZTk2YzljNGY1ZGUzYTA2MjQyM2NjNmY2NjQ1
ODEzOTNhODk4NTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJS
ZXBsYWNlZC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2Vk
LmNwcApAQCAtMzEsNiArMzEsOCBAQAogI2luY2x1ZGUgIkhUTUxFbGVtZW50LmgiCiAjaW5jbHVk
ZSAiSFRNTEltYWdlRWxlbWVudC5oIgogI2luY2x1ZGUgIkhUTUxQYXJzZXJJZGlvbXMuaCIKKyNp
bmNsdWRlICJIaWdobGlnaHREYXRhLmgiCisjaW5jbHVkZSAiSGlnaGxpZ2h0TWFwLmgiCiAjaW5j
bHVkZSAiSW5saW5lRWxlbWVudEJveC5oIgogI2luY2x1ZGUgIkxheW91dFJlcGFpbnRlci5oIgog
I2luY2x1ZGUgIlJlbmRlckJsb2NrLmgiCkBAIC0xNDYsNiArMTQ4LDM3IEBAIGlubGluZSBzdGF0
aWMgYm9vbCBkcmFnZ2VkQ29udGVudENvbnRhaW5zUmVwbGFjZWRFbGVtZW50KGNvbnN0IFZlY3Rv
cjxSZW5kZXJlZERvCiAgICAgcmV0dXJuIGZhbHNlOwogfQogCitib29sIFJlbmRlclJlcGxhY2Vk
OjpzaG91bGREcmF3SGlnaGxpZ2h0KGNvbnN0IFBhaW50SW5mbyYgcGFpbnRJbmZvKSBjb25zdAor
eworICAgIHJldHVybiAhZG9jdW1lbnQoKS5wcmludGluZygpICYmICFwYWludEluZm8ucGFpbnRC
ZWhhdmlvci5jb250YWlucyhQYWludEJlaGF2aW9yOjpFeGNsdWRlU2VsZWN0aW9uKTsKK30KKwor
Q29sb3IgUmVuZGVyUmVwbGFjZWQ6OnBvdGVudGlhbEhpZ2hsaWdodENvbG9yKCkgY29uc3QKK3sK
KyAgICBhdXRvKiBwYXJlbnRSZW5kZXJlciA9IHBhcmVudCgpOworICAgIGlmICghcGFyZW50UmVu
ZGVyZXIpCisgICAgICAgIHJldHVybiBDb2xvcigpOworICAgIGNvbnN0IFJlbmRlclN0eWxlKiBw
YXJlbnRTdHlsZSA9ICZwYXJlbnRSZW5kZXJlci0+c3R5bGUoKTsKKyAgICBmb3IgKGF1dG8mIGhp
Z2hsaWdodCA6IGRvY3VtZW50KCkuaGlnaGxpZ2h0TWFwKCkubWFwKCkpIHsKKyAgICAgICAgZm9y
IChhdXRvJiByYW5nZURhdGEgOiBoaWdobGlnaHQudmFsdWUtPnJhbmdlc0RhdGEoKSkgeworICAg
ICAgICAgICAgaWYgKCFyYW5nZURhdGEtPnN0YXJ0UG9zaXRpb24gfHwgIXJhbmdlRGF0YS0+ZW5k
UG9zaXRpb24pCisgICAgICAgICAgICAgICAgY29udGludWU7CisgICAgCisgICAgICAgICAgICBh
dXRvIGhpZ2hsaWdodERhdGEgPSBIaWdobGlnaHREYXRhKHZpZXcoKSk7CisgICAgICAgICAgICBp
ZiAoIWhpZ2hsaWdodERhdGEuc2V0UmVuZGVyUmFuZ2UocmFuZ2VEYXRhKSkKKyAgICAgICAgICAg
ICAgICBjb250aW51ZTsKKyAgICAgICAgICAgIAorICAgICAgICAgICAgYXV0byBzdGF0ZSA9IGhp
Z2hsaWdodERhdGEuaGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcigqdGhpcyk7CisgICAgICAgICAg
ICBpZiAoIXZlcmlmeVNlbGVjdGlvblN0YXRlKHN0YXRlLCBoaWdobGlnaHREYXRhKSkKKyAgICAg
ICAgICAgICAgICBjb250aW51ZTsKKworICAgICAgICAgICAgaWYgKGF1dG8gc3R5bGUgPSBwYXJl
bnRSZW5kZXJlci0+Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGlnaHQs
IGhpZ2hsaWdodC5rZXkgfSwgcGFyZW50U3R5bGUpKQorICAgICAgICAgICAgICAgIHJldHVybiBz
dHlsZS0+YmFja2dyb3VuZENvbG9yKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIENv
bG9yKCk7Cit9CisKIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJ
bmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFzaG91bGRQ
YWludChwYWludEluZm8sIHBhaW50T2Zmc2V0KSkKQEAgLTE5NSw2ICsyMjgsMTQgQEAgdm9pZCBS
ZW5kZXJSZXBsYWNlZDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JiBwYWludE9mZnNldCkKICAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJv
b3QoKnRoaXMpKQogICAgICAgICByZXR1cm47CiAgICAgCisgICAgYm9vbCBkcmF3SGlnaGxpZ2h0
ID0gc2hvdWxkRHJhd0hpZ2hsaWdodChwYWludEluZm8pOworICAgIENvbG9yIGhpZ2hsaWdodENv
bG9yOworICAgIGlmIChkcmF3SGlnaGxpZ2h0KSB7CisgICAgICAgIGhpZ2hsaWdodENvbG9yID0g
cG90ZW50aWFsSGlnaGxpZ2h0Q29sb3IoKTsKKyAgICAgICAgaWYgKCFoaWdobGlnaHRDb2xvci5p
c1Zpc2libGUoKSkKKyAgICAgICAgICAgIGRyYXdIaWdobGlnaHQgPSBmYWxzZTsKKyAgICB9Cisg
ICAgCiAgICAgYm9vbCBkcmF3U2VsZWN0aW9uVGludCA9IHNob3VsZERyYXdTZWxlY3Rpb25UaW50
KCk7CiAgICAgaWYgKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlOjpTZWxlY3Rpb24pIHsK
ICAgICAgICAgaWYgKHNlbGVjdGlvblN0YXRlKCkgPT0gSGlnaGxpZ2h0U3RhdGU6Ok5vbmUpCkBA
IC0yMjgsNiArMjY5LDEzIEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAgICAgICAgIHNlbGVj
dGlvblBhaW50aW5nUmVjdC5tb3ZlQnkoYWRqdXN0ZWRQYWludE9mZnNldCk7CiAgICAgICAgIHBh
aW50SW5mby5jb250ZXh0KCkuZmlsbFJlY3Qoc25hcHBlZEludFJlY3Qoc2VsZWN0aW9uUGFpbnRp
bmdSZWN0KSwgc2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkpOwogICAgIH0KKyAgICAKKyAgICBp
ZiAoZHJhd0hpZ2hsaWdodCkgeworICAgICAgICBhdXRvIHNlbGVjdGlvblBhaW50aW5nUmVjdCA9
IGxvY2FsU2VsZWN0aW9uUmVjdChmYWxzZSk7CisgICAgICAgIHNlbGVjdGlvblBhaW50aW5nUmVj
dC5tb3ZlQnkoYWRqdXN0ZWRQYWludE9mZnNldCk7CisgICAgICAgIHBhaW50SW5mby5jb250ZXh0
KCkuZmlsbFJlY3Qoc25hcHBlZEludFJlY3Qoc2VsZWN0aW9uUGFpbnRpbmdSZWN0KSwgaGlnaGxp
Z2h0Q29sb3IpOworICAgIH0KKwogfQogCiBib29sIFJlbmRlclJlcGxhY2VkOjpzaG91bGRQYWlu
dChQYWludEluZm8mIHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQpA
QCAtNjc5LDE5ICs3MjcsMjMgQEAgdm9pZCBSZW5kZXJSZXBsYWNlZDo6c2V0U2VsZWN0aW9uU3Rh
dGUoSGlnaGxpZ2h0U3RhdGUgc3RhdGUpCiAgICAgUmVuZGVyQm94OjpzZXRTZWxlY3Rpb25TdGF0
ZShzdGF0ZSk7CiAKICAgICBpZiAobV9pbmxpbmVCb3hXcmFwcGVyICYmIGNhblVwZGF0ZVNlbGVj
dGlvbk9uUm9vdExpbmVCb3hlcygpKQotICAgICAgICBtX2lubGluZUJveFdyYXBwZXItPnJvb3Qo
KS5zZXRIYXNTZWxlY3RlZENoaWxkcmVuKGlzU2VsZWN0ZWQoKSk7CisgICAgICAgIG1faW5saW5l
Qm94V3JhcHBlci0+cm9vdCgpLnNldEhhc1NlbGVjdGVkQ2hpbGRyZW4odmVyaWZ5U2VsZWN0aW9u
U3RhdGUoc2VsZWN0aW9uU3RhdGUoKSwgdmlldygpLnNlbGVjdGlvbigpKSk7CiB9CiAKIGJvb2wg
UmVuZGVyUmVwbGFjZWQ6OmlzU2VsZWN0ZWQoKSBjb25zdAogewotICAgIEhpZ2hsaWdodFN0YXRl
IHN0YXRlID0gc2VsZWN0aW9uU3RhdGUoKTsKKyAgICByZXR1cm4gdmVyaWZ5U2VsZWN0aW9uU3Rh
dGUoc2VsZWN0aW9uU3RhdGUoKSwgdmlldygpLnNlbGVjdGlvbigpKTsKK30KKworYm9vbCBSZW5k
ZXJSZXBsYWNlZDo6dmVyaWZ5U2VsZWN0aW9uU3RhdGUoSGlnaGxpZ2h0U3RhdGUgc3RhdGUsIGNv
bnN0IEhpZ2hsaWdodERhdGEmIHJhbmdlRGF0YSkgY29uc3QKK3sKICAgICBpZiAoc3RhdGUgPT0g
SGlnaGxpZ2h0U3RhdGU6Ok5vbmUpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoc3Rh
dGUgPT0gSGlnaGxpZ2h0U3RhdGU6Okluc2lkZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAg
ICBhdXRvIHNlbGVjdGlvblN0YXJ0ID0gdmlldygpLnNlbGVjdGlvbigpLnN0YXJ0T2Zmc2V0KCk7
Ci0gICAgYXV0byBzZWxlY3Rpb25FbmQgPSB2aWV3KCkuc2VsZWN0aW9uKCkuZW5kT2Zmc2V0KCk7
CisgICAgYXV0byBzZWxlY3Rpb25TdGFydCA9IHJhbmdlRGF0YS5zdGFydE9mZnNldCgpOworICAg
IGF1dG8gc2VsZWN0aW9uRW5kID0gcmFuZ2VEYXRhLmVuZE9mZnNldCgpOwogICAgIGlmIChzdGF0
ZSA9PSBIaWdobGlnaHRTdGF0ZTo6U3RhcnQpCiAgICAgICAgIHJldHVybiAhc2VsZWN0aW9uU3Rh
cnQ7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNl
ZC5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKaW5kZXggZTY0
YzNkNzVkODAxOTY1MTg4M2YxOTFjYWEzN2Y4OTViNGFjMWFiZS4uZjBmN2NiNjk2MGI3NTUyMmEw
M2ZhOTMxNmM0YjNhNTA2ZWVlZmFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clJlcGxhY2VkLmgKQEAgLTk0LDYgKzk0LDEwIEBAIHByaXZhdGU6CiAgICAgdm9pZCBjb21wdXRl
QXNwZWN0UmF0aW9JbmZvcm1hdGlvbkZvclJlbmRlckJveChSZW5kZXJCb3gqLCBGbG9hdFNpemUm
IGNvbnN0cmFpbmVkU2l6ZSwgZG91YmxlJiBpbnRyaW5zaWNSYXRpbykgY29uc3Q7CiAKICAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHJhd1NlbGVjdGlvblRpbnQoKSBjb25zdDsKKyAgICAKKyAgICB2
aXJ0dWFsIGJvb2wgc2hvdWxkRHJhd0hpZ2hsaWdodChjb25zdCBQYWludEluZm8mKSBjb25zdDsK
KyAgICB2aXJ0dWFsIENvbG9yIHBvdGVudGlhbEhpZ2hsaWdodENvbG9yKCkgY29uc3Q7CisgICAg
Ym9vbCB2ZXJpZnlTZWxlY3Rpb25TdGF0ZShIaWdobGlnaHRTdGF0ZSwgY29uc3QgSGlnaGxpZ2h0
RGF0YSYpIGNvbnN0OwogCiAgICAgbXV0YWJsZSBMYXlvdXRTaXplIG1faW50cmluc2ljU2l6ZTsK
IH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cKaW5kZXggMjAwZmYxODU0NDM2NjUzMjBiNzNmMTcyYTA0NjQ1MzAxY2E1MGU3Ni4uOWJl
NGM4NWI1YjA4YmQyMmRmMTM2ZTk3YTQ1MmY5MmQzYjU3MTI3MSAxMDA2NDQKLS0tIGEvTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEz
IEBACisyMDIwLTEwLTA2ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+
CisKKyAgICAgICAgUGFpbnQgQ1NTIGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzQxNworCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC93cHQvY3NzL2Nzcy1o
aWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAg
ICAgKiBodHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWw6
IEFkZGVkLgorCiAyMDIwLTEwLTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25faHNpZWhAYXBwbGUu
Y29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVuc2tpcCBzZXZlcmFsIGNhbnZhcy1yZWxhdGVk
IGxheW91dCB0ZXN0IGRpcmVjdG9yaWVzIHdoZW4gZW5hYmxpbmcgR1BVIHByb2Nlc3MKZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGln
aHQtaW1hZ2UtZXhwZWN0ZWQuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGln
aGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UtZXhwZWN0ZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hNzkz
MjY5YWU2MGUwOGQ2ZDhjZjdmMDZlM2M1ZGEwOGJjODgyYzRjCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFn
ZS1leHBlY3RlZC5odG1sCkBAIC0wLDAgKzEsMzEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPk11bHRpcGxl
IGN1c3RvbSBoaWdobGlnaHQgcHNldWRvIGVsZW1lbnRzLjwvdGl0bGU+CisgICAgPGxpbmsgcmVs
PSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWhpZ2hsaWdodC1hcGkt
MS8jY3JlYXRpbmctaGlnaGxpZ2h0cyI+CisgICAgPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iaGln
aGxpZ2h0LXRleHQtZXhwZWN0ZWQuaHRtbCI+CisgICAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250
ZW50PSJNdWx0aXBsZSBoaWdobGlnaHRzIHNob3VsZCBiZSBhYmxlIHRvIGJlIHNwZWNpZmllZC4i
PgorICAgICAgICA8c3R5bGU+CisgICAgICAgICNzdHlsZTEgeworICAgICAgICAgICAgYmFja2dy
b3VuZC1jb2xvcjogcmdiYSgyMDAsMCwwLC41KTsKKyAgICAgICAgICAgIGNvbG9yOmdyZWVuOwor
ICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2NrOworICAgICAgICB9CisgICAgICAgICNz
dHlsZTIgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAgICAgICAg
IGNvbG9yOnJlZDsKKyAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAg
fQorICAgICAgICAjc3R5bGUzIHsKKyAgICAgICAgICAgIGNvbG9yOnBpbms7CisgICAgICAgICAg
ICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9InN0eWxlMSI+PGltZyBzcmM9Ii4uLy4uL2ltYWdl
cy9ibGFuay1oaWdobGlnaHQucG5nIj48L2Rpdj4KKyAgICA8ZGl2IGlkPSJzdHlsZTIiPjxpbWcg
c3JjPSIuLi8uLi9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZyI+PC9kaXY+CisgICAgPGRpdiBp
ZD0ic3R5bGUzIj48aW1nIHNyYz0iLi4vLi4vaW1hZ2VzL2JsYW5rLWhpZ2hsaWdodC5wbmciPjwv
ZGl2PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
Y3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sIGIvTGF5b3V0VGVzdHMv
aHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLmM1ODk0MDdiNWE3ZmM4NjhlMTI4MDRiY2U0NjFlNTg2MjEyM2Y2NjIKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGln
aGxpZ2h0LWltYWdlLmh0bWwKQEAgLTAsMCArMSw0NCBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRt
bD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+TXVsdGlw
bGUgY3VzdG9tIGhpZ2hsaWdodCBwc2V1ZG8gZWxlbWVudHMuPC90aXRsZT4KKyAgICA8bGluayBy
ZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtaGlnaGxpZ2h0LWFw
aS0xLyNjcmVhdGluZy1oaWdobGlnaHRzIj4KKyAgICA8bGluayByZWw9Im1hdGNoIiBocmVmPSJo
aWdobGlnaHQtdGV4dC1leHBlY3RlZC5odG1sIj4KKyAgICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNv
bnRlbnQ9Ik11bHRpcGxlIGhpZ2hsaWdodHMgc2hvdWxkIGJlIGFibGUgdG8gYmUgc3BlY2lmaWVk
LiI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAgOjpoaWdobGlnaHQoZXhhbXBsZS1oaWdobGln
aHQxKSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwwLDAsLjUpOwor
ICAgICAgICAgICAgY29sb3I6Z3JlZW47CisgICAgICAgIH0KKyAgICAgICAgOjpoaWdobGlnaHQo
ZXhhbXBsZS1oaWdobGlnaHQyKSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiBibHVl
OworICAgICAgICAgICAgY29sb3I6cmVkOworICAgICAgICB9CisgICAgICAgIDo6aGlnaGxpZ2h0
KGV4YW1wbGUtaGlnaGxpZ2h0MykgeworICAgICAgICAgICAgY29sb3I6cGluazsKKyAgICAgICAg
fQorICAgICAgICA8L3N0eWxlPgorPC9oZWFkPgorPGJvZHk+CisgICAgPHNwYW4gaWQ9ImltZzEi
PjxpbWcgc3JjPSIuLi8uLi9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZyI+PC9zcGFuPgorICAg
IDxzcGFuIGlkPSJpbWcyIj48aW1nIHNyYz0iLi4vLi4vaW1hZ2VzL2JsYW5rLWhpZ2hsaWdodC5w
bmciPjwvc3Bhbj4KKyAgICA8c3BhbiBpZD0iaW1nMyI+PGltZyBzcmM9Ii4uLy4uL2ltYWdlcy9i
bGFuay1oaWdobGlnaHQucG5nIj48L3NwYW4+CisKKyAgICA8c2NyaXB0PgorICAgICAgICBsZXQg
aW1hZ2VFbGVtZW50MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcxJyk7CisgICAgICAg
IGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBT
dGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwg
c3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogaW1hZ2VFbGVtZW50MS5jaGlsZE5vZGVzWzBd
LCBlbmRPZmZzZXQ6IDF9KSk7CisKKyAgICAgICAgbGV0IGltYWdlRWxlbWVudDIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgnaW1nMicpOworICAgICAgICBsZXQgaGlnaGxpZ2h0UmFuZ2VHcm91
cDIgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0YXJ0Q29udGFp
bmVyOiBpbWFnZUVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAwLCBlbmRDb250
YWluZXI6IGltYWdlRWxlbWVudDIuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAxfSkpOworCisg
ICAgICAgIGxldCBpbWFnZUVsZW1lbnQzID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ2ltZzMn
KTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAzID0gbmV3IEhpZ2hsaWdodFJhbmdl
R3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogaW1hZ2VFbGVtZW50My5jaGls
ZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMCwgZW5kQ29udGFpbmVyOiBpbWFnZUVsZW1lbnQzLmNo
aWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMX0pKTsKKyAgICAgICAgCisKKyAgICAgICAgQ1NTLmhp
Z2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDEiLCBoaWdobGlnaHRSYW5nZUdyb3VwMSk7
CisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQyIiwgaGlnaGxp
Z2h0UmFuZ2VHcm91cDIpOworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGln
aGxpZ2h0MyIsIGhpZ2hsaWdodFJhbmdlR3JvdXAzKTsKKyAgICA8L3NjcmlwdD4KKzwvYm9keT4K
KzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2ltYWdlcy9ibGFuay1o
aWdobGlnaHQucG5nIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvaW1hZ2VzL2JsYW5rLWhpZ2hsaWdo
dC5wbmcKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uYjdlMjg5ZTgyZGNlNTFkZWQ0Y2ZjZDZmY2Q0ZmQzYTg4MmE5MzVm
NwpHSVQgYmluYXJ5IHBhdGNoCmxpdGVyYWwgMTQyOQp6Y21kVF5LWDIxTzZoQWptTj1rKFUze18j
VVRuUW5oKmtAT2kjITQoYDN7NFBlc31RN1F0Sl8/dEFAKjdKUmRGfWUKejFeNTZrcGJpLXJWQ2xw
TXM1JnFySzA7dypVfVdjPT9JZjwlZDtufm5AQTx2b0BCTypFY2tlZFcqWEhzSWQ0JGtoCnp0IWcl
ND8oaWApNFBXb3FgekIwNiZ7JGhWTjhmTSNoTSV2YlJxTkw0PXF8YEo9I3A+Xjx2MFhoQnJLcWRr
Jk11YAp6YUMwUVQ2eihMTERacj0qelVWM3BVKGgxPzJGTTMqWTsrO3ZldD8talJUJHRrbztVNH5e
YzsmKFV0RSVsMngoWnUKenh7N3RZQjVFMkptaFR9bkhKQlFDPT9ycFhuWSZ4T3tlOzFFKntpayNn
bDRidkEpdD9rXjliY1crc3poaCl0fkErCnopUkM8WS02bkdBYyR8ZXdwJD8pJG0/ZWZ6JmtnampF
SlgrJVdVZnt1RkBtc0hXdk54KTZmNHZ4OzxBaW9FRSMhRwp6NmlhQG10MmZOWTJfNjIqKGteNDN0
fDxMfVUreW8tKVBKRjwjYlF5eG54YmgxS29vKn5tc3clSzRIamMzTHE4QDcKemM2ezRvSGchZXIq
Vj85Z3RTbWA5KENDVHRXT2pFUCRxa2FTcGdASU42ampFYGN7Q0UqNktMRXJrcF5vdEQoZyhKCnoo
REd0WnY+MClZQzd5dl5wXm9SMUFiP3M3VCNCK2ZxWmAqMDt+T05QeSoqeX5iSnUydW1RWFY0RVVQ
dVA4fjJCdAp6dkAlTypwR1FiNXZ4RSliQ2FfeVBGKyl2fk82eVgxekp6Km9sdn0zbDVJM3FfI1pk
alptTXBWRWQoP21DU3YhT1cKemlZT15uNzlHV0RQbUdoWXE/b1hlZGNgTmEoVkNSQGpJKGBMUW5M
MDh3TjUqQmNpKiVhRj9mZC1SOXdJLSYwJlllCnpeYntzeG1sU0BNUSlmR0ZvSmIzdVc4e0gyPl9R
X3llZnBETVBUeStnISk3U19gSndWbDskLWw1ITxranlLQ3E1bwppMyVUaGxeTFhuJjVSUVliISVz
LXFKdzVydEAwIX05YkBPTy0+KTs8ZlQ2fGFsCgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411185</attachid>
            <date>2020-10-12 18:20:24 -0700</date>
            <delta_ts>2020-10-12 22:42:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217417-20201012182023.patch</filename>
            <type>text/plain</type>
            <size>15561</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhhMmY5Y2MwNDQ0NDBm
NGE1ZjgwN2RhOTlhZWYwZWFmOTU1NWI0Mi4uOWM2ZDc1OWZiMTcwZjdmMmIwZGVkZWRmNDI2Mjky
YjIzNjNiNmM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTEwLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NT
IGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzQxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg0NTkwNTQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgdG8gcGFpbnQgQ1NTIHBzZXVkbyBoaWdobGlnaHRzIG92ZXIgaW1hZ2VzIHRoYXQgYXJl
IGluIHRoZSAKKyAgICAgICAgcmFuZ2Ugb2YgdGhlIGRlZmluZWQgaGlnaGxpZ2h0LgorCisgICAg
ICAgIFRlc3Q6IGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2Uu
aHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcik6CisgICAg
ICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBvdGVu
dGlhbEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxh
Y2VkOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisKIDIw
MjAtMTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01vdGlvbk1hcmtdIEFkZCBhIGZhc3QgcGF0aCBmb3IgR3JhcGhpY3NDb250ZXh0OjpzdHJv
a2VQYXRoIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBwYXRoIGlzIGEgbGluZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCmluZGV4IDJlZjdiYTc1MTU3M2IyODk5YWNk
M2U2ZGYyY2Q3MTg2NzEyYjliMDUuLjQ4MzM3YzEwYTYyOWViYzhlZDFlOTc4MTg1NWFhZjhmYTAz
YjNlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVT
ZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAg
LTE2Miw3ICsxNjMsMjUgQEAgdm9pZCBIaWdobGlnaHREYXRhOjpzZXRSZW5kZXJSYW5nZShjb25z
dCBSZW5kZXJSYW5nZSYgcmVuZGVyUmFuZ2UpCiAgICAgbV9yZW5kZXJSYW5nZSA9IHJlbmRlclJh
bmdlOwogfQogCi1SZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIEhpZ2hsaWdodERhdGE6Omhp
Z2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK2Jvb2wgSGln
aGxpZ2h0RGF0YTo6c2V0UmVuZGVyUmFuZ2UoSGlnaGxpZ2h0UmFuZ2VEYXRhJiByYW5nZURhdGEp
Cit7CisgICAgYXV0byBzdGFydFBvc2l0aW9uID0gcmFuZ2VEYXRhLnN0YXJ0UG9zaXRpb24udmFs
dWUoKTsKKyAgICBhdXRvIGVuZFBvc2l0aW9uID0gcmFuZ2VEYXRhLmVuZFBvc2l0aW9uLnZhbHVl
KCk7CisgICAgCisgICAgYXV0byogc3RhcnRSZW5kZXJlciA9IHN0YXJ0UG9zaXRpb24uY29udGFp
bmVyTm9kZSgpLT5yZW5kZXJlcigpOworICAgIGF1dG8qIGVuZFJlbmRlcmVyID0gZW5kUG9zaXRp
b24uY29udGFpbmVyTm9kZSgpLT5yZW5kZXJlcigpOworICAgIAorICAgIGlmICghc3RhcnRSZW5k
ZXJlciB8fCAhZW5kUmVuZGVyZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICB1
bnNpZ25lZCBzdGFydE9mZnNldCA9IHN0YXJ0UG9zaXRpb24uY29tcHV0ZU9mZnNldEluQ29udGFp
bmVyTm9kZSgpOworICAgIHVuc2lnbmVkIGVuZE9mZnNldCA9IGVuZFBvc2l0aW9uLmNvbXB1dGVP
ZmZzZXRJbkNvbnRhaW5lck5vZGUoKTsKKworICAgIHNldFJlbmRlclJhbmdlKHsgc3RhcnRSZW5k
ZXJlciwgZW5kUmVuZGVyZXIsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgfSk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK1JlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgSGlnaGxpZ2h0RGF0YTo6
aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQog
ewogICAgIGlmICgmcmVuZGVyZXIgPT0gbV9yZW5kZXJSYW5nZS5zdGFydCgpKSB7CiAgICAgICAg
IGlmIChtX3JlbmRlclJhbmdlLnN0YXJ0KCkgJiYgbV9yZW5kZXJSYW5nZS5lbmQoKSAmJiBtX3Jl
bmRlclJhbmdlLnN0YXJ0KCkgPT0gbV9yZW5kZXJSYW5nZS5lbmQoKSkKQEAgLTE3MywxNCArMTky
LDExIEBAIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxp
Z2h0U3RhdGVGb3JSZW5kZXJlcihSZW5kZXJPYmplCiAgICAgaWYgKCZyZW5kZXJlciA9PSBtX3Jl
bmRlclJhbmdlLmVuZCgpKQogICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRT
dGF0ZTo6RW5kOwogCi0gICAgUmVuZGVyT2JqZWN0KiBoaWdobGlnaHRFbmQgPSBudWxscHRyOwot
ICAgIGF1dG8qIGhpZ2hsaWdodERhdGFFbmQgPSBtX3JlbmRlclJhbmdlLmVuZCgpOwotICAgIGlm
IChoaWdobGlnaHREYXRhRW5kKQotICAgICAgICBoaWdobGlnaHRFbmQgPSByZW5kZXJlckFmdGVy
T2Zmc2V0KCpoaWdobGlnaHREYXRhRW5kLCBtX3JlbmRlclJhbmdlLmVuZE9mZnNldCgpLnZhbHVl
KCkpOwotICAgIFVOVVNFRF9QQVJBTShoaWdobGlnaHRFbmQpOworICAgIGF1dG8qIGhpZ2hsaWdo
dEVuZCA9IHJlbmRlcmVyQWZ0ZXJPZmZzZXQoKm1fcmVuZGVyUmFuZ2UuZW5kKCksIG1fcmVuZGVy
UmFuZ2UuZW5kT2Zmc2V0KCkudmFsdWUoKSk7CisgICAgCiAgICAgSGlnaGxpZ2h0SXRlcmF0b3Ig
aGlnaGxpZ2h0SXRlcmF0b3IobV9yZW5kZXJSYW5nZS5zdGFydCgpKTsKLSAgICBmb3IgKGF1dG8q
IGN1cnJlbnRSZW5kZXJlciA9IG1fcmVuZGVyUmFuZ2Uuc3RhcnQoKTsgY3VycmVudFJlbmRlcmVy
ICYmIGN1cnJlbnRSZW5kZXJlciAhPSBtX3JlbmRlclJhbmdlLmVuZCgpOyBjdXJyZW50UmVuZGVy
ZXIgPSBoaWdobGlnaHRJdGVyYXRvci5uZXh0KCkpIHsKLSAgICAgICAgaWYgKGN1cnJlbnRSZW5k
ZXJlciA9PSBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgfHwgY3VycmVudFJlbmRlcmVyID09IG1fcmVu
ZGVyUmFuZ2UuZW5kKCkpCisgICAgZm9yIChhdXRvKiBjdXJyZW50UmVuZGVyZXIgPSBtX3JlbmRl
clJhbmdlLnN0YXJ0KCk7IGN1cnJlbnRSZW5kZXJlciAmJiBjdXJyZW50UmVuZGVyZXIgIT0gaGln
aGxpZ2h0RW5kOyBjdXJyZW50UmVuZGVyZXIgPSBoaWdobGlnaHRJdGVyYXRvci5uZXh0KCkpIHsK
KyAgICAgICAgaWYgKGN1cnJlbnRSZW5kZXJlciA9PSBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgfHwg
Y3VycmVudFJlbmRlcmVyID09IGhpZ2hsaWdodEVuZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICBpZiAoIWN1cnJlbnRSZW5kZXJlci0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkpCiAgICAg
ICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9I
aWdobGlnaHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5o
CmluZGV4IGFkODBmZDNkNmUzZTlhNmQwY2EzMTUxNDIzMGUyNGMyMzkwYzEzMTQuLjA4NGY5YjA5
ZGQ1NDhlYmM5NWY1MGNkZWEyOTZjNmM5NDdkZDM5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0hpZ2hsaWdodERhdGEuaApAQCAtMzcsNiArMzcsOCBAQAogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YTsKICAgICAKIGNsYXNzIEhp
Z2hsaWdodERhdGEgewogcHVibGljOgpAQCAtNzEsNiArNzMsNyBAQCBwdWJsaWM6CiAgICAgfTsK
ICAgICAKICAgICB2b2lkIHNldFJlbmRlclJhbmdlKGNvbnN0IFJlbmRlclJhbmdlJik7CisgICAg
Ym9vbCBzZXRSZW5kZXJSYW5nZShIaWdobGlnaHRSYW5nZURhdGEmKTsgLy8gcmV0dXJucyB0cnVl
IGlmIHRoZSBzZXR0aW5nIG9mIHRoZSByZW5kZXJSYW5nZSBmcm9tIHRoZSBIaWdobGlnaHRSYW5n
ZURhdGEgaGFzIGJlZW4gc3VjY2Vzc2Z1bC4KICAgICAKICAgICBlbnVtIGNsYXNzIFJlcGFpbnRN
b2RlIHsgTmV3WE9ST2xkLCBOZXdNaW51c09sZCwgTm90aGluZyB9OwogICAgIHZvaWQgc2V0U2Vs
ZWN0aW9uKGNvbnN0IFJlbmRlclJhbmdlJiwgUmVwYWludE1vZGUgPSBSZXBhaW50TW9kZTo6TmV3
WE9ST2xkKTsKQEAgLTg3LDcgKzkwLDcgQEAgcHVibGljOgogICAgIEludFJlY3QgYm91bmRzQ2xp
cHBlZFRvVmlzaWJsZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBjb2xsZWN0Qm91bmRzKENsaXBU
b1Zpc2libGVDb250ZW50OjpZZXMpOyB9CiAgICAgdm9pZCByZXBhaW50U2VsZWN0aW9uKCkgY29u
c3Q7CiAgICAgCi0gICAgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBoaWdobGlnaHRTdGF0
ZUZvclJlbmRlcmVyKFJlbmRlck9iamVjdCYpOworICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0
U3RhdGUgaGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmKTsKIAog
cHJpdmF0ZToKICAgICBlbnVtIGNsYXNzIENsaXBUb1Zpc2libGVDb250ZW50IHsgWWVzLCBObyB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggMjU3
MWI2NTQyYTQ2ZWI2NTVhMDMyZWQxZTlmMDFhZTc3ODY3MjAxZS4uY2NhOGU5YTQzMzc3ZWE3Y2M4
MjFlYTA3NTY1YjdhOGFjZGIwYTBjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklk
aW9tcy5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodERhdGEuaCIKKyNpbmNsdWRlICJIaWdobGlnaHRN
YXAuaCIKICNpbmNsdWRlICJJbmxpbmVFbGVtZW50Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVw
YWludGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKQEAgLTE0Niw2ICsxNDgsMzYgQEAg
aW5saW5lIHN0YXRpYyBib29sIGRyYWdnZWRDb250ZW50Q29udGFpbnNSZXBsYWNlZEVsZW1lbnQo
Y29uc3QgVmVjdG9yPFJlbmRlcmVkRG8KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0NvbG9yIFJl
bmRlclJlcGxhY2VkOjpjYWxjdWxhdGVIaWdobGlnaHRDb2xvcihjb25zdCBQYWludEluZm8mIHBh
aW50SW5mbykgY29uc3QKK3sKKyAgICBpZiAoZG9jdW1lbnQoKS5wcmludGluZygpIHx8IHBhaW50
SW5mby5wYWludEJlaGF2aW9yLmNvbnRhaW5zKFBhaW50QmVoYXZpb3I6OkV4Y2x1ZGVTZWxlY3Rp
b24pKQorICAgICAgICByZXR1cm4gQ29sb3IoKTsKKworICAgIGF1dG8qIHBhcmVudFJlbmRlcmVy
ID0gcGFyZW50KCk7CisgICAgaWYgKCFwYXJlbnRSZW5kZXJlcikKKyAgICAgICAgcmV0dXJuIENv
bG9yKCk7CisgICAgCisgICAgY29uc3QgUmVuZGVyU3R5bGUqIHBhcmVudFN0eWxlID0gJnBhcmVu
dFJlbmRlcmVyLT5zdHlsZSgpOworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQo
KS5oaWdobGlnaHRNYXAoKS5tYXAoKSkgeworICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6
IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAgICAgICBpZiAoIXJhbmdl
RGF0YS0+c3RhcnRQb3NpdGlvbiB8fCAhcmFuZ2VEYXRhLT5lbmRQb3NpdGlvbikKKyAgICAgICAg
ICAgICAgICBjb250aW51ZTsKKyAgICAKKyAgICAgICAgICAgIGF1dG8gaGlnaGxpZ2h0RGF0YSA9
IEhpZ2hsaWdodERhdGEodmlldygpKTsKKyAgICAgICAgICAgIGlmICghaGlnaGxpZ2h0RGF0YS5z
ZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAg
ICAgICAgICAgCisgICAgICAgICAgICBhdXRvIHN0YXRlID0gaGlnaGxpZ2h0RGF0YS5oaWdobGln
aHRTdGF0ZUZvclJlbmRlcmVyKCp0aGlzKTsKKyAgICAgICAgICAgIGlmICghdmVyaWZ5U2VsZWN0
aW9uU3RhdGUoc3RhdGUsIGhpZ2hsaWdodERhdGEpKQorICAgICAgICAgICAgICAgIGNvbnRpbnVl
OworCisgICAgICAgICAgICBpZiAoYXV0byBzdHlsZSA9IHBhcmVudFJlbmRlcmVyLT5nZXRVbmNh
Y2hlZFBzZXVkb1N0eWxlKHsgUHNldWRvSWQ6OkhpZ2hsaWdodCwgaGlnaGxpZ2h0LmtleSB9LCBw
YXJlbnRTdHlsZSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIHN0eWxlLT5iYWNrZ3JvdW5kQ29s
b3IoKTsKKyAgICAgICAgfQorICAgIH0KKyAgICByZXR1cm4gQ29sb3IoKTsKK30KKwogdm9pZCBS
ZW5kZXJSZXBsYWNlZDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBv
aW50JiBwYWludE9mZnNldCkKIHsKICAgICBpZiAoIXNob3VsZFBhaW50KHBhaW50SW5mbywgcGFp
bnRPZmZzZXQpKQpAQCAtMTk1LDYgKzIyNyw4IEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAg
ICAgaWYgKCFwYWludEluZm8uc2hvdWxkUGFpbnRXaXRoaW5Sb290KCp0aGlzKSkKICAgICAgICAg
cmV0dXJuOwogICAgIAorICAgIENvbG9yIGhpZ2hsaWdodENvbG9yID0gY2FsY3VsYXRlSGlnaGxp
Z2h0Q29sb3IocGFpbnRJbmZvKTsKKyAgICAKICAgICBib29sIGRyYXdTZWxlY3Rpb25UaW50ID0g
c2hvdWxkRHJhd1NlbGVjdGlvblRpbnQoKTsKICAgICBpZiAocGFpbnRJbmZvLnBoYXNlID09IFBh
aW50UGhhc2U6OlNlbGVjdGlvbikgewogICAgICAgICBpZiAoc2VsZWN0aW9uU3RhdGUoKSA9PSBI
aWdobGlnaHRTdGF0ZTo6Tm9uZSkKQEAgLTIyOCw2ICsyNjIsMTMgQEAgdm9pZCBSZW5kZXJSZXBs
YWNlZDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWlu
dE9mZnNldCkKICAgICAgICAgc2VsZWN0aW9uUGFpbnRpbmdSZWN0Lm1vdmVCeShhZGp1c3RlZFBh
aW50T2Zmc2V0KTsKICAgICAgICAgcGFpbnRJbmZvLmNvbnRleHQoKS5maWxsUmVjdChzbmFwcGVk
SW50UmVjdChzZWxlY3Rpb25QYWludGluZ1JlY3QpLCBzZWxlY3Rpb25CYWNrZ3JvdW5kQ29sb3Io
KSk7CiAgICAgfQorICAgIAorICAgIGlmIChoaWdobGlnaHRDb2xvci5pc1Zpc2libGUoKSkgewor
ICAgICAgICBhdXRvIHNlbGVjdGlvblBhaW50aW5nUmVjdCA9IGxvY2FsU2VsZWN0aW9uUmVjdChm
YWxzZSk7CisgICAgICAgIHNlbGVjdGlvblBhaW50aW5nUmVjdC5tb3ZlQnkoYWRqdXN0ZWRQYWlu
dE9mZnNldCk7CisgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuZmlsbFJlY3Qoc25hcHBlZElu
dFJlY3Qoc2VsZWN0aW9uUGFpbnRpbmdSZWN0KSwgaGlnaGxpZ2h0Q29sb3IpOworICAgIH0KKwog
fQogCiBib29sIFJlbmRlclJlcGxhY2VkOjpzaG91bGRQYWludChQYWludEluZm8mIHBhaW50SW5m
bywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQpAQCAtNjc5LDE5ICs3MjAsMjMgQEAg
dm9pZCBSZW5kZXJSZXBsYWNlZDo6c2V0U2VsZWN0aW9uU3RhdGUoSGlnaGxpZ2h0U3RhdGUgc3Rh
dGUpCiAgICAgUmVuZGVyQm94OjpzZXRTZWxlY3Rpb25TdGF0ZShzdGF0ZSk7CiAKICAgICBpZiAo
bV9pbmxpbmVCb3hXcmFwcGVyICYmIGNhblVwZGF0ZVNlbGVjdGlvbk9uUm9vdExpbmVCb3hlcygp
KQotICAgICAgICBtX2lubGluZUJveFdyYXBwZXItPnJvb3QoKS5zZXRIYXNTZWxlY3RlZENoaWxk
cmVuKGlzU2VsZWN0ZWQoKSk7CisgICAgICAgIG1faW5saW5lQm94V3JhcHBlci0+cm9vdCgpLnNl
dEhhc1NlbGVjdGVkQ2hpbGRyZW4odmVyaWZ5U2VsZWN0aW9uU3RhdGUoc2VsZWN0aW9uU3RhdGUo
KSwgdmlldygpLnNlbGVjdGlvbigpKSk7CiB9CiAKIGJvb2wgUmVuZGVyUmVwbGFjZWQ6OmlzU2Vs
ZWN0ZWQoKSBjb25zdAogewotICAgIEhpZ2hsaWdodFN0YXRlIHN0YXRlID0gc2VsZWN0aW9uU3Rh
dGUoKTsKKyAgICByZXR1cm4gdmVyaWZ5U2VsZWN0aW9uU3RhdGUoc2VsZWN0aW9uU3RhdGUoKSwg
dmlldygpLnNlbGVjdGlvbigpKTsKK30KKworYm9vbCBSZW5kZXJSZXBsYWNlZDo6dmVyaWZ5U2Vs
ZWN0aW9uU3RhdGUoSGlnaGxpZ2h0U3RhdGUgc3RhdGUsIGNvbnN0IEhpZ2hsaWdodERhdGEmIHJh
bmdlRGF0YSkgY29uc3QKK3sKICAgICBpZiAoc3RhdGUgPT0gSGlnaGxpZ2h0U3RhdGU6Ok5vbmUp
CiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICBpZiAoc3RhdGUgPT0gSGlnaGxpZ2h0U3RhdGU6
Okluc2lkZSkKICAgICAgICAgcmV0dXJuIHRydWU7CiAKLSAgICBhdXRvIHNlbGVjdGlvblN0YXJ0
ID0gdmlldygpLnNlbGVjdGlvbigpLnN0YXJ0T2Zmc2V0KCk7Ci0gICAgYXV0byBzZWxlY3Rpb25F
bmQgPSB2aWV3KCkuc2VsZWN0aW9uKCkuZW5kT2Zmc2V0KCk7CisgICAgYXV0byBzZWxlY3Rpb25T
dGFydCA9IHJhbmdlRGF0YS5zdGFydE9mZnNldCgpOworICAgIGF1dG8gc2VsZWN0aW9uRW5kID0g
cmFuZ2VEYXRhLmVuZE9mZnNldCgpOwogICAgIGlmIChzdGF0ZSA9PSBIaWdobGlnaHRTdGF0ZTo6
U3RhcnQpCiAgICAgICAgIHJldHVybiAhc2VsZWN0aW9uU3RhcnQ7CiAKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5oIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKaW5kZXggZTY0YzNkNzVkODAxOTY1MTg4M2YxOTFj
YWEzN2Y4OTViNGFjMWFiZS4uYjFmNGIxYmNjZTk3MjAyZjM0ODllMzQwYzg2MDYwMjAwZjVkZDIw
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmgKQEAgLTk0LDYg
Kzk0LDkgQEAgcHJpdmF0ZToKICAgICB2b2lkIGNvbXB1dGVBc3BlY3RSYXRpb0luZm9ybWF0aW9u
Rm9yUmVuZGVyQm94KFJlbmRlckJveCosIEZsb2F0U2l6ZSYgY29uc3RyYWluZWRTaXplLCBkb3Vi
bGUmIGludHJpbnNpY1JhdGlvKSBjb25zdDsKIAogICAgIHZpcnR1YWwgYm9vbCBzaG91bGREcmF3
U2VsZWN0aW9uVGludCgpIGNvbnN0OworICAgIAorICAgIHZpcnR1YWwgQ29sb3IgY2FsY3VsYXRl
SGlnaGxpZ2h0Q29sb3IoY29uc3QgUGFpbnRJbmZvJikgY29uc3Q7CisgICAgYm9vbCB2ZXJpZnlT
ZWxlY3Rpb25TdGF0ZShIaWdobGlnaHRTdGF0ZSwgY29uc3QgSGlnaGxpZ2h0RGF0YSYpIGNvbnN0
OwogCiAgICAgbXV0YWJsZSBMYXlvdXRTaXplIG1faW50cmluc2ljU2l6ZTsKIH07CmRpZmYgLS1n
aXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXgg
MjAwZmYxODU0NDM2NjUzMjBiNzNmMTcyYTA0NjQ1MzAxY2E1MGU3Ni4uYmM4MjI3YzgyNGVmMGFj
ODlkYWE4MzRlZjgxMzZiNmU3Zjg4M2E2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCisrKyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTEw
LTA2ICBNZWdhbiBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAg
UGFpbnQgQ1NTIGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTIxNzQxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBp
L2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaGVkLmh0bWw6IEFkZGVkLgorICAgICAg
ICAqIGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbDog
QWRkZWQuCisKIDIwMjAtMTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5j
b20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgdW5za2lwIHNldmVyYWwgY2FudmFzLXJlbGF0ZWQg
bGF5b3V0IHRlc3QgZGlyZWN0b3JpZXMgd2hlbiBlbmFibGluZyBHUFUgcHJvY2VzcwpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdo
dC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9j
c3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLWV4cGVjdGVkLW1pc21hdGNoZWQu
aHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42YjMwNTViMzRjY2JhNmQyMmZjYzJkOWYyYjYzYmRlMTc0YTQzNzBk
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGln
aHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaGVkLmh0bWwKQEAgLTAsMCAr
MSwxNSBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJz
ZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+TXVsdGlwbGUgY3VzdG9tIGhpZ2hsaWdodCBwc2V1ZG8g
ZWxlbWVudHMuPC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJh
ZnRzLmNzc3dnLm9yZy9jc3MtaGlnaGxpZ2h0LWFwaS0xLyNjcmVhdGluZy1oaWdobGlnaHRzIj4K
KyAgICA8bGluayByZWw9Im1hdGNoIiBocmVmPSJoaWdobGlnaHQtdGV4dC1leHBlY3RlZC5odG1s
Ij4KKyAgICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ik11bHRpcGxlIGhpZ2hsaWdodHMg
c2hvdWxkIGJlIGFibGUgdG8gYmUgc3BlY2lmaWVkLiI+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8
ZGl2IGlkPSJzdHlsZTEiPjxpbWcgc3JjPSIuLi8uLi9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBu
ZyI+PC9kaXY+CisgICAgPGRpdiBpZD0ic3R5bGUyIj48aW1nIHNyYz0iLi4vLi4vaW1hZ2VzL2Js
YW5rLWhpZ2hsaWdodC5wbmciPjwvZGl2PgorICAgIDxkaXYgaWQ9InN0eWxlMyI+PGltZyBzcmM9
Ii4uLy4uL2ltYWdlcy9ibGFuay1oaWdobGlnaHQucG5nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFw
aS9oaWdobGlnaHQtaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGln
aGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWFmZjkwOTBhNzcz
ZjQ4MzQ0YWIwZDM3MWZjMTc0ZDlhNjJlZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sCkBA
IC0wLDAgKzEsNTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0
YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxlPk11bHRpcGxlIGN1c3RvbSBoaWdobGlnaHQg
cHNldWRvIGVsZW1lbnRzLjwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRw
czovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWhpZ2hsaWdodC1hcGktMS8jY3JlYXRpbmctaGlnaGxp
Z2h0cyI+CisgICAgPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iaGlnaGxpZ2h0LXRleHQtZXhwZWN0
ZWQuaHRtbCI+CisgICAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJNdWx0aXBsZSBoaWdo
bGlnaHRzIHNob3VsZCBiZSBhYmxlIHRvIGJlIHNwZWNpZmllZC4iPgorICAgICAgICA8c3R5bGU+
CisgICAgICAgICNpbWcxIHsKKyAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAg
ICAgICAgfQorICAgICAgICAjaW1nMiB7CisgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxv
Y2s7CisgICAgICAgIH0KKyAgICAgICAgI2ltZzMgeworICAgICAgICAgICAgZGlzcGxheTogaW5s
aW5lLWJsb2NrOworICAgICAgICB9CisgICAgICAgIDo6aGlnaGxpZ2h0KGV4YW1wbGUtaGlnaGxp
Z2h0MSkgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsMCwwLC41KTsK
KyAgICAgICAgICAgIGNvbG9yOmdyZWVuOworICAgICAgICB9CisgICAgICAgIDo6aGlnaGxpZ2h0
KGV4YW1wbGUtaGlnaGxpZ2h0MikgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1
ZTsKKyAgICAgICAgICAgIGNvbG9yOnJlZDsKKyAgICAgICAgfQorICAgICAgICA6OmhpZ2hsaWdo
dChleGFtcGxlLWhpZ2hsaWdodDMpIHsKKyAgICAgICAgICAgIGNvbG9yOnBpbms7CisgICAgICAg
IH0KKyAgICAgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImltZzEi
PjxpbWcgc3JjPSIuLi8uLi9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZyI+PC9kaXY+CisgICAg
PGRpdiBpZD0iaW1nMiI+PGltZyBzcmM9Ii4uLy4uL2ltYWdlcy9ibGFuay1oaWdobGlnaHQucG5n
Ij48L2Rpdj4KKyAgICA8ZGl2IGlkPSJpbWczIj48aW1nIHNyYz0iLi4vLi4vaW1hZ2VzL2JsYW5r
LWhpZ2hsaWdodC5wbmciPjwvZGl2PgorCisgICAgPHNjcmlwdD4KKyAgICAgICAgbGV0IGltYWdl
RWxlbWVudDEgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScpOworICAgICAgICBsZXQg
aGlnaGxpZ2h0UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGlj
UmFuZ2Uoe3N0YXJ0Q29udGFpbmVyOiBpbWFnZUVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0
T2Zmc2V0OiAwLCBlbmRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5k
T2Zmc2V0OiAxfSkpOworCisgICAgICAgIGxldCBpbWFnZUVsZW1lbnQyID0gZG9jdW1lbnQuZ2V0
RWxlbWVudEJ5SWQoJ2ltZzInKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0g
bmV3IEhpZ2hsaWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjog
aW1hZ2VFbGVtZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMCwgZW5kQ29udGFpbmVy
OiBpbWFnZUVsZW1lbnQyLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMX0pKTsKKworICAgICAg
ICBsZXQgaW1hZ2VFbGVtZW50MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWczJyk7Cisg
ICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3Vw
KG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGltYWdlRWxlbWVudDMuY2hpbGROb2Rl
c1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogaW1hZ2VFbGVtZW50My5jaGlsZE5v
ZGVzWzBdLCBlbmRPZmZzZXQ6IDF9KSk7CisgICAgICAgIAorCisgICAgICAgIENTUy5oaWdobGln
aHRzLnNldCgiZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOworICAg
ICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodFJh
bmdlR3JvdXAyKTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdo
dDMiLCBoaWdobGlnaHRSYW5nZUdyb3VwMyk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0
bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9pbWFnZXMvYmxhbmstaGlnaGxp
Z2h0LnBuZyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2ltYWdlcy9ibGFuay1oaWdobGlnaHQucG5n
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjZkYmVlMDkxNzQ5ZmI2ZDcwZDYyZjM5MTRkNzVjYmE0MzJiNTViNWEKR0lU
IGJpbmFyeSBwYXRjaApsaXRlcmFsIDE2MTMKemNtZUhIJnJqMSg5RGlraSZfTl9oMiU/RSlVY19Z
V1ROamwhVE5CdWpFcGYyU1hAKmBYVGNfMStaUTdFUm5eX2A7Cno4eUFmK0I8XjVAZ1c9QFNrUCRV
cjJwMkElT2VBX1JWIVoxPy0pcDxBSDFIcVQ9Sm9zU194dCZMZjRzaExTSkVAbgp6e3AxSjwwTyhJ
OTt1JDBoYz1kRm5yQEg/bml2KiEocllGSlg/eiEqaXI2SnsjI1ooR2hMVjZFNEw3VzBVM18mKl8K
ek1uSVJQMUYlNHhaUnopa2l3PnAoVkx8e3MhQVowPGcwPUtQcX1Md0hwd3I8I01He3tMdmB8IUFy
ZSN3cWx8QDYqCnpzNCZkfHooTi1DQTs/M0hmKmUtWmFSN1hFcUZxaEJxWlA0R19xQkIjYG8tK0d3
QENEPWk4Jm5yfDdwQWtATyo2Owp6I25fT3VJVXw/NCZnWWRmRWYkbW9pOGprQldgVCZ3QmVnNlVC
NHc2SzZgZVB1MFNteis5aDtjfFdrSE13KExnU2gKenJlY2FGUUNEYjQhKz0waTZjeTE1TUxyWTE9
RnJod0c7cSVfUkd3an4paGI7TCh+NVNOMzJffDlLJGM8SUFWTEs3CnpySFViJSFIUnl0NCRfUGht
LU1fUXRBP3lwQz4mUUBQIV40N0FiPUNLRjF0PWNGMTltT2JmKyFVQWNIK2poPSRCagp6R3w3fllw
PCZPbEdfKiZwd2hrcFRNYiMhKm5fPEAmITQ+Y15yTDFhX3VBXlFBN19xODRXTllfaTwxPj0zbG9v
TzgKekghSEZzdW54c3pfT2Z6cXppX3E1YVR+cGF4dVhiZnFuOXdOJHJBY254Ryo4KTZ5PihMQE9U
Uyg+c2FVRmEjXlphCnp5QHcjYHt6IzlQOEI8RCVjMCgyTzU+OH1NVHFaQnQkfUBMdDkrJF8oTUJr
QipYJVpmfnRmR3tKISFzQ1J5bllXZwp6cjQ7MWlRZH40NzBaKGYlMWNRKnZIbUI5NXlEJHpyIXIt
JilJQHxXKFNYTU1TMCpRI3RESE89cCVlU2BCVXFWYTkKekMkYzgtYjhveDEwc0I2cipaPSVGY3kl
WVQoWHIocGBANklBYE51Pnp4JlF2dE17KHRBSTZaSzFlKCl2cmpPYmZgCnpHfXN3X19+cCVOWk4z
fD40UF4jKSExQ1RDU3YlOEVaem0/OForT04oKT44IVU8azdDfXpXTVJzZjZ7MWZSYkx2KQpifEd2
RUl1TT9meWgyRSg+ezlqQj8mQlFrKz1XRzd9cFhKVHgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411197</attachid>
            <date>2020-10-12 22:42:56 -0700</date>
            <delta_ts>2020-10-13 14:11:11 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217417-20201012224255.patch</filename>
            <type>text/plain</type>
            <size>15324</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhhMmY5Y2MwNDQ0NDBm
NGE1ZjgwN2RhOTlhZWYwZWFmOTU1NWI0Mi4uOWM2ZDc1OWZiMTcwZjdmMmIwZGVkZWRmNDI2Mjky
YjIzNjNiNmM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTEwLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NT
IGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzQxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg0NTkwNTQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgdG8gcGFpbnQgQ1NTIHBzZXVkbyBoaWdobGlnaHRzIG92ZXIgaW1hZ2VzIHRoYXQgYXJl
IGluIHRoZSAKKyAgICAgICAgcmFuZ2Ugb2YgdGhlIGRlZmluZWQgaGlnaGxpZ2h0LgorCisgICAg
ICAgIFRlc3Q6IGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2Uu
aHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcik6CisgICAg
ICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBvdGVu
dGlhbEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxh
Y2VkOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisKIDIw
MjAtMTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01vdGlvbk1hcmtdIEFkZCBhIGZhc3QgcGF0aCBmb3IgR3JhcGhpY3NDb250ZXh0OjpzdHJv
a2VQYXRoIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBwYXRoIGlzIGEgbGluZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCmluZGV4IDJlZjdiYTc1MTU3M2IyODk5YWNk
M2U2ZGYyY2Q3MTg2NzEyYjliMDUuLjQ4MzM3YzEwYTYyOWViYzhlZDFlOTc4MTg1NWFhZjhmYTAz
YjNlNjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVT
ZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAg
LTE2Miw3ICsxNjMsMjUgQEAgdm9pZCBIaWdobGlnaHREYXRhOjpzZXRSZW5kZXJSYW5nZShjb25z
dCBSZW5kZXJSYW5nZSYgcmVuZGVyUmFuZ2UpCiAgICAgbV9yZW5kZXJSYW5nZSA9IHJlbmRlclJh
bmdlOwogfQogCi1SZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIEhpZ2hsaWdodERhdGE6Omhp
Z2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK2Jvb2wgSGln
aGxpZ2h0RGF0YTo6c2V0UmVuZGVyUmFuZ2UoSGlnaGxpZ2h0UmFuZ2VEYXRhJiByYW5nZURhdGEp
Cit7CisgICAgYXV0byBzdGFydFBvc2l0aW9uID0gcmFuZ2VEYXRhLnN0YXJ0UG9zaXRpb24udmFs
dWUoKTsKKyAgICBhdXRvIGVuZFBvc2l0aW9uID0gcmFuZ2VEYXRhLmVuZFBvc2l0aW9uLnZhbHVl
KCk7CisgICAgCisgICAgYXV0byogc3RhcnRSZW5kZXJlciA9IHN0YXJ0UG9zaXRpb24uY29udGFp
bmVyTm9kZSgpLT5yZW5kZXJlcigpOworICAgIGF1dG8qIGVuZFJlbmRlcmVyID0gZW5kUG9zaXRp
b24uY29udGFpbmVyTm9kZSgpLT5yZW5kZXJlcigpOworICAgIAorICAgIGlmICghc3RhcnRSZW5k
ZXJlciB8fCAhZW5kUmVuZGVyZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICB1
bnNpZ25lZCBzdGFydE9mZnNldCA9IHN0YXJ0UG9zaXRpb24uY29tcHV0ZU9mZnNldEluQ29udGFp
bmVyTm9kZSgpOworICAgIHVuc2lnbmVkIGVuZE9mZnNldCA9IGVuZFBvc2l0aW9uLmNvbXB1dGVP
ZmZzZXRJbkNvbnRhaW5lck5vZGUoKTsKKworICAgIHNldFJlbmRlclJhbmdlKHsgc3RhcnRSZW5k
ZXJlciwgZW5kUmVuZGVyZXIsIHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgfSk7CisgICAgcmV0dXJu
IHRydWU7Cit9CisKK1JlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgSGlnaGxpZ2h0RGF0YTo6
aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQog
ewogICAgIGlmICgmcmVuZGVyZXIgPT0gbV9yZW5kZXJSYW5nZS5zdGFydCgpKSB7CiAgICAgICAg
IGlmIChtX3JlbmRlclJhbmdlLnN0YXJ0KCkgJiYgbV9yZW5kZXJSYW5nZS5lbmQoKSAmJiBtX3Jl
bmRlclJhbmdlLnN0YXJ0KCkgPT0gbV9yZW5kZXJSYW5nZS5lbmQoKSkKQEAgLTE3MywxNCArMTky
LDExIEBAIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxp
Z2h0U3RhdGVGb3JSZW5kZXJlcihSZW5kZXJPYmplCiAgICAgaWYgKCZyZW5kZXJlciA9PSBtX3Jl
bmRlclJhbmdlLmVuZCgpKQogICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRT
dGF0ZTo6RW5kOwogCi0gICAgUmVuZGVyT2JqZWN0KiBoaWdobGlnaHRFbmQgPSBudWxscHRyOwot
ICAgIGF1dG8qIGhpZ2hsaWdodERhdGFFbmQgPSBtX3JlbmRlclJhbmdlLmVuZCgpOwotICAgIGlm
IChoaWdobGlnaHREYXRhRW5kKQotICAgICAgICBoaWdobGlnaHRFbmQgPSByZW5kZXJlckFmdGVy
T2Zmc2V0KCpoaWdobGlnaHREYXRhRW5kLCBtX3JlbmRlclJhbmdlLmVuZE9mZnNldCgpLnZhbHVl
KCkpOwotICAgIFVOVVNFRF9QQVJBTShoaWdobGlnaHRFbmQpOworICAgIGF1dG8qIGhpZ2hsaWdo
dEVuZCA9IHJlbmRlcmVyQWZ0ZXJPZmZzZXQoKm1fcmVuZGVyUmFuZ2UuZW5kKCksIG1fcmVuZGVy
UmFuZ2UuZW5kT2Zmc2V0KCkudmFsdWUoKSk7CisgICAgCiAgICAgSGlnaGxpZ2h0SXRlcmF0b3Ig
aGlnaGxpZ2h0SXRlcmF0b3IobV9yZW5kZXJSYW5nZS5zdGFydCgpKTsKLSAgICBmb3IgKGF1dG8q
IGN1cnJlbnRSZW5kZXJlciA9IG1fcmVuZGVyUmFuZ2Uuc3RhcnQoKTsgY3VycmVudFJlbmRlcmVy
ICYmIGN1cnJlbnRSZW5kZXJlciAhPSBtX3JlbmRlclJhbmdlLmVuZCgpOyBjdXJyZW50UmVuZGVy
ZXIgPSBoaWdobGlnaHRJdGVyYXRvci5uZXh0KCkpIHsKLSAgICAgICAgaWYgKGN1cnJlbnRSZW5k
ZXJlciA9PSBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgfHwgY3VycmVudFJlbmRlcmVyID09IG1fcmVu
ZGVyUmFuZ2UuZW5kKCkpCisgICAgZm9yIChhdXRvKiBjdXJyZW50UmVuZGVyZXIgPSBtX3JlbmRl
clJhbmdlLnN0YXJ0KCk7IGN1cnJlbnRSZW5kZXJlciAmJiBjdXJyZW50UmVuZGVyZXIgIT0gaGln
aGxpZ2h0RW5kOyBjdXJyZW50UmVuZGVyZXIgPSBoaWdobGlnaHRJdGVyYXRvci5uZXh0KCkpIHsK
KyAgICAgICAgaWYgKGN1cnJlbnRSZW5kZXJlciA9PSBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgfHwg
Y3VycmVudFJlbmRlcmVyID09IGhpZ2hsaWdodEVuZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwog
ICAgICAgICBpZiAoIWN1cnJlbnRSZW5kZXJlci0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkpCiAgICAg
ICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9I
aWdobGlnaHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5o
CmluZGV4IGFkODBmZDNkNmUzZTlhNmQwY2EzMTUxNDIzMGUyNGMyMzkwYzEzMTQuLjA4NGY5YjA5
ZGQ1NDhlYmM5NWY1MGNkZWEyOTZjNmM5NDdkZDM5MDggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL0hpZ2hsaWdodERhdGEuaApAQCAtMzcsNiArMzcsOCBAQAogI2VuZGlmCiAKIG5hbWVzcGFj
ZSBXZWJDb3JlIHsKKworc3RydWN0IEhpZ2hsaWdodFJhbmdlRGF0YTsKICAgICAKIGNsYXNzIEhp
Z2hsaWdodERhdGEgewogcHVibGljOgpAQCAtNzEsNiArNzMsNyBAQCBwdWJsaWM6CiAgICAgfTsK
ICAgICAKICAgICB2b2lkIHNldFJlbmRlclJhbmdlKGNvbnN0IFJlbmRlclJhbmdlJik7CisgICAg
Ym9vbCBzZXRSZW5kZXJSYW5nZShIaWdobGlnaHRSYW5nZURhdGEmKTsgLy8gcmV0dXJucyB0cnVl
IGlmIHRoZSBzZXR0aW5nIG9mIHRoZSByZW5kZXJSYW5nZSBmcm9tIHRoZSBIaWdobGlnaHRSYW5n
ZURhdGEgaGFzIGJlZW4gc3VjY2Vzc2Z1bC4KICAgICAKICAgICBlbnVtIGNsYXNzIFJlcGFpbnRN
b2RlIHsgTmV3WE9ST2xkLCBOZXdNaW51c09sZCwgTm90aGluZyB9OwogICAgIHZvaWQgc2V0U2Vs
ZWN0aW9uKGNvbnN0IFJlbmRlclJhbmdlJiwgUmVwYWludE1vZGUgPSBSZXBhaW50TW9kZTo6TmV3
WE9ST2xkKTsKQEAgLTg3LDcgKzkwLDcgQEAgcHVibGljOgogICAgIEludFJlY3QgYm91bmRzQ2xp
cHBlZFRvVmlzaWJsZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBjb2xsZWN0Qm91bmRzKENsaXBU
b1Zpc2libGVDb250ZW50OjpZZXMpOyB9CiAgICAgdm9pZCByZXBhaW50U2VsZWN0aW9uKCkgY29u
c3Q7CiAgICAgCi0gICAgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBoaWdobGlnaHRTdGF0
ZUZvclJlbmRlcmVyKFJlbmRlck9iamVjdCYpOworICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0
U3RhdGUgaGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmKTsKIAog
cHJpdmF0ZToKICAgICBlbnVtIGNsYXNzIENsaXBUb1Zpc2libGVDb250ZW50IHsgWWVzLCBObyB9
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggMjU3
MWI2NTQyYTQ2ZWI2NTVhMDMyZWQxZTlmMDFhZTc3ODY3MjAxZS4uMGRiNWYwZmY1NzI2OTFkNmVi
MzVlNDI5MjRjMTM1NjVkMTBmZDViZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQu
aCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklk
aW9tcy5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodERhdGEuaCIKKyNpbmNsdWRlICJIaWdobGlnaHRN
YXAuaCIKICNpbmNsdWRlICJJbmxpbmVFbGVtZW50Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVw
YWludGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKQEAgLTE0Niw2ICsxNDgsMjggQEAg
aW5saW5lIHN0YXRpYyBib29sIGRyYWdnZWRDb250ZW50Q29udGFpbnNSZXBsYWNlZEVsZW1lbnQo
Y29uc3QgVmVjdG9yPFJlbmRlcmVkRG8KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0NvbG9yIFJl
bmRlclJlcGxhY2VkOjpjYWxjdWxhdGVIaWdobGlnaHRDb2xvcigpIGNvbnN0Cit7CisgICAgYXV0
byBoaWdobGlnaHREYXRhID0gSGlnaGxpZ2h0RGF0YSh2aWV3KCkpOworICAgIGZvciAoYXV0byYg
aGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5oaWdobGlnaHRNYXAoKS5tYXAoKSkgeworICAgICAgICBm
b3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7Cisg
ICAgICAgICAgICBpZiAoIXJhbmdlRGF0YS0+c3RhcnRQb3NpdGlvbiB8fCAhcmFuZ2VEYXRhLT5l
bmRQb3NpdGlvbikKKyAgICAgICAgICAgICAgICBjb250aW51ZTsKKyAgICAKKyAgICAgICAgICAg
IGlmICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIHN0YXRlID0g
aGlnaGxpZ2h0RGF0YS5oaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVyKCp0aGlzKTsKKyAgICAgICAg
ICAgIGlmICghaXNIaWdobGlnaHRlZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkpCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmIChhdXRvIGhpZ2hsaWdodFN0eWxlID0g
Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGlnaHQsIGhpZ2hsaWdodC5r
ZXkgfSwgJnN0eWxlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBoaWdobGlnaHRTdHlsZS0+
YmFja2dyb3VuZENvbG9yKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIENvbG9yKCk7
Cit9CisKIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFzaG91bGRQYWludChw
YWludEluZm8sIHBhaW50T2Zmc2V0KSkKQEAgLTE5NSw2ICsyMTksMTEgQEAgdm9pZCBSZW5kZXJS
ZXBsYWNlZDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBw
YWludE9mZnNldCkKICAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QoKnRo
aXMpKQogICAgICAgICByZXR1cm47CiAgICAgCisgICAgCisgICAgQ29sb3IgaGlnaGxpZ2h0Q29s
b3IgPSBDb2xvcigpOworICAgIGlmICghZG9jdW1lbnQoKS5wcmludGluZygpICYmICFwYWludElu
Zm8ucGFpbnRCZWhhdmlvci5jb250YWlucyhQYWludEJlaGF2aW9yOjpFeGNsdWRlU2VsZWN0aW9u
KSkKKyAgICAgICAgaGlnaGxpZ2h0Q29sb3IgPSBjYWxjdWxhdGVIaWdobGlnaHRDb2xvcigpOwor
ICAgIAogICAgIGJvb2wgZHJhd1NlbGVjdGlvblRpbnQgPSBzaG91bGREcmF3U2VsZWN0aW9uVGlu
dCgpOwogICAgIGlmIChwYWludEluZm8ucGhhc2UgPT0gUGFpbnRQaGFzZTo6U2VsZWN0aW9uKSB7
CiAgICAgICAgIGlmIChzZWxlY3Rpb25TdGF0ZSgpID09IEhpZ2hsaWdodFN0YXRlOjpOb25lKQpA
QCAtMjI4LDYgKzI1NywxMyBAQCB2b2lkIFJlbmRlclJlcGxhY2VkOjpwYWludChQYWludEluZm8m
IHBhaW50SW5mbywgY29uc3QgTGF5b3V0UG9pbnQmIHBhaW50T2Zmc2V0KQogICAgICAgICBzZWxl
Y3Rpb25QYWludGluZ1JlY3QubW92ZUJ5KGFkanVzdGVkUGFpbnRPZmZzZXQpOwogICAgICAgICBw
YWludEluZm8uY29udGV4dCgpLmZpbGxSZWN0KHNuYXBwZWRJbnRSZWN0KHNlbGVjdGlvblBhaW50
aW5nUmVjdCksIHNlbGVjdGlvbkJhY2tncm91bmRDb2xvcigpKTsKICAgICB9CisgICAgCisgICAg
aWYgKGhpZ2hsaWdodENvbG9yLmlzVmlzaWJsZSgpKSB7CisgICAgICAgIGF1dG8gc2VsZWN0aW9u
UGFpbnRpbmdSZWN0ID0gbG9jYWxTZWxlY3Rpb25SZWN0KGZhbHNlKTsKKyAgICAgICAgc2VsZWN0
aW9uUGFpbnRpbmdSZWN0Lm1vdmVCeShhZGp1c3RlZFBhaW50T2Zmc2V0KTsKKyAgICAgICAgcGFp
bnRJbmZvLmNvbnRleHQoKS5maWxsUmVjdChzbmFwcGVkSW50UmVjdChzZWxlY3Rpb25QYWludGlu
Z1JlY3QpLCBoaWdobGlnaHRDb2xvcik7CisgICAgfQorCiB9CiAKIGJvb2wgUmVuZGVyUmVwbGFj
ZWQ6OnNob3VsZFBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYg
cGFpbnRPZmZzZXQpCkBAIC02NzksMTkgKzcxNSwyMyBAQCB2b2lkIFJlbmRlclJlcGxhY2VkOjpz
ZXRTZWxlY3Rpb25TdGF0ZShIaWdobGlnaHRTdGF0ZSBzdGF0ZSkKICAgICBSZW5kZXJCb3g6OnNl
dFNlbGVjdGlvblN0YXRlKHN0YXRlKTsKIAogICAgIGlmIChtX2lubGluZUJveFdyYXBwZXIgJiYg
Y2FuVXBkYXRlU2VsZWN0aW9uT25Sb290TGluZUJveGVzKCkpCi0gICAgICAgIG1faW5saW5lQm94
V3JhcHBlci0+cm9vdCgpLnNldEhhc1NlbGVjdGVkQ2hpbGRyZW4oaXNTZWxlY3RlZCgpKTsKKyAg
ICAgICAgbV9pbmxpbmVCb3hXcmFwcGVyLT5yb290KCkuc2V0SGFzU2VsZWN0ZWRDaGlsZHJlbihp
c0hpZ2hsaWdodGVkKHNlbGVjdGlvblN0YXRlKCksIHZpZXcoKS5zZWxlY3Rpb24oKSkpOwogfQog
CiBib29sIFJlbmRlclJlcGxhY2VkOjppc1NlbGVjdGVkKCkgY29uc3QKIHsKLSAgICBIaWdobGln
aHRTdGF0ZSBzdGF0ZSA9IHNlbGVjdGlvblN0YXRlKCk7CisgICAgcmV0dXJuIGlzSGlnaGxpZ2h0
ZWQoc2VsZWN0aW9uU3RhdGUoKSwgdmlldygpLnNlbGVjdGlvbigpKTsKK30KKworYm9vbCBSZW5k
ZXJSZXBsYWNlZDo6aXNIaWdobGlnaHRlZChIaWdobGlnaHRTdGF0ZSBzdGF0ZSwgY29uc3QgSGln
aGxpZ2h0RGF0YSYgcmFuZ2VEYXRhKSBjb25zdAorewogICAgIGlmIChzdGF0ZSA9PSBIaWdobGln
aHRTdGF0ZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChzdGF0ZSA9PSBI
aWdobGlnaHRTdGF0ZTo6SW5zaWRlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8g
c2VsZWN0aW9uU3RhcnQgPSB2aWV3KCkuc2VsZWN0aW9uKCkuc3RhcnRPZmZzZXQoKTsKLSAgICBh
dXRvIHNlbGVjdGlvbkVuZCA9IHZpZXcoKS5zZWxlY3Rpb24oKS5lbmRPZmZzZXQoKTsKKyAgICBh
dXRvIHNlbGVjdGlvblN0YXJ0ID0gcmFuZ2VEYXRhLnN0YXJ0T2Zmc2V0KCk7CisgICAgYXV0byBz
ZWxlY3Rpb25FbmQgPSByYW5nZURhdGEuZW5kT2Zmc2V0KCk7CiAgICAgaWYgKHN0YXRlID09IEhp
Z2hsaWdodFN0YXRlOjpTdGFydCkKICAgICAgICAgcmV0dXJuICFzZWxlY3Rpb25TdGFydDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAppbmRleCBlNjRjM2Q3NWQ4
MDE5NjUxODgzZjE5MWNhYTM3Zjg5NWI0YWMxYWJlLi40N2Q1Mjc2MGVjMTAxYjUwZDYxMzZjMzA2
Y2IzMzJkNjViNjYyODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuaApAQCAtOTQsNiArOTQsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgY29tcHV0ZUFzcGVjdFJh
dGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyQm94KiwgRmxvYXRTaXplJiBjb25zdHJh
aW5lZFNpemUsIGRvdWJsZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OwogCiAgICAgdmlydHVhbCBi
b29sIHNob3VsZERyYXdTZWxlY3Rpb25UaW50KCkgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCBD
b2xvciBjYWxjdWxhdGVIaWdobGlnaHRDb2xvcigpIGNvbnN0OworICAgIGJvb2wgaXNIaWdobGln
aHRlZChIaWdobGlnaHRTdGF0ZSwgY29uc3QgSGlnaGxpZ2h0RGF0YSYpIGNvbnN0OwogCiAgICAg
bXV0YWJsZSBMYXlvdXRTaXplIG1faW50cmluc2ljU2l6ZTsKIH07CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjAwZmYxODU0
NDM2NjUzMjBiNzNmMTcyYTA0NjQ1MzAxY2E1MGU3Ni4uYmM4MjI3YzgyNGVmMGFjODlkYWE4MzRl
ZjgxMzZiNmU3Zjg4M2E2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTEwLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NT
IGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzQxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdo
dC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
d3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbDogQWRkZWQuCisK
IDIwMjAtMTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgdW5za2lwIHNldmVyYWwgY2FudmFzLXJlbGF0ZWQgbGF5b3V0IHRl
c3QgZGlyZWN0b3JpZXMgd2hlbiBlbmFibGluZyBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1l
eHBlY3RlZC1taXNtYXRjaGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhp
Z2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLWV4cGVjdGVkLW1pc21hdGNoZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi42YjMwNTViMzRjY2JhNmQyMmZjYzJkOWYyYjYzYmRlMTc0YTQzNzBkCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hp
Z2hsaWdodC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaGVkLmh0bWwKQEAgLTAsMCArMSwxNSBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKyAgICA8dGl0bGU+TXVsdGlwbGUgY3VzdG9tIGhpZ2hsaWdodCBwc2V1ZG8gZWxlbWVudHMu
PC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3MtaGlnaGxpZ2h0LWFwaS0xLyNjcmVhdGluZy1oaWdobGlnaHRzIj4KKyAgICA8bGlu
ayByZWw9Im1hdGNoIiBocmVmPSJoaWdobGlnaHQtdGV4dC1leHBlY3RlZC5odG1sIj4KKyAgICA8
bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ik11bHRpcGxlIGhpZ2hsaWdodHMgc2hvdWxkIGJl
IGFibGUgdG8gYmUgc3BlY2lmaWVkLiI+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJz
dHlsZTEiPjxpbWcgc3JjPSIuLi8uLi9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZyI+PC9kaXY+
CisgICAgPGRpdiBpZD0ic3R5bGUyIj48aW1nIHNyYz0iLi4vLi4vaW1hZ2VzL2JsYW5rLWhpZ2hs
aWdodC5wbmciPjwvZGl2PgorICAgIDxkaXYgaWQ9InN0eWxlMyI+PGltZyBzcmM9Ii4uLy4uL2lt
YWdlcy9ibGFuay1oaWdobGlnaHQucG5nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGln
aHQtaW1hZ2UuaHRtbCBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFw
aS9oaWdobGlnaHQtaW1hZ2UuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40MWFmZjkwOTBhNzczZjQ4MzQ0YWIw
ZDM3MWZjMTc0ZDlhNjJlZTU3Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93
cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sCkBAIC0wLDAgKzEs
NTMgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0
PSJ1dGYtOCI+CisgICAgPHRpdGxlPk11bHRpcGxlIGN1c3RvbSBoaWdobGlnaHQgcHNldWRvIGVs
ZW1lbnRzLjwvdGl0bGU+CisgICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0
cy5jc3N3Zy5vcmcvY3NzLWhpZ2hsaWdodC1hcGktMS8jY3JlYXRpbmctaGlnaGxpZ2h0cyI+Cisg
ICAgPGxpbmsgcmVsPSJtYXRjaCIgaHJlZj0iaGlnaGxpZ2h0LXRleHQtZXhwZWN0ZWQuaHRtbCI+
CisgICAgPG1ldGEgbmFtZT0iYXNzZXJ0IiBjb250ZW50PSJNdWx0aXBsZSBoaWdobGlnaHRzIHNo
b3VsZCBiZSBhYmxlIHRvIGJlIHNwZWNpZmllZC4iPgorICAgICAgICA8c3R5bGU+CisgICAgICAg
ICNpbWcxIHsKKyAgICAgICAgICAgIGRpc3BsYXk6IGlubGluZS1ibG9jazsKKyAgICAgICAgfQor
ICAgICAgICAjaW1nMiB7CisgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAg
ICAgIH0KKyAgICAgICAgI2ltZzMgeworICAgICAgICAgICAgZGlzcGxheTogaW5saW5lLWJsb2Nr
OworICAgICAgICB9CisgICAgICAgIDo6aGlnaGxpZ2h0KGV4YW1wbGUtaGlnaGxpZ2h0MSkgewor
ICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogcmdiYSgyMDAsMCwwLC41KTsKKyAgICAgICAg
ICAgIGNvbG9yOmdyZWVuOworICAgICAgICB9CisgICAgICAgIDo6aGlnaGxpZ2h0KGV4YW1wbGUt
aGlnaGxpZ2h0MikgeworICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogYmx1ZTsKKyAgICAg
ICAgICAgIGNvbG9yOnJlZDsKKyAgICAgICAgfQorICAgICAgICA6OmhpZ2hsaWdodChleGFtcGxl
LWhpZ2hsaWdodDMpIHsKKyAgICAgICAgICAgIGNvbG9yOnBpbms7CisgICAgICAgIH0KKyAgICAg
ICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImltZzEiPjxpbWcgc3Jj
PSIuLi8uLi9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZyI+PC9kaXY+CisgICAgPGRpdiBpZD0i
aW1nMiI+PGltZyBzcmM9Ii4uLy4uL2ltYWdlcy9ibGFuay1oaWdobGlnaHQucG5nIj48L2Rpdj4K
KyAgICA8ZGl2IGlkPSJpbWczIj48aW1nIHNyYz0iLi4vLi4vaW1hZ2VzL2JsYW5rLWhpZ2hsaWdo
dC5wbmciPjwvZGl2PgorCisgICAgPHNjcmlwdD4KKyAgICAgICAgbGV0IGltYWdlRWxlbWVudDEg
PSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgnaW1nMScpOworICAgICAgICBsZXQgaGlnaGxpZ2h0
UmFuZ2VHcm91cDEgPSBuZXcgSGlnaGxpZ2h0UmFuZ2VHcm91cChuZXcgU3RhdGljUmFuZ2Uoe3N0
YXJ0Q29udGFpbmVyOiBpbWFnZUVsZW1lbnQxLmNoaWxkTm9kZXNbMF0sIHN0YXJ0T2Zmc2V0OiAw
LCBlbmRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwgZW5kT2Zmc2V0OiAx
fSkpOworCisgICAgICAgIGxldCBpbWFnZUVsZW1lbnQyID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5
SWQoJ2ltZzInKTsKKyAgICAgICAgbGV0IGhpZ2hsaWdodFJhbmdlR3JvdXAyID0gbmV3IEhpZ2hs
aWdodFJhbmdlR3JvdXAobmV3IFN0YXRpY1JhbmdlKHtzdGFydENvbnRhaW5lcjogaW1hZ2VFbGVt
ZW50Mi5jaGlsZE5vZGVzWzBdLCBzdGFydE9mZnNldDogMCwgZW5kQ29udGFpbmVyOiBpbWFnZUVs
ZW1lbnQyLmNoaWxkTm9kZXNbMF0sIGVuZE9mZnNldDogMX0pKTsKKworICAgICAgICBsZXQgaW1h
Z2VFbGVtZW50MyA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWczJyk7CisgICAgICAgIGxl
dCBoaWdobGlnaHRSYW5nZUdyb3VwMyA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0
aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGltYWdlRWxlbWVudDMuY2hpbGROb2Rlc1swXSwgc3Rh
cnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogaW1hZ2VFbGVtZW50My5jaGlsZE5vZGVzWzBdLCBl
bmRPZmZzZXQ6IDF9KSk7CisgICAgICAgIAorCisgICAgICAgIENTUy5oaWdobGlnaHRzLnNldCgi
ZXhhbXBsZS1oaWdobGlnaHQxIiwgaGlnaGxpZ2h0UmFuZ2VHcm91cDEpOworICAgICAgICBDU1Mu
aGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MiIsIGhpZ2hsaWdodFJhbmdlR3JvdXAy
KTsKKyAgICAgICAgQ1NTLmhpZ2hsaWdodHMuc2V0KCJleGFtcGxlLWhpZ2hsaWdodDMiLCBoaWdo
bGlnaHRSYW5nZUdyb3VwMyk7CisgICAgPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZyBi
L0xheW91dFRlc3RzL2h0dHAvd3B0L2ltYWdlcy9ibGFuay1oaWdobGlnaHQucG5nCm5ldyBmaWxl
IG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAuLjZkYmVlMDkxNzQ5ZmI2ZDcwZDYyZjM5MTRkNzVjYmE0MzJiNTViNWEKR0lUIGJpbmFyeSBw
YXRjaApsaXRlcmFsIDE2MTMKemNtZUhIJnJqMSg5RGlraSZfTl9oMiU/RSlVY19ZV1ROamwhVE5C
dWpFcGYyU1hAKmBYVGNfMStaUTdFUm5eX2A7Cno4eUFmK0I8XjVAZ1c9QFNrUCRVcjJwMkElT2VB
X1JWIVoxPy0pcDxBSDFIcVQ9Sm9zU194dCZMZjRzaExTSkVAbgp6e3AxSjwwTyhJOTt1JDBoYz1k
Rm5yQEg/bml2KiEocllGSlg/eiEqaXI2SnsjI1ooR2hMVjZFNEw3VzBVM18mKl8Kek1uSVJQMUYl
NHhaUnopa2l3PnAoVkx8e3MhQVowPGcwPUtQcX1Md0hwd3I8I01He3tMdmB8IUFyZSN3cWx8QDYq
CnpzNCZkfHooTi1DQTs/M0hmKmUtWmFSN1hFcUZxaEJxWlA0R19xQkIjYG8tK0d3QENEPWk4Jm5y
fDdwQWtATyo2Owp6I25fT3VJVXw/NCZnWWRmRWYkbW9pOGprQldgVCZ3QmVnNlVCNHc2SzZgZVB1
MFNteis5aDtjfFdrSE13KExnU2gKenJlY2FGUUNEYjQhKz0waTZjeTE1TUxyWTE9RnJod0c7cSVf
Ukd3an4paGI7TCh+NVNOMzJffDlLJGM8SUFWTEs3CnpySFViJSFIUnl0NCRfUGhtLU1fUXRBP3lw
Qz4mUUBQIV40N0FiPUNLRjF0PWNGMTltT2JmKyFVQWNIK2poPSRCagp6R3w3fllwPCZPbEdfKiZw
d2hrcFRNYiMhKm5fPEAmITQ+Y15yTDFhX3VBXlFBN19xODRXTllfaTwxPj0zbG9vTzgKekghSEZz
dW54c3pfT2Z6cXppX3E1YVR+cGF4dVhiZnFuOXdOJHJBY254Ryo4KTZ5PihMQE9UUyg+c2FVRmEj
XlphCnp5QHcjYHt6IzlQOEI8RCVjMCgyTzU+OH1NVHFaQnQkfUBMdDkrJF8oTUJrQipYJVpmfnRm
R3tKISFzQ1J5bllXZwp6cjQ7MWlRZH40NzBaKGYlMWNRKnZIbUI5NXlEJHpyIXItJilJQHxXKFNY
TU1TMCpRI3RESE89cCVlU2BCVXFWYTkKekMkYzgtYjhveDEwc0I2cipaPSVGY3klWVQoWHIocGBA
NklBYE51Pnp4JlF2dE17KHRBSTZaSzFlKCl2cmpPYmZgCnpHfXN3X19+cCVOWk4zfD40UF4jKSEx
Q1RDU3YlOEVaem0/OForT04oKT44IVU8azdDfXpXTVJzZjZ7MWZSYkx2KQpifEd2RUl1TT9meWgy
RSg+ezlqQj8mQlFrKz1XRzd9cFhKVHgKCmxpdGVyYWwgMApIY21WP2QwMDAwMQoK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411236</attachid>
            <date>2020-10-13 12:24:02 -0700</date>
            <delta_ts>2020-10-13 13:26:53 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217417-20201013122401.patch</filename>
            <type>text/plain</type>
            <size>14038</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhhMmY5Y2MwNDQ0NDBm
NGE1ZjgwN2RhOTlhZWYwZWFmOTU1NWI0Mi4uOWM2ZDc1OWZiMTcwZjdmMmIwZGVkZWRmNDI2Mjky
YjIzNjNiNmM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTEwLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NT
IGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzQxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg0NTkwNTQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgdG8gcGFpbnQgQ1NTIHBzZXVkbyBoaWdobGlnaHRzIG92ZXIgaW1hZ2VzIHRoYXQgYXJl
IGluIHRoZSAKKyAgICAgICAgcmFuZ2Ugb2YgdGhlIGRlZmluZWQgaGlnaGxpZ2h0LgorCisgICAg
ICAgIFRlc3Q6IGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2Uu
aHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcik6CisgICAg
ICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBvdGVu
dGlhbEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxh
Y2VkOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisKIDIw
MjAtMTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01vdGlvbk1hcmtdIEFkZCBhIGZhc3QgcGF0aCBmb3IgR3JhcGhpY3NDb250ZXh0OjpzdHJv
a2VQYXRoIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBwYXRoIGlzIGEgbGluZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCmluZGV4IDJlZjdiYTc1MTU3M2IyODk5YWNk
M2U2ZGYyY2Q3MTg2NzEyYjliMDUuLmRlY2QwZTk1OGQ1NDg4Mjg3Njk1YTE3OGEwYzk0OGM4NTNj
ZDFmOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVT
ZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAg
LTE2Miw3ICsxNjMsMjggQEAgdm9pZCBIaWdobGlnaHREYXRhOjpzZXRSZW5kZXJSYW5nZShjb25z
dCBSZW5kZXJSYW5nZSYgcmVuZGVyUmFuZ2UpCiAgICAgbV9yZW5kZXJSYW5nZSA9IHJlbmRlclJh
bmdlOwogfQogCi1SZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIEhpZ2hsaWdodERhdGE6Omhp
Z2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK2Jvb2wgSGln
aGxpZ2h0RGF0YTo6c2V0UmVuZGVyUmFuZ2UoY29uc3QgSGlnaGxpZ2h0UmFuZ2VEYXRhJiByYW5n
ZURhdGEpCit7CisgICAgaWYgKCFyYW5nZURhdGEuc3RhcnRQb3NpdGlvbiB8fCAhcmFuZ2VEYXRh
LmVuZFBvc2l0aW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgYXV0byBzdGFy
dFBvc2l0aW9uID0gcmFuZ2VEYXRhLnN0YXJ0UG9zaXRpb24udmFsdWUoKTsKKyAgICBhdXRvIGVu
ZFBvc2l0aW9uID0gcmFuZ2VEYXRhLmVuZFBvc2l0aW9uLnZhbHVlKCk7CisgICAgCisgICAgYXV0
byogc3RhcnRSZW5kZXJlciA9IHN0YXJ0UG9zaXRpb24uY29udGFpbmVyTm9kZSgpLT5yZW5kZXJl
cigpOworICAgIGF1dG8qIGVuZFJlbmRlcmVyID0gZW5kUG9zaXRpb24uY29udGFpbmVyTm9kZSgp
LT5yZW5kZXJlcigpOworICAgIAorICAgIGlmICghc3RhcnRSZW5kZXJlciB8fCAhZW5kUmVuZGVy
ZXIpCisgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAKKyAgICB1bnNpZ25lZCBzdGFydE9mZnNl
dCA9IHN0YXJ0UG9zaXRpb24uY29tcHV0ZU9mZnNldEluQ29udGFpbmVyTm9kZSgpOworICAgIHVu
c2lnbmVkIGVuZE9mZnNldCA9IGVuZFBvc2l0aW9uLmNvbXB1dGVPZmZzZXRJbkNvbnRhaW5lck5v
ZGUoKTsKKworICAgIHNldFJlbmRlclJhbmdlKHsgc3RhcnRSZW5kZXJlciwgZW5kUmVuZGVyZXIs
IHN0YXJ0T2Zmc2V0LCBlbmRPZmZzZXQgfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JlbmRl
ck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JS
ZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIGlmICgmcmVuZGVy
ZXIgPT0gbV9yZW5kZXJSYW5nZS5zdGFydCgpKSB7CiAgICAgICAgIGlmIChtX3JlbmRlclJhbmdl
LnN0YXJ0KCkgJiYgbV9yZW5kZXJSYW5nZS5lbmQoKSAmJiBtX3JlbmRlclJhbmdlLnN0YXJ0KCkg
PT0gbV9yZW5kZXJSYW5nZS5lbmQoKSkKQEAgLTE3MywxNCArMTk1LDExIEBAIFJlbmRlck9iamVj
dDo6SGlnaGxpZ2h0U3RhdGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJl
cihSZW5kZXJPYmplCiAgICAgaWYgKCZyZW5kZXJlciA9PSBtX3JlbmRlclJhbmdlLmVuZCgpKQog
ICAgICAgICByZXR1cm4gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6RW5kOwogCi0gICAg
UmVuZGVyT2JqZWN0KiBoaWdobGlnaHRFbmQgPSBudWxscHRyOwotICAgIGF1dG8qIGhpZ2hsaWdo
dERhdGFFbmQgPSBtX3JlbmRlclJhbmdlLmVuZCgpOwotICAgIGlmIChoaWdobGlnaHREYXRhRW5k
KQotICAgICAgICBoaWdobGlnaHRFbmQgPSByZW5kZXJlckFmdGVyT2Zmc2V0KCpoaWdobGlnaHRE
YXRhRW5kLCBtX3JlbmRlclJhbmdlLmVuZE9mZnNldCgpLnZhbHVlKCkpOwotICAgIFVOVVNFRF9Q
QVJBTShoaWdobGlnaHRFbmQpOworICAgIGF1dG8qIGhpZ2hsaWdodEVuZCA9IHJlbmRlcmVyQWZ0
ZXJPZmZzZXQoKm1fcmVuZGVyUmFuZ2UuZW5kKCksIG1fcmVuZGVyUmFuZ2UuZW5kT2Zmc2V0KCku
dmFsdWUoKSk7CisgICAgCiAgICAgSGlnaGxpZ2h0SXRlcmF0b3IgaGlnaGxpZ2h0SXRlcmF0b3Io
bV9yZW5kZXJSYW5nZS5zdGFydCgpKTsKLSAgICBmb3IgKGF1dG8qIGN1cnJlbnRSZW5kZXJlciA9
IG1fcmVuZGVyUmFuZ2Uuc3RhcnQoKTsgY3VycmVudFJlbmRlcmVyICYmIGN1cnJlbnRSZW5kZXJl
ciAhPSBtX3JlbmRlclJhbmdlLmVuZCgpOyBjdXJyZW50UmVuZGVyZXIgPSBoaWdobGlnaHRJdGVy
YXRvci5uZXh0KCkpIHsKLSAgICAgICAgaWYgKGN1cnJlbnRSZW5kZXJlciA9PSBtX3JlbmRlclJh
bmdlLnN0YXJ0KCkgfHwgY3VycmVudFJlbmRlcmVyID09IG1fcmVuZGVyUmFuZ2UuZW5kKCkpCisg
ICAgZm9yIChhdXRvKiBjdXJyZW50UmVuZGVyZXIgPSBtX3JlbmRlclJhbmdlLnN0YXJ0KCk7IGN1
cnJlbnRSZW5kZXJlciAmJiBjdXJyZW50UmVuZGVyZXIgIT0gaGlnaGxpZ2h0RW5kOyBjdXJyZW50
UmVuZGVyZXIgPSBoaWdobGlnaHRJdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgaWYgKGN1cnJl
bnRSZW5kZXJlciA9PSBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgfHwgY3VycmVudFJlbmRlcmVyID09
IGhpZ2hsaWdodEVuZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoIWN1cnJl
bnRSZW5kZXJlci0+Y2FuQmVTZWxlY3Rpb25MZWFmKCkpCiAgICAgICAgICAgICBjb250aW51ZTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5oCmluZGV4IGFkODBmZDNkNmUz
ZTlhNmQwY2EzMTUxNDIzMGUyNGMyMzkwYzEzMTQuLjE4YTEyYzJiY2Y1ZTBiZjA2OTUyM2VhNmRj
MGQ1MzgwYWIxMTEzZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdo
bGlnaHREYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEu
aApAQCAtMzcsNiArMzcsOCBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKworc3Ry
dWN0IEhpZ2hsaWdodFJhbmdlRGF0YTsKICAgICAKIGNsYXNzIEhpZ2hsaWdodERhdGEgewogcHVi
bGljOgpAQCAtNzEsNiArNzMsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICAKICAgICB2b2lkIHNl
dFJlbmRlclJhbmdlKGNvbnN0IFJlbmRlclJhbmdlJik7CisgICAgYm9vbCBzZXRSZW5kZXJSYW5n
ZShjb25zdCBIaWdobGlnaHRSYW5nZURhdGEmKTsgLy8gcmV0dXJucyB0cnVlIGlmIHRoZSBzZXR0
aW5nIG9mIHRoZSByZW5kZXJSYW5nZSBmcm9tIHRoZSBIaWdobGlnaHRSYW5nZURhdGEgaGFzIGJl
ZW4gc3VjY2Vzc2Z1bC4KICAgICAKICAgICBlbnVtIGNsYXNzIFJlcGFpbnRNb2RlIHsgTmV3WE9S
T2xkLCBOZXdNaW51c09sZCwgTm90aGluZyB9OwogICAgIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0
IFJlbmRlclJhbmdlJiwgUmVwYWludE1vZGUgPSBSZXBhaW50TW9kZTo6TmV3WE9ST2xkKTsKQEAg
LTg3LDcgKzkwLDcgQEAgcHVibGljOgogICAgIEludFJlY3QgYm91bmRzQ2xpcHBlZFRvVmlzaWJs
ZUNvbnRlbnQoKSBjb25zdCB7IHJldHVybiBjb2xsZWN0Qm91bmRzKENsaXBUb1Zpc2libGVDb250
ZW50OjpZZXMpOyB9CiAgICAgdm9pZCByZXBhaW50U2VsZWN0aW9uKCkgY29uc3Q7CiAgICAgCi0g
ICAgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBoaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVy
KFJlbmRlck9iamVjdCYpOworICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgaGlnaGxp
Z2h0U3RhdGVGb3JSZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmKTsKIAogcHJpdmF0ZToKICAg
ICBlbnVtIGNsYXNzIENsaXBUb1Zpc2libGVDb250ZW50IHsgWWVzLCBObyB9OwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggMjU3MWI2NTQyYTQ2ZWI2
NTVhMDMyZWQxZTlmMDFhZTc3ODY3MjAxZS4uZGUzMzhjYjJjZjNjMTFkMTdhZDU5ODQzMjUzNDJh
M2I0MDRiOTg1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJl
cGxhY2VkLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
Y3BwCkBAIC0zMSw2ICszMSw4IEBACiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRl
ICJIVE1MSW1hZ2VFbGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2lu
Y2x1ZGUgIkhpZ2hsaWdodERhdGEuaCIKKyNpbmNsdWRlICJIaWdobGlnaHRNYXAuaCIKICNpbmNs
dWRlICJJbmxpbmVFbGVtZW50Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgiCiAj
aW5jbHVkZSAiUmVuZGVyQmxvY2suaCIKQEAgLTE0Niw2ICsxNDgsMjYgQEAgaW5saW5lIHN0YXRp
YyBib29sIGRyYWdnZWRDb250ZW50Q29udGFpbnNSZXBsYWNlZEVsZW1lbnQoY29uc3QgVmVjdG9y
PFJlbmRlcmVkRG8KICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0NvbG9yIFJlbmRlclJlcGxhY2Vk
OjpjYWxjdWxhdGVIaWdobGlnaHRDb2xvcigpIGNvbnN0Cit7CisgICAgYXV0byBoaWdobGlnaHRE
YXRhID0gSGlnaGxpZ2h0RGF0YSh2aWV3KCkpOworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDog
ZG9jdW1lbnQoKS5oaWdobGlnaHRNYXAoKS5tYXAoKSkgeworICAgICAgICBmb3IgKGF1dG8mIHJh
bmdlRGF0YSA6IGhpZ2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAgICAgICAK
KyAgICAgICAgICAgIGlmICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEp
KQorICAgICAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBh
dXRvIHN0YXRlID0gaGlnaGxpZ2h0RGF0YS5oaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVyKCp0aGlz
KTsKKyAgICAgICAgICAgIGlmICghaXNIaWdobGlnaHRlZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkp
CisgICAgICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmIChhdXRvIGhpZ2hs
aWdodFN0eWxlID0gZ2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGlnaHQs
IGhpZ2hsaWdodC5rZXkgfSwgJnN0eWxlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBoaWdo
bGlnaHRTdHlsZS0+YmFja2dyb3VuZENvbG9yKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0
dXJuIENvbG9yKCk7Cit9CisKIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYg
cGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFz
aG91bGRQYWludChwYWludEluZm8sIHBhaW50T2Zmc2V0KSkKQEAgLTE5NSw2ICsyMTcsMTEgQEAg
dm9pZCBSZW5kZXJSZXBsYWNlZDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExh
eW91dFBvaW50JiBwYWludE9mZnNldCkKICAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdp
dGhpblJvb3QoKnRoaXMpKQogICAgICAgICByZXR1cm47CiAgICAgCisgICAgCisgICAgQ29sb3Ig
aGlnaGxpZ2h0Q29sb3I7CisgICAgaWYgKCFkb2N1bWVudCgpLnByaW50aW5nKCkgJiYgIXBhaW50
SW5mby5wYWludEJlaGF2aW9yLmNvbnRhaW5zKFBhaW50QmVoYXZpb3I6OkV4Y2x1ZGVTZWxlY3Rp
b24pKQorICAgICAgICBoaWdobGlnaHRDb2xvciA9IGNhbGN1bGF0ZUhpZ2hsaWdodENvbG9yKCk7
CisgICAgCiAgICAgYm9vbCBkcmF3U2VsZWN0aW9uVGludCA9IHNob3VsZERyYXdTZWxlY3Rpb25U
aW50KCk7CiAgICAgaWYgKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlOjpTZWxlY3Rpb24p
IHsKICAgICAgICAgaWYgKHNlbGVjdGlvblN0YXRlKCkgPT0gSGlnaGxpZ2h0U3RhdGU6Ok5vbmUp
CkBAIC0yMjgsNiArMjU1LDEyIEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAgICAgICAgIHNl
bGVjdGlvblBhaW50aW5nUmVjdC5tb3ZlQnkoYWRqdXN0ZWRQYWludE9mZnNldCk7CiAgICAgICAg
IHBhaW50SW5mby5jb250ZXh0KCkuZmlsbFJlY3Qoc25hcHBlZEludFJlY3Qoc2VsZWN0aW9uUGFp
bnRpbmdSZWN0KSwgc2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkpOwogICAgIH0KKyAgICAKKyAg
ICBpZiAoaGlnaGxpZ2h0Q29sb3IuaXNWaXNpYmxlKCkpIHsKKyAgICAgICAgYXV0byBzZWxlY3Rp
b25QYWludGluZ1JlY3QgPSBsb2NhbFNlbGVjdGlvblJlY3QoZmFsc2UpOworICAgICAgICBzZWxl
Y3Rpb25QYWludGluZ1JlY3QubW92ZUJ5KGFkanVzdGVkUGFpbnRPZmZzZXQpOworICAgICAgICBw
YWludEluZm8uY29udGV4dCgpLmZpbGxSZWN0KHNuYXBwZWRJbnRSZWN0KHNlbGVjdGlvblBhaW50
aW5nUmVjdCksIGhpZ2hsaWdodENvbG9yKTsKKyAgICB9CiB9CiAKIGJvb2wgUmVuZGVyUmVwbGFj
ZWQ6OnNob3VsZFBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYg
cGFpbnRPZmZzZXQpCkBAIC02NzksMTkgKzcxMiwyMyBAQCB2b2lkIFJlbmRlclJlcGxhY2VkOjpz
ZXRTZWxlY3Rpb25TdGF0ZShIaWdobGlnaHRTdGF0ZSBzdGF0ZSkKICAgICBSZW5kZXJCb3g6OnNl
dFNlbGVjdGlvblN0YXRlKHN0YXRlKTsKIAogICAgIGlmIChtX2lubGluZUJveFdyYXBwZXIgJiYg
Y2FuVXBkYXRlU2VsZWN0aW9uT25Sb290TGluZUJveGVzKCkpCi0gICAgICAgIG1faW5saW5lQm94
V3JhcHBlci0+cm9vdCgpLnNldEhhc1NlbGVjdGVkQ2hpbGRyZW4oaXNTZWxlY3RlZCgpKTsKKyAg
ICAgICAgbV9pbmxpbmVCb3hXcmFwcGVyLT5yb290KCkuc2V0SGFzU2VsZWN0ZWRDaGlsZHJlbihp
c0hpZ2hsaWdodGVkKHNlbGVjdGlvblN0YXRlKCksIHZpZXcoKS5zZWxlY3Rpb24oKSkpOwogfQog
CiBib29sIFJlbmRlclJlcGxhY2VkOjppc1NlbGVjdGVkKCkgY29uc3QKIHsKLSAgICBIaWdobGln
aHRTdGF0ZSBzdGF0ZSA9IHNlbGVjdGlvblN0YXRlKCk7CisgICAgcmV0dXJuIGlzSGlnaGxpZ2h0
ZWQoc2VsZWN0aW9uU3RhdGUoKSwgdmlldygpLnNlbGVjdGlvbigpKTsKK30KKworYm9vbCBSZW5k
ZXJSZXBsYWNlZDo6aXNIaWdobGlnaHRlZChIaWdobGlnaHRTdGF0ZSBzdGF0ZSwgY29uc3QgSGln
aGxpZ2h0RGF0YSYgcmFuZ2VEYXRhKSBjb25zdAorewogICAgIGlmIChzdGF0ZSA9PSBIaWdobGln
aHRTdGF0ZTo6Tm9uZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChzdGF0ZSA9PSBI
aWdobGlnaHRTdGF0ZTo6SW5zaWRlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8g
c2VsZWN0aW9uU3RhcnQgPSB2aWV3KCkuc2VsZWN0aW9uKCkuc3RhcnRPZmZzZXQoKTsKLSAgICBh
dXRvIHNlbGVjdGlvbkVuZCA9IHZpZXcoKS5zZWxlY3Rpb24oKS5lbmRPZmZzZXQoKTsKKyAgICBh
dXRvIHNlbGVjdGlvblN0YXJ0ID0gcmFuZ2VEYXRhLnN0YXJ0T2Zmc2V0KCk7CisgICAgYXV0byBz
ZWxlY3Rpb25FbmQgPSByYW5nZURhdGEuZW5kT2Zmc2V0KCk7CiAgICAgaWYgKHN0YXRlID09IEhp
Z2hsaWdodFN0YXRlOjpTdGFydCkKICAgICAgICAgcmV0dXJuICFzZWxlY3Rpb25TdGFydDsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAppbmRleCBlNjRjM2Q3NWQ4
MDE5NjUxODgzZjE5MWNhYTM3Zjg5NWI0YWMxYWJlLi40N2Q1Mjc2MGVjMTAxYjUwZDYxMzZjMzA2
Y2IzMzJkNjViNjYyODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuaApAQCAtOTQsNiArOTQsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgY29tcHV0ZUFzcGVjdFJh
dGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJCb3goUmVuZGVyQm94KiwgRmxvYXRTaXplJiBjb25zdHJh
aW5lZFNpemUsIGRvdWJsZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OwogCiAgICAgdmlydHVhbCBi
b29sIHNob3VsZERyYXdTZWxlY3Rpb25UaW50KCkgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCBD
b2xvciBjYWxjdWxhdGVIaWdobGlnaHRDb2xvcigpIGNvbnN0OworICAgIGJvb2wgaXNIaWdobGln
aHRlZChIaWdobGlnaHRTdGF0ZSwgY29uc3QgSGlnaGxpZ2h0RGF0YSYpIGNvbnN0OwogCiAgICAg
bXV0YWJsZSBMYXlvdXRTaXplIG1faW50cmluc2ljU2l6ZTsKIH07CmRpZmYgLS1naXQgYS9MYXlv
dXRUZXN0cy9DaGFuZ2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjAwZmYxODU0
NDM2NjUzMjBiNzNmMTcyYTA0NjQ1MzAxY2E1MGU3Ni4uYmM4MjI3YzgyNGVmMGFjODlkYWE4MzRl
ZjgxMzZiNmU3Zjg4M2E2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBi
L0xheW91dFRlc3RzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTEwLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NT
IGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzQxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdo
dC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAv
d3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbDogQWRkZWQuCisK
IDIwMjAtMTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgdW5za2lwIHNldmVyYWwgY2FudmFzLXJlbGF0ZWQgbGF5b3V0IHRl
c3QgZGlyZWN0b3JpZXMgd2hlbiBlbmFibGluZyBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvTGF5
b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1l
eHBlY3RlZC1taXNtYXRjaGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhp
Z2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLWV4cGVjdGVkLW1pc21hdGNoZWQuaHRtbApuZXcg
ZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwLi5hYjczMzAxYTljMGE5Yjk5MzcwOTZlMTZjNzBlZjk0ODhkOTNjYTllCi0tLSAvZGV2
L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hp
Z2hsaWdodC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAor
PCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04
Ij4KKyAgICA8dGl0bGU+TXVsdGlwbGUgY3VzdG9tIGhpZ2hsaWdodCBwc2V1ZG8gZWxlbWVudHMu
PC90aXRsZT4KKyAgICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dn
Lm9yZy9jc3MtaGlnaGxpZ2h0LWFwaS0xLyNjcmVhdGluZy1oaWdobGlnaHRzIj4KKyAgICA8bGlu
ayByZWw9Im1hdGNoIiBocmVmPSJoaWdobGlnaHQtdGV4dC1leHBlY3RlZC5odG1sIj4KKyAgICA8
bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9Ik11bHRpcGxlIGhpZ2hsaWdodHMgc2hvdWxkIGJl
IGFibGUgdG8gYmUgc3BlY2lmaWVkLiI+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJz
dHlsZTEiPjxpbWcgc3JjPSIuLi8uLi9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZyI+PC9kaXY+
Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3Mv
Y3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRw
L3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uM2RhMTI5Y2RkOTgzYTg5NjkyNDFjMTBmODBlNTg2ZTdkYTI5MWFiZQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGln
aHQtaW1hZ2UuaHRtbApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+CisgICAgPG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5NdWx0aXBsZSBj
dXN0b20gaGlnaGxpZ2h0IHBzZXVkbyBlbGVtZW50cy48L3RpdGxlPgorICAgIDxsaW5rIHJlbD0i
aGVscCIgaHJlZj0iaHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1oaWdobGlnaHQtYXBpLTEv
I2NyZWF0aW5nLWhpZ2hsaWdodHMiPgorICAgIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImhpZ2hs
aWdodC10ZXh0LWV4cGVjdGVkLmh0bWwiPgorICAgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVu
dD0iTXVsdGlwbGUgaGlnaGxpZ2h0cyBzaG91bGQgYmUgYWJsZSB0byBiZSBzcGVjaWZpZWQuIj4K
KyAgICAgICAgPHN0eWxlPgorICAgICAgICAjaW1nMSB7CisgICAgICAgICAgICBkaXNwbGF5OiBp
bmxpbmUtYmxvY2s7CisgICAgICAgIH0KKyAgICAgICAgOjpoaWdobGlnaHQoZXhhbXBsZS1oaWdo
bGlnaHQxKSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwwLDAsLjUp
OworICAgICAgICAgICAgY29sb3I6Z3JlZW47CisgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4K
KzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9ImltZzEiPjxpbWcgc3JjPSIuLi8uLi9pbWFn
ZXMvYmxhbmstaGlnaGxpZ2h0LnBuZyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorICAgICAgICBs
ZXQgaW1hZ2VFbGVtZW50MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcxJyk7CisgICAg
ICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5l
dyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1sw
XSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjogaW1hZ2VFbGVtZW50MS5jaGlsZE5vZGVz
WzBdLCBlbmRPZmZzZXQ6IDF9KSk7CisKKworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4
YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKKworICAgIDwvc2NyaXB0
PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvaW1h
Z2VzL2JsYW5rLWhpZ2hsaWdodC5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9pbWFnZXMvYmxh
bmstaGlnaGxpZ2h0LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZGJlZTA5MTc0OWZiNmQ3MGQ2MmYzOTE0ZDc1
Y2JhNDMyYjU1YjVhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNjEzCnpjbWVISCZyajEoOURp
a2kmX05faDIlP0UpVWNfWVdUTmpsIVROQnVqRXBmMlNYQCpgWFRjXzErWlE3RVJuXl9gOwp6OHlB
ZitCPF41QGdXPUBTa1AkVXIycDJBJU9lQV9SViFaMT8tKXA8QUgxSHFUPUpvc1NfeHQmTGY0c2hM
U0pFQG4KentwMUo8ME8oSTk7dSQwaGM9ZEZuckBIP25pdiohKHJZRkpYP3ohKmlyNkp7IyNaKEdo
TFY2RTRMN1cwVTNfJipfCnpNbklSUDFGJTR4WlJ6KWtpdz5wKFZMfHtzIUFaMDxnMD1LUHF9THdI
cHdyPCNNR3t7THZgfCFBcmUjd3FsfEA2Kgp6czQmZHx6KE4tQ0E7PzNIZiplLVphUjdYRXFGcWhC
cVpQNEdfcUJCI2BvLStHd0BDRD1pOCZucnw3cEFrQE8qNjsKeiNuX091SVV8PzQmZ1lkZkVmJG1v
aThqa0JXYFQmd0JlZzZVQjR3Nks2YGVQdTBTbXorOWg7Y3xXa0hNdyhMZ1NoCnpyZWNhRlFDRGI0
ISs9MGk2Y3kxNU1MclkxPUZyaHdHO3ElX1JHd2p+KWhiO0wofjVTTjMyX3w5SyRjPElBVkxLNwp6
ckhVYiUhSFJ5dDQkX1BobS1NX1F0QT95cEM+JlFAUCFeNDdBYj1DS0YxdD1jRjE5bU9iZishVUFj
SCtqaD0kQmoKekd8N35ZcDwmT2xHXyomcHdoa3BUTWIjISpuXzxAJiE0PmNeckwxYV91QV5RQTdf
cTg0V05ZX2k8MT49M2xvb084CnpIIUhGc3VueHN6X09menF6aV9xNWFUfnBheHVYYmZxbjl3TiRy
QWNueEcqOCk2eT4oTEBPVFMoPnNhVUZhI15aYQp6eUB3I2B7eiM5UDhCPEQlYzAoMk81Pjh9TVRx
WkJ0JH1ATHQ5KyRfKE1Ca0IqWCVaZn50Zkd7SiEhc0NSeW5ZV2cKenI0OzFpUWR+NDcwWihmJTFj
USp2SG1COTV5RCR6ciFyLSYpSUB8VyhTWE1NUzAqUSN0REhPPXAlZVNgQlVxVmE5CnpDJGM4LWI4
b3gxMHNCNnIqWj0lRmN5JVlUKFhyKHBgQDZJQWBOdT56eCZRdnRNeyh0QUk2WksxZSgpdnJqT2Jm
YAp6R31zd19ffnAlTlpOM3w+NFBeIykhMUNUQ1N2JThFWnptPzhaK09OKCk+OCFVPGs3Q316V01S
c2Y2ezFmUmJMdikKYnxHdkVJdU0/ZnloMkUoPns5akI/JkJRays9V0c3fXBYSlR4CgpsaXRlcmFs
IDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411239</attachid>
            <date>2020-10-13 12:48:09 -0700</date>
            <delta_ts>2020-10-13 14:11:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217417-20201013124808.patch</filename>
            <type>text/plain</type>
            <size>14140</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhhMmY5Y2MwNDQ0NDBm
NGE1ZjgwN2RhOTlhZWYwZWFmOTU1NWI0Mi4uOWM2ZDc1OWZiMTcwZjdmMmIwZGVkZWRmNDI2Mjky
YjIzNjNiNmM2YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTEwLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NT
IGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzQxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg0NTkwNTQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHN1
cHBvcnQgdG8gcGFpbnQgQ1NTIHBzZXVkbyBoaWdobGlnaHRzIG92ZXIgaW1hZ2VzIHRoYXQgYXJl
IGluIHRoZSAKKyAgICAgICAgcmFuZ2Ugb2YgdGhlIGRlZmluZWQgaGlnaGxpZ2h0LgorCisgICAg
ICAgIFRlc3Q6IGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2Uu
aHRtbAorCisgICAgICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6SGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcik6CisgICAg
ICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVu
ZGVyUmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBvdGVu
dGlhbEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxh
Y2VkOjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisKIDIw
MjAtMTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAg
ICAgW01vdGlvbk1hcmtdIEFkZCBhIGZhc3QgcGF0aCBmb3IgR3JhcGhpY3NDb250ZXh0OjpzdHJv
a2VQYXRoIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBwYXRoIGlzIGEgbGluZQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCmluZGV4IDJlZjdiYTc1MTU3M2IyODk5YWNk
M2U2ZGYyY2Q3MTg2NzEyYjliMDUuLmI3ZTk4NTlmOWIyYTcxODI3N2E5NWI2Njk4YTRkYTBmOGQy
ZWY5ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRh
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKQEAg
LTMzLDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVT
ZWxlY3Rpb24uaCIKKyNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCiAjaW5jbHVkZSAi
TG9nZ2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAg
LTE2Miw3ICsxNjMsMzEgQEAgdm9pZCBIaWdobGlnaHREYXRhOjpzZXRSZW5kZXJSYW5nZShjb25z
dCBSZW5kZXJSYW5nZSYgcmVuZGVyUmFuZ2UpCiAgICAgbV9yZW5kZXJSYW5nZSA9IHJlbmRlclJh
bmdlOwogfQogCi1SZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIEhpZ2hsaWdodERhdGE6Omhp
Z2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK2Jvb2wgSGln
aGxpZ2h0RGF0YTo6c2V0UmVuZGVyUmFuZ2UoY29uc3QgSGlnaGxpZ2h0UmFuZ2VEYXRhJiByYW5n
ZURhdGEpCit7CisgICAgaWYgKCFyYW5nZURhdGEuc3RhcnRQb3NpdGlvbiB8fCAhcmFuZ2VEYXRh
LmVuZFBvc2l0aW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgYXV0byBzdGFy
dFBvc2l0aW9uID0gcmFuZ2VEYXRhLnN0YXJ0UG9zaXRpb24udmFsdWUoKTsKKyAgICBhdXRvIGVu
ZFBvc2l0aW9uID0gcmFuZ2VEYXRhLmVuZFBvc2l0aW9uLnZhbHVlKCk7CisgICAgCisgICAgaWYg
KCFzdGFydFBvc2l0aW9uLmNvbnRhaW5lck5vZGUoKSB8fCAhZW5kUG9zaXRpb24uY29udGFpbmVy
Tm9kZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgYXV0byogc3RhcnRSZW5k
ZXJlciA9IHN0YXJ0UG9zaXRpb24uY29udGFpbmVyTm9kZSgpLT5yZW5kZXJlcigpOworICAgIGF1
dG8qIGVuZFJlbmRlcmVyID0gZW5kUG9zaXRpb24uY29udGFpbmVyTm9kZSgpLT5yZW5kZXJlcigp
OworICAgIAorICAgIGlmICghc3RhcnRSZW5kZXJlciB8fCAhZW5kUmVuZGVyZXIpCisgICAgICAg
IHJldHVybiBmYWxzZTsKKyAgICAKKyAgICB1bnNpZ25lZCBzdGFydE9mZnNldCA9IHN0YXJ0UG9z
aXRpb24uY29tcHV0ZU9mZnNldEluQ29udGFpbmVyTm9kZSgpOworICAgIHVuc2lnbmVkIGVuZE9m
ZnNldCA9IGVuZFBvc2l0aW9uLmNvbXB1dGVPZmZzZXRJbkNvbnRhaW5lck5vZGUoKTsKKworICAg
IHNldFJlbmRlclJhbmdlKHsgc3RhcnRSZW5kZXJlciwgZW5kUmVuZGVyZXIsIHN0YXJ0T2Zmc2V0
LCBlbmRPZmZzZXQgfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JlbmRlck9iamVjdDo6SGln
aGxpZ2h0U3RhdGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcihjb25z
dCBSZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIGlmICgmcmVuZGVyZXIgPT0gbV9yZW5k
ZXJSYW5nZS5zdGFydCgpKSB7CiAgICAgICAgIGlmIChtX3JlbmRlclJhbmdlLnN0YXJ0KCkgJiYg
bV9yZW5kZXJSYW5nZS5lbmQoKSAmJiBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgPT0gbV9yZW5kZXJS
YW5nZS5lbmQoKSkKQEAgLTE3MywxNCArMTk4LDExIEBAIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0
U3RhdGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcihSZW5kZXJPYmpl
CiAgICAgaWYgKCZyZW5kZXJlciA9PSBtX3JlbmRlclJhbmdlLmVuZCgpKQogICAgICAgICByZXR1
cm4gUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6RW5kOwogCi0gICAgUmVuZGVyT2JqZWN0
KiBoaWdobGlnaHRFbmQgPSBudWxscHRyOwotICAgIGF1dG8qIGhpZ2hsaWdodERhdGFFbmQgPSBt
X3JlbmRlclJhbmdlLmVuZCgpOwotICAgIGlmIChoaWdobGlnaHREYXRhRW5kKQotICAgICAgICBo
aWdobGlnaHRFbmQgPSByZW5kZXJlckFmdGVyT2Zmc2V0KCpoaWdobGlnaHREYXRhRW5kLCBtX3Jl
bmRlclJhbmdlLmVuZE9mZnNldCgpLnZhbHVlKCkpOwotICAgIFVOVVNFRF9QQVJBTShoaWdobGln
aHRFbmQpOworICAgIGF1dG8qIGhpZ2hsaWdodEVuZCA9IHJlbmRlcmVyQWZ0ZXJPZmZzZXQoKm1f
cmVuZGVyUmFuZ2UuZW5kKCksIG1fcmVuZGVyUmFuZ2UuZW5kT2Zmc2V0KCkudmFsdWUoKSk7Cisg
ICAgCiAgICAgSGlnaGxpZ2h0SXRlcmF0b3IgaGlnaGxpZ2h0SXRlcmF0b3IobV9yZW5kZXJSYW5n
ZS5zdGFydCgpKTsKLSAgICBmb3IgKGF1dG8qIGN1cnJlbnRSZW5kZXJlciA9IG1fcmVuZGVyUmFu
Z2Uuc3RhcnQoKTsgY3VycmVudFJlbmRlcmVyICYmIGN1cnJlbnRSZW5kZXJlciAhPSBtX3JlbmRl
clJhbmdlLmVuZCgpOyBjdXJyZW50UmVuZGVyZXIgPSBoaWdobGlnaHRJdGVyYXRvci5uZXh0KCkp
IHsKLSAgICAgICAgaWYgKGN1cnJlbnRSZW5kZXJlciA9PSBtX3JlbmRlclJhbmdlLnN0YXJ0KCkg
fHwgY3VycmVudFJlbmRlcmVyID09IG1fcmVuZGVyUmFuZ2UuZW5kKCkpCisgICAgZm9yIChhdXRv
KiBjdXJyZW50UmVuZGVyZXIgPSBtX3JlbmRlclJhbmdlLnN0YXJ0KCk7IGN1cnJlbnRSZW5kZXJl
ciAmJiBjdXJyZW50UmVuZGVyZXIgIT0gaGlnaGxpZ2h0RW5kOyBjdXJyZW50UmVuZGVyZXIgPSBo
aWdobGlnaHRJdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgaWYgKGN1cnJlbnRSZW5kZXJlciA9
PSBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgfHwgY3VycmVudFJlbmRlcmVyID09IGhpZ2hsaWdodEVu
ZCkKICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoIWN1cnJlbnRSZW5kZXJlci0+
Y2FuQmVTZWxlY3Rpb25MZWFmKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5oCmluZGV4IGFkODBmZDNkNmUzZTlhNmQwY2EzMTUx
NDIzMGUyNGMyMzkwYzEzMTQuLjE4YTEyYzJiY2Y1ZTBiZjA2OTUyM2VhNmRjMGQ1MzgwYWIxMTEz
ZWEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaApAQCAtMzcsNiAr
MzcsOCBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEhpZ2hsaWdo
dFJhbmdlRGF0YTsKICAgICAKIGNsYXNzIEhpZ2hsaWdodERhdGEgewogcHVibGljOgpAQCAtNzEs
NiArNzMsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICAKICAgICB2b2lkIHNldFJlbmRlclJhbmdl
KGNvbnN0IFJlbmRlclJhbmdlJik7CisgICAgYm9vbCBzZXRSZW5kZXJSYW5nZShjb25zdCBIaWdo
bGlnaHRSYW5nZURhdGEmKTsgLy8gcmV0dXJucyB0cnVlIGlmIHRoZSBzZXR0aW5nIG9mIHRoZSBy
ZW5kZXJSYW5nZSBmcm9tIHRoZSBIaWdobGlnaHRSYW5nZURhdGEgaGFzIGJlZW4gc3VjY2Vzc2Z1
bC4KICAgICAKICAgICBlbnVtIGNsYXNzIFJlcGFpbnRNb2RlIHsgTmV3WE9ST2xkLCBOZXdNaW51
c09sZCwgTm90aGluZyB9OwogICAgIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFJlbmRlclJhbmdl
JiwgUmVwYWludE1vZGUgPSBSZXBhaW50TW9kZTo6TmV3WE9ST2xkKTsKQEAgLTg3LDcgKzkwLDcg
QEAgcHVibGljOgogICAgIEludFJlY3QgYm91bmRzQ2xpcHBlZFRvVmlzaWJsZUNvbnRlbnQoKSBj
b25zdCB7IHJldHVybiBjb2xsZWN0Qm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50OjpZZXMpOyB9
CiAgICAgdm9pZCByZXBhaW50U2VsZWN0aW9uKCkgY29uc3Q7CiAgICAgCi0gICAgUmVuZGVyT2Jq
ZWN0OjpIaWdobGlnaHRTdGF0ZSBoaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVyKFJlbmRlck9iamVj
dCYpOworICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgaGlnaGxpZ2h0U3RhdGVGb3JS
ZW5kZXJlcihjb25zdCBSZW5kZXJPYmplY3QmKTsKIAogcHJpdmF0ZToKICAgICBlbnVtIGNsYXNz
IENsaXBUb1Zpc2libGVDb250ZW50IHsgWWVzLCBObyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggMjU3MWI2NTQyYTQ2ZWI2NTVhMDMyZWQxZTlm
MDFhZTc3ODY3MjAxZS4uZGUzMzhjYjJjZjNjMTFkMTdhZDU5ODQzMjUzNDJhM2I0MDRiOTg1ZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0zMSw2
ICszMSw4IEBACiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VF
bGVtZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkhpZ2hs
aWdodERhdGEuaCIKKyNpbmNsdWRlICJIaWdobGlnaHRNYXAuaCIKICNpbmNsdWRlICJJbmxpbmVF
bGVtZW50Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgiCiAjaW5jbHVkZSAiUmVu
ZGVyQmxvY2suaCIKQEAgLTE0Niw2ICsxNDgsMjYgQEAgaW5saW5lIHN0YXRpYyBib29sIGRyYWdn
ZWRDb250ZW50Q29udGFpbnNSZXBsYWNlZEVsZW1lbnQoY29uc3QgVmVjdG9yPFJlbmRlcmVkRG8K
ICAgICByZXR1cm4gZmFsc2U7CiB9CiAKK0NvbG9yIFJlbmRlclJlcGxhY2VkOjpjYWxjdWxhdGVI
aWdobGlnaHRDb2xvcigpIGNvbnN0Cit7CisgICAgYXV0byBoaWdobGlnaHREYXRhID0gSGlnaGxp
Z2h0RGF0YSh2aWV3KCkpOworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5o
aWdobGlnaHRNYXAoKS5tYXAoKSkgeworICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhp
Z2hsaWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAg
IGlmICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQorICAgICAgICAg
ICAgICAgIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIHN0YXRlID0g
aGlnaGxpZ2h0RGF0YS5oaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVyKCp0aGlzKTsKKyAgICAgICAg
ICAgIGlmICghaXNIaWdobGlnaHRlZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkpCisgICAgICAgICAg
ICAgICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmIChhdXRvIGhpZ2hsaWdodFN0eWxlID0g
Z2V0VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGlnaHQsIGhpZ2hsaWdodC5r
ZXkgfSwgJnN0eWxlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBoaWdobGlnaHRTdHlsZS0+
YmFja2dyb3VuZENvbG9yKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIENvbG9yKCk7
Cit9CisKIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFzaG91bGRQYWludChw
YWludEluZm8sIHBhaW50T2Zmc2V0KSkKQEAgLTE5NSw2ICsyMTcsMTEgQEAgdm9pZCBSZW5kZXJS
ZXBsYWNlZDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBw
YWludE9mZnNldCkKICAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QoKnRo
aXMpKQogICAgICAgICByZXR1cm47CiAgICAgCisgICAgCisgICAgQ29sb3IgaGlnaGxpZ2h0Q29s
b3I7CisgICAgaWYgKCFkb2N1bWVudCgpLnByaW50aW5nKCkgJiYgIXBhaW50SW5mby5wYWludEJl
aGF2aW9yLmNvbnRhaW5zKFBhaW50QmVoYXZpb3I6OkV4Y2x1ZGVTZWxlY3Rpb24pKQorICAgICAg
ICBoaWdobGlnaHRDb2xvciA9IGNhbGN1bGF0ZUhpZ2hsaWdodENvbG9yKCk7CisgICAgCiAgICAg
Ym9vbCBkcmF3U2VsZWN0aW9uVGludCA9IHNob3VsZERyYXdTZWxlY3Rpb25UaW50KCk7CiAgICAg
aWYgKHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlOjpTZWxlY3Rpb24pIHsKICAgICAgICAg
aWYgKHNlbGVjdGlvblN0YXRlKCkgPT0gSGlnaGxpZ2h0U3RhdGU6Ok5vbmUpCkBAIC0yMjgsNiAr
MjU1LDEyIEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZv
LCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAgICAgICAgIHNlbGVjdGlvblBhaW50
aW5nUmVjdC5tb3ZlQnkoYWRqdXN0ZWRQYWludE9mZnNldCk7CiAgICAgICAgIHBhaW50SW5mby5j
b250ZXh0KCkuZmlsbFJlY3Qoc25hcHBlZEludFJlY3Qoc2VsZWN0aW9uUGFpbnRpbmdSZWN0KSwg
c2VsZWN0aW9uQmFja2dyb3VuZENvbG9yKCkpOwogICAgIH0KKyAgICAKKyAgICBpZiAoaGlnaGxp
Z2h0Q29sb3IuaXNWaXNpYmxlKCkpIHsKKyAgICAgICAgYXV0byBzZWxlY3Rpb25QYWludGluZ1Jl
Y3QgPSBsb2NhbFNlbGVjdGlvblJlY3QoZmFsc2UpOworICAgICAgICBzZWxlY3Rpb25QYWludGlu
Z1JlY3QubW92ZUJ5KGFkanVzdGVkUGFpbnRPZmZzZXQpOworICAgICAgICBwYWludEluZm8uY29u
dGV4dCgpLmZpbGxSZWN0KHNuYXBwZWRJbnRSZWN0KHNlbGVjdGlvblBhaW50aW5nUmVjdCksIGhp
Z2hsaWdodENvbG9yKTsKKyAgICB9CiB9CiAKIGJvb2wgUmVuZGVyUmVwbGFjZWQ6OnNob3VsZFBh
aW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQp
CkBAIC02NzksMTkgKzcxMiwyMyBAQCB2b2lkIFJlbmRlclJlcGxhY2VkOjpzZXRTZWxlY3Rpb25T
dGF0ZShIaWdobGlnaHRTdGF0ZSBzdGF0ZSkKICAgICBSZW5kZXJCb3g6OnNldFNlbGVjdGlvblN0
YXRlKHN0YXRlKTsKIAogICAgIGlmIChtX2lubGluZUJveFdyYXBwZXIgJiYgY2FuVXBkYXRlU2Vs
ZWN0aW9uT25Sb290TGluZUJveGVzKCkpCi0gICAgICAgIG1faW5saW5lQm94V3JhcHBlci0+cm9v
dCgpLnNldEhhc1NlbGVjdGVkQ2hpbGRyZW4oaXNTZWxlY3RlZCgpKTsKKyAgICAgICAgbV9pbmxp
bmVCb3hXcmFwcGVyLT5yb290KCkuc2V0SGFzU2VsZWN0ZWRDaGlsZHJlbihpc0hpZ2hsaWdodGVk
KHNlbGVjdGlvblN0YXRlKCksIHZpZXcoKS5zZWxlY3Rpb24oKSkpOwogfQogCiBib29sIFJlbmRl
clJlcGxhY2VkOjppc1NlbGVjdGVkKCkgY29uc3QKIHsKLSAgICBIaWdobGlnaHRTdGF0ZSBzdGF0
ZSA9IHNlbGVjdGlvblN0YXRlKCk7CisgICAgcmV0dXJuIGlzSGlnaGxpZ2h0ZWQoc2VsZWN0aW9u
U3RhdGUoKSwgdmlldygpLnNlbGVjdGlvbigpKTsKK30KKworYm9vbCBSZW5kZXJSZXBsYWNlZDo6
aXNIaWdobGlnaHRlZChIaWdobGlnaHRTdGF0ZSBzdGF0ZSwgY29uc3QgSGlnaGxpZ2h0RGF0YSYg
cmFuZ2VEYXRhKSBjb25zdAorewogICAgIGlmIChzdGF0ZSA9PSBIaWdobGlnaHRTdGF0ZTo6Tm9u
ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChzdGF0ZSA9PSBIaWdobGlnaHRTdGF0
ZTo6SW5zaWRlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8gc2VsZWN0aW9uU3Rh
cnQgPSB2aWV3KCkuc2VsZWN0aW9uKCkuc3RhcnRPZmZzZXQoKTsKLSAgICBhdXRvIHNlbGVjdGlv
bkVuZCA9IHZpZXcoKS5zZWxlY3Rpb24oKS5lbmRPZmZzZXQoKTsKKyAgICBhdXRvIHNlbGVjdGlv
blN0YXJ0ID0gcmFuZ2VEYXRhLnN0YXJ0T2Zmc2V0KCk7CisgICAgYXV0byBzZWxlY3Rpb25FbmQg
PSByYW5nZURhdGEuZW5kT2Zmc2V0KCk7CiAgICAgaWYgKHN0YXRlID09IEhpZ2hsaWdodFN0YXRl
OjpTdGFydCkKICAgICAgICAgcmV0dXJuICFzZWxlY3Rpb25TdGFydDsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggYi9Tb3VyY2UvV2ViQ29y
ZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAppbmRleCBlNjRjM2Q3NWQ4MDE5NjUxODgzZjE5
MWNhYTM3Zjg5NWI0YWMxYWJlLi40N2Q1Mjc2MGVjMTAxYjUwZDYxMzZjMzA2Y2IzMzJkNjViNjYy
ODhhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQu
aAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtOTQs
NiArOTQsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRp
b25Gb3JSZW5kZXJCb3goUmVuZGVyQm94KiwgRmxvYXRTaXplJiBjb25zdHJhaW5lZFNpemUsIGRv
dWJsZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERy
YXdTZWxlY3Rpb25UaW50KCkgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCBDb2xvciBjYWxjdWxh
dGVIaWdobGlnaHRDb2xvcigpIGNvbnN0OworICAgIGJvb2wgaXNIaWdobGlnaHRlZChIaWdobGln
aHRTdGF0ZSwgY29uc3QgSGlnaGxpZ2h0RGF0YSYpIGNvbnN0OwogCiAgICAgbXV0YWJsZSBMYXlv
dXRTaXplIG1faW50cmluc2ljU2l6ZTsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjAwZmYxODU0NDM2NjUzMjBiNzNm
MTcyYTA0NjQ1MzAxY2E1MGU3Ni4uYmM4MjI3YzgyNGVmMGFjODlkYWE4MzRlZjgxMzZiNmU3Zjg4
M2E2YyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTEwLTA2ICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NTIGhpZ2hsaWdodHMg
b3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzQxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBl
Y3RlZC1taXNtYXRjaGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2Nzcy9jc3Mt
aGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMDgg
IFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZp
ZXdlZCwgdW5za2lwIHNldmVyYWwgY2FudmFzLXJlbGF0ZWQgbGF5b3V0IHRlc3QgZGlyZWN0b3Jp
ZXMgd2hlbiBlbmFibGluZyBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0
cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC1taXNt
YXRjaGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkv
aGlnaGxpZ2h0LWltYWdlLWV4cGVjdGVkLW1pc21hdGNoZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjcz
MzAxYTljMGE5Yjk5MzcwOTZlMTZjNzBlZjk0ODhkOTNjYTllCi0tLSAvZGV2L251bGwKKysrIGIv
TGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFn
ZS1leHBlY3RlZC1taXNtYXRjaGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0
bWw+Cis8aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0
bGU+TXVsdGlwbGUgY3VzdG9tIGhpZ2hsaWdodCBwc2V1ZG8gZWxlbWVudHMuPC90aXRsZT4KKyAg
ICA8bGluayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtaGln
aGxpZ2h0LWFwaS0xLyNjcmVhdGluZy1oaWdobGlnaHRzIj4KKyAgICA8bGluayByZWw9Im1hdGNo
IiBocmVmPSJoaWdobGlnaHQtdGV4dC1leHBlY3RlZC5odG1sIj4KKyAgICA8bWV0YSBuYW1lPSJh
c3NlcnQiIGNvbnRlbnQ9Ik11bHRpcGxlIGhpZ2hsaWdodHMgc2hvdWxkIGJlIGFibGUgdG8gYmUg
c3BlY2lmaWVkLiI+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJzdHlsZTEiPjxpbWcg
c3JjPSIuLi8uLi9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZyI+PC9kaXY+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdo
dC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3Nz
LWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RhMTI5Y2Rk
OTgzYTg5NjkyNDFjMTBmODBlNTg2ZTdkYTI5MWFiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRt
bApAQCAtMCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAg
PG1ldGEgY2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5NdWx0aXBsZSBjdXN0b20gaGlnaGxp
Z2h0IHBzZXVkbyBlbGVtZW50cy48L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0i
aHR0cHM6Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1oaWdobGlnaHQtYXBpLTEvI2NyZWF0aW5nLWhp
Z2hsaWdodHMiPgorICAgIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImhpZ2hsaWdodC10ZXh0LWV4
cGVjdGVkLmh0bWwiPgorICAgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iTXVsdGlwbGUg
aGlnaGxpZ2h0cyBzaG91bGQgYmUgYWJsZSB0byBiZSBzcGVjaWZpZWQuIj4KKyAgICAgICAgPHN0
eWxlPgorICAgICAgICAjaW1nMSB7CisgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7
CisgICAgICAgIH0KKyAgICAgICAgOjpoaWdobGlnaHQoZXhhbXBsZS1oaWdobGlnaHQxKSB7Cisg
ICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwwLDAsLjUpOworICAgICAgICAg
ICAgY29sb3I6Z3JlZW47CisgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxi
b2R5PgorICAgIDxkaXYgaWQ9ImltZzEiPjxpbWcgc3JjPSIuLi8uLi9pbWFnZXMvYmxhbmstaGln
aGxpZ2h0LnBuZyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorICAgICAgICBsZXQgaW1hZ2VFbGVt
ZW50MSA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcxJyk7CisgICAgICAgIGxldCBoaWdo
bGlnaHRSYW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5n
ZSh7c3RhcnRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZz
ZXQ6IDAsIGVuZENvbnRhaW5lcjogaW1hZ2VFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZz
ZXQ6IDF9KSk7CisKKworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxp
Z2h0MSIsIGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKKworICAgIDwvc2NyaXB0PgorPC9ib2R5Pgor
PC9odG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvaW1hZ2VzL2JsYW5rLWhp
Z2hsaWdodC5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0
LnBuZwpuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwLi42ZGJlZTA5MTc0OWZiNmQ3MGQ2MmYzOTE0ZDc1Y2JhNDMyYjU1YjVh
CkdJVCBiaW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNjEzCnpjbWVISCZyajEoOURpa2kmX05faDIlP0Up
VWNfWVdUTmpsIVROQnVqRXBmMlNYQCpgWFRjXzErWlE3RVJuXl9gOwp6OHlBZitCPF41QGdXPUBT
a1AkVXIycDJBJU9lQV9SViFaMT8tKXA8QUgxSHFUPUpvc1NfeHQmTGY0c2hMU0pFQG4KentwMUo8
ME8oSTk7dSQwaGM9ZEZuckBIP25pdiohKHJZRkpYP3ohKmlyNkp7IyNaKEdoTFY2RTRMN1cwVTNf
JipfCnpNbklSUDFGJTR4WlJ6KWtpdz5wKFZMfHtzIUFaMDxnMD1LUHF9THdIcHdyPCNNR3t7THZg
fCFBcmUjd3FsfEA2Kgp6czQmZHx6KE4tQ0E7PzNIZiplLVphUjdYRXFGcWhCcVpQNEdfcUJCI2Bv
LStHd0BDRD1pOCZucnw3cEFrQE8qNjsKeiNuX091SVV8PzQmZ1lkZkVmJG1vaThqa0JXYFQmd0Jl
ZzZVQjR3Nks2YGVQdTBTbXorOWg7Y3xXa0hNdyhMZ1NoCnpyZWNhRlFDRGI0ISs9MGk2Y3kxNU1M
clkxPUZyaHdHO3ElX1JHd2p+KWhiO0wofjVTTjMyX3w5SyRjPElBVkxLNwp6ckhVYiUhSFJ5dDQk
X1BobS1NX1F0QT95cEM+JlFAUCFeNDdBYj1DS0YxdD1jRjE5bU9iZishVUFjSCtqaD0kQmoKekd8
N35ZcDwmT2xHXyomcHdoa3BUTWIjISpuXzxAJiE0PmNeckwxYV91QV5RQTdfcTg0V05ZX2k8MT49
M2xvb084CnpIIUhGc3VueHN6X09menF6aV9xNWFUfnBheHVYYmZxbjl3TiRyQWNueEcqOCk2eT4o
TEBPVFMoPnNhVUZhI15aYQp6eUB3I2B7eiM5UDhCPEQlYzAoMk81Pjh9TVRxWkJ0JH1ATHQ5KyRf
KE1Ca0IqWCVaZn50Zkd7SiEhc0NSeW5ZV2cKenI0OzFpUWR+NDcwWihmJTFjUSp2SG1COTV5RCR6
ciFyLSYpSUB8VyhTWE1NUzAqUSN0REhPPXAlZVNgQlVxVmE5CnpDJGM4LWI4b3gxMHNCNnIqWj0l
RmN5JVlUKFhyKHBgQDZJQWBOdT56eCZRdnRNeyh0QUk2WksxZSgpdnJqT2JmYAp6R31zd19ffnAl
TlpOM3w+NFBeIykhMUNUQ1N2JThFWnptPzhaK09OKCk+OCFVPGs3Q316V01Sc2Y2ezFmUmJMdikK
YnxHdkVJdU0/ZnloMkUoPns5akI/JkJRays9V0c3fXBYSlR4CgpsaXRlcmFsIDAKSGNtVj9kMDAw
MDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411253</attachid>
            <date>2020-10-13 14:11:14 -0700</date>
            <delta_ts>2020-10-13 14:27:04 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-217417-20201013141113.patch</filename>
            <type>text/plain</type>
            <size>14134</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhhMmY5Y2MwNDQ0NDBm
NGE1ZjgwN2RhOTlhZWYwZWFmOTU1NWI0Mi4uNzk5NDcyYzEzYmVjNTU2NDE2NTVkMzQyMTc2NDMw
Y2I4MWJhOWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTEwLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NT
IGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzQxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg0NTkwNTQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkIHN1cHBv
cnQgdG8gcGFpbnQgQ1NTIHBzZXVkbyBoaWdobGlnaHRzIG92ZXIgaW1hZ2VzIHRoYXQgYXJlIGlu
IHRoZSAKKyAgICAgICAgcmFuZ2Ugb2YgdGhlIGRlZmluZWQgaGlnaGxpZ2h0LgorCisgICAgICAg
IFRlc3Q6IGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRt
bAorCisgICAgICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcik6CisgICAgICAg
ICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBvdGVudGlh
bEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2Vk
OjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisKIDIwMjAt
MTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
W01vdGlvbk1hcmtdIEFkZCBhIGZhc3QgcGF0aCBmb3IgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQ
YXRoIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBwYXRoIGlzIGEgbGluZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCmluZGV4IDJlZjdiYTc1MTU3M2IyODk5YWNkM2U2
ZGYyY2Q3MTg2NzEyYjliMDUuLmI3ZTk4NTlmOWIyYTcxODI3N2E5NWI2Njk4YTRkYTBmOGQyZWY5
ZTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxl
Y3Rpb24uaCIKKyNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAgLTE2
Miw3ICsxNjMsMzEgQEAgdm9pZCBIaWdobGlnaHREYXRhOjpzZXRSZW5kZXJSYW5nZShjb25zdCBS
ZW5kZXJSYW5nZSYgcmVuZGVyUmFuZ2UpCiAgICAgbV9yZW5kZXJSYW5nZSA9IHJlbmRlclJhbmdl
OwogfQogCi1SZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIEhpZ2hsaWdodERhdGE6OmhpZ2hs
aWdodFN0YXRlRm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK2Jvb2wgSGlnaGxp
Z2h0RGF0YTo6c2V0UmVuZGVyUmFuZ2UoY29uc3QgSGlnaGxpZ2h0UmFuZ2VEYXRhJiByYW5nZURh
dGEpCit7CisgICAgaWYgKCFyYW5nZURhdGEuc3RhcnRQb3NpdGlvbiB8fCAhcmFuZ2VEYXRhLmVu
ZFBvc2l0aW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgYXV0byBzdGFydFBv
c2l0aW9uID0gcmFuZ2VEYXRhLnN0YXJ0UG9zaXRpb24udmFsdWUoKTsKKyAgICBhdXRvIGVuZFBv
c2l0aW9uID0gcmFuZ2VEYXRhLmVuZFBvc2l0aW9uLnZhbHVlKCk7CisgICAgCisgICAgaWYgKCFz
dGFydFBvc2l0aW9uLmNvbnRhaW5lck5vZGUoKSB8fCAhZW5kUG9zaXRpb24uY29udGFpbmVyTm9k
ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgYXV0byogc3RhcnRSZW5kZXJl
ciA9IHN0YXJ0UG9zaXRpb24uY29udGFpbmVyTm9kZSgpLT5yZW5kZXJlcigpOworICAgIGF1dG8q
IGVuZFJlbmRlcmVyID0gZW5kUG9zaXRpb24uY29udGFpbmVyTm9kZSgpLT5yZW5kZXJlcigpOwor
ICAgIAorICAgIGlmICghc3RhcnRSZW5kZXJlciB8fCAhZW5kUmVuZGVyZXIpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICB1bnNpZ25lZCBzdGFydE9mZnNldCA9IHN0YXJ0UG9zaXRp
b24uY29tcHV0ZU9mZnNldEluQ29udGFpbmVyTm9kZSgpOworICAgIHVuc2lnbmVkIGVuZE9mZnNl
dCA9IGVuZFBvc2l0aW9uLmNvbXB1dGVPZmZzZXRJbkNvbnRhaW5lck5vZGUoKTsKKworICAgIHNl
dFJlbmRlclJhbmdlKHsgc3RhcnRSZW5kZXJlciwgZW5kUmVuZGVyZXIsIHN0YXJ0T2Zmc2V0LCBl
bmRPZmZzZXQgfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JlbmRlck9iamVjdDo6SGlnaGxp
Z2h0U3RhdGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcihjb25zdCBS
ZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIGlmICgmcmVuZGVyZXIgPT0gbV9yZW5kZXJS
YW5nZS5zdGFydCgpKSB7CiAgICAgICAgIGlmIChtX3JlbmRlclJhbmdlLnN0YXJ0KCkgJiYgbV9y
ZW5kZXJSYW5nZS5lbmQoKSAmJiBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgPT0gbV9yZW5kZXJSYW5n
ZS5lbmQoKSkKQEAgLTE3MywxNCArMTk4LDExIEBAIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3Rh
dGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcihSZW5kZXJPYmplCiAg
ICAgaWYgKCZyZW5kZXJlciA9PSBtX3JlbmRlclJhbmdlLmVuZCgpKQogICAgICAgICByZXR1cm4g
UmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6RW5kOwogCi0gICAgUmVuZGVyT2JqZWN0KiBo
aWdobGlnaHRFbmQgPSBudWxscHRyOwotICAgIGF1dG8qIGhpZ2hsaWdodERhdGFFbmQgPSBtX3Jl
bmRlclJhbmdlLmVuZCgpOwotICAgIGlmIChoaWdobGlnaHREYXRhRW5kKQotICAgICAgICBoaWdo
bGlnaHRFbmQgPSByZW5kZXJlckFmdGVyT2Zmc2V0KCpoaWdobGlnaHREYXRhRW5kLCBtX3JlbmRl
clJhbmdlLmVuZE9mZnNldCgpLnZhbHVlKCkpOwotICAgIFVOVVNFRF9QQVJBTShoaWdobGlnaHRF
bmQpOworICAgIGF1dG8qIGhpZ2hsaWdodEVuZCA9IHJlbmRlcmVyQWZ0ZXJPZmZzZXQoKm1fcmVu
ZGVyUmFuZ2UuZW5kKCksIG1fcmVuZGVyUmFuZ2UuZW5kT2Zmc2V0KCkudmFsdWUoKSk7CisgICAg
CiAgICAgSGlnaGxpZ2h0SXRlcmF0b3IgaGlnaGxpZ2h0SXRlcmF0b3IobV9yZW5kZXJSYW5nZS5z
dGFydCgpKTsKLSAgICBmb3IgKGF1dG8qIGN1cnJlbnRSZW5kZXJlciA9IG1fcmVuZGVyUmFuZ2Uu
c3RhcnQoKTsgY3VycmVudFJlbmRlcmVyICYmIGN1cnJlbnRSZW5kZXJlciAhPSBtX3JlbmRlclJh
bmdlLmVuZCgpOyBjdXJyZW50UmVuZGVyZXIgPSBoaWdobGlnaHRJdGVyYXRvci5uZXh0KCkpIHsK
LSAgICAgICAgaWYgKGN1cnJlbnRSZW5kZXJlciA9PSBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgfHwg
Y3VycmVudFJlbmRlcmVyID09IG1fcmVuZGVyUmFuZ2UuZW5kKCkpCisgICAgZm9yIChhdXRvKiBj
dXJyZW50UmVuZGVyZXIgPSBtX3JlbmRlclJhbmdlLnN0YXJ0KCk7IGN1cnJlbnRSZW5kZXJlciAm
JiBjdXJyZW50UmVuZGVyZXIgIT0gaGlnaGxpZ2h0RW5kOyBjdXJyZW50UmVuZGVyZXIgPSBoaWdo
bGlnaHRJdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgaWYgKGN1cnJlbnRSZW5kZXJlciA9PSBt
X3JlbmRlclJhbmdlLnN0YXJ0KCkgfHwgY3VycmVudFJlbmRlcmVyID09IGhpZ2hsaWdodEVuZCkK
ICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICBpZiAoIWN1cnJlbnRSZW5kZXJlci0+Y2Fu
QmVTZWxlY3Rpb25MZWFmKCkpCiAgICAgICAgICAgICBjb250aW51ZTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5oCmluZGV4IGFkODBmZDNkNmUzZTlhNmQwY2EzMTUxNDIz
MGUyNGMyMzkwYzEzMTQuLjE4YTEyYzJiY2Y1ZTBiZjA2OTUyM2VhNmRjMGQ1MzgwYWIxMTEzZWEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaApAQCAtMzcsNiArMzcs
OCBAQAogI2VuZGlmCiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IEhpZ2hsaWdodFJh
bmdlRGF0YTsKICAgICAKIGNsYXNzIEhpZ2hsaWdodERhdGEgewogcHVibGljOgpAQCAtNzEsNiAr
NzMsNyBAQCBwdWJsaWM6CiAgICAgfTsKICAgICAKICAgICB2b2lkIHNldFJlbmRlclJhbmdlKGNv
bnN0IFJlbmRlclJhbmdlJik7CisgICAgYm9vbCBzZXRSZW5kZXJSYW5nZShjb25zdCBIaWdobGln
aHRSYW5nZURhdGEmKTsgLy8gcmV0dXJucyB0cnVlIGlmIHRoZSBzZXR0aW5nIG9mIHRoZSByZW5k
ZXJSYW5nZSBmcm9tIHRoZSBIaWdobGlnaHRSYW5nZURhdGEgaGFzIGJlZW4gc3VjY2Vzc2Z1bC4K
ICAgICAKICAgICBlbnVtIGNsYXNzIFJlcGFpbnRNb2RlIHsgTmV3WE9ST2xkLCBOZXdNaW51c09s
ZCwgTm90aGluZyB9OwogICAgIHZvaWQgc2V0U2VsZWN0aW9uKGNvbnN0IFJlbmRlclJhbmdlJiwg
UmVwYWludE1vZGUgPSBSZXBhaW50TW9kZTo6TmV3WE9ST2xkKTsKQEAgLTg3LDcgKzkwLDcgQEAg
cHVibGljOgogICAgIEludFJlY3QgYm91bmRzQ2xpcHBlZFRvVmlzaWJsZUNvbnRlbnQoKSBjb25z
dCB7IHJldHVybiBjb2xsZWN0Qm91bmRzKENsaXBUb1Zpc2libGVDb250ZW50OjpZZXMpOyB9CiAg
ICAgdm9pZCByZXBhaW50U2VsZWN0aW9uKCkgY29uc3Q7CiAgICAgCi0gICAgUmVuZGVyT2JqZWN0
OjpIaWdobGlnaHRTdGF0ZSBoaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVyKFJlbmRlck9iamVjdCYp
OworICAgIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3RhdGUgaGlnaGxpZ2h0U3RhdGVGb3JSZW5k
ZXJlcihjb25zdCBSZW5kZXJPYmplY3QmKTsKIAogcHJpdmF0ZToKICAgICBlbnVtIGNsYXNzIENs
aXBUb1Zpc2libGVDb250ZW50IHsgWWVzLCBObyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJSZXBsYWNlZC5jcHAKaW5kZXggMjU3MWI2NTQyYTQ2ZWI2NTVhMDMyZWQxZTlmMDFh
ZTc3ODY3MjAxZS4uZGUzMzhjYjJjZjNjMTFkMTdhZDU5ODQzMjUzNDJhM2I0MDRiOTg1ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwCkBAIC0zMSw2ICsz
MSw4IEBACiAjaW5jbHVkZSAiSFRNTEVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MSW1hZ2VFbGVt
ZW50LmgiCiAjaW5jbHVkZSAiSFRNTFBhcnNlcklkaW9tcy5oIgorI2luY2x1ZGUgIkhpZ2hsaWdo
dERhdGEuaCIKKyNpbmNsdWRlICJIaWdobGlnaHRNYXAuaCIKICNpbmNsdWRlICJJbmxpbmVFbGVt
ZW50Qm94LmgiCiAjaW5jbHVkZSAiTGF5b3V0UmVwYWludGVyLmgiCiAjaW5jbHVkZSAiUmVuZGVy
QmxvY2suaCIKQEAgLTE0Niw2ICsxNDgsMjYgQEAgaW5saW5lIHN0YXRpYyBib29sIGRyYWdnZWRD
b250ZW50Q29udGFpbnNSZXBsYWNlZEVsZW1lbnQoY29uc3QgVmVjdG9yPFJlbmRlcmVkRG8KICAg
ICByZXR1cm4gZmFsc2U7CiB9CiAKK0NvbG9yIFJlbmRlclJlcGxhY2VkOjpjYWxjdWxhdGVIaWdo
bGlnaHRDb2xvcigpIGNvbnN0Cit7CisgICAgYXV0byBoaWdobGlnaHREYXRhID0gSGlnaGxpZ2h0
RGF0YSh2aWV3KCkpOworICAgIGZvciAoYXV0byYgaGlnaGxpZ2h0IDogZG9jdW1lbnQoKS5oaWdo
bGlnaHRNYXAoKS5tYXAoKSkgeworICAgICAgICBmb3IgKGF1dG8mIHJhbmdlRGF0YSA6IGhpZ2hs
aWdodC52YWx1ZS0+cmFuZ2VzRGF0YSgpKSB7CisgICAgICAgICAgICAKKyAgICAgICAgICAgIGlm
ICghaGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQorICAgICAgICAgICAg
ICAgIGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIHN0YXRlID0gaGln
aGxpZ2h0RGF0YS5oaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVyKCp0aGlzKTsKKyAgICAgICAgICAg
IGlmICghaXNIaWdobGlnaHRlZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkpCisgICAgICAgICAgICAg
ICAgY29udGludWU7CisKKyAgICAgICAgICAgIGlmIChhdXRvIGhpZ2hsaWdodFN0eWxlID0gZ2V0
VW5jYWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGlnaHQsIGhpZ2hsaWdodC5rZXkg
fSwgJnN0eWxlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBoaWdobGlnaHRTdHlsZS0+YmFj
a2dyb3VuZENvbG9yKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIENvbG9yKCk7Cit9
CisKIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25z
dCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFzaG91bGRQYWludChwYWlu
dEluZm8sIHBhaW50T2Zmc2V0KSkKQEAgLTE5NSw2ICsyMTcsMTEgQEAgdm9pZCBSZW5kZXJSZXBs
YWNlZDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWlu
dE9mZnNldCkKICAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QoKnRoaXMp
KQogICAgICAgICByZXR1cm47CiAgICAgCisgICAgCisgICAgQ29sb3IgaGlnaGxpZ2h0Q29sb3I7
CisgICAgaWYgKCFkb2N1bWVudCgpLnByaW50aW5nKCkgJiYgIXBhaW50SW5mby5wYWludEJlaGF2
aW9yLmNvbnRhaW5zKFBhaW50QmVoYXZpb3I6OkV4Y2x1ZGVTZWxlY3Rpb24pKQorICAgICAgICBo
aWdobGlnaHRDb2xvciA9IGNhbGN1bGF0ZUhpZ2hsaWdodENvbG9yKCk7CisgICAgCiAgICAgYm9v
bCBkcmF3U2VsZWN0aW9uVGludCA9IHNob3VsZERyYXdTZWxlY3Rpb25UaW50KCk7CiAgICAgaWYg
KHBhaW50SW5mby5waGFzZSA9PSBQYWludFBoYXNlOjpTZWxlY3Rpb24pIHsKICAgICAgICAgaWYg
KHNlbGVjdGlvblN0YXRlKCkgPT0gSGlnaGxpZ2h0U3RhdGU6Ok5vbmUpCkBAIC0yMjgsNiArMjU1
LDEyIEBAIHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBj
b25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiAgICAgICAgIHNlbGVjdGlvblBhaW50aW5n
UmVjdC5tb3ZlQnkoYWRqdXN0ZWRQYWludE9mZnNldCk7CiAgICAgICAgIHBhaW50SW5mby5jb250
ZXh0KCkuZmlsbFJlY3Qoc25hcHBlZEludFJlY3Qoc2VsZWN0aW9uUGFpbnRpbmdSZWN0KSwgc2Vs
ZWN0aW9uQmFja2dyb3VuZENvbG9yKCkpOwogICAgIH0KKyAgICAKKyAgICBpZiAoaGlnaGxpZ2h0
Q29sb3IuaXNWaXNpYmxlKCkpIHsKKyAgICAgICAgYXV0byBzZWxlY3Rpb25QYWludGluZ1JlY3Qg
PSBsb2NhbFNlbGVjdGlvblJlY3QoZmFsc2UpOworICAgICAgICBzZWxlY3Rpb25QYWludGluZ1Jl
Y3QubW92ZUJ5KGFkanVzdGVkUGFpbnRPZmZzZXQpOworICAgICAgICBwYWludEluZm8uY29udGV4
dCgpLmZpbGxSZWN0KHNuYXBwZWRJbnRSZWN0KHNlbGVjdGlvblBhaW50aW5nUmVjdCksIGhpZ2hs
aWdodENvbG9yKTsKKyAgICB9CiB9CiAKIGJvb2wgUmVuZGVyUmVwbGFjZWQ6OnNob3VsZFBhaW50
KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCkBA
IC02NzksMTkgKzcxMiwyMyBAQCB2b2lkIFJlbmRlclJlcGxhY2VkOjpzZXRTZWxlY3Rpb25TdGF0
ZShIaWdobGlnaHRTdGF0ZSBzdGF0ZSkKICAgICBSZW5kZXJCb3g6OnNldFNlbGVjdGlvblN0YXRl
KHN0YXRlKTsKIAogICAgIGlmIChtX2lubGluZUJveFdyYXBwZXIgJiYgY2FuVXBkYXRlU2VsZWN0
aW9uT25Sb290TGluZUJveGVzKCkpCi0gICAgICAgIG1faW5saW5lQm94V3JhcHBlci0+cm9vdCgp
LnNldEhhc1NlbGVjdGVkQ2hpbGRyZW4oaXNTZWxlY3RlZCgpKTsKKyAgICAgICAgbV9pbmxpbmVC
b3hXcmFwcGVyLT5yb290KCkuc2V0SGFzU2VsZWN0ZWRDaGlsZHJlbihpc0hpZ2hsaWdodGVkKHNl
bGVjdGlvblN0YXRlKCksIHZpZXcoKS5zZWxlY3Rpb24oKSkpOwogfQogCiBib29sIFJlbmRlclJl
cGxhY2VkOjppc1NlbGVjdGVkKCkgY29uc3QKIHsKLSAgICBIaWdobGlnaHRTdGF0ZSBzdGF0ZSA9
IHNlbGVjdGlvblN0YXRlKCk7CisgICAgcmV0dXJuIGlzSGlnaGxpZ2h0ZWQoc2VsZWN0aW9uU3Rh
dGUoKSwgdmlldygpLnNlbGVjdGlvbigpKTsKK30KKworYm9vbCBSZW5kZXJSZXBsYWNlZDo6aXNI
aWdobGlnaHRlZChIaWdobGlnaHRTdGF0ZSBzdGF0ZSwgY29uc3QgSGlnaGxpZ2h0RGF0YSYgcmFu
Z2VEYXRhKSBjb25zdAorewogICAgIGlmIChzdGF0ZSA9PSBIaWdobGlnaHRTdGF0ZTo6Tm9uZSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAgIGlmIChzdGF0ZSA9PSBIaWdobGlnaHRTdGF0ZTo6
SW5zaWRlKQogICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8gc2VsZWN0aW9uU3RhcnQg
PSB2aWV3KCkuc2VsZWN0aW9uKCkuc3RhcnRPZmZzZXQoKTsKLSAgICBhdXRvIHNlbGVjdGlvbkVu
ZCA9IHZpZXcoKS5zZWxlY3Rpb24oKS5lbmRPZmZzZXQoKTsKKyAgICBhdXRvIHNlbGVjdGlvblN0
YXJ0ID0gcmFuZ2VEYXRhLnN0YXJ0T2Zmc2V0KCk7CisgICAgYXV0byBzZWxlY3Rpb25FbmQgPSBy
YW5nZURhdGEuZW5kT2Zmc2V0KCk7CiAgICAgaWYgKHN0YXRlID09IEhpZ2hsaWdodFN0YXRlOjpT
dGFydCkKICAgICAgICAgcmV0dXJuICFzZWxlY3Rpb25TdGFydDsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggYi9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAppbmRleCBlNjRjM2Q3NWQ4MDE5NjUxODgzZjE5MWNh
YTM3Zjg5NWI0YWMxYWJlLi40N2Q1Mjc2MGVjMTAxYjUwZDYxMzZjMzA2Y2IzMzJkNjViNjYyODhh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAor
KysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtOTQsNiAr
OTQsOSBAQCBwcml2YXRlOgogICAgIHZvaWQgY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25G
b3JSZW5kZXJCb3goUmVuZGVyQm94KiwgRmxvYXRTaXplJiBjb25zdHJhaW5lZFNpemUsIGRvdWJs
ZSYgaW50cmluc2ljUmF0aW8pIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERyYXdT
ZWxlY3Rpb25UaW50KCkgY29uc3Q7CisgICAgCisgICAgdmlydHVhbCBDb2xvciBjYWxjdWxhdGVI
aWdobGlnaHRDb2xvcigpIGNvbnN0OworICAgIGJvb2wgaXNIaWdobGlnaHRlZChIaWdobGlnaHRT
dGF0ZSwgY29uc3QgSGlnaGxpZ2h0RGF0YSYpIGNvbnN0OwogCiAgICAgbXV0YWJsZSBMYXlvdXRT
aXplIG1faW50cmluc2ljU2l6ZTsKIH07CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMjAwZmYxODU0NDM2NjUzMjBiNzNmMTcy
YTA0NjQ1MzAxY2E1MGU3Ni4uYzM0NWU4NzkxMmI2OWNlOGJhOWNhMDhjNzA2MjRkZTI5YmZhZTEy
MCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3RzL0No
YW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTEwLTA2ICBNZWdhbiBHYXJkbmVyICA8bWVn
YW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NTIGhpZ2hsaWdodHMgb3Zl
ciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTIxNzQxNworCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVyLgorCisgICAgICAgICog
aHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC1t
aXNtYXRjaGVkLmh0bWw6IEFkZGVkLgorICAgICAgICAqIGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxp
Z2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbDogQWRkZWQuCisKIDIwMjAtMTAtMDggIFdlbnNv
biBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwg
dW5za2lwIHNldmVyYWwgY2FudmFzLXJlbGF0ZWQgbGF5b3V0IHRlc3QgZGlyZWN0b3JpZXMgd2hl
biBlbmFibGluZyBHUFUgcHJvY2VzcwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQv
Y3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaGVk
Lmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxp
Z2h0LWltYWdlLWV4cGVjdGVkLW1pc21hdGNoZWQuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5hYjczMzAxYTlj
MGE5Yjk5MzcwOTZlMTZjNzBlZjk0ODhkOTNjYTllCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBl
Y3RlZC1taXNtYXRjaGVkLmh0bWwKQEAgLTAsMCArMSwxMyBAQAorPCFET0NUWVBFIGh0bWw+Cis8
aHRtbD4KKzxoZWFkPgorICAgIDxtZXRhIGNoYXJzZXQ9InV0Zi04Ij4KKyAgICA8dGl0bGU+TXVs
dGlwbGUgY3VzdG9tIGhpZ2hsaWdodCBwc2V1ZG8gZWxlbWVudHMuPC90aXRsZT4KKyAgICA8bGlu
ayByZWw9ImhlbHAiIGhyZWY9Imh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtaGlnaGxpZ2h0
LWFwaS0xLyNjcmVhdGluZy1oaWdobGlnaHRzIj4KKyAgICA8bGluayByZWw9Im1hdGNoIiBocmVm
PSJoaWdobGlnaHQtdGV4dC1leHBlY3RlZC5odG1sIj4KKyAgICA8bWV0YSBuYW1lPSJhc3NlcnQi
IGNvbnRlbnQ9Ik11bHRpcGxlIGhpZ2hsaWdodHMgc2hvdWxkIGJlIGFibGUgdG8gYmUgc3BlY2lm
aWVkLiI+Cis8L2hlYWQ+Cis8Ym9keT4KKyAgICA8ZGl2IGlkPSJzdHlsZTEiPjxpbWcgc3JjPSIu
Li8uLi9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZyI+PC9kaXY+Cis8L2JvZHk+Cis8L2h0bWw+
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkv
aGlnaGxpZ2h0LWltYWdlLmh0bWwgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hs
aWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uM2RhMTI5Y2RkOTgzYTg5
NjkyNDFjMTBmODBlNTg2ZTdkYTI5MWFiZQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3Rz
L2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbApAQCAt
MCwwICsxLDMxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+CisgICAgPG1ldGEg
Y2hhcnNldD0idXRmLTgiPgorICAgIDx0aXRsZT5NdWx0aXBsZSBjdXN0b20gaGlnaGxpZ2h0IHBz
ZXVkbyBlbGVtZW50cy48L3RpdGxlPgorICAgIDxsaW5rIHJlbD0iaGVscCIgaHJlZj0iaHR0cHM6
Ly9kcmFmdHMuY3Nzd2cub3JnL2Nzcy1oaWdobGlnaHQtYXBpLTEvI2NyZWF0aW5nLWhpZ2hsaWdo
dHMiPgorICAgIDxsaW5rIHJlbD0ibWF0Y2giIGhyZWY9ImhpZ2hsaWdodC10ZXh0LWV4cGVjdGVk
Lmh0bWwiPgorICAgIDxtZXRhIG5hbWU9ImFzc2VydCIgY29udGVudD0iTXVsdGlwbGUgaGlnaGxp
Z2h0cyBzaG91bGQgYmUgYWJsZSB0byBiZSBzcGVjaWZpZWQuIj4KKyAgICAgICAgPHN0eWxlPgor
ICAgICAgICAjaW1nMSB7CisgICAgICAgICAgICBkaXNwbGF5OiBpbmxpbmUtYmxvY2s7CisgICAg
ICAgIH0KKyAgICAgICAgOjpoaWdobGlnaHQoZXhhbXBsZS1oaWdobGlnaHQxKSB7CisgICAgICAg
ICAgICBiYWNrZ3JvdW5kLWNvbG9yOiByZ2JhKDIwMCwwLDAsLjUpOworICAgICAgICAgICAgY29s
b3I6Z3JlZW47CisgICAgICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5Pgor
ICAgIDxkaXYgaWQ9ImltZzEiPjxpbWcgc3JjPSIuLi8uLi9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0
LnBuZyI+PC9kaXY+CisKKyAgICA8c2NyaXB0PgorICAgICAgICBsZXQgaW1hZ2VFbGVtZW50MSA9
IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCdpbWcxJyk7CisgICAgICAgIGxldCBoaWdobGlnaHRS
YW5nZUdyb3VwMSA9IG5ldyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3Rh
cnRDb250YWluZXI6IGltYWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAs
IGVuZENvbnRhaW5lcjogaW1hZ2VFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDF9
KSk7CisKKworICAgICAgICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIs
IGhpZ2hsaWdodFJhbmdlR3JvdXAxKTsKKworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1s
PgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvaW1hZ2VzL2JsYW5rLWhpZ2hsaWdo
dC5wbmcgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZwpu
ZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwLi42ZGJlZTA5MTc0OWZiNmQ3MGQ2MmYzOTE0ZDc1Y2JhNDMyYjU1YjVhCkdJVCBi
aW5hcnkgcGF0Y2gKbGl0ZXJhbCAxNjEzCnpjbWVISCZyajEoOURpa2kmX05faDIlP0UpVWNfWVdU
TmpsIVROQnVqRXBmMlNYQCpgWFRjXzErWlE3RVJuXl9gOwp6OHlBZitCPF41QGdXPUBTa1AkVXIy
cDJBJU9lQV9SViFaMT8tKXA8QUgxSHFUPUpvc1NfeHQmTGY0c2hMU0pFQG4KentwMUo8ME8oSTk7
dSQwaGM9ZEZuckBIP25pdiohKHJZRkpYP3ohKmlyNkp7IyNaKEdoTFY2RTRMN1cwVTNfJipfCnpN
bklSUDFGJTR4WlJ6KWtpdz5wKFZMfHtzIUFaMDxnMD1LUHF9THdIcHdyPCNNR3t7THZgfCFBcmUj
d3FsfEA2Kgp6czQmZHx6KE4tQ0E7PzNIZiplLVphUjdYRXFGcWhCcVpQNEdfcUJCI2BvLStHd0BD
RD1pOCZucnw3cEFrQE8qNjsKeiNuX091SVV8PzQmZ1lkZkVmJG1vaThqa0JXYFQmd0JlZzZVQjR3
Nks2YGVQdTBTbXorOWg7Y3xXa0hNdyhMZ1NoCnpyZWNhRlFDRGI0ISs9MGk2Y3kxNU1MclkxPUZy
aHdHO3ElX1JHd2p+KWhiO0wofjVTTjMyX3w5SyRjPElBVkxLNwp6ckhVYiUhSFJ5dDQkX1BobS1N
X1F0QT95cEM+JlFAUCFeNDdBYj1DS0YxdD1jRjE5bU9iZishVUFjSCtqaD0kQmoKekd8N35ZcDwm
T2xHXyomcHdoa3BUTWIjISpuXzxAJiE0PmNeckwxYV91QV5RQTdfcTg0V05ZX2k8MT49M2xvb084
CnpIIUhGc3VueHN6X09menF6aV9xNWFUfnBheHVYYmZxbjl3TiRyQWNueEcqOCk2eT4oTEBPVFMo
PnNhVUZhI15aYQp6eUB3I2B7eiM5UDhCPEQlYzAoMk81Pjh9TVRxWkJ0JH1ATHQ5KyRfKE1Ca0Iq
WCVaZn50Zkd7SiEhc0NSeW5ZV2cKenI0OzFpUWR+NDcwWihmJTFjUSp2SG1COTV5RCR6ciFyLSYp
SUB8VyhTWE1NUzAqUSN0REhPPXAlZVNgQlVxVmE5CnpDJGM4LWI4b3gxMHNCNnIqWj0lRmN5JVlU
KFhyKHBgQDZJQWBOdT56eCZRdnRNeyh0QUk2WksxZSgpdnJqT2JmYAp6R31zd19ffnAlTlpOM3w+
NFBeIykhMUNUQ1N2JThFWnptPzhaK09OKCk+OCFVPGs3Q316V01Sc2Y2ezFmUmJMdikKYnxHdkVJ
dU0/ZnloMkUoPns5akI/JkJRays9V0c3fXBYSlR4CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411263</attachid>
            <date>2020-10-13 15:02:27 -0700</date>
            <delta_ts>2020-10-13 17:19:12 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217417-20201013150226.patch</filename>
            <type>text/plain</type>
            <size>13606</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4MjQxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNjhhMmY5Y2MwNDQ0NDBm
NGE1ZjgwN2RhOTlhZWYwZWFmOTU1NWI0Mi4uNzk5NDcyYzEzYmVjNTU2NDE2NTVkMzQyMTc2NDMw
Y2I4MWJhOWUzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI0IEBACisyMDIwLTEwLTA2ICBNZWdh
biBHYXJkbmVyICA8bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NT
IGhpZ2hsaWdodHMgb3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTIxNzQxNworICAgICAgICA8cmRhcjovL3Byb2JsZW0vNTg0NTkwNTQ+
CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgQWRkIHN1cHBv
cnQgdG8gcGFpbnQgQ1NTIHBzZXVkbyBoaWdobGlnaHRzIG92ZXIgaW1hZ2VzIHRoYXQgYXJlIGlu
IHRoZSAKKyAgICAgICAgcmFuZ2Ugb2YgdGhlIGRlZmluZWQgaGlnaGxpZ2h0LgorCisgICAgICAg
IFRlc3Q6IGh0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRt
bAorCisgICAgICAgICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6SGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcik6CisgICAgICAg
ICogcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVy
UmVwbGFjZWQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyUmVwbGFjZWQ6OnBvdGVudGlh
bEhpZ2hsaWdodENvbG9yIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclJlcGxhY2Vk
OjpwYWludCk6CisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmg6CisKIDIwMjAt
MTAtMDggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAgICAgICAg
W01vdGlvbk1hcmtdIEFkZCBhIGZhc3QgcGF0aCBmb3IgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQ
YXRoIGluIHRoZSBjYXNlIHdoZXJlIHRoZSBwYXRoIGlzIGEgbGluZQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuY3BwCmluZGV4IDJlZjdiYTc1MTU3M2IyODk5YWNkM2U2
ZGYyY2Q3MTg2NzEyYjliMDUuLjJiZGQ2OTc3Zjk1NzkzYzE2NTlmM2JjMTY3MzE2NjJhM2UzNjc0
ZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGlnaHREYXRhLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0YS5jcHAKQEAgLTMz
LDYgKzMzLDcgQEAKIAogI2luY2x1ZGUgIkRvY3VtZW50LmgiCiAjaW5jbHVkZSAiRnJhbWVTZWxl
Y3Rpb24uaCIKKyNpbmNsdWRlICJIaWdobGlnaHRSYW5nZUdyb3VwLmgiCiAjaW5jbHVkZSAiTG9n
Z2luZy5oIgogI2luY2x1ZGUgIlBvc2l0aW9uLmgiCiAjaW5jbHVkZSAiUmFuZ2UuaCIKQEAgLTE2
Miw3ICsxNjMsMzEgQEAgdm9pZCBIaWdobGlnaHREYXRhOjpzZXRSZW5kZXJSYW5nZShjb25zdCBS
ZW5kZXJSYW5nZSYgcmVuZGVyUmFuZ2UpCiAgICAgbV9yZW5kZXJSYW5nZSA9IHJlbmRlclJhbmdl
OwogfQogCi1SZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIEhpZ2hsaWdodERhdGE6OmhpZ2hs
aWdodFN0YXRlRm9yUmVuZGVyZXIoUmVuZGVyT2JqZWN0JiByZW5kZXJlcikKK2Jvb2wgSGlnaGxp
Z2h0RGF0YTo6c2V0UmVuZGVyUmFuZ2UoY29uc3QgSGlnaGxpZ2h0UmFuZ2VEYXRhJiByYW5nZURh
dGEpCit7CisgICAgaWYgKCFyYW5nZURhdGEuc3RhcnRQb3NpdGlvbiB8fCAhcmFuZ2VEYXRhLmVu
ZFBvc2l0aW9uKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgYXV0byBzdGFydFBv
c2l0aW9uID0gcmFuZ2VEYXRhLnN0YXJ0UG9zaXRpb24udmFsdWUoKTsKKyAgICBhdXRvIGVuZFBv
c2l0aW9uID0gcmFuZ2VEYXRhLmVuZFBvc2l0aW9uLnZhbHVlKCk7CisgICAgCisgICAgaWYgKCFz
dGFydFBvc2l0aW9uLmNvbnRhaW5lck5vZGUoKSB8fCAhZW5kUG9zaXRpb24uY29udGFpbmVyTm9k
ZSgpKQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgYXV0byogc3RhcnRSZW5kZXJl
ciA9IHN0YXJ0UG9zaXRpb24uY29udGFpbmVyTm9kZSgpLT5yZW5kZXJlcigpOworICAgIGF1dG8q
IGVuZFJlbmRlcmVyID0gZW5kUG9zaXRpb24uY29udGFpbmVyTm9kZSgpLT5yZW5kZXJlcigpOwor
ICAgIAorICAgIGlmICghc3RhcnRSZW5kZXJlciB8fCAhZW5kUmVuZGVyZXIpCisgICAgICAgIHJl
dHVybiBmYWxzZTsKKyAgICAKKyAgICB1bnNpZ25lZCBzdGFydE9mZnNldCA9IHN0YXJ0UG9zaXRp
b24uY29tcHV0ZU9mZnNldEluQ29udGFpbmVyTm9kZSgpOworICAgIHVuc2lnbmVkIGVuZE9mZnNl
dCA9IGVuZFBvc2l0aW9uLmNvbXB1dGVPZmZzZXRJbkNvbnRhaW5lck5vZGUoKTsKKworICAgIHNl
dFJlbmRlclJhbmdlKHsgc3RhcnRSZW5kZXJlciwgZW5kUmVuZGVyZXIsIHN0YXJ0T2Zmc2V0LCBl
bmRPZmZzZXQgfSk7CisgICAgcmV0dXJuIHRydWU7Cit9CisKK1JlbmRlck9iamVjdDo6SGlnaGxp
Z2h0U3RhdGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcihjb25zdCBS
ZW5kZXJPYmplY3QmIHJlbmRlcmVyKQogewogICAgIGlmICgmcmVuZGVyZXIgPT0gbV9yZW5kZXJS
YW5nZS5zdGFydCgpKSB7CiAgICAgICAgIGlmIChtX3JlbmRlclJhbmdlLnN0YXJ0KCkgJiYgbV9y
ZW5kZXJSYW5nZS5lbmQoKSAmJiBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgPT0gbV9yZW5kZXJSYW5n
ZS5lbmQoKSkKQEAgLTE3MywxNCArMTk4LDExIEBAIFJlbmRlck9iamVjdDo6SGlnaGxpZ2h0U3Rh
dGUgSGlnaGxpZ2h0RGF0YTo6aGlnaGxpZ2h0U3RhdGVGb3JSZW5kZXJlcihSZW5kZXJPYmplCiAg
ICAgaWYgKCZyZW5kZXJlciA9PSBtX3JlbmRlclJhbmdlLmVuZCgpKQogICAgICAgICByZXR1cm4g
UmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZTo6RW5kOwogCi0gICAgUmVuZGVyT2JqZWN0KiBo
aWdobGlnaHRFbmQgPSBudWxscHRyOwotICAgIGF1dG8qIGhpZ2hsaWdodERhdGFFbmQgPSBtX3Jl
bmRlclJhbmdlLmVuZCgpOwotICAgIGlmIChoaWdobGlnaHREYXRhRW5kKQotICAgICAgICBoaWdo
bGlnaHRFbmQgPSByZW5kZXJlckFmdGVyT2Zmc2V0KCpoaWdobGlnaHREYXRhRW5kLCBtX3JlbmRl
clJhbmdlLmVuZE9mZnNldCgpLnZhbHVlKCkpOwotICAgIFVOVVNFRF9QQVJBTShoaWdobGlnaHRF
bmQpOworICAgIGF1dG8qIGhpZ2hsaWdodEVuZCA9IHJlbmRlcmVyQWZ0ZXJPZmZzZXQoKm1fcmVu
ZGVyUmFuZ2UuZW5kKCksIG1fcmVuZGVyUmFuZ2UuZW5kT2Zmc2V0KCkudmFsdWUoKSk7CisgICAg
CiAgICAgSGlnaGxpZ2h0SXRlcmF0b3IgaGlnaGxpZ2h0SXRlcmF0b3IobV9yZW5kZXJSYW5nZS5z
dGFydCgpKTsKLSAgICBmb3IgKGF1dG8qIGN1cnJlbnRSZW5kZXJlciA9IG1fcmVuZGVyUmFuZ2Uu
c3RhcnQoKTsgY3VycmVudFJlbmRlcmVyICYmIGN1cnJlbnRSZW5kZXJlciAhPSBtX3JlbmRlclJh
bmdlLmVuZCgpOyBjdXJyZW50UmVuZGVyZXIgPSBoaWdobGlnaHRJdGVyYXRvci5uZXh0KCkpIHsK
LSAgICAgICAgaWYgKGN1cnJlbnRSZW5kZXJlciA9PSBtX3JlbmRlclJhbmdlLnN0YXJ0KCkgfHwg
Y3VycmVudFJlbmRlcmVyID09IG1fcmVuZGVyUmFuZ2UuZW5kKCkpCisgICAgZm9yIChhdXRvKiBj
dXJyZW50UmVuZGVyZXIgPSBtX3JlbmRlclJhbmdlLnN0YXJ0KCk7IGN1cnJlbnRSZW5kZXJlciAm
JiBjdXJyZW50UmVuZGVyZXIgIT0gaGlnaGxpZ2h0RW5kOyBjdXJyZW50UmVuZGVyZXIgPSBoaWdo
bGlnaHRJdGVyYXRvci5uZXh0KCkpIHsKKyAgICAgICAgaWYgKGN1cnJlbnRSZW5kZXJlciA9PSBt
X3JlbmRlclJhbmdlLnN0YXJ0KCkpCiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgaWYg
KCFjdXJyZW50UmVuZGVyZXItPmNhbkJlU2VsZWN0aW9uTGVhZigpKQogICAgICAgICAgICAgY29u
dGludWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSGlnaGxpZ2h0RGF0
YS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0hpZ2hsaWdodERhdGEuaAppbmRleCBhZDgw
ZmQzZDZlM2U5YTZkMGNhMzE1MTQyMzBlMjRjMjM5MGMxMzE0Li5lOTdiY2Y0ZmU2YWE0NjA0YWVl
MzkwZmI3Mzc1YzJlZGI4OGFlYTVkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvSGlnaGxpZ2h0RGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9IaWdobGln
aHREYXRhLmgKQEAgLTM3LDYgKzM3LDggQEAKICNlbmRpZgogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CisKK3N0cnVjdCBIaWdobGlnaHRSYW5nZURhdGE7CiAgICAgCiBjbGFzcyBIaWdobGlnaHREYXRh
IHsKIHB1YmxpYzoKQEAgLTcxLDYgKzczLDcgQEAgcHVibGljOgogICAgIH07CiAgICAgCiAgICAg
dm9pZCBzZXRSZW5kZXJSYW5nZShjb25zdCBSZW5kZXJSYW5nZSYpOworICAgIGJvb2wgc2V0UmVu
ZGVyUmFuZ2UoY29uc3QgSGlnaGxpZ2h0UmFuZ2VEYXRhJik7IC8vIFJldHVybnMgdHJ1ZSBpZiBz
dWNjZXNzZnVsLgogICAgIAogICAgIGVudW0gY2xhc3MgUmVwYWludE1vZGUgeyBOZXdYT1JPbGQs
IE5ld01pbnVzT2xkLCBOb3RoaW5nIH07CiAgICAgdm9pZCBzZXRTZWxlY3Rpb24oY29uc3QgUmVu
ZGVyUmFuZ2UmLCBSZXBhaW50TW9kZSA9IFJlcGFpbnRNb2RlOjpOZXdYT1JPbGQpOwpAQCAtODcs
NyArOTAsNyBAQCBwdWJsaWM6CiAgICAgSW50UmVjdCBib3VuZHNDbGlwcGVkVG9WaXNpYmxlQ29u
dGVudCgpIGNvbnN0IHsgcmV0dXJuIGNvbGxlY3RCb3VuZHMoQ2xpcFRvVmlzaWJsZUNvbnRlbnQ6
Olllcyk7IH0KICAgICB2b2lkIHJlcGFpbnRTZWxlY3Rpb24oKSBjb25zdDsKICAgICAKLSAgICBS
ZW5kZXJPYmplY3Q6OkhpZ2hsaWdodFN0YXRlIGhpZ2hsaWdodFN0YXRlRm9yUmVuZGVyZXIoUmVu
ZGVyT2JqZWN0Jik7CisgICAgUmVuZGVyT2JqZWN0OjpIaWdobGlnaHRTdGF0ZSBoaWdobGlnaHRT
dGF0ZUZvclJlbmRlcmVyKGNvbnN0IFJlbmRlck9iamVjdCYpOwogCiBwcml2YXRlOgogICAgIGVu
dW0gY2xhc3MgQ2xpcFRvVmlzaWJsZUNvbnRlbnQgeyBZZXMsIE5vIH07CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuY3BwIGIvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmNwcAppbmRleCAyNTcxYjY1NDJhNDZlYjY1NWEw
MzJlZDFlOWYwMWFlNzc4NjcyMDFlLi44OTkwMTMwOGM2ZjBmZWI0OTcxOTMxMzNhODIyNGY5ZDY0
MGNkY2QzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFj
ZWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJSZXBsYWNlZC5jcHAK
QEAgLTMxLDYgKzMxLDggQEAKICNpbmNsdWRlICJIVE1MRWxlbWVudC5oIgogI2luY2x1ZGUgIkhU
TUxJbWFnZUVsZW1lbnQuaCIKICNpbmNsdWRlICJIVE1MUGFyc2VySWRpb21zLmgiCisjaW5jbHVk
ZSAiSGlnaGxpZ2h0RGF0YS5oIgorI2luY2x1ZGUgIkhpZ2hsaWdodE1hcC5oIgogI2luY2x1ZGUg
IklubGluZUVsZW1lbnRCb3guaCIKICNpbmNsdWRlICJMYXlvdXRSZXBhaW50ZXIuaCIKICNpbmNs
dWRlICJSZW5kZXJCbG9jay5oIgpAQCAtMTQ2LDYgKzE0OCwyNSBAQCBpbmxpbmUgc3RhdGljIGJv
b2wgZHJhZ2dlZENvbnRlbnRDb250YWluc1JlcGxhY2VkRWxlbWVudChjb25zdCBWZWN0b3I8UmVu
ZGVyZWREbwogICAgIHJldHVybiBmYWxzZTsKIH0KIAorQ29sb3IgUmVuZGVyUmVwbGFjZWQ6OmNh
bGN1bGF0ZUhpZ2hsaWdodENvbG9yKCkgY29uc3QKK3sKKyAgICBhdXRvIGhpZ2hsaWdodERhdGEg
PSBIaWdobGlnaHREYXRhKHZpZXcoKSk7CisgICAgZm9yIChhdXRvJiBoaWdobGlnaHQgOiBkb2N1
bWVudCgpLmhpZ2hsaWdodE1hcCgpLm1hcCgpKSB7CisgICAgICAgIGZvciAoYXV0byYgcmFuZ2VE
YXRhIDogaGlnaGxpZ2h0LnZhbHVlLT5yYW5nZXNEYXRhKCkpIHsKKyAgICAgICAgICAgIGlmICgh
aGlnaGxpZ2h0RGF0YS5zZXRSZW5kZXJSYW5nZShyYW5nZURhdGEpKQorICAgICAgICAgICAgICAg
IGNvbnRpbnVlOworICAgICAgICAgICAgCisgICAgICAgICAgICBhdXRvIHN0YXRlID0gaGlnaGxp
Z2h0RGF0YS5oaWdobGlnaHRTdGF0ZUZvclJlbmRlcmVyKCp0aGlzKTsKKyAgICAgICAgICAgIGlm
ICghaXNIaWdobGlnaHRlZChzdGF0ZSwgaGlnaGxpZ2h0RGF0YSkpCisgICAgICAgICAgICAgICAg
Y29udGludWU7CisKKyAgICAgICAgICAgIGlmIChhdXRvIGhpZ2hsaWdodFN0eWxlID0gZ2V0VW5j
YWNoZWRQc2V1ZG9TdHlsZSh7IFBzZXVkb0lkOjpIaWdobGlnaHQsIGhpZ2hsaWdodC5rZXkgfSwg
JnN0eWxlKCkpKQorICAgICAgICAgICAgICAgIHJldHVybiBoaWdobGlnaHRTdHlsZS0+YmFja2dy
b3VuZENvbG9yKCk7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIENvbG9yKCk7Cit9CisK
IHZvaWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBM
YXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCiB7CiAgICAgaWYgKCFzaG91bGRQYWludChwYWludElu
Zm8sIHBhaW50T2Zmc2V0KSkKQEAgLTE5NSw2ICsyMTYsMTAgQEAgdm9pZCBSZW5kZXJSZXBsYWNl
ZDo6cGFpbnQoUGFpbnRJbmZvJiBwYWludEluZm8sIGNvbnN0IExheW91dFBvaW50JiBwYWludE9m
ZnNldCkKICAgICBpZiAoIXBhaW50SW5mby5zaG91bGRQYWludFdpdGhpblJvb3QoKnRoaXMpKQog
ICAgICAgICByZXR1cm47CiAgICAgCisgICAgQ29sb3IgaGlnaGxpZ2h0Q29sb3I7CisgICAgaWYg
KCFkb2N1bWVudCgpLnByaW50aW5nKCkgJiYgIXBhaW50SW5mby5wYWludEJlaGF2aW9yLmNvbnRh
aW5zKFBhaW50QmVoYXZpb3I6OkV4Y2x1ZGVTZWxlY3Rpb24pKQorICAgICAgICBoaWdobGlnaHRD
b2xvciA9IGNhbGN1bGF0ZUhpZ2hsaWdodENvbG9yKCk7CisgICAgCiAgICAgYm9vbCBkcmF3U2Vs
ZWN0aW9uVGludCA9IHNob3VsZERyYXdTZWxlY3Rpb25UaW50KCk7CiAgICAgaWYgKHBhaW50SW5m
by5waGFzZSA9PSBQYWludFBoYXNlOjpTZWxlY3Rpb24pIHsKICAgICAgICAgaWYgKHNlbGVjdGlv
blN0YXRlKCkgPT0gSGlnaGxpZ2h0U3RhdGU6Ok5vbmUpCkBAIC0yMjgsNiArMjUzLDEyIEBAIHZv
aWQgUmVuZGVyUmVwbGFjZWQ6OnBhaW50KFBhaW50SW5mbyYgcGFpbnRJbmZvLCBjb25zdCBMYXlv
dXRQb2ludCYgcGFpbnRPZmZzZXQpCiAgICAgICAgIHNlbGVjdGlvblBhaW50aW5nUmVjdC5tb3Zl
QnkoYWRqdXN0ZWRQYWludE9mZnNldCk7CiAgICAgICAgIHBhaW50SW5mby5jb250ZXh0KCkuZmls
bFJlY3Qoc25hcHBlZEludFJlY3Qoc2VsZWN0aW9uUGFpbnRpbmdSZWN0KSwgc2VsZWN0aW9uQmFj
a2dyb3VuZENvbG9yKCkpOwogICAgIH0KKyAgICAKKyAgICBpZiAoaGlnaGxpZ2h0Q29sb3IuaXNW
aXNpYmxlKCkpIHsKKyAgICAgICAgYXV0byBzZWxlY3Rpb25QYWludGluZ1JlY3QgPSBsb2NhbFNl
bGVjdGlvblJlY3QoZmFsc2UpOworICAgICAgICBzZWxlY3Rpb25QYWludGluZ1JlY3QubW92ZUJ5
KGFkanVzdGVkUGFpbnRPZmZzZXQpOworICAgICAgICBwYWludEluZm8uY29udGV4dCgpLmZpbGxS
ZWN0KHNuYXBwZWRJbnRSZWN0KHNlbGVjdGlvblBhaW50aW5nUmVjdCksIGhpZ2hsaWdodENvbG9y
KTsKKyAgICB9CiB9CiAKIGJvb2wgUmVuZGVyUmVwbGFjZWQ6OnNob3VsZFBhaW50KFBhaW50SW5m
byYgcGFpbnRJbmZvLCBjb25zdCBMYXlvdXRQb2ludCYgcGFpbnRPZmZzZXQpCkBAIC02NzksMTkg
KzcxMCwyMyBAQCB2b2lkIFJlbmRlclJlcGxhY2VkOjpzZXRTZWxlY3Rpb25TdGF0ZShIaWdobGln
aHRTdGF0ZSBzdGF0ZSkKICAgICBSZW5kZXJCb3g6OnNldFNlbGVjdGlvblN0YXRlKHN0YXRlKTsK
IAogICAgIGlmIChtX2lubGluZUJveFdyYXBwZXIgJiYgY2FuVXBkYXRlU2VsZWN0aW9uT25Sb290
TGluZUJveGVzKCkpCi0gICAgICAgIG1faW5saW5lQm94V3JhcHBlci0+cm9vdCgpLnNldEhhc1Nl
bGVjdGVkQ2hpbGRyZW4oaXNTZWxlY3RlZCgpKTsKKyAgICAgICAgbV9pbmxpbmVCb3hXcmFwcGVy
LT5yb290KCkuc2V0SGFzU2VsZWN0ZWRDaGlsZHJlbihpc0hpZ2hsaWdodGVkKHNlbGVjdGlvblN0
YXRlKCksIHZpZXcoKS5zZWxlY3Rpb24oKSkpOwogfQogCiBib29sIFJlbmRlclJlcGxhY2VkOjpp
c1NlbGVjdGVkKCkgY29uc3QKIHsKLSAgICBIaWdobGlnaHRTdGF0ZSBzdGF0ZSA9IHNlbGVjdGlv
blN0YXRlKCk7CisgICAgcmV0dXJuIGlzSGlnaGxpZ2h0ZWQoc2VsZWN0aW9uU3RhdGUoKSwgdmll
dygpLnNlbGVjdGlvbigpKTsKK30KKworYm9vbCBSZW5kZXJSZXBsYWNlZDo6aXNIaWdobGlnaHRl
ZChIaWdobGlnaHRTdGF0ZSBzdGF0ZSwgY29uc3QgSGlnaGxpZ2h0RGF0YSYgcmFuZ2VEYXRhKSBj
b25zdAorewogICAgIGlmIChzdGF0ZSA9PSBIaWdobGlnaHRTdGF0ZTo6Tm9uZSkKICAgICAgICAg
cmV0dXJuIGZhbHNlOwogICAgIGlmIChzdGF0ZSA9PSBIaWdobGlnaHRTdGF0ZTo6SW5zaWRlKQog
ICAgICAgICByZXR1cm4gdHJ1ZTsKIAotICAgIGF1dG8gc2VsZWN0aW9uU3RhcnQgPSB2aWV3KCku
c2VsZWN0aW9uKCkuc3RhcnRPZmZzZXQoKTsKLSAgICBhdXRvIHNlbGVjdGlvbkVuZCA9IHZpZXco
KS5zZWxlY3Rpb24oKS5lbmRPZmZzZXQoKTsKKyAgICBhdXRvIHNlbGVjdGlvblN0YXJ0ID0gcmFu
Z2VEYXRhLnN0YXJ0T2Zmc2V0KCk7CisgICAgYXV0byBzZWxlY3Rpb25FbmQgPSByYW5nZURhdGEu
ZW5kT2Zmc2V0KCk7CiAgICAgaWYgKHN0YXRlID09IEhpZ2hsaWdodFN0YXRlOjpTdGFydCkKICAg
ICAgICAgcmV0dXJuICFzZWxlY3Rpb25TdGFydDsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclJlcGxhY2VkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyUmVwbGFjZWQuaAppbmRleCBlNjRjM2Q3NWQ4MDE5NjUxODgzZjE5MWNhYTM3Zjg5NWI0
YWMxYWJlLi44MDRlNjNkYWM3MWI1MDVmOTI2ZmUzMWMwZmNhZDhjYzhlNzQ5N2JmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyUmVwbGFjZWQuaApAQCAtOTQsNiArOTQsOSBAQCBw
cml2YXRlOgogICAgIHZvaWQgY29tcHV0ZUFzcGVjdFJhdGlvSW5mb3JtYXRpb25Gb3JSZW5kZXJC
b3goUmVuZGVyQm94KiwgRmxvYXRTaXplJiBjb25zdHJhaW5lZFNpemUsIGRvdWJsZSYgaW50cmlu
c2ljUmF0aW8pIGNvbnN0OwogCiAgICAgdmlydHVhbCBib29sIHNob3VsZERyYXdTZWxlY3Rpb25U
aW50KCkgY29uc3Q7CisgICAgCisgICAgQ29sb3IgY2FsY3VsYXRlSGlnaGxpZ2h0Q29sb3IoKSBj
b25zdDsKKyAgICBib29sIGlzSGlnaGxpZ2h0ZWQoSGlnaGxpZ2h0U3RhdGUsIGNvbnN0IEhpZ2hs
aWdodERhdGEmKSBjb25zdDsKIAogICAgIG11dGFibGUgTGF5b3V0U2l6ZSBtX2ludHJpbnNpY1Np
emU7CiB9OwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMv
Q2hhbmdlTG9nCmluZGV4IDIwMGZmMTg1NDQzNjY1MzIwYjczZjE3MmEwNDY0NTMwMWNhNTBlNzYu
LmMzNDVlODc5MTJiNjljZThiYTljYTA4YzcwNjI0ZGUyOWJmYWUxMjAgMTAwNjQ0Ci0tLSBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwxMyBAQAorMjAyMC0xMC0wNiAgTWVnYW4gR2FyZG5lciAgPG1lZ2FuX2dhcmRuZXJAYXBwbGUu
Y29tPgorCisgICAgICAgIFBhaW50IENTUyBoaWdobGlnaHRzIG92ZXIgaW1hZ2VzCisgICAgICAg
IGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMTc0MTcKKworICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICAqIGh0dHAvd3B0L2Nzcy9jc3Mt
aGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UtZXhwZWN0ZWQtbWlzbWF0Y2hlZC5odG1sOiBB
ZGRlZC4KKyAgICAgICAgKiBodHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0
LWltYWdlLmh0bWw6IEFkZGVkLgorCiAyMDIwLTEwLTA4ICBXZW5zb24gSHNpZWggIDx3ZW5zb25f
aHNpZWhAYXBwbGUuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQsIHVuc2tpcCBzZXZlcmFsIGNh
bnZhcy1yZWxhdGVkIGxheW91dCB0ZXN0IGRpcmVjdG9yaWVzIHdoZW4gZW5hYmxpbmcgR1BVIHBy
b2Nlc3MKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0
LWFwaS9oaWdobGlnaHQtaW1hZ2UtZXhwZWN0ZWQtbWlzbWF0Y2hlZC5odG1sIGIvTGF5b3V0VGVz
dHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3Rl
ZC1taXNtYXRjaGVkLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMGY0ZTIxZmMzZDY3OWMxOTdiMmY1MWNlOGJh
OTZjM2VlYzNhZGRjZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nz
cy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UtZXhwZWN0ZWQtbWlzbWF0Y2hlZC5o
dG1sCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorICAg
IDxkaXYgaWQ9InN0eWxlMSI+PGltZyBzcmM9Ii4uLy4uL2ltYWdlcy9ibGFuay1oaWdobGlnaHQu
cG5nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UuaHRt
bApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwLi40NTc3MTVhMjEwMzVlNjVkMTg1MzNkZTAwN2Q5MWRlNzAwZTYzMjRlCi0t
LSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQt
YXBpL2hpZ2hsaWdodC1pbWFnZS5odG1sCkBAIC0wLDAgKzEsMjggQEAKKzwhRE9DVFlQRSBodG1s
PgorPGh0bWw+Cis8aGVhZD4KKyAgICA8bWV0YSBjaGFyc2V0PSJ1dGYtOCI+CisgICAgPHRpdGxl
PkN1c3RvbSBoaWdobGlnaHQgcHNldWRvIGVsZW1lbnRzIG92ZXIgaW1hZ2VzLjwvdGl0bGU+Cisg
ICAgPGxpbmsgcmVsPSJoZWxwIiBocmVmPSJodHRwczovL2RyYWZ0cy5jc3N3Zy5vcmcvY3NzLWhp
Z2hsaWdodC1hcGktMS8jY3JlYXRpbmctaGlnaGxpZ2h0cyI+CisgICAgPGxpbmsgcmVsPSJtaXNt
YXRjaCIgaHJlZj0iaGlnaGxpZ2h0LXRleHQtZXhwZWN0ZWQtbWlzbWF0Y2hlZC5odG1sIj4KKyAg
ICA8bWV0YSBuYW1lPSJhc3NlcnQiIGNvbnRlbnQ9IkhpZ2hsaWdodHMgc2hvdWxkIGJlIGFibGUg
dG8gYmUgc3BlY2lmaWVkIG92ZXIgaW1hZ2VzLiI+CisgICAgICAgIDxzdHlsZT4KKyAgICAgICAg
OjpoaWdobGlnaHQoZXhhbXBsZS1oaWdobGlnaHQxKSB7CisgICAgICAgICAgICBiYWNrZ3JvdW5k
LWNvbG9yOiByZ2JhKDIwMCwwLDAsLjUpOworICAgICAgICAgICAgY29sb3I6Z3JlZW47CisgICAg
ICAgIH0KKyAgICAgICAgPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorICAgIDxkaXYgaWQ9Imlt
ZzEiPjxpbWcgc3JjPSIuLi8uLi9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZyI+PC9kaXY+CisK
KyAgICA8c2NyaXB0PgorICAgICAgICBsZXQgaW1hZ2VFbGVtZW50MSA9IGRvY3VtZW50LmdldEVs
ZW1lbnRCeUlkKCdpbWcxJyk7CisgICAgICAgIGxldCBoaWdobGlnaHRSYW5nZUdyb3VwMSA9IG5l
dyBIaWdobGlnaHRSYW5nZUdyb3VwKG5ldyBTdGF0aWNSYW5nZSh7c3RhcnRDb250YWluZXI6IGlt
YWdlRWxlbWVudDEuY2hpbGROb2Rlc1swXSwgc3RhcnRPZmZzZXQ6IDAsIGVuZENvbnRhaW5lcjog
aW1hZ2VFbGVtZW50MS5jaGlsZE5vZGVzWzBdLCBlbmRPZmZzZXQ6IDF9KSk7CisKKworICAgICAg
ICBDU1MuaGlnaGxpZ2h0cy5zZXQoImV4YW1wbGUtaGlnaGxpZ2h0MSIsIGhpZ2hsaWdodFJhbmdl
R3JvdXAxKTsKKworICAgIDwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvaW1hZ2VzL2JsYW5rLWhpZ2hsaWdodC5wbmcgYi9MYXlvdXRU
ZXN0cy9odHRwL3dwdC9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZwpuZXcgZmlsZSBtb2RlIDEw
MDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi42ZGJl
ZTA5MTc0OWZiNmQ3MGQ2MmYzOTE0ZDc1Y2JhNDMyYjU1YjVhCkdJVCBiaW5hcnkgcGF0Y2gKbGl0
ZXJhbCAxNjEzCnpjbWVISCZyajEoOURpa2kmX05faDIlP0UpVWNfWVdUTmpsIVROQnVqRXBmMlNY
QCpgWFRjXzErWlE3RVJuXl9gOwp6OHlBZitCPF41QGdXPUBTa1AkVXIycDJBJU9lQV9SViFaMT8t
KXA8QUgxSHFUPUpvc1NfeHQmTGY0c2hMU0pFQG4KentwMUo8ME8oSTk7dSQwaGM9ZEZuckBIP25p
diohKHJZRkpYP3ohKmlyNkp7IyNaKEdoTFY2RTRMN1cwVTNfJipfCnpNbklSUDFGJTR4WlJ6KWtp
dz5wKFZMfHtzIUFaMDxnMD1LUHF9THdIcHdyPCNNR3t7THZgfCFBcmUjd3FsfEA2Kgp6czQmZHx6
KE4tQ0E7PzNIZiplLVphUjdYRXFGcWhCcVpQNEdfcUJCI2BvLStHd0BDRD1pOCZucnw3cEFrQE8q
NjsKeiNuX091SVV8PzQmZ1lkZkVmJG1vaThqa0JXYFQmd0JlZzZVQjR3Nks2YGVQdTBTbXorOWg7
Y3xXa0hNdyhMZ1NoCnpyZWNhRlFDRGI0ISs9MGk2Y3kxNU1MclkxPUZyaHdHO3ElX1JHd2p+KWhi
O0wofjVTTjMyX3w5SyRjPElBVkxLNwp6ckhVYiUhSFJ5dDQkX1BobS1NX1F0QT95cEM+JlFAUCFe
NDdBYj1DS0YxdD1jRjE5bU9iZishVUFjSCtqaD0kQmoKekd8N35ZcDwmT2xHXyomcHdoa3BUTWIj
ISpuXzxAJiE0PmNeckwxYV91QV5RQTdfcTg0V05ZX2k8MT49M2xvb084CnpIIUhGc3VueHN6X09m
enF6aV9xNWFUfnBheHVYYmZxbjl3TiRyQWNueEcqOCk2eT4oTEBPVFMoPnNhVUZhI15aYQp6eUB3
I2B7eiM5UDhCPEQlYzAoMk81Pjh9TVRxWkJ0JH1ATHQ5KyRfKE1Ca0IqWCVaZn50Zkd7SiEhc0NS
eW5ZV2cKenI0OzFpUWR+NDcwWihmJTFjUSp2SG1COTV5RCR6ciFyLSYpSUB8VyhTWE1NUzAqUSN0
REhPPXAlZVNgQlVxVmE5CnpDJGM4LWI4b3gxMHNCNnIqWj0lRmN5JVlUKFhyKHBgQDZJQWBOdT56
eCZRdnRNeyh0QUk2WksxZSgpdnJqT2JmYAp6R31zd19ffnAlTlpOM3w+NFBeIykhMUNUQ1N2JThF
WnptPzhaK09OKCk+OCFVPGs3Q316V01Sc2Y2ezFmUmJMdikKYnxHdkVJdU0/ZnloMkUoPns5akI/
JkJRays9V0c3fXBYSlR4CgpsaXRlcmFsIDAKSGNtVj9kMDAwMDEKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411355</attachid>
            <date>2020-10-14 12:05:20 -0700</date>
            <delta_ts>2020-10-14 12:32:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217417-20201014120520.patch</filename>
            <type>text/plain</type>
            <size>1768</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDM4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDAxZjJmY2JiZGZkZmU3MjQwMWVi
MTY3ZWQ1MTk2MjliNDBlOWM0Ni4uZTg0NTBhYmFjZDk2ZWM0YmFkYWI5ZjViZTkxMzczNDE3NjBi
MzU3OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEyIEBACisyMDIwLTEwLTE0ICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NTIGhpZ2hsaWdodHMg
b3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzQxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBl
Y3RlZC1taXNtYXRjaGVkLmh0bWw6IFJlbW92ZWQuCisKIDIwMjAtMTAtMTMgIEhlY3RvciBMb3Bl
eiAgPGhlY3Rvcl9pX2xvcGV6QGFwcGxlLmNvbT4KIAogICAgICAgICBbIG1hY09TIF0gaW5zcGVj
dG9yL3BhZ2Uvb3ZlcnJpZGVTZXR0aW5nLUlUUERlYnVnTW9kZUVuYWJsZWQuaHRtbCBpcyBhIGZs
YWt5IGZhaWx1cmUKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGln
aGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UtZXhwZWN0ZWQtbWlzbWF0Y2guaHRtbCBiL0xheW91
dFRlc3RzL2h0dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UtZXhw
ZWN0ZWQtbWlzbWF0Y2guaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4wZjRlMjFmYzNkNjc5YzE5N2IyZjUxY2U4
YmE5NmMzZWVjM2FkZGNmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQv
Y3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaC5o
dG1sCkBAIC0wLDAgKzEsNiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxib2R5PgorICAg
IDxkaXYgaWQ9InN0eWxlMSI+PGltZyBzcmM9Ii4uLy4uL2ltYWdlcy9ibGFuay1oaWdobGlnaHQu
cG5nIj48L2Rpdj4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2h0
dHAvd3B0L2Nzcy9jc3MtaGlnaGxpZ2h0LWFwaS9oaWdobGlnaHQtaW1hZ2UtZXhwZWN0ZWQtbWlz
bWF0Y2hlZC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBp
L2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaGVkLmh0bWwKZGVsZXRlZCBmaWxlIG1v
ZGUgMTAwNjQ0CmluZGV4IDBmNGUyMWZjM2Q2NzljMTk3YjJmNTFjZThiYTk2YzNlZWMzYWRkY2Yu
LjAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAKLS0tIGEvTGF5b3V0VGVz
dHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3Rl
ZC1taXNtYXRjaGVkLmh0bWwKKysrIC9kZXYvbnVsbApAQCAtMSw2ICswLDAgQEAKLTwhRE9DVFlQ
RSBodG1sPgotPGh0bWw+Ci08Ym9keT4KLSAgICA8ZGl2IGlkPSJzdHlsZTEiPjxpbWcgc3JjPSIu
Li8uLi9pbWFnZXMvYmxhbmstaGlnaGxpZ2h0LnBuZyI+PC9kaXY+Ci08L2JvZHk+Ci08L2h0bWw+
Cg==
</data>
<flag name="review"
          id="427539"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>411356</attachid>
            <date>2020-10-14 12:07:58 -0700</date>
            <delta_ts>2020-10-14 13:55:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-217417-20201014120757.patch</filename>
            <type>text/plain</type>
            <size>1857</size>
            <attacher name="Megan Gardner">megan_gardner</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY4NDM4CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9DaGFu
Z2VMb2cgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKaW5kZXggMDAxZjJmY2JiZGZkZmU3MjQwMWVi
MTY3ZWQ1MTk2MjliNDBlOWM0Ni4uNjY5ZjJjN2Q2NWRhOTFkOWYzZWM5Mjc3ZGMzODhhZDViMmU0
Njg2OCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCisrKyBiL0xheW91dFRlc3Rz
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDIwLTEwLTE0ICBNZWdhbiBHYXJkbmVyICA8
bWVnYW5fZ2FyZG5lckBhcHBsZS5jb20+CisKKyAgICAgICAgUGFpbnQgQ1NTIGhpZ2hsaWdodHMg
b3ZlciBpbWFnZXMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTIxNzQxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgICogaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBl
Y3RlZC1taXNtYXRjaGVkLmh0bWw6IFJlbW92ZWQuCisgICAgICAgICogaHR0cC93cHQvY3NzL2Nz
cy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaC5odG1sOiBB
ZGRlZC4KKwogMjAyMC0xMC0xMyAgSGVjdG9yIExvcGV6ICA8aGVjdG9yX2lfbG9wZXpAYXBwbGUu
Y29tPgogCiAgICAgICAgIFsgbWFjT1MgXSBpbnNwZWN0b3IvcGFnZS9vdmVycmlkZVNldHRpbmct
SVRQRGVidWdNb2RlRW5hYmxlZC5odG1sIGlzIGEgZmxha3kgZmFpbHVyZQpkaWZmIC0tZ2l0IGEv
TGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFn
ZS1leHBlY3RlZC1taXNtYXRjaC5odG1sIGIvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1o
aWdobGlnaHQtYXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaC5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAuLjBmNGUyMWZjM2Q2NzljMTk3YjJmNTFjZThiYTk2YzNlZWMzYWRkY2YKLS0tIC9kZXYv
bnVsbAorKysgYi9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGln
aGxpZ2h0LWltYWdlLWV4cGVjdGVkLW1pc21hdGNoLmh0bWwKQEAgLTAsMCArMSw2IEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGJvZHk+CisgICAgPGRpdiBpZD0ic3R5bGUxIj48aW1nIHNy
Yz0iLi4vLi4vaW1hZ2VzL2JsYW5rLWhpZ2hsaWdodC5wbmciPjwvZGl2PgorPC9ib2R5PgorPC9o
dG1sPgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvaHR0cC93cHQvY3NzL2Nzcy1oaWdobGlnaHQt
YXBpL2hpZ2hsaWdodC1pbWFnZS1leHBlY3RlZC1taXNtYXRjaGVkLmh0bWwgYi9MYXlvdXRUZXN0
cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hsaWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLWV4cGVjdGVk
LW1pc21hdGNoZWQuaHRtbApkZWxldGVkIGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMGY0ZTIxZmMz
ZDY3OWMxOTdiMmY1MWNlOGJhOTZjM2VlYzNhZGRjZi4uMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMAotLS0gYS9MYXlvdXRUZXN0cy9odHRwL3dwdC9jc3MvY3NzLWhpZ2hs
aWdodC1hcGkvaGlnaGxpZ2h0LWltYWdlLWV4cGVjdGVkLW1pc21hdGNoZWQuaHRtbAorKysgL2Rl
di9udWxsCkBAIC0xLDYgKzAsMCBAQAotPCFET0NUWVBFIGh0bWw+Ci08aHRtbD4KLTxib2R5Pgot
ICAgIDxkaXYgaWQ9InN0eWxlMSI+PGltZyBzcmM9Ii4uLy4uL2ltYWdlcy9ibGFuay1oaWdobGln
aHQucG5nIj48L2Rpdj4KLTwvYm9keT4KLTwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>