<?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>123292</bug_id>
          
          <creation_ts>2013-10-24 14:28:17 -0700</creation_ts>
          <short_desc>[GTK][WK2] Add webview signal for web-process-started</short_desc>
          <delta_ts>2017-03-11 11:02:24 -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>UNCONFIRMED</bug_status>
          <resolution></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>0</everconfirmed>
          <reporter name="Andre Moreira Magalhaes">andrunko</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>bugs-noreply</cc>
    
    <cc>cdumez</cc>
    
    <cc>cgarcia</cc>
    
    <cc>commit-queue</cc>
    
    <cc>gustavo</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mrobinson</cc>
    
    <cc>rakuco</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>943316</commentid>
    <comment_count>0</comment_count>
    <who name="Andre Moreira Magalhaes">andrunko</who>
    <bug_when>2013-10-24 14:28:17 -0700</bug_when>
    <thetext>So I wanted to add a way to map between extensions and WebProcess/Context/View on webkit2gtk and discussing with Gustavo Noronha (kov) we thought a good way to achieve this would be to have a signal (web-process-started) in the WebKitWebView with a pid argument. 

This way extensions could for example use getpid() to register on DBus using an unique name (e.g. com.foo.Bar-PID) and the view would be able to watch for this name to know when the extension registered on D-Bus (I am using multiple contexts here - added webkit_web_context_new locally also).

Patch to come.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943323</commentid>
    <comment_count>1</comment_count>
      <attachid>215109</attachid>
    <who name="Andre Moreira Magalhaes">andrunko</who>
    <bug_when>2013-10-24 15:04:15 -0700</bug_when>
    <thetext>Created attachment 215109
Patch

The signal uses GPid* as parameter as there is no GType for GPid. Maybe we could use a custom GType (holding a GPid) for it.

Let me know what you think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943336</commentid>
    <comment_count>2</comment_count>
      <attachid>215114</attachid>
    <who name="Andre Moreira Magalhaes">andrunko</who>
    <bug_when>2013-10-24 15:59:38 -0700</bug_when>
    <thetext>Created attachment 215114
Patch 

