<?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>65493</bug_id>
          
          <creation_ts>2011-08-01 15:34:57 -0700</creation_ts>
          <short_desc>WebKit2: Web Inspector always starts in undocked mode</short_desc>
          <delta_ts>2011-08-07 08:41:21 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKit2</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Brian Weinstein">bweinstein</reporter>
          <assigned_to name="Brian Weinstein">bweinstein</assigned_to>
          <cc>aestes</cc>
    
    <cc>aroben</cc>
    
    <cc>dglazkov</cc>
    
    <cc>drew.covi</cc>
    
    <cc>eric</cc>
    
    <cc>jberlin</cc>
    
    <cc>kevin</cc>
    
    <cc>pfeldman</cc>
    
    <cc>timothy</cc>
    
    <cc>webkit.review.bot</cc>
    
    <cc>yurys</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>444932</commentid>
    <comment_count>0</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-08-01 15:34:57 -0700</bug_when>
    <thetext>In WebKit2, the web inspector always starts in undocked mode. It then can be docked, but it shouldn&apos;t take two clicks to do this.

&lt;rdar://problem/9353114&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444936</commentid>
    <comment_count>1</comment_count>
      <attachid>102575</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-08-01 15:42:04 -0700</bug_when>
    <thetext>Created attachment 102575
[PATCH] Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444937</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-01 15:43:43 -0700</bug_when>
    <thetext>Attachment 102575 did not pass style-queue:

Failed to run &quot;[&apos;Tools/Scripts/check-webkit-style&apos;, &apos;--diff-files&apos;, u&apos;Source/WebCore/ChangeLog&apos;, u&apos;Source/WebCor...&quot; exit_code: 1

Source/WebKit2/UIProcess/win/WebInspectorProxyWin.cpp:211:  Tab found; better to use spaces  [whitespace/tab] [1]
Source/WebKit2/UIProcess/win/WebInspectorProxyWin.cpp:212:  Tab found; better to use spaces  [whitespace/tab] [1]
Total errors found: 2 in 17 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444954</commentid>
    <comment_count>3</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-08-01 15:59:30 -0700</bug_when>
    <thetext>Tabs are fixed locally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444960</commentid>
    <comment_count>4</comment_count>
      <attachid>102575</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-01 16:04:59 -0700</bug_when>
    <thetext>Comment on attachment 102575
[PATCH] Fix

Attachment 102575 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/9284555</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444971</commentid>
    <comment_count>5</comment_count>
      <attachid>102575</attachid>
    <who name="Andy Estes">aestes</who>
    <bug_when>2011-08-01 16:14:20 -0700</bug_when>
    <thetext>Comment on attachment 102575
[PATCH] Fix

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

&gt; Source/WebCore/ChangeLog:3
&gt; +        Need a short description and bug URL (OOPS!)

Oops indeed! You already have this, so this line can be removed.

&gt; Source/WebKit2/ChangeLog:3
&gt; +        Need a short description and bug URL (OOPS!)

Ditto.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444988</commentid>
    <comment_count>6</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-08-01 16:31:13 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; (From update of attachment 102575 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102575&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Need a short description and bug URL (OOPS!)
&gt; 
&gt; Oops indeed! You already have this, so this line can be removed.

Fixed. I meant to remove this, and keep the Reviewed by NOBODY line. OOPS!

&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:3
&gt; &gt; +        Need a short description and bug URL (OOPS!)
&gt; 
&gt; Ditto.

(In reply to comment #5)
&gt; (From update of attachment 102575 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102575&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/ChangeLog:3
&gt; &gt; +        Need a short description and bug URL (OOPS!)
&gt; 
&gt; Oops indeed! You already have this, so this line can be removed.
&gt; 
&gt; &gt; Source/WebKit2/ChangeLog:3
&gt; &gt; +        Need a short description and bug URL (OOPS!)
&gt; 
&gt; Ditto.

Ditto for the fix.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>444993</commentid>
    <comment_count>7</comment_count>
      <attachid>102575</attachid>
    <who name="Jeff Miller">jeffm</who>
    <bug_when>2011-08-01 16:54:02 -0700</bug_when>
    <thetext>Comment on attachment 102575
[PATCH] Fix

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

&gt; Source/WebKit2/UIProcess/WebInspectorProxy.h:59
&gt; +enum UpdateAttachedPreferenceOrNot { DoNotUpdateAttachedPreference, UpdateAttachedPreference };

Is this enum used anywhere?

&gt; Source/WebKit2/UIProcess/WebInspectorProxy.h:119
&gt; +    void platformOpen(bool willOpenAttached);

Would an enum be more clear here?

&gt; Source/WebKit2/UIProcess/WebInspectorProxy.h:132
&gt; +    void didLoadInspectorPage(bool canStartAttached);

Would an enum be more clear here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445003</commentid>
    <comment_count>8</comment_count>
      <attachid>102575</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-08-01 17:05:49 -0700</bug_when>
    <thetext>Comment on attachment 102575
[PATCH] Fix

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

&gt;&gt; Source/WebKit2/UIProcess/WebInspectorProxy.h:59
&gt;&gt; +enum UpdateAttachedPreferenceOrNot { DoNotUpdateAttachedPreference, UpdateAttachedPreference };
&gt; 
&gt; Is this enum used anywhere?

Nope. Removed. This was from a previous iteration of the code.

&gt;&gt; Source/WebKit2/UIProcess/WebInspectorProxy.h:119
&gt;&gt; +    void platformOpen(bool willOpenAttached);
&gt; 
&gt; Would an enum be more clear here?

I don&apos;t think it would be, because we never pass just true or false, we&apos;re always passing a value that makes it clear.

&gt;&gt; Source/WebKit2/UIProcess/WebInspectorProxy.h:132
&gt;&gt; +    void didLoadInspectorPage(bool canStartAttached);
&gt; 
&gt; Would an enum be more clear here?

This value is sent in a message from web process -&gt; UI process, and is never passed as true/false, so I don&apos;t think an enum is necessary.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445016</commentid>
    <comment_count>9</comment_count>
    <who name="Alexey Proskuryakov">ap</who>
    <bug_when>2011-08-01 17:20:39 -0700</bug_when>
    <thetext>*** Bug 65107 has been marked as a duplicate of this bug. ***</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445027</commentid>
    <comment_count>10</comment_count>
      <attachid>102575</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-08-01 17:32:12 -0700</bug_when>
    <thetext>Comment on attachment 102575
[PATCH] Fix

Attachment 102575 did not pass cr-mac-ews (chromium):
Output: http://queues.webkit.org/results/9287531</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445181</commentid>
    <comment_count>11</comment_count>
    <who name="Eric Caldwell">eric</who>
    <bug_when>2011-08-02 04:23:45 -0700</bug_when>
    <thetext>When will this patch make it to a nightly.  As of r92131, the bug is still there.

Thx!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445434</commentid>
    <comment_count>12</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-08-02 12:35:55 -0700</bug_when>
    <thetext>(In reply to comment #11)
&gt; When will this patch make it to a nightly.  As of r92131, the bug is still there.
&gt; 
&gt; Thx!

The patch needs to be reviewed and landed, and then it will be put in a nightly, when it is landed, I will note the revision number in this bug so you know what nightly to look for.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>445436</commentid>
    <comment_count>13</comment_count>
    <who name="Eric Caldwell">eric</who>
    <bug_when>2011-08-02 12:40:05 -0700</bug_when>
    <thetext>@Brian,

Thanks!!  We&apos;re a web design and development company and this is driving us nuts in Safari which is our primary tool.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446560</commentid>
    <comment_count>14</comment_count>
      <attachid>102575</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-04 09:36:55 -0700</bug_when>
    <thetext>Comment on attachment 102575
[PATCH] Fix

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

&gt; Source/WebCore/inspector/InspectorController.cpp:518
&gt; +void InspectorController::requestAttachWindow()
&gt; +{
&gt; +    if (!m_inspectorFrontendClient)
&gt; +        return;
&gt; +
&gt; +    m_inspectorFrontendClient-&gt;requestAttachWindow();
&gt; +}

Why isn&apos;t this function needed in WebKit1?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446565</commentid>
    <comment_count>15</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-08-04 09:41:36 -0700</bug_when>
    <thetext>(In reply to comment #14)
&gt; (From update of attachment 102575 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102575&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/inspector/InspectorController.cpp:518
&gt; &gt; +void InspectorController::requestAttachWindow()
&gt; &gt; +{
&gt; &gt; +    if (!m_inspectorFrontendClient)
&gt; &gt; +        return;
&gt; &gt; +
&gt; &gt; +    m_inspectorFrontendClient-&gt;requestAttachWindow();
&gt; &gt; +}
&gt; 
&gt; Why isn&apos;t this function needed in WebKit1?

WebKit1 calls through to functions in the InspectorFrontendClient directly. In WebKit2 we can&apos;t do that (because the proxy is in a different process than the InspectorFrontendClient), and so all calls need to go through the InspectorController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446568</commentid>
    <comment_count>16</comment_count>
      <attachid>102575</attachid>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-04 09:45:17 -0700</bug_when>
    <thetext>Comment on attachment 102575
[PATCH] Fix

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

&gt;&gt;&gt; Source/WebCore/inspector/InspectorController.cpp:518
&gt;&gt;&gt; +}
&gt;&gt; 
&gt;&gt; Why isn&apos;t this function needed in WebKit1?
&gt; 
&gt; WebKit1 calls through to functions in the InspectorFrontendClient directly. In WebKit2 we can&apos;t do that (because the proxy is in a different process than the InspectorFrontendClient), and so all calls need to go through the InspectorController.

OK. I guess WebKit::WebInspector can&apos;t call through to the InspectorFrontendClient directly?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446582</commentid>
    <comment_count>17</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-08-04 09:53:59 -0700</bug_when>
    <thetext>(In reply to comment #16)
&gt; (From update of attachment 102575 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=102575&amp;action=review
&gt; 
&gt; &gt;&gt;&gt; Source/WebCore/inspector/InspectorController.cpp:518
&gt; &gt;&gt;&gt; +}
&gt; &gt;&gt; 
&gt; &gt;&gt; Why isn&apos;t this function needed in WebKit1?
&gt; &gt; 
&gt; &gt; WebKit1 calls through to functions in the InspectorFrontendClient directly. In WebKit2 we can&apos;t do that (because the proxy is in a different process than the InspectorFrontendClient), and so all calls need to go through the InspectorController.
&gt; 
&gt; OK. I guess WebKit::WebInspector can&apos;t call through to the InspectorFrontendClient directly?

Right, it has to go through the InspectorController.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446587</commentid>
    <comment_count>18</comment_count>
      <attachid>102940</attachid>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-08-04 10:09:22 -0700</bug_when>
    <thetext>Created attachment 102940
[PATCH] Fix + Chromium Build Fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>446611</commentid>
    <comment_count>19</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-08-04 10:46:08 -0700</bug_when>
    <thetext>Landed in r92384.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447054</commentid>
    <comment_count>20</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-04 23:13:19 -0700</bug_when>
    <thetext>This change is wrong, please use webkit.org/new-inspector-bug for filing inspector bugs or make sure active inspector contributors are included into the CC. I do realize how painful this issue is and am ready to help resolving it.

The reasons it is wrong are following:

1) Source/WebCore/inspector/InspectorFrontendClient.h can&apos;t have synchronous canAttachWindow() since in the multiprocess environment, you can&apos;t immediately get back to it from the host. That&apos;s why it has asynchronous requestAttachWindow instead (that can well fail).

2) You are introducing a strange loop here: embedder (WebKit) asks InspectorController (WebCore) on whether it can dock front-end window. InspectorController (WebCore) gets back into WebKit (via InspectorFrontendClient interface), so you are effectively asking yourself a question.

You were probably confused by the InspectorFrontendClientLocal which is a in-WebCore helper class used in most traditional in-process WebKit ports to shortcut this scenario. But WebKit2 should not do that.

(It aslo adds a FIXME into the Chromium code with not heads up to the code maintainers)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447059</commentid>
    <comment_count>21</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-04 23:15:15 -0700</bug_when>
    <thetext>It did not have me in the CC, it does not have WebInspector component. It flew entirely under my radar. Adam, could you please make sure you include people contributing to the code most while reviewing inspector patches?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447061</commentid>
    <comment_count>22</comment_count>
    <who name="Brian Weinstein">bweinstein</who>
    <bug_when>2011-08-04 23:21:52 -0700</bug_when>
    <thetext>(In reply to comment #20)
&gt; This change is wrong, please use webkit.org/new-inspector-bug for filing inspector bugs or make sure active inspector contributors are included into the CC. I do realize how painful this issue is and am ready to help resolving it.

I should have CC&apos;d you guys, it was originally handled more at the WebKit2 level, but I had to do more in WebCore than I thought.

&gt; 
&gt; The reasons it is wrong are following:
&gt; 
&gt; 1) Source/WebCore/inspector/InspectorFrontendClient.h can&apos;t have synchronous canAttachWindow() since in the multiprocess environment, you can&apos;t immediately get back to it from the host. That&apos;s why it has asynchronous requestAttachWindow instead (that can well fail).
&gt; 

The canAttachWindow logic is all done in our WebProcess. I&apos;m not sure what the issue is here. I have a better question below, however.

&gt; 2) You are introducing a strange loop here: embedder (WebKit) asks InspectorController (WebCore) on whether it can dock front-end window. InspectorController (WebCore) gets back into WebKit (via InspectorFrontendClient interface), so you are effectively asking yourself a question.
&gt;

Is there a better way to go from WebInspectorClient -&gt; WebInspectoFrontendClient? Tim seemed to think I had to go through the InspectorController, and he signed off on this approach as well.
 
&gt; You were probably confused by the InspectorFrontendClientLocal which is a in-WebCore helper class used in most traditional in-process WebKit ports to shortcut this scenario. But WebKit2 should not do that.

What should WebKit2 do? Is the best solution to start the window undocked, and have it flash in the undocked mode until requestAttachWindow returns? This patch does better than that, and I don&apos;t want to have the undocked window flash. How does Chromium handle this?

&gt; 
&gt; (It aslo adds a FIXME into the Chromium code with not heads up to the code maintainers)

The FIXME was for something that shouldn&apos;t need to be implemented, I could have made it a non-pure virtual method, and then wouldn&apos;t have had to touch Chromium.

Sorry for not CC&apos;ing you guys - let me know if you have an idea how to make this fix more correct.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447070</commentid>
    <comment_count>23</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-04 23:49:24 -0700</bug_when>
    <thetext>&gt; The canAttachWindow logic is all done in our WebProcess. I&apos;m not sure what the issue is here. I have a better question below, however.
&gt; 

I still need to learn how WebKit2 works (was avoiding it before). But on the high level, we think of it as of three worlds that can&apos;t talk to each other. It helps us keeping the architecture sane and allows remote debugging. [We kinda relaxed on the way we&apos;ve wired it in traditional WebKit and as a result, we are facing this confusion].

The worlds I am talking about are:

(1) Inspected Window that has InspectorController (which hosts internal WebCore agents)
(2) Front-end Window that does not really need to have InspectorController. It does, but we leave it behind the scenes
(3) Embedder that hosts both windows (browser)

We make interaction between theses 3 asynchronous (with the exception of InspectorFrontendClientLocal in WebKit that violates it all for the sake of simplicity of in-process implementation).

Here is the life of the &quot;request attach&quot;:

A button is clicked in the front-end (world 2), it hits the InspectorFrontendHost in WebCore that delegates the question to the InspectorFrontendClient::requestAttach. We need to ask our window manager (browser from world (3)) whether dock can be performed. Browser can&apos;t answer any questions synchronously (different world), but it can try docking the window.

&gt; Is there a better way to go from WebInspectorClient -&gt; WebInspectoFrontendClient? Tim seemed to think I had to go through the InspectorController, and he signed off on this approach as well.

Again, InspectorFrontendClientLocal hack made you think that this transition should go through InspectorController, while it should not. You should not inherit WebInspectoFrontendClient from InspectorFrontendClientLocal (we should have named it InspectorFrontendClientForWebKit1). Once you remove this inheritance, it&apos;ll be way more clear on how you should proceed with wiring these on the WebKit level.

&gt; &gt; You were probably confused by the InspectorFrontendClientLocal which is a in-WebCore helper class used in most traditional in-process WebKit ports to shortcut this scenario. But WebKit2 should not do that.
&gt; 
&gt; What should WebKit2 do? Is the best solution to start the window undocked, and have it flash in the undocked mode until requestAttachWindow returns? This patch does better than that, and I don&apos;t want to have the undocked window flash. How does Chromium handle this?
&gt; 

WebKit2 is responsible for windows layout (managing docked / undocked). When inspector is opened at first, WebKit2 receives a signal. It creates a view for the front-end. Depending on the setting stored on the WebKit2 level, it should check the windows dimensions and place front-end view accordingly (no flickering no nothing). There should be no roundtrips on the initial open.

The only place where Chromium is handling is differently (and I am not sure it is relevant to this very topic) is that we don&apos;t open front-end from within InspectorController::show. Again, InspectorController::show is in world (1), front-end is in world (2). For better understanding, you can imagine that in case of remote debugging, InspectorController::show can&apos;t do much to the outside remote client. So what we do is upon inspect element / inspector shortcut, we start the front-end and wire it to the InspectorController via calling connectFrontend(). At that point we establish explicit WebInspectorClient / WebInspectorFrontendClient binding in terms of WebKit. And our InspectorClient::openInspectorFrontend is empty.

&gt; &gt; 
&gt; &gt; (It aslo adds a FIXME into the Chromium code with not heads up to the code maintainers)
&gt; 
&gt; The FIXME was for something that shouldn&apos;t need to be implemented, I could have made it a non-pure virtual method, and then wouldn&apos;t have had to touch Chromium.
&gt; 
&gt; Sorry for not CC&apos;ing you guys - let me know if you have an idea how to make this fix more correct.

Lets sort this one out. While looking at it I might get a better idea on how to fix the Develop menu implementation that suffers from the same crossing-worlds problems.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447071</commentid>
    <comment_count>24</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-04 23:54:25 -0700</bug_when>
    <thetext>&gt; At that point we establish explicit WebInspectorClient / WebInspectorFrontendClient binding in terms of WebKit. And our InspectorClient::openInspectorFrontend is empty.

This is probably the most important piece: WebKit2 should maintain WebInspector / WebInspectorFrontend binding on its own. It should dispatch the messages between the two and make sure they reach the addressee.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447083</commentid>
    <comment_count>25</comment_count>
    <who name="Pavel Feldman">pfeldman</who>
    <bug_when>2011-08-05 00:24:24 -0700</bug_when>
    <thetext>Filed a bug for this: https://bugs.webkit.org/show_bug.cgi?id=65756</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447175</commentid>
    <comment_count>26</comment_count>
    <who name="Adam Roben (:aroben)">aroben</who>
    <bug_when>2011-08-05 06:21:48 -0700</bug_when>
    <thetext>(In reply to comment #21)
&gt; Adam, could you please make sure you include people contributing to the code most while reviewing inspector patches?

Yes, I&apos;ll do that in the future. Sorry for the trouble.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447177</commentid>
    <comment_count>27</comment_count>
    <who name="Eric Caldwell">eric</who>
    <bug_when>2011-08-05 06:27:30 -0700</bug_when>
    <thetext>The latest nightly is looking better!  The inspector now starts attached.  The only visual bug I can see right now is the inspector windows starts at 2/3 the height of the browser window.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>447752</commentid>
    <comment_count>28</comment_count>
    <who name="drew covi">drew.covi</who>
    <bug_when>2011-08-07 08:41:21 -0700</bug_when>
    <thetext>looks like we&apos;re closer to half in fullscreen, but it could definitely start at around 30-40 percent. Have there been any discussions on this? Thanks to everyone who tackled this bug!

(In reply to comment #27)
&gt; The latest nightly is looking better!  The inspector now starts attached.  The only visual bug I can see right now is the inspector windows starts at 2/3 the height of the browser window.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102575</attachid>
            <date>2011-08-01 15:42:04 -0700</date>
            <delta_ts>2011-08-04 10:09:22 -0700</delta_ts>
            <desc>[PATCH] Fix</desc>
            <filename>inspector_starts_attached.patch</filename>
            <type>text/plain</type>
            <size>16677</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMTQ2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDgtMDEgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgYSBzaG9ydCBk
ZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgV2ViS2l0MjogV2ViIElu
c3BlY3RvciBhbHdheXMgc3RhcnRzIGluIHVuZG9ja2VkIG1vZGUKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDkzCisgICAgICAgIDxyZGFyOi8vcHJv
YmxlbS85MzUzMTE0PgorICAgICAgICAKKyAgICAgICAgRXhwb3NlIHNvbWUgbWV0aG9kcyBvbiBJ
bnNwZWN0b3JGcm9udGVuZENsaWVudCB0aHJvdWdoIHRoZSBJbnNwZWN0b3JDb250cm9sbGVyIHNv
IFdlYktpdDIKKyAgICAgICAgY2FuIHJlcXVlc3QgdGhlIGluc3BlY3RvciBiZSBkb2NrZWQsIG9y
IGFzayB3aGV0aGVyIG9yIG5vdCBpdCBjYW4gYmUgZG9ja2VkLgorCisgICAgICAgICogV2ViQ29y
ZS5leHAuaW46IEV4cG9ydCBuZWVkZWQgbWV0aG9kcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5z
cGVjdG9yQ29udHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9s
bGVyOjpyZXF1ZXN0QXR0YWNoV2luZG93KTogQ2FsbCB0aHJvdWdoIHRvIEluc3BlY3RvckZyb250
ZW5kQ2xpZW50LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2FuQXR0
YWNoV2luZG93KTogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xs
ZXIuaDoKKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgorCiAyMDEx
LTA4LTAxICBTY290dCBHcmFoYW0gIDxzY290dG1nQGNocm9taXVtLm9yZz4KIAogICAgICAgICBS
RUdSRVNTSU9OIChyMzk3MjU/KTogUmVzb3VyY2VzIHJlbW92ZWQgZnJvbSBkb2N1bWVudCBjYW4g
bm90IGJlIGZyZWVkCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkocmV2aXNpb24gOTE5OTcpCisr
KyBTb3VyY2UvV2ViQ29yZS9XZWJDb3JlLmV4cC5pbgkod29ya2luZyBjb3B5KQpAQCAtMTU3MSwx
MSArMTU3MSwxMyBAQCBfX1pON1dlYkNvcmUyMkdlb2xvY2F0aW9uU2VydmljZU1vY2s4c2V0CiAj
aWYgRU5BQkxFKElOU1BFQ1RPUikKIF9fWk43V2ViQ29yZTE1SW5zcGVjdG9yQ2xpZW50MzFkb0Rp
c3BhdGNoTWVzc2FnZU9uRnJvbnRlbmRQYWdlRVBOU180UGFnZUVSS04zV1RGNlN0cmluZ0UKIF9f
Wk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE0ZW5hYmxlUHJvZmlsZXJFdgorX19aTjdX
ZWJDb3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMTVjYW5BdHRhY2hXaW5kb3dFdgogX19aTjdXZWJD
b3JlMTlJbnNwZWN0b3JDb250cm9sbGVyMTVkZWJ1Z2dlckVuYWJsZWRFdgogX19aTjdXZWJDb3Jl
MTlJbnNwZWN0b3JDb250cm9sbGVyMTVkaXNhYmxlRGVidWdnZXJFdgogX19aTjdXZWJDb3JlMTlJ
bnNwZWN0b3JDb250cm9sbGVyMTVkaXNhYmxlUHJvZmlsZXJFdgogX19aTjdXZWJDb3JlMTlJbnNw
ZWN0b3JDb250cm9sbGVyMTVwcm9maWxlckVuYWJsZWRFdgogX19aTjdXZWJDb3JlMTlJbnNwZWN0
b3JDb250cm9sbGVyMThkaXNjb25uZWN0RnJvbnRlbmRFdgorX19aTjdXZWJDb3JlMTlJbnNwZWN0
b3JDb250cm9sbGVyMTlyZXF1ZXN0QXR0YWNoV2luZG93RXYKIF9fWk43V2ViQ29yZTE5SW5zcGVj
dG9yQ29udHJvbGxlcjIwc3RvcFRpbWVsaW5lUHJvZmlsZXJFdgogX19aTjdXZWJDb3JlMTlJbnNw
ZWN0b3JDb250cm9sbGVyMjFzaG93QW5kRW5hYmxlRGVidWdnZXJFdgogX19aTjdXZWJDb3JlMTlJ
bnNwZWN0b3JDb250cm9sbGVyMTFzaG93Q29uc29sZUV2CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9p
bnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCShyZXZpc2lvbiA5MTk5NykK
KysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAkod29y
a2luZyBjb3B5KQpAQCAtNTA5LDYgKzUwOSwyMiBAQCB2b2lkIEluc3BlY3RvckNvbnRyb2xsZXI6
OnNldFJlc291cmNlc0RhCiAgICAgbV9yZXNvdXJjZUFnZW50LT5zZXRSZXNvdXJjZXNEYXRhU2l6
ZUxpbWl0c0Zyb21JbnRlcm5hbHMobWF4aW11bVJlc291cmNlc0NvbnRlbnRTaXplLCBtYXhpbXVt
U2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSk7CiB9CiAKK3ZvaWQgSW5zcGVjdG9yQ29udHJvbGxl
cjo6cmVxdWVzdEF0dGFjaFdpbmRvdygpCit7CisgICAgaWYgKCFtX2luc3BlY3RvckZyb250ZW5k
Q2xpZW50KQorICAgICAgICByZXR1cm47CisKKyAgICBtX2luc3BlY3RvckZyb250ZW5kQ2xpZW50
LT5yZXF1ZXN0QXR0YWNoV2luZG93KCk7Cit9CisgICAgCitib29sIEluc3BlY3RvckNvbnRyb2xs
ZXI6OmNhbkF0dGFjaFdpbmRvdygpCit7CisgICAgaWYgKCFtX2luc3BlY3RvckZyb250ZW5kQ2xp
ZW50KQorICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgCisgICAgcmV0dXJuIG1faW5zcGVjdG9y
RnJvbnRlbmRDbGllbnQtPmNhbkF0dGFjaFdpbmRvdygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpJbmRleDogU291cmNlL1dlYkNv
cmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5oCShyZXZpc2lvbiA5MTk5NykK
KysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgJKHdvcmtp
bmcgY29weSkKQEAgLTEyMSw2ICsxMjEsOSBAQCBwdWJsaWM6CiAjZW5kaWYKIAogICAgIHZvaWQg
c2V0UmVzb3VyY2VzRGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzKGludCBtYXhpbXVtUmVzb3Vy
Y2VzQ29udGVudFNpemUsIGludCBtYXhpbXVtU2luZ2xlUmVzb3VyY2VDb250ZW50U2l6ZSk7Cisg
ICAgCisgICAgdm9pZCByZXF1ZXN0QXR0YWNoV2luZG93KCk7CisgICAgYm9vbCBjYW5BdHRhY2hX
aW5kb3coKTsKIAogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgUG9zdFdvcmtlck5vdGlmaWNh
dGlvblRvRnJvbnRlbmRUYXNrOwpJbmRleDogU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3Bl
Y3RvckZyb250ZW5kQ2xpZW50LmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvaW5zcGVj
dG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgJKHJldmlzaW9uIDkxOTk3KQorKysgU291cmNl
L1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50LmgJKHdvcmtpbmcgY29w
eSkKQEAgLTU4LDYgKzU4LDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0QXR0
YWNoV2luZG93KCkgPSAwOwogICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0RGV0YWNoV2luZG93KCkg
PSAwOwogICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VBdHRhY2hlZFdpbmRvd0hlaWdodCh1bnNpZ25l
ZCkgPSAwOworICAgIHZpcnR1YWwgYm9vbCBjYW5BdHRhY2hXaW5kb3coKSA9IDA7CiAgICAgdmly
dHVhbCB2b2lkIHNhdmVBcyhjb25zdCBXVEY6OlN0cmluZyYgZmlsZU5hbWUsIGNvbnN0IFdURjo6
U3RyaW5nJiBjb250ZW50KSA9IDA7CiAKICAgICB2aXJ0dWFsIHZvaWQgaW5zcGVjdGVkVVJMQ2hh
bmdlZChjb25zdCBTdHJpbmcmKSA9IDA7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3Iv
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJD
b3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudExvY2FsLmgJKHJldmlzaW9uIDkx
OTk3KQorKysgU291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50
TG9jYWwuaAkod29ya2luZyBjb3B5KQpAQCAtNjQsMTEgKzY0LDExIEBAIHB1YmxpYzoKICAgICB2
aXJ0dWFsIHZvaWQgcmVxdWVzdEF0dGFjaFdpbmRvdygpOwogICAgIHZpcnR1YWwgdm9pZCByZXF1
ZXN0RGV0YWNoV2luZG93KCk7CiAgICAgdmlydHVhbCB2b2lkIGNoYW5nZUF0dGFjaGVkV2luZG93
SGVpZ2h0KHVuc2lnbmVkKTsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQXR0YWNoV2luZG93KCk7CiAg
ICAgdmlydHVhbCB2b2lkIHNhdmVBcyhjb25zdCBTdHJpbmcmLCBjb25zdCBTdHJpbmcmKSB7IH0K
IAogICAgIHZpcnR1YWwgdm9pZCBhdHRhY2hXaW5kb3coKSA9IDA7CiAgICAgdmlydHVhbCB2b2lk
IGRldGFjaFdpbmRvdygpID0gMDsKLSAgICBib29sIGNhbkF0dGFjaFdpbmRvdygpOwogCiAgICAg
dmlydHVhbCB2b2lkIHNlbmRNZXNzYWdlVG9CYWNrZW5kKGNvbnN0IFN0cmluZyYgbWVzc2FnZSk7
CiAKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
V2ViS2l0Mi9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMTQ2KQorKysgU291cmNlL1dlYktpdDIvQ2hh
bmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsNDUgQEAKKzIwMTEtMDgtMDEgIEJyaWFu
IFdlaW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIE5lZWQgYSBzaG9y
dCBkZXNjcmlwdGlvbiBhbmQgYnVnIFVSTCAoT09QUyEpCisKKyAgICAgICAgV2ViS2l0MjogV2Vi
IEluc3BlY3RvciBhbHdheXMgc3RhcnRzIGluIHVuZG9ja2VkIG1vZGUKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTY1NDkzCisgICAgICAgIDxyZGFyOi8v
cHJvYmxlbS85MzUzMTE0PgorICAgICAgICAKKyAgICAgICAgV2hlbiBvcGVuaW5nIHRoZSBpbnNw
ZWN0b3IsIHRoZSB3ZWIgcHJvY2VzcyB0ZWxscyB0aGUgVUkgcHJvY2VzcyB0aGF0IHRoZSBpbnNw
ZWN0b3IgcGFnZSBoYXMgbG9hZGVkLAorICAgICAgICBidXQgbm93IHdpbGwgcGFzcyBhbm90aGVy
IGJpdCBvZiBkYXRhLCB3aGV0aGVyIHRoZSBpbnNwZWN0b3IgY2FuIHN0YXJ0IGF0dGFjaGVkLCBz
byB0aGUgVUkgcHJvY2VzcworICAgICAgICBkb2Vzbid0IG5lZWQgdG8gYXNrIHRoZSB3ZWIgcHJv
Y2VzcyB0byBkbyBhbm90aGVyIGNhbGN1bGF0aW9uIG9uIHdoZXRoZXIgb3Igbm90IGl0IGNhbiBi
ZSBhdHRhY2hlZC4KKyAgICAgICAgCisgICAgICAgIElmIHRoZSB1c2VyIHByZWZlcnMgdGhlIGlu
c3BlY3RvciB0byBzdGFydCBkb2NrZWQgKHRoaXMgZGVmYXVsdHMgdG8gdHJ1ZSksIGFuZCB0aGVy
ZSBpcyByb29tIGZvciB0aGUKKyAgICAgICAgd2luZG93LCB3ZSBzZW5kIGEgbWVzc2FnZSB0byB0
aGUgd2ViIHByb2Nlc3MgdG8gdHJ5IGFuZCBhdHRhY2ggdGhlIGluc3BlY3Rvci4gVGhpcyBtYWtl
cyBzdXJlIHRoYXQgdGhlCisgICAgICAgIGluc3BlY3RvciBrbm93cyBpdCBpcyBkb2NrZWQgKGlu
IHRoZSB3ZWIgcHJvY2VzcykuCisgICAgICAgIAorICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNw
ZWN0b3JQcm94eS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5OjphdHRh
Y2gpOiBVcGRhdGUgdGhlIHVzZXIncyBkb2NrZWQvdW5kb2NrZWQgcHJlZmVyZW5jZSBpZiB0aGUg
aW5zcGVjdG9yIGlzIHZpc2libGUKKyAgICAgICAgICAgIHdoZW4gaXQgd2FzIGF0dGFjaGVkLgor
ICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6ZGV0YWNoKTogRGl0dG8gKGJ1dCB3
aGVuIGl0IHdhcyBkZXRhY2hlZCkuCisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3RvclByb3h5
OjpkaWRMb2FkSW5zcGVjdG9yUGFnZSk6IElmIHdlIGNhbiBzdGFydCBkb2NrZWQsIGFuZCB0aGUg
dXNlciBwcmVmZXJzIHRvIHN0YXJ0IGRvY2tlZCwKKyAgICAgICAgICAgIHRoZW4gcmVxdWVzdCB0
aGUgaW5zcGVjdG9yIGJlIGF0dGFjaGVkIHRvIHRoZSB3aW5kb3cuCisgICAgICAgICogVUlQcm9j
ZXNzL1dlYkluc3BlY3RvclByb3h5Lmg6CisKKyAgICAgICAgKiBVSVByb2Nlc3MvbWFjL1dlYklu
c3BlY3RvclByb3h5TWFjLm1tOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6
cGxhdGZvcm1PcGVuKTogT25seSBzaG93IHRoZSB3aW5kb3cgaWYgd2UgYXJlIGdvaW5nIHRvIHN0
YXJ0IHVuZG9ja2VkLgorICAgICAgICAqIFVJUHJvY2Vzcy93aW4vV2ViSW5zcGVjdG9yUHJveHlX
aW4uY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVu
KTogRGl0dG8uCisKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmNw
cDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yOjpkaWRMb2FkSW5zcGVjdG9yUGFnZSk6
IFBhc3Mgd2hldGhlciBvciBub3Qgd2UgY2FuIGF0dGFjaCB0aGUgd2luZG93LgorICAgICAgICAo
V2ViS2l0OjpXZWJJbnNwZWN0b3I6OnJlcXVlc3RBdHRhY2hXaW5kb3cpOiBDYWxsIHRocm91Z2gg
dG8gdGhlIEluc3BlY3RvckNvbnRyb2xsZXIgdG8gYXR0YWNoIHRoZSBpbnNwZWN0b3IuCisgICAg
ICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6Y2FuQXR0YWNoV2luZG93KTogQXNrIHRoZSBJbnNw
ZWN0b3JDb250cm9sbGVyIGlmIHdlIGNhbiBhdHRhY2ggdGhlIGluc3BlY3Rvci4KKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmg6CisKKyAgICAgICAgKiBTaGFyZWQv
V2ViUHJlZmVyZW5jZXNTdG9yZS5oOiBBZGQgYSBuZXcgcHJlZmVyZW5jZSBmb3Igd2hldGhlciBv
ciBub3QgdGhlIGluc3BlY3RvciBzaG91bGQKKyAgICAgICAgICAgIHN0YXJ0IGF0dGFjaGVkLgor
CisgICAgICAgICogVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmluOiBXaGVu
IHRoZSBpbnNwZWN0b3IgcGFnZSBpcyBsb2FkZWQsIHRlbGwgdGhlIFVJIFByb2Nlc3Mgd2hldGhl
cgorICAgICAgICAgICAgd2UgY2FuIGF0dGFjaCB0aGUgaW5zcGVjdG9yIHdpdGhvdXQgbmVlZGlu
ZyBhbm90aGVyIG1lc3NhZ2UuCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3Bl
Y3Rvci5tZXNzYWdlcy5pbjogQWRkIGEgbmV3IG1lc3NhZ2UgZm9yIFJlcXVlc3RBdHRhY2hXaW5k
b3cKKwogMjAxMS0wOC0wMSAgU2NvdHQgR3JhaGFtICA8c2NvdHRtZ0BjaHJvbWl1bS5vcmc+CiAK
ICAgICAgICAgUkVHUkVTU0lPTiAocjM5NzI1Pyk6IFJlc291cmNlcyByZW1vdmVkIGZyb20gZG9j
dW1lbnQgY2FuIG5vdCBiZSBmcmVlZCB1bnRpbCB0aGUgZG9jdW1lbnQgaXMgZGVsZXRlZApJbmRl
eDogU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNTdG9yZS5oCShyZXZpc2lv
biA5MTk5NykKKysrIFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgJ
KHdvcmtpbmcgY29weSkKQEAgLTc4LDYgKzc4LDcgQEAgbmFtZXNwYWNlIFdlYktpdCB7CiAgICAg
bWFjcm8oSGl4aWU3NldlYlNvY2tldFByb3RvY29sRW5hYmxlZCwgaGl4aWU3NldlYlNvY2tldFBy
b3RvY29sRW5hYmxlZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIG1hY3JvKE1lZGlhUGxheWJh
Y2tSZXF1aXJlc1VzZXJHZXN0dXJlLCBtZWRpYVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSwg
Qm9vbCwgYm9vbCwgZmFsc2UpIFwKICAgICBtYWNybyhNZWRpYVBsYXliYWNrQWxsb3dzSW5saW5l
LCBtZWRpYVBsYXliYWNrQWxsb3dzSW5saW5lLCBCb29sLCBib29sLCB0cnVlKSBcCisgICAgbWFj
cm8oSW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQsIGluc3BlY3RvclN0YXJ0c0F0dGFjaGVkLCBCb29s
LCBib29sLCB0cnVlKSBcCiAgICAgXAogCiAjZGVmaW5lIEZPUl9FQUNIX1dFQktJVF9ET1VCTEVf
UFJFRkVSRU5DRShtYWNybykgXApJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYklu
c3BlY3RvclByb3h5LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3Mv
V2ViSW5zcGVjdG9yUHJveHkuY3BwCShyZXZpc2lvbiA5MTk5NykKKysrIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEyMSw2
ICsxMjEsOSBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpzaG93Q29uc29sZSgpCiB2b2lkIFdl
Ykluc3BlY3RvclByb3h5OjphdHRhY2goKQogewogICAgIG1faXNBdHRhY2hlZCA9IHRydWU7Cisg
ICAgCisgICAgaWYgKG1faXNWaXNpYmxlKQorICAgICAgICBpbnNwZWN0b3JQYWdlR3JvdXAoKS0+
cHJlZmVyZW5jZXMoKS0+c2V0SW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQodHJ1ZSk7CiAKICAgICBw
bGF0Zm9ybUF0dGFjaCgpOwogfQpAQCAtMTI4LDYgKzEzMSw5IEBAIHZvaWQgV2ViSW5zcGVjdG9y
UHJveHk6OmF0dGFjaCgpCiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpkZXRhY2goKQogewogICAg
IG1faXNBdHRhY2hlZCA9IGZhbHNlOworICAgIAorICAgIGlmIChtX2lzVmlzaWJsZSkKKyAgICAg
ICAgaW5zcGVjdG9yUGFnZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPnNldEluc3BlY3RvclN0YXJ0
c0F0dGFjaGVkKGZhbHNlKTsKIAogICAgIHBsYXRmb3JtRGV0YWNoKCk7CiB9CkBAIC0yMDMsMTEg
KzIwOSwxNSBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpjcmVhdGVJbnNwZWN0b3JQCiAgICAg
aW5zcGVjdG9yUGFnZS0+bG9hZFVSTChpbnNwZWN0b3JQYWdlVVJMKCkpOwogfQogCi12b2lkIFdl
Ykluc3BlY3RvclByb3h5OjpkaWRMb2FkSW5zcGVjdG9yUGFnZSgpCit2b2lkIFdlYkluc3BlY3Rv
clByb3h5OjpkaWRMb2FkSW5zcGVjdG9yUGFnZShib29sIGNhblN0YXJ0QXR0YWNoZWQpCiB7CiAg
ICAgbV9pc1Zpc2libGUgPSB0cnVlOwogCi0gICAgcGxhdGZvcm1PcGVuKCk7CisgICAgYm9vbCB3
aWxsT3BlbkF0dGFjaGVkID0gY2FuU3RhcnRBdHRhY2hlZCAmJiBpbnNwZWN0b3JQYWdlR3JvdXAo
KS0+cHJlZmVyZW5jZXMoKS0+aW5zcGVjdG9yU3RhcnRzQXR0YWNoZWQoKTsKKyAgICBwbGF0Zm9y
bU9wZW4od2lsbE9wZW5BdHRhY2hlZCk7CisgICAgCisgICAgaWYgKHdpbGxPcGVuQXR0YWNoZWQp
CisgICAgICAgIG1fcGFnZS0+cHJvY2VzcygpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0b3I6
OlJlcXVlc3RBdHRhY2hXaW5kb3coKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQgV2Vi
SW5zcGVjdG9yUHJveHk6OmRpZENsb3NlKCkKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJJbnNwZWN0b3JQcm94eS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJv
Y2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCShyZXZpc2lvbiA5MTk5NykKKysrIFNvdXJjZS9XZWJL
aXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5oCSh3b3JraW5nIGNvcHkpCkBAIC01Niw2
ICs1Niw4IEBAIHN0cnVjdCBXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzOwogY2xhc3MgV2ViVmll
dzsKICNlbmRpZgogCitlbnVtIFVwZGF0ZUF0dGFjaGVkUHJlZmVyZW5jZU9yTm90IHsgRG9Ob3RV
cGRhdGVBdHRhY2hlZFByZWZlcmVuY2UsIFVwZGF0ZUF0dGFjaGVkUHJlZmVyZW5jZSB9OworCiBj
bGFzcyBXZWJJbnNwZWN0b3JQcm94eSA6IHB1YmxpYyBBUElPYmplY3QKICNpZiBQTEFURk9STShX
SU4pCiAgICAgLCBwdWJsaWMgV2ViQ29yZTo6V2luZG93TWVzc2FnZUxpc3RlbmVyCkBAIC0xMTQs
NyArMTE2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFR5cGUgdHlwZSgpIGNvbnN0IHsgcmV0
dXJuIEFQSVR5cGU7IH0KIAogICAgIFdlYlBhZ2VQcm94eSogcGxhdGZvcm1DcmVhdGVJbnNwZWN0
b3JQYWdlKCk7Ci0gICAgdm9pZCBwbGF0Zm9ybU9wZW4oKTsKKyAgICB2b2lkIHBsYXRmb3JtT3Bl
bihib29sIHdpbGxPcGVuQXR0YWNoZWQpOwogICAgIHZvaWQgcGxhdGZvcm1EaWRDbG9zZSgpOwog
ICAgIHZvaWQgcGxhdGZvcm1CcmluZ1RvRnJvbnQoKTsKICAgICB2b2lkIHBsYXRmb3JtSW5zcGVj
dGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKTsKQEAgLTEyNyw3ICsxMjksNyBAQCBwcml2YXRl
OgogCiAgICAgLy8gQ2FsbGVkIGJ5IFdlYkluc3BlY3RvclByb3h5IG1lc3NhZ2VzCiAgICAgdm9p
ZCBjcmVhdGVJbnNwZWN0b3JQYWdlKHVpbnQ2NF90JiBpbnNwZWN0b3JQYWdlSUQsIFdlYlBhZ2VD
cmVhdGlvblBhcmFtZXRlcnMmKTsKLSAgICB2b2lkIGRpZExvYWRJbnNwZWN0b3JQYWdlKCk7Cisg
ICAgdm9pZCBkaWRMb2FkSW5zcGVjdG9yUGFnZShib29sIGNhblN0YXJ0QXR0YWNoZWQpOwogICAg
IHZvaWQgZGlkQ2xvc2UoKTsKICAgICB2b2lkIGJyaW5nVG9Gcm9udCgpOwogICAgIHZvaWQgaW5z
cGVjdGVkVVJMQ2hhbmdlZChjb25zdCBTdHJpbmcmKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbgo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4JKHJldmlz
aW9uIDkxOTk3KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5
Lm1lc3NhZ2VzLmluCSh3b3JraW5nIGNvcHkpCkBAIC0yNCw3ICsyNCw3IEBACiAKIG1lc3NhZ2Vz
IC0+IFdlYkluc3BlY3RvclByb3h5IHsKICAgICBDcmVhdGVJbnNwZWN0b3JQYWdlKCkgLT4gKHVp
bnQ2NF90IGluc3BlY3RvclBhZ2VJRCwgV2ViS2l0OjpXZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJz
IGluc3BlY3RvclBhZ2VQYXJhbWV0ZXJzKQotICAgIERpZExvYWRJbnNwZWN0b3JQYWdlKCkKKyAg
ICBEaWRMb2FkSW5zcGVjdG9yUGFnZShib29sIGNhblN0YXJ0QXR0YWNoZWQpCiAgICAgRGlkQ2xv
c2UoKQogICAgIEJyaW5nVG9Gcm9udCgpCiAgICAgSW5zcGVjdGVkVVJMQ2hhbmdlZChXVEY6OlN0
cmluZyB1cmxTdHJpbmcpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvbWFjL1dlYklu
c3BlY3RvclByb3h5TWFjLm1tCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0JKHJldmlzaW9uIDkxOTk3KQorKysgU291cmNl
L1dlYktpdDIvVUlQcm9jZXNzL21hYy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQkod29ya2luZyBj
b3B5KQpAQCAtMTA5LDE0ICsxMDksMTIgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQcm94
eTo6cGxhdGZvcgogICAgIHJldHVybiB0b0ltcGwobV9pbnNwZWN0b3JWaWV3LmdldCgpLnBhZ2VS
ZWYpOwogfQogCi12b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQordm9pZCBX
ZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKGJvb2wgd2lsbE9wZW5BdHRhY2hlZCkKIHsK
ICAgICBBU1NFUlQoIW1faW5zcGVjdG9yV2luZG93KTsKIAogICAgIG1faW5zcGVjdG9yUHJveHlP
YmpDQWRhcHRlci5hZG9wdE5TKFtbV2ViSW5zcGVjdG9yUHJveHlPYmpDQWRhcHRlciBhbGxvY10g
aW5pdFdpdGhXZWJJbnNwZWN0b3JQcm94eTp0aGlzXSk7CiAKLSAgICAvLyBGSVhNRTogc3VwcG9y
dCBvcGVuaW5nIGluIGRvY2tlZCBtb2RlIGhlcmUuCi0KICAgICBOU1VJbnRlZ2VyIHN0eWxlTWFz
ayA9IChOU1RpdGxlZFdpbmRvd01hc2sgfCBOU0Nsb3NhYmxlV2luZG93TWFzayB8IE5TTWluaWF0
dXJpemFibGVXaW5kb3dNYXNrIHwgTlNSZXNpemFibGVXaW5kb3dNYXNrIHwgTlNUZXh0dXJlZEJh
Y2tncm91bmRXaW5kb3dNYXNrKTsKICAgICBOU1dpbmRvdyAqd2luZG93ID0gW1tOU1dpbmRvdyBh
bGxvY10gaW5pdFdpdGhDb250ZW50UmVjdDpOU01ha2VSZWN0KDAsIDAsIGluaXRpYWxXaW5kb3dX
aWR0aCwgaW5pdGlhbFdpbmRvd0hlaWdodCkgc3R5bGVNYXNrOnN0eWxlTWFzayBiYWNraW5nOk5T
QmFja2luZ1N0b3JlQnVmZmVyZWQgZGVmZXI6Tk9dOwogICAgIFt3aW5kb3cgc2V0QXV0b3JlY2Fs
Y3VsYXRlc0NvbnRlbnRCb3JkZXJUaGlja25lc3M6Tk8gZm9yRWRnZTpOU01heFlFZGdlXTsKQEAg
LTEzNyw3ICsxMzUsOCBAQCB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQog
ICAgIFttX2luc3BlY3RvclZpZXcuZ2V0KCkgc2V0QXV0b3Jlc2l6aW5nTWFzazooTlNWaWV3V2lk
dGhTaXphYmxlIHwgTlNWaWV3SGVpZ2h0U2l6YWJsZSldOwogICAgIFtjb250ZW50VmlldyBhZGRT
dWJ2aWV3Om1faW5zcGVjdG9yVmlldy5nZXQoKV07CiAKLSAgICBbd2luZG93IG1ha2VLZXlBbmRP
cmRlckZyb250Om5pbF07CisgICAgaWYgKCF3aWxsT3BlbkF0dGFjaGVkKQorICAgICAgICBbd2lu
ZG93IG1ha2VLZXlBbmRPcmRlckZyb250Om5pbF07CiAKICAgICBtX2luc3BlY3RvcldpbmRvdy5h
ZG9wdE5TKHdpbmRvdyk7CiB9CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2Vi
SW5zcGVjdG9yUHJveHlRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQcm9j
ZXNzL3F0L1dlYkluc3BlY3RvclByb3h5UXQuY3BwCShyZXZpc2lvbiA5MTk5NykKKysrIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy9xdC9XZWJJbnNwZWN0b3JQcm94eVF0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtMzksNyArMzksNyBAQCBXZWJQYWdlUHJveHkqIFdlYkluc3BlY3RvclByb3h5Ojpw
bGF0Zm9yCiAgICAgcmV0dXJuIDA7CiB9CiAKLXZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRm
b3JtT3BlbigpCit2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oYm9vbCkKIHsK
ICAgICBub3RJbXBsZW1lbnRlZCgpOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3dpbi9XZWJJbnNwZWN0b3JQcm94eVdpbi5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dDIvVUlQcm9jZXNzL3dpbi9XZWJJbnNwZWN0b3JQcm94eVdpbi5jcHAJKHJldmlzaW9uIDkxOTk3
KQorKysgU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL3dpbi9XZWJJbnNwZWN0b3JQcm94eVdpbi5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTE5OCw3ICsxOTgsNyBAQCBXZWJQYWdlUHJveHkqIFdlYklu
c3BlY3RvclByb3h5OjpwbGF0Zm9yCiAgICAgcmV0dXJuIG1faW5zcGVjdG9yVmlldy0+cGFnZSgp
OwogfQogCi12b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybU9wZW4oKQordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKGJvb2wgd2lsbE9wZW5BdHRhY2hlZCkKIHsKICAg
ICByZWdpc3Rlckluc3BlY3RvclZpZXdXaW5kb3dDbGFzcygpOwogCkBAIC0yMDcsNyArMjA3LDkg
QEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKCkKICAgICBBU1NFUlQoOjpJ
c1dpbmRvdyhtX2luc3BlY3RvcldpbmRvdykpOwogCiAgICAgbV9pbnNwZWN0b3JWaWV3LT5zZXRQ
YXJlbnRXaW5kb3cobV9pbnNwZWN0b3JXaW5kb3cpOwotICAgIDo6U2hvd1dpbmRvdyhtX2luc3Bl
Y3RvcldpbmRvdywgU1dfU0hPVyk7CisKKwlpZiAoIXdpbGxPcGVuQXR0YWNoZWQpCisgICAgCTo6
U2hvd1dpbmRvdyhtX2luc3BlY3RvcldpbmRvdywgU1dfU0hPVyk7CiB9CiAKIHZvaWQgV2ViSW5z
cGVjdG9yUHJveHk6OnBsYXRmb3JtRGlkQ2xvc2UoKQpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAJKHJldmlzaW9uIDkxOTk3
KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTc4LDcgKzc4LDcgQEAgV2ViUGFnZSogV2ViSW5zcGVjdG9yOjpj
cmVhdGVJbnNwZWN0b3JQYQogLy8gQ2FsbGVkIGZyb20gV2ViSW5zcGVjdG9yRnJvbnRlbmRDbGll
bnQKIHZvaWQgV2ViSW5zcGVjdG9yOjpkaWRMb2FkSW5zcGVjdG9yUGFnZSgpCiB7Ci0gICAgV2Vi
UHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNwZWN0
b3JQcm94eTo6RGlkTG9hZEluc3BlY3RvclBhZ2UoKSwgbV9wYWdlLT5wYWdlSUQoKSk7CisgICAg
V2ViUHJvY2Vzczo6c2hhcmVkKCkuY29ubmVjdGlvbigpLT5zZW5kKE1lc3NhZ2VzOjpXZWJJbnNw
ZWN0b3JQcm94eTo6RGlkTG9hZEluc3BlY3RvclBhZ2UoY2FuQXR0YWNoV2luZG93KCkpLCBtX3Bh
Z2UtPnBhZ2VJRCgpKTsKIH0KIAogdm9pZCBXZWJJbnNwZWN0b3I6OmRpZENsb3NlKCkKQEAgLTE4
MSw2ICsxODEsMTYgQEAgdm9pZCBXZWJJbnNwZWN0b3I6OnN0b3BQYWdlUHJvZmlsaW5nKCkKICAg
ICAvLyBGSVhNRTogc2hvdyB0aGUgVGltZWxpbmUgcGFuZWwuCiB9CiAKK3ZvaWQgV2ViSW5zcGVj
dG9yOjpyZXF1ZXN0QXR0YWNoV2luZG93KCkKK3sKKyAgICBtX2luc3BlY3RvclBhZ2UtPmNvcmVQ
YWdlKCktPmluc3BlY3RvckNvbnRyb2xsZXIoKS0+cmVxdWVzdEF0dGFjaFdpbmRvdygpOworfQor
Citib29sIFdlYkluc3BlY3Rvcjo6Y2FuQXR0YWNoV2luZG93KCkgY29uc3QKK3sKKyAgICByZXR1
cm4gbV9pbnNwZWN0b3JQYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPmNh
bkF0dGFjaFdpbmRvdygpOworfQorCiB9IC8vIG5hbWVzcGFjZSBXZWJLaXQKIAogI2VuZGlmIC8v
IEVOQUJMRShJTlNQRUNUT1IpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViSW5zcGVjdG9yLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCShyZXZpc2lvbiA5MTk5NykKKysrIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAkod29ya2luZyBjb3B5KQpAQCAt
NTksNiArNTksOSBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRKYXZhU2NyaXB0UHJvZmlsaW5nRW5h
YmxlZChib29sKTsKICAgICB2b2lkIHN0YXJ0UGFnZVByb2ZpbGluZygpOwogICAgIHZvaWQgc3Rv
cFBhZ2VQcm9maWxpbmcoKTsKKyAgICAKKyAgICBib29sIGNhbkF0dGFjaFdpbmRvdygpIGNvbnN0
OworICAgIHZvaWQgcmVxdWVzdEF0dGFjaFdpbmRvdygpOwogCiBwcml2YXRlOgogICAgIGZyaWVu
ZCBjbGFzcyBXZWJJbnNwZWN0b3JDbGllbnQ7CkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9j
ZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1lc3NhZ2VzLmluCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4JKHJl
dmlzaW9uIDkxOTk3KQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYklu
c3BlY3Rvci5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMzIsNiArMzIsOCBAQCBtZXNz
YWdlcyAtPiBXZWJJbnNwZWN0b3IgewogICAgIFN0b3BKYXZhU2NyaXB0UHJvZmlsaW5nKCkKICAg
ICBTdGFydFBhZ2VQcm9maWxpbmcoKQogICAgIFN0b3BQYWdlUHJvZmlsaW5nKCkKKworICAgIFJl
cXVlc3RBdHRhY2hXaW5kb3coKQogfQogCiAjZW5kaWYK
</data>
<flag name="review"
          id="97862"
          type_id="1"
          status="+"
          setter="aroben"
    />
    <flag name="commit-queue"
          id="97873"
          type_id="3"
          status="-"
          setter="webkit.review.bot"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>102940</attachid>
            <date>2011-08-04 10:09:22 -0700</date>
            <delta_ts>2011-08-04 10:16:09 -0700</delta_ts>
            <desc>[PATCH] Fix + Chromium Build Fix</desc>
            <filename>inspector_starts_attached.patch</filename>
            <type>text/plain</type>
            <size>18444</size>
            <attacher name="Brian Weinstein">bweinstein</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDkyMzgyKQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDgtMDEgIEJyaWFuIFdl
aW5zdGVpbiAgPGJ3ZWluc3RlaW5AYXBwbGUuY29tPgorCisgICAgICAgIFdlYktpdDI6IFdlYiBJ
bnNwZWN0b3IgYWx3YXlzIHN0YXJ0cyBpbiB1bmRvY2tlZCBtb2RlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD02NTQ5MworICAgICAgICA8cmRhcjovL3By
b2JsZW0vOTM1MzExND4KKyAgICAgICAgCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorICAgICAgICAKKyAgICAgICAgRXhwb3NlIHNvbWUgbWV0aG9kcyBvbiBJbnNwZWN0b3JG
cm9udGVuZENsaWVudCB0aHJvdWdoIHRoZSBJbnNwZWN0b3JDb250cm9sbGVyIHNvIFdlYktpdDIK
KyAgICAgICAgY2FuIHJlcXVlc3QgdGhlIGluc3BlY3RvciBiZSBkb2NrZWQsIG9yIGFzayB3aGV0
aGVyIG9yIG5vdCBpdCBjYW4gYmUgZG9ja2VkLgorCisgICAgICAgICogV2ViQ29yZS5leHAuaW46
IEV4cG9ydCBuZWVkZWQgbWV0aG9kcy4KKyAgICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yQ29u
dHJvbGxlci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbnNwZWN0b3JDb250cm9sbGVyOjpyZXF1
ZXN0QXR0YWNoV2luZG93KTogQ2FsbCB0aHJvdWdoIHRvIEluc3BlY3RvckZyb250ZW5kQ2xpZW50
LgorICAgICAgICAoV2ViQ29yZTo6SW5zcGVjdG9yQ29udHJvbGxlcjo6Y2FuQXR0YWNoV2luZG93
KTogRGl0dG8uCisgICAgICAgICogaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaDoKKyAg
ICAgICAgKiBpbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnQuaDoKKyAgICAgICAgKiBp
bnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oOgorCiAyMDExLTA4LTA0ICBM
dWtlIE1hY3BoZXJzb24gICA8bWFjcGhlcnNvbkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgU3Vw
cG9ydCBjYXN0IGJldHdlZW4gQ1NTUHJpbWl0aXZlVmFsdWUgYW5kIEVib3JkZXJGaXQsIHVzZSBp
biBDU1NTdHlsZVNlbGVjdG9yLgpJbmRleDogU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4K
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHJldmlzaW9uIDky
MzgyKQorKysgU291cmNlL1dlYkNvcmUvV2ViQ29yZS5leHAuaW4JKHdvcmtpbmcgY29weSkKQEAg
LTE1ODYsMTEgKzE1ODYsMTMgQEAgX19aTjdXZWJDb3JlMjJHZW9sb2NhdGlvblNlcnZpY2VNb2Nr
OHNldAogI2lmIEVOQUJMRShJTlNQRUNUT1IpCiBfX1pON1dlYkNvcmUxNUluc3BlY3RvckNsaWVu
dDMxZG9EaXNwYXRjaE1lc3NhZ2VPbkZyb250ZW5kUGFnZUVQTlNfNFBhZ2VFUktOM1dURjZTdHJp
bmdFCiBfX1pON1dlYkNvcmUxOUluc3BlY3RvckNvbnRyb2xsZXIxNGVuYWJsZVByb2ZpbGVyRXYK
K19fWk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE1Y2FuQXR0YWNoV2luZG93RXYKIF9f
Wk43V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE1ZGVidWdnZXJFbmFibGVkRXYKIF9fWk43
V2ViQ29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE1ZGlzYWJsZURlYnVnZ2VyRXYKIF9fWk43V2Vi
Q29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE1ZGlzYWJsZVByb2ZpbGVyRXYKIF9fWk43V2ViQ29y
ZTE5SW5zcGVjdG9yQ29udHJvbGxlcjE1cHJvZmlsZXJFbmFibGVkRXYKIF9fWk43V2ViQ29yZTE5
SW5zcGVjdG9yQ29udHJvbGxlcjE4ZGlzY29ubmVjdEZyb250ZW5kRXYKK19fWk43V2ViQ29yZTE5
SW5zcGVjdG9yQ29udHJvbGxlcjE5cmVxdWVzdEF0dGFjaFdpbmRvd0V2CiBfX1pON1dlYkNvcmUx
OUluc3BlY3RvckNvbnRyb2xsZXIyMHN0b3BUaW1lbGluZVByb2ZpbGVyRXYKIF9fWk43V2ViQ29y
ZTE5SW5zcGVjdG9yQ29udHJvbGxlcjIxc2hvd0FuZEVuYWJsZURlYnVnZ2VyRXYKIF9fWk43V2Vi
Q29yZTE5SW5zcGVjdG9yQ29udHJvbGxlcjExc2hvd0NvbnNvbGVFdgpJbmRleDogU291cmNlL1dl
YkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmNwcAkocmV2aXNpb24g
OTIzODIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTUwOSw2ICs1MDksMjIgQEAgdm9pZCBJbnNwZWN0b3JDb250
cm9sbGVyOjpzZXRSZXNvdXJjZXNEYQogICAgIG1fcmVzb3VyY2VBZ2VudC0+c2V0UmVzb3VyY2Vz
RGF0YVNpemVMaW1pdHNGcm9tSW50ZXJuYWxzKG1heGltdW1SZXNvdXJjZXNDb250ZW50U2l6ZSwg
bWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNpemUpOwogfQogCit2b2lkIEluc3BlY3RvckNv
bnRyb2xsZXI6OnJlcXVlc3RBdHRhY2hXaW5kb3coKQoreworICAgIGlmICghbV9pbnNwZWN0b3JG
cm9udGVuZENsaWVudCkKKyAgICAgICAgcmV0dXJuOworCisgICAgbV9pbnNwZWN0b3JGcm9udGVu
ZENsaWVudC0+cmVxdWVzdEF0dGFjaFdpbmRvdygpOworfQorICAgIAorYm9vbCBJbnNwZWN0b3JD
b250cm9sbGVyOjpjYW5BdHRhY2hXaW5kb3coKQoreworICAgIGlmICghbV9pbnNwZWN0b3JGcm9u
dGVuZENsaWVudCkKKyAgICAgICAgcmV0dXJuIGZhbHNlOworICAgIAorICAgIHJldHVybiBtX2lu
c3BlY3RvckZyb250ZW5kQ2xpZW50LT5jYW5BdHRhY2hXaW5kb3coKTsKK30KKwogfSAvLyBuYW1l
c3BhY2UgV2ViQ29yZQogCiAjZW5kaWYgLy8gRU5BQkxFKElOU1BFQ1RPUikKSW5kZXg6IFNvdXJj
ZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JDb250cm9sbGVyLmgKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYkNvcmUvaW5zcGVjdG9yL0luc3BlY3RvckNvbnRyb2xsZXIuaAkocmV2aXNpb24g
OTIzODIpCisrKyBTb3VyY2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yQ29udHJvbGxlci5o
CSh3b3JraW5nIGNvcHkpCkBAIC0xMjEsNiArMTIxLDkgQEAgcHVibGljOgogI2VuZGlmCiAKICAg
ICB2b2lkIHNldFJlc291cmNlc0RhdGFTaXplTGltaXRzRnJvbUludGVybmFscyhpbnQgbWF4aW11
bVJlc291cmNlc0NvbnRlbnRTaXplLCBpbnQgbWF4aW11bVNpbmdsZVJlc291cmNlQ29udGVudFNp
emUpOworICAgIAorICAgIHZvaWQgcmVxdWVzdEF0dGFjaFdpbmRvdygpOworICAgIGJvb2wgY2Fu
QXR0YWNoV2luZG93KCk7CiAKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFBvc3RXb3JrZXJO
b3RpZmljYXRpb25Ub0Zyb250ZW5kVGFzazsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rv
ci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3Jl
L2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCShyZXZpc2lvbiA5MjM4MikKKysr
IFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVuZENsaWVudC5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC01OCw2ICs1OCw3IEBAIHB1YmxpYzoKICAgICB2aXJ0dWFsIHZvaWQgcmVx
dWVzdEF0dGFjaFdpbmRvdygpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgcmVxdWVzdERldGFjaFdp
bmRvdygpID0gMDsKICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlQXR0YWNoZWRXaW5kb3dIZWlnaHQo
dW5zaWduZWQpID0gMDsKKyAgICB2aXJ0dWFsIGJvb2wgY2FuQXR0YWNoV2luZG93KCkgPSAwOwog
ICAgIHZpcnR1YWwgdm9pZCBzYXZlQXMoY29uc3QgV1RGOjpTdHJpbmcmIGZpbGVOYW1lLCBjb25z
dCBXVEY6OlN0cmluZyYgY29udGVudCkgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3Rl
ZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJikgPSAwOwpJbmRleDogU291cmNlL1dlYkNvcmUvaW5z
cGVjdG9yL0luc3BlY3RvckZyb250ZW5kQ2xpZW50TG9jYWwuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvV2ViQ29yZS9pbnNwZWN0b3IvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRMb2NhbC5oCShyZXZp
c2lvbiA5MjM4MikKKysrIFNvdXJjZS9XZWJDb3JlL2luc3BlY3Rvci9JbnNwZWN0b3JGcm9udGVu
ZENsaWVudExvY2FsLmgJKHdvcmtpbmcgY29weSkKQEAgLTY0LDExICs2NCwxMSBAQCBwdWJsaWM6
CiAgICAgdmlydHVhbCB2b2lkIHJlcXVlc3RBdHRhY2hXaW5kb3coKTsKICAgICB2aXJ0dWFsIHZv
aWQgcmVxdWVzdERldGFjaFdpbmRvdygpOwogICAgIHZpcnR1YWwgdm9pZCBjaGFuZ2VBdHRhY2hl
ZFdpbmRvd0hlaWdodCh1bnNpZ25lZCk7CisgICAgdmlydHVhbCBib29sIGNhbkF0dGFjaFdpbmRv
dygpOwogICAgIHZpcnR1YWwgdm9pZCBzYXZlQXMoY29uc3QgU3RyaW5nJiwgY29uc3QgU3RyaW5n
JikgeyB9CiAKICAgICB2aXJ0dWFsIHZvaWQgYXR0YWNoV2luZG93KCkgPSAwOwogICAgIHZpcnR1
YWwgdm9pZCBkZXRhY2hXaW5kb3coKSA9IDA7Ci0gICAgYm9vbCBjYW5BdHRhY2hXaW5kb3coKTsK
IAogICAgIHZpcnR1YWwgdm9pZCBzZW5kTWVzc2FnZVRvQmFja2VuZChjb25zdCBTdHJpbmcmIG1l
c3NhZ2UpOwogCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0g
U291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCShyZXZpc2lvbiA5MjM4MikKKysrIFNvdXJjZS9XZWJL
aXQyL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDExLTA4LTAx
ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KKworICAgICAgICBXZWJL
aXQyOiBXZWIgSW5zcGVjdG9yIGFsd2F5cyBzdGFydHMgaW4gdW5kb2NrZWQgbW9kZQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0OTMKKyAgICAgICAg
PHJkYXI6Ly9wcm9ibGVtLzkzNTMxMTQ+CisgICAgICAgIAorICAgICAgICBSZXZpZXdlZCBieSBO
T0JPRFkgKE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIFdoZW4gb3BlbmluZyB0aGUgaW5zcGVj
dG9yLCB0aGUgd2ViIHByb2Nlc3MgdGVsbHMgdGhlIFVJIHByb2Nlc3MgdGhhdCB0aGUgaW5zcGVj
dG9yIHBhZ2UgaGFzIGxvYWRlZCwKKyAgICAgICAgYnV0IG5vdyB3aWxsIHBhc3MgYW5vdGhlciBi
aXQgb2YgZGF0YSwgd2hldGhlciB0aGUgaW5zcGVjdG9yIGNhbiBzdGFydCBhdHRhY2hlZCwgc28g
dGhlIFVJIHByb2Nlc3MKKyAgICAgICAgZG9lc24ndCBuZWVkIHRvIGFzayB0aGUgd2ViIHByb2Nl
c3MgdG8gZG8gYW5vdGhlciBjYWxjdWxhdGlvbiBvbiB3aGV0aGVyIG9yIG5vdCBpdCBjYW4gYmUg
YXR0YWNoZWQuCisgICAgICAgIAorICAgICAgICBJZiB0aGUgdXNlciBwcmVmZXJzIHRoZSBpbnNw
ZWN0b3IgdG8gc3RhcnQgZG9ja2VkICh0aGlzIGRlZmF1bHRzIHRvIHRydWUpLCBhbmQgdGhlcmUg
aXMgcm9vbSBmb3IgdGhlCisgICAgICAgIHdpbmRvdywgd2Ugc2VuZCBhIG1lc3NhZ2UgdG8gdGhl
IHdlYiBwcm9jZXNzIHRvIHRyeSBhbmQgYXR0YWNoIHRoZSBpbnNwZWN0b3IuIFRoaXMgbWFrZXMg
c3VyZSB0aGF0IHRoZQorICAgICAgICBpbnNwZWN0b3Iga25vd3MgaXQgaXMgZG9ja2VkIChpbiB0
aGUgd2ViIHByb2Nlc3MpLgorICAgICAgICAKKyAgICAgICAgKiBVSVByb2Nlc3MvV2ViSW5zcGVj
dG9yUHJveHkuY3BwOgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6YXR0YWNo
KTogVXBkYXRlIHRoZSB1c2VyJ3MgZG9ja2VkL3VuZG9ja2VkIHByZWZlcmVuY2UgaWYgdGhlIGlu
c3BlY3RvciBpcyB2aXNpYmxlCisgICAgICAgICAgICB3aGVuIGl0IHdhcyBhdHRhY2hlZC4KKyAg
ICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OmRldGFjaCk6IERpdHRvIChidXQgd2hl
biBpdCB3YXMgZGV0YWNoZWQpLgorICAgICAgICAoV2ViS2l0OjpXZWJJbnNwZWN0b3JQcm94eTo6
ZGlkTG9hZEluc3BlY3RvclBhZ2UpOiBJZiB3ZSBjYW4gc3RhcnQgZG9ja2VkLCBhbmQgdGhlIHVz
ZXIgcHJlZmVycyB0byBzdGFydCBkb2NrZWQsCisgICAgICAgICAgICB0aGVuIHJlcXVlc3QgdGhl
IGluc3BlY3RvciBiZSBhdHRhY2hlZCB0byB0aGUgd2luZG93LgorICAgICAgICAqIFVJUHJvY2Vz
cy9XZWJJbnNwZWN0b3JQcm94eS5oOgorCisgICAgICAgICogVUlQcm9jZXNzL21hYy9XZWJJbnNw
ZWN0b3JQcm94eU1hYy5tbToKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBs
YXRmb3JtT3Blbik6IE9ubHkgc2hvdyB0aGUgd2luZG93IGlmIHdlIGFyZSBnb2luZyB0byBzdGFy
dCB1bmRvY2tlZC4KKyAgICAgICAgKiBVSVByb2Nlc3Mvd2luL1dlYkluc3BlY3RvclByb3h5V2lu
LmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Blbik6
IERpdHRvLgorCisgICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5jcHA6
CisgICAgICAgIChXZWJLaXQ6OldlYkluc3BlY3Rvcjo6ZGlkTG9hZEluc3BlY3RvclBhZ2UpOiBQ
YXNzIHdoZXRoZXIgb3Igbm90IHdlIGNhbiBhdHRhY2ggdGhlIHdpbmRvdy4KKyAgICAgICAgKFdl
YktpdDo6V2ViSW5zcGVjdG9yOjpyZXF1ZXN0QXR0YWNoV2luZG93KTogQ2FsbCB0aHJvdWdoIHRv
IHRoZSBJbnNwZWN0b3JDb250cm9sbGVyIHRvIGF0dGFjaCB0aGUgaW5zcGVjdG9yLgorICAgICAg
ICAoV2ViS2l0OjpXZWJJbnNwZWN0b3I6OmNhbkF0dGFjaFdpbmRvdyk6IEFzayB0aGUgSW5zcGVj
dG9yQ29udHJvbGxlciBpZiB3ZSBjYW4gYXR0YWNoIHRoZSBpbnNwZWN0b3IuCisgICAgICAgICog
V2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oOgorCisgICAgICAgICogU2hhcmVkL1dl
YlByZWZlcmVuY2VzU3RvcmUuaDogQWRkIGEgbmV3IHByZWZlcmVuY2UgZm9yIHdoZXRoZXIgb3Ig
bm90IHRoZSBpbnNwZWN0b3Igc2hvdWxkCisgICAgICAgICAgICBzdGFydCBhdHRhY2hlZC4KKwor
ICAgICAgICAqIFVJUHJvY2Vzcy9XZWJJbnNwZWN0b3JQcm94eS5tZXNzYWdlcy5pbjogV2hlbiB0
aGUgaW5zcGVjdG9yIHBhZ2UgaXMgbG9hZGVkLCB0ZWxsIHRoZSBVSSBQcm9jZXNzIHdoZXRoZXIK
KyAgICAgICAgICAgIHdlIGNhbiBhdHRhY2ggdGhlIGluc3BlY3RvciB3aXRob3V0IG5lZWRpbmcg
YW5vdGhlciBtZXNzYWdlLgorICAgICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0
b3IubWVzc2FnZXMuaW46IEFkZCBhIG5ldyBtZXNzYWdlIGZvciBSZXF1ZXN0QXR0YWNoV2luZG93
CisKIDIwMTEtMDgtMDIgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRlQG5va2lh
LmNvbT4KIAogICAgICAgICBbUXRdW1dLMl0gQ3JlYXRlIHNjZW5lIGdyYXBoIG5vZGVzIGZvciB0
aWxlcyBpbiBRVG91Y2hXZWJWaWV3IGluc3RlYWQgb2YgdXNpbmcgaW1wZXJhdGl2ZSBwYWludGlu
Zy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1NoYXJlZC9XZWJQcmVmZXJlbmNlc1N0b3JlLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvU2hhcmVkL1dlYlByZWZlcmVuY2VzU3RvcmUuaAko
cmV2aXNpb24gOTIzODIpCisrKyBTb3VyY2UvV2ViS2l0Mi9TaGFyZWQvV2ViUHJlZmVyZW5jZXNT
dG9yZS5oCSh3b3JraW5nIGNvcHkpCkBAIC04NCw2ICs4NCw3IEBAIG5hbWVzcGFjZSBXZWJLaXQg
ewogICAgIG1hY3JvKEhpeGllNzZXZWJTb2NrZXRQcm90b2NvbEVuYWJsZWQsIGhpeGllNzZXZWJT
b2NrZXRQcm90b2NvbEVuYWJsZWQsIEJvb2wsIGJvb2wsIHRydWUpIFwKICAgICBtYWNybyhNZWRp
YVBsYXliYWNrUmVxdWlyZXNVc2VyR2VzdHVyZSwgbWVkaWFQbGF5YmFja1JlcXVpcmVzVXNlckdl
c3R1cmUsIEJvb2wsIGJvb2wsIGZhbHNlKSBcCiAgICAgbWFjcm8oTWVkaWFQbGF5YmFja0FsbG93
c0lubGluZSwgbWVkaWFQbGF5YmFja0FsbG93c0lubGluZSwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAor
ICAgIG1hY3JvKEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkLCBpbnNwZWN0b3JTdGFydHNBdHRhY2hl
ZCwgQm9vbCwgYm9vbCwgdHJ1ZSkgXAogICAgIFwKIAogI2RlZmluZSBGT1JfRUFDSF9XRUJLSVRf
RE9VQkxFX1BSRUZFUkVOQ0UobWFjcm8pIFwKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vz
cy9XZWJJbnNwZWN0b3JQcm94eS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdDIvVUlQ
cm9jZXNzL1dlYkluc3BlY3RvclByb3h5LmNwcAkocmV2aXNpb24gOTIzODIpCisrKyBTb3VyY2Uv
V2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC0xMjEsNiArMTIxLDkgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6c2hvd0NvbnNvbGUoKQog
dm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6YXR0YWNoKCkKIHsKICAgICBtX2lzQXR0YWNoZWQgPSB0
cnVlOworICAgIAorICAgIGlmIChtX2lzVmlzaWJsZSkKKyAgICAgICAgaW5zcGVjdG9yUGFnZUdy
b3VwKCktPnByZWZlcmVuY2VzKCktPnNldEluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKHRydWUpOwog
CiAgICAgcGxhdGZvcm1BdHRhY2goKTsKIH0KQEAgLTEyOCw2ICsxMzEsOSBAQCB2b2lkIFdlYklu
c3BlY3RvclByb3h5OjphdHRhY2goKQogdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6ZGV0YWNoKCkK
IHsKICAgICBtX2lzQXR0YWNoZWQgPSBmYWxzZTsKKyAgICAKKyAgICBpZiAobV9pc1Zpc2libGUp
CisgICAgICAgIGluc3BlY3RvclBhZ2VHcm91cCgpLT5wcmVmZXJlbmNlcygpLT5zZXRJbnNwZWN0
b3JTdGFydHNBdHRhY2hlZChmYWxzZSk7CiAKICAgICBwbGF0Zm9ybURldGFjaCgpOwogfQpAQCAt
MjAzLDExICsyMDksMTUgQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6Y3JlYXRlSW5zcGVjdG9y
UAogICAgIGluc3BlY3RvclBhZ2UtPmxvYWRVUkwoaW5zcGVjdG9yUGFnZVVSTCgpKTsKIH0KIAot
dm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6ZGlkTG9hZEluc3BlY3RvclBhZ2UoKQordm9pZCBXZWJJ
bnNwZWN0b3JQcm94eTo6ZGlkTG9hZEluc3BlY3RvclBhZ2UoYm9vbCBjYW5TdGFydEF0dGFjaGVk
KQogewogICAgIG1faXNWaXNpYmxlID0gdHJ1ZTsKIAotICAgIHBsYXRmb3JtT3BlbigpOworICAg
IGJvb2wgd2lsbE9wZW5BdHRhY2hlZCA9IGNhblN0YXJ0QXR0YWNoZWQgJiYgaW5zcGVjdG9yUGFn
ZUdyb3VwKCktPnByZWZlcmVuY2VzKCktPmluc3BlY3RvclN0YXJ0c0F0dGFjaGVkKCk7CisgICAg
cGxhdGZvcm1PcGVuKHdpbGxPcGVuQXR0YWNoZWQpOworICAgIAorICAgIGlmICh3aWxsT3BlbkF0
dGFjaGVkKQorICAgICAgICBtX3BhZ2UtPnByb2Nlc3MoKS0+c2VuZChNZXNzYWdlczo6V2ViSW5z
cGVjdG9yOjpSZXF1ZXN0QXR0YWNoV2luZG93KCksIG1fcGFnZS0+cGFnZUlEKCkpOwogfQogCiB2
b2lkIFdlYkluc3BlY3RvclByb3h5OjpkaWRDbG9zZSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAkocmV2aXNpb24gOTIzODIpCisrKyBTb3Vy
Y2UvV2ViS2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkuaAkod29ya2luZyBjb3B5KQpA
QCAtMTE0LDcgKzExNCw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBUeXBlIHR5cGUoKSBjb25z
dCB7IHJldHVybiBBUElUeXBlOyB9CiAKICAgICBXZWJQYWdlUHJveHkqIHBsYXRmb3JtQ3JlYXRl
SW5zcGVjdG9yUGFnZSgpOwotICAgIHZvaWQgcGxhdGZvcm1PcGVuKCk7CisgICAgdm9pZCBwbGF0
Zm9ybU9wZW4oYm9vbCB3aWxsT3BlbkF0dGFjaGVkKTsKICAgICB2b2lkIHBsYXRmb3JtRGlkQ2xv
c2UoKTsKICAgICB2b2lkIHBsYXRmb3JtQnJpbmdUb0Zyb250KCk7CiAgICAgdm9pZCBwbGF0Zm9y
bUluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJik7CkBAIC0xMjcsNyArMTI3LDcgQEAg
cHJpdmF0ZToKIAogICAgIC8vIENhbGxlZCBieSBXZWJJbnNwZWN0b3JQcm94eSBtZXNzYWdlcwog
ICAgIHZvaWQgY3JlYXRlSW5zcGVjdG9yUGFnZSh1aW50NjRfdCYgaW5zcGVjdG9yUGFnZUlELCBX
ZWJQYWdlQ3JlYXRpb25QYXJhbWV0ZXJzJik7Ci0gICAgdm9pZCBkaWRMb2FkSW5zcGVjdG9yUGFn
ZSgpOworICAgIHZvaWQgZGlkTG9hZEluc3BlY3RvclBhZ2UoYm9vbCBjYW5TdGFydEF0dGFjaGVk
KTsKICAgICB2b2lkIGRpZENsb3NlKCk7CiAgICAgdm9pZCBicmluZ1RvRnJvbnQoKTsKICAgICB2
b2lkIGluc3BlY3RlZFVSTENoYW5nZWQoY29uc3QgU3RyaW5nJik7CkluZGV4OiBTb3VyY2UvV2Vi
S2l0Mi9VSVByb2Nlc3MvV2ViSW5zcGVjdG9yUHJveHkubWVzc2FnZXMuaW4KPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL1dlYkluc3BlY3RvclByb3h5Lm1lc3NhZ2VzLmlu
CShyZXZpc2lvbiA5MjM4MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9XZWJJbnNwZWN0
b3JQcm94eS5tZXNzYWdlcy5pbgkod29ya2luZyBjb3B5KQpAQCAtMjQsNyArMjQsNyBAQAogCiBt
ZXNzYWdlcyAtPiBXZWJJbnNwZWN0b3JQcm94eSB7CiAgICAgQ3JlYXRlSW5zcGVjdG9yUGFnZSgp
IC0+ICh1aW50NjRfdCBpbnNwZWN0b3JQYWdlSUQsIFdlYktpdDo6V2ViUGFnZUNyZWF0aW9uUGFy
YW1ldGVycyBpbnNwZWN0b3JQYWdlUGFyYW1ldGVycykKLSAgICBEaWRMb2FkSW5zcGVjdG9yUGFn
ZSgpCisgICAgRGlkTG9hZEluc3BlY3RvclBhZ2UoYm9vbCBjYW5TdGFydEF0dGFjaGVkKQogICAg
IERpZENsb3NlKCkKICAgICBCcmluZ1RvRnJvbnQoKQogICAgIEluc3BlY3RlZFVSTENoYW5nZWQo
V1RGOjpTdHJpbmcgdXJsU3RyaW5nKQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNzL21h
Yy9XZWJJbnNwZWN0b3JQcm94eU1hYy5tbQo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9V
SVByb2Nlc3MvbWFjL1dlYkluc3BlY3RvclByb3h5TWFjLm1tCShyZXZpc2lvbiA5MjM4MikKKysr
IFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy9tYWMvV2ViSW5zcGVjdG9yUHJveHlNYWMubW0JKHdv
cmtpbmcgY29weSkKQEAgLTEwOSwxNCArMTA5LDEyIEBAIFdlYlBhZ2VQcm94eSogV2ViSW5zcGVj
dG9yUHJveHk6OnBsYXRmb3IKICAgICByZXR1cm4gdG9JbXBsKG1faW5zcGVjdG9yVmlldy5nZXQo
KS5wYWdlUmVmKTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKCkK
K3ZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Blbihib29sIHdpbGxPcGVuQXR0YWNo
ZWQpCiB7CiAgICAgQVNTRVJUKCFtX2luc3BlY3RvcldpbmRvdyk7CiAKICAgICBtX2luc3BlY3Rv
clByb3h5T2JqQ0FkYXB0ZXIuYWRvcHROUyhbW1dlYkluc3BlY3RvclByb3h5T2JqQ0FkYXB0ZXIg
YWxsb2NdIGluaXRXaXRoV2ViSW5zcGVjdG9yUHJveHk6dGhpc10pOwogCi0gICAgLy8gRklYTUU6
IHN1cHBvcnQgb3BlbmluZyBpbiBkb2NrZWQgbW9kZSBoZXJlLgotCiAgICAgTlNVSW50ZWdlciBz
dHlsZU1hc2sgPSAoTlNUaXRsZWRXaW5kb3dNYXNrIHwgTlNDbG9zYWJsZVdpbmRvd01hc2sgfCBO
U01pbmlhdHVyaXphYmxlV2luZG93TWFzayB8IE5TUmVzaXphYmxlV2luZG93TWFzayB8IE5TVGV4
dHVyZWRCYWNrZ3JvdW5kV2luZG93TWFzayk7CiAgICAgTlNXaW5kb3cgKndpbmRvdyA9IFtbTlNX
aW5kb3cgYWxsb2NdIGluaXRXaXRoQ29udGVudFJlY3Q6TlNNYWtlUmVjdCgwLCAwLCBpbml0aWFs
V2luZG93V2lkdGgsIGluaXRpYWxXaW5kb3dIZWlnaHQpIHN0eWxlTWFzazpzdHlsZU1hc2sgYmFj
a2luZzpOU0JhY2tpbmdTdG9yZUJ1ZmZlcmVkIGRlZmVyOk5PXTsKICAgICBbd2luZG93IHNldEF1
dG9yZWNhbGN1bGF0ZXNDb250ZW50Qm9yZGVyVGhpY2tuZXNzOk5PIGZvckVkZ2U6TlNNYXhZRWRn
ZV07CkBAIC0xMzcsNyArMTM1LDggQEAgdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1P
cGVuKCkKICAgICBbbV9pbnNwZWN0b3JWaWV3LmdldCgpIHNldEF1dG9yZXNpemluZ01hc2s6KE5T
Vmlld1dpZHRoU2l6YWJsZSB8IE5TVmlld0hlaWdodFNpemFibGUpXTsKICAgICBbY29udGVudFZp
ZXcgYWRkU3VidmlldzptX2luc3BlY3RvclZpZXcuZ2V0KCldOwogCi0gICAgW3dpbmRvdyBtYWtl
S2V5QW5kT3JkZXJGcm9udDpuaWxdOworICAgIGlmICghd2lsbE9wZW5BdHRhY2hlZCkKKyAgICAg
ICAgW3dpbmRvdyBtYWtlS2V5QW5kT3JkZXJGcm9udDpuaWxdOwogCiAgICAgbV9pbnNwZWN0b3JX
aW5kb3cuYWRvcHROUyh3aW5kb3cpOwogfQpJbmRleDogU291cmNlL1dlYktpdDIvVUlQcm9jZXNz
L3F0L1dlYkluc3BlY3RvclByb3h5UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQy
L1VJUHJvY2Vzcy9xdC9XZWJJbnNwZWN0b3JQcm94eVF0LmNwcAkocmV2aXNpb24gOTIzODIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9VSVByb2Nlc3MvcXQvV2ViSW5zcGVjdG9yUHJveHlRdC5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTM5LDcgKzM5LDcgQEAgV2ViUGFnZVByb3h5KiBXZWJJbnNwZWN0b3JQ
cm94eTo6cGxhdGZvcgogICAgIHJldHVybiAwOwogfQogCi12b2lkIFdlYkluc3BlY3RvclByb3h5
OjpwbGF0Zm9ybU9wZW4oKQordm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKGJv
b2wpCiB7CiAgICAgbm90SW1wbGVtZW50ZWQoKTsKIH0KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1VJ
UHJvY2Vzcy93aW4vV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCj09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJj
ZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViSW5zcGVjdG9yUHJveHlXaW4uY3BwCShyZXZpc2lv
biA5MjM4MikKKysrIFNvdXJjZS9XZWJLaXQyL1VJUHJvY2Vzcy93aW4vV2ViSW5zcGVjdG9yUHJv
eHlXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xOTgsNyArMTk4LDcgQEAgV2ViUGFnZVByb3h5
KiBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcgogICAgIHJldHVybiBtX2luc3BlY3RvclZpZXct
PnBhZ2UoKTsKIH0KIAotdm9pZCBXZWJJbnNwZWN0b3JQcm94eTo6cGxhdGZvcm1PcGVuKCkKK3Zv
aWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3Blbihib29sIHdpbGxPcGVuQXR0YWNoZWQp
CiB7CiAgICAgcmVnaXN0ZXJJbnNwZWN0b3JWaWV3V2luZG93Q2xhc3MoKTsKIApAQCAtMjA3LDcg
KzIwNyw5IEBAIHZvaWQgV2ViSW5zcGVjdG9yUHJveHk6OnBsYXRmb3JtT3BlbigpCiAgICAgQVNT
RVJUKDo6SXNXaW5kb3cobV9pbnNwZWN0b3JXaW5kb3cpKTsKIAogICAgIG1faW5zcGVjdG9yVmll
dy0+c2V0UGFyZW50V2luZG93KG1faW5zcGVjdG9yV2luZG93KTsKLSAgICA6OlNob3dXaW5kb3co
bV9pbnNwZWN0b3JXaW5kb3csIFNXX1NIT1cpOworCisgICAgaWYgKCF3aWxsT3BlbkF0dGFjaGVk
KQorICAgICAgICA6OlNob3dXaW5kb3cobV9pbnNwZWN0b3JXaW5kb3csIFNXX1NIT1cpOwogfQog
CiB2b2lkIFdlYkluc3BlY3RvclByb3h5OjpwbGF0Zm9ybURpZENsb3NlKCkKSW5kZXg6IFNvdXJj
ZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuY3BwCShy
ZXZpc2lvbiA5MjM4MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJ
bnNwZWN0b3IuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC03OCw3ICs3OCw3IEBAIFdlYlBhZ2UqIFdl
Ykluc3BlY3Rvcjo6Y3JlYXRlSW5zcGVjdG9yUGEKIC8vIENhbGxlZCBmcm9tIFdlYkluc3BlY3Rv
ckZyb250ZW5kQ2xpZW50CiB2b2lkIFdlYkluc3BlY3Rvcjo6ZGlkTG9hZEluc3BlY3RvclBhZ2Uo
KQogewotICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNzYWdl
czo6V2ViSW5zcGVjdG9yUHJveHk6OkRpZExvYWRJbnNwZWN0b3JQYWdlKCksIG1fcGFnZS0+cGFn
ZUlEKCkpOworICAgIFdlYlByb2Nlc3M6OnNoYXJlZCgpLmNvbm5lY3Rpb24oKS0+c2VuZChNZXNz
YWdlczo6V2ViSW5zcGVjdG9yUHJveHk6OkRpZExvYWRJbnNwZWN0b3JQYWdlKGNhbkF0dGFjaFdp
bmRvdygpKSwgbV9wYWdlLT5wYWdlSUQoKSk7CiB9CiAKIHZvaWQgV2ViSW5zcGVjdG9yOjpkaWRD
bG9zZSgpCkBAIC0xODEsNiArMTgxLDE2IEBAIHZvaWQgV2ViSW5zcGVjdG9yOjpzdG9wUGFnZVBy
b2ZpbGluZygpCiAgICAgLy8gRklYTUU6IHNob3cgdGhlIFRpbWVsaW5lIHBhbmVsLgogfQogCit2
b2lkIFdlYkluc3BlY3Rvcjo6cmVxdWVzdEF0dGFjaFdpbmRvdygpCit7CisgICAgbV9pbnNwZWN0
b3JQYWdlLT5jb3JlUGFnZSgpLT5pbnNwZWN0b3JDb250cm9sbGVyKCktPnJlcXVlc3RBdHRhY2hX
aW5kb3coKTsKK30KKworYm9vbCBXZWJJbnNwZWN0b3I6OmNhbkF0dGFjaFdpbmRvdygpIGNvbnN0
Cit7CisgICAgcmV0dXJuIG1faW5zcGVjdG9yUGFnZS0+Y29yZVBhZ2UoKS0+aW5zcGVjdG9yQ29u
dHJvbGxlcigpLT5jYW5BdHRhY2hXaW5kb3coKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgV2ViS2l0
CiAKICNlbmRpZiAvLyBFTkFCTEUoSU5TUEVDVE9SKQpJbmRleDogU291cmNlL1dlYktpdDIvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5oCj09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJL
aXQyL1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJJbnNwZWN0b3IuaAkocmV2aXNpb24gOTIzODIpCisr
KyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLmgJKHdvcmtp
bmcgY29weSkKQEAgLTU5LDYgKzU5LDkgQEAgcHVibGljOgogICAgIHZvaWQgc2V0SmF2YVNjcmlw
dFByb2ZpbGluZ0VuYWJsZWQoYm9vbCk7CiAgICAgdm9pZCBzdGFydFBhZ2VQcm9maWxpbmcoKTsK
ICAgICB2b2lkIHN0b3BQYWdlUHJvZmlsaW5nKCk7CisgICAgCisgICAgYm9vbCBjYW5BdHRhY2hX
aW5kb3coKSBjb25zdDsKKyAgICB2b2lkIHJlcXVlc3RBdHRhY2hXaW5kb3coKTsKIAogcHJpdmF0
ZToKICAgICBmcmllbmQgY2xhc3MgV2ViSW5zcGVjdG9yQ2xpZW50OwpJbmRleDogU291cmNlL1dl
YktpdDIvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYkluc3BlY3Rvci5tZXNzYWdlcy5pbgo9PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViSW5zcGVjdG9yLm1l
c3NhZ2VzLmluCShyZXZpc2lvbiA5MjM4MikKKysrIFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViUGFnZS9XZWJJbnNwZWN0b3IubWVzc2FnZXMuaW4JKHdvcmtpbmcgY29weSkKQEAgLTMyLDYg
KzMyLDggQEAgbWVzc2FnZXMgLT4gV2ViSW5zcGVjdG9yIHsKICAgICBTdG9wSmF2YVNjcmlwdFBy
b2ZpbGluZygpCiAgICAgU3RhcnRQYWdlUHJvZmlsaW5nKCkKICAgICBTdG9wUGFnZVByb2ZpbGlu
ZygpCisKKyAgICBSZXF1ZXN0QXR0YWNoV2luZG93KCkKIH0KIAogI2VuZGlmCkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L2Nocm9taXVtL0NoYW5nZUxvZwkocmV2aXNpb24gOTIzODIpCisrKyBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDExLTA4
LTA0ICBCcmlhbiBXZWluc3RlaW4gIDxid2VpbnN0ZWluQGFwcGxlLmNvbT4KKworICAgICAgICBX
ZWJLaXQyOiBXZWIgSW5zcGVjdG9yIGFsd2F5cyBzdGFydHMgaW4gdW5kb2NrZWQgbW9kZQorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NjU0OTMKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzkzNTMxMTQ+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisgICAgICAgIAorICAgICAgICBBZGQgYSBzdHViIG1ldGhvZCBmb3IgQ2hyb21p
dW0uCisKKyAgICAgICAgKiBzcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmNwcDoKKyAg
ICAgICAgKFdlYktpdDo6SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsOjpjYW5BdHRhY2hXaW5k
b3cpOgorICAgICAgICAqIHNyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGwuaDoKKwogMjAx
MS0wOC0wMyAgS2VudGFybyBIYXJhICA8aGFyYWtlbkBnb29nbGUuY29tPgogCiAgICAgICAgIElt
cGxlbWVudCBFdmVudFNlbmRlci5zY2FsZVBhZ2VCeSgpCkluZGV4OiBTb3VyY2UvV2ViS2l0L2No
cm9taXVtL3NyYy9JbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGwuY3BwCj09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0t
IFNvdXJjZS9XZWJLaXQvY2hyb21pdW0vc3JjL0luc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbC5j
cHAJKHJldmlzaW9uIDkyMzgyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVj
dG9yRnJvbnRlbmRDbGllbnRJbXBsLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTI0LDYgKzEyNCwx
MiBAQCB2b2lkIEluc3BlY3RvckZyb250ZW5kQ2xpZW50SW1wbDo6Y2hhbmdlCiB7CiAgICAgLy8g
RG8gbm90aGluZzsKIH0KKworYm9vbCBJbnNwZWN0b3JGcm9udGVuZENsaWVudEltcGw6OmNhbkF0
dGFjaFdpbmRvdygpCit7CisgICAgLy8gRklYTUU6IEltcGxlbWVudCB0aGlzIGlmIGl0IGlzIGV2
ZXIgY2FsbGVkIGJ5IENocm9taXVtLgorICAgIHJldHVybiBmYWxzZTsKK30KICAgICAKIHZvaWQg
SW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsOjpzYXZlQXMoY29uc3QgU3RyaW5nJiBmaWxlTmFt
ZSwgY29uc3QgU3RyaW5nJiBjb250ZW50KQogewpJbmRleDogU291cmNlL1dlYktpdC9jaHJvbWl1
bS9zcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmgKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNl
L1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yRnJvbnRlbmRDbGllbnRJbXBsLmgJKHJldmlz
aW9uIDkyMzgyKQorKysgU291cmNlL1dlYktpdC9jaHJvbWl1bS9zcmMvSW5zcGVjdG9yRnJvbnRl
bmRDbGllbnRJbXBsLmgJKHdvcmtpbmcgY29weSkKQEAgLTY2LDYgKzY2LDcgQEAgcHVibGljOgog
ICAgIHZpcnR1YWwgdm9pZCByZXF1ZXN0QXR0YWNoV2luZG93KCk7CiAgICAgdmlydHVhbCB2b2lk
IHJlcXVlc3REZXRhY2hXaW5kb3coKTsKICAgICB2aXJ0dWFsIHZvaWQgY2hhbmdlQXR0YWNoZWRX
aW5kb3dIZWlnaHQodW5zaWduZWQpOworICAgIHZpcnR1YWwgYm9vbCBjYW5BdHRhY2hXaW5kb3co
KTsKICAgICB2aXJ0dWFsIHZvaWQgc2F2ZUFzKGNvbnN0IFdURjo6U3RyaW5nJiBmaWxlTmFtZSwg
Y29uc3QgV1RGOjpTdHJpbmcmIGNvbnRlbnQpOwogCiAgICAgdmlydHVhbCB2b2lkIGluc3BlY3Rl
ZFVSTENoYW5nZWQoY29uc3QgV1RGOjpTdHJpbmcmKTsK
</data>
<flag name="review"
          id="98353"
          type_id="1"
          status="+"
          setter="aroben"
    />
          </attachment>
      

    </bug>

</bugzilla>