<?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>99716</bug_id>
          
          <creation_ts>2012-10-18 07:20:20 -0700</creation_ts>
          <short_desc>[Chromium] Add supportMultipleWindows setting for Android</short_desc>
          <delta_ts>2012-10-25 06:21:50 -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>WebKit API</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Android</rep_platform>
          <op_sys>Android</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <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="Mikhail Naganov">mnaganov</reporter>
          <assigned_to name="Mikhail Naganov">mnaganov</assigned_to>
          <cc>abarth</cc>
    
    <cc>benm</cc>
    
    <cc>dglazkov</cc>
    
    <cc>fishd</cc>
    
    <cc>jamesr</cc>
    
    <cc>japhet</cc>
    
    <cc>tkent+wkapi</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>745237</commentid>
    <comment_count>0</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-10-18 07:20:20 -0700</bug_when>
    <thetext>With the following combination of flags:

WebSettings.setJavaScriptCanOpenWindowsAutomatically(true)
WebSettings.setSupportMultipleWindows(false)

Android WebView &quot;opens&quot; new windows in the same WebView, replacing the current content and updating the history accordingly. This applies to &quot;window.open&quot; calls, &lt;a href target=&quot;_blank&quot;&gt; and &lt;form method=&quot;post&quot; target=&quot;_blank&quot;&gt; elements.

This behavior is tested in CTS tests, and at least GMail application relies on it.

The patch is coming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745239</commentid>
    <comment_count>1</comment_count>
      <attachid>169408</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-10-18 07:24:52 -0700</bug_when>
    <thetext>Created attachment 169408
Implementation</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745240</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 07:27:45 -0700</bug_when>
    <thetext>Please wait for approval from abarth@webkit.org, dglazkov@chromium.org, fishd@chromium.org, jamesr@chromium.org or tkent@chromium.org before submitting, as this patch contains changes to the Chromium public API. See also https://trac.webkit.org/wiki/ChromiumWebKitAPI.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745241</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-10-18 07:28:08 -0700</bug_when>
    <thetext>Attachment 169408 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1
Source/WebKit/chromium/tests/SupportMultipleWindowsSettingTest.cpp:35:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/chromium/tests/SupportMultipleWindowsSettingTest.cpp:42:  Alphabetical sorting problem.  [build/include_order] [4]
Source/WebKit/chromium/src/WebViewImpl.cpp:4161:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
Total errors found: 3 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745244</commentid>
    <comment_count>4</comment_count>
      <attachid>169409</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-10-18 07:33:41 -0700</bug_when>
    <thetext>Created attachment 169409
Fixed style errors</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745284</commentid>
    <comment_count>5</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-10-18 08:41:01 -0700</bug_when>
    <thetext>Chromium change that makes use of the setting: https://codereview.chromium.org/11192057/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>745628</commentid>
    <comment_count>6</comment_count>
      <attachid>169409</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-18 15:20:35 -0700</bug_when>
    <thetext>Comment on attachment 169409
Fixed style errors

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

There&apos;s no reason for this feature to be Android-specific.  Please consider that other operating systems might want to use this setting in the future.  It&apos;s not clear to me whether we should implement this setting in the WebKit layer or in the WebCore layer.  My instinct is to do it in WebCore, but I&apos;m not sure what a patch that took that approach would look like.

&gt; Source/WebCore/loader/FrameLoader.cpp:3281
&gt; +#if OS(ANDROID)

FrameLoader.cpp should not have any OS(ANDROID) ifdefs.

&gt; Source/WebKit/chromium/WebKit.gypi:154
&gt; +            [&apos;OS==&quot;android&quot;&apos;, {
&gt; +                &apos;webkit_unittest_files&apos;: [
&gt; +                    &apos;tests/SupportMultipleWindowsSettingTest.cpp&apos;,
&gt; +                 ],
&gt; +            }],

We should be able to run this unit test on all platforms, not just Android.

&gt; Source/WebKit/chromium/public/WebSettings.h:168
&gt; +    // This setting is only used on Android.

Please remove this comment.  We might use this setting on other platforms.

&gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:258
&gt; +#if OS(ANDROID)
&gt; +    if (!m_webView-&gt;supportMultipleWindows())
&gt; +        return frame-&gt;page();
&gt; +#endif

This should not be #if OS(ANDROID)

&gt; Source/WebKit/chromium/src/WebViewImpl.cpp:4164
&gt; +bool WebViewImpl::supportMultipleWindows()
&gt; +{
&gt; +    return settingsImpl()-&gt;supportMultipleWindows();
&gt; +}

There&apos;s no need for this function.

&gt; Source/WebKit/chromium/src/WebViewImpl.h:345
&gt; +    bool supportMultipleWindows();

There&apos;s no need for this function.

&gt; Source/WebKit/chromium/tests/SupportMultipleWindowsSettingTest.cpp:98
&gt; +TEST_F(SupportMultipleWindowsSettingTest, WindowOpenSupportMultipleWindowsDisabled)

There should be an existing test file that you can add this test to.  I think there&apos;s already a test file for unit testing WebView or WebFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746329</commentid>
    <comment_count>7</comment_count>
      <attachid>169628</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-10-19 08:43:00 -0700</bug_when>
    <thetext>Created attachment 169628
A WebCore version of the patch, as Adam has suggested</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746332</commentid>
    <comment_count>8</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-10-19 08:45:47 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 169409 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169409&amp;action=review
&gt; 
&gt; There&apos;s no reason for this feature to be Android-specific.  Please consider that other operating systems might want to use this setting in the future.  It&apos;s not clear to me whether we should implement this setting in the WebKit layer or in the WebCore layer.  My instinct is to do it in WebCore, but I&apos;m not sure what a patch that took that approach would look like.
&gt; 

Thanks for the review!

OK, moved the setting and checks into WebCore. Port-specific changes are still required, if the port calls chrome&apos;s createWindow method (as in chromium port).

All comments seem to be addressed.

&gt; &gt; Source/WebCore/loader/FrameLoader.cpp:3281
&gt; &gt; +#if OS(ANDROID)
&gt; 
&gt; FrameLoader.cpp should not have any OS(ANDROID) ifdefs.
&gt; 
&gt; &gt; Source/WebKit/chromium/WebKit.gypi:154
&gt; &gt; +            [&apos;OS==&quot;android&quot;&apos;, {
&gt; &gt; +                &apos;webkit_unittest_files&apos;: [
&gt; &gt; +                    &apos;tests/SupportMultipleWindowsSettingTest.cpp&apos;,
&gt; &gt; +                 ],
&gt; &gt; +            }],
&gt; 
&gt; We should be able to run this unit test on all platforms, not just Android.
&gt; 
&gt; &gt; Source/WebKit/chromium/public/WebSettings.h:168
&gt; &gt; +    // This setting is only used on Android.
&gt; 
&gt; Please remove this comment.  We might use this setting on other platforms.
&gt; 
&gt; &gt; Source/WebKit/chromium/src/ChromeClientImpl.cpp:258
&gt; &gt; +#if OS(ANDROID)
&gt; &gt; +    if (!m_webView-&gt;supportMultipleWindows())
&gt; &gt; +        return frame-&gt;page();
&gt; &gt; +#endif
&gt; 
&gt; This should not be #if OS(ANDROID)
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.cpp:4164
&gt; &gt; +bool WebViewImpl::supportMultipleWindows()
&gt; &gt; +{
&gt; &gt; +    return settingsImpl()-&gt;supportMultipleWindows();
&gt; &gt; +}
&gt; 
&gt; There&apos;s no need for this function.
&gt; 
&gt; &gt; Source/WebKit/chromium/src/WebViewImpl.h:345
&gt; &gt; +    bool supportMultipleWindows();
&gt; 
&gt; There&apos;s no need for this function.
&gt; 
&gt; &gt; Source/WebKit/chromium/tests/SupportMultipleWindowsSettingTest.cpp:98
&gt; &gt; +TEST_F(SupportMultipleWindowsSettingTest, WindowOpenSupportMultipleWindowsDisabled)
&gt; 
&gt; There should be an existing test file that you can add this test to.  I think there&apos;s already a test file for unit testing WebView or WebFrame.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>746633</commentid>
    <comment_count>9</comment_count>
      <attachid>169628</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-19 14:21:35 -0700</bug_when>
    <thetext>Comment on attachment 169628
A WebCore version of the patch, as Adam has suggested

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

This is much better.  My only real complaint is with the test.

&gt; Source/WebCore/page/ContextMenuController.cpp:186
&gt; -        if (Page* newPage = oldPage-&gt;chrome()-&gt;createWindow(frame, request, WindowFeatures(), NavigationAction(request.resourceRequest()))) {
&gt; +        if (frame-&gt;settings() &amp;&amp; !frame-&gt;settings()-&gt;supportMultipleWindows())
&gt; +            oldPage-&gt;mainFrame()-&gt;loader()-&gt;loadFrameRequest(request, false, false, 0, 0, MaybeSendReferrer);
&gt; +        else if (Page* newPage = oldPage-&gt;chrome()-&gt;createWindow(frame, request, WindowFeatures(), NavigationAction(request.resourceRequest()))) {
&gt;              newPage-&gt;mainFrame()-&gt;loader()-&gt;loadFrameRequest(request, false, false, 0, 0, MaybeSendReferrer);
&gt;              newPage-&gt;chrome()-&gt;show();

This can be done slightly more elegantly to avoid repeating &quot;mainFrame()-&gt;loader()-&gt;loadFrameRequest(request, false, false, 0, 0, MaybeSendReferrer)&quot;

&gt; Source/WebCore/page/Settings.h:708
&gt; +        bool m_supportMultipleWindows : 1;

We&apos;re very inconsistent about naming these settings, but technically this should be &quot;supports&quot; rather than &quot;support&quot;.  I realize that&apos;s very hard to tell at this point since many, many of these settings have wacky names.

&gt; Source/WebKit/chromium/tests/WebViewTest.cpp:665
&gt; +    webView-&gt;settings()-&gt;setSupportMultipleWindows(false);
&gt; +    WebCore::Frame* oldFrame = static_cast&lt;WebFrameImpl*&gt;(webView-&gt;mainFrame())-&gt;frame();
&gt; +    WebCore::FrameLoadRequest request(oldFrame-&gt;document()-&gt;securityOrigin());
&gt; +    WebCore::WindowFeatures features;
&gt; +    bool created = true;
&gt; +    WebCore::Frame* newFrame = WebCore::createWindow(oldFrame, 0, request, features, created);

You&apos;re using way more WebCore types that needed in this test.

Is there some reason you don&apos;t want to write a LayoutTest for this change?  You can add an API to SettingsInternal.idl to twiddle the setting and then use window.open to create a new window (after telling the testRunner to allow popups).

We generally prefer LayoutTests to unit tests because we can run them on every port.  However, if you really want to keep this as a unit test, please use the WebKit API rather than manipulating WebCore objects directly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747526</commentid>
    <comment_count>10</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-10-22 07:33:25 -0700</bug_when>
    <thetext>(In reply to comment #9)

Thanks for the review!

&gt; (From update of attachment 169628 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=169628&amp;action=review
&gt; 
&gt; This is much better.  My only real complaint is with the test.
&gt; 
&gt; &gt; Source/WebCore/page/ContextMenuController.cpp:186
&gt; &gt; -        if (Page* newPage = oldPage-&gt;chrome()-&gt;createWindow(frame, request, WindowFeatures(), NavigationAction(request.resourceRequest()))) {
&gt; &gt; +        if (frame-&gt;settings() &amp;&amp; !frame-&gt;settings()-&gt;supportMultipleWindows())
&gt; &gt; +            oldPage-&gt;mainFrame()-&gt;loader()-&gt;loadFrameRequest(request, false, false, 0, 0, MaybeSendReferrer);
&gt; &gt; +        else if (Page* newPage = oldPage-&gt;chrome()-&gt;createWindow(frame, request, WindowFeatures(), NavigationAction(request.resourceRequest()))) {
&gt; &gt;              newPage-&gt;mainFrame()-&gt;loader()-&gt;loadFrameRequest(request, false, false, 0, 0, MaybeSendReferrer);
&gt; &gt;              newPage-&gt;chrome()-&gt;show();
&gt; 
&gt; This can be done slightly more elegantly to avoid repeating &quot;mainFrame()-&gt;loader()-&gt;loadFrameRequest(request, false, false, 0, 0, MaybeSendReferrer)&quot;
&gt; 

Done.

&gt; &gt; Source/WebCore/page/Settings.h:708
&gt; &gt; +        bool m_supportMultipleWindows : 1;
&gt; 
&gt; We&apos;re very inconsistent about naming these settings, but technically this should be &quot;supports&quot; rather than &quot;support&quot;.  I realize that&apos;s very hard to tell at this point since many, many of these settings have wacky names.
&gt; 

Renamed.

&gt; &gt; Source/WebKit/chromium/tests/WebViewTest.cpp:665
&gt; &gt; +    webView-&gt;settings()-&gt;setSupportMultipleWindows(false);
&gt; &gt; +    WebCore::Frame* oldFrame = static_cast&lt;WebFrameImpl*&gt;(webView-&gt;mainFrame())-&gt;frame();
&gt; &gt; +    WebCore::FrameLoadRequest request(oldFrame-&gt;document()-&gt;securityOrigin());
&gt; &gt; +    WebCore::WindowFeatures features;
&gt; &gt; +    bool created = true;
&gt; &gt; +    WebCore::Frame* newFrame = WebCore::createWindow(oldFrame, 0, request, features, created);
&gt; 
&gt; You&apos;re using way more WebCore types that needed in this test.
&gt; 
&gt; Is there some reason you don&apos;t want to write a LayoutTest for this change?  You can add an API to SettingsInternal.idl to twiddle the setting and then use window.open to create a new window (after telling the testRunner to allow popups).
&gt; 
&gt; We generally prefer LayoutTests to unit tests because we can run them on every port.  However, if you really want to keep this as a unit test, please use the WebKit API rather than manipulating WebCore objects directly.

Added layout tests that pass on the Chromium platform. As we are adding this setting only for Chromium now, DRT of other ports doesn&apos;t have the setting exposed.

As for the unit test--I really want to test the call to WebCore::createWindow, to test that &apos;created&apos; argument is set to &apos;false&apos;. I don&apos;t see any clear way how to do this using only the public API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747527</commentid>
    <comment_count>11</comment_count>
      <attachid>169905</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-10-22 07:34:30 -0700</bug_when>
    <thetext>Created attachment 169905
Comments addressed, added layout tests</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>747647</commentid>
    <comment_count>12</comment_count>
      <attachid>169905</attachid>
    <who name="Build Bot">buildbot</who>
    <bug_when>2012-10-22 09:58:20 -0700</bug_when>
    <thetext>Comment on attachment 169905
Comments addressed, added layout tests

Attachment 169905 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/14483578

New failing tests:
fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html
fast/dom/Window/window-open-no-multiple-windows.html
fast/forms/post-popup-no-multiple-windows.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750150</commentid>
    <comment_count>13</comment_count>
      <attachid>170495</attachid>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-10-24 15:53:03 -0700</bug_when>
    <thetext>Created attachment 170495
Should now pass on mac bot as well as on chromium

Adam, can you please take a look?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750158</commentid>
    <comment_count>14</comment_count>
      <attachid>170495</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2012-10-24 16:01:42 -0700</bug_when>
    <thetext>Comment on attachment 170495
Should now pass on mac bot as well as on chromium

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

&gt; LayoutTests/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html:8
&gt; +    testRunner.setCanOpenWindows(true);
&gt; +    testRunner.setPopupBlockingEnabled(false);

Are these redundant?

&gt; Source/WebKit/chromium/tests/WebViewTest.cpp:668
&gt; +TEST_F(WebViewTest, SupportsMultipleWindowsSetting)
&gt; +{
&gt; +    WebView* webView = FrameTestHelpers::createWebViewAndLoad(&quot;about:blank&quot;);
&gt; +    webView-&gt;settings()-&gt;setSupportsMultipleWindows(false);
&gt; +    WebCore::Frame* oldFrame = static_cast&lt;WebFrameImpl*&gt;(webView-&gt;mainFrame())-&gt;frame();
&gt; +    WebCore::FrameLoadRequest request(oldFrame-&gt;document()-&gt;securityOrigin());
&gt; +    WebCore::WindowFeatures features;
&gt; +    bool created = true;
&gt; +    WebCore::Frame* newFrame = WebCore::createWindow(oldFrame, 0, request, features, created);
&gt; +    EXPECT_EQ(oldFrame, newFrame);
&gt; +    EXPECT_FALSE(created);
&gt; +}

I would skip this test.  You&apos;re reaching too much into WebCore.  The LayoutTest is much better.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750381</commentid>
    <comment_count>15</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-10-24 22:45:01 -0700</bug_when>
    <thetext>Thank you very much!

(In reply to comment #14)
&gt; (From update of attachment 170495 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170495&amp;action=review
&gt; 
&gt; &gt; LayoutTests/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html:8
&gt; &gt; +    testRunner.setCanOpenWindows(true);
&gt; &gt; +    testRunner.setPopupBlockingEnabled(false);
&gt; 
&gt; Are these redundant?
&gt; 

Correct. setPopupBlockingEnabled(false) is only needed for the test that uses &apos;window.popup&apos;. I will remove it.

&gt; &gt; Source/WebKit/chromium/tests/WebViewTest.cpp:668
&gt; &gt; +TEST_F(WebViewTest, SupportsMultipleWindowsSetting)
&gt; &gt; +{
&gt; &gt; +    WebView* webView = FrameTestHelpers::createWebViewAndLoad(&quot;about:blank&quot;);
&gt; &gt; +    webView-&gt;settings()-&gt;setSupportsMultipleWindows(false);
&gt; &gt; +    WebCore::Frame* oldFrame = static_cast&lt;WebFrameImpl*&gt;(webView-&gt;mainFrame())-&gt;frame();
&gt; &gt; +    WebCore::FrameLoadRequest request(oldFrame-&gt;document()-&gt;securityOrigin());
&gt; &gt; +    WebCore::WindowFeatures features;
&gt; &gt; +    bool created = true;
&gt; &gt; +    WebCore::Frame* newFrame = WebCore::createWindow(oldFrame, 0, request, features, created);
&gt; &gt; +    EXPECT_EQ(oldFrame, newFrame);
&gt; &gt; +    EXPECT_FALSE(created);
&gt; &gt; +}
&gt; 
&gt; I would skip this test.  You&apos;re reaching too much into WebCore.  The LayoutTest is much better.

OK, I will remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750382</commentid>
    <comment_count>16</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-10-24 22:45:19 -0700</bug_when>
    <thetext>(In reply to comment #15)
&gt; Thank you very much!
&gt; 
&gt; (In reply to comment #14)
&gt; &gt; (From update of attachment 170495 [details] [details])
&gt; &gt; View in context: https://bugs.webkit.org/attachment.cgi?id=170495&amp;action=review
&gt; &gt; 
&gt; &gt; &gt; LayoutTests/fast/dom/HTMLAnchorElement/anchor-no-multiple-windows.html:8
&gt; &gt; &gt; +    testRunner.setCanOpenWindows(true);
&gt; &gt; &gt; +    testRunner.setPopupBlockingEnabled(false);
&gt; &gt; 
&gt; &gt; Are these redundant?
&gt; &gt; 
&gt; 
&gt; Correct. setPopupBlockingEnabled(false) is only needed for the test that uses &apos;window.popup&apos;. I will remove it.
&gt;

*window.open
 
&gt; &gt; &gt; Source/WebKit/chromium/tests/WebViewTest.cpp:668
&gt; &gt; &gt; +TEST_F(WebViewTest, SupportsMultipleWindowsSetting)
&gt; &gt; &gt; +{
&gt; &gt; &gt; +    WebView* webView = FrameTestHelpers::createWebViewAndLoad(&quot;about:blank&quot;);
&gt; &gt; &gt; +    webView-&gt;settings()-&gt;setSupportsMultipleWindows(false);
&gt; &gt; &gt; +    WebCore::Frame* oldFrame = static_cast&lt;WebFrameImpl*&gt;(webView-&gt;mainFrame())-&gt;frame();
&gt; &gt; &gt; +    WebCore::FrameLoadRequest request(oldFrame-&gt;document()-&gt;securityOrigin());
&gt; &gt; &gt; +    WebCore::WindowFeatures features;
&gt; &gt; &gt; +    bool created = true;
&gt; &gt; &gt; +    WebCore::Frame* newFrame = WebCore::createWindow(oldFrame, 0, request, features, created);
&gt; &gt; &gt; +    EXPECT_EQ(oldFrame, newFrame);
&gt; &gt; &gt; +    EXPECT_FALSE(created);
&gt; &gt; &gt; +}
&gt; &gt; 
&gt; &gt; I would skip this test.  You&apos;re reaching too much into WebCore.  The LayoutTest is much better.
&gt; 
&gt; OK, I will remove it.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>750738</commentid>
    <comment_count>17</comment_count>
    <who name="Mikhail Naganov">mnaganov</who>
    <bug_when>2012-10-25 06:21:50 -0700</bug_when>
    <thetext>Committed r132478: &lt;http://trac.webkit.org/changeset/132478&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169408</attachid>
            <date>2012-10-18 07:24:52 -0700</date>
            <delta_ts>2012-10-18 07:33:41 -0700</delta_ts>
            <desc>Implementation</desc>
            <filename>wk-99716.patch</filename>
            <type>text/plain</type>
            <size>11819</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzOTZhN2M0Li4yZDZlMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTItMTAtMTggIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
KworICAgICAgICBbQ2hyb21pdW1dIEFkZCBzdXBwb3J0TXVsdGlwbGVXaW5kb3dzIHNldHRpbmcg
Zm9yIEFuZHJvaWQKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgc3VwcG9ydE11bHRpcGxlV2luZG93cyBzZXR0aW5ncyBmb3IgcmV1c2luZyB0aGUg
c2FtZSB2aWV3CisgICAgICAgIHdoZW4gb3BlbmluZyBwb3B1cHMuIFRoaXMgaXMgcmVxdWlyZWQg
Zm9yIGVtdWxhdGluZyB0aGUgYmVoYXZpb3IKKyAgICAgICAgb2YgQW5kcm9pZCBXZWJWaWV3Lgor
CisgICAgICAgIFRoZSBzZXR0aW5nIGRvZXMgbm90aGluZyBvbiBub24tQW5kcm9pZCBPU2VzLgor
CisgICAgICAgIEFkZGVkIGEgdW5pdCB0ZXN0IGluIHRoZSBDaHJvbWl1bSBwb3J0OgorICAgICAg
ICAgICAgdGVzdHMvU3VwcG9ydE11bHRpcGxlV2luZG93c1NldHRpbmdUZXN0LmNwcAorCisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdp
bmRvdyk6CisKIDIwMTItMTAtMTggIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5j
b20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBBZGQgYmV0dGVyIFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlciBjcmVhdGlvbiBsb2dpYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKaW5kZXggYTg0YzUwOC4uMTI5MTRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCkBAIC0zMjc4LDYgKzMyNzgsMTQgQEAgRnJhbWUqIGNyZWF0ZVdpbmRvdyhGcmFtZSog
b3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWUKIAog
ICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwogCisjaWYgT1MoQU5EUk9JRCkK
KyAgICAvLyBJZiBXZWJTZXR0aW5ncy5zdXBwb3J0TXVsdHBsZVdpbmRvd3MgaXMgZmFsc2UsIHRo
ZSBjaHJvbWUgY2xpZW50IHdpbGwgcmV0dXJuIHRoZSBzYW1lIHBhZ2UuCisgICAgaWYgKHBhZ2Ug
PT0gb2xkUGFnZSkgeworICAgICAgICBjcmVhdGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiBm
cmFtZTsKKyAgICB9CisjZW5kaWYKKwogICAgIGZyYW1lLT5sb2FkZXIoKS0+Zm9yY2VTYW5kYm94
RmxhZ3Mob3BlbmVyRnJhbWUtPmRvY3VtZW50KCktPnNhbmRib3hGbGFncygpKTsKIAogICAgIGlm
IChyZXF1ZXN0LmZyYW1lTmFtZSgpICE9ICJfYmxhbmsiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCAxYmUxNTNiLi44MTNiZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM2IEBACisyMDEyLTEwLTE4ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBBZGQgc3VwcG9ydE11bHRpcGxlV2luZG93
cyBzZXR0aW5nIGZvciBBbmRyb2lkCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnRNdWx0aXBsZVdpbmRvd3Mgc2V0dGluZ3MgZm9yIHJl
dXNpbmcgdGhlIHNhbWUgdmlldworICAgICAgICB3aGVuIG9wZW5pbmcgcG9wdXBzLiBUaGlzIGlz
IHJlcXVpcmVkIGZvciBlbXVsYXRpbmcgdGhlIGJlaGF2aW9yCisgICAgICAgIG9mIEFuZHJvaWQg
V2ViVmlldy4KKworICAgICAgICBUaGUgc2V0dGluZyBkb2VzIG5vdGhpbmcgb24gbm9uLUFuZHJv
aWQgT1Nlcy4KKworICAgICAgICAqIFdlYktpdC5neXBpOgorICAgICAgICAqIHB1YmxpYy9XZWJT
ZXR0aW5ncy5oOgorICAgICAgICAoV2ViU2V0dGluZ3MpOgorICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRl
V2luZG93KToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViU2V0dGluZ3NJbXBsOjpXZWJTZXR0aW5nc0ltcGwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJTZXR0aW5nc0ltcGw6OnNldFN1cHBvcnRNdWx0aXBsZVdpbmRvd3MpOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJT
ZXR0aW5nc0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnN1cHBvcnRN
dWx0aXBsZVdpbmRvd3MpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdXBwb3J0TXVsdGlwbGVXaW5kb3dzKToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJWaWV3
SW1wbCk6CisgICAgICAgICogdGVzdHMvU3VwcG9ydE11bHRpcGxlV2luZG93c1NldHRpbmdUZXN0
LmNwcDogQWRkZWQuCisKIDIwMTItMTAtMTcgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBNb3ZlIG1peGVkIGNvbnRlbnQgbG9naWMgb3V0IG9mIEZyYW1lTG9hZGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCAyNGNhZTI5Li4xODk1OTMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTE0Nyw2ICsxNDcsMTEgQEAKICAgICAgICAg
ICAgICAgICAgICAgJ3Rlc3RzL0xvY2FsaXplZE51bWJlcklDVVRlc3QuY3BwJywKICAgICAgICAg
ICAgICAgICBdLAogICAgICAgICAgICAgfV0sCisgICAgICAgICAgICBbJ09TPT0iYW5kcm9pZCIn
LCB7CisgICAgICAgICAgICAgICAgJ3dlYmtpdF91bml0dGVzdF9maWxlcyc6IFsKKyAgICAgICAg
ICAgICAgICAgICAgJ3Rlc3RzL1N1cHBvcnRNdWx0aXBsZVdpbmRvd3NTZXR0aW5nVGVzdC5jcHAn
LAorICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgfV0sCiAgICAgICAgICAgICBbJ3Rv
b2xraXRfdXNlc19ndGsgPT0gMScsIHsKICAgICAgICAgICAgICAgICAnd2Via2l0X3VuaXR0ZXN0
X2ZpbGVzJzogWwogICAgICAgICAgICAgICAgICAgICAndGVzdHMvV2ViSW5wdXRFdmVudEZhY3Rv
cnlUZXN0R3RrLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGlu
Z3MuaAppbmRleCBhYmQ4NGVkLi5jYzc0M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTE2NSw2ICsxNjUsOSBAQCBwdWJsaWM6CiAgICAgLy8g
REVQUkVDQVRFRAogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3Io
aW50KSB7IH0KIAorICAgIC8vIFRoaXMgc2V0dGluZyBpcyBvbmx5IHVzZWQgb24gQW5kcm9pZC4K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0U3VwcG9ydE11bHRpcGxlV2luZG93cyhib29sKSA9IDA7CisK
IHByb3RlY3RlZDoKICAgICB+V2ViU2V0dGluZ3MoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IDlkMDk2MWM0Li5kODUy
ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcApAQCAtMjUyLDYgKzI1MiwxMSBAQCBQYWdlKiBDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVX
aW5kb3coCiAgICAgfSBlbHNlCiAgICAgICAgIHBvbGljeSA9IGdldE5hdmlnYXRpb25Qb2xpY3ko
KTsKIAorI2lmIE9TKEFORFJPSUQpCisgICAgaWYgKCFtX3dlYlZpZXctPnN1cHBvcnRNdWx0aXBs
ZVdpbmRvd3MoKSkKKyAgICAgICAgcmV0dXJuIGZyYW1lLT5wYWdlKCk7CisjZW5kaWYKKwogICAg
IFdyYXBwZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBpZiAoIXIucmVzb3VyY2VSZXF1
ZXN0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXF1ZXN0LmJpbmQoci5yZXNvdXJjZVJlcXVlc3Qo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0lt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApp
bmRleCA5ODhjNWU2Li5lZTA2N2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTU3LDYgKzU3LDcgQEAgV2ViU2V0dGluZ3NJbXBsOjpX
ZWJTZXR0aW5nc0ltcGwoU2V0dGluZ3MqIHNldHRpbmdzKQogICAgICwgbV9hdXRvWm9vbUZvY3Vz
ZWROb2RlVG9MZWdpYmxlU2NhbGUoZmFsc2UpCiAgICAgLCBtX2RlZmF1bHRUaWxlU2l6ZShXZWJT
aXplKDI1NiwgMjU2KSkKICAgICAsIG1fbWF4VW50aWxlZExheWVyU2l6ZShXZWJTaXplKDUxMiwg
NTEyKSkKKyAgICAsIG1fc3VwcG9ydE11bHRpcGxlV2luZG93cyh0cnVlKQogewogICAgIEFTU0VS
VChzZXR0aW5ncyk7CiB9CkBAIC02NjksNCArNjcwLDkgQEAgYm9vbCBXZWJTZXR0aW5nc0ltcGw6
OmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkgY29uc3QKICAgICByZXR1cm4gbV9z
ZXR0aW5ncy0+YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKTsKIH0KIAordm9pZCBX
ZWJTZXR0aW5nc0ltcGw6OnNldFN1cHBvcnRNdWx0aXBsZVdpbmRvd3MoYm9vbCBzdXBwb3J0TXVs
dGlwbGVXaW5kb3dzKQoreworICAgIG1fc3VwcG9ydE11bHRpcGxlV2luZG93cyA9IHN1cHBvcnRN
dWx0aXBsZVdpbmRvd3M7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAppbmRleCAxMTY5YzMxLi5hZGEyM2Iw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaApAQCAt
MTQwLDYgKzE0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1BsYXRmb3Jt
TGF5ZXJUcmVlKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaHJpbmtzU3RhbmRhbG9uZUlt
YWdlc1RvRml0KGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHko
Y29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTik7CisgICAgdmly
dHVhbCB2b2lkIHNldFN1cHBvcnRNdWx0aXBsZVdpbmRvd3MoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldFN5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4
dEF1dG9zaXppbmdFbmFibGVkKGJvb2wpOwpAQCAtMTY3LDYgKzE2OCw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGdlc3R1cmVUYXBIaWdobGlnaHRFbmFibGVkKCkgeyByZXR1cm4gbV9nZXN0dXJlVGFw
SGlnaGxpZ2h0RW5hYmxlZDsgfQogICAgIFdlYlNpemUgZGVmYXVsdFRpbGVTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9kZWZhdWx0VGlsZVNpemU7IH0KICAgICBXZWJTaXplIG1heFVudGlsZWRMYXll
clNpemUoKSBjb25zdCB7IHJldHVybiBtX21heFVudGlsZWRMYXllclNpemU7IH0KKyAgICBib29s
IHN1cHBvcnRNdWx0aXBsZVdpbmRvd3MoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRNdWx0aXBs
ZVdpbmRvd3M7IH0KIAogcHJpdmF0ZToKICAgICBXZWJDb3JlOjpTZXR0aW5ncyogbV9zZXR0aW5n
czsKQEAgLTE4MCw2ICsxODIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hdXRvWm9vbUZvY3Vz
ZWROb2RlVG9MZWdpYmxlU2NhbGU7CiAgICAgV2ViU2l6ZSBtX2RlZmF1bHRUaWxlU2l6ZTsKICAg
ICBXZWJTaXplIG1fbWF4VW50aWxlZExheWVyU2l6ZTsKKyAgICBib29sIG1fc3VwcG9ydE11bHRp
cGxlV2luZG93czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGQ2YmY5NGIuLjc0MGYxNTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTQxNTgsNiArNDE1
OCwxMCBAQCBib29sIFdlYlZpZXdJbXBsOjpkZXRlY3RDb250ZW50T25Ub3VjaChjb25zdCBXZWJQ
b2ludCYgcG9zaXRpb24pCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgV2ViVmlld0ltcGw6
OnN1cHBvcnRNdWx0aXBsZVdpbmRvd3MoKSB7CisgICAgcmV0dXJuIHNldHRpbmdzSW1wbCgpLT5z
dXBwb3J0TXVsdGlwbGVXaW5kb3dzKCk7Cit9CisKIHZvaWQgV2ViVmlld0ltcGw6OnNldFZpc2li
aWxpdHlTdGF0ZShXZWJQYWdlVmlzaWJpbGl0eVN0YXRlIHZpc2liaWxpdHlTdGF0ZSwKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBib29sIGlzSW5pdGlhbFN0YXRlKSB7CiAg
ICAgaWYgKCFwYWdlKCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9X
ZWJWaWV3SW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuaApp
bmRleCA0NzkwN2YxLi5hYzBjYjhmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJWaWV3SW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZp
ZXdJbXBsLmgKQEAgLTM0Miw2ICszNDIsOCBAQCBwdWJsaWM6CiAgICAgLy8gUmV0dXJucyB0aGUg
Y3VycmVudGx5IGZvY3VzZWQgTm9kZSBvciBudWxsIGlmIG5vIG5vZGUgaGFzIGZvY3VzLgogICAg
IFdlYkNvcmU6Ok5vZGUqIGZvY3VzZWRXZWJDb3JlTm9kZSgpOwogCisgICAgYm9vbCBzdXBwb3J0
TXVsdGlwbGVXaW5kb3dzKCk7CisKICAgICBzdGF0aWMgV2ViVmlld0ltcGwqIGZyb21QYWdlKFdl
YkNvcmU6OlBhZ2UqKTsKIAogICAgIC8vIEEgcGFnZUdyb3VwIGlkZW50aWZpZXMgYSBuYW1lc3Bh
Y2Ugb2YgcGFnZXMuIFBhZ2UgZ3JvdXBzIGFyZSB1c2VkIG9uIFBMQVRGT1JNKE1BQykKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvU3VwcG9ydE11bHRpcGxlV2luZG93
c1NldHRpbmdUZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvU3VwcG9ydE11
bHRpcGxlV2luZG93c1NldHRpbmdUZXN0LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwLi5lNGE1ZTlmCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS90ZXN0cy9TdXBwb3J0TXVsdGlwbGVXaW5kb3dzU2V0dGluZ1Rlc3QuY3BwCkBAIC0wLDAgKzEs
MTEwIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDEyIEdvb2dsZSBJbmMuIEFsbCByaWdodHMg
cmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJp
bmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0
ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6Cisg
KgorICogICAgICogUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRo
ZSBhYm92ZSBjb3B5cmlnaHQKKyAqIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBi
aW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2Us
IHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAq
IGluIHRoZSBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0
aCB0aGUKKyAqIGRpc3RyaWJ1dGlvbi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29v
Z2xlIEluYy4gbm9yIHRoZSBuYW1lcyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNl
ZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBD
T05UUklCVVRPUlMKKyAqICJBUyBJUyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFO
VElFUywgSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJS
QU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxB
UiBQVVJQT1NFIEFSRSBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hU
CisgKiBPV05FUiBPUiBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJ
UkVDVCwgSU5DSURFTlRBTCwKKyAqIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElB
TCBEQU1BR0VTIChJTkNMVURJTkcsIEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5U
IE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwg
T1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQg
T04gQU5ZCisgKiBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJ
Q1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJX
SVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdB
UkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisg
Ki8KKworI2luY2x1ZGUgImNvbmZpZy5oIgorCisjaW5jbHVkZSAiRG9jdW1lbnQuaCIKKyNpbmNs
dWRlICJGcmFtZS5oIgorI2luY2x1ZGUgIkZyYW1lTG9hZGVyLmgiCisjaW5jbHVkZSAiRnJhbWVM
b2FkUmVxdWVzdC5oIgorI2luY2x1ZGUgIldlYkZyYW1lLmgiCisjaW5jbHVkZSAiV2ViRnJhbWVD
bGllbnQuaCIKKyNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKKyNpbmNsdWRlICJXZWJTZXR0aW5n
cy5oIgorI2luY2x1ZGUgIldlYlZpZXdDbGllbnQuaCIKKyNpbmNsdWRlICJXaW5kb3dGZWF0dXJl
cy5oIgorI2luY2x1ZGUgIldlYlZpZXcuaCIKKworI2luY2x1ZGUgPGd0ZXN0L2d0ZXN0Lmg+Cisj
aW5jbHVkZSA8d2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaD4KKwordXNpbmcgbmFtZXNw
YWNlIFdlYktpdDsKKworbmFtZXNwYWNlIHsKKworY2xhc3MgVGVzdFdlYkZyYW1lQ2xpZW50IDog
cHVibGljIFdlYkZyYW1lQ2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UZXN0V2ViRnJh
bWVDbGllbnQoKQorICAgIHsKKyAgICB9Cit9OworCitjbGFzcyBUZXN0V2ViVmlld0NsaWVudCA6
IHB1YmxpYyBXZWJWaWV3Q2xpZW50IHsKK3B1YmxpYzoKKyAgICB2aXJ0dWFsIH5UZXN0V2ViVmll
d0NsaWVudCgpCisgICAgeworICAgIH0KK307CisKK2NsYXNzIFN1cHBvcnRNdWx0aXBsZVdpbmRv
d3NTZXR0aW5nVGVzdCA6IHB1YmxpYyB0ZXN0aW5nOjpUZXN0IHsKK3B1YmxpYzoKKyAgICBTdXBw
b3J0TXVsdGlwbGVXaW5kb3dzU2V0dGluZ1Rlc3QoKQorICAgIHsKKyAgICB9CisgICAgdmlydHVh
bCB+U3VwcG9ydE11bHRpcGxlV2luZG93c1NldHRpbmdUZXN0KCkKKyAgICB7CisgICAgfQorCitw
cm90ZWN0ZWQ6CisgICAgdmlydHVhbCB2b2lkIFNldFVwKCkKKyAgICB7CisgICAgICAgIG1fd2Vi
VmlldyA9IFdlYlZpZXc6OmNyZWF0ZSgmbV93ZWJWaWV3Q2xpZW50KTsKKworICAgICAgICBXZWJT
ZXR0aW5ncyogc2V0dGluZ3MgPSBtX3dlYlZpZXctPnNldHRpbmdzKCk7CisgICAgICAgIHNldHRp
bmdzLT5zZXRKYXZhU2NyaXB0RW5hYmxlZCh0cnVlKTsKKworICAgICAgICBtX3dlYlZpZXctPmlu
aXRpYWxpemVNYWluRnJhbWUoJm1fd2ViRnJhbWVDbGllbnQpOworICAgIH0KKworICAgIHZpcnR1
YWwgdm9pZCBUZWFyRG93bigpCisgICAgeworICAgICAgICBtX3dlYlZpZXctPmNsb3NlKCk7Cisg
ICAgfQorCisgICAgV2ViVmlldyogbV93ZWJWaWV3OworCitwcml2YXRlOgorICAgIFRlc3RXZWJW
aWV3Q2xpZW50IG1fd2ViVmlld0NsaWVudDsKKyAgICBUZXN0V2ViRnJhbWVDbGllbnQgbV93ZWJG
cmFtZUNsaWVudDsKK307CisKK1RFU1RfRihTdXBwb3J0TXVsdGlwbGVXaW5kb3dzU2V0dGluZ1Rl
c3QsIFdpbmRvd09wZW5TdXBwb3J0TXVsdGlwbGVXaW5kb3dzRGlzYWJsZWQpCit7CisgICAgbV93
ZWJWaWV3LT5zZXR0aW5ncygpLT5zZXRTdXBwb3J0TXVsdGlwbGVXaW5kb3dzKGZhbHNlKTsKKyAg
ICBXZWJGcmFtZUltcGwqIG9sZEZyYW1lID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVJbXBsKj4obV93
ZWJWaWV3LT5tYWluRnJhbWUoKSk7CisgICAgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCByZXF1
ZXN0KG9sZEZyYW1lLT5mcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9yaWdpbigpKTsKKyAg
ICBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyBmZWF0dXJlczsKKyAgICBib29sIGNyZWF0ZWQgPSB0
cnVlOworICAgIFdlYkNvcmU6OkZyYW1lKiBuZXdGcmFtZSA9IFdlYkNvcmU6OmNyZWF0ZVdpbmRv
dyhvbGRGcmFtZS0+ZnJhbWUoKSwgMCwgcmVxdWVzdCwgZmVhdHVyZXMsIGNyZWF0ZWQpOworICAg
IEVYUEVDVF9FUShvbGRGcmFtZS0+ZnJhbWUoKSwgbmV3RnJhbWUpOworICAgIEVYUEVDVF9GQUxT
RShjcmVhdGVkKTsKK30KKworfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169409</attachid>
            <date>2012-10-18 07:33:41 -0700</date>
            <delta_ts>2012-10-19 08:43:00 -0700</delta_ts>
            <desc>Fixed style errors</desc>
            <filename>wk-99716.patch</filename>
            <type>text/plain</type>
            <size>11820</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCAzOTZhN2M0Li4yZDZlMzQzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMg
QEAKKzIwMTItMTAtMTggIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
KworICAgICAgICBbQ2hyb21pdW1dIEFkZCBzdXBwb3J0TXVsdGlwbGVXaW5kb3dzIHNldHRpbmcg
Zm9yIEFuZHJvaWQKKworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9OTk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICBBZGQgc3VwcG9ydE11bHRpcGxlV2luZG93cyBzZXR0aW5ncyBmb3IgcmV1c2luZyB0aGUg
c2FtZSB2aWV3CisgICAgICAgIHdoZW4gb3BlbmluZyBwb3B1cHMuIFRoaXMgaXMgcmVxdWlyZWQg
Zm9yIGVtdWxhdGluZyB0aGUgYmVoYXZpb3IKKyAgICAgICAgb2YgQW5kcm9pZCBXZWJWaWV3Lgor
CisgICAgICAgIFRoZSBzZXR0aW5nIGRvZXMgbm90aGluZyBvbiBub24tQW5kcm9pZCBPU2VzLgor
CisgICAgICAgIEFkZGVkIGEgdW5pdCB0ZXN0IGluIHRoZSBDaHJvbWl1bSBwb3J0OgorICAgICAg
ICAgICAgdGVzdHMvU3VwcG9ydE11bHRpcGxlV2luZG93c1NldHRpbmdUZXN0LmNwcAorCisgICAg
ICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNyZWF0ZVdp
bmRvdyk6CisKIDIwMTItMTAtMTggIFRvbW15IFdpZGVuZmx5Y2h0ICA8dG9tbXl3QGdvb2dsZS5j
b20+CiAKICAgICAgICAgTWVkaWFTdHJlYW0gQVBJOiBBZGQgYmV0dGVyIFJUQ1BlZXJDb25uZWN0
aW9uSGFuZGxlciBjcmVhdGlvbiBsb2dpYwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5j
cHAKaW5kZXggYTg0YzUwOC4uMTI5MTRkMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9h
ZGVyL0ZyYW1lTG9hZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCkBAIC0zMjc4LDYgKzMyNzgsMTQgQEAgRnJhbWUqIGNyZWF0ZVdpbmRvdyhGcmFtZSog
b3BlbmVyRnJhbWUsIEZyYW1lKiBsb29rdXBGcmFtZSwgY29uc3QgRnJhbWVMb2FkUmVxdWUKIAog
ICAgIEZyYW1lKiBmcmFtZSA9IHBhZ2UtPm1haW5GcmFtZSgpOwogCisjaWYgT1MoQU5EUk9JRCkK
KyAgICAvLyBJZiBXZWJTZXR0aW5ncy5zdXBwb3J0TXVsdHBsZVdpbmRvd3MgaXMgZmFsc2UsIHRo
ZSBjaHJvbWUgY2xpZW50IHdpbGwgcmV0dXJuIHRoZSBzYW1lIHBhZ2UuCisgICAgaWYgKHBhZ2Ug
PT0gb2xkUGFnZSkgeworICAgICAgICBjcmVhdGVkID0gZmFsc2U7CisgICAgICAgIHJldHVybiBm
cmFtZTsKKyAgICB9CisjZW5kaWYKKwogICAgIGZyYW1lLT5sb2FkZXIoKS0+Zm9yY2VTYW5kYm94
RmxhZ3Mob3BlbmVyRnJhbWUtPmRvY3VtZW50KCktPnNhbmRib3hGbGFncygpKTsKIAogICAgIGlm
IChyZXF1ZXN0LmZyYW1lTmFtZSgpICE9ICJfYmxhbmsiKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxv
ZwppbmRleCAxYmUxNTNiLi44MTNiZGQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9t
aXVtL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAt
MSwzICsxLDM2IEBACisyMDEyLTEwLTE4ICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJv
bWl1bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBBZGQgc3VwcG9ydE11bHRpcGxlV2luZG93
cyBzZXR0aW5nIGZvciBBbmRyb2lkCisKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnRNdWx0aXBsZVdpbmRvd3Mgc2V0dGluZ3MgZm9yIHJl
dXNpbmcgdGhlIHNhbWUgdmlldworICAgICAgICB3aGVuIG9wZW5pbmcgcG9wdXBzLiBUaGlzIGlz
IHJlcXVpcmVkIGZvciBlbXVsYXRpbmcgdGhlIGJlaGF2aW9yCisgICAgICAgIG9mIEFuZHJvaWQg
V2ViVmlldy4KKworICAgICAgICBUaGUgc2V0dGluZyBkb2VzIG5vdGhpbmcgb24gbm9uLUFuZHJv
aWQgT1Nlcy4KKworICAgICAgICAqIFdlYktpdC5neXBpOgorICAgICAgICAqIHB1YmxpYy9XZWJT
ZXR0aW5ncy5oOgorICAgICAgICAoV2ViU2V0dGluZ3MpOgorICAgICAgICAqIHNyYy9DaHJvbWVD
bGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6Y3JlYXRl
V2luZG93KToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAgKFdl
YktpdDo6V2ViU2V0dGluZ3NJbXBsOjpXZWJTZXR0aW5nc0ltcGwpOgorICAgICAgICAoV2ViS2l0
OjpXZWJTZXR0aW5nc0ltcGw6OnNldFN1cHBvcnRNdWx0aXBsZVdpbmRvd3MpOgorICAgICAgICAo
V2ViS2l0KToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmg6CisgICAgICAgIChXZWJT
ZXR0aW5nc0ltcGwpOgorICAgICAgICAoV2ViS2l0OjpXZWJTZXR0aW5nc0ltcGw6OnN1cHBvcnRN
dWx0aXBsZVdpbmRvd3MpOgorICAgICAgICAqIHNyYy9XZWJWaWV3SW1wbC5jcHA6CisgICAgICAg
IChXZWJLaXQ6OldlYlZpZXdJbXBsOjpzdXBwb3J0TXVsdGlwbGVXaW5kb3dzKToKKyAgICAgICAg
KFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlZpZXdJbXBsLmg6CisgICAgICAgIChXZWJWaWV3
SW1wbCk6CisgICAgICAgICogdGVzdHMvU3VwcG9ydE11bHRpcGxlV2luZG93c1NldHRpbmdUZXN0
LmNwcDogQWRkZWQuCisKIDIwMTItMTAtMTcgIE1pa2UgV2VzdCAgPG1rd3N0QGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBNb3ZlIG1peGVkIGNvbnRlbnQgbG9naWMgb3V0IG9mIEZyYW1lTG9hZGVy
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpIGIvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwaQppbmRleCAyNGNhZTI5Li4xODk1OTMxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL1dlYktpdC5neXBpCisrKyBiL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cGkKQEAgLTE0Nyw2ICsxNDcsMTEgQEAKICAgICAgICAg
ICAgICAgICAgICAgJ3Rlc3RzL0xvY2FsaXplZE51bWJlcklDVVRlc3QuY3BwJywKICAgICAgICAg
ICAgICAgICBdLAogICAgICAgICAgICAgfV0sCisgICAgICAgICAgICBbJ09TPT0iYW5kcm9pZCIn
LCB7CisgICAgICAgICAgICAgICAgJ3dlYmtpdF91bml0dGVzdF9maWxlcyc6IFsKKyAgICAgICAg
ICAgICAgICAgICAgJ3Rlc3RzL1N1cHBvcnRNdWx0aXBsZVdpbmRvd3NTZXR0aW5nVGVzdC5jcHAn
LAorICAgICAgICAgICAgICAgICBdLAorICAgICAgICAgICAgfV0sCiAgICAgICAgICAgICBbJ3Rv
b2xraXRfdXNlc19ndGsgPT0gMScsIHsKICAgICAgICAgICAgICAgICAnd2Via2l0X3VuaXR0ZXN0
X2ZpbGVzJzogWwogICAgICAgICAgICAgICAgICAgICAndGVzdHMvV2ViSW5wdXRFdmVudEZhY3Rv
cnlUZXN0R3RrLmNwcCcsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1Ymxp
Yy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGlu
Z3MuaAppbmRleCBhYmQ4NGVkLi5jYzc0M2UxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTE2NSw2ICsxNjUsOSBAQCBwdWJsaWM6CiAgICAgLy8g
REVQUkVDQVRFRAogICAgIHZpcnR1YWwgdm9pZCBzZXREZWZhdWx0RGV2aWNlU2NhbGVGYWN0b3Io
aW50KSB7IH0KIAorICAgIC8vIFRoaXMgc2V0dGluZyBpcyBvbmx5IHVzZWQgb24gQW5kcm9pZC4K
KyAgICB2aXJ0dWFsIHZvaWQgc2V0U3VwcG9ydE11bHRpcGxlV2luZG93cyhib29sKSA9IDA7CisK
IHByb3RlY3RlZDoKICAgICB+V2ViU2V0dGluZ3MoKSB7IH0KIH07CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcCBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4IDlkMDk2MWM0Li5kODUy
ZDZkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJ
bXBsLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcApAQCAtMjUyLDYgKzI1MiwxMSBAQCBQYWdlKiBDaHJvbWVDbGllbnRJbXBsOjpjcmVhdGVX
aW5kb3coCiAgICAgfSBlbHNlCiAgICAgICAgIHBvbGljeSA9IGdldE5hdmlnYXRpb25Qb2xpY3ko
KTsKIAorI2lmIE9TKEFORFJPSUQpCisgICAgaWYgKCFtX3dlYlZpZXctPnN1cHBvcnRNdWx0aXBs
ZVdpbmRvd3MoKSkKKyAgICAgICAgcmV0dXJuIGZyYW1lLT5wYWdlKCk7CisjZW5kaWYKKwogICAg
IFdyYXBwZWRSZXNvdXJjZVJlcXVlc3QgcmVxdWVzdDsKICAgICBpZiAoIXIucmVzb3VyY2VSZXF1
ZXN0KCkuaXNFbXB0eSgpKQogICAgICAgICByZXF1ZXN0LmJpbmQoci5yZXNvdXJjZVJlcXVlc3Qo
KSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0lt
cGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApp
bmRleCA5ODhjNWU2Li5lZTA2N2YwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVt
L3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNldHRpbmdzSW1wbC5jcHAKQEAgLTU3LDYgKzU3LDcgQEAgV2ViU2V0dGluZ3NJbXBsOjpX
ZWJTZXR0aW5nc0ltcGwoU2V0dGluZ3MqIHNldHRpbmdzKQogICAgICwgbV9hdXRvWm9vbUZvY3Vz
ZWROb2RlVG9MZWdpYmxlU2NhbGUoZmFsc2UpCiAgICAgLCBtX2RlZmF1bHRUaWxlU2l6ZShXZWJT
aXplKDI1NiwgMjU2KSkKICAgICAsIG1fbWF4VW50aWxlZExheWVyU2l6ZShXZWJTaXplKDUxMiwg
NTEyKSkKKyAgICAsIG1fc3VwcG9ydE11bHRpcGxlV2luZG93cyh0cnVlKQogewogICAgIEFTU0VS
VChzZXR0aW5ncyk7CiB9CkBAIC02NjksNCArNjcwLDkgQEAgYm9vbCBXZWJTZXR0aW5nc0ltcGw6
OmFwcGx5UGFnZVNjYWxlRmFjdG9ySW5Db21wb3NpdG9yKCkgY29uc3QKICAgICByZXR1cm4gbV9z
ZXR0aW5ncy0+YXBwbHlQYWdlU2NhbGVGYWN0b3JJbkNvbXBvc2l0b3IoKTsKIH0KIAordm9pZCBX
ZWJTZXR0aW5nc0ltcGw6OnNldFN1cHBvcnRNdWx0aXBsZVdpbmRvd3MoYm9vbCBzdXBwb3J0TXVs
dGlwbGVXaW5kb3dzKQoreworICAgIG1fc3VwcG9ydE11bHRpcGxlV2luZG93cyA9IHN1cHBvcnRN
dWx0aXBsZVdpbmRvd3M7Cit9CisKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmggYi9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAppbmRleCAxMTY5YzMxLi5hZGEyM2Iw
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
aAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaApAQCAt
MTQwLDYgKzE0MCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1BsYXRmb3Jt
TGF5ZXJUcmVlKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTaHJpbmtzU3RhbmRhbG9uZUlt
YWdlc1RvRml0KGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHko
Y29uc3QgV2ViU3RyaW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTik7CisgICAgdmly
dHVhbCB2b2lkIHNldFN1cHBvcnRNdWx0aXBsZVdpbmRvd3MoYm9vbCk7CiAgICAgdmlydHVhbCB2
b2lkIHNldFN5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4
dEF1dG9zaXppbmdFbmFibGVkKGJvb2wpOwpAQCAtMTY3LDYgKzE2OCw3IEBAIHB1YmxpYzoKICAg
ICBib29sIGdlc3R1cmVUYXBIaWdobGlnaHRFbmFibGVkKCkgeyByZXR1cm4gbV9nZXN0dXJlVGFw
SGlnaGxpZ2h0RW5hYmxlZDsgfQogICAgIFdlYlNpemUgZGVmYXVsdFRpbGVTaXplKCkgY29uc3Qg
eyByZXR1cm4gbV9kZWZhdWx0VGlsZVNpemU7IH0KICAgICBXZWJTaXplIG1heFVudGlsZWRMYXll
clNpemUoKSBjb25zdCB7IHJldHVybiBtX21heFVudGlsZWRMYXllclNpemU7IH0KKyAgICBib29s
IHN1cHBvcnRNdWx0aXBsZVdpbmRvd3MoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRNdWx0aXBs
ZVdpbmRvd3M7IH0KIAogcHJpdmF0ZToKICAgICBXZWJDb3JlOjpTZXR0aW5ncyogbV9zZXR0aW5n
czsKQEAgLTE4MCw2ICsxODIsNyBAQCBwcml2YXRlOgogICAgIGJvb2wgbV9hdXRvWm9vbUZvY3Vz
ZWROb2RlVG9MZWdpYmxlU2NhbGU7CiAgICAgV2ViU2l6ZSBtX2RlZmF1bHRUaWxlU2l6ZTsKICAg
ICBXZWJTaXplIG1fbWF4VW50aWxlZExheWVyU2l6ZTsKKyAgICBib29sIG1fc3VwcG9ydE11bHRp
cGxlV2luZG93czsKIH07CiAKIH0gLy8gbmFtZXNwYWNlIFdlYktpdApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwIGIvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9zcmMvV2ViVmlld0ltcGwuY3BwCmluZGV4IGQ2YmY5NGIuLjdkOGFjMTQgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJWaWV3SW1wbC5jcHAKQEAgLTQxNTgsNiArNDE1
OCwxMSBAQCBib29sIFdlYlZpZXdJbXBsOjpkZXRlY3RDb250ZW50T25Ub3VjaChjb25zdCBXZWJQ
b2ludCYgcG9zaXRpb24pCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK2Jvb2wgV2ViVmlld0ltcGw6
OnN1cHBvcnRNdWx0aXBsZVdpbmRvd3MoKQoreworICAgIHJldHVybiBzZXR0aW5nc0ltcGwoKS0+
c3VwcG9ydE11bHRpcGxlV2luZG93cygpOworfQorCiB2b2lkIFdlYlZpZXdJbXBsOjpzZXRWaXNp
YmlsaXR5U3RhdGUoV2ViUGFnZVZpc2liaWxpdHlTdGF0ZSB2aXNpYmlsaXR5U3RhdGUsCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYm9vbCBpc0luaXRpYWxTdGF0ZSkgewog
ICAgIGlmICghcGFnZSgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
V2ViVmlld0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlZpZXdJbXBsLmgK
aW5kZXggNDc5MDdmMS4uYWMwY2I4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViVmlld0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJW
aWV3SW1wbC5oCkBAIC0zNDIsNiArMzQyLDggQEAgcHVibGljOgogICAgIC8vIFJldHVybnMgdGhl
IGN1cnJlbnRseSBmb2N1c2VkIE5vZGUgb3IgbnVsbCBpZiBubyBub2RlIGhhcyBmb2N1cy4KICAg
ICBXZWJDb3JlOjpOb2RlKiBmb2N1c2VkV2ViQ29yZU5vZGUoKTsKIAorICAgIGJvb2wgc3VwcG9y
dE11bHRpcGxlV2luZG93cygpOworCiAgICAgc3RhdGljIFdlYlZpZXdJbXBsKiBmcm9tUGFnZShX
ZWJDb3JlOjpQYWdlKik7CiAKICAgICAvLyBBIHBhZ2VHcm91cCBpZGVudGlmaWVzIGEgbmFtZXNw
YWNlIG9mIHBhZ2VzLiBQYWdlIGdyb3VwcyBhcmUgdXNlZCBvbiBQTEFURk9STShNQUMpCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1N1cHBvcnRNdWx0aXBsZVdpbmRv
d3NTZXR0aW5nVGVzdC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1N1cHBvcnRN
dWx0aXBsZVdpbmRvd3NTZXR0aW5nVGVzdC5jcHAKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMGFhOTc5NAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vdGVzdHMvU3VwcG9ydE11bHRpcGxlV2luZG93c1NldHRpbmdUZXN0LmNwcApAQCAtMCwwICsx
LDExMCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxMiBHb29nbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBi
aW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0
dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zIGFyZQorICogbWV0Ogor
ICoKKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0
aGUgYWJvdmUgY29weXJpZ2h0CisgKiBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFu
ZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAgICAgKiBSZWRpc3RyaWJ1dGlvbnMgaW4g
YmluYXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlCisgKiBjb3B5cmlnaHQgbm90aWNl
LCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyCisg
KiBpbiB0aGUgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdp
dGggdGhlCisgKiBkaXN0cmlidXRpb24uCisgKiAgICAgKiBOZWl0aGVyIHRoZSBuYW1lIG9mIEdv
b2dsZSBJbmMuIG5vciB0aGUgbmFtZXMgb2YgaXRzCisgKiBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQgZnJvbQorICogdGhpcyBz
b2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisg
KiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIFRIRSBDT1BZUklHSFQgSE9MREVSUyBBTkQg
Q09OVFJJQlVUT1JTCisgKiAiQVMgSVMiIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJB
TlRJRVMsIElOQ0xVRElORywgQlVUIE5PVAorICogTElNSVRFRCBUTywgVEhFIElNUExJRUQgV0FS
UkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SCisgKiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgVEhFIENPUFlSSUdI
VAorICogT1dORVIgT1IgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZIERJUkVDVCwgSU5E
SVJFQ1QsIElOQ0lERU5UQUwsCisgKiBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUyAoSU5DTFVESU5HLCBCVVQgTk9UCisgKiBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOyBMT1NTIE9GIFVTRSwKKyAqIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
IE9OIEFOWQorICogVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFCisgKiBPRiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNpbmNsdWRlICJjb25maWcuaCIKKworI2luY2x1ZGUgIkRvY3VtZW50LmgiCisjaW5j
bHVkZSAiRnJhbWUuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCisjaW5jbHVkZSAi
RnJhbWVMb2FkZXIuaCIKKyNpbmNsdWRlICJXZWJGcmFtZS5oIgorI2luY2x1ZGUgIldlYkZyYW1l
Q2xpZW50LmgiCisjaW5jbHVkZSAiV2ViRnJhbWVJbXBsLmgiCisjaW5jbHVkZSAiV2ViU2V0dGlu
Z3MuaCIKKyNpbmNsdWRlICJXZWJWaWV3LmgiCisjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgor
I2luY2x1ZGUgIldpbmRvd0ZlYXR1cmVzLmgiCisKKyNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgor
I2luY2x1ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmg+CisKK3VzaW5nIG5hbWVz
cGFjZSBXZWJLaXQ7CisKK25hbWVzcGFjZSB7CisKK2NsYXNzIFRlc3RXZWJGcmFtZUNsaWVudCA6
IHB1YmxpYyBXZWJGcmFtZUNsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+VGVzdFdlYkZy
YW1lQ2xpZW50KCkKKyAgICB7CisgICAgfQorfTsKKworY2xhc3MgVGVzdFdlYlZpZXdDbGllbnQg
OiBwdWJsaWMgV2ViVmlld0NsaWVudCB7CitwdWJsaWM6CisgICAgdmlydHVhbCB+VGVzdFdlYlZp
ZXdDbGllbnQoKQorICAgIHsKKyAgICB9Cit9OworCitjbGFzcyBTdXBwb3J0TXVsdGlwbGVXaW5k
b3dzU2V0dGluZ1Rlc3QgOiBwdWJsaWMgdGVzdGluZzo6VGVzdCB7CitwdWJsaWM6CisgICAgU3Vw
cG9ydE11bHRpcGxlV2luZG93c1NldHRpbmdUZXN0KCkKKyAgICB7CisgICAgfQorICAgIHZpcnR1
YWwgflN1cHBvcnRNdWx0aXBsZVdpbmRvd3NTZXR0aW5nVGVzdCgpCisgICAgeworICAgIH0KKwor
cHJvdGVjdGVkOgorICAgIHZpcnR1YWwgdm9pZCBTZXRVcCgpCisgICAgeworICAgICAgICBtX3dl
YlZpZXcgPSBXZWJWaWV3OjpjcmVhdGUoJm1fd2ViVmlld0NsaWVudCk7CisKKyAgICAgICAgV2Vi
U2V0dGluZ3MqIHNldHRpbmdzID0gbV93ZWJWaWV3LT5zZXR0aW5ncygpOworICAgICAgICBzZXR0
aW5ncy0+c2V0SmF2YVNjcmlwdEVuYWJsZWQodHJ1ZSk7CisKKyAgICAgICAgbV93ZWJWaWV3LT5p
bml0aWFsaXplTWFpbkZyYW1lKCZtX3dlYkZyYW1lQ2xpZW50KTsKKyAgICB9CisKKyAgICB2aXJ0
dWFsIHZvaWQgVGVhckRvd24oKQorICAgIHsKKyAgICAgICAgbV93ZWJWaWV3LT5jbG9zZSgpOwor
ICAgIH0KKworICAgIFdlYlZpZXcqIG1fd2ViVmlldzsKKworcHJpdmF0ZToKKyAgICBUZXN0V2Vi
Vmlld0NsaWVudCBtX3dlYlZpZXdDbGllbnQ7CisgICAgVGVzdFdlYkZyYW1lQ2xpZW50IG1fd2Vi
RnJhbWVDbGllbnQ7Cit9OworCitURVNUX0YoU3VwcG9ydE11bHRpcGxlV2luZG93c1NldHRpbmdU
ZXN0LCBXaW5kb3dPcGVuU3VwcG9ydE11bHRpcGxlV2luZG93c0Rpc2FibGVkKQoreworICAgIG1f
d2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0U3VwcG9ydE11bHRpcGxlV2luZG93cyhmYWxzZSk7Cisg
ICAgV2ViRnJhbWVJbXBsKiBvbGRGcmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1lSW1wbCo+KG1f
d2ViVmlldy0+bWFpbkZyYW1lKCkpOworICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QgcmVx
dWVzdChvbGRGcmFtZS0+ZnJhbWUoKS0+ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSk7Cisg
ICAgV2ViQ29yZTo6V2luZG93RmVhdHVyZXMgZmVhdHVyZXM7CisgICAgYm9vbCBjcmVhdGVkID0g
dHJ1ZTsKKyAgICBXZWJDb3JlOjpGcmFtZSogbmV3RnJhbWUgPSBXZWJDb3JlOjpjcmVhdGVXaW5k
b3cob2xkRnJhbWUtPmZyYW1lKCksIDAsIHJlcXVlc3QsIGZlYXR1cmVzLCBjcmVhdGVkKTsKKyAg
ICBFWFBFQ1RfRVEob2xkRnJhbWUtPmZyYW1lKCksIG5ld0ZyYW1lKTsKKyAgICBFWFBFQ1RfRkFM
U0UoY3JlYXRlZCk7Cit9CisKK30K
</data>
<flag name="review"
          id="182688"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169628</attachid>
            <date>2012-10-19 08:43:00 -0700</date>
            <delta_ts>2012-10-22 07:34:30 -0700</delta_ts>
            <desc>A WebCore version of the patch, as Adam has suggested</desc>
            <filename>wk-99716-webcore.patch</filename>
            <type>text/plain</type>
            <size>10866</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA4MDY5MTg0Li40MTFjNDkyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMzAg
QEAKKzIwMTItMTAtMTkgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4K
KworICAgICAgICBbQ2hyb21pdW1dIEFkZCBzdXBwb3J0TXVsdGlwbGVXaW5kb3dzIHNldHRpbmcs
IG5lZWRlZCBmb3IgQW5kcm9pZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9OTk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4K
KworICAgICAgICBBZGQgc3VwcG9ydE11bHRpcGxlV2luZG93cyBzZXR0aW5ncyBmb3IgcmV1c2lu
ZyB0aGUgc2FtZSB2aWV3IHdoZW4KKyAgICAgICAgb3BlbmluZyBwb3B1cHMuIFRoaXMgaXMgcmVx
dWlyZWQgZm9yIGVtdWxhdGluZyB0aGUgYmVoYXZpb3Igb2YKKyAgICAgICAgQW5kcm9pZCBXZWJW
aWV3LiBBZGRpbmcgaW50byBXZWJDb3JlLCBhcyBvdGhlciBwb3J0cyBtaWdodCB3YW50IHRvCisg
ICAgICAgIHVzZSB0aGlzIHNldHRpbmcgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICBBZGRlZCBh
IHVuaXQgdGVzdCBpbiB0aGUgQ2hyb21pdW0gcG9ydDoKKyAgICAgICAgICAgIHRlc3RzL1dlYlZp
ZXdUZXN0LmNwcAorCisgICAgICAgICogbG9hZGVyL0ZyYW1lTG9hZGVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyk6CisgICAgICAgICogcGFnZS9Db250ZXh0TWVudUNvbnRy
b2xsZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6b3Blbk5ld1dpbmRvdyk6CisgICAgICAgICog
cGFnZS9TZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6U2V0dGluZ3Mp
OgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnNldFN1cHBvcnRNdWx0aXBsZVdpbmRvd3Mp
OgorICAgICAgICAoV2ViQ29yZSk6CisgICAgICAgICogcGFnZS9TZXR0aW5ncy5oOgorICAgICAg
ICAoU2V0dGluZ3MpOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OnN1cHBvcnRNdWx0aXBs
ZVdpbmRvd3MpOgorCiAyMDEyLTEwLTE5ICBQYXZlbCBGZWxkbWFuICA8cGZlbGRtYW5AY2hyb21p
dW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBvYmplY3Qtc3JjICdub25lJyB0
byB0aGUgaW5zcGVjdG9yLmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2FkZXIuY3BwCmlu
ZGV4IDgxZmMwYzUuLjViNDE3NmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9G
cmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1lTG9hZGVyLmNw
cApAQCAtMzI3OSw2ICszMjc5LDExIEBAIEZyYW1lKiBjcmVhdGVXaW5kb3coRnJhbWUqIG9wZW5l
ckZyYW1lLCBGcmFtZSogbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVlCiAgICAgcmVx
dWVzdFdpdGhSZWZlcnJlci5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQUmVmZXJyZXIob3BlbmVy
RnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpOwogICAgIEZyYW1lTG9hZGVyOjph
ZGRIVFRQT3JpZ2luSWZOZWVkZWQocmVxdWVzdFdpdGhSZWZlcnJlci5yZXNvdXJjZVJlcXVlc3Qo
KSwgb3BlbmVyRnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ09yaWdpbigpKTsKIAorICAgIGlmIChv
cGVuZXJGcmFtZS0+c2V0dGluZ3MoKSAmJiAhb3BlbmVyRnJhbWUtPnNldHRpbmdzKCktPnN1cHBv
cnRNdWx0aXBsZVdpbmRvd3MoKSkgeworICAgICAgICBjcmVhdGVkID0gZmFsc2U7CisgICAgICAg
IHJldHVybiBvcGVuZXJGcmFtZTsKKyAgICB9CisKICAgICBQYWdlKiBvbGRQYWdlID0gb3BlbmVy
RnJhbWUtPnBhZ2UoKTsKICAgICBpZiAoIW9sZFBhZ2UpCiAgICAgICAgIHJldHVybiAwOwpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCmluZGV4IGQ5MDE5
ZmMuLjBmNmExZjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJv
bGxlci5jcHAKQEAgLTE3OSw3ICsxNzksOSBAQCBzdGF0aWMgdm9pZCBvcGVuTmV3V2luZG93KGNv
bnN0IEtVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lKQogewogICAgIGlmIChQYWdlKiBvbGRQ
YWdlID0gZnJhbWUtPnBhZ2UoKSkgewogICAgICAgICBGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3Qo
ZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNlUmVxdWVzdCh1cmxU
b0xvYWQsIGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKSk7Ci0gICAgICAgIGlm
IChQYWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCktPmNyZWF0ZVdpbmRvdyhmcmFtZSwg
cmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291
cmNlUmVxdWVzdCgpKSkpIHsKKyAgICAgICAgaWYgKGZyYW1lLT5zZXR0aW5ncygpICYmICFmcmFt
ZS0+c2V0dGluZ3MoKS0+c3VwcG9ydE11bHRpcGxlV2luZG93cygpKQorICAgICAgICAgICAgb2xk
UGFnZS0+bWFpbkZyYW1lKCktPmxvYWRlcigpLT5sb2FkRnJhbWVSZXF1ZXN0KHJlcXVlc3QsIGZh
bHNlLCBmYWxzZSwgMCwgMCwgTWF5YmVTZW5kUmVmZXJyZXIpOworICAgICAgICBlbHNlIGlmIChQ
YWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCktPmNyZWF0ZVdpbmRvdyhmcmFtZSwgcmVx
dWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlvbkFjdGlvbihyZXF1ZXN0LnJlc291cmNl
UmVxdWVzdCgpKSkpIHsKICAgICAgICAgICAgIG5ld1BhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIo
KS0+bG9hZEZyYW1lUmVxdWVzdChyZXF1ZXN0LCBmYWxzZSwgZmFsc2UsIDAsIDAsIE1heWJlU2Vu
ZFJlZmVycmVyKTsKICAgICAgICAgICAgIG5ld1BhZ2UtPmNocm9tZSgpLT5zaG93KCk7CiAgICAg
ICAgIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggOTg3NmFmNS4uODgzNGVlYiAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKQEAgLTE2OCw2ICsxNjgsNyBAQCBTZXR0aW5nczo6U2V0
dGluZ3MoUGFnZSogcGFnZSkKICAgICAsIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVS
THModHJ1ZSkKICAgICAsIG1fYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpCiAgICAg
LCBtX2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoZmFsc2UpCisgICAgLCBt
X3N1cHBvcnRNdWx0aXBsZVdpbmRvd3ModHJ1ZSkKICAgICAsIG1famF2YVNjcmlwdENhbkFjY2Vz
c0NsaXBib2FyZChmYWxzZSkKICAgICAsIG1fc2hvdWxkUHJpbnRCYWNrZ3JvdW5kcyhmYWxzZSkK
ICAgICAsIG1fdGV4dEFyZWFzQXJlUmVzaXphYmxlKGZhbHNlKQpAQCAtNTc3LDYgKzU3OCwxMSBA
QCB2b2lkIFNldHRpbmdzOjpzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
KGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaQogICAgIG1famF2YVNjcmlwdENhbk9wZW5XaW5kb3dz
QXV0b21hdGljYWxseSA9IGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk7CiB9
CiAKK3ZvaWQgU2V0dGluZ3M6OnNldFN1cHBvcnRNdWx0aXBsZVdpbmRvd3MoYm9vbCBzdXBwb3J0
TXVsdGlwbGVXaW5kb3dzKQoreworICAgIG1fc3VwcG9ydE11bHRpcGxlV2luZG93cyA9IHN1cHBv
cnRNdWx0aXBsZVdpbmRvd3M7Cit9CisKIHZvaWQgU2V0dGluZ3M6OnNldEphdmFTY3JpcHRDYW5B
Y2Nlc3NDbGlwYm9hcmQoYm9vbCBqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKQogewogICAg
IG1famF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCA9IGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlw
Ym9hcmQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmggYi9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKaW5kZXggODk3ODVkMS4uMzI0NmViNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BhZ2UvU2V0dGluZ3MuaApAQCAtMTUxLDYgKzE1MSw5IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsK
ICAgICAgICAgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KGJv
b2wpOwogICAgICAgICBib29sIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHko
KSBjb25zdCB7IHJldHVybiBtX2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk7
IH0KIAorICAgICAgICB2b2lkIHNldFN1cHBvcnRNdWx0aXBsZVdpbmRvd3MoYm9vbCk7CisgICAg
ICAgIGJvb2wgc3VwcG9ydE11bHRpcGxlV2luZG93cygpIGNvbnN0IHsgcmV0dXJuIG1fc3VwcG9y
dE11bHRpcGxlV2luZG93czsgfQorCiAgICAgICAgIHZvaWQgc2V0SmF2YVNjcmlwdENhbkFjY2Vz
c0NsaXBib2FyZChib29sKTsKICAgICAgICAgYm9vbCBqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJv
YXJkKCkgY29uc3QgeyByZXR1cm4gbV9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkOyB9CiAK
QEAgLTcwMiw2ICs3MDUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAgICAgICAgIGJvb2wgbV9h
bGxvd1VuaXZlcnNhbEFjY2Vzc0Zyb21GaWxlVVJMczogMTsKICAgICAgICAgYm9vbCBtX2FsbG93
RmlsZUFjY2Vzc0Zyb21GaWxlVVJMczogMTsKICAgICAgICAgYm9vbCBtX2phdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkgOiAxOworICAgICAgICBib29sIG1fc3VwcG9ydE11bHRp
cGxlV2luZG93cyA6IDE7CiAgICAgICAgIGJvb2wgbV9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJv
YXJkIDogMTsKICAgICAgICAgYm9vbCBtX3Nob3VsZFByaW50QmFja2dyb3VuZHMgOiAxOwogICAg
ICAgICBib29sIG1fdGV4dEFyZWFzQXJlUmVzaXphYmxlIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFu
Z2VMb2cKaW5kZXggOWFkYmM0MC4uY2MzMmI0NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9j
aHJvbWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwyNSBAQAorMjAxMi0xMC0xOSAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZA
Y2hyb21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIHN1cHBvcnRNdWx0aXBsZVdp
bmRvd3Mgc2V0dGluZywgbmVlZGVkIGZvciBBbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5P
Qk9EWSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0TXVsdGlwbGVXaW5kb3dzIHNldHRp
bmdzIGZvciByZXVzaW5nIHRoZSBzYW1lIHZpZXcgd2hlbgorICAgICAgICBvcGVuaW5nIHBvcHVw
cy4gVGhpcyBpcyByZXF1aXJlZCBmb3IgZW11bGF0aW5nIHRoZSBiZWhhdmlvciBvZgorICAgICAg
ICBBbmRyb2lkIFdlYlZpZXcuIEFkZGluZyBpbnRvIFdlYkNvcmUsIGFzIG90aGVyIHBvcnRzIG1p
Z2h0IHdhbnQgdG8KKyAgICAgICAgdXNlIHRoaXMgc2V0dGluZyBpbiB0aGUgZnV0dXJlLgorCisg
ICAgICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6
ZGlzcGF0Y2hDcmVhdGVQYWdlKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoK
KyAgICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRTdXBwb3J0TXVsdGlwbGVXaW5k
b3dzKToKKyAgICAgICAgKFdlYktpdCk6CisgICAgICAgICogc3JjL1dlYlNldHRpbmdzSW1wbC5o
OgorICAgICAgICAoV2ViU2V0dGluZ3NJbXBsKToKKyAgICAgICAgKiB0ZXN0cy9XZWJWaWV3VGVz
dC5jcHA6CisKIDIwMTItMTAtMTcgIElseWEgVGlraG9ub3Zza3kgIDxsb2lzbG9AY2hyb21pdW0u
b3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IE5NSSBwcm92aWRlIGRhdGEgZm9yIG1peGlu
ZyB3aXRoIHRjbWFsbG9jIGhlYXAgZHVtcHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaAppbmRleCBhYmQ4NGVkLi42MjcwZTgxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vcHVibGljL1dlYlNldHRpbmdzLmgKQEAgLTE0NSw2ICsxNDUsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dQbGF0Zm9ybUxheWVyVHJlZShib29sKSA9IDA7
CiAgICAgdmlydHVhbCB2b2lkIHNldFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoYm9vbCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoY29uc3QgV2ViU3Ry
aW5nJiwgVVNjcmlwdENvZGUgPSBVU0NSSVBUX0NPTU1PTikgPSAwOworICAgIHZpcnR1YWwgdm9p
ZCBzZXRTdXBwb3J0TXVsdGlwbGVXaW5kb3dzKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0U3luY1hIUkluRG9jdW1lbnRzRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IHNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNl
dFRleHRBdXRvc2l6aW5nRW5hYmxlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvRnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCA0OWU3ODBiLi43
ZWMwZGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRl
ckNsaWVudEltcGwuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9h
ZGVyQ2xpZW50SW1wbC5jcHAKQEAgLTg5Myw2ICs4OTMsOSBAQCBGcmFtZSogRnJhbWVMb2FkZXJD
bGllbnRJbXBsOjpkaXNwYXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0
aW9uKQogICAgIENocm9tZUNsaWVudEltcGwqIGNocm9tZUNsaWVudCA9IHN0YXRpY19jYXN0PENo
cm9tZUNsaWVudEltcGwqPihtX3dlYkZyYW1lLT5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5j
bGllbnQoKSk7CiAgICAgY2hyb21lQ2xpZW50LT5zZXROZXdXaW5kb3dOYXZpZ2F0aW9uUG9saWN5
KHBvbGljeSk7CiAKKyAgICBpZiAobV93ZWJGcmFtZS0+ZnJhbWUoKS0+c2V0dGluZ3MoKSAmJiAh
bV93ZWJGcmFtZS0+ZnJhbWUoKS0+c2V0dGluZ3MoKS0+c3VwcG9ydE11bHRpcGxlV2luZG93cygp
KQorICAgICAgICByZXR1cm4gbV93ZWJGcmFtZS0+ZnJhbWUoKTsKKwogICAgIHN0cnVjdCBXaW5k
b3dGZWF0dXJlcyBmZWF0dXJlczsKICAgICBQYWdlKiBuZXdQYWdlID0gbV93ZWJGcmFtZS0+ZnJh
bWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3JlYXRlV2luZG93KAogICAgICAgICBtX3dlYkZyYW1l
LT5mcmFtZSgpLCBGcmFtZUxvYWRSZXF1ZXN0KG1fd2ViRnJhbWUtPmZyYW1lKCktPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCkpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5jcHAKaW5kZXggOTg4YzVlNi4uZGFkNmExZiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC0xODksNiArMTg5LDEx
IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5KGJvb2wgY2FuT3BlbldpbmRvCiAgICAgbV9zZXR0aW5ncy0+c2V0SmF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShjYW5PcGVuV2luZG93cyk7CiB9CiAKK3ZvaWQg
V2ViU2V0dGluZ3NJbXBsOjpzZXRTdXBwb3J0TXVsdGlwbGVXaW5kb3dzKGJvb2wgc3VwcG9ydE11
bHRpcGxlV2luZG93cykKK3sKKyAgICBtX3NldHRpbmdzLT5zZXRTdXBwb3J0TXVsdGlwbGVXaW5k
b3dzKHN1cHBvcnRNdWx0aXBsZVdpbmRvd3MpOworfQorCiB2b2lkIFdlYlNldHRpbmdzSW1wbDo6
c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGJvb2wgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KQogewogICAgIG1fc2V0dGluZ3MtPnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShsb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9z
cmMvV2ViU2V0dGluZ3NJbXBsLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuaAppbmRleCAxMTY5YzMxLi40Y2I1ZGVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
S2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaAorKysgYi9Tb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuaApAQCAtMTQwLDYgKzE0MCw3IEBAIHB1YmxpYzoK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0U2hvd1BsYXRmb3JtTGF5ZXJUcmVlKGJvb2wpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KGJvb2wpOwogICAgIHZp
cnR1YWwgdm9pZCBzZXRTdGFuZGFyZEZvbnRGYW1pbHkoY29uc3QgV2ViU3RyaW5nJiwgVVNjcmlw
dENvZGUgPSBVU0NSSVBUX0NPTU1PTik7CisgICAgdmlydHVhbCB2b2lkIHNldFN1cHBvcnRNdWx0
aXBsZVdpbmRvd3MoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFN5bmNYSFJJbkRvY3VtZW50
c0VuYWJsZWQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRBcmVhc0FyZVJlc2l6YWJs
ZShib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKGJvb2wp
OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJWaWV3VGVzdC5j
cHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcAppbmRleCAx
OTI5YzFiLi5iYThiMGQ5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3Rz
L1dlYlZpZXdUZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlZp
ZXdUZXN0LmNwcApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNp
bmNsdWRlICJFbGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1
ZGUgIkZyYW1lVGVzdEhlbHBlcnMuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRl
ICJIVE1MRG9jdW1lbnQuaCIKQEAgLTQ0LDkgKzQ1LDExIEBACiAjaW5jbHVkZSAiV2ViRnJhbWVD
bGllbnQuaCIKICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2
ZW50LmgiCisjaW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJT
aXplLmgiCiAjaW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlZpZXdJbXBs
LmgiCisjaW5jbHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5o
PgogI2luY2x1ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmg+CiAKQEAgLTY1MSw0
ICs2NTQsMTcgQEAgVEVTVF9GKFdlYlZpZXdUZXN0LCBMb25nUHJlc3NTZWxlY3Rpb24pCiB9CiAj
ZW5kaWYKIAorVEVTVF9GKFdlYlZpZXdUZXN0LCBTdXBwb3J0TXVsdGlwbGVXaW5kb3dzU2V0dGlu
ZykKK3sKKyAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3JlYXRlV2Vi
Vmlld0FuZExvYWQoImFib3V0OmJsYW5rIik7CisgICAgd2ViVmlldy0+c2V0dGluZ3MoKS0+c2V0
U3VwcG9ydE11bHRpcGxlV2luZG93cyhmYWxzZSk7CisgICAgV2ViQ29yZTo6RnJhbWUqIG9sZEZy
YW1lID0gc3RhdGljX2Nhc3Q8V2ViRnJhbWVJbXBsKj4od2ViVmlldy0+bWFpbkZyYW1lKCkpLT5m
cmFtZSgpOworICAgIFdlYkNvcmU6OkZyYW1lTG9hZFJlcXVlc3QgcmVxdWVzdChvbGRGcmFtZS0+
ZG9jdW1lbnQoKS0+c2VjdXJpdHlPcmlnaW4oKSk7CisgICAgV2ViQ29yZTo6V2luZG93RmVhdHVy
ZXMgZmVhdHVyZXM7CisgICAgYm9vbCBjcmVhdGVkID0gdHJ1ZTsKKyAgICBXZWJDb3JlOjpGcmFt
ZSogbmV3RnJhbWUgPSBXZWJDb3JlOjpjcmVhdGVXaW5kb3cob2xkRnJhbWUsIDAsIHJlcXVlc3Qs
IGZlYXR1cmVzLCBjcmVhdGVkKTsKKyAgICBFWFBFQ1RfRVEob2xkRnJhbWUsIG5ld0ZyYW1lKTsK
KyAgICBFWFBFQ1RfRkFMU0UoY3JlYXRlZCk7Cit9CisKIH0K
</data>
<flag name="review"
          id="182992"
          type_id="1"
          status="-"
          setter="abarth"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>169905</attachid>
            <date>2012-10-22 07:34:30 -0700</date>
            <delta_ts>2012-10-24 15:53:03 -0700</delta_ts>
            <desc>Comments addressed, added layout tests</desc>
            <filename>wk-99716-webcore.patch</filename>
            <type>text/plain</type>
            <size>23161</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMTdjZDlhLi5lYjNlNTI3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMTAt
MjIgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBb
Q2hyb21pdW1dIEFkZCBzdXBwb3J0TXVsdGlwbGVXaW5kb3dzIHNldHRpbmcsIG5lZWRlZCBmb3Ig
QW5kcm9pZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgc3VwcG9ydE11bHRpcGxlV2luZG93cyBzZXR0aW5ncyBmb3IgcmV1c2luZyB0aGUgc2FtZSB2
aWV3IHdoZW4KKyAgICAgICAgb3BlbmluZyBwb3B1cHMuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGVt
dWxhdGluZyB0aGUgYmVoYXZpb3Igb2YKKyAgICAgICAgQW5kcm9pZCBXZWJWaWV3LiBBZGRpbmcg
aW50byBXZWJDb3JlLCBhcyBvdGhlciBwb3J0cyBtaWdodCB3YW50IHRvCisgICAgICAgIHVzZSB0
aGlzIHNldHRpbmcgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNo
b3JFbGVtZW50L2FuY2hvci1uby1tdWx0aXBsZS13aW5kb3dzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLW5vLW11bHRpcGxl
LXdpbmRvd3MuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1v
cGVuLW5vLW11bHRpcGxlLXdpbmRvd3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9XaW5kb3cvd2luZG93LW9wZW4tbm8tbXVsdGlwbGUtd2luZG93cy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Bvc3QtcG9wdXAtbm8tbXVsdGlwbGUtd2luZG93cy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvcG9zdC1wb3B1cC1uby1t
dWx0aXBsZS13aW5kb3dzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1uby1tdWx0aXBsZS13aW5kb3dzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20v
V2luZG93L3dpbmRvdy1vcGVuLW5vLW11bHRpcGxlLXdpbmRvd3MtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3Bvc3QtcG9wdXAtbm8t
bXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEyLTEwLTE5ICBCYWxh
enMgS2VsZW1lbiAgPGtiYWxhenNAd2Via2l0Lm9yZz4KIAogICAgICAgICBbUXRdIFBpeGVsIHRl
c3RzIG5lZWQgcmViYXNlbGluZQpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRN
TEFuY2hvckVsZW1lbnQvYW5jaG9yLW5vLW11bHRpcGxlLXdpbmRvd3MtZXhwZWN0ZWQudHh0IGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLW5vLW11bHRpcGxl
LXdpbmRvd3MtZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAu
LmFkMWI5OWQKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5j
aG9yRWxlbWVudC9hbmNob3Itbm8tbXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQKQEAgLTAs
MCArMSwyIEBACitDT05TT0xFIE1FU1NBR0U6IEludmFsaWQgbmFtZSBmb3IgcHJlZmVyZW5jZTog
V2ViS2l0U3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MKK0ZBSUw6IFBvcHVwIG9wZW5lZCBpbiBhIG5l
dyB3aW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVt
ZW50L2FuY2hvci1uby1tdWx0aXBsZS13aW5kb3dzLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Rv
bS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm8tbXVsdGlwbGUtd2luZG93cy5odG1sCm5ldyBm
aWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI3OTg1MTIKLS0tIC9kZXYvbnVsbAorKysg
Yi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm8tbXVsdGlw
bGUtd2luZG93cy5odG1sCkBAIC0wLDAgKzEsNDUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+
Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVu
bmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKHRydWUp
OworICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCdXZWJLaXRKYXZhU2NyaXB0Q2Fu
T3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5JywgdHJ1ZSk7CisgICAgdGVzdFJ1bm5lci5vdmVycmlk
ZVByZWZlcmVuY2UoJ1dlYktpdFN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzJywgZmFsc2UpOworICAg
IHRlc3RSdW5uZXIud2FpdFVudGlsRG9uZSgpOworfQorCitmdW5jdGlvbiBjbGljayhlbG10KQor
eworICAgIGlmICghd2luZG93LmV2ZW50U2VuZGVyKSB7CisgICAgICAgIGFsZXJ0KCdDbGljayB0
aGUgbGluayB0byBydW4gdGhlIHRlc3QuJyk7CisgICAgICAgIHJldHVybjsKKyAgICB9CisgICAg
ZXZlbnRTZW5kZXIubW91c2VNb3ZlVG8oZWxtdC5vZmZzZXRMZWZ0ICsgNSwgZWxtdC5vZmZzZXRU
b3AgKyA1KTsKKyAgICBldmVudFNlbmRlci5tb3VzZURvd24oKTsKKyAgICBldmVudFNlbmRlci5t
b3VzZVVwKCk7Cit9CisKK2Z1bmN0aW9uIHJ1blRlc3QoKQoreworICAgIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKKyAgICAgICAgdmFyIHdpbmRvd0NvdW50ID0gdGVzdFJ1bm5lci53aW5kb3dDb3Vu
dCgpOworICAgIHZhciBsaW5rID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImxpbmsiKTsKKyAg
ICBjbGljayhsaW5rKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgaWYg
KHdpbmRvd0NvdW50ICE9IHRlc3RSdW5uZXIud2luZG93Q291bnQoKSkKKyAgICAgICAgICAgIGRv
Y3VtZW50LndyaXRlbG4oJ0ZBSUw6IFBvcHVwIG9wZW5lZCBpbiBhIG5ldyB3aW5kb3cnKTsKKyAg
ICAgICAgZWxzZQorICAgICAgICAgICAgZG9jdW1lbnQud3JpdGVsbignUEFTUzogUG9wdXAgb3Bl
bmVkIGluIHRoZSBzYW1lIHdpbmRvdycpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsKKyAgICB9Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwg
dHJ1ZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorPGEgaWQ9ImxpbmsiIHRhcmdldD0i
X2JsYW5rIiBocmVmPSJkYXRhOnRleHQvaHRtbDtjaGFyc2V0PXV0Zi04LDxodG1sPjxib2R5PlRo
ZSB0ZXN0IHBhc3NlcyBpZiB0aGlzIHBhZ2Ugb3BlbnMgaW4gdGhlIHNhbWUgd2luZG93PC9ib2R5
PjwvaHRtbD4iPkNsaWNrIG1lITwvYT4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctb3Blbi1uby1tdWx0aXBsZS13aW5kb3dz
LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctb3Blbi1u
by1tdWx0aXBsZS13aW5kb3dzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwLi5hZDFiOTlkCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9k
b20vV2luZG93L3dpbmRvdy1vcGVuLW5vLW11bHRpcGxlLXdpbmRvd3MtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEsMiBAQAorQ09OU09MRSBNRVNTQUdFOiBJbnZhbGlkIG5hbWUgZm9yIHByZWZlcmVu
Y2U6IFdlYktpdFN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzCitGQUlMOiBQb3B1cCBvcGVuZWQgaW4g
YSBuZXcgd2luZG93CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2lu
ZG93LW9wZW4tbm8tbXVsdGlwbGUtd2luZG93cy5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20v
V2luZG93L3dpbmRvdy1vcGVuLW5vLW11bHRpcGxlLXdpbmRvd3MuaHRtbApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwLi5jZjdjZDA0Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1vcGVuLW5vLW11bHRpcGxlLXdpbmRvd3MuaHRt
bApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2Ny
aXB0PgoraWYgKHdpbmRvdy50ZXN0UnVubmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0
KCk7CisgICAgdGVzdFJ1bm5lci5zZXRDYW5PcGVuV2luZG93cyh0cnVlKTsKKyAgICB0ZXN0UnVu
bmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgnV2ViS2l0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0
b21hdGljYWxseScsIHRydWUpOworICAgIHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCdX
ZWJLaXRTdXBwb3J0c011bHRpcGxlV2luZG93cycsIGZhbHNlKTsKKyAgICB0ZXN0UnVubmVyLndh
aXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRv
dy50ZXN0UnVubmVyKQorICAgICAgICB2YXIgd2luZG93Q291bnQgPSB0ZXN0UnVubmVyLndpbmRv
d0NvdW50KCk7CisgICAgd2luZG93Lm9wZW4oJ2RhdGE6dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgs
PGh0bWw+PGJvZHk+VGhlIHRlc3QgcGFzc2VzIGlmIHRoaXMgcGFnZSBvcGVucyBpbiB0aGUgc2Ft
ZSB3aW5kb3c8L2JvZHk+PC9odG1sPicpOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgewor
ICAgICAgICBpZiAod2luZG93Q291bnQgIT0gdGVzdFJ1bm5lci53aW5kb3dDb3VudCgpKQorICAg
ICAgICAgICAgZG9jdW1lbnQud3JpdGVsbignRkFJTDogUG9wdXAgb3BlbmVkIGluIGEgbmV3IHdp
bmRvdycpOworICAgICAgICBlbHNlCisgICAgICAgICAgICBkb2N1bWVudC53cml0ZWxuKCdQQVNT
OiBQb3B1cCBvcGVuZWQgaW4gdGhlIHNhbWUgd2luZG93Jyk7CisgICAgICAgIHRlc3RSdW5uZXIu
bm90aWZ5RG9uZSgpOworICAgIH0KK30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQn
LCBydW5UZXN0LCB0cnVlKTsKKzwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+Cis8L2JvZHk+Cis8
L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Bvc3QtcG9wdXAtbm8t
bXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Bv
c3QtcG9wdXAtbm8tbXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMC4uYWQxYjk5ZAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvZm9ybXMvcG9zdC1wb3B1cC1uby1tdWx0aXBsZS13aW5kb3dzLWV4cGVjdGVkLnR4
dApAQCAtMCwwICsxLDIgQEAKK0NPTlNPTEUgTUVTU0FHRTogSW52YWxpZCBuYW1lIGZvciBwcmVm
ZXJlbmNlOiBXZWJLaXRTdXBwb3J0c011bHRpcGxlV2luZG93cworRkFJTDogUG9wdXAgb3BlbmVk
IGluIGEgbmV3IHdpbmRvdwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC9mb3Jtcy9wb3N0
LXBvcHVwLW5vLW11bHRpcGxlLXdpbmRvd3MuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMv
cG9zdC1wb3B1cC1uby1tdWx0aXBsZS13aW5kb3dzLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uMmMxZmI1NAotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zh
c3QvZm9ybXMvcG9zdC1wb3B1cC1uby1tdWx0aXBsZS13aW5kb3dzLmh0bWwKQEAgLTAsMCArMSw0
NyBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxoZWFkPgorPHNjcmlwdD4KK2lmICh3aW5k
b3cudGVzdFJ1bm5lcikgeworICAgIHRlc3RSdW5uZXIuZHVtcEFzVGV4dCgpOworICAgIHRlc3RS
dW5uZXIuc2V0Q2FuT3BlbldpbmRvd3ModHJ1ZSk7CisgICAgdGVzdFJ1bm5lci5vdmVycmlkZVBy
ZWZlcmVuY2UoJ1dlYktpdEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHknLCB0
cnVlKTsKKyAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgnV2ViS2l0U3VwcG9ydHNN
dWx0aXBsZVdpbmRvd3MnLCBmYWxzZSk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxEb25lKCk7
Cit9CisKK2Z1bmN0aW9uIGNsaWNrKGVsbXQpCit7CisgICAgaWYgKCF3aW5kb3cuZXZlbnRTZW5k
ZXIpIHsKKyAgICAgICAgYWxlcnQoJ0NsaWNrIHRoZSBidXR0b24gdG8gcnVuIHRoZSB0ZXN0Licp
OworICAgICAgICByZXR1cm47CisgICAgfQorICAgIGV2ZW50U2VuZGVyLm1vdXNlTW92ZVRvKGVs
bXQub2Zmc2V0TGVmdCArIDUsIGVsbXQub2Zmc2V0VG9wICsgNSk7CisgICAgZXZlbnRTZW5kZXIu
bW91c2VEb3duKCk7CisgICAgZXZlbnRTZW5kZXIubW91c2VVcCgpOworfQorCitmdW5jdGlvbiBy
dW5UZXN0KCkKK3sKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHZhciB3aW5k
b3dDb3VudCA9IHRlc3RSdW5uZXIud2luZG93Q291bnQoKTsKKyAgICB2YXIgYnV0dG9uID0gZG9j
dW1lbnQuZ2V0RWxlbWVudEJ5SWQoInBvc3QtYnV0dG9uIik7CisgICAgY2xpY2soYnV0dG9uKTsK
KyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgaWYgKHdpbmRvd0NvdW50ICE9
IHRlc3RSdW5uZXIud2luZG93Q291bnQoKSkKKyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlbG4o
J0ZBSUw6IFBvcHVwIG9wZW5lZCBpbiBhIG5ldyB3aW5kb3cnKTsKKyAgICAgICAgZWxzZQorICAg
ICAgICAgICAgZG9jdW1lbnQud3JpdGVsbignUEFTUzogUG9wdXAgb3BlbmVkIGluIHRoZSBzYW1l
IHdpbmRvdycpOworICAgICAgICB0ZXN0UnVubmVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisK
K3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCdsb2FkJywgcnVuVGVzdCwgdHJ1ZSk7Cis8L3Njcmlw
dD4KKzwvaGVhZD4KKzxib2R5PgorICA8Zm9ybSBtZXRob2Q9InBvc3QiIHRhcmdldD0iX2JsYW5r
IiBhY3Rpb249ImRhdGE6dGV4dC9odG1sO2NoYXJzZXQ9dXRmLTgsPGh0bWw+PGJvZHk+VGhlIHRl
c3QgcGFzc2VzIGlmIHRoaXMgcGFnZSBvcGVucyBpbiB0aGUgc2FtZSB3aW5kb3c8L2JvZHk+PC9o
dG1sPiI+CisgICAgPGlucHV0IGlkPSJwb3N0LWJ1dHRvbiIgdHlwZT0ic3VibWl0IiB2YWx1ZT0i
Q2xpY2sgbWUhIiAvPgorICA8L2Zvcm0+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9M
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9h
bmNob3Itbm8tbXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm8tbXVsdGlw
bGUtd2luZG93cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAw
MC4uYzZkZTQwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9t
aXVtL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1uby1tdWx0aXBsZS13aW5kb3dz
LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTOiBQb3B1cCBvcGVuZWQgaW4gdGhlIHNh
bWUgd2luZG93CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0
L2RvbS9XaW5kb3cvd2luZG93LW9wZW4tbm8tbXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LW9w
ZW4tbm8tbXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQK
aW5kZXggMDAwMDAwMC4uYzZkZTQwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2Nocm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctb3Blbi1uby1tdWx0aXBsZS13
aW5kb3dzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTOiBQb3B1cCBvcGVuZWQgaW4g
dGhlIHNhbWUgd2luZG93CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9mYXN0L2Zvcm1zL3Bvc3QtcG9wdXAtbm8tbXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQg
Yi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3Bvc3QtcG9wdXAtbm8t
bXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uYzZkZTQwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3Jt
L2Nocm9taXVtL2Zhc3QvZm9ybXMvcG9zdC1wb3B1cC1uby1tdWx0aXBsZS13aW5kb3dzLWV4cGVj
dGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTOiBQb3B1cCBvcGVuZWQgaW4gdGhlIHNhbWUgd2lu
ZG93CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKaW5kZXggODA2OTE4NC4uNWQ1M2EzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDMxIEBACisyMDEyLTEwLTIyICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5v
cmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBBZGQgc3VwcG9ydE11bHRpcGxlV2luZG93cyBzZXR0
aW5nLCBuZWVkZWQgZm9yIEFuZHJvaWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTk5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnRNdWx0aXBsZVdpbmRvd3Mgc2V0dGluZ3MgZm9yIHJl
dXNpbmcgdGhlIHNhbWUgdmlldyB3aGVuCisgICAgICAgIG9wZW5pbmcgcG9wdXBzLiBUaGlzIGlz
IHJlcXVpcmVkIGZvciBlbXVsYXRpbmcgdGhlIGJlaGF2aW9yIG9mCisgICAgICAgIEFuZHJvaWQg
V2ViVmlldy4gQWRkaW5nIGludG8gV2ViQ29yZSwgYXMgb3RoZXIgcG9ydHMgbWlnaHQgd2FudCB0
bworICAgICAgICB1c2UgdGhpcyBzZXR0aW5nIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgVGVz
dHM6IGZhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1uby1tdWx0aXBsZS13aW5kb3dz
Lmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctb3Blbi1uby1tdWx0
aXBsZS13aW5kb3dzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvcG9zdC1wb3B1cC1u
by1tdWx0aXBsZS13aW5kb3dzLmh0bWwKKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpjcmVhdGVXaW5kb3cpOgorICAgICAgICAqIHBhZ2UvQ29u
dGV4dE1lbnVDb250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZW5OZXdXaW5kb3cp
OgorICAgICAgICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGlu
Z3M6OlNldHRpbmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTdXBwb3J0c011
bHRpcGxlV2luZG93cyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL1NldHRp
bmdzLmg6CisgICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6
c3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MpOgorCiAyMDEyLTEwLTE5ICBQYXZlbCBGZWxkbWFuICA8
cGZlbGRtYW5AY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFdlYiBJbnNwZWN0b3I6IGFkZCBvYmpl
Y3Qtc3JjICdub25lJyB0byB0aGUgaW5zcGVjdG9yLmh0bWwKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJh
bWVMb2FkZXIuY3BwCmluZGV4IDgxZmMwYzUuLjA5NDVjZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVy
L0ZyYW1lTG9hZGVyLmNwcApAQCAtMzI3OSw2ICszMjc5LDExIEBAIEZyYW1lKiBjcmVhdGVXaW5k
b3coRnJhbWUqIG9wZW5lckZyYW1lLCBGcmFtZSogbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG9h
ZFJlcXVlCiAgICAgcmVxdWVzdFdpdGhSZWZlcnJlci5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQ
UmVmZXJyZXIob3BlbmVyRnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpOwogICAg
IEZyYW1lTG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVkZWQocmVxdWVzdFdpdGhSZWZlcnJlci5y
ZXNvdXJjZVJlcXVlc3QoKSwgb3BlbmVyRnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ09yaWdpbigp
KTsKIAorICAgIGlmIChvcGVuZXJGcmFtZS0+c2V0dGluZ3MoKSAmJiAhb3BlbmVyRnJhbWUtPnNl
dHRpbmdzKCktPnN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKCkpIHsKKyAgICAgICAgY3JlYXRlZCA9
IGZhbHNlOworICAgICAgICByZXR1cm4gb3BlbmVyRnJhbWU7CisgICAgfQorCiAgICAgUGFnZSog
b2xkUGFnZSA9IG9wZW5lckZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCFvbGRQYWdlKQogICAgICAg
ICByZXR1cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcAppbmRleCBkOTAxOWZjLi5lYWU0YmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
YWdlL0NvbnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9D
b250ZXh0TWVudUNvbnRyb2xsZXIuY3BwCkBAIC0xNzksMTAgKzE3OSwxNCBAQCBzdGF0aWMgdm9p
ZCBvcGVuTmV3V2luZG93KGNvbnN0IEtVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lKQogewog
ICAgIGlmIChQYWdlKiBvbGRQYWdlID0gZnJhbWUtPnBhZ2UoKSkgewogICAgICAgICBGcmFtZUxv
YWRSZXF1ZXN0IHJlcXVlc3QoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJl
c291cmNlUmVxdWVzdCh1cmxUb0xvYWQsIGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJl
cigpKSk7Ci0gICAgICAgIGlmIChQYWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCktPmNy
ZWF0ZVdpbmRvdyhmcmFtZSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlvbkFj
dGlvbihyZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSkpIHsKLSAgICAgICAgICAgIG5ld1BhZ2Ut
Pm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+bG9hZEZyYW1lUmVxdWVzdChyZXF1ZXN0LCBmYWxzZSwg
ZmFsc2UsIDAsIDAsIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICAgICAgUGFnZSogbmV3UGFnZSA9
IG9sZFBhZ2U7CisgICAgICAgIGlmICghZnJhbWUtPnNldHRpbmdzKCkgfHwgZnJhbWUtPnNldHRp
bmdzKCktPnN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKCkpIHsKKyAgICAgICAgICAgIG5ld1BhZ2Ug
PSBvbGRQYWdlLT5jaHJvbWUoKS0+Y3JlYXRlV2luZG93KGZyYW1lLCByZXF1ZXN0LCBXaW5kb3dG
ZWF0dXJlcygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKTsK
KyAgICAgICAgICAgIGlmICghbmV3UGFnZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAg
ICAgICAgICBuZXdQYWdlLT5jaHJvbWUoKS0+c2hvdygpOwogICAgICAgICB9CisgICAgICAgIG5l
d1BhZ2UtPm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+bG9hZEZyYW1lUmVxdWVzdChyZXF1ZXN0LCBm
YWxzZSwgZmFsc2UsIDAsIDAsIE1heWJlU2VuZFJlZmVycmVyKTsKICAgICB9CiB9CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUv
cGFnZS9TZXR0aW5ncy5jcHAKaW5kZXggOTg3NmFmNS4uNTRmZTYyNCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAKQEAgLTE2OCw2ICsxNjgsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSog
cGFnZSkKICAgICAsIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHModHJ1ZSkKICAg
ICAsIG1fYWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpCiAgICAgLCBtX2phdmFTY3Jp
cHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoZmFsc2UpCisgICAgLCBtX3N1cHBvcnRzTXVs
dGlwbGVXaW5kb3dzKHRydWUpCiAgICAgLCBtX2phdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQo
ZmFsc2UpCiAgICAgLCBtX3Nob3VsZFByaW50QmFja2dyb3VuZHMoZmFsc2UpCiAgICAgLCBtX3Rl
eHRBcmVhc0FyZVJlc2l6YWJsZShmYWxzZSkKQEAgLTU3Nyw2ICs1NzgsMTEgQEAgdm9pZCBTZXR0
aW5nczo6c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sIGphdmFT
Y3JpcHRDYW5PcGVuV2kKICAgICBtX2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2Fs
bHkgPSBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OwogfQogCit2b2lkIFNl
dHRpbmdzOjpzZXRTdXBwb3J0c011bHRpcGxlV2luZG93cyhib29sIHN1cHBvcnRzTXVsdGlwbGVX
aW5kb3dzKQoreworICAgIG1fc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MgPSBzdXBwb3J0c011bHRp
cGxlV2luZG93czsKK30KKwogdm9pZCBTZXR0aW5nczo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0Ns
aXBib2FyZChib29sIGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQpCiB7CiAgICAgbV9qYXZh
U2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkID0gamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MuaAppbmRleCA4OTc4NWQxLi5mZmFiMDM1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5oCkBAIC0xNTEsNiArMTUxLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAg
ICB2b2lkIHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAg
ICAgICAgIGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSgpIGNvbnN0
IHsgcmV0dXJuIG1famF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsgfQogCisg
ICAgICAgIHZvaWQgc2V0U3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MoYm9vbCk7CisgICAgICAgIGJv
b2wgc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRzTXVs
dGlwbGVXaW5kb3dzOyB9CisKICAgICAgICAgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xp
cGJvYXJkKGJvb2wpOwogICAgICAgICBib29sIGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQo
KSBjb25zdCB7IHJldHVybiBtX2phdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQ7IH0KIApAQCAt
NzAyLDYgKzcwNSw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2FsbG93
VW5pdmVyc2FsQWNjZXNzRnJvbUZpbGVVUkxzOiAxOwogICAgICAgICBib29sIG1fYWxsb3dGaWxl
QWNjZXNzRnJvbUZpbGVVUkxzOiAxOwogICAgICAgICBib29sIG1famF2YVNjcmlwdENhbk9wZW5X
aW5kb3dzQXV0b21hdGljYWxseSA6IDE7CisgICAgICAgIGJvb2wgbV9zdXBwb3J0c011bHRpcGxl
V2luZG93cyA6IDE7CiAgICAgICAgIGJvb2wgbV9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
IDogMTsKICAgICAgICAgYm9vbCBtX3Nob3VsZFByaW50QmFja2dyb3VuZHMgOiAxOwogICAgICAg
ICBib29sIG1fdGV4dEFyZWFzQXJlUmVzaXphYmxlIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VM
b2cKaW5kZXggOWFkYmM0MC4uNWQ0ZjJhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAg
LTEsMyArMSwyNSBAQAorMjAxMi0xMC0yMiAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hy
b21pdW0ub3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIHN1cHBvcnRNdWx0aXBsZVdpbmRv
d3Mgc2V0dGluZywgbmVlZGVkIGZvciBBbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJr
aXQub3JnL3Nob3dfYnVnLmNnaT9pZD05OTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0TXVsdGlwbGVXaW5kb3dzIHNldHRpbmdz
IGZvciByZXVzaW5nIHRoZSBzYW1lIHZpZXcgd2hlbgorICAgICAgICBvcGVuaW5nIHBvcHVwcy4g
VGhpcyBpcyByZXF1aXJlZCBmb3IgZW11bGF0aW5nIHRoZSBiZWhhdmlvciBvZgorICAgICAgICBB
bmRyb2lkIFdlYlZpZXcuIEFkZGluZyBpbnRvIFdlYkNvcmUsIGFzIG90aGVyIHBvcnRzIG1pZ2h0
IHdhbnQgdG8KKyAgICAgICAgdXNlIHRoaXMgc2V0dGluZyBpbiB0aGUgZnV0dXJlLgorCisgICAg
ICAgICogcHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xp
ZW50SW1wbC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlz
cGF0Y2hDcmVhdGVQYWdlKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRTdXBwb3J0c011bHRpcGxlV2luZG93
cyk6CisgICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoK
KyAgICAgICAgKFdlYlNldHRpbmdzSW1wbCk6CisgICAgICAgICogdGVzdHMvV2ViVmlld1Rlc3Qu
Y3BwOgorCiAyMDEyLTEwLTE3ICBJbHlhIFRpa2hvbm92c2t5ICA8bG9pc2xvQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBXZWIgSW5zcGVjdG9yOiBOTUkgcHJvdmlkZSBkYXRhIGZvciBtaXhpbmcg
d2l0aCB0Y21hbGxvYyBoZWFwIGR1bXBzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJv
bWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlNldHRpbmdzLmgKaW5kZXggYWJkODRlZC4uMWMyN2JiYSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViU2V0dGluZ3MuaAorKysgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5oCkBAIC0xNDUsNiArMTQ1LDcgQEAgcHVibGlj
OgogICAgIHZpcnR1YWwgdm9pZCBzZXRTaG93UGxhdGZvcm1MYXllclRyZWUoYm9vbCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzZXRTaHJpbmtzU3RhbmRhbG9uZUltYWdlc1RvRml0KGJvb2wpID0g
MDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3RhbmRhcmRGb250RmFtaWx5KGNvbnN0IFdlYlN0cmlu
ZyYsIFVTY3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pID0gMDsKKyAgICB2aXJ0dWFsIHZvaWQg
c2V0U3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MoYm9vbCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCBz
ZXRTeW5jWEhSSW5Eb2N1bWVudHNFbmFibGVkKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQg
c2V0VGV4dEFyZWFzQXJlUmVzaXphYmxlKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0
VGV4dEF1dG9zaXppbmdFbmFibGVkKGJvb2wpID0gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJL
aXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0
L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwCmluZGV4IDQ5ZTc4MGIuLjEx
YzcyNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVy
Q2xpZW50SW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvRnJhbWVMb2Fk
ZXJDbGllbnRJbXBsLmNwcApAQCAtODkzLDYgKzg5Myw5IEBAIEZyYW1lKiBGcmFtZUxvYWRlckNs
aWVudEltcGw6OmRpc3BhdGNoQ3JlYXRlUGFnZShjb25zdCBOYXZpZ2F0aW9uQWN0aW9uJiBhY3Rp
b24pCiAgICAgQ2hyb21lQ2xpZW50SW1wbCogY2hyb21lQ2xpZW50ID0gc3RhdGljX2Nhc3Q8Q2hy
b21lQ2xpZW50SW1wbCo+KG1fd2ViRnJhbWUtPmZyYW1lKCktPnBhZ2UoKS0+Y2hyb21lKCktPmNs
aWVudCgpKTsKICAgICBjaHJvbWVDbGllbnQtPnNldE5ld1dpbmRvd05hdmlnYXRpb25Qb2xpY3ko
cG9saWN5KTsKIAorICAgIGlmIChtX3dlYkZyYW1lLT5mcmFtZSgpLT5zZXR0aW5ncygpICYmICFt
X3dlYkZyYW1lLT5mcmFtZSgpLT5zZXR0aW5ncygpLT5zdXBwb3J0c011bHRpcGxlV2luZG93cygp
KQorICAgICAgICByZXR1cm4gbV93ZWJGcmFtZS0+ZnJhbWUoKTsKKwogICAgIHN0cnVjdCBXaW5k
b3dGZWF0dXJlcyBmZWF0dXJlczsKICAgICBQYWdlKiBuZXdQYWdlID0gbV93ZWJGcmFtZS0+ZnJh
bWUoKS0+cGFnZSgpLT5jaHJvbWUoKS0+Y3JlYXRlV2luZG93KAogICAgICAgICBtX3dlYkZyYW1l
LT5mcmFtZSgpLCBGcmFtZUxvYWRSZXF1ZXN0KG1fd2ViRnJhbWUtPmZyYW1lKCktPmRvY3VtZW50
KCktPnNlY3VyaXR5T3JpZ2luKCkpLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dl
YlNldHRpbmdzSW1wbC5jcHAKaW5kZXggOTg4YzVlNi4uYTFkMzIyYyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcAorKysgYi9Tb3VyY2Uv
V2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwuY3BwCkBAIC0xODksNiArMTg5LDEx
IEBAIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRv
bWF0aWNhbGx5KGJvb2wgY2FuT3BlbldpbmRvCiAgICAgbV9zZXR0aW5ncy0+c2V0SmF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShjYW5PcGVuV2luZG93cyk7CiB9CiAKK3ZvaWQg
V2ViU2V0dGluZ3NJbXBsOjpzZXRTdXBwb3J0c011bHRpcGxlV2luZG93cyhib29sIHN1cHBvcnRz
TXVsdGlwbGVXaW5kb3dzKQoreworICAgIG1fc2V0dGluZ3MtPnNldFN1cHBvcnRzTXVsdGlwbGVX
aW5kb3dzKHN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKTsKK30KKwogdm9pZCBXZWJTZXR0aW5nc0lt
cGw6OnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShib29sIGxvYWRzSW1hZ2VzQXV0b21hdGlj
YWxseSkKIHsKICAgICBtX3NldHRpbmdzLT5zZXRMb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkobG9h
ZHNJbWFnZXNBdXRvbWF0aWNhbGx5KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvV2Vi
U2V0dGluZ3NJbXBsLmgKaW5kZXggMTE2OWMzMS4uNzlkOTNiZiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKKysrIGIvU291cmNlL1dlYktp
dC9jaHJvbWl1bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmgKQEAgLTE0MCw2ICsxNDAsNyBAQCBwdWJs
aWM6CiAgICAgdmlydHVhbCB2b2lkIHNldFNob3dQbGF0Zm9ybUxheWVyVHJlZShib29sKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0U2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdChib29sKTsKICAg
ICB2aXJ0dWFsIHZvaWQgc2V0U3RhbmRhcmRGb250RmFtaWx5KGNvbnN0IFdlYlN0cmluZyYsIFVT
Y3JpcHRDb2RlID0gVVNDUklQVF9DT01NT04pOworICAgIHZpcnR1YWwgdm9pZCBzZXRTdXBwb3J0
c011bHRpcGxlV2luZG93cyhib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3luY1hIUkluRG9j
dW1lbnRzRW5hYmxlZChib29sKTsKICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEFyZWFzQXJlUmVz
aXphYmxlKGJvb2wpOwogICAgIHZpcnR1YWwgdm9pZCBzZXRUZXh0QXV0b3NpemluZ0VuYWJsZWQo
Ym9vbCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlZpZXdU
ZXN0LmNwcCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMvV2ViVmlld1Rlc3QuY3BwCmlu
ZGV4IDE5MjljMWIuLjBkY2JhZDcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0v
dGVzdHMvV2ViVmlld1Rlc3QuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vdGVzdHMv
V2ViVmlld1Rlc3QuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAKICNpbmNsdWRlICJEb2N1bWVudC5o
IgogI2luY2x1ZGUgIkVsZW1lbnQuaCIKKyNpbmNsdWRlICJGcmFtZUxvYWRSZXF1ZXN0LmgiCiAj
aW5jbHVkZSAiRnJhbWVUZXN0SGVscGVycy5oIgogI2luY2x1ZGUgIkZyYW1lVmlldy5oIgogI2lu
Y2x1ZGUgIkhUTUxEb2N1bWVudC5oIgpAQCAtNDQsOSArNDUsMTEgQEAKICNpbmNsdWRlICJXZWJG
cmFtZUNsaWVudC5oIgogI2luY2x1ZGUgIldlYkZyYW1lSW1wbC5oIgogI2luY2x1ZGUgIldlYklu
cHV0RXZlbnQuaCIKKyNpbmNsdWRlICJXZWJTZXR0aW5ncy5oIgogI2luY2x1ZGUgInBsYXRmb3Jt
L1dlYlNpemUuaCIKICNpbmNsdWRlICJXZWJWaWV3Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViVmll
d0ltcGwuaCIKKyNpbmNsdWRlICJXaW5kb3dGZWF0dXJlcy5oIgogI2luY2x1ZGUgPGd0ZXN0L2d0
ZXN0Lmg+CiAjaW5jbHVkZSA8d2Via2l0L3N1cHBvcnQvd2Via2l0X3N1cHBvcnQuaD4KIApAQCAt
NjUxLDQgKzY1NCwxNyBAQCBURVNUX0YoV2ViVmlld1Rlc3QsIExvbmdQcmVzc1NlbGVjdGlvbikK
IH0KICNlbmRpZgogCitURVNUX0YoV2ViVmlld1Rlc3QsIFN1cHBvcnRzTXVsdGlwbGVXaW5kb3dz
U2V0dGluZykKK3sKKyAgICBXZWJWaWV3KiB3ZWJWaWV3ID0gRnJhbWVUZXN0SGVscGVyczo6Y3Jl
YXRlV2ViVmlld0FuZExvYWQoImFib3V0OmJsYW5rIik7CisgICAgd2ViVmlldy0+c2V0dGluZ3Mo
KS0+c2V0U3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MoZmFsc2UpOworICAgIFdlYkNvcmU6OkZyYW1l
KiBvbGRGcmFtZSA9IHN0YXRpY19jYXN0PFdlYkZyYW1lSW1wbCo+KHdlYlZpZXctPm1haW5GcmFt
ZSgpKS0+ZnJhbWUoKTsKKyAgICBXZWJDb3JlOjpGcmFtZUxvYWRSZXF1ZXN0IHJlcXVlc3Qob2xk
RnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCkpOworICAgIFdlYkNvcmU6OldpbmRv
d0ZlYXR1cmVzIGZlYXR1cmVzOworICAgIGJvb2wgY3JlYXRlZCA9IHRydWU7CisgICAgV2ViQ29y
ZTo6RnJhbWUqIG5ld0ZyYW1lID0gV2ViQ29yZTo6Y3JlYXRlV2luZG93KG9sZEZyYW1lLCAwLCBy
ZXF1ZXN0LCBmZWF0dXJlcywgY3JlYXRlZCk7CisgICAgRVhQRUNUX0VRKG9sZEZyYW1lLCBuZXdG
cmFtZSk7CisgICAgRVhQRUNUX0ZBTFNFKGNyZWF0ZWQpOworfQorCiB9CmRpZmYgLS1naXQgYS9U
b29scy9DaGFuZ2VMb2cgYi9Ub29scy9DaGFuZ2VMb2cKaW5kZXggNDg0OWYxMC4uZjNlZDc4MiAx
MDA2NDQKLS0tIGEvVG9vbHMvQ2hhbmdlTG9nCisrKyBiL1Rvb2xzL0NoYW5nZUxvZwpAQCAtMSwz
ICsxLDIzIEBACisyMDEyLTEwLTIyICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1
bS5vcmc+CisKKyAgICAgICAgW0Nocm9taXVtXSBBZGQgc3VwcG9ydE11bHRpcGxlV2luZG93cyBz
ZXR0aW5nLCBuZWVkZWQgZm9yIEFuZHJvaWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTk5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgQWRkIHN1cHBvcnRNdWx0aXBsZVdpbmRvd3Mgc2V0dGluZ3MgZm9y
IHJldXNpbmcgdGhlIHNhbWUgdmlldyB3aGVuCisgICAgICAgIG9wZW5pbmcgcG9wdXBzLiBUaGlz
IGlzIHJlcXVpcmVkIGZvciBlbXVsYXRpbmcgdGhlIGJlaGF2aW9yIG9mCisgICAgICAgIEFuZHJv
aWQgV2ViVmlldy4gQWRkaW5nIGludG8gV2ViQ29yZSwgYXMgb3RoZXIgcG9ydHMgbWlnaHQgd2Fu
dCB0bworICAgICAgICB1c2UgdGhpcyBzZXR0aW5nIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAg
KiBEdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcDoKKyAgICAgICAgKERS
VFRlc3RSdW5uZXI6Om92ZXJyaWRlUHJlZmVyZW5jZSk6CisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuY3BwOgorICAgICAgICAoV2ViUHJlZmVyZW5jZXM6
OnJlc2V0KToKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjphcHBseVRvKToKKyAgICAgICAgKiBE
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oOgorICAgICAgICAoV2ViUHJl
ZmVyZW5jZXMpOgorCiAyMDEyLTEwLTE5ICBTaW1vbiBIYXVzbWFubiAgPHNpbW9uLmhhdXNtYW5u
QGRpZ2lhLmNvbT4KIAogICAgICAgICBVbnJldmlld2VkLCByb2xsaW5nIG91dCByMTMxNzM0Lgpk
aWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5j
cHAgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcAppbmRl
eCAwODI1OTdhLi4zYzI2NjkxIDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJv
bWl1bS9EUlRUZXN0UnVubmVyLmNwcAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9EUlRUZXN0UnVubmVyLmNwcApAQCAtMTU1OCw2ICsxNTU4LDggQEAgdm9pZCBEUlRUZXN0UnVu
bmVyOjpvdmVycmlkZVByZWZlcmVuY2UoY29uc3QgQ3BwQXJndW1lbnRMaXN0JiBhcmd1bWVudHMs
IENwcFZhcmkKICAgICAgICAgcHJlZnMtPndlYlNlY3VyaXR5RW5hYmxlZCA9IGNwcFZhcmlhbnRU
b0Jvb2wodmFsdWUpOwogICAgIGVsc2UgaWYgKGtleSA9PSAiV2ViS2l0SmF2YVNjcmlwdENhbk9w
ZW5XaW5kb3dzQXV0b21hdGljYWxseSIpCiAgICAgICAgIHByZWZzLT5qYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5ID0gY3BwVmFyaWFudFRvQm9vbCh2YWx1ZSk7CisgICAgZWxz
ZSBpZiAoa2V5ID09ICJXZWJLaXRTdXBwb3J0c011bHRpcGxlV2luZG93cyIpCisgICAgICAgIHBy
ZWZzLT5zdXBwb3J0c011bHRpcGxlV2luZG93cyA9IGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUpOwog
ICAgIGVsc2UgaWYgKGtleSA9PSAiV2ViS2l0RGlzcGxheUltYWdlc0tleSIpCiAgICAgICAgIHBy
ZWZzLT5sb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkgPSBjcHBWYXJpYW50VG9Cb29sKHZhbHVlKTsK
ICAgICBlbHNlIGlmIChrZXkgPT0gIldlYktpdFBsdWdpbnNFbmFibGVkIikKZGlmZiAtLWdpdCBh
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcCBiL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcAppbmRleCAzYmMyY2Rk
Li5mNDNkM2I2IDEwMDY0NAotLS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQ
cmVmZXJlbmNlcy5jcHAKKysrIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJl
ZmVyZW5jZXMuY3BwCkBAIC04NSw2ICs4NSw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OnJlc2V0
KCkKICAgICBqYXZhRW5hYmxlZCA9IGZhbHNlOwogICAgIGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlw
Ym9hcmQgPSB0cnVlOwogICAgIGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkg
PSB0cnVlOworICAgIHN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzID0gdHJ1ZTsKICAgICBqYXZhU2Ny
aXB0RW5hYmxlZCA9IHRydWU7CiAgICAgbG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5ID0gdHJ1ZTsK
ICAgICBsb2NhbFN0b3JhZ2VFbmFibGVkID0gdHJ1ZTsKQEAgLTIwMCw2ICsyMDEsNyBAQCB2b2lk
IFdlYlByZWZlcmVuY2VzOjphcHBseVRvKFdlYlZpZXcqIHdlYlZpZXcpCiAgICAgc2V0dGluZ3Mt
PnNldEphdmFFbmFibGVkKGphdmFFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0SmF2YVNjcmlw
dENhbkFjY2Vzc0NsaXBib2FyZChqYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKTsKICAgICBz
ZXR0aW5ncy0+c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShqYXZhU2Ny
aXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5KTsKKyAgICBzZXR0aW5ncy0+c2V0U3VwcG9y
dHNNdWx0aXBsZVdpbmRvd3Moc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MpOwogICAgIHNldHRpbmdz
LT5zZXRKYXZhU2NyaXB0RW5hYmxlZChqYXZhU2NyaXB0RW5hYmxlZCk7CiAgICAgc2V0dGluZ3Mt
PnNldExvYWRzSW1hZ2VzQXV0b21hdGljYWxseShsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkpOwog
ICAgIHNldHRpbmdzLT5zZXRMb2NhbFN0b3JhZ2VFbmFibGVkKGxvY2FsU3RvcmFnZUVuYWJsZWQp
OwpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2ViUHJlZmVyZW5j
ZXMuaCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKaW5k
ZXggYzM2NTUzYi4uODFmOTI3OCAxMDA2NDQKLS0tIGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hy
b21pdW0vV2ViUHJlZmVyZW5jZXMuaAorKysgYi9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1
bS9XZWJQcmVmZXJlbmNlcy5oCkBAIC04Nyw2ICs4Nyw3IEBAIHN0cnVjdCBXZWJQcmVmZXJlbmNl
cyB7CiAgICAgYm9vbCBqYXZhRW5hYmxlZDsKICAgICBib29sIGphdmFTY3JpcHRDYW5BY2Nlc3ND
bGlwYm9hcmQ7CiAgICAgYm9vbCBqYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5
OworICAgIGJvb2wgc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3M7CiAgICAgYm9vbCBqYXZhU2NyaXB0
RW5hYmxlZDsKICAgICBib29sIGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseTsKICAgICBib29sIGxv
Y2FsU3RvcmFnZUVuYWJsZWQ7Cg==
</data>
<flag name="commit-queue"
          id="183351"
          type_id="3"
          status="-"
          setter="buildbot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>170495</attachid>
            <date>2012-10-24 15:53:03 -0700</date>
            <delta_ts>2012-10-24 16:01:42 -0700</delta_ts>
            <desc>Should now pass on mac bot as well as on chromium</desc>
            <filename>wk-99716-webcore.patch</filename>
            <type>text/plain</type>
            <size>23475</size>
            <attacher name="Mikhail Naganov">mnaganov</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxv
ZwppbmRleCAyMzM2MDUxLi4yMmQxNDk3IDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VM
b2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjUgQEAKKzIwMTItMTAt
MjIgIE1pa2hhaWwgTmFnYW5vdiAgPG1uYWdhbm92QGNocm9taXVtLm9yZz4KKworICAgICAgICBb
Q2hyb21pdW1dIEFkZCBzdXBwb3J0TXVsdGlwbGVXaW5kb3dzIHNldHRpbmcsIG5lZWRlZCBmb3Ig
QW5kcm9pZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
OTk3MTYKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBB
ZGQgc3VwcG9ydE11bHRpcGxlV2luZG93cyBzZXR0aW5ncyBmb3IgcmV1c2luZyB0aGUgc2FtZSB2
aWV3IHdoZW4KKyAgICAgICAgb3BlbmluZyBwb3B1cHMuIFRoaXMgaXMgcmVxdWlyZWQgZm9yIGVt
dWxhdGluZyB0aGUgYmVoYXZpb3Igb2YKKyAgICAgICAgQW5kcm9pZCBXZWJWaWV3LiBBZGRpbmcg
aW50byBXZWJDb3JlLCBhcyBvdGhlciBwb3J0cyBtaWdodCB3YW50IHRvCisgICAgICAgIHVzZSB0
aGlzIHNldHRpbmcgaW4gdGhlIGZ1dHVyZS4KKworICAgICAgICAqIGZhc3QvZG9tL0hUTUxBbmNo
b3JFbGVtZW50L2FuY2hvci1uby1tdWx0aXBsZS13aW5kb3dzLWV4cGVjdGVkLnR4dDogQWRkZWQu
CisgICAgICAgICogZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLW5vLW11bHRpcGxl
LXdpbmRvd3MuaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9kb20vV2luZG93L3dpbmRvdy1v
cGVuLW5vLW11bHRpcGxlLXdpbmRvd3MtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2RvbS9XaW5kb3cvd2luZG93LW9wZW4tbm8tbXVsdGlwbGUtd2luZG93cy5odG1sOiBBZGRl
ZC4KKyAgICAgICAgKiBmYXN0L2Zvcm1zL3Bvc3QtcG9wdXAtbm8tbXVsdGlwbGUtd2luZG93cy1l
eHBlY3RlZC50eHQ6IEFkZGVkLgorICAgICAgICAqIGZhc3QvZm9ybXMvcG9zdC1wb3B1cC1uby1t
dWx0aXBsZS13aW5kb3dzLmh0bWw6IEFkZGVkLgorICAgICAgICAqIHBsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1uby1tdWx0aXBsZS13aW5kb3dzLWV4
cGVjdGVkLnR4dDogQWRkZWQuCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0vZmFzdC9kb20v
V2luZG93L3dpbmRvdy1vcGVuLW5vLW11bHRpcGxlLXdpbmRvd3MtZXhwZWN0ZWQudHh0OiBBZGRl
ZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3Bvc3QtcG9wdXAtbm8t
bXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQ6IEFkZGVkLgorCiAyMDEyLTEwLTI0ICBBbGV4
YW5kZXIgU2hhbGFtb3YgIDxhbGV4YW5kZXIuc2hhbGFtb3ZAaW50ZWwuY29tPgogCiAgICAgICAg
IENTUzMgTWVkaWEgUXVlcmllcyAtIGFkZCByZXNvbHV0aW9uIHRlc3RzIHRvIFczQyB0ZXN0IHN1
aXRlCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9h
bmNob3Itbm8tbXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm8tbXVsdGlwbGUtd2luZG93cy1leHBlY3Rl
ZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uNDkwODQ2MAotLS0gL2Rl
di9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hv
ci1uby1tdWx0aXBsZS13aW5kb3dzLWV4cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitGQUlMOiBQ
b3B1cCBvcGVuZWQgaW4gYSBuZXcgd2luZG93CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0
L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm8tbXVsdGlwbGUtd2luZG93cy5odG1sIGIv
TGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1lbnQvYW5jaG9yLW5vLW11bHRpcGxl
LXdpbmRvd3MuaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5hNWY2YjM1
Ci0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vSFRNTEFuY2hvckVsZW1l
bnQvYW5jaG9yLW5vLW11bHRpcGxlLXdpbmRvd3MuaHRtbApAQCAtMCwwICsxLDQyIEBACis8IURP
Q1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8c2NyaXB0PgoraWYgKHdpbmRvdy50ZXN0UnVu
bmVyKSB7CisgICAgdGVzdFJ1bm5lci5kdW1wQXNUZXh0KCk7CisgICAgdGVzdFJ1bm5lci5zZXRD
YW5PcGVuV2luZG93cyh0cnVlKTsKKyAgICB0ZXN0UnVubmVyLnNldFBvcHVwQmxvY2tpbmdFbmFi
bGVkKGZhbHNlKTsKKyAgICB0ZXN0UnVubmVyLm92ZXJyaWRlUHJlZmVyZW5jZSgnV2ViS2l0U3Vw
cG9ydHNNdWx0aXBsZVdpbmRvd3MnLCBmYWxzZSk7CisgICAgdGVzdFJ1bm5lci53YWl0VW50aWxE
b25lKCk7Cit9CisKK2Z1bmN0aW9uIGNsaWNrKGVsbXQpCit7CisgICAgdmFyIGV2ZW50ID0gZG9j
dW1lbnQuY3JlYXRlRXZlbnQoJ01vdXNlRXZlbnQnKTsKKyAgICBldmVudC5pbml0RXZlbnQoJ2Ns
aWNrJywgdHJ1ZSwgdHJ1ZSk7CisgICAgZWxtdC5kaXNwYXRjaEV2ZW50KGV2ZW50KTsKK30KKwor
ZnVuY3Rpb24gcnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAg
ICB2YXIgd2luZG93Q291bnQgPSB0ZXN0UnVubmVyLndpbmRvd0NvdW50KCk7CisgICAgdmFyIGxp
bmsgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgibGluayIpOworICAgIGNsaWNrKGxpbmspOwor
ICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICBpZiAod2luZG93Q291bnQgIT0g
dGVzdFJ1bm5lci53aW5kb3dDb3VudCgpKQorICAgICAgICAgICAgZG9jdW1lbnQud3JpdGVsbign
RkFJTDogUG9wdXAgb3BlbmVkIGluIGEgbmV3IHdpbmRvdycpOworICAgICAgICBlbHNlCisgICAg
ICAgICAgICBkb2N1bWVudC53cml0ZWxuKCdQQVNTOiBQb3B1cCBvcGVuZWQgaW4gdGhlIHNhbWUg
d2luZG93Jyk7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0KK30KKwor
d2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCB0cnVlKTsKKzwvc2NyaXB0
PgorPC9oZWFkPgorPGJvZHk+CitZb3UgbmVlZCBwb3B1cHMgdG8gYmUgZW5hYmxlZCB0byBydW4g
dGhpcyB0ZXN0LgorPGEgaWQ9ImxpbmsiIHRhcmdldD0iX2JsYW5rIiBocmVmPSJkYXRhOnRleHQv
aHRtbDtjaGFyc2V0PXV0Zi04LDxodG1sPjxib2R5PlRoZSB0ZXN0IHBhc3NlcyBpZiB0aGlzIHBh
Z2Ugb3BlbnMgaW4gdGhlIHNhbWUgd2luZG93PC9ib2R5PjwvaHRtbD4iPkNsaWNrIG1lITwvYT4K
KzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9tL1dpbmRv
dy93aW5kb3ctb3Blbi1uby1tdWx0aXBsZS13aW5kb3dzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRl
c3RzL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctb3Blbi1uby1tdWx0aXBsZS13aW5kb3dzLWV4cGVj
dGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi40OTA4NDYwCi0tLSAv
ZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC9kb20vV2luZG93L3dpbmRvdy1vcGVuLW5v
LW11bHRpcGxlLXdpbmRvd3MtZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEgQEAKK0ZBSUw6IFBvcHVw
IG9wZW5lZCBpbiBhIG5ldyB3aW5kb3cKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZG9t
L1dpbmRvdy93aW5kb3ctb3Blbi1uby1tdWx0aXBsZS13aW5kb3dzLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LW9wZW4tbm8tbXVsdGlwbGUtd2luZG93cy5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLmMwMmE2YTUKLS0tIC9kZXYvbnVsbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L2RvbS9XaW5kb3cvd2luZG93LW9wZW4tbm8tbXVsdGlwbGUt
d2luZG93cy5odG1sCkBAIC0wLDAgKzEsMzUgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8
aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0UnVubmVy
LmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKHRydWUpOwor
ICAgIHRlc3RSdW5uZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoZmFsc2UpOworICAgIHRlc3RS
dW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCdXZWJLaXRTdXBwb3J0c011bHRpcGxlV2luZG93cycs
IGZhbHNlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVuY3Rpb24g
cnVuVGVzdCgpCit7CisgICAgaWYgKHdpbmRvdy50ZXN0UnVubmVyKQorICAgICAgICB2YXIgd2lu
ZG93Q291bnQgPSB0ZXN0UnVubmVyLndpbmRvd0NvdW50KCk7CisgICAgdmFyIHJlc3VsdCA9IHdp
bmRvdy5vcGVuKCdkYXRhOnRleHQvaHRtbDtjaGFyc2V0PXV0Zi04LDxodG1sPjxib2R5PlRoZSB0
ZXN0IHBhc3NlcyBpZiB0aGlzIHBhZ2Ugb3BlbnMgaW4gdGhlIHNhbWUgd2luZG93PC9ib2R5Pjwv
aHRtbD4nKTsKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICAgICAgaWYgKCFyZXN1
bHQpCisgICAgICAgICAgICBkb2N1bWVudC53cml0ZWxuKCdGQUlMOiB3aW5kb3cub3BlbiBmYWls
ZWQuIFlvdSBuZWVkIHBvcHVwcyB0byBiZSBlbmFibGVkIHRvIHJ1biB0aGlzIHRlc3QuJyk7Cisg
ICAgICAgIGVsc2UgaWYgKHdpbmRvd0NvdW50ICE9IHRlc3RSdW5uZXIud2luZG93Q291bnQoKSkK
KyAgICAgICAgICAgIGRvY3VtZW50LndyaXRlbG4oJ0ZBSUw6IFBvcHVwIG9wZW5lZCBpbiBhIG5l
dyB3aW5kb3cnKTsKKyAgICAgICAgZWxzZQorICAgICAgICAgICAgZG9jdW1lbnQud3JpdGVsbign
UEFTUzogUG9wdXAgb3BlbmVkIGluIHRoZSBzYW1lIHdpbmRvdycpOworICAgICAgICB0ZXN0UnVu
bmVyLm5vdGlmeURvbmUoKTsKKyAgICB9Cit9CisKK3dpbmRvdy5hZGRFdmVudExpc3RlbmVyKCds
b2FkJywgcnVuVGVzdCwgdHJ1ZSk7Cis8L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorWW91IG5l
ZWQgcG9wdXBzIHRvIGJlIGVuYWJsZWQgdG8gcnVuIHRoaXMgdGVzdC4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcG9zdC1wb3B1cC1uby1tdWx0
aXBsZS13aW5kb3dzLWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcG9zdC1w
b3B1cC1uby1tdWx0aXBsZS13aW5kb3dzLWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0
NAppbmRleCAwMDAwMDAwLi40OTA4NDYwCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC9mb3Jtcy9wb3N0LXBvcHVwLW5vLW11bHRpcGxlLXdpbmRvd3MtZXhwZWN0ZWQudHh0CkBA
IC0wLDAgKzEgQEAKK0ZBSUw6IFBvcHVwIG9wZW5lZCBpbiBhIG5ldyB3aW5kb3cKZGlmZiAtLWdp
dCBhL0xheW91dFRlc3RzL2Zhc3QvZm9ybXMvcG9zdC1wb3B1cC1uby1tdWx0aXBsZS13aW5kb3dz
Lmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Bvc3QtcG9wdXAtbm8tbXVsdGlwbGUtd2lu
ZG93cy5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAuLjI4OWU1MGEKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L2Zvcm1zL3Bvc3QtcG9wdXAtbm8tbXVs
dGlwbGUtd2luZG93cy5odG1sCkBAIC0wLDAgKzEsNTQgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQ+CitpZiAod2luZG93LnRlc3RSdW5uZXIpIHsKKyAgICB0ZXN0
UnVubmVyLmR1bXBBc1RleHQoKTsKKyAgICB0ZXN0UnVubmVyLnNldENhbk9wZW5XaW5kb3dzKHRy
dWUpOworICAgIHRlc3RSdW5uZXIuc2V0UG9wdXBCbG9ja2luZ0VuYWJsZWQoZmFsc2UpOworICAg
IHRlc3RSdW5uZXIub3ZlcnJpZGVQcmVmZXJlbmNlKCdXZWJLaXRTdXBwb3J0c011bHRpcGxlV2lu
ZG93cycsIGZhbHNlKTsKKyAgICB0ZXN0UnVubmVyLndhaXRVbnRpbERvbmUoKTsKK30KKworZnVu
Y3Rpb24gY2xpY2soZWxtdCkKK3sKKyAgICB2YXIgZXZlbnQgPSBkb2N1bWVudC5jcmVhdGVFdmVu
dCgnTW91c2VFdmVudCcpOworICAgIGV2ZW50LmluaXRFdmVudCgnY2xpY2snLCB0cnVlLCB0cnVl
KTsKKyAgICBlbG10LmRpc3BhdGNoRXZlbnQoZXZlbnQpOworfQorCitmdW5jdGlvbiBydW5UZXN0
KCkKK3sKKyAgICBpZiAod2luZG93LnRlc3RSdW5uZXIpCisgICAgICAgIHRlc3RSdW5uZXIuaW5p
dGlhbFdpbmRvd0NvdW50ID0gdGVzdFJ1bm5lci53aW5kb3dDb3VudCgpOworICAgIHZhciBidXR0
b24gPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgicG9zdC1idXR0b24iKTsKKyAgICBjbGljayhi
dXR0b24pOworICAgIGlmICh3aW5kb3cudGVzdFJ1bm5lcikgeworICAgICAgICBzdGFydCA9IG5l
dyBEYXRlKCk7CisgICAgICAgIHRlc3RJbnRlcnZhbCA9IHNldEludGVydmFsKGNoZWNrSWZEb25l
LCAxKTsKKyAgICB9Cit9CisKK2Z1bmN0aW9uIGNoZWNrSWZEb25lICgpCit7CisgICAgaWYgKHRl
c3RSdW5uZXIuZ2xvYmFsRmxhZykgeworICAgICAgICBkb2N1bWVudC53cml0ZWxuKCdGQUlMOiBQ
b3B1cCBvcGVuZWQgaW4gYSBuZXcgd2luZG93Jyk7CisgICAgICAgIGNsZWFySW50ZXJ2YWwodGVz
dEludGVydmFsKTsKKyAgICAgICAgdGVzdFJ1bm5lci5ub3RpZnlEb25lKCk7CisgICAgfSBlbHNl
IGlmICgobmV3IERhdGUoKSAtIHN0YXJ0KSA+IDEwMDAwKSB7CisgICAgICAgIGRvY3VtZW50Lndy
aXRlbG4oJ0ZBSUw6IFBvcHVwIGRpZCBub3Qgb3BlbicpOworICAgICAgICBjbGVhckludGVydmFs
KHRlc3RJbnRlcnZhbCk7CisgICAgICAgIHRlc3RSdW5uZXIubm90aWZ5RG9uZSgpOworICAgIH0K
K30KKword2luZG93LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBydW5UZXN0LCB0cnVlKTsKKzwv
c2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CisgIFlvdSBuZWVkIHBvcHVwcyB0byBiZSBlbmFibGVk
IHRvIHJ1biB0aGlzIHRlc3QuCisgIDxmb3JtIG1ldGhvZD0icG9zdCIgdGFyZ2V0PSJfYmxhbmsi
IGFjdGlvbj0iZGF0YTp0ZXh0L2h0bWw7Y2hhcnNldD11dGYtOCw8aHRtbD48aGVhZD48c2NyaXB0
PmZ1bmN0aW9uIHRlc3QoKSB7IGlmICghd2luZG93LnRlc3RSdW5uZXIpIHJldHVybjsgdGVzdFJ1
bm5lci5nbG9iYWxGbGFnPTE7IGlmICh0ZXN0UnVubmVyLmluaXRpYWxXaW5kb3dDb3VudCAhPSB0
ZXN0UnVubmVyLndpbmRvd0NvdW50KCkpIHJldHVybjsgZG9jdW1lbnQud3JpdGVsbignUEFTUzog
UG9wdXAgb3BlbmVkIGluIHRoZSBzYW1lIHdpbmRvdycpOyB0ZXN0UnVubmVyLm5vdGlmeURvbmUo
KTsgfTwvc2NyaXB0PjwvaGVhZD48Ym9keSBvbmxvYWQ9J3Rlc3QoKSc+VGhlIHRlc3QgcGFzc2Vz
IGlmIHRoaXMgcGFnZSBvcGVucyBpbiB0aGUgc2FtZSB3aW5kb3c8L2JvZHk+PC9odG1sPiI+Cisg
ICAgPGlucHV0IGlkPSJwb3N0LWJ1dHRvbiIgdHlwZT0ic3VibWl0IiB2YWx1ZT0iQ2xpY2sgbWUh
IiAvPgorICA8L2Zvcm0+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm8t
bXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJv
bWl1bS9mYXN0L2RvbS9IVE1MQW5jaG9yRWxlbWVudC9hbmNob3Itbm8tbXVsdGlwbGUtd2luZG93
cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4uYzZkZTQw
NgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL2Zhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1uby1tdWx0aXBsZS13aW5kb3dzLWV4cGVjdGVk
LnR4dApAQCAtMCwwICsxIEBACitQQVNTOiBQb3B1cCBvcGVuZWQgaW4gdGhlIHNhbWUgd2luZG93
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5k
b3cvd2luZG93LW9wZW4tbm8tbXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2RvbS9XaW5kb3cvd2luZG93LW9wZW4tbm8tbXVs
dGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMC4uYzZkZTQwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2No
cm9taXVtL2Zhc3QvZG9tL1dpbmRvdy93aW5kb3ctb3Blbi1uby1tdWx0aXBsZS13aW5kb3dzLWV4
cGVjdGVkLnR4dApAQCAtMCwwICsxIEBACitQQVNTOiBQb3B1cCBvcGVuZWQgaW4gdGhlIHNhbWUg
d2luZG93CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zv
cm1zL3Bvc3QtcG9wdXAtbm8tbXVsdGlwbGUtd2luZG93cy1leHBlY3RlZC50eHQgYi9MYXlvdXRU
ZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9mYXN0L2Zvcm1zL3Bvc3QtcG9wdXAtbm8tbXVsdGlwbGUt
d2luZG93cy1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMC4u
YzZkZTQwNgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L2Zhc3QvZm9ybXMvcG9zdC1wb3B1cC1uby1tdWx0aXBsZS13aW5kb3dzLWV4cGVjdGVkLnR4dApA
QCAtMCwwICsxIEBACitQQVNTOiBQb3B1cCBvcGVuZWQgaW4gdGhlIHNhbWUgd2luZG93CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNDBjNzEwZC4uODY1MzM2YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hh
bmdlTG9nCisrKyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisy
MDEyLTEwLTIyICBNaWtoYWlsIE5hZ2Fub3YgIDxtbmFnYW5vdkBjaHJvbWl1bS5vcmc+CisKKyAg
ICAgICAgW0Nocm9taXVtXSBBZGQgc3VwcG9ydE11bHRpcGxlV2luZG93cyBzZXR0aW5nLCBuZWVk
ZWQgZm9yIEFuZHJvaWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTk5NzE2CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAg
ICAgICAgQWRkIHN1cHBvcnRNdWx0aXBsZVdpbmRvd3Mgc2V0dGluZ3MgZm9yIHJldXNpbmcgdGhl
IHNhbWUgdmlldyB3aGVuCisgICAgICAgIG9wZW5pbmcgcG9wdXBzLiBUaGlzIGlzIHJlcXVpcmVk
IGZvciBlbXVsYXRpbmcgdGhlIGJlaGF2aW9yIG9mCisgICAgICAgIEFuZHJvaWQgV2ViVmlldy4g
QWRkaW5nIGludG8gV2ViQ29yZSwgYXMgb3RoZXIgcG9ydHMgbWlnaHQgd2FudCB0bworICAgICAg
ICB1c2UgdGhpcyBzZXR0aW5nIGluIHRoZSBmdXR1cmUuCisKKyAgICAgICAgVGVzdHM6IGZhc3Qv
ZG9tL0hUTUxBbmNob3JFbGVtZW50L2FuY2hvci1uby1tdWx0aXBsZS13aW5kb3dzLmh0bWwKKyAg
ICAgICAgICAgICAgIGZhc3QvZG9tL1dpbmRvdy93aW5kb3ctb3Blbi1uby1tdWx0aXBsZS13aW5k
b3dzLmh0bWwKKyAgICAgICAgICAgICAgIGZhc3QvZm9ybXMvcG9zdC1wb3B1cC1uby1tdWx0aXBs
ZS13aW5kb3dzLmh0bWwKKworICAgICAgICAqIGxvYWRlci9GcmFtZUxvYWRlci5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpjcmVhdGVXaW5kb3cpOgorICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVD
b250cm9sbGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om9wZW5OZXdXaW5kb3cpOgorICAgICAg
ICAqIHBhZ2UvU2V0dGluZ3MuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2V0dGluZ3M6OlNldHRp
bmdzKToKKyAgICAgICAgKFdlYkNvcmU6OlNldHRpbmdzOjpzZXRTdXBwb3J0c011bHRpcGxlV2lu
ZG93cyk6CisgICAgICAgIChXZWJDb3JlKToKKyAgICAgICAgKiBwYWdlL1NldHRpbmdzLmg6Cisg
ICAgICAgIChTZXR0aW5ncyk6CisgICAgICAgIChXZWJDb3JlOjpTZXR0aW5nczo6c3VwcG9ydHNN
dWx0aXBsZVdpbmRvd3MpOgorCiAyMDEyLTEwLTI0ICBQYXJ0aCBQYXRlbCAgPHBhcnBhdGVsQHJp
bS5jb20+CiAKICAgICAgICAgW0JsYWNrQmVycnldIEV4dGVuZGluZyBleGlzdGluZyBUaHJlYWRV
bnNhZmUgc2luZ2xldG9ucyBpbiB3ZWJraXQgdG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRnJhbWVMb2Fk
ZXIuY3BwCmluZGV4IDljMzk2NmMuLmUxNGRlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2xvYWRlci9GcmFtZUxvYWRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZyYW1l
TG9hZGVyLmNwcApAQCAtMzI4Myw2ICszMjgzLDExIEBAIEZyYW1lKiBjcmVhdGVXaW5kb3coRnJh
bWUqIG9wZW5lckZyYW1lLCBGcmFtZSogbG9va3VwRnJhbWUsIGNvbnN0IEZyYW1lTG9hZFJlcXVl
CiAgICAgcmVxdWVzdFdpdGhSZWZlcnJlci5yZXNvdXJjZVJlcXVlc3QoKS5zZXRIVFRQUmVmZXJy
ZXIob3BlbmVyRnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ1JlZmVycmVyKCkpOwogICAgIEZyYW1l
TG9hZGVyOjphZGRIVFRQT3JpZ2luSWZOZWVkZWQocmVxdWVzdFdpdGhSZWZlcnJlci5yZXNvdXJj
ZVJlcXVlc3QoKSwgb3BlbmVyRnJhbWUtPmxvYWRlcigpLT5vdXRnb2luZ09yaWdpbigpKTsKIAor
ICAgIGlmIChvcGVuZXJGcmFtZS0+c2V0dGluZ3MoKSAmJiAhb3BlbmVyRnJhbWUtPnNldHRpbmdz
KCktPnN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKCkpIHsKKyAgICAgICAgY3JlYXRlZCA9IGZhbHNl
OworICAgICAgICByZXR1cm4gb3BlbmVyRnJhbWU7CisgICAgfQorCiAgICAgUGFnZSogb2xkUGFn
ZSA9IG9wZW5lckZyYW1lLT5wYWdlKCk7CiAgICAgaWYgKCFvbGRQYWdlKQogICAgICAgICByZXR1
cm4gMDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9s
bGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNwcApp
bmRleCBkOTAxOWZjLi5lYWU0YmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL0Nv
bnRleHRNZW51Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0
TWVudUNvbnRyb2xsZXIuY3BwCkBAIC0xNzksMTAgKzE3OSwxNCBAQCBzdGF0aWMgdm9pZCBvcGVu
TmV3V2luZG93KGNvbnN0IEtVUkwmIHVybFRvTG9hZCwgRnJhbWUqIGZyYW1lKQogewogICAgIGlm
IChQYWdlKiBvbGRQYWdlID0gZnJhbWUtPnBhZ2UoKSkgewogICAgICAgICBGcmFtZUxvYWRSZXF1
ZXN0IHJlcXVlc3QoZnJhbWUtPmRvY3VtZW50KCktPnNlY3VyaXR5T3JpZ2luKCksIFJlc291cmNl
UmVxdWVzdCh1cmxUb0xvYWQsIGZyYW1lLT5sb2FkZXIoKS0+b3V0Z29pbmdSZWZlcnJlcigpKSk7
Ci0gICAgICAgIGlmIChQYWdlKiBuZXdQYWdlID0gb2xkUGFnZS0+Y2hyb21lKCktPmNyZWF0ZVdp
bmRvdyhmcmFtZSwgcmVxdWVzdCwgV2luZG93RmVhdHVyZXMoKSwgTmF2aWdhdGlvbkFjdGlvbihy
ZXF1ZXN0LnJlc291cmNlUmVxdWVzdCgpKSkpIHsKLSAgICAgICAgICAgIG5ld1BhZ2UtPm1haW5G
cmFtZSgpLT5sb2FkZXIoKS0+bG9hZEZyYW1lUmVxdWVzdChyZXF1ZXN0LCBmYWxzZSwgZmFsc2Us
IDAsIDAsIE1heWJlU2VuZFJlZmVycmVyKTsKKyAgICAgICAgUGFnZSogbmV3UGFnZSA9IG9sZFBh
Z2U7CisgICAgICAgIGlmICghZnJhbWUtPnNldHRpbmdzKCkgfHwgZnJhbWUtPnNldHRpbmdzKCkt
PnN1cHBvcnRzTXVsdGlwbGVXaW5kb3dzKCkpIHsKKyAgICAgICAgICAgIG5ld1BhZ2UgPSBvbGRQ
YWdlLT5jaHJvbWUoKS0+Y3JlYXRlV2luZG93KGZyYW1lLCByZXF1ZXN0LCBXaW5kb3dGZWF0dXJl
cygpLCBOYXZpZ2F0aW9uQWN0aW9uKHJlcXVlc3QucmVzb3VyY2VSZXF1ZXN0KCkpKTsKKyAgICAg
ICAgICAgIGlmICghbmV3UGFnZSkKKyAgICAgICAgICAgICAgICByZXR1cm47CiAgICAgICAgICAg
ICBuZXdQYWdlLT5jaHJvbWUoKS0+c2hvdygpOwogICAgICAgICB9CisgICAgICAgIG5ld1BhZ2Ut
Pm1haW5GcmFtZSgpLT5sb2FkZXIoKS0+bG9hZEZyYW1lUmVxdWVzdChyZXF1ZXN0LCBmYWxzZSwg
ZmFsc2UsIDAsIDAsIE1heWJlU2VuZFJlZmVycmVyKTsKICAgICB9CiB9CiAKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy5jcHAKaW5kZXggNzRiOTJmOS4uN2Y3NmZhZiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGFnZS9TZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5jcHAKQEAgLTE2OCw2ICsxNjgsNyBAQCBTZXR0aW5nczo6U2V0dGluZ3MoUGFnZSogcGFnZSkK
ICAgICAsIG1fYWxsb3dVbml2ZXJzYWxBY2Nlc3NGcm9tRmlsZVVSTHModHJ1ZSkKICAgICAsIG1f
YWxsb3dGaWxlQWNjZXNzRnJvbUZpbGVVUkxzKHRydWUpCiAgICAgLCBtX2phdmFTY3JpcHRDYW5P
cGVuV2luZG93c0F1dG9tYXRpY2FsbHkoZmFsc2UpCisgICAgLCBtX3N1cHBvcnRzTXVsdGlwbGVX
aW5kb3dzKHRydWUpCiAgICAgLCBtX2phdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoZmFsc2Up
CiAgICAgLCBtX3Nob3VsZFByaW50QmFja2dyb3VuZHMoZmFsc2UpCiAgICAgLCBtX3RleHRBcmVh
c0FyZVJlc2l6YWJsZShmYWxzZSkKQEAgLTU4Niw2ICs1ODcsMTEgQEAgdm9pZCBTZXR0aW5nczo6
c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29sIGphdmFTY3JpcHRD
YW5PcGVuV2kKICAgICBtX2phdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBq
YXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5OwogfQogCit2b2lkIFNldHRpbmdz
OjpzZXRTdXBwb3J0c011bHRpcGxlV2luZG93cyhib29sIHN1cHBvcnRzTXVsdGlwbGVXaW5kb3dz
KQoreworICAgIG1fc3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MgPSBzdXBwb3J0c011bHRpcGxlV2lu
ZG93czsKK30KKwogdm9pZCBTZXR0aW5nczo6c2V0SmF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2Fy
ZChib29sIGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQpCiB7CiAgICAgbV9qYXZhU2NyaXB0
Q2FuQWNjZXNzQ2xpcGJvYXJkID0gamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3Bh
Z2UvU2V0dGluZ3MuaAppbmRleCBjNzFmMzJlLi40MmM0YzBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wYWdlL1NldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy5oCkBAIC0xNTIsNiArMTUyLDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogICAgICAgICB2b2lk
IHNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkoYm9vbCk7CiAgICAgICAg
IGJvb2wgamF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSgpIGNvbnN0IHsgcmV0
dXJuIG1famF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseTsgfQogCisgICAgICAg
IHZvaWQgc2V0U3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MoYm9vbCk7CisgICAgICAgIGJvb2wgc3Vw
cG9ydHNNdWx0aXBsZVdpbmRvd3MoKSBjb25zdCB7IHJldHVybiBtX3N1cHBvcnRzTXVsdGlwbGVX
aW5kb3dzOyB9CisKICAgICAgICAgdm9pZCBzZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJk
KGJvb2wpOwogICAgICAgICBib29sIGphdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQoKSBjb25z
dCB7IHJldHVybiBtX2phdmFTY3JpcHRDYW5BY2Nlc3NDbGlwYm9hcmQ7IH0KIApAQCAtNzA0LDYg
KzcwNyw3IEBAIG5hbWVzcGFjZSBXZWJDb3JlIHsKICAgICAgICAgYm9vbCBtX2FsbG93VW5pdmVy
c2FsQWNjZXNzRnJvbUZpbGVVUkxzOiAxOwogICAgICAgICBib29sIG1fYWxsb3dGaWxlQWNjZXNz
RnJvbUZpbGVVUkxzOiAxOwogICAgICAgICBib29sIG1famF2YVNjcmlwdENhbk9wZW5XaW5kb3dz
QXV0b21hdGljYWxseSA6IDE7CisgICAgICAgIGJvb2wgbV9zdXBwb3J0c011bHRpcGxlV2luZG93
cyA6IDE7CiAgICAgICAgIGJvb2wgbV9qYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkIDogMTsK
ICAgICAgICAgYm9vbCBtX3Nob3VsZFByaW50QmFja2dyb3VuZHMgOiAxOwogICAgICAgICBib29s
IG1fdGV4dEFyZWFzQXJlUmVzaXphYmxlIDogMTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQv
Y2hyb21pdW0vQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKaW5k
ZXggOGQzNjRkZC4uNDgzN2JmNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS9D
aGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyAr
MSwyNSBAQAorMjAxMi0xMC0yMiAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0u
b3JnPgorCisgICAgICAgIFtDaHJvbWl1bV0gQWRkIHN1cHBvcnRNdWx0aXBsZVdpbmRvd3Mgc2V0
dGluZywgbmVlZGVkIGZvciBBbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3Jn
L3Nob3dfYnVnLmNnaT9pZD05OTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIEFkZCBzdXBwb3J0TXVsdGlwbGVXaW5kb3dzIHNldHRpbmdzIGZvciBy
ZXVzaW5nIHRoZSBzYW1lIHZpZXcgd2hlbgorICAgICAgICBvcGVuaW5nIHBvcHVwcy4gVGhpcyBp
cyByZXF1aXJlZCBmb3IgZW11bGF0aW5nIHRoZSBiZWhhdmlvciBvZgorICAgICAgICBBbmRyb2lk
IFdlYlZpZXcuIEFkZGluZyBpbnRvIFdlYkNvcmUsIGFzIG90aGVyIHBvcnRzIG1pZ2h0IHdhbnQg
dG8KKyAgICAgICAgdXNlIHRoaXMgc2V0dGluZyBpbiB0aGUgZnV0dXJlLgorCisgICAgICAgICog
cHVibGljL1dlYlNldHRpbmdzLmg6CisgICAgICAgICogc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1w
bC5jcHA6CisgICAgICAgIChXZWJLaXQ6OkZyYW1lTG9hZGVyQ2xpZW50SW1wbDo6ZGlzcGF0Y2hD
cmVhdGVQYWdlKToKKyAgICAgICAgKiBzcmMvV2ViU2V0dGluZ3NJbXBsLmNwcDoKKyAgICAgICAg
KFdlYktpdDo6V2ViU2V0dGluZ3NJbXBsOjpzZXRTdXBwb3J0c011bHRpcGxlV2luZG93cyk6Cisg
ICAgICAgIChXZWJLaXQpOgorICAgICAgICAqIHNyYy9XZWJTZXR0aW5nc0ltcGwuaDoKKyAgICAg
ICAgKFdlYlNldHRpbmdzSW1wbCk6CisgICAgICAgICogdGVzdHMvV2ViVmlld1Rlc3QuY3BwOgor
CiAyMDEyLTA5LTI3ICBZdXJ5IFNlbWlraGF0c2t5ICA8eXVyeXNAY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFdlYiBJbnNwZWN0b3I6IHByb3ZpZGUgbWVtb3J5IGluc3RydW1lbnRhdGlvbiBmb3Ig
TGlzdEhhc2hTZXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dl
YlNldHRpbmdzLmggYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJTZXR0aW5ncy5o
CmluZGV4IGZmMDQzMjguLmRkZWJkN2UgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vcHVibGljL1dlYlNldHRpbmdzLmgKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViU2V0dGluZ3MuaApAQCAtMTQ4LDYgKzE0OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFs
IHZvaWQgc2V0U2hvd1BsYXRmb3JtTGF5ZXJUcmVlKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZv
aWQgc2V0U2hyaW5rc1N0YW5kYWxvbmVJbWFnZXNUb0ZpdChib29sKSA9IDA7CiAgICAgdmlydHVh
bCB2b2lkIHNldFN0YW5kYXJkRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29k
ZSA9IFVTQ1JJUFRfQ09NTU9OKSA9IDA7CisgICAgdmlydHVhbCB2b2lkIHNldFN1cHBvcnRzTXVs
dGlwbGVXaW5kb3dzKGJvb2wpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgc2V0U3luY1hIUkluRG9j
dW1lbnRzRW5hYmxlZChib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRBcmVhc0Fy
ZVJlc2l6YWJsZShib29sKSA9IDA7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRBdXRvc2l6aW5n
RW5hYmxlZChib29sKSA9IDA7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Ny
Yy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3BwIGIvU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMv
RnJhbWVMb2FkZXJDbGllbnRJbXBsLmNwcAppbmRleCA0OWU3ODBiLi4xMWM3MjZhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9GcmFtZUxvYWRlckNsaWVudEltcGwuY3Bw
CisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0ZyYW1lTG9hZGVyQ2xpZW50SW1wbC5j
cHAKQEAgLTg5Myw2ICs4OTMsOSBAQCBGcmFtZSogRnJhbWVMb2FkZXJDbGllbnRJbXBsOjpkaXNw
YXRjaENyZWF0ZVBhZ2UoY29uc3QgTmF2aWdhdGlvbkFjdGlvbiYgYWN0aW9uKQogICAgIENocm9t
ZUNsaWVudEltcGwqIGNocm9tZUNsaWVudCA9IHN0YXRpY19jYXN0PENocm9tZUNsaWVudEltcGwq
PihtX3dlYkZyYW1lLT5mcmFtZSgpLT5wYWdlKCktPmNocm9tZSgpLT5jbGllbnQoKSk7CiAgICAg
Y2hyb21lQ2xpZW50LT5zZXROZXdXaW5kb3dOYXZpZ2F0aW9uUG9saWN5KHBvbGljeSk7CiAKKyAg
ICBpZiAobV93ZWJGcmFtZS0+ZnJhbWUoKS0+c2V0dGluZ3MoKSAmJiAhbV93ZWJGcmFtZS0+ZnJh
bWUoKS0+c2V0dGluZ3MoKS0+c3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MoKSkKKyAgICAgICAgcmV0
dXJuIG1fd2ViRnJhbWUtPmZyYW1lKCk7CisKICAgICBzdHJ1Y3QgV2luZG93RmVhdHVyZXMgZmVh
dHVyZXM7CiAgICAgUGFnZSogbmV3UGFnZSA9IG1fd2ViRnJhbWUtPmZyYW1lKCktPnBhZ2UoKS0+
Y2hyb21lKCktPmNyZWF0ZVdpbmRvdygKICAgICAgICAgbV93ZWJGcmFtZS0+ZnJhbWUoKSwgRnJh
bWVMb2FkUmVxdWVzdChtX3dlYkZyYW1lLT5mcmFtZSgpLT5kb2N1bWVudCgpLT5zZWN1cml0eU9y
aWdpbigpKSwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRp
bmdzSW1wbC5jcHAgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0aW5nc0ltcGwu
Y3BwCmluZGV4IGVjOGE1YjYuLmIxNGNkZTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hy
b21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5jcHAKKysrIGIvU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvV2ViU2V0dGluZ3NJbXBsLmNwcApAQCAtMTkyLDYgKzE5MiwxMSBAQCB2b2lkIFdlYlNl
dHRpbmdzSW1wbDo6c2V0SmF2YVNjcmlwdENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseShib29s
IGNhbk9wZW5XaW5kbwogICAgIG1fc2V0dGluZ3MtPnNldEphdmFTY3JpcHRDYW5PcGVuV2luZG93
c0F1dG9tYXRpY2FsbHkoY2FuT3BlbldpbmRvd3MpOwogfQogCit2b2lkIFdlYlNldHRpbmdzSW1w
bDo6c2V0U3VwcG9ydHNNdWx0aXBsZVdpbmRvd3MoYm9vbCBzdXBwb3J0c011bHRpcGxlV2luZG93
cykKK3sKKyAgICBtX3NldHRpbmdzLT5zZXRTdXBwb3J0c011bHRpcGxlV2luZG93cyhzdXBwb3J0
c011bHRpcGxlV2luZG93cyk7Cit9CisKIHZvaWQgV2ViU2V0dGluZ3NJbXBsOjpzZXRMb2Fkc0lt
YWdlc0F1dG9tYXRpY2FsbHkoYm9vbCBsb2Fkc0ltYWdlc0F1dG9tYXRpY2FsbHkpCiB7CiAgICAg
bV9zZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5KGxvYWRzSW1hZ2VzQXV0b21h
dGljYWxseSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3NyYy9XZWJTZXR0
aW5nc0ltcGwuaCBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL1dlYlNldHRpbmdzSW1wbC5o
CmluZGV4IGQ0YWM0NzguLmZmODhiYWMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvY2hyb21p
dW0vc3JjL1dlYlNldHRpbmdzSW1wbC5oCisrKyBiL1NvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3Jj
L1dlYlNldHRpbmdzSW1wbC5oCkBAIC0xNDMsNiArMTQzLDcgQEAgcHVibGljOgogICAgIHZpcnR1
YWwgdm9pZCBzZXRTaG93UGxhdGZvcm1MYXllclRyZWUoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldFNocmlua3NTdGFuZGFsb25lSW1hZ2VzVG9GaXQoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lk
IHNldFN0YW5kYXJkRm9udEZhbWlseShjb25zdCBXZWJTdHJpbmcmLCBVU2NyaXB0Q29kZSA9IFVT
Q1JJUFRfQ09NTU9OKTsKKyAgICB2aXJ0dWFsIHZvaWQgc2V0U3VwcG9ydHNNdWx0aXBsZVdpbmRv
d3MoYm9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFN5bmNYSFJJbkRvY3VtZW50c0VuYWJsZWQo
Ym9vbCk7CiAgICAgdmlydHVhbCB2b2lkIHNldFRleHRBcmVhc0FyZVJlc2l6YWJsZShib29sKTsK
ICAgICB2aXJ0dWFsIHZvaWQgc2V0VGV4dEF1dG9zaXppbmdFbmFibGVkKGJvb2wpOwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdC9jaHJvbWl1bS90ZXN0cy9XZWJWaWV3VGVzdC5jcHAgYi9Tb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlZpZXdUZXN0LmNwcAppbmRleCAxOTI5YzFiLi4w
ZGNiYWQ3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlZpZXdU
ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0L2Nocm9taXVtL3Rlc3RzL1dlYlZpZXdUZXN0LmNw
cApAQCAtMzMsNiArMzMsNyBAQAogCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKICNpbmNsdWRlICJF
bGVtZW50LmgiCisjaW5jbHVkZSAiRnJhbWVMb2FkUmVxdWVzdC5oIgogI2luY2x1ZGUgIkZyYW1l
VGVzdEhlbHBlcnMuaCIKICNpbmNsdWRlICJGcmFtZVZpZXcuaCIKICNpbmNsdWRlICJIVE1MRG9j
dW1lbnQuaCIKQEAgLTQ0LDkgKzQ1LDExIEBACiAjaW5jbHVkZSAiV2ViRnJhbWVDbGllbnQuaCIK
ICNpbmNsdWRlICJXZWJGcmFtZUltcGwuaCIKICNpbmNsdWRlICJXZWJJbnB1dEV2ZW50LmgiCisj
aW5jbHVkZSAiV2ViU2V0dGluZ3MuaCIKICNpbmNsdWRlICJwbGF0Zm9ybS9XZWJTaXplLmgiCiAj
aW5jbHVkZSAiV2ViVmlld0NsaWVudC5oIgogI2luY2x1ZGUgIldlYlZpZXdJbXBsLmgiCisjaW5j
bHVkZSAiV2luZG93RmVhdHVyZXMuaCIKICNpbmNsdWRlIDxndGVzdC9ndGVzdC5oPgogI2luY2x1
ZGUgPHdlYmtpdC9zdXBwb3J0L3dlYmtpdF9zdXBwb3J0Lmg+CiAKQEAgLTY1MSw0ICs2NTQsMTcg
QEAgVEVTVF9GKFdlYlZpZXdUZXN0LCBMb25nUHJlc3NTZWxlY3Rpb24pCiB9CiAjZW5kaWYKIAor
VEVTVF9GKFdlYlZpZXdUZXN0LCBTdXBwb3J0c011bHRpcGxlV2luZG93c1NldHRpbmcpCit7Cisg
ICAgV2ViVmlldyogd2ViVmlldyA9IEZyYW1lVGVzdEhlbHBlcnM6OmNyZWF0ZVdlYlZpZXdBbmRM
b2FkKCJhYm91dDpibGFuayIpOworICAgIHdlYlZpZXctPnNldHRpbmdzKCktPnNldFN1cHBvcnRz
TXVsdGlwbGVXaW5kb3dzKGZhbHNlKTsKKyAgICBXZWJDb3JlOjpGcmFtZSogb2xkRnJhbWUgPSBz
dGF0aWNfY2FzdDxXZWJGcmFtZUltcGwqPih3ZWJWaWV3LT5tYWluRnJhbWUoKSktPmZyYW1lKCk7
CisgICAgV2ViQ29yZTo6RnJhbWVMb2FkUmVxdWVzdCByZXF1ZXN0KG9sZEZyYW1lLT5kb2N1bWVu
dCgpLT5zZWN1cml0eU9yaWdpbigpKTsKKyAgICBXZWJDb3JlOjpXaW5kb3dGZWF0dXJlcyBmZWF0
dXJlczsKKyAgICBib29sIGNyZWF0ZWQgPSB0cnVlOworICAgIFdlYkNvcmU6OkZyYW1lKiBuZXdG
cmFtZSA9IFdlYkNvcmU6OmNyZWF0ZVdpbmRvdyhvbGRGcmFtZSwgMCwgcmVxdWVzdCwgZmVhdHVy
ZXMsIGNyZWF0ZWQpOworICAgIEVYUEVDVF9FUShvbGRGcmFtZSwgbmV3RnJhbWUpOworICAgIEVY
UEVDVF9GQUxTRShjcmVhdGVkKTsKK30KKwogfQpkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hhbmdlTG9n
IGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGYyYzAzMWUuLmEyOTViMWYgMTAwNjQ0Ci0tLSBhL1Rv
b2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMyBAQAorMjAx
Mi0xMC0yMiAgTWlraGFpbCBOYWdhbm92ICA8bW5hZ2Fub3ZAY2hyb21pdW0ub3JnPgorCisgICAg
ICAgIFtDaHJvbWl1bV0gQWRkIHN1cHBvcnRNdWx0aXBsZVdpbmRvd3Mgc2V0dGluZywgbmVlZGVk
IGZvciBBbmRyb2lkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNn
aT9pZD05OTcxNgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIEFkZCBzdXBwb3J0TXVsdGlwbGVXaW5kb3dzIHNldHRpbmdzIGZvciByZXVzaW5nIHRoZSBz
YW1lIHZpZXcgd2hlbgorICAgICAgICBvcGVuaW5nIHBvcHVwcy4gVGhpcyBpcyByZXF1aXJlZCBm
b3IgZW11bGF0aW5nIHRoZSBiZWhhdmlvciBvZgorICAgICAgICBBbmRyb2lkIFdlYlZpZXcuIEFk
ZGluZyBpbnRvIFdlYkNvcmUsIGFzIG90aGVyIHBvcnRzIG1pZ2h0IHdhbnQgdG8KKyAgICAgICAg
dXNlIHRoaXMgc2V0dGluZyBpbiB0aGUgZnV0dXJlLgorCisgICAgICAgICogRHVtcFJlbmRlclRy
ZWUvY2hyb21pdW0vRFJUVGVzdFJ1bm5lci5jcHA6CisgICAgICAgIChEUlRUZXN0UnVubmVyOjpv
dmVycmlkZVByZWZlcmVuY2UpOgorICAgICAgICAqIER1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dl
YlByZWZlcmVuY2VzLmNwcDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzOjpyZXNldCk6CisgICAg
ICAgIChXZWJQcmVmZXJlbmNlczo6YXBwbHlUbyk6CisgICAgICAgICogRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaDoKKyAgICAgICAgKFdlYlByZWZlcmVuY2VzKToKKwog
MjAxMi0xMC0yNCAgSm9jZWx5biBUdXJjb3R0ZSAgPGpvY2VseW4udHVyY290dGVAZGlnaWEuY29t
PgogCiAgICAgICAgIFtRdF0gTW92ZSB0aGUgUVF1aWNrV2ViVmlld0V4cGVyaW1lbnRhbCBwb2lu
dGVyIHRvIFFRdWlja1dlYlZpZXdQcml2YXRlCmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVuZGVy
VHJlZS9jaHJvbWl1bS9EUlRUZXN0UnVubmVyLmNwcCBiL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2No
cm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCmluZGV4IGY3Y2Q4MDAuLjIwNWNlYzAgMTAwNjQ0Ci0t
LSBhL1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL0RSVFRlc3RSdW5uZXIuY3BwCkBAIC0xNTYw
LDYgKzE1NjAsOCBAQCB2b2lkIERSVFRlc3RSdW5uZXI6Om92ZXJyaWRlUHJlZmVyZW5jZShjb25z
dCBDcHBBcmd1bWVudExpc3QmIGFyZ3VtZW50cywgQ3BwVmFyaQogICAgICAgICBwcmVmcy0+d2Vi
U2VjdXJpdHlFbmFibGVkID0gY3BwVmFyaWFudFRvQm9vbCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAo
a2V5ID09ICJXZWJLaXRKYXZhU2NyaXB0Q2FuT3BlbldpbmRvd3NBdXRvbWF0aWNhbGx5IikKICAg
ICAgICAgcHJlZnMtPmphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHkgPSBjcHBW
YXJpYW50VG9Cb29sKHZhbHVlKTsKKyAgICBlbHNlIGlmIChrZXkgPT0gIldlYktpdFN1cHBvcnRz
TXVsdGlwbGVXaW5kb3dzIikKKyAgICAgICAgcHJlZnMtPnN1cHBvcnRzTXVsdGlwbGVXaW5kb3dz
ID0gY3BwVmFyaWFudFRvQm9vbCh2YWx1ZSk7CiAgICAgZWxzZSBpZiAoa2V5ID09ICJXZWJLaXRE
aXNwbGF5SW1hZ2VzS2V5IikKICAgICAgICAgcHJlZnMtPmxvYWRzSW1hZ2VzQXV0b21hdGljYWxs
eSA9IGNwcFZhcmlhbnRUb0Jvb2wodmFsdWUpOwogICAgIGVsc2UgaWYgKGtleSA9PSAiV2ViS2l0
UGx1Z2luc0VuYWJsZWQiKQpkaWZmIC0tZ2l0IGEvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21p
dW0vV2ViUHJlZmVyZW5jZXMuY3BwIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUvY2hyb21pdW0vV2Vi
UHJlZmVyZW5jZXMuY3BwCmluZGV4IDg4MjQxZGMuLjlmOTc5YTEgMTAwNjQ0Ci0tLSBhL1Rvb2xz
L0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmNwcAorKysgYi9Ub29scy9E
dW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5jcHAKQEAgLTg1LDYgKzg1LDcg
QEAgdm9pZCBXZWJQcmVmZXJlbmNlczo6cmVzZXQoKQogICAgIGphdmFFbmFibGVkID0gZmFsc2U7
CiAgICAgamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZCA9IHRydWU7CiAgICAgamF2YVNjcmlw
dENhbk9wZW5XaW5kb3dzQXV0b21hdGljYWxseSA9IHRydWU7CisgICAgc3VwcG9ydHNNdWx0aXBs
ZVdpbmRvd3MgPSB0cnVlOwogICAgIGphdmFTY3JpcHRFbmFibGVkID0gdHJ1ZTsKICAgICBsb2Fk
c0ltYWdlc0F1dG9tYXRpY2FsbHkgPSB0cnVlOwogICAgIGxvY2FsU3RvcmFnZUVuYWJsZWQgPSB0
cnVlOwpAQCAtMjAyLDYgKzIwMyw3IEBAIHZvaWQgV2ViUHJlZmVyZW5jZXM6OmFwcGx5VG8oV2Vi
Vmlldyogd2ViVmlldykKICAgICBzZXR0aW5ncy0+c2V0SmF2YUVuYWJsZWQoamF2YUVuYWJsZWQp
OwogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0Q2FuQWNjZXNzQ2xpcGJvYXJkKGphdmFTY3Jp
cHRDYW5BY2Nlc3NDbGlwYm9hcmQpOwogICAgIHNldHRpbmdzLT5zZXRKYXZhU2NyaXB0Q2FuT3Bl
bldpbmRvd3NBdXRvbWF0aWNhbGx5KGphdmFTY3JpcHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2Fs
bHkpOworICAgIHNldHRpbmdzLT5zZXRTdXBwb3J0c011bHRpcGxlV2luZG93cyhzdXBwb3J0c011
bHRpcGxlV2luZG93cyk7CiAgICAgc2V0dGluZ3MtPnNldEphdmFTY3JpcHRFbmFibGVkKGphdmFT
Y3JpcHRFbmFibGVkKTsKICAgICBzZXR0aW5ncy0+c2V0TG9hZHNJbWFnZXNBdXRvbWF0aWNhbGx5
KGxvYWRzSW1hZ2VzQXV0b21hdGljYWxseSk7CiAgICAgc2V0dGluZ3MtPnNldExvY2FsU3RvcmFn
ZUVuYWJsZWQobG9jYWxTdG9yYWdlRW5hYmxlZCk7CmRpZmYgLS1naXQgYS9Ub29scy9EdW1wUmVu
ZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oIGIvVG9vbHMvRHVtcFJlbmRlclRyZWUv
Y2hyb21pdW0vV2ViUHJlZmVyZW5jZXMuaAppbmRleCA4MWZlNjIyLi4wMDk1MjdjIDEwMDY0NAot
LS0gYS9Ub29scy9EdW1wUmVuZGVyVHJlZS9jaHJvbWl1bS9XZWJQcmVmZXJlbmNlcy5oCisrKyBi
L1Rvb2xzL0R1bXBSZW5kZXJUcmVlL2Nocm9taXVtL1dlYlByZWZlcmVuY2VzLmgKQEAgLTg3LDYg
Kzg3LDcgQEAgc3RydWN0IFdlYlByZWZlcmVuY2VzIHsKICAgICBib29sIGphdmFFbmFibGVkOwog
ICAgIGJvb2wgamF2YVNjcmlwdENhbkFjY2Vzc0NsaXBib2FyZDsKICAgICBib29sIGphdmFTY3Jp
cHRDYW5PcGVuV2luZG93c0F1dG9tYXRpY2FsbHk7CisgICAgYm9vbCBzdXBwb3J0c011bHRpcGxl
V2luZG93czsKICAgICBib29sIGphdmFTY3JpcHRFbmFibGVkOwogICAgIGJvb2wgbG9hZHNJbWFn
ZXNBdXRvbWF0aWNhbGx5OwogICAgIGJvb2wgbG9jYWxTdG9yYWdlRW5hYmxlZDsK
</data>
<flag name="review"
          id="184118"
          type_id="1"
          status="+"
          setter="abarth"
    />
    <flag name="commit-queue"
          id="184119"
          type_id="3"
          status="-"
          setter="abarth"
    />
          </attachment>
      

    </bug>

</bugzilla>