Rebased against upstream/master (was on top of 2.2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>943337</commentid>
    <comment_count>3</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2013-10-24 16:00:54 -0700</bug_when>
    <thetext>Thanks for the patch. If this patch contains new public API please make sure it follows the guidelines for new WebKit2 GTK+ API. See http://trac.webkit.org/wiki/WebKitGTK/AddingNewWebKit2API</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944881</commentid>
    <comment_count>4</comment_count>
      <attachid>215114</attachid>
    <who name="Gustavo Noronha (kov)">gustavo</who>
    <bug_when>2013-10-30 06:17:56 -0700</bug_when>
    <thetext>Comment on attachment 215114
Patch 

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

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3148
&gt; +    g_signal_emit(webView, signals[WEB_PROCESS_STARTED], 0, (gpointer) &amp;pid);

You should use a c++-style cast if it is indeed needed (static_cast&lt;gpointer&gt;())

&gt; Source/WebKit2/UIProcess/WebContext.cpp:631
&gt; +WebProcessProxy* WebContext::getWebProcessForWebConnection(const WebConnection* webConnection)

How about having a method to query the pid for the remote end of the connection instead? You could have that method in the base class so you don&apos;t need to cast to WebConnectionToWebProcess. Or maybe we should go back and rethink the identifier for processes, make it a long integer like the ones used for sub resources…</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944884</commentid>
    <comment_count>5</comment_count>
    <who name="Andre Moreira Magalhaes">andrunko</who>
    <bug_when>2013-10-30 06:42:23 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; (From update of attachment 215114 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=215114&amp;action=review
&gt; &gt; Source/WebKit2/UIProcess/WebContext.cpp:631
&gt; &gt; +WebProcessProxy* WebContext::getWebProcessForWebConnection(const WebConnection* webConnection)
&gt; 
&gt; How about having a method to query the pid for the remote end of the connection instead? You could have that method in the base class so you don&apos;t need to cast to WebConnectionToWebProcess. Or maybe we should go back and rethink the identifier for processes, make it a long integer like the ones used for sub resources…

Adding a processIdentifier virtual method on WebProcess would do it, but only the UIProcess (WebConnectionToWebProcess) would implement this method, so not sure. Another option would be to use a hash of WebConnection-&gt;WebProcess, this way the method (WebContext::getWebProcessForWebConnection) would be faster.

I believe using the pid is better here as we already have the info in the UIProcess, otherwise we would have to pass the identifier to the extension and UIProcess.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>944888</commentid>
    <comment_count>6</comment_count>
      <attachid>215114</attachid>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-10-30 07:05:15 -0700</bug_when>
    <thetext>Comment on attachment 215114
Patch 

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

Thanks for the patch. You should also add a new unit tests to test the new API.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitLoaderClient.cpp:198
&gt; +    WKContextConnectionClient wkConnectionClient = {
&gt; +        kWKContextConnectionClientCurrentVersion,
&gt; +        webView, // clientInfo
&gt; +        processDidStart
&gt; +    };
&gt; +    WebKitWebContext* webContext = webkit_web_view_get_context(webView);
&gt; +    WKContextSetConnectionClient(toAPI(webkitWebContextGetContext(webContext)), &amp;wkConnectionClient);

Why is this in WebKitLoaderClient? I think this should be in WebKitWebContext, and the context should notify all its web views.

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:1408
&gt; +     * This signal is emitted when the web process started.

You should explain this a bit more, is this also emitted when the web process is respawned after a crash?

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:1409
&gt; +     */

Since: 2.4

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3142
&gt; +void webkitWebViewWebProcessStarted(WebKitWebView* webView, WebConnection* connection)

This would be easier if it receives the pid directly instead of the connection

&gt;&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3148
&gt;&gt; +    g_signal_emit(webView, signals[WEB_PROCESS_STARTED], 0, (gpointer) &amp;pid);
&gt; 
&gt; You should use a c++-style cast if it is indeed needed (static_cast&lt;gpointer&gt;())

We could avoid this by not passing the pid as a signal parameter, and adding webkit_web_view_get_web_process_identifier(). This way you can also get the pid without having to connect to this signal (if you already know the process has been launched already).

&gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.h:252
&gt; +    gboolean   (* web_process_started)         (WebKitWebView               *web_view,

This should be void instead of gboolean.

&gt; Source/WebKit2/UIProcess/WebContext.cpp:637
&gt; +            result = m_processes[i].get();
&gt; +            break;

You can simply return m_processes[i].get() here and you don&apos;t need the local variable nor the break.

&gt; Source/WebKit2/UIProcess/WebContext.cpp:640
&gt; +    return result;

And return 0 here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945069</commentid>
    <comment_count>7</comment_count>
    <who name="Andre Moreira Magalhaes">andrunko</who>
    <bug_when>2013-10-30 11:35:40 -0700</bug_when>
    <thetext>(In reply to comment #6)

Thanks for the review.

&gt; 
&gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3142
&gt; &gt; +void webkitWebViewWebProcessStarted(WebKitWebView* webView, WebConnection* connection)
&gt; 
&gt; This would be easier if it receives the pid directly instead of the connection
&gt; 
I tried to reuse the didCreateConnection callback from WKContextConnectionClient, which is already called from WebContext when the WebProcess starts. What would you suggest instead? (see comments above). I could modify WKContextConnectionClient::didCreateConnection callback to include a pid param but that would require changing other ports.

I will work on the other changes, please let me know what you think about the question above.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945435</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2013-10-31 01:02:49 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; (In reply to comment #6)
&gt; 
&gt; Thanks for the review.
&gt; 
&gt; &gt; 
&gt; &gt; &gt; Source/WebKit2/UIProcess/API/gtk/WebKitWebView.cpp:3142
&gt; &gt; &gt; +void webkitWebViewWebProcessStarted(WebKitWebView* webView, WebConnection* connection)
&gt; &gt; 
&gt; &gt; This would be easier if it receives the pid directly instead of the connection
&gt; &gt; 
&gt; I tried to reuse the didCreateConnection callback from WKContextConnectionClient, which is already called from WebContext when the WebProcess starts. What would you suggest instead? (see comments above). I could modify WKContextConnectionClient::didCreateConnection callback to include a pid param but that would require changing other ports.

I mean to move the code to get the pid to the callback right before calling webkitWebViewWebProcessStarted.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>945640</commentid>
    <comment_count>9</comment_count>
      <attachid>215666</attachid>
    <who name="Andre Moreira Magalhaes">andrunko</who>
    <bug_when>2013-10-31 12:42:19 -0700</bug_when>
    <thetext>Created attachment 215666
Patch

Ok, this new patch should handle the review comments (unless I missed something :)) and also fix other issues like properly matching the views with the webprocess that started (one WebContext can have multiple WebProcess and each WebProcess can be associated with multiple views).

Summary of changes since last patch:
- Moved WKContextConnectionClient handling to WebKitWebContext
- Do not pass pid on web-process-started signal
- Added webkit_web_view_get_web_process_identifier
- Added webkit_web_view_is_web_process_running (and is-web-process-running property)
- Reset ProcessProxy::processIdentifier when process crashes
- Added tests for new API
- Properly match view with web process that started
- Other small changes and review fixes (e.g. doc changes)

Please let me know what you think.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>958351</commentid>
    <comment_count>10</comment_count>
      <attachid>218871</attachid>
    <who name="Adrian Perez">aperez</who>
    <bug_when>2013-12-10 07:11:15 -0800</bug_when>
    <thetext>Created attachment 218871
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>968292</commentid>
    <comment_count>11</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2014-01-15 05:43:45 -0800</bug_when>
    <thetext>This should not block the network process.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>983761</commentid>
    <comment_count>12</comment_count>
    <who name="Andre Moreira Magalhaes">andrunko</who>
    <bug_when>2014-02-23 16:37:16 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; Created an attachment (id=218871) [details]
&gt; Patch

The updated patch looks good to me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151973</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2016-01-02 09:10:12 -0800</bug_when>
    <thetext>Carlos, what do you think about this one?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1151984</commentid>
    <comment_count>14</comment_count>
    <who name="Carlos Garcia Campos">cgarcia</who>
    <bug_when>2016-01-02 09:51:40 -0800</bug_when>
    <thetext>I need to look at the patch in detail, but maybe this is possible with WebKitWebContext::initialize-web-extensions signal + webkit_web_context_set_web_extensions_initialization_user_data() nowadays. I think that&apos;s what we do in ephy</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1196194</commentid>
    <comment_count>15</comment_count>
      <attachid>218871</attachid>
    <who name="Brady Eidson">beidson</who>
    <bug_when>2016-05-24 22:05:43 -0700</bug_when>
    <thetext>Comment on attachment 218871
Patch

Assuming that patches for review since 2013 are stale, r-</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215109</attachid>
            <date>2013-10-24 15:04:15 -0700</date>
            <delta_ts>2013-10-24 15:59:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>0001-GTK-WK2-Add-webview-signal-for-web-process-started.patch</filename>
            <type>text/plain</type>
            <size>11345</size>
            <attacher name="Andre Moreira Magalhaes">andrunko</attacher>
            
              <data encoding="base64">RnJvbSBlMDdmOTRmOTM1NDVjZWZlOTVjMWE1Nzg1Yzc3NzUwNDZjMzE0NzlkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSIg
PGFuZHJlLm1hZ2FsaGFlc0Bjb2xsYWJvcmEuY28udWs+CkRhdGU6IFRodSwgMjQgT2N0IDIwMTMg
MjI6Mjg6MzEgKzAxMDAKU3ViamVjdDogW1BBVENIXSBbR1RLXVtXSzJdIEFkZCB3ZWJ2aWV3IHNp
Z25hbCBmb3Igd2ViLXByb2Nlc3Mtc3RhcnRlZAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMzI5MgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpJIHdhbnRl
ZCB0byBhZGQgYSB3YXkgdG8gbWFwIGJldHdlZW4gZXh0ZW5zaW9ucyBhbmQgV2ViUHJvY2Vzcy9D
b250ZXh0L1ZpZXcgb24gd2Via2l0Mmd0ayBhbmQKZGlzY3Vzc2luZyB3aXRoIEd1c3Rhdm8gTm9y
b25oYSAoa292KSB3ZSB0aG91Z2h0IGEgZ29vZCB3YXkgdG8gYWNoaWV2ZSB0aGlzIHdvdWxkIGJl
IHRvIGhhdmUgYQpzaWduYWwgKHdlYi1wcm9jZXNzLXN0YXJ0ZWQpIGluIHRoZSBXZWJLaXRXZWJW
aWV3IHdpdGggYSBwaWQgYXJndW1lbnQuCgpUaGlzIHdheSBleHRlbnNpb25zIGNvdWxkIGZvciBl
eGFtcGxlIHVzZSBnZXRwaWQoKSB0byByZWdpc3RlciBvbiBEQnVzIHVzaW5nIGFuIHVuaXF1ZSBu
YW1lIChlLmcuCmNvbS5mb28uQmFyLVBJRCkgYW5kIHRoZSB2aWV3IHdvdWxkIGJlIGFibGUgdG8g
d2F0Y2ggZm9yIHRoaXMgbmFtZSB0byBrbm93IHdoZW4gdGhlIGV4dGVuc2lvbgpyZWdpc3RlcmVk
IG9uIEQtQnVzLgoKKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwOgoo
cHJvY2Vzc0RpZFN0YXJ0KToKV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudCBjYWxsYmFjayBpbnZv
a2VkIHdoZW4gdGhlIFdlYlByb2Nlc3MgaGFzIHN0YXJ0ZWQuCihhdHRhY2hMb2FkZXJDbGllbnRU
b1ZpZXcpOgpTZXR1cCBhIFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQgdG8gYmUgaW5mb3JtZWQg
d2hlbiB0aGUKV2ViUHJvY2VzcyBoYXMgc3RhcnRlZAoqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXcuY3BwOgood2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgpBZGQgc2lnbmFsIHdl
Yi1wcm9jZXNzLXN0YXJ0ZWQuCih3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc1N0YXJ0ZWQpOgpNZXRo
b2QgaW52b2tlZCBmcm9tIFdlYktpdExvYWRlckNsaWVudDo6cHJvY2Vzc0RpZFN0YXJ0IHdoZW4g
dGhlIFdlYlByb2Nlc3MgaGFzIHN0YXJ0ZWQuCiogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlldy5oOgoqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2YXRlLmg6CiogVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwOgooV2ViS2l0OjpXZWJDb250ZXh0OjpnZXRXZWJQcm9jZXNz
Rm9yV2ViQ29ubmVjdGlvbik6Ck1ldGhvZCB0byByZXRyaWV2ZSBhIFdlYlByb2Nlc3NQcm94eSBm
cm9tIGEgZ2l2ZW4gV2ViQ29ubmVjdGlvbiBvbiBhIFdlYkNvbnRleHQuCiogVUlQcm9jZXNzL1dl
YkNvbnRleHQuaDoKLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDMzICsrKysrKysrKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwICAgICAgIHwgMTQgKysrKysrKysrCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCB8IDI4ICsrKysrKysr
KysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
dy5oICAgfCAgNSArKystCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZh
dGUuaCAgICAgICB8ICAyICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAgICAgICAgICAgICB8IDEyICsrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5oICAgICAgICAgICAgICB8ICAzICsrCiA3IGZpbGVzIGNoYW5nZWQsIDk2IGluc2Vy
dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYTU1MDRiNi4uOWRlMzU3MiAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTEwLTI0ICBBbmRyZSBNb3JlaXJhIE1h
Z2FsaGFlcyAgIDxhbmRyZS5tYWdhbGhhZXNAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFtH
VEtdW1dLMl0gQWRkIHdlYnZpZXcgc2lnbmFsIGZvciB3ZWItcHJvY2Vzcy1zdGFydGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMyOTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIHdhbnRlZCB0byBh
ZGQgYSB3YXkgdG8gbWFwIGJldHdlZW4gZXh0ZW5zaW9ucyBhbmQgV2ViUHJvY2Vzcy9Db250ZXh0
L1ZpZXcgb24gd2Via2l0Mmd0ayBhbmQKKyAgICAgICAgZGlzY3Vzc2luZyB3aXRoIEd1c3Rhdm8g
Tm9yb25oYSAoa292KSB3ZSB0aG91Z2h0IGEgZ29vZCB3YXkgdG8gYWNoaWV2ZSB0aGlzIHdvdWxk
IGJlIHRvIGhhdmUgYQorICAgICAgICBzaWduYWwgKHdlYi1wcm9jZXNzLXN0YXJ0ZWQpIGluIHRo
ZSBXZWJLaXRXZWJWaWV3IHdpdGggYSBwaWQgYXJndW1lbnQuCisKKyAgICAgICAgVGhpcyB3YXkg
ZXh0ZW5zaW9ucyBjb3VsZCBmb3IgZXhhbXBsZSB1c2UgZ2V0cGlkKCkgdG8gcmVnaXN0ZXIgb24g
REJ1cyB1c2luZyBhbiB1bmlxdWUgbmFtZSAoZS5nLgorICAgICAgICBjb20uZm9vLkJhci1QSUQp
IGFuZCB0aGUgdmlldyB3b3VsZCBiZSBhYmxlIHRvIHdhdGNoIGZvciB0aGlzIG5hbWUgdG8ga25v
dyB3aGVuIHRoZSBleHRlbnNpb24KKyAgICAgICAgcmVnaXN0ZXJlZCBvbiBELUJ1cy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChwcm9jZXNzRGlkU3RhcnQpOgorICAgICAgICBXS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50IGNh
bGxiYWNrIGludm9rZWQgd2hlbiB0aGUgV2ViUHJvY2VzcyBoYXMgc3RhcnRlZC4KKyAgICAgICAg
KGF0dGFjaExvYWRlckNsaWVudFRvVmlldyk6CisgICAgICAgIFNldHVwIGEgV0tDb250ZXh0Q29u
bmVjdGlvbkNsaWVudCB0byBiZSBpbmZvcm1lZCB3aGVuIHRoZQorICAgICAgICBXZWJQcm9jZXNz
IGhhcyBzdGFydGVkCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5j
cHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAgICAgIEFkZCBz
aWduYWwgd2ViLXByb2Nlc3Mtc3RhcnRlZC4KKyAgICAgICAgKHdlYmtpdFdlYlZpZXdXZWJQcm9j
ZXNzU3RhcnRlZCk6CisgICAgICAgIE1ldGhvZCBpbnZva2VkIGZyb20gV2ViS2l0TG9hZGVyQ2xp
ZW50Ojpwcm9jZXNzRGlkU3RhcnQgd2hlbiB0aGUgV2ViUHJvY2VzcyBoYXMgc3RhcnRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmdldFdlYlBy
b2Nlc3NGb3JXZWJDb25uZWN0aW9uKToKKyAgICAgICAgTWV0aG9kIHRvIHJldHJpZXZlIGEgV2Vi
UHJvY2Vzc1Byb3h5IGZyb20gYSBnaXZlbiBXZWJDb25uZWN0aW9uIG9uIGEgV2ViQ29udGV4dC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorCiAyMDEzLTA5LTI0ICBMb3Jlbnpv
IFRpbHZlICA8bHRpbHZlQGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gRml4IGNvbXBpbGF0
aW9uIHByb2JsZW1zIHdoZW4gc2V0dGluZyBFTkFCTEVfRFJBR19TVVBQT1JUID0gRkFMU0UKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNs
aWVudC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJD
bGllbnQuY3BwCmluZGV4IGMzYzRhMjMuLmE2ODA0NzUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcApAQCAtMjMs
NiArMjMsNyBAQAogCiAjaW5jbHVkZSAiV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0ZS5oIgog
I2luY2x1ZGUgIldlYktpdFVSSVJlc3BvbnNlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdFdl
YkNvbnRleHRQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2YXRlLmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld1ByaXZhdGUuaCIKICNpbmNsdWRlIDx3dGYvZ29iamVj
dC9HT3duUHRyLmg+CkBAIC0xMzMsNiArMTM0LDExIEBAIHN0YXRpYyB2b2lkIGRpZFJlY2VpdmVB
dXRoZW50aWNhdGlvbkNoYWxsZW5nZUluRnJhbWUoV0tQYWdlUmVmIHBhZ2UsIFdLRnJhbWVSZWYK
ICAgICB3ZWJraXRXZWJWaWV3SGFuZGxlQXV0aGVudGljYXRpb25DaGFsbGVuZ2UoV0VCS0lUX1dF
Ql9WSUVXKGNsaWVudEluZm8pLCB0b0ltcGwoYXV0aGVudGljYXRpb25DaGFsbGVuZ2UpKTsKIH0K
IAorc3RhdGljIHZvaWQgcHJvY2Vzc0RpZFN0YXJ0KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0Nv
bm5lY3Rpb25SZWYgY29ubmVjdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICB3
ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc1N0YXJ0ZWQoV0VCS0lUX1dFQl9WSUVXKGNsaWVudEluZm8p
LCB0b0ltcGwoY29ubmVjdGlvbikpOworfQorCiBzdGF0aWMgdm9pZCBwcm9jZXNzRGlkQ3Jhc2go
V0tQYWdlUmVmIHBhZ2UsIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCiB7CiAgICAgd2Via2l0V2Vi
Vmlld1dlYlByb2Nlc3NDcmFzaGVkKFdFQktJVF9XRUJfVklFVyhjbGllbnRJbmZvKSk7CkBAIC0x
ODIsNSArMTg4LDEzIEBAIHZvaWQgYXR0YWNoTG9hZGVyQ2xpZW50VG9WaWV3KFdlYktpdFdlYlZp
ZXcqIHdlYlZpZXcpCiAgICAgfTsKICAgICBXS1BhZ2VSZWYgd2tQYWdlID0gdG9BUEkod2Via2l0
V2ViVmlld0Jhc2VHZXRQYWdlKFdFQktJVF9XRUJfVklFV19CQVNFKHdlYlZpZXcpKSk7CiAgICAg
V0tQYWdlU2V0UGFnZUxvYWRlckNsaWVudCh3a1BhZ2UsICZ3a0xvYWRlckNsaWVudCk7CisKKyAg
ICBXS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50IHdrQ29ubmVjdGlvbkNsaWVudCA9IHsKKyAgICAg
ICAga1dLQ29udGV4dENvbm5lY3Rpb25DbGllbnRDdXJyZW50VmVyc2lvbiwKKyAgICAgICAgd2Vi
VmlldywgLy8gY2xpZW50SW5mbworICAgICAgICBwcm9jZXNzRGlkU3RhcnQKKyAgICB9OworICAg
IFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQgPSB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2NvbnRl
eHQod2ViVmlldyk7CisgICAgV0tDb250ZXh0U2V0Q29ubmVjdGlvbkNsaWVudCh0b0FQSSh3ZWJr
aXRXZWJDb250ZXh0R2V0Q29udGV4dCh3ZWJDb250ZXh0KSksICZ3a0Nvbm5lY3Rpb25DbGllbnQp
OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJL
aXRXZWJWaWV3LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXcuY3BwCmluZGV4IDQ0NjI5ZWMuLmRhMTcyYmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwCkBAIC01OCw2ICs1OCw3IEBA
CiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0dyb3VwUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktp
dFdlYlZpZXdQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2luZG93UHJvcGVydGllc1ByaXZh
dGUuaCIKKyNpbmNsdWRlICJXZWJQcm9jZXNzUHJveHkuaCIKICNpbmNsdWRlIDxKYXZhU2NyaXB0
Q29yZS9BUElDYXN0Lmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnSWNvbi5oPgogI2luY2x1ZGUg
PFdlYkNvcmUvR093blB0ckd0ay5oPgpAQCAtMTE4LDYgKzExOSw3IEBAIGVudW0gewogCiAgICAg
SU5TRUNVUkVfQ09OVEVOVF9ERVRFQ1RFRCwKIAorICAgIFdFQl9QUk9DRVNTX1NUQVJURUQsCiAg
ICAgV0VCX1BST0NFU1NfQ1JBU0hFRCwKIAogICAgIEFVVEhFTlRJQ0FURSwKQEAgLTEzNjQsNiAr
MTM2NiwyMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRX
ZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgIFdFQktJVF9UWVBFX0lOU0VD
VVJFX0NPTlRFTlRfRVZFTlQpOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzo6d2Vi
LXByb2Nlc3Mtc3RhcnRlZDoKKyAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldwor
ICAgICAqIEBwaWQ6IHByb2Nlc3MgaWRlbnRpZmllciBmb3IgdGhlIHdlYiBwcm9jZXNzIHRoYXQg
c3RhcnRlZAorICAgICAqCisgICAgICogVGhpcyBzaWduYWwgaXMgZW1pdHRlZCB3aGVuIHRoZSB3
ZWIgcHJvY2VzcyBzdGFydGVkLgorICAgICAqLworICAgIHNpZ25hbHNbV0VCX1BST0NFU1NfU1RB
UlRFRF0gPSBnX3NpZ25hbF9uZXcoCisgICAgICAgICJ3ZWItcHJvY2Vzcy1zdGFydGVkIiwKKyAg
ICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKKyAgICAgICAgR19TSUdOQUxf
UlVOX0xBU1QsCisgICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3MsIHdl
Yl9wcm9jZXNzX3N0YXJ0ZWQpLAorICAgICAgICAwLCAwLAorICAgICAgICBnX2NjbG9zdXJlX21h
cnNoYWxfVk9JRF9fUE9JTlRFUiwKKyAgICAgICAgR19UWVBFX05PTkUsIDEsCisgICAgICAgIEdf
VFlQRV9QT0lOVEVSKTsKKworICAgIC8qKgogICAgICAqIFdlYktpdFdlYlZpZXc6OndlYi1wcm9j
ZXNzLWNyYXNoZWQ6CiAgICAgICogQHdlYl92aWV3OiB0aGUgI1dlYktpdFdlYlZpZXcKICAgICAg
KgpAQCAtMzA4MSw2ICszMTAwLDE1IEBAIGNhaXJvX3N1cmZhY2VfdCogd2Via2l0X3dlYl92aWV3
X2dldF9zbmFwc2hvdF9maW5pc2goV2ViS2l0V2ViVmlldyogd2ViVmlldywgR0FzCiAgICAgcmV0
dXJuIHN0YXRpY19jYXN0PGNhaXJvX3N1cmZhY2VfdCo+KGdfdGFza19wcm9wYWdhdGVfcG9pbnRl
cihHX1RBU0socmVzdWx0KSwgZXJyb3IpKTsKIH0KIAordm9pZCB3ZWJraXRXZWJWaWV3V2ViUHJv
Y2Vzc1N0YXJ0ZWQoV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViQ29ubmVjdGlvbiogY29ubmVj
dGlvbikKK3sKKyAgICBXZWJDb250ZXh0KiBjb250ZXh0ID0gd2Via2l0V2ViQ29udGV4dEdldENv
bnRleHQod2ViVmlldy0+cHJpdi0+Y29udGV4dCk7CisgICAgV2ViUHJvY2Vzc1Byb3h5KiB3ZWJQ
cm9jZXNzID0gY29udGV4dC0+Z2V0V2ViUHJvY2Vzc0ZvcldlYkNvbm5lY3Rpb24oY29ubmVjdGlv
bik7CisgICAgQVNTRVJUKHdlYlByb2Nlc3MpOworICAgIEdQaWQgcGlkID0gd2ViUHJvY2Vzcy0+
cHJvY2Vzc0lkZW50aWZpZXIoKTsKKyAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25hbHNb
V0VCX1BST0NFU1NfU1RBUlRFRF0sIDAsIChncG9pbnRlcikgJnBpZCk7Cit9CisKIHZvaWQgd2Vi
a2l0V2ViVmlld1dlYlByb2Nlc3NDcmFzaGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7CiAg
ICAgZ2Jvb2xlYW4gcmV0dXJuVmFsdWU7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKaW5kZXggYTRkNmU0My4uMDc4MzE0ZCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCisrKyBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaApAQCAtMjQ1
LDEzICsyNDUsMTYgQEAgc3RydWN0IF9XZWJLaXRXZWJWaWV3Q2xhc3MgewogCiAgICAgZ2Jvb2xl
YW4gICAoKiBhdXRoZW50aWNhdGUpICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
ICAgICAgICp3ZWJfdmlldywKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICBXZWJLaXRBdXRoZW50aWNhdGlvblJlcXVlc3QgKnJlcXVlc3QpOworCisgICAgZ2Jv
b2xlYW4gICAoKiB3ZWJfcHJvY2Vzc19zdGFydGVkKSAgICAgICAoV2ViS2l0V2ViVmlldyAgICAg
ICAgICAgICAgICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBjb25zdCBHUGlkICAgICAgICAgICAgICAgICAgKnBpZCk7CisKICAgICB2b2lk
ICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZl
ZDEpICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKICAgICB2
b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNl
cnZlZDQpICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDUpICh2b2lkKTsKLSAg
ICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDYpICh2b2lkKTsKIH07CiAKIFdFQktJVF9BUEkgR1R5
cGUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRX
ZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGViMWYyN2QuLmNjZWYyMWQgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaApA
QCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBXZWJLaXRXZWJWaWV3UHJpdmF0ZV9oCiAjZGVmaW5l
IFdlYktpdFdlYlZpZXdQcml2YXRlX2gKIAorI2luY2x1ZGUgIldlYkNvbm5lY3Rpb24uaCIKICNp
bmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXcuaCIKICNpbmNsdWRl
IDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC01OSw2ICs2MCw3IEBAIHZvaWQgd2Via2l0V2ViVmll
d1BvcHVsYXRlQ29udGV4dE1lbnUoV2ViS2l0V2ViVmlldyosIFdlYktpdDo6SW1tdXRhYmxlQXJy
YXkqIHByCiB2b2lkIHdlYmtpdFdlYlZpZXdTdWJtaXRGb3JtUmVxdWVzdChXZWJLaXRXZWJWaWV3
KiwgV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0Kik7CiB2b2lkIHdlYmtpdFdlYlZpZXdIYW5k
bGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJLaXRXZWJWaWV3KiwgV2ViS2l0OjpBdXRoZW50
aWNhdGlvbkNoYWxsZW5nZVByb3h5Kik7CiB2b2lkIHdlYmtpdFdlYlZpZXdJbnNlY3VyZUNvbnRl
bnREZXRlY3RlZChXZWJLaXRXZWJWaWV3KiwgV2ViS2l0SW5zZWN1cmVDb250ZW50RXZlbnQpOwor
dm9pZCB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc1N0YXJ0ZWQoV2ViS2l0V2ViVmlldyosIFdlYktp
dDo6V2ViQ29ubmVjdGlvbiopOwogdm9pZCB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc0NyYXNoZWQo
V2ViS2l0V2ViVmlldyopOwogCiAjZW5kaWYgLy8gV2ViS2l0V2ViVmlld1ByaXZhdGVfaApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IGEyOTI4NDEuLmIwZTI0YmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKQEAgLTYyMyw2ICs2MjMs
MTggQEAgYm9vbCBXZWJDb250ZXh0OjpzaG91bGRUZXJtaW5hdGUoV2ViUHJvY2Vzc1Byb3h5KiBw
cm9jZXNzKQogICAgIHJldHVybiB0cnVlOwogfQogCitXZWJQcm9jZXNzUHJveHkqIFdlYkNvbnRl
eHQ6OmdldFdlYlByb2Nlc3NGb3JXZWJDb25uZWN0aW9uKGNvbnN0IFdlYkNvbm5lY3Rpb24qIHdl
YkNvbm5lY3Rpb24pCit7CisgICAgV2ViUHJvY2Vzc1Byb3h5KiByZXN1bHQgPSAwOworICAgIGZv
ciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3Byb2Nlc3Nlcy5zaXplKCk7ICsraSkgeworICAgICAg
ICBpZiAod2ViQ29ubmVjdGlvbiA9PSBtX3Byb2Nlc3Nlc1tpXS0+d2ViQ29ubmVjdGlvbigpKSB7
CisgICAgICAgICAgICByZXN1bHQgPSBtX3Byb2Nlc3Nlc1tpXS5nZXQoKTsKKyAgICAgICAgICAg
IGJyZWFrOworICAgICAgICB9CisgICAgfQorICAgIHJldHVybiByZXN1bHQ7Cit9CisKIHZvaWQg
V2ViQ29udGV4dDo6cHJvY2Vzc1dpbGxPcGVuQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkqIHBy
b2Nlc3MpCiB7CiAgICAgbV9zdG9yYWdlTWFuYWdlci0+cHJvY2Vzc1dpbGxPcGVuQ29ubmVjdGlv
bihwcm9jZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IGFjMzY3
MjIuLjM3ZGQ4NmYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250
ZXh0LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaApAQCAtNjYs
NiArNjYsNyBAQCBPQkpDX0NMQVNTIE5TU3RyaW5nOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNs
YXNzIERvd25sb2FkUHJveHk7CitjbGFzcyBXZWJDb25uZWN0aW9uOwogY2xhc3MgV2ViQ29udGV4
dFN1cHBsZW1lbnQ7CiBjbGFzcyBXZWJJY29uRGF0YWJhc2U7CiBjbGFzcyBXZWJQYWdlR3JvdXA7
CkBAIC0yMzksNiArMjQwLDggQEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGRUZXJtaW5hdGUo
V2ViUHJvY2Vzc1Byb3h5Kik7CiAKKyAgICBXZWJQcm9jZXNzUHJveHkqIGdldFdlYlByb2Nlc3NG
b3JXZWJDb25uZWN0aW9uKGNvbnN0IFdlYkNvbm5lY3Rpb24qKTsKKwogICAgIHZvaWQgZGlzYWJs
ZVByb2Nlc3NUZXJtaW5hdGlvbigpIHsgbV9wcm9jZXNzVGVybWluYXRpb25FbmFibGVkID0gZmFs
c2U7IH0KICAgICB2b2lkIGVuYWJsZVByb2Nlc3NUZXJtaW5hdGlvbigpOwogCi0tIAoxLjguMy4y
Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215114</attachid>
            <date>2013-10-24 15:59:38 -0700</date>
            <delta_ts>2013-10-31 12:42:19 -0700</delta_ts>
            <desc>Patch </desc>
            <filename>0001-GTK-WK2-Add-webview-signal-for-web-process-started.patch</filename>
            <type>text/plain</type>
            <size>11356</size>
            <attacher name="Andre Moreira Magalhaes">andrunko</attacher>
            
              <data encoding="base64">RnJvbSBmYTJjZGI2ZDFlYmI0NjBiN2RjNjczMzYzZGVmMGQxZjNmZGZhZjg3IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSIg
PGFuZHJlLm1hZ2FsaGFlc0Bjb2xsYWJvcmEuY28udWs+CkRhdGU6IFRodSwgMjQgT2N0IDIwMTMg
MjA6NTY6NTMgLTAyMDAKU3ViamVjdDogW1BBVENIXSBbR1RLXVtXSzJdIEFkZCB3ZWJ2aWV3IHNp
Z25hbCBmb3Igd2ViLXByb2Nlc3Mtc3RhcnRlZAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMzI5MgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpJIHdhbnRl
ZCB0byBhZGQgYSB3YXkgdG8gbWFwIGJldHdlZW4gZXh0ZW5zaW9ucyBhbmQgV2ViUHJvY2Vzcy9D
b250ZXh0L1ZpZXcgb24gd2Via2l0Mmd0ayBhbmQKZGlzY3Vzc2luZyB3aXRoIEd1c3Rhdm8gTm9y
b25oYSAoa292KSB3ZSB0aG91Z2h0IGEgZ29vZCB3YXkgdG8gYWNoaWV2ZSB0aGlzIHdvdWxkIGJl
IHRvIGhhdmUgYQpzaWduYWwgKHdlYi1wcm9jZXNzLXN0YXJ0ZWQpIGluIHRoZSBXZWJLaXRXZWJW
aWV3IHdpdGggYSBwaWQgYXJndW1lbnQuCgpUaGlzIHdheSBleHRlbnNpb25zIGNvdWxkIGZvciBl
eGFtcGxlIHVzZSBnZXRwaWQoKSB0byByZWdpc3RlciBvbiBEQnVzIHVzaW5nIGFuIHVuaXF1ZSBu
YW1lIChlLmcuCmNvbS5mb28uQmFyLVBJRCkgYW5kIHRoZSB2aWV3IHdvdWxkIGJlIGFibGUgdG8g
d2F0Y2ggZm9yIHRoaXMgbmFtZSB0byBrbm93IHdoZW4gdGhlIGV4dGVuc2lvbgpyZWdpc3RlcmVk
IG9uIEQtQnVzLgoKKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwOgoo
cHJvY2Vzc0RpZFN0YXJ0KToKV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudCBjYWxsYmFjayBpbnZv
a2VkIHdoZW4gdGhlIFdlYlByb2Nlc3MgaGFzIHN0YXJ0ZWQuCihhdHRhY2hMb2FkZXJDbGllbnRU
b1ZpZXcpOgpTZXR1cCBhIFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQgdG8gYmUgaW5mb3JtZWQg
d2hlbiB0aGUKV2ViUHJvY2VzcyBoYXMgc3RhcnRlZAoqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYlZpZXcuY3BwOgood2Via2l0X3dlYl92aWV3X2NsYXNzX2luaXQpOgpBZGQgc2lnbmFsIHdl
Yi1wcm9jZXNzLXN0YXJ0ZWQuCih3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc1N0YXJ0ZWQpOgpNZXRo
b2QgaW52b2tlZCBmcm9tIFdlYktpdExvYWRlckNsaWVudDo6cHJvY2Vzc0RpZFN0YXJ0IHdoZW4g
dGhlIFdlYlByb2Nlc3MgaGFzIHN0YXJ0ZWQuCiogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2Vi
Vmlldy5oOgoqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2YXRlLmg6CiogVUlQ
cm9jZXNzL1dlYkNvbnRleHQuY3BwOgooV2ViS2l0OjpXZWJDb250ZXh0OjpnZXRXZWJQcm9jZXNz
Rm9yV2ViQ29ubmVjdGlvbik6Ck1ldGhvZCB0byByZXRyaWV2ZSBhIFdlYlByb2Nlc3NQcm94eSBm
cm9tIGEgZ2l2ZW4gV2ViQ29ubmVjdGlvbiBvbiBhIFdlYkNvbnRleHQuCiogVUlQcm9jZXNzL1dl
YkNvbnRleHQuaDoKLS0tCiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cgICAgICAgICAgICAgICAg
ICAgICAgICAgICB8IDMzICsrKysrKysrKysrKysrKysrKysrKysKIC4uLi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRMb2FkZXJDbGllbnQuY3BwICAgICAgIHwgMTQgKysrKysrKysrCiBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcCB8IDI4ICsrKysrKysr
KysrKysrKysrKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmll
dy5oICAgfCAgNSArKystCiAuLi4vVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZh
dGUuaCAgICAgICB8ICAyICsrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAgICAgICAgICAgICB8IDEyICsrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2Vi
Q29udGV4dC5oICAgICAgICAgICAgICB8ICAzICsrCiA3IGZpbGVzIGNoYW5nZWQsIDk2IGluc2Vy
dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9DaGFu
Z2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggMTlkNDViZC4uNjNhNDcwNSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQy
L0NoYW5nZUxvZwpAQCAtMSwzICsxLDM2IEBACisyMDEzLTEwLTI0ICBBbmRyZSBNb3JlaXJhIE1h
Z2FsaGFlcyAgIDxhbmRyZS5tYWdhbGhhZXNAY29sbGFib3JhLmNvLnVrPgorCisgICAgICAgIFtH
VEtdW1dLMl0gQWRkIHdlYnZpZXcgc2lnbmFsIGZvciB3ZWItcHJvY2Vzcy1zdGFydGVkCisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMjMyOTIKKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJIHdhbnRlZCB0byBh
ZGQgYSB3YXkgdG8gbWFwIGJldHdlZW4gZXh0ZW5zaW9ucyBhbmQgV2ViUHJvY2Vzcy9Db250ZXh0
L1ZpZXcgb24gd2Via2l0Mmd0ayBhbmQKKyAgICAgICAgZGlzY3Vzc2luZyB3aXRoIEd1c3Rhdm8g
Tm9yb25oYSAoa292KSB3ZSB0aG91Z2h0IGEgZ29vZCB3YXkgdG8gYWNoaWV2ZSB0aGlzIHdvdWxk
IGJlIHRvIGhhdmUgYQorICAgICAgICBzaWduYWwgKHdlYi1wcm9jZXNzLXN0YXJ0ZWQpIGluIHRo
ZSBXZWJLaXRXZWJWaWV3IHdpdGggYSBwaWQgYXJndW1lbnQuCisKKyAgICAgICAgVGhpcyB3YXkg
ZXh0ZW5zaW9ucyBjb3VsZCBmb3IgZXhhbXBsZSB1c2UgZ2V0cGlkKCkgdG8gcmVnaXN0ZXIgb24g
REJ1cyB1c2luZyBhbiB1bmlxdWUgbmFtZSAoZS5nLgorICAgICAgICBjb20uZm9vLkJhci1QSUQp
IGFuZCB0aGUgdmlldyB3b3VsZCBiZSBhYmxlIHRvIHdhdGNoIGZvciB0aGlzIG5hbWUgdG8ga25v
dyB3aGVuIHRoZSBleHRlbnNpb24KKyAgICAgICAgcmVnaXN0ZXJlZCBvbiBELUJ1cy4KKworICAg
ICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHA6CisgICAgICAg
IChwcm9jZXNzRGlkU3RhcnQpOgorICAgICAgICBXS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50IGNh
bGxiYWNrIGludm9rZWQgd2hlbiB0aGUgV2ViUHJvY2VzcyBoYXMgc3RhcnRlZC4KKyAgICAgICAg
KGF0dGFjaExvYWRlckNsaWVudFRvVmlldyk6CisgICAgICAgIFNldHVwIGEgV0tDb250ZXh0Q29u
bmVjdGlvbkNsaWVudCB0byBiZSBpbmZvcm1lZCB3aGVuIHRoZQorICAgICAgICBXZWJQcm9jZXNz
IGhhcyBzdGFydGVkCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5j
cHA6CisgICAgICAgICh3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdCk6CisgICAgICAgIEFkZCBz
aWduYWwgd2ViLXByb2Nlc3Mtc3RhcnRlZC4KKyAgICAgICAgKHdlYmtpdFdlYlZpZXdXZWJQcm9j
ZXNzU3RhcnRlZCk6CisgICAgICAgIE1ldGhvZCBpbnZva2VkIGZyb20gV2ViS2l0TG9hZGVyQ2xp
ZW50Ojpwcm9jZXNzRGlkU3RhcnQgd2hlbiB0aGUgV2ViUHJvY2VzcyBoYXMgc3RhcnRlZC4KKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3Lmg6CisgICAgICAgICogVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nl
c3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkNvbnRleHQ6OmdldFdlYlBy
b2Nlc3NGb3JXZWJDb25uZWN0aW9uKToKKyAgICAgICAgTWV0aG9kIHRvIHJldHJpZXZlIGEgV2Vi
UHJvY2Vzc1Byb3h5IGZyb20gYSBnaXZlbiBXZWJDb25uZWN0aW9uIG9uIGEgV2ViQ29udGV4dC4K
KyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5oOgorCiAyMDEzLTEwLTI0ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgVHJpZWQgdG8gZml4IHRoZSBNb3Vu
dGFpbiBMaW9uIGJ1aWxkLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0TG9hZGVyQ2xpZW50LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdExvYWRlckNsaWVudC5jcHAKaW5kZXggYzNjNGEyMy4uYTY4MDQ3NSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0TG9hZGVyQ2xp
ZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRMb2Fk
ZXJDbGllbnQuY3BwCkBAIC0yMyw2ICsyMyw3IEBACiAKICNpbmNsdWRlICJXZWJLaXRCYWNrRm9y
d2FyZExpc3RQcml2YXRlLmgiCiAjaW5jbHVkZSAiV2ViS2l0VVJJUmVzcG9uc2VQcml2YXRlLmgi
CisjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRX
ZWJWaWV3QmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgog
I2luY2x1ZGUgPHd0Zi9nb2JqZWN0L0dPd25QdHIuaD4KQEAgLTEzMyw2ICsxMzQsMTEgQEAgc3Rh
dGljIHZvaWQgZGlkUmVjZWl2ZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlSW5GcmFtZShXS1BhZ2VS
ZWYgcGFnZSwgV0tGcmFtZVJlZgogICAgIHdlYmtpdFdlYlZpZXdIYW5kbGVBdXRoZW50aWNhdGlv
bkNoYWxsZW5nZShXRUJLSVRfV0VCX1ZJRVcoY2xpZW50SW5mbyksIHRvSW1wbChhdXRoZW50aWNh
dGlvbkNoYWxsZW5nZSkpOwogfQogCitzdGF0aWMgdm9pZCBwcm9jZXNzRGlkU3RhcnQoV0tDb250
ZXh0UmVmIGNvbnRleHQsIFdLQ29ubmVjdGlvblJlZiBjb25uZWN0aW9uLCBjb25zdCB2b2lkKiBj
bGllbnRJbmZvKQoreworICAgIHdlYmtpdFdlYlZpZXdXZWJQcm9jZXNzU3RhcnRlZChXRUJLSVRf
V0VCX1ZJRVcoY2xpZW50SW5mbyksIHRvSW1wbChjb25uZWN0aW9uKSk7Cit9CisKIHN0YXRpYyB2
b2lkIHByb2Nlc3NEaWRDcmFzaChXS1BhZ2VSZWYgcGFnZSwgY29uc3Qgdm9pZCogY2xpZW50SW5m
bykKIHsKICAgICB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc0NyYXNoZWQoV0VCS0lUX1dFQl9WSUVX
KGNsaWVudEluZm8pKTsKQEAgLTE4Miw1ICsxODgsMTMgQEAgdm9pZCBhdHRhY2hMb2FkZXJDbGll
bnRUb1ZpZXcoV2ViS2l0V2ViVmlldyogd2ViVmlldykKICAgICB9OwogICAgIFdLUGFnZVJlZiB3
a1BhZ2UgPSB0b0FQSSh3ZWJraXRXZWJWaWV3QmFzZUdldFBhZ2UoV0VCS0lUX1dFQl9WSUVXX0JB
U0Uod2ViVmlldykpKTsKICAgICBXS1BhZ2VTZXRQYWdlTG9hZGVyQ2xpZW50KHdrUGFnZSwgJndr
TG9hZGVyQ2xpZW50KTsKKworICAgIFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQgd2tDb25uZWN0
aW9uQ2xpZW50ID0geworICAgICAgICBrV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudEN1cnJlbnRW
ZXJzaW9uLAorICAgICAgICB3ZWJWaWV3LCAvLyBjbGllbnRJbmZvCisgICAgICAgIHByb2Nlc3NE
aWRTdGFydAorICAgIH07CisgICAgV2ViS2l0V2ViQ29udGV4dCogd2ViQ29udGV4dCA9IHdlYmtp
dF93ZWJfdmlld19nZXRfY29udGV4dCh3ZWJWaWV3KTsKKyAgICBXS0NvbnRleHRTZXRDb25uZWN0
aW9uQ2xpZW50KHRvQVBJKHdlYmtpdFdlYkNvbnRleHRHZXRDb250ZXh0KHdlYkNvbnRleHQpKSwg
JndrQ29ubmVjdGlvbkNsaWVudCk7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAKaW5kZXggZDRlNGQzNy4uZWNlNTBlZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5j
cHAKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5j
cHAKQEAgLTU5LDYgKzU5LDcgQEAKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3R3JvdXBQcml2YXRl
LmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlld1ByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRX
aW5kb3dQcm9wZXJ0aWVzUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgog
I2luY2x1ZGUgPEphdmFTY3JpcHRDb3JlL0FQSUNhc3QuaD4KICNpbmNsdWRlIDxXZWJDb3JlL0Ry
YWdJY29uLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9HT3duUHRyR3RrLmg+CkBAIC0xMjAsNiArMTIx
LDcgQEAgZW51bSB7CiAKICAgICBJTlNFQ1VSRV9DT05URU5UX0RFVEVDVEVELAogCisgICAgV0VC
X1BST0NFU1NfU1RBUlRFRCwKICAgICBXRUJfUFJPQ0VTU19DUkFTSEVELAogCiAgICAgQVVUSEVO
VElDQVRFLApAQCAtMTM5OSw2ICsxNDAxLDIzIEBAIHN0YXRpYyB2b2lkIHdlYmtpdF93ZWJfdmll
d19jbGFzc19pbml0KFdlYktpdFdlYlZpZXdDbGFzcyogd2ViVmlld0NsYXNzKQogICAgICAgICAg
ICAgV0VCS0lUX1RZUEVfSU5TRUNVUkVfQ09OVEVOVF9FVkVOVCk7CiAKICAgICAvKioKKyAgICAg
KiBXZWJLaXRXZWJWaWV3Ojp3ZWItcHJvY2Vzcy1zdGFydGVkOgorICAgICAqIEB3ZWJfdmlldzog
dGhlICNXZWJLaXRXZWJWaWV3CisgICAgICogQHBpZDogcHJvY2VzcyBpZGVudGlmaWVyIGZvciB0
aGUgd2ViIHByb2Nlc3MgdGhhdCBzdGFydGVkCisgICAgICoKKyAgICAgKiBUaGlzIHNpZ25hbCBp
cyBlbWl0dGVkIHdoZW4gdGhlIHdlYiBwcm9jZXNzIHN0YXJ0ZWQuCisgICAgICovCisgICAgc2ln
bmFsc1tXRUJfUFJPQ0VTU19TVEFSVEVEXSA9IGdfc2lnbmFsX25ldygKKyAgICAgICAgIndlYi1w
cm9jZXNzLXN0YXJ0ZWQiLAorICAgICAgICBHX1RZUEVfRlJPTV9DTEFTUyh3ZWJWaWV3Q2xhc3Mp
LAorICAgICAgICBHX1NJR05BTF9SVU5fTEFTVCwKKyAgICAgICAgR19TVFJVQ1RfT0ZGU0VUKFdl
YktpdFdlYlZpZXdDbGFzcywgd2ViX3Byb2Nlc3Nfc3RhcnRlZCksCisgICAgICAgIDAsIDAsCisg
ICAgICAgIGdfY2Nsb3N1cmVfbWFyc2hhbF9WT0lEX19QT0lOVEVSLAorICAgICAgICBHX1RZUEVf
Tk9ORSwgMSwKKyAgICAgICAgR19UWVBFX1BPSU5URVIpOworCisgICAgLyoqCiAgICAgICogV2Vi
S2l0V2ViVmlldzo6d2ViLXByb2Nlc3MtY3Jhc2hlZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSAj
V2ViS2l0V2ViVmlldwogICAgICAqCkBAIC0zMTIwLDYgKzMxMzksMTUgQEAgY2Fpcm9fc3VyZmFj
ZV90KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90X2ZpbmlzaChXZWJLaXRXZWJWaWV3KiB3
ZWJWaWV3LCBHQXMKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y2Fpcm9fc3VyZmFjZV90Kj4oZ190
YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKEdfVEFTSyhyZXN1bHQpLCBlcnJvcikpOwogfQogCit2b2lk
IHdlYmtpdFdlYlZpZXdXZWJQcm9jZXNzU3RhcnRlZChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBX
ZWJDb25uZWN0aW9uKiBjb25uZWN0aW9uKQoreworICAgIFdlYkNvbnRleHQqIGNvbnRleHQgPSB3
ZWJraXRXZWJDb250ZXh0R2V0Q29udGV4dCh3ZWJWaWV3LT5wcml2LT5jb250ZXh0KTsKKyAgICBX
ZWJQcm9jZXNzUHJveHkqIHdlYlByb2Nlc3MgPSBjb250ZXh0LT5nZXRXZWJQcm9jZXNzRm9yV2Vi
Q29ubmVjdGlvbihjb25uZWN0aW9uKTsKKyAgICBBU1NFUlQod2ViUHJvY2Vzcyk7CisgICAgR1Bp
ZCBwaWQgPSB3ZWJQcm9jZXNzLT5wcm9jZXNzSWRlbnRpZmllcigpOworICAgIGdfc2lnbmFsX2Vt
aXQod2ViVmlldywgc2lnbmFsc1tXRUJfUFJPQ0VTU19TVEFSVEVEXSwgMCwgKGdwb2ludGVyKSAm
cGlkKTsKK30KKwogdm9pZCB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc0NyYXNoZWQoV2ViS2l0V2Vi
Vmlldyogd2ViVmlldykKIHsKICAgICBnYm9vbGVhbiByZXR1cm5WYWx1ZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaCBiL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAppbmRleCA2ZTQzNGI1
Li4yYWY5OTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9X
ZWJLaXRXZWJWaWV3LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5oCkBAIC0yNDgsMTIgKzI0OCwxNSBAQCBzdHJ1Y3QgX1dlYktpdFdlYlZpZXdD
bGFzcyB7CiAgICAgZ2Jvb2xlYW4gICAoKiBsb2FkX2ZhaWxlZF93aXRoX3Rsc19lcnJvcnMpIChX
ZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgV2ViS2l0Q2VydGlmaWNhdGVJbmZvICAgICAg
ICppbmZvLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
Y29uc3QgZ2NoYXIgICAgICAgICAgICAgICAgICpob3N0KTsKKworICAgIGdib29sZWFuICAgKCog
d2ViX3Byb2Nlc3Nfc3RhcnRlZCkgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAg
ICp3ZWJfdmlldywKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIGNvbnN0IEdQaWQgICAgICAgICAgICAgICAgICAqcGlkKTsKKwogICAgIHZvaWQgKCpfd2Vi
a2l0X3Jlc2VydmVkMCkgKHZvaWQpOwogICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMSkgKHZv
aWQpOwogICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkMikgKHZvaWQpOwogICAgIHZvaWQgKCpf
d2Via2l0X3Jlc2VydmVkMykgKHZvaWQpOwogICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkNCkg
KHZvaWQpOwotICAgIHZvaWQgKCpfd2Via2l0X3Jlc2VydmVkNSkgKHZvaWQpOwogfTsKIAogV0VC
S0lUX0FQSSBHVHlwZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9n
dGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKaW5kZXggZmQwYWVkMi4uMTljMmExMiAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZh
dGUuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
UHJpdmF0ZS5oCkBAIC0yNyw2ICsyNyw3IEBACiAjaWZuZGVmIFdlYktpdFdlYlZpZXdQcml2YXRl
X2gKICNkZWZpbmUgV2ViS2l0V2ViVmlld1ByaXZhdGVfaAogCisjaW5jbHVkZSAiV2ViQ29ubmVj
dGlvbi5oIgogI2luY2x1ZGUgIldlYkltYWdlLmgiCiAjaW5jbHVkZSAiV2ViS2l0V2ViVmlldy5o
IgogI2luY2x1ZGUgPHd0Zi90ZXh0L0NTdHJpbmcuaD4KQEAgLTU5LDYgKzYwLDcgQEAgdm9pZCB3
ZWJraXRXZWJWaWV3UG9wdWxhdGVDb250ZXh0TWVudShXZWJLaXRXZWJWaWV3KiwgV2ViS2l0OjpJ
bW11dGFibGVBcnJheSogcHIKIHZvaWQgd2Via2l0V2ViVmlld1N1Ym1pdEZvcm1SZXF1ZXN0KFdl
YktpdFdlYlZpZXcqLCBXZWJLaXRGb3JtU3VibWlzc2lvblJlcXVlc3QqKTsKIHZvaWQgd2Via2l0
V2ViVmlld0hhbmRsZUF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlKFdlYktpdFdlYlZpZXcqLCBXZWJL
aXQ6OkF1dGhlbnRpY2F0aW9uQ2hhbGxlbmdlUHJveHkqKTsKIHZvaWQgd2Via2l0V2ViVmlld0lu
c2VjdXJlQ29udGVudERldGVjdGVkKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRJbnNlY3VyZUNvbnRl
bnRFdmVudCk7Cit2b2lkIHdlYmtpdFdlYlZpZXdXZWJQcm9jZXNzU3RhcnRlZChXZWJLaXRXZWJW
aWV3KiwgV2ViS2l0OjpXZWJDb25uZWN0aW9uKik7CiB2b2lkIHdlYmtpdFdlYlZpZXdXZWJQcm9j
ZXNzQ3Jhc2hlZChXZWJLaXRXZWJWaWV3Kik7CiAKICNlbmRpZiAvLyBXZWJLaXRXZWJWaWV3UHJp
dmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5j
cHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggNTBlMThm
Yi4uZjI0ZjJkMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApAQCAt
NjI4LDYgKzYyOCwxOCBAQCBib29sIFdlYkNvbnRleHQ6OnNob3VsZFRlcm1pbmF0ZShXZWJQcm9j
ZXNzUHJveHkqIHByb2Nlc3MpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1dlYlByb2Nlc3NQcm94
eSogV2ViQ29udGV4dDo6Z2V0V2ViUHJvY2Vzc0ZvcldlYkNvbm5lY3Rpb24oY29uc3QgV2ViQ29u
bmVjdGlvbiogd2ViQ29ubmVjdGlvbikKK3sKKyAgICBXZWJQcm9jZXNzUHJveHkqIHJlc3VsdCA9
IDA7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fcHJvY2Vzc2VzLnNpemUoKTsgKytp
KSB7CisgICAgICAgIGlmICh3ZWJDb25uZWN0aW9uID09IG1fcHJvY2Vzc2VzW2ldLT53ZWJDb25u
ZWN0aW9uKCkpIHsKKyAgICAgICAgICAgIHJlc3VsdCA9IG1fcHJvY2Vzc2VzW2ldLmdldCgpOwor
ICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIH0KKyAgICB9CisgICAgcmV0dXJuIHJlc3VsdDsK
K30KKwogdm9pZCBXZWJDb250ZXh0Ojpwcm9jZXNzV2lsbE9wZW5Db25uZWN0aW9uKFdlYlByb2Nl
c3NQcm94eSogcHJvY2VzcykKIHsKICAgICBtX3N0b3JhZ2VNYW5hZ2VyLT5wcm9jZXNzV2lsbE9w
ZW5Db25uZWN0aW9uKHByb2Nlc3MpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuaCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmgK
aW5kZXggZTAxMzc1ZS4uMTYzOTFmNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL1dlYkNvbnRleHQuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5oCkBAIC03MCw2ICs3MCw3IEBAIE9CSkNfQ0xBU1MgTlNTdHJpbmc7CiBuYW1lc3BhY2UgV2Vi
S2l0IHsKIAogY2xhc3MgRG93bmxvYWRQcm94eTsKK2NsYXNzIFdlYkNvbm5lY3Rpb247CiBjbGFz
cyBXZWJDb250ZXh0U3VwcGxlbWVudDsKIGNsYXNzIFdlYkljb25EYXRhYmFzZTsKIGNsYXNzIFdl
YlBhZ2VHcm91cDsKQEAgLTI0Myw2ICsyNDQsOCBAQCBwdWJsaWM6CiAKICAgICBib29sIHNob3Vs
ZFRlcm1pbmF0ZShXZWJQcm9jZXNzUHJveHkqKTsKIAorICAgIFdlYlByb2Nlc3NQcm94eSogZ2V0
V2ViUHJvY2Vzc0ZvcldlYkNvbm5lY3Rpb24oY29uc3QgV2ViQ29ubmVjdGlvbiopOworCiAgICAg
dm9pZCBkaXNhYmxlUHJvY2Vzc1Rlcm1pbmF0aW9uKCkgeyBtX3Byb2Nlc3NUZXJtaW5hdGlvbkVu
YWJsZWQgPSBmYWxzZTsgfQogICAgIHZvaWQgZW5hYmxlUHJvY2Vzc1Rlcm1pbmF0aW9uKCk7CiAK
LS0gCjEuOC4xLjIKCg==
</data>
<flag name="review"
          id="237773"
          type_id="1"
          status="-"
          setter="cgarcia"
    />
    <flag name="commit-queue"
          id="237774"
          type_id="3"
          status="-"
          setter="cgarcia"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>215666</attachid>
            <date>2013-10-31 12:42:19 -0700</date>
            <delta_ts>2016-01-02 09:09:44 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>0001-GTK-WK2-Add-webview-signal-for-web-process-started.patch</filename>
            <type>text/plain</type>
            <size>30779</size>
            <attacher name="Andre Moreira Magalhaes">andrunko</attacher>
            
              <data encoding="base64">RnJvbSBiNzA3ZmM2ODBhMDBlMThiYTIyM2IwZTI0OTBiMGNkNjdiMjkxMmNkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiAiQW5kcmUgTW9yZWlyYSBNYWdhbGhhZXMgKGFuZHJ1bmtvKSIg
PGFuZHJlLm1hZ2FsaGFlc0Bjb2xsYWJvcmEuY28udWs+CkRhdGU6IFRodSwgMzEgT2N0IDIwMTMg
MTY6MDU6NTggLTAyMDAKU3ViamVjdDogW1BBVENIXSBbR1RLXVtXSzJdIEFkZCB3ZWJ2aWV3IHNp
Z25hbCBmb3Igd2ViLXByb2Nlc3Mtc3RhcnRlZAogaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTEyMzI5MgoKUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCgpJIHdhbnRl
ZCB0byBhZGQgYSB3YXkgdG8gbWFwIGJldHdlZW4gZXh0ZW5zaW9ucyBhbmQgV2ViUHJvY2Vzcy9D
b250ZXh0L1ZpZXcgb24gd2Via2l0Mmd0ayBhbmQKZGlzY3Vzc2luZyB3aXRoIEd1c3Rhdm8gTm9y
b25oYSAoa292KSB3ZSB0aG91Z2h0IGEgZ29vZCB3YXkgdG8gYWNoaWV2ZSB0aGlzIHdvdWxkIGJl
IHRvIGhhdmUgYQpzaWduYWwgKHdlYi1wcm9jZXNzLXN0YXJ0ZWQpIGluIHRoZSBXZWJLaXRXZWJW
aWV3IHdpdGggYSBwaWQgYXJndW1lbnQuCgpUaGlzIHdheSBleHRlbnNpb25zIGNvdWxkIGZvciBl
eGFtcGxlIHVzZSBnZXRwaWQoKSB0byByZWdpc3RlciBvbiBEQnVzIHVzaW5nIGFuIHVuaXF1ZSBu
YW1lIChlLmcuCmNvbS5mb28uQmFyLVBJRCkgYW5kIHRoZSB2aWV3IHdvdWxkIGJlIGFibGUgdG8g
d2F0Y2ggZm9yIHRoaXMgbmFtZSB0byBrbm93IHdoZW4gdGhlIGV4dGVuc2lvbgpyZWdpc3RlcmVk
IG9uIEQtQnVzLgoKKiBHTlVtYWtlZmlsZS5saXN0LmFtOgpBZGQgbmV3IGZpbGVzLgoqIFNoYXJl
ZC9DaGlsZFByb2Nlc3NQcm94eS5jcHA6CihXZWJLaXQ6OkNoaWxkUHJvY2Vzc1Byb3h5OjpjbGVh
ckNvbm5lY3Rpb24pOgpNZXRob2QgaW52b2tlZCB3aGVuIHRoZSB3ZWIgcHJvY2VzcyBoYXMgdGVy
bWluYXRlZC4gQWxzbyByZXNldCBwcm9jZXNzIGxhdW5jaGVyIHNvIHRoYXQKV2ViUHJvY2Vzc1By
b3h5Ojpwcm9jZXNzSWRlbnRpZmllciByZXR1cm5zIDAgYWNjb3JkaW5nbHkuCiogU2hhcmVkL0No
aWxkUHJvY2Vzc1Byb3h5Lmg6CihXZWJLaXQ6OkNoaWxkUHJvY2Vzc1Byb3h5Ojpwcm9jZXNzSWRl
bnRpZmllcik6CkNoZWNrIGlmIHByb2Nlc3MgbGF1bmNoZXIgb2JqZWN0IGlzIHN0aWxsIHZhbGlk
IGJlZm9yZSBhY2Nlc3NpbmcgaXQgKG9iamVjdCBpcyBjcmVhdGVkIG9uCmNvbm5lY3QgYW5kIGRl
bGV0ZWQgb24gdGVybWluYXRlKS4KKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb25uZWN0aW9u
Q2xpZW50LmNwcDogQWRkZWQuCihwcm9jZXNzRGlkU3RhcnQpOgpXS0NvbnRleHRDb25uZWN0aW9u
Q2xpZW50IGNhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUgV2ViUHJvY2VzcyBoYXMgc3RhcnRlZC4K
KGF0dGFjaENvbm5lY3Rpb25DbGllbnRUb0NvbnRleHQpOgpNZXRob2QgY2FsbGVkIGZyb20gV2Vi
S2l0V2ViQ29udGV4dCBkdXJpbmcgc2V0dXAgdG8gY29uZmlndXJlIHRoZSBXS0NvbnRleHRDb25u
ZWN0aW9uQ2xpZW50LgoqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbm5lY3Rpb25DbGllbnQu
aDogQWRkZWQuCiogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHA6CihjcmVh
dGVEZWZhdWx0V2ViQ29udGV4dCk6CkFsc28gaW5pdGlhbGl6ZSBXS0NvbnRleHRDb25uZWN0aW9u
Q2xpZW50Lgood2Via2l0V2ViQ29udGV4dFdlYlByb2Nlc3NTdGFydGVkKToKTWV0aG9kIGludm9r
ZWQgZnJvbSBXZWJLaXRDb25uZWN0aW9uQ2xpZW50Ojpwcm9jZXNzRGlkU3RhcnQgd2hlbiB0aGUg
V2ViUHJvY2VzcyBoYXMKc3RhcnRlZC4KKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250
ZXh0UHJpdmF0ZS5oOgoqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOgood2Vi
a2l0V2ViVmlld1NldElzV2ViUHJvY2Vzc1J1bm5pbmcpOgpNZXRob2QgdG8gc2V0L25vdGlmeSBj
aGFuZ2VzIG9uIGlzLXdlYi1wcm9jZXNzLXJ1bm5pbmcgcHJvcGVydHkuCih3ZWJraXRXZWJWaWV3
Q29uc3RydWN0ZWQpOgpJbml0IHByb3BlcnR5IGlzLXdlYi1wcm9jZXNzLXJ1bm5pbmcuCih3ZWJr
aXRXZWJWaWV3R2V0UHJvcGVydHkpOgpIYW5kbGUgcHJvcGVydHkgaXMtd2ViLXByb2Nlc3MtcnVu
bmluZy4KKHdlYmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKQWRkIHNpZ25hbCB3ZWItcHJvY2Vz
cy1zdGFydGVkIGFuZCBwcm9wZXJ0eSBpcy13ZWItcHJvY2Vzcy1ydW5uaW5nLgood2Via2l0X3dl
Yl92aWV3X2lzX3dlYl9wcm9jZXNzX3J1bm5pbmcpOgood2Via2l0X3dlYl92aWV3X2dldF93ZWJf
cHJvY2Vzc19pZGVudGlmaWVyKToKTmV3IGFjY2Vzc29ycy4KKHdlYmtpdFdlYlZpZXdXZWJQcm9j
ZXNzU3RhcnRlZCk6Ck1ldGhvZCBpbnZva2VkIGZyb20gd2Via2l0V2ViQ29udGV4dFdlYlByb2Nl
c3NTdGFydGVkIHdoZW4gdGhlIFdlYlByb2Nlc3MgaGFzIHN0YXJ0ZWQuCkVtaXQgbm90aWZpY2F0
aW9uIGZvciBpcy13ZWItcHJvY2Vzcy1ydW5uaW5nIHByb3BlcnR5IGFuZCBzaWduYWwgd2ViLXBy
b2Nlc3Mtc3RhcnRlZC4KKHdlYmtpdFdlYlZpZXdXZWJQcm9jZXNzQ3Jhc2hlZCk6CkVtaXQgbm90
aWZpY2F0aW9uIGZvciBpcy13ZWItcHJvY2Vzcy1ydW5uaW5nIHByb3BlcnR5LgoqIFVJUHJvY2Vz
cy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaDoKRXhwb3NlIG5ldyBhY2Nlc3NvcnMuCiogVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaDoKKiBVSVByb2Nlc3MvQVBJL2d0ay9k
b2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0OgoqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rl
c3RXZWJFeHRlbnNpb25zLmNwcDoKKHdlYlByb2Nlc3NTdGFydGVkQ2FsbGJhY2spOgoodGVzdFdl
YktpdFdlYlZpZXdQcm9jZXNzU3RhcnRlZCk6Cih3ZWJQcm9jZXNzQ3Jhc2hlZENhbGxiYWNrKToK
KGJlZm9yZUFsbCk6CkFkZCB0ZXN0cyBmb3IgbmV3IEFQSS4KKiBVSVByb2Nlc3MvTGF1bmNoZXIv
UHJvY2Vzc0xhdW5jaGVyLmNwcDoKKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjppbnZhbGlkYXRl
KToKQWxzbyByZXNldCBwcm9jZXNzIGlkZW50aWZpZXIgb24gaW52YWxpZGF0ZS4KKiBVSVByb2Nl
c3MvV2ViQ29udGV4dC5jcHA6CihXZWJLaXQ6OldlYkNvbnRleHQ6OmdldFdlYlByb2Nlc3NGb3JX
ZWJDb25uZWN0aW9uKToKTWV0aG9kIHRvIHJldHJpZXZlIGEgV2ViUHJvY2Vzc1Byb3h5IGZyb20g
YSBnaXZlbiBXZWJDb25uZWN0aW9uIG9uIGEgV2ViQ29udGV4dC4KSW52b2tlZCBmcm9tIFdlYktp
dENvbm5lY3Rpb25DbGllbnQ6OnByb2Nlc3NEaWRTdGFydC4KKiBVSVByb2Nlc3MvV2ViQ29udGV4
dC5oOgotLS0KIFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZyAgICAgICAgICAgICAgICAgICAgICAg
ICAgIHwgIDc0ICsrKysrKysrKysrKysrCiBTb3VyY2UvV2ViS2l0Mi9HTlVtYWtlZmlsZS5saXN0
LmFtICAgICAgICAgICAgICAgICB8ICAgMiArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQ
cm9jZXNzUHJveHkuY3BwICAgICAgICB8ICAgNSArCiBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hp
bGRQcm9jZXNzUHJveHkuaCAgICAgICAgICB8ICAgMiArLQogLi4uL1VJUHJvY2Vzcy9BUEkvZ3Rr
L1dlYktpdENvbm5lY3Rpb25DbGllbnQuY3BwICAgfCAgNTAgKysrKysrKysrKwogLi4uL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdENvbm5lY3Rpb25DbGllbnQuaCAgICAgfCAgMjcgKysrKysKIC4u
Li9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwIHwgIDEzICsr
KwogLi4uL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2YXRlLmggICAgfCAg
IDIgKwogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAg
fCAxMTAgKysrKysrKysrKysrKysrKysrKystCiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJ
L2d0ay9XZWJLaXRXZWJWaWV3LmggICB8ICAgOSArLQogLi4uL1VJUHJvY2Vzcy9BUEkvZ3RrL1dl
YktpdFdlYlZpZXdQcml2YXRlLmggICAgICAgfCAgIDIgKwogLi4uL1VJUHJvY2Vzcy9BUEkvZ3Rr
L2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQgfCAgIDIgKwogLi4uL1VJUHJvY2Vzcy9BUEkv
Z3RrL3Rlc3RzL1Rlc3RXZWJFeHRlbnNpb25zLmNwcCAgfCAgMTkgKysrLQogLi4uL1dlYktpdDIv
VUlQcm9jZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAgfCAgIDEgKwogU291cmNlL1dl
YktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwICAgICAgICAgICAgfCAgIDkgKysKIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmggICAgICAgICAgICAgIHwgICAzICsKIDE2
IGZpbGVzIGNoYW5nZWQsIDMyNiBpbnNlcnRpb25zKCspLCA0IGRlbGV0aW9ucygtKQogY3JlYXRl
IG1vZGUgMTAwNjQ0IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbm5l
Y3Rpb25DbGllbnQuY3BwCiBjcmVhdGUgbW9kZSAxMDA2NDQgU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0FQSS9ndGsvV2ViS2l0Q29ubmVjdGlvbkNsaWVudC5oCgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYktpdDIvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCmluZGV4IDE5ZDQ1
YmQuLmIyZGFiZDUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZworKysgYi9T
b3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKQEAgLTEsMyArMSw3NyBAQAorMjAxMy0xMC0zMSAgQW5k
cmUgTW9yZWlyYSBNYWdhbGhhZXMgICA8YW5kcmUubWFnYWxoYWVzQGNvbGxhYm9yYS5jby51az4K
KworICAgICAgICBbR1RLXVtXSzJdIEFkZCB3ZWJ2aWV3IHNpZ25hbCBmb3Igd2ViLXByb2Nlc3Mt
c3RhcnRlZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
MTIzMjkyCisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
SSB3YW50ZWQgdG8gYWRkIGEgd2F5IHRvIG1hcCBiZXR3ZWVuIGV4dGVuc2lvbnMgYW5kIFdlYlBy
b2Nlc3MvQ29udGV4dC9WaWV3IG9uIHdlYmtpdDJndGsgYW5kCisgICAgICAgIGRpc2N1c3Npbmcg
d2l0aCBHdXN0YXZvIE5vcm9uaGEgKGtvdikgd2UgdGhvdWdodCBhIGdvb2Qgd2F5IHRvIGFjaGll
dmUgdGhpcyB3b3VsZCBiZSB0byBoYXZlIGEKKyAgICAgICAgc2lnbmFsICh3ZWItcHJvY2Vzcy1z
dGFydGVkKSBpbiB0aGUgV2ViS2l0V2ViVmlldyB3aXRoIGEgcGlkIGFyZ3VtZW50LgorCisgICAg
ICAgIFRoaXMgd2F5IGV4dGVuc2lvbnMgY291bGQgZm9yIGV4YW1wbGUgdXNlIGdldHBpZCgpIHRv
IHJlZ2lzdGVyIG9uIERCdXMgdXNpbmcgYW4gdW5pcXVlIG5hbWUgKGUuZy4KKyAgICAgICAgY29t
LmZvby5CYXItUElEKSBhbmQgdGhlIHZpZXcgd291bGQgYmUgYWJsZSB0byB3YXRjaCBmb3IgdGhp
cyBuYW1lIHRvIGtub3cgd2hlbiB0aGUgZXh0ZW5zaW9uCisgICAgICAgIHJlZ2lzdGVyZWQgb24g
RC1CdXMuCisKKyAgICAgICAgKiBHTlVtYWtlZmlsZS5saXN0LmFtOgorICAgICAgICBBZGQgbmV3
IGZpbGVzLgorICAgICAgICAqIFNoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHA6CisgICAgICAg
IChXZWJLaXQ6OkNoaWxkUHJvY2Vzc1Byb3h5OjpjbGVhckNvbm5lY3Rpb24pOgorICAgICAgICBN
ZXRob2QgaW52b2tlZCB3aGVuIHRoZSB3ZWIgcHJvY2VzcyBoYXMgdGVybWluYXRlZC4gQWxzbyBy
ZXNldCBwcm9jZXNzIGxhdW5jaGVyIHNvIHRoYXQKKyAgICAgICAgV2ViUHJvY2Vzc1Byb3h5Ojpw
cm9jZXNzSWRlbnRpZmllciByZXR1cm5zIDAgYWNjb3JkaW5nbHkuCisgICAgICAgICogU2hhcmVk
L0NoaWxkUHJvY2Vzc1Byb3h5Lmg6CisgICAgICAgIChXZWJLaXQ6OkNoaWxkUHJvY2Vzc1Byb3h5
Ojpwcm9jZXNzSWRlbnRpZmllcik6CisgICAgICAgIENoZWNrIGlmIHByb2Nlc3MgbGF1bmNoZXIg
b2JqZWN0IGlzIHN0aWxsIHZhbGlkIGJlZm9yZSBhY2Nlc3NpbmcgaXQgKG9iamVjdCBpcyBjcmVh
dGVkIG9uCisgICAgICAgIGNvbm5lY3QgYW5kIGRlbGV0ZWQgb24gdGVybWluYXRlKS4KKyAgICAg
ICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb25uZWN0aW9uQ2xpZW50LmNwcDogQWRkZWQu
CisgICAgICAgIChwcm9jZXNzRGlkU3RhcnQpOgorICAgICAgICBXS0NvbnRleHRDb25uZWN0aW9u
Q2xpZW50IGNhbGxiYWNrIGludm9rZWQgd2hlbiB0aGUgV2ViUHJvY2VzcyBoYXMgc3RhcnRlZC4K
KyAgICAgICAgKGF0dGFjaENvbm5lY3Rpb25DbGllbnRUb0NvbnRleHQpOgorICAgICAgICBNZXRo
b2QgY2FsbGVkIGZyb20gV2ViS2l0V2ViQ29udGV4dCBkdXJpbmcgc2V0dXAgdG8gY29uZmlndXJl
IHRoZSBXS0NvbnRleHRDb25uZWN0aW9uQ2xpZW50LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkv
Z3RrL1dlYktpdENvbm5lY3Rpb25DbGllbnQuaDogQWRkZWQuCisgICAgICAgICogVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgIChjcmVhdGVEZWZhdWx0V2Vi
Q29udGV4dCk6CisgICAgICAgIEFsc28gaW5pdGlhbGl6ZSBXS0NvbnRleHRDb25uZWN0aW9uQ2xp
ZW50LgorICAgICAgICAod2Via2l0V2ViQ29udGV4dFdlYlByb2Nlc3NTdGFydGVkKToKKyAgICAg
ICAgTWV0aG9kIGludm9rZWQgZnJvbSBXZWJLaXRDb25uZWN0aW9uQ2xpZW50Ojpwcm9jZXNzRGlk
U3RhcnQgd2hlbiB0aGUgV2ViUHJvY2VzcyBoYXMKKyAgICAgICAgc3RhcnRlZC4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oOgorICAgICAgICAq
IFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuY3BwOgorICAgICAgICAod2Via2l0V2Vi
Vmlld1NldElzV2ViUHJvY2Vzc1J1bm5pbmcpOgorICAgICAgICBNZXRob2QgdG8gc2V0L25vdGlm
eSBjaGFuZ2VzIG9uIGlzLXdlYi1wcm9jZXNzLXJ1bm5pbmcgcHJvcGVydHkuCisgICAgICAgICh3
ZWJraXRXZWJWaWV3Q29uc3RydWN0ZWQpOgorICAgICAgICBJbml0IHByb3BlcnR5IGlzLXdlYi1w
cm9jZXNzLXJ1bm5pbmcuCisgICAgICAgICh3ZWJraXRXZWJWaWV3R2V0UHJvcGVydHkpOgorICAg
ICAgICBIYW5kbGUgcHJvcGVydHkgaXMtd2ViLXByb2Nlc3MtcnVubmluZy4KKyAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgQWRkIHNpZ25hbCB3ZWItcHJvY2Vz
cy1zdGFydGVkIGFuZCBwcm9wZXJ0eSBpcy13ZWItcHJvY2Vzcy1ydW5uaW5nLgorICAgICAgICAo
d2Via2l0X3dlYl92aWV3X2lzX3dlYl9wcm9jZXNzX3J1bm5pbmcpOgorICAgICAgICAod2Via2l0
X3dlYl92aWV3X2dldF93ZWJfcHJvY2Vzc19pZGVudGlmaWVyKToKKyAgICAgICAgTmV3IGFjY2Vz
c29ycy4KKyAgICAgICAgKHdlYmtpdFdlYlZpZXdXZWJQcm9jZXNzU3RhcnRlZCk6CisgICAgICAg
IE1ldGhvZCBpbnZva2VkIGZyb20gd2Via2l0V2ViQ29udGV4dFdlYlByb2Nlc3NTdGFydGVkIHdo
ZW4gdGhlIFdlYlByb2Nlc3MgaGFzIHN0YXJ0ZWQuCisgICAgICAgIEVtaXQgbm90aWZpY2F0aW9u
IGZvciBpcy13ZWItcHJvY2Vzcy1ydW5uaW5nIHByb3BlcnR5IGFuZCBzaWduYWwgd2ViLXByb2Nl
c3Mtc3RhcnRlZC4KKyAgICAgICAgKHdlYmtpdFdlYlZpZXdXZWJQcm9jZXNzQ3Jhc2hlZCk6Cisg
ICAgICAgIEVtaXQgbm90aWZpY2F0aW9uIGZvciBpcy13ZWItcHJvY2Vzcy1ydW5uaW5nIHByb3Bl
cnR5LgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaDoKKyAgICAg
ICAgRXhwb3NlIG5ldyBhY2Nlc3NvcnMuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlld1ByaXZhdGUuaDoKKyAgICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dl
YmtpdDJndGstc2VjdGlvbnMudHh0OgorICAgICAgICAqIFVJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3Rz
L1Rlc3RXZWJFeHRlbnNpb25zLmNwcDoKKyAgICAgICAgKHdlYlByb2Nlc3NTdGFydGVkQ2FsbGJh
Y2spOgorICAgICAgICAodGVzdFdlYktpdFdlYlZpZXdQcm9jZXNzU3RhcnRlZCk6CisgICAgICAg
ICh3ZWJQcm9jZXNzQ3Jhc2hlZENhbGxiYWNrKToKKyAgICAgICAgKGJlZm9yZUFsbCk6CisgICAg
ICAgIEFkZCB0ZXN0cyBmb3IgbmV3IEFQSS4KKyAgICAgICAgKiBVSVByb2Nlc3MvTGF1bmNoZXIv
UHJvY2Vzc0xhdW5jaGVyLmNwcDoKKyAgICAgICAgKFdlYktpdDo6UHJvY2Vzc0xhdW5jaGVyOjpp
bnZhbGlkYXRlKToKKyAgICAgICAgQWxzbyByZXNldCBwcm9jZXNzIGlkZW50aWZpZXIgb24gaW52
YWxpZGF0ZS4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViQ29udGV4dC5jcHA6CisgICAgICAgIChX
ZWJLaXQ6OldlYkNvbnRleHQ6OmdldFdlYlByb2Nlc3NGb3JXZWJDb25uZWN0aW9uKToKKyAgICAg
ICAgTWV0aG9kIHRvIHJldHJpZXZlIGEgV2ViUHJvY2Vzc1Byb3h5IGZyb20gYSBnaXZlbiBXZWJD
b25uZWN0aW9uIG9uIGEgV2ViQ29udGV4dC4KKyAgICAgICAgSW52b2tlZCBmcm9tIFdlYktpdENv
bm5lY3Rpb25DbGllbnQ6OnByb2Nlc3NEaWRTdGFydC4KKyAgICAgICAgKiBVSVByb2Nlc3MvV2Vi
Q29udGV4dC5oOgorCiAyMDEzLTEwLTI0ICBEYW4gQmVybnN0ZWluICA8bWl0ekBhcHBsZS5jb20+
CiAKICAgICAgICAgVHJpZWQgdG8gZml4IHRoZSBNb3VudGFpbiBMaW9uIGJ1aWxkLgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbSBiL1NvdXJjZS9XZWJLaXQy
L0dOVW1ha2VmaWxlLmxpc3QuYW0KaW5kZXggOTM2YjQ3OC4uMTA0ZmRiNiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdDIvR05VbWFrZWZpbGUubGlzdC5hbQorKysgYi9Tb3VyY2UvV2ViS2l0Mi9H
TlVtYWtlZmlsZS5saXN0LmFtCkBAIC02ODYsNiArNjg2LDggQEAgd2Via2l0Ml9zb3VyY2VzICs9
IFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDZXJ0aWZpY2F0ZUlu
Zm8uY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDZXJ0aWZp
Y2F0ZUluZm8uaCBcCiAJU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q2Vy
dGlmaWNhdGVJbmZvUHJpdmF0ZS5oIFwKKwlTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRDb25uZWN0aW9uQ2xpZW50LmggXAorCVNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdENvbm5lY3Rpb25DbGllbnQuY3BwIFwKIAlTb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRDb250ZXh0TWVudS5jcHAgXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51LmggXAogCVNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbnRleHRNZW51UHJpdmF0ZS5oIFwKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAgYi9Tb3VyY2UvV2Vi
S2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwCmluZGV4IGU5YmFmOTEuLmU0ZDhiOGEg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAK
KysrIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcApAQCAtMTU5
LDYgKzE1OSwxMSBAQCB2b2lkIENoaWxkUHJvY2Vzc1Byb3h5OjpjbGVhckNvbm5lY3Rpb24oKQog
CiAgICAgbV9jb25uZWN0aW9uLT5pbnZhbGlkYXRlKCk7CiAgICAgbV9jb25uZWN0aW9uID0gbnVs
bHB0cjsKKyAgICAvLyBQcm9jZXNzIGhhcyB0ZXJtaW5hdGVkLCBpbnZhbGlkYXRlL3Jlc2V0IHBy
b2Nlc3MgbGF1bmNoZXIuCisgICAgaWYgKG1fcHJvY2Vzc0xhdW5jaGVyKSB7CisgICAgICAgIG1f
cHJvY2Vzc0xhdW5jaGVyLT5pbnZhbGlkYXRlKCk7CisgICAgICAgIG1fcHJvY2Vzc0xhdW5jaGVy
ID0gMDsKKyAgICB9CiB9CiAKIHZvaWQgQ2hpbGRQcm9jZXNzUHJveHk6OmNvbm5lY3Rpb25XaWxs
T3BlbihDb3JlSVBDOjpDb25uZWN0aW9uKikKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1No
YXJlZC9DaGlsZFByb2Nlc3NQcm94eS5oIGIvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJv
Y2Vzc1Byb3h5LmgKaW5kZXggODlmYTBkYi4uYzUyZTQwNCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmgKKysrIGIvU291cmNlL1dlYktpdDIvU2hh
cmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmgKQEAgLTY0LDcgKzY0LDcgQEAgcHVibGljOgogICAgIGJv
b2wgaXNMYXVuY2hpbmcoKSBjb25zdDsKICAgICBib29sIGNhblNlbmRNZXNzYWdlKCkgY29uc3Qg
eyByZXR1cm4gaXNWYWxpZCgpIHx8IGlzTGF1bmNoaW5nKCk7IH0KIAotICAgIFBsYXRmb3JtUHJv
Y2Vzc0lkZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiBtX3Byb2Nl
c3NMYXVuY2hlci0+cHJvY2Vzc0lkZW50aWZpZXIoKTsgfQorICAgIFBsYXRmb3JtUHJvY2Vzc0lk
ZW50aWZpZXIgcHJvY2Vzc0lkZW50aWZpZXIoKSBjb25zdCB7IHJldHVybiAobV9wcm9jZXNzTGF1
bmNoZXIgPyBtX3Byb2Nlc3NMYXVuY2hlci0+cHJvY2Vzc0lkZW50aWZpZXIoKSA6IDApOyB9CiAK
IHByb3RlY3RlZDoKICAgICB2b2lkIGNsZWFyQ29ubmVjdGlvbigpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29ubmVjdGlvbkNsaWVudC5jcHAg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRDb25uZWN0aW9uQ2xpZW50
LmNwcApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi5jNmVlMDdhCi0tLSAvZGV2
L251bGwKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29ubmVj
dGlvbkNsaWVudC5jcHAKQEAgLTAsMCArMSw1MCBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAx
MyBDb2xsYWJvcmEgTHRkLgorICoKKyAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5
b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKKyAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVy
bXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCisgKiBMaWNlbnNlIGFzIHB1Ymxp
c2hlZCBieSB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIKKyAqIHZlcnNpb24g
MiBvZiB0aGUgTGljZW5zZSwgb3IgKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lvbi4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUgdGhhdCBpdCB3
aWxsIGJlIHVzZWZ1bCwKKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsgd2l0aG91dCBldmVu
IHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCisgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBG
T1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlIEdOVQorICogTGlicmFyeSBHZW5lcmFs
IFB1YmxpYyBMaWNlbnNlIGZvciBtb3JlIGRldGFpbHMuCisgKgorICogWW91IHNob3VsZCBoYXZl
IHJlY2VpdmVkIGEgY29weSBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5z
ZQorICogYWxvbmcgd2l0aCB0aGlzIGxpYnJhcnk7IHNlZSB0aGUgZmlsZSBDT1BZSU5HLkxJQi4g
IElmIG5vdCwgd3JpdGUgdG8KKyAqIHRoZSBGcmVlIFNvZnR3YXJlIEZvdW5kYXRpb24sIEluYy4s
IDUxIEZyYW5rbGluIFN0cmVldCwgRmlmdGggRmxvb3IsCisgKiBCb3N0b24sIE1BIDAyMTEwLTEz
MDEsIFVTQS4KKyAqLworCisjaW5jbHVkZSAiY29uZmlnLmgiCisjaW5jbHVkZSAiV2ViS2l0Q29u
bmVjdGlvbkNsaWVudC5oIgorCisjaW5jbHVkZSAiV2ViS2l0QmFja0ZvcndhcmRMaXN0UHJpdmF0
ZS5oIgorI2luY2x1ZGUgIldlYktpdFVSSVJlc3BvbnNlUHJpdmF0ZS5oIgorI2luY2x1ZGUgIldl
YktpdFdlYkNvbnRleHRQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0V2ViVmlld0Jhc2VQcml2
YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0V2ViVmlld1ByaXZhdGUuaCIKKyNpbmNsdWRlIDx3dGYv
Z29iamVjdC9HT3duUHRyLmg+CisjaW5jbHVkZSA8d3RmL3RleHQvQ1N0cmluZy5oPgorCit1c2lu
ZyBuYW1lc3BhY2UgV2ViS2l0OwordXNpbmcgbmFtZXNwYWNlIFdlYkNvcmU7CisKK3N0YXRpYyB2
b2lkIHByb2Nlc3NEaWRTdGFydChXS0NvbnRleHRSZWYgY29udGV4dCwgV0tDb25uZWN0aW9uUmVm
IGNvbm5lY3Rpb24sIGNvbnN0IHZvaWQqIGNsaWVudEluZm8pCit7CisgICAgV2ViUHJvY2Vzc1By
b3h5KiBwcm9jZXNzID0gdG9JbXBsKGNvbnRleHQpLT5nZXRXZWJQcm9jZXNzRm9yV2ViQ29ubmVj
dGlvbih0b0ltcGwoY29ubmVjdGlvbikpOworICAgIEFTU0VSVChwcm9jZXNzKTsKKyAgICB3ZWJr
aXRXZWJDb250ZXh0V2ViUHJvY2Vzc1N0YXJ0ZWQoV0VCS0lUX1dFQl9DT05URVhUKGNsaWVudElu
Zm8pLCBwcm9jZXNzKTsKK30KKwordm9pZCBhdHRhY2hDb25uZWN0aW9uQ2xpZW50VG9Db250ZXh0
KFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCit7CisgICAgV0tDb250ZXh0Q29ubmVjdGlv
bkNsaWVudCB3a0Nvbm5lY3Rpb25DbGllbnQgPSB7CisgICAgICAgIGtXS0NvbnRleHRDb25uZWN0
aW9uQ2xpZW50Q3VycmVudFZlcnNpb24sCisgICAgICAgIHdlYkNvbnRleHQsIC8vIGNsaWVudElu
Zm8KKyAgICAgICAgcHJvY2Vzc0RpZFN0YXJ0CisgICAgfTsKKyAgICBXS0NvbnRleHRTZXRDb25u
ZWN0aW9uQ2xpZW50KHRvQVBJKHdlYmtpdFdlYkNvbnRleHRHZXRDb250ZXh0KHdlYkNvbnRleHQp
KSwgJndrQ29ubmVjdGlvbkNsaWVudCk7Cit9CisKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbm5lY3Rpb25DbGllbnQuaCBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdENvbm5lY3Rpb25DbGllbnQuaApuZXcgZmlsZSBt
b2RlIDEwMDY0NAppbmRleCAwMDAwMDAwLi45NjI0YjljCi0tLSAvZGV2L251bGwKKysrIGIvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0Q29ubmVjdGlvbkNsaWVudC5oCkBA
IC0wLDAgKzEsMjcgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTMgQ29sbGFib3JhIEx0ZC4K
KyAqCisgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCisgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYworICogTGljZW5zZSBhcyBwdWJsaXNoZWQgYnkgdGhlIEZyZWUg
U29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyCisgKiB2ZXJzaW9uIDIgb2YgdGhlIExpY2Vuc2Us
IG9yIChhdCB5b3VyIG9wdGlvbikgYW55IGxhdGVyIHZlcnNpb24uCisgKgorICogVGhpcyBsaWJy
YXJ5IGlzIGRpc3RyaWJ1dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCisg
KiBidXQgV0lUSE9VVCBBTlkgV0FSUkFOVFk7IHdpdGhvdXQgZXZlbiB0aGUgaW1wbGllZCB3YXJy
YW50eSBvZgorICogTUVSQ0hBTlRBQklMSVRZIG9yIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQ
VVJQT1NFLiAgU2VlIHRoZSBHTlUKKyAqIExpYnJhcnkgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBm
b3IgbW9yZSBkZXRhaWxzLgorICoKKyAqIFlvdSBzaG91bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljIExpY2Vuc2UKKyAqIGFsb25nIHdpdGgg
dGhpcyBsaWJyYXJ5OyBzZWUgdGhlIGZpbGUgQ09QWUlORy5MSUIuICBJZiBub3QsIHdyaXRlIHRv
CisgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uLCBJbmMuLCA1MSBGcmFua2xpbiBTdHJl
ZXQsIEZpZnRoIEZsb29yLAorICogQm9zdG9uLCBNQSAwMjExMC0xMzAxLCBVU0EuCisgKi8KKwor
I2lmbmRlZiBXZWJLaXRDb25uZWN0aW9uQ2xpZW50X2gKKyNkZWZpbmUgV2ViS2l0Q29ubmVjdGlv
bkNsaWVudF9oCisKKyNpbmNsdWRlICJXZWJLaXRXZWJDb250ZXh0LmgiCisKK3ZvaWQgYXR0YWNo
Q29ubmVjdGlvbkNsaWVudFRvQ29udGV4dChXZWJLaXRXZWJDb250ZXh0Kik7CisKKyNlbmRpZgpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29u
dGV4dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250
ZXh0LmNwcAppbmRleCAyMmY0ZTU0Li5jOWIwOTIzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcApAQCAtMjQsNiArMjQs
NyBAQAogI2luY2x1ZGUgIldlYkNvb2tpZU1hbmFnZXJQcm94eS5oIgogI2luY2x1ZGUgIldlYkdl
b2xvY2F0aW9uTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSAiV2ViS2l0Q2VydGlmaWNhdGVJbmZv
UHJpdmF0ZS5oIgorI2luY2x1ZGUgIldlYktpdENvbm5lY3Rpb25DbGllbnQuaCIKICNpbmNsdWRl
ICJXZWJLaXRDb29raWVNYW5hZ2VyUHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdERvd25sb2Fk
Q2xpZW50LmgiCiAjaW5jbHVkZSAiV2ViS2l0RG93bmxvYWRQcml2YXRlLmgiCkBAIC0zOSw2ICs0
MCw3IEBACiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3R3JvdXBQ
cml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0V2ViVmlld1ByaXZhdGUuaCIKICNpbmNsdWRlICJX
ZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5LmgiCiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lz
dGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JY29uRGF0YWJhc2UuaD4KQEAgLTIwMSw2ICsyMDMs
NyBAQCBzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRGVmYXVsdFdlYkNvbnRleHQoZ3BvaW50ZXIpCiAg
ICAgcHJpdi0+Y29udGV4dC0+c2V0Q2FjaGVNb2RlbChDYWNoZU1vZGVsUHJpbWFyeVdlYkJyb3dz
ZXIpOwogICAgIHByaXYtPnRsc0Vycm9yc1BvbGljeSA9IFdFQktJVF9UTFNfRVJST1JTX1BPTElD
WV9JR05PUkU7CiAKKyAgICBhdHRhY2hDb25uZWN0aW9uQ2xpZW50VG9Db250ZXh0KHdlYkNvbnRl
eHQuZ2V0KCkpOwogICAgIGF0dGFjaEluamVjdGVkQnVuZGxlQ2xpZW50VG9Db250ZXh0KHdlYkNv
bnRleHQuZ2V0KCkpOwogICAgIGF0dGFjaERvd25sb2FkQ2xpZW50VG9Db250ZXh0KHdlYkNvbnRl
eHQuZ2V0KCkpOwogICAgIGF0dGFjaFJlcXVlc3RNYW5hZ2VyQ2xpZW50VG9Db250ZXh0KHdlYkNv
bnRleHQuZ2V0KCkpOwpAQCAtODI3LDYgKzgzMCwxNiBAQCB2b2lkIHdlYmtpdF93ZWJfY29udGV4
dF9hbGxvd190bHNfY2VydGlmaWNhdGVfZm9yX2hvc3QoV2ViS2l0V2ViQ29udGV4dCogY29udGV4
dAogICAgIGNvbnRleHQtPnByaXYtPmNvbnRleHQtPmFsbG93U3BlY2lmaWNIVFRQU0NlcnRpZmlj
YXRlRm9ySG9zdCh3ZWJDZXJ0aWZpY2F0ZUluZm8uZ2V0KCksIFN0cmluZzo6ZnJvbVVURjgoaG9z
dCkpOwogfQogCit2b2lkIHdlYmtpdFdlYkNvbnRleHRXZWJQcm9jZXNzU3RhcnRlZChXZWJLaXRX
ZWJDb250ZXh0KiB3ZWJDb250ZXh0LCBXZWJQcm9jZXNzUHJveHkqIHByb2Nlc3MpCit7CisgICAg
VmVjdG9yPFdlYlBhZ2VQcm94eSo+IHBhZ2VzID0gcHJvY2Vzcy0+cGFnZXMoKTsKKyAgICBmb3Ig
KHNpemVfdCBpID0gMCwgc2l6ZSA9IHBhZ2VzLnNpemUoKTsgaSA8IHNpemU7ICsraSkgeworICAg
ICAgICBXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3ID0gd2Via2l0V2ViQ29udGV4dEdldFdlYlZpZXdG
b3JQYWdlKHdlYkNvbnRleHQsIHBhZ2VzW2ldKTsKKyAgICAgICAgQVNTRVJUKHdlYlZpZXcpOwor
ICAgICAgICB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc1N0YXJ0ZWQod2ViVmlldyk7CisgICAgfQor
fQorCiBXZWJLaXREb3dubG9hZCogd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxvYWQo
RG93bmxvYWRQcm94eSogZG93bmxvYWRQcm94eSkKIHsKICAgICBHUmVmUHRyPFdlYktpdERvd25s
b2FkPiBkb3dubG9hZCA9IGRvd25sb2Fkc01hcCgpLmdldChkb3dubG9hZFByb3h5KTsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQ
cml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250
ZXh0UHJpdmF0ZS5oCmluZGV4IDgxYzQ3M2MuLjg0NmFmYTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2YXRlLmgKKysrIGIv
U291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFByaXZhdGUu
aApAQCAtMzIsOSArMzIsMTEgQEAKICNpbmNsdWRlICJXZWJLaXRVUklTY2hlbWVSZXF1ZXN0Lmgi
CiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdH
cm91cC5oIgorI2luY2x1ZGUgIldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIldlYlNvdXBS
ZXF1ZXN0TWFuYWdlclByb3h5LmgiCiAKIFdlYktpdDo6V2ViQ29udGV4dCogd2Via2l0V2ViQ29u
dGV4dEdldENvbnRleHQoV2ViS2l0V2ViQ29udGV4dCopOwordm9pZCB3ZWJraXRXZWJDb250ZXh0
V2ViUHJvY2Vzc1N0YXJ0ZWQoV2ViS2l0V2ViQ29udGV4dCosIFdlYktpdDo6V2ViUHJvY2Vzc1By
b3h5Kik7CiBXZWJLaXREb3dubG9hZCogd2Via2l0V2ViQ29udGV4dEdldE9yQ3JlYXRlRG93bmxv
YWQoV2ViS2l0OjpEb3dubG9hZFByb3h5Kik7CiBXZWJLaXREb3dubG9hZCogd2Via2l0V2ViQ29u
dGV4dFN0YXJ0RG93bmxvYWQoV2ViS2l0V2ViQ29udGV4dCosIGNvbnN0IGNoYXIqIHVyaSwgV2Vi
S2l0OjpXZWJQYWdlUHJveHkqKTsKIHZvaWQgd2Via2l0V2ViQ29udGV4dFJlbW92ZURvd25sb2Fk
KFdlYktpdDo6RG93bmxvYWRQcm94eSopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCBkNGU0ZDM3Li5kMWViNWZmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNw
cApAQCAtNTksNiArNTksNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdHcm91cFByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdp
bmRvd1Byb3BlcnRpZXNQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvRHJh
Z0ljb24uaD4KICNpbmNsdWRlIDxXZWJDb3JlL0dPd25QdHJHdGsuaD4KQEAgLTEyMCw2ICsxMjEs
NyBAQCBlbnVtIHsKIAogICAgIElOU0VDVVJFX0NPTlRFTlRfREVURUNURUQsCiAKKyAgICBXRUJf
UFJPQ0VTU19TVEFSVEVELAogICAgIFdFQl9QUk9DRVNTX0NSQVNIRUQsCiAKICAgICBBVVRIRU5U
SUNBVEUsCkBAIC0xMzgsNyArMTQwLDggQEAgZW51bSB7CiAgICAgUFJPUF9VUkksCiAgICAgUFJP
UF9aT09NX0xFVkVMLAogICAgIFBST1BfSVNfTE9BRElORywKLSAgICBQUk9QX1ZJRVdfTU9ERQor
ICAgIFBST1BfVklFV19NT0RFLAorICAgIFBST1BfSVNfV0VCX1BST0NFU1NfUlVOTklORwogfTsK
IAogdHlwZWRlZiBIYXNoTWFwPHVpbnQ2NF90LCBHUmVmUHRyPFdlYktpdFdlYlJlc291cmNlPiA+
IExvYWRpbmdSZXNvdXJjZXNNYXA7CkBAIC0xNjIsNiArMTY1LDcgQEAgc3RydWN0IF9XZWJLaXRX
ZWJWaWV3UHJpdmF0ZSB7CiAgICAgQ1N0cmluZyBhY3RpdmVVUkk7CiAgICAgYm9vbCBpc0xvYWRp
bmc7CiAgICAgV2ViS2l0Vmlld01vZGUgdmlld01vZGU7CisgICAgYm9vbCBpc1dlYlByb2Nlc3NS
dW5uaW5nOwogCiAgICAgYm9vbCB3YWl0aW5nRm9yTWFpblJlc291cmNlOwogICAgIHVuc2lnbmVk
IGxvbmcgbWFpblJlc291cmNlUmVzcG9uc2VIYW5kbGVySUQ7CkBAIC00OTQsNiArNDk4LDE1IEBA
IHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdIYW5kbGVEb3dubG9hZFJlcXVlc3QoV2ViS2l0V2Vi
Vmlld0Jhc2UqIHdlYlZpZXdCYXNlLCBECiAgICAgd2Via2l0RG93bmxvYWRTZXRXZWJWaWV3KGRv
d25sb2FkLmdldCgpLCBXRUJLSVRfV0VCX1ZJRVcod2ViVmlld0Jhc2UpKTsKIH0KIAorc3RhdGlj
IHZvaWQgd2Via2l0V2ViVmlld1NldElzV2ViUHJvY2Vzc1J1bm5pbmcoV2ViS2l0V2ViVmlldyog
d2ViVmlldywgYm9vbCBpc1dlYlByb2Nlc3NSdW5uaW5nKQoreworICAgIGlmICh3ZWJWaWV3LT5w
cml2LT5pc1dlYlByb2Nlc3NSdW5uaW5nID09IGlzV2ViUHJvY2Vzc1J1bm5pbmcpCisgICAgICAg
IHJldHVybjsKKworICAgIHdlYlZpZXctPnByaXYtPmlzV2ViUHJvY2Vzc1J1bm5pbmcgPSBpc1dl
YlByb2Nlc3NSdW5uaW5nOworICAgIGdfb2JqZWN0X25vdGlmeShHX09CSkVDVCh3ZWJWaWV3KSwg
ImlzLXdlYi1wcm9jZXNzLXJ1bm5pbmciKTsKK30KKwogc3RhdGljIHZvaWQgd2Via2l0V2ViVmll
d0NvbnN0cnVjdGVkKEdPYmplY3QqIG9iamVjdCkKIHsKICAgICBpZiAoR19PQkpFQ1RfQ0xBU1Mo
d2Via2l0X3dlYl92aWV3X3BhcmVudF9jbGFzcyktPmNvbnN0cnVjdGVkKQpAQCAtNTAyLDYgKzUx
NSw3IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdDb25zdHJ1Y3RlZChHT2JqZWN0KiBvYmpl
Y3QpCiAgICAgV2ViS2l0V2ViVmlldyogd2ViVmlldyA9IFdFQktJVF9XRUJfVklFVyhvYmplY3Qp
OwogICAgIFdlYktpdFdlYlZpZXdQcml2YXRlKiBwcml2ID0gd2ViVmlldy0+cHJpdjsKICAgICB3
ZWJraXRXZWJDb250ZXh0Q3JlYXRlUGFnZUZvcldlYlZpZXcocHJpdi0+Y29udGV4dCwgd2ViVmll
dywgcHJpdi0+Z3JvdXAuZ2V0KCkpOworICAgIHdlYmtpdFdlYlZpZXdTZXRJc1dlYlByb2Nlc3NS
dW5uaW5nKHdlYlZpZXcsIGdldFBhZ2Uod2ViVmlldyktPnByb2Nlc3NJZGVudGlmaWVyKCkpOwog
CiAgICAgd2Via2l0V2ViVmlld0Jhc2VTZXREb3dubG9hZFJlcXVlc3RIYW5kbGVyKFdFQktJVF9X
RUJfVklFV19CQVNFKHdlYlZpZXcpLCB3ZWJraXRXZWJWaWV3SGFuZGxlRG93bmxvYWRSZXF1ZXN0
KTsKIApAQCAtNTc4LDYgKzU5Miw5IEBAIHN0YXRpYyB2b2lkIHdlYmtpdFdlYlZpZXdHZXRQcm9w
ZXJ0eShHT2JqZWN0KiBvYmplY3QsIGd1aW50IHByb3BJZCwgR1ZhbHVlKiB2YWx1CiAgICAgY2Fz
ZSBQUk9QX1ZJRVdfTU9ERToKICAgICAgICAgZ192YWx1ZV9zZXRfZW51bSh2YWx1ZSwgd2Via2l0
X3dlYl92aWV3X2dldF92aWV3X21vZGUod2ViVmlldykpOwogICAgICAgICBicmVhazsKKyAgICBj
YXNlIFBST1BfSVNfV0VCX1BST0NFU1NfUlVOTklORzoKKyAgICAgICAgZ192YWx1ZV9zZXRfYm9v
bGVhbih2YWx1ZSwgd2Via2l0X3dlYl92aWV3X2lzX3dlYl9wcm9jZXNzX3J1bm5pbmcod2ViVmll
dykpOworICAgICAgICBicmVhazsKICAgICBkZWZhdWx0OgogICAgICAgICBHX09CSkVDVF9XQVJO
X0lOVkFMSURfUFJPUEVSVFlfSUQob2JqZWN0LCBwcm9wSWQsIHBhcmFtU3BlYyk7CiAgICAgfQpA
QCAtNzU2LDYgKzc3MywyNSBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5p
dChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdFQktJVF9QQVJBTV9SRUFEV1JJVEUp
KTsKIAogICAgIC8qKgorICAgICAqIFdlYktpdFdlYlZpZXc6aXMtd2ViLXByb2Nlc3MtcnVubmlu
ZzoKKyAgICAgKgorICAgICAqIFdoZXRoZXIgdGhlIHdlYiBwcm9jZXNzIHRvIHdoaWNoIHRoZSB2
aWV3IGJlbG9uZ3MgdG8gaXMgcnVubmluZy4KKyAgICAgKiBUaGlzIHByb3BlcnR5IGJlY29tZXMg
JVRSVUUgYXMgc29vbiBhcyB0aGUgd2ViIHByb2Nlc3MgdGhlIHZpZXcgYmVsb25ncyB0byBzdGFy
dHMgcnVubmluZyBhbmQKKyAgICAgKiBiZWZvcmUgdGhlICNXZWJLaXRXZWJWaWV3Ojp3ZWItcHJv
Y2Vzcy1zdGFydGVkIHNpZ25hbCBpcyBlbWl0dGVkLgorICAgICAqIElmIHRoZSB3ZWIgcHJvY2Vz
cyBjcmFzaGVzIHRoaXMgcHJvcGVydHkgaXMgc2V0IHRvICVGQUxTRSBiZWZvcmUKKyAgICAgKiAj
V2ViS2l0V2ViVmlldzo6d2ViLXByb2Nlc3MtY3Jhc2hlZCBpcyBlbWl0dGVkLgorICAgICAqCisg
ICAgICogU2luY2U6IDIuNAorICAgICAqLworICAgIGdfb2JqZWN0X2NsYXNzX2luc3RhbGxfcHJv
cGVydHkoZ09iamVjdENsYXNzLAorICAgICAgICBQUk9QX0lTX1dFQl9QUk9DRVNTX1JVTk5JTkcs
CisgICAgICAgIGdfcGFyYW1fc3BlY19ib29sZWFuKCJpcy13ZWItcHJvY2Vzcy1ydW5uaW5nIiwK
KyAgICAgICAgICAgICJJcyB3ZWIgcHJvY2VzcyBydW5uaW5nIiwKKyAgICAgICAgICAgIF8oIldo
ZXRoZXIgdGhlIHdlYiBwcm9jZXNzIHRoZSB2aWV3IGJlbG9uZ3MgdG8gaXMgcnVubmluZyIpLAor
ICAgICAgICAgICAgRkFMU0UsCisgICAgICAgICAgICBXRUJLSVRfUEFSQU1fUkVBREFCTEUpKTsK
KworICAgIC8qKgogICAgICAqIFdlYktpdFdlYlZpZXc6OmxvYWQtY2hhbmdlZDoKICAgICAgKiBA
d2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldyBvbiB3aGljaCB0aGUgc2lnbmFsIGlzIGVtaXR0
ZWQKICAgICAgKiBAbG9hZF9ldmVudDogdGhlICNXZWJLaXRMb2FkRXZlbnQKQEAgLTEzOTksNiAr
MTQzNSwyMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2ViX3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRX
ZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAgICAgICAgIFdFQktJVF9UWVBFX0lOU0VD
VVJFX0NPTlRFTlRfRVZFTlQpOwogCiAgICAgLyoqCisgICAgICogV2ViS2l0V2ViVmlldzo6d2Vi
LXByb2Nlc3Mtc3RhcnRlZDoKKyAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldwor
ICAgICAqCisgICAgICogVGhpcyBzaWduYWwgaXMgZW1pdHRlZCB3aGVuIHRoZSB3ZWIgcHJvY2Vz
cyBzdGFydGVkLgorICAgICAqCisgICAgICogU2luY2U6IDIuNAorICAgICAqLworICAgIHNpZ25h
bHNbV0VCX1BST0NFU1NfU1RBUlRFRF0gPSBnX3NpZ25hbF9uZXcoCisgICAgICAgICJ3ZWItcHJv
Y2Vzcy1zdGFydGVkIiwKKyAgICAgICAgR19UWVBFX0ZST01fQ0xBU1Mod2ViVmlld0NsYXNzKSwK
KyAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCisgICAgICAgIEdfU1RSVUNUX09GRlNFVChXZWJL
aXRXZWJWaWV3Q2xhc3MsIHdlYl9wcm9jZXNzX3N0YXJ0ZWQpLAorICAgICAgICAwLCAwLAorICAg
ICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9JRCwKKyAgICAgICAgR19UWVBFX05PTkUs
IDApOworCisgICAgLyoqCiAgICAgICogV2ViS2l0V2ViVmlldzo6d2ViLXByb2Nlc3MtY3Jhc2hl
ZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0V2ViVmlldwogICAgICAqCkBAIC0xOTMw
LDYgKzE5ODMsNTAgQEAgV2ViS2l0V2ViVmlld0dyb3VwKiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2dy
b3VwKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB9CiAKIC8qKgorICogd2Via2l0X3dlYl92aWV3
X2lzX3dlYl9wcm9jZXNzX3J1bm5pbmc6CisgKiBAd2ViX3ZpZXc6IGEgI3dlYmtpdHdlYnZpZXcK
KyAqCisgKiBHZXRzIHRoZSB2YWx1ZSBvZiB0aGUgI1dlYktpdFdlYlZpZXc6aXMtd2ViLXByb2Nl
c3MtcnVubmluZyBwcm9wZXJ0eS4KKyAqIFlvdSBjYW4gbW9uaXRvciB3aGVuIHRoZSB3ZWIgcHJv
Y2VzcyBAd2ViX3ZpZXcgYmVsb25ncyB0byBpcyBydW5uaW5nCisgKiBieSBjb25uZWN0aW5nIHRv
IHRoZSBub3RpZnk6OmlzLXdlYi1wcm9jZXNzLXJ1bm5pbmcgb3IgdGhlCisgKiAjV2ViS2l0V2Vi
Vmlldzo6d2ViLXByb2Nlc3Mtc3RhcnRlZCBzaWduYWwgb2YgQHdlYl92aWV3LgorICoKKyAqIFJl
dHVybnM6ICVUUlVFIGlmIHRoZSB3ZWIgcHJvY2VzcyB0byB3aGljaCB0aGUgdmlldyBiZWxvbmdz
IGlzIHJ1bm5pbmcgb3IKKyAqICAgICAlRkFMU0Ugb3RoZXJ3aXNlLgorICoKKyAqIFNpbmNlOiAy
LjQKKyAqLworV0VCS0lUX0FQSSBnYm9vbGVhbgord2Via2l0X3dlYl92aWV3X2lzX3dlYl9wcm9j
ZXNzX3J1bm5pbmcoV2ViS2l0V2ViVmlldyogd2ViVmlldykKK3sKKyAgICBnX3JldHVybl92YWxf
aWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyksIEZBTFNFKTsKKworICAgIHJldHVy
biB3ZWJWaWV3LT5wcml2LT5pc1dlYlByb2Nlc3NSdW5uaW5nOworfQorCisvKioKKyAqIHdlYmtp
dF93ZWJfdmlld19nZXRfd2ViX3Byb2Nlc3NfaWRlbnRpZmllcjoKKyAqIEB3ZWJfdmlldzogYSAj
d2Via2l0d2VidmlldworICoKKyAqIEdldHMgdGhlIHBpZCBvZiB0aGUgd2ViIHByb2Nlc3MgQHdl
Yl92aWV3IGJlbG9uZ3MgdG8uCisgKiBZb3UgY2FuIG1vbml0b3Igd2hlbiB0aGUgd2ViIHByb2Nl
c3MgQHdlYl92aWV3IGJlbG9uZ3MgdG8gaXMgcnVubmluZworICogYnkgY29ubmVjdGluZyB0byB0
aGUgbm90aWZ5Ojppcy13ZWItcHJvY2Vzcy1ydW5uaW5nIG9yIHRoZQorICogI1dlYktpdFdlYlZp
ZXc6OndlYi1wcm9jZXNzLXN0YXJ0ZWQgc2lnbmFsIG9mIEB3ZWJfdmlldy4KKyAqCisgKiBSZXR1
cm5zOiB0aGUgcGlkIG9mIHRoZSB3ZWIgcHJvY2VzcyB0byB3aGljaCB0aGUgdmlldyBiZWxvbmdz
IG9yCisgKiAgICAgMCBpZiB0aGUgd2ViIHByb2Nlc3MgaXMgbm90IHJ1bm5pbmcKKyAqCisgKiBT
aW5jZTogMi40CisgKi8KK1dFQktJVF9BUEkgR1BpZAord2Via2l0X3dlYl92aWV3X2dldF93ZWJf
cHJvY2Vzc19pZGVudGlmaWVyKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCit7CisgICAgZ19yZXR1
cm5fdmFsX2lmX2ZhaWwoV0VCS0lUX0lTX1dFQl9WSUVXKHdlYlZpZXcpLCAwKTsKKworICAgIHJl
dHVybiBnZXRQYWdlKHdlYlZpZXcpLT5wcm9jZXNzSWRlbnRpZmllcigpOworfQorCisvKioKICAq
IHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaToKICAqIEB3ZWJfdmlldzogYSAjV2ViS2l0V2ViVmll
dwogICogQHVyaTogYW4gVVJJIHN0cmluZwpAQCAtMzEyMCw4ICszMjE3LDE5IEBAIGNhaXJvX3N1
cmZhY2VfdCogd2Via2l0X3dlYl92aWV3X2dldF9zbmFwc2hvdF9maW5pc2goV2ViS2l0V2ViVmll
dyogd2ViVmlldywgR0FzCiAgICAgcmV0dXJuIHN0YXRpY19jYXN0PGNhaXJvX3N1cmZhY2VfdCo+
KGdfdGFza19wcm9wYWdhdGVfcG9pbnRlcihHX1RBU0socmVzdWx0KSwgZXJyb3IpKTsKIH0KIAor
dm9pZCB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc1N0YXJ0ZWQoV2ViS2l0V2ViVmlldyogd2ViVmll
dykKK3sKKyAgICBBU1NFUlQoZ2V0UGFnZSh3ZWJWaWV3KS0+cHJvY2Vzc0lkZW50aWZpZXIoKSk7
CisgICAgd2Via2l0V2ViVmlld1NldElzV2ViUHJvY2Vzc1J1bm5pbmcod2ViVmlldywgVFJVRSk7
CisKKyAgICBnX3NpZ25hbF9lbWl0KHdlYlZpZXcsIHNpZ25hbHNbV0VCX1BST0NFU1NfU1RBUlRF
RF0sIDApOworfQorCiB2b2lkIHdlYmtpdFdlYlZpZXdXZWJQcm9jZXNzQ3Jhc2hlZChXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3KQogeworICAgIEFTU0VSVCghZ2V0UGFnZSh3ZWJWaWV3KS0+cHJvY2Vz
c0lkZW50aWZpZXIoKSk7CisgICAgd2Via2l0V2ViVmlld1NldElzV2ViUHJvY2Vzc1J1bm5pbmco
d2ViVmlldywgRkFMU0UpOworCiAgICAgZ2Jvb2xlYW4gcmV0dXJuVmFsdWU7CiAgICAgZ19zaWdu
YWxfZW1pdCh3ZWJWaWV3LCBzaWduYWxzW1dFQl9QUk9DRVNTX0NSQVNIRURdLCAwLCAmcmV0dXJu
VmFsdWUpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsv
V2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0
V2ViVmlldy5oCmluZGV4IDZlNDM0YjUuLjUxMmYwMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmgKQEAgLTI0OCwxMiArMjQ4LDEzIEBA
IHN0cnVjdCBfV2ViS2l0V2ViVmlld0NsYXNzIHsKICAgICBnYm9vbGVhbiAgICgqIGxvYWRfZmFp
bGVkX3dpdGhfdGxzX2Vycm9ycykgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgICAqd2ViX3Zp
ZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJL
aXRDZXJ0aWZpY2F0ZUluZm8gICAgICAgKmluZm8sCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hhciAgICAgICAgICAgICAgICAgKmhvc3Qp
OworICAgIHZvaWQgICAgICAgKCogd2ViX3Byb2Nlc3Nfc3RhcnRlZCkgICAgICAgICAoV2ViS2l0
V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJfdmlldyk7CisKICAgICB2b2lkICgqX3dlYmtpdF9y
ZXNlcnZlZDApICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDEpICh2b2lkKTsK
ICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtp
dF9yZXNlcnZlZDMpICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDQpICh2b2lk
KTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDUpICh2b2lkKTsKIH07CiAKIFdFQktJVF9B
UEkgR1R5cGUKQEAgLTI3NCw2ICsyNzUsMTIgQEAgd2Via2l0X3dlYl92aWV3X2dldF9jb250ZXh0
ICAgICAgICAgICAgICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldwogV0VCS0lUX0FQSSBXZWJL
aXRXZWJWaWV3R3JvdXAgKgogd2Via2l0X3dlYl92aWV3X2dldF9ncm91cCAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOwogCitX
RUJLSVRfQVBJIGdib29sZWFuCit3ZWJraXRfd2ViX3ZpZXdfaXNfd2ViX3Byb2Nlc3NfcnVubmlu
ZyAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAgICAgICAgICp3ZWJfdmlldyk7CisK
K1dFQktJVF9BUEkgR1BpZAord2Via2l0X3dlYl92aWV3X2dldF93ZWJfcHJvY2Vzc19pZGVudGlm
aWVyICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAqd2ViX3ZpZXcpOworCiBX
RUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaSAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAgICAgKndlYl92aWV3LAogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3QgZ2No
YXIgICAgICAgICAgICAgICAqdXJpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2YXRlLmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oCmluZGV4IGZkMGFlZDIuLmNhMmYz
ODMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlld1ByaXZhdGUuaApAQCAtMjcsNiArMjcsNyBAQAogI2lmbmRlZiBXZWJLaXRXZWJW
aWV3UHJpdmF0ZV9oCiAjZGVmaW5lIFdlYktpdFdlYlZpZXdQcml2YXRlX2gKIAorI2luY2x1ZGUg
IldlYkNvbm5lY3Rpb24uaCIKICNpbmNsdWRlICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYktp
dFdlYlZpZXcuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9DU3RyaW5nLmg+CkBAIC01OSw2ICs2MCw3
IEBAIHZvaWQgd2Via2l0V2ViVmlld1BvcHVsYXRlQ29udGV4dE1lbnUoV2ViS2l0V2ViVmlldyos
IFdlYktpdDo6SW1tdXRhYmxlQXJyYXkqIHByCiB2b2lkIHdlYmtpdFdlYlZpZXdTdWJtaXRGb3Jt
UmVxdWVzdChXZWJLaXRXZWJWaWV3KiwgV2ViS2l0Rm9ybVN1Ym1pc3Npb25SZXF1ZXN0Kik7CiB2
b2lkIHdlYmtpdFdlYlZpZXdIYW5kbGVBdXRoZW50aWNhdGlvbkNoYWxsZW5nZShXZWJLaXRXZWJW
aWV3KiwgV2ViS2l0OjpBdXRoZW50aWNhdGlvbkNoYWxsZW5nZVByb3h5Kik7CiB2b2lkIHdlYmtp
dFdlYlZpZXdJbnNlY3VyZUNvbnRlbnREZXRlY3RlZChXZWJLaXRXZWJWaWV3KiwgV2ViS2l0SW5z
ZWN1cmVDb250ZW50RXZlbnQpOwordm9pZCB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc1N0YXJ0ZWQo
V2ViS2l0V2ViVmlldyopOwogdm9pZCB3ZWJraXRXZWJWaWV3V2ViUHJvY2Vzc0NyYXNoZWQoV2Vi
S2l0V2ViVmlldyopOwogCiAjZW5kaWYgLy8gV2ViS2l0V2ViVmlld1ByaXZhdGVfaApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNl
Y3Rpb25zLnR4dCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0
Mmd0ay1zZWN0aW9ucy50eHQKaW5kZXggODA1NzYzYi4uZWFlNDM5OCAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4
dAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGst
c2VjdGlvbnMudHh0CkBAIC05NCw2ICs5NCw4IEBAIHdlYmtpdF93ZWJfdmlld19uZXdfd2l0aF9j
b250ZXh0CiB3ZWJraXRfd2ViX3ZpZXdfbmV3X3dpdGhfZ3JvdXAKIHdlYmtpdF93ZWJfdmlld19n
ZXRfY29udGV4dAogd2Via2l0X3dlYl92aWV3X2dldF9ncm91cAord2Via2l0X3dlYl92aWV3X2lz
X3dlYl9wcm9jZXNzX3J1bm5pbmcKK3dlYmtpdF93ZWJfdmlld19nZXRfd2ViX3Byb2Nlc3NfaWRl
bnRpZmllcgogd2Via2l0X3dlYl92aWV3X2xvYWRfdXJpCiB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9o
dG1sCiB3ZWJraXRfd2ViX3ZpZXdfbG9hZF9hbHRlcm5hdGVfaHRtbApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYkV4dGVuc2lvbnMuY3Bw
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYkV4dGVuc2lv
bnMuY3BwCmluZGV4IDkxY2I3YWEuLmY0YjNhODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJFeHRlbnNpb25zLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAK
QEAgLTcyLDggKzcyLDI0IEBAIHN0YXRpYyB2b2lkIHRlc3REb2N1bWVudExvYWRlZFNpZ25hbChX
ZWJWaWV3VGVzdCogdGVzdCwgZ2NvbnN0cG9pbnRlcikKICAgICBnX2RidXNfY29ubmVjdGlvbl9z
aWduYWxfdW5zdWJzY3JpYmUoY29ubmVjdGlvbiwgaWQpOwogfQogCi1zdGF0aWMgZ2Jvb2xlYW4g
d2ViUHJvY2Vzc0NyYXNoZWRDYWxsYmFjayhXZWJLaXRXZWJWaWV3KiwgV2ViVmlld1Rlc3QqIHRl
c3QpCitzdGF0aWMgdm9pZCB3ZWJQcm9jZXNzU3RhcnRlZENhbGxiYWNrKFdlYktpdFdlYlZpZXcq
IHdlYlZpZXcsIFdlYlZpZXdUZXN0KiB0ZXN0KQogeworICAgIGdfYXNzZXJ0KHdlYmtpdF93ZWJf
dmlld19pc193ZWJfcHJvY2Vzc19ydW5uaW5nKHdlYlZpZXcpKTsKKyAgICBnX2Fzc2VydCh3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X3dlYl9wcm9jZXNzX2lkZW50aWZpZXIod2ViVmlldykpOworICAgIHRl
c3QtPnF1aXRNYWluTG9vcCgpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0V2ViVmlld1By
b2Nlc3NTdGFydGVkKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIGdf
c2lnbmFsX2Nvbm5lY3QodGVzdC0+bV93ZWJWaWV3LCAid2ViLXByb2Nlc3Mtc3RhcnRlZCIsCisg
ICAgICAgIEdfQ0FMTEJBQ0sod2ViUHJvY2Vzc1N0YXJ0ZWRDYWxsYmFjayksIHRlc3QpOworICAg
IGdfbWFpbl9sb29wX3J1bih0ZXN0LT5tX21haW5Mb29wKTsKK30KKworc3RhdGljIGdib29sZWFu
IHdlYlByb2Nlc3NDcmFzaGVkQ2FsbGJhY2soV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViVmll
d1Rlc3QqIHRlc3QpCit7CisgICAgZ19hc3NlcnQoIXdlYmtpdF93ZWJfdmlld19pc193ZWJfcHJv
Y2Vzc19ydW5uaW5nKHdlYlZpZXcpKTsKKyAgICBnX2Fzc2VydCghd2Via2l0X3dlYl92aWV3X2dl
dF93ZWJfcHJvY2Vzc19pZGVudGlmaWVyKHdlYlZpZXcpKTsKICAgICB0ZXN0LT5xdWl0TWFpbkxv
b3AoKTsKIAogICAgIHJldHVybiBGQUxTRTsKQEAgLTE4Miw2ICsxOTgsNyBAQCB2b2lkIGJlZm9y
ZUFsbCgpCiAgICAgaWYgKCFidXMtPnJ1bigpKQogICAgICAgICByZXR1cm47CiAKKyAgICBXZWJW
aWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJWaWV3IiwgIndlYi1wcm9jZXNzLXN0YXJ0ZWQiLCB0ZXN0
V2ViS2l0V2ViVmlld1Byb2Nlc3NTdGFydGVkKTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJL
aXRXZWJFeHRlbnNpb24iLCAiZG9tLWRvY3VtZW50LXRpdGxlIiwgdGVzdFdlYkV4dGVuc2lvbkdl
dFRpdGxlKTsKICAgICBXZWJWaWV3VGVzdDo6YWRkKCJXZWJLaXRXZWJFeHRlbnNpb24iLCAiZG9j
dW1lbnQtbG9hZGVkLXNpZ25hbCIsIHRlc3REb2N1bWVudExvYWRlZFNpZ25hbCk7CiAgICAgV2Vi
Vmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViVmlldyIsICJ3ZWItcHJvY2Vzcy1jcmFzaGVkIiwgdGVz
dFdlYktpdFdlYlZpZXdQcm9jZXNzQ3Jhc2hlZCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcCBiL1NvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwCmluZGV4IDA1YWFlNTkuLmU1
OWY3ZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Qcm9j
ZXNzTGF1bmNoZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9MYXVuY2hlci9Q
cm9jZXNzTGF1bmNoZXIuY3BwCkBAIC03Miw2ICs3Miw3IEBAIHZvaWQgUHJvY2Vzc0xhdW5jaGVy
OjpkaWRGaW5pc2hMYXVuY2hpbmdQcm9jZXNzKFBsYXRmb3JtUHJvY2Vzc0lkZW50aWZpZXIgcHJv
Y2VzCiB2b2lkIFByb2Nlc3NMYXVuY2hlcjo6aW52YWxpZGF0ZSgpCiB7CiAgICAgbV9jbGllbnQg
PSAwOworICAgIG1fcHJvY2Vzc0lkZW50aWZpZXIgPSAwOwogICAgIHBsYXRmb3JtSW52YWxpZGF0
ZSgpOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4
dC5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5jcHAKaW5kZXggNTBl
MThmYi4uNTBkODNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNv
bnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0LmNwcApA
QCAtNjI4LDYgKzYyOCwxNSBAQCBib29sIFdlYkNvbnRleHQ6OnNob3VsZFRlcm1pbmF0ZShXZWJQ
cm9jZXNzUHJveHkqIHByb2Nlc3MpCiAgICAgcmV0dXJuIHRydWU7CiB9CiAKK1dlYlByb2Nlc3NQ
cm94eSogV2ViQ29udGV4dDo6Z2V0V2ViUHJvY2Vzc0ZvcldlYkNvbm5lY3Rpb24oY29uc3QgV2Vi
Q29ubmVjdGlvbiogd2ViQ29ubmVjdGlvbikKK3sKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBp
IDwgbV9wcm9jZXNzZXMuc2l6ZSgpOyArK2kpIHsKKyAgICAgICAgaWYgKHdlYkNvbm5lY3Rpb24g
PT0gbV9wcm9jZXNzZXNbaV0tPndlYkNvbm5lY3Rpb24oKSkKKyAgICAgICAgICAgIHJldHVybiBt
X3Byb2Nlc3Nlc1tpXS5nZXQoKTsKKyAgICB9CisgICAgcmV0dXJuIDA7Cit9CisKIHZvaWQgV2Vi
Q29udGV4dDo6cHJvY2Vzc1dpbGxPcGVuQ29ubmVjdGlvbihXZWJQcm9jZXNzUHJveHkqIHByb2Nl
c3MpCiB7CiAgICAgbV9zdG9yYWdlTWFuYWdlci0+cHJvY2Vzc1dpbGxPcGVuQ29ubmVjdGlvbihw
cm9jZXNzKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmggYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29udGV4dC5oCmluZGV4IGUwMTM3NWUu
LjE2MzkxZjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJDb250ZXh0
LmgKKysrIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaApAQCAtNzAsNiAr
NzAsNyBAQCBPQkpDX0NMQVNTIE5TU3RyaW5nOwogbmFtZXNwYWNlIFdlYktpdCB7CiAKIGNsYXNz
IERvd25sb2FkUHJveHk7CitjbGFzcyBXZWJDb25uZWN0aW9uOwogY2xhc3MgV2ViQ29udGV4dFN1
cHBsZW1lbnQ7CiBjbGFzcyBXZWJJY29uRGF0YWJhc2U7CiBjbGFzcyBXZWJQYWdlR3JvdXA7CkBA
IC0yNDMsNiArMjQ0LDggQEAgcHVibGljOgogCiAgICAgYm9vbCBzaG91bGRUZXJtaW5hdGUoV2Vi
UHJvY2Vzc1Byb3h5Kik7CiAKKyAgICBXZWJQcm9jZXNzUHJveHkqIGdldFdlYlByb2Nlc3NGb3JX
ZWJDb25uZWN0aW9uKGNvbnN0IFdlYkNvbm5lY3Rpb24qKTsKKwogICAgIHZvaWQgZGlzYWJsZVBy
b2Nlc3NUZXJtaW5hdGlvbigpIHsgbV9wcm9jZXNzVGVybWluYXRpb25FbmFibGVkID0gZmFsc2U7
IH0KICAgICB2b2lkIGVuYWJsZVByb2Nlc3NUZXJtaW5hdGlvbigpOwogCi0tIAoxLjguMS4yCgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>218871</attachid>
            <date>2013-12-10 07:11:15 -0800</date>
            <delta_ts>2016-05-24 22:05:43 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-123292-20131210161219.patch</filename>
            <type>text/plain</type>
            <size>19385</size>
            <attacher name="Adrian Perez">aperez</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTYwMzEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKaW5kZXggYzM4NWI3NjkzYTE4YmMx
OTA4M2QwMzBhN2JkZTdkN2RkM2FhNGYxMy4uNDkwYjYyNGE4OGUxNmQ0ODY5MzkxMGIxMGQyNDNk
YzI2NDk4ODhjMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJLaXQyL0NoYW5nZUxvZwpAQCAtMSwzICsxLDk2IEBACisyMDEzLTEyLTEwICBBZHJp
YW4gUGVyZXogZGUgQ2FzdHJvICA8YXBlcmV6QGlnYWxpYS5jb20+CisKKyAgICAgICAgQWRkIHdl
Yi1wcm9jZXNzLXN0YXJ0ZWQgc2lnbmFsIHRvIHdlYiB2aWV3CisKKyAgICAgICAgW0dUS11bV0sy
XSBBZGQgd2VidmlldyBzaWduYWwgZm9yIHdlYi1wcm9jZXNzLXN0YXJ0ZWQKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEyMzI5MgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgaXMgbmVlZGVkIHdoZW4g
dXNpbmcgbXVsdGlwbGUgd2ViIHByb2Nlc3NlcyBpbiB0aGUgR1RLIHBvcnQKKyAgICAgICAgdG8g
YWxsb3cgY2xpZW50IGNvZGUgdG8ga25vdyB0aGUgcHJvY2VzcyBpZGVudGlmaWVyIG9mIHRoZSB3
ZWIKKyAgICAgICAgcHJvY2VzcywgdG8gYWlkIGVzdGFibGlzaGluZyBhIGNvbW11bmljYXRpb25z
IGNoYW5uZWwgd2l0aAorICAgICAgICB3ZWIgZXh0ZW5zaW9ucyBsb2FkZWQgZnJvbSBhbiBpbmpl
Y3RlZCBidW5kbGUuCisKKyAgICAgICAgVGhpcyBpcyBhIGNsZWFuZWQgdXAgdmVyc2lvbiBvZiB0
aGUgcGF0Y2ggb3JpZ2luYWxseSB3cml0dGVuIGJ5CisgICAgICAgIEFuZHJlIE1vcmVpcmEgTWFn
YWxoYWVzIDxhbmRyZS5tYWdhbGhhZXNAY29sbGFib3JhLmNvLnVrPi4gVGhlCisgICAgICAgIGRp
ZmZlcmVuY2VzIGFyZToKKworICAgICAgICAtIFVzZXMgV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVu
dFYwIGluc3RlYWQgb2YgdGhlIGRlcHJlY2F0ZWQKKyAgICAgICAgICBXS0NvbnRleHRDb25uZWN0
aW9uQ2xpZW50LgorCisgICAgICAgIC0gVGhlIGNvZGUgaW4gV2ViS2l0Q29ubmVjdGlvbkNsaWVu
dC5jcHAgd2FzIG1vdmVkIGludG8KKyAgICAgICAgICBXZWJLaXRXZWJDb250ZXh0LmNwcCAobWFr
aW5nIHRoZSBuZXcgZmlsZXMgdW5uZWVkZWQpLgorCisgICAgICAgIC0gVGhlIGlzLXdlYi1wcm9j
ZXNzLXJ1bm5pbmcgcHJvcGVydHkgKGFuZCB0aGUgY29ycmVzcG9uZGluZworICAgICAgICAgIHdl
YmtpdF93ZWJfdmlld19pc193ZWJfcHJvY2Vzc19ydW5uaW5nKSBpcyByZW1vdmVkLiBJdCBpcyBu
b3QKKyAgICAgICAgICBuZWVkZWQgdG8gaW1wbGVtZW50IHRoZSBpbnRlbmRlZCBmdW5jdGlvbmFs
aXR5IGFuZCBpdCBpcyBub3QKKyAgICAgICAgICBjbGVhciB3aGV0aGVyIGl0IHdvdWxkIGJlIHVz
ZWZ1bCBmb3IgYXBwbGljYXRpb25zLiBBcHBsaWNhdGlvbnMKKyAgICAgICAgICBjYW4gc3RpbGwg
Y2hlY2sgd2hldGhlciB0aGUgcHJvY2VzcyBpZGVudGlmaWVyIGlzIHplcm8gdG8ga25vdworICAg
ICAgICAgIHdoZXRoZXIgYSB3ZWIgcHJvY2VzcyBpcyBydW5uaW5nLgorCisgICAgICAgIENoYW5n
ZUxvZyBtZXNzYWdlIGZvciB0aGUgb3JpZ2luYWwgcGF0Y2ggYnkgQW5kcmU6CisKKyAgICAgICAg
ICBJIHdhbnRlZCB0byBhZGQgYSB3YXkgdG8gbWFwIGJldHdlZW4gZXh0ZW5zaW9ucyBhbmQKKyAg
ICAgICAgICBXZWJQcm9jZXNzL0NvbnRleHQvVmlldyBvbiB3ZWJraXQyZ3RrIGFuZCBkaXNjdXNz
aW5nIHdpdGggR3VzdGF2bworICAgICAgICAgIE5vcm9uaGEgKGtvdikgd2UgdGhvdWdodCBhIGdv
b2Qgd2F5IHRvIGFjaGlldmUgdGhpcyB3b3VsZCBiZSB0bworICAgICAgICAgIGhhdmUgYSBzaWdu
YWwgKHdlYi1wcm9jZXNzLXN0YXJ0ZWQpIGluIHRoZSBXZWJLaXRXZWJWaWV3IHdpdGggYQorICAg
ICAgICAgIHBpZCBhcmd1bWVudC4KKworICAgICAgICAgIFRoaXMgd2F5IGV4dGVuc2lvbnMgY291
bGQgZm9yIGV4YW1wbGUgdXNlIGdldHBpZCgpIHRvIHJlZ2lzdGVyIG9uCisgICAgICAgICAgREJ1
cyB1c2luZyBhbiB1bmlxdWUgbmFtZSAoZS5nLiBjb20uZm9vLkJhci1QSUQpIGFuZCB0aGUgdmll
dworICAgICAgICAgIHdvdWxkIGJlIGFibGUgdG8gd2F0Y2ggZm9yIHRoaXMgbmFtZSB0byBrbm93
IHdoZW4gdGhlIGV4dGVuc2lvbgorICAgICAgICAgIHJlZ2lzdGVyZWQgb24gRC1CdXMuCisKKyAg
ICAgICAgKiBTaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpD
aGlsZFByb2Nlc3NQcm94eTo6Y2xlYXJDb25uZWN0aW9uKToKKyAgICAgICAgTWV0aG9kIGludm9r
ZWQgd2hlbiB0aGUgd2ViIHByb2Nlc3MgaGFzIHRlcm1pbmF0ZWQuIEFsc28gcmVzZXQKKyAgICAg
ICAgcHJvY2VzcyBsYXVuY2hlciBzbyB0aGF0IFdlYlByb2Nlc3NQcm94eTo6cHJvY2Vzc0lkZW50
aWZpZXIKKyAgICAgICAgcmV0dXJucyAwIGFjY29yZGluZ2x5LgorICAgICAgICAqIFNoYXJlZC9D
aGlsZFByb2Nlc3NQcm94eS5oOgorICAgICAgICAoV2ViS2l0OjpDaGlsZFByb2Nlc3NQcm94eTo6
cHJvY2Vzc0lkZW50aWZpZXIpOgorICAgICAgICBDaGVjayBpZiBwcm9jZXNzIGxhdW5jaGVyIG9i
amVjdCBpcyBzdGlsbCB2YWxpZCBiZWZvcmUgYWNjZXNzaW5nCisgICAgICAgIGl0IChvYmplY3Qg
aXMgY3JlYXRlZCBvbiBjb25uZWN0IGFuZCBkZWxldGVkIG9uIHRlcm1pbmF0ZSkuCisgICAgICAg
ICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dC5jcHA6CisgICAgICAgICh3ZWJr
aXRXZWJDb250ZXh0V2ViUHJvY2Vzc1N0YXJ0ZWQpOgorICAgICAgICAocHJvY2Vzc0RpZFN0YXJ0
KToKKyAgICAgICAgV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudCBjYWxsYmFjayBpbnZva2VkIHdo
ZW4gdGhlIFdlYlByb2Nlc3MKKyAgICAgICAgaGFzIHN0YXJ0ZWQuCisgICAgICAgIChhdHRhY2hD
b25uZWN0aW9uQ2xpZW50VG9Db250ZXh0KToKKyAgICAgICAgTWV0aG9kIGNhbGxlZCBmcm9tIFdl
YktpdFdlYkNvbnRleHQgZHVyaW5nIHNldHVwIHRvIGNvbmZpZ3VyZQorICAgICAgICB0aGUgV0tD
b250ZXh0Q29ubmVjdGlvbkNsaWVudC4KKyAgICAgICAgKGNyZWF0ZURlZmF1bHRXZWJDb250ZXh0
KToKKyAgICAgICAgQWxzbyBpbml0aWFsaXplIFdLQ29udGV4dENvbm5lY3Rpb25DbGllbnQuCisg
ICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaDoKKyAg
ICAgICAgKiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNwcDoKKyAgICAgICAgKHdl
YmtpdF93ZWJfdmlld19jbGFzc19pbml0KToKKyAgICAgICAgQWRkIHNpZ25hbCB3ZWItcHJvY2Vz
cy1zdGFydGVkLgorICAgICAgICAod2Via2l0X3dlYl92aWV3X2dldF93ZWJfcHJvY2Vzc19pZGVu
dGlmaWVyKToKKyAgICAgICAgQWNjZXNzb3IgdG8gb2J0YWluIHRoZSBwcm9jZXNzIGlkZW50aWZp
ZXIgb2YgdGhlIHdlYiBwcm9jZXNzLgorICAgICAgICAod2Via2l0V2ViVmlld1dlYlByb2Nlc3NT
dGFydGVkKToKKyAgICAgICAgTWV0aG9kIGludm9rZWQgZnJvbSB3ZWJraXRXZWJDb250ZXh0V2Vi
UHJvY2Vzc1N0YXJ0ZWQgd2hlbiB0aGUKKyAgICAgICAgV2ViUHJvY2VzcyBoYXMgc3RhcnRlZC4g
RW1pdHMgdGhlIHdlYi1wcm9jZXNzLXN0YXJ0ZWQgc2lnbmFsLgorICAgICAgICAod2Via2l0V2Vi
Vmlld1dlYlByb2Nlc3NDcmFzaGVkKToKKyAgICAgICAgQ2xlYXIgdGhlIHByb2Nlc3MgaWRlbnRp
ZmllciBvZiB0aGUgd2ViIHByb2Nlc3MuCisgICAgICAgICogVUlQcm9jZXNzL0FQSS9ndGsvV2Vi
S2l0V2ViVmlldy5oOgorICAgICAgICBFeHBvc2UgdGhlIG5ldyBhY2Nlc3Nvci4KKyAgICAgICAg
KiBVSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5oOgorICAgICAgICAqIFVJ
UHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQ6CisgICAgICAgICog
VUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYkV4dGVuc2lvbnMuY3BwOgorICAgICAgICAo
d2ViUHJvY2Vzc1N0YXJ0ZWRDYWxsYmFjayk6CisgICAgICAgICh0ZXN0V2ViS2l0V2ViVmlld1By
b2Nlc3NTdGFydGVkKToKKyAgICAgICAgKHdlYlByb2Nlc3NDcmFzaGVkQ2FsbGJhY2spOgorICAg
ICAgICAoYmVmb3JlQWxsKToKKyAgICAgICAgQWRkIHRlc3QgZm9yIHRoZSBuZXcgQVBJLgorICAg
ICAgICAqIFVJUHJvY2Vzcy9MYXVuY2hlci9Qcm9jZXNzTGF1bmNoZXIuY3BwOgorICAgICAgICAo
V2ViS2l0OjpQcm9jZXNzTGF1bmNoZXI6OmludmFsaWRhdGUpOgorICAgICAgICBBbHNvIHJlc2V0
IHByb2Nlc3MgaWRlbnRpZmllciBvbiBpbnZhbGlkYXRlLgorICAgICAgICAqIFVJUHJvY2Vzcy9X
ZWJDb250ZXh0LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViQ29udGV4dDo6Z2V0V2ViUHJvY2Vz
c0ZvcldlYkNvbm5lY3Rpb24pOgorICAgICAgICBNZXRob2QgdG8gcmV0cmlldmUgYSBXZWJQcm9j
ZXNzUHJveHkgZnJvbSBhIGdpdmVuIFdlYkNvbm5lY3Rpb24gb24KKyAgICAgICAgYSBXZWJDb250
ZXh0LiBJbnZva2VkIGZyb20gV2ViS2l0Q29ubmVjdGlvbkNsaWVudDo6cHJvY2Vzc0RpZFN0YXJ0
LgorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJDb250ZXh0Lmg6CisKIDIwMTMtMTItMDkgIEFkcmlh
biBQZXJleiBkZSBDYXN0cm8gIDxhcGVyZXpAaWdhbGlhLmNvbT4KIAogICAgICAgICBbR1RLXSBB
ZGQgQVBJIHRvIGFsbG93IHNldHRpbmcgdGhlIHByb2Nlc3MgbW9kZWwgaW4gV2ViS2l0V2ViQ29u
dGV4dApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5
LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1NoYXJlZC9DaGlsZFByb2Nlc3NQcm94eS5jcHAKaW5kZXgg
MTFlMDg2ODJlYTVmMGMxMjIxNzFiMGVkOWFiNTYzNmIzYzY1NDZiZi4uY2MzY2YwZTI3MTc2NTZk
ODE3ZjlhYWU3ZTU4N2ZkZDA1MzQ4ZTc0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdDIvU2hh
cmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hp
bGRQcm9jZXNzUHJveHkuY3BwCkBAIC0xNTcsNiArMTU3LDExIEBAIHZvaWQgQ2hpbGRQcm9jZXNz
UHJveHk6OmNsZWFyQ29ubmVjdGlvbigpCiAKICAgICBtX2Nvbm5lY3Rpb24tPmludmFsaWRhdGUo
KTsKICAgICBtX2Nvbm5lY3Rpb24gPSBudWxscHRyOworICAgIC8vIFByb2Nlc3MgaGFzIHRlcm1p
bmF0ZWQsIGludmFsaWRhdGUvcmVzZXQgcHJvY2VzcyBsYXVuY2hlci4KKyAgICBpZiAobV9wcm9j
ZXNzTGF1bmNoZXIpIHsKKyAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXItPmludmFsaWRhdGUoKTsK
KyAgICAgICAgbV9wcm9jZXNzTGF1bmNoZXIgPSAwOworICAgIH0KIH0KIAogdm9pZCBDaGlsZFBy
b2Nlc3NQcm94eTo6Y29ubmVjdGlvbldpbGxPcGVuKENvcmVJUEM6OkNvbm5lY3Rpb24qKQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYktpdDIvU2hhcmVkL0NoaWxkUHJvY2Vzc1Byb3h5LmggYi9Tb3Vy
Y2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHkuaAppbmRleCA4OWZhMGRiMGYwYjVh
YzE4MDU2YjZmNDBhN2Q1NWZhYmM4MmQ5M2U5Li5jNTJlNDA0YjUwZDgwMDg2Yjg0MGQ1MjEzNDEw
MGMwNGU3NzE0MGRlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9j
ZXNzUHJveHkuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9TaGFyZWQvQ2hpbGRQcm9jZXNzUHJveHku
aApAQCAtNjQsNyArNjQsNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0xhdW5jaGluZygpIGNvbnN0
OwogICAgIGJvb2wgY2FuU2VuZE1lc3NhZ2UoKSBjb25zdCB7IHJldHVybiBpc1ZhbGlkKCkgfHwg
aXNMYXVuY2hpbmcoKTsgfQogCi0gICAgUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllciBwcm9jZXNz
SWRlbnRpZmllcigpIGNvbnN0IHsgcmV0dXJuIG1fcHJvY2Vzc0xhdW5jaGVyLT5wcm9jZXNzSWRl
bnRpZmllcigpOyB9CisgICAgUGxhdGZvcm1Qcm9jZXNzSWRlbnRpZmllciBwcm9jZXNzSWRlbnRp
ZmllcigpIGNvbnN0IHsgcmV0dXJuIChtX3Byb2Nlc3NMYXVuY2hlciA/IG1fcHJvY2Vzc0xhdW5j
aGVyLT5wcm9jZXNzSWRlbnRpZmllcigpIDogMCk7IH0KIAogcHJvdGVjdGVkOgogICAgIHZvaWQg
Y2xlYXJDb25uZWN0aW9uKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0LmNwcCBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9B
UEkvZ3RrL1dlYktpdFdlYkNvbnRleHQuY3BwCmluZGV4IGFlYTc2Yjk4NWJkMDFjMGZlNzI0YmJj
YzUzZDZmOWUwNjI2MGZkZWIuLjQwNTE4Y2VhMDU0NDM4MmQ3NWNhOGE1ZGE5OGI1YmRhZDFmZjU1
ODkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdl
YkNvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktp
dFdlYkNvbnRleHQuY3BwCkBAIC0zOSw2ICszOSw3IEBACiAjaW5jbHVkZSAiV2ViS2l0V2ViQ29u
dGV4dFByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3QmFzZVByaXZhdGUuaCIKICNp
bmNsdWRlICJXZWJLaXRXZWJWaWV3R3JvdXBQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViS2l0V2Vi
Vmlld1ByaXZhdGUuaCIKICNpbmNsdWRlICJXZWJSZXNvdXJjZUNhY2hlTWFuYWdlclByb3h5Lmgi
CiAjaW5jbHVkZSA8V2ViQ29yZS9GaWxlU3lzdGVtLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9JY29u
RGF0YWJhc2UuaD4KQEAgLTE5Miw2ICsxOTMsMzUgQEAgc3RhdGljIENTdHJpbmcgaW5qZWN0ZWRC
dW5kbGVGaWxlbmFtZSgpCiAgICAgcmV0dXJuIGJ1bmRsZUZpbGVuYW1lLmdldCgpOwogfQogCitz
dGF0aWMgdm9pZCB3ZWJraXRXZWJDb250ZXh0V2ViUHJvY2Vzc1N0YXJ0ZWQoV2ViS2l0V2ViQ29u
dGV4dCogd2ViQ29udGV4dCwgV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzKQoreworICAgIFZlY3Rv
cjxXZWJQYWdlUHJveHkqPiBwYWdlcyA9IHByb2Nlc3MtPnBhZ2VzKCk7CisgICAgZm9yIChzaXpl
X3QgaSA9IDAsIHNpemUgPSBwYWdlcy5zaXplKCk7IGkgPCBzaXplOyArK2kpIHsKKyAgICAgICAg
V2ViS2l0V2ViVmlldyogd2ViVmlldyA9IHdlYmtpdFdlYkNvbnRleHRHZXRXZWJWaWV3Rm9yUGFn
ZSh3ZWJDb250ZXh0LCBwYWdlc1tpXSk7CisgICAgICAgIEFTU0VSVCh3ZWJWaWV3KTsKKyAgICAg
ICAgd2Via2l0V2ViVmlld1dlYlByb2Nlc3NTdGFydGVkKHdlYlZpZXcpOworICAgIH0KK30KKwor
c3RhdGljIHZvaWQgcHJvY2Vzc0RpZFN0YXJ0KFdLQ29udGV4dFJlZiBjb250ZXh0LCBXS0Nvbm5l
Y3Rpb25SZWYgY29ubmVjdGlvbiwgY29uc3Qgdm9pZCogY2xpZW50SW5mbykKK3sKKyAgICBXZWJQ
cm9jZXNzUHJveHkqIHByb2Nlc3MgPSB0b0ltcGwoY29udGV4dCktPmdldFdlYlByb2Nlc3NGb3JX
ZWJDb25uZWN0aW9uKHRvSW1wbChjb25uZWN0aW9uKSk7CisgICAgQVNTRVJUKHByb2Nlc3MpOwor
ICAgIHdlYmtpdFdlYkNvbnRleHRXZWJQcm9jZXNzU3RhcnRlZChXRUJLSVRfV0VCX0NPTlRFWFQo
Y2xpZW50SW5mbyksIHByb2Nlc3MpOworfQorCitzdGF0aWMgdm9pZCBhdHRhY2hDb25uZWN0aW9u
Q2xpZW50VG9Db250ZXh0KFdlYktpdFdlYkNvbnRleHQqIHdlYkNvbnRleHQpCit7CisgICAgY29u
c3QgV0tDb250ZXh0Q29ubmVjdGlvbkNsaWVudFYwIHdrQ29ubmVjdGlvbkNsaWVudCA9IHsKKyAg
ICAgICAgeworICAgICAgICAgICAgMCwKKyAgICAgICAgICAgIHdlYkNvbnRleHQsIC8vIGNsaWVu
dEluZm8KKyAgICAgICAgfSwKKyAgICAgICAgcHJvY2Vzc0RpZFN0YXJ0CisgICAgfTsKKyAgICBX
S0NvbnRleHRTZXRDb25uZWN0aW9uQ2xpZW50KHRvQVBJKHdlYmtpdFdlYkNvbnRleHRHZXRDb250
ZXh0KHdlYkNvbnRleHQpKSwgJndrQ29ubmVjdGlvbkNsaWVudC5iYXNlKTsKK30KKwogc3RhdGlj
IGdwb2ludGVyIGNyZWF0ZURlZmF1bHRXZWJDb250ZXh0KGdwb2ludGVyKQogewogICAgIHN0YXRp
YyBHUmVmUHRyPFdlYktpdFdlYkNvbnRleHQ+IHdlYkNvbnRleHQgPSBhZG9wdEdSZWYoV0VCS0lU
X1dFQl9DT05URVhUKGdfb2JqZWN0X25ldyhXRUJLSVRfVFlQRV9XRUJfQ09OVEVYVCwgTlVMTCkp
KTsKQEAgLTIwMiw2ICsyMzIsNyBAQCBzdGF0aWMgZ3BvaW50ZXIgY3JlYXRlRGVmYXVsdFdlYkNv
bnRleHQoZ3BvaW50ZXIpCiAgICAgcHJpdi0+Y29udGV4dC0+c2V0Q2FjaGVNb2RlbChDYWNoZU1v
ZGVsUHJpbWFyeVdlYkJyb3dzZXIpOwogICAgIHByaXYtPnRsc0Vycm9yc1BvbGljeSA9IFdFQktJ
VF9UTFNfRVJST1JTX1BPTElDWV9JR05PUkU7CiAKKyAgICBhdHRhY2hDb25uZWN0aW9uQ2xpZW50
VG9Db250ZXh0KHdlYkNvbnRleHQuZ2V0KCkpOwogICAgIGF0dGFjaEluamVjdGVkQnVuZGxlQ2xp
ZW50VG9Db250ZXh0KHdlYkNvbnRleHQuZ2V0KCkpOwogICAgIGF0dGFjaERvd25sb2FkQ2xpZW50
VG9Db250ZXh0KHdlYkNvbnRleHQuZ2V0KCkpOwogICAgIGF0dGFjaFJlcXVlc3RNYW5hZ2VyQ2xp
ZW50VG9Db250ZXh0KHdlYkNvbnRleHQuZ2V0KCkpOwpAQCAtOTk1LDMgKzEwMjYsNCBAQCBXZWJL
aXRXZWJWaWV3R3JvdXAqIHdlYmtpdFdlYkNvbnRleHRHZXREZWZhdWx0V2ViVmlld0dyb3VwKFdl
YktpdFdlYkNvbnRleHQqIGNvbgogewogICAgIHJldHVybiBjb250ZXh0LT5wcml2LT5kZWZhdWx0
V2ViVmlld0dyb3VwLmdldCgpOwogfQorCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVBy
b2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oIGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViQ29udGV4dFByaXZhdGUuaAppbmRleCA4MWM0NzNj
NTYxZDhjM2NjMmYzNTVhYjI0MWU4MDliMGQ4N2ZhYzAyLi5mNjhlYzhjY2U3MTNkY2M3NjFiNzJm
Y2Q3ZGU5ZjgyNTY1NDQ5ODhiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
QVBJL2d0ay9XZWJLaXRXZWJDb250ZXh0UHJpdmF0ZS5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYkNvbnRleHRQcml2YXRlLmgKQEAgLTMyLDYgKzMyLDcg
QEAKICNpbmNsdWRlICJXZWJLaXRVUklTY2hlbWVSZXF1ZXN0LmgiCiAjaW5jbHVkZSAiV2ViS2l0
V2ViQ29udGV4dC5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdHcm91cC5oIgorI2luY2x1ZGUg
IldlYlByb2Nlc3NQcm94eS5oIgogI2luY2x1ZGUgIldlYlNvdXBSZXF1ZXN0TWFuYWdlclByb3h5
LmgiCiAKIFdlYktpdDo6V2ViQ29udGV4dCogd2Via2l0V2ViQ29udGV4dEdldENvbnRleHQoV2Vi
S2l0V2ViQ29udGV4dCopOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQ
SS9ndGsvV2ViS2l0V2ViVmlldy5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0
ay9XZWJLaXRXZWJWaWV3LmNwcAppbmRleCA3ZDAyNTBhYWZjNTM3Mjk5YjRlNmJlNDMxZmYwNDMz
ZTFmMTdmMWM5Li5lZTJkM2U4MThjODM3Y2FiYWExMmUwMjJlMWNiODk4Y2Y3NmMwNzU3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNw
cAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3LmNw
cApAQCAtNTgsNiArNTgsNyBAQAogI2luY2x1ZGUgIldlYktpdFdlYlZpZXdHcm91cFByaXZhdGUu
aCIKICNpbmNsdWRlICJXZWJLaXRXZWJWaWV3UHJpdmF0ZS5oIgogI2luY2x1ZGUgIldlYktpdFdp
bmRvd1Byb3BlcnRpZXNQcml2YXRlLmgiCisjaW5jbHVkZSAiV2ViUHJvY2Vzc1Byb3h5LmgiCiAj
aW5jbHVkZSA8SmF2YVNjcmlwdENvcmUvQVBJQ2FzdC5oPgogI2luY2x1ZGUgPFdlYkNvcmUvQ2Vy
dGlmaWNhdGVJbmZvLmg+CiAjaW5jbHVkZSA8V2ViQ29yZS9EcmFnSWNvbi5oPgpAQCAtMTIxLDYg
KzEyMiw3IEBAIGVudW0gewogCiAgICAgSU5TRUNVUkVfQ09OVEVOVF9ERVRFQ1RFRCwKIAorICAg
IFdFQl9QUk9DRVNTX1NUQVJURUQsCiAgICAgV0VCX1BST0NFU1NfQ1JBU0hFRCwKIAogICAgIEFV
VEhFTlRJQ0FURSwKQEAgLTE0MDAsNiArMTQwMiwyMyBAQCBzdGF0aWMgdm9pZCB3ZWJraXRfd2Vi
X3ZpZXdfY2xhc3NfaW5pdChXZWJLaXRXZWJWaWV3Q2xhc3MqIHdlYlZpZXdDbGFzcykKICAgICAg
ICAgICAgIFdFQktJVF9UWVBFX0lOU0VDVVJFX0NPTlRFTlRfRVZFTlQpOwogCiAgICAgLyoqCisg
ICAgICogV2ViS2l0V2ViVmlldzo6d2ViLXByb2Nlc3Mtc3RhcnRlZDoKKyAgICAgKiBAd2ViX3Zp
ZXc6IHRoZSAjV2ViS2l0V2ViVmlldworICAgICAqCisgICAgICogVGhpcyBzaWduYWwgaXMgZW1p
dHRlZCB3aGVuIHRoZSB3ZWIgcHJvY2VzcyBzdGFydGVkLgorICAgICAqCisgICAgICogU2luY2U6
IDIuNAorICAgICAqLworICAgIHNpZ25hbHNbV0VCX1BST0NFU1NfU1RBUlRFRF0gPSBnX3NpZ25h
bF9uZXcoCisgICAgICAgICJ3ZWItcHJvY2Vzcy1zdGFydGVkIiwKKyAgICAgICAgR19UWVBFX0ZS
T01fQ0xBU1Mod2ViVmlld0NsYXNzKSwKKyAgICAgICAgR19TSUdOQUxfUlVOX0xBU1QsCisgICAg
ICAgIEdfU1RSVUNUX09GRlNFVChXZWJLaXRXZWJWaWV3Q2xhc3MsIHdlYl9wcm9jZXNzX3N0YXJ0
ZWQpLAorICAgICAgICAwLCAwLAorICAgICAgICBnX2NjbG9zdXJlX21hcnNoYWxfVk9JRF9fVk9J
RCwKKyAgICAgICAgR19UWVBFX05PTkUsIDApOworCisgICAgLyoqCiAgICAgICogV2ViS2l0V2Vi
Vmlldzo6d2ViLXByb2Nlc3MtY3Jhc2hlZDoKICAgICAgKiBAd2ViX3ZpZXc6IHRoZSAjV2ViS2l0
V2ViVmlldwogICAgICAqCkBAIC0xOTMyLDYgKzE5NTEsMjggQEAgV2ViS2l0V2ViVmlld0dyb3Vw
KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X2dyb3VwKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB9CiAK
IC8qKgorICogd2Via2l0X3dlYl92aWV3X2dldF93ZWJfcHJvY2Vzc19pZGVudGlmaWVyOgorICog
QHdlYl92aWV3OiBhICN3ZWJraXR3ZWJ2aWV3CisgKgorICogR2V0cyB0aGUgcGlkIG9mIHRoZSB3
ZWIgcHJvY2VzcyBAd2ViX3ZpZXcgYmVsb25ncyB0by4KKyAqIFlvdSBjYW4gbW9uaXRvciB3aGVu
IHRoZSB3ZWIgcHJvY2VzcyBAd2ViX3ZpZXcgYmVsb25ncyB0byBpcyBydW5uaW5nCisgKiBieSBj
b25uZWN0aW5nIHRvIHRoZSBub3RpZnk6OmlzLXdlYi1wcm9jZXNzLXJ1bm5pbmcgb3IgdGhlCisg
KiAjV2ViS2l0V2ViVmlldzo6d2ViLXByb2Nlc3Mtc3RhcnRlZCBzaWduYWwgb2YgQHdlYl92aWV3
LgorICoKKyAqIFJldHVybnM6IHRoZSBwaWQgb2YgdGhlIHdlYiBwcm9jZXNzIHRvIHdoaWNoIHRo
ZSB2aWV3IGJlbG9uZ3Mgb3IKKyAqICAgICAwIGlmIHRoZSB3ZWIgcHJvY2VzcyBpcyBub3QgcnVu
bmluZworICoKKyAqIFNpbmNlOiAyLjQKKyAqLworV0VCS0lUX0FQSSBHUGlkCit3ZWJraXRfd2Vi
X3ZpZXdfZ2V0X3dlYl9wcm9jZXNzX2lkZW50aWZpZXIoV2ViS2l0V2ViVmlldyogd2ViVmlldykK
K3sKKyAgICBnX3JldHVybl92YWxfaWZfZmFpbChXRUJLSVRfSVNfV0VCX1ZJRVcod2ViVmlldyks
IDApOworCisgICAgcmV0dXJuIGdldFBhZ2Uod2ViVmlldyktPnByb2Nlc3NJZGVudGlmaWVyKCk7
Cit9CisKKy8qKgogICogd2Via2l0X3dlYl92aWV3X2xvYWRfdXJpOgogICogQHdlYl92aWV3OiBh
ICNXZWJLaXRXZWJWaWV3CiAgKiBAdXJpOiBhbiBVUkkgc3RyaW5nCkBAIC0zMTIyLDkgKzMxNjMs
MTcgQEAgY2Fpcm9fc3VyZmFjZV90KiB3ZWJraXRfd2ViX3ZpZXdfZ2V0X3NuYXBzaG90X2Zpbmlz
aChXZWJLaXRXZWJWaWV3KiB3ZWJWaWV3LCBHQXMKICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8Y2Fp
cm9fc3VyZmFjZV90Kj4oZ190YXNrX3Byb3BhZ2F0ZV9wb2ludGVyKEdfVEFTSyhyZXN1bHQpLCBl
cnJvcikpOwogfQogCit2b2lkIHdlYmtpdFdlYlZpZXdXZWJQcm9jZXNzU3RhcnRlZChXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3KQoreworICAgIEFTU0VSVChnZXRQYWdlKHdlYlZpZXcpLT5wcm9jZXNz
SWRlbnRpZmllcigpKTsKKworICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgc2lnbmFsc1tXRUJf
UFJPQ0VTU19TVEFSVEVEXSwgMCk7Cit9CisKIHZvaWQgd2Via2l0V2ViVmlld1dlYlByb2Nlc3ND
cmFzaGVkKFdlYktpdFdlYlZpZXcqIHdlYlZpZXcpCiB7CisgICAgQVNTRVJUKCFnZXRQYWdlKHdl
YlZpZXcpLT5wcm9jZXNzSWRlbnRpZmllcigpKTsKKwogICAgIGdib29sZWFuIHJldHVyblZhbHVl
OwogICAgIGdfc2lnbmFsX2VtaXQod2ViVmlldywgc2lnbmFsc1tXRUJfUFJPQ0VTU19DUkFTSEVE
XSwgMCwgJnJldHVyblZhbHVlKTsKIH0KLQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L0FQSS9ndGsvV2ViS2l0V2ViVmlldy5oCmluZGV4IDZlNDM0YjVmNGIxYWYyYzc3OGI4MjZlMjli
NzYyZjliZWJkYzZiZDAuLjgxMGU5MDI3MjdmMGRlNWE3MDYzOTU5ZjdmNjZmYjVlMDg1M2YyMmMg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZp
ZXcuaAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3
LmgKQEAgLTI0OCwxMiArMjQ4LDEzIEBAIHN0cnVjdCBfV2ViS2l0V2ViVmlld0NsYXNzIHsKICAg
ICBnYm9vbGVhbiAgICgqIGxvYWRfZmFpbGVkX3dpdGhfdGxzX2Vycm9ycykgKFdlYktpdFdlYlZp
ZXcgICAgICAgICAgICAgICAqd2ViX3ZpZXcsCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICBXZWJLaXRDZXJ0aWZpY2F0ZUluZm8gICAgICAgKmluZm8sCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBnY2hh
ciAgICAgICAgICAgICAgICAgKmhvc3QpOworICAgIHZvaWQgICAgICAgKCogd2ViX3Byb2Nlc3Nf
c3RhcnRlZCkgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAgICAgICAgICp3ZWJfdmlldyk7
CisKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDApICh2b2lkKTsKICAgICB2b2lkICgqX3dl
YmtpdF9yZXNlcnZlZDEpICh2b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDIpICh2
b2lkKTsKICAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDMpICh2b2lkKTsKICAgICB2b2lkICgq
X3dlYmtpdF9yZXNlcnZlZDQpICh2b2lkKTsKLSAgICB2b2lkICgqX3dlYmtpdF9yZXNlcnZlZDUp
ICh2b2lkKTsKIH07CiAKIFdFQktJVF9BUEkgR1R5cGUKQEAgLTI3NCw2ICsyNzUsOSBAQCB3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X2NvbnRleHQgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRX
ZWJWaWV3CiBXRUJLSVRfQVBJIFdlYktpdFdlYlZpZXdHcm91cCAqCiB3ZWJraXRfd2ViX3ZpZXdf
Z2V0X2dyb3VwICAgICAgICAgICAgICAgICAgICAgICAgICAgIChXZWJLaXRXZWJWaWV3ICAgICAg
ICAgICAgICp3ZWJfdmlldyk7CiAKK1dFQktJVF9BUEkgR1BpZAord2Via2l0X3dlYl92aWV3X2dl
dF93ZWJfcHJvY2Vzc19pZGVudGlmaWVyICAgICAgICAgICAoV2ViS2l0V2ViVmlldyAgICAgICAg
ICAgICAqd2ViX3ZpZXcpOworCiBXRUJLSVRfQVBJIHZvaWQKIHdlYmtpdF93ZWJfdmlld19sb2Fk
X3VyaSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKFdlYktpdFdlYlZpZXcgICAgICAgICAg
ICAgKndlYl92aWV3LAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgY29uc3QgZ2NoYXIgICAgICAgICAgICAgICAqdXJpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2YXRlLmgg
Yi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay9XZWJLaXRXZWJWaWV3UHJpdmF0ZS5o
CmluZGV4IDExNTkxZmYxODBmNDkwMWRjMjg1ZmQxY2Y2MGZmZjgyZTZhZGM2YjMuLmJiYjczZWEz
NGVmZjcxMzkzN2IwMjM2MmExZjIxYzY4N2RjYzU1ZDAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL1dlYktpdFdlYlZpZXdQcml2YXRlLmgKKysrIGIvU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvV2ViS2l0V2ViVmlld1ByaXZhdGUuaApAQCAtMjcs
NiArMjcsNyBAQAogI2lmbmRlZiBXZWJLaXRXZWJWaWV3UHJpdmF0ZV9oCiAjZGVmaW5lIFdlYktp
dFdlYlZpZXdQcml2YXRlX2gKIAorI2luY2x1ZGUgIldlYkNvbm5lY3Rpb24uaCIKICNpbmNsdWRl
ICJXZWJJbWFnZS5oIgogI2luY2x1ZGUgIldlYktpdFdlYlZpZXcuaCIKICNpbmNsdWRlIDx3dGYv
dGV4dC9DU3RyaW5nLmg+CkBAIC01OSw2ICs2MCw3IEBAIHZvaWQgd2Via2l0V2ViVmlld1BvcHVs
YXRlQ29udGV4dE1lbnUoV2ViS2l0V2ViVmlldyosIEFQSTo6QXJyYXkqIHByb3Bvc2VkTWVudSwK
IHZvaWQgd2Via2l0V2ViVmlld1N1Ym1pdEZvcm1SZXF1ZXN0KFdlYktpdFdlYlZpZXcqLCBXZWJL
aXRGb3JtU3VibWlzc2lvblJlcXVlc3QqKTsKIHZvaWQgd2Via2l0V2ViVmlld0hhbmRsZUF1dGhl
bnRpY2F0aW9uQ2hhbGxlbmdlKFdlYktpdFdlYlZpZXcqLCBXZWJLaXQ6OkF1dGhlbnRpY2F0aW9u
Q2hhbGxlbmdlUHJveHkqKTsKIHZvaWQgd2Via2l0V2ViVmlld0luc2VjdXJlQ29udGVudERldGVj
dGVkKFdlYktpdFdlYlZpZXcqLCBXZWJLaXRJbnNlY3VyZUNvbnRlbnRFdmVudCk7Cit2b2lkIHdl
YmtpdFdlYlZpZXdXZWJQcm9jZXNzU3RhcnRlZChXZWJLaXRXZWJWaWV3Kik7CiB2b2lkIHdlYmtp
dFdlYlZpZXdXZWJQcm9jZXNzQ3Jhc2hlZChXZWJLaXRXZWJWaWV3Kik7CiAKICNlbmRpZiAvLyBX
ZWJLaXRXZWJWaWV3UHJpdmF0ZV9oCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0IGIvU291cmNlL1dlYktpdDIv
VUlQcm9jZXNzL0FQSS9ndGsvZG9jcy93ZWJraXQyZ3RrLXNlY3Rpb25zLnR4dAppbmRleCBhMThh
MTExZTdhMDI3MmM5ZGNkZGJlOWYzYzk1MDMyMzAzZmIxMmZkLi5lMWJjMjE1ZDUzZjJhOGQ1ZjFj
YmRhODRjMTQ4MWIxNWVjNjFkNWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvQVBJL2d0ay9kb2NzL3dlYmtpdDJndGstc2VjdGlvbnMudHh0CisrKyBiL1NvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL2RvY3Mvd2Via2l0Mmd0ay1zZWN0aW9ucy50eHQKQEAgLTk3
LDYgKzk3LDcgQEAgd2Via2l0X3dlYl92aWV3X25ld193aXRoX2NvbnRleHQKIHdlYmtpdF93ZWJf
dmlld19uZXdfd2l0aF9ncm91cAogd2Via2l0X3dlYl92aWV3X2dldF9jb250ZXh0CiB3ZWJraXRf
d2ViX3ZpZXdfZ2V0X2dyb3VwCit3ZWJraXRfd2ViX3ZpZXdfZ2V0X3dlYl9wcm9jZXNzX2lkZW50
aWZpZXIKIHdlYmtpdF93ZWJfdmlld19sb2FkX3VyaQogd2Via2l0X3dlYl92aWV3X2xvYWRfaHRt
bAogd2Via2l0X3dlYl92aWV3X2xvYWRfYWx0ZXJuYXRlX2h0bWwKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJFeHRlbnNpb25zLmNwcCBi
L1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9BUEkvZ3RrL3Rlc3RzL1Rlc3RXZWJFeHRlbnNpb25z
LmNwcAppbmRleCA5MWNiN2FhZGExZGNlNDNkZThiNzgyNmM3NTU5Y2ExZTY1MzkxODgwLi4yNWEw
MTU3MDE5N2MwNzNmZGM3ZDZjYjM2NmI1MzZhODY4NjUwOTBhIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvQVBJL2d0ay90ZXN0cy9UZXN0V2ViRXh0ZW5zaW9ucy5jcHAKKysr
IGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL0FQSS9ndGsvdGVzdHMvVGVzdFdlYkV4dGVuc2lv
bnMuY3BwCkBAIC03Miw4ICs3MiwyMiBAQCBzdGF0aWMgdm9pZCB0ZXN0RG9jdW1lbnRMb2FkZWRT
aWduYWwoV2ViVmlld1Rlc3QqIHRlc3QsIGdjb25zdHBvaW50ZXIpCiAgICAgZ19kYnVzX2Nvbm5l
Y3Rpb25fc2lnbmFsX3Vuc3Vic2NyaWJlKGNvbm5lY3Rpb24sIGlkKTsKIH0KIAotc3RhdGljIGdi
b29sZWFuIHdlYlByb2Nlc3NDcmFzaGVkQ2FsbGJhY2soV2ViS2l0V2ViVmlldyosIFdlYlZpZXdU
ZXN0KiB0ZXN0KQorc3RhdGljIHZvaWQgd2ViUHJvY2Vzc1N0YXJ0ZWRDYWxsYmFjayhXZWJLaXRX
ZWJWaWV3KiB3ZWJWaWV3LCBXZWJWaWV3VGVzdCogdGVzdCkKIHsKKyAgICBnX2Fzc2VydCh3ZWJr
aXRfd2ViX3ZpZXdfZ2V0X3dlYl9wcm9jZXNzX2lkZW50aWZpZXIod2ViVmlldykpOworICAgIHRl
c3QtPnF1aXRNYWluTG9vcCgpOworfQorCitzdGF0aWMgdm9pZCB0ZXN0V2ViS2l0V2ViVmlld1By
b2Nlc3NTdGFydGVkKFdlYlZpZXdUZXN0KiB0ZXN0LCBnY29uc3Rwb2ludGVyKQoreworICAgIGdf
c2lnbmFsX2Nvbm5lY3QodGVzdC0+bV93ZWJWaWV3LCAid2ViLXByb2Nlc3Mtc3RhcnRlZCIsCisg
ICAgICAgIEdfQ0FMTEJBQ0sod2ViUHJvY2Vzc1N0YXJ0ZWRDYWxsYmFjayksIHRlc3QpOworICAg
IGdfbWFpbl9sb29wX3J1bih0ZXN0LT5tX21haW5Mb29wKTsKK30KKworc3RhdGljIGdib29sZWFu
IHdlYlByb2Nlc3NDcmFzaGVkQ2FsbGJhY2soV2ViS2l0V2ViVmlldyogd2ViVmlldywgV2ViVmll
d1Rlc3QqIHRlc3QpCit7CisgICAgZ19hc3NlcnQoIXdlYmtpdF93ZWJfdmlld19nZXRfd2ViX3By
b2Nlc3NfaWRlbnRpZmllcih3ZWJWaWV3KSk7CiAgICAgdGVzdC0+cXVpdE1haW5Mb29wKCk7CiAK
ICAgICByZXR1cm4gRkFMU0U7CkBAIC0xODIsNiArMTk2LDcgQEAgdm9pZCBiZWZvcmVBbGwoKQog
ICAgIGlmICghYnVzLT5ydW4oKSkKICAgICAgICAgcmV0dXJuOwogCisgICAgV2ViVmlld1Rlc3Q6
OmFkZCgiV2ViS2l0V2ViVmlldyIsICJ3ZWItcHJvY2Vzcy1zdGFydGVkIiwgdGVzdFdlYktpdFdl
YlZpZXdQcm9jZXNzU3RhcnRlZCk7CiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViRXh0
ZW5zaW9uIiwgImRvbS1kb2N1bWVudC10aXRsZSIsIHRlc3RXZWJFeHRlbnNpb25HZXRUaXRsZSk7
CiAgICAgV2ViVmlld1Rlc3Q6OmFkZCgiV2ViS2l0V2ViRXh0ZW5zaW9uIiwgImRvY3VtZW50LWxv
YWRlZC1zaWduYWwiLCB0ZXN0RG9jdW1lbnRMb2FkZWRTaWduYWwpOwogICAgIFdlYlZpZXdUZXN0
OjphZGQoIldlYktpdFdlYlZpZXciLCAid2ViLXByb2Nlc3MtY3Jhc2hlZCIsIHRlc3RXZWJLaXRX
ZWJWaWV3UHJvY2Vzc0NyYXNoZWQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL0xhdW5jaGVyL1Byb2Nlc3NMYXVuY2hlci5jcHAgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nl
c3MvTGF1bmNoZXIvUHJvY2Vzc0xhdW5jaGVyLmNwcAppbmRleCAwNWFhZTU5NDhlZTRiNjg4NmUw
ODgyZDExOWZlNTQ2YWFkMDI5YTIwLi5lNTlmN2ZlODFhYzFjZjRhMjhiYzUxYWZhZmE4NWFjNjNm
MzE3MWYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIvUHJv
Y2Vzc0xhdW5jaGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvTGF1bmNoZXIv
UHJvY2Vzc0xhdW5jaGVyLmNwcApAQCAtNzIsNiArNzIsNyBAQCB2b2lkIFByb2Nlc3NMYXVuY2hl
cjo6ZGlkRmluaXNoTGF1bmNoaW5nUHJvY2VzcyhQbGF0Zm9ybVByb2Nlc3NJZGVudGlmaWVyIHBy
b2Nlcwogdm9pZCBQcm9jZXNzTGF1bmNoZXI6OmludmFsaWRhdGUoKQogewogICAgIG1fY2xpZW50
ID0gMDsKKyAgICBtX3Byb2Nlc3NJZGVudGlmaWVyID0gMDsKICAgICBwbGF0Zm9ybUludmFsaWRh
dGUoKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRl
eHQuY3BwIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuY3BwCmluZGV4IGNh
NmI4YTRjNDc2M2Q4ZTUxMTk2ZDczMDE5Y2I5OTdmOGM3ODdmOGMuLjY2ZWY0M2MxZjNkYTNjNGU2
MDdkOGY5ODkxYjE3NDgxZjMzNGEwZTkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViQ29u
dGV4dC5jcHAKQEAgLTY0OSw2ICs2NDksMTUgQEAgYm9vbCBXZWJDb250ZXh0OjpzaG91bGRUZXJt
aW5hdGUoV2ViUHJvY2Vzc1Byb3h5KiBwcm9jZXNzKQogICAgIHJldHVybiB0cnVlOwogfQogCitX
ZWJQcm9jZXNzUHJveHkqIFdlYkNvbnRleHQ6OmdldFdlYlByb2Nlc3NGb3JXZWJDb25uZWN0aW9u
KGNvbnN0IFdlYkNvbm5lY3Rpb24qIHdlYkNvbm5lY3Rpb24pCit7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IG1fcHJvY2Vzc2VzLnNpemUoKTsgKytpKSB7CisgICAgICAgIGlmICh3ZWJD
b25uZWN0aW9uID09IG1fcHJvY2Vzc2VzW2ldLT53ZWJDb25uZWN0aW9uKCkpCisgICAgICAgICAg
ICByZXR1cm4gbV9wcm9jZXNzZXNbaV0uZ2V0KCk7CisgICAgfQorICAgIHJldHVybiAwOworfQor
CiB2b2lkIFdlYkNvbnRleHQ6OnByb2Nlc3NXaWxsT3BlbkNvbm5lY3Rpb24oV2ViUHJvY2Vzc1By
b3h5KiBwcm9jZXNzKQogewogICAgIG1fc3RvcmFnZU1hbmFnZXItPnByb2Nlc3NXaWxsT3BlbkNv
bm5lY3Rpb24ocHJvY2Vzcyk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViQ29udGV4dC5oIGIvU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkNvbnRleHQuaAppbmRl
eCBhZjdiYzA3MzU5MjQ5MzkwNDAzOGUzZDU1OWRjMzQ2YzEyMDU0MWZkLi4zOWQxNDliNzMwYTMx
YWY0NDdjNDI2ZTMxNDM2NGI5ZjRjYzQ4YWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViQ29udGV4dC5oCisrKyBiL1NvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJD
b250ZXh0LmgKQEAgLTY5LDYgKzY5LDcgQEAgT0JKQ19DTEFTUyBOU1N0cmluZzsKIG5hbWVzcGFj
ZSBXZWJLaXQgewogCiBjbGFzcyBEb3dubG9hZFByb3h5OworY2xhc3MgV2ViQ29ubmVjdGlvbjsK
IGNsYXNzIFdlYkNvbnRleHRTdXBwbGVtZW50OwogY2xhc3MgV2ViSWNvbkRhdGFiYXNlOwogY2xh
c3MgV2ViUGFnZUdyb3VwOwpAQCAtMjQ0LDYgKzI0NSw4IEBAIHB1YmxpYzoKIAogICAgIGJvb2wg
c2hvdWxkVGVybWluYXRlKFdlYlByb2Nlc3NQcm94eSopOwogCisgICAgV2ViUHJvY2Vzc1Byb3h5
KiBnZXRXZWJQcm9jZXNzRm9yV2ViQ29ubmVjdGlvbihjb25zdCBXZWJDb25uZWN0aW9uKik7CisK
ICAgICB2b2lkIGRpc2FibGVQcm9jZXNzVGVybWluYXRpb24oKSB7IG1fcHJvY2Vzc1Rlcm1pbmF0
aW9uRW5hYmxlZCA9IGZhbHNlOyB9CiAgICAgdm9pZCBlbmFibGVQcm9jZXNzVGVybWluYXRpb24o
KTsKIAo=
</data>
<flag name="review"
          id="242414"
          type_id="1"
          status="-"
          setter="beidson"
    />
          </attachment>
      

    </bug>

</bugzilla>