<?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>50267</bug_id>
          
          <creation_ts>2010-11-30 13:28:18 -0800</creation_ts>
          <short_desc>[Qt] Memory leaks for QWebPageClient</short_desc>
          <delta_ts>2010-12-11 19:46:19 -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>WebKit Qt</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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="Yi Shen">max.hong.shen</reporter>
          <assigned_to name="Yi Shen">max.hong.shen</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>kenneth</cc>
    
    <cc>kling</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>315272</commentid>
    <comment_count>0</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-11-30 13:28:18 -0800</bug_when>
    <thetext>Need to delete PageClientQWidget before creating a new one.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315278</commentid>
    <comment_count>1</comment_count>
      <attachid>75192</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-11-30 13:35:37 -0800</bug_when>
    <thetext>Created attachment 75192
first try</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315415</commentid>
    <comment_count>2</comment_count>
      <attachid>75229</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-11-30 16:57:23 -0800</bug_when>
    <thetext>Created attachment 75229
remove unnecessary stuff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>315560</commentid>
    <comment_count>3</comment_count>
      <attachid>75229</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-12-01 00:15:25 -0800</bug_when>
    <thetext>Comment on attachment 75229
remove unnecessary stuff

Could it be an OwnPtr instead?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316122</commentid>
    <comment_count>4</comment_count>
      <attachid>75229</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-02 07:05:00 -0800</bug_when>
    <thetext>Comment on attachment 75229
remove unnecessary stuff

Rejecting patch 75229 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 1
ERROR: Working directory has local commits, pass --force-clean to continue.

Full output: http://queues.webkit.org/results/6789010</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316125</commentid>
    <comment_count>5</comment_count>
      <attachid>75229</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-12-02 07:11:01 -0800</bug_when>
    <thetext>Comment on attachment 75229
remove unnecessary stuff

try it again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316127</commentid>
    <comment_count>6</comment_count>
      <attachid>75229</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-02 07:12:05 -0800</bug_when>
    <thetext>Comment on attachment 75229
remove unnecessary stuff

Rejecting patch 75229 from commit-queue.

yi.4.shen@nokia.com does not have committer permissions according to http://trac.webkit.org/browser/trunk/WebKitTools/Scripts/webkitpy/common/config/committers.py.

- If you do not have committer rights please read http://webkit.org/coding/contributing.html for instructions on how to use bugzilla flags.

- If you have committer rights please correct the error in WebKitTools/Scripts/webkitpy/common/config/committers.py by adding yourself to the file (no review needed).  The commit-queue restarts itself every 2 hours.  After restart the commit-queue will correctly respect your committer rights.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316128</commentid>
    <comment_count>7</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-12-02 07:14:02 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 75229 [details])
&gt; Could it be an OwnPtr instead?

hmm, I will look at it later today. Thanks for the suggestion :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>316155</commentid>
    <comment_count>8</comment_count>
      <attachid>75229</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-02 08:05:46 -0800</bug_when>
    <thetext>Comment on attachment 75229
remove unnecessary stuff

Rejecting patch 75229 from commit-queue.

Failed to run &quot;[&apos;./WebKitTools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;--bot-id=abarth-cq-sl&apos;, &apos;build&apos;, &apos;--no-clean&apos;, &apos;--no-update&apos;, &apos;--build-style=both&apos;]&quot; exit_code: 1
ERROR: Working directory has local commits, pass --force-clean to continue.

Full output: http://queues.webkit.org/results/6793007</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317173</commentid>
    <comment_count>9</comment_count>
      <attachid>75579</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-12-03 16:42:44 -0800</bug_when>
    <thetext>Created attachment 75579
try again

Don&apos;t know why it was rejected by the commit bot, yael said it is a bug of commit bot, so just try it again. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317177</commentid>
    <comment_count>10</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-12-03 16:48:33 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; (From update of attachment 75229 [details])
&gt; Could it be an OwnPtr instead?
Tried OwnPtr but seems many places need to be changed...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317179</commentid>
    <comment_count>11</comment_count>
      <attachid>75579</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-03 16:51:45 -0800</bug_when>
    <thetext>Comment on attachment 75579
try again

Eek.  Manual delete for the loss!  Don&apos;t we have smart pointers we can use here?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317288</commentid>
    <comment_count>12</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-12-04 10:23:18 -0800</bug_when>
    <thetext>(In reply to comment #11)
&gt; (From update of attachment 75579 [details])
&gt; Eek.  Manual delete for the loss!  Don&apos;t we have smart pointers we can use here?
Qt Smart pointer like QPointer, doesn&apos;t work for QWebPageClient, since it is not derived from QObject.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317487</commentid>
    <comment_count>13</comment_count>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-12-06 01:26:30 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #11)
&gt; &gt; (From update of attachment 75579 [details] [details])
&gt; &gt; Eek.  Manual delete for the loss!  Don&apos;t we have smart pointers we can use here?
&gt; Qt Smart pointer like QPointer, doesn&apos;t work for QWebPageClient, since it is not derived from QObject.

You should just make the changes for it to be a OwnPtr or similar. It is not part of our public api, so you can easily do that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>317580</commentid>
    <comment_count>14</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-12-06 06:09:14 -0800</bug_when>
    <thetext>(In reply to comment #13)
&gt; (In reply to comment #12)
&gt; &gt; (In reply to comment #11)
&gt; &gt; &gt; (From update of attachment 75579 [details] [details] [details])
&gt; &gt; &gt; Eek.  Manual delete for the loss!  Don&apos;t we have smart pointers we can use here?
&gt; &gt; Qt Smart pointer like QPointer, doesn&apos;t work for QWebPageClient, since it is not derived from QObject.
&gt; 
&gt; You should just make the changes for it to be a OwnPtr or similar. It is not part of our public api, so you can easily do that.

OK, I will do it :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318232</commentid>
    <comment_count>15</comment_count>
      <attachid>75821</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-12-07 09:12:33 -0800</bug_when>
    <thetext>Created attachment 75821
use OwnPtr</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318235</commentid>
    <comment_count>16</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 09:14:47 -0800</bug_when>
    <thetext>Attachment 75821 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318288</commentid>
    <comment_count>17</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 10:15:33 -0800</bug_when>
    <thetext>Attachment 75821 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318336</commentid>
    <comment_count>18</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 11:16:41 -0800</bug_when>
    <thetext>Attachment 75821 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318365</commentid>
    <comment_count>19</comment_count>
      <attachid>75833</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-12-07 11:52:27 -0800</bug_when>
    <thetext>Created attachment 75833
try again

Does buildbot hate my patch? :( I run the check-webkit-style on my machine and there is no error at all.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318386</commentid>
    <comment_count>20</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 12:18:05 -0800</bug_when>
    <thetext>Attachment 75821 did not pass style-queue:

Failed to run &quot;[u&apos;git&apos;, u&apos;reset&apos;, u&apos;--hard&apos;, u&apos;refs/remotes/trunk&apos;]&quot; exit_code: 128
error: Could not write new index file.
fatal: Could not reset index file to revision &apos;refs/remotes/trunk&apos;.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318396</commentid>
    <comment_count>21</comment_count>
      <attachid>75835</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-12-07 12:32:57 -0800</bug_when>
    <thetext>Created attachment 75835
remove unnecessary stuff</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318608</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 21:40:45 -0800</bug_when>
    <thetext>Attachment 75821 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/update-webkit&apos;]&quot; exit_code: 2
Updating OpenSource
Incomplete data: Delta source ended unexpectedly at /usr/lib/git-core/git-svn line 5061

Died at WebKitTools/Scripts/update-webkit line 132.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318617</commentid>
    <comment_count>23</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 21:45:12 -0800</bug_when>
    <thetext>Attachment 75833 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/update-webkit&apos;]&quot; exit_code: 2
Updating OpenSource
Incomplete data: Delta source ended unexpectedly at /usr/lib/git-core/git-svn line 5061

Died at WebKitTools/Scripts/update-webkit line 132.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>318619</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-12-07 21:46:06 -0800</bug_when>
    <thetext>Attachment 75835 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/update-webkit&apos;]&quot; exit_code: 2
Updating OpenSource
Incomplete data: Delta source ended unexpectedly at /usr/lib/git-core/git-svn line 5061

Died at WebKitTools/Scripts/update-webkit line 132.


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>319959</commentid>
    <comment_count>25</comment_count>
      <attachid>75835</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-12-09 23:42:42 -0800</bug_when>
    <thetext>Comment on attachment 75835
remove unnecessary stuff

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

&gt; WebKit/qt/Api/qgraphicswebview.cpp:83
&gt; +        return static_cast&lt;PageClientQGraphicsWidget*&gt;(page-&gt;d-&gt;client.get())-&gt;overlay;

Seems there should be a d-&gt;pageClient() accessor which does this cast for you, no?

&gt; WebKit/qt/Api/qwebview.cpp:-355
&gt; -    if (page-&gt;d-&gt;client &amp;&amp; page-&gt;d-&gt;client-&gt;isQWidgetClient())

So the isQWidgetClient path was always taken?

&gt; WebKit/qt/WebCoreSupport/FrameLoaderClientQt.cpp:-1538
&gt; -            QWebPageClient* client = m_webFrame-&gt;page()-&gt;d-&gt;client;

The local was helpful to readabilty here.  A .get() would have worked fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320337</commentid>
    <comment_count>26</comment_count>
      <attachid>76240</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-12-10 12:44:01 -0800</bug_when>
    <thetext>Created attachment 76240
updated with eric&apos;s suggestion</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320677</commentid>
    <comment_count>27</comment_count>
      <attachid>76240</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-12-11 07:25:08 -0800</bug_when>
    <thetext>Comment on attachment 76240
updated with eric&apos;s suggestion

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

&gt; WebKit/qt/Api/qwebpage.cpp:379
&gt; +WebCore::PageClientQWidget* QWebPagePrivate::pageClientQWidget()

this is normally not how we do the cast wrappers. 

Somethink like

static PageClientQWidget* toPageClientQWidget(QWebPageClient* client)

you also want thwse to be inline

it just seems more appropriate adding a method like this to QWebViewPrivate. like

PageClientQWidget* QWebViewPrivate::pageClient()</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320707</commentid>
    <comment_count>28</comment_count>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-12-11 11:41:14 -0800</bug_when>
    <thetext>(In reply to comment #27)
&gt; (From update of attachment 76240 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=76240&amp;action=review
&gt; 
&gt; &gt; WebKit/qt/Api/qwebpage.cpp:379
&gt; &gt; +WebCore::PageClientQWidget* QWebPagePrivate::pageClientQWidget()
&gt; 
&gt; this is normally not how we do the cast wrappers. 
&gt; 
&gt; Somethink like
&gt; 
&gt; static PageClientQWidget* toPageClientQWidget(QWebPageClient* client)
&gt; 
&gt; you also want thwse to be inline
&gt; 
&gt; it just seems more appropriate adding a method like this to QWebViewPrivate. like
&gt; 
&gt; PageClientQWidget* QWebViewPrivate::pageClient()

Thanks Kenneth, I see what you mean. I will update patch today :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320718</commentid>
    <comment_count>29</comment_count>
      <attachid>76310</attachid>
    <who name="Yi Shen">max.hong.shen</who>
    <bug_when>2010-12-11 16:12:40 -0800</bug_when>
    <thetext>Created attachment 76310
try again</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320721</commentid>
    <comment_count>30</comment_count>
      <attachid>76310</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2010-12-11 16:41:25 -0800</bug_when>
    <thetext>Comment on attachment 76310
try again

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

&gt; WebKit/qt/Api/qwebpage_p.h:164
&gt; +    OwnPtr&lt;QWebPageClient&gt; client;

we should rename QWebPageClient to just QtPageClient to not make it seem as a class defined in Qt while still showing that it is a qt port specific class</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320728</commentid>
    <comment_count>31</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-11 18:14:55 -0800</bug_when>
    <thetext>The commit-queue encountered the following flaky tests while processing attachment 76310:

fast/preloader/script.html bug 50879 (author: abarth@webkit.org)
fast/loader/recursive-before-unload-crash.html bug 50880 (authors: beidson@apple.com and eric@webkit.org)
The commit-queue is continuing to process your patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320749</commentid>
    <comment_count>32</comment_count>
      <attachid>76310</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-11 19:46:12 -0800</bug_when>
    <thetext>Comment on attachment 76310
try again

Clearing flags on attachment: 76310

Committed r73867: &lt;http://trac.webkit.org/changeset/73867&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>320750</commentid>
    <comment_count>33</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-12-11 19:46:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75192</attachid>
            <date>2010-11-30 13:35:37 -0800</date>
            <delta_ts>2010-11-30 16:57:23 -0800</delta_ts>
            <desc>first try</desc>
            <filename>50267.patch</filename>
            <type>text/plain</type>
            <size>1769</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNzI5NTgpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTggQEAKKzIwMTAtMTEtMzAgIFlpIFNoZW4gIDx5aS40LnNoZW5Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gTWVtb3J5IGxlYWtzIGZvciBRV2ViUGFnZUNsaWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyNjcKKworICAgICAgICBEZWFsbG9jYXRl
IFFXZWJQYWdlQ2xpZW50IGlmIG5lY2VzYXJ5CisKKyAgICAgICAgKiBBcGkvcWdyYXBoaWNzd2Vi
dmlldy5jcHA6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3OjpzZXRQYWdlKToKKyAgICAgICAg
KiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjp+UVdlYlBhZ2VQ
cml2YXRlKToKKyAgICAgICAgKFFXZWJQYWdlOjpzZXRWaWV3KToKKwogMjAxMC0xMS0yOSAgVmFu
Z2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3
ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3
LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCShy
ZXZpc2lvbiA3Mjk1NCkKKysrIFdlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTQ1MCw2ICs0NTAsNyBAQCB2b2lkIFFHcmFwaGljc1dlYlZpZXc6OnNl
dFBhZ2UoUVdlYlBhZ2UqCiAgICAgaWYgKCFkLT5wYWdlKQogICAgICAgICByZXR1cm47CiAKKyAg
ICBkZWxldGUgZC0+cGFnZS0+ZC0+Y2xpZW50OwogICAgIGQtPnBhZ2UtPmQtPmNsaWVudCA9IG5l
dyBQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0KHRoaXMsIHBhZ2UpOyAvLyBzZXQgdGhlIHBhZ2Ug
Y2xpZW50CiAKICAgICBpZiAoZC0+b3ZlcmxheSgpKQpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2Vi
cGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHJldmlz
aW9uIDcyOTU0KQorKysgV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHdvcmtpbmcgY29weSkK
QEAgLTM1Miw2ICszNTIsNyBAQCBRV2ViUGFnZVByaXZhdGU6On5RV2ViUGFnZVByaXZhdGUoKQog
I2VuZGlmCiAgICAgZGVsZXRlIHNldHRpbmdzOwogICAgIGRlbGV0ZSBwYWdlOworICAgIGRlbGV0
ZSBjbGllbnQ7CiAgICAgCiAgICAgaWYgKGluc3BlY3RvcikKICAgICAgICAgaW5zcGVjdG9yLT5z
ZXRQYWdlKDApOwpAQCAtMjAxMiw4ICsyMDEzLDEwIEBAIHZvaWQgUVdlYlBhZ2U6OnNldFZpZXco
UVdpZGdldCogdmlldykKICAgICAgICAgcmV0dXJuOwogICAgIH0KIAotICAgIGlmICh2aWV3KQor
ICAgIGlmICh2aWV3KSB7CisgICAgICAgIGRlbGV0ZSBkLT5jbGllbnQ7CiAgICAgICAgIGQtPmNs
aWVudCA9IG5ldyBQYWdlQ2xpZW50UVdpZGdldCh2aWV3LCB0aGlzKTsKKyAgICB9CiB9CiAKIC8q
IQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75229</attachid>
            <date>2010-11-30 16:57:23 -0800</date>
            <delta_ts>2010-12-03 16:43:02 -0800</delta_ts>
            <desc>remove unnecessary stuff</desc>
            <filename>50267.patch</filename>
            <type>text/plain</type>
            <size>1520</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNzI5NzkpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTEtMzAgIFlpIFNoZW4gIDx5aS40LnNoZW5Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gTWVtb3J5IGxlYWtzIGZvciBRV2ViUGFnZUNsaWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyNjcKKworICAgICAgICBEZWFsbG9jYXRl
IFFXZWJQYWdlQ2xpZW50IGlmIG5lY2VzYXJ5CisKKyAgICAgICAgKiBBcGkvcWdyYXBoaWNzd2Vi
dmlldy5jcHA6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3OjpzZXRQYWdlKToKKyAgICAgICAg
KiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjp+UVdlYlBhZ2VQ
cml2YXRlKToKKwogMjAxMC0xMS0yOSAgVmFuZ2VsaXMgS29ra2V2aXMgIDx2YW5nZWxpc0BjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2ltb24gRnJhc2VyLgpJbmRleDogV2Vi
S2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQv
QXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCShyZXZpc2lvbiA3Mjk3MikKKysrIFdlYktpdC9xdC9B
cGkvcWdyYXBoaWNzd2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTQ1MCw2ICs0NTAsNyBA
QCB2b2lkIFFHcmFwaGljc1dlYlZpZXc6OnNldFBhZ2UoUVdlYlBhZ2UqCiAgICAgaWYgKCFkLT5w
YWdlKQogICAgICAgICByZXR1cm47CiAKKyAgICBkZWxldGUgZC0+cGFnZS0+ZC0+Y2xpZW50Owog
ICAgIGQtPnBhZ2UtPmQtPmNsaWVudCA9IG5ldyBQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0KHRo
aXMsIHBhZ2UpOyAvLyBzZXQgdGhlIHBhZ2UgY2xpZW50CiAKICAgICBpZiAoZC0+b3ZlcmxheSgp
KQpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0
L3F0L0FwaS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDcyOTcyKQorKysgV2ViS2l0L3F0L0FwaS9x
d2VicGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM1Miw2ICszNTIsNyBAQCBRV2ViUGFnZVBy
aXZhdGU6On5RV2ViUGFnZVByaXZhdGUoKQogI2VuZGlmCiAgICAgZGVsZXRlIHNldHRpbmdzOwog
ICAgIGRlbGV0ZSBwYWdlOworICAgIGRlbGV0ZSBjbGllbnQ7CiAgICAgCiAgICAgaWYgKGluc3Bl
Y3RvcikKICAgICAgICAgaW5zcGVjdG9yLT5zZXRQYWdlKDApOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75579</attachid>
            <date>2010-12-03 16:42:44 -0800</date>
            <delta_ts>2010-12-07 09:12:33 -0800</delta_ts>
            <desc>try again</desc>
            <filename>50267.patch</filename>
            <type>text/plain</type>
            <size>1500</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNzMzMTkpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTAtMTItMDMgIFlpIFNoZW4gIDx5aS40LnNoZW5Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gTWVtb3J5IGxlYWtzIGZvciBRV2ViUGFnZUNsaWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyNjcKKworICAgICAgICBEZWFsbG9jYXRl
IFFXZWJQYWdlQ2xpZW50IGlmIG5lY2VzYXJ5CisKKyAgICAgICAgKiBBcGkvcWdyYXBoaWNzd2Vi
dmlldy5jcHA6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3OjpzZXRQYWdlKToKKyAgICAgICAg
KiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjp+UVdlYlBhZ2VQ
cml2YXRlKToKKwogMjAxMC0xMi0wMSAgSmlhIFB1ICA8anB1QGFwcGxlLmNvbT4KIAogICAgICAg
ICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcWdyYXBoaWNz
d2Vidmlldy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3
LmNwcAkocmV2aXNpb24gNzMzMTkpCisrKyBXZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcu
Y3BwCSh3b3JraW5nIGNvcHkpCkBAIC00NTAsNiArNDUwLDcgQEAgdm9pZCBRR3JhcGhpY3NXZWJW
aWV3OjpzZXRQYWdlKFFXZWJQYWdlKgogICAgIGlmICghZC0+cGFnZSkKICAgICAgICAgcmV0dXJu
OwogCisgICAgZGVsZXRlIGQtPnBhZ2UtPmQtPmNsaWVudDsKICAgICBkLT5wYWdlLT5kLT5jbGll
bnQgPSBuZXcgUGFnZUNsaWVudFFHcmFwaGljc1dpZGdldCh0aGlzLCBwYWdlKTsgLy8gc2V0IHRo
ZSBwYWdlIGNsaWVudAogCiAgICAgaWYgKGQtPm92ZXJsYXkoKSkKSW5kZXg6IFdlYktpdC9xdC9B
cGkvcXdlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3Bw
CShyZXZpc2lvbiA3MzMxOSkKKysrIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC0zNTIsNiArMzUyLDcgQEAgUVdlYlBhZ2VQcml2YXRlOjp+UVdlYlBhZ2VQcml2
YXRlKCkKICNlbmRpZgogICAgIGRlbGV0ZSBzZXR0aW5nczsKICAgICBkZWxldGUgcGFnZTsKKyAg
ICBkZWxldGUgY2xpZW50OwogICAgIAogICAgIGlmIChpbnNwZWN0b3IpCiAgICAgICAgIGluc3Bl
Y3Rvci0+c2V0UGFnZSgwKTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75821</attachid>
            <date>2010-12-07 09:12:33 -0800</date>
            <delta_ts>2010-12-07 11:52:27 -0800</delta_ts>
            <desc>use OwnPtr</desc>
            <filename>50267.patch</filename>
            <type>text/plain</type>
            <size>7313</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNzM0NDcpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMTItMDcgIFlpIFNoZW4gIDx5aS40LnNoZW5Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gTWVtb3J5IGxlYWtzIGZvciBRV2ViUGFnZUNsaWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyNjcKKworICAgICAgICBVc2UgT3duUHRy
IHRvIHNvbHZlIHRoaXMgbWVtb3J5IGxlYWsgaXNzdWUuCisKKyAgICAgICAgKiBBcGkvcWdyYXBo
aWNzd2Vidmlldy5jcHA6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6b3Zlcmxh
eSk6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6c3luY0xheWVycyk6CisgICAg
ICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlUmVzaXplc1RvQ29udGVudHNGb3JQ
YWdlKToKKyAgICAgICAgKFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjpfcV9zY2FsZUNoYW5nZWQp
OgorICAgICAgICAoUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6OmRldGFjaEN1cnJlbnRQYWdlKToK
KyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2U6OnNldFZpZXcp
OgorICAgICAgICAqIEFwaS9xd2VicGFnZV9wLmg6CisgICAgICAgICogQXBpL3F3ZWJ2aWV3LmNw
cDoKKyAgICAgICAgKFFXZWJWaWV3UHJpdmF0ZTo6ZGV0YWNoQ3VycmVudFBhZ2UpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudFF0OjpwbGF0Zm9ybVBhZ2VDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dFF0OjpzZXRJbnB1dE1ldGhvZFN0YXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
UXQ6OmNyZWF0ZVBsdWdpbik6CisKIDIwMTAtMTItMDcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFRyeSB0byBmaXggYnVpbGQuCkluZGV4OiBXZWJLaXQvcXQvQXBp
L3FncmFwaGljc3dlYnZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcWdyYXBo
aWNzd2Vidmlldy5jcHAJKHJldmlzaW9uIDczNDQwKQorKysgV2ViS2l0L3F0L0FwaS9xZ3JhcGhp
Y3N3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPmQtPmNsaWVudCkKICAgICAgICAgICAg
IHJldHVybiAwOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGFnZUNsaWVudFFHcmFwaGlj
c1dpZGdldCo+KHBhZ2UtPmQtPmNsaWVudCktPm92ZXJsYXk7CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0Kj4ocGFnZS0+ZC0+Y2xpZW50LmdldCgp
KS0+b3ZlcmxheTsKICAgICB9CiB9OwogCkBAIC05Miw3ICs5Miw3IEBAIFFHcmFwaGljc1dlYlZp
ZXdQcml2YXRlOjp+UUdyYXBoaWNzV2ViVmkKIHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6
OnN5bmNMYXllcnMoKQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBz
dGF0aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0Kj4ocGFnZS0+ZC0+Y2xpZW50KS0+
c3luY0xheWVycygpOworICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRRR3JhcGhpY3NXaWRnZXQq
PihwYWdlLT5kLT5jbGllbnQuZ2V0KCkpLT5zeW5jTGF5ZXJzKCk7CiAjZW5kaWYKIH0KIApAQCAt
MTI4LDcgKzEyOCw3IEBAIHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6Ol9xX3BhZ2VEZXMK
IHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6OnVwZGF0ZVJlc2l6ZXNUb0NvbnRlbnRzRm9y
UGFnZSgpCiB7CiAgICAgQVNTRVJUKHBhZ2UpOwotICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRR
R3JhcGhpY3NXaWRnZXQqPihwYWdlLT5kLT5jbGllbnQpLT52aWV3UmVzaXplc1RvQ29udGVudHMg
PSByZXNpemVzVG9Db250ZW50czsKKyAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNz
V2lkZ2V0Kj4ocGFnZS0+ZC0+Y2xpZW50LmdldCgpKS0+dmlld1Jlc2l6ZXNUb0NvbnRlbnRzID0g
cmVzaXplc1RvQ29udGVudHM7CiAgICAgaWYgKHJlc2l6ZXNUb0NvbnRlbnRzKSB7CiAgICAgICAg
IC8vIHJlc2l6ZXMgdG8gY29udGVudHMgbW9kZSByZXF1aXJlcyBwcmVmZXJyZWQgY29udGVudHMg
c2l6ZSB0byBiZSBzZXQKICAgICAgICAgaWYgKCFwYWdlLT5wcmVmZXJyZWRDb250ZW50c1NpemUo
KS5pc1ZhbGlkKCkpCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3UHJp
dmF0ZTo6X3Ffc2NhbGVDaAogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlm
ICghcGFnZSkKICAgICAgICAgcmV0dXJuOwotICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRRR3Jh
cGhpY3NXaWRnZXQqPihwYWdlLT5kLT5jbGllbnQpLT51cGRhdGVUaWxlZEJhY2tpbmdTdG9yZVNj
YWxlKCk7CisgICAgc3RhdGljX2Nhc3Q8UGFnZUNsaWVudFFHcmFwaGljc1dpZGdldCo+KHBhZ2Ut
PmQtPmNsaWVudC5nZXQoKSktPnVwZGF0ZVRpbGVkQmFja2luZ1N0b3JlU2NhbGUoKTsKICNlbmRp
ZgogfQogCkBAIC00MTQsOSArNDE0LDYgQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6
ZGV0YWNoQ3VycgogICAgICAgICByZXR1cm47CiAKICAgICBwYWdlLT5kLT52aWV3LmNsZWFyKCk7
Ci0KLSAgICAvLyBUaGUgY2xpZW50IGhhcyBhbHdheXMgdG8gYmUgZGVsZXRlZC4KLSAgICBkZWxl
dGUgcGFnZS0+ZC0+Y2xpZW50OwogICAgIHBhZ2UtPmQtPmNsaWVudCA9IDA7CiAKICAgICAvLyBp
ZiB0aGUgcGFnZSB3YXMgY3JlYXRlZCBieSB1cywgd2Ugb3duIGl0IGFuZCBuZWVkIHRvCkluZGV4
OiBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBp
L3F3ZWJwYWdlLmNwcAkocmV2aXNpb24gNzM0NDApCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwOCw3ICsyMDA4LDcgQEAgdm9pZCBRV2ViUGFnZTo6
c2V0VmlldyhRV2lkZ2V0KiB2aWV3KQogCiAgICAgaWYgKGQtPmNsaWVudCkgewogICAgICAgICBp
ZiAoZC0+Y2xpZW50LT5pc1FXaWRnZXRDbGllbnQoKSkKLSAgICAgICAgICAgIHN0YXRpY19jYXN0
PFBhZ2VDbGllbnRRV2lkZ2V0Kj4oZC0+Y2xpZW50KS0+dmlldyA9IHZpZXc7CisgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50UVdpZGdldCo+KGQtPmNsaWVudC5nZXQoKSktPnZpZXcg
PSB2aWV3OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3
ZWJwYWdlX3AuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3AuaAkocmV2
aXNpb24gNzM0NDApCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3AuaAkod29ya2luZyBjb3B5
KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgogCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCkBAIC0xNjAsNyArMTYxLDcg
QEAgcHVibGljOgogCiAgICAgUVdlYlBhZ2UgKnE7CiAgICAgV2ViQ29yZTo6UGFnZSAqcGFnZTsK
LSAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50OworICAgIE93blB0cjxRV2ViUGFnZUNsaWVudD4g
Y2xpZW50OwogICAgIFFQb2ludGVyPFFXZWJGcmFtZT4gbWFpbkZyYW1lOwogCiAjaWZuZGVmIFFU
X05PX1VORE9TVEFDSwpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAJKHJldmlzaW9uIDczNDQwKQorKysgV2Vi
S2l0L3F0L0FwaS9xd2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0NywxNCArMzQ3LDYg
QEAgdm9pZCBRV2ViVmlld1ByaXZhdGU6OmRldGFjaEN1cnJlbnRQYWdlKAogICAgICAgICByZXR1
cm47CiAKICAgICBwYWdlLT5kLT52aWV3LmNsZWFyKCk7Ci0KLSAgICAvLyBpZiB0aGUgcGFnZSBj
bGllbnQgaXMgdGhlIHNwZWNpYWwgY2xpZW50IGNvbnN0cnVjdGVkIGZvcgotICAgIC8vIGRlbGVn
YXRpbmcgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdG8gYSBRV2lkZ2V0LCB3ZSBuZWVkCi0gICAgLy8g
dG8gZGVzdHJveSBpdC4KLQotICAgIGlmIChwYWdlLT5kLT5jbGllbnQgJiYgcGFnZS0+ZC0+Y2xp
ZW50LT5pc1FXaWRnZXRDbGllbnQoKSkKLSAgICAgICAgZGVsZXRlIHBhZ2UtPmQtPmNsaWVudDsK
LQogICAgIHBhZ2UtPmQtPmNsaWVudCA9IDA7CiAKICAgICAvLyBpZiB0aGUgcGFnZSB3YXMgY3Jl
YXRlZCBieSB1cywgd2Ugb3duIGl0IGFuZCBuZWVkIHRvCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAJKHJldmlzaW9uIDczNDQwKQorKysgV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzMsNiArNzMsNyBAQAogI2luY2x1ZGUgPHFldmVudGxvb3AuaD4KICNpbmNsdWRlIDxxdGV4dGRv
Y3VtZW50Lmg+CiAjaW5jbHVkZSA8cXRvb2x0aXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDUyLDcgKzQ1Myw3IEBAIEludFBvaW50IENo
cm9tZUNsaWVudFF0OjpzY3JlZW5Ub1dpbmRvdygKIAogUGxhdGZvcm1QYWdlQ2xpZW50IENocm9t
ZUNsaWVudFF0OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogewotICAgIHJldHVybiBtX3dl
YlBhZ2UtPmQtPmNsaWVudDsKKyAgICByZXR1cm4gbV93ZWJQYWdlLT5kLT5jbGllbnQuZ2V0KCk7
CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZy
YW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdApJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA3MzQ0MCkKKysrIFdlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUz
LDYgKzUzLDcgQEAKIAogI2luY2x1ZGUgPFFVbmRvU3RhY2s+CiAjaW5jbHVkZSA8c3RkaW8uaD4K
KyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKICNkZWZpbmUgbWV0aG9kRGVidWcoKSBxRGVidWco
IkVkaXRvckNsaWVudFF0OiAlcyIsIF9fRlVOQ1RJT05fXyk7CiAKQEAgLTU3NCw3ICs1NzUsNyBA
QCB2b2lkIEVkaXRvckNsaWVudFF0Ojp3aWxsU2V0SW5wdXRNZXRob2RTCiAKIHZvaWQgRWRpdG9y
Q2xpZW50UXQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBhY3RpdmUpCiB7Ci0gICAgUVdlYlBh
Z2VDbGllbnQqIHdlYlBhZ2VDbGllbnQgPSBtX3BhZ2UtPmQtPmNsaWVudDsKKyAgICBRV2ViUGFn
ZUNsaWVudCogd2ViUGFnZUNsaWVudCA9IG1fcGFnZS0+ZC0+Y2xpZW50LmdldCgpOwogICAgIGlm
ICh3ZWJQYWdlQ2xpZW50KSB7CiAgICAgICAgIFF0OjpJbnB1dE1ldGhvZEhpbnRzIGhpbnRzOwog
CkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuY3BwCShyZXZpc2lvbiA3MzQ0MCkKKysrIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsNyBAQAogI2lu
Y2x1ZGUgPFFOZXR3b3JrUmVwbHk+CiAjaW5jbHVkZSA8UVN0cmluZ0xpc3Q+CiAjaW5jbHVkZSAi
cXdlYmhpc3RvcnlfcC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogc3RhdGljIFFNYXA8
dW5zaWduZWQgbG9uZywgUVN0cmluZz4gZHVtcEFzc2lnbmVkVXJsczsKIApAQCAtMTUzNSw3ICsx
NTM2LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OgogICAgICAg
ICBWZWN0b3I8U3RyaW5nPiB2YWx1ZXMgPSBwYXJhbVZhbHVlczsKICNpZiAhT1MoU1lNQklBTikK
ICAgICAgICAgaWYgKG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIp
IHsKLSAgICAgICAgICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3dlYkZyYW1lLT5wYWdl
KCktPmQtPmNsaWVudDsKKyAgICAgICAgICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3dl
YkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC5nZXQoKTsKICAgICAgICAgICAgIGNvbnN0IGJvb2wg
aXNRV2ViVmlldyA9IGNsaWVudCAmJiBxb2JqZWN0X2Nhc3Q8UVdpZGdldCo+KGNsaWVudC0+cGx1
Z2luUGFyZW50KCkpOwogI2lmIGRlZmluZWQoTU9aX1BMQVRGT1JNX01BRU1PKSAmJiAoTU9aX1BM
QVRGT1JNX01BRU1PID49IDUpCiAgICAgICAgICAgICBzaXplX3Qgd21vZGVJbmRleCA9IHBhcmFt
cy5maW5kKCJ3bW9kZSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75833</attachid>
            <date>2010-12-07 11:52:27 -0800</date>
            <delta_ts>2010-12-07 12:33:21 -0800</delta_ts>
            <desc>try again</desc>
            <filename>50267.patch</filename>
            <type>text/plain</type>
            <size>7313</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNzM0NTIpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMTItMDcgIFlpIFNoZW4gIDx5aS40LnNoZW5Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gTWVtb3J5IGxlYWtzIGZvciBRV2ViUGFnZUNsaWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyNjcKKworICAgICAgICBVc2UgT3duUHRy
IHRvIHNvbHZlIHRoaXMgbWVtb3J5IGxlYWsgaXNzdWUuCisKKyAgICAgICAgKiBBcGkvcWdyYXBo
aWNzd2Vidmlldy5jcHA6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6b3Zlcmxh
eSk6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6c3luY0xheWVycyk6CisgICAg
ICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlUmVzaXplc1RvQ29udGVudHNGb3JQ
YWdlKToKKyAgICAgICAgKFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjpfcV9zY2FsZUNoYW5nZWQp
OgorICAgICAgICAoUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6OmRldGFjaEN1cnJlbnRQYWdlKToK
KyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2U6OnNldFZpZXcp
OgorICAgICAgICAqIEFwaS9xd2VicGFnZV9wLmg6CisgICAgICAgICogQXBpL3F3ZWJ2aWV3LmNw
cDoKKyAgICAgICAgKFFXZWJWaWV3UHJpdmF0ZTo6ZGV0YWNoQ3VycmVudFBhZ2UpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudFF0OjpwbGF0Zm9ybVBhZ2VDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dFF0OjpzZXRJbnB1dE1ldGhvZFN0YXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
UXQ6OmNyZWF0ZVBsdWdpbik6CisKIDIwMTAtMTItMDcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFRyeSB0byBmaXggYnVpbGQuCkluZGV4OiBXZWJLaXQvcXQvQXBp
L3FncmFwaGljc3dlYnZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcWdyYXBo
aWNzd2Vidmlldy5jcHAJKHJldmlzaW9uIDczNDUyKQorKysgV2ViS2l0L3F0L0FwaS9xZ3JhcGhp
Y3N3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPmQtPmNsaWVudCkKICAgICAgICAgICAg
IHJldHVybiAwOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGFnZUNsaWVudFFHcmFwaGlj
c1dpZGdldCo+KHBhZ2UtPmQtPmNsaWVudCktPm92ZXJsYXk7CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0Kj4ocGFnZS0+ZC0+Y2xpZW50LmdldCgp
KS0+b3ZlcmxheTsKICAgICB9CiB9OwogCkBAIC05Miw3ICs5Miw3IEBAIFFHcmFwaGljc1dlYlZp
ZXdQcml2YXRlOjp+UUdyYXBoaWNzV2ViVmkKIHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6
OnN5bmNMYXllcnMoKQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBz
dGF0aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0Kj4ocGFnZS0+ZC0+Y2xpZW50KS0+
c3luY0xheWVycygpOworICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRRR3JhcGhpY3NXaWRnZXQq
PihwYWdlLT5kLT5jbGllbnQuZ2V0KCkpLT5zeW5jTGF5ZXJzKCk7CiAjZW5kaWYKIH0KIApAQCAt
MTI4LDcgKzEyOCw3IEBAIHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6Ol9xX3BhZ2VEZXMK
IHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6OnVwZGF0ZVJlc2l6ZXNUb0NvbnRlbnRzRm9y
UGFnZSgpCiB7CiAgICAgQVNTRVJUKHBhZ2UpOwotICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRR
R3JhcGhpY3NXaWRnZXQqPihwYWdlLT5kLT5jbGllbnQpLT52aWV3UmVzaXplc1RvQ29udGVudHMg
PSByZXNpemVzVG9Db250ZW50czsKKyAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNz
V2lkZ2V0Kj4ocGFnZS0+ZC0+Y2xpZW50LmdldCgpKS0+dmlld1Jlc2l6ZXNUb0NvbnRlbnRzID0g
cmVzaXplc1RvQ29udGVudHM7CiAgICAgaWYgKHJlc2l6ZXNUb0NvbnRlbnRzKSB7CiAgICAgICAg
IC8vIHJlc2l6ZXMgdG8gY29udGVudHMgbW9kZSByZXF1aXJlcyBwcmVmZXJyZWQgY29udGVudHMg
c2l6ZSB0byBiZSBzZXQKICAgICAgICAgaWYgKCFwYWdlLT5wcmVmZXJyZWRDb250ZW50c1NpemUo
KS5pc1ZhbGlkKCkpCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3UHJp
dmF0ZTo6X3Ffc2NhbGVDaAogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlm
ICghcGFnZSkKICAgICAgICAgcmV0dXJuOwotICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRRR3Jh
cGhpY3NXaWRnZXQqPihwYWdlLT5kLT5jbGllbnQpLT51cGRhdGVUaWxlZEJhY2tpbmdTdG9yZVNj
YWxlKCk7CisgICAgc3RhdGljX2Nhc3Q8UGFnZUNsaWVudFFHcmFwaGljc1dpZGdldCo+KHBhZ2Ut
PmQtPmNsaWVudC5nZXQoKSktPnVwZGF0ZVRpbGVkQmFja2luZ1N0b3JlU2NhbGUoKTsKICNlbmRp
ZgogfQogCkBAIC00MTQsOSArNDE0LDYgQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6
ZGV0YWNoQ3VycgogICAgICAgICByZXR1cm47CiAKICAgICBwYWdlLT5kLT52aWV3LmNsZWFyKCk7
Ci0KLSAgICAvLyBUaGUgY2xpZW50IGhhcyBhbHdheXMgdG8gYmUgZGVsZXRlZC4KLSAgICBkZWxl
dGUgcGFnZS0+ZC0+Y2xpZW50OwogICAgIHBhZ2UtPmQtPmNsaWVudCA9IDA7CiAKICAgICAvLyBp
ZiB0aGUgcGFnZSB3YXMgY3JlYXRlZCBieSB1cywgd2Ugb3duIGl0IGFuZCBuZWVkIHRvCkluZGV4
OiBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBp
L3F3ZWJwYWdlLmNwcAkocmV2aXNpb24gNzM0NTIpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwOCw3ICsyMDA4LDcgQEAgdm9pZCBRV2ViUGFnZTo6
c2V0VmlldyhRV2lkZ2V0KiB2aWV3KQogCiAgICAgaWYgKGQtPmNsaWVudCkgewogICAgICAgICBp
ZiAoZC0+Y2xpZW50LT5pc1FXaWRnZXRDbGllbnQoKSkKLSAgICAgICAgICAgIHN0YXRpY19jYXN0
PFBhZ2VDbGllbnRRV2lkZ2V0Kj4oZC0+Y2xpZW50KS0+dmlldyA9IHZpZXc7CisgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50UVdpZGdldCo+KGQtPmNsaWVudC5nZXQoKSktPnZpZXcg
PSB2aWV3OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3
ZWJwYWdlX3AuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3AuaAkocmV2
aXNpb24gNzM0NTIpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3AuaAkod29ya2luZyBjb3B5
KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgogCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCkBAIC0xNjAsNyArMTYxLDcg
QEAgcHVibGljOgogCiAgICAgUVdlYlBhZ2UgKnE7CiAgICAgV2ViQ29yZTo6UGFnZSAqcGFnZTsK
LSAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50OworICAgIE93blB0cjxRV2ViUGFnZUNsaWVudD4g
Y2xpZW50OwogICAgIFFQb2ludGVyPFFXZWJGcmFtZT4gbWFpbkZyYW1lOwogCiAjaWZuZGVmIFFU
X05PX1VORE9TVEFDSwpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAJKHJldmlzaW9uIDczNDUyKQorKysgV2Vi
S2l0L3F0L0FwaS9xd2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0NywxNCArMzQ3LDYg
QEAgdm9pZCBRV2ViVmlld1ByaXZhdGU6OmRldGFjaEN1cnJlbnRQYWdlKAogICAgICAgICByZXR1
cm47CiAKICAgICBwYWdlLT5kLT52aWV3LmNsZWFyKCk7Ci0KLSAgICAvLyBpZiB0aGUgcGFnZSBj
bGllbnQgaXMgdGhlIHNwZWNpYWwgY2xpZW50IGNvbnN0cnVjdGVkIGZvcgotICAgIC8vIGRlbGVn
YXRpbmcgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdG8gYSBRV2lkZ2V0LCB3ZSBuZWVkCi0gICAgLy8g
dG8gZGVzdHJveSBpdC4KLQotICAgIGlmIChwYWdlLT5kLT5jbGllbnQgJiYgcGFnZS0+ZC0+Y2xp
ZW50LT5pc1FXaWRnZXRDbGllbnQoKSkKLSAgICAgICAgZGVsZXRlIHBhZ2UtPmQtPmNsaWVudDsK
LQogICAgIHBhZ2UtPmQtPmNsaWVudCA9IDA7CiAKICAgICAvLyBpZiB0aGUgcGFnZSB3YXMgY3Jl
YXRlZCBieSB1cywgd2Ugb3duIGl0IGFuZCBuZWVkIHRvCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAJKHJldmlzaW9uIDczNDUyKQorKysgV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzMsNiArNzMsNyBAQAogI2luY2x1ZGUgPHFldmVudGxvb3AuaD4KICNpbmNsdWRlIDxxdGV4dGRv
Y3VtZW50Lmg+CiAjaW5jbHVkZSA8cXRvb2x0aXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDUyLDcgKzQ1Myw3IEBAIEludFBvaW50IENo
cm9tZUNsaWVudFF0OjpzY3JlZW5Ub1dpbmRvdygKIAogUGxhdGZvcm1QYWdlQ2xpZW50IENocm9t
ZUNsaWVudFF0OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogewotICAgIHJldHVybiBtX3dl
YlBhZ2UtPmQtPmNsaWVudDsKKyAgICByZXR1cm4gbV93ZWJQYWdlLT5kLT5jbGllbnQuZ2V0KCk7
CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZy
YW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdApJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA3MzQ1MikKKysrIFdlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUz
LDYgKzUzLDcgQEAKIAogI2luY2x1ZGUgPFFVbmRvU3RhY2s+CiAjaW5jbHVkZSA8c3RkaW8uaD4K
KyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKICNkZWZpbmUgbWV0aG9kRGVidWcoKSBxRGVidWco
IkVkaXRvckNsaWVudFF0OiAlcyIsIF9fRlVOQ1RJT05fXyk7CiAKQEAgLTU3NCw3ICs1NzUsNyBA
QCB2b2lkIEVkaXRvckNsaWVudFF0Ojp3aWxsU2V0SW5wdXRNZXRob2RTCiAKIHZvaWQgRWRpdG9y
Q2xpZW50UXQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBhY3RpdmUpCiB7Ci0gICAgUVdlYlBh
Z2VDbGllbnQqIHdlYlBhZ2VDbGllbnQgPSBtX3BhZ2UtPmQtPmNsaWVudDsKKyAgICBRV2ViUGFn
ZUNsaWVudCogd2ViUGFnZUNsaWVudCA9IG1fcGFnZS0+ZC0+Y2xpZW50LmdldCgpOwogICAgIGlm
ICh3ZWJQYWdlQ2xpZW50KSB7CiAgICAgICAgIFF0OjpJbnB1dE1ldGhvZEhpbnRzIGhpbnRzOwog
CkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50
UXQuY3BwCShyZXZpc2lvbiA3MzQ1MikKKysrIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODUsNiArODUsNyBAQAogI2lu
Y2x1ZGUgPFFOZXR3b3JrUmVwbHk+CiAjaW5jbHVkZSA8UVN0cmluZ0xpc3Q+CiAjaW5jbHVkZSAi
cXdlYmhpc3RvcnlfcC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25QdHIuaD4KIAogc3RhdGljIFFNYXA8
dW5zaWduZWQgbG9uZywgUVN0cmluZz4gZHVtcEFzc2lnbmVkVXJsczsKIApAQCAtMTUzNSw3ICsx
NTM2LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OgogICAgICAg
ICBWZWN0b3I8U3RyaW5nPiB2YWx1ZXMgPSBwYXJhbVZhbHVlczsKICNpZiAhT1MoU1lNQklBTikK
ICAgICAgICAgaWYgKG1pbWVUeXBlID09ICJhcHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIp
IHsKLSAgICAgICAgICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3dlYkZyYW1lLT5wYWdl
KCktPmQtPmNsaWVudDsKKyAgICAgICAgICAgIFFXZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3dl
YkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC5nZXQoKTsKICAgICAgICAgICAgIGNvbnN0IGJvb2wg
aXNRV2ViVmlldyA9IGNsaWVudCAmJiBxb2JqZWN0X2Nhc3Q8UVdpZGdldCo+KGNsaWVudC0+cGx1
Z2luUGFyZW50KCkpOwogI2lmIGRlZmluZWQoTU9aX1BMQVRGT1JNX01BRU1PKSAmJiAoTU9aX1BM
QVRGT1JNX01BRU1PID49IDUpCiAgICAgICAgICAgICBzaXplX3Qgd21vZGVJbmRleCA9IHBhcmFt
cy5maW5kKCJ3bW9kZSIpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>75835</attachid>
            <date>2010-12-07 12:32:57 -0800</date>
            <delta_ts>2010-12-10 12:44:01 -0800</delta_ts>
            <desc>remove unnecessary stuff</desc>
            <filename>50267.patch</filename>
            <type>text/plain</type>
            <size>7902</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNzM0NTMpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzAgQEAKKzIwMTAtMTItMDcgIFlpIFNoZW4gIDx5aS40LnNoZW5Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gTWVtb3J5IGxlYWtzIGZvciBRV2ViUGFnZUNsaWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyNjcKKworICAgICAgICBVc2UgT3duUHRy
IHRvIHNvbHZlIHRoaXMgbWVtb3J5IGxlYWsgaXNzdWUuCisKKyAgICAgICAgKiBBcGkvcWdyYXBo
aWNzd2Vidmlldy5jcHA6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6b3Zlcmxh
eSk6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6c3luY0xheWVycyk6CisgICAg
ICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlUmVzaXplc1RvQ29udGVudHNGb3JQ
YWdlKToKKyAgICAgICAgKFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjpfcV9zY2FsZUNoYW5nZWQp
OgorICAgICAgICAoUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6OmRldGFjaEN1cnJlbnRQYWdlKToK
KyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2U6OnNldFZpZXcp
OgorICAgICAgICAqIEFwaS9xd2VicGFnZV9wLmg6CisgICAgICAgICogQXBpL3F3ZWJ2aWV3LmNw
cDoKKyAgICAgICAgKFFXZWJWaWV3UHJpdmF0ZTo6ZGV0YWNoQ3VycmVudFBhZ2UpOgorICAgICAg
ICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkNocm9tZUNsaWVudFF0OjpwbGF0Zm9ybVBhZ2VDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVu
dFF0OjpzZXRJbnB1dE1ldGhvZFN0YXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFt
ZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50
UXQ6OmNyZWF0ZVBsdWdpbik6CisKIDIwMTAtMTItMDcgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBw
bGUuY29tPgogCiAgICAgICAgIFRyeSB0byBmaXggYnVpbGQuCkluZGV4OiBXZWJLaXQvcXQvQXBp
L3FncmFwaGljc3dlYnZpZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcWdyYXBo
aWNzd2Vidmlldy5jcHAJKHJldmlzaW9uIDczNDUzKQorKysgV2ViS2l0L3F0L0FwaS9xZ3JhcGhp
Y3N3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtODAsNyArODAsNyBAQCBwdWJsaWM6CiAg
ICAgewogICAgICAgICBpZiAoIXBhZ2UgfHwgIXBhZ2UtPmQtPmNsaWVudCkKICAgICAgICAgICAg
IHJldHVybiAwOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8UGFnZUNsaWVudFFHcmFwaGlj
c1dpZGdldCo+KHBhZ2UtPmQtPmNsaWVudCktPm92ZXJsYXk7CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0Kj4ocGFnZS0+ZC0+Y2xpZW50LmdldCgp
KS0+b3ZlcmxheTsKICAgICB9CiB9OwogCkBAIC05Miw3ICs5Miw3IEBAIFFHcmFwaGljc1dlYlZp
ZXdQcml2YXRlOjp+UUdyYXBoaWNzV2ViVmkKIHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6
OnN5bmNMYXllcnMoKQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBz
dGF0aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0Kj4ocGFnZS0+ZC0+Y2xpZW50KS0+
c3luY0xheWVycygpOworICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRRR3JhcGhpY3NXaWRnZXQq
PihwYWdlLT5kLT5jbGllbnQuZ2V0KCkpLT5zeW5jTGF5ZXJzKCk7CiAjZW5kaWYKIH0KIApAQCAt
MTI4LDcgKzEyOCw3IEBAIHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6Ol9xX3BhZ2VEZXMK
IHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6OnVwZGF0ZVJlc2l6ZXNUb0NvbnRlbnRzRm9y
UGFnZSgpCiB7CiAgICAgQVNTRVJUKHBhZ2UpOwotICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRR
R3JhcGhpY3NXaWRnZXQqPihwYWdlLT5kLT5jbGllbnQpLT52aWV3UmVzaXplc1RvQ29udGVudHMg
PSByZXNpemVzVG9Db250ZW50czsKKyAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNz
V2lkZ2V0Kj4ocGFnZS0+ZC0+Y2xpZW50LmdldCgpKS0+dmlld1Jlc2l6ZXNUb0NvbnRlbnRzID0g
cmVzaXplc1RvQ29udGVudHM7CiAgICAgaWYgKHJlc2l6ZXNUb0NvbnRlbnRzKSB7CiAgICAgICAg
IC8vIHJlc2l6ZXMgdG8gY29udGVudHMgbW9kZSByZXF1aXJlcyBwcmVmZXJyZWQgY29udGVudHMg
c2l6ZSB0byBiZSBzZXQKICAgICAgICAgaWYgKCFwYWdlLT5wcmVmZXJyZWRDb250ZW50c1NpemUo
KS5pc1ZhbGlkKCkpCkBAIC0xNTYsNyArMTU2LDcgQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3UHJp
dmF0ZTo6X3Ffc2NhbGVDaAogI2lmIEVOQUJMRShUSUxFRF9CQUNLSU5HX1NUT1JFKQogICAgIGlm
ICghcGFnZSkKICAgICAgICAgcmV0dXJuOwotICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRRR3Jh
cGhpY3NXaWRnZXQqPihwYWdlLT5kLT5jbGllbnQpLT51cGRhdGVUaWxlZEJhY2tpbmdTdG9yZVNj
YWxlKCk7CisgICAgc3RhdGljX2Nhc3Q8UGFnZUNsaWVudFFHcmFwaGljc1dpZGdldCo+KHBhZ2Ut
PmQtPmNsaWVudC5nZXQoKSktPnVwZGF0ZVRpbGVkQmFja2luZ1N0b3JlU2NhbGUoKTsKICNlbmRp
ZgogfQogCkBAIC00MTQsOSArNDE0LDYgQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6
ZGV0YWNoQ3VycgogICAgICAgICByZXR1cm47CiAKICAgICBwYWdlLT5kLT52aWV3LmNsZWFyKCk7
Ci0KLSAgICAvLyBUaGUgY2xpZW50IGhhcyBhbHdheXMgdG8gYmUgZGVsZXRlZC4KLSAgICBkZWxl
dGUgcGFnZS0+ZC0+Y2xpZW50OwogICAgIHBhZ2UtPmQtPmNsaWVudCA9IDA7CiAKICAgICAvLyBp
ZiB0aGUgcGFnZSB3YXMgY3JlYXRlZCBieSB1cywgd2Ugb3duIGl0IGFuZCBuZWVkIHRvCkluZGV4
OiBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBp
L3F3ZWJwYWdlLmNwcAkocmV2aXNpb24gNzM0NTMpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdl
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjAwOCw3ICsyMDA4LDcgQEAgdm9pZCBRV2ViUGFnZTo6
c2V0VmlldyhRV2lkZ2V0KiB2aWV3KQogCiAgICAgaWYgKGQtPmNsaWVudCkgewogICAgICAgICBp
ZiAoZC0+Y2xpZW50LT5pc1FXaWRnZXRDbGllbnQoKSkKLSAgICAgICAgICAgIHN0YXRpY19jYXN0
PFBhZ2VDbGllbnRRV2lkZ2V0Kj4oZC0+Y2xpZW50KS0+dmlldyA9IHZpZXc7CisgICAgICAgICAg
ICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50UVdpZGdldCo+KGQtPmNsaWVudC5nZXQoKSktPnZpZXcg
PSB2aWV3OwogICAgICAgICByZXR1cm47CiAgICAgfQogCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3
ZWJwYWdlX3AuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3AuaAkocmV2
aXNpb24gNzM0NTMpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlX3AuaAkod29ya2luZyBjb3B5
KQpAQCAtMzUsNiArMzUsNyBAQAogI2luY2x1ZGUgIktVUkwuaCIKICNpbmNsdWRlICJQbGF0Zm9y
bVN0cmluZy5oIgogCisjaW5jbHVkZSA8d3RmL093blB0ci5oPgogI2luY2x1ZGUgPHd0Zi9SZWZQ
dHIuaD4KIAogI2luY2x1ZGUgIlZpZXdwb3J0QXJndW1lbnRzLmgiCkBAIC0xNjAsNyArMTYxLDcg
QEAgcHVibGljOgogCiAgICAgUVdlYlBhZ2UgKnE7CiAgICAgV2ViQ29yZTo6UGFnZSAqcGFnZTsK
LSAgICBRV2ViUGFnZUNsaWVudCogY2xpZW50OworICAgIE93blB0cjxRV2ViUGFnZUNsaWVudD4g
Y2xpZW50OwogICAgIFFQb2ludGVyPFFXZWJGcmFtZT4gbWFpbkZyYW1lOwogCiAjaWZuZGVmIFFU
X05PX1VORE9TVEFDSwpJbmRleDogV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L3F0L0FwaS9xd2Vidmlldy5jcHAJKHJldmlzaW9uIDczNDUzKQorKysgV2Vi
S2l0L3F0L0FwaS9xd2Vidmlldy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTM0NywxNCArMzQ3LDYg
QEAgdm9pZCBRV2ViVmlld1ByaXZhdGU6OmRldGFjaEN1cnJlbnRQYWdlKAogICAgICAgICByZXR1
cm47CiAKICAgICBwYWdlLT5kLT52aWV3LmNsZWFyKCk7Ci0KLSAgICAvLyBpZiB0aGUgcGFnZSBj
bGllbnQgaXMgdGhlIHNwZWNpYWwgY2xpZW50IGNvbnN0cnVjdGVkIGZvcgotICAgIC8vIGRlbGVn
YXRpbmcgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdG8gYSBRV2lkZ2V0LCB3ZSBuZWVkCi0gICAgLy8g
dG8gZGVzdHJveSBpdC4KLQotICAgIGlmIChwYWdlLT5kLT5jbGllbnQgJiYgcGFnZS0+ZC0+Y2xp
ZW50LT5pc1FXaWRnZXRDbGllbnQoKSkKLSAgICAgICAgZGVsZXRlIHBhZ2UtPmQtPmNsaWVudDsK
LQogICAgIHBhZ2UtPmQtPmNsaWVudCA9IDA7CiAKICAgICAvLyBpZiB0aGUgcGFnZSB3YXMgY3Jl
YXRlZCBieSB1cywgd2Ugb3duIGl0IGFuZCBuZWVkIHRvCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJD
b3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAJKHJldmlzaW9uIDczNDUzKQorKysgV2ViS2l0
L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAt
NzMsNiArNzMsNyBAQAogI2luY2x1ZGUgPHFldmVudGxvb3AuaD4KICNpbmNsdWRlIDxxdGV4dGRv
Y3VtZW50Lmg+CiAjaW5jbHVkZSA8cXRvb2x0aXAuaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+
CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDUyLDcgKzQ1Myw3IEBAIEludFBvaW50IENo
cm9tZUNsaWVudFF0OjpzY3JlZW5Ub1dpbmRvdygKIAogUGxhdGZvcm1QYWdlQ2xpZW50IENocm9t
ZUNsaWVudFF0OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25zdAogewotICAgIHJldHVybiBtX3dl
YlBhZ2UtPmQtPmNsaWVudDsKKyAgICByZXR1cm4gbV93ZWJQYWdlLT5kLT5jbGllbnQuZ2V0KCk7
CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmNvbnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZy
YW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdApJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVT
dXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29y
ZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA3MzQ1MykKKysrIFdlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUz
LDYgKzUzLDcgQEAKIAogI2luY2x1ZGUgPFFVbmRvU3RhY2s+CiAjaW5jbHVkZSA8c3RkaW8uaD4K
KyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKICNkZWZpbmUgbWV0aG9kRGVidWcoKSBxRGVidWco
IkVkaXRvckNsaWVudFF0OiAlcyIsIF9fRlVOQ1RJT05fXyk7CiAKQEAgLTU3NCw4ICs1NzUsNyBA
QCB2b2lkIEVkaXRvckNsaWVudFF0Ojp3aWxsU2V0SW5wdXRNZXRob2RTCiAKIHZvaWQgRWRpdG9y
Q2xpZW50UXQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBhY3RpdmUpCiB7Ci0gICAgUVdlYlBh
Z2VDbGllbnQqIHdlYlBhZ2VDbGllbnQgPSBtX3BhZ2UtPmQtPmNsaWVudDsKLSAgICBpZiAod2Vi
UGFnZUNsaWVudCkgeworICAgIGlmIChtX3BhZ2UtPmQtPmNsaWVudCkgewogICAgICAgICBRdDo6
SW5wdXRNZXRob2RIaW50cyBoaW50czsKIAogICAgICAgICBIVE1MSW5wdXRFbGVtZW50KiBpbnB1
dEVsZW1lbnQgPSAwOwpAQCAtNjA4LDggKzYwOCw4IEBAIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnNl
dElucHV0TWV0aG9kU3RhdGUKICAgICAgICAgaGludHMgfD0gUXQ6OkltaE5vQXV0b1VwcGVyY2Fz
ZTsKICAgICAgICAgaGludHMgfD0gUXQ6OkltaE5vUHJlZGljdGl2ZVRleHQ7CiAjZW5kaWYgLy8g
UV9XU19NQUVNT181IHx8IFFfV1NfTUFFTU9fNiB8fCBRX09TX1NZTUJJQU4KLSAgICAgICAgd2Vi
UGFnZUNsaWVudC0+c2V0SW5wdXRNZXRob2RIaW50cyhoaW50cyk7Ci0gICAgICAgIHdlYlBhZ2VD
bGllbnQtPnNldElucHV0TWV0aG9kRW5hYmxlZChhY3RpdmUpOworICAgICAgICBtX3BhZ2UtPmQt
PmNsaWVudC0+c2V0SW5wdXRNZXRob2RIaW50cyhoaW50cyk7CisgICAgICAgIG1fcGFnZS0+ZC0+
Y2xpZW50LT5zZXRJbnB1dE1ldGhvZEVuYWJsZWQoYWN0aXZlKTsKICAgICB9CiAgICAgZW1pdCBt
X3BhZ2UtPm1pY3JvRm9jdXNDaGFuZ2VkKCk7CiB9CkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1
cHBvcnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dl
YkNvcmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA3MzQ1MykKKysr
IFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtODUsNiArODUsNyBAQAogI2luY2x1ZGUgPFFOZXR3b3JrUmVwbHk+CiAjaW5j
bHVkZSA8UVN0cmluZ0xpc3Q+CiAjaW5jbHVkZSAicXdlYmhpc3RvcnlfcC5oIgorI2luY2x1ZGUg
PHd0Zi9Pd25QdHIuaD4KIAogc3RhdGljIFFNYXA8dW5zaWduZWQgbG9uZywgUVN0cmluZz4gZHVt
cEFzc2lnbmVkVXJsczsKIApAQCAtMTUzNSw4ICsxNTM2LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+
IEZyYW1lTG9hZGVyQ2xpZW50UXQ6OgogICAgICAgICBWZWN0b3I8U3RyaW5nPiB2YWx1ZXMgPSBw
YXJhbVZhbHVlczsKICNpZiAhT1MoU1lNQklBTikKICAgICAgICAgaWYgKG1pbWVUeXBlID09ICJh
cHBsaWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIpIHsKLSAgICAgICAgICAgIFFXZWJQYWdlQ2xp
ZW50KiBjbGllbnQgPSBtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudDsKLSAgICAgICAgICAg
IGNvbnN0IGJvb2wgaXNRV2ViVmlldyA9IGNsaWVudCAmJiBxb2JqZWN0X2Nhc3Q8UVdpZGdldCo+
KGNsaWVudC0+cGx1Z2luUGFyZW50KCkpOworICAgICAgICAgICAgY29uc3QgYm9vbCBpc1FXZWJW
aWV3ID0gbV93ZWJGcmFtZS0+cGFnZSgpLT5kLT5jbGllbnQgJiYgcW9iamVjdF9jYXN0PFFXaWRn
ZXQqPihtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC0+cGx1Z2luUGFyZW50KCkpOwogI2lm
IGRlZmluZWQoTU9aX1BMQVRGT1JNX01BRU1PKSAmJiAoTU9aX1BMQVRGT1JNX01BRU1PID49IDUp
CiAgICAgICAgICAgICBzaXplX3Qgd21vZGVJbmRleCA9IHBhcmFtcy5maW5kKCJ3bW9kZSIpOwog
ICAgICAgICAgICAgaWYgKHdtb2RlSW5kZXggPT0gLTEpIHsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76240</attachid>
            <date>2010-12-10 12:44:01 -0800</date>
            <delta_ts>2010-12-11 16:12:40 -0800</delta_ts>
            <desc>updated with eric&apos;s suggestion</desc>
            <filename>50267.patch</filename>
            <type>text/plain</type>
            <size>8195</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNzM3NzIpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMzIgQEAKKzIwMTAtMTItMTAgIFlpIFNoZW4gIDx5aS40LnNoZW5Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gTWVtb3J5IGxlYWtzIGZvciBRV2ViUGFnZUNsaWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyNjcKKworICAgICAgICBVc2UgT3duUHRy
IHRvIHNvbHZlIHRoaXMgbWVtb3J5IGxlYWsgaXNzdWUuCisKKyAgICAgICAgKiBBcGkvcWdyYXBo
aWNzd2Vidmlldy5jcHA6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6b3Zlcmxh
eSk6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6c3luY0xheWVycyk6CisgICAg
ICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6dXBkYXRlUmVzaXplc1RvQ29udGVudHNGb3JQ
YWdlKToKKyAgICAgICAgKFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjpfcV9zY2FsZUNoYW5nZWQp
OgorICAgICAgICAoUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6OmRldGFjaEN1cnJlbnRQYWdlKToK
KyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2VQcml2YXRlOjpw
YWdlQ2xpZW50UVdpZGdldCk6CisgICAgICAgIChRV2ViUGFnZVByaXZhdGU6OnBhZ2VDbGllbnRR
R3JhcGhpY3NXaWRnZXQpOgorICAgICAgICAoUVdlYlBhZ2U6OnNldFZpZXcpOgorICAgICAgICAq
IEFwaS9xd2VicGFnZV9wLmg6CisgICAgICAgICogQXBpL3F3ZWJ2aWV3LmNwcDoKKyAgICAgICAg
KFFXZWJWaWV3UHJpdmF0ZTo6ZGV0YWNoQ3VycmVudFBhZ2UpOgorICAgICAgICAqIFdlYkNvcmVT
dXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNocm9tZUNsaWVu
dFF0OjpwbGF0Zm9ybVBhZ2VDbGllbnQpOgorICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0VkaXRv
ckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRvckNsaWVudFF0OjpzZXRJbnB1
dE1ldGhvZFN0YXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVu
dFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVyQ2xpZW50UXQ6OmNyZWF0ZVBs
dWdpbik6CisKIDIwMTAtMTItMTAgIEpvY2VseW4gVHVyY290dGUgIDxqb2NlbHluLnR1cmNvdHRl
QG5va2lhLmNvbT4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRlIENocmlzdGlh
bnNlbi4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAKPT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PQotLS0gV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcAkocmV2aXNpb24gNzM3NDMp
CisrKyBXZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCSh3b3JraW5nIGNvcHkpCkBA
IC04MCw3ICs4MCw3IEBAIHB1YmxpYzoKICAgICB7CiAgICAgICAgIGlmICghcGFnZSB8fCAhcGFn
ZS0+ZC0+Y2xpZW50KQogICAgICAgICAgICAgcmV0dXJuIDA7Ci0gICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0Kj4ocGFnZS0+ZC0+Y2xpZW50KS0+b3Zl
cmxheTsKKyAgICAgICAgcmV0dXJuIHBhZ2UtPmQtPnBhZ2VDbGllbnRRR3JhcGhpY3NXaWRnZXQo
KS0+b3ZlcmxheTsKICAgICB9CiB9OwogCkBAIC05Miw3ICs5Miw3IEBAIFFHcmFwaGljc1dlYlZp
ZXdQcml2YXRlOjp+UUdyYXBoaWNzV2ViVmkKIHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6
OnN5bmNMYXllcnMoKQogewogI2lmIFVTRShBQ0NFTEVSQVRFRF9DT01QT1NJVElORykKLSAgICBz
dGF0aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0Kj4ocGFnZS0+ZC0+Y2xpZW50KS0+
c3luY0xheWVycygpOworICAgIHBhZ2UtPmQtPnBhZ2VDbGllbnRRR3JhcGhpY3NXaWRnZXQoKS0+
c3luY0xheWVycygpOwogI2VuZGlmCiB9CiAKQEAgLTEyOCw3ICsxMjgsNyBAQCB2b2lkIFFHcmFw
aGljc1dlYlZpZXdQcml2YXRlOjpfcV9wYWdlRGVzCiB2b2lkIFFHcmFwaGljc1dlYlZpZXdQcml2
YXRlOjp1cGRhdGVSZXNpemVzVG9Db250ZW50c0ZvclBhZ2UoKQogewogICAgIEFTU0VSVChwYWdl
KTsKLSAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0Kj4ocGFnZS0+ZC0+
Y2xpZW50KS0+dmlld1Jlc2l6ZXNUb0NvbnRlbnRzID0gcmVzaXplc1RvQ29udGVudHM7CisgICAg
cGFnZS0+ZC0+cGFnZUNsaWVudFFHcmFwaGljc1dpZGdldCgpLT52aWV3UmVzaXplc1RvQ29udGVu
dHMgPSByZXNpemVzVG9Db250ZW50czsKICAgICBpZiAocmVzaXplc1RvQ29udGVudHMpIHsKICAg
ICAgICAgLy8gcmVzaXplcyB0byBjb250ZW50cyBtb2RlIHJlcXVpcmVzIHByZWZlcnJlZCBjb250
ZW50cyBzaXplIHRvIGJlIHNldAogICAgICAgICBpZiAoIXBhZ2UtPnByZWZlcnJlZENvbnRlbnRz
U2l6ZSgpLmlzVmFsaWQoKSkKQEAgLTE1Niw3ICsxNTYsNyBAQCB2b2lkIFFHcmFwaGljc1dlYlZp
ZXdQcml2YXRlOjpfcV9zY2FsZUNoCiAjaWYgRU5BQkxFKFRJTEVEX0JBQ0tJTkdfU1RPUkUpCiAg
ICAgaWYgKCFwYWdlKQogICAgICAgICByZXR1cm47Ci0gICAgc3RhdGljX2Nhc3Q8UGFnZUNsaWVu
dFFHcmFwaGljc1dpZGdldCo+KHBhZ2UtPmQtPmNsaWVudCktPnVwZGF0ZVRpbGVkQmFja2luZ1N0
b3JlU2NhbGUoKTsKKyAgICBwYWdlLT5kLT5wYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0KCktPnVw
ZGF0ZVRpbGVkQmFja2luZ1N0b3JlU2NhbGUoKTsKICNlbmRpZgogfQogCkBAIC00MTQsOSArNDE0
LDYgQEAgdm9pZCBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6ZGV0YWNoQ3VycgogICAgICAgICBy
ZXR1cm47CiAKICAgICBwYWdlLT5kLT52aWV3LmNsZWFyKCk7Ci0KLSAgICAvLyBUaGUgY2xpZW50
IGhhcyBhbHdheXMgdG8gYmUgZGVsZXRlZC4KLSAgICBkZWxldGUgcGFnZS0+ZC0+Y2xpZW50Owog
ICAgIHBhZ2UtPmQtPmNsaWVudCA9IDA7CiAKICAgICAvLyBpZiB0aGUgcGFnZSB3YXMgY3JlYXRl
ZCBieSB1cywgd2Ugb3duIGl0IGFuZCBuZWVkIHRvCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJw
YWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAkocmV2aXNp
b24gNzM3NDMpCisrKyBXZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtMzc2LDYgKzM3NiwxNiBAQCBRV2ViUGFnZVByaXZhdGUqIFFXZWJQYWdlUHJpdmF0ZTo6cHJp
dihRCiAgICAgcmV0dXJuIHBhZ2UtPmQ7CiB9CiAKK1dlYkNvcmU6OlBhZ2VDbGllbnRRV2lkZ2V0
KiBRV2ViUGFnZVByaXZhdGU6OnBhZ2VDbGllbnRRV2lkZ2V0KCkKK3sKKyAgICByZXR1cm4gc3Rh
dGljX2Nhc3Q8V2ViQ29yZTo6UGFnZUNsaWVudFFXaWRnZXQqPiAoY2xpZW50LmdldCgpKTsKK30K
KworV2ViQ29yZTo6UGFnZUNsaWVudFFHcmFwaGljc1dpZGdldCogUVdlYlBhZ2VQcml2YXRlOjpw
YWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0KCkKK3sKKyAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6UGFnZUNsaWVudFFHcmFwaGljc1dpZGdldCo+IChjbGllbnQuZ2V0KCkpOworfQorCiBi
b29sIFFXZWJQYWdlUHJpdmF0ZTo6YWNjZXB0TmF2aWdhdGlvblJlcXVlc3QoUVdlYkZyYW1lICpm
cmFtZSwgY29uc3QgUU5ldHdvcmtSZXF1ZXN0ICZyZXF1ZXN0LCBRV2ViUGFnZTo6TmF2aWdhdGlv
blR5cGUgdHlwZSkKIHsKICAgICBpZiAoaW5zaWRlT3BlbkNhbGwKQEAgLTIwMDgsNyArMjAxOCw3
IEBAIHZvaWQgUVdlYlBhZ2U6OnNldFZpZXcoUVdpZGdldCogdmlldykKIAogICAgIGlmIChkLT5j
bGllbnQpIHsKICAgICAgICAgaWYgKGQtPmNsaWVudC0+aXNRV2lkZ2V0Q2xpZW50KCkpCi0gICAg
ICAgICAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50UVdpZGdldCo+KGQtPmNsaWVudCktPnZpZXcg
PSB2aWV3OworICAgICAgICAgICAgZC0+cGFnZUNsaWVudFFXaWRnZXQoKS0+dmlldyA9IHZpZXc7
CiAgICAgICAgIHJldHVybjsKICAgICB9CiAKSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYnBhZ2Vf
cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCShyZXZpc2lvbiA3
Mzc0MykKKysrIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0z
NSw2ICszNSw3IEBACiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5n
LmgiCiAKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgog
CiAjaW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKQEAgLTUzLDYgKzU0LDggQEAgbmFtZXNw
YWNlIFdlYkNvcmUgewogICAgIGNsYXNzIE5vZGVMaXN0OwogICAgIGNsYXNzIFBhZ2U7CiAgICAg
Y2xhc3MgRnJhbWU7CisgICAgY2xhc3MgUGFnZUNsaWVudFFXaWRnZXQ7CisgICAgY2xhc3MgUGFn
ZUNsaWVudFFHcmFwaGljc1dpZGdldDsKIH0KIAogUVRfQkVHSU5fTkFNRVNQQUNFCkBAIC0xNTgs
OSArMTYxLDEyIEBAIHB1YmxpYzoKICNlbmRpZgogICAgIHN0YXRpYyBjb25zdCBjaGFyKiBlZGl0
b3JDb21tYW5kRm9yV2ViQWN0aW9ucyhRV2ViUGFnZTo6V2ViQWN0aW9uIGFjdGlvbik7CiAKKyAg
ICBXZWJDb3JlOjpQYWdlQ2xpZW50UVdpZGdldCogcGFnZUNsaWVudFFXaWRnZXQoKTsKKyAgICBX
ZWJDb3JlOjpQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0KiBwYWdlQ2xpZW50UUdyYXBoaWNzV2lk
Z2V0KCk7CisKICAgICBRV2ViUGFnZSAqcTsKICAgICBXZWJDb3JlOjpQYWdlICpwYWdlOwotICAg
IFFXZWJQYWdlQ2xpZW50KiBjbGllbnQ7CisgICAgT3duUHRyPFFXZWJQYWdlQ2xpZW50PiBjbGll
bnQ7CiAgICAgUVBvaW50ZXI8UVdlYkZyYW1lPiBtYWluRnJhbWU7CiAKICNpZm5kZWYgUVRfTk9f
VU5ET1NUQUNLCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBXZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAkocmV2aXNpb24gNzM3NDMpCisrKyBXZWJLaXQv
cXQvQXBpL3F3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUzLDkgKzM1Myw5IEBAIHZv
aWQgUVdlYlZpZXdQcml2YXRlOjpkZXRhY2hDdXJyZW50UGFnZSgKICAgICAvLyB0byBkZXN0cm95
IGl0LgogCiAgICAgaWYgKHBhZ2UtPmQtPmNsaWVudCAmJiBwYWdlLT5kLT5jbGllbnQtPmlzUVdp
ZGdldENsaWVudCgpKQotICAgICAgICBkZWxldGUgcGFnZS0+ZC0+Y2xpZW50OworICAgICAgICBw
YWdlLT5kLT5jbGllbnQuY2xlYXIoKTsKIAotICAgIHBhZ2UtPmQtPmNsaWVudCA9IDA7CisgICAg
cGFnZS0+ZC0+Y2xpZW50LnJlbGVhc2UoKTsKIAogICAgIC8vIGlmIHRoZSBwYWdlIHdhcyBjcmVh
dGVkIGJ5IHVzLCB3ZSBvd24gaXQgYW5kIG5lZWQgdG8KICAgICAvLyBkZXN0cm95IGl0IGFzIHdl
bGwuCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAJ
KHJldmlzaW9uIDczNzQzKQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVu
dFF0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNzMsNiArNzMsNyBAQAogI2luY2x1ZGUgPHFldmVu
dGxvb3AuaD4KICNpbmNsdWRlIDxxdGV4dGRvY3VtZW50Lmg+CiAjaW5jbHVkZSA8cXRvb2x0aXAu
aD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAt
NDUyLDcgKzQ1Myw3IEBAIEludFBvaW50IENocm9tZUNsaWVudFF0OjpzY3JlZW5Ub1dpbmRvdygK
IAogUGxhdGZvcm1QYWdlQ2xpZW50IENocm9tZUNsaWVudFF0OjpwbGF0Zm9ybVBhZ2VDbGllbnQo
KSBjb25zdAogewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmQtPmNsaWVudDsKKyAgICByZXR1cm4g
bV93ZWJQYWdlLT5kLT5jbGllbnQuZ2V0KCk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmNv
bnRlbnRzU2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25z
dApJbmRleDogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCShy
ZXZpc2lvbiA3Mzc0MykKKysrIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRR
dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKIAogI2luY2x1ZGUgPFFVbmRv
U3RhY2s+CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKICNk
ZWZpbmUgbWV0aG9kRGVidWcoKSBxRGVidWcoIkVkaXRvckNsaWVudFF0OiAlcyIsIF9fRlVOQ1RJ
T05fXyk7CiAKQEAgLTU3NCw3ICs1NzUsNyBAQCB2b2lkIEVkaXRvckNsaWVudFF0Ojp3aWxsU2V0
SW5wdXRNZXRob2RTCiAKIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnNldElucHV0TWV0aG9kU3RhdGUo
Ym9vbCBhY3RpdmUpCiB7Ci0gICAgUVdlYlBhZ2VDbGllbnQqIHdlYlBhZ2VDbGllbnQgPSBtX3Bh
Z2UtPmQtPmNsaWVudDsKKyAgICBRV2ViUGFnZUNsaWVudCogd2ViUGFnZUNsaWVudCA9IG1fcGFn
ZS0+ZC0+Y2xpZW50LmdldCgpOwogICAgIGlmICh3ZWJQYWdlQ2xpZW50KSB7CiAgICAgICAgIFF0
OjpJbnB1dE1ldGhvZEhpbnRzIGhpbnRzOwogCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBv
cnQvRnJhbWVMb2FkZXJDbGllbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA3Mzc0MykKKysrIFdl
YktpdC9xdC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODYsNiArODYsNyBAQAogI2luY2x1ZGUgPFFOZXR3b3JrUmVwbHk+CiAjaW5jbHVk
ZSA8UVN0cmluZ0xpc3Q+CiAjaW5jbHVkZSAicXdlYmhpc3RvcnlfcC5oIgorI2luY2x1ZGUgPHd0
Zi9Pd25QdHIuaD4KIAogc3RhdGljIFFNYXA8dW5zaWduZWQgbG9uZywgUVN0cmluZz4gZHVtcEFz
c2lnbmVkVXJsczsKIApAQCAtMTUzNiw3ICsxNTM3LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZy
YW1lTG9hZGVyQ2xpZW50UXQ6OgogICAgICAgICBWZWN0b3I8U3RyaW5nPiB2YWx1ZXMgPSBwYXJh
bVZhbHVlczsKICNpZiAhT1MoU1lNQklBTikKICAgICAgICAgaWYgKG1pbWVUeXBlID09ICJhcHBs
aWNhdGlvbi94LXNob2Nrd2F2ZS1mbGFzaCIpIHsKLSAgICAgICAgICAgIFFXZWJQYWdlQ2xpZW50
KiBjbGllbnQgPSBtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudDsKKyAgICAgICAgICAgIFFX
ZWJQYWdlQ2xpZW50KiBjbGllbnQgPSBtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC5nZXQo
KTsKICAgICAgICAgICAgIGNvbnN0IGJvb2wgaXNRV2ViVmlldyA9IGNsaWVudCAmJiBxb2JqZWN0
X2Nhc3Q8UVdpZGdldCo+KGNsaWVudC0+cGx1Z2luUGFyZW50KCkpOwogI2lmIGRlZmluZWQoTU9a
X1BMQVRGT1JNX01BRU1PKSAmJiAoTU9aX1BMQVRGT1JNX01BRU1PID49IDUpCiAgICAgICAgICAg
ICBzaXplX3Qgd21vZGVJbmRleCA9IHBhcmFtcy5maW5kKCJ3bW9kZSIpOwo=
</data>
<flag name="review"
          id="67149"
          type_id="1"
          status="-"
          setter="kenneth"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>76310</attachid>
            <date>2010-12-11 16:12:40 -0800</date>
            <delta_ts>2010-12-11 19:46:11 -0800</delta_ts>
            <desc>try again</desc>
            <filename>50267.patch</filename>
            <type>text/plain</type>
            <size>7277</size>
            <attacher name="Yi Shen">max.hong.shen</attacher>
            
              <data encoding="base64">SW5kZXg6IFdlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0NoYW5n
ZUxvZwkocmV2aXNpb24gNzM4NjMpCisrKyBXZWJLaXQvcXQvQ2hhbmdlTG9nCSh3b3JraW5nIGNv
cHkpCkBAIC0xLDMgKzEsMjkgQEAKKzIwMTAtMTItMTEgIFlpIFNoZW4gIDx5aS40LnNoZW5Abm9r
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtRdF0gTWVtb3J5IGxlYWtzIGZvciBRV2ViUGFnZUNsaWVudAorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTAyNjcKKworICAgICAgICBVc2UgT3duUHRy
IHRvIHNvbHZlIHRoaXMgbWVtb3J5IGxlYWsgaXNzdWUuCisKKyAgICAgICAgKiBBcGkvcWdyYXBo
aWNzd2Vidmlldy5jcHA6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6b3Zlcmxh
eSk6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6UVdlYlZpZXdQcml2YXRlOjpw
YWdlQ2xpZW50KToKKyAgICAgICAgKFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjpzeW5jTGF5ZXJz
KToKKyAgICAgICAgKFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjp1cGRhdGVSZXNpemVzVG9Db250
ZW50c0ZvclBhZ2UpOgorICAgICAgICAoUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6Ol9xX3NjYWxl
Q2hhbmdlZCk6CisgICAgICAgIChRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6ZGV0YWNoQ3VycmVu
dFBhZ2UpOgorICAgICAgICAqIEFwaS9xd2VicGFnZV9wLmg6CisgICAgICAgICogQXBpL3F3ZWJ2
aWV3LmNwcDoKKyAgICAgICAgKFFXZWJWaWV3UHJpdmF0ZTo6ZGV0YWNoQ3VycmVudFBhZ2UpOgor
ICAgICAgICAqIFdlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkNocm9tZUNsaWVudFF0OjpwbGF0Zm9ybVBhZ2VDbGllbnQpOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkVkaXRv
ckNsaWVudFF0OjpzZXRJbnB1dE1ldGhvZFN0YXRlKToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9y
dC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZyYW1lTG9hZGVy
Q2xpZW50UXQ6OmNyZWF0ZVBsdWdpbik6CisKIDIwMTAtMTAtMTEgIERpZWdvIEdvbnphbGV6ICA8
ZGllZ29oY2dAd2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBLZW5uZXRoIFJvaGRl
IENocmlzdGlhbnNlbi4KSW5kZXg6IFdlYktpdC9xdC9BcGkvcWdyYXBoaWNzd2Vidmlldy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gV2ViS2l0L3F0L0FwaS9xZ3JhcGhpY3N3ZWJ2aWV3LmNwcAkocmV2aXNp
b24gNzM4NjMpCisrKyBXZWJLaXQvcXQvQXBpL3FncmFwaGljc3dlYnZpZXcuY3BwCSh3b3JraW5n
IGNvcHkpCkBAIC04MCw4ICs4MCwxMyBAQCBwdWJsaWM6CiAgICAgewogICAgICAgICBpZiAoIXBh
Z2UgfHwgIXBhZ2UtPmQtPmNsaWVudCkKICAgICAgICAgICAgIHJldHVybiAwOwotICAgICAgICBy
ZXR1cm4gc3RhdGljX2Nhc3Q8UGFnZUNsaWVudFFHcmFwaGljc1dpZGdldCo+KHBhZ2UtPmQtPmNs
aWVudCktPm92ZXJsYXk7CisgICAgICAgIHJldHVybiBwYWdlQ2xpZW50KCktPm92ZXJsYXk7CiAg
ICAgfQorCisgICAgUGFnZUNsaWVudFFHcmFwaGljc1dpZGdldCogcGFnZUNsaWVudCgpIGNvbnN0
CisgICAgeworICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8V2ViQ29yZTo6UGFnZUNsaWVudFFH
cmFwaGljc1dpZGdldCo+IChwYWdlLT5kLT5jbGllbnQuZ2V0KCkpOworICAgIH0gCiB9OwogCiBR
R3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6flFHcmFwaGljc1dlYlZpZXdQcml2YXRlKCkKQEAgLTky
LDcgKzk3LDcgQEAgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6On5RR3JhcGhpY3NXZWJWaQogdm9p
ZCBRR3JhcGhpY3NXZWJWaWV3UHJpdmF0ZTo6c3luY0xheWVycygpCiB7CiAjaWYgVVNFKEFDQ0VM
RVJBVEVEX0NPTVBPU0lUSU5HKQotICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRRR3JhcGhpY3NX
aWRnZXQqPihwYWdlLT5kLT5jbGllbnQpLT5zeW5jTGF5ZXJzKCk7CisgICAgcGFnZUNsaWVudCgp
LT5zeW5jTGF5ZXJzKCk7CiAjZW5kaWYKIH0KIApAQCAtMTI4LDcgKzEzMyw3IEBAIHZvaWQgUUdy
YXBoaWNzV2ViVmlld1ByaXZhdGU6Ol9xX3BhZ2VEZXMKIHZvaWQgUUdyYXBoaWNzV2ViVmlld1By
aXZhdGU6OnVwZGF0ZVJlc2l6ZXNUb0NvbnRlbnRzRm9yUGFnZSgpCiB7CiAgICAgQVNTRVJUKHBh
Z2UpOwotICAgIHN0YXRpY19jYXN0PFBhZ2VDbGllbnRRR3JhcGhpY3NXaWRnZXQqPihwYWdlLT5k
LT5jbGllbnQpLT52aWV3UmVzaXplc1RvQ29udGVudHMgPSByZXNpemVzVG9Db250ZW50czsKKyAg
ICBwYWdlQ2xpZW50KCktPnZpZXdSZXNpemVzVG9Db250ZW50cyA9IHJlc2l6ZXNUb0NvbnRlbnRz
OwogICAgIGlmIChyZXNpemVzVG9Db250ZW50cykgewogICAgICAgICAvLyByZXNpemVzIHRvIGNv
bnRlbnRzIG1vZGUgcmVxdWlyZXMgcHJlZmVycmVkIGNvbnRlbnRzIHNpemUgdG8gYmUgc2V0CiAg
ICAgICAgIGlmICghcGFnZS0+cHJlZmVycmVkQ29udGVudHNTaXplKCkuaXNWYWxpZCgpKQpAQCAt
MTU2LDcgKzE2MSw3IEBAIHZvaWQgUUdyYXBoaWNzV2ViVmlld1ByaXZhdGU6Ol9xX3NjYWxlQ2gK
ICNpZiBFTkFCTEUoVElMRURfQkFDS0lOR19TVE9SRSkKICAgICBpZiAoIXBhZ2UpCiAgICAgICAg
IHJldHVybjsKLSAgICBzdGF0aWNfY2FzdDxQYWdlQ2xpZW50UUdyYXBoaWNzV2lkZ2V0Kj4ocGFn
ZS0+ZC0+Y2xpZW50KS0+dXBkYXRlVGlsZWRCYWNraW5nU3RvcmVTY2FsZSgpOworICAgIHBhZ2VD
bGllbnQoKS0+dXBkYXRlVGlsZWRCYWNraW5nU3RvcmVTY2FsZSgpOwogI2VuZGlmCiB9CiAKQEAg
LTQxNCw5ICs0MTksNiBAQCB2b2lkIFFHcmFwaGljc1dlYlZpZXdQcml2YXRlOjpkZXRhY2hDdXJy
CiAgICAgICAgIHJldHVybjsKIAogICAgIHBhZ2UtPmQtPnZpZXcuY2xlYXIoKTsKLQotICAgIC8v
IFRoZSBjbGllbnQgaGFzIGFsd2F5cyB0byBiZSBkZWxldGVkLgotICAgIGRlbGV0ZSBwYWdlLT5k
LT5jbGllbnQ7CiAgICAgcGFnZS0+ZC0+Y2xpZW50ID0gMDsKIAogICAgIC8vIGlmIHRoZSBwYWdl
IHdhcyBjcmVhdGVkIGJ5IHVzLCB3ZSBvd24gaXQgYW5kIG5lZWQgdG8KSW5kZXg6IFdlYktpdC9x
dC9BcGkvcXdlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2Uu
Y3BwCShyZXZpc2lvbiA3Mzg2MykKKysrIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCSh3b3Jr
aW5nIGNvcHkpCkBAIC0yMDA4LDcgKzIwMDgsNyBAQCB2b2lkIFFXZWJQYWdlOjpzZXRWaWV3KFFX
aWRnZXQqIHZpZXcpCiAKICAgICBpZiAoZC0+Y2xpZW50KSB7CiAgICAgICAgIGlmIChkLT5jbGll
bnQtPmlzUVdpZGdldENsaWVudCgpKQotICAgICAgICAgICAgc3RhdGljX2Nhc3Q8UGFnZUNsaWVu
dFFXaWRnZXQqPihkLT5jbGllbnQpLT52aWV3ID0gdmlldzsKKyAgICAgICAgICAgIHN0YXRpY19j
YXN0PFBhZ2VDbGllbnRRV2lkZ2V0Kj4oZC0+Y2xpZW50LmdldCgpKS0+dmlldyA9IHZpZXc7CiAg
ICAgICAgIHJldHVybjsKICAgICB9CiAKSW5kZXg6IFdlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5o
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCShyZXZpc2lvbiA3Mzg2
MykKKysrIFdlYktpdC9xdC9BcGkvcXdlYnBhZ2VfcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0zNSw2
ICszNSw3IEBACiAjaW5jbHVkZSAiS1VSTC5oIgogI2luY2x1ZGUgIlBsYXRmb3JtU3RyaW5nLmgi
CiAKKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgogCiAj
aW5jbHVkZSAiVmlld3BvcnRBcmd1bWVudHMuaCIKQEAgLTE2MCw3ICsxNjEsNyBAQCBwdWJsaWM6
CiAKICAgICBRV2ViUGFnZSAqcTsKICAgICBXZWJDb3JlOjpQYWdlICpwYWdlOwotICAgIFFXZWJQ
YWdlQ2xpZW50KiBjbGllbnQ7CisgICAgT3duUHRyPFFXZWJQYWdlQ2xpZW50PiBjbGllbnQ7CiAg
ICAgUVBvaW50ZXI8UVdlYkZyYW1lPiBtYWluRnJhbWU7CiAKICNpZm5kZWYgUVRfTk9fVU5ET1NU
QUNLCkluZGV4OiBXZWJLaXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBXZWJL
aXQvcXQvQXBpL3F3ZWJ2aWV3LmNwcAkocmV2aXNpb24gNzM4NjMpCisrKyBXZWJLaXQvcXQvQXBp
L3F3ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUzLDkgKzM1Myw5IEBAIHZvaWQgUVdl
YlZpZXdQcml2YXRlOjpkZXRhY2hDdXJyZW50UGFnZSgKICAgICAvLyB0byBkZXN0cm95IGl0Lgog
CiAgICAgaWYgKHBhZ2UtPmQtPmNsaWVudCAmJiBwYWdlLT5kLT5jbGllbnQtPmlzUVdpZGdldENs
aWVudCgpKQotICAgICAgICBkZWxldGUgcGFnZS0+ZC0+Y2xpZW50OworICAgICAgICBwYWdlLT5k
LT5jbGllbnQuY2xlYXIoKTsKIAotICAgIHBhZ2UtPmQtPmNsaWVudCA9IDA7CisgICAgcGFnZS0+
ZC0+Y2xpZW50LnJlbGVhc2UoKTsKIAogICAgIC8vIGlmIHRoZSBwYWdlIHdhcyBjcmVhdGVkIGJ5
IHVzLCB3ZSBvd24gaXQgYW5kIG5lZWQgdG8KICAgICAvLyBkZXN0cm95IGl0IGFzIHdlbGwuCklu
ZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvQ2hyb21lQ2xpZW50UXQuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9DaHJvbWVDbGllbnRRdC5jcHAJKHJldmlz
aW9uIDczODYzKQorKysgV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0Nocm9tZUNsaWVudFF0LmNw
cAkod29ya2luZyBjb3B5KQpAQCAtNzQsNiArNzQsNyBAQAogI2luY2x1ZGUgPHFldmVudGxvb3Au
aD4KICNpbmNsdWRlIDxxdGV4dGRvY3VtZW50Lmg+CiAjaW5jbHVkZSA8cXRvb2x0aXAuaD4KKyNp
bmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIApAQCAtNDUzLDcg
KzQ1NCw3IEBAIEludFBvaW50IENocm9tZUNsaWVudFF0OjpzY3JlZW5Ub1dpbmRvdygKIAogUGxh
dGZvcm1QYWdlQ2xpZW50IENocm9tZUNsaWVudFF0OjpwbGF0Zm9ybVBhZ2VDbGllbnQoKSBjb25z
dAogewotICAgIHJldHVybiBtX3dlYlBhZ2UtPmQtPmNsaWVudDsKKyAgICByZXR1cm4gbV93ZWJQ
YWdlLT5kLT5jbGllbnQuZ2V0KCk7CiB9CiAKIHZvaWQgQ2hyb21lQ2xpZW50UXQ6OmNvbnRlbnRz
U2l6ZUNoYW5nZWQoRnJhbWUqIGZyYW1lLCBjb25zdCBJbnRTaXplJiBzaXplKSBjb25zdApJbmRl
eDogV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L0VkaXRvckNsaWVudFF0LmNwcAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRWRpdG9yQ2xpZW50UXQuY3BwCShyZXZpc2lv
biA3Mzg2MykKKysrIFdlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9FZGl0b3JDbGllbnRRdC5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTUzLDYgKzUzLDcgQEAKIAogI2luY2x1ZGUgPFFVbmRvU3RhY2s+
CiAjaW5jbHVkZSA8c3RkaW8uaD4KKyNpbmNsdWRlIDx3dGYvT3duUHRyLmg+CiAKICNkZWZpbmUg
bWV0aG9kRGVidWcoKSBxRGVidWcoIkVkaXRvckNsaWVudFF0OiAlcyIsIF9fRlVOQ1RJT05fXyk7
CiAKQEAgLTU3NCw3ICs1NzUsNyBAQCB2b2lkIEVkaXRvckNsaWVudFF0Ojp3aWxsU2V0SW5wdXRN
ZXRob2RTCiAKIHZvaWQgRWRpdG9yQ2xpZW50UXQ6OnNldElucHV0TWV0aG9kU3RhdGUoYm9vbCBh
Y3RpdmUpCiB7Ci0gICAgUVdlYlBhZ2VDbGllbnQqIHdlYlBhZ2VDbGllbnQgPSBtX3BhZ2UtPmQt
PmNsaWVudDsKKyAgICBRV2ViUGFnZUNsaWVudCogd2ViUGFnZUNsaWVudCA9IG1fcGFnZS0+ZC0+
Y2xpZW50LmdldCgpOwogICAgIGlmICh3ZWJQYWdlQ2xpZW50KSB7CiAgICAgICAgIFF0OjpJbnB1
dE1ldGhvZEhpbnRzIGhpbnRzOwogCkluZGV4OiBXZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvRnJh
bWVMb2FkZXJDbGllbnRRdC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L0ZyYW1lTG9hZGVyQ2xpZW50UXQuY3BwCShyZXZpc2lvbiA3Mzg2MykKKysrIFdlYktpdC9x
dC9XZWJDb3JlU3VwcG9ydC9GcmFtZUxvYWRlckNsaWVudFF0LmNwcAkod29ya2luZyBjb3B5KQpA
QCAtODYsNiArODYsNyBAQAogI2luY2x1ZGUgPFFOZXR3b3JrUmVwbHk+CiAjaW5jbHVkZSA8UVN0
cmluZ0xpc3Q+CiAjaW5jbHVkZSAicXdlYmhpc3RvcnlfcC5oIgorI2luY2x1ZGUgPHd0Zi9Pd25Q
dHIuaD4KIAogc3RhdGljIFFNYXA8dW5zaWduZWQgbG9uZywgUVN0cmluZz4gZHVtcEFzc2lnbmVk
VXJsczsKIApAQCAtMTUzNiw3ICsxNTM3LDcgQEAgUGFzc1JlZlB0cjxXaWRnZXQ+IEZyYW1lTG9h
ZGVyQ2xpZW50UXQ6OgogICAgICAgICBWZWN0b3I8U3RyaW5nPiB2YWx1ZXMgPSBwYXJhbVZhbHVl
czsKICNpZiAhT1MoU1lNQklBTikKICAgICAgICAgaWYgKG1pbWVUeXBlID09ICJhcHBsaWNhdGlv
bi94LXNob2Nrd2F2ZS1mbGFzaCIpIHsKLSAgICAgICAgICAgIFFXZWJQYWdlQ2xpZW50KiBjbGll
bnQgPSBtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudDsKKyAgICAgICAgICAgIFFXZWJQYWdl
Q2xpZW50KiBjbGllbnQgPSBtX3dlYkZyYW1lLT5wYWdlKCktPmQtPmNsaWVudC5nZXQoKTsKICAg
ICAgICAgICAgIGNvbnN0IGJvb2wgaXNRV2ViVmlldyA9IGNsaWVudCAmJiBxb2JqZWN0X2Nhc3Q8
UVdpZGdldCo+KGNsaWVudC0+cGx1Z2luUGFyZW50KCkpOwogI2lmIGRlZmluZWQoTU9aX1BMQVRG
T1JNX01BRU1PKSAmJiAoTU9aX1BMQVRGT1JNX01BRU1PID49IDUpCiAgICAgICAgICAgICBzaXpl
X3Qgd21vZGVJbmRleCA9IHBhcmFtcy5maW5kKCJ3bW9kZSIpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>