<?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>227229</bug_id>
          
          <creation_ts>2021-06-21 11:32:40 -0700</creation_ts>
          <short_desc>[GPU Process] RELEASE_ASSERT in RemoteResourceCacheProxy::didFinalizeRenderingUpdate() may fire if GPUP is relaunched</short_desc>
          <delta_ts>2021-06-24 16:12:32 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Canvas</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=227277</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=219672</see_also>
    
    <see_also>https://bugs.webkit.org/show_bug.cgi?id=227376</see_also>
          <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>
          <dependson>227292</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Said Abou-Hallawa">sabouhallawa</reporter>
          <assigned_to name="Said Abou-Hallawa">sabouhallawa</assigned_to>
          <cc>aakash_jain</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>ryanhaddad</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>tsavell</cc>
    
    <cc>webkit-bot-watchers-bugzilla</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1771370</commentid>
    <comment_count>0</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-21 11:32:40 -0700</bug_when>
    <thetext>The member RemoteResourceCacheProxy::m_numberOfFontsUsedInCurrentRenderingUpdate is used to keep track the number of fonts which are used in the current RenderingUpdate. We keep a HashMap for all fonts in m_fontIdentifierToLastRenderingUpdateVersionMap. This HashMap contains the used fonts, whose count is represented by m_numberOfFontsUsedInCurrentRenderingUpdate, and other unused fonts. The goal of RemoteResourceCacheProxy::didFinalizeRenderingUpdate() is to remove some of the unused fonts if they are really old and if they take more than 25% of m_fontIdentifierToLastRenderingUpdateVersionMap.

There are two bugs in the font caching scenario:
1. When relaunching then GPUP process, RemoteResourceCacheProxy::remoteResourceCacheWasDestroyed() gets called. In this function we clear m_fontIdentifierToLastRenderingUpdateVersionMap but we do not set m_numberOfFontsUsedInCurrentRenderingUpdate to zero. This will make us hit the RELEASE_ASSERT RemoteResourceCacheProxy::didFinalizeRenderingUpdate() once we keep incrementing m_numberOfFontsUsedInCurrentRenderingUpdate.
2. When removing a font from GPUP process by calling RemoteRenderingBackendProxy::releaseRemoteResource(), we do not remove the corresponding entry from m_fontIdentifierToLastRenderingUpdateVersionMap. RemoteResourceCacheProxy::cacheFont() makes the assumption: if the font is found in m_fontIdentifierToLastRenderingUpdateVersionMap, it is also cached in GPUP.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771371</commentid>
    <comment_count>1</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-21 11:33:27 -0700</bug_when>
    <thetext>&lt;rdar://79147947&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771414</commentid>
    <comment_count>2</comment_count>
      <attachid>431899</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-21 13:09:11 -0700</bug_when>
    <thetext>Created attachment 431899
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771507</commentid>
    <comment_count>3</comment_count>
      <attachid>431899</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-21 16:09:52 -0700</bug_when>
    <thetext>Comment on attachment 431899
Patch

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

&gt; Source/WebKit/ChangeLog:18
&gt; +           corresponding entries form m_fontIdentifierToLastRenderingUpdateVersionMap.

typo: &quot;form&quot;

&gt; Source/WebKit/ChangeLog:21
&gt; +        3) We need to prepareForNextRenderingUpdate() even if no font will be
&gt; +           removed from m_fontIdentifierToLastRenderingUpdateVersionMap.

prepareForNextRenderingUpdate() is a new function that&apos;s added by this patch, so I don&apos;t quite understand why this list in the ChangeLog includes a detail of its calling pattern.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:137
&gt; +    m_currentRenderingUpdateVersion = 0;

RemoteResourceCacheProxy::cacheFont() has:

    auto result = m_fontIdentifierToLastRenderingUpdateVersionMap.ensure(font.renderingResourceIdentifier(), [&amp;] {
        return 0;
    });
    auto&amp; lastVersion = result.iterator-&gt;value;
    if (lastVersion != m_currentRenderingUpdateVersion) {
        lastVersion = m_currentRenderingUpdateVersion;
        ++m_numberOfFontsUsedInCurrentRenderingUpdate;
    }

If we set m_currentRenderingUpdateVersion to 0 here, then this &quot;if&quot; block will not execute for new fonts that enter cacheFont() after clearFontMap() runs, so we would end up telling the GPUP to cache the new font without incrementing m_numberOfFontsUsedInCurrentRenderingUpdate.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:149
&gt; +    if (!unusedFontCount || unusedFontCount &lt; minimumFractionOfUnusedFontCountToTriggerRemoval * totalFontCount) {

It looks like you changed the &amp;&amp; to ||. Was that intentional?

If || is intentional, I think we can just simplify the entire check to &quot;if (unusedFontCount &lt;= minimumFractionOfUnusedFontCountToTriggerRemoval * totalFontCount)&quot;

If not, and it&apos;s supposed to be &amp;&amp; instead, then I think the check can be just &quot;if (!unusedFontCount)&quot;

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:150
&gt; +        prepareForNextRenderingUpdate();

I don&apos;t know if the ChangeLog mentions this, but this seems pretty important. Previously, we weren&apos;t incrementing m_currentRenderingUpdateVersion in this branch, which means we were treating adjacent rendering updates as not-distinct if we felt that we didn&apos;t need to prune m_fontIdentifierToLastRenderingUpdateVersionMap. Now, with this patch, even if we feel that we don&apos;t need to prune m_fontIdentifierToLastRenderingUpdateVersionMap, we&apos;re treating adjacent rendering updates as distinct. I think this is important and valuable, and probably worth mentioning in the ChangeLog.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:154
&gt; +    Vector&lt;RenderingResourceIdentifier&gt; toBeRemoved;

What&apos;s the purpose of the vector? Why not put the call to m_fontIdentifierToLastRenderingUpdateVersionMap.remove() inside the for (auto&amp; item : m_fontIdentifierToLastRenderingUpdateVersionMap) loop? Usually we use these vectors to guarantee lifetimes of stuff using RefPtrs, but RenderingResourceIdentifier doesn&apos;t guarantee any lifetimes.

&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:164
&gt; +    for (auto&amp; renderingResourceIdentifier : toBeRemoved)

Identifiers are just single scalar values, so I think &quot;auto&quot; is better than &quot;auto&amp;&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771579</commentid>
    <comment_count>4</comment_count>
      <attachid>431899</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-21 20:03:44 -0700</bug_when>
    <thetext>Comment on attachment 431899
Patch

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

&gt;&gt; Source/WebKit/ChangeLog:18
&gt;&gt; +           corresponding entries form m_fontIdentifierToLastRenderingUpdateVersionMap.
&gt; 
&gt; typo: &quot;form&quot;

Fixed.

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:137
&gt;&gt; +    m_currentRenderingUpdateVersion = 0;
&gt; 
&gt; RemoteResourceCacheProxy::cacheFont() has:
&gt; 
&gt;     auto result = m_fontIdentifierToLastRenderingUpdateVersionMap.ensure(font.renderingResourceIdentifier(), [&amp;] {
&gt;         return 0;
&gt;     });
&gt;     auto&amp; lastVersion = result.iterator-&gt;value;
&gt;     if (lastVersion != m_currentRenderingUpdateVersion) {
&gt;         lastVersion = m_currentRenderingUpdateVersion;
&gt;         ++m_numberOfFontsUsedInCurrentRenderingUpdate;
&gt;     }
&gt; 
&gt; If we set m_currentRenderingUpdateVersion to 0 here, then this &quot;if&quot; block will not execute for new fonts that enter cacheFont() after clearFontMap() runs, so we would end up telling the GPUP to cache the new font without incrementing m_numberOfFontsUsedInCurrentRenderingUpdate.

You are right. This can be fixed by changing the ensure functor to be:

    auto result = m_fontIdentifierToLastRenderingUpdateVersionMap.ensure(font.renderingResourceIdentifier(), [&amp;] {
        m_remoteRenderingBackendProxy.cacheFont(makeRef(font));
        ++m_numberOfFontsUsedInCurrentRenderingUpdate;
        return m_currentRenderingUpdateVersion;
    });

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:149
&gt;&gt; +    if (!unusedFontCount || unusedFontCount &lt; minimumFractionOfUnusedFontCountToTriggerRemoval * totalFontCount) {
&gt; 
&gt; It looks like you changed the &amp;&amp; to ||. Was that intentional?
&gt; 
&gt; If || is intentional, I think we can just simplify the entire check to &quot;if (unusedFontCount &lt;= minimumFractionOfUnusedFontCountToTriggerRemoval * totalFontCount)&quot;
&gt; 
&gt; If not, and it&apos;s supposed to be &amp;&amp; instead, then I think the check can be just &quot;if (!unusedFontCount)&quot;

It was intentional because, as you said, the above if-statement is equivalent to &quot;if (!unusedFontCount)&quot;. I added &quot;!unusedFontCount&quot; to avoid the multiplication in the clause &quot;minimumFractionOfUnusedFontCountToTriggerRemoval * totalFontCount&quot;. But I will change it as you suggested since you think it will be clearer.

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:150
&gt;&gt; +        prepareForNextRenderingUpdate();
&gt; 
&gt; I don&apos;t know if the ChangeLog mentions this, but this seems pretty important. Previously, we weren&apos;t incrementing m_currentRenderingUpdateVersion in this branch, which means we were treating adjacent rendering updates as not-distinct if we felt that we didn&apos;t need to prune m_fontIdentifierToLastRenderingUpdateVersionMap. Now, with this patch, even if we feel that we don&apos;t need to prune m_fontIdentifierToLastRenderingUpdateVersionMap, we&apos;re treating adjacent rendering updates as distinct. I think this is important and valuable, and probably worth mentioning in the ChangeLog.

A comment will be added to the ChangeLog.

&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:154
&gt;&gt; +    Vector&lt;RenderingResourceIdentifier&gt; toBeRemoved;
&gt; 
&gt; What&apos;s the purpose of the vector? Why not put the call to m_fontIdentifierToLastRenderingUpdateVersionMap.remove() inside the for (auto&amp; item : m_fontIdentifierToLastRenderingUpdateVersionMap) loop? Usually we use these vectors to guarantee lifetimes of stuff using RefPtrs, but RenderingResourceIdentifier doesn&apos;t guarantee any lifetimes.

I was using it because we loop through the items of m_fontIdentifierToLastRenderingUpdateVersionMap using the modern C++ for-loop which, I think, is not suitable for deleting items while looping. I will replace it by calling HashMap::removeIf() instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771580</commentid>
    <comment_count>5</comment_count>
      <attachid>431941</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-21 20:05:43 -0700</bug_when>
    <thetext>Created attachment 431941
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771581</commentid>
    <comment_count>6</comment_count>
      <attachid>431899</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-21 20:14:12 -0700</bug_when>
    <thetext>Comment on attachment 431899
Patch

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

&gt;&gt;&gt; Source/WebKit/WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:154
&gt;&gt;&gt; +    Vector&lt;RenderingResourceIdentifier&gt; toBeRemoved;
&gt;&gt; 
&gt;&gt; What&apos;s the purpose of the vector? Why not put the call to m_fontIdentifierToLastRenderingUpdateVersionMap.remove() inside the for (auto&amp; item : m_fontIdentifierToLastRenderingUpdateVersionMap) loop? Usually we use these vectors to guarantee lifetimes of stuff using RefPtrs, but RenderingResourceIdentifier doesn&apos;t guarantee any lifetimes.
&gt; 
&gt; I was using it because we loop through the items of m_fontIdentifierToLastRenderingUpdateVersionMap using the modern C++ for-loop which, I think, is not suitable for deleting items while looping. I will replace it by calling HashMap::removeIf() instead.

Cooooool!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771606</commentid>
    <comment_count>7</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-21 23:08:36 -0700</bug_when>
    <thetext>Committed r279104 (239021@main): &lt;https://commits.webkit.org/239021@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 431941.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771688</commentid>
    <comment_count>8</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-06-22 09:31:10 -0700</bug_when>
    <thetext>(In reply to EWS from comment #7)
&gt; Committed r279104 (239021@main): &lt;https://commits.webkit.org/239021@main&gt;
This seems to have made this test very flaky on iOS and mac wk2: fast/canvas/canvas-overloads-strokeText.html

History: https://results.webkit.org/?suite=layout-tests&amp;test=fast%2Fcanvas%2Fcanvas-overloads-strokeText.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771739</commentid>
    <comment_count>9</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-22 11:45:29 -0700</bug_when>
    <thetext>It looks like the test is failing because the GPUProcess terminates the WebProcess. I replaced the macro TERMINATE_WEB_PROCESS_WITH_MESSAGE() with Assert(false) and I ran the following command:

run-webkit-tests --debug --no-retry LayoutTests/fast/canvas 

I got the following result:

fast/canvas/canvas-overloads-strokeText.html [ Crash ]

And I got the following call stack when the assertion fired in the GPUProcess:

ASSERTION FAILED: false
/Volumes/Data/WebKit/OpenSource/Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp(304) : void WebKit::RemoteRenderingBackend::wakeUpAndApplyDisplayList(const WebKit::GPUProcessWakeupMessageArguments &amp;)
1   0x1438c45b9 WTFCrash
2   0x117a3bf3b WTFCrashWithInfo(int, char const*, char const*, int)
3   0x1185aa181 WebKit::RemoteRenderingBackend::wakeUpAndApplyDisplayList(WebKit::GPUProcessWakeupMessageArguments const&amp;)
4   0x1185add11 WebKit::RemoteRenderingBackend::cacheFont(WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt;&amp;&amp;)
5   0x11856aee0 void IPC::callMemberFunctionImpl&lt;WebKit::RemoteRenderingBackend, void (WebKit::RemoteRenderingBackend::*)(WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt;&amp;&amp;), std::__1::tuple&lt;WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; &gt;, 0ul&gt;(WebKit::RemoteRenderingBackend*, void (WebKit::RemoteRenderingBackend::*)(WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt;&amp;&amp;), std::__1::tuple&lt;WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; &gt;&amp;&amp;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt;)
6   0x11856a390 void IPC::callMemberFunction&lt;WebKit::RemoteRenderingBackend, void (WebKit::RemoteRenderingBackend::*)(WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt;&amp;&amp;), std::__1::tuple&lt;WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; &gt;, std::__1::integer_sequence&lt;unsigned long, 0ul&gt; &gt;(std::__1::tuple&lt;WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt; &gt;&amp;&amp;, WebKit::RemoteRenderingBackend*, void (WebKit::RemoteRenderingBackend::*)(WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt;&amp;&amp;))
7   0x11855debf void IPC::handleMessage&lt;Messages::RemoteRenderingBackend::CacheFont, WebKit::RemoteRenderingBackend, void (WebKit::RemoteRenderingBackend::*)(WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt;&amp;&amp;)&gt;(IPC::Decoder&amp;, WebKit::RemoteRenderingBackend*, void (WebKit::RemoteRenderingBackend::*)(WTF::Ref&lt;WebCore::Font, WTF::RawPtrTraits&lt;WebCore::Font&gt; &gt;&amp;&amp;))
8   0x11855d8de WebKit::RemoteRenderingBackend::didReceiveMessage(IPC::Connection&amp;, IPC::Decoder&amp;)
9   0x117abdce2 IPC::Connection::dispatchMessageReceiverMessage(IPC::MessageReceiver&amp;, std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;&amp;&amp;)
10  0x117ac721a IPC::WorkQueueMessageReceiverQueue::enqueueMessage(IPC::Connection&amp;, std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;&amp;&amp;)::&apos;lambda&apos;()::operator()()
11  0x117ac6f7e WTF::Detail::CallableWrapper&lt;IPC::WorkQueueMessageReceiverQueue::enqueueMessage(IPC::Connection&amp;, std::__1::unique_ptr&lt;IPC::Decoder, std::__1::default_delete&lt;IPC::Decoder&gt; &gt;&amp;&amp;)::&apos;lambda&apos;(), void&gt;::call()
12  0x1438ee6f2 WTF::Function&lt;void ()&gt;::operator()() const
13  0x143a0101e WTF::WorkQueue::dispatch(WTF::Function&lt;void ()&gt;&amp;&amp;)::$_0::operator()() const
14  0x143a01222 WTF::BlockPtr&lt;void ()&gt; WTF::BlockPtr&lt;void ()&gt;::fromCallable&lt;WTF::WorkQueue::dispatch(WTF::Function&lt;void ()&gt;&amp;&amp;)::$_0&gt;(WTF::WorkQueue::dispatch(WTF::Function&lt;void ()&gt;&amp;&amp;)::$_0)::&apos;lambda&apos;(void*)::operator()(void*) const
15  0x143a011f5 WTF::BlockPtr&lt;void ()&gt; WTF::BlockPtr&lt;void ()&gt;::fromCallable&lt;WTF::WorkQueue::dispatch(WTF::Function&lt;void ()&gt;&amp;&amp;)::$_0&gt;(WTF::WorkQueue::dispatch(WTF::Function&lt;void ()&gt;&amp;&amp;)::$_0)::&apos;lambda&apos;(void*)::__invoke(void*)
16  0x7fff204c0603 _dispatch_call_block_and_release
17  0x7fff204c17e6 _dispatch_client_callout
18  0x7fff204c75ca _dispatch_lane_serial_drain
19  0x7fff204c808d _dispatch_lane_invoke
20  0x7fff204d1bed _dispatch_workloop_worker_thread
21  0x7fff206684c0 _pthread_wqthread
22  0x7fff20667493 start_wqthread
LEAK: 1 WebPageProxy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771771</commentid>
    <comment_count>10</comment_count>
    <who name="Truitt Savell">tsavell</who>
    <bug_when>2021-06-22 13:26:00 -0700</bug_when>
    <thetext>I am seeing 4 new test failures from the changes in https://trac.webkit.org/changeset/279104/webkit

inspector/canvas/recording-webgl-snapshots.html
svg/as-image/svg-image-with-data-uri-from-canvas.html
fast/canvas/canvas-path-addPath.html
inspector/canvas/requestClientNodes-css.html

results: https://build.webkit.org/results/Apple-BigSur-Release-WK2-Tests/r279119%20(3463)/results.html

History:
https://results.webkit.org/?suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;suite=layout-tests&amp;test=inspector%2Fcanvas%2Frecording-webgl-snapshots.html&amp;test=svg%2Fas-image%2Fsvg-image-with-data-uri-from-canvas.html&amp;test=fast%2Fcanvas%2Fcanvas-path-addPath.html&amp;test=inspector%2Fcanvas%2FrequestClientNodes-css.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771854</commentid>
    <comment_count>11</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-22 21:47:14 -0700</bug_when>
    <thetext>I filed bug 227277 to track in the new flatness in the canvas layout tests.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771922</commentid>
    <comment_count>12</comment_count>
    <who name="Aakash Jain">aakash_jain</who>
    <bug_when>2021-06-23 08:17:50 -0700</bug_when>
    <thetext>These flaky tests are causing false positive on EWS and also slowing down EWS.

e.g.:
False positives on EWS:
https://ews-build.webkit.org/#/builders/51/builds/16145
https://ews-build.webkit.org/#/builders/51/builds/16121
https://ews-build.webkit.org/#/builders/51/builds/16117
https://ews-build.webkit.org/#/builders/51/builds/16111
https://ews-build.webkit.org/#/builders/51/builds/16101
https://ews-build.webkit.org/#/builders/51/builds/16096

Flakiness:
https://ews-build.webkit.org/#/builders/51/builds/16143
https://ews-build.webkit.org/#/builders/51/builds/16132
https://ews-build.webkit.org/#/builders/51/builds/16131
https://ews-build.webkit.org/#/builders/51/builds/16119
https://ews-build.webkit.org/#/builders/51/builds/16116
https://ews-build.webkit.org/#/builders/51/builds/16112
https://ews-build.webkit.org/#/builders/51/builds/16109
https://ews-build.webkit.org/#/builders/51/builds/16103

This wastes so much of engineering time because many engineers would have to look into false positives (because of flaky failures). I am going to revert it for now. You can re-land this along-with patch from Bug 227277.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771925</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2021-06-23 08:18:53 -0700</bug_when>
    <thetext>Re-opened since this is blocked by bug 227292</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771992</commentid>
    <comment_count>14</comment_count>
      <attachid>432069</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-23 10:35:40 -0700</bug_when>
    <thetext>Created attachment 432069
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1771995</commentid>
    <comment_count>15</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-23 10:36:21 -0700</bug_when>
    <thetext>*** Bug 227277 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772095</commentid>
    <comment_count>16</comment_count>
      <attachid>432069</attachid>
    <who name="Simon Fraser (smfr)">simon.fraser</who>
    <bug_when>2021-06-23 16:02:50 -0700</bug_when>
    <thetext>Comment on attachment 432069
Patch

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

&gt; Source/WebKit/ChangeLog:5
&gt; +        https://bugs.webkit.org/show_bug.cgi?id=227229
&gt; +

Radar number here please.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772111</commentid>
    <comment_count>17</comment_count>
      <attachid>432106</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-23 16:38:26 -0700</bug_when>
    <thetext>Created attachment 432106
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772429</commentid>
    <comment_count>18</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-24 13:13:08 -0700</bug_when>
    <thetext>I talked to Myles and we agreed on fixing the RELEASE_ASSERT without removing didFinalizeRenderingUpdate(). Fixing or removing this function will addressed in a separate bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772435</commentid>
    <comment_count>19</comment_count>
      <attachid>432207</attachid>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-24 13:37:58 -0700</bug_when>
    <thetext>Created attachment 432207
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772452</commentid>
    <comment_count>20</comment_count>
    <who name="Said Abou-Hallawa">sabouhallawa</who>
    <bug_when>2021-06-24 14:04:31 -0700</bug_when>
    <thetext>I filed bug 227376 to track fixing/removing RemoteResourceCacheProxy::didFinalizeRenderingUpdate().</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772474</commentid>
    <comment_count>21</comment_count>
      <attachid>432207</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-06-24 15:48:00 -0700</bug_when>
    <thetext>Comment on attachment 432207
Patch

Kind of a shame we don&apos;t have an API test for this, that can actually kill the web process to test this codepath...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1772481</commentid>
    <comment_count>22</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2021-06-24 16:12:30 -0700</bug_when>
    <thetext>Committed r279252 (239136@main): &lt;https://commits.webkit.org/239136@main&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 432207.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431899</attachid>
            <date>2021-06-21 13:09:11 -0700</date>
            <delta_ts>2021-06-23 10:35:35 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227229-20210621130910.patch</filename>
            <type>text/plain</type>
            <size>6415</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk4YzMwNTc4MTc0N2I3YTEw
ZjZlOGI1ZGQwMTM4MWE3ZDdjYTE2MWMuLjRjNTQ1YjAyODA0YTE1YWFlNzQyYzJmNjYzMTBmNWYy
NWU5YzQ1NDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzkgQEAKKzIwMjEtMDYtMjEgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSRUxF
QVNFX0FTU0VSVCBpbiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKCkgbWF5IGZpcmUgaWYgR1BVUCBpcyByZWxhdW5jaGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyMjkKKyAgICAgICAgPHJkYXI6
Ly83OTE0Nzk0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAxKSBSZW1vdmUgbWF4aW11bVVudXNlZEZvbnRDb3VudFRvU2tpcFJlbW92YWwgYmVjYXVz
ZSAKKyAgICAgICAgICAgJ3VudXNlZEZvbnRDb3VudCA8IG1heGltdW1VbnVzZWRGb250Q291bnRU
b1NraXBSZW1vdmFsJyBjYW4ndCBiZSB0cnVlCisgICAgICAgICAgIHNpbmNlIGJvdGggdW51c2Vk
Rm9udENvdW50IGFuZCBtYXhpbXVtVW51c2VkRm9udENvdW50VG9Ta2lwUmVtb3ZhbCBhcmUKKyAg
ICAgICAgICAgdW5zaWduZWQgYW5kIG1heGltdW1VbnVzZWRGb250Q291bnRUb1NraXBSZW1vdmFs
IGlzIGVxdWFsIHRvIHplcm8uCisgICAgICAgICAgIFNvIHRoZXkgY2FuIG9ubHkgYmUgZXF1YWwg
YW5kIHdlIGNhbiByZXBsYWNlIHRoaXMgYnkgJyF1bnVzZWRGb250Q291bnQnLgorCisgICAgICAg
IDIpIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVGb250KCkgYXNzdW1lcyBpZiB0aGUg
Zm9udCBpcyBjYWNoZWQgaW4KKyAgICAgICAgICAgbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRl
cmluZ1VwZGF0ZVZlcnNpb25NYXAgdGhlbiBpdCBpcyBhbHNvIGNhY2hlZAorICAgICAgICAgICBp
biBHUFVQLiBXZSBoYXZlIHRvIGtlZXAgdGhpcyBhc3N1bXB0aW9uIGNvcnJlY3QgYnkgcmVtb3Zp
bmcgdGhlIAorICAgICAgICAgICBjb3JyZXNwb25kaW5nIGVudHJpZXMgZm9ybSBtX2ZvbnRJZGVu
dGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC4KKworICAgICAgICAzKSBXZSBu
ZWVkIHRvIHByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRlKCkgZXZlbiBpZiBubyBmb250IHdp
bGwgYmUKKyAgICAgICAgICAgcmVtb3ZlZCBmcm9tIG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5k
ZXJpbmdVcGRhdGVWZXJzaW9uTWFwLgorCisgICAgICAgIDMpIElmIHRoZSBHUFVQIGlzIHJlbGF1
bmNoZWQsIHdlIG5lZWQgdG8gc2V0IAorICAgICAgICAgICBtX251bWJlck9mRm9udHNVc2VkSW5D
dXJyZW50UmVuZGVyaW5nVXBkYXRlIHRvIHplcm8gYWZ0ZXIgd2UgY2xlYXIKKyAgICAgICAgICAg
bV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAuIE90aGVyd2lz
ZSB0aGUKKyAgICAgICAgICAgUkVMRUFTRV9BU1NFUlQgaW4gUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpCisgICAgICAgICAgIHdpbGwgZmlyZS4K
KworICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQ
cm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cHJl
cGFyZUZvck5leHRSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHk6OmNsZWFyRm9udE1hcCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJl
c291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOgorICAgICAgICAo
V2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbW90ZVJlc291cmNlQ2FjaGVXYXNE
ZXN0cm95ZWQpOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJl
bGVhc2VNZW1vcnkpOgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJl
c291cmNlQ2FjaGVQcm94eS5oOgorCiAyMDIxLTA2LTE4ICBaYW4gRG9iZXJzZWsgIDx6ZG9iZXJz
ZWtAaWdhbGlhLmNvbT4KIAogICAgICAgICBbV1BFXSBSZXdvcmsgdG91Y2gtYmFzZWQgZ2VzdHVy
ZSBjb250cm9sbGVyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKaW5kZXggODlm
Y2E5YmNjZGZmZmVjZmMyMDRlYjUzMmY5ZjIyOGM0MzEzYWFjNC4uMmJmYTc5Mzk3YjRiNzE0MjI1
ZjhjNTlhNzM4N2E0ODFmNTgwYjk5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCisrKyBiL1NvdXJj
ZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
LmNwcApAQCAtMTI0LDI1ICsxMjQsNDcgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OnJlbGVhc2VOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmUKICAgICBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHk6OnByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICArK21fY3VycmVudFJl
bmRlcmluZ1VwZGF0ZVZlcnNpb247CisgICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJl
bmRlcmluZ1VwZGF0ZSA9IDA7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5Ojpj
bGVhckZvbnRNYXAoKQoreworICAgIG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRh
dGVWZXJzaW9uTWFwLmNsZWFyKCk7CisgICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJl
bmRlcmluZ1VwZGF0ZSA9IDA7CisgICAgbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiA9
IDA7Cit9CisKIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRl
cmluZ1VwZGF0ZSgpCiB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtaW5pbXVtUmVu
ZGVyaW5nVXBkYXRlQ291bnRUb0tlZXBGb250QWxpdmUgPSA0OwogICAgIHN0YXRpYyBjb25zdGV4
cHIgZG91YmxlIG1pbmltdW1GcmFjdGlvbk9mVW51c2VkRm9udENvdW50VG9UcmlnZ2VyUmVtb3Zh
bCA9IDAuMjU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhpbXVtVW51c2VkRm9u
dENvdW50VG9Ta2lwUmVtb3ZhbCA9IDA7CiAKICAgICB1bnNpZ25lZCB0b3RhbEZvbnRDb3VudCA9
IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLnNpemUoKTsK
ICAgICBSRUxFQVNFX0FTU0VSVChtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5n
VXBkYXRlIDw9IHRvdGFsRm9udENvdW50KTsKKwogICAgIHVuc2lnbmVkIHVudXNlZEZvbnRDb3Vu
dCA9IHRvdGFsRm9udENvdW50IC0gbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmlu
Z1VwZGF0ZTsKLSAgICBpZiAodW51c2VkRm9udENvdW50IDwgbWluaW11bUZyYWN0aW9uT2ZVbnVz
ZWRGb250Q291bnRUb1RyaWdnZXJSZW1vdmFsICogdG90YWxGb250Q291bnQgJiYgdW51c2VkRm9u
dENvdW50IDw9IG1heGltdW1VbnVzZWRGb250Q291bnRUb1NraXBSZW1vdmFsKQorICAgIGlmICgh
dW51c2VkRm9udENvdW50IHx8IHVudXNlZEZvbnRDb3VudCA8IG1pbmltdW1GcmFjdGlvbk9mVW51
c2VkRm9udENvdW50VG9UcmlnZ2VyUmVtb3ZhbCAqIHRvdGFsRm9udENvdW50KSB7CisgICAgICAg
IHByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRlKCk7CiAgICAgICAgIHJldHVybjsKKyAgICB9
CisgICAgCisgICAgVmVjdG9yPFJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj4gdG9CZVJlbW92
ZWQ7CiAKICAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVy
aW5nVXBkYXRlVmVyc2lvbk1hcCkgewotICAgICAgICBpZiAobV9jdXJyZW50UmVuZGVyaW5nVXBk
YXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0gbWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9L
ZWVwRm9udEFsaXZlKQotICAgICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHku
cmVsZWFzZVJlbW90ZVJlc291cmNlKGl0ZW0ua2V5KTsKKyAgICAgICAgaWYgKG1fY3VycmVudFJl
bmRlcmluZ1VwZGF0ZVZlcnNpb24gLSBpdGVtLnZhbHVlIDwgbWluaW11bVJlbmRlcmluZ1VwZGF0
ZUNvdW50VG9LZWVwRm9udEFsaXZlKQorICAgICAgICAgICAgY29udGludWU7CisKKyAgICAgICAg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKGl0ZW0u
a2V5KTsKKyAgICAgICAgdG9CZVJlbW92ZWQuYXBwZW5kKGl0ZW0ua2V5KTsKICAgICB9CiAKLSAg
ICArK21fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb247Ci0gICAgbV9udW1iZXJPZkZvbnRz
VXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7CisgICAgZm9yIChhdXRvJiByZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIgOiB0b0JlUmVtb3ZlZCkKKyAgICAgICAgbV9mb250SWRlbnRp
ZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAucmVtb3ZlKHJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcik7CisKKyAgICBwcmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSgpOwog
fQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVtb3RlUmVzb3VyY2VDYWNoZVdh
c0Rlc3Ryb3llZCgpCkBAIC0xNTQsMTQgKzE3NiwxMyBAQCB2b2lkIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eTo6cmVtb3RlUmVzb3VyY2VDYWNoZVdhc0Rlc3Ryb3llZCgpCiAgICAgICAgIGltYWdl
QnVmZmVyLT5jbGVhckJhY2tlbmQoKTsKICAgICB9CiAgICAgbV9uYXRpdmVJbWFnZXMuY2xlYXIo
KTsKLSAgICBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC5j
bGVhcigpOworICAgIGNsZWFyRm9udE1hcCgpOwogfQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eTo6cmVsZWFzZU1lbW9yeSgpCiB7Ci0gICAgbV9mb250SWRlbnRpZmllclRvTGFzdFJl
bmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAuY2xlYXIoKTsKLSAgICBtX251bWJlck9mRm9udHNVc2Vk
SW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlID0gMDsKICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tl
bmRQcm94eS5kZWxldGVBbGxGb250cygpOworICAgIGNsZWFyRm9udE1hcCgpOwogfQogCiB9IC8v
IG5hbWVzcGFjZSBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmggYi9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCmluZGV4IGY2
YjVmYjc4MTgxNzZlYjY5MTVjNTc2OWJkOTNhY2Y3OGIyNGJlOWYuLmQ2MDRhZmFhYWEwYWYwNTVh
OWVkMTJmZWMyMGYxZWJjMzg3MjY0MWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJv
Y2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
aApAQCAtNjIsNiArNjIsOCBAQCBwcml2YXRlOgogICAgIHVzaW5nIE5hdGl2ZUltYWdlSGFzaE1h
cCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWFrUHRy
PFdlYkNvcmU6Ok5hdGl2ZUltYWdlPj47CiAgICAgCiAgICAgdm9pZCByZWxlYXNlTmF0aXZlSW1h
Z2UoV2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKSBvdmVycmlkZTsKKyAgICB2
b2lkIHByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRlKCk7CisgICAgdm9pZCBjbGVhckZvbnRN
YXAoKTsKIAogICAgIEltYWdlQnVmZmVySGFzaE1hcCBtX2ltYWdlQnVmZmVyczsKICAgICBOYXRp
dmVJbWFnZUhhc2hNYXAgbV9uYXRpdmVJbWFnZXM7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>431941</attachid>
            <date>2021-06-21 20:05:43 -0700</date>
            <delta_ts>2021-06-23 10:35:37 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227229-20210621200542.patch</filename>
            <type>text/plain</type>
            <size>7235</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MDQyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDk4YzMwNTc4MTc0N2I3YTEw
ZjZlOGI1ZGQwMTM4MWE3ZDdjYTE2MWMuLjQ0NDhiMjdkMGZhNDkyYjNhNTk1MzQ0NTk2MDEzNTU2
OTI1YjQ0M2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDAgQEAKKzIwMjEtMDYtMjEgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSRUxF
QVNFX0FTU0VSVCBpbiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKCkgbWF5IGZpcmUgaWYgR1BVUCBpcyByZWxhdW5jaGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyMjkKKyAgICAgICAgPHJkYXI6
Ly83OTE0Nzk0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBNeWxlcyBDLiBNYXhmaWVsZC4KKwor
ICAgICAgICAxKSBSZW1vdmUgbWF4aW11bVVudXNlZEZvbnRDb3VudFRvU2tpcFJlbW92YWwgYmVj
YXVzZSAKKyAgICAgICAgICAgJ3VudXNlZEZvbnRDb3VudCA8IG1heGltdW1VbnVzZWRGb250Q291
bnRUb1NraXBSZW1vdmFsJyBjYW4ndCBiZSB0cnVlCisgICAgICAgICAgIHNpbmNlIGJvdGggdW51
c2VkRm9udENvdW50IGFuZCBtYXhpbXVtVW51c2VkRm9udENvdW50VG9Ta2lwUmVtb3ZhbCBhcmUK
KyAgICAgICAgICAgdW5zaWduZWQgYW5kIG1heGltdW1VbnVzZWRGb250Q291bnRUb1NraXBSZW1v
dmFsIGlzIGVxdWFsIHRvIHplcm8uCisgICAgICAgICAgIFNvIHRoZXkgY2FuIG9ubHkgYmUgZXF1
YWwgYW5kIHdlIGNhbiByZXBsYWNlIHRoaXMgYnkgJyF1bnVzZWRGb250Q291bnQnLgorCisgICAg
ICAgIDIpIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVGb250KCkgYXNzdW1lcyBpZiB0
aGUgZm9udCBpcyBjYWNoZWQgaW4KKyAgICAgICAgICAgbV9mb250SWRlbnRpZmllclRvTGFzdFJl
bmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAgdGhlbiBpdCBpcyBhbHNvIGNhY2hlZAorICAgICAgICAg
ICBpbiBHUFVQLiBXZSBoYXZlIHRvIGtlZXAgdGhpcyBhc3N1bXB0aW9uIGNvcnJlY3QgYnkgcmVt
b3ZpbmcgdGhlIAorICAgICAgICAgICBjb3JyZXNwb25kaW5nIGVudHJpZXMgZnJvbSBtX2ZvbnRJ
ZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC4KKworICAgICAgICAzKSBS
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkgbmVl
ZHMgdG8gcmVzZXQKKyAgICAgICAgICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRl
cmluZ1VwZGF0ZSBhbmQgdG8gaW5jcmVtZW50IAorICAgICAgICAgICBtX2N1cnJlbnRSZW5kZXJp
bmdVcGRhdGVWZXJzaW9uIGluIGFsbCBpdHMgY29kZSBicmFuY2hlcy4KKworICAgICAgICA0KSBJ
ZiB0aGUgR1BVUCBpcyByZWxhdW5jaGVkLCB3ZSBuZWVkIHRvIHNldCAKKyAgICAgICAgICAgbV9u
dW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSB0byB6ZXJvIGFmdGVyIHdl
IGNsZWFyCisgICAgICAgICAgIG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVW
ZXJzaW9uTWFwLiBPdGhlcndpc2UgdGhlCisgICAgICAgICAgIFJFTEVBU0VfQVNTRVJUIGluIFJl
bW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKQorICAg
ICAgICAgICB3aWxsIGZpcmUuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHk6OnByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRlKToKKyAgICAgICAg
KFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjbGVhckZvbnRNYXApOgorICAgICAg
ICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5n
VXBkYXRlKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZW1v
dGVSZXNvdXJjZUNhY2hlV2FzRGVzdHJveWVkKToKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlTWVtb3J5KToKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQ
VS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaDoKKwogMjAyMS0wNi0xOCAgWmFu
IERvYmVyc2VrICA8emRvYmVyc2VrQGlnYWxpYS5jb20+CiAKICAgICAgICAgW1dQRV0gUmV3b3Jr
IHRvdWNoLWJhc2VkIGdlc3R1cmUgY29udHJvbGxlcgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktp
dC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwIGIv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHkuY3BwCmluZGV4IDg5ZmNhOWJjY2RmZmZlY2ZjMjA0ZWI1MzJmOWYyMjhjNDMxM2FhYzQu
LjM2YzAyY2M4N2E0Yjk1NGRiODUxNTFmOWZlOGUxMDIxODBmZGE5YzcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKQEAgLTEwNCwxNSArMTA0LDE2IEBAIHZvaWQgUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZU5hdGl2ZUltYWdlKE5hdGl2ZUltYWdlJiBpbWFnZSkK
IHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpjYWNoZUZvbnQoRm9udCYgZm9udCkKIHsK
ICAgICBhdXRvIHJlc3VsdCA9IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVW
ZXJzaW9uTWFwLmVuc3VyZShmb250LnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpLCBbJl0g
ewotICAgICAgICByZXR1cm4gMDsKKyAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJv
eHkuY2FjaGVGb250KG1ha2VSZWYoZm9udCkpOworICAgICAgICArK21fbnVtYmVyT2ZGb250c1Vz
ZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGU7CisgICAgICAgIHJldHVybiBtX2N1cnJlbnRSZW5k
ZXJpbmdVcGRhdGVWZXJzaW9uOwogICAgIH0pOworCiAgICAgYXV0byYgbGFzdFZlcnNpb24gPSBy
ZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwogICAgIGlmIChsYXN0VmVyc2lvbiAhPSBtX2N1cnJlbnRS
ZW5kZXJpbmdVcGRhdGVWZXJzaW9uKSB7CiAgICAgICAgIGxhc3RWZXJzaW9uID0gbV9jdXJyZW50
UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKICAgICAgICAgKyttX251bWJlck9mRm9udHNVc2VkSW5D
dXJyZW50UmVuZGVyaW5nVXBkYXRlOwogICAgIH0KLSAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkp
Ci0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNhY2hlRm9udChtYWtlUmVm
KGZvbnQpKTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VOYXRp
dmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmVuZGVyaW5nUmVzb3VyY2VJZGVu
dGlmaWVyKQpAQCAtMTI0LDI1ICsxMjUsNDIgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHk6OnJlbGVhc2VOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmUKICAg
ICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAordm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hl
UHJveHk6OnByZXBhcmVGb3JOZXh0UmVuZGVyaW5nVXBkYXRlKCkKK3sKKyAgICArK21fY3VycmVu
dFJlbmRlcmluZ1VwZGF0ZVZlcnNpb247CisgICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVu
dFJlbmRlcmluZ1VwZGF0ZSA9IDA7Cit9CisKK3ZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5
OjpjbGVhckZvbnRNYXAoKQoreworICAgIG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdV
cGRhdGVWZXJzaW9uTWFwLmNsZWFyKCk7CisgICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVu
dFJlbmRlcmluZ1VwZGF0ZSA9IDA7CisgICAgbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lv
biA9IDA7Cit9CisKIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJl
bmRlcmluZ1VwZGF0ZSgpCiB7CiAgICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtaW5pbXVt
UmVuZGVyaW5nVXBkYXRlQ291bnRUb0tlZXBGb250QWxpdmUgPSA0OwogICAgIHN0YXRpYyBjb25z
dGV4cHIgZG91YmxlIG1pbmltdW1GcmFjdGlvbk9mVW51c2VkRm9udENvdW50VG9UcmlnZ2VyUmVt
b3ZhbCA9IDAuMjU7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciB1bnNpZ25lZCBtYXhpbXVtVW51c2Vk
Rm9udENvdW50VG9Ta2lwUmVtb3ZhbCA9IDA7CiAKICAgICB1bnNpZ25lZCB0b3RhbEZvbnRDb3Vu
dCA9IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLnNpemUo
KTsKICAgICBSRUxFQVNFX0FTU0VSVChtX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVy
aW5nVXBkYXRlIDw9IHRvdGFsRm9udENvdW50KTsKKwogICAgIHVuc2lnbmVkIHVudXNlZEZvbnRD
b3VudCA9IHRvdGFsRm9udENvdW50IC0gbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRl
cmluZ1VwZGF0ZTsKLSAgICBpZiAodW51c2VkRm9udENvdW50IDwgbWluaW11bUZyYWN0aW9uT2ZV
bnVzZWRGb250Q291bnRUb1RyaWdnZXJSZW1vdmFsICogdG90YWxGb250Q291bnQgJiYgdW51c2Vk
Rm9udENvdW50IDw9IG1heGltdW1VbnVzZWRGb250Q291bnRUb1NraXBSZW1vdmFsKQorICAgIGlm
ICh1bnVzZWRGb250Q291bnQgPD0gbWluaW11bUZyYWN0aW9uT2ZVbnVzZWRGb250Q291bnRUb1Ry
aWdnZXJSZW1vdmFsICogdG90YWxGb250Q291bnQpIHsKKyAgICAgICAgcHJlcGFyZUZvck5leHRS
ZW5kZXJpbmdVcGRhdGUoKTsKICAgICAgICAgcmV0dXJuOwotCi0gICAgZm9yIChhdXRvJiBpdGVt
IDogbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXApIHsKLSAg
ICAgICAgaWYgKG1fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb24gLSBpdGVtLnZhbHVlID49
IG1pbmltdW1SZW5kZXJpbmdVcGRhdGVDb3VudFRvS2VlcEZvbnRBbGl2ZSkKLSAgICAgICAgICAg
IG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LnJlbGVhc2VSZW1vdGVSZXNvdXJjZShpdGVt
LmtleSk7CiAgICAgfQogCi0gICAgKyttX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uOwot
ICAgIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgPSAwOworICAg
IG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLnJlbW92ZUlm
KFsmXSAoY29uc3QgYXV0byYgaXRlbSkgeworICAgICAgICBpZiAobV9jdXJyZW50UmVuZGVyaW5n
VXBkYXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPCBtaW5pbXVtUmVuZGVyaW5nVXBkYXRlQ291bnRU
b0tlZXBGb250QWxpdmUpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgICAgbV9y
ZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKGl0ZW0ua2V5
KTsKKyAgICAgICAgcmV0dXJuIHRydWU7CisgICAgfSk7CisgICAgCisgICAgcHJlcGFyZUZvck5l
eHRSZW5kZXJpbmdVcGRhdGUoKTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6
OnJlbW90ZVJlc291cmNlQ2FjaGVXYXNEZXN0cm95ZWQoKQpAQCAtMTU0LDE0ICsxNzIsMTMgQEAg
dm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbW90ZVJlc291cmNlQ2FjaGVXYXNEZXN0
cm95ZWQoKQogICAgICAgICBpbWFnZUJ1ZmZlci0+Y2xlYXJCYWNrZW5kKCk7CiAgICAgfQogICAg
IG1fbmF0aXZlSW1hZ2VzLmNsZWFyKCk7Ci0gICAgbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRl
cmluZ1VwZGF0ZVZlcnNpb25NYXAuY2xlYXIoKTsKKyAgICBjbGVhckZvbnRNYXAoKTsKIH0KIAog
dm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VNZW1vcnkoKQogewotICAgIG1f
Zm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLmNsZWFyKCk7Ci0g
ICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7CiAgICAg
bV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkuZGVsZXRlQWxsRm9udHMoKTsKKyAgICBjbGVh
ckZvbnRNYXAoKTsKIH0KIAogfSAvLyBuYW1lc3BhY2UgV2ViS2l0CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuaAppbmRleCBmNmI1ZmI3ODE4MTc2ZWI2OTE1YzU3NjliZDkzYWNmNzhiMjRi
ZTlmLi5kNjA0YWZhYWFhMGFmMDU1YTllZDEyZmVjMjBmMWViYzM4NzI2NDFlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2Fj
aGVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVt
b3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKQEAgLTYyLDYgKzYyLDggQEAgcHJpdmF0ZToKICAgICB1
c2luZyBOYXRpdmVJbWFnZUhhc2hNYXAgPSBIYXNoTWFwPFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllciwgV2Vha1B0cjxXZWJDb3JlOjpOYXRpdmVJbWFnZT4+OwogICAgIAogICAg
IHZvaWQgcmVsZWFzZU5hdGl2ZUltYWdlKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRp
Zmllcikgb3ZlcnJpZGU7CisgICAgdm9pZCBwcmVwYXJlRm9yTmV4dFJlbmRlcmluZ1VwZGF0ZSgp
OworICAgIHZvaWQgY2xlYXJGb250TWFwKCk7CiAKICAgICBJbWFnZUJ1ZmZlckhhc2hNYXAgbV9p
bWFnZUJ1ZmZlcnM7CiAgICAgTmF0aXZlSW1hZ2VIYXNoTWFwIG1fbmF0aXZlSW1hZ2VzOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432069</attachid>
            <date>2021-06-23 10:35:40 -0700</date>
            <delta_ts>2021-06-23 16:38:23 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227229-20210623103539.patch</filename>
            <type>text/plain</type>
            <size>7116</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUxMDdjZmUzYzA4MWVjMTAz
ODE5NzkyOWVmMzFjZTNmNjA1MzNjMjMuLjk2MDkwMDUyZWRhYTdjODQ1MDYwYTQxZDY0Yzk1YTIz
NTFiMzgwYTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAgQEAKKzIwMjEtMDYtMjMgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSRUxF
QVNFX0FTU0VSVCBpbiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKCkgbWF5IGZpcmUgaWYgR1BVUCBpcyByZWxhdW5jaGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyMjkKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBSZW1vdmUgUmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpIHNpbmNlIGl0IAorICAgICAg
ICBoYXMgYmVlbiBkb2luZyBub3RoaW5nIHNpbmNlIGl0IHdhcyBsYW5kZWQuCisKKyAgICAgICAg
UmVtb3ZlIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgYW5kIAor
ICAgICAgICBtX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uIHNpbmNlIHRoZXkgaGF2ZSBu
byB1c2Ugb3V0c2lkZSAKKyAgICAgICAgZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUoKS4KKwor
ICAgICAgICBDaGFuZ2UgbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNp
b25NYXAgdG8gYmUgYSBIYXNoU2V0CisgICAgICAgIGFuZCByZW5hbWUgaXQgbV9mb250SWRlbnRp
ZmllcnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJj
ZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJv
eHk6OmNhY2hlRm9udCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eTo6cmVtb3RlUmVzb3VyY2VDYWNoZVdhc0Rlc3Ryb3llZCk6CisgICAgICAgIChXZWJLaXQ6OlJl
bW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZU1lbW9yeSk6CisgICAgICAgIChXZWJLaXQ6
OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlkRmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOiBE
ZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNl
Q2FjaGVQcm94eS5oOgorICAgICAgICAoKTogRGVsZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNz
L1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBhZ2U6OmZpbmFsaXpl
UmVuZGVyaW5nVXBkYXRlKToKKwogMjAyMS0wNi0yMyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1
ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzkxMDQu
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dy
YXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKaW5kZXggMzIxYmI0MTA0ZjhkY2U5
YWZmOGQ5Njc1ZWM0OWMzNzNkNDI4N2Q5NC4uNTYzMmNkZDdjNTEzYWU4M2YzOTg4MjFiZTNmNWRk
YWNhOTI2OGY5MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFw
aGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcApAQCAtMTA0
LDE2ICsxMDQsMTEgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlTmF0aXZl
SW1hZ2UoTmF0aXZlSW1hZ2UmIGltYWdlKQogCiB2b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94
eTo6Y2FjaGVGb250KEZvbnQmIGZvbnQpCiB7Ci0gICAgYXV0byByZXN1bHQgPSBtX2ZvbnRJZGVu
dGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC5lbnN1cmUoZm9udC5yZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgWyZdIHsKLSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfSk7
Ci0gICAgYXV0byYgbGFzdFZlcnNpb24gPSByZXN1bHQuaXRlcmF0b3ItPnZhbHVlOwotICAgIGlm
IChsYXN0VmVyc2lvbiAhPSBtX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uKSB7Ci0gICAg
ICAgIGxhc3RWZXJzaW9uID0gbV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbjsKLSAgICAg
ICAgKyttX251bWJlck9mRm9udHNVc2VkSW5DdXJyZW50UmVuZGVyaW5nVXBkYXRlOwotICAgIH0K
LSAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFj
a2VuZFByb3h5LmNhY2hlRm9udChtYWtlUmVmKGZvbnQpKTsKKyAgICBpZiAobV9mb250SWRlbnRp
ZmllcnMuY29udGFpbnMoZm9udC5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSkpCisgICAg
ICAgIHJldHVybjsKKworICAgIG1fZm9udElkZW50aWZpZXJzLmFkZChmb250LnJlbmRlcmluZ1Jl
c291cmNlSWRlbnRpZmllcigpKTsKKyAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5j
YWNoZUZvbnQobWFrZVJlZihmb250KSk7CiB9CiAKIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVBy
b3h5OjpyZWxlYXNlTmF0aXZlSW1hZ2UoUmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRl
cmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTEyNSwyNyArMTIwLDYgQEAgdm9pZCBSZW1vdGVS
ZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VOYXRpdmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIgcmUKICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVt
b3RlUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCkKLXsKLSAg
ICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1pbmltdW1SZW5kZXJpbmdVcGRhdGVDb3VudFRv
S2VlcEZvbnRBbGl2ZSA9IDQ7Ci0gICAgc3RhdGljIGNvbnN0ZXhwciBkb3VibGUgbWluaW11bUZy
YWN0aW9uT2ZVbnVzZWRGb250Q291bnRUb1RyaWdnZXJSZW1vdmFsID0gMC4yNTsKLSAgICBzdGF0
aWMgY29uc3RleHByIHVuc2lnbmVkIG1heGltdW1VbnVzZWRGb250Q291bnRUb1NraXBSZW1vdmFs
ID0gMDsKLQotICAgIHVuc2lnbmVkIHRvdGFsRm9udENvdW50ID0gbV9mb250SWRlbnRpZmllclRv
TGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAuc2l6ZSgpOwotICAgIFJFTEVBU0VfQVNTRVJU
KG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgPD0gdG90YWxGb250
Q291bnQpOwotICAgIHVuc2lnbmVkIHVudXNlZEZvbnRDb3VudCA9IHRvdGFsRm9udENvdW50IC0g
bV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZTsKLSAgICBpZiAodW51
c2VkRm9udENvdW50IDwgbWluaW11bUZyYWN0aW9uT2ZVbnVzZWRGb250Q291bnRUb1RyaWdnZXJS
ZW1vdmFsICogdG90YWxGb250Q291bnQgJiYgdW51c2VkRm9udENvdW50IDw9IG1heGltdW1VbnVz
ZWRGb250Q291bnRUb1NraXBSZW1vdmFsKQotICAgICAgICByZXR1cm47Ci0KLSAgICBmb3IgKGF1
dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1h
cCkgewotICAgICAgICBpZiAobV9jdXJyZW50UmVuZGVyaW5nVXBkYXRlVmVyc2lvbiAtIGl0ZW0u
dmFsdWUgPj0gbWluaW11bVJlbmRlcmluZ1VwZGF0ZUNvdW50VG9LZWVwRm9udEFsaXZlKQotICAg
ICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkucmVsZWFzZVJlbW90ZVJlc291
cmNlKGl0ZW0ua2V5KTsKLSAgICB9Ci0KLSAgICArK21fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZl
cnNpb247Ci0gICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9
IDA7Ci19Ci0KIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZW1vdGVSZXNvdXJjZUNh
Y2hlV2FzRGVzdHJveWVkKCkKIHsKICAgICBmb3IgKGF1dG8mIGltYWdlQnVmZmVyIDogbV9pbWFn
ZUJ1ZmZlcnMudmFsdWVzKCkpIHsKQEAgLTE1NSwxMyArMTI5LDEyIEBAIHZvaWQgUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5OjpyZW1vdGVSZXNvdXJjZUNhY2hlV2FzRGVzdHJveWVkKCkKICAgICAg
ICAgaW1hZ2VCdWZmZXItPmNsZWFyQmFja2VuZCgpOwogICAgIH0KICAgICBtX25hdGl2ZUltYWdl
cy5jbGVhcigpOwotICAgIG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJz
aW9uTWFwLmNsZWFyKCk7CisgICAgbV9mb250SWRlbnRpZmllcnMuY2xlYXIoKTsKIH0KIAogdm9p
ZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VNZW1vcnkoKQogewotICAgIG1fZm9u
dElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLmNsZWFyKCk7Ci0gICAg
bV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7CisgICAgbV9m
b250SWRlbnRpZmllcnMuY2xlYXIoKTsKICAgICBtX3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94
eS5kZWxldGVBbGxGb250cygpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlBy
b2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oIGIvU291cmNlL1dl
YktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaApp
bmRleCBmNmI1ZmI3ODE4MTc2ZWI2OTE1YzU3NjliZDkzYWNmNzhiMjRiZTlmLi41ZWQzODk1MWM2
OGI4YzI3OTE1MTI0OGUwOGNjMDFhZGIzOTE0Mjc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNo
ZVByb3h5LmgKQEAgLTUwLDkgKzUwLDcgQEAgcHVibGljOgogICAgIHZvaWQgcmVsZWFzZUltYWdl
QnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcik7CiAKICAgICB2b2lk
IGNhY2hlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6TmF0aXZlSW1hZ2UmKTsKLQogICAgIHZvaWQgY2Fj
aGVGb250KFdlYkNvcmU6OkZvbnQmKTsKLSAgICB2b2lkIGRpZEZpbmFsaXplUmVuZGVyaW5nVXBk
YXRlKCk7CiAKICAgICB2b2lkIHJlbW90ZVJlc291cmNlQ2FjaGVXYXNEZXN0cm95ZWQoKTsKICAg
ICB2b2lkIHJlbGVhc2VNZW1vcnkoKTsKQEAgLTYwLDE1ICs1OCwxMyBAQCBwdWJsaWM6CiBwcml2
YXRlOgogICAgIHVzaW5nIEltYWdlQnVmZmVySGFzaE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVu
ZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWFrUHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPj47
CiAgICAgdXNpbmcgTmF0aXZlSW1hZ2VIYXNoTWFwID0gSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJp
bmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYWtQdHI8V2ViQ29yZTo6TmF0aXZlSW1hZ2U+PjsKLSAg
ICAKKyAgICB1c2luZyBGb250SWRlbnRpZmllckhhc2hTZXQgPSBIYXNoU2V0PFdlYkNvcmU6OlJl
bmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj47CisKICAgICB2b2lkIHJlbGVhc2VOYXRpdmVJbWFn
ZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIpIG92ZXJyaWRlOwogCiAgICAg
SW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZmZXJzOwogICAgIE5hdGl2ZUltYWdlSGFzaE1h
cCBtX25hdGl2ZUltYWdlczsKLQotICAgIEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3Vy
Y2VJZGVudGlmaWVyLCB1aW50NjRfdD4gbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1Vw
ZGF0ZVZlcnNpb25NYXA7Ci0gICAgdW5zaWduZWQgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVu
dFJlbmRlcmluZ1VwZGF0ZSB7IDAgfTsKLSAgICB1aW50NjRfdCBtX2N1cnJlbnRSZW5kZXJpbmdV
cGRhdGVWZXJzaW9uIHsgMSB9OworICAgIEZvbnRJZGVudGlmaWVySGFzaFNldCBtX2ZvbnRJZGVu
dGlmaWVyczsKIAogICAgIFJlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5k
ZXJpbmdCYWNrZW5kUHJveHk7CiB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFn
ZS9XZWJQYWdlLmNwcAppbmRleCAzN2I0M2U5YzdjNWYyZDdjMDk3ZjM4ZDBmZDYwZjljYzhiNGU2
ZDE4Li40ZjIwYTA0YWI4NDZhZTAxZmUxNzVmNWRkMzQ0MTMwNWY2ZmY1NjNiIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtNDE4MywxMCArNDE4
Myw2IEBAIHZvaWQgV2ViUGFnZTo6ZGlkVXBkYXRlUmVuZGVyaW5nKCkKIHZvaWQgV2ViUGFnZTo6
ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoT3B0aW9uU2V0PEZpbmFsaXplUmVuZGVyaW5nVXBkYXRl
RmxhZ3M+IGZsYWdzKQogewogICAgIG1fcGFnZS0+ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoZmxh
Z3MpOwotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykKLSAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdC
YWNrZW5kUHJveHkpCi0gICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkoKS5kaWRGaW5hbGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOwotI2Vu
ZGlmCiB9CiAKIHZvaWQgV2ViUGFnZTo6cmVsZWFzZU1lbW9yeShDcml0aWNhbCkK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432106</attachid>
            <date>2021-06-23 16:38:26 -0700</date>
            <delta_ts>2021-06-24 13:37:55 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227229-20210623163825.patch</filename>
            <type>text/plain</type>
            <size>7143</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MTcwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGUxMDdjZmUzYzA4MWVjMTAz
ODE5NzkyOWVmMzFjZTNmNjA1MzNjMjMuLmZlYjRjNGM2NjA5YTBmNTAzZGFlMjNiNDgwNzUyNTYw
MDdlNzVlNzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzEgQEAKKzIwMjEtMDYtMjMgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSRUxF
QVNFX0FTU0VSVCBpbiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKCkgbWF5IGZpcmUgaWYgR1BVUCBpcyByZWxhdW5jaGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyMjkKKyAgICAgICAgPHJkYXI6
Ly83OTE0Nzk0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBSZW1vdmUgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpkaWRGaW5hbGl6ZVJlbmRlcmlu
Z1VwZGF0ZSgpIHNpbmNlIGl0IAorICAgICAgICBoYXMgYmVlbiBkb2luZyBub3RoaW5nIHNpbmNl
IGl0IHdhcyBsYW5kZWQuCisKKyAgICAgICAgUmVtb3ZlIG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1
cnJlbnRSZW5kZXJpbmdVcGRhdGUgYW5kIAorICAgICAgICBtX2N1cnJlbnRSZW5kZXJpbmdVcGRh
dGVWZXJzaW9uIHNpbmNlIHRoZXkgaGF2ZSBubyB1c2Ugb3V0c2lkZSAKKyAgICAgICAgZGlkRmlu
YWxpemVSZW5kZXJpbmdVcGRhdGUoKS4KKworICAgICAgICBDaGFuZ2UgbV9mb250SWRlbnRpZmll
clRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAgdG8gYmUgYSBIYXNoU2V0CisgICAgICAg
IGFuZCByZW5hbWUgaXQgbV9mb250SWRlbnRpZmllcnMuCisKKyAgICAgICAgKiBXZWJQcm9jZXNz
L0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwOgorICAgICAgICAoV2Vi
S2l0OjpSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmNhY2hlRm9udCk6CisgICAgICAgIChXZWJL
aXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVtb3RlUmVzb3VyY2VDYWNoZVdhc0Rlc3Ry
b3llZCk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFz
ZU1lbW9yeSk6CisgICAgICAgIChXZWJLaXQ6OlJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6ZGlk
RmluYWxpemVSZW5kZXJpbmdVcGRhdGUpOiBEZWxldGVkLgorICAgICAgICAqIFdlYlByb2Nlc3Mv
R1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5oOgorICAgICAgICAoKTogRGVs
ZXRlZC4KKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlBhZ2U6OmZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKToKKwogMjAyMS0wNi0y
MyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAgICAgICAgVW5y
ZXZpZXdlZCwgcmV2ZXJ0aW5nIHIyNzkxMDQuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNlQ2FjaGVQcm94
eS5jcHAKaW5kZXggMzIxYmI0MTA0ZjhkY2U5YWZmOGQ5Njc1ZWM0OWMzNzNkNDI4N2Q5NC4uNTYz
MmNkZDdjNTEzYWU4M2YzOTg4MjFiZTNmNWRkYWNhOTI2OGY5MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1vdGVSZXNvdXJjZUNhY2hlUHJveHku
Y3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3RlUmVz
b3VyY2VDYWNoZVByb3h5LmNwcApAQCAtMTA0LDE2ICsxMDQsMTEgQEAgdm9pZCBSZW1vdGVSZXNv
dXJjZUNhY2hlUHJveHk6OmNhY2hlTmF0aXZlSW1hZ2UoTmF0aXZlSW1hZ2UmIGltYWdlKQogCiB2
b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6Y2FjaGVGb250KEZvbnQmIGZvbnQpCiB7Ci0g
ICAgYXV0byByZXN1bHQgPSBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVy
c2lvbk1hcC5lbnN1cmUoZm9udC5yZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIoKSwgWyZdIHsK
LSAgICAgICAgcmV0dXJuIDA7Ci0gICAgfSk7Ci0gICAgYXV0byYgbGFzdFZlcnNpb24gPSByZXN1
bHQuaXRlcmF0b3ItPnZhbHVlOwotICAgIGlmIChsYXN0VmVyc2lvbiAhPSBtX2N1cnJlbnRSZW5k
ZXJpbmdVcGRhdGVWZXJzaW9uKSB7Ci0gICAgICAgIGxhc3RWZXJzaW9uID0gbV9jdXJyZW50UmVu
ZGVyaW5nVXBkYXRlVmVyc2lvbjsKLSAgICAgICAgKyttX251bWJlck9mRm9udHNVc2VkSW5DdXJy
ZW50UmVuZGVyaW5nVXBkYXRlOwotICAgIH0KLSAgICBpZiAocmVzdWx0LmlzTmV3RW50cnkpCi0g
ICAgICAgIG1fcmVtb3RlUmVuZGVyaW5nQmFja2VuZFByb3h5LmNhY2hlRm9udChtYWtlUmVmKGZv
bnQpKTsKKyAgICBpZiAobV9mb250SWRlbnRpZmllcnMuY29udGFpbnMoZm9udC5yZW5kZXJpbmdS
ZXNvdXJjZUlkZW50aWZpZXIoKSkpCisgICAgICAgIHJldHVybjsKKworICAgIG1fZm9udElkZW50
aWZpZXJzLmFkZChmb250LnJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcigpKTsKKyAgICBtX3Jl
bW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5jYWNoZUZvbnQobWFrZVJlZihmb250KSk7CiB9CiAK
IHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZWxlYXNlTmF0aXZlSW1hZ2UoUmVuZGVy
aW5nUmVzb3VyY2VJZGVudGlmaWVyIHJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcikKQEAgLTEy
NSwyNyArMTIwLDYgQEAgdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJlbGVhc2VOYXRp
dmVJbWFnZShSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIgcmUKICAgICBtX3JlbW90ZVJlbmRl
cmluZ0JhY2tlbmRQcm94eS5yZWxlYXNlUmVtb3RlUmVzb3VyY2UocmVuZGVyaW5nUmVzb3VyY2VJ
ZGVudGlmaWVyKTsKIH0KIAotdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFs
aXplUmVuZGVyaW5nVXBkYXRlKCkKLXsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1p
bmltdW1SZW5kZXJpbmdVcGRhdGVDb3VudFRvS2VlcEZvbnRBbGl2ZSA9IDQ7Ci0gICAgc3RhdGlj
IGNvbnN0ZXhwciBkb3VibGUgbWluaW11bUZyYWN0aW9uT2ZVbnVzZWRGb250Q291bnRUb1RyaWdn
ZXJSZW1vdmFsID0gMC4yNTsKLSAgICBzdGF0aWMgY29uc3RleHByIHVuc2lnbmVkIG1heGltdW1V
bnVzZWRGb250Q291bnRUb1NraXBSZW1vdmFsID0gMDsKLQotICAgIHVuc2lnbmVkIHRvdGFsRm9u
dENvdW50ID0gbV9mb250SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXAu
c2l6ZSgpOwotICAgIFJFTEVBU0VfQVNTRVJUKG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRS
ZW5kZXJpbmdVcGRhdGUgPD0gdG90YWxGb250Q291bnQpOwotICAgIHVuc2lnbmVkIHVudXNlZEZv
bnRDb3VudCA9IHRvdGFsRm9udENvdW50IC0gbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJl
bmRlcmluZ1VwZGF0ZTsKLSAgICBpZiAodW51c2VkRm9udENvdW50IDwgbWluaW11bUZyYWN0aW9u
T2ZVbnVzZWRGb250Q291bnRUb1RyaWdnZXJSZW1vdmFsICogdG90YWxGb250Q291bnQgJiYgdW51
c2VkRm9udENvdW50IDw9IG1heGltdW1VbnVzZWRGb250Q291bnRUb1NraXBSZW1vdmFsKQotICAg
ICAgICByZXR1cm47Ci0KLSAgICBmb3IgKGF1dG8mIGl0ZW0gOiBtX2ZvbnRJZGVudGlmaWVyVG9M
YXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcCkgewotICAgICAgICBpZiAobV9jdXJyZW50UmVu
ZGVyaW5nVXBkYXRlVmVyc2lvbiAtIGl0ZW0udmFsdWUgPj0gbWluaW11bVJlbmRlcmluZ1VwZGF0
ZUNvdW50VG9LZWVwRm9udEFsaXZlKQotICAgICAgICAgICAgbV9yZW1vdGVSZW5kZXJpbmdCYWNr
ZW5kUHJveHkucmVsZWFzZVJlbW90ZVJlc291cmNlKGl0ZW0ua2V5KTsKLSAgICB9Ci0KLSAgICAr
K21fY3VycmVudFJlbmRlcmluZ1VwZGF0ZVZlcnNpb247Ci0gICAgbV9udW1iZXJPZkZvbnRzVXNl
ZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSA9IDA7Ci19Ci0KIHZvaWQgUmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpyZW1vdGVSZXNvdXJjZUNhY2hlV2FzRGVzdHJveWVkKCkKIHsKICAgICBmb3Ig
KGF1dG8mIGltYWdlQnVmZmVyIDogbV9pbWFnZUJ1ZmZlcnMudmFsdWVzKCkpIHsKQEAgLTE1NSwx
MyArMTI5LDEyIEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZW1vdGVSZXNvdXJj
ZUNhY2hlV2FzRGVzdHJveWVkKCkKICAgICAgICAgaW1hZ2VCdWZmZXItPmNsZWFyQmFja2VuZCgp
OwogICAgIH0KICAgICBtX25hdGl2ZUltYWdlcy5jbGVhcigpOwotICAgIG1fZm9udElkZW50aWZp
ZXJUb0xhc3RSZW5kZXJpbmdVcGRhdGVWZXJzaW9uTWFwLmNsZWFyKCk7CisgICAgbV9mb250SWRl
bnRpZmllcnMuY2xlYXIoKTsKIH0KIAogdm9pZCBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OnJl
bGVhc2VNZW1vcnkoKQogewotICAgIG1fZm9udElkZW50aWZpZXJUb0xhc3RSZW5kZXJpbmdVcGRh
dGVWZXJzaW9uTWFwLmNsZWFyKCk7Ci0gICAgbV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJl
bmRlcmluZ1VwZGF0ZSA9IDA7CisgICAgbV9mb250SWRlbnRpZmllcnMuY2xlYXIoKTsKICAgICBt
X3JlbW90ZVJlbmRlcmluZ0JhY2tlbmRQcm94eS5kZWxldGVBbGxGb250cygpOwogfQogCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291
cmNlQ2FjaGVQcm94eS5oIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9S
ZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkuaAppbmRleCBmNmI1ZmI3ODE4MTc2ZWI2OTE1YzU3Njli
ZDkzYWNmNzhiMjRiZTlmLi41ZWQzODk1MWM2OGI4YzI3OTE1MTI0OGUwOGNjMDFhZGIzOTE0Mjc5
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90
ZVJlc291cmNlQ2FjaGVQcm94eS5oCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9HUFUv
Z3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmgKQEAgLTUwLDkgKzUwLDcgQEAgcHVi
bGljOgogICAgIHZvaWQgcmVsZWFzZUltYWdlQnVmZmVyKFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291
cmNlSWRlbnRpZmllcik7CiAKICAgICB2b2lkIGNhY2hlTmF0aXZlSW1hZ2UoV2ViQ29yZTo6TmF0
aXZlSW1hZ2UmKTsKLQogICAgIHZvaWQgY2FjaGVGb250KFdlYkNvcmU6OkZvbnQmKTsKLSAgICB2
b2lkIGRpZEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlKCk7CiAKICAgICB2b2lkIHJlbW90ZVJlc291
cmNlQ2FjaGVXYXNEZXN0cm95ZWQoKTsKICAgICB2b2lkIHJlbGVhc2VNZW1vcnkoKTsKQEAgLTYw
LDE1ICs1OCwxMyBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIHVzaW5nIEltYWdlQnVmZmVySGFz
aE1hcCA9IEhhc2hNYXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCBXZWFr
UHRyPFdlYkNvcmU6OkltYWdlQnVmZmVyPj47CiAgICAgdXNpbmcgTmF0aXZlSW1hZ2VIYXNoTWFw
ID0gSGFzaE1hcDxXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXIsIFdlYWtQdHI8
V2ViQ29yZTo6TmF0aXZlSW1hZ2U+PjsKLSAgICAKKyAgICB1c2luZyBGb250SWRlbnRpZmllckhh
c2hTZXQgPSBIYXNoU2V0PFdlYkNvcmU6OlJlbmRlcmluZ1Jlc291cmNlSWRlbnRpZmllcj47CisK
ICAgICB2b2lkIHJlbGVhc2VOYXRpdmVJbWFnZShXZWJDb3JlOjpSZW5kZXJpbmdSZXNvdXJjZUlk
ZW50aWZpZXIpIG92ZXJyaWRlOwogCiAgICAgSW1hZ2VCdWZmZXJIYXNoTWFwIG1faW1hZ2VCdWZm
ZXJzOwogICAgIE5hdGl2ZUltYWdlSGFzaE1hcCBtX25hdGl2ZUltYWdlczsKLQotICAgIEhhc2hN
YXA8V2ViQ29yZTo6UmVuZGVyaW5nUmVzb3VyY2VJZGVudGlmaWVyLCB1aW50NjRfdD4gbV9mb250
SWRlbnRpZmllclRvTGFzdFJlbmRlcmluZ1VwZGF0ZVZlcnNpb25NYXA7Ci0gICAgdW5zaWduZWQg
bV9udW1iZXJPZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZSB7IDAgfTsKLSAgICB1
aW50NjRfdCBtX2N1cnJlbnRSZW5kZXJpbmdVcGRhdGVWZXJzaW9uIHsgMSB9OworICAgIEZvbnRJ
ZGVudGlmaWVySGFzaFNldCBtX2ZvbnRJZGVudGlmaWVyczsKIAogICAgIFJlbW90ZVJlbmRlcmlu
Z0JhY2tlbmRQcm94eSYgbV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHk7CiB9OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAppbmRleCAzN2I0M2U5Yzdj
NWYyZDdjMDk3ZjM4ZDBmZDYwZjljYzhiNGU2ZDE4Li40ZjIwYTA0YWI4NDZhZTAxZmUxNzVmNWRk
MzQ0MTMwNWY2ZmY1NjNiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcApAQCAtNDE4MywxMCArNDE4Myw2IEBAIHZvaWQgV2ViUGFnZTo6ZGlkVXBkYXRl
UmVuZGVyaW5nKCkKIHZvaWQgV2ViUGFnZTo6ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoT3B0aW9u
U2V0PEZpbmFsaXplUmVuZGVyaW5nVXBkYXRlRmxhZ3M+IGZsYWdzKQogewogICAgIG1fcGFnZS0+
ZmluYWxpemVSZW5kZXJpbmdVcGRhdGUoZmxhZ3MpOwotI2lmIEVOQUJMRShHUFVfUFJPQ0VTUykK
LSAgICBpZiAobV9yZW1vdGVSZW5kZXJpbmdCYWNrZW5kUHJveHkpCi0gICAgICAgIG1fcmVtb3Rl
UmVuZGVyaW5nQmFja2VuZFByb3h5LT5yZW1vdGVSZXNvdXJjZUNhY2hlUHJveHkoKS5kaWRGaW5h
bGl6ZVJlbmRlcmluZ1VwZGF0ZSgpOwotI2VuZGlmCiB9CiAKIHZvaWQgV2ViUGFnZTo6cmVsZWFz
ZU1lbW9yeShDcml0aWNhbCkK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>432207</attachid>
            <date>2021-06-24 13:37:58 -0700</date>
            <delta_ts>2021-06-24 16:12:31 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-227229-20210624133757.patch</filename>
            <type>text/plain</type>
            <size>1870</size>
            <attacher name="Said Abou-Hallawa">sabouhallawa</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjc5MjQzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IGVhZTczZjRmYmYwZjQ1NWJh
Y2JjYjNmOWQzMjYzNDZlNjg3YTE2NWYuLmU5YjhhMmM4MTZhYzY2MTE0MGUxMjU0MjcxMzM4MmUy
MjM3ZGNkNzAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMjEtMDYtMjQgIFNhaWQgQWJv
dS1IYWxsYXdhICA8c2FpZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0dQVSBQcm9jZXNzXSBSRUxF
QVNFX0FTU0VSVCBpbiBSZW1vdGVSZXNvdXJjZUNhY2hlUHJveHk6OmRpZEZpbmFsaXplUmVuZGVy
aW5nVXBkYXRlKCkgbWF5IGZpcmUgaWYgR1BVUCBpcyByZWxhdW5jaGVkCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMjcyMjkKKyAgICAgICAgPHJkYXI6
Ly83OTE0Nzk0Nz4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBXaGVuIHRoZSBHUFVQIGlzIHJlbGF1bmNoZWQgcmVtb3RlUmVzb3VyY2VDYWNoZVdhc0Rl
c3Ryb3llZCgpIGNsZWFycworICAgICAgICBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5n
VXBkYXRlVmVyc2lvbk1hcCBidXQgaXQgZG9lcyBub3QgcmVzZXQKKyAgICAgICAgbV9udW1iZXJP
ZkZvbnRzVXNlZEluQ3VycmVudFJlbmRlcmluZ1VwZGF0ZS4gVGhpcyB3aWxsIG1ha2UgaXQgYWx3
YXlzCisgICAgICAgIGdyZWF0ZXIgdGhhbiBtX2ZvbnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5n
VXBkYXRlVmVyc2lvbk1hcC5zaXplKCkuCisgICAgICAgIEFuZCB0aGlzIGlzIHdoeSB0aGUgYXNz
ZXJ0aW9uIGZpcmVzLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9HUFUvZ3JhcGhpY3MvUmVtb3Rl
UmVzb3VyY2VDYWNoZVByb3h5LmNwcDoKKyAgICAgICAgKFdlYktpdDo6UmVtb3RlUmVzb3VyY2VD
YWNoZVByb3h5OjpyZW1vdGVSZXNvdXJjZUNhY2hlV2FzRGVzdHJveWVkKToKKwogMjAyMS0wNi0y
NCAgQ2hyaXMgRHVtZXogIDxjZHVtZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEFkZCByZWxlYXNl
IGxvZ2dpbmcgaW4gdGhlIFdlYlBhZ2UgY29uc3RydWN0b3IgLyBkZXN0cnVjdG9yCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1JlbW90ZVJlc291cmNl
Q2FjaGVQcm94eS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvR1BVL2dyYXBoaWNzL1Jl
bW90ZVJlc291cmNlQ2FjaGVQcm94eS5jcHAKaW5kZXggMzIxYmI0MTA0ZjhkY2U5YWZmOGQ5Njc1
ZWM0OWMzNzNkNDI4N2Q5NC4uODQ4N2JhNmU5YTg2OWJmY2U3Mjk4MWQ4YWE5ZWI2OWU0MWQ2Yjdk
OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL0dQVS9ncmFwaGljcy9SZW1v
dGVSZXNvdXJjZUNhY2hlUHJveHkuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9H
UFUvZ3JhcGhpY3MvUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5LmNwcApAQCAtMTU2LDYgKzE1Niw3
IEBAIHZvaWQgUmVtb3RlUmVzb3VyY2VDYWNoZVByb3h5OjpyZW1vdGVSZXNvdXJjZUNhY2hlV2Fz
RGVzdHJveWVkKCkKICAgICB9CiAgICAgbV9uYXRpdmVJbWFnZXMuY2xlYXIoKTsKICAgICBtX2Zv
bnRJZGVudGlmaWVyVG9MYXN0UmVuZGVyaW5nVXBkYXRlVmVyc2lvbk1hcC5jbGVhcigpOworICAg
IG1fbnVtYmVyT2ZGb250c1VzZWRJbkN1cnJlbnRSZW5kZXJpbmdVcGRhdGUgPSAwOwogfQogCiB2
b2lkIFJlbW90ZVJlc291cmNlQ2FjaGVQcm94eTo6cmVsZWFzZU1lbW9yeSgpCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>