<?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>52974</bug_id>
          
          <creation_ts>2011-01-23 02:26:02 -0800</creation_ts>
          <short_desc>[Qt] Add CopyImageUrlToClipboard action to QWebPage and QWKPage</short_desc>
          <delta_ts>2011-02-07 21:37: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>EasyFix, Qt, QtTriaged</keywords>
          <priority>P5</priority>
          <bug_severity>Enhancement</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="szyk">szyk100</reporter>
          <assigned_to name="qi">qi.2.zhang</assigned_to>
          <cc>adjam7</cc>
    
    <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>cshu</cc>
    
    <cc>kling</cc>
    
    <cc>laszlo.gombos</cc>
    
    <cc>webkit-ews</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>338682</commentid>
    <comment_count>0</comment_count>
    <who name="szyk">szyk100</who>
    <bug_when>2011-01-23 02:26:02 -0800</bug_when>
    <thetext>enum QWebPage::WebAction doesn&apos;t have value QWebPage::CopyImageUrl but obviously this is very frequent  action performed by users. By now I workaround this gap, but I think that such notorious action should by supported by default in standard way like other actions which can be performed on the web page.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>341929</commentid>
    <comment_count>1</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-01-28 18:34:22 -0800</bug_when>
    <thetext>Please follow http://trac.webkit.org/wiki/QtWebKitBugs when reporing bug here.

That is an easy patch to make if you want to add it yourself to WebKit ( https://trac.webkit.org/wiki/QtWebKitContrib )</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342719</commentid>
    <comment_count>2</comment_count>
      <attachid>80667</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2011-01-31 11:45:20 -0800</bug_when>
    <thetext>Created attachment 80667
patch

Introduce QWebPage::CopyImageUrlToClipboard into QWebPage:WebAction.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>342776</commentid>
    <comment_count>3</comment_count>
      <attachid>80667</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-01-31 13:07:51 -0800</bug_when>
    <thetext>Comment on attachment 80667
patch

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

&gt; Source/WebKit/qt/ChangeLog:8
&gt; +        Add QWebPage::CopyImageUrlToClipborad into QWebPage::WebAction.

Typo, CopyImageUrlToClipboard.

&gt; Source/WebKit/qt/Api/qwebpage.cpp:1684
&gt; +    \value CopyImageUrlToClipboard Copy the highlighted image&apos;s url to the clipboard.

url -&gt; URL

&gt; Tools/ChangeLog:8
&gt; +        Add CopyImageUrlToClipborad into QtTestbrowser.

Typo, CopyImageUrlToClipboard.

&gt; Tools/QtTestBrowser/webview.cpp:247
&gt; +        QAction* newTabAction = menu-&gt;addAction(&quot;Copy Image Address&quot;, webPage, SLOT(copyImageUrlToClipboard()));

The &apos;newTabAction&apos; variable name doesn&apos;t make sense here.

&gt; Tools/QtTestBrowser/webview.cpp:248
&gt; +        menu-&gt;insertAction(menu-&gt;actions().at(4), newTabAction);

What&apos;s up with the at(4) here? How is the QMenu action list populated?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343191</commentid>
    <comment_count>4</comment_count>
      <attachid>80756</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2011-02-01 06:35:03 -0800</bug_when>
    <thetext>Created attachment 80756
patch2

Based on comments to make some changes.

For the last issue &quot;at(4)&quot;, because we already have another 3 menu items for image, they are &quot;Open Image, Save Image, and Copy Image&quot;, and I want to put &quot;Copy Image Address&quot; after them, that&apos; why. By the way, the other 3 actions come from WebKit common code, currently &quot;Copy Image Address&quot; is only for Qt, so we have to manually add into ContextMenu like &quot;Open in Default Browser&quot; did.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343195</commentid>
    <comment_count>5</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-01 06:39:37 -0800</bug_when>
    <thetext>Food for thought: should that be added to the default actions of the context menu?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343199</commentid>
    <comment_count>6</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-02-01 06:42:53 -0800</bug_when>
    <thetext>&gt; For the last issue &quot;at(4)&quot;, because we already have another 3 menu items for image, they are &quot;Open Image, Save Image, and Copy Image&quot;, and I want to put &quot;Copy Image Address&quot; after them, that&apos; why. By the way, the other 3 actions come from WebKit common code, currently &quot;Copy Image Address&quot; is only for Qt, so we have to manually add into ContextMenu like &quot;Open in Default Browser&quot; did.

It&apos;s always good to avoid hardcoded numbers. Can&apos;t we do anything like append or get the length of current items, etc.?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343209</commentid>
    <comment_count>7</comment_count>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2011-02-01 07:06:37 -0800</bug_when>
    <thetext>Let&apos;s make it more clear, currently, the ContextMenu like:

Open Image
Save Image
Copy Image
---------- (seperator)
Inspector


I want to insert the new menu item after &quot;Copy Image&quot;, because I think it should be group with &quot;Open...&quot;. So, you see it is difficult to use &quot;append&quot; or &quot;length&quot; to find the position. :(


Or, like Benjamin said put it into default actions. But I think then it will go into all the platform. Some platform, like Safari already have this, I think they suppose to add it manually like what I am doing now. If I put it into default, it maybe broke their behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343211</commentid>
    <comment_count>8</comment_count>
    <who name="Chang Shu">cshu</who>
    <bug_when>2011-02-01 07:10:54 -0800</bug_when>
    <thetext>good explanation. :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343217</commentid>
    <comment_count>9</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-01 07:42:12 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; Or, like Benjamin said put it into default actions. But I think then it will go into all the platform. Some platform, like Safari already have this, I think they suppose to add it manually like what I am doing now. If I put it into default, it maybe broke their behavior.

Someone already changed the behavior of the menu for this release. There is now &quot;select all&quot; for input fields.
If we change the menu, it is best to do it all at once and communicate about the changes (on the Qt blog for example).

I have CCed Andrea, the lead of the Rekonq project. Maybe he will have an opinion on the question.

The default menu is bad enough that hybrid and mobile redefine it anyway ;)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343219</commentid>
    <comment_count>10</comment_count>
      <attachid>80756</attachid>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-01 07:58:57 -0800</bug_when>
    <thetext>Comment on attachment 80756
patch2

You should not have to create the action yourself like you do in QTestBrowser.
QWebPage::action() should give you the action. You forgot to implement that part, that is why you need that code in QtTestBrowser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343220</commentid>
    <comment_count>11</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-01 07:59:23 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 80756 [details])
&gt; You should not have to create the action yourself like you do in QTestBrowser.
&gt; QWebPage::action() should give you the action. You forgot to implement that part, that is why you need that code in QtTestBrowser.

