<?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>138918</bug_id>
          
          <creation_ts>2014-11-20 01:06:35 -0800</creation_ts>
          <short_desc>[GTK] Add WebKitWebView:is-playing-audio property</short_desc>
          <delta_ts>2014-12-18 06:57:46 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Adrian Perez">aperez</assigned_to>
          <cc>aperez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>mrobinson</cc>
    
    <cc>pnormand</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1050086</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2014-11-20 01:06:35 -0800</bug_when>
    <thetext>Could be implemented as a boolean property and a webkit_web_view_is_playing_audio() method.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1050090</commentid>
    <comment_count>1</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-11-20 01:44:01 -0800</bug_when>
    <thetext>In WebKitGTK+ we are using API::UIClient, so we can override API::UIClient::isPlayingAudioDidChange() in our subclass instead
of using the C-based API.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1053446</commentid>
    <comment_count>2</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-12-08 11:08:41 -0800</bug_when>
    <thetext>JFTR, I am working on this. Patch to come soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055509</commentid>
    <comment_count>3</comment_count>
      <attachid>243273</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-12-14 15:04:13 -0800</bug_when>
    <thetext>Created attachment 243273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055510</commentid>
    <comment_count>4</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-12-14 15:04:57 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Created attachment 243273 [details]
&gt; Patch

WIP patch, tests and proper ChangeLog entries are missing. I will update it soon.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1055586</commentid>
    <comment_count>5</comment_count>
      <attachid>243273</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-12-15 02:23:04 -0800</bug_when>
    <thetext>Comment on attachment 243273
Patch

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

Do not ask for review in wip patches. API looks good to me. Thanks!

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:179
&gt; +    bool isPlayingAudio;

I don&apos;t think we need to duplicate this, since this is always mapped to WebPageProxy::isPlayingAudio(). In the case of strings, we duplicate the info because we need to convert the string to utf8 and we want to return a const char*, but for booleanas we can just return the WebPageProxy value.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:235
&gt; +void webkitWebViewSetIsPlayingAudio(WebKitWebView* webView, bool isPlayingAudio)

So, instead of SetIsPlayingAudio, this could be webkitWebViewIsPlayingAudioChanged(), and we only need to emit the signal, since WebPageProxy::isPlayingAudioDidChange already ensures that UIClient::isPlayingAudioDidChange() is only called when the member has actually changed. We could also emit the signal directly from WebKitUIClient.cpp, but I think the code is easier to follow if the signal is emitted here.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:2496
&gt; + * connecting to the notify::is-playing-audio signal @web_view. This is

of @web_view.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056290</commentid>
    <comment_count>6</comment_count>
      <attachid>243429</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-12-17 01:39:36 -0800</bug_when>
    <thetext>Created attachment 243429
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056291</commentid>
    <comment_count>7</comment_count>
      <attachid>243430</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-12-17 01:40:56 -0800</bug_when>
    <thetext>Created attachment 243430
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056292</commentid>
    <comment_count>8</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-12-17 01:44:38 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Created attachment 243430 [details]
&gt; Patch

This version includes a test case and the nits are fixed. But somehow
the test case does not get the notify::is-playing-audio signal emitted,
but if I add a signal handler in MiniBrowser and browse a website with
video or audio (e.g. YouTube) the signal is emitted properly. Probably
the issue has something to do with the even loop, but I could not find
the issue. Any pointers?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056294</commentid>
    <comment_count>9</comment_count>
      <attachid>243430</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-12-17 02:08:23 -0800</bug_when>
    <thetext>Comment on attachment 243430
Patch

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

The API looks perfect to me, r- only because of the tests

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:710
&gt; +    const char* value = g_getenv(&quot;TEST_WEBKIT_API_WEBKIT2_RESOURCES_PATH&quot;);
&gt; +    if (!value) {
&gt; +        g_printerr(&quot;TEST_WEBKIT_API_WEBKIT2_RESOURCES_PATH environment variable not found\n&quot;);
&gt; +        exit(1);

This is actually for C API tests, we avoid using env variables if possible.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:715
&gt; +    gsize bytesWritten;
&gt; +    GUniquePtr&lt;char&gt; testResourcesPath(g_filename_to_utf8(value, -1, 0, &amp;bytesWritten, 0));
&gt; +    GUniquePtr&lt;char&gt; fullPath(g_build_filename(testResourcesPath.get(), name, nullptr));
&gt; +    return g_strdup_printf(&quot;file://%s&quot;, fullPath.get());

This should be added to Test class, see getResourcesDir() in TestMain.h. We could either add a new method to get the resources in the C API tests dir, or add a parameter to  getResourcesDir() with an enum with values for WebKit2GTK or WebKit2 tests

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:721
&gt; +    g_assert_cmpint(webkit_web_view_is_playing_audio(test-&gt;m_webView), ==, FALSE);

Don&apos;t use cmpint with booleans, use simply assert g_assert(!webkit_web_view_is_playing_audio(test-&gt;m_webView));

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:726
&gt; +    g_assert_cmpint(webkit_web_view_is_playing_audio(test-&gt;m_webView), ==, FALSE);

Ditto.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:729
&gt; +    test-&gt;waitUntilIsPlayingAudioChanged();

So, the test gets stalled here and then times out? One possible reason could be that the view is not realized and the video is not actually played. You could try to add the view to a window, see WebViewTest::showInWindowAndWaitUntilMapped

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:731
&gt; +    g_assert_cmpint(webkit_web_view_is_playing_audio(test-&gt;m_webView), ==, TRUE);

Don&apos;t use int for booleans

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:732
&gt; +}

It would be interesting to test also that if the video is muted (or paused/stoped) the property is set to FALSE.

&gt; Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.cpp:206
&gt; +static void isPlayingAudioChanged(WebKitWebView* webView, GParamSpec*, WebViewTest* test)
&gt; +{
&gt; +    g_signal_handlers_disconnect_by_func(webView, reinterpret_cast&lt;void*&gt;(isPlayingAudioChanged), test);
&gt; +    g_main_loop_quit(test-&gt;m_mainLoop);
&gt; +}
&gt; +
&gt; +void WebViewTest::waitUntilIsPlayingAudioChanged()
&gt; +{
&gt; +    g_signal_connect(m_webView, &quot;notify::is-playing-audio&quot;, G_CALLBACK(isPlayingAudioChanged), this);
&gt; +    g_main_loop_run(m_mainLoop);
&gt; +}

This is very specific to the is-playing-audio test. I would add a custom class to TestWebKitWebView.cpp, derived from WebViewTest.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056355</commentid>
    <comment_count>10</comment_count>
      <attachid>243440</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-12-17 09:56:10 -0800</bug_when>
    <thetext>Created attachment 243440
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056357</commentid>
    <comment_count>11</comment_count>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-12-17 10:02:19 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; Comment on attachment 243430 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=243430&amp;action=review
&gt; 
&gt; The API looks perfect to me, r- only because of the tests
&gt; 
&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:710
&gt; &gt; +    const char* value = g_getenv(&quot;TEST_WEBKIT_API_WEBKIT2_RESOURCES_PATH&quot;);
&gt; &gt; +    if (!value) {
&gt; &gt; +        g_printerr(&quot;TEST_WEBKIT_API_WEBKIT2_RESOURCES_PATH environment variable not found\n&quot;);
&gt; &gt; +        exit(1);
&gt; 
&gt; This is actually for C API tests, we avoid using env variables if possible.

Fixed in the last revision of the patch.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:715
&gt; &gt; +    gsize bytesWritten;
&gt; &gt; +    GUniquePtr&lt;char&gt; testResourcesPath(g_filename_to_utf8(value, -1, 0, &amp;bytesWritten, 0));
&gt; &gt; +    GUniquePtr&lt;char&gt; fullPath(g_build_filename(testResourcesPath.get(), name, nullptr));
&gt; &gt; +    return g_strdup_printf(&quot;file://%s&quot;, fullPath.get());
&gt; 
&gt; This should be added to Test class, see getResourcesDir() in TestMain.h. We
&gt; could either add a new method to get the resources in the C API tests dir,
&gt; or add a parameter to  getResourcesDir() with an enum with values for
&gt; WebKit2GTK or WebKit2 tests

I have added a flag to getResourcesDir() as suggested.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:721
&gt; &gt; +    g_assert_cmpint(webkit_web_view_is_playing_audio(test-&gt;m_webView), ==, FALSE);
&gt; 
&gt; Don&apos;t use cmpint with booleans, use simply assert
&gt; g_assert(!webkit_web_view_is_playing_audio(test-&gt;m_webView));

All of those are now plain g_assert()s.

&gt; &gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:729
&gt; &gt; +    test-&gt;waitUntilIsPlayingAudioChanged();
&gt; 
&gt; So, the test gets stalled here and then times out? One possible reason could
&gt; be that the view is not realized and the video is not actually played. You
&gt; could try to add the view to a window, see
&gt; WebViewTest::showInWindowAndWaitUntilMapped

Thanks a lot for the tip, this made the test case work perfectly.
 
&gt; It would be interesting to test also that if the video is muted (or
&gt; paused/stoped) the property is set to FALSE.

Added another check after pausing the video. And it works as expected ;)

&gt; &gt; +void WebViewTest::waitUntilIsPlayingAudioChanged()
&gt; &gt; +{
&gt; &gt; +    g_signal_connect(m_webView, &quot;notify::is-playing-audio&quot;, G_CALLBACK(isPlayingAudioChanged), this);
&gt; &gt; +    g_main_loop_run(m_mainLoop);
&gt; &gt; +}
&gt; 
&gt; This is very specific to the is-playing-audio test. I would add a custom
&gt; class to TestWebKitWebView.cpp, derived from WebViewTest.

Moved into a local class in TestWebKitWebView.cpp.

If a second reviewer agrees that the new API is good to go, it seems
to me that the the patch should be ready to land.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056727</commentid>
    <comment_count>12</comment_count>
      <attachid>243440</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-12-18 00:28:09 -0800</bug_when>
    <thetext>Comment on attachment 243440
Patch

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

The API is simple enough so that we probably don&apos;t need a double approval.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:29
&gt; +class WebViewIsPlayingAudioTest : public WebViewTest {

Following the pattern used in other tests, this should probably be IsPlayingAudioWebViewTest, but it doesn&apos;t really matter.

&gt; Tools/TestWebKitAPI/Tests/WebKit2Gtk/TestWebKitWebView.cpp:732
&gt; +    GUniquePtr&lt;char&gt; resourceUrl(g_strdup_printf(&quot;file://%s&quot;, resourcePath.get()));

resourceUrl -&gt; resourceURL
g_filename_to_uri is probably more appropriate than &quot;file://%s&quot;

&gt; Tools/TestWebKitAPI/gtk/WebKit2Gtk/WebViewTest.h:50
&gt; +    void waitUntilIsPlayingAudioChanged();

You forgot to remove this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056769</commentid>
    <comment_count>13</comment_count>
      <attachid>243495</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2014-12-18 06:00:10 -0800</bug_when>
    <thetext>Created attachment 243495
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056774</commentid>
    <comment_count>14</comment_count>
      <attachid>243495</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-18 06:57:42 -0800</bug_when>
    <thetext>Comment on attachment 243495
Patch

Clearing flags on attachment: 243495

Committed r177496: &lt;http://trac.webkit.org/changeset/177496&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1056775</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-12-18 06:57:46 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243273</attachid>
            <date>2014-12-14 15:04:13 -0800</date>
            <delta_ts>2014-12-17 01:37:58 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138918-20141215000459.patch</filename>
            <type>text/plain</type>
            <size>6433</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MjY0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKaW5kZXggZTBkY2VkMWM0MzdiZGQyYmEw
ZTAxZDE4YTA0MDQ4NTQ5NjFlNjM0ZS4uZWJkMGY4YmU5M2JlYTFlYjFmMmRlM2Y3NWRhZDQzZDZk
NDFlNGFjNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFVJQ2xpZW50LmNwcApAQCAtMTg2LDYgKzE4NiwxMSBAQCBwcml2YXRlOgogICAgICAgICB3
ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChtX3dlYlZpZXcpOwogICAgIH0KIAorICAgIHZpcnR1YWwg
dm9pZCBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZShXZWJQYWdlUHJveHkmIHBhZ2UpIG92ZXJyaWRl
CisgICAgeworICAgICAgICB3ZWJraXRXZWJWaWV3U2V0SXNQbGF5aW5nQXVkaW8obV93ZWJWaWV3
LCBwYWdlLmlzUGxheWluZ0F1ZGlvKCkpOworICAgIH0KKwogICAgIFdlYktpdFdlYlZpZXcqIG1f
d2ViVmlldzsKIH07CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlldy5jcHAKaW5kZXggOWZiYWE3MWQ0YTQxYmMzNjFkYWNlZDZjZDBiOTAyODFh
MmE4ZjMwNS4uZTJjNTdiMjMwOTM1OWEwZTA3MWE4ZjAxNGFlNzNhZmVkZTFmZWM5NSAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAK
QEAgLTE0OCw3ICsxNDgsOCBAQCBlbnVtIHsKICAgICBQUk9QX0ZBVklDT04sCiAgICAgUFJPUF9V
UkksCiAgICAgUFJPUF9aT09NX0xFVkVMLAotICAgIFBST1BfSVNfTE9BRElORworICAgIFBST1Bf
SVNfTE9BRElORywKKyAgICBQUk9QX0lTX1BMQVlJTkdfQVVESU8KIH07CiAKIHR5cGVkZWYgSGFz
aE1hcDx1aW50NjRfdCwgR1JlZlB0cjxXZWJLaXRXZWJSZXNvdXJjZT4gPiBMb2FkaW5nUmVzb3Vy
Y2VzTWFwOwpAQCAtMTc1LDYgKzE3Niw3IEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld1ByaXZhdGUg
ewogICAgIENTdHJpbmcgY3VzdG9tVGV4dEVuY29kaW5nOwogICAgIENTdHJpbmcgYWN0aXZlVVJJ
OwogICAgIGJvb2wgaXNMb2FkaW5nOworICAgIGJvb2wgaXNQbGF5aW5nQXVkaW87CiAKICAgICBz
dGQ6OnVuaXF1ZV9wdHI8UGFnZUxvYWRTdGF0ZU9ic2VydmVyPiBsb2FkT2JzZXJ2ZXI7CiAgICAg
Ym9vbCB3YWl0aW5nRm9yTWFpblJlc291cmNlOwpAQCAtMjMwLDYgKzIzMiwxNSBAQCBzdGF0aWMg
dm9pZCB3ZWJraXRXZWJWaWV3U2V0SXNMb2FkaW5nKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIGJv
b2wgaXNMb2FkaW5nKQogICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJWaWV3KSwgImlz
LWxvYWRpbmciKTsKIH0KIAordm9pZCB3ZWJraXRXZWJWaWV3U2V0SXNQbGF5aW5nQXVkaW8oV2Vi
S2l0V2ViVmlldyogd2ViVmlldywgYm9vbCBpc1BsYXlpbmdBdWRpbykKK3sKKyAgICBpZiAod2Vi
Vmlldy0+cHJpdi0+aXNQbGF5aW5nQXVkaW8gPT0gaXNQbGF5aW5nQXVkaW8pCisgICAgICAgIHJl
dHVybjsKKworICAgIHdlYlZpZXctPnByaXYtPmlzUGxheWluZ0F1ZGlvID0gaXNQbGF5aW5nQXVk
aW87CisgICAgZ19vYmplY3Rfbm90aWZ5KEdfT0JKRUNUKHdlYlZpZXcpLCAiaXMtcGxheWluZy1h
dWRpbyIpOworfQorCiBjbGFzcyBQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIgZmluYWwgOiBwdWJsaWMg
UGFnZUxvYWRTdGF0ZTo6T2JzZXJ2ZXIgewogcHVibGljOgogICAgIFBhZ2VMb2FkU3RhdGVPYnNl
cnZlcihXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQpAQCAtNzIxLDYgKzczMiw5IEBAIHN0YXRpYyB2
b2lkIHdlYmtpdFdlYlZpZXdHZXRQcm9wZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJ
ZCwgR1ZhbHVlKiB2YWx1CiAgICAgY2FzZSBQUk9QX0lTX0xPQURJTkc6CiAgICAgICAgIGdfdmFs
dWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5nKHdlYlZpZXcp
KTsKICAgICAgICAgYnJlYWs7CisgICAgY2FzZSBQUk9QX0lTX1BMQVlJTkdfQVVESU86CisgICAg
ICAgIGdfdmFsdWVfc2V0X2Jvb2xlYW4odmFsdWUsIHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5n
X2F1ZGlvKHdlYlZpZXcpKTsKKyAgICAgICAgYnJlYWs7CiAgICAgZGVmYXVsdDoKICAgICAgICAg
R19PQkpFQ1RfV0FSTl9JTlZBTElEX1BST1BFUlRZX0lEKG9iamVjdCwgcHJvcElkLCBwYXJhbVNw
ZWMpOwogICAgIH0KQEAgLTkzMiw2ICs5NDYsMjYgQEAgc3RhdGljIHZvaWQgd2Via2l0X3dlYl92
aWV3X2NsYXNzX2luaXQoV2ViS2l0V2ViVmlld0NsYXNzKiB3ZWJWaWV3Q2xhc3MpCiAgICAgICAg
ICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFdl
YlZpZXc6OmlzLXBsYXlpbmctYXVkaW86CisgICAgICoKKyAgICAgKiBXaGV0aGVyIHRoZSAjV2Vi
S2l0V2ViVmlldyBpcyBjdXJyZW50bHkgcGxheWluZyBhdWRpbyBmcm9tIGEgcGFnZS4KKyAgICAg
KiBUaGlzIHByb3BlcnR5IGJlY29tZXMgJVRSVUUgYXMgc29vbiBhcyB3ZWIgY29udGVudCBzdGFy
dHMgcGxheWluZyBhbnkKKyAgICAgKiBraW5kIG9mIGF1ZGlvLiBXaGVuIGEgcGFnZSBpcyBubyBs
b25nZXIgcGxheWluZyBhbnkga2luZCBvZiBzb3VuZCwKKyAgICAgKiB0aGUgcHJvcGVydHkgaXMg
c2V0IGJhY2sgdG8gJUZBTFNFLgorICAgICAqCisgICAgICogU2luY2U6IDIuOAorICAgICAqLwor
ICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJvcGVydHkoCisgICAgICAgIGdPYmplY3RDbGFz
cywKKyAgICAgICAgUFJPUF9JU19QTEFZSU5HX0FVRElPLAorICAgICAgICBnX3BhcmFtX3NwZWNf
Ym9vbGVhbigKKyAgICAgICAgICAgICJpcy1wbGF5aW5nLWF1ZGlvIiwKKyAgICAgICAgICAgICJJ
cyBQbGF5aW5nIEF1ZGlvIiwKKyAgICAgICAgICAgIF8oIldoZXRoZXIgdGhlIHZpZXcgaXMgcGxh
eWluZyBhdWRpbyIpLAorICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICBXRUJLSVRfUEFS
QU1fUkVBREFCTEUpKTsKKworICAgIC8qKgogICAgICAqIFdlYktpdFdlYlZpZXc6OmxvYWQtY2hh
bmdlZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldyBvbiB3aGljaCB0aGUg
c2lnbmFsIGlzIGVtaXR0ZWQKICAgICAgKiBAbG9hZF9ldmVudDogdGhlICNXZWJLaXRMb2FkRXZl
bnQKQEAgLTI0NTQsNiArMjQ4OCwyNyBAQCBnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfaXNfbG9h
ZGluZyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQogfQogCiAvKioKKyAqIHdlYmtpdF93ZWJfdmll
d19pc19wbGF5aW5nX2F1ZGlvOgorICogQHdlYl92aWV3OiBhICNXZWJLaXRXZWJWaWV3CisgKgor
ICogR2V0cyB0aGUgdmFsdWUgb2YgdGhlICNXZWJLaXRXZWJWaWV3Ojppcy1wbGF5aW5nLWF1ZGlv
IHByb3BlcnR5LgorICogWW91IGNhbiBtb25pdG9yIHdoZW4gYSBwYWdlIGluIGEgI1dlYktpdFdl
YlZpZXcgaXMgcGxheWluZyBhdWRpbyBieQorICogY29ubmVjdGluZyB0byB0aGUgbm90aWZ5Ojpp
cy1wbGF5aW5nLWF1ZGlvIHNpZ25hbCBAd2ViX3ZpZXcuIFRoaXMgaXMKKyAqIHVzZWZ1bCB3aGVu
IHRoZSBhcHBsaWNhdGlvbiB3YW50cyB0byBwcm92aWRlIHZpc3VhbCBmZWVkYmFjayB3aGVuIGEK
KyAqIHBhZ2UgaXMgcHJvZHVjaW5nIHNvdW5kLgorICoKKyAqIFJldHVybnM6ICVUUlVFIGlmIGEg
cGFnZSBpbiBAd2ViX3ZpZXcgaXMgcGxheWluZyBhdWRpbyBvciAlRkFMU0Ugb3RoZXJ3aXNlLgor
ICoKKyAqIFNpbmNlOiAyLjgKKyAqLworZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2lzX3BsYXlp
bmdfYXVkaW8oV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBnX3JldHVybl92YWxfaWZf
ZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIEZBTFNFKTsKKworICAgIHJldHVybiB3
ZWJWaWV3LT5wcml2LT5pc1BsYXlpbmdBdWRpbzsKK30KKworLyoqCiAgKiB3ZWJraXRfd2ViX3Zp
ZXdfZ29fYmFjazoKICAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwogICoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaCBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCBkNTM1
NDllMjM4YTQ3NGNjMmEyNjFiMjMzMzZhMWYzZDc4MzhlYzU0Li5kYTNmMTY1ZmRiNmYwMzQ3NjAx
NThmN2I3Njg3ZjUwYTUwM2M0ZjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCkBAIC0zMDUsNiArMzA1LDkgQEAgd2Via2l0X3dlYl92
aWV3X3N0b3BfbG9hZGluZyAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldwog
V0VCS0lUX0FQSSBnYm9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwog
CitXRUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbyAg
ICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7
CisKIFdFQktJVF9BUEkgZ3VpbnQ2NAogd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkICAgICAg
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcp
OwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlld1ByaXZhdGUuaAppbmRleCBjZWU3MTZhNTVlNjhkNWI3MmY1ZGM1ODYzNGFkZTFhNDdl
ZmRhYzZkLi5hYmM4YTJhM2YzZDllNTEwMjEyZjc5MWYzMDgwNDQ2ZmQ3ZjkwMjAyIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3UHJpdmF0
ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQ
cml2YXRlLmgKQEAgLTYwLDUgKzYwLDYgQEAgdm9pZCB3ZWJraXRXZWJWaWV3SW5zZWN1cmVDb250
ZW50RGV0ZWN0ZWQoV2ViS2l0V2ViVmlldyosIFdlYktpdEluc2VjdXJlQ29udGVudEUKIGJvb2wg
d2Via2l0V2ViVmlld0VtaXRTaG93Tm90aWZpY2F0aW9uKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRO
b3RpZmljYXRpb24qKTsKIHZvaWQgd2Via2l0V2ViVmlld0VtaXRDbG9zZU5vdGlmaWNhdGlvbihX
ZWJLaXRXZWJWaWV3KiwgV2ViS2l0Tm90aWZpY2F0aW9uKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdX
ZWJQcm9jZXNzQ3Jhc2hlZChXZWJLaXRXZWJWaWV3Kik7Cit2b2lkIHdlYmtpdFdlYlZpZXdTZXRJ
c1BsYXlpbmdBdWRpbyhXZWJLaXRXZWJWaWV3KiwgYm9vbCk7CiAKICNlbmRpZiAvLyBXZWJLaXRX
ZWJWaWV3UHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAppbmRleCAxNWM0YmNkZTk4
ZDI3YWU1NzdmZWQzYjhiYzZiZTQ4OTNkYmZjMWVjLi5mMzY2ZDBhMDI4MTQzNjk1OWVjZjY4ZGIx
OGQwMjNiNjY5NzhiMmE3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTE2Nyw2ICsx
NjcsNyBAQCB3ZWJraXRfd2ViX3ZpZXdfcmVsb2FkCiB3ZWJraXRfd2ViX3ZpZXdfcmVsb2FkX2J5
cGFzc19jYWNoZQogd2Via2l0X3dlYl92aWV3X3N0b3BfbG9hZGluZwogd2Via2l0X3dlYl92aWV3
X2lzX2xvYWRpbmcKK3dlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvCiB3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X2VzdGltYXRlZF9sb2FkX3Byb2dyZXNzCiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2N1
c3RvbV9jaGFyc2V0CiB3ZWJraXRfd2ViX3ZpZXdfc2V0X2N1c3RvbV9jaGFyc2V0Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243429</attachid>
            <date>2014-12-17 01:39:36 -0800</date>
            <delta_ts>2014-12-17 01:40:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138918-20141217114025.patch</filename>
            <type>text/plain</type>
            <size>12936</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzllNzJkYmY2MGY0ZmNl
NDhjZDA4ZGExNTMyM2Y4MDA4NzQ4MzVlMi4uZjAxZDJkYjFiOGNlYmZiOWU3ZDAzNTY4MmM3YTA0
OTM4YTg2YjM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTEyLTE3ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
SW1wbGVtZW50IHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODkxOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudHMgd2Via2l0X3dl
Yl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oKSwgYW5kIG92ZXJyaWRlcworICAgICAgICBVSUNsaWVu
dDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoKSB0byBiZSBhYmxlIHRvIGVtaXQgY2hhbmdlCisg
ICAgICAgIG5vdGlmaWNhdGlvbiBzaWduYWxzIGZvciB0aGUgbmV3IFdlYktpdFdlYlZpZXc6Omlz
LXBsYXlpbmctYXVkaW8KKyAgICAgICAgcHJvcGVydHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgIChpc1BsYXlpbmdBdWRpb0RpZENo
YW5nZSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcu
Y3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0lzUGxheWluZ0F1ZGlvQ2hhbmdlZCk6IEhlbHBl
ciBmdW5jdGlvbiB0byBlbWl0IHRoZQorICAgICAgICBlbWl0IHRoZSBub3RpZnk6OmlzLXBsYXlp
bmctYXVkaW8gc2lnbmFsIHdoZW4gbmVlZGVkLgorICAgICAgICAod2Via2l0V2ViVmlld0dldFBy
b3BlcnR5KTogSGFuZGxlIHRoZSBXZWJLaXRXZWJWaWV3Ojppcy1wbGF5aW5nLWF1ZGlvCisgICAg
ICAgIHByb3BlcnR5LgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOiBJbnN0
YWxsIHRoZQorICAgICAgICBXZWJLaXRXZWJWaWV3Ojppcy1wbGF5aW5nLWF1ZGlvIHByb3BlcnR5
LgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8pOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQKKyAgICAgICAgd2Vi
a2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oKSB0byB0aGUgbGlzdCBvZiBwdWJsaWMgQVBJ
CisgICAgICAgIGZ1bmN0aW9ucy4KKwogMjAxNC0xMi0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlv
bnNHVEsuY21ha2UgYW5kIE5FV1MgZm9yIDIuNy4zIHJlbGVhc2UuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKaW5kZXggZTBkY2Vk
MWM0MzdiZGQyYmEwZTAxZDE4YTA0MDQ4NTQ5NjFlNjM0ZS4uYzhiN2Q1NmU2MTRjODBlZWM5MzVm
ZjM5ZmRlZTZhZmQxNWI4ZmQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcApAQCAtMTg2LDYgKzE4NiwxMSBAQCBwcml2YXRl
OgogICAgICAgICB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChtX3dlYlZpZXcpOwogICAgIH0KIAor
ICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZShXZWJQYWdlUHJveHkmIHBh
Z2UpIG92ZXJyaWRlCisgICAgeworICAgICAgICB3ZWJraXRXZWJWaWV3SXNQbGF5aW5nQXVkaW9D
aGFuZ2VkKG1fd2ViVmlldyk7CisgICAgfQorCiAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3LmNwcAppbmRleCA5ZmJhYTcxZDRhNDFiYzM2MWRhY2VkNmNkMGI5MDI4MWEyYThmMzA1
Li5mNWMyZDczYmUxNTRiMTY2ODcwMzhmYjg4ZDQyNTIyZWI1N2VhMmMwIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMTQ4
LDcgKzE0OCw4IEBAIGVudW0gewogICAgIFBST1BfRkFWSUNPTiwKICAgICBQUk9QX1VSSSwKICAg
ICBQUk9QX1pPT01fTEVWRUwsCi0gICAgUFJPUF9JU19MT0FESU5HCisgICAgUFJPUF9JU19MT0FE
SU5HLAorICAgIFBST1BfSVNfUExBWUlOR19BVURJTwogfTsKIAogdHlwZWRlZiBIYXNoTWFwPHVp
bnQ2NF90LCBHUmVmUHRyPFdlYktpdFdlYlJlc291cmNlPiA+IExvYWRpbmdSZXNvdXJjZXNNYXA7
CkBAIC0yMzAsNiArMjMxLDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdTZXRJc0xvYWRp
bmcoV2ViS2l0V2ViVmlldyogd2ViVmlldywgYm9vbCBpc0xvYWRpbmcpCiAgICAgZ19vYmplY3Rf
bm90aWZ5KEdfT0JKRUNUKHdlYlZpZXcpLCAiaXMtbG9hZGluZyIpOwogfQogCit2b2lkIHdlYmtp
dFdlYlZpZXdJc1BsYXlpbmdBdWRpb0NoYW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sK
KyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJpcy1wbGF5aW5nLWF1ZGlv
Iik7Cit9CisKIGNsYXNzIFBhZ2VMb2FkU3RhdGVPYnNlcnZlciBmaW5hbCA6IHB1YmxpYyBQYWdl
TG9hZFN0YXRlOjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgUGFnZUxvYWRTdGF0ZU9ic2VydmVy
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCkBAIC03MjEsNiArNzI3LDkgQEAgc3RhdGljIHZvaWQg
d2Via2l0V2ViVmlld0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBH
VmFsdWUqIHZhbHUKICAgICBjYXNlIFBST1BfSVNfTE9BRElORzoKICAgICAgICAgZ192YWx1ZV9z
ZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcod2ViVmlldykpOwog
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfSVNfUExBWUlOR19BVURJTzoKKyAgICAgICAg
Z192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVk
aW8od2ViVmlldykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09C
SkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7
CiAgICAgfQpAQCAtOTMyLDYgKzk0MSwyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
Y2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmll
dzo6aXMtcGxheWluZy1hdWRpbzoKKyAgICAgKgorICAgICAqIFdoZXRoZXIgdGhlICNXZWJLaXRX
ZWJWaWV3IGlzIGN1cnJlbnRseSBwbGF5aW5nIGF1ZGlvIGZyb20gYSBwYWdlLgorICAgICAqIFRo
aXMgcHJvcGVydHkgYmVjb21lcyAlVFJVRSBhcyBzb29uIGFzIHdlYiBjb250ZW50IHN0YXJ0cyBw
bGF5aW5nIGFueQorICAgICAqIGtpbmQgb2YgYXVkaW8uIFdoZW4gYSBwYWdlIGlzIG5vIGxvbmdl
ciBwbGF5aW5nIGFueSBraW5kIG9mIHNvdW5kLAorICAgICAqIHRoZSBwcm9wZXJ0eSBpcyBzZXQg
YmFjayB0byAlRkFMU0UuCisgICAgICoKKyAgICAgKiBTaW5jZTogMi44CisgICAgICovCisgICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ09iamVjdENsYXNzLAor
ICAgICAgICBQUk9QX0lTX1BMQVlJTkdfQVVESU8sCisgICAgICAgIGdfcGFyYW1fc3BlY19ib29s
ZWFuKAorICAgICAgICAgICAgImlzLXBsYXlpbmctYXVkaW8iLAorICAgICAgICAgICAgIklzIFBs
YXlpbmcgQXVkaW8iLAorICAgICAgICAgICAgXygiV2hldGhlciB0aGUgdmlldyBpcyBwbGF5aW5n
IGF1ZGlvIiksCisgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9S
RUFEQUJMRSkpOworCisgICAgLyoqCiAgICAgICogV2ViS2l0V2ViVmlldzo6bG9hZC1jaGFuZ2Vk
OgogICAgICAqIEB3ZWJfdmlldzogdGhlICNXZWJLaXRXZWJWaWV3IG9uIHdoaWNoIHRoZSBzaWdu
YWwgaXMgZW1pdHRlZAogICAgICAqIEBsb2FkX2V2ZW50OiB0aGUgI1dlYktpdExvYWRFdmVudApA
QCAtMjQ1NCw2ICsyNDgzLDI3IEBAIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5n
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB9CiAKIC8qKgorICogd2Via2l0X3dlYl92aWV3X2lz
X3BsYXlpbmdfYXVkaW86CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqCisgKiBH
ZXRzIHRoZSB2YWx1ZSBvZiB0aGUgI1dlYktpdFdlYlZpZXc6OmlzLXBsYXlpbmctYXVkaW8gcHJv
cGVydHkuCisgKiBZb3UgY2FuIG1vbml0b3Igd2hlbiBhIHBhZ2UgaW4gYSAjV2ViS2l0V2ViVmll
dyBpcyBwbGF5aW5nIGF1ZGlvIGJ5CisgKiBjb25uZWN0aW5nIHRvIHRoZSBub3RpZnk6OmlzLXBs
YXlpbmctYXVkaW8gc2lnbmFsIEB3ZWJfdmlldy4gVGhpcyBpcworICogdXNlZnVsIHdoZW4gdGhl
IGFwcGxpY2F0aW9uIHdhbnRzIHRvIHByb3ZpZGUgdmlzdWFsIGZlZWRiYWNrIHdoZW4gYQorICog
cGFnZSBpcyBwcm9kdWNpbmcgc291bmQuCisgKgorICogUmV0dXJuczogJVRSVUUgaWYgYSBwYWdl
IGluIEB3ZWJfdmlldyBpcyBwbGF5aW5nIGF1ZGlvIG9yICVGQUxTRSBvdGhlcndpc2UuCisgKgor
ICogU2luY2U6IDIuOAorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19h
dWRpbyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9mYWls
KFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOworCisgICAgcmV0dXJuIGdldFBh
Z2Uod2ViVmlldyktPmlzUGxheWluZ0F1ZGlvKCk7Cit9CisKKy8qKgogICogd2Via2l0X3dlYl92
aWV3X2dvX2JhY2s6CiAgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKICAqCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXggZDUz
NTQ5ZTIzOGE0NzRjYzJhMjYxYjIzMzM2YTFmM2Q3ODM4ZWM1NC4uZGEzZjE2NWZkYjZmMDM0NzYw
MTU4ZjdiNzY4N2Y1MGE1MDNjNGY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaApAQCAtMzA1LDYgKzMwNSw5IEBAIHdlYmtpdF93ZWJf
dmlld19zdG9wX2xvYWRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcK
IFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5nICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3KTsK
IAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8g
ICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcp
OworCiBXRUJLSVRfQVBJIGd1aW50NjQKIHdlYmtpdF93ZWJfdmlld19nZXRfcGFnZV9pZCAgICAg
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3
KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXdQcml2YXRlLmgKaW5kZXggY2VlNzE2YTU1ZTY4ZDViNzJmNWRjNTg2MzRhZGUxYTQ3
ZWZkYWM2ZC4uMDM4MTRlYWE4ZDA0ZTNmYzhiN2VhYTllOGE2NjM5NTUxNmM2OWFiOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
UHJpdmF0ZS5oCkBAIC02MCw1ICs2MCw2IEBAIHZvaWQgd2Via2l0V2ViVmlld0luc2VjdXJlQ29u
dGVudERldGVjdGVkKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRJbnNlY3VyZUNvbnRlbnRFCiBib29s
IHdlYmtpdFdlYlZpZXdFbWl0U2hvd05vdGlmaWNhdGlvbihXZWJLaXRXZWJWaWV3KiwgV2ViS2l0
Tm90aWZpY2F0aW9uKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdFbWl0Q2xvc2VOb3RpZmljYXRpb24o
V2ViS2l0V2ViVmlldyosIFdlYktpdE5vdGlmaWNhdGlvbiopOwogdm9pZCB3ZWJraXRXZWJWaWV3
V2ViUHJvY2Vzc0NyYXNoZWQoV2ViS2l0V2ViVmlldyopOwordm9pZCB3ZWJraXRXZWJWaWV3SXNQ
bGF5aW5nQXVkaW9DaGFuZ2VkKFdlYktpdFdlYlZpZXcqKTsKIAogI2VuZGlmIC8vIFdlYktpdFdl
YlZpZXdQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CmluZGV4IDE1YzRiY2RlOThk
MjdhZTU3N2ZlZDNiOGJjNmJlNDg5M2RiZmMxZWMuLmYzNjZkMGEwMjgxNDM2OTU5ZWNmNjhkYjE4
ZDAyM2I2Njk3OGIyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApAQCAtMTY3LDYgKzE2
Nyw3IEBAIHdlYmtpdF93ZWJfdmlld19yZWxvYWQKIHdlYmtpdF93ZWJfdmlld19yZWxvYWRfYnlw
YXNzX2NhY2hlCiB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nCiB3ZWJraXRfd2ViX3ZpZXdf
aXNfbG9hZGluZword2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8KIHdlYmtpdF93ZWJf
dmlld19nZXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3MKIHdlYmtpdF93ZWJfdmlld19nZXRfY3Vz
dG9tX2NoYXJzZXQKIHdlYmtpdF93ZWJfdmlld19zZXRfY3VzdG9tX2NoYXJzZXQKZGlmZiAtLWdp
dCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MmIxNWU0YzhjMzMw
NjM2MzcxMTU3MmFiMzQyYjQ3YWVmNTA1YzQ1Li4wZWZmODU3Zjg2MDk1YTFjNjEwNDk4YjAzMzJj
MTlhOTlhNTk4OThhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMvQ2hh
bmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTQtMTItMTcgIEFkcmlhbiBQZXJleiBkZSBDYXN0
cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBJbXBsZW1lbnQgd2Via2l0
X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oKQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0
Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4OTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgY2FzZSBjYXNlIGZvciB3ZWJraXRfd2ViX3Zp
ZXdfaXNfcGxheWluZ19hdWRpbygpIGFuZCB0aGUKKyAgICAgICAgV2ViS2l0V2ViVmlldzo6aXMt
cGxheWluZy1hdWRpbyBwcm9wZXJ0eS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVzdHMv
V2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh1cmxGb3JSZXNvdXJj
ZSk6IFV0aWxpdHkgZnVuY3Rpb24gdG8gZ2V0IFVSTHMgcG9pbnRpbmcgdG8gcmVzb3VyY2VzCisg
ICAgICAgIHVuZGVyIHRoZSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvIGRpcmVj
dG9yeS4KKyAgICAgICAgKHRlc3RXZWJWaWV3SXNQbGF5aW5nQXVkaW8pOiBBZGRlZC4KKyAgICAg
ICAgKGJlZm9yZUFsbCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9X
ZWJWaWV3VGVzdC5jcHA6CisgICAgICAgIChpc1BsYXlpbmdBdWRpb0NoYW5nZWQpOiBBZGRlZC4K
KyAgICAgICAgKFdlYlZpZXdUZXN0Ojp3YWl0VW50aWxJc1BsYXlpbmdBdWRpb0NoYW5nZWQpOiBB
ZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0
Lmg6CisKIDIwMTQtMTItMTYgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lAc2Ft
c3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQWRkIGxvZ2dpbmcgZG9tYWluIGZvciBNaW5pQnJv
d3NlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rl
c3RXZWJLaXRXZWJWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9UZXN0V2ViS2l0V2ViVmlldy5jcHAKaW5kZXggODQyMTE0ZjMyYTU1ZjExODU4ZGFhOTI1NmJl
ZWI3ZWU2MWM2MjVjNS4uZTlmYTgxMGE1MmYwY2RiMDIwZjk4ZGIxOWE5NmIzYmNjNmRiZjMwOCAx
MDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJL
aXRXZWJWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsv
VGVzdFdlYktpdFdlYlZpZXcuY3BwCkBAIC03MDIsNiArNzAyLDM1IEBAIHN0YXRpYyB2b2lkIHRl
c3RXZWJWaWV3Tm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbldlYlZpZXdUZXN0KiB0ZXN0LCBnY29u
c3Rwb2ludGVyCiAgICAgZ19hc3NlcnQodGVzdC0+bV9ldmVudCA9PSBOb3RpZmljYXRpb25XZWJW
aWV3VGVzdDo6Q2FuY2VsbGVkKTsKIH0KIAorc3RhdGljIGNoYXIqIHVybEZvclJlc291cmNlKGNv
bnN0IGdjaGFyKiBuYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYoIlRF
U1RfV0VCS0lUX0FQSV9XRUJLSVQyX1JFU09VUkNFU19QQVRIIik7CisgICAgaWYgKCF2YWx1ZSkg
eworICAgICAgICBnX3ByaW50ZXJyKCJURVNUX1dFQktJVF9BUElfV0VCS0lUMl9SRVNPVVJDRVNf
UEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBub3QgZm91bmRcbiIpOworICAgICAgICBleGl0KDEp
OworICAgIH0KKyAgICBnc2l6ZSBieXRlc1dyaXR0ZW47CisgICAgR1VuaXF1ZVB0cjxjaGFyPiB0
ZXN0UmVzb3VyY2VzUGF0aChnX2ZpbGVuYW1lX3RvX3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0ZXNX
cml0dGVuLCAwKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBmdWxsUGF0aChnX2J1aWxkX2ZpbGVu
YW1lKHRlc3RSZXNvdXJjZXNQYXRoLmdldCgpLCBuYW1lLCBudWxscHRyKSk7CisgICAgcmV0dXJu
IGdfc3RyZHVwX3ByaW50ZigiZmlsZTovLyVzIiwgZnVsbFBhdGguZ2V0KCkpOworfQorCitzdGF0
aWMgdm9pZCB0ZXN0V2ViVmlld0lzUGxheWluZ0F1ZGlvKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29u
c3Rwb2ludGVyKQoreworICAgIC8vIEluaXRpYWxseSwgd2ViIHZpZXdzIHNob3VsZCBhbHdheXMg
cmVwb3J0IG5vIGF1ZGlvIGJlaW5nIHBsYXllZC4KKyAgICBnX2Fzc2VydF9jbXBpbnQod2Via2l0
X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8odGVzdC0+bV93ZWJWaWV3KSwgPT0sIEZBTFNFKTsK
KworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VVcmwodXJsRm9yUmVzb3VyY2UoImZpbGUt
d2l0aC12aWRlby5odG1sIikpOworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaSh0ZXN0LT5t
X3dlYlZpZXcsIHJlc291cmNlVXJsLmdldCgpKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmlu
aXNoZWQoKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQod2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdf
YXVkaW8odGVzdC0+bV93ZWJWaWV3KSwgPT0sIEZBTFNFKTsKKworICAgIHdlYmtpdF93ZWJfdmll
d19ydW5famF2YXNjcmlwdCh0ZXN0LT5tX3dlYlZpZXcsICJwbGF5VmlkZW8oKTsiLCBudWxscHRy
LCBudWxscHRyLCBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxJc1BsYXlpbmdBdWRpb0No
YW5nZWQoKTsKKworICAgIGdfYXNzZXJ0X2NtcGludCh3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWlu
Z19hdWRpbyh0ZXN0LT5tX3dlYlZpZXcpLCA9PSwgVFJVRSk7Cit9CisKIHN0YXRpYyB2b2lkIHNl
cnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNv
bnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCosIGdwb2ludGVy
KQogewogICAgIGlmIChtZXNzYWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7CkBAIC03
MzMsNiArNzYyLDcgQEAgdm9pZCBiZWZvcmVBbGwoKQogICAgIFNuYXBzaG90V2ViVmlld1Rlc3Q6
OmFkZCgiV2ViS2l0V2ViVmlldyIsICJzbmFwc2hvdCIsIHRlc3RXZWJWaWV3U25hcHNob3QpOwog
ICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAicGFnZS12aXNpYmlsaXR5Iiwg
dGVzdFdlYlZpZXdQYWdlVmlzaWJpbGl0eSk7CiAgICAgTm90aWZpY2F0aW9uV2ViVmlld1Rlc3Q6
OmFkZCgiV2ViS2l0V2ViVmlldyIsICJub3RpZmljYXRpb24iLCB0ZXN0V2ViVmlld05vdGlmaWNh
dGlvbik7CisgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJpcy1wbGF5aW5n
LWF1ZGlvIiwgdGVzdFdlYlZpZXdJc1BsYXlpbmdBdWRpbyk7CiB9CiAKIHZvaWQgYWZ0ZXJBbGwo
KQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3
VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0
LmNwcAppbmRleCBlYThiNmIzZmViMDUyZTg3NjYwMzdlNjE3YzIzMTY3M2YwYzFjM2EzLi43OTE1
MWRhOGFkMjBlMzE4MzlkOTJlZWJiZTQwZGUzNmUzMmRlNTg1IDEwMDY0NAotLS0gYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Ub29scy9U
ZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcApAQCAtMTkzLDYgKzE5
MywxOCBAQCB2b2lkIFdlYlZpZXdUZXN0Ojp3YWl0VW50aWxMb2FkRmluaXNoZWQoKQogICAgIGdf
bWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKIH0KIAorc3RhdGljIHZvaWQgaXNQbGF5aW5nQXVk
aW9DaGFuZ2VkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEdQYXJhbVNwZWMqLCBXZWJWaWV3VGVz
dCogdGVzdCkKK3sKKyAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMod2Vi
VmlldywgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oaXNQbGF5aW5nQXVkaW9DaGFuZ2VkKSwgdGVz
dCk7CisgICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0LT5tX21haW5Mb29wKTsKK30KKwordm9pZCBX
ZWJWaWV3VGVzdDo6d2FpdFVudGlsSXNQbGF5aW5nQXVkaW9DaGFuZ2VkKCkKK3sKKyAgICBnX3Np
Z25hbF9jb25uZWN0KG1fd2ViVmlldywgIm5vdGlmeTo6aXMtcGxheWluZy1hdWRpbyIsIEdfQ0FM
TEJBQ0soaXNQbGF5aW5nQXVkaW9DaGFuZ2VkKSwgdGhpcyk7CisgICAgZ19tYWluX2xvb3BfcnVu
KG1fbWFpbkxvb3ApOworfQorCiBzdGF0aWMgdm9pZCB0aXRsZUNoYW5nZWQoV2ViS2l0V2ViVmll
dyogd2ViVmlldywgR1BhcmFtU3BlYyosIFdlYlZpZXdUZXN0KiB0ZXN0KQogewogICAgIGlmICgh
dGVzdC0+bV9leHBlY3RlZFRpdGxlLmlzTnVsbCgpICYmIHRlc3QtPm1fZXhwZWN0ZWRUaXRsZSAh
PSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RpdGxlKHdlYlZpZXcpKQpkaWZmIC0tZ2l0IGEvVG9vbHMv
VGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oIGIvVG9vbHMvVGVzdFdl
YktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oCmluZGV4IDJjMzY5MmE1NjJlNTc0
ODBiOTBiN2ZmZmVmNzU2Mzk4MmRiMjZhM2EuLjdlMTdkMGRjMWE0Njg2ZDA2ZDIyNGQ3YTk3ZjNl
MWUzZDgwMzIyYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJH
dGsvV2ViVmlld1Rlc3QuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3Rr
L1dlYlZpZXdUZXN0LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2FpdFVu
dGlsTG9hZEZpbmlzaGVkKCk7CiAgICAgdm9pZCB3YWl0VW50aWxUaXRsZUNoYW5nZWRUbyhjb25z
dCBjaGFyKiBleHBlY3RlZFRpdGxlKTsKICAgICB2b2lkIHdhaXRVbnRpbFRpdGxlQ2hhbmdlZCgp
OworICAgIHZvaWQgd2FpdFVudGlsSXNQbGF5aW5nQXVkaW9DaGFuZ2VkKCk7CiAgICAgdm9pZCBz
aG93SW5XaW5kb3coR3RrV2luZG93VHlwZSA9IEdUS19XSU5ET1dfUE9QVVApOwogICAgIHZvaWQg
c2hvd0luV2luZG93QW5kV2FpdFVudGlsTWFwcGVkKEd0a1dpbmRvd1R5cGUgPSBHVEtfV0lORE9X
X1BPUFVQKTsKICAgICB2b2lkIHJlc2l6ZVZpZXcoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243430</attachid>
            <date>2014-12-17 01:40:56 -0800</date>
            <delta_ts>2014-12-17 09:55:59 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138918-20141217114145.patch</filename>
            <type>text/plain</type>
            <size>12939</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzllNzJkYmY2MGY0ZmNl
NDhjZDA4ZGExNTMyM2Y4MDA4NzQ4MzVlMi4uZjAxZDJkYjFiOGNlYmZiOWU3ZDAzNTY4MmM3YTA0
OTM4YTg2YjM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTEyLTE3ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
SW1wbGVtZW50IHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODkxOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudHMgd2Via2l0X3dl
Yl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oKSwgYW5kIG92ZXJyaWRlcworICAgICAgICBVSUNsaWVu
dDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoKSB0byBiZSBhYmxlIHRvIGVtaXQgY2hhbmdlCisg
ICAgICAgIG5vdGlmaWNhdGlvbiBzaWduYWxzIGZvciB0aGUgbmV3IFdlYktpdFdlYlZpZXc6Omlz
LXBsYXlpbmctYXVkaW8KKyAgICAgICAgcHJvcGVydHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgIChpc1BsYXlpbmdBdWRpb0RpZENo
YW5nZSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcu
Y3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0lzUGxheWluZ0F1ZGlvQ2hhbmdlZCk6IEhlbHBl
ciBmdW5jdGlvbiB0byBlbWl0IHRoZQorICAgICAgICBlbWl0IHRoZSBub3RpZnk6OmlzLXBsYXlp
bmctYXVkaW8gc2lnbmFsIHdoZW4gbmVlZGVkLgorICAgICAgICAod2Via2l0V2ViVmlld0dldFBy
b3BlcnR5KTogSGFuZGxlIHRoZSBXZWJLaXRXZWJWaWV3Ojppcy1wbGF5aW5nLWF1ZGlvCisgICAg
ICAgIHByb3BlcnR5LgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOiBJbnN0
YWxsIHRoZQorICAgICAgICBXZWJLaXRXZWJWaWV3Ojppcy1wbGF5aW5nLWF1ZGlvIHByb3BlcnR5
LgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8pOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQKKyAgICAgICAgd2Vi
a2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oKSB0byB0aGUgbGlzdCBvZiBwdWJsaWMgQVBJ
CisgICAgICAgIGZ1bmN0aW9ucy4KKwogMjAxNC0xMi0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlv
bnNHVEsuY21ha2UgYW5kIE5FV1MgZm9yIDIuNy4zIHJlbGVhc2UuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKaW5kZXggZTBkY2Vk
MWM0MzdiZGQyYmEwZTAxZDE4YTA0MDQ4NTQ5NjFlNjM0ZS4uYzhiN2Q1NmU2MTRjODBlZWM5MzVm
ZjM5ZmRlZTZhZmQxNWI4ZmQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcApAQCAtMTg2LDYgKzE4NiwxMSBAQCBwcml2YXRl
OgogICAgICAgICB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChtX3dlYlZpZXcpOwogICAgIH0KIAor
ICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZShXZWJQYWdlUHJveHkmIHBh
Z2UpIG92ZXJyaWRlCisgICAgeworICAgICAgICB3ZWJraXRXZWJWaWV3SXNQbGF5aW5nQXVkaW9D
aGFuZ2VkKG1fd2ViVmlldyk7CisgICAgfQorCiAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3LmNwcAppbmRleCA5ZmJhYTcxZDRhNDFiYzM2MWRhY2VkNmNkMGI5MDI4MWEyYThmMzA1
Li41MzAzYTMwN2IwOTc3YmZjNWIxMDBmNjJhY2Y4ZTJiOWM0ODU5NjI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMTQ4
LDcgKzE0OCw4IEBAIGVudW0gewogICAgIFBST1BfRkFWSUNPTiwKICAgICBQUk9QX1VSSSwKICAg
ICBQUk9QX1pPT01fTEVWRUwsCi0gICAgUFJPUF9JU19MT0FESU5HCisgICAgUFJPUF9JU19MT0FE
SU5HLAorICAgIFBST1BfSVNfUExBWUlOR19BVURJTwogfTsKIAogdHlwZWRlZiBIYXNoTWFwPHVp
bnQ2NF90LCBHUmVmUHRyPFdlYktpdFdlYlJlc291cmNlPiA+IExvYWRpbmdSZXNvdXJjZXNNYXA7
CkBAIC0yMzAsNiArMjMxLDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdTZXRJc0xvYWRp
bmcoV2ViS2l0V2ViVmlldyogd2ViVmlldywgYm9vbCBpc0xvYWRpbmcpCiAgICAgZ19vYmplY3Rf
bm90aWZ5KEdfT0JKRUNUKHdlYlZpZXcpLCAiaXMtbG9hZGluZyIpOwogfQogCit2b2lkIHdlYmtp
dFdlYlZpZXdJc1BsYXlpbmdBdWRpb0NoYW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sK
KyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJpcy1wbGF5aW5nLWF1ZGlv
Iik7Cit9CisKIGNsYXNzIFBhZ2VMb2FkU3RhdGVPYnNlcnZlciBmaW5hbCA6IHB1YmxpYyBQYWdl
TG9hZFN0YXRlOjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgUGFnZUxvYWRTdGF0ZU9ic2VydmVy
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCkBAIC03MjEsNiArNzI3LDkgQEAgc3RhdGljIHZvaWQg
d2Via2l0V2ViVmlld0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBH
VmFsdWUqIHZhbHUKICAgICBjYXNlIFBST1BfSVNfTE9BRElORzoKICAgICAgICAgZ192YWx1ZV9z
ZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcod2ViVmlldykpOwog
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfSVNfUExBWUlOR19BVURJTzoKKyAgICAgICAg
Z192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVk
aW8od2ViVmlldykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09C
SkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7
CiAgICAgfQpAQCAtOTMyLDYgKzk0MSwyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
Y2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmll
dzo6aXMtcGxheWluZy1hdWRpbzoKKyAgICAgKgorICAgICAqIFdoZXRoZXIgdGhlICNXZWJLaXRX
ZWJWaWV3IGlzIGN1cnJlbnRseSBwbGF5aW5nIGF1ZGlvIGZyb20gYSBwYWdlLgorICAgICAqIFRo
aXMgcHJvcGVydHkgYmVjb21lcyAlVFJVRSBhcyBzb29uIGFzIHdlYiBjb250ZW50IHN0YXJ0cyBw
bGF5aW5nIGFueQorICAgICAqIGtpbmQgb2YgYXVkaW8uIFdoZW4gYSBwYWdlIGlzIG5vIGxvbmdl
ciBwbGF5aW5nIGFueSBraW5kIG9mIHNvdW5kLAorICAgICAqIHRoZSBwcm9wZXJ0eSBpcyBzZXQg
YmFjayB0byAlRkFMU0UuCisgICAgICoKKyAgICAgKiBTaW5jZTogMi44CisgICAgICovCisgICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ09iamVjdENsYXNzLAor
ICAgICAgICBQUk9QX0lTX1BMQVlJTkdfQVVESU8sCisgICAgICAgIGdfcGFyYW1fc3BlY19ib29s
ZWFuKAorICAgICAgICAgICAgImlzLXBsYXlpbmctYXVkaW8iLAorICAgICAgICAgICAgIklzIFBs
YXlpbmcgQXVkaW8iLAorICAgICAgICAgICAgXygiV2hldGhlciB0aGUgdmlldyBpcyBwbGF5aW5n
IGF1ZGlvIiksCisgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9S
RUFEQUJMRSkpOworCisgICAgLyoqCiAgICAgICogV2ViS2l0V2ViVmlldzo6bG9hZC1jaGFuZ2Vk
OgogICAgICAqIEB3ZWJfdmlldzogdGhlICNXZWJLaXRXZWJWaWV3IG9uIHdoaWNoIHRoZSBzaWdu
YWwgaXMgZW1pdHRlZAogICAgICAqIEBsb2FkX2V2ZW50OiB0aGUgI1dlYktpdExvYWRFdmVudApA
QCAtMjQ1NCw2ICsyNDgzLDI3IEBAIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5n
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB9CiAKIC8qKgorICogd2Via2l0X3dlYl92aWV3X2lz
X3BsYXlpbmdfYXVkaW86CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqCisgKiBH
ZXRzIHRoZSB2YWx1ZSBvZiB0aGUgI1dlYktpdFdlYlZpZXc6OmlzLXBsYXlpbmctYXVkaW8gcHJv
cGVydHkuCisgKiBZb3UgY2FuIG1vbml0b3Igd2hlbiBhIHBhZ2UgaW4gYSAjV2ViS2l0V2ViVmll
dyBpcyBwbGF5aW5nIGF1ZGlvIGJ5CisgKiBjb25uZWN0aW5nIHRvIHRoZSBub3RpZnk6OmlzLXBs
YXlpbmctYXVkaW8gc2lnbmFsIG9mIEB3ZWJfdmlldy4gVGhpcworICogaXMgdXNlZnVsIHdoZW4g
dGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHByb3ZpZGUgdmlzdWFsIGZlZWRiYWNrIHdoZW4gYQor
ICogcGFnZSBpcyBwcm9kdWNpbmcgc291bmQuCisgKgorICogUmV0dXJuczogJVRSVUUgaWYgYSBw
YWdlIGluIEB3ZWJfdmlldyBpcyBwbGF5aW5nIGF1ZGlvIG9yICVGQUxTRSBvdGhlcndpc2UuCisg
KgorICogU2luY2U6IDIuOAorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWlu
Z19hdWRpbyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOworCisgICAgcmV0dXJuIGdl
dFBhZ2Uod2ViVmlldyktPmlzUGxheWluZ0F1ZGlvKCk7Cit9CisKKy8qKgogICogd2Via2l0X3dl
Yl92aWV3X2dvX2JhY2s6CiAgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKICAqCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXgg
ZDUzNTQ5ZTIzOGE0NzRjYzJhMjYxYjIzMzM2YTFmM2Q3ODM4ZWM1NC4uZGEzZjE2NWZkYjZmMDM0
NzYwMTU4ZjdiNzY4N2Y1MGE1MDNjNGY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaApAQCAtMzA1LDYgKzMwNSw5IEBAIHdlYmtpdF93
ZWJfdmlld19zdG9wX2xvYWRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZp
ZXcKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3
KTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVk
aW8gICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3Zp
ZXcpOworCiBXRUJLSVRfQVBJIGd1aW50NjQKIHdlYmtpdF93ZWJfdmlld19nZXRfcGFnZV9pZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92
aWV3KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdQcml2YXRlLmgKaW5kZXggY2VlNzE2YTU1ZTY4ZDViNzJmNWRjNTg2MzRhZGUx
YTQ3ZWZkYWM2ZC4uMDM4MTRlYWE4ZDA0ZTNmYzhiN2VhYTllOGE2NjM5NTUxNmM2OWFiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3UHJpdmF0ZS5oCkBAIC02MCw1ICs2MCw2IEBAIHZvaWQgd2Via2l0V2ViVmlld0luc2VjdXJl
Q29udGVudERldGVjdGVkKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRJbnNlY3VyZUNvbnRlbnRFCiBi
b29sIHdlYmtpdFdlYlZpZXdFbWl0U2hvd05vdGlmaWNhdGlvbihXZWJLaXRXZWJWaWV3KiwgV2Vi
S2l0Tm90aWZpY2F0aW9uKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdFbWl0Q2xvc2VOb3RpZmljYXRp
b24oV2ViS2l0V2ViVmlldyosIFdlYktpdE5vdGlmaWNhdGlvbiopOwogdm9pZCB3ZWJraXRXZWJW
aWV3V2ViUHJvY2Vzc0NyYXNoZWQoV2ViS2l0V2ViVmlldyopOwordm9pZCB3ZWJraXRXZWJWaWV3
SXNQbGF5aW5nQXVkaW9DaGFuZ2VkKFdlYktpdFdlYlZpZXcqKTsKIAogI2VuZGlmIC8vIFdlYktp
dFdlYlZpZXdQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CmluZGV4IDE1YzRiY2Rl
OThkMjdhZTU3N2ZlZDNiOGJjNmJlNDg5M2RiZmMxZWMuLmYzNjZkMGEwMjgxNDM2OTU5ZWNmNjhk
YjE4ZDAyM2I2Njk3OGIyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApAQCAtMTY3LDYg
KzE2Nyw3IEBAIHdlYmtpdF93ZWJfdmlld19yZWxvYWQKIHdlYmtpdF93ZWJfdmlld19yZWxvYWRf
YnlwYXNzX2NhY2hlCiB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nCiB3ZWJraXRfd2ViX3Zp
ZXdfaXNfbG9hZGluZword2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8KIHdlYmtpdF93
ZWJfdmlld19nZXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3MKIHdlYmtpdF93ZWJfdmlld19nZXRf
Y3VzdG9tX2NoYXJzZXQKIHdlYmtpdF93ZWJfdmlld19zZXRfY3VzdG9tX2NoYXJzZXQKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MmIxNWU0Yzhj
MzMwNjM2MzcxMTU3MmFiMzQyYjQ3YWVmNTA1YzQ1Li4wZWZmODU3Zjg2MDk1YTFjNjEwNDk4YjAz
MzJjMTlhOTlhNTk4OThhIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjMgQEAKKzIwMTQtMTItMTcgIEFkcmlhbiBQZXJleiBkZSBD
YXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBJbXBsZW1lbnQgd2Vi
a2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4OTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgY2FzZSBjYXNlIGZvciB3ZWJraXRfd2Vi
X3ZpZXdfaXNfcGxheWluZ19hdWRpbygpIGFuZCB0aGUKKyAgICAgICAgV2ViS2l0V2ViVmlldzo6
aXMtcGxheWluZy1hdWRpbyBwcm9wZXJ0eS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh1cmxGb3JSZXNv
dXJjZSk6IFV0aWxpdHkgZnVuY3Rpb24gdG8gZ2V0IFVSTHMgcG9pbnRpbmcgdG8gcmVzb3VyY2Vz
CisgICAgICAgIHVuZGVyIHRoZSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvIGRp
cmVjdG9yeS4KKyAgICAgICAgKHRlc3RXZWJWaWV3SXNQbGF5aW5nQXVkaW8pOiBBZGRlZC4KKyAg
ICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0
ay9XZWJWaWV3VGVzdC5jcHA6CisgICAgICAgIChpc1BsYXlpbmdBdWRpb0NoYW5nZWQpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYlZpZXdUZXN0Ojp3YWl0VW50aWxJc1BsYXlpbmdBdWRpb0NoYW5nZWQp
OiBBZGRlZC4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdU
ZXN0Lmg6CisKIDIwMTQtMTItMTYgIEdyemVnb3J6IEN6YWprb3dza2kgIDxnLmN6YWprb3dza2lA
c2Ftc3VuZy5jb20+CiAKICAgICAgICAgW0VGTF0gQWRkIGxvZ2dpbmcgZG9tYWluIGZvciBNaW5p
QnJvd3NlcgpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3Rr
L1Rlc3RXZWJLaXRXZWJWaWV3LmNwcCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0
Mkd0ay9UZXN0V2ViS2l0V2ViVmlldy5jcHAKaW5kZXggODQyMTE0ZjMyYTU1ZjExODU4ZGFhOTI1
NmJlZWI3ZWU2MWM2MjVjNS4uZTlmYTgxMGE1MmYwY2RiMDIwZjk4ZGIxOWE5NmIzYmNjNmRiZjMw
OCAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RX
ZWJLaXRXZWJWaWV3LmNwcAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJH
dGsvVGVzdFdlYktpdFdlYlZpZXcuY3BwCkBAIC03MDIsNiArNzAyLDM1IEBAIHN0YXRpYyB2b2lk
IHRlc3RXZWJWaWV3Tm90aWZpY2F0aW9uKE5vdGlmaWNhdGlvbldlYlZpZXdUZXN0KiB0ZXN0LCBn
Y29uc3Rwb2ludGVyCiAgICAgZ19hc3NlcnQodGVzdC0+bV9ldmVudCA9PSBOb3RpZmljYXRpb25X
ZWJWaWV3VGVzdDo6Q2FuY2VsbGVkKTsKIH0KIAorc3RhdGljIGNoYXIqIHVybEZvclJlc291cmNl
KGNvbnN0IGdjaGFyKiBuYW1lKQoreworICAgIGNvbnN0IGNoYXIqIHZhbHVlID0gZ19nZXRlbnYo
IlRFU1RfV0VCS0lUX0FQSV9XRUJLSVQyX1JFU09VUkNFU19QQVRIIik7CisgICAgaWYgKCF2YWx1
ZSkgeworICAgICAgICBnX3ByaW50ZXJyKCJURVNUX1dFQktJVF9BUElfV0VCS0lUMl9SRVNPVVJD
RVNfUEFUSCBlbnZpcm9ubWVudCB2YXJpYWJsZSBub3QgZm91bmRcbiIpOworICAgICAgICBleGl0
KDEpOworICAgIH0KKyAgICBnc2l6ZSBieXRlc1dyaXR0ZW47CisgICAgR1VuaXF1ZVB0cjxjaGFy
PiB0ZXN0UmVzb3VyY2VzUGF0aChnX2ZpbGVuYW1lX3RvX3V0ZjgodmFsdWUsIC0xLCAwLCAmYnl0
ZXNXcml0dGVuLCAwKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiBmdWxsUGF0aChnX2J1aWxkX2Zp
bGVuYW1lKHRlc3RSZXNvdXJjZXNQYXRoLmdldCgpLCBuYW1lLCBudWxscHRyKSk7CisgICAgcmV0
dXJuIGdfc3RyZHVwX3ByaW50ZigiZmlsZTovLyVzIiwgZnVsbFBhdGguZ2V0KCkpOworfQorCitz
dGF0aWMgdm9pZCB0ZXN0V2ViVmlld0lzUGxheWluZ0F1ZGlvKFdlYlZpZXdUZXN0KiB0ZXN0LCBn
Y29uc3Rwb2ludGVyKQoreworICAgIC8vIEluaXRpYWxseSwgd2ViIHZpZXdzIHNob3VsZCBhbHdh
eXMgcmVwb3J0IG5vIGF1ZGlvIGJlaW5nIHBsYXllZC4KKyAgICBnX2Fzc2VydF9jbXBpbnQod2Vi
a2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8odGVzdC0+bV93ZWJWaWV3KSwgPT0sIEZBTFNF
KTsKKworICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VVcmwodXJsRm9yUmVzb3VyY2UoImZp
bGUtd2l0aC12aWRlby5odG1sIikpOworICAgIHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaSh0ZXN0
LT5tX3dlYlZpZXcsIHJlc291cmNlVXJsLmdldCgpKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2Fk
RmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydF9jbXBpbnQod2Via2l0X3dlYl92aWV3X2lzX3BsYXlp
bmdfYXVkaW8odGVzdC0+bV93ZWJWaWV3KSwgPT0sIEZBTFNFKTsKKworICAgIHdlYmtpdF93ZWJf
dmlld19ydW5famF2YXNjcmlwdCh0ZXN0LT5tX3dlYlZpZXcsICJwbGF5VmlkZW8oKTsiLCBudWxs
cHRyLCBudWxscHRyLCBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxJc1BsYXlpbmdBdWRp
b0NoYW5nZWQoKTsKKworICAgIGdfYXNzZXJ0X2NtcGludCh3ZWJraXRfd2ViX3ZpZXdfaXNfcGxh
eWluZ19hdWRpbyh0ZXN0LT5tX3dlYlZpZXcpLCA9PSwgVFJVRSk7Cit9CisKIHN0YXRpYyB2b2lk
IHNlcnZlckNhbGxiYWNrKFNvdXBTZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3NhZ2Us
IGNvbnN0IGNoYXIqIHBhdGgsIEdIYXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCosIGdwb2lu
dGVyKQogewogICAgIGlmIChtZXNzYWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7CkBA
IC03MzMsNiArNzYyLDcgQEAgdm9pZCBiZWZvcmVBbGwoKQogICAgIFNuYXBzaG90V2ViVmlld1Rl
c3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJzbmFwc2hvdCIsIHRlc3RXZWJWaWV3U25hcHNob3Qp
OwogICAgIFdlYlZpZXdUZXN0OjphZGQoIldlYktpdFdlYlZpZXciLCAicGFnZS12aXNpYmlsaXR5
IiwgdGVzdFdlYlZpZXdQYWdlVmlzaWJpbGl0eSk7CiAgICAgTm90aWZpY2F0aW9uV2ViVmlld1Rl
c3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJub3RpZmljYXRpb24iLCB0ZXN0V2ViVmlld05vdGlm
aWNhdGlvbik7CisgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJpcy1wbGF5
aW5nLWF1ZGlvIiwgdGVzdFdlYlZpZXdJc1BsYXlpbmdBdWRpbyk7CiB9CiAKIHZvaWQgYWZ0ZXJB
bGwoKQpkaWZmIC0tZ2l0IGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJW
aWV3VGVzdC5jcHAgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdU
ZXN0LmNwcAppbmRleCBlYThiNmIzZmViMDUyZTg3NjYwMzdlNjE3YzIzMTY3M2YwYzFjM2EzLi43
OTE1MWRhOGFkMjBlMzE4MzlkOTJlZWJiZTQwZGUzNmUzMmRlNTg1IDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcAorKysgYi9Ub29s
cy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmNwcApAQCAtMTkzLDYg
KzE5MywxOCBAQCB2b2lkIFdlYlZpZXdUZXN0Ojp3YWl0VW50aWxMb2FkRmluaXNoZWQoKQogICAg
IGdfbWFpbl9sb29wX3J1bihtX21haW5Mb29wKTsKIH0KIAorc3RhdGljIHZvaWQgaXNQbGF5aW5n
QXVkaW9DaGFuZ2VkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcsIEdQYXJhbVNwZWMqLCBXZWJWaWV3
VGVzdCogdGVzdCkKK3sKKyAgICBnX3NpZ25hbF9oYW5kbGVyc19kaXNjb25uZWN0X2J5X2Z1bmMo
d2ViVmlldywgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oaXNQbGF5aW5nQXVkaW9DaGFuZ2VkKSwg
dGVzdCk7CisgICAgZ19tYWluX2xvb3BfcXVpdCh0ZXN0LT5tX21haW5Mb29wKTsKK30KKwordm9p
ZCBXZWJWaWV3VGVzdDo6d2FpdFVudGlsSXNQbGF5aW5nQXVkaW9DaGFuZ2VkKCkKK3sKKyAgICBn
X3NpZ25hbF9jb25uZWN0KG1fd2ViVmlldywgIm5vdGlmeTo6aXMtcGxheWluZy1hdWRpbyIsIEdf
Q0FMTEJBQ0soaXNQbGF5aW5nQXVkaW9DaGFuZ2VkKSwgdGhpcyk7CisgICAgZ19tYWluX2xvb3Bf
cnVuKG1fbWFpbkxvb3ApOworfQorCiBzdGF0aWMgdm9pZCB0aXRsZUNoYW5nZWQoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldywgR1BhcmFtU3BlYyosIFdlYlZpZXdUZXN0KiB0ZXN0KQogewogICAgIGlm
ICghdGVzdC0+bV9leHBlY3RlZFRpdGxlLmlzTnVsbCgpICYmIHRlc3QtPm1fZXhwZWN0ZWRUaXRs
ZSAhPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3RpdGxlKHdlYlZpZXcpKQpkaWZmIC0tZ2l0IGEvVG9v
bHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oCmluZGV4IDJjMzY5MmE1NjJl
NTc0ODBiOTBiN2ZmZmVmNzU2Mzk4MmRiMjZhM2EuLjdlMTdkMGRjMWE0Njg2ZDA2ZDIyNGQ3YTk3
ZjNlMWUzZDgwMzIyYjcgMTAwNjQ0Ci0tLSBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktp
dDJHdGsvV2ViVmlld1Rlc3QuaAorKysgYi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQy
R3RrL1dlYlZpZXdUZXN0LmgKQEAgLTQ3LDYgKzQ3LDcgQEAgcHVibGljOgogICAgIHZvaWQgd2Fp
dFVudGlsTG9hZEZpbmlzaGVkKCk7CiAgICAgdm9pZCB3YWl0VW50aWxUaXRsZUNoYW5nZWRUbyhj
b25zdCBjaGFyKiBleHBlY3RlZFRpdGxlKTsKICAgICB2b2lkIHdhaXRVbnRpbFRpdGxlQ2hhbmdl
ZCgpOworICAgIHZvaWQgd2FpdFVudGlsSXNQbGF5aW5nQXVkaW9DaGFuZ2VkKCk7CiAgICAgdm9p
ZCBzaG93SW5XaW5kb3coR3RrV2luZG93VHlwZSA9IEdUS19XSU5ET1dfUE9QVVApOwogICAgIHZv
aWQgc2hvd0luV2luZG93QW5kV2FpdFVudGlsTWFwcGVkKEd0a1dpbmRvd1R5cGUgPSBHVEtfV0lO
RE9XX1BPUFVQKTsKICAgICB2b2lkIHJlc2l6ZVZpZXcoaW50IHdpZHRoLCBpbnQgaGVpZ2h0KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243440</attachid>
            <date>2014-12-17 09:56:10 -0800</date>
            <delta_ts>2014-12-18 06:00:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138918-20141217195659.patch</filename>
            <type>text/plain</type>
            <size>14474</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3MzU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzllNzJkYmY2MGY0ZmNl
NDhjZDA4ZGExNTMyM2Y4MDA4NzQ4MzVlMi4uZjAxZDJkYjFiOGNlYmZiOWU3ZDAzNTY4MmM3YTA0
OTM4YTg2YjM5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTEyLTE3ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
SW1wbGVtZW50IHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODkxOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudHMgd2Via2l0X3dl
Yl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oKSwgYW5kIG92ZXJyaWRlcworICAgICAgICBVSUNsaWVu
dDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoKSB0byBiZSBhYmxlIHRvIGVtaXQgY2hhbmdlCisg
ICAgICAgIG5vdGlmaWNhdGlvbiBzaWduYWxzIGZvciB0aGUgbmV3IFdlYktpdFdlYlZpZXc6Omlz
LXBsYXlpbmctYXVkaW8KKyAgICAgICAgcHJvcGVydHkuCisKKyAgICAgICAgKiBVSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgIChpc1BsYXlpbmdBdWRpb0RpZENo
YW5nZSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcu
Y3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0lzUGxheWluZ0F1ZGlvQ2hhbmdlZCk6IEhlbHBl
ciBmdW5jdGlvbiB0byBlbWl0IHRoZQorICAgICAgICBlbWl0IHRoZSBub3RpZnk6OmlzLXBsYXlp
bmctYXVkaW8gc2lnbmFsIHdoZW4gbmVlZGVkLgorICAgICAgICAod2Via2l0V2ViVmlld0dldFBy
b3BlcnR5KTogSGFuZGxlIHRoZSBXZWJLaXRXZWJWaWV3Ojppcy1wbGF5aW5nLWF1ZGlvCisgICAg
ICAgIHByb3BlcnR5LgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOiBJbnN0
YWxsIHRoZQorICAgICAgICBXZWJLaXRXZWJWaWV3Ojppcy1wbGF5aW5nLWF1ZGlvIHByb3BlcnR5
LgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8pOiBBZGRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQKKyAgICAgICAgd2Vi
a2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oKSB0byB0aGUgbGlzdCBvZiBwdWJsaWMgQVBJ
CisgICAgICAgIGZ1bmN0aW9ucy4KKwogMjAxNC0xMi0xNiAgQ2FybG9zIEdhcmNpYSBDYW1wb3Mg
IDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gVXBkYXRlIE9wdGlv
bnNHVEsuY21ha2UgYW5kIE5FV1MgZm9yIDIuNy4zIHJlbGVhc2UuCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAgYi9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHAKaW5kZXggZTBkY2Vk
MWM0MzdiZGQyYmEwZTAxZDE4YTA0MDQ4NTQ5NjFlNjM0ZS4uYzhiN2Q1NmU2MTRjODBlZWM5MzVm
ZjM5ZmRlZTZhZmQxNWI4ZmQ0NSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0VUlDbGllbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcApAQCAtMTg2LDYgKzE4NiwxMSBAQCBwcml2YXRl
OgogICAgICAgICB3ZWJraXRXZWJWaWV3UnVuQXNNb2RhbChtX3dlYlZpZXcpOwogICAgIH0KIAor
ICAgIHZpcnR1YWwgdm9pZCBpc1BsYXlpbmdBdWRpb0RpZENoYW5nZShXZWJQYWdlUHJveHkmIHBh
Z2UpIG92ZXJyaWRlCisgICAgeworICAgICAgICB3ZWJraXRXZWJWaWV3SXNQbGF5aW5nQXVkaW9D
aGFuZ2VkKG1fd2ViVmlldyk7CisgICAgfQorCiAgICAgV2ViS2l0V2ViVmlldyogbV93ZWJWaWV3
OwogfTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3LmNwcAppbmRleCA5ZmJhYTcxZDRhNDFiYzM2MWRhY2VkNmNkMGI5MDI4MWEyYThmMzA1
Li41MzAzYTMwN2IwOTc3YmZjNWIxMDBmNjJhY2Y4ZTJiOWM0ODU5NjI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcApAQCAtMTQ4
LDcgKzE0OCw4IEBAIGVudW0gewogICAgIFBST1BfRkFWSUNPTiwKICAgICBQUk9QX1VSSSwKICAg
ICBQUk9QX1pPT01fTEVWRUwsCi0gICAgUFJPUF9JU19MT0FESU5HCisgICAgUFJPUF9JU19MT0FE
SU5HLAorICAgIFBST1BfSVNfUExBWUlOR19BVURJTwogfTsKIAogdHlwZWRlZiBIYXNoTWFwPHVp
bnQ2NF90LCBHUmVmUHRyPFdlYktpdFdlYlJlc291cmNlPiA+IExvYWRpbmdSZXNvdXJjZXNNYXA7
CkBAIC0yMzAsNiArMjMxLDExIEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdTZXRJc0xvYWRp
bmcoV2ViS2l0V2ViVmlldyogd2ViVmlldywgYm9vbCBpc0xvYWRpbmcpCiAgICAgZ19vYmplY3Rf
bm90aWZ5KEdfT0JKRUNUKHdlYlZpZXcpLCAiaXMtbG9hZGluZyIpOwogfQogCit2b2lkIHdlYmtp
dFdlYlZpZXdJc1BsYXlpbmdBdWRpb0NoYW5nZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sK
KyAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qod2ViVmlldyksICJpcy1wbGF5aW5nLWF1ZGlv
Iik7Cit9CisKIGNsYXNzIFBhZ2VMb2FkU3RhdGVPYnNlcnZlciBmaW5hbCA6IHB1YmxpYyBQYWdl
TG9hZFN0YXRlOjpPYnNlcnZlciB7CiBwdWJsaWM6CiAgICAgUGFnZUxvYWRTdGF0ZU9ic2VydmVy
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCkBAIC03MjEsNiArNzI3LDkgQEAgc3RhdGljIHZvaWQg
d2Via2l0V2ViVmlld0dldFByb3BlcnR5KEdPYmplY3QqIG9iamVjdCwgZ3VpbnQgcHJvcElkLCBH
VmFsdWUqIHZhbHUKICAgICBjYXNlIFBST1BfSVNfTE9BRElORzoKICAgICAgICAgZ192YWx1ZV9z
ZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcod2ViVmlldykpOwog
ICAgICAgICBicmVhazsKKyAgICBjYXNlIFBST1BfSVNfUExBWUlOR19BVURJTzoKKyAgICAgICAg
Z192YWx1ZV9zZXRfYm9vbGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVk
aW8od2ViVmlldykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09C
SkVDVF9XQVJOX0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7
CiAgICAgfQpAQCAtOTMyLDYgKzk0MSwyNiBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdf
Y2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAg
IFdFQktJVF9QQVJBTV9SRUFEQUJMRSkpOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmll
dzo6aXMtcGxheWluZy1hdWRpbzoKKyAgICAgKgorICAgICAqIFdoZXRoZXIgdGhlICNXZWJLaXRX
ZWJWaWV3IGlzIGN1cnJlbnRseSBwbGF5aW5nIGF1ZGlvIGZyb20gYSBwYWdlLgorICAgICAqIFRo
aXMgcHJvcGVydHkgYmVjb21lcyAlVFJVRSBhcyBzb29uIGFzIHdlYiBjb250ZW50IHN0YXJ0cyBw
bGF5aW5nIGFueQorICAgICAqIGtpbmQgb2YgYXVkaW8uIFdoZW4gYSBwYWdlIGlzIG5vIGxvbmdl
ciBwbGF5aW5nIGFueSBraW5kIG9mIHNvdW5kLAorICAgICAqIHRoZSBwcm9wZXJ0eSBpcyBzZXQg
YmFjayB0byAlRkFMU0UuCisgICAgICoKKyAgICAgKiBTaW5jZTogMi44CisgICAgICovCisgICAg
Z19vYmplY3RfY2xhc3NfaW5zdGFsbF9wcm9wZXJ0eSgKKyAgICAgICAgZ09iamVjdENsYXNzLAor
ICAgICAgICBQUk9QX0lTX1BMQVlJTkdfQVVESU8sCisgICAgICAgIGdfcGFyYW1fc3BlY19ib29s
ZWFuKAorICAgICAgICAgICAgImlzLXBsYXlpbmctYXVkaW8iLAorICAgICAgICAgICAgIklzIFBs
YXlpbmcgQXVkaW8iLAorICAgICAgICAgICAgXygiV2hldGhlciB0aGUgdmlldyBpcyBwbGF5aW5n
IGF1ZGlvIiksCisgICAgICAgICAgICBGQUxTRSwKKyAgICAgICAgICAgIFdFQktJVF9QQVJBTV9S
RUFEQUJMRSkpOworCisgICAgLyoqCiAgICAgICogV2ViS2l0V2ViVmlldzo6bG9hZC1jaGFuZ2Vk
OgogICAgICAqIEB3ZWJfdmlldzogdGhlICNXZWJLaXRXZWJWaWV3IG9uIHdoaWNoIHRoZSBzaWdu
YWwgaXMgZW1pdHRlZAogICAgICAqIEBsb2FkX2V2ZW50OiB0aGUgI1dlYktpdExvYWRFdmVudApA
QCAtMjQ1NCw2ICsyNDgzLDI3IEBAIGdib29sZWFuIHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5n
KFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB9CiAKIC8qKgorICogd2Via2l0X3dlYl92aWV3X2lz
X3BsYXlpbmdfYXVkaW86CisgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKKyAqCisgKiBH
ZXRzIHRoZSB2YWx1ZSBvZiB0aGUgI1dlYktpdFdlYlZpZXc6OmlzLXBsYXlpbmctYXVkaW8gcHJv
cGVydHkuCisgKiBZb3UgY2FuIG1vbml0b3Igd2hlbiBhIHBhZ2UgaW4gYSAjV2ViS2l0V2ViVmll
dyBpcyBwbGF5aW5nIGF1ZGlvIGJ5CisgKiBjb25uZWN0aW5nIHRvIHRoZSBub3RpZnk6OmlzLXBs
YXlpbmctYXVkaW8gc2lnbmFsIG9mIEB3ZWJfdmlldy4gVGhpcworICogaXMgdXNlZnVsIHdoZW4g
dGhlIGFwcGxpY2F0aW9uIHdhbnRzIHRvIHByb3ZpZGUgdmlzdWFsIGZlZWRiYWNrIHdoZW4gYQor
ICogcGFnZSBpcyBwcm9kdWNpbmcgc291bmQuCisgKgorICogUmV0dXJuczogJVRSVUUgaWYgYSBw
YWdlIGluIEB3ZWJfdmlldyBpcyBwbGF5aW5nIGF1ZGlvIG9yICVGQUxTRSBvdGhlcndpc2UuCisg
KgorICogU2luY2U6IDIuOAorICovCitnYm9vbGVhbiB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWlu
Z19hdWRpbyhXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfcmV0dXJuX3ZhbF9pZl9m
YWlsKFdFQktJVF9JU19XRUJfVklFVyh3ZWJWaWV3KSwgRkFMU0UpOworCisgICAgcmV0dXJuIGdl
dFBhZ2Uod2ViVmlldyktPmlzUGxheWluZ0F1ZGlvKCk7Cit9CisKKy8qKgogICogd2Via2l0X3dl
Yl92aWV3X2dvX2JhY2s6CiAgKiBAd2ViX3ZpZXc6IGEgI1dlYktpdFdlYlZpZXcKICAqCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXgg
ZDUzNTQ5ZTIzOGE0NzRjYzJhMjYxYjIzMzM2YTFmM2Q3ODM4ZWM1NC4uZGEzZjE2NWZkYjZmMDM0
NzYwMTU4ZjdiNzY4N2Y1MGE1MDNjNGY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaApAQCAtMzA1LDYgKzMwNSw5IEBAIHdlYmtpdF93
ZWJfdmlld19zdG9wX2xvYWRpbmcgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZp
ZXcKIFdFQktJVF9BUEkgZ2Jvb2xlYW4KIHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5nICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3
KTsKIAorV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVk
aW8gICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3Zp
ZXcpOworCiBXRUJLSVRfQVBJIGd1aW50NjQKIHdlYmtpdF93ZWJfdmlld19nZXRfcGFnZV9pZCAg
ICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92
aWV3KTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdQcml2YXRlLmgKaW5kZXggY2VlNzE2YTU1ZTY4ZDViNzJmNWRjNTg2MzRhZGUx
YTQ3ZWZkYWM2ZC4uMDM4MTRlYWE4ZDA0ZTNmYzhiN2VhYTllOGE2NjM5NTUxNmM2OWFiOCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1By
aXZhdGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJW
aWV3UHJpdmF0ZS5oCkBAIC02MCw1ICs2MCw2IEBAIHZvaWQgd2Via2l0V2ViVmlld0luc2VjdXJl
Q29udGVudERldGVjdGVkKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRJbnNlY3VyZUNvbnRlbnRFCiBi
b29sIHdlYmtpdFdlYlZpZXdFbWl0U2hvd05vdGlmaWNhdGlvbihXZWJLaXRXZWJWaWV3KiwgV2Vi
S2l0Tm90aWZpY2F0aW9uKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdFbWl0Q2xvc2VOb3RpZmljYXRp
b24oV2ViS2l0V2ViVmlldyosIFdlYktpdE5vdGlmaWNhdGlvbiopOwogdm9pZCB3ZWJraXRXZWJW
aWV3V2ViUHJvY2Vzc0NyYXNoZWQoV2ViS2l0V2ViVmlldyopOwordm9pZCB3ZWJraXRXZWJWaWV3
SXNQbGF5aW5nQXVkaW9DaGFuZ2VkKFdlYktpdFdlYlZpZXcqKTsKIAogI2VuZGlmIC8vIFdlYktp
dFdlYlZpZXdQcml2YXRlX2gKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CmluZGV4IDE1YzRiY2Rl
OThkMjdhZTU3N2ZlZDNiOGJjNmJlNDg5M2RiZmMxZWMuLmYzNjZkMGEwMjgxNDM2OTU5ZWNmNjhk
YjE4ZDAyM2I2Njk3OGIyYTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKKysrIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dApAQCAtMTY3LDYg
KzE2Nyw3IEBAIHdlYmtpdF93ZWJfdmlld19yZWxvYWQKIHdlYmtpdF93ZWJfdmlld19yZWxvYWRf
YnlwYXNzX2NhY2hlCiB3ZWJraXRfd2ViX3ZpZXdfc3RvcF9sb2FkaW5nCiB3ZWJraXRfd2ViX3Zp
ZXdfaXNfbG9hZGluZword2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8KIHdlYmtpdF93
ZWJfdmlld19nZXRfZXN0aW1hdGVkX2xvYWRfcHJvZ3Jlc3MKIHdlYmtpdF93ZWJfdmlld19nZXRf
Y3VzdG9tX2NoYXJzZXQKIHdlYmtpdF93ZWJfdmlld19zZXRfY3VzdG9tX2NoYXJzZXQKZGlmZiAt
LWdpdCBhL1Rvb2xzL0NoYW5nZUxvZyBiL1Rvb2xzL0NoYW5nZUxvZwppbmRleCA3MmIxNWU0Yzhj
MzMwNjM2MzcxMTU3MmFiMzQyYjQ3YWVmNTA1YzQ1Li4yNzU3NDNlYmNmODJhOGJiYjc1NThlZDEz
NWQ1OGZkMjZmYWUwOWEwIDEwMDY0NAotLS0gYS9Ub29scy9DaGFuZ2VMb2cKKysrIGIvVG9vbHMv
Q2hhbmdlTG9nCkBAIC0xLDMgKzEsMjggQEAKKzIwMTQtMTItMTcgIEFkcmlhbiBQZXJleiBkZSBD
YXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBJbXBsZW1lbnQgd2Vi
a2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oKQorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM4OTE4CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgQWRkIHRlc3QgY2FzZSBjYXNlIGZvciB3ZWJraXRfd2Vi
X3ZpZXdfaXNfcGxheWluZ19hdWRpbygpIGFuZCB0aGUKKyAgICAgICAgV2ViS2l0V2ViVmlldzo6
aXMtcGxheWluZy1hdWRpbyBwcm9wZXJ0eS4KKworICAgICAgICAqIFRlc3RXZWJLaXRBUEkvVGVz
dHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2ViVmlldy5jcHA6CisgICAgICAgICh1cmxGb3JSZXNv
dXJjZSk6IFV0aWxpdHkgZnVuY3Rpb24gdG8gZ2V0IFVSTHMgcG9pbnRpbmcgdG8gcmVzb3VyY2Vz
CisgICAgICAgIHVuZGVyIHRoZSBUb29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDIvIGRp
cmVjdG9yeS4KKyAgICAgICAgKHRlc3RXZWJWaWV3SXNQbGF5aW5nQXVkaW8pOiBBZGRlZC4KKyAg
ICAgICAgKGJlZm9yZUFsbCk6CisgICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0
ay9UZXN0TWFpbi5oOgorICAgICAgICAoZ2V0UmVzb3VyY2VzRGlyKTogQWxsb3cgcGFzc2luZyBh
IGZsYWcgdG8gY2hvb3NlIGZyb20gdGhlIFdlYktpdDIgR1RLCisgICAgICAgIEFQSSB0ZXN0cyBy
ZXNvdXJjZXMgZGlyZWN0b3J5LCBvciB0aGUgV2ViS2l0MiBDIEFQSSB0ZXN0cyByZXNvdXJjZXMK
KyAgICAgICAgZGlyZWN0b3J5LiBUaGUgZGVmYXVsdCB2YWx1ZSBvZiB0aGUgZmxhZyBpcyB0byB1
c2UgdGhlIFdlYktpdDIgR1RLCisgICAgICAgIG9uZSwgdG8gYXZvaWQgaGF2aW5nIHRvIGNoYW5n
ZSBleGlzdGluZyB0ZXN0cy4KKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3Rr
L1dlYlZpZXdUZXN0LmNwcDoKKyAgICAgICAgKGlzUGxheWluZ0F1ZGlvQ2hhbmdlZCk6IEFkZGVk
LgorICAgICAgICAoV2ViVmlld1Rlc3Q6OndhaXRVbnRpbElzUGxheWluZ0F1ZGlvQ2hhbmdlZCk6
IEFkZGVkLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rl
c3QuaDoKKwogMjAxNC0xMi0xNiAgR3J6ZWdvcnogQ3phamtvd3NraSAgPGcuY3phamtvd3NraUBz
YW1zdW5nLmNvbT4KIAogICAgICAgICBbRUZMXSBBZGQgbG9nZ2luZyBkb21haW4gZm9yIE1pbmlC
cm93c2VyCmRpZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsv
VGVzdFdlYktpdFdlYlZpZXcuY3BwIGIvVG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcAppbmRleCA4NDIxMTRmMzJhNTVmMTE4NThkYWE5MjU2
YmVlYjdlZTYxYzYyNWM1Li4zYjgyOTQzNGRjYWNlMjZjMGI4OGZkMWM4YWI1NTkyZDVmYTY1MjUy
IDEwMDY0NAotLS0gYS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdl
YktpdFdlYlZpZXcuY3BwCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0
ay9UZXN0V2ViS2l0V2ViVmlldy5jcHAKQEAgLTI2LDYgKzI2LDIzIEBACiAjaW5jbHVkZSA8Z2xp
Yi9nc3RkaW8uaD4KICNpbmNsdWRlIDx3dGYvZ29iamVjdC9HUmVmUHRyLmg+CiAKK2NsYXNzIFdl
YlZpZXdJc1BsYXlpbmdBdWRpb1Rlc3QgOiBwdWJsaWMgV2ViVmlld1Rlc3QgeworcHVibGljOgor
ICAgIE1BS0VfR0xJQl9URVNUX0ZJWFRVUkUoV2ViVmlld0lzUGxheWluZ0F1ZGlvVGVzdCk7CisK
KyAgICBzdGF0aWMgdm9pZCBpc1BsYXlpbmdBdWRpb0NoYW5nZWQoR09iamVjdCosIEdQYXJhbVNw
ZWMqLCBXZWJWaWV3SXNQbGF5aW5nQXVkaW9UZXN0KiB0ZXN0KQorICAgIHsKKyAgICAgICAgZ19z
aWduYWxfaGFuZGxlcnNfZGlzY29ubmVjdF9ieV9mdW5jKHRlc3QtPm1fd2ViVmlldywgcmVpbnRl
cnByZXRfY2FzdDx2b2lkKj4oaXNQbGF5aW5nQXVkaW9DaGFuZ2VkKSwgdGVzdCk7CisgICAgICAg
IGdfbWFpbl9sb29wX3F1aXQodGVzdC0+bV9tYWluTG9vcCk7CisgICAgfQorCisgICAgdm9pZCB3
YWl0VW50aWxJc1BsYXlpbmdBdWRpb0NoYW5nZWQoKQorICAgIHsKKyAgICAgICAgZ19zaWduYWxf
Y29ubmVjdChtX3dlYlZpZXcsICJub3RpZnk6OmlzLXBsYXlpbmctYXVkaW8iLCBHX0NBTExCQUNL
KGlzUGxheWluZ0F1ZGlvQ2hhbmdlZCksIHRoaXMpOworICAgICAgICBnX21haW5fbG9vcF9ydW4o
bV9tYWluTG9vcCk7CisgICAgfQorfTsKKwogc3RhdGljIFdlYktpdFRlc3RTZXJ2ZXIqIGdTZXJ2
ZXI7CiAKIHN0YXRpYyB2b2lkIHRlc3RXZWJWaWV3V2ViQ29udGV4dChXZWJWaWV3VGVzdCogdGVz
dCwgZ2NvbnN0cG9pbnRlcikKQEAgLTcwMiw2ICs3MTksMzEgQEAgc3RhdGljIHZvaWQgdGVzdFdl
YlZpZXdOb3RpZmljYXRpb24oTm90aWZpY2F0aW9uV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBv
aW50ZXIKICAgICBnX2Fzc2VydCh0ZXN0LT5tX2V2ZW50ID09IE5vdGlmaWNhdGlvbldlYlZpZXdU
ZXN0OjpDYW5jZWxsZWQpOwogfQogCitzdGF0aWMgdm9pZCB0ZXN0V2ViVmlld0lzUGxheWluZ0F1
ZGlvKFdlYlZpZXdJc1BsYXlpbmdBdWRpb1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7Cisg
ICAgLy8gVGhlIHdlYiB2aWV3IG11c3QgYmUgcmVhbGl6ZWQgZm9yIHRoZSB2aWRlbyB0byBzdGFy
dCBwbGF5YmFjayBhbmQKKyAgICAvLyB0cmlnZ2VyIGNoYW5nZXMgaW4gV2ViS2l0V2ViVmlldzo6
aXMtcGxheWluZy1hdWRpby4KKyAgICB0ZXN0LT5zaG93SW5XaW5kb3dBbmRXYWl0VW50aWxNYXBw
ZWQoR1RLX1dJTkRPV19UT1BMRVZFTCk7CisKKyAgICAvLyBJbml0aWFsbHksIHdlYiB2aWV3cyBz
aG91bGQgYWx3YXlzIHJlcG9ydCBubyBhdWRpbyBiZWluZyBwbGF5ZWQuCisgICAgZ19hc3NlcnQo
IXdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvKHRlc3QtPm1fd2ViVmlldykpOworCisg
ICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZVBhdGgoZ19idWlsZF9maWxlbmFtZShUZXN0Ojpn
ZXRSZXNvdXJjZXNEaXIoVGVzdDo6V2ViS2l0MlJlc291cmNlcykuZGF0YSgpLCAiZmlsZS13aXRo
LXZpZGVvLmh0bWwiLCBudWxscHRyKSk7CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZVVy
bChnX3N0cmR1cF9wcmludGYoImZpbGU6Ly8lcyIsIHJlc291cmNlUGF0aC5nZXQoKSkpOworICAg
IHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaSh0ZXN0LT5tX3dlYlZpZXcsIHJlc291cmNlVXJsLmdl
dCgpKTsKKyAgICB0ZXN0LT53YWl0VW50aWxMb2FkRmluaXNoZWQoKTsKKyAgICBnX2Fzc2VydCgh
d2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8odGVzdC0+bV93ZWJWaWV3KSk7CisKKyAg
ICB3ZWJraXRfd2ViX3ZpZXdfcnVuX2phdmFzY3JpcHQodGVzdC0+bV93ZWJWaWV3LCAicGxheVZp
ZGVvKCk7IiwgbnVsbHB0ciwgbnVsbHB0ciwgbnVsbHB0cik7CisgICAgdGVzdC0+d2FpdFVudGls
SXNQbGF5aW5nQXVkaW9DaGFuZ2VkKCk7CisgICAgZ19hc3NlcnQod2Via2l0X3dlYl92aWV3X2lz
X3BsYXlpbmdfYXVkaW8odGVzdC0+bV93ZWJWaWV3KSk7CisKKyAgICAvLyBQYXVzZSB0aGUgdmlk
ZW8sIGFuZCBjaGVjayBhZ2Fpbi4KKyAgICB3ZWJraXRfd2ViX3ZpZXdfcnVuX2phdmFzY3JpcHQo
dGVzdC0+bV93ZWJWaWV3LCAiZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoJ3Rlc3QtdmlkZW8nKS5w
YXVzZSgpOyIsIG51bGxwdHIsIG51bGxwdHIsIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRp
bElzUGxheWluZ0F1ZGlvQ2hhbmdlZCgpOworICAgIGdfYXNzZXJ0KCF3ZWJraXRfd2ViX3ZpZXdf
aXNfcGxheWluZ19hdWRpbyh0ZXN0LT5tX3dlYlZpZXcpKTsKK30KKwogc3RhdGljIHZvaWQgc2Vy
dmVyQ2FsbGJhY2soU291cFNlcnZlciogc2VydmVyLCBTb3VwTWVzc2FnZSogbWVzc2FnZSwgY29u
c3QgY2hhciogcGF0aCwgR0hhc2hUYWJsZSosIFNvdXBDbGllbnRDb250ZXh0KiwgZ3BvaW50ZXIp
CiB7CiAgICAgaWYgKG1lc3NhZ2UtPm1ldGhvZCAhPSBTT1VQX01FVEhPRF9HRVQpIHsKQEAgLTcz
Myw2ICs3NzUsNyBAQCB2b2lkIGJlZm9yZUFsbCgpCiAgICAgU25hcHNob3RXZWJWaWV3VGVzdDo6
YWRkKCJXZWJLaXRXZWJWaWV3IiwgInNuYXBzaG90IiwgdGVzdFdlYlZpZXdTbmFwc2hvdCk7CiAg
ICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJwYWdlLXZpc2liaWxpdHkiLCB0
ZXN0V2ViVmlld1BhZ2VWaXNpYmlsaXR5KTsKICAgICBOb3RpZmljYXRpb25XZWJWaWV3VGVzdDo6
YWRkKCJXZWJLaXRXZWJWaWV3IiwgIm5vdGlmaWNhdGlvbiIsIHRlc3RXZWJWaWV3Tm90aWZpY2F0
aW9uKTsKKyAgICBXZWJWaWV3SXNQbGF5aW5nQXVkaW9UZXN0OjphZGQoIldlYktpdFdlYlZpZXci
LCAiaXMtcGxheWluZy1hdWRpbyIsIHRlc3RXZWJWaWV3SXNQbGF5aW5nQXVkaW8pOwogfQogCiB2
b2lkIGFmdGVyQWxsKCkKZGlmZiAtLWdpdCBhL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktp
dDJHdGsvVGVzdE1haW4uaCBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvVGVz
dE1haW4uaAppbmRleCAwMTE4NTEwMTVhYjlhMDhiNDViZmIwYzhjZmJmYzdhOTNkYjA0ODE3Li5k
N2RmYWQ0ZDljZGY0ZjZkYWJiYjE1OTEzNTAzODAwZTllMzY2NzczIDEwMDY0NAotLS0gYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1Rlc3RNYWluLmgKKysrIGIvVG9vbHMvVGVz
dFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9UZXN0TWFpbi5oCkBAIC0xMDcsMTAgKzEwNywyNCBA
QCBwdWJsaWM6CiAgICAgICAgIGdfb2JqZWN0X3dlYWtfcmVmKG9iamVjdCwgcmVpbnRlcnByZXRf
Y2FzdDxHV2Vha05vdGlmeT4ob2JqZWN0RmluYWxpemVkKSwgdGhpcyk7CiAgICAgfQogCi0gICAg
c3RhdGljIENTdHJpbmcgZ2V0UmVzb3VyY2VzRGlyKCkKKworICAgIGVudW0gUmVzb3VyY2VzRGly
IHsKKyAgICAgICAgV2ViS2l0MkdUS1Jlc291cmNlcywKKyAgICAgICAgV2ViS2l0MlJlc291cmNl
cywKKyAgICB9OworCisgICAgc3RhdGljIENTdHJpbmcgZ2V0UmVzb3VyY2VzRGlyKFJlc291cmNl
c0RpciByZXNvdXJjZXNEaXIgPSBXZWJLaXQyR1RLUmVzb3VyY2VzKQogICAgIHsKLSAgICAgICAg
R1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZXNEaXIoZ19idWlsZF9maWxlbmFtZShXRUJLSVRfU1JD
X0RJUiwgIlRvb2xzIiwgIlRlc3RXZWJLaXRBUEkiLCAiVGVzdHMiLCAiV2ViS2l0Mkd0ayIsICJy
ZXNvdXJjZXMiLCBudWxscHRyKSk7Ci0gICAgICAgIHJldHVybiByZXNvdXJjZXNEaXIuZ2V0KCk7
CisgICAgICAgIHN3aXRjaCAocmVzb3VyY2VzRGlyKSB7CisgICAgICAgIGNhc2UgV2ViS2l0MkdU
S1Jlc291cmNlczogeworICAgICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZXNEaXIo
Z19idWlsZF9maWxlbmFtZShXRUJLSVRfU1JDX0RJUiwgIlRvb2xzIiwgIlRlc3RXZWJLaXRBUEki
LCAiVGVzdHMiLCAiV2ViS2l0Mkd0ayIsICJyZXNvdXJjZXMiLCBudWxscHRyKSk7CisgICAgICAg
ICAgICByZXR1cm4gcmVzb3VyY2VzRGlyLmdldCgpOworICAgICAgICB9CisgICAgICAgIGNhc2Ug
V2ViS2l0MlJlc291cmNlczogeworICAgICAgICAgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJj
ZXNEaXIoZ19idWlsZF9maWxlbmFtZShXRUJLSVRfU1JDX0RJUiwgIlRvb2xzIiwgIlRlc3RXZWJL
aXRBUEkiLCAiVGVzdHMiLCAiV2ViS2l0MiIsIG51bGxwdHIpKTsKKyAgICAgICAgICAgIHJldHVy
biByZXNvdXJjZXNEaXIuZ2V0KCk7CisgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0KIAogICAg
IHZvaWQgYWRkTG9nRmF0YWxGbGFnKHVuc2lnbmVkIGZsYWcpCmRpZmYgLS1naXQgYS9Ub29scy9U
ZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmggYi9Ub29scy9UZXN0V2Vi
S2l0QVBJL2d0ay9XZWJLaXQyR3RrL1dlYlZpZXdUZXN0LmgKaW5kZXggMmMzNjkyYTU2MmU1NzQ4
MGI5MGI3ZmZmZWY3NTYzOTgyZGIyNmEzYS4uN2UxN2QwZGMxYTQ2ODZkMDZkMjI0ZDdhOTdmM2Ux
ZTNkODAzMjJiNyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0
ay9XZWJWaWV3VGVzdC5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsv
V2ViVmlld1Rlc3QuaApAQCAtNDcsNiArNDcsNyBAQCBwdWJsaWM6CiAgICAgdm9pZCB3YWl0VW50
aWxMb2FkRmluaXNoZWQoKTsKICAgICB2b2lkIHdhaXRVbnRpbFRpdGxlQ2hhbmdlZFRvKGNvbnN0
IGNoYXIqIGV4cGVjdGVkVGl0bGUpOwogICAgIHZvaWQgd2FpdFVudGlsVGl0bGVDaGFuZ2VkKCk7
CisgICAgdm9pZCB3YWl0VW50aWxJc1BsYXlpbmdBdWRpb0NoYW5nZWQoKTsKICAgICB2b2lkIHNo
b3dJbldpbmRvdyhHdGtXaW5kb3dUeXBlID0gR1RLX1dJTkRPV19QT1BVUCk7CiAgICAgdm9pZCBz
aG93SW5XaW5kb3dBbmRXYWl0VW50aWxNYXBwZWQoR3RrV2luZG93VHlwZSA9IEdUS19XSU5ET1df
UE9QVVApOwogICAgIHZvaWQgcmVzaXplVmlldyhpbnQgd2lkdGgsIGludCBoZWlnaHQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>243495</attachid>
            <date>2014-12-18 06:00:10 -0800</date>
            <delta_ts>2014-12-18 06:57:42 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-138918-20141218160008.patch</filename>
            <type>text/plain</type>
            <size>13814</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc3NDQ2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMjhkN2E4MDVmNDllODFj
ZjQ5Yzg4NDhlN2FkNjQ1ZmYxNTI3YWE4Zi4uZWY4ZGM0NjNmMmJlMTI5MThiMWRjMmM3MjM0M2E5
NWNmZjI1OTZjMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMxIEBACisyMDE0LTEyLTE4ICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10g
SW1wbGVtZW50IHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvKCkKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEzODkxOAorCisgICAgICAgIFJl
dmlld2VkIGJ5IENhcmxvcyBHYXJjaWEgQ2FtcG9zLgorCisgICAgICAgIEltcGxlbWVudHMgd2Vi
a2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oKSwgYW5kIG92ZXJyaWRlcworICAgICAgICBV
SUNsaWVudDo6aXNQbGF5aW5nQXVkaW9EaWRDaGFuZ2UoKSB0byBiZSBhYmxlIHRvIGVtaXQgY2hh
bmdlCisgICAgICAgIG5vdGlmaWNhdGlvbiBzaWduYWxzIGZvciB0aGUgbmV3IFdlYktpdFdlYlZp
ZXc6OmlzLXBsYXlpbmctYXVkaW8KKyAgICAgICAgcHJvcGVydHkuCisKKyAgICAgICAgKiBVSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRVSUNsaWVudC5jcHA6CisgICAgICAgIChpc1BsYXlpbmdBdWRp
b0RpZENoYW5nZSk6IEFkZGVkLgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXcuY3BwOgorICAgICAgICAod2Via2l0V2ViVmlld0lzUGxheWluZ0F1ZGlvQ2hhbmdlZCk6
IEhlbHBlciBmdW5jdGlvbiB0byBlbWl0IHRoZQorICAgICAgICBlbWl0IHRoZSBub3RpZnk6Omlz
LXBsYXlpbmctYXVkaW8gc2lnbmFsIHdoZW4gbmVlZGVkLgorICAgICAgICAod2Via2l0V2ViVmll
d0dldFByb3BlcnR5KTogSGFuZGxlIHRoZSBXZWJLaXRXZWJWaWV3Ojppcy1wbGF5aW5nLWF1ZGlv
CisgICAgICAgIHByb3BlcnR5LgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQp
OiBJbnN0YWxsIHRoZQorICAgICAgICBXZWJLaXRXZWJWaWV3Ojppcy1wbGF5aW5nLWF1ZGlvIHBy
b3BlcnR5LgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8pOiBBZGRl
ZC4KKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmg6CisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBV
SVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OiBBZGQKKyAgICAg
ICAgd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8oKSB0byB0aGUgbGlzdCBvZiBwdWJs
aWMgQVBJCisgICAgICAgIGZ1bmN0aW9ucy4KKwogMjAxNC0xMi0xNyAgQ2FybG9zIEdhcmNpYSBD
YW1wb3MgIDxjZ2FyY2lhQGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZC4gRml4IEdU
SysgYnVpbGQgYWZ0ZXIgcjE3NzQyNy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFVJQ2xpZW50LmNwcAppbmRleCBlMGRjZWQxYzQzN2JkZDJiYTBlMDFk
MThhMDQwNDg1NDk2MWU2MzRlLi5jOGI3ZDU2ZTYxNGM4MGVlYzkzNWZmMzlmZGVlNmFmZDE1Yjhm
ZDQ1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRV
SUNsaWVudC5jcHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
VUlDbGllbnQuY3BwCkBAIC0xODYsNiArMTg2LDExIEBAIHByaXZhdGU6CiAgICAgICAgIHdlYmtp
dFdlYlZpZXdSdW5Bc01vZGFsKG1fd2ViVmlldyk7CiAgICAgfQogCisgICAgdmlydHVhbCB2b2lk
IGlzUGxheWluZ0F1ZGlvRGlkQ2hhbmdlKFdlYlBhZ2VQcm94eSYgcGFnZSkgb3ZlcnJpZGUKKyAg
ICB7CisgICAgICAgIHdlYmtpdFdlYlZpZXdJc1BsYXlpbmdBdWRpb0NoYW5nZWQobV93ZWJWaWV3
KTsKKyAgICB9CisKICAgICBXZWJLaXRXZWJWaWV3KiBtX3dlYlZpZXc7CiB9OwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCmluZGV4
IDlmYmFhNzFkNGE0MWJjMzYxZGFjZWQ2Y2QwYjkwMjgxYTJhOGYzMDUuLjUzMDNhMzA3YjA5Nzdi
ZmM1YjEwMGY2MmFjZjhlMmI5YzQ4NTk2MjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC0xNDgsNyArMTQ4LDggQEAgZW51
bSB7CiAgICAgUFJPUF9GQVZJQ09OLAogICAgIFBST1BfVVJJLAogICAgIFBST1BfWk9PTV9MRVZF
TCwKLSAgICBQUk9QX0lTX0xPQURJTkcKKyAgICBQUk9QX0lTX0xPQURJTkcsCisgICAgUFJPUF9J
U19QTEFZSU5HX0FVRElPCiB9OwogCiB0eXBlZGVmIEhhc2hNYXA8dWludDY0X3QsIEdSZWZQdHI8
V2ViS2l0V2ViUmVzb3VyY2U+ID4gTG9hZGluZ1Jlc291cmNlc01hcDsKQEAgLTIzMCw2ICsyMzEs
MTEgQEAgc3RhdGljIHZvaWQgd2Via2l0V2ViVmlld1NldElzTG9hZGluZyhXZWJLaXRXZWJWaWV3
KiB3ZWJWaWV3LCBib29sIGlzTG9hZGluZykKICAgICBnX29iamVjdF9ub3RpZnkoR19PQkpFQ1Qo
d2ViVmlldyksICJpcy1sb2FkaW5nIik7CiB9CiAKK3ZvaWQgd2Via2l0V2ViVmlld0lzUGxheWlu
Z0F1ZGlvQ2hhbmdlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIGdfb2JqZWN0X25v
dGlmeShHX09CSkVDVCh3ZWJWaWV3KSwgImlzLXBsYXlpbmctYXVkaW8iKTsKK30KKwogY2xhc3Mg
UGFnZUxvYWRTdGF0ZU9ic2VydmVyIGZpbmFsIDogcHVibGljIFBhZ2VMb2FkU3RhdGU6Ok9ic2Vy
dmVyIHsKIHB1YmxpYzoKICAgICBQYWdlTG9hZFN0YXRlT2JzZXJ2ZXIoV2ViS2l0V2ViVmlldyog
d2ViVmlldykKQEAgLTcyMSw2ICs3MjcsOSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRXZWJWaWV3R2V0
UHJvcGVydHkoR09iamVjdCogb2JqZWN0LCBndWludCBwcm9wSWQsIEdWYWx1ZSogdmFsdQogICAg
IGNhc2UgUFJPUF9JU19MT0FESU5HOgogICAgICAgICBnX3ZhbHVlX3NldF9ib29sZWFuKHZhbHVl
LCB3ZWJraXRfd2ViX3ZpZXdfaXNfbG9hZGluZyh3ZWJWaWV3KSk7CiAgICAgICAgIGJyZWFrOwor
ICAgIGNhc2UgUFJPUF9JU19QTEFZSU5HX0FVRElPOgorICAgICAgICBnX3ZhbHVlX3NldF9ib29s
ZWFuKHZhbHVlLCB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbyh3ZWJWaWV3KSk7Cisg
ICAgICAgIGJyZWFrOwogICAgIGRlZmF1bHQ6CiAgICAgICAgIEdfT0JKRUNUX1dBUk5fSU5WQUxJ
RF9QUk9QRVJUWV9JRChvYmplY3QsIHByb3BJZCwgcGFyYW1TcGVjKTsKICAgICB9CkBAIC05MzIs
NiArOTQxLDI2IEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KFdlYktp
dFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JF
QURBQkxFKSk7CiAKICAgICAvKioKKyAgICAgKiBXZWJLaXRXZWJWaWV3Ojppcy1wbGF5aW5nLWF1
ZGlvOgorICAgICAqCisgICAgICogV2hldGhlciB0aGUgI1dlYktpdFdlYlZpZXcgaXMgY3VycmVu
dGx5IHBsYXlpbmcgYXVkaW8gZnJvbSBhIHBhZ2UuCisgICAgICogVGhpcyBwcm9wZXJ0eSBiZWNv
bWVzICVUUlVFIGFzIHNvb24gYXMgd2ViIGNvbnRlbnQgc3RhcnRzIHBsYXlpbmcgYW55CisgICAg
ICoga2luZCBvZiBhdWRpby4gV2hlbiBhIHBhZ2UgaXMgbm8gbG9uZ2VyIHBsYXlpbmcgYW55IGtp
bmQgb2Ygc291bmQsCisgICAgICogdGhlIHByb3BlcnR5IGlzIHNldCBiYWNrIHRvICVGQUxTRS4K
KyAgICAgKgorICAgICAqIFNpbmNlOiAyLjgKKyAgICAgKi8KKyAgICBnX29iamVjdF9jbGFzc19p
bnN0YWxsX3Byb3BlcnR5KAorICAgICAgICBnT2JqZWN0Q2xhc3MsCisgICAgICAgIFBST1BfSVNf
UExBWUlOR19BVURJTywKKyAgICAgICAgZ19wYXJhbV9zcGVjX2Jvb2xlYW4oCisgICAgICAgICAg
ICAiaXMtcGxheWluZy1hdWRpbyIsCisgICAgICAgICAgICAiSXMgUGxheWluZyBBdWRpbyIsCisg
ICAgICAgICAgICBfKCJXaGV0aGVyIHRoZSB2aWV3IGlzIHBsYXlpbmcgYXVkaW8iKSwKKyAgICAg
ICAgICAgIEZBTFNFLAorICAgICAgICAgICAgV0VCS0lUX1BBUkFNX1JFQURBQkxFKSk7CisKKyAg
ICAvKioKICAgICAgKiBXZWJLaXRXZWJWaWV3Ojpsb2FkLWNoYW5nZWQ6CiAgICAgICogQHdlYl92
aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcgb24gd2hpY2ggdGhlIHNpZ25hbCBpcyBlbWl0dGVkCiAg
ICAgICogQGxvYWRfZXZlbnQ6IHRoZSAjV2ViS2l0TG9hZEV2ZW50CkBAIC0yNDU0LDYgKzI0ODMs
MjcgQEAgZ2Jvb2xlYW4gd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcoV2ViS2l0V2ViVmlldyog
d2ViVmlldykKIH0KIAogLyoqCisgKiB3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbzoK
KyAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldworICoKKyAqIEdldHMgdGhlIHZhbHVlIG9m
IHRoZSAjV2ViS2l0V2ViVmlldzo6aXMtcGxheWluZy1hdWRpbyBwcm9wZXJ0eS4KKyAqIFlvdSBj
YW4gbW9uaXRvciB3aGVuIGEgcGFnZSBpbiBhICNXZWJLaXRXZWJWaWV3IGlzIHBsYXlpbmcgYXVk
aW8gYnkKKyAqIGNvbm5lY3RpbmcgdG8gdGhlIG5vdGlmeTo6aXMtcGxheWluZy1hdWRpbyBzaWdu
YWwgb2YgQHdlYl92aWV3LiBUaGlzCisgKiBpcyB1c2VmdWwgd2hlbiB0aGUgYXBwbGljYXRpb24g
d2FudHMgdG8gcHJvdmlkZSB2aXN1YWwgZmVlZGJhY2sgd2hlbiBhCisgKiBwYWdlIGlzIHByb2R1
Y2luZyBzb3VuZC4KKyAqCisgKiBSZXR1cm5zOiAlVFJVRSBpZiBhIHBhZ2UgaW4gQHdlYl92aWV3
IGlzIHBsYXlpbmcgYXVkaW8gb3IgJUZBTFNFIG90aGVyd2lzZS4KKyAqCisgKiBTaW5jZTogMi44
CisgKi8KK2dib29sZWFuIHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvKFdlYktpdFdl
YlZpZXcqIHdlYlZpZXcpCit7CisgICAgZ19yZXR1cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dF
Ql9WSUVXKHdlYlZpZXcpLCBGQUxTRSk7CisKKyAgICByZXR1cm4gZ2V0UGFnZSh3ZWJWaWV3KS0+
aXNQbGF5aW5nQXVkaW8oKTsKK30KKworLyoqCiAgKiB3ZWJraXRfd2ViX3ZpZXdfZ29fYmFjazoK
ICAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmlldwogICoKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCBkNTM1NDllMjM4YTQ3NGNj
MmEyNjFiMjMzMzZhMWYzZDc4MzhlYzU0Li5kYTNmMTY1ZmRiNmYwMzQ3NjAxNThmN2I3Njg3ZjUw
YTUwM2M0ZjgwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5oCkBAIC0zMDUsNiArMzA1LDkgQEAgd2Via2l0X3dlYl92aWV3X3N0b3BfbG9h
ZGluZyAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBn
Ym9vbGVhbgogd2Via2l0X3dlYl92aWV3X2lzX2xvYWRpbmcgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCitXRUJLSVRfQVBJ
IGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbyAgICAgICAgICAgICAg
ICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKIFdFQktJVF9B
UEkgZ3VpbnQ2NAogd2Via2l0X3dlYl92aWV3X2dldF9wYWdlX2lkICAgICAgICAgICAgICAgICAg
ICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3UHJpdmF0
ZS5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZh
dGUuaAppbmRleCBjZWU3MTZhNTVlNjhkNWI3MmY1ZGM1ODYzNGFkZTFhNDdlZmRhYzZkLi4wMzgx
NGVhYThkMDRlM2ZjOGI3ZWFhOWU4YTY2Mzk1NTE2YzY5YWI4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKQEAg
LTYwLDUgKzYwLDYgQEAgdm9pZCB3ZWJraXRXZWJWaWV3SW5zZWN1cmVDb250ZW50RGV0ZWN0ZWQo
V2ViS2l0V2ViVmlldyosIFdlYktpdEluc2VjdXJlQ29udGVudEUKIGJvb2wgd2Via2l0V2ViVmll
d0VtaXRTaG93Tm90aWZpY2F0aW9uKFdlYktpdFdlYlZpZXcqLCBXZWJLaXROb3RpZmljYXRpb24q
KTsKIHZvaWQgd2Via2l0V2ViVmlld0VtaXRDbG9zZU5vdGlmaWNhdGlvbihXZWJLaXRXZWJWaWV3
KiwgV2ViS2l0Tm90aWZpY2F0aW9uKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdXZWJQcm9jZXNzQ3Jh
c2hlZChXZWJLaXRXZWJWaWV3Kik7Cit2b2lkIHdlYmtpdFdlYlZpZXdJc1BsYXlpbmdBdWRpb0No
YW5nZWQoV2ViS2l0V2ViVmlldyopOwogCiAjZW5kaWYgLy8gV2ViS2l0V2ViVmlld1ByaXZhdGVf
aApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJr
aXQyZ3RrLXNlY3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2Rv
Y3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggMTVjNGJjZGU5OGQyN2FlNTc3ZmVkM2I4
YmM2YmU0ODkzZGJmYzFlYy4uZjM2NmQwYTAyODE0MzY5NTllY2Y2OGRiMThkMDIzYjY2OTc4YjJh
NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJr
aXQyZ3RrLXNlY3Rpb25zLnR4dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CkBAIC0xNjcsNiArMTY3LDcgQEAgd2Via2l0
X3dlYl92aWV3X3JlbG9hZAogd2Via2l0X3dlYl92aWV3X3JlbG9hZF9ieXBhc3NfY2FjaGUKIHdl
YmtpdF93ZWJfdmlld19zdG9wX2xvYWRpbmcKIHdlYmtpdF93ZWJfdmlld19pc19sb2FkaW5nCit3
ZWJraXRfd2ViX3ZpZXdfaXNfcGxheWluZ19hdWRpbwogd2Via2l0X3dlYl92aWV3X2dldF9lc3Rp
bWF0ZWRfbG9hZF9wcm9ncmVzcwogd2Via2l0X3dlYl92aWV3X2dldF9jdXN0b21fY2hhcnNldAog
d2Via2l0X3dlYl92aWV3X3NldF9jdXN0b21fY2hhcnNldApkaWZmIC0tZ2l0IGEvVG9vbHMvQ2hh
bmdlTG9nIGIvVG9vbHMvQ2hhbmdlTG9nCmluZGV4IGE1NDU4NmNlMWQyMzg3NTVhZDM1N2QyZmQ3
NzE5MmY4Y2EzZjZmODAuLmM0YjlmYmVlMWQ4MjZkYzU1Y2Q0Y2M0YWJmMTVhNzk1ZTEzYjZlMzgg
MTAwNjQ0Ci0tLSBhL1Rvb2xzL0NoYW5nZUxvZworKysgYi9Ub29scy9DaGFuZ2VMb2cKQEAgLTEs
MyArMSwyOCBAQAorMjAxNC0xMi0xOCAgQWRyaWFuIFBlcmV6IGRlIENhc3RybyAgPGFwZXJlekBp
Z2FsaWEuY29tPgorCisgICAgICAgIFtHVEtdIEltcGxlbWVudCB3ZWJraXRfd2ViX3ZpZXdfaXNf
cGxheWluZ19hdWRpbygpCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVn
LmNnaT9pZD0xMzg5MTgKKworICAgICAgICBSZXZpZXdlZCBieSBDYXJsb3MgR2FyY2lhIENhbXBv
cy4KKworICAgICAgICBBZGQgdGVzdCBjYXNlIGNhc2UgZm9yIHdlYmtpdF93ZWJfdmlld19pc19w
bGF5aW5nX2F1ZGlvKCkgYW5kIHRoZQorICAgICAgICBXZWJLaXRXZWJWaWV3Ojppcy1wbGF5aW5n
LWF1ZGlvIHByb3BlcnR5LgorCisgICAgICAgICogVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQy
R3RrL1Rlc3RXZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHVybEZvclJlc291cmNlKTogVXRp
bGl0eSBmdW5jdGlvbiB0byBnZXQgVVJMcyBwb2ludGluZyB0byByZXNvdXJjZXMKKyAgICAgICAg
dW5kZXIgdGhlIFRvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mi8gZGlyZWN0b3J5Lgor
ICAgICAgICAodGVzdFdlYlZpZXdJc1BsYXlpbmdBdWRpbyk6IEFkZGVkLgorICAgICAgICAoYmVm
b3JlQWxsKToKKyAgICAgICAgKiBUZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1Rlc3RNYWlu
Lmg6CisgICAgICAgIChnZXRSZXNvdXJjZXNEaXIpOiBBbGxvdyBwYXNzaW5nIGEgZmxhZyB0byBj
aG9vc2UgZnJvbSB0aGUgV2ViS2l0MiBHVEsKKyAgICAgICAgQVBJIHRlc3RzIHJlc291cmNlcyBk
aXJlY3RvcnksIG9yIHRoZSBXZWJLaXQyIEMgQVBJIHRlc3RzIHJlc291cmNlcworICAgICAgICBk
aXJlY3RvcnkuIFRoZSBkZWZhdWx0IHZhbHVlIG9mIHRoZSBmbGFnIGlzIHRvIHVzZSB0aGUgV2Vi
S2l0MiBHVEsKKyAgICAgICAgb25lLCB0byBhdm9pZCBoYXZpbmcgdG8gY2hhbmdlIGV4aXN0aW5n
IHRlc3RzLgorICAgICAgICAqIFRlc3RXZWJLaXRBUEkvZ3RrL1dlYktpdDJHdGsvV2ViVmlld1Rl
c3QuY3BwOgorICAgICAgICAoaXNQbGF5aW5nQXVkaW9DaGFuZ2VkKTogQWRkZWQuCisgICAgICAg
IChXZWJWaWV3VGVzdDo6d2FpdFVudGlsSXNQbGF5aW5nQXVkaW9DaGFuZ2VkKTogQWRkZWQuCisg
ICAgICAgICogVGVzdFdlYktpdEFQSS9ndGsvV2ViS2l0Mkd0ay9XZWJWaWV3VGVzdC5oOgorCiAy
MDE0LTEyLTE3ICBDYXJsb3MgR2FyY2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAog
ICAgICAgICBbR1RLXSBTaW1wbGlmeSB0aW1lb3V0IGhhbmRsaW5nIGluIFRlc3RSdW5uZXI6Omlu
aXRpYWxpemVXYWl0VG9EdW1wV2F0Y2hkb2dUaW1lcklmTmVlZGVkCmRpZmYgLS1naXQgYS9Ub29s
cy9UZXN0V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFdlYlZpZXcuY3BwIGIv
VG9vbHMvVGVzdFdlYktpdEFQSS9UZXN0cy9XZWJLaXQyR3RrL1Rlc3RXZWJLaXRXZWJWaWV3LmNw
cAppbmRleCA4NDIxMTRmMzJhNTVmMTE4NThkYWE5MjU2YmVlYjdlZTYxYzYyNWM1Li40ODRkN2E0
MjNkM2RmZTJjNmUwZGM2ODljOTM3NjdhZGFlZWQ2NmYyIDEwMDY0NAotLS0gYS9Ub29scy9UZXN0
V2ViS2l0QVBJL1Rlc3RzL1dlYktpdDJHdGsvVGVzdFdlYktpdFdlYlZpZXcuY3BwCisrKyBiL1Rv
b2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvV2ViS2l0Mkd0ay9UZXN0V2ViS2l0V2ViVmlldy5jcHAK
QEAgLTI2LDYgKzI2LDIzIEBACiAjaW5jbHVkZSA8Z2xpYi9nc3RkaW8uaD4KICNpbmNsdWRlIDx3
dGYvZ29iamVjdC9HUmVmUHRyLmg+CiAKK2NsYXNzIElzUGxheWluZ0F1ZGlvV2ViVmlld1Rlc3Qg
OiBwdWJsaWMgV2ViVmlld1Rlc3QgeworcHVibGljOgorICAgIE1BS0VfR0xJQl9URVNUX0ZJWFRV
UkUoSXNQbGF5aW5nQXVkaW9XZWJWaWV3VGVzdCk7CisKKyAgICBzdGF0aWMgdm9pZCBpc1BsYXlp
bmdBdWRpb0NoYW5nZWQoR09iamVjdCosIEdQYXJhbVNwZWMqLCBJc1BsYXlpbmdBdWRpb1dlYlZp
ZXdUZXN0KiB0ZXN0KQorICAgIHsKKyAgICAgICAgZ19zaWduYWxfaGFuZGxlcnNfZGlzY29ubmVj
dF9ieV9mdW5jKHRlc3QtPm1fd2ViVmlldywgcmVpbnRlcnByZXRfY2FzdDx2b2lkKj4oaXNQbGF5
aW5nQXVkaW9DaGFuZ2VkKSwgdGVzdCk7CisgICAgICAgIGdfbWFpbl9sb29wX3F1aXQodGVzdC0+
bV9tYWluTG9vcCk7CisgICAgfQorCisgICAgdm9pZCB3YWl0VW50aWxJc1BsYXlpbmdBdWRpb0No
YW5nZWQoKQorICAgIHsKKyAgICAgICAgZ19zaWduYWxfY29ubmVjdChtX3dlYlZpZXcsICJub3Rp
Znk6OmlzLXBsYXlpbmctYXVkaW8iLCBHX0NBTExCQUNLKGlzUGxheWluZ0F1ZGlvQ2hhbmdlZCks
IHRoaXMpOworICAgICAgICBnX21haW5fbG9vcF9ydW4obV9tYWluTG9vcCk7CisgICAgfQorfTsK
Kwogc3RhdGljIFdlYktpdFRlc3RTZXJ2ZXIqIGdTZXJ2ZXI7CiAKIHN0YXRpYyB2b2lkIHRlc3RX
ZWJWaWV3V2ViQ29udGV4dChXZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKQEAgLTcw
Miw2ICs3MTksMzEgQEAgc3RhdGljIHZvaWQgdGVzdFdlYlZpZXdOb3RpZmljYXRpb24oTm90aWZp
Y2F0aW9uV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIKICAgICBnX2Fzc2VydCh0ZXN0
LT5tX2V2ZW50ID09IE5vdGlmaWNhdGlvbldlYlZpZXdUZXN0OjpDYW5jZWxsZWQpOwogfQogCitz
dGF0aWMgdm9pZCB0ZXN0V2ViVmlld0lzUGxheWluZ0F1ZGlvKElzUGxheWluZ0F1ZGlvV2ViVmll
d1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCit7CisgICAgLy8gVGhlIHdlYiB2aWV3IG11c3Qg
YmUgcmVhbGl6ZWQgZm9yIHRoZSB2aWRlbyB0byBzdGFydCBwbGF5YmFjayBhbmQKKyAgICAvLyB0
cmlnZ2VyIGNoYW5nZXMgaW4gV2ViS2l0V2ViVmlldzo6aXMtcGxheWluZy1hdWRpby4KKyAgICB0
ZXN0LT5zaG93SW5XaW5kb3dBbmRXYWl0VW50aWxNYXBwZWQoR1RLX1dJTkRPV19UT1BMRVZFTCk7
CisKKyAgICAvLyBJbml0aWFsbHksIHdlYiB2aWV3cyBzaG91bGQgYWx3YXlzIHJlcG9ydCBubyBh
dWRpbyBiZWluZyBwbGF5ZWQuCisgICAgZ19hc3NlcnQoIXdlYmtpdF93ZWJfdmlld19pc19wbGF5
aW5nX2F1ZGlvKHRlc3QtPm1fd2ViVmlldykpOworCisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNv
dXJjZVBhdGgoZ19idWlsZF9maWxlbmFtZShUZXN0OjpnZXRSZXNvdXJjZXNEaXIoVGVzdDo6V2Vi
S2l0MlJlc291cmNlcykuZGF0YSgpLCAiZmlsZS13aXRoLXZpZGVvLmh0bWwiLCBudWxscHRyKSk7
CisgICAgR1VuaXF1ZVB0cjxjaGFyPiByZXNvdXJjZVVSTChnX2ZpbGVuYW1lX3RvX3VyaShyZXNv
dXJjZVBhdGguZ2V0KCksIG51bGxwdHIsIG51bGxwdHIpKTsKKyAgICB3ZWJraXRfd2ViX3ZpZXdf
bG9hZF91cmkodGVzdC0+bV93ZWJWaWV3LCByZXNvdXJjZVVSTC5nZXQoKSk7CisgICAgdGVzdC0+
d2FpdFVudGlsTG9hZEZpbmlzaGVkKCk7CisgICAgZ19hc3NlcnQoIXdlYmtpdF93ZWJfdmlld19p
c19wbGF5aW5nX2F1ZGlvKHRlc3QtPm1fd2ViVmlldykpOworCisgICAgd2Via2l0X3dlYl92aWV3
X3J1bl9qYXZhc2NyaXB0KHRlc3QtPm1fd2ViVmlldywgInBsYXlWaWRlbygpOyIsIG51bGxwdHIs
IG51bGxwdHIsIG51bGxwdHIpOworICAgIHRlc3QtPndhaXRVbnRpbElzUGxheWluZ0F1ZGlvQ2hh
bmdlZCgpOworICAgIGdfYXNzZXJ0KHdlYmtpdF93ZWJfdmlld19pc19wbGF5aW5nX2F1ZGlvKHRl
c3QtPm1fd2ViVmlldykpOworCisgICAgLy8gUGF1c2UgdGhlIHZpZGVvLCBhbmQgY2hlY2sgYWdh
aW4uCisgICAgd2Via2l0X3dlYl92aWV3X3J1bl9qYXZhc2NyaXB0KHRlc3QtPm1fd2ViVmlldywg
ImRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCd0ZXN0LXZpZGVvJykucGF1c2UoKTsiLCBudWxscHRy
LCBudWxscHRyLCBudWxscHRyKTsKKyAgICB0ZXN0LT53YWl0VW50aWxJc1BsYXlpbmdBdWRpb0No
YW5nZWQoKTsKKyAgICBnX2Fzc2VydCghd2Via2l0X3dlYl92aWV3X2lzX3BsYXlpbmdfYXVkaW8o
dGVzdC0+bV93ZWJWaWV3KSk7Cit9CisKIHN0YXRpYyB2b2lkIHNlcnZlckNhbGxiYWNrKFNvdXBT
ZXJ2ZXIqIHNlcnZlciwgU291cE1lc3NhZ2UqIG1lc3NhZ2UsIGNvbnN0IGNoYXIqIHBhdGgsIEdI
YXNoVGFibGUqLCBTb3VwQ2xpZW50Q29udGV4dCosIGdwb2ludGVyKQogewogICAgIGlmIChtZXNz
YWdlLT5tZXRob2QgIT0gU09VUF9NRVRIT0RfR0VUKSB7CkBAIC03MzMsNiArNzc1LDcgQEAgdm9p
ZCBiZWZvcmVBbGwoKQogICAgIFNuYXBzaG90V2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmll
dyIsICJzbmFwc2hvdCIsIHRlc3RXZWJWaWV3U25hcHNob3QpOwogICAgIFdlYlZpZXdUZXN0Ojph
ZGQoIldlYktpdFdlYlZpZXciLCAicGFnZS12aXNpYmlsaXR5IiwgdGVzdFdlYlZpZXdQYWdlVmlz
aWJpbGl0eSk7CiAgICAgTm90aWZpY2F0aW9uV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmll
dyIsICJub3RpZmljYXRpb24iLCB0ZXN0V2ViVmlld05vdGlmaWNhdGlvbik7CisgICAgSXNQbGF5
aW5nQXVkaW9XZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgImlzLXBsYXlpbmctYXVk
aW8iLCB0ZXN0V2ViVmlld0lzUGxheWluZ0F1ZGlvKTsKIH0KIAogdm9pZCBhZnRlckFsbCgpCmRp
ZmYgLS1naXQgYS9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1Rlc3RNYWluLmgg
Yi9Ub29scy9UZXN0V2ViS2l0QVBJL2d0ay9XZWJLaXQyR3RrL1Rlc3RNYWluLmgKaW5kZXggMDEx
ODUxMDE1YWI5YTA4YjQ1YmZiMGM4Y2ZiZmM3YTkzZGIwNDgxNy4uZDdkZmFkNGQ5Y2RmNGY2ZGFi
YmIxNTkxMzUwMzgwMGU5ZTM2Njc3MyAxMDA2NDQKLS0tIGEvVG9vbHMvVGVzdFdlYktpdEFQSS9n
dGsvV2ViS2l0Mkd0ay9UZXN0TWFpbi5oCisrKyBiL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvZ3RrL1dl
YktpdDJHdGsvVGVzdE1haW4uaApAQCAtMTA3LDEwICsxMDcsMjQgQEAgcHVibGljOgogICAgICAg
ICBnX29iamVjdF93ZWFrX3JlZihvYmplY3QsIHJlaW50ZXJwcmV0X2Nhc3Q8R1dlYWtOb3RpZnk+
KG9iamVjdEZpbmFsaXplZCksIHRoaXMpOwogICAgIH0KIAotICAgIHN0YXRpYyBDU3RyaW5nIGdl
dFJlc291cmNlc0RpcigpCisKKyAgICBlbnVtIFJlc291cmNlc0RpciB7CisgICAgICAgIFdlYktp
dDJHVEtSZXNvdXJjZXMsCisgICAgICAgIFdlYktpdDJSZXNvdXJjZXMsCisgICAgfTsKKworICAg
IHN0YXRpYyBDU3RyaW5nIGdldFJlc291cmNlc0RpcihSZXNvdXJjZXNEaXIgcmVzb3VyY2VzRGly
ID0gV2ViS2l0MkdUS1Jlc291cmNlcykKICAgICB7Ci0gICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4g
cmVzb3VyY2VzRGlyKGdfYnVpbGRfZmlsZW5hbWUoV0VCS0lUX1NSQ19ESVIsICJUb29scyIsICJU
ZXN0V2ViS2l0QVBJIiwgIlRlc3RzIiwgIldlYktpdDJHdGsiLCAicmVzb3VyY2VzIiwgbnVsbHB0
cikpOwotICAgICAgICByZXR1cm4gcmVzb3VyY2VzRGlyLmdldCgpOworICAgICAgICBzd2l0Y2gg
KHJlc291cmNlc0RpcikgeworICAgICAgICBjYXNlIFdlYktpdDJHVEtSZXNvdXJjZXM6IHsKKyAg
ICAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VzRGlyKGdfYnVpbGRfZmlsZW5hbWUo
V0VCS0lUX1NSQ19ESVIsICJUb29scyIsICJUZXN0V2ViS2l0QVBJIiwgIlRlc3RzIiwgIldlYktp
dDJHdGsiLCAicmVzb3VyY2VzIiwgbnVsbHB0cikpOworICAgICAgICAgICAgcmV0dXJuIHJlc291
cmNlc0Rpci5nZXQoKTsKKyAgICAgICAgfQorICAgICAgICBjYXNlIFdlYktpdDJSZXNvdXJjZXM6
IHsKKyAgICAgICAgICAgIEdVbmlxdWVQdHI8Y2hhcj4gcmVzb3VyY2VzRGlyKGdfYnVpbGRfZmls
ZW5hbWUoV0VCS0lUX1NSQ19ESVIsICJUb29scyIsICJUZXN0V2ViS2l0QVBJIiwgIlRlc3RzIiwg
IldlYktpdDIiLCBudWxscHRyKSk7CisgICAgICAgICAgICByZXR1cm4gcmVzb3VyY2VzRGlyLmdl
dCgpOworICAgICAgICB9CisgICAgICAgIH0KICAgICB9CiAKICAgICB2b2lkIGFkZExvZ0ZhdGFs
RmxhZyh1bnNpZ25lZCBmbGFnKQo=
</data>

          </attachment>
      

    </bug>

</bugzilla>