<?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>210206</bug_id>
          
          <creation_ts>2020-04-08 11:40:43 -0700</creation_ts>
          <short_desc>[GTK] MiniBrowser opens new windows too small causing failures on some WPT tests</short_desc>
          <delta_ts>2020-05-01 21:08:43 -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>WebKitGTK</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=211330</see_also>
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Carlos Alberto Lopez Perez">clopez</reporter>
          <assigned_to name="Carlos Alberto Lopez Perez">clopez</assigned_to>
          <cc>aperez</cc>
    
    <cc>berto</cc>
    
    <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>clopez</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>gustavo</cc>
    
    <cc>japhet</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1639184</commentid>
    <comment_count>0</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-08 11:40:43 -0700</bug_when>
    <thetext>Some WPT tests (when executed with the WPT runner via WebDriver) open new browser windows via JavaScript invoking window.open(...) and then run the test on this new window.
And there are issues when the test itself calls document.elementFromPoint() on some coordinates that are ourside of the window size.

MiniBrowser its opening new windows by default with a size of 100x100, which its too small and causes failures
For example on the WPT test: css/css-flexbox/hittest-overlapping-relative.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639200</commentid>
    <comment_count>1</comment_count>
      <attachid>395850</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-08 11:59:05 -0700</bug_when>
    <thetext>Created attachment 395850
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639203</commentid>
    <comment_count>2</comment_count>
    <who name="EWS Watchlist">ews-watchlist</who>
    <bug_when>2020-04-08 12:00:23 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639262</commentid>
    <comment_count>3</comment_count>
      <attachid>395850</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2020-04-08 13:21:04 -0700</bug_when>
    <thetext>Comment on attachment 395850
Patch

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

&gt; Source/WebKit/UIProcess/API/glib/WebKitWindowProperties.cpp:47
&gt; + * sizes bigger than 100x100. And if no size its specified then this value

If no size is specified, then</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639532</commentid>
    <comment_count>4</comment_count>
      <attachid>395850</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-09 02:03:43 -0700</bug_when>
    <thetext>Comment on attachment 395850
Patch

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

&gt; Tools/MiniBrowser/gtk/BrowserWindow.c:323
&gt; +     * The issue is that 100x100 its too small and cause failures on some

is too small

&gt; Tools/MiniBrowser/gtk/BrowserWindow.c:328
&gt; +    if (geometry.width &gt; 100 &amp;&amp; geometry.height &gt; 100)

Maybe we could do this only when web view is controlled by automation?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639567</commentid>
    <comment_count>5</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-09 04:26:46 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #4)
&gt; Comment on attachment 395850 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=395850&amp;action=review
&gt; 
&gt; &gt; Tools/MiniBrowser/gtk/BrowserWindow.c:323
&gt; &gt; +     * The issue is that 100x100 its too small and cause failures on some
&gt; 
&gt; is too small
&gt; 
&gt; &gt; Tools/MiniBrowser/gtk/BrowserWindow.c:328
&gt; &gt; +    if (geometry.width &gt; 100 &amp;&amp; geometry.height &gt; 100)
&gt; 
&gt; Maybe we could do this only when web view is controlled by automation?

I think it makes sense to do it in any case.

Just try a basic example of window.open with the minibrowser and check how bad it looks the new window it opens: (you almost can&apos;t see it). 

Ex: https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_open</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639581</commentid>
    <comment_count>6</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-09 05:15:44 -0700</bug_when>
    <thetext>(In reply to Carlos Alberto Lopez Perez from comment #5)
&gt; (In reply to Carlos Garcia Campos from comment #4)
&gt; &gt; Comment on attachment 395850 [details]
&gt; &gt; Patch
&gt; &gt; 
&gt; &gt; View in context:
&gt; &gt; https://bugs.webkit.org/attachment.cgi?id=395850&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; Tools/MiniBrowser/gtk/BrowserWindow.c:323
&gt; &gt; &gt; +     * The issue is that 100x100 its too small and cause failures on some
&gt; &gt; 
&gt; &gt; is too small
&gt; &gt; 
&gt; &gt; &gt; Tools/MiniBrowser/gtk/BrowserWindow.c:328
&gt; &gt; &gt; +    if (geometry.width &gt; 100 &amp;&amp; geometry.height &gt; 100)
&gt; &gt; 
&gt; &gt; Maybe we could do this only when web view is controlled by automation?
&gt; 
&gt; I think it makes sense to do it in any case.
&gt; 
&gt; Just try a basic example of window.open with the minibrowser and check how
&gt; bad it looks the new window it opens: (you almost can&apos;t see it). 
&gt; 
&gt; Ex: https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_open

Then I would not change this in MiniBrowser. The spec says 100 is the minimum but not the default, so we can change that behavior and use a different default size, for example parent window size.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639589</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-09 05:38:03 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #6)
&gt; (In reply to Carlos Alberto Lopez Perez from comment #5)
&gt; &gt; (In reply to Carlos Garcia Campos from comment #4)
&gt; &gt; &gt; Comment on attachment 395850 [details]
&gt; &gt; &gt; Patch
&gt; &gt; &gt; 
&gt; &gt; &gt; View in context:
&gt; &gt; &gt; https://bugs.webkit.org/attachment.cgi?id=395850&amp;action=review
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Tools/MiniBrowser/gtk/BrowserWindow.c:323
&gt; &gt; &gt; &gt; +     * The issue is that 100x100 its too small and cause failures on some
&gt; &gt; &gt; 
&gt; &gt; &gt; is too small
&gt; &gt; &gt; 
&gt; &gt; &gt; &gt; Tools/MiniBrowser/gtk/BrowserWindow.c:328
&gt; &gt; &gt; &gt; +    if (geometry.width &gt; 100 &amp;&amp; geometry.height &gt; 100)
&gt; &gt; &gt; 
&gt; &gt; &gt; Maybe we could do this only when web view is controlled by automation?
&gt; &gt; 
&gt; &gt; I think it makes sense to do it in any case.
&gt; &gt; 
&gt; &gt; Just try a basic example of window.open with the minibrowser and check how
&gt; &gt; bad it looks the new window it opens: (you almost can&apos;t see it). 
&gt; &gt; 
&gt; &gt; Ex: https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_win_open
&gt; 
&gt; Then I would not change this in MiniBrowser. The spec says 100 is the
&gt; minimum but not the default, so we can change that behavior and use a
&gt; different default size, for example parent window size.


Its there a spec for this minimum/default size? I can&apos;t find any reference at https://html.spec.whatwg.org/multipage/window-object.html#dom-open

What Firefox and Chrome seem to do its to open new windows without a specific size on new tabs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639593</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-09 05:47:45 -0700</bug_when>
    <thetext>I saw it in https://www.w3schools.com/jsref/met_win_open.asp also included in https://developer.mozilla.org/en-US/docs/Web/API/Window/open#Window_features</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1639844</commentid>
    <comment_count>9</comment_count>
      <attachid>396003</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-09 13:45:47 -0700</bug_when>
    <thetext>Created attachment 396003
Patch

v2: set the default requested window size to the one of the old window</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1640085</commentid>
    <comment_count>10</comment_count>
      <attachid>396003</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-10 02:34:00 -0700</bug_when>
    <thetext>Comment on attachment 396003
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        The size of the new window its not specified, and we were defaulting

is not specified

&gt; Source/WebCore/ChangeLog:12
&gt; +        to the minimum of 100x100 which its just too small for some tests

which is

&gt; Source/WebCore/loader/FrameLoader.cpp:-4133
&gt; -    // Zero width and height mean using default size, not minumum one.

So, WebCore is indeed doing the right thing here, if not size is specified the default one is used. We are failing to provide a default size when windowRect is called before the window is shown. We can fix it in GLib UI client doing something like this in windowFrame():

        GdkRectangle geometry = { 0, 0, 0, 0 };
        GtkWidget* window = gtk_widget_get_toplevel(GTK_WIDGET(m_webView));
        if (WebCore::widgetIsOnscreenToplevelWindow(window) &amp;&amp; gtk_widget_get_visible(window)) {
            gtk_window_get_position(GTK_WINDOW(window), &amp;geometry.x, &amp;geometry.y);
            gtk_window_get_size(GTK_WINDOW(window), &amp;geometry.width, &amp;geometry.height);
        } else {
            GdkRectangle defaultGeometry;
            webkit_window_properties_get_geometry(webkit_web_view_get_window_properties(m_webView), &amp;defaultGeometry);
            if ((!defaultGeometry.width || !defaultGeometry.height) &amp;&amp; WebCore::widgetIsOnscreenToplevelWindow(window)) {
                int defaultWidth, defaultHeight;
                gtk_window_get_default_size(GTK_WINDOW(window), &amp;defaultWidth, &amp;defaultHeight);
                if (!defaultGeometry.width &amp;&amp; defaultWidth != -1)
                    geometry.width = defaultWidth;
                if (!defaultGeometry.height &amp;&amp; defaultHeight != -1)
                    geometry.height = defaultHeight;
            }
        }
        completionHandler(WebCore::FloatRect(geometry));

Note that we will still get 100x100 when the window doesn&apos;t have a default size set (it&apos;s not the case of MiniBrowser), but we don&apos;t have a way to get the previous window here, so I think we can just assume that apps should handle that case by setting their own minimum size if 100x100 is too small.

&gt; Source/WebCore/loader/FrameLoader.cpp:4141
&gt; +    else
&gt; +        windowRect.setWidth(oldWindowRect.width());

This is changing the behavior for other ports, I think we should handle this in WebKit layer, but if we end up doing it here, it should be under plartform ifdefs, or ar least only done when windowRect.width() == 0.

&gt; Source/WebCore/loader/FrameLoader.cpp:4145
&gt; +    else
&gt; +        windowRect.setHeight(oldWindowRect.height());

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641504</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-14 12:42:33 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #10)
&gt; Comment on attachment 396003 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396003&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        The size of the new window its not specified, and we were defaulting
&gt; 
&gt; is not specified
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:12
&gt; &gt; +        to the minimum of 100x100 which its just too small for some tests
&gt; 
&gt; which is
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:-4133
&gt; &gt; -    // Zero width and height mean using default size, not minumum one.
&gt; 
&gt; So, WebCore is indeed doing the right thing here, if not size is specified
&gt; the default one is used. We are failing to provide a default size when
&gt; windowRect is called before the window is shown. We can fix it in GLib UI
&gt; client doing something like this in windowFrame():
&gt; 
&gt;         GdkRectangle geometry = { 0, 0, 0, 0 };
&gt;         GtkWidget* window = gtk_widget_get_toplevel(GTK_WIDGET(m_webView));
&gt;         if (WebCore::widgetIsOnscreenToplevelWindow(window) &amp;&amp;
&gt; gtk_widget_get_visible(window)) {
&gt;             gtk_window_get_position(GTK_WINDOW(window), &amp;geometry.x,
&gt; &amp;geometry.y);
&gt;             gtk_window_get_size(GTK_WINDOW(window), &amp;geometry.width,
&gt; &amp;geometry.height);
&gt;         } else {
&gt;             GdkRectangle defaultGeometry;
&gt;            
&gt; webkit_window_properties_get_geometry(webkit_web_view_get_window_properties(m
&gt; _webView), &amp;defaultGeometry);
&gt;             if ((!defaultGeometry.width || !defaultGeometry.height) &amp;&amp;
&gt; WebCore::widgetIsOnscreenToplevelWindow(window)) {
&gt;                 int defaultWidth, defaultHeight;
&gt;                 gtk_window_get_default_size(GTK_WINDOW(window),
&gt; &amp;defaultWidth, &amp;defaultHeight);
&gt;                 if (!defaultGeometry.width &amp;&amp; defaultWidth != -1)
&gt;                     geometry.width = defaultWidth;
&gt;                 if (!defaultGeometry.height &amp;&amp; defaultHeight != -1)
&gt;                     geometry.height = defaultHeight;
&gt;             }
&gt;         }
&gt;         completionHandler(WebCore::FloatRect(geometry));
&gt; 

Good point and thanks for the hints! :)

&gt; Note that we will still get 100x100 when the window doesn&apos;t have a default
&gt; size set (it&apos;s not the case of MiniBrowser), but we don&apos;t have a way to get
&gt; the previous window here, so I think we can just assume that apps should
&gt; handle that case by setting their own minimum size if 100x100 is too small.
&gt; 

I see.
Maybe we can try to do both things? use the default window size if set, and if there is no default window size, then use the size of the previous window.

&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:4141
&gt; &gt; +    else
&gt; &gt; +        windowRect.setWidth(oldWindowRect.width());
&gt; 
&gt; This is changing the behavior for other ports, I think we should handle this
&gt; in WebKit layer, but if we end up doing it here, it should be under
&gt; plartform ifdefs, or ar least only done when windowRect.width() == 0.
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:4145
&gt; &gt; +    else
&gt; &gt; +        windowRect.setHeight(oldWindowRect.height());
&gt; 
&gt; Ditto.

Ok.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641506</commentid>
    <comment_count>12</comment_count>
      <attachid>396452</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-14 12:57:25 -0700</bug_when>
    <thetext>Created attachment 396452
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641514</commentid>
    <comment_count>13</comment_count>
      <attachid>396454</attachid>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-14 13:10:10 -0700</bug_when>
    <thetext>Created attachment 396454
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641733</commentid>
    <comment_count>14</comment_count>
      <attachid>396454</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2020-04-15 03:04:54 -0700</bug_when>
    <thetext>Comment on attachment 396454
Patch

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

&gt; Source/WebCore/ChangeLog:11
&gt; +        The size of the new window is not specified, and we were failimg

failimg -&gt; failing

&gt; Source/WebCore/loader/FrameLoader.cpp:4129
&gt; +#if PLATFORM(GTK) || PLATFORM(WPE)

I&apos;m not sure this works in WPE. It&apos;s unfortunate we have to do this here, but we don&apos;t have access to the previous window from the API layer.

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:370
&gt; +#if PLATFORM(GTK)
&gt; +        if (m_shouldCreateWebViewsInNewWindowsAutomatically) {
&gt; +            g_assert_null(m_parentWindow);
&gt; +            m_parentWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
&gt; +            gtk_window_set_default_size(GTK_WINDOW(m_parentWindow), m_DefaultGeometryNewWindows.width, m_DefaultGeometryNewWindows.height);
&gt; +            gtk_container_add(GTK_CONTAINER(m_parentWindow), GTK_WIDGET(newWebView));
&gt; +            gtk_widget_show(GTK_WIDGET(newWebView));
&gt; +            gtk_widget_show(m_parentWindow);
&gt; +        }
&gt; +#endif

Maybe we can just change showInWindowAndWaitUntilMapped() to set the default size, I don&apos;t think that will affect other tests. Ok, I see now that we need it for this particular test. Then I would add a parameter ShouldSetDefaultSize or something similar.

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:705
&gt; +    // if no size specified for window.open(), then new windows open with the default window size.

If

&gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:715
&gt; +    // if no size specified for window.open(), and new windows are not set to a specific default size with gtk_window_set_default_size()

If</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1641743</commentid>
    <comment_count>15</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-15 05:32:54 -0700</bug_when>
    <thetext>(In reply to Carlos Garcia Campos from comment #14)
&gt; Comment on attachment 396454 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=396454&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:11
&gt; &gt; +        The size of the new window is not specified, and we were failimg
&gt; 
&gt; failimg -&gt; failing
&gt; 
&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:4129
&gt; &gt; +#if PLATFORM(GTK) || PLATFORM(WPE)
&gt; 
&gt; I&apos;m not sure this works in WPE. It&apos;s unfortunate we have to do this here,
&gt; but we don&apos;t have access to the previous window from the API layer.
&gt; 

I tested with some printfs and it seems WPE always reports the size of the view backend as the default window size. I&apos;m not 100% sure if you can have a view backend without a specified size, but I suspect its not possible. So I guess this its not needed for WPE.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:370
&gt; &gt; +#if PLATFORM(GTK)
&gt; &gt; +        if (m_shouldCreateWebViewsInNewWindowsAutomatically) {
&gt; &gt; +            g_assert_null(m_parentWindow);
&gt; &gt; +            m_parentWindow = gtk_window_new(GTK_WINDOW_TOPLEVEL);
&gt; &gt; +            gtk_window_set_default_size(GTK_WINDOW(m_parentWindow), m_DefaultGeometryNewWindows.width, m_DefaultGeometryNewWindows.height);
&gt; &gt; +            gtk_container_add(GTK_CONTAINER(m_parentWindow), GTK_WIDGET(newWebView));
&gt; &gt; +            gtk_widget_show(GTK_WIDGET(newWebView));
&gt; &gt; +            gtk_widget_show(m_parentWindow);
&gt; &gt; +        }
&gt; &gt; +#endif
&gt; 
&gt; Maybe we can just change showInWindowAndWaitUntilMapped() to set the default
&gt; size, I don&apos;t think that will affect other tests. Ok, I see now that we need
&gt; it for this particular test. Then I would add a parameter
&gt; ShouldSetDefaultSize or something similar.
&gt; 

I tried but I couldn&apos;t manage to set a default size from the function showInWindowAndWaitUntilMapped() that webkit_window_properties_get_geometry() would report.

As far as I can see the main issue with showInWindowAndWaitUntilMapped() its that its not called on the &quot;create&quot; signal when the webview its created, but its called manually by the test after that.
So it works when you care about setting a size for the current test window but it doesn&apos;t work for setting an automatic/default size for a new window that opens.

For this test to work I need to set the default size of the window when the new webview its created in the signal handler for the &quot;create&quot; signal, so when the signal &quot;ready-to-show&quot; triggers the window already has a default size that webkit_window_properties_get_geometry() can query.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1642194</commentid>
    <comment_count>16</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2020-04-16 04:22:59 -0700</bug_when>
    <thetext>Committed r260176: &lt;https://trac.webkit.org/changeset/260176&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>395850</attachid>
            <date>2020-04-08 11:59:05 -0700</date>
            <delta_ts>2020-04-09 13:45:44 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210206-20200408205904.patch</filename>
            <type>text/plain</type>
            <size>6088</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUwODM2ZmM5MDI4ODMz
NTkyMWE1NWFjYzI3NzFjOGRmOTAzZmVjNC4uMDgyMzFjNzRiODBlOTBlMDg1MjA0YmY2MjkwYTgx
OTI4YTMzZWYyYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDIwLTA0LTA4ICBDYXJs
b3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtH
VEtdIE1pbmlCcm93c2VyIG9wZW5zIG5ldyB3aW5kb3dzIHRvbyBzbWFsbCBjYXVzaW5nIGZhaWx1
cmVzIG9uIHNvbWUgV1BUIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTAyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBUbyBnZXQgdGhlIGRlZmF1bHQgY29vcmRpbmF0ZXMgb2YgdGhlIG5ldyB3
aW5kb3cgd2Ugd2VyZSB1c2luZworICAgICAgICBnZGtfZGlzcGxheV9nZXRfbW9uaXRvcigpIHdp
dGgganVzdCB0aGUgZmlyc3QgbW9uaXRvciBhdmFpbGFibGUuCisgICAgICAgIFRoaXMgY2F1c2Vz
IGlzc3VlcyBpbiB0aGUgY2FsY3VsYXRpb24gb2YgdGhlIGF2YWlsYWJsZSBzcGFjZSB3aGVuCisg
ICAgICAgIHVzaW5nIHNldmVyYWwgbW9uaXRvcnMuIEluc3RlYWQgZ2V0IHRoZSBtb25pdG9yIGlu
IHVzZSBieSBsb29raW5nCisgICAgICAgIGF0IHRoZSBjdXJyZW50IEdESyByb290IHdpbmRvdy4K
KworICAgICAgICBObyBuZXcgdGVzdHMsIGNvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdC4KKworICAg
ICAgICAqIHBsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpzY3JlZW5BdmFpbGFibGVSZWN0KToKKwogMjAyMC0wNC0wOCAgS2VpdGggUm9sbGluICA8
a3JvbGxpbkBhcHBsZS5jb20+CiAKICAgICAgICAgRW5hYmxlIHRoZSB1c2Ugb2YgWENCdWlsZCBi
eSBkZWZhdWx0IGluIEFwcGxlIGJ1aWxkcwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZwppbmRleCAxMWRlNGUzOWY4NjUxNWIxMjQ2
M2Y0ODJkYmM3YzhjMDA4NDNmYWE0Li44OWY2NGQ2NTQ4MTNlMDAyZDlhMmUzZjg3ZTMzOWUzYzJm
NTQxNjY2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZworKysgYi9Tb3VyY2Uv
V2ViS2l0L0NoYW5nZUxvZwpAQCAtMSwzICsxLDE0IEBACisyMDIwLTA0LTA4ICBDYXJsb3MgQWxi
ZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIE1p
bmlCcm93c2VyIG9wZW5zIG5ldyB3aW5kb3dzIHRvbyBzbWFsbCBjYXVzaW5nIGZhaWx1cmVzIG9u
IHNvbWUgV1BUIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0yMTAyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBVcGRhdGUgdGhlIGRvY3VtZW50YXRpb24gd2l0aCBhIGNvbW1lbnQgcmVnYXJkaW5n
IHRoaXMgbGltaXQuCisKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0V2luZG93
UHJvcGVydGllcy5jcHA6CisKIDIwMjAtMDQtMDggIENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dh
cmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIEVuc3VyZSBiYXNlIGNhY2hlIHBhdGggZXhpc3Rz
IGJlZm9yZSBjYWxjdWxhdGluZyBkaXNrIGNhY2hlIGNhcGFjaXR5CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcAppbmRleCBjYmFmOWVmYmMw
MWNmNzBiYTVmOTU2MzQwMmE4MWMxNzNkMGM5YTk4Li5mZDAxNTM2MTM0YTVmYjIwMGEwY2EwN2M1
M2NhZTY3MDlmM2MwYWE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsv
UGxhdGZvcm1TY3JlZW5HdGsuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9Q
bGF0Zm9ybVNjcmVlbkd0ay5jcHAKQEAgLTE2MCw3ICsxNjAsMTEgQEAgRmxvYXRSZWN0IHNjcmVl
bkF2YWlsYWJsZVJlY3QoV2lkZ2V0KikKICAgICBpZiAoIWRpc3BsYXkpCiAgICAgICAgIHJldHVy
biB7IH07CiAKLSAgICBhdXRvKiBtb25pdG9yID0gZ2RrX2Rpc3BsYXlfZ2V0X21vbml0b3IoZGlz
cGxheSwgMCk7CisgICAgYXV0byogcm9vdFdpbmRvdyA9IGdka19nZXRfZGVmYXVsdF9yb290X3dp
bmRvdygpOworICAgIGlmICghcm9vdFdpbmRvdykKKyAgICAgICAgcmV0dXJuIHsgfTsKKworICAg
IGF1dG8qIG1vbml0b3IgPSBnZGtfZGlzcGxheV9nZXRfbW9uaXRvcl9hdF93aW5kb3coZGlzcGxh
eSwgcm9vdFdpbmRvdyk7CiAgICAgaWYgKCFtb25pdG9yKQogICAgICAgICByZXR1cm4geyB9Owog
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRXaW5k
b3dQcm9wZXJ0aWVzLmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdpbmRvd1Byb3BlcnRpZXMuY3BwCmluZGV4IDhmMWUyNjFhYTkzZDM2MDU1ZTUyZmI5YzI5MWU3
OTkzYTcwYjZjYzMuLjkwZGVmYmJhNzIyODUwMTFjZDk4MDFkNGIzOWVlZGIyNGMxOWNhNDMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFdpbmRvd1By
b3BlcnRpZXMuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktp
dFdpbmRvd1Byb3BlcnRpZXMuY3BwCkBAIC00Myw2ICs0MywxMCBAQCB1c2luZyBuYW1lc3BhY2Ug
V2ViQ29yZTsKICAqIHNjcm9sbGJhciwgc3RhdHVzYmFyLCBsb2NhdGlvbmJhciBzaG91bGQgYmUg
dmlzaWJsZSB0byB0aGUgdXNlciwKICAqIGFuZCB0aGUgcmVxdWVzdCB0byBzaG93IHRoZSAjV2Vi
S2l0V2ViVmlldyBmdWxsc2NyZWVuLgogICoKKyAqIE5ldyB3aW5kb3dzIGNyZWF0ZWQgdmlhIEph
dmFTY3JpcHQgd2l0aCBXaW5kb3cub3BlbigpIGNhbiBvbmx5IHJlcXVlc3QKKyAqIHNpemVzIGJp
Z2dlciB0aGFuIDEwMHgxMDAuIEFuZCBpZiBubyBzaXplIGl0cyBzcGVjaWZpZWQgdGhlbiB0aGlz
IHZhbHVlCisgKiB3aWxsIGJlIHVzZWQgYXMgZGVmYXVsdCBmb3IgdGhlIHJlcXVlc3Qgb2YgdGhl
IG5ldyB3aW5kb3cgc2l6ZS4KKyAqCiAgKiBUaGUgI1dlYktpdFdlYlZpZXc6OnJlYWR5LXRvLXNo
b3cgc2lnbmFsIGhhbmRsZXIgaXMgdGhlIHByb3BlciBwbGFjZQogICogdG8gYXBwbHkgdGhlIGlu
aXRpYWwgd2luZG93IHByb3BlcnRpZXMuIFRoZW4geW91IGNhbiBtb25pdG9yIHRoZQogICogI1dl
YktpdFdpbmRvd1Byb3BlcnRpZXMgYnkgY29ubmVjdGluZyB0byA6Om5vdGlmeSBzaWduYWwuCmRp
ZmYgLS1naXQgYS9Ub29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNzlkZmRl
NDk5NGVhNTk3NjQ0OGM3YWYzMGU2YjRjZThhNGJiZDJjZi4uNDU5M2I0Y2Q4ZmY1ZjA4YmY2MjVh
ZGZjMDkyY2U2YThjYjYyMzQyNiAxMDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rv
b2xzL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDIwLTA0LTA4ICBDYXJsb3MgQWxiZXJ0
byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIE1pbmlC
cm93c2VyIG9wZW5zIG5ldyB3aW5kb3dzIHRvbyBzbWFsbCBjYXVzaW5nIGZhaWx1cmVzIG9uIHNv
bWUgV1BUIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD0yMTAyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBTb21lIFdQVCB0ZXN0cyAod2hlbiBleGVjdXRlZCB3aXRoIHRoZSBXUFQgcnVubmVyIHZp
YSBXZWJEcml2ZXIpIG9wZW4gbmV3IGJyb3dzZXIKKyAgICAgICAgd2luZG93cyB2aWEgSmF2YVNj
cmlwdCBpbnZva2luZyBXaW5kb3cub3BlbigpIGFuZCB0aGVuIHJ1biB0aGUgdGVzdCBvbiB0aGlz
IG5ldyB3aW5kb3cuCisgICAgICAgIEFuZCB0aGVyZSBhcmUgaXNzdWVzIHdoZW4gdGhlIHRlc3Qg
aXRzZWxmIGNhbGxzIGRvY3VtZW50LmVsZW1lbnRGcm9tUG9pbnQoKQorICAgICAgICBvbiBzb21l
IGNvb3JkaW5hdGVzIHRoYXQgYXJlIG91dHNpZGUgb2YgdGhlIHdpbmRvdyBzaXplLgorCisgICAg
ICAgIFRoZSBkZWZhdWx0L21pbmltdW0gc2l6ZSByZXF1ZXN0IGZvciBhIG5ldyB3aW5kb3cgdmlh
IFdpbmRvdy5vcGVuIGlzIDEwMHgxMDAsCisgICAgICAgIHNvIHRoaXMgcGF0Y2hlcyBjaGFuZ2Vz
IHRvIGNvZGUgdG8gaWdub3JlIHRoZSBzaXplIHJlcXVlc3QgaW4gdGhhdCBjYXNlLAorICAgICAg
ICB0aGF0IHdheSB0aGUgZGVmYXVsdCB2YWx1ZSBvZiA4MDB4NjAwIGZvciB0aGUgZGVmYXVsdCBN
aW5pQnJvd3NlciB3aW5kb3cKKyAgICAgICAgd2lsbCBiZSB1c2VkLgorCisgICAgICAgICogTWlu
aUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYzoKKyAgICAgICAgKHdlYlZpZXdSZWFkeVRvU2hv
dyk6CisKIDIwMjAtMDQtMDggIEtlaXRoIFJvbGxpbiAgPGtyb2xsaW5AYXBwbGUuY29tPgogCiAg
ICAgICAgIEVuYWJsZSB0aGUgdXNlIG9mIFhDQnVpbGQgYnkgZGVmYXVsdCBpbiBBcHBsZSBidWls
ZHMKZGlmZiAtLWdpdCBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2luZG93LmMgYi9U
b29scy9NaW5pQnJvd3Nlci9ndGsvQnJvd3NlcldpbmRvdy5jCmluZGV4IDIxYzNjM2QzNmI4Yjlh
NDZhNzg3ODFlOTExMmFiOTQ4ZDVmNjY3ZjYuLjgxYzQ4YTc4NDM2YzU2NzllOGMyZWUzNjViNzRm
MzU4NWMwYjM1NGMgMTAwNjQ0Ci0tLSBhL1Rvb2xzL01pbmlCcm93c2VyL2d0ay9Ccm93c2VyV2lu
ZG93LmMKKysrIGIvVG9vbHMvTWluaUJyb3dzZXIvZ3RrL0Jyb3dzZXJXaW5kb3cuYwpAQCAtMzE4
LDcgKzMxOCwxNCBAQCBzdGF0aWMgdm9pZCB3ZWJWaWV3UmVhZHlUb1Nob3coV2ViS2l0V2ViVmll
dyAqd2ViVmlldywgQnJvd3NlcldpbmRvdyAqd2luZG93KQogICAgIHdlYmtpdF93aW5kb3dfcHJv
cGVydGllc19nZXRfZ2VvbWV0cnkod2luZG93UHJvcGVydGllcywgJmdlb21ldHJ5KTsKICAgICBp
ZiAoZ2VvbWV0cnkueCA+PSAwICYmIGdlb21ldHJ5LnkgPj0gMCkKICAgICAgICAgZ3RrX3dpbmRv
d19tb3ZlKEdUS19XSU5ET1cod2luZG93KSwgZ2VvbWV0cnkueCwgZ2VvbWV0cnkueSk7Ci0gICAg
aWYgKGdlb21ldHJ5LndpZHRoID4gMCAmJiBnZW9tZXRyeS5oZWlnaHQgPiAwKQorICAgIC8qIE5l
dyB3aW5kb3dzIGNyZWF0ZWQgdmlhIEpTIFdpbmRvdy5vcGVuKCkgaGF2ZSBhIGRlZmF1bHQgKGFu
ZCBtaW5pbXVtKSBzaXplCisgICAgICogb2YgMTAweDEwMC4gQ2hlY2sgbWluaW11bVdpbmRvd1Np
emUoKSBhdCBXZWJDb3JlL3BhZ2UvQ2hyb21lQ2xpZW50LmgKKyAgICAgKiBUaGUgaXNzdWUgaXMg
dGhhdCAxMDB4MTAwIGl0cyB0b28gc21hbGwgYW5kIGNhdXNlIGZhaWx1cmVzIG9uIHNvbWUKKyAg
ICAgKiBXUFQgdGVzdHMgdGhhdCBjYWxsIFdpbmRvdy5vcGVuKCkgd2l0aG91dCBhIHNwZWNpZmlj
IHNpemUgcmVxdWVzdAorICAgICAqIGFuZCB0aGVuIHVzZSBlbGVtZW50RnJvbVBvaW50KCkgb24g
Y29vcmRpbmF0ZXMgb3V0c2lkZSBvZiAxMDB4MTAwLgorICAgICAqIElnbm9yZSBzaXplIHJlcXVl
c3RzIGZvciBuZXcgd2luZG93cyB3aXRoIHRoZSBkZWZhdWx0L21pbmltdW0gdmFsdWUuCisgICAg
ICovCisgICAgaWYgKGdlb21ldHJ5LndpZHRoID4gMTAwICYmIGdlb21ldHJ5LmhlaWdodCA+IDEw
MCkKICAgICAgICAgZ3RrX3dpbmRvd19yZXNpemUoR1RLX1dJTkRPVyh3aW5kb3cpLCBnZW9tZXRy
eS53aWR0aCwgZ2VvbWV0cnkuaGVpZ2h0KTsKIAogICAgIGlmICghd2Via2l0X3dpbmRvd19wcm9w
ZXJ0aWVzX2dldF90b29sYmFyX3Zpc2libGUod2luZG93UHJvcGVydGllcykpCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396003</attachid>
            <date>2020-04-09 13:45:47 -0700</date>
            <delta_ts>2020-04-14 12:57:20 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210206-20200409224546.patch</filename>
            <type>text/plain</type>
            <size>8992</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjU5NzEyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZDUwODM2ZmM5MDI4ODMz
NTkyMWE1NWFjYzI3NzFjOGRmOTAzZmVjNC4uMGRmYzFhYTZlZGU5MjZjZWZlYWI1M2EyZjFmYjFi
MDA3MzMyYjIwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM5IEBACisyMDIwLTA0LTA5ICBDYXJs
b3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtH
VEtdIE1pbmlCcm93c2VyIG9wZW5zIG5ldyB3aW5kb3dzIHRvbyBzbWFsbCBjYXVzaW5nIGZhaWx1
cmVzIG9uIHNvbWUgV1BUIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTAyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTb21lIFdQVCB0ZXN0cyAod2hlbiBleGVjdXRlZCB3aXRoIHRoZSBXUFQg
cnVubmVyIHZpYSBXZWJEcml2ZXIpCisgICAgICAgIG9wZW4gbmV3IGJyb3dzZXIgd2luZG93cyB2
aWEgSmF2YVNjcmlwdCBpbnZva2luZyBXaW5kb3cub3BlbigpCisgICAgICAgIGFuZCB0aGVuIHJ1
biB0aGUgdGVzdCBvbiB0aGlzIG5ldyB3aW5kb3cuCisgICAgICAgIFRoZSBzaXplIG9mIHRoZSBu
ZXcgd2luZG93IGl0cyBub3Qgc3BlY2lmaWVkLCBhbmQgd2Ugd2VyZSBkZWZhdWx0aW5nCisgICAg
ICAgIHRvIHRoZSBtaW5pbXVtIG9mIDEwMHgxMDAgd2hpY2ggaXRzIGp1c3QgdG9vIHNtYWxsIGZv
ciBzb21lIHRlc3RzCisgICAgICAgIHRoYXQgbGF0ZXIgY2FsbCBkb2N1bWVudC5lbGVtZW50RnJv
bVBvaW50KCkgb24gc29tZSBjb29yZGluYXRlcworICAgICAgICB0aGF0IGFyZSBvdXRzaWRlIG9m
IHRoYXQgc2l6ZS4KKworICAgICAgICBJbnN0ZWFkIG9mIGRlZmF1bHRpbmcgbm9uLXNwZWNpZmll
ZCBzaXplIGZvciBuZXcgd2luZG93cyB0byB0aGUKKyAgICAgICAgbWluaW11bSB2YWx1ZSwgY2hh
bmdlIHRoZSBiZWhhdmlvdXIgc28gaXQgZGVmYXVsdHMgdG8gdGhlIHNpemUKKyAgICAgICAgb2Yg
dGhlIHByZXZpb3VzIHdpbmRvdy4KKworICAgICAgICBBbHNvIGNoYW5nZSB0aGUgd2F5IHdlIHBv
c2l0aW9uIHRoZSBuZXcgd2luZG93IHRvIHdvcmsgYmV0dGVyIHdoZW4KKyAgICAgICAgdGhlIHN5
c3RlbSB1c2VzIG1vcmUgdGhhbiBvbmUgbW9uaXRvci4gUHJldmlvdXNseSB0byBnZXQgdGhlIGRl
ZmF1bHQKKyAgICAgICAgY29vcmRpbmF0ZXMgb2YgdGhlIG5ldyB3aW5kb3cgd2Ugd2VyZSB1c2lu
ZyBnZGtfZGlzcGxheV9nZXRfbW9uaXRvcigpCisgICAgICAgIHdpdGgganVzdCB0aGUgZmlyc3Qg
bW9uaXRvciBhdmFpbGFibGUuCisgICAgICAgIFRoaXMgY2F1c2VzIGlzc3VlcyBpbiB0aGUgY2Fs
Y3VsYXRpb24gb2YgdGhlIGF2YWlsYWJsZSBzcGFjZSB3aGVuCisgICAgICAgIHVzaW5nIHNldmVy
YWwgbW9uaXRvcnMuIEluc3RlYWQgZ2V0IHRoZSBtb25pdG9yIGluIHVzZSBieSBsb29raW5nCisg
ICAgICAgIGF0IHRoZSBjdXJyZW50IEdESyByb290IHdpbmRvdy4KKworICAgICAgICBUZXN0OiBU
ZXN0V2ViS2l0QVBJL1dlYktpdDJHdGsvVGVzdFVJQ2xpZW50Oi93ZWJraXQvV2ViS2l0V2ViVmll
dy9vcGVuLXdpbmRvdy1kZWZhdWx0LXNpemUKKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRl
ci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXaW5kb3cpOgorICAgICAgICAqIHBsYXRm
b3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRDdXJy
ZW50U2NyZWVuTW9uaXRvcik6CisgICAgICAgIChXZWJDb3JlOjpzY3JlZW5SZWN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OnNjcmVlbkF2YWlsYWJsZVJlY3QpOgorCiAyMDIwLTA0LTA4ICBLZWl0aCBS
b2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUgdGhlIHVzZSBvZiBY
Q0J1aWxkIGJ5IGRlZmF1bHQgaW4gQXBwbGUgYnVpbGRzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcAppbmRleCBjODZmYjc2ZmM1N2Q3MDJiNTQzMmY3NGU4YTMzMWI2YTFhZDJhYjc3
Li5lNjhiOGZhNTQ3MDQ0ZTU4MDFkNjkzYzdkYTZlYzllYWQxZDU3YzRlIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKQEAgLTQxMjQsMTcgKzQxMjQsMjUgQEAgUmVmUHRyPEZy
YW1lPiBjcmVhdGVXaW5kb3coRnJhbWUmIG9wZW5lckZyYW1lLCBGcmFtZSYgbG9va3VwRnJhbWUs
IEZyYW1lTG9hZFJlcXUKIAogICAgIC8vIEZJWE1FOiBXZSBzaG91bGQgcmVjb25jaWxlIHRoZSBp
bml0aWFsaXphdGlvbiBvZiB2aWV3cG9ydCBhcmd1bWVudHMgYmV0d2VlbiBpT1MgYW5kIG5vbi1J
T1MuCiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCisgICAgRmxvYXRSZWN0IG9sZFdpbmRvd1Jl
Y3QgPSBvbGRQYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CiAgICAgRmxvYXRTaXplIHZpZXdw
b3J0U2l6ZSA9IHBhZ2UtPmNocm9tZSgpLnBhZ2VSZWN0KCkuc2l6ZSgpOwogICAgIEZsb2F0UmVj
dCB3aW5kb3dSZWN0ID0gcGFnZS0+Y2hyb21lKCkud2luZG93UmVjdCgpOworCiAgICAgaWYgKGZl
YXR1cmVzLngpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0WCgqZmVhdHVyZXMueCk7CiAgICAgaWYg
KGZlYXR1cmVzLnkpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0WSgqZmVhdHVyZXMueSk7Ci0gICAg
Ly8gWmVybyB3aWR0aCBhbmQgaGVpZ2h0IG1lYW4gdXNpbmcgZGVmYXVsdCBzaXplLCBub3QgbWlu
dW11bSBvbmUuCisKKyAgICAvLyBaZXJvIChvciBub3Qgc3BlY2lmaWVkKSB3aWR0aCBhbmQgaGVp
Z2h0IG1lYW4gdXNpbmcgZGVmYXVsdCBzaXplLCBub3QgbWluaW11bSBvbmUuCisgICAgLy8gQW5k
IGFzIGEgZGVmYXVsdCBzaXplIHdlIHVzZSB0aGUgc2l6ZSBvZiB0aGUgb2xkIHdpbmRvdy4KICAg
ICBpZiAoZmVhdHVyZXMud2lkdGggJiYgKmZlYXR1cmVzLndpZHRoKQogICAgICAgICB3aW5kb3dS
ZWN0LnNldFdpZHRoKCpmZWF0dXJlcy53aWR0aCArICh3aW5kb3dSZWN0LndpZHRoKCkgLSB2aWV3
cG9ydFNpemUud2lkdGgoKSkpOworICAgIGVsc2UKKyAgICAgICAgd2luZG93UmVjdC5zZXRXaWR0
aChvbGRXaW5kb3dSZWN0LndpZHRoKCkpOwogICAgIGlmIChmZWF0dXJlcy5oZWlnaHQgJiYgKmZl
YXR1cmVzLmhlaWdodCkKICAgICAgICAgd2luZG93UmVjdC5zZXRIZWlnaHQoKmZlYXR1cmVzLmhl
aWdodCArICh3aW5kb3dSZWN0LmhlaWdodCgpIC0gdmlld3BvcnRTaXplLmhlaWdodCgpKSk7Cisg
ICAgZWxzZQorICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdodChvbGRXaW5kb3dSZWN0LmhlaWdo
dCgpKTsKIAogICAgIC8vIEVuc3VyZSBub24tTmFOIHZhbHVlcywgbWluaW11bSBzaXplIGFzIHdl
bGwgYXMgYmVpbmcgd2l0aGluIHZhbGlkIHNjcmVlbiBhcmVhLgogICAgIEZsb2F0UmVjdCBuZXdX
aW5kb3dSZWN0ID0gRE9NV2luZG93OjphZGp1c3RXaW5kb3dSZWN0KCpwYWdlLCB3aW5kb3dSZWN0
KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVl
bkd0ay5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsu
Y3BwCmluZGV4IGNiYWY5ZWZiYzAxY2Y3MGJhNWY5NTYzNDAyYTgxYzE3M2QwYzlhOTguLjc5ZDA2
N2U0OWY5NDljZjg4NDVkZWJlMTE4OWY4MDEwMWZhMjg2NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcApAQCAtMTM3LDE0ICsxMzcs
MjUgQEAgdm9pZCBzZXRTY3JlZW5EUElPYnNlcnZlckhhbmRsZXIoRnVuY3Rpb248dm9pZCgpPiYm
IGhhbmRsZXIsIHZvaWQqIGNvbnRleHQpCiAgICAgfQogfQogCi1GbG9hdFJlY3Qgc2NyZWVuUmVj
dChXaWRnZXQqKQorR2RrTW9uaXRvciogZ2V0Q3VycmVudFNjcmVlbk1vbml0b3IoKQogewotICAg
IEdka1JlY3RhbmdsZSBnZW9tZXRyeTsKICAgICBHZGtEaXNwbGF5KiBkaXNwbGF5ID0gZ2RrX2Rp
c3BsYXlfZ2V0X2RlZmF1bHQoKTsKICAgICBpZiAoIWRpc3BsYXkpCi0gICAgICAgIHJldHVybiB7
IH07CisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgYXV0byogcm9vdFdpbmRvdyA9IGdk
a19nZXRfZGVmYXVsdF9yb290X3dpbmRvdygpOworICAgIGlmICghcm9vdFdpbmRvdykKKyAgICAg
ICAgcmV0dXJuIG51bGxwdHI7CisKKyAgICByZXR1cm4gZ2RrX2Rpc3BsYXlfZ2V0X21vbml0b3Jf
YXRfd2luZG93KGRpc3BsYXksIHJvb3RXaW5kb3cpOworfQorCiAKLSAgICBhdXRvKiBtb25pdG9y
ID0gZ2RrX2Rpc3BsYXlfZ2V0X21vbml0b3IoZGlzcGxheSwgMCk7CitGbG9hdFJlY3Qgc2NyZWVu
UmVjdChXaWRnZXQqKQoreworICAgIEdka1JlY3RhbmdsZSBnZW9tZXRyeTsKKworICAgIGF1dG8q
IG1vbml0b3IgPSBnZXRDdXJyZW50U2NyZWVuTW9uaXRvcigpOwogICAgIGlmICghbW9uaXRvcikK
ICAgICAgICAgcmV0dXJuIHsgfTsKIApAQCAtMTU2LDExICsxNjcsOCBAQCBGbG9hdFJlY3Qgc2Ny
ZWVuUmVjdChXaWRnZXQqKQogRmxvYXRSZWN0IHNjcmVlbkF2YWlsYWJsZVJlY3QoV2lkZ2V0KikK
IHsKICAgICBHZGtSZWN0YW5nbGUgd29ya0FyZWE7Ci0gICAgR2RrRGlzcGxheSogZGlzcGxheSA9
IGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCk7Ci0gICAgaWYgKCFkaXNwbGF5KQotICAgICAgICBy
ZXR1cm4geyB9OwogCi0gICAgYXV0byogbW9uaXRvciA9IGdka19kaXNwbGF5X2dldF9tb25pdG9y
KGRpc3BsYXksIDApOworICAgIGF1dG8qIG1vbml0b3IgPSBnZXRDdXJyZW50U2NyZWVuTW9uaXRv
cigpOwogICAgIGlmICghbW9uaXRvcikKICAgICAgICAgcmV0dXJuIHsgfTsKIApkaWZmIC0tZ2l0
IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IDc5ZGZkZTQ5OTRlYTU5
NzY0NDhjN2FmMzBlNmI0Y2U4YTRiYmQyY2YuLmFiZTZiNDZkMzI3YzJkZDg2ZDAwZTlhMTMxODU5
NDM2NWU0YmEwOGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFu
Z2VMb2cKQEAgLTEsMyArMSwxOCBAQAorMjAyMC0wNC0wOSAgQ2FybG9zIEFsYmVydG8gTG9wZXog
UGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBNaW5pQnJvd3NlciBv
cGVucyBuZXcgd2luZG93cyB0b28gc21hbGwgY2F1c2luZyBmYWlsdXJlcyBvbiBzb21lIFdQVCB0
ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEw
MjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWRk
IGFuIEFQSSB0ZXN0IHRvIGNoZWNrIHRoYXQgd2luZG93Lm9wZW4oKSBieSBkZWZhdWx0IGdldHMg
YSBzaXplCisgICAgICAgIHJlcXVlc3QgZXF1YWwgdG8gdGhlIG9sZCB3aW5kb3cuCisKKyAgICAg
ICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcDoKKyAg
ICAgICAgKHRlc3RXZWJWaWV3V2luZG93UHJvcGVydGllcyk6CisgICAgICAgICh0ZXN0V2ViVmll
d09wZW5XaW5kb3dEZWZhdWx0U2l6ZSk6CisgICAgICAgIChiZWZvcmVBbGwpOgorCiAyMDIwLTA0
LTA4ICBLZWl0aCBSb2xsaW4gIDxrcm9sbGluQGFwcGxlLmNvbT4KIAogICAgICAgICBFbmFibGUg
dGhlIHVzZSBvZiBYQ0J1aWxkIGJ5IGRlZmF1bHQgaW4gQXBwbGUgYnVpbGRzCmRpZmYgLS1naXQg
YS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcCBi
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCmlu
ZGV4IDI5MjU2NzUyODQzMWFkMTZhNmE5MzYxNGZhODM0NzBhNDNlZGFiMzIuLjIwN2E5Yjg3MzA1
NTE4NDZmOWM2OTM2MTIzN2YyZTk0NjMyMzlkODEgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJL
aXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RX
ZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCkBAIC02NTEsMTIgKzY1
MSwxMiBAQCBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0phdmFTY3JpcHREaWFsb2dzKFVJQ2xpZW50
VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIAogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdXaW5k
b3dQcm9wZXJ0aWVzKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBz
dGF0aWMgY29uc3QgY2hhciogd2luZG93UHJvcnBlcnRpZXNTdHJpbmcgPSAibGVmdD0xMDAsdG9w
PTE1MCx3aWR0aD00MDAsaGVpZ2h0PTQwMCxsb2NhdGlvbj1ubyxtZW51YmFyPW5vLHN0YXR1cz1u
byx0b29sYmFyPW5vLHNjcm9sbGJhcnM9bm8iOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiB3aW5k
b3dQcm9wZXJ0aWVzU3RyaW5nID0gImxlZnQ9MTAwLHRvcD0xNTAsd2lkdGg9NDAwLGhlaWdodD00
MDAsbG9jYXRpb249bm8sbWVudWJhcj1ubyxzdGF0dXM9bm8sdG9vbGJhcj1ubyxzY3JvbGxiYXJz
PW5vIjsKICAgICBjYWlyb19yZWN0YW5nbGVfaW50X3QgZ2VvbWV0cnkgPSB7IDEwMCwgMTUwLCA0
MDAsIDQwMCB9OwogICAgIHRlc3QtPnNldEV4cGVjdGVkV2luZG93UHJvcGVydGllcyhVSUNsaWVu
dFRlc3Q6OldpbmRvd1Byb3BlcnRpZXMoJmdlb21ldHJ5LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBm
YWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlKSk7CiAKLSAgICBHVW5pcXVlUHRyPGNoYXI+IGh0bWxT
dHJpbmcoZ19zdHJkdXBfcHJpbnRmKCI8aHRtbD48Ym9keSBvbkxvYWQ9XCJ3aW5kb3cub3Blbign
JywgJycsICclcycpLmNsb3NlKCk7XCI+PC9ib2R5PjwvaHRtbD4iLCB3aW5kb3dQcm9ycGVydGll
c1N0cmluZykpOwotICAgIHRlc3QtPmxvYWRIdG1sKGh0bWxTdHJpbmcuZ2V0KCksIDApOworICAg
IEdVbmlxdWVQdHI8Y2hhcj4gaHRtbFN0cmluZyhnX3N0cmR1cF9wcmludGYoIjxodG1sPjxib2R5
IG9uTG9hZD1cIndpbmRvdy5vcGVuKCcnLCAnJywgJyVzJykuY2xvc2UoKTtcIj48L2JvZHk+PC9o
dG1sPiIsIHdpbmRvd1Byb3BlcnRpZXNTdHJpbmcpKTsKKyAgICB0ZXN0LT5sb2FkSHRtbChodG1s
U3RyaW5nLmdldCgpLCBudWxscHRyKTsKICAgICB0ZXN0LT53YWl0VW50aWxNYWluTG9vcEZpbmlz
aGVzKCk7CiAKICAgICBzdGF0aWMgY29uc3QgY2hhciogcHJvcGVydGllc0NoYW5nZWRbXSA9IHsK
QEAgLTY3NSw2ICs2NzUsMTggQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdXaW5kb3dQcm9wZXJ0
aWVzKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2VydF9jbXBp
bnQoZXZlbnRzWzJdLCA9PSwgVUlDbGllbnRUZXN0OjpDbG9zZSk7CiB9CiAKKyNpZiBQTEFURk9S
TShHVEspCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld09wZW5XaW5kb3dEZWZhdWx0U2l6ZShVSUNs
aWVudFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgLy8gaWYgbm8gc2l6ZSBzcGVj
aWZpZWQsIHRoZW4gbmV3IHdpbmRvd3Mgb3BlbiB3aXRoIHNhbWUgc2l6ZSB0aGFuIHRoZSBwcmV2
aW91cyBvbmUuCisgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90IGdlb21ldHJ5ID0geyAwLCAwLCA2
MjMsIDcxNSB9OworICAgIHRlc3QtPnNob3dJbldpbmRvd0FuZFdhaXRVbnRpbE1hcHBlZChHVEtf
V0lORE9XX1RPUExFVkVMLCA2MjMsIDcxNSk7CisgICAgdGVzdC0+c2V0RXhwZWN0ZWRXaW5kb3dQ
cm9wZXJ0aWVzKFVJQ2xpZW50VGVzdDo6V2luZG93UHJvcGVydGllcygmZ2VvbWV0cnksIHRydWUs
IHRydWUsIHRydWUsIHRydWUsIHRydWUsIHRydWUsIGZhbHNlKSk7CisgICAgdGVzdC0+bG9hZEh0
bWwoIjxodG1sPjxib2R5IG9uTG9hZD1cIndpbmRvdy5vcGVuKCkuY2xvc2UoKTtcIj48L2JvZHk+
PC9odG1sPiIsIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRpbE1haW5Mb29wRmluaXNoZXMo
KTsKK30KKyNlbmRpZgorCiAjaWYgUExBVEZPUk0oR1RLKQogc3RhdGljIHZvaWQgdGVzdFdlYlZp
ZXdNb3VzZVRhcmdldChVSUNsaWVudFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiB7CkBAIC0x
MjMwLDYgKzEyNDIsMTAgQEAgdm9pZCBiZWZvcmVBbGwoKQogICAgIE1vZGFsRGlhbG9nc1Rlc3Q6
OmFkZCgiV2ViS2l0V2ViVmlldyIsICJkaXNhbGxvdy1tb2RhbC1kaWFsb2dzIiwgdGVzdFdlYlZp
ZXdEaXNhbGxvd01vZGFsRGlhbG9ncyk7CiAgICAgVUlDbGllbnRUZXN0OjphZGQoIldlYktpdFdl
YlZpZXciLCAiamF2YXNjcmlwdC1kaWFsb2dzIiwgdGVzdFdlYlZpZXdKYXZhU2NyaXB0RGlhbG9n
cyk7CiAgICAgVUlDbGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAid2luZG93LXByb3Bl
cnRpZXMiLCB0ZXN0V2ViVmlld1dpbmRvd1Byb3BlcnRpZXMpOworI2lmIFBMQVRGT1JNKEdUSykK
KyAgICAvLyBGSVhNRTogSW1wbGVtZW50IHdlYmtpdF93aW5kb3dfcHJvcGVydGllc19nZXRfZ2Vv
bWV0cnkoKSBpbiBXUEUuCisgICAgVUlDbGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAi
b3Blbi13aW5kb3ctZGVmYXVsdC1zaXplIiwgdGVzdFdlYlZpZXdPcGVuV2luZG93RGVmYXVsdFNp
emUpOworI2VuZGlmCiAgICAgLy8gRklYTUU6IEltcGxlbWVudCBtb3VzZSBtb3ZlIGluIFdQRS4K
ICNpZiBQTEFURk9STShHVEspCiAgICAgVUlDbGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZpZXci
LCAibW91c2UtdGFyZ2V0IiwgdGVzdFdlYlZpZXdNb3VzZVRhcmdldCk7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396452</attachid>
            <date>2020-04-14 12:57:25 -0700</date>
            <delta_ts>2020-04-14 13:10:06 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210206-20200414215723.patch</filename>
            <type>text/plain</type>
            <size>15044</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2EwMDQ4M2QyMDU4OGY5
YmE1ZDcxYzFjYzk2NjQ5MzVmZjAwY2ZhOS4uY2U2NmZjYTBjZGU4MzYxZWQwODRiODA0OTc2M2Zk
MDBmN2IxM2I3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTA0LTE0ICBDYXJs
b3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtH
VEtdIE1pbmlCcm93c2VyIG9wZW5zIG5ldyB3aW5kb3dzIHRvbyBzbWFsbCBjYXVzaW5nIGZhaWx1
cmVzIG9uIHNvbWUgV1BUIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTAyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTb21lIFdQVCB0ZXN0cyAod2hlbiBleGVjdXRlZCB3aXRoIHRoZSBXUFQg
cnVubmVyIHZpYSBXZWJEcml2ZXIpCisgICAgICAgIG9wZW4gbmV3IGJyb3dzZXIgd2luZG93cyB2
aWEgSmF2YVNjcmlwdCBpbnZva2luZyBXaW5kb3cub3BlbigpCisgICAgICAgIGFuZCB0aGVuIHJ1
biB0aGUgdGVzdCBvbiB0aGlzIG5ldyB3aW5kb3cuCisgICAgICAgIFRoZSBzaXplIG9mIHRoZSBu
ZXcgd2luZG93IGlzIG5vdCBzcGVjaWZpZWQsIGFuZCB3ZSB3ZXJlIGZhaWxpbWcKKyAgICAgICAg
dG8gcHJvdmlkZSBhIGRlZmF1bHQgd2luZG93IHNpemUsIHNvIGl0IHdhcyB1c2luZyB0aGUgbWlu
aW11bSBvZgorICAgICAgICAxMDB4MTAwIHdoaWNoIGl0cyBqdXN0IHRvbyBzbWFsbCBmb3Igc29t
ZSB0ZXN0IHRoYXQgbGF0ZXIgY2FsbAorICAgICAgICBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50
KCkgb24gc29tZSBjb29yZGluYXRlcworICAgICAgICB0aGF0IGFyZSBvdXRzaWRlIG9mIHRoYXQg
c2l6ZS4KKworICAgICAgICBUbyBmaXggdGhhdCBwcm92aWRlIHRoZSBzaXplIG9mIHRoZSBkZWZh
dWx0IEdUSyB3aW5kb3cgdG8gV2ViQ29yZQorICAgICAgICBpZiB0aGUgYXBwbGljYXRpb24gc2V0
cyBvbmUgdmlhIGd0a193aW5kb3dfc2V0X2RlZmF1bHRfc2l6ZSgpLgorICAgICAgICBBbmQgaWYg
bm90LCB0aGVuIHVzZSB0aGUgc2l6ZSBvZiB0aGUgcHJldmlvdXMgd2luZG93LgorCisgICAgICAg
IEFsc28gY2hhbmdlIHRoZSB3YXkgd2UgcG9zaXRpb24gdGhlIG5ldyB3aW5kb3cgdG8gd29yayBi
ZXR0ZXIgd2hlbgorICAgICAgICB0aGUgc3lzdGVtIHVzZXMgbW9yZSB0aGFuIG9uZSBtb25pdG9y
LiBQcmV2aW91c2x5IHRvIGdldCB0aGUgZGVmYXVsdAorICAgICAgICBjb29yZGluYXRlcyBvZiB0
aGUgbmV3IHdpbmRvdyB3ZSB3ZXJlIHVzaW5nIGdka19kaXNwbGF5X2dldF9tb25pdG9yKCkKKyAg
ICAgICAgd2l0aCBqdXN0IHRoZSBmaXJzdCBtb25pdG9yIGF2YWlsYWJsZS4KKyAgICAgICAgVGhp
cyBjYXVzZXMgaXNzdWVzIGluIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgYXZhaWxhYmxlIHNwYWNl
IHdoZW4KKyAgICAgICAgdXNpbmcgc2V2ZXJhbCBtb25pdG9ycy4gSW5zdGVhZCBnZXQgdGhlIG1v
bml0b3IgaW4gdXNlIGJ5IGxvb2tpbmcKKyAgICAgICAgYXQgdGhlIGN1cnJlbnQgR0RLIHJvb3Qg
d2luZG93LgorCisgICAgICAgIFRlc3RzOiBUZXN0V2ViS2l0QVBJL1dlYktpdDJHdGsvVGVzdFVJ
Q2xpZW50Oi93ZWJraXQvV2ViS2l0V2ViVmlldy9vcGVuLXdpbmRvdy1kZWZhdWx0LXNpemUKKyAg
ICAgICAgYW5kIFRlc3RXZWJLaXRBUEkvV2ViS2l0Mkd0ay9UZXN0VUlDbGllbnQ6L3dlYmtpdC9X
ZWJLaXRXZWJWaWV3L29wZW4td2luZG93LW5vLWRlZmF1bHQtc2l6ZQorCisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmdldEN1cnJlbnRTY3JlZW5Nb25pdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVl
blJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuQXZhaWxhYmxlUmVjdCk6CisKIDIwMjAt
MDQtMTQgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBBZGFwdCB0byBHZGtWaXN1YWwgZGVwcmVjYXRpb24gYW5kIHJlbW92YWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggYzFhMTI3ZWNmYjE5MDk2NmJlZjY3NDAyM2FhZTgwMDBmMGU3YmUyNy4uMjFhZjYzYjY5
NWM5ZWEyZDY0NTE2NWJjNzE0Y2ZiNTFlODU3ODNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAyMC0wNC0xNCAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXSBNaW5pQnJvd3NlciBvcGVucyBuZXcgd2luZG93cyB0b28g
c21hbGwgY2F1c2luZyBmYWlsdXJlcyBvbiBzb21lIFdQVCB0ZXN0cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMjA2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSB0aGUgc2l6ZSBvZiB0aGUg
ZGVmYXVsdCB3aW5kb3cgKGlmIGlzIHNldCkgd2hlbiB3aW5kb3dSZWN0IGlzIGNhbGxlZAorICAg
ICAgICBiZWZvcmUgdGhlIHdpbmRvdyBpcyBzaG93bi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisKIDIwMjAtMDQtMTQgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCBwcm9jZXNzIFJUQyBOZXR3b3Jr
IG1lc3NhZ2VzIGNvbWluZyBmcm9tIE5ldHdvcmtQcm9jZXNzIGlmIExpYldlYlJUQ05ldHdvcmsg
aXMgbm90IGFjdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYzcx
NmQ3MjgwZjQ2MmNiNTY3Mzc1N2I0YmE0ZTNiMjRhYmVlOGRlMC4uNGQ4NTgxMGE5Yzg1ODc3ODUy
ZTA2NmYxY2E0NTZjODBiZGMyMzBhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCkBAIC00MTIwLDEyICs0MTIwLDIxIEBAIFJlZlB0cjxGcmFtZT4gY3JlYXRlV2luZG93KEZy
YW1lJiBvcGVuZXJGcmFtZSwgRnJhbWUmIGxvb2t1cEZyYW1lLCBGcmFtZUxvYWRSZXF1CiAgICAg
ICAgIHdpbmRvd1JlY3Quc2V0WCgqZmVhdHVyZXMueCk7CiAgICAgaWYgKGZlYXR1cmVzLnkpCiAg
ICAgICAgIHdpbmRvd1JlY3Quc2V0WSgqZmVhdHVyZXMueSk7Ci0gICAgLy8gWmVybyB3aWR0aCBh
bmQgaGVpZ2h0IG1lYW4gdXNpbmcgZGVmYXVsdCBzaXplLCBub3QgbWludW11bSBvbmUuCisgICAg
Ly8gWmVybyB3aWR0aCBhbmQgaGVpZ2h0IG1lYW4gdXNpbmcgZGVmYXVsdCBzaXplLCBub3QgbWlu
aW11bSBvbmUuCiAgICAgaWYgKGZlYXR1cmVzLndpZHRoICYmICpmZWF0dXJlcy53aWR0aCkKICAg
ICAgICAgd2luZG93UmVjdC5zZXRXaWR0aCgqZmVhdHVyZXMud2lkdGggKyAod2luZG93UmVjdC53
aWR0aCgpIC0gdmlld3BvcnRTaXplLndpZHRoKCkpKTsKICAgICBpZiAoZmVhdHVyZXMuaGVpZ2h0
ICYmICpmZWF0dXJlcy5oZWlnaHQpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0SGVpZ2h0KCpmZWF0
dXJlcy5oZWlnaHQgKyAod2luZG93UmVjdC5oZWlnaHQoKSAtIHZpZXdwb3J0U2l6ZS5oZWlnaHQo
KSkpOwogCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisgICAgRmxvYXRSZWN0
IG9sZFdpbmRvd1JlY3QgPSBvbGRQYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CisgICAgLy8g
VXNlIHRoZSBzaXplIG9mIHRoZSBwcmV2aW91cyB3aW5kb3cgaWYgdGhlcmUgaXMgbm8gZGVmYXVs
dCBzaXplLgorICAgIGlmICghd2luZG93UmVjdC53aWR0aCgpKQorICAgICAgICB3aW5kb3dSZWN0
LnNldFdpZHRoKG9sZFdpbmRvd1JlY3Qud2lkdGgoKSk7CisgICAgaWYgKCF3aW5kb3dSZWN0Lmhl
aWdodCgpKQorICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdodChvbGRXaW5kb3dSZWN0LmhlaWdo
dCgpKTsKKyNlbmRpZgorCiAgICAgLy8gRW5zdXJlIG5vbi1OYU4gdmFsdWVzLCBtaW5pbXVtIHNp
emUgYXMgd2VsbCBhcyBiZWluZyB3aXRoaW4gdmFsaWQgc2NyZWVuIGFyZWEuCiAgICAgRmxvYXRS
ZWN0IG5ld1dpbmRvd1JlY3QgPSBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHdp
bmRvd1JlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxh
dGZvcm1TY3JlZW5HdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
U2NyZWVuR3RrLmNwcAppbmRleCAxM2E4NzhiNDI0ZjA5YTk2YzNlZTE1MmYzOTNiYzBmNDY1Yzgx
NzlkLi42OTQ4MmJmNGU2MjlkMTQzMmZjMmY0OTVjOWZkMzM0NjFjODQyNmU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAKQEAgLTE0
NiwxNCArMTQ2LDI1IEBAIHZvaWQgc2V0U2NyZWVuRFBJT2JzZXJ2ZXJIYW5kbGVyKEZ1bmN0aW9u
PHZvaWQoKT4mJiBoYW5kbGVyLCB2b2lkKiBjb250ZXh0KQogICAgIH0KIH0KIAotRmxvYXRSZWN0
IHNjcmVlblJlY3QoV2lkZ2V0KikKK0dka01vbml0b3IqIGdldEN1cnJlbnRTY3JlZW5Nb25pdG9y
KCkKIHsKLSAgICBHZGtSZWN0YW5nbGUgZ2VvbWV0cnk7CiAgICAgR2RrRGlzcGxheSogZGlzcGxh
eSA9IGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCk7CiAgICAgaWYgKCFkaXNwbGF5KQotICAgICAg
ICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8qIHJvb3RX
aW5kb3cgPSBnZGtfZ2V0X2RlZmF1bHRfcm9vdF93aW5kb3coKTsKKyAgICBpZiAoIXJvb3RXaW5k
b3cpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGdka19kaXNwbGF5X2dl
dF9tb25pdG9yX2F0X3dpbmRvdyhkaXNwbGF5LCByb290V2luZG93KTsKK30KKwogCi0gICAgYXV0
byogbW9uaXRvciA9IGdka19kaXNwbGF5X2dldF9tb25pdG9yKGRpc3BsYXksIDApOworRmxvYXRS
ZWN0IHNjcmVlblJlY3QoV2lkZ2V0KikKK3sKKyAgICBHZGtSZWN0YW5nbGUgZ2VvbWV0cnk7CisK
KyAgICBhdXRvKiBtb25pdG9yID0gZ2V0Q3VycmVudFNjcmVlbk1vbml0b3IoKTsKICAgICBpZiAo
IW1vbml0b3IpCiAgICAgICAgIHJldHVybiB7IH07CiAKQEAgLTE2NSwxMSArMTc2LDggQEAgRmxv
YXRSZWN0IHNjcmVlblJlY3QoV2lkZ2V0KikKIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0
KFdpZGdldCopCiB7CiAgICAgR2RrUmVjdGFuZ2xlIHdvcmtBcmVhOwotICAgIEdka0Rpc3BsYXkq
IGRpc3BsYXkgPSBnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCgpOwotICAgIGlmICghZGlzcGxheSkK
LSAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIG1vbml0b3IgPSBnZGtfZGlzcGxheV9n
ZXRfbW9uaXRvcihkaXNwbGF5LCAwKTsKKyAgICBhdXRvKiBtb25pdG9yID0gZ2V0Q3VycmVudFNj
cmVlbk1vbml0b3IoKTsKICAgICBpZiAoIW1vbml0b3IpCiAgICAgICAgIHJldHVybiB7IH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50
LmNwcAppbmRleCBlN2E0NzliZmViNTJlNDlmZTdmZWRkMTY3NTdiZWVjNGM2N2RjZTdmLi5iOThm
N2I1YWYyODk4MjI5NmNjMTUyOGE4YWQwYjQwYzUxNTZlOTZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0yMjMsNiAr
MjIzLDE3IEBAIHByaXZhdGU6CiAgICAgICAgIGlmIChXZWJDb3JlOjp3aWRnZXRJc09uc2NyZWVu
VG9wbGV2ZWxXaW5kb3cod2luZG93KSAmJiBndGtfd2lkZ2V0X2dldF92aXNpYmxlKHdpbmRvdykp
IHsKICAgICAgICAgICAgIGd0a193aW5kb3dfZ2V0X3Bvc2l0aW9uKEdUS19XSU5ET1cod2luZG93
KSwgJmdlb21ldHJ5LngsICZnZW9tZXRyeS55KTsKICAgICAgICAgICAgIGd0a193aW5kb3dfZ2V0
X3NpemUoR1RLX1dJTkRPVyh3aW5kb3cpLCAmZ2VvbWV0cnkud2lkdGgsICZnZW9tZXRyeS5oZWln
aHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgR2RrUmVjdGFuZ2xlIGRlZmF1bHRH
ZW9tZXRyeTsKKyAgICAgICAgICAgIHdlYmtpdF93aW5kb3dfcHJvcGVydGllc19nZXRfZ2VvbWV0
cnkod2Via2l0X3dlYl92aWV3X2dldF93aW5kb3dfcHJvcGVydGllcyhtX3dlYlZpZXcpLCAmZGVm
YXVsdEdlb21ldHJ5KTsKKyAgICAgICAgICAgIGlmICgoIWRlZmF1bHRHZW9tZXRyeS53aWR0aCB8
fCAhZGVmYXVsdEdlb21ldHJ5LmhlaWdodCkgJiYgV2ViQ29yZTo6d2lkZ2V0SXNPbnNjcmVlblRv
cGxldmVsV2luZG93KHdpbmRvdykpIHsKKyAgICAgICAgICAgICAgICBpbnQgZGVmYXVsdFdpZHRo
LCBkZWZhdWx0SGVpZ2h0OworICAgICAgICAgICAgICAgIGd0a193aW5kb3dfZ2V0X2RlZmF1bHRf
c2l6ZShHVEtfV0lORE9XKHdpbmRvdyksICZkZWZhdWx0V2lkdGgsICZkZWZhdWx0SGVpZ2h0KTsK
KyAgICAgICAgICAgICAgICBpZiAoIWRlZmF1bHRHZW9tZXRyeS53aWR0aCAmJiBkZWZhdWx0V2lk
dGggIT0gLTEpCisgICAgICAgICAgICAgICAgICAgIGdlb21ldHJ5LndpZHRoID0gZGVmYXVsdFdp
ZHRoOworICAgICAgICAgICAgICAgIGlmICghZGVmYXVsdEdlb21ldHJ5LmhlaWdodCAmJiBkZWZh
dWx0SGVpZ2h0ICE9IC0xKQorICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeS5oZWlnaHQgPSBk
ZWZhdWx0SGVpZ2h0OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkZsb2F0UmVjdChnZW9tZXRyeSkpOwogI2VsaWYgUExBVEZPUk0o
V1BFKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGE3MGM0OTlmM2Q2MmU4Y2IyZmY1ODliYmNmZDU3YzU3MTNkMTllMDMuLjRkY2YzZjVjMjYxMjgw
OGMwZTFhNDZkMjc5MDQ0YThmODU2ZDNhM2EgMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzOSBAQAorMjAyMC0wNC0xNCAgQ2FybG9z
IEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RL
XSBNaW5pQnJvd3NlciBvcGVucyBuZXcgd2luZG93cyB0b28gc21hbGwgY2F1c2luZyBmYWlsdXJl
cyBvbiBzb21lIFdQVCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEwMjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHR3byBBUEkgdGVzdCB0byBjaGVjayB0aGF0IHdpbmRvdy5vcGVuKCkg
YnkgZGVmYXVsdCBnZXRzIGEgc2l6ZQorICAgICAgICByZXF1ZXN0IGVxdWFsIHRvIHRoZSBvbGQg
d2luZG93IGlmIHRoZXJlIGlzIG5vIGRlZmF1bHQgd2luZG93IHNpemUsCisgICAgICAgIG9yIHRv
IHRoZSBkZWZhdWx0IHdpbmRvdyBpZiB0aGVyZSBpcyBhIGRlZmF1bHQgd2luZG93IHNpemUuCisK
KyAgICAgICAgQSBuZXcgZnVuY3Rpb24gaGVscGVyIHNldENyZWF0ZU5ld1dlYlZpZXdzSW5XaW5k
b3dzV2l0aERlZmF1bHRTaXplKCkKKyAgICAgICAgaXRzIGFkZGVkIHRvIGNyZWF0ZSBuZXcgd2Vi
dmlld3MgaW4gbmV3IHdpbmRvd3MgYXV0b21hdGljYWxseSwgd2hpY2gKKyAgICAgICAgaXRzIG5l
ZWRlZCB0byB0ZXN0IHRoZSBjYXNlIG9mIGhhdmluZyBhIGRlZmF1bHQgd2luZG93IHNpemUuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNw
cDoKKyAgICAgICAgKHRlc3RXZWJWaWV3V2luZG93UHJvcGVydGllcyk6CisgICAgICAgICh0ZXN0
V2ViVmlld09wZW5XaW5kb3dEZWZhdWx0U2l6ZSk6CisgICAgICAgICh0ZXN0V2ViVmlld09wZW5X
aW5kb3dOb0RlZmF1bHRTaXplKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisKKzIwMjAtMDQtMDkg
IENhcmxvcyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CisKKyAgICAg
ICAgW0dUS10gTWluaUJyb3dzZXIgb3BlbnMgbmV3IHdpbmRvd3MgdG9vIHNtYWxsIGNhdXNpbmcg
ZmFpbHVyZXMgb24gc29tZSBXUFQgdGVzdHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTIxMDIwNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIEFkZCBhbiBBUEkgdGVzdCB0byBjaGVjayB0aGF0IHdpbmRvdy5v
cGVuKCkgYnkgZGVmYXVsdCBnZXRzIGEgc2l6ZQorICAgICAgICByZXF1ZXN0IGVxdWFsIHRvIHRo
ZSBvbGQgd2luZG93LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGli
L1Rlc3RVSUNsaWVudC5jcHA6CisgICAgICAgICh0ZXN0V2ViVmlld1dpbmRvd1Byb3BlcnRpZXMp
OgorICAgICAgICAodGVzdFdlYlZpZXdPcGVuV2luZG93RGVmYXVsdFNpemUpOgorICAgICAgICAo
YmVmb3JlQWxsKToKKwogMjAyMC0wNC0xNCAgQ2FybG9zIEdhcmNpYSBDYW1wb3MgIDxjZ2FyY2lh
QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQnJpbmcgYmFjayBzdXBwb3J0IGZvciByZW5k
ZXJpbmcgc2Nyb2xsYmFycyB1c2luZyB0aGUgc3lzdGVtIGFwcGVhcmFuY2UKZGlmZiAtLWdpdCBh
L1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKaW5k
ZXggMjkyNTY3NTI4NDMxYWQxNmE2YTkzNjE0ZmE4MzQ3MGE0M2VkYWIzMi4uMTg4YWMzMzdhZmZm
ODg1Mjg0NDNhMzVhODVmZWY5YTliNDI3ZjMwZSAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktp
dEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKKysrIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9UZXN0cy9XZWJLaXRHTGliL1Rlc3RVSUNsaWVudC5jcHAKQEAgLTMwNyw2ICszMDcs
MTUgQEAgcHVibGljOgogICAgICAgICBtX3dpbmRvd1Byb3BlcnRpZXMgPSB3aW5kb3dQcm9wZXJ0
aWVzOwogICAgIH0KIAorI2lmIFBMQVRGT1JNKEdUSykKKyAgICB2b2lkIHNldENyZWF0ZU5ld1dl
YlZpZXdzSW5XaW5kb3dzV2l0aERlZmF1bHRTaXplKGludCB3aWR0aCA9IDgwMCwgaW50IGhlaWdo
dCA9IDYwMCkKKyAgICB7CisgICAgICAgIG1fc2hvdWxkQ3JlYXRlV2ViVmlld3NJbk5ld1dpbmRv
d3NBdXRvbWF0aWNhbGx5ID0gdHJ1ZTsKKyAgICAgICAgbV9EZWZhdWx0R2VvbWV0cnlOZXdXaW5k
b3dzLndpZHRoID0gd2lkdGg7CisgICAgICAgIG1fRGVmYXVsdEdlb21ldHJ5TmV3V2luZG93cy5o
ZWlnaHQgPSBoZWlnaHQ7CisgICAgfQorI2VuZGlmCisKICAgICBXZWJLaXRIaXRUZXN0UmVzdWx0
KiBtb3ZlTW91c2VBbmRXYWl0VW50aWxNb3VzZVRhcmdldENoYW5nZWQoaW50IHgsIGludCB5LCB1
bnNpZ25lZCBtb3VzZU1vZGlmaWVycyA9IDApCiAgICAgewogICAgICAgICBtX3dhaXRpbmdGb3JN
b3VzZVRhcmdldENoYW5nZSA9IHRydWU7CkBAIC0zNDksNiArMzU4LDE2IEBAIHB1YmxpYzoKICAg
ICAgICAgZ19zaWduYWxfY29ubmVjdChuZXdXZWJWaWV3LCAicmVhZHktdG8tc2hvdyIsIEdfQ0FM
TEJBQ0sodmlld1JlYWR5VG9TaG93Q2FsbGJhY2spLCB0aGlzKTsKICAgICAgICAgZ19zaWduYWxf
Y29ubmVjdChuZXdXZWJWaWV3LCAiY2xvc2UiLCBHX0NBTExCQUNLKHZpZXdDbG9zZUNhbGxiYWNr
KSwgdGhpcyk7CiAKKyNpZiBQTEFURk9STShHVEspCisgICAgICAgIGlmIChtX3Nob3VsZENyZWF0
ZVdlYlZpZXdzSW5OZXdXaW5kb3dzQXV0b21hdGljYWxseSkgeworICAgICAgICAgICAgZ19hc3Nl
cnRfbnVsbChtX3BhcmVudFdpbmRvdyk7CisgICAgICAgICAgICBtX3BhcmVudFdpbmRvdyA9IGd0
a193aW5kb3dfbmV3KEdUS19XSU5ET1dfVE9QTEVWRUwpOworICAgICAgICAgICAgZ3RrX3dpbmRv
d19zZXRfZGVmYXVsdF9zaXplKEdUS19XSU5ET1cobV9wYXJlbnRXaW5kb3cpLCBtX0RlZmF1bHRH
ZW9tZXRyeU5ld1dpbmRvd3Mud2lkdGgsIG1fRGVmYXVsdEdlb21ldHJ5TmV3V2luZG93cy5oZWln
aHQpOworICAgICAgICAgICAgZ3RrX2NvbnRhaW5lcl9hZGQoR1RLX0NPTlRBSU5FUihtX3BhcmVu
dFdpbmRvdyksIEdUS19XSURHRVQobmV3V2ViVmlldykpOworICAgICAgICAgICAgZ3RrX3dpZGdl
dF9zaG93KEdUS19XSURHRVQobmV3V2ViVmlldykpOworICAgICAgICAgICAgZ3RrX3dpZGdldF9z
aG93KG1fcGFyZW50V2luZG93KTsKKyAgICAgICAgfQorI2VuZGlmCiAgICAgICAgIHJldHVybiBX
RUJLSVRfV0VCX1ZJRVcobmV3V2ViVmlldyk7CiAgICAgfQogCkBAIC0zODgsNiArNDA3LDExIEBA
IHB1YmxpYzoKICAgICB1bnNpZ25lZCBtX21vdXNlVGFyZ2V0TW9kaWZpZXJzOwogICAgIEdVbmlx
dWVQdHI8Y2hhcj4gbV9wZXJtaXNzaW9uUmVzdWx0OwogICAgIGJvb2wgbV93YWl0aW5nRm9yTW91
c2VUYXJnZXRDaGFuZ2UgeyBmYWxzZSB9OworCisjaWYgUExBVEZPUk0oR1RLKQorICAgIGJvb2wg
bV9zaG91bGRDcmVhdGVXZWJWaWV3c0luTmV3V2luZG93c0F1dG9tYXRpY2FsbHkgeyBmYWxzZSB9
OworICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCBtX0RlZmF1bHRHZW9tZXRyeU5ld1dpbmRvd3M7
CisjZW5kaWYKIH07CiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3Q3JlYXRlUmVhZHlDbG9zZShV
SUNsaWVudFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCkBAIC02NTEsMTIgKzY3NSwxMiBAQCBz
dGF0aWMgdm9pZCB0ZXN0V2ViVmlld0phdmFTY3JpcHREaWFsb2dzKFVJQ2xpZW50VGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKIAogc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdXaW5kb3dQcm9wZXJ0
aWVzKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKLSAgICBzdGF0aWMgY29u
c3QgY2hhciogd2luZG93UHJvcnBlcnRpZXNTdHJpbmcgPSAibGVmdD0xMDAsdG9wPTE1MCx3aWR0
aD00MDAsaGVpZ2h0PTQwMCxsb2NhdGlvbj1ubyxtZW51YmFyPW5vLHN0YXR1cz1ubyx0b29sYmFy
PW5vLHNjcm9sbGJhcnM9bm8iOworICAgIHN0YXRpYyBjb25zdCBjaGFyKiB3aW5kb3dQcm9wZXJ0
aWVzU3RyaW5nID0gImxlZnQ9MTAwLHRvcD0xNTAsd2lkdGg9NDAwLGhlaWdodD00MDAsbG9jYXRp
b249bm8sbWVudWJhcj1ubyxzdGF0dXM9bm8sdG9vbGJhcj1ubyxzY3JvbGxiYXJzPW5vIjsKICAg
ICBjYWlyb19yZWN0YW5nbGVfaW50X3QgZ2VvbWV0cnkgPSB7IDEwMCwgMTUwLCA0MDAsIDQwMCB9
OwogICAgIHRlc3QtPnNldEV4cGVjdGVkV2luZG93UHJvcGVydGllcyhVSUNsaWVudFRlc3Q6Oldp
bmRvd1Byb3BlcnRpZXMoJmdlb21ldHJ5LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIHRydWUsIGZhbHNlKSk7CiAKLSAgICBHVW5pcXVlUHRyPGNoYXI+IGh0bWxTdHJpbmcoZ19z
dHJkdXBfcHJpbnRmKCI8aHRtbD48Ym9keSBvbkxvYWQ9XCJ3aW5kb3cub3BlbignJywgJycsICcl
cycpLmNsb3NlKCk7XCI+PC9ib2R5PjwvaHRtbD4iLCB3aW5kb3dQcm9ycGVydGllc1N0cmluZykp
OwotICAgIHRlc3QtPmxvYWRIdG1sKGh0bWxTdHJpbmcuZ2V0KCksIDApOworICAgIEdVbmlxdWVQ
dHI8Y2hhcj4gaHRtbFN0cmluZyhnX3N0cmR1cF9wcmludGYoIjxodG1sPjxib2R5IG9uTG9hZD1c
IndpbmRvdy5vcGVuKCcnLCAnJywgJyVzJykuY2xvc2UoKTtcIj48L2JvZHk+PC9odG1sPiIsIHdp
bmRvd1Byb3BlcnRpZXNTdHJpbmcpKTsKKyAgICB0ZXN0LT5sb2FkSHRtbChodG1sU3RyaW5nLmdl
dCgpLCBudWxscHRyKTsKICAgICB0ZXN0LT53YWl0VW50aWxNYWluTG9vcEZpbmlzaGVzKCk7CiAK
ICAgICBzdGF0aWMgY29uc3QgY2hhciogcHJvcGVydGllc0NoYW5nZWRbXSA9IHsKQEAgLTY3NSw2
ICs2OTksMjkgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdXaW5kb3dQcm9wZXJ0aWVzKFVJQ2xp
ZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2Fzc2VydF9jbXBpbnQoZXZlbnRz
WzJdLCA9PSwgVUlDbGllbnRUZXN0OjpDbG9zZSk7CiB9CiAKKyNpZiBQTEFURk9STShHVEspCitz
dGF0aWMgdm9pZCB0ZXN0V2ViVmlld09wZW5XaW5kb3dEZWZhdWx0U2l6ZShVSUNsaWVudFRlc3Qq
IHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgLy8gaWYgbm8gc2l6ZSBzcGVjaWZpZWQgZm9y
IHdpbmRvdy5vcGVuKCksIHRoZW4gbmV3IHdpbmRvd3Mgb3BlbiB3aXRoIHRoZSBkZWZhdWx0IHdp
bmRvdyBzaXplLgorICAgIGNhaXJvX3JlY3RhbmdsZV9pbnRfdCBleHBlY3RlZEdlb21ldHJ5ID0g
eyAwLCAwLCA2MjMsIDcxNSB9OworICAgIHRlc3QtPnNldENyZWF0ZU5ld1dlYlZpZXdzSW5XaW5k
b3dzV2l0aERlZmF1bHRTaXplKGV4cGVjdGVkR2VvbWV0cnkud2lkdGgsIGV4cGVjdGVkR2VvbWV0
cnkuaGVpZ2h0KTsKKyAgICB0ZXN0LT5zZXRFeHBlY3RlZFdpbmRvd1Byb3BlcnRpZXMoVUlDbGll
bnRUZXN0OjpXaW5kb3dQcm9wZXJ0aWVzKCZleHBlY3RlZEdlb21ldHJ5LCBmYWxzZSwgZmFsc2Us
IGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZhbHNlKSk7CisgICAgdGVzdC0+bG9hZEh0bWwo
IjxodG1sPjxib2R5IG9uTG9hZD1cIndpbmRvdy5vcGVuKCcnLCAnJywgJ2xlZnQ9MCx0b3A9MCxs
b2NhdGlvbj1ubyxtZW51YmFyPW5vLHN0YXR1cz1ubyx0b29sYmFyPW5vLHNjcm9sbGJhcnM9bm8n
KS5jbG9zZSgpO1wiPjwvYm9keT48L2h0bWw+IiwgbnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVu
dGlsTWFpbkxvb3BGaW5pc2hlcygpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld09wZW5X
aW5kb3dOb0RlZmF1bHRTaXplKFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKK3sK
KyAgICAvLyBpZiBubyBzaXplIHNwZWNpZmllZCBmb3Igd2luZG93Lm9wZW4oKSwgYW5kIG5ldyB3
aW5kb3dzIGFyZSBub3Qgc2V0IHRvIGEgc3BlY2lmaWMgZGVmYXVsdCBzaXplIHdpdGggZ3RrX3dp
bmRvd19zZXRfZGVmYXVsdF9zaXplKCkKKyAgICAvLyBvbiB0aGUgY3JlYXRlIHNpZ25hbCwgdGhl
biBuZXcgd2luZG93cyBvcGVuIHdpdGggdGhlIHNpemUgb2YgdGhlIHByZXZpb3VzIHdpbmRvdy4K
KyAgICBjYWlyb19yZWN0YW5nbGVfaW50X3QgZXhwZWN0ZWRHZW9tZXRyeSA9IHsgMCwgMCwgNTI3
LCA2NzEgfTsKKyAgICB0ZXN0LT5zaG93SW5XaW5kb3dBbmRXYWl0VW50aWxNYXBwZWQoR1RLX1dJ
TkRPV19UT1BMRVZFTCwgZXhwZWN0ZWRHZW9tZXRyeS53aWR0aCwgZXhwZWN0ZWRHZW9tZXRyeS5o
ZWlnaHQpOworICAgIHRlc3QtPnNldEV4cGVjdGVkV2luZG93UHJvcGVydGllcyhVSUNsaWVudFRl
c3Q6OldpbmRvd1Byb3BlcnRpZXMoJmV4cGVjdGVkR2VvbWV0cnksIGZhbHNlLCBmYWxzZSwgZmFs
c2UsIGZhbHNlLCBmYWxzZSwgdHJ1ZSwgZmFsc2UpKTsKKyAgICB0ZXN0LT5sb2FkSHRtbCgiPGh0
bWw+PGJvZHkgb25Mb2FkPVwid2luZG93Lm9wZW4oJycsICcnLCAnbGVmdD0wLHRvcD0wLGxvY2F0
aW9uPW5vLG1lbnViYXI9bm8sc3RhdHVzPW5vLHRvb2xiYXI9bm8sc2Nyb2xsYmFycz1ubycpLmNs
b3NlKCk7XCI+PC9ib2R5PjwvaHRtbD4iLCBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxN
YWluTG9vcEZpbmlzaGVzKCk7Cit9CisjZW5kaWYKKwogI2lmIFBMQVRGT1JNKEdUSykKIHN0YXRp
YyB2b2lkIHRlc3RXZWJWaWV3TW91c2VUYXJnZXQoVUlDbGllbnRUZXN0KiB0ZXN0LCBnY29uc3Rw
b2ludGVyKQogewpAQCAtMTIzMCw2ICsxMjc3LDExIEBAIHZvaWQgYmVmb3JlQWxsKCkKICAgICBN
b2RhbERpYWxvZ3NUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAiZGlzYWxsb3ctbW9kYWwtZGlh
bG9ncyIsIHRlc3RXZWJWaWV3RGlzYWxsb3dNb2RhbERpYWxvZ3MpOwogICAgIFVJQ2xpZW50VGVz
dDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImphdmFzY3JpcHQtZGlhbG9ncyIsIHRlc3RXZWJWaWV3
SmF2YVNjcmlwdERpYWxvZ3MpOwogICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3
IiwgIndpbmRvdy1wcm9wZXJ0aWVzIiwgdGVzdFdlYlZpZXdXaW5kb3dQcm9wZXJ0aWVzKTsKKyNp
ZiBQTEFURk9STShHVEspCisgICAgLy8gRklYTUU6IEltcGxlbWVudCB3ZWJraXRfd2luZG93X3By
b3BlcnRpZXNfZ2V0X2dlb21ldHJ5KCkgaW4gV1BFLgorICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJX
ZWJLaXRXZWJWaWV3IiwgIm9wZW4td2luZG93LWRlZmF1bHQtc2l6ZSIsIHRlc3RXZWJWaWV3T3Bl
bldpbmRvd0RlZmF1bHRTaXplKTsKKyAgICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmll
dyIsICJvcGVuLXdpbmRvdy1uby1kZWZhdWx0LXNpemUiLCB0ZXN0V2ViVmlld09wZW5XaW5kb3dO
b0RlZmF1bHRTaXplKTsKKyNlbmRpZgogICAgIC8vIEZJWE1FOiBJbXBsZW1lbnQgbW91c2UgbW92
ZSBpbiBXUEUuCiAjaWYgUExBVEZPUk0oR1RLKQogICAgIFVJQ2xpZW50VGVzdDo6YWRkKCJXZWJL
aXRXZWJWaWV3IiwgIm1vdXNlLXRhcmdldCIsIHRlc3RXZWJWaWV3TW91c2VUYXJnZXQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>396454</attachid>
            <date>2020-04-14 13:10:10 -0700</date>
            <delta_ts>2020-04-15 03:04:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-210206-20200414221009.patch</filename>
            <type>text/plain</type>
            <size>14505</size>
            <attacher name="Carlos Alberto Lopez Perez">clopez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjYwMDcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2EwMDQ4M2QyMDU4OGY5
YmE1ZDcxYzFjYzk2NjQ5MzVmZjAwY2ZhOS4uY2U2NmZjYTBjZGU4MzYxZWQwODRiODA0OTc2M2Zk
MDBmN2IxM2I3OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQxIEBACisyMDIwLTA0LTE0ICBDYXJs
b3MgQWxiZXJ0byBMb3BleiBQZXJleiAgPGNsb3BlekBpZ2FsaWEuY29tPgorCisgICAgICAgIFtH
VEtdIE1pbmlCcm93c2VyIG9wZW5zIG5ldyB3aW5kb3dzIHRvbyBzbWFsbCBjYXVzaW5nIGZhaWx1
cmVzIG9uIHNvbWUgV1BUIHRlc3RzCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0yMTAyMDYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBTb21lIFdQVCB0ZXN0cyAod2hlbiBleGVjdXRlZCB3aXRoIHRoZSBXUFQg
cnVubmVyIHZpYSBXZWJEcml2ZXIpCisgICAgICAgIG9wZW4gbmV3IGJyb3dzZXIgd2luZG93cyB2
aWEgSmF2YVNjcmlwdCBpbnZva2luZyBXaW5kb3cub3BlbigpCisgICAgICAgIGFuZCB0aGVuIHJ1
biB0aGUgdGVzdCBvbiB0aGlzIG5ldyB3aW5kb3cuCisgICAgICAgIFRoZSBzaXplIG9mIHRoZSBu
ZXcgd2luZG93IGlzIG5vdCBzcGVjaWZpZWQsIGFuZCB3ZSB3ZXJlIGZhaWxpbWcKKyAgICAgICAg
dG8gcHJvdmlkZSBhIGRlZmF1bHQgd2luZG93IHNpemUsIHNvIGl0IHdhcyB1c2luZyB0aGUgbWlu
aW11bSBvZgorICAgICAgICAxMDB4MTAwIHdoaWNoIGl0cyBqdXN0IHRvbyBzbWFsbCBmb3Igc29t
ZSB0ZXN0IHRoYXQgbGF0ZXIgY2FsbAorICAgICAgICBkb2N1bWVudC5lbGVtZW50RnJvbVBvaW50
KCkgb24gc29tZSBjb29yZGluYXRlcworICAgICAgICB0aGF0IGFyZSBvdXRzaWRlIG9mIHRoYXQg
c2l6ZS4KKworICAgICAgICBUbyBmaXggdGhhdCBwcm92aWRlIHRoZSBzaXplIG9mIHRoZSBkZWZh
dWx0IEdUSyB3aW5kb3cgdG8gV2ViQ29yZQorICAgICAgICBpZiB0aGUgYXBwbGljYXRpb24gc2V0
cyBvbmUgdmlhIGd0a193aW5kb3dfc2V0X2RlZmF1bHRfc2l6ZSgpLgorICAgICAgICBBbmQgaWYg
bm90LCB0aGVuIHVzZSB0aGUgc2l6ZSBvZiB0aGUgcHJldmlvdXMgd2luZG93LgorCisgICAgICAg
IEFsc28gY2hhbmdlIHRoZSB3YXkgd2UgcG9zaXRpb24gdGhlIG5ldyB3aW5kb3cgdG8gd29yayBi
ZXR0ZXIgd2hlbgorICAgICAgICB0aGUgc3lzdGVtIHVzZXMgbW9yZSB0aGFuIG9uZSBtb25pdG9y
LiBQcmV2aW91c2x5IHRvIGdldCB0aGUgZGVmYXVsdAorICAgICAgICBjb29yZGluYXRlcyBvZiB0
aGUgbmV3IHdpbmRvdyB3ZSB3ZXJlIHVzaW5nIGdka19kaXNwbGF5X2dldF9tb25pdG9yKCkKKyAg
ICAgICAgd2l0aCBqdXN0IHRoZSBmaXJzdCBtb25pdG9yIGF2YWlsYWJsZS4KKyAgICAgICAgVGhp
cyBjYXVzZXMgaXNzdWVzIGluIHRoZSBjYWxjdWxhdGlvbiBvZiB0aGUgYXZhaWxhYmxlIHNwYWNl
IHdoZW4KKyAgICAgICAgdXNpbmcgc2V2ZXJhbCBtb25pdG9ycy4gSW5zdGVhZCBnZXQgdGhlIG1v
bml0b3IgaW4gdXNlIGJ5IGxvb2tpbmcKKyAgICAgICAgYXQgdGhlIGN1cnJlbnQgR0RLIHJvb3Qg
d2luZG93LgorCisgICAgICAgIFRlc3RzOiBUZXN0V2ViS2l0QVBJL1dlYktpdDJHdGsvVGVzdFVJ
Q2xpZW50Oi93ZWJraXQvV2ViS2l0V2ViVmlldy9vcGVuLXdpbmRvdy1kZWZhdWx0LXNpemUKKyAg
ICAgICAgYW5kIFRlc3RXZWJLaXRBUEkvV2ViS2l0Mkd0ay9UZXN0VUlDbGllbnQ6L3dlYmtpdC9X
ZWJLaXRXZWJWaWV3L29wZW4td2luZG93LW5vLWRlZmF1bHQtc2l6ZQorCisgICAgICAgICogbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6Cisg
ICAgICAgICogcGxhdGZvcm0vZ3RrL1BsYXRmb3JtU2NyZWVuR3RrLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmdldEN1cnJlbnRTY3JlZW5Nb25pdG9yKToKKyAgICAgICAgKFdlYkNvcmU6OnNjcmVl
blJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6c2NyZWVuQXZhaWxhYmxlUmVjdCk6CisKIDIwMjAt
MDQtMTQgIENsYXVkaW8gU2FhdmVkcmEgIDxjc2FhdmVkcmFAaWdhbGlhLmNvbT4KIAogICAgICAg
ICBbR1RLXSBBZGFwdCB0byBHZGtWaXN1YWwgZGVwcmVjYXRpb24gYW5kIHJlbW92YWwKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
aW5kZXggYzFhMTI3ZWNmYjE5MDk2NmJlZjY3NDAyM2FhZTgwMDBmMGU3YmUyNy4uMjFhZjYzYjY5
NWM5ZWEyZDY0NTE2NWJjNzE0Y2ZiNTFlODU3ODNjNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNSBA
QAorMjAyMC0wNC0xNCAgQ2FybG9zIEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlh
LmNvbT4KKworICAgICAgICBbR1RLXSBNaW5pQnJvd3NlciBvcGVucyBuZXcgd2luZG93cyB0b28g
c21hbGwgY2F1c2luZyBmYWlsdXJlcyBvbiBzb21lIFdQVCB0ZXN0cworICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjEwMjA2CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUHJvdmlkZSB0aGUgc2l6ZSBvZiB0aGUg
ZGVmYXVsdCB3aW5kb3cgKGlmIGlzIHNldCkgd2hlbiB3aW5kb3dSZWN0IGlzIGNhbGxlZAorICAg
ICAgICBiZWZvcmUgdGhlIHdpbmRvdyBpcyBzaG93bi4KKworICAgICAgICAqIFVJUHJvY2Vzcy9B
UEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHA6CisKIDIwMjAtMDQtMTQgIFlvdWVubiBGYWJsZXQg
IDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIERvIG5vdCBwcm9jZXNzIFJUQyBOZXR3b3Jr
IG1lc3NhZ2VzIGNvbWluZyBmcm9tIE5ldHdvcmtQcm9jZXNzIGlmIExpYldlYlJUQ05ldHdvcmsg
aXMgbm90IGFjdGl2ZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9h
ZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKaW5kZXggYzcx
NmQ3MjgwZjQ2MmNiNTY3Mzc1N2I0YmE0ZTNiMjRhYmVlOGRlMC4uNGQ4NTgxMGE5Yzg1ODc3ODUy
ZTA2NmYxY2E0NTZjODBiZGMyMzBhNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIu
Y3BwCkBAIC00MTIwLDEyICs0MTIwLDIxIEBAIFJlZlB0cjxGcmFtZT4gY3JlYXRlV2luZG93KEZy
YW1lJiBvcGVuZXJGcmFtZSwgRnJhbWUmIGxvb2t1cEZyYW1lLCBGcmFtZUxvYWRSZXF1CiAgICAg
ICAgIHdpbmRvd1JlY3Quc2V0WCgqZmVhdHVyZXMueCk7CiAgICAgaWYgKGZlYXR1cmVzLnkpCiAg
ICAgICAgIHdpbmRvd1JlY3Quc2V0WSgqZmVhdHVyZXMueSk7Ci0gICAgLy8gWmVybyB3aWR0aCBh
bmQgaGVpZ2h0IG1lYW4gdXNpbmcgZGVmYXVsdCBzaXplLCBub3QgbWludW11bSBvbmUuCisgICAg
Ly8gWmVybyB3aWR0aCBhbmQgaGVpZ2h0IG1lYW4gdXNpbmcgZGVmYXVsdCBzaXplLCBub3QgbWlu
aW11bSBvbmUuCiAgICAgaWYgKGZlYXR1cmVzLndpZHRoICYmICpmZWF0dXJlcy53aWR0aCkKICAg
ICAgICAgd2luZG93UmVjdC5zZXRXaWR0aCgqZmVhdHVyZXMud2lkdGggKyAod2luZG93UmVjdC53
aWR0aCgpIC0gdmlld3BvcnRTaXplLndpZHRoKCkpKTsKICAgICBpZiAoZmVhdHVyZXMuaGVpZ2h0
ICYmICpmZWF0dXJlcy5oZWlnaHQpCiAgICAgICAgIHdpbmRvd1JlY3Quc2V0SGVpZ2h0KCpmZWF0
dXJlcy5oZWlnaHQgKyAod2luZG93UmVjdC5oZWlnaHQoKSAtIHZpZXdwb3J0U2l6ZS5oZWlnaHQo
KSkpOwogCisjaWYgUExBVEZPUk0oR1RLKSB8fCBQTEFURk9STShXUEUpCisgICAgRmxvYXRSZWN0
IG9sZFdpbmRvd1JlY3QgPSBvbGRQYWdlLT5jaHJvbWUoKS53aW5kb3dSZWN0KCk7CisgICAgLy8g
VXNlIHRoZSBzaXplIG9mIHRoZSBwcmV2aW91cyB3aW5kb3cgaWYgdGhlcmUgaXMgbm8gZGVmYXVs
dCBzaXplLgorICAgIGlmICghd2luZG93UmVjdC53aWR0aCgpKQorICAgICAgICB3aW5kb3dSZWN0
LnNldFdpZHRoKG9sZFdpbmRvd1JlY3Qud2lkdGgoKSk7CisgICAgaWYgKCF3aW5kb3dSZWN0Lmhl
aWdodCgpKQorICAgICAgICB3aW5kb3dSZWN0LnNldEhlaWdodChvbGRXaW5kb3dSZWN0LmhlaWdo
dCgpKTsKKyNlbmRpZgorCiAgICAgLy8gRW5zdXJlIG5vbi1OYU4gdmFsdWVzLCBtaW5pbXVtIHNp
emUgYXMgd2VsbCBhcyBiZWluZyB3aXRoaW4gdmFsaWQgc2NyZWVuIGFyZWEuCiAgICAgRmxvYXRS
ZWN0IG5ld1dpbmRvd1JlY3QgPSBET01XaW5kb3c6OmFkanVzdFdpbmRvd1JlY3QoKnBhZ2UsIHdp
bmRvd1JlY3QpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxh
dGZvcm1TY3JlZW5HdGsuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3RrL1BsYXRmb3Jt
U2NyZWVuR3RrLmNwcAppbmRleCAxM2E4NzhiNDI0ZjA5YTk2YzNlZTE1MmYzOTNiYzBmNDY1Yzgx
NzlkLi42OTQ4MmJmNGU2MjlkMTQzMmZjMmY0OTVjOWZkMzM0NjFjODQyNmU5IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ndGsvUGxhdGZvcm1TY3JlZW5HdGsuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2d0ay9QbGF0Zm9ybVNjcmVlbkd0ay5jcHAKQEAgLTE0
NiwxNCArMTQ2LDI1IEBAIHZvaWQgc2V0U2NyZWVuRFBJT2JzZXJ2ZXJIYW5kbGVyKEZ1bmN0aW9u
PHZvaWQoKT4mJiBoYW5kbGVyLCB2b2lkKiBjb250ZXh0KQogICAgIH0KIH0KIAotRmxvYXRSZWN0
IHNjcmVlblJlY3QoV2lkZ2V0KikKK0dka01vbml0b3IqIGdldEN1cnJlbnRTY3JlZW5Nb25pdG9y
KCkKIHsKLSAgICBHZGtSZWN0YW5nbGUgZ2VvbWV0cnk7CiAgICAgR2RrRGlzcGxheSogZGlzcGxh
eSA9IGdka19kaXNwbGF5X2dldF9kZWZhdWx0KCk7CiAgICAgaWYgKCFkaXNwbGF5KQotICAgICAg
ICByZXR1cm4geyB9OworICAgICAgICByZXR1cm4gbnVsbHB0cjsKKworICAgIGF1dG8qIHJvb3RX
aW5kb3cgPSBnZGtfZ2V0X2RlZmF1bHRfcm9vdF93aW5kb3coKTsKKyAgICBpZiAoIXJvb3RXaW5k
b3cpCisgICAgICAgIHJldHVybiBudWxscHRyOworCisgICAgcmV0dXJuIGdka19kaXNwbGF5X2dl
dF9tb25pdG9yX2F0X3dpbmRvdyhkaXNwbGF5LCByb290V2luZG93KTsKK30KKwogCi0gICAgYXV0
byogbW9uaXRvciA9IGdka19kaXNwbGF5X2dldF9tb25pdG9yKGRpc3BsYXksIDApOworRmxvYXRS
ZWN0IHNjcmVlblJlY3QoV2lkZ2V0KikKK3sKKyAgICBHZGtSZWN0YW5nbGUgZ2VvbWV0cnk7CisK
KyAgICBhdXRvKiBtb25pdG9yID0gZ2V0Q3VycmVudFNjcmVlbk1vbml0b3IoKTsKICAgICBpZiAo
IW1vbml0b3IpCiAgICAgICAgIHJldHVybiB7IH07CiAKQEAgLTE2NSwxMSArMTc2LDggQEAgRmxv
YXRSZWN0IHNjcmVlblJlY3QoV2lkZ2V0KikKIEZsb2F0UmVjdCBzY3JlZW5BdmFpbGFibGVSZWN0
KFdpZGdldCopCiB7CiAgICAgR2RrUmVjdGFuZ2xlIHdvcmtBcmVhOwotICAgIEdka0Rpc3BsYXkq
IGRpc3BsYXkgPSBnZGtfZGlzcGxheV9nZXRfZGVmYXVsdCgpOwotICAgIGlmICghZGlzcGxheSkK
LSAgICAgICAgcmV0dXJuIHsgfTsKIAotICAgIGF1dG8qIG1vbml0b3IgPSBnZGtfZGlzcGxheV9n
ZXRfbW9uaXRvcihkaXNwbGF5LCAwKTsKKyAgICBhdXRvKiBtb25pdG9yID0gZ2V0Q3VycmVudFNj
cmVlbk1vbml0b3IoKTsKICAgICBpZiAoIW1vbml0b3IpCiAgICAgICAgIHJldHVybiB7IH07CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xp
ZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQvVUlQcm9jZXNzL0FQSS9nbGliL1dlYktpdFVJQ2xpZW50
LmNwcAppbmRleCBlN2E0NzliZmViNTJlNDlmZTdmZWRkMTY3NTdiZWVjNGM2N2RjZTdmLi5iOThm
N2I1YWYyODk4MjI5NmNjMTUyOGE4YWQwYjQwYzUxNTZlOTZjIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0L1VJUHJvY2Vzcy9BUEkvZ2xpYi9XZWJLaXRVSUNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9VSVByb2Nlc3MvQVBJL2dsaWIvV2ViS2l0VUlDbGllbnQuY3BwCkBAIC0yMjMsNiAr
MjIzLDE3IEBAIHByaXZhdGU6CiAgICAgICAgIGlmIChXZWJDb3JlOjp3aWRnZXRJc09uc2NyZWVu
VG9wbGV2ZWxXaW5kb3cod2luZG93KSAmJiBndGtfd2lkZ2V0X2dldF92aXNpYmxlKHdpbmRvdykp
IHsKICAgICAgICAgICAgIGd0a193aW5kb3dfZ2V0X3Bvc2l0aW9uKEdUS19XSU5ET1cod2luZG93
KSwgJmdlb21ldHJ5LngsICZnZW9tZXRyeS55KTsKICAgICAgICAgICAgIGd0a193aW5kb3dfZ2V0
X3NpemUoR1RLX1dJTkRPVyh3aW5kb3cpLCAmZ2VvbWV0cnkud2lkdGgsICZnZW9tZXRyeS5oZWln
aHQpOworICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgR2RrUmVjdGFuZ2xlIGRlZmF1bHRH
ZW9tZXRyeTsKKyAgICAgICAgICAgIHdlYmtpdF93aW5kb3dfcHJvcGVydGllc19nZXRfZ2VvbWV0
cnkod2Via2l0X3dlYl92aWV3X2dldF93aW5kb3dfcHJvcGVydGllcyhtX3dlYlZpZXcpLCAmZGVm
YXVsdEdlb21ldHJ5KTsKKyAgICAgICAgICAgIGlmICgoIWRlZmF1bHRHZW9tZXRyeS53aWR0aCB8
fCAhZGVmYXVsdEdlb21ldHJ5LmhlaWdodCkgJiYgV2ViQ29yZTo6d2lkZ2V0SXNPbnNjcmVlblRv
cGxldmVsV2luZG93KHdpbmRvdykpIHsKKyAgICAgICAgICAgICAgICBpbnQgZGVmYXVsdFdpZHRo
LCBkZWZhdWx0SGVpZ2h0OworICAgICAgICAgICAgICAgIGd0a193aW5kb3dfZ2V0X2RlZmF1bHRf
c2l6ZShHVEtfV0lORE9XKHdpbmRvdyksICZkZWZhdWx0V2lkdGgsICZkZWZhdWx0SGVpZ2h0KTsK
KyAgICAgICAgICAgICAgICBpZiAoIWRlZmF1bHRHZW9tZXRyeS53aWR0aCAmJiBkZWZhdWx0V2lk
dGggIT0gLTEpCisgICAgICAgICAgICAgICAgICAgIGdlb21ldHJ5LndpZHRoID0gZGVmYXVsdFdp
ZHRoOworICAgICAgICAgICAgICAgIGlmICghZGVmYXVsdEdlb21ldHJ5LmhlaWdodCAmJiBkZWZh
dWx0SGVpZ2h0ICE9IC0xKQorICAgICAgICAgICAgICAgICAgICBnZW9tZXRyeS5oZWlnaHQgPSBk
ZWZhdWx0SGVpZ2h0OworICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgICAgIGNvbXBsZXRp
b25IYW5kbGVyKFdlYkNvcmU6OkZsb2F0UmVjdChnZW9tZXRyeSkpOwogI2VsaWYgUExBVEZPUk0o
V1BFKQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4
IGE3MGM0OTlmM2Q2MmU4Y2IyZmY1ODliYmNmZDU3YzU3MTNkMTllMDMuLjI1OWFjZTIzYmMwNmIy
N2U4OGM0OGIwZmYxYzJiNTM4MDdlN2Y0ODggMTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZwor
KysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyNCBAQAorMjAyMC0wNC0xNCAgQ2FybG9z
IEFsYmVydG8gTG9wZXogUGVyZXogIDxjbG9wZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RL
XSBNaW5pQnJvd3NlciBvcGVucyBuZXcgd2luZG93cyB0b28gc21hbGwgY2F1c2luZyBmYWlsdXJl
cyBvbiBzb21lIFdQVCB0ZXN0cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MjEwMjA2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgQWRkIHR3byBBUEkgdGVzdCB0byBjaGVjayB0aGF0IHdpbmRvdy5vcGVuKCkg
YnkgZGVmYXVsdCBnZXRzIGEgc2l6ZQorICAgICAgICByZXF1ZXN0IGVxdWFsIHRvIHRoZSBvbGQg
d2luZG93IGlmIHRoZXJlIGlzIG5vIGRlZmF1bHQgd2luZG93IHNpemUsCisgICAgICAgIG9yIHRv
IHRoZSBkZWZhdWx0IHdpbmRvdyBpZiB0aGVyZSBpcyBhIGRlZmF1bHQgd2luZG93IHNpemUuCisK
KyAgICAgICAgQSBuZXcgZnVuY3Rpb24gaGVscGVyIHNldENyZWF0ZU5ld1dlYlZpZXdzSW5XaW5k
b3dzV2l0aERlZmF1bHRTaXplKCkKKyAgICAgICAgaXRzIGFkZGVkIHRvIGNyZWF0ZSBuZXcgd2Vi
dmlld3MgaW4gbmV3IHdpbmRvd3MgYXV0b21hdGljYWxseSwgd2hpY2gKKyAgICAgICAgaXRzIG5l
ZWRlZCB0byB0ZXN0IHRoZSBjYXNlIG9mIGhhdmluZyBhIGRlZmF1bHQgd2luZG93IHNpemUuCisK
KyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNw
cDoKKyAgICAgICAgKHRlc3RXZWJWaWV3V2luZG93UHJvcGVydGllcyk6CisgICAgICAgICh0ZXN0
V2ViVmlld09wZW5XaW5kb3dEZWZhdWx0U2l6ZSk6CisgICAgICAgICh0ZXN0V2ViVmlld09wZW5X
aW5kb3dOb0RlZmF1bHRTaXplKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisKIDIwMjAtMDQtMTQg
IENhcmxvcyBHYXJjaWEgQ2FtcG9zICA8Y2dhcmNpYUBpZ2FsaWEuY29tPgogCiAgICAgICAgIFtH
VEtdIEJyaW5nIGJhY2sgc3VwcG9ydCBmb3IgcmVuZGVyaW5nIHNjcm9sbGJhcnMgdXNpbmcgdGhl
IHN5c3RlbSBhcHBlYXJhbmNlCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3Rz
L1dlYktpdEdMaWIvVGVzdFVJQ2xpZW50LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0R0xpYi9UZXN0VUlDbGllbnQuY3BwCmluZGV4IDI5MjU2NzUyODQzMWFkMTZhNmE5MzYx
NGZhODM0NzBhNDNlZGFiMzIuLjE4OGFjMzM3YWZmZjg4NTI4NDQzYTM1YTg1ZmVmOWE5YjQyN2Yz
MGUgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9UZXN0
VUlDbGllbnQuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0R0xpYi9U
ZXN0VUlDbGllbnQuY3BwCkBAIC0zMDcsNiArMzA3LDE1IEBAIHB1YmxpYzoKICAgICAgICAgbV93
aW5kb3dQcm9wZXJ0aWVzID0gd2luZG93UHJvcGVydGllczsKICAgICB9CiAKKyNpZiBQTEFURk9S
TShHVEspCisgICAgdm9pZCBzZXRDcmVhdGVOZXdXZWJWaWV3c0luV2luZG93c1dpdGhEZWZhdWx0
U2l6ZShpbnQgd2lkdGggPSA4MDAsIGludCBoZWlnaHQgPSA2MDApCisgICAgeworICAgICAgICBt
X3Nob3VsZENyZWF0ZVdlYlZpZXdzSW5OZXdXaW5kb3dzQXV0b21hdGljYWxseSA9IHRydWU7Cisg
ICAgICAgIG1fRGVmYXVsdEdlb21ldHJ5TmV3V2luZG93cy53aWR0aCA9IHdpZHRoOworICAgICAg
ICBtX0RlZmF1bHRHZW9tZXRyeU5ld1dpbmRvd3MuaGVpZ2h0ID0gaGVpZ2h0OworICAgIH0KKyNl
bmRpZgorCiAgICAgV2ViS2l0SGl0VGVzdFJlc3VsdCogbW92ZU1vdXNlQW5kV2FpdFVudGlsTW91
c2VUYXJnZXRDaGFuZ2VkKGludCB4LCBpbnQgeSwgdW5zaWduZWQgbW91c2VNb2RpZmllcnMgPSAw
KQogICAgIHsKICAgICAgICAgbV93YWl0aW5nRm9yTW91c2VUYXJnZXRDaGFuZ2UgPSB0cnVlOwpA
QCAtMzQ5LDYgKzM1OCwxNiBAQCBwdWJsaWM6CiAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QobmV3
V2ViVmlldywgInJlYWR5LXRvLXNob3ciLCBHX0NBTExCQUNLKHZpZXdSZWFkeVRvU2hvd0NhbGxi
YWNrKSwgdGhpcyk7CiAgICAgICAgIGdfc2lnbmFsX2Nvbm5lY3QobmV3V2ViVmlldywgImNsb3Nl
IiwgR19DQUxMQkFDSyh2aWV3Q2xvc2VDYWxsYmFjayksIHRoaXMpOwogCisjaWYgUExBVEZPUk0o
R1RLKQorICAgICAgICBpZiAobV9zaG91bGRDcmVhdGVXZWJWaWV3c0luTmV3V2luZG93c0F1dG9t
YXRpY2FsbHkpIHsKKyAgICAgICAgICAgIGdfYXNzZXJ0X251bGwobV9wYXJlbnRXaW5kb3cpOwor
ICAgICAgICAgICAgbV9wYXJlbnRXaW5kb3cgPSBndGtfd2luZG93X25ldyhHVEtfV0lORE9XX1RP
UExFVkVMKTsKKyAgICAgICAgICAgIGd0a193aW5kb3dfc2V0X2RlZmF1bHRfc2l6ZShHVEtfV0lO
RE9XKG1fcGFyZW50V2luZG93KSwgbV9EZWZhdWx0R2VvbWV0cnlOZXdXaW5kb3dzLndpZHRoLCBt
X0RlZmF1bHRHZW9tZXRyeU5ld1dpbmRvd3MuaGVpZ2h0KTsKKyAgICAgICAgICAgIGd0a19jb250
YWluZXJfYWRkKEdUS19DT05UQUlORVIobV9wYXJlbnRXaW5kb3cpLCBHVEtfV0lER0VUKG5ld1dl
YlZpZXcpKTsKKyAgICAgICAgICAgIGd0a193aWRnZXRfc2hvdyhHVEtfV0lER0VUKG5ld1dlYlZp
ZXcpKTsKKyAgICAgICAgICAgIGd0a193aWRnZXRfc2hvdyhtX3BhcmVudFdpbmRvdyk7CisgICAg
ICAgIH0KKyNlbmRpZgogICAgICAgICByZXR1cm4gV0VCS0lUX1dFQl9WSUVXKG5ld1dlYlZpZXcp
OwogICAgIH0KIApAQCAtMzg4LDYgKzQwNywxMSBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgbV9t
b3VzZVRhcmdldE1vZGlmaWVyczsKICAgICBHVW5pcXVlUHRyPGNoYXI+IG1fcGVybWlzc2lvblJl
c3VsdDsKICAgICBib29sIG1fd2FpdGluZ0Zvck1vdXNlVGFyZ2V0Q2hhbmdlIHsgZmFsc2UgfTsK
KworI2lmIFBMQVRGT1JNKEdUSykKKyAgICBib29sIG1fc2hvdWxkQ3JlYXRlV2ViVmlld3NJbk5l
d1dpbmRvd3NBdXRvbWF0aWNhbGx5IHsgZmFsc2UgfTsKKyAgICBjYWlyb19yZWN0YW5nbGVfaW50
X3QgbV9EZWZhdWx0R2VvbWV0cnlOZXdXaW5kb3dzOworI2VuZGlmCiB9OwogCiBzdGF0aWMgdm9p
ZCB0ZXN0V2ViVmlld0NyZWF0ZVJlYWR5Q2xvc2UoVUlDbGllbnRUZXN0KiB0ZXN0LCBnY29uc3Rw
b2ludGVyKQpAQCAtNjUxLDEyICs2NzUsMTIgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdKYXZh
U2NyaXB0RGlhbG9ncyhVSUNsaWVudFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAKIHN0YXRp
YyB2b2lkIHRlc3RXZWJWaWV3V2luZG93UHJvcGVydGllcyhVSUNsaWVudFRlc3QqIHRlc3QsIGdj
b25zdHBvaW50ZXIpCiB7Ci0gICAgc3RhdGljIGNvbnN0IGNoYXIqIHdpbmRvd1Byb3JwZXJ0aWVz
U3RyaW5nID0gImxlZnQ9MTAwLHRvcD0xNTAsd2lkdGg9NDAwLGhlaWdodD00MDAsbG9jYXRpb249
bm8sbWVudWJhcj1ubyxzdGF0dXM9bm8sdG9vbGJhcj1ubyxzY3JvbGxiYXJzPW5vIjsKKyAgICBz
dGF0aWMgY29uc3QgY2hhciogd2luZG93UHJvcGVydGllc1N0cmluZyA9ICJsZWZ0PTEwMCx0b3A9
MTUwLHdpZHRoPTQwMCxoZWlnaHQ9NDAwLGxvY2F0aW9uPW5vLG1lbnViYXI9bm8sc3RhdHVzPW5v
LHRvb2xiYXI9bm8sc2Nyb2xsYmFycz1ubyI7CiAgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90IGdl
b21ldHJ5ID0geyAxMDAsIDE1MCwgNDAwLCA0MDAgfTsKICAgICB0ZXN0LT5zZXRFeHBlY3RlZFdp
bmRvd1Byb3BlcnRpZXMoVUlDbGllbnRUZXN0OjpXaW5kb3dQcm9wZXJ0aWVzKCZnZW9tZXRyeSwg
ZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVlLCBmYWxzZSkpOwogCi0gICAg
R1VuaXF1ZVB0cjxjaGFyPiBodG1sU3RyaW5nKGdfc3RyZHVwX3ByaW50ZigiPGh0bWw+PGJvZHkg
b25Mb2FkPVwid2luZG93Lm9wZW4oJycsICcnLCAnJXMnKS5jbG9zZSgpO1wiPjwvYm9keT48L2h0
bWw+Iiwgd2luZG93UHJvcnBlcnRpZXNTdHJpbmcpKTsKLSAgICB0ZXN0LT5sb2FkSHRtbChodG1s
U3RyaW5nLmdldCgpLCAwKTsKKyAgICBHVW5pcXVlUHRyPGNoYXI+IGh0bWxTdHJpbmcoZ19zdHJk
dXBfcHJpbnRmKCI8aHRtbD48Ym9keSBvbkxvYWQ9XCJ3aW5kb3cub3BlbignJywgJycsICclcycp
LmNsb3NlKCk7XCI+PC9ib2R5PjwvaHRtbD4iLCB3aW5kb3dQcm9wZXJ0aWVzU3RyaW5nKSk7Cisg
ICAgdGVzdC0+bG9hZEh0bWwoaHRtbFN0cmluZy5nZXQoKSwgbnVsbHB0cik7CiAgICAgdGVzdC0+
d2FpdFVudGlsTWFpbkxvb3BGaW5pc2hlcygpOwogCiAgICAgc3RhdGljIGNvbnN0IGNoYXIqIHBy
b3BlcnRpZXNDaGFuZ2VkW10gPSB7CkBAIC02NzUsNiArNjk5LDI5IEBAIHN0YXRpYyB2b2lkIHRl
c3RXZWJWaWV3V2luZG93UHJvcGVydGllcyhVSUNsaWVudFRlc3QqIHRlc3QsIGdjb25zdHBvaW50
ZXIpCiAgICAgZ19hc3NlcnRfY21waW50KGV2ZW50c1syXSwgPT0sIFVJQ2xpZW50VGVzdDo6Q2xv
c2UpOwogfQogCisjaWYgUExBVEZPUk0oR1RLKQorc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdPcGVu
V2luZG93RGVmYXVsdFNpemUoVUlDbGllbnRUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQorewor
ICAgIC8vIGlmIG5vIHNpemUgc3BlY2lmaWVkIGZvciB3aW5kb3cub3BlbigpLCB0aGVuIG5ldyB3
aW5kb3dzIG9wZW4gd2l0aCB0aGUgZGVmYXVsdCB3aW5kb3cgc2l6ZS4KKyAgICBjYWlyb19yZWN0
YW5nbGVfaW50X3QgZXhwZWN0ZWRHZW9tZXRyeSA9IHsgMCwgMCwgNjIzLCA3MTUgfTsKKyAgICB0
ZXN0LT5zZXRDcmVhdGVOZXdXZWJWaWV3c0luV2luZG93c1dpdGhEZWZhdWx0U2l6ZShleHBlY3Rl
ZEdlb21ldHJ5LndpZHRoLCBleHBlY3RlZEdlb21ldHJ5LmhlaWdodCk7CisgICAgdGVzdC0+c2V0
RXhwZWN0ZWRXaW5kb3dQcm9wZXJ0aWVzKFVJQ2xpZW50VGVzdDo6V2luZG93UHJvcGVydGllcygm
ZXhwZWN0ZWRHZW9tZXRyeSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIGZhbHNlLCB0cnVl
LCBmYWxzZSkpOworICAgIHRlc3QtPmxvYWRIdG1sKCI8aHRtbD48Ym9keSBvbkxvYWQ9XCJ3aW5k
b3cub3BlbignJywgJycsICdsZWZ0PTAsdG9wPTAsbG9jYXRpb249bm8sbWVudWJhcj1ubyxzdGF0
dXM9bm8sdG9vbGJhcj1ubyxzY3JvbGxiYXJzPW5vJykuY2xvc2UoKTtcIj48L2JvZHk+PC9odG1s
PiIsIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRpbE1haW5Mb29wRmluaXNoZXMoKTsKK30K
Kworc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdPcGVuV2luZG93Tm9EZWZhdWx0U2l6ZShVSUNsaWVu
dFRlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgLy8gaWYgbm8gc2l6ZSBzcGVjaWZp
ZWQgZm9yIHdpbmRvdy5vcGVuKCksIGFuZCBuZXcgd2luZG93cyBhcmUgbm90IHNldCB0byBhIHNw
ZWNpZmljIGRlZmF1bHQgc2l6ZSB3aXRoIGd0a193aW5kb3dfc2V0X2RlZmF1bHRfc2l6ZSgpCisg
ICAgLy8gb24gdGhlIGNyZWF0ZSBzaWduYWwsIHRoZW4gbmV3IHdpbmRvd3Mgb3BlbiB3aXRoIHRo
ZSBzaXplIG9mIHRoZSBwcmV2aW91cyB3aW5kb3cuCisgICAgY2Fpcm9fcmVjdGFuZ2xlX2ludF90
IGV4cGVjdGVkR2VvbWV0cnkgPSB7IDAsIDAsIDUyNywgNjcxIH07CisgICAgdGVzdC0+c2hvd0lu
V2luZG93QW5kV2FpdFVudGlsTWFwcGVkKEdUS19XSU5ET1dfVE9QTEVWRUwsIGV4cGVjdGVkR2Vv
bWV0cnkud2lkdGgsIGV4cGVjdGVkR2VvbWV0cnkuaGVpZ2h0KTsKKyAgICB0ZXN0LT5zZXRFeHBl
Y3RlZFdpbmRvd1Byb3BlcnRpZXMoVUlDbGllbnRUZXN0OjpXaW5kb3dQcm9wZXJ0aWVzKCZleHBl
Y3RlZEdlb21ldHJ5LCBmYWxzZSwgZmFsc2UsIGZhbHNlLCBmYWxzZSwgZmFsc2UsIHRydWUsIGZh
bHNlKSk7CisgICAgdGVzdC0+bG9hZEh0bWwoIjxodG1sPjxib2R5IG9uTG9hZD1cIndpbmRvdy5v
cGVuKCcnLCAnJywgJ2xlZnQ9MCx0b3A9MCxsb2NhdGlvbj1ubyxtZW51YmFyPW5vLHN0YXR1cz1u
byx0b29sYmFyPW5vLHNjcm9sbGJhcnM9bm8nKS5jbG9zZSgpO1wiPjwvYm9keT48L2h0bWw+Iiwg
bnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVudGlsTWFpbkxvb3BGaW5pc2hlcygpOworfQorI2Vu
ZGlmCisKICNpZiBQTEFURk9STShHVEspCiBzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld01vdXNlVGFy
Z2V0KFVJQ2xpZW50VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKIHsKQEAgLTEyMzAsNiArMTI3
NywxMSBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgTW9kYWxEaWFsb2dzVGVzdDo6YWRkKCJXZWJL
aXRXZWJWaWV3IiwgImRpc2FsbG93LW1vZGFsLWRpYWxvZ3MiLCB0ZXN0V2ViVmlld0Rpc2FsbG93
TW9kYWxEaWFsb2dzKTsKICAgICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJq
YXZhc2NyaXB0LWRpYWxvZ3MiLCB0ZXN0V2ViVmlld0phdmFTY3JpcHREaWFsb2dzKTsKICAgICBV
SUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJ3aW5kb3ctcHJvcGVydGllcyIsIHRl
c3RXZWJWaWV3V2luZG93UHJvcGVydGllcyk7CisjaWYgUExBVEZPUk0oR1RLKQorICAgIC8vIEZJ
WE1FOiBJbXBsZW1lbnQgd2Via2l0X3dpbmRvd19wcm9wZXJ0aWVzX2dldF9nZW9tZXRyeSgpIGlu
IFdQRS4KKyAgICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJvcGVuLXdpbmRv
dy1kZWZhdWx0LXNpemUiLCB0ZXN0V2ViVmlld09wZW5XaW5kb3dEZWZhdWx0U2l6ZSk7CisgICAg
VUlDbGllbnRUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAib3Blbi13aW5kb3ctbm8tZGVmYXVs
dC1zaXplIiwgdGVzdFdlYlZpZXdPcGVuV2luZG93Tm9EZWZhdWx0U2l6ZSk7CisjZW5kaWYKICAg
ICAvLyBGSVhNRTogSW1wbGVtZW50IG1vdXNlIG1vdmUgaW4gV1BFLgogI2lmIFBMQVRGT1JNKEdU
SykKICAgICBVSUNsaWVudFRlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJtb3VzZS10YXJnZXQi
LCB0ZXN0V2ViVmlld01vdXNlVGFyZ2V0KTsK
</data>
<flag name="review"
          id="411857"
          type_id="1"
          status="+"
          setter="cgarcia"
    />
    <flag name="commit-queue"
          id="411921"
          type_id="3"
          status="-"
          setter="cgarcia"
    />
          </attachment>
      

    </bug>

</bugzilla>