And an autotest would be nice... :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343242</commentid>
    <comment_count>12</comment_count>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2011-02-01 08:51:15 -0800</bug_when>
    <thetext>(In reply to comment #10)
&gt; (From update of attachment 80756 [details])
&gt; You should not have to create the action yourself like you do in QTestBrowser.
&gt; QWebPage::action() should give you the action. You forgot to implement that part, that is why you need that code in QtTestBrowser.

I believe QWebPage::action() only for customize the display string. 

What items should be display by default is decided by WebCore/page/ContextMenuController.cpp/populate(), if we put this action into default (send it into common code), then we don&apos;t need manually add it into menu.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343249</commentid>
    <comment_count>13</comment_count>
    <who name="Benjamin Poulain">benjamin</who>
    <bug_when>2011-02-01 09:06:13 -0800</bug_when>
    <thetext>(In reply to comment #12)
&gt; (In reply to comment #10)
&gt; &gt; (From update of attachment 80756 [details] [details])
&gt; &gt; You should not have to create the action yourself like you do in QTestBrowser.
&gt; &gt; QWebPage::action() should give you the action. You forgot to implement that part, that is why you need that code in QtTestBrowser.
&gt; 
&gt; I believe QWebPage::action() only for customize the display string. 

No it is not, it is the way standard actions are created. As a user, you should not have to do the connect from the action to actionTriggered.

Please check the code.....</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343379</commentid>
    <comment_count>14</comment_count>
      <attachid>80794</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2011-02-01 11:33:23 -0800</bug_when>
    <thetext>Created attachment 80794
patch3

Make some change based on comments, but I don&apos;t know how to create a auto test case (#11), do you have any example for it? Benjamin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>343657</commentid>
    <comment_count>15</comment_count>
      <attachid>80794</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-01 16:30:28 -0800</bug_when>
    <thetext>Comment on attachment 80794
patch3

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

&gt; Source/WebKit/qt/Api/qwebpage.cpp:2740
&gt; +        case CopyImageUrlToClipboard:
&gt; +            text =  tr(&quot;Copy Image Address&quot;);
&gt; +            break;

This should be done through the platform strategy.
We&apos;ll need a contextMenuItemTagCopyImageURLToClipboard(), though it can be #if PLATFORM(QT) specific.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344703</commentid>
    <comment_count>16</comment_count>
      <attachid>81059</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2011-02-03 07:31:04 -0800</bug_when>
    <thetext>Created attachment 81059
patch4

Put this action into standard action but Qt specific.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344709</commentid>
    <comment_count>17</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-03 07:50:44 -0800</bug_when>
    <thetext>Attachment 81059 did not build on qt:
Build output: http://queues.webkit.org/results/7693321</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344752</commentid>
    <comment_count>18</comment_count>
      <attachid>81059</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-03 09:05:49 -0800</bug_when>
    <thetext>Comment on attachment 81059
patch4

Like EWS says, this breaks WebKit2. And speaking of WebKit2, the CopyImageUrlToClipboard action should also be added to the QWKPage WebActions.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344853</commentid>
    <comment_count>19</comment_count>
      <attachid>81090</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2011-02-03 11:04:07 -0800</bug_when>
    <thetext>Created attachment 81090
patch5

Weird, I didn&apos;t get any build error in my workspace. Anyway, I changed webkit2 code and make a clean build, it works fine.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>344939</commentid>
    <comment_count>20</comment_count>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-02-03 12:51:41 -0800</bug_when>
    <thetext>Attachment 81090 did not build on qt:
Build output: http://queues.webkit.org/results/7691541</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>345460</commentid>
    <comment_count>21</comment_count>
      <attachid>81211</attachid>
    <who name="qi">qi.2.zhang</who>
    <bug_when>2011-02-04 06:34:45 -0800</bug_when>
    <thetext>Created attachment 81211
patch6

fix webkit2 build issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>346603</commentid>
    <comment_count>22</comment_count>
      <attachid>81211</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-07 08:35:30 -0800</bug_when>
    <thetext>Comment on attachment 81211
patch6

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347075</commentid>
    <comment_count>23</comment_count>
      <attachid>81211</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-07 21:37:13 -0800</bug_when>
    <thetext>Comment on attachment 81211
patch6

Clearing flags on attachment: 81211

Committed r77892: &lt;http://trac.webkit.org/changeset/77892&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>347076</commentid>
    <comment_count>24</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2011-02-07 21:37:19 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80667</attachid>
            <date>2011-01-31 11:45:20 -0800</date>
            <delta_ts>2011-02-01 06:35:03 -0800</delta_ts>
            <desc>patch</desc>
            <filename>bug52974.patch</filename>
            <type>text/plain</type>
            <size>4938</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NzE0OCkKKysrIFNvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDEtMzEgIFFp
IFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBlbnVtIFFXZWJQYWdlOjpXZWJBY3Rpb24gZG9l
c24ndCBoYXZlIHZhbHVlIFFXZWJQYWdlOjpDb3B5SW1hZ2VVcmwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyOTc0CisKKyAgICAgICAgQWRkIFFXZWJQ
YWdlOjpDb3B5SW1hZ2VVcmxUb0NsaXBib3JhZCBpbnRvIFFXZWJQYWdlOjpXZWJBY3Rpb24uCisK
KyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2U6OnRyaWdnZXJB
Y3Rpb24pOgorICAgICAgICAqIEFwaS9xd2VicGFnZS5oOgorCiAyMDExLTAxLTI4ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5p
Zy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDc1OTcxKQorKysg
U291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIs
NiArMTYyLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGVkaXRvckNvbW1hbmRXZWJBY3RpbwogICAg
IDAsIC8vIE9wZW5JbWFnZUluTmV3V2luZG93LAogICAgIDAsIC8vIERvd25sb2FkSW1hZ2VUb0Rp
c2ssCiAgICAgMCwgLy8gQ29weUltYWdlVG9DbGlwYm9hcmQsCisgICAgMCwgLy8gQ29weUltYWdl
VXJsVG9DbGlwYm9hcmQsCiAKICAgICAwLCAvLyBCYWNrLAogICAgIDAsIC8vIEZvcndhcmQsCkBA
IC0xNjgwLDYgKzE2ODEsNyBAQCBJbnRQb2ludCBRV2ViUGFnZVByaXZhdGU6OlRvdWNoQWRqdXN0
ZXI6CiAgICAgXHZhbHVlIE9wZW5JbWFnZUluTmV3V2luZG93IE9wZW4gdGhlIGhpZ2hsaWdodGVk
IGltYWdlIGluIGEgbmV3IHdpbmRvdy4KICAgICBcdmFsdWUgRG93bmxvYWRJbWFnZVRvRGlzayBE
b3dubG9hZCB0aGUgaGlnaGxpZ2h0ZWQgaW1hZ2UgdG8gdGhlIGRpc2suCiAgICAgXHZhbHVlIENv
cHlJbWFnZVRvQ2xpcGJvYXJkIENvcHkgdGhlIGhpZ2hsaWdodGVkIGltYWdlIHRvIHRoZSBjbGlw
Ym9hcmQuCisgICAgXHZhbHVlIENvcHlJbWFnZVVybFRvQ2xpcGJvYXJkIENvcHkgdGhlIGhpZ2hs
aWdodGVkIGltYWdlJ3MgdXJsIHRvIHRoZSBjbGlwYm9hcmQuCiAgICAgXHZhbHVlIEJhY2sgTmF2
aWdhdGUgYmFjayBpbiB0aGUgaGlzdG9yeSBvZiBuYXZpZ2F0ZWQgbGlua3MuCiAgICAgXHZhbHVl
IEZvcndhcmQgTmF2aWdhdGUgZm9yd2FyZCBpbiB0aGUgaGlzdG9yeSBvZiBuYXZpZ2F0ZWQgbGlu
a3MuCiAgICAgXHZhbHVlIFN0b3AgU3RvcCBsb2FkaW5nIHRoZSBjdXJyZW50IHBhZ2UuCkBAIC0y
MzQyLDYgKzIzNDQsOSBAQCB2b2lkIFFXZWJQYWdlOjp0cmlnZ2VyQWN0aW9uKFdlYkFjdGlvbiBh
CiAgICAgICAgIGNhc2UgQ29weUltYWdlVG9DbGlwYm9hcmQ6CiAgICAgICAgICAgICBRQXBwbGlj
YXRpb246OmNsaXBib2FyZCgpLT5zZXRQaXhtYXAoZC0+aGl0VGVzdFJlc3VsdC5waXhtYXAoKSk7
CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb3B5SW1hZ2VVcmxUb0NsaXBib2Fy
ZDoKKyAgICAgICAgICAgIFFBcHBsaWNhdGlvbjo6Y2xpcGJvYXJkKCktPnNldFRleHQoZC0+aGl0
VGVzdFJlc3VsdC5pbWFnZVVybCgpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKICAgICAgICAgY2FzZSBCYWNrOgogICAgICAgICAgICAgZC0+cGFnZS0+Z29CYWNrKCk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmgJKHJldmlzaW9uIDc1OTcxKQorKysgU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSw3
IEBAIHB1YmxpYzoKICAgICAgICAgT3BlbkltYWdlSW5OZXdXaW5kb3csCiAgICAgICAgIERvd25s
b2FkSW1hZ2VUb0Rpc2ssCiAgICAgICAgIENvcHlJbWFnZVRvQ2xpcGJvYXJkLAorICAgICAgICBD
b3B5SW1hZ2VVcmxUb0NsaXBib2FyZCwKIAogICAgICAgICBCYWNrLAogICAgICAgICBGb3J3YXJk
LApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwko
cmV2aXNpb24gNzcxNDgpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxOCBAQAorMjAxMS0wMS0zMSAgUWkgWmhhbmcgIDxxaS4yLnpoYW5nQG5va2lhLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIGVu
dW0gUVdlYlBhZ2U6OldlYkFjdGlvbiBkb2Vzbid0IGhhdmUgdmFsdWUgUVdlYlBhZ2U6OkNvcHlJ
bWFnZVVybAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTI5NzQKKworICAgICAgICBBZGQgQ29weUltYWdlVXJsVG9DbGlwYm9yYWQgaW50byBRdFRlc3Ri
cm93c2VyLgorCisgICAgICAgICogUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcDoKKyAgICAgICAg
KFdlYlBhZ2U6OmNvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKToKKyAgICAgICAgKiBRdFRlc3RCcm93
c2VyL3dlYnBhZ2UuaDoKKyAgICAgICAgKiBRdFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwOgorICAg
ICAgICAoY3JlYXRlQ29udGV4dE1lbnUpOgorCiAyMDExLTAxLTMxICBUb255IENoYW5nICA8dG9u
eUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4
OiBUb29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F0
VGVzdEJyb3dzZXIvd2VicGFnZS5jcHAJKHJldmlzaW9uIDc1OTcxKQorKysgVG9vbHMvUXRUZXN0
QnJvd3Nlci93ZWJwYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSwxMSBAQCB2
b2lkIFdlYlBhZ2U6Om9wZW5VcmxJbkRlZmF1bHRCcm93c2VyKGNvCiAjZW5kaWYKIH0KIAordm9p
ZCBXZWJQYWdlOjpjb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCit7CisgICAgdHJpZ2dlckFjdGlv
bihRV2ViUGFnZTo6Q29weUltYWdlVXJsVG9DbGlwYm9hcmQpOworfQorCiBRU3RyaW5nIFdlYlBh
Z2U6OnVzZXJBZ2VudEZvclVybChjb25zdCBRVXJsJiB1cmwpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X3VzZXJBZ2VudC5pc0VtcHR5KCkpCkluZGV4OiBUb29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuaAkocmV2aXNpb24g
NzU5NzEpCisrKyBUb29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuaAkod29ya2luZyBjb3B5KQpA
QCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAKIHB1YmxpYyBzbG90czoKICAgICB2b2lkIG9wZW5V
cmxJbkRlZmF1bHRCcm93c2VyKGNvbnN0IFFVcmwmIHVybCA9IFFVcmwoKSk7CisgICAgdm9pZCBj
b3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpOwogICAgIHZvaWQgc2V0VXNlckFnZW50KGNvbnN0IFFT
dHJpbmcmIHVhKSB7IG1fdXNlckFnZW50ID0gdWE7IH0KICAgICBib29sIHNob3VsZEludGVycnVw
dEphdmFTY3JpcHQoKTsKICAgICB2b2lkIGF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoUU5ldHdvcmtS
ZXBseSosIFFBdXRoZW50aWNhdG9yKik7CkluZGV4OiBUb29scy9RdFRlc3RCcm93c2VyL3dlYnZp
ZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F0VGVzdEJyb3dzZXIvd2Vidmlldy5jcHAJKHJl
dmlzaW9uIDc1OTcxKQorKysgVG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJ2aWV3LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQyLDYgKzI0MiwxMSBAQCBzdGF0aWMgUU1lbnUqIGNyZWF0ZUNvbnRleHRN
ZW51KFFXZWJQYWdlCiAgICAgICAgIG5ld1RhYkFjdGlvbi0+c2V0RGF0YShyLmxpbmtVcmwoKSk7
CiAgICAgICAgIG1lbnUtPmluc2VydEFjdGlvbihtZW51LT5hY3Rpb25zKCkuYXQoMiksIG5ld1Rh
YkFjdGlvbik7CiAgICAgfQorICAgIGlmICghci5pbWFnZVVybCgpLmlzRW1wdHkoKSkgeworICAg
ICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gcW9iamVjdF9jYXN0PFdlYlBhZ2UqPihwYWdlKTsKKyAg
ICAgICAgUUFjdGlvbiogbmV3VGFiQWN0aW9uID0gbWVudS0+YWRkQWN0aW9uKCJDb3B5IEltYWdl
IEFkZHJlc3MiLCB3ZWJQYWdlLCBTTE9UKGNvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCkpKTsKKyAg
ICAgICAgbWVudS0+aW5zZXJ0QWN0aW9uKG1lbnUtPmFjdGlvbnMoKS5hdCg0KSwgbmV3VGFiQWN0
aW9uKTsKKyAgICB9CiAgICAgcmV0dXJuIG1lbnU7CiB9CiAK
</data>
<flag name="review"
          id="72170"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80756</attachid>
            <date>2011-02-01 06:35:03 -0800</date>
            <delta_ts>2011-02-01 11:33:23 -0800</delta_ts>
            <desc>patch2</desc>
            <filename>bug52974_2.patch</filename>
            <type>text/plain</type>
            <size>4950</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NzE0OCkKKysrIFNvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDEtMzEgIFFp
IFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBlbnVtIFFXZWJQYWdlOjpXZWJBY3Rpb24gZG9l
c24ndCBoYXZlIHZhbHVlIFFXZWJQYWdlOjpDb3B5SW1hZ2VVcmwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyOTc0CisKKyAgICAgICAgQWRkIFFXZWJQ
YWdlOjpDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCBpbnRvIFFXZWJQYWdlOjpXZWJBY3Rpb24uCisK
KyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2U6OnRyaWdnZXJB
Y3Rpb24pOgorICAgICAgICAqIEFwaS9xd2VicGFnZS5oOgorCiAyMDExLTAxLTI4ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5p
Zy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDc1OTcxKQorKysg
U291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIs
NiArMTYyLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGVkaXRvckNvbW1hbmRXZWJBY3RpbwogICAg
IDAsIC8vIE9wZW5JbWFnZUluTmV3V2luZG93LAogICAgIDAsIC8vIERvd25sb2FkSW1hZ2VUb0Rp
c2ssCiAgICAgMCwgLy8gQ29weUltYWdlVG9DbGlwYm9hcmQsCisgICAgMCwgLy8gQ29weUltYWdl
VXJsVG9DbGlwYm9hcmQsCiAKICAgICAwLCAvLyBCYWNrLAogICAgIDAsIC8vIEZvcndhcmQsCkBA
IC0xNjgwLDYgKzE2ODEsNyBAQCBJbnRQb2ludCBRV2ViUGFnZVByaXZhdGU6OlRvdWNoQWRqdXN0
ZXI6CiAgICAgXHZhbHVlIE9wZW5JbWFnZUluTmV3V2luZG93IE9wZW4gdGhlIGhpZ2hsaWdodGVk
IGltYWdlIGluIGEgbmV3IHdpbmRvdy4KICAgICBcdmFsdWUgRG93bmxvYWRJbWFnZVRvRGlzayBE
b3dubG9hZCB0aGUgaGlnaGxpZ2h0ZWQgaW1hZ2UgdG8gdGhlIGRpc2suCiAgICAgXHZhbHVlIENv
cHlJbWFnZVRvQ2xpcGJvYXJkIENvcHkgdGhlIGhpZ2hsaWdodGVkIGltYWdlIHRvIHRoZSBjbGlw
Ym9hcmQuCisgICAgXHZhbHVlIENvcHlJbWFnZVVybFRvQ2xpcGJvYXJkIENvcHkgdGhlIGhpZ2hs
aWdodGVkIGltYWdlJ3MgVVJMIHRvIHRoZSBjbGlwYm9hcmQuCiAgICAgXHZhbHVlIEJhY2sgTmF2
aWdhdGUgYmFjayBpbiB0aGUgaGlzdG9yeSBvZiBuYXZpZ2F0ZWQgbGlua3MuCiAgICAgXHZhbHVl
IEZvcndhcmQgTmF2aWdhdGUgZm9yd2FyZCBpbiB0aGUgaGlzdG9yeSBvZiBuYXZpZ2F0ZWQgbGlu
a3MuCiAgICAgXHZhbHVlIFN0b3AgU3RvcCBsb2FkaW5nIHRoZSBjdXJyZW50IHBhZ2UuCkBAIC0y
MzQyLDYgKzIzNDQsOSBAQCB2b2lkIFFXZWJQYWdlOjp0cmlnZ2VyQWN0aW9uKFdlYkFjdGlvbiBh
CiAgICAgICAgIGNhc2UgQ29weUltYWdlVG9DbGlwYm9hcmQ6CiAgICAgICAgICAgICBRQXBwbGlj
YXRpb246OmNsaXBib2FyZCgpLT5zZXRQaXhtYXAoZC0+aGl0VGVzdFJlc3VsdC5waXhtYXAoKSk7
CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb3B5SW1hZ2VVcmxUb0NsaXBib2Fy
ZDoKKyAgICAgICAgICAgIFFBcHBsaWNhdGlvbjo6Y2xpcGJvYXJkKCktPnNldFRleHQoZC0+aGl0
VGVzdFJlc3VsdC5pbWFnZVVybCgpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKICAgICAgICAgY2FzZSBCYWNrOgogICAgICAgICAgICAgZC0+cGFnZS0+Z29CYWNrKCk7
CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5oCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmgJKHJldmlzaW9uIDc1OTcxKQorKysgU291cmNl
L1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSw3
IEBAIHB1YmxpYzoKICAgICAgICAgT3BlbkltYWdlSW5OZXdXaW5kb3csCiAgICAgICAgIERvd25s
b2FkSW1hZ2VUb0Rpc2ssCiAgICAgICAgIENvcHlJbWFnZVRvQ2xpcGJvYXJkLAorICAgICAgICBD
b3B5SW1hZ2VVcmxUb0NsaXBib2FyZCwKIAogICAgICAgICBCYWNrLAogICAgICAgICBGb3J3YXJk
LApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL0NoYW5nZUxvZwko
cmV2aXNpb24gNzcxNDgpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEs
MyArMSwxOCBAQAorMjAxMS0wMS0zMSAgUWkgWmhhbmcgIDxxaS4yLnpoYW5nQG5va2lhLmNvbT4K
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBbUXRdIGVu
dW0gUVdlYlBhZ2U6OldlYkFjdGlvbiBkb2Vzbid0IGhhdmUgdmFsdWUgUVdlYlBhZ2U6OkNvcHlJ
bWFnZVVybAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9
NTI5NzQKKworICAgICAgICBBZGQgQ29weUltYWdlVXJsVG9DbGlwYm9hcmQgaW50byBRdFRlc3Ri
cm93c2VyLgorCisgICAgICAgICogUXRUZXN0QnJvd3Nlci93ZWJwYWdlLmNwcDoKKyAgICAgICAg
KFdlYlBhZ2U6OmNvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKToKKyAgICAgICAgKiBRdFRlc3RCcm93
c2VyL3dlYnBhZ2UuaDoKKyAgICAgICAgKiBRdFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwOgorICAg
ICAgICAoY3JlYXRlQ29udGV4dE1lbnUpOgorCiAyMDExLTAxLTMxICBUb255IENoYW5nICA8dG9u
eUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJpYyBTZWlkZWwuCkluZGV4
OiBUb29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F0
VGVzdEJyb3dzZXIvd2VicGFnZS5jcHAJKHJldmlzaW9uIDc1OTcxKQorKysgVG9vbHMvUXRUZXN0
QnJvd3Nlci93ZWJwYWdlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMTE1LDYgKzExNSwxMSBAQCB2
b2lkIFdlYlBhZ2U6Om9wZW5VcmxJbkRlZmF1bHRCcm93c2VyKGNvCiAjZW5kaWYKIH0KIAordm9p
ZCBXZWJQYWdlOjpjb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCit7CisgICAgdHJpZ2dlckFjdGlv
bihRV2ViUGFnZTo6Q29weUltYWdlVXJsVG9DbGlwYm9hcmQpOworfQorCiBRU3RyaW5nIFdlYlBh
Z2U6OnVzZXJBZ2VudEZvclVybChjb25zdCBRVXJsJiB1cmwpIGNvbnN0CiB7CiAgICAgaWYgKCFt
X3VzZXJBZ2VudC5pc0VtcHR5KCkpCkluZGV4OiBUb29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2Uu
aAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBUb29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuaAkocmV2aXNpb24g
NzU5NzEpCisrKyBUb29scy9RdFRlc3RCcm93c2VyL3dlYnBhZ2UuaAkod29ya2luZyBjb3B5KQpA
QCAtNjEsNiArNjEsNyBAQCBwdWJsaWM6CiAKIHB1YmxpYyBzbG90czoKICAgICB2b2lkIG9wZW5V
cmxJbkRlZmF1bHRCcm93c2VyKGNvbnN0IFFVcmwmIHVybCA9IFFVcmwoKSk7CisgICAgdm9pZCBj
b3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpOwogICAgIHZvaWQgc2V0VXNlckFnZW50KGNvbnN0IFFT
dHJpbmcmIHVhKSB7IG1fdXNlckFnZW50ID0gdWE7IH0KICAgICBib29sIHNob3VsZEludGVycnVw
dEphdmFTY3JpcHQoKTsKICAgICB2b2lkIGF1dGhlbnRpY2F0aW9uUmVxdWlyZWQoUU5ldHdvcmtS
ZXBseSosIFFBdXRoZW50aWNhdG9yKik7CkluZGV4OiBUb29scy9RdFRlc3RCcm93c2VyL3dlYnZp
ZXcuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT0KLS0tIFRvb2xzL1F0VGVzdEJyb3dzZXIvd2Vidmlldy5jcHAJKHJl
dmlzaW9uIDc1OTcxKQorKysgVG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJ2aWV3LmNwcAkod29ya2lu
ZyBjb3B5KQpAQCAtMjQyLDYgKzI0MiwxMSBAQCBzdGF0aWMgUU1lbnUqIGNyZWF0ZUNvbnRleHRN
ZW51KFFXZWJQYWdlCiAgICAgICAgIG5ld1RhYkFjdGlvbi0+c2V0RGF0YShyLmxpbmtVcmwoKSk7
CiAgICAgICAgIG1lbnUtPmluc2VydEFjdGlvbihtZW51LT5hY3Rpb25zKCkuYXQoMiksIG5ld1Rh
YkFjdGlvbik7CiAgICAgfQorICAgIGlmICghci5pbWFnZVVybCgpLmlzRW1wdHkoKSkgeworICAg
ICAgICBXZWJQYWdlKiB3ZWJQYWdlID0gcW9iamVjdF9jYXN0PFdlYlBhZ2UqPihwYWdlKTsKKyAg
ICAgICAgUUFjdGlvbiogY29weUltYWdlVXJsQWN0aW9uID0gbWVudS0+YWRkQWN0aW9uKCJDb3B5
IEltYWdlIEFkZHJlc3MiLCB3ZWJQYWdlLCBTTE9UKGNvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCkp
KTsKKyAgICAgICAgbWVudS0+aW5zZXJ0QWN0aW9uKG1lbnUtPmFjdGlvbnMoKS5hdCg0KSwgY29w
eUltYWdlVXJsQWN0aW9uKTsKKyAgICB9CiAgICAgcmV0dXJuIG1lbnU7CiB9CiAK
</data>
<flag name="review"
          id="72251"
          type_id="1"
          status="-"
          setter="benjamin"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>80794</attachid>
            <date>2011-02-01 11:33:23 -0800</date>
            <delta_ts>2011-02-03 07:31:04 -0800</delta_ts>
            <desc>patch3</desc>
            <filename>bug52974_3.patch</filename>
            <type>text/plain</type>
            <size>4218</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9X
ZWJLaXQvcXQvQ2hhbmdlTG9nCShyZXZpc2lvbiA3NzE0OCkKKysrIFNvdXJjZS9XZWJLaXQvcXQv
Q2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDEtMzEgIFFp
IFpoYW5nICA8cWkuMi56aGFuZ0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9C
T0RZIChPT1BTISkuCisKKyAgICAgICAgW1F0XSBlbnVtIFFXZWJQYWdlOjpXZWJBY3Rpb24gZG9l
c24ndCBoYXZlIHZhbHVlIFFXZWJQYWdlOjpDb3B5SW1hZ2VVcmwKKyAgICAgICAgaHR0cHM6Ly9i
dWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyOTc0CisKKyAgICAgICAgQWRkIFFXZWJQ
YWdlOjpDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCBpbnRvIFFXZWJQYWdlOjpXZWJBY3Rpb24uCisK
KyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuY3BwOgorICAgICAgICAoUVdlYlBhZ2U6OnRyaWdnZXJB
Y3Rpb24pOgorICAgICAgICAqIEFwaS9xd2VicGFnZS5oOgorCiAyMDExLTAxLTI4ICBEYW4gQmVy
bnN0ZWluICA8bWl0ekBhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgU2FtIFdlaW5p
Zy4KSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDc1OTcxKQorKysg
U291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIs
NiArMTYyLDcgQEAgc3RhdGljIGNvbnN0IGNoYXIqIGVkaXRvckNvbW1hbmRXZWJBY3RpbwogICAg
IDAsIC8vIE9wZW5JbWFnZUluTmV3V2luZG93LAogICAgIDAsIC8vIERvd25sb2FkSW1hZ2VUb0Rp
c2ssCiAgICAgMCwgLy8gQ29weUltYWdlVG9DbGlwYm9hcmQsCisgICAgMCwgLy8gQ29weUltYWdl
VXJsVG9DbGlwYm9hcmQsCiAKICAgICAwLCAvLyBCYWNrLAogICAgIDAsIC8vIEZvcndhcmQsCkBA
IC0xNjgwLDYgKzE2ODEsNyBAQCBJbnRQb2ludCBRV2ViUGFnZVByaXZhdGU6OlRvdWNoQWRqdXN0
ZXI6CiAgICAgXHZhbHVlIE9wZW5JbWFnZUluTmV3V2luZG93IE9wZW4gdGhlIGhpZ2hsaWdodGVk
IGltYWdlIGluIGEgbmV3IHdpbmRvdy4KICAgICBcdmFsdWUgRG93bmxvYWRJbWFnZVRvRGlzayBE
b3dubG9hZCB0aGUgaGlnaGxpZ2h0ZWQgaW1hZ2UgdG8gdGhlIGRpc2suCiAgICAgXHZhbHVlIENv
cHlJbWFnZVRvQ2xpcGJvYXJkIENvcHkgdGhlIGhpZ2hsaWdodGVkIGltYWdlIHRvIHRoZSBjbGlw
Ym9hcmQuCisgICAgXHZhbHVlIENvcHlJbWFnZVVybFRvQ2xpcGJvYXJkIENvcHkgdGhlIGhpZ2hs
aWdodGVkIGltYWdlJ3MgVVJMIHRvIHRoZSBjbGlwYm9hcmQuCiAgICAgXHZhbHVlIEJhY2sgTmF2
aWdhdGUgYmFjayBpbiB0aGUgaGlzdG9yeSBvZiBuYXZpZ2F0ZWQgbGlua3MuCiAgICAgXHZhbHVl
IEZvcndhcmQgTmF2aWdhdGUgZm9yd2FyZCBpbiB0aGUgaGlzdG9yeSBvZiBuYXZpZ2F0ZWQgbGlu
a3MuCiAgICAgXHZhbHVlIFN0b3AgU3RvcCBsb2FkaW5nIHRoZSBjdXJyZW50IHBhZ2UuCkBAIC0y
MzQyLDYgKzIzNDQsOSBAQCB2b2lkIFFXZWJQYWdlOjp0cmlnZ2VyQWN0aW9uKFdlYkFjdGlvbiBh
CiAgICAgICAgIGNhc2UgQ29weUltYWdlVG9DbGlwYm9hcmQ6CiAgICAgICAgICAgICBRQXBwbGlj
YXRpb246OmNsaXBib2FyZCgpLT5zZXRQaXhtYXAoZC0+aGl0VGVzdFJlc3VsdC5waXhtYXAoKSk7
CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb3B5SW1hZ2VVcmxUb0NsaXBib2Fy
ZDoKKyAgICAgICAgICAgIFFBcHBsaWNhdGlvbjo6Y2xpcGJvYXJkKCktPnNldFRleHQoZC0+aGl0
VGVzdFJlc3VsdC5pbWFnZVVybCgpLnRvU3RyaW5nKCkpOworICAgICAgICAgICAgYnJlYWs7CiAj
ZW5kaWYKICAgICAgICAgY2FzZSBCYWNrOgogICAgICAgICAgICAgZC0+cGFnZS0+Z29CYWNrKCk7
CkBAIC0yNzMwLDYgKzI3MzUsOSBAQCBRQWN0aW9uICpRV2ViUGFnZTo6YWN0aW9uKFdlYkFjdGlv
biBhY3RpCiAgICAgICAgIGNhc2UgQ29weUltYWdlVG9DbGlwYm9hcmQ6CiAgICAgICAgICAgICB0
ZXh0ID0gY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKTsKICAgICAgICAg
ICAgIGJyZWFrOworICAgICAgICBjYXNlIENvcHlJbWFnZVVybFRvQ2xpcGJvYXJkOgorICAgICAg
ICAgICAgdGV4dCA9ICB0cigiQ29weSBJbWFnZSBBZGRyZXNzIik7CisgICAgICAgICAgICBicmVh
azsKIAogICAgICAgICBjYXNlIEJhY2s6CiAgICAgICAgICAgICB0ZXh0ID0gY29udGV4dE1lbnVJ
dGVtVGFnR29CYWNrKCk7CkluZGV4OiBTb3VyY2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5oCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmgJKHJldmlzaW9uIDc1
OTcxKQorKysgU291cmNlL1dlYktpdC9xdC9BcGkvcXdlYnBhZ2UuaAkod29ya2luZyBjb3B5KQpA
QCAtMTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoKICAgICAgICAgT3BlbkltYWdlSW5OZXdXaW5kb3cs
CiAgICAgICAgIERvd25sb2FkSW1hZ2VUb0Rpc2ssCiAgICAgICAgIENvcHlJbWFnZVRvQ2xpcGJv
YXJkLAorICAgICAgICBDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCwKIAogICAgICAgICBCYWNrLAog
ICAgICAgICBGb3J3YXJkLApJbmRleDogVG9vbHMvQ2hhbmdlTG9nCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFRv
b2xzL0NoYW5nZUxvZwkocmV2aXNpb24gNzcxNDgpCisrKyBUb29scy9DaGFuZ2VMb2cJKHdvcmtp
bmcgY29weSkKQEAgLTEsMyArMSwxOCBAQAorMjAxMS0wMS0zMSAgUWkgWmhhbmcgIDxxaS4yLnpo
YW5nQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKwor
ICAgICAgICBbUXRdIGVudW0gUVdlYlBhZ2U6OldlYkFjdGlvbiBkb2Vzbid0IGhhdmUgdmFsdWUg
UVdlYlBhZ2U6OkNvcHlJbWFnZVVybAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9NTI5NzQKKworICAgICAgICBBZGQgQ29weUltYWdlVXJsVG9DbGlwYm9h
cmQgaW50byBRdFRlc3Ricm93c2VyLgorCisgICAgICAgICogUXRUZXN0QnJvd3Nlci93ZWJwYWdl
LmNwcDoKKyAgICAgICAgKFdlYlBhZ2U6OmNvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKToKKyAgICAg
ICAgKiBRdFRlc3RCcm93c2VyL3dlYnBhZ2UuaDoKKyAgICAgICAgKiBRdFRlc3RCcm93c2VyL3dl
YnZpZXcuY3BwOgorICAgICAgICAoY3JlYXRlQ29udGV4dE1lbnUpOgorCiAyMDExLTAxLTMxICBU
b255IENoYW5nICA8dG9ueUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRXJp
YyBTZWlkZWwuCkluZGV4OiBUb29scy9RdFRlc3RCcm93c2VyL3dlYnZpZXcuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFRvb2xzL1F0VGVzdEJyb3dzZXIvd2Vidmlldy5jcHAJKHJldmlzaW9uIDc1OTcxKQor
KysgVG9vbHMvUXRUZXN0QnJvd3Nlci93ZWJ2aWV3LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjQy
LDYgKzI0MiwxMCBAQCBzdGF0aWMgUU1lbnUqIGNyZWF0ZUNvbnRleHRNZW51KFFXZWJQYWdlCiAg
ICAgICAgIG5ld1RhYkFjdGlvbi0+c2V0RGF0YShyLmxpbmtVcmwoKSk7CiAgICAgICAgIG1lbnUt
Pmluc2VydEFjdGlvbihtZW51LT5hY3Rpb25zKCkuYXQoMiksIG5ld1RhYkFjdGlvbik7CiAgICAg
fQorICAgIGlmICghci5pbWFnZVVybCgpLmlzRW1wdHkoKSkgeworICAgICAgICBRQWN0aW9uKiBj
b3B5SW1hZ2VVcmxBY3Rpb24gPSBwYWdlLT5hY3Rpb24oUVdlYlBhZ2U6OkNvcHlJbWFnZVVybFRv
Q2xpcGJvYXJkKTsKKyAgICAgICAgbWVudS0+aW5zZXJ0QWN0aW9uKG1lbnUtPmFjdGlvbnMoKS5h
dCg0KSwgY29weUltYWdlVXJsQWN0aW9uKTsKKyAgICB9CiAgICAgcmV0dXJuIG1lbnU7CiB9CiAK
</data>
<flag name="review"
          id="72288"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81059</attachid>
            <date>2011-02-03 07:31:04 -0800</date>
            <delta_ts>2011-02-03 11:04:07 -0800</delta_ts>
            <desc>patch4</desc>
            <filename>bug52974_4.patch</filename>
            <type>text/plain</type>
            <size>11587</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NDg3KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMDMgIFFpIFpoYW5n
ICA8cWkuMi56aGFuZ0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW1F0XSBlbnVtIFFXZWJQYWdlOjpXZWJBY3Rpb24gZG9lc24ndCBo
YXZlIHZhbHVlIFFXZWJQYWdlOjpDb3B5SW1hZ2VVcmwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyOTc0CisKKyAgICAgICAgQWRkIENvbnRleHRNZW51
SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkIGludG8gc3RhbmRhcmQgYWN0aW9uIGJ1dCBR
dCBwbGF0Zm9ybSBzcGVjaWZpYy4KKworICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4
dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9s
bGVyOjpwb3B1bGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6
OmNoZWNrT3JFbmFibGVJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJ
dGVtLmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisKIDIwMTEtMDItMDMgIE5pa29sYXMgWmltbWVybWFu
biAgPG56aW1tZXJtYW5uQHJpbS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgRGlyayBTY2h1
bHplLgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVudUNvbnRyb2xsZXIuY3Bw
Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVy
LmNwcAkocmV2aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51
Q29udHJvbGxlci5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIwNyw2ICsyMDcsMTEgQEAgdm9pZCBD
b250ZXh0TWVudUNvbnRyb2xsZXI6OmNvbnRleHRNZW51SQogICAgICAgICAvLyBGb3Igbm93LCBj
YWxsIGludG8gdGhlIGNsaWVudC4gVGhpcyBpcyB0ZW1wb3JhcnkhCiAgICAgICAgIGZyYW1lLT5l
ZGl0b3IoKS0+Y29weUltYWdlKG1faGl0VGVzdFJlc3VsdCk7CiAgICAgICAgIGJyZWFrOworI2lm
IFBMQVRGT1JNKFFUKQorICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9D
bGlwYm9hcmQ6CisgICAgICAgIGZyYW1lLT5lZGl0b3IoKS0+Y29weVVSTChtX2hpdFRlc3RSZXN1
bHQuYWJzb2x1dGVJbWFnZVVSTCgpLCBtX2hpdFRlc3RSZXN1bHQudGV4dENvbnRlbnQoKSk7Cisg
ICAgICAgIGJyZWFrOworI2VuZGlmCiAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVk
aWFJbk5ld1dpbmRvdzoKICAgICAgICAgb3Blbk5ld1dpbmRvdyhtX2hpdFRlc3RSZXN1bHQuYWJz
b2x1dGVNZWRpYVVSTCgpLCBmcmFtZSk7CiAgICAgICAgIGJyZWFrOwpAQCAtNjQyLDYgKzY0Nywx
MCBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6cG9wdWxhdGUoKQogICAgICAgICBjb250
ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCkpOwogICAgIENvbnRleHRNZW51SXRl
bSBDb3B5SW1hZ2VJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRv
Q2xpcGJvYXJkLCAKICAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9h
cmQoKSk7CisjaWYgUExBVEZPUk0oUVQpCisgICAgQ29udGV4dE1lbnVJdGVtIENvcHlJbWFnZVVy
bEl0ZW0oQWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9h
cmQsIAorICAgICAgICBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgp
KTsKKyNlbmRpZgogICAgIENvbnRleHRNZW51SXRlbSBPcGVuTWVkaWFJbk5ld1dpbmRvd0l0ZW0o
QWN0aW9uVHlwZSwgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlhSW5OZXdXaW5kb3csIFN0cmlu
ZygpKTsKICAgICBDb250ZXh0TWVudUl0ZW0gQ29weU1lZGlhTGlua0l0ZW0oQWN0aW9uVHlwZSwg
Q29udGV4dE1lbnVJdGVtVGFnQ29weU1lZGlhTGlua1RvQ2xpcGJvYXJkLCAKICAgICAgICAgU3Ry
aW5nKCkpOwpAQCAtNzIwLDYgKzcyOSw5IEBAIHZvaWQgQ29udGV4dE1lbnVDb250cm9sbGVyOjpw
b3B1bGF0ZSgpCiAgICAgICAgICAgICBhcHBlbmRJdGVtKERvd25sb2FkSW1hZ2VJdGVtLCBtX2Nv
bnRleHRNZW51LmdldCgpKTsKICAgICAgICAgICAgIGlmIChpbWFnZVVSTC5pc0xvY2FsRmlsZSgp
IHx8IG1faGl0VGVzdFJlc3VsdC5pbWFnZSgpKQogICAgICAgICAgICAgICAgIGFwcGVuZEl0ZW0o
Q29weUltYWdlSXRlbSwgbV9jb250ZXh0TWVudS5nZXQoKSk7CisjaWYgUExBVEZPUk0oUVQpCisg
ICAgICAgICAgICBhcHBlbmRJdGVtKENvcHlJbWFnZVVybEl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0
KCkpOworI2VuZGlmCiAgICAgICAgIH0KIAogICAgICAgICBLVVJMIG1lZGlhVVJMID0gbV9oaXRU
ZXN0UmVzdWx0LmFic29sdXRlTWVkaWFVUkwoKTsKQEAgLTExNzIsNiArMTE4NCw5IEBAIHZvaWQg
Q29udGV4dE1lbnVDb250cm9sbGVyOjpjaGVja09yRW5hYmwKICAgICAgICAgY2FzZSBDb250ZXh0
TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdzoKICAgICAgICAgY2FzZSBDb250ZXh0TWVu
dUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrOgogICAgICAgICBjYXNlIENvbnRleHRNZW51SXRl
bVRhZ0NvcHlJbWFnZVRvQ2xpcGJvYXJkOgorI2lmIFBMQVRGT1JNKFFUKQorICAgICAgICBjYXNl
IENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkOgorI2VuZGlmCiAgICAg
ICAgICAgICBicmVhazsKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0ZW1UYWdPcGVuTWVkaWFJ
bk5ld1dpbmRvdzoKICAgICAgICAgICAgIGlmIChtX2hpdFRlc3RSZXN1bHQubWVkaWFJc1ZpZGVv
KCkpCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAo9PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0uaAkocmV2
aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Db250ZXh0TWVudUl0ZW0u
aAkod29ya2luZyBjb3B5KQpAQCAtNjUsNiArNjUsOSBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAg
ICAgICAgIENvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93LAogICAgICAgICBD
b250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrLAogICAgICAgICBDb250ZXh0TWVu
dUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZCwKKyNpZiBQTEFURk9STShRVCkKKyAgICAgICAg
Q29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQsCisjZW5kaWYKICAgICAg
ICAgQ29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3csCiAgICAgICAgIENvbnRl
eHRNZW51SXRlbVRhZ0NvcHksCiAgICAgICAgIENvbnRleHRNZW51SXRlbVRhZ0dvQmFjaywKSW5k
ZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgKPT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaAko
cmV2aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25T
dHJhdGVneS5oCSh3b3JraW5nIGNvcHkpCkBAIC01NSw2ICs1NSw5IEBAIHB1YmxpYzogICAgCiAg
ICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3co
KSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFn
ZVRvRGlzaygpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5
SW1hZ2VUb0NsaXBib2FyZCgpID0gMDsKKyNpZiBQTEFURk9STShRVCkKKyAgICB2aXJ0dWFsIFN0
cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpID0gMDsKKyNl
bmRpZgogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3
V2luZG93KCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHko
KSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCkgPSAw
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3RyaW5ncy5jcHAJ
KHJldmlzaW9uIDc1OTcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemVkU3Ry
aW5ncy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTEwNCw2ICsxMDQsMTMgQEAgU3RyaW5nIGNvbnRl
eHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcAogICAgIHJldHVybiBwbGF0Zm9ybVN0cmF0ZWdp
ZXMoKS0+bG9jYWxpemF0aW9uU3RyYXRlZ3koKS0+Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdl
VG9DbGlwYm9hcmQoKTsKIH0KIAorI2lmIFBMQVRGT1JNKFFUKQorU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKCkKK3sKKyAgICByZXR1cm4gcGxhdGZvcm1T
dHJhdGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlJbWFnZVVybFRvQ2xpcGJvYXJkKCk7Cit9CisjZW5kaWYKKwogU3RyaW5nIGNvbnRleHRNZW51
SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gcGxhdGZvcm1TdHJh
dGVnaWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ09wZW5G
cmFtZUluTmV3V2luZG93KCk7CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6
ZWRTdHJpbmdzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oCShyZXZpc2lvbiA3NTk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L0xvY2FsaXplZFN0cmluZ3MuaAkod29ya2luZyBjb3B5KQpAQCAtNTEsNiArNTEsOSBAQCBuYW1l
c3BhY2UgV2ViQ29yZSB7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUlu
TmV3V2luZG93KCk7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VU
b0Rpc2soKTsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9h
cmQoKTsKKyNpZiBQTEFURk9STShRVCkKKyAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVXJsVG9DbGlwYm9hcmQoKTsKKyNlbmRpZgogICAgIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpOwogICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdDb3B5KCk7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpOwpJbmRleDog
U291cmNlL1dlYktpdC9xdC9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9x
dC9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NDg3KQorKysgU291cmNlL1dlYktpdC9xdC9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwyMSBAQAorMjAxMS0wMi0wMyAgUWkgWmhhbmcg
IDxxaS4yLnpoYW5nQG5va2lhLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9P
UFMhKS4KKworICAgICAgICBbUXRdIGVudW0gUVdlYlBhZ2U6OldlYkFjdGlvbiBkb2Vzbid0IGhh
dmUgdmFsdWUgUVdlYlBhZ2U6OkNvcHlJbWFnZVVybAorICAgICAgICBodHRwczovL2J1Z3Mud2Vi
a2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NTI5NzQKKworICAgICAgICBBZGQgUVdlYlBhZ2U6OkNv
cHlJbWFnZVVybFRvQ2xpcGJvYXJkIGludG8gUVdlYlBhZ2U6OldlYkFjdGlvbi4KKworICAgICAg
ICAqIEFwaS9xd2VicGFnZS5jcHA6CisgICAgICAgICh3ZWJBY3Rpb25Gb3JDb250ZXh0TWVudUFj
dGlvbik6CisgICAgICAgIChRV2ViUGFnZTo6dHJpZ2dlckFjdGlvbik6CisgICAgICAgIChRV2Vi
UGFnZTo6YWN0aW9uKToKKyAgICAgICAgKiBBcGkvcXdlYnBhZ2UuaDoKKyAgICAgICAgKiBXZWJD
b3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwOgorICAgICAgICAoV2ViUGxhdGZv
cm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCk6
CisgICAgICAgICogV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmg6CisKIDIw
MTEtMDItMDEgIENzYWJhIE9zenRyb2dvbsOhYyAgPG9zc3lAd2Via2l0Lm9yZz4KIAogICAgICAg
ICBVbnJldmlld2VkIFF0IGJ1aWxkZml4IGFmdGVyIHI3NzI4Ni4KSW5kZXg6IFNvdXJjZS9XZWJL
aXQvcXQvQXBpL3F3ZWJwYWdlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L0Fw
aS9xd2VicGFnZS5jcHAJKHJldmlzaW9uIDc1OTcxKQorKysgU291cmNlL1dlYktpdC9xdC9BcGkv
cXdlYnBhZ2UuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xNjIsNiArMTYyLDcgQEAgc3RhdGljIGNv
bnN0IGNoYXIqIGVkaXRvckNvbW1hbmRXZWJBY3RpbwogICAgIDAsIC8vIE9wZW5JbWFnZUluTmV3
V2luZG93LAogICAgIDAsIC8vIERvd25sb2FkSW1hZ2VUb0Rpc2ssCiAgICAgMCwgLy8gQ29weUlt
YWdlVG9DbGlwYm9hcmQsCisgICAgMCwgLy8gQ29weUltYWdlVXJsVG9DbGlwYm9hcmQsCiAKICAg
ICAwLCAvLyBCYWNrLAogICAgIDAsIC8vIEZvcndhcmQsCkBAIC00MDQsNiArNDA1LDcgQEAgc3Rh
dGljIFFXZWJQYWdlOjpXZWJBY3Rpb24gd2ViQWN0aW9uRm9yQwogICAgICAgICBjYXNlIFdlYkNv
cmU6OkNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93OiByZXR1cm4gUVdlYlBh
Z2U6Ok9wZW5JbWFnZUluTmV3V2luZG93OwogICAgICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRN
ZW51SXRlbVRhZ0Rvd25sb2FkSW1hZ2VUb0Rpc2s6IHJldHVybiBRV2ViUGFnZTo6RG93bmxvYWRJ
bWFnZVRvRGlzazsKICAgICAgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdDb3B5
SW1hZ2VUb0NsaXBib2FyZDogcmV0dXJuIFFXZWJQYWdlOjpDb3B5SW1hZ2VUb0NsaXBib2FyZDsK
KyAgICAgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0Ns
aXBib2FyZDogcmV0dXJuIFFXZWJQYWdlOjpDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZDsKICAgICAg
ICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdzog
cmV0dXJuIFFXZWJQYWdlOjpPcGVuRnJhbWVJbk5ld1dpbmRvdzsKICAgICAgICAgY2FzZSBXZWJD
b3JlOjpDb250ZXh0TWVudUl0ZW1UYWdDb3B5OiByZXR1cm4gUVdlYlBhZ2U6OkNvcHk7CiAgICAg
ICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4dE1lbnVJdGVtVGFnR29CYWNrOiByZXR1cm4gUVdlYlBh
Z2U6OkJhY2s7CkBAIC0xNjgwLDYgKzE2ODIsNyBAQCBJbnRQb2ludCBRV2ViUGFnZVByaXZhdGU6
OlRvdWNoQWRqdXN0ZXI6CiAgICAgXHZhbHVlIE9wZW5JbWFnZUluTmV3V2luZG93IE9wZW4gdGhl
IGhpZ2hsaWdodGVkIGltYWdlIGluIGEgbmV3IHdpbmRvdy4KICAgICBcdmFsdWUgRG93bmxvYWRJ
bWFnZVRvRGlzayBEb3dubG9hZCB0aGUgaGlnaGxpZ2h0ZWQgaW1hZ2UgdG8gdGhlIGRpc2suCiAg
ICAgXHZhbHVlIENvcHlJbWFnZVRvQ2xpcGJvYXJkIENvcHkgdGhlIGhpZ2hsaWdodGVkIGltYWdl
IHRvIHRoZSBjbGlwYm9hcmQuCisgICAgXHZhbHVlIENvcHlJbWFnZVVybFRvQ2xpcGJvYXJkIENv
cHkgdGhlIGhpZ2hsaWdodGVkIGltYWdlJ3MgVVJMIHRvIHRoZSBjbGlwYm9hcmQuCiAgICAgXHZh
bHVlIEJhY2sgTmF2aWdhdGUgYmFjayBpbiB0aGUgaGlzdG9yeSBvZiBuYXZpZ2F0ZWQgbGlua3Mu
CiAgICAgXHZhbHVlIEZvcndhcmQgTmF2aWdhdGUgZm9yd2FyZCBpbiB0aGUgaGlzdG9yeSBvZiBu
YXZpZ2F0ZWQgbGlua3MuCiAgICAgXHZhbHVlIFN0b3AgU3RvcCBsb2FkaW5nIHRoZSBjdXJyZW50
IHBhZ2UuCkBAIC0yMzQyLDYgKzIzNDUsOSBAQCB2b2lkIFFXZWJQYWdlOjp0cmlnZ2VyQWN0aW9u
KFdlYkFjdGlvbiBhCiAgICAgICAgIGNhc2UgQ29weUltYWdlVG9DbGlwYm9hcmQ6CiAgICAgICAg
ICAgICBRQXBwbGljYXRpb246OmNsaXBib2FyZCgpLT5zZXRQaXhtYXAoZC0+aGl0VGVzdFJlc3Vs
dC5waXhtYXAoKSk7CiAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgY2FzZSBDb3B5SW1hZ2VV
cmxUb0NsaXBib2FyZDoKKyAgICAgICAgICAgIFFBcHBsaWNhdGlvbjo6Y2xpcGJvYXJkKCktPnNl
dFRleHQoZC0+aGl0VGVzdFJlc3VsdC5pbWFnZVVybCgpLnRvU3RyaW5nKCkpOworICAgICAgICAg
ICAgYnJlYWs7CiAjZW5kaWYKICAgICAgICAgY2FzZSBCYWNrOgogICAgICAgICAgICAgZC0+cGFn
ZS0+Z29CYWNrKCk7CkBAIC0yNzMwLDYgKzI3MzYsOSBAQCBRQWN0aW9uICpRV2ViUGFnZTo6YWN0
aW9uKFdlYkFjdGlvbiBhY3RpCiAgICAgICAgIGNhc2UgQ29weUltYWdlVG9DbGlwYm9hcmQ6CiAg
ICAgICAgICAgICB0ZXh0ID0gY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQo
KTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENvcHlJbWFnZVVybFRvQ2xpcGJv
YXJkOgorICAgICAgICAgICAgdGV4dCA9IGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRv
Q2xpcGJvYXJkKCk7CisgICAgICAgICAgICBicmVhazsKIAogICAgICAgICBjYXNlIEJhY2s6CiAg
ICAgICAgICAgICB0ZXh0ID0gY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCk7CkluZGV4OiBTb3Vy
Y2UvV2ViS2l0L3F0L0FwaS9xd2VicGFnZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQv
cXQvQXBpL3F3ZWJwYWdlLmgJKHJldmlzaW9uIDc1OTcxKQorKysgU291cmNlL1dlYktpdC9xdC9B
cGkvcXdlYnBhZ2UuaAkod29ya2luZyBjb3B5KQpAQCAtMTA1LDYgKzEwNSw3IEBAIHB1YmxpYzoK
ICAgICAgICAgT3BlbkltYWdlSW5OZXdXaW5kb3csCiAgICAgICAgIERvd25sb2FkSW1hZ2VUb0Rp
c2ssCiAgICAgICAgIENvcHlJbWFnZVRvQ2xpcGJvYXJkLAorICAgICAgICBDb3B5SW1hZ2VVcmxU
b0NsaXBib2FyZCwKIAogICAgICAgICBCYWNrLAogICAgICAgICBGb3J3YXJkLApJbmRleDogU291
cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmNwcAkocmV2aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2ViS2l0L3F0L1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTIw
MCw2ICsyMDAsMTEgQEAgU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbgog
ICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQYWdlIiwgIkNvcHkg
SW1hZ2UiLCAiQ29weSBMaW5rIGNvbnRleHQgbWVudSBpdGVtIik7CiB9CiAKK1N0cmluZyBXZWJQ
bGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJv
YXJkKCkKK3sKKyAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6dHJhbnNsYXRlKCJRV2ViUGFn
ZSIsICJDb3B5IEltYWdlIEFkZHJlc3MiLCAiQ29weSBJbWFnZSBBZGRyZXNzIG1lbnUgaXRlbSIp
OworfQorCiBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdP
cGVuVmlkZW9Jbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRy
YW5zbGF0ZSgiUVdlYlBhZ2UiLCAiT3BlbiBWaWRlbyIsICJPcGVuIFZpZGVvIGluIE5ldyBXaW5k
b3ciKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1T
dHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaAkocmV2aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2Vi
S2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNv
cHkpCkBAIC02Niw2ICs2Niw3IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBj
b250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdygpOwogICAgIHZpcnR1YWwgV1RG
OjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpOwogICAgIHZp
cnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQo
KTsKKyAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVy
bFRvQ2xpcGJvYXJkKCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1U
YWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4
dE1lbnVJdGVtVGFnQ29weSgpOwogICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnR29CYWNrKCk7Cg==
</data>
<flag name="review"
          id="72593"
          type_id="1"
          status="-"
          setter="kling"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81090</attachid>
            <date>2011-02-03 11:04:07 -0800</date>
            <delta_ts>2011-02-04 06:34:45 -0800</delta_ts>
            <desc>patch5</desc>
            <filename>bug52974_5.patch</filename>
            <type>text/plain</type>
            <size>13983</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NTE2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMDMgIFFpIFpoYW5n
ICA8cWkuMi56aGFuZ0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW1F0XSBlbnVtIFFXZWJQYWdlOjpXZWJBY3Rpb24gZG9lc24ndCBo
YXZlIHZhbHVlIFFXZWJQYWdlOjpDb3B5SW1hZ2VVcmwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyOTc0CisKKyAgICAgICAgQWRkIENvbnRleHRNZW51
SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkIGludG8gc3RhbmRhcmQgYWN0aW9uIGJ1dCBR
dCBwbGF0Zm9ybSBzcGVjaWZpYy4KKworICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4
dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9s
bGVyOjpwb3B1bGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6
OmNoZWNrT3JFbmFibGVJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJ
dGVtLmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisKIDIwMTEtMDItMDMgIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVs
ZG1hbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHAJKHJldmlzaW9uIDc1OTcxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsNiArMjA3LDExIEBAIHZvaWQg
Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUkKICAgICAgICAgLy8gRm9yIG5vdywg
Y2FsbCBpbnRvIHRoZSBjbGllbnQuIFRoaXMgaXMgdGVtcG9yYXJ5IQogICAgICAgICBmcmFtZS0+
ZWRpdG9yKCktPmNvcHlJbWFnZShtX2hpdFRlc3RSZXN1bHQpOwogICAgICAgICBicmVhazsKKyNp
ZiBQTEFURk9STShRVCkKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRv
Q2xpcGJvYXJkOgorICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmNvcHlVUkwobV9oaXRUZXN0UmVz
dWx0LmFic29sdXRlSW1hZ2VVUkwoKSwgbV9oaXRUZXN0UmVzdWx0LnRleHRDb250ZW50KCkpOwor
ICAgICAgICBicmVhazsKKyNlbmRpZgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1l
ZGlhSW5OZXdXaW5kb3c6CiAgICAgICAgIG9wZW5OZXdXaW5kb3cobV9oaXRUZXN0UmVzdWx0LmFi
c29sdXRlTWVkaWFVUkwoKSwgZnJhbWUpOwogICAgICAgICBicmVhazsKQEAgLTY0Miw2ICs2NDcs
MTAgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICAgICAgY29u
dGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpKTsKICAgICBDb250ZXh0TWVudUl0
ZW0gQ29weUltYWdlSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VU
b0NsaXBib2FyZCwgCiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJv
YXJkKCkpOworI2lmIFBMQVRGT1JNKFFUKQorICAgIENvbnRleHRNZW51SXRlbSBDb3B5SW1hZ2VV
cmxJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJv
YXJkLCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQo
KSk7CisjZW5kaWYKICAgICBDb250ZXh0TWVudUl0ZW0gT3Blbk1lZGlhSW5OZXdXaW5kb3dJdGVt
KEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93LCBTdHJp
bmcoKSk7CiAgICAgQ29udGV4dE1lbnVJdGVtIENvcHlNZWRpYUxpbmtJdGVtKEFjdGlvblR5cGUs
IENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCwgCiAgICAgICAgIFN0
cmluZygpKTsKQEAgLTcyMCw2ICs3MjksOSBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6
cG9wdWxhdGUoKQogICAgICAgICAgICAgYXBwZW5kSXRlbShEb3dubG9hZEltYWdlSXRlbSwgbV9j
b250ZXh0TWVudS5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoaW1hZ2VVUkwuaXNMb2NhbEZpbGUo
KSB8fCBtX2hpdFRlc3RSZXN1bHQuaW1hZ2UoKSkKICAgICAgICAgICAgICAgICBhcHBlbmRJdGVt
KENvcHlJbWFnZUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOworI2lmIFBMQVRGT1JNKFFUKQor
ICAgICAgICAgICAgYXBwZW5kSXRlbShDb3B5SW1hZ2VVcmxJdGVtLCBtX2NvbnRleHRNZW51Lmdl
dCgpKTsKKyNlbmRpZgogICAgICAgICB9CiAKICAgICAgICAgS1VSTCBtZWRpYVVSTCA9IG1faGl0
VGVzdFJlc3VsdC5hYnNvbHV0ZU1lZGlhVVJMKCk7CkBAIC0xMTcyLDYgKzExODQsOSBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJsCiAgICAgICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3c6CiAgICAgICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzazoKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZDoKKyNpZiBQTEFURk9STShRVCkKKyAgICAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZDoKKyNlbmRpZgogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlh
SW5OZXdXaW5kb3c6CiAgICAgICAgICAgICBpZiAobV9oaXRUZXN0UmVzdWx0Lm1lZGlhSXNWaWRl
bygpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgJKHJl
dmlzaW9uIDc1OTcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVt
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdywKICAgICAgICAg
Q29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaywKICAgICAgICAgQ29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQsCisjaWYgUExBVEZPUk0oUVQpCisgICAgICAg
IENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkLAorI2VuZGlmCiAgICAg
ICAgIENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93LAogICAgICAgICBDb250
ZXh0TWVudUl0ZW1UYWdDb3B5LAogICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdHb0JhY2ssCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgJ
KHJldmlzaW9uIDc1OTcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9u
U3RyYXRlZ3kuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6ICAgIAog
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1h
Z2VUb0Rpc2soKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVG9DbGlwYm9hcmQoKSA9IDA7CisjaWYgUExBVEZPUk0oUVQpCisgICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKSA9IDA7Cisj
ZW5kaWYKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5l
d1dpbmRvdygpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5
KCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpID0g
MDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3Bw
CShyZXZpc2lvbiA3NTk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDEzIEBAIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXAKICAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVn
aWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFn
ZVRvQ2xpcGJvYXJkKCk7CiB9CiAKKyNpZiBQTEFURk9STShRVCkKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdD
b3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpOworfQorI2VuZGlmCisKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPcGVu
RnJhbWVJbk5ld1dpbmRvdygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaAkocmV2aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJ
bk5ld1dpbmRvdygpOwogICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdl
VG9EaXNrKCk7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJv
YXJkKCk7CisjaWYgUExBVEZPUk0oUVQpCisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlJbWFnZVVybFRvQ2xpcGJvYXJkKCk7CisjZW5kaWYKICAgICBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKTsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ29weSgpOwogICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cJKHJldmlzaW9uIDc3NTE2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDItMDMgIFFpIFpoYW5nICA8cWku
Mi56aGFuZ0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW1F0XSBlbnVtIFFXZWJQYWdlOjpXZWJBY3Rpb24gZG9lc24ndCBoYXZlIHZh
bHVlIFFXZWJQYWdlOjpDb3B5SW1hZ2VVcmwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUyOTc0CisKKyAgICAgICAgQWRkIENvbnRleHRNZW51SXRlbVRh
Z0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkIGludG8gc3RhbmRhcmQgYWN0aW9uIGJ1dCBRdCBwbGF0
Zm9ybSBzcGVjaWZpYy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoK
KwogMjAxMS0wMi0wMyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZp
eCBRdCBidWlsZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHJl
dmlzaW9uIDc1OTcxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsNiArMjA2
LDEzIEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW4KICAgICByZXR1
cm4gVUlfU1RSSU5HKCJDb3B5IEltYWdlIiwgIkNvcHkgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAorI2lmIFBMQVRGT1JNKFF0KQorU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVy
biBVSV9TVFJJTkcoIkNvcHkgSW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdlIEFkZHJlc3MgbWVu
dSBpdGVtIik7Cit9CisjZW5kaWYKKwogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiBVSV9T
VFJJTkcoIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIsICJPcGVuIFZpZGVvIGluIE5ldyBXaW5k
b3cgY29udGV4dCBtZW51IGl0ZW0iKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaAkocmV2aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2
ICs2OCw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
T3BlbkltYWdlSW5OZXdXaW5kb3coKTsKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKTsKKyNpZiBQTEFURk9STShRdCkKKyAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgp
OworI2VuZGlmCiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1l
SW5OZXdXaW5kb3coKTsKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5
KCk7CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNzc1MTYpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDExLTAyLTAzICBRaSBaaGFu
ZyAgPHFpLjIuemhhbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtRdF0gZW51bSBRV2ViUGFnZTo6V2ViQWN0aW9uIGRvZXNuJ3Qg
aGF2ZSB2YWx1ZSBRV2ViUGFnZTo6Q29weUltYWdlVXJsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjk3NAorCisgICAgICAgIEFkZCBRV2ViUGFnZTo6
Q29weUltYWdlVXJsVG9DbGlwYm9hcmQgaW50byBRV2ViUGFnZTo6V2ViQWN0aW9uLgorCisgICAg
ICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKHdlYkFjdGlvbkZvckNvbnRleHRNZW51
QWN0aW9uKToKKyAgICAgICAgKFFXZWJQYWdlOjp0cmlnZ2VyQWN0aW9uKToKKyAgICAgICAgKFFX
ZWJQYWdlOjphY3Rpb24pOgorICAgICAgICAqIEFwaS9xd2VicGFnZS5oOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJk
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKwog
MjAxMS0wMi0wMSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgUXQgYnVpbGRmaXggYWZ0ZXIgcjc3Mjg2LgpJbmRleDogU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQv
QXBpL3F3ZWJwYWdlLmNwcAkocmV2aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0Fw
aS9xd2VicGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw2ICsxNjIsNyBAQCBzdGF0aWMg
Y29uc3QgY2hhciogZWRpdG9yQ29tbWFuZFdlYkFjdGlvCiAgICAgMCwgLy8gT3BlbkltYWdlSW5O
ZXdXaW5kb3csCiAgICAgMCwgLy8gRG93bmxvYWRJbWFnZVRvRGlzaywKICAgICAwLCAvLyBDb3B5
SW1hZ2VUb0NsaXBib2FyZCwKKyAgICAwLCAvLyBDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCwKIAog
ICAgIDAsIC8vIEJhY2ssCiAgICAgMCwgLy8gRm9yd2FyZCwKQEAgLTQwNCw2ICs0MDUsNyBAQCBz
dGF0aWMgUVdlYlBhZ2U6OldlYkFjdGlvbiB3ZWJBY3Rpb25Gb3JDCiAgICAgICAgIGNhc2UgV2Vi
Q29yZTo6Q29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3c6IHJldHVybiBRV2Vi
UGFnZTo6T3BlbkltYWdlSW5OZXdXaW5kb3c7CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4
dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzazogcmV0dXJuIFFXZWJQYWdlOjpEb3dubG9h
ZEltYWdlVG9EaXNrOwogICAgICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlJbWFnZVRvQ2xpcGJvYXJkOiByZXR1cm4gUVdlYlBhZ2U6OkNvcHlJbWFnZVRvQ2xpcGJvYXJk
OworICAgICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRv
Q2xpcGJvYXJkOiByZXR1cm4gUVdlYlBhZ2U6OkNvcHlJbWFnZVVybFRvQ2xpcGJvYXJkOwogICAg
ICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93
OiByZXR1cm4gUVdlYlBhZ2U6Ok9wZW5GcmFtZUluTmV3V2luZG93OwogICAgICAgICBjYXNlIFdl
YkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0NvcHk6IHJldHVybiBRV2ViUGFnZTo6Q29weTsKICAg
ICAgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdHb0JhY2s6IHJldHVybiBRV2Vi
UGFnZTo6QmFjazsKQEAgLTE2ODAsNiArMTY4Miw3IEBAIEludFBvaW50IFFXZWJQYWdlUHJpdmF0
ZTo6VG91Y2hBZGp1c3RlcjoKICAgICBcdmFsdWUgT3BlbkltYWdlSW5OZXdXaW5kb3cgT3BlbiB0
aGUgaGlnaGxpZ2h0ZWQgaW1hZ2UgaW4gYSBuZXcgd2luZG93LgogICAgIFx2YWx1ZSBEb3dubG9h
ZEltYWdlVG9EaXNrIERvd25sb2FkIHRoZSBoaWdobGlnaHRlZCBpbWFnZSB0byB0aGUgZGlzay4K
ICAgICBcdmFsdWUgQ29weUltYWdlVG9DbGlwYm9hcmQgQ29weSB0aGUgaGlnaGxpZ2h0ZWQgaW1h
Z2UgdG8gdGhlIGNsaXBib2FyZC4KKyAgICBcdmFsdWUgQ29weUltYWdlVXJsVG9DbGlwYm9hcmQg
Q29weSB0aGUgaGlnaGxpZ2h0ZWQgaW1hZ2UncyBVUkwgdG8gdGhlIGNsaXBib2FyZC4KICAgICBc
dmFsdWUgQmFjayBOYXZpZ2F0ZSBiYWNrIGluIHRoZSBoaXN0b3J5IG9mIG5hdmlnYXRlZCBsaW5r
cy4KICAgICBcdmFsdWUgRm9yd2FyZCBOYXZpZ2F0ZSBmb3J3YXJkIGluIHRoZSBoaXN0b3J5IG9m
IG5hdmlnYXRlZCBsaW5rcy4KICAgICBcdmFsdWUgU3RvcCBTdG9wIGxvYWRpbmcgdGhlIGN1cnJl
bnQgcGFnZS4KQEAgLTIzNDIsNiArMjM0NSw5IEBAIHZvaWQgUVdlYlBhZ2U6OnRyaWdnZXJBY3Rp
b24oV2ViQWN0aW9uIGEKICAgICAgICAgY2FzZSBDb3B5SW1hZ2VUb0NsaXBib2FyZDoKICAgICAg
ICAgICAgIFFBcHBsaWNhdGlvbjo6Y2xpcGJvYXJkKCktPnNldFBpeG1hcChkLT5oaXRUZXN0UmVz
dWx0LnBpeG1hcCgpKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENvcHlJbWFn
ZVVybFRvQ2xpcGJvYXJkOgorICAgICAgICAgICAgUUFwcGxpY2F0aW9uOjpjbGlwYm9hcmQoKS0+
c2V0VGV4dChkLT5oaXRUZXN0UmVzdWx0LmltYWdlVXJsKCkudG9TdHJpbmcoKSk7CisgICAgICAg
ICAgICBicmVhazsKICNlbmRpZgogICAgICAgICBjYXNlIEJhY2s6CiAgICAgICAgICAgICBkLT5w
YWdlLT5nb0JhY2soKTsKQEAgLTI3MzAsNiArMjczNiw5IEBAIFFBY3Rpb24gKlFXZWJQYWdlOjph
Y3Rpb24oV2ViQWN0aW9uIGFjdGkKICAgICAgICAgY2FzZSBDb3B5SW1hZ2VUb0NsaXBib2FyZDoK
ICAgICAgICAgICAgIHRleHQgPSBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2Fy
ZCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29weUltYWdlVXJsVG9DbGlw
Ym9hcmQ6CisgICAgICAgICAgICB0ZXh0ID0gY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJs
VG9DbGlwYm9hcmQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgQmFjazoK
ICAgICAgICAgICAgIHRleHQgPSBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9xdC9BcGkvcXdlYnBhZ2UuaAkocmV2aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDcgQEAgcHVibGlj
OgogICAgICAgICBPcGVuSW1hZ2VJbk5ld1dpbmRvdywKICAgICAgICAgRG93bmxvYWRJbWFnZVRv
RGlzaywKICAgICAgICAgQ29weUltYWdlVG9DbGlwYm9hcmQsCisgICAgICAgIENvcHlJbWFnZVVy
bFRvQ2xpcGJvYXJkLAogCiAgICAgICAgIEJhY2ssCiAgICAgICAgIEZvcndhcmQsCkluZGV4OiBT
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiA3NTk3MSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjAwLDYgKzIwMCwxMSBAQCBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
CiAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29w
eSBJbWFnZSIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAorU3RyaW5nIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlw
Ym9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkNvcHkgSW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdlIEFkZHJlc3MgbWVudSBpdGVt
Iik7Cit9CisKIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z09wZW5WaWRlb0luTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIFZpZGVvIiwgIk9wZW4gVmlkZW8gaW4gTmV3IFdp
bmRvdyIpOwpJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiA3NTk3MSkKKysrIFNvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY2LDYgKzY2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCk7CiAgICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCk7CiAgICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2Fy
ZCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdl
VXJsVG9DbGlwYm9hcmQoKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5KCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdHb0JhY2soKTsK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>81211</attachid>
            <date>2011-02-04 06:34:45 -0800</date>
            <delta_ts>2011-02-07 21:37:13 -0800</delta_ts>
            <desc>patch6</desc>
            <filename>bug52974_6.patch</filename>
            <type>text/plain</type>
            <size>13983</size>
            <attacher name="qi">qi.2.zhang</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDc3NTE2KQorKysgU291cmNlL1dlYkNvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMDItMDMgIFFpIFpoYW5n
ICA8cWkuMi56aGFuZ0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChP
T1BTISkuCisKKyAgICAgICAgW1F0XSBlbnVtIFFXZWJQYWdlOjpXZWJBY3Rpb24gZG9lc24ndCBo
YXZlIHZhbHVlIFFXZWJQYWdlOjpDb3B5SW1hZ2VVcmwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndl
YmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTUyOTc0CisKKyAgICAgICAgQWRkIENvbnRleHRNZW51
SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkIGludG8gc3RhbmRhcmQgYWN0aW9uIGJ1dCBR
dCBwbGF0Zm9ybSBzcGVjaWZpYy4KKworICAgICAgICAqIHBhZ2UvQ29udGV4dE1lbnVDb250cm9s
bGVyLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNvbnRleHRNZW51Q29udHJvbGxlcjo6Y29udGV4
dE1lbnVJdGVtU2VsZWN0ZWQpOgorICAgICAgICAoV2ViQ29yZTo6Q29udGV4dE1lbnVDb250cm9s
bGVyOjpwb3B1bGF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpDb250ZXh0TWVudUNvbnRyb2xsZXI6
OmNoZWNrT3JFbmFibGVJZk5lZWRlZCk6CisgICAgICAgICogcGxhdGZvcm0vQ29udGV4dE1lbnVJ
dGVtLmg6CisgICAgICAgICogcGxhdGZvcm0vTG9jYWxpemF0aW9uU3RyYXRlZ3kuaDoKKyAgICAg
ICAgKiBwbGF0Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmNv
bnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkKToKKyAgICAgICAgKiBwbGF0
Zm9ybS9Mb2NhbGl6ZWRTdHJpbmdzLmg6CisKIDIwMTEtMDItMDMgIFBhdmVsIFBvZGl2aWxvdiAg
PHBvZGl2aWxvdkBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgUGF2ZWwgRmVs
ZG1hbi4KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvQ29udGV4dE1lbnVDb250cm9sbGVyLmNw
cAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL0NvbnRleHRNZW51Q29udHJvbGxl
ci5jcHAJKHJldmlzaW9uIDc1OTcxKQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Db250ZXh0TWVu
dUNvbnRyb2xsZXIuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDcsNiArMjA3LDExIEBAIHZvaWQg
Q29udGV4dE1lbnVDb250cm9sbGVyOjpjb250ZXh0TWVudUkKICAgICAgICAgLy8gRm9yIG5vdywg
Y2FsbCBpbnRvIHRoZSBjbGllbnQuIFRoaXMgaXMgdGVtcG9yYXJ5IQogICAgICAgICBmcmFtZS0+
ZWRpdG9yKCktPmNvcHlJbWFnZShtX2hpdFRlc3RSZXN1bHQpOwogICAgICAgICBicmVhazsKKyNp
ZiBQTEFURk9STShRVCkKKyAgICBjYXNlIENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRv
Q2xpcGJvYXJkOgorICAgICAgICBmcmFtZS0+ZWRpdG9yKCktPmNvcHlVUkwobV9oaXRUZXN0UmVz
dWx0LmFic29sdXRlSW1hZ2VVUkwoKSwgbV9oaXRUZXN0UmVzdWx0LnRleHRDb250ZW50KCkpOwor
ICAgICAgICBicmVhazsKKyNlbmRpZgogICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1l
ZGlhSW5OZXdXaW5kb3c6CiAgICAgICAgIG9wZW5OZXdXaW5kb3cobV9oaXRUZXN0UmVzdWx0LmFi
c29sdXRlTWVkaWFVUkwoKSwgZnJhbWUpOwogICAgICAgICBicmVhazsKQEAgLTY0Miw2ICs2NDcs
MTAgQEAgdm9pZCBDb250ZXh0TWVudUNvbnRyb2xsZXI6OnBvcHVsYXRlKCkKICAgICAgICAgY29u
dGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaygpKTsKICAgICBDb250ZXh0TWVudUl0
ZW0gQ29weUltYWdlSXRlbShBY3Rpb25UeXBlLCBDb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VU
b0NsaXBib2FyZCwgCiAgICAgICAgIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJv
YXJkKCkpOworI2lmIFBMQVRGT1JNKFFUKQorICAgIENvbnRleHRNZW51SXRlbSBDb3B5SW1hZ2VV
cmxJdGVtKEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJv
YXJkLCAKKyAgICAgICAgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQo
KSk7CisjZW5kaWYKICAgICBDb250ZXh0TWVudUl0ZW0gT3Blbk1lZGlhSW5OZXdXaW5kb3dJdGVt
KEFjdGlvblR5cGUsIENvbnRleHRNZW51SXRlbVRhZ09wZW5NZWRpYUluTmV3V2luZG93LCBTdHJp
bmcoKSk7CiAgICAgQ29udGV4dE1lbnVJdGVtIENvcHlNZWRpYUxpbmtJdGVtKEFjdGlvblR5cGUs
IENvbnRleHRNZW51SXRlbVRhZ0NvcHlNZWRpYUxpbmtUb0NsaXBib2FyZCwgCiAgICAgICAgIFN0
cmluZygpKTsKQEAgLTcyMCw2ICs3MjksOSBAQCB2b2lkIENvbnRleHRNZW51Q29udHJvbGxlcjo6
cG9wdWxhdGUoKQogICAgICAgICAgICAgYXBwZW5kSXRlbShEb3dubG9hZEltYWdlSXRlbSwgbV9j
b250ZXh0TWVudS5nZXQoKSk7CiAgICAgICAgICAgICBpZiAoaW1hZ2VVUkwuaXNMb2NhbEZpbGUo
KSB8fCBtX2hpdFRlc3RSZXN1bHQuaW1hZ2UoKSkKICAgICAgICAgICAgICAgICBhcHBlbmRJdGVt
KENvcHlJbWFnZUl0ZW0sIG1fY29udGV4dE1lbnUuZ2V0KCkpOworI2lmIFBMQVRGT1JNKFFUKQor
ICAgICAgICAgICAgYXBwZW5kSXRlbShDb3B5SW1hZ2VVcmxJdGVtLCBtX2NvbnRleHRNZW51Lmdl
dCgpKTsKKyNlbmRpZgogICAgICAgICB9CiAKICAgICAgICAgS1VSTCBtZWRpYVVSTCA9IG1faGl0
VGVzdFJlc3VsdC5hYnNvbHV0ZU1lZGlhVVJMKCk7CkBAIC0xMTcyLDYgKzExODQsOSBAQCB2b2lk
IENvbnRleHRNZW51Q29udHJvbGxlcjo6Y2hlY2tPckVuYWJsCiAgICAgICAgIGNhc2UgQ29udGV4
dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3c6CiAgICAgICAgIGNhc2UgQ29udGV4dE1l
bnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzazoKICAgICAgICAgY2FzZSBDb250ZXh0TWVudUl0
ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2FyZDoKKyNpZiBQTEFURk9STShRVCkKKyAgICAgICAgY2Fz
ZSBDb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZDoKKyNlbmRpZgogICAg
ICAgICAgICAgYnJlYWs7CiAgICAgICAgIGNhc2UgQ29udGV4dE1lbnVJdGVtVGFnT3Blbk1lZGlh
SW5OZXdXaW5kb3c6CiAgICAgICAgICAgICBpZiAobV9oaXRUZXN0UmVzdWx0Lm1lZGlhSXNWaWRl
bygpKQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVtLmgJKHJl
dmlzaW9uIDc1OTcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vQ29udGV4dE1lbnVJdGVt
LmgJKHdvcmtpbmcgY29weSkKQEAgLTY1LDYgKzY1LDkgQEAgbmFtZXNwYWNlIFdlYkNvcmUgewog
ICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJbk5ld1dpbmRvdywKICAgICAgICAg
Q29udGV4dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzaywKICAgICAgICAgQ29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQsCisjaWYgUExBVEZPUk0oUVQpCisgICAgICAg
IENvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkLAorI2VuZGlmCiAgICAg
ICAgIENvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93LAogICAgICAgICBDb250
ZXh0TWVudUl0ZW1UYWdDb3B5LAogICAgICAgICBDb250ZXh0TWVudUl0ZW1UYWdHb0JhY2ssCklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9Mb2NhbGl6YXRpb25TdHJhdGVneS5oCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXphdGlvblN0cmF0ZWd5LmgJ
KHJldmlzaW9uIDc1OTcxKQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxpemF0aW9u
U3RyYXRlZ3kuaAkod29ya2luZyBjb3B5KQpAQCAtNTUsNiArNTUsOSBAQCBwdWJsaWM6ICAgIAog
ICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93
KCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Rvd25sb2FkSW1h
Z2VUb0Rpc2soKSA9IDA7CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29w
eUltYWdlVG9DbGlwYm9hcmQoKSA9IDA7CisjaWYgUExBVEZPUk0oUVQpCisgICAgdmlydHVhbCBT
dHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKSA9IDA7Cisj
ZW5kaWYKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuRnJhbWVJbk5l
d1dpbmRvdygpID0gMDsKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5
KCkgPSAwOwogICAgIHZpcnR1YWwgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0dvQmFjaygpID0g
MDsKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3BwCj09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0cmluZ3MuY3Bw
CShyZXZpc2lvbiA3NTk3MSkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2FsaXplZFN0
cmluZ3MuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMDQsNiArMTA0LDEzIEBAIFN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXAKICAgICByZXR1cm4gcGxhdGZvcm1TdHJhdGVn
aWVzKCktPmxvY2FsaXphdGlvblN0cmF0ZWd5KCktPmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFn
ZVRvQ2xpcGJvYXJkKCk7CiB9CiAKKyNpZiBQTEFURk9STShRVCkKK1N0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpCit7CisgICAgcmV0dXJuIHBsYXRmb3Jt
U3RyYXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdD
b3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgpOworfQorI2VuZGlmCisKIFN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdPcGVuRnJhbWVJbk5ld1dpbmRvdygpCiB7CiAgICAgcmV0dXJuIHBsYXRmb3JtU3Ry
YXRlZ2llcygpLT5sb2NhbGl6YXRpb25TdHJhdGVneSgpLT5jb250ZXh0TWVudUl0ZW1UYWdPcGVu
RnJhbWVJbk5ld1dpbmRvdygpOwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vTG9jYWxp
emVkU3RyaW5ncy5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL0xvY2Fs
aXplZFN0cmluZ3MuaAkocmV2aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9Mb2NhbGl6ZWRTdHJpbmdzLmgJKHdvcmtpbmcgY29weSkKQEAgLTUxLDYgKzUxLDkgQEAgbmFt
ZXNwYWNlIFdlYkNvcmUgewogICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdPcGVuSW1hZ2VJ
bk5ld1dpbmRvdygpOwogICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdl
VG9EaXNrKCk7CiAgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVRvQ2xpcGJv
YXJkKCk7CisjaWYgUExBVEZPUk0oUVQpCisgICAgU3RyaW5nIGNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlJbWFnZVVybFRvQ2xpcGJvYXJkKCk7CisjZW5kaWYKICAgICBTdHJpbmcgY29udGV4dE1lbnVJ
dGVtVGFnT3BlbkZyYW1lSW5OZXdXaW5kb3coKTsKICAgICBTdHJpbmcgY29udGV4dE1lbnVJdGVt
VGFnQ29weSgpOwogICAgIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKSW5kZXg6
IFNvdXJjZS9XZWJLaXQyL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0Mi9D
aGFuZ2VMb2cJKHJldmlzaW9uIDc3NTE2KQorKysgU291cmNlL1dlYktpdDIvQ2hhbmdlTG9nCSh3
b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTYgQEAKKzIwMTEtMDItMDMgIFFpIFpoYW5nICA8cWku
Mi56aGFuZ0Bub2tpYS5jb20+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgW1F0XSBlbnVtIFFXZWJQYWdlOjpXZWJBY3Rpb24gZG9lc24ndCBoYXZlIHZh
bHVlIFFXZWJQYWdlOjpDb3B5SW1hZ2VVcmwKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5v
cmcvc2hvd19idWcuY2dpP2lkPTUyOTc0CisKKyAgICAgICAgQWRkIENvbnRleHRNZW51SXRlbVRh
Z0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJkIGludG8gc3RhbmRhcmQgYWN0aW9uIGJ1dCBRdCBwbGF0
Zm9ybSBzcGVjaWZpYy4KKworICAgICAgICAqIFdlYlByb2Nlc3MvV2ViQ29yZVN1cHBvcnQvV2Vi
UGxhdGZvcm1TdHJhdGVnaWVzLmNwcDoKKyAgICAgICAgKFdlYktpdDo6V2ViUGxhdGZvcm1TdHJh
dGVnaWVzOjpjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCk6CisgICAg
ICAgICogV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoK
KwogMjAxMS0wMi0wMyAgU2FtIFdlaW5pZyAgPHNhbUB3ZWJraXQub3JnPgogCiAgICAgICAgIEZp
eCBRdCBidWlsZC4KSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3MvV2ViQ29yZVN1cHBv
cnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
Mi9XZWJQcm9jZXNzL1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAJKHJl
dmlzaW9uIDc1OTcxKQorKysgU291cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9y
dC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0yMDYsNiArMjA2
LDEzIEBAIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW4KICAgICByZXR1
cm4gVUlfU1RSSU5HKCJDb3B5IEltYWdlIiwgIkNvcHkgSW1hZ2UgY29udGV4dCBtZW51IGl0ZW0i
KTsKIH0KIAorI2lmIFBMQVRGT1JNKFFUKQorU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6
Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlwYm9hcmQoKQoreworICAgIHJldHVy
biBVSV9TVFJJTkcoIkNvcHkgSW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdlIEFkZHJlc3MgbWVu
dSBpdGVtIik7Cit9CisjZW5kaWYKKwogU3RyaW5nIFdlYlBsYXRmb3JtU3RyYXRlZ2llczo6Y29u
dGV4dE1lbnVJdGVtVGFnT3BlblZpZGVvSW5OZXdXaW5kb3coKQogewogICAgIHJldHVybiBVSV9T
VFJJTkcoIk9wZW4gVmlkZW8gaW4gTmV3IFdpbmRvdyIsICJPcGVuIFZpZGVvIGluIE5ldyBXaW5k
b3cgY29udGV4dCBtZW51IGl0ZW0iKTsKSW5kZXg6IFNvdXJjZS9XZWJLaXQyL1dlYlByb2Nlc3Mv
V2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL1dlYktpdDIvV2ViUHJvY2Vzcy9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdp
ZXMuaAkocmV2aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2ViS2l0Mi9XZWJQcm9jZXNzL1dlYkNv
cmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCSh3b3JraW5nIGNvcHkpCkBAIC02OCw2
ICs2OCw5IEBAIHByaXZhdGU6CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFn
T3BlbkltYWdlSW5OZXdXaW5kb3coKTsKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0
ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCk7CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1l
bnVJdGVtVGFnQ29weUltYWdlVG9DbGlwYm9hcmQoKTsKKyNpZiBQTEFURk9STShRVCkKKyAgICB2
aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCgp
OworI2VuZGlmCiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnT3BlbkZyYW1l
SW5OZXdXaW5kb3coKTsKICAgICB2aXJ0dWFsIFN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5
KCk7CiAgICAgdmlydHVhbCBTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnR29CYWNrKCk7CkluZGV4
OiBTb3VyY2UvV2ViS2l0L3F0L0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0
L3F0L0NoYW5nZUxvZwkocmV2aXNpb24gNzc1MTYpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIxIEBACisyMDExLTAyLTAzICBRaSBaaGFu
ZyAgPHFpLjIuemhhbmdAbm9raWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAo
T09QUyEpLgorCisgICAgICAgIFtRdF0gZW51bSBRV2ViUGFnZTo6V2ViQWN0aW9uIGRvZXNuJ3Qg
aGF2ZSB2YWx1ZSBRV2ViUGFnZTo6Q29weUltYWdlVXJsCisgICAgICAgIGh0dHBzOi8vYnVncy53
ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01Mjk3NAorCisgICAgICAgIEFkZCBRV2ViUGFnZTo6
Q29weUltYWdlVXJsVG9DbGlwYm9hcmQgaW50byBRV2ViUGFnZTo6V2ViQWN0aW9uLgorCisgICAg
ICAgICogQXBpL3F3ZWJwYWdlLmNwcDoKKyAgICAgICAgKHdlYkFjdGlvbkZvckNvbnRleHRNZW51
QWN0aW9uKToKKyAgICAgICAgKFFXZWJQYWdlOjp0cmlnZ2VyQWN0aW9uKToKKyAgICAgICAgKFFX
ZWJQYWdlOjphY3Rpb24pOgorICAgICAgICAqIEFwaS9xd2VicGFnZS5oOgorICAgICAgICAqIFdl
YkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHA6CisgICAgICAgIChXZWJQbGF0
Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRvQ2xpcGJvYXJk
KToKKyAgICAgICAgKiBXZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9ybVN0cmF0ZWdpZXMuaDoKKwog
MjAxMS0wMi0wMSAgQ3NhYmEgT3N6dHJvZ29uw6FjICA8b3NzeUB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFVucmV2aWV3ZWQgUXQgYnVpbGRmaXggYWZ0ZXIgcjc3Mjg2LgpJbmRleDogU291cmNlL1dl
YktpdC9xdC9BcGkvcXdlYnBhZ2UuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9XZWJLaXQvcXQv
QXBpL3F3ZWJwYWdlLmNwcAkocmV2aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2ViS2l0L3F0L0Fw
aS9xd2VicGFnZS5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTE2Miw2ICsxNjIsNyBAQCBzdGF0aWMg
Y29uc3QgY2hhciogZWRpdG9yQ29tbWFuZFdlYkFjdGlvCiAgICAgMCwgLy8gT3BlbkltYWdlSW5O
ZXdXaW5kb3csCiAgICAgMCwgLy8gRG93bmxvYWRJbWFnZVRvRGlzaywKICAgICAwLCAvLyBDb3B5
SW1hZ2VUb0NsaXBib2FyZCwKKyAgICAwLCAvLyBDb3B5SW1hZ2VVcmxUb0NsaXBib2FyZCwKIAog
ICAgIDAsIC8vIEJhY2ssCiAgICAgMCwgLy8gRm9yd2FyZCwKQEAgLTQwNCw2ICs0MDUsNyBAQCBz
dGF0aWMgUVdlYlBhZ2U6OldlYkFjdGlvbiB3ZWJBY3Rpb25Gb3JDCiAgICAgICAgIGNhc2UgV2Vi
Q29yZTo6Q29udGV4dE1lbnVJdGVtVGFnT3BlbkltYWdlSW5OZXdXaW5kb3c6IHJldHVybiBRV2Vi
UGFnZTo6T3BlbkltYWdlSW5OZXdXaW5kb3c7CiAgICAgICAgIGNhc2UgV2ViQ29yZTo6Q29udGV4
dE1lbnVJdGVtVGFnRG93bmxvYWRJbWFnZVRvRGlzazogcmV0dXJuIFFXZWJQYWdlOjpEb3dubG9h
ZEltYWdlVG9EaXNrOwogICAgICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0Nv
cHlJbWFnZVRvQ2xpcGJvYXJkOiByZXR1cm4gUVdlYlBhZ2U6OkNvcHlJbWFnZVRvQ2xpcGJvYXJk
OworICAgICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0NvcHlJbWFnZVVybFRv
Q2xpcGJvYXJkOiByZXR1cm4gUVdlYlBhZ2U6OkNvcHlJbWFnZVVybFRvQ2xpcGJvYXJkOwogICAg
ICAgICBjYXNlIFdlYkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ09wZW5GcmFtZUluTmV3V2luZG93
OiByZXR1cm4gUVdlYlBhZ2U6Ok9wZW5GcmFtZUluTmV3V2luZG93OwogICAgICAgICBjYXNlIFdl
YkNvcmU6OkNvbnRleHRNZW51SXRlbVRhZ0NvcHk6IHJldHVybiBRV2ViUGFnZTo6Q29weTsKICAg
ICAgICAgY2FzZSBXZWJDb3JlOjpDb250ZXh0TWVudUl0ZW1UYWdHb0JhY2s6IHJldHVybiBRV2Vi
UGFnZTo6QmFjazsKQEAgLTE2ODAsNiArMTY4Miw3IEBAIEludFBvaW50IFFXZWJQYWdlUHJpdmF0
ZTo6VG91Y2hBZGp1c3RlcjoKICAgICBcdmFsdWUgT3BlbkltYWdlSW5OZXdXaW5kb3cgT3BlbiB0
aGUgaGlnaGxpZ2h0ZWQgaW1hZ2UgaW4gYSBuZXcgd2luZG93LgogICAgIFx2YWx1ZSBEb3dubG9h
ZEltYWdlVG9EaXNrIERvd25sb2FkIHRoZSBoaWdobGlnaHRlZCBpbWFnZSB0byB0aGUgZGlzay4K
ICAgICBcdmFsdWUgQ29weUltYWdlVG9DbGlwYm9hcmQgQ29weSB0aGUgaGlnaGxpZ2h0ZWQgaW1h
Z2UgdG8gdGhlIGNsaXBib2FyZC4KKyAgICBcdmFsdWUgQ29weUltYWdlVXJsVG9DbGlwYm9hcmQg
Q29weSB0aGUgaGlnaGxpZ2h0ZWQgaW1hZ2UncyBVUkwgdG8gdGhlIGNsaXBib2FyZC4KICAgICBc
dmFsdWUgQmFjayBOYXZpZ2F0ZSBiYWNrIGluIHRoZSBoaXN0b3J5IG9mIG5hdmlnYXRlZCBsaW5r
cy4KICAgICBcdmFsdWUgRm9yd2FyZCBOYXZpZ2F0ZSBmb3J3YXJkIGluIHRoZSBoaXN0b3J5IG9m
IG5hdmlnYXRlZCBsaW5rcy4KICAgICBcdmFsdWUgU3RvcCBTdG9wIGxvYWRpbmcgdGhlIGN1cnJl
bnQgcGFnZS4KQEAgLTIzNDIsNiArMjM0NSw5IEBAIHZvaWQgUVdlYlBhZ2U6OnRyaWdnZXJBY3Rp
b24oV2ViQWN0aW9uIGEKICAgICAgICAgY2FzZSBDb3B5SW1hZ2VUb0NsaXBib2FyZDoKICAgICAg
ICAgICAgIFFBcHBsaWNhdGlvbjo6Y2xpcGJvYXJkKCktPnNldFBpeG1hcChkLT5oaXRUZXN0UmVz
dWx0LnBpeG1hcCgpKTsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICBjYXNlIENvcHlJbWFn
ZVVybFRvQ2xpcGJvYXJkOgorICAgICAgICAgICAgUUFwcGxpY2F0aW9uOjpjbGlwYm9hcmQoKS0+
c2V0VGV4dChkLT5oaXRUZXN0UmVzdWx0LmltYWdlVXJsKCkudG9TdHJpbmcoKSk7CisgICAgICAg
ICAgICBicmVhazsKICNlbmRpZgogICAgICAgICBjYXNlIEJhY2s6CiAgICAgICAgICAgICBkLT5w
YWdlLT5nb0JhY2soKTsKQEAgLTI3MzAsNiArMjczNiw5IEBAIFFBY3Rpb24gKlFXZWJQYWdlOjph
Y3Rpb24oV2ViQWN0aW9uIGFjdGkKICAgICAgICAgY2FzZSBDb3B5SW1hZ2VUb0NsaXBib2FyZDoK
ICAgICAgICAgICAgIHRleHQgPSBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2Fy
ZCgpOwogICAgICAgICAgICAgYnJlYWs7CisgICAgICAgIGNhc2UgQ29weUltYWdlVXJsVG9DbGlw
Ym9hcmQ6CisgICAgICAgICAgICB0ZXh0ID0gY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJs
VG9DbGlwYm9hcmQoKTsKKyAgICAgICAgICAgIGJyZWFrOwogCiAgICAgICAgIGNhc2UgQmFjazoK
ICAgICAgICAgICAgIHRleHQgPSBjb250ZXh0TWVudUl0ZW1UYWdHb0JhY2soKTsKSW5kZXg6IFNv
dXJjZS9XZWJLaXQvcXQvQXBpL3F3ZWJwYWdlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYktp
dC9xdC9BcGkvcXdlYnBhZ2UuaAkocmV2aXNpb24gNzU5NzEpCisrKyBTb3VyY2UvV2ViS2l0L3F0
L0FwaS9xd2VicGFnZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0xMDUsNiArMTA1LDcgQEAgcHVibGlj
OgogICAgICAgICBPcGVuSW1hZ2VJbk5ld1dpbmRvdywKICAgICAgICAgRG93bmxvYWRJbWFnZVRv
RGlzaywKICAgICAgICAgQ29weUltYWdlVG9DbGlwYm9hcmQsCisgICAgICAgIENvcHlJbWFnZVVy
bFRvQ2xpcGJvYXJkLAogCiAgICAgICAgIEJhY2ssCiAgICAgICAgIEZvcndhcmQsCkluZGV4OiBT
b3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBwb3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuY3BwCShyZXZpc2lvbiA3NTk3MSkKKysrIFNvdXJjZS9XZWJLaXQvcXQvV2Vi
Q29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmNwcAkod29ya2luZyBjb3B5KQpAQCAt
MjAwLDYgKzIwMCwxMSBAQCBTdHJpbmcgV2ViUGxhdGZvcm1TdHJhdGVnaWVzOjpjb250ZXh0TWVu
CiAgICAgcmV0dXJuIFFDb3JlQXBwbGljYXRpb246OnRyYW5zbGF0ZSgiUVdlYlBhZ2UiLCAiQ29w
eSBJbWFnZSIsICJDb3B5IExpbmsgY29udGV4dCBtZW51IGl0ZW0iKTsKIH0KIAorU3RyaW5nIFdl
YlBsYXRmb3JtU3RyYXRlZ2llczo6Y29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdlVXJsVG9DbGlw
Ym9hcmQoKQoreworICAgIHJldHVybiBRQ29yZUFwcGxpY2F0aW9uOjp0cmFuc2xhdGUoIlFXZWJQ
YWdlIiwgIkNvcHkgSW1hZ2UgQWRkcmVzcyIsICJDb3B5IEltYWdlIEFkZHJlc3MgbWVudSBpdGVt
Iik7Cit9CisKIFN0cmluZyBXZWJQbGF0Zm9ybVN0cmF0ZWdpZXM6OmNvbnRleHRNZW51SXRlbVRh
Z09wZW5WaWRlb0luTmV3V2luZG93KCkKIHsKICAgICByZXR1cm4gUUNvcmVBcHBsaWNhdGlvbjo6
dHJhbnNsYXRlKCJRV2ViUGFnZSIsICJPcGVuIFZpZGVvIiwgIk9wZW4gVmlkZW8gaW4gTmV3IFdp
bmRvdyIpOwpJbmRleDogU291cmNlL1dlYktpdC9xdC9XZWJDb3JlU3VwcG9ydC9XZWJQbGF0Zm9y
bVN0cmF0ZWdpZXMuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViS2l0L3F0L1dlYkNvcmVTdXBw
b3J0L1dlYlBsYXRmb3JtU3RyYXRlZ2llcy5oCShyZXZpc2lvbiA3NTk3MSkKKysrIFNvdXJjZS9X
ZWJLaXQvcXQvV2ViQ29yZVN1cHBvcnQvV2ViUGxhdGZvcm1TdHJhdGVnaWVzLmgJKHdvcmtpbmcg
Y29weSkKQEAgLTY2LDYgKzY2LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5n
IGNvbnRleHRNZW51SXRlbVRhZ09wZW5JbWFnZUluTmV3V2luZG93KCk7CiAgICAgdmlydHVhbCBX
VEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdEb3dubG9hZEltYWdlVG9EaXNrKCk7CiAgICAg
dmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVudUl0ZW1UYWdDb3B5SW1hZ2VUb0NsaXBib2Fy
ZCgpOworICAgIHZpcnR1YWwgV1RGOjpTdHJpbmcgY29udGV4dE1lbnVJdGVtVGFnQ29weUltYWdl
VXJsVG9DbGlwYm9hcmQoKTsKICAgICB2aXJ0dWFsIFdURjo6U3RyaW5nIGNvbnRleHRNZW51SXRl
bVRhZ09wZW5GcmFtZUluTmV3V2luZG93KCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250
ZXh0TWVudUl0ZW1UYWdDb3B5KCk7CiAgICAgdmlydHVhbCBXVEY6OlN0cmluZyBjb250ZXh0TWVu
dUl0ZW1UYWdHb0JhY2soKTsK
</data>

          </attachment>
      

    </bug>

</bugzilla>