<?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>32473</bug_id>
          
          <creation_ts>2009-12-12 11:59:27 -0800</creation_ts>
          <short_desc>[Chromium] Add 2 parameters to WebViewClient::runFileChooser()</short_desc>
          <delta_ts>2010-01-14 09:39:09 -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 API</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>
          <dependson>32429</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>adele</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fishd</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>171110</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-12 11:59:27 -0800</bug_when>
    <thetext>We had better add parameters to WebViewClient::runFileChooser() in order to improve multi-selected file upload control UI and support for HTML5&apos;s accept attribute.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171111</commentid>
    <comment_count>1</comment_count>
      <attachid>44740</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2009-12-12 12:01:55 -0800</bug_when>
    <thetext>Created attachment 44740
Proposed patch

The patch should not be committed before http://codereview.chromium.org/497001 is committed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>171112</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2009-12-12 12:07:07 -0800</bug_when>
    <thetext>style-queue ran check-webkit-style on attachment 44740 without any errors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>173901</commentid>
    <comment_count>3</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2009-12-21 00:23:03 -0800</bug_when>
    <thetext>I think Darin Fisher or Dimitri Glazkov are your peeps here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180296</commentid>
    <comment_count>4</comment_count>
      <attachid>44740</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-01-13 11:01:09 -0800</bug_when>
    <thetext>Comment on attachment 44740
Proposed patch

&gt; +++ b/WebKit/chromium/public/WebViewClient.h
...
&gt;      virtual bool runFileChooser(
&gt;          bool multiSelect, const WebString&amp; title,
&gt; -        const WebString&amp; initialValue, WebFileChooserCompletion*) { return false; }
&gt; +        const WebString&amp; initialValue,
&gt; +        const WebVector&lt;WebString&gt;&amp; selectedFiles, const WebString&amp; acceptTypes,
&gt; +        WebFileChooserCompletion*) { return false; }

Instead of dumping more parameters on this function, I think we should
create a WebFileChooserParams structure (much like WebPluginParams).

This way it&apos;ll be easier to add additional parameters in the future, and
we can document the parameters in WebFileChooserParams.h instead of here
in WebViewClient.h (which should improve readability a bit).

To avoid the issue of breaking the chromium build, please preserve the old
WebViewClient::runFileChooser method temporarily.  Add a comment to declare
that that old method is deprecated.

You can even use the return value of runFileChooser to failover to the old
deprecated method if the new method returns false.  Then, once the chromium
side picks up this new version of WebKit, you should go back and remove the
deprecated function.  This way there is no burden on the chromium tree sheriffs.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180555</commentid>
    <comment_count>5</comment_count>
      <attachid>46541</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-13 22:54:25 -0800</bug_when>
    <thetext>Created attachment 46541
Proposed patch (rev.2)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180557</commentid>
    <comment_count>6</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-13 22:56:08 -0800</bug_when>
    <thetext>Thank you for reviewing.

(In reply to comment #4)
&gt; Instead of dumping more parameters on this function, I think we should
&gt; create a WebFileChooserParams structure (much like WebPluginParams).

Ok, I introduced WebFileChooserParams in the updated patch.

&gt; You can even use the return value of runFileChooser to failover to the old
&gt; deprecated method if the new method returns false.  Then, once the chromium
&gt; side picks up this new version of WebKit, you should go back and remove the
&gt; deprecated function.  This way there is no burden on the chromium tree
&gt; sheriffs.

That&apos;s good idea.  I updated the code so.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180559</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-01-13 23:00:26 -0800</bug_when>
    <thetext>Attachment 46541 did not pass style-queue:

Failed to run &quot;WebKitTools/Scripts/check-webkit-style&quot; exit_code: 1
WebKit/chromium/public/WebFileChooserParams.h:35:  Alphabetical sorting problem.  [build/include_order] [4]
Total errors found: 1</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180561</commentid>
    <comment_count>8</comment_count>
      <attachid>46542</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-13 23:06:19 -0800</bug_when>
    <thetext>Created attachment 46542
Proposed patch (rev.3)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180572</commentid>
    <comment_count>9</comment_count>
      <attachid>46542</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2010-01-13 23:43:13 -0800</bug_when>
    <thetext>Comment on attachment 46542
Proposed patch (rev.3)

&gt; +++ b/WebKit/chromium/public/WebFileChooserParams.h
...
&gt; +struct WebFileChooserParams {
...
&gt; +    WebFileChooserCompletion* chooserCompletion;

I&apos;m sorry for not mentioning this earlier, but I think that this
member should not be part of this structure since it is not a
parameter that effects the way the dialog is rendered.  It is
conceptually separate from those parameters since it is just
a mechanism for indicating completion of the runFileChooser call.

Sorry to add another round to this patch, but I think this would
be a good change to make.


&gt; +++ b/WebKit/chromium/src/ChromeClientImpl.cpp
...
&gt; +    WebFileChooserParams params;
&gt; +    params.multiSelect = fileChooser-&gt;allowsMultipleFiles();
&gt; +    params.acceptTypes = fileChooser-&gt;acceptTypes();
&gt; +    const Vector&lt;String&gt;&amp; selectedFiles = fileChooser-&gt;filenames();
&gt; +    params.selectedFiles = WebVector&lt;WebString&gt;(selectedFiles);

you should be able to write:

       params.selectedFiles = fileChooser-&gt;filenames();

does that not work for you?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180580</commentid>
    <comment_count>10</comment_count>
      <attachid>46545</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-14 00:04:50 -0800</bug_when>
    <thetext>Created attachment 46545
Proposed patch (rev.4)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180581</commentid>
    <comment_count>11</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2010-01-14 00:06:24 -0800</bug_when>
    <thetext>&gt; &gt; +struct WebFileChooserParams {
&gt; ...
&gt; &gt; +    WebFileChooserCompletion* chooserCompletion;
&gt; 
&gt; I&apos;m sorry for not mentioning this earlier, but I think that this
&gt; member should not be part of this structure since it is not a
&gt; parameter that effects the way the dialog is rendered.  It is
&gt; conceptually separate from those parameters since it is just
&gt; a mechanism for indicating completion of the runFileChooser call.

ok, done.

&gt; &gt; +    const Vector&lt;String&gt;&amp; selectedFiles = fileChooser-&gt;filenames();
&gt; &gt; +    params.selectedFiles = WebVector&lt;WebString&gt;(selectedFiles);
&gt; 
&gt; you should be able to write:
&gt; 
&gt;        params.selectedFiles = fileChooser-&gt;filenames();
&gt; 
&gt; does that not work for you?

It works.  Fixed.
Probably I had a reason in the last year though I can&apos;t remember it :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180746</commentid>
    <comment_count>12</comment_count>
      <attachid>46545</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-14 09:39:03 -0800</bug_when>
    <thetext>Comment on attachment 46545
Proposed patch (rev.4)

Clearing flags on attachment: 46545

Committed r53269: &lt;http://trac.webkit.org/changeset/53269&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>180747</commentid>
    <comment_count>13</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2010-01-14 09:39:09 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>44740</attachid>
            <date>2009-12-12 12:01:55 -0800</date>
            <delta_ts>2010-01-13 22:54:18 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>0001-filechooser.patch</filename>
            <type>text/plain</type>
            <size>4126</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">RnJvbSA2MDAzOGZhYjk3YjhiNzVmZDFlNGU3MzRjYmE5YTM3NTYyZmZkNDU4IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBLZW50IFRhbXVyYSA8dGtlbnRAY2hyb21pdW0ub3JnPgpEYXRl
OiBTdW4sIDEzIERlYyAyMDA5IDA0OjU5OjUwICswOTAwClN1YmplY3Q6IFtQQVRDSF0gZmlsZWNo
b29zZXIKCi0tLQogV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZyAgICAgICAgICAgICAgICB8ICAg
MTQgKysrKysrKysrKysrKysKIFdlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
ICAgfCAgIDE3ICsrKysrKysrKysrKysrKystCiBXZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNs
aWVudEltcGwuY3BwIHwgICAgOSArKysrKysrLS0KIDMgZmlsZXMgY2hhbmdlZCwgMzcgaW5zZXJ0
aW9ucygrKSwgMyBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vQ2hh
bmdlTG9nIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwppbmRleCA0MmFiODg1Li45N2Q2NWFl
IDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vQ2hhbmdlTG9nCisrKyBiL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAwOS0xMi0xMiAgS2VudCBUYW11cmEg
IDx0a2VudEBjaHJvbWl1bS5vcmc+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BT
ISkuCisKKyAgICAgICAgQWRkIHR3byBwYXJhbWV0ZXJzIHRvIFdlYlZpZXdDbGllbnQ6OnJ1bkZp
bGVDaG9vc2VyKCkuCisgICAgICAgICAtIHNlbGVjdGVkIGZpbGVuYW1lcworICAgICAgICAgLSBh
Y2NlcHQgYXR0cmlidXRlIHZhbHVlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0zMjQ3MworCisgICAgICAgICogcHVibGljL1dlYlZpZXdDbGllbnQuaDoK
KyAgICAgICAgKFdlYktpdDo6V2ViVmlld0NsaWVudDo6cnVuRmlsZUNob29zZXIpOgorICAgICAg
ICAqIHNyYy9DaHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xp
ZW50SW1wbDo6cnVuT3BlblBhbmVsKToKKwogMjAwOS0xMi0xMSAgTmF0ZSBDaGFwaW4gIDxqYXBo
ZXRAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEZpc2hlci4KZGlm
ZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5oIGIvV2ViS2l0
L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKaW5kZXggMmUyZjk1My4uODA4MDQyNSAx
MDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKKysrIGIv
V2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmgKQEAgLTE2MSw5ICsxNjEsMjQg
QEAgcHVibGljOgogICAgIC8vIGRpYWxvZyBpcyBjbG9zZWQsIGl0IHNob3VsZCBjYWxsIHRoZSBX
ZWJGaWxlQ2hvb3NlckNvbXBsZXRpb24gdG8KICAgICAvLyBwYXNzIHRoZSByZXN1bHRzIG9mIHRo
ZSBkaWFsb2cuIFJldHVybnMgZmFsc2UgaWYKICAgICAvLyBXZWJGaWxlQ2hvb3NlQ29tcGxldGlv
biB3aWxsIG5ldmVyIGJlIGNhbGxlZC4KKyAgICAvLyBJZiB8bXVsdGlTZWxlY3R8IGlzIHRydWUs
IHRoZSBkaWFsb2cgYWxsb3dzIHRvIHNlbGVjdCBtdWx0aXBsZQorICAgIC8vIGZpbGVzLgorICAg
IC8vIHxpbml0aWFsVmFsdWV8IGlzIGEgZmlsZW5hbWUgd2hpY2ggdGhlIGRpYWxvZyBzaG91bGQg
c2VsZWN0IGJ5CisgICAgLy8gZGVmYXVsdC4gSXQgY2FuIGJlIGFuIGVtcHR5IHN0cmluZy4KKyAg
ICAvLyB8c2VsZWN0ZWRGaWxlc3wgaGFzIGZpbGVuYW1lcyB3aGljaCBhIGZpbGUgdXBsb2FkIGNv
bnRyb2wKKyAgICAvLyBhbHJlYWR5IHNlbGVjdC4gQSBXZWJWaWV3Q2xpZW50IGltcGxlbWVudGF0
aW9uIG1heSBhc2sgYSB1c2VyCisgICAgLy8gdG8gc2VsZWN0IHJlbW92aW5nIGEgZmlsZSBmcm9t
IHRoZSBzZWxlY3RlZCBmaWxlcywgYXBwZW5kaW5nCisgICAgLy8gb3RoZXIgZmlsZXMsIG9yIHJl
cGxhY2luZyB3aXRoIG90aGVyIGZpbGVzIGJlZm9yZSBvcGVuaW5nIHRoZSBkaWFsb2cuCisgICAg
Ly8gfGFjY2VwdFR5cGVzfCBoYXMgYSBjb21tYS1zZXBhcmF0ZWQgTUlNRSB0eXBlcyBzdWNoIGFz
CisgICAgLy8gImF1ZGlvLyosdGV4dC9wbGFpbiIuIFRoZSBkaWFsb2cgbWF5IHJlc3RyaWN0IHNl
bGVjdGFibGUgZmlsZXMKKyAgICAvLyB0byB0aGUgc3BlY2lmaWVkIHR5cGVzLiBUaGlzIHZhbHVl
IGNvbWVzIGZyb20gYW4gJ2FjY2VwdCcKKyAgICAvLyBhdHRyaWJ1dGUgdmFsdWUgb2YgYW4gSU5Q
VVQgZWxlbWVudC4gU28gaXQgbWlnaHQgaGFzIGEgd3JvbmcKKyAgICAvLyBmb3JtYXR0ZWQgc3Ry
aW5nLgogICAgIHZpcnR1YWwgYm9vbCBydW5GaWxlQ2hvb3NlcigKICAgICAgICAgYm9vbCBtdWx0
aVNlbGVjdCwgY29uc3QgV2ViU3RyaW5nJiB0aXRsZSwKLSAgICAgICAgY29uc3QgV2ViU3RyaW5n
JiBpbml0aWFsVmFsdWUsIFdlYkZpbGVDaG9vc2VyQ29tcGxldGlvbiopIHsgcmV0dXJuIGZhbHNl
OyB9CisgICAgICAgIGNvbnN0IFdlYlN0cmluZyYgaW5pdGlhbFZhbHVlLAorICAgICAgICBjb25z
dCBXZWJWZWN0b3I8V2ViU3RyaW5nPiYgc2VsZWN0ZWRGaWxlcywgY29uc3QgV2ViU3RyaW5nJiBh
Y2NlcHRUeXBlcywKKyAgICAgICAgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uKikgeyByZXR1cm4g
ZmFsc2U7IH0KIAogICAgIC8vIERpc3BsYXlzIGEgbW9kYWwgYWxlcnQgZGlhbG9nIGNvbnRhaW5p
bmcgdGhlIGdpdmVuIG1lc3NhZ2UuICBSZXR1cm5zCiAgICAgLy8gb25jZSB0aGUgdXNlciBkaXNt
aXNzZXMgdGhlIGRpYWxvZy4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3Bw
CmluZGV4IDRlMjAxMjQuLjdlNGQzOTUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMv
Q2hyb21lQ2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGll
bnRJbXBsLmNwcApAQCAtNTYxLDE2ICs1NjEsMjEgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpy
dW5PcGVuUGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2gK
ICAgICAgICAgcmV0dXJuOwogCiAgICAgYm9vbCBtdWx0aXBsZUZpbGVzID0gZmlsZUNob29zZXIt
PmFsbG93c011bHRpcGxlRmlsZXMoKTsKKyAgICBjb25zdCBWZWN0b3I8U3RyaW5nPiYgc2VsZWN0
ZWRGaWxlcyA9IGZpbGVDaG9vc2VyLT5maWxlbmFtZXMoKTsKKyAgICBXZWJWZWN0b3I8V2ViU3Ry
aW5nPiB3ZWJTZWxlY3RlZEZpbGVzKHNlbGVjdGVkRmlsZXMpOworICAgIFdlYlN0cmluZyBhY2Nl
cHRUeXBlcyhmaWxlQ2hvb3Nlci0+YWNjZXB0VHlwZXMoKSk7CiAKICAgICBXZWJTdHJpbmcgc3Vn
Z2VzdGlvbjsKLSAgICBpZiAoZmlsZUNob29zZXItPmZpbGVuYW1lcygpLnNpemUoKSA+IDApCi0g
ICAgICAgIHN1Z2dlc3Rpb24gPSBmaWxlQ2hvb3Nlci0+ZmlsZW5hbWVzKClbMF07CisgICAgaWYg
KHNlbGVjdGVkRmlsZXMuc2l6ZSgpID4gMCkKKyAgICAgICAgc3VnZ2VzdGlvbiA9IHNlbGVjdGVk
RmlsZXNbMF07CiAKICAgICBXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb25JbXBsKiBjaG9vc2VyQ29t
cGxldGlvbiA9CiAgICAgICAgIG5ldyBXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb25JbXBsKGZpbGVD
aG9vc2VyKTsKICAgICBib29sIG9rID0gY2xpZW50LT5ydW5GaWxlQ2hvb3NlcihtdWx0aXBsZUZp
bGVzLAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFdlYlN0cmluZygpLAog
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Z2dlc3Rpb24sCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgd2ViU2VsZWN0ZWRGaWxlcywKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBhY2NlcHRUeXBlcywKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBjaG9vc2VyQ29tcGxldGlvbik7CiAgICAgaWYgKCFvaykg
ewogICAgICAgICAvLyBDaG9vc2luZyBmYWlsZWQsIHNvIGRvIGNhbGxiYWNrIHdpdGggYW4gZW1w
dHkgbGlzdC4KLS0gCjEuNi4zLjMKCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46541</attachid>
            <date>2010-01-13 22:54:25 -0800</date>
            <delta_ts>2010-01-13 23:06:12 -0800</delta_ts>
            <desc>Proposed patch (rev.2)</desc>
            <filename>bug-32473-20100114155423.patch</filename>
            <type>text/plain</type>
            <size>8527</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDU5ZmM1OTQuLmI5NzFjM2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI1IEBACisyMDEwLTAxLTEzICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2Ug
V2ViRmlsZUNob29zZXJQYXJhbXMgdG8gY29udmV5IHBhcmFtZXRlcnMgZm9yCisgICAgICAgIFdl
YlZpZXdDbGllbnQ6OnJ1bkZpbGVDaG9vc2VyKCksIGFuZCBhZGQgbmV3IHBhcmFtZXRlcnMgdG8g
aXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ3
MworCisgICAgICAgIFRoZSBuZXcgcGFyYW1ldGVycyBhcmUKKyAgICAgICAgIC0gc2VsZWN0ZWQg
ZmlsZSBuYW1lcworICAgICAgICAgLSAiYWNjZXB0IiBhdHRyaWJ1dGUgdmFsdWUKKworICAgICAg
ICAqIFdlYktpdC5neXA6IEFkZCBXZWJGaWxlQ2hvb3NlclBhcmFtcy5oCisgICAgICAgICogcHVi
bGljL1dlYkZpbGVDaG9vc2VyUGFyYW1zLmg6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6OnJ1bkZpbGVDaG9v
c2VyKToKKyAgICAgICAgICBBZGQgcnVuRmlsZUNob29zZXIoKSB3aXRoIFdlYkZpbGVDaG9vc2Vy
UGFyYW1zLCBhbmQgbWFyayB0aGUgb2xkIG9uZSBkZXByZWNhdGVkLgorICAgICAgICAqIHNyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6
cnVuT3BlblBhbmVsKToKKyAgICAgICAgICBDYWxsIHRoZSBuZXcgcnVuRmlsZUNob29zZXIoKSBm
aXJzdCwgdGhlbiBjYWxsIHRoZSBvbGQKKyAgICAgICAgICBydW5GaWxlQ2hvb3NlcigpIGlmIHRo
ZSBuZXcgb25lIGZhaWxlZC4KKwogMjAxMC0wMS0xMyAgSmVyZW15IE9ybG93ICA8am9ybG93QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwCmluZGV4IGY2NDk4NDYuLjBmODRlZmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMDgsNiArMTA4
LDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkVkaXRpbmdBY3Rpb24uaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJFbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViRmlsZUNob29zZXJDb21wbGV0aW9uLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViRmlsZUNob29zZXJQYXJhbXMuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJGaW5k
T3B0aW9ucy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkZyYW1lLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViRnJhbWVDbGllbnQuaCcsCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkZpbGVDaG9vc2VyUGFyYW1zLmggYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkZpbGVDaG9vc2VyUGFyYW1zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uZThlZjEzNgotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRmlsZUNob29zZXJQYXJhbXMuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJGaWxl
Q2hvb3NlclBhcmFtc19oCisjZGVmaW5lIFdlYkZpbGVDaG9vc2VyUGFyYW1zX2gKKworI2luY2x1
ZGUgIldlYlN0cmluZy5oIgorI2luY2x1ZGUgIldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oIgor
I2luY2x1ZGUgIldlYlZlY3Rvci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFdl
YkZpbGVDaG9vc2VyUGFyYW1zIHsKKyAgICAvLyBJZiB8bXVsdGlTZWxlY3R8IGlzIHRydWUsIHRo
ZSBkaWFsb2cgYWxsb3cgdG8gc2VsZWN0IG11bHRpcGxlIGZpbGVzLgorICAgIGJvb2wgbXVsdGlT
ZWxlY3Q7CisgICAgLy8gfHRpdGxlfCBpcyBhIHRpdGxlIG9mIGEgZmlsZSBjaG9vc2VyIGRpYWxv
Zy4gSXQgY2FuIGJlIGFuIGVtcHR5IHN0cmluZy4KKyAgICBXZWJTdHJpbmcgdGl0bGU7CisgICAg
Ly8gfGluaXRpYWxWYWx1ZXwgaXMgYSBmaWxlbmFtZSB3aGljaCB0aGUgZGlhbG9nIHNob3VsZCBz
ZWxlY3QgYnkgZGVmYXVsdC4KKyAgICAvLyBJdCBjYW4gYmUgYW4gZW1wdHkgc3RyaW5nLgorICAg
IFdlYlN0cmluZyBpbml0aWFsVmFsdWU7CisgICAgLy8gfGFjY2VwdFR5cGVzfCBoYXMgYSBjb21t
YS1zZXBhcmF0ZWQgTUlNRSB0eXBlcyBzdWNoIGFzICJhdWRpby8qLHRleHQvcGxhaW4iLgorICAg
IC8vIFRoZSBkaWFsb2cgbWF5IHJlc3RyaWN0IHNlbGVjdGFibGUgZmlsZXMgdG8gdGhlIHNwZWNp
ZmllZCBNSU1FIHR5cGVzLgorICAgIC8vIFRoaXMgdmFsdWUgY29tZXMgZnJvbSBhbiAnYWNjZXB0
JyBhdHRyaWJ1dGUgdmFsdWUgb2YgYW4gSU5QVVQgZWxlbWVudC4KKyAgICAvLyBTbyBpdCBtaWdo
dCBiZSBhIHdyb25nIGZvcm1hdHRlZCBzdHJpbmcuCisgICAgV2ViU3RyaW5nIGFjY2VwdFR5cGVz
OworICAgIC8vIHxzZWxlY3RlZEZpbGVzfCBoYXMgZmlsZW5hbWVzIHdoaWNoIGEgZmlsZSB1cGxv
YWQgY29udHJvbCBhbHJlYWR5IHNlbGVjdC4KKyAgICAvLyBBIFdlYlZpZXdDbGllbnQgaW1wbGVt
ZW50YXRpb24gbWF5IGFzayBhIHVzZXIgdG8gc2VsZWN0CisgICAgLy8gIC0gcmVtb3ZpbmcgYSBm
aWxlIGZyb20gdGhlIHNlbGVjdGVkIGZpbGVzLAorICAgIC8vICAtIGFwcGVuZGluZyBvdGhlciBm
aWxlcywgb3IKKyAgICAvLyAgLSByZXBsYWNpbmcgd2l0aCBvdGhlciBmaWxlcworICAgIC8vIGJl
Zm9yZSBvcGVuaW5nIGEgZmlsZSBjaG9vc2VyIGRpYWxvZy4KKyAgICBXZWJWZWN0b3I8V2ViU3Ry
aW5nPiBzZWxlY3RlZEZpbGVzOworICAgIC8vIFdlYkZpbGVDaG9vc2VyQ29tcGxldGlvbjo6ZGlk
Q2hvb3NlRmlsZSgpIHdpbGwgcmVjZWl2ZSByZXN1bHRhbnQgZmlsZW5hbWVzLgorICAgIFdlYkZp
bGVDaG9vc2VyQ29tcGxldGlvbiogY2hvb3NlckNvbXBsZXRpb247Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXdDbGllbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
CmluZGV4IDFiMGE2MWEuLjM4M2U4OTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0Ns
aWVudC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViRHJhZ09wZXJhdGlvbi5oIgog
I2luY2x1ZGUgIldlYkVkaXRpbmdBY3Rpb24uaCIKICNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlckNv
bXBsZXRpb24uaCIKKyNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlclBhcmFtcy5oIgogI2luY2x1ZGUg
IldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlRleHRBZmZpbml0eS5oIgogI2luY2x1ZGUgIldl
YlRleHREaXJlY3Rpb24uaCIKQEAgLTE2MCwxNCArMTYxLDE3IEBAIHB1YmxpYzoKIAogICAgIC8v
IERpYWxvZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCi0gICAgLy8gVGhpcyBtZXRob2QgcmV0dXJucyBpbW1lZGlhdGVseSBh
ZnRlciBzaG93aW5nIHRoZSBkaWFsb2cuIFdoZW4gdGhlCi0gICAgLy8gZGlhbG9nIGlzIGNsb3Nl
ZCwgaXQgc2hvdWxkIGNhbGwgdGhlIFdlYkZpbGVDaG9vc2VyQ29tcGxldGlvbiB0bwotICAgIC8v
IHBhc3MgdGhlIHJlc3VsdHMgb2YgdGhlIGRpYWxvZy4gUmV0dXJucyBmYWxzZSBpZgotICAgIC8v
IFdlYkZpbGVDaG9vc2VDb21wbGV0aW9uIHdpbGwgbmV2ZXIgYmUgY2FsbGVkLgorICAgIC8vIERl
cHJlY2F0ZWQuIFVzZSBydW5GaWxlQ2hvb3Nlcihjb25zdCBXZWJGaWxlQ2hvb3NlclBhcmFtcyYp
IGluc3RlYWQuCiAgICAgdmlydHVhbCBib29sIHJ1bkZpbGVDaG9vc2VyKAogICAgICAgICBib29s
IG11bHRpU2VsZWN0LCBjb25zdCBXZWJTdHJpbmcmIHRpdGxlLAogICAgICAgICBjb25zdCBXZWJT
dHJpbmcmIGluaXRpYWxWYWx1ZSwgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uKikgeyByZXR1cm4g
ZmFsc2U7IH0KIAorICAgIC8vIFRoaXMgbWV0aG9kIHJldHVybnMgaW1tZWRpYXRlbHkgYWZ0ZXIg
c2hvd2luZyB0aGUgZGlhbG9nLiBXaGVuIHRoZQorICAgIC8vIGRpYWxvZyBpcyBjbG9zZWQsIGl0
IHNob3VsZCBjYWxsIHRoZSBXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb24gdG8KKyAgICAvLyBwYXNz
IHRoZSByZXN1bHRzIG9mIHRoZSBkaWFsb2cuIFJldHVybnMgZmFsc2UgaWYKKyAgICAvLyBXZWJG
aWxlQ2hvb3NlQ29tcGxldGlvbiBpbiBXZWJGaWxlQ2hvb3NlclBhcmFtcyB3aWxsIG5ldmVyIGJl
IGNhbGxlZC4KKyAgICB2aXJ0dWFsIGJvb2wgcnVuRmlsZUNob29zZXIoY29uc3QgV2ViRmlsZUNo
b29zZXJQYXJhbXMmKSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgLy8gRGlzcGxheXMgYSBtb2Rh
bCBhbGVydCBkaWFsb2cgY29udGFpbmluZyB0aGUgZ2l2ZW4gbWVzc2FnZS4gIFJldHVybnMKICAg
ICAvLyBvbmNlIHRoZSB1c2VyIGRpc21pc3NlcyB0aGUgZGlhbG9nLgogICAgIHZpcnR1YWwgdm9p
ZCBydW5Nb2RhbEFsZXJ0RGlhbG9nKApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAKaW5kZXggNGUyMDEyNC4uNjdjOTM1YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCkBAIC01NjAsMjIgKzU2MCwyNyBAQCB2b2lkIENocm9tZUNsaWVudElt
cGw6OnJ1bk9wZW5QYW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGZp
bGVDaAogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBib29sIG11bHRp
cGxlRmlsZXMgPSBmaWxlQ2hvb3Nlci0+YWxsb3dzTXVsdGlwbGVGaWxlcygpOwotCi0gICAgV2Vi
U3RyaW5nIHN1Z2dlc3Rpb247Ci0gICAgaWYgKGZpbGVDaG9vc2VyLT5maWxlbmFtZXMoKS5zaXpl
KCkgPiAwKQotICAgICAgICBzdWdnZXN0aW9uID0gZmlsZUNob29zZXItPmZpbGVuYW1lcygpWzBd
OwotCi0gICAgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1wbCogY2hvb3NlckNvbXBsZXRpb24g
PQotICAgICAgICBuZXcgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1wbChmaWxlQ2hvb3Nlcik7
Ci0gICAgYm9vbCBvayA9IGNsaWVudC0+cnVuRmlsZUNob29zZXIobXVsdGlwbGVGaWxlcywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJTdHJpbmcoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWdnZXN0aW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNob29zZXJDb21wbGV0aW9uKTsKLSAgICBpZiAoIW9rKSB7
Ci0gICAgICAgIC8vIENob29zaW5nIGZhaWxlZCwgc28gZG8gY2FsbGJhY2sgd2l0aCBhbiBlbXB0
eSBsaXN0LgotICAgICAgICBjaG9vc2VyQ29tcGxldGlvbi0+ZGlkQ2hvb3NlRmlsZShXZWJWZWN0
b3I8V2ViU3RyaW5nPigpKTsKLSAgICB9CisgICAgV2ViRmlsZUNob29zZXJQYXJhbXMgcGFyYW1z
OworICAgIHBhcmFtcy5tdWx0aVNlbGVjdCA9IGZpbGVDaG9vc2VyLT5hbGxvd3NNdWx0aXBsZUZp
bGVzKCk7CisgICAgcGFyYW1zLmFjY2VwdFR5cGVzID0gZmlsZUNob29zZXItPmFjY2VwdFR5cGVz
KCk7CisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlbGVjdGVkRmlsZXMgPSBmaWxlQ2hvb3Nl
ci0+ZmlsZW5hbWVzKCk7CisgICAgcGFyYW1zLnNlbGVjdGVkRmlsZXMgPSBXZWJWZWN0b3I8V2Vi
U3RyaW5nPihzZWxlY3RlZEZpbGVzKTsKKyAgICBpZiAoc2VsZWN0ZWRGaWxlcy5zaXplKCkgPiAw
KQorICAgICAgICBwYXJhbXMuaW5pdGlhbFZhbHVlID0gc2VsZWN0ZWRGaWxlc1swXTsKKyAgICBw
YXJhbXMuY2hvb3NlckNvbXBsZXRpb24gPSBuZXcgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1w
bChmaWxlQ2hvb3Nlcik7CisKKyAgICBpZiAoY2xpZW50LT5ydW5GaWxlQ2hvb3NlcihwYXJhbXMp
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBDaG9vc2luZyB3aXRoIG5ldyBmdW5jdGlvbiBm
YWlsZWQsIHNvIGZhbGxiYWNrIHRvIG9sZCBmdW5jdGlvbi4KKyAgICBpZiAoY2xpZW50LT5ydW5G
aWxlQ2hvb3NlcihwYXJhbXMubXVsdGlTZWxlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFyYW1zLnRpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFt
cy5pbml0aWFsVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNo
b29zZXJDb21wbGV0aW9uKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQ2hvb3Npbmcgd2l0
aCB0aGUgb2xkIGZ1bmN0aW9uIGZhaWxlZCwgc28gZG8gY2FsbGJhY2sgd2l0aCBhbiBlbXB0eSBs
aXN0LgorICAgIHBhcmFtcy5jaG9vc2VyQ29tcGxldGlvbi0+ZGlkQ2hvb3NlRmlsZShXZWJWZWN0
b3I8V2ViU3RyaW5nPigpKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5l
ZChQb3B1cENvbnRhaW5lciogcG9wdXBDb250YWluZXIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46542</attachid>
            <date>2010-01-13 23:06:19 -0800</date>
            <delta_ts>2010-01-14 00:04:40 -0800</delta_ts>
            <desc>Proposed patch (rev.3)</desc>
            <filename>bug-32473-20100114160617.patch</filename>
            <type>text/plain</type>
            <size>8527</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDU5ZmM1OTQuLmI5NzFjM2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI1IEBACisyMDEwLTAxLTEzICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2Ug
V2ViRmlsZUNob29zZXJQYXJhbXMgdG8gY29udmV5IHBhcmFtZXRlcnMgZm9yCisgICAgICAgIFdl
YlZpZXdDbGllbnQ6OnJ1bkZpbGVDaG9vc2VyKCksIGFuZCBhZGQgbmV3IHBhcmFtZXRlcnMgdG8g
aXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ3
MworCisgICAgICAgIFRoZSBuZXcgcGFyYW1ldGVycyBhcmUKKyAgICAgICAgIC0gc2VsZWN0ZWQg
ZmlsZSBuYW1lcworICAgICAgICAgLSAiYWNjZXB0IiBhdHRyaWJ1dGUgdmFsdWUKKworICAgICAg
ICAqIFdlYktpdC5neXA6IEFkZCBXZWJGaWxlQ2hvb3NlclBhcmFtcy5oCisgICAgICAgICogcHVi
bGljL1dlYkZpbGVDaG9vc2VyUGFyYW1zLmg6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6OnJ1bkZpbGVDaG9v
c2VyKToKKyAgICAgICAgICBBZGQgcnVuRmlsZUNob29zZXIoKSB3aXRoIFdlYkZpbGVDaG9vc2Vy
UGFyYW1zLCBhbmQgbWFyayB0aGUgb2xkIG9uZSBkZXByZWNhdGVkLgorICAgICAgICAqIHNyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6
cnVuT3BlblBhbmVsKToKKyAgICAgICAgICBDYWxsIHRoZSBuZXcgcnVuRmlsZUNob29zZXIoKSBm
aXJzdCwgdGhlbiBjYWxsIHRoZSBvbGQKKyAgICAgICAgICBydW5GaWxlQ2hvb3NlcigpIGlmIHRo
ZSBuZXcgb25lIGZhaWxlZC4KKwogMjAxMC0wMS0xMyAgSmVyZW15IE9ybG93ICA8am9ybG93QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwCmluZGV4IGY2NDk4NDYuLjBmODRlZmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMDgsNiArMTA4
LDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkVkaXRpbmdBY3Rpb24uaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJFbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViRmlsZUNob29zZXJDb21wbGV0aW9uLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViRmlsZUNob29zZXJQYXJhbXMuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJGaW5k
T3B0aW9ucy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkZyYW1lLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViRnJhbWVDbGllbnQuaCcsCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkZpbGVDaG9vc2VyUGFyYW1zLmggYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkZpbGVDaG9vc2VyUGFyYW1zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uMWEwNTg3NwotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRmlsZUNob29zZXJQYXJhbXMuaApAQCAtMCwwICsxLDY2IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJGaWxl
Q2hvb3NlclBhcmFtc19oCisjZGVmaW5lIFdlYkZpbGVDaG9vc2VyUGFyYW1zX2gKKworI2luY2x1
ZGUgIldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgor
I2luY2x1ZGUgIldlYlZlY3Rvci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFdl
YkZpbGVDaG9vc2VyUGFyYW1zIHsKKyAgICAvLyBJZiB8bXVsdGlTZWxlY3R8IGlzIHRydWUsIHRo
ZSBkaWFsb2cgYWxsb3cgdG8gc2VsZWN0IG11bHRpcGxlIGZpbGVzLgorICAgIGJvb2wgbXVsdGlT
ZWxlY3Q7CisgICAgLy8gfHRpdGxlfCBpcyBhIHRpdGxlIG9mIGEgZmlsZSBjaG9vc2VyIGRpYWxv
Zy4gSXQgY2FuIGJlIGFuIGVtcHR5IHN0cmluZy4KKyAgICBXZWJTdHJpbmcgdGl0bGU7CisgICAg
Ly8gfGluaXRpYWxWYWx1ZXwgaXMgYSBmaWxlbmFtZSB3aGljaCB0aGUgZGlhbG9nIHNob3VsZCBz
ZWxlY3QgYnkgZGVmYXVsdC4KKyAgICAvLyBJdCBjYW4gYmUgYW4gZW1wdHkgc3RyaW5nLgorICAg
IFdlYlN0cmluZyBpbml0aWFsVmFsdWU7CisgICAgLy8gfGFjY2VwdFR5cGVzfCBoYXMgYSBjb21t
YS1zZXBhcmF0ZWQgTUlNRSB0eXBlcyBzdWNoIGFzICJhdWRpby8qLHRleHQvcGxhaW4iLgorICAg
IC8vIFRoZSBkaWFsb2cgbWF5IHJlc3RyaWN0IHNlbGVjdGFibGUgZmlsZXMgdG8gdGhlIHNwZWNp
ZmllZCBNSU1FIHR5cGVzLgorICAgIC8vIFRoaXMgdmFsdWUgY29tZXMgZnJvbSBhbiAnYWNjZXB0
JyBhdHRyaWJ1dGUgdmFsdWUgb2YgYW4gSU5QVVQgZWxlbWVudC4KKyAgICAvLyBTbyBpdCBtaWdo
dCBiZSBhIHdyb25nIGZvcm1hdHRlZCBzdHJpbmcuCisgICAgV2ViU3RyaW5nIGFjY2VwdFR5cGVz
OworICAgIC8vIHxzZWxlY3RlZEZpbGVzfCBoYXMgZmlsZW5hbWVzIHdoaWNoIGEgZmlsZSB1cGxv
YWQgY29udHJvbCBhbHJlYWR5IHNlbGVjdC4KKyAgICAvLyBBIFdlYlZpZXdDbGllbnQgaW1wbGVt
ZW50YXRpb24gbWF5IGFzayBhIHVzZXIgdG8gc2VsZWN0CisgICAgLy8gIC0gcmVtb3ZpbmcgYSBm
aWxlIGZyb20gdGhlIHNlbGVjdGVkIGZpbGVzLAorICAgIC8vICAtIGFwcGVuZGluZyBvdGhlciBm
aWxlcywgb3IKKyAgICAvLyAgLSByZXBsYWNpbmcgd2l0aCBvdGhlciBmaWxlcworICAgIC8vIGJl
Zm9yZSBvcGVuaW5nIGEgZmlsZSBjaG9vc2VyIGRpYWxvZy4KKyAgICBXZWJWZWN0b3I8V2ViU3Ry
aW5nPiBzZWxlY3RlZEZpbGVzOworICAgIC8vIFdlYkZpbGVDaG9vc2VyQ29tcGxldGlvbjo6ZGlk
Q2hvb3NlRmlsZSgpIHdpbGwgcmVjZWl2ZSByZXN1bHRhbnQgZmlsZW5hbWVzLgorICAgIFdlYkZp
bGVDaG9vc2VyQ29tcGxldGlvbiogY2hvb3NlckNvbXBsZXRpb247Cit9OworCit9IC8vIG5hbWVz
cGFjZSBXZWJLaXQKKworI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJLaXQvY2hyb21pdW0vcHVibGlj
L1dlYlZpZXdDbGllbnQuaCBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0NsaWVudC5o
CmluZGV4IDFiMGE2MWEuLjM4M2U4OTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViVmlld0NsaWVudC5oCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJsaWMvV2ViVmlld0Ns
aWVudC5oCkBAIC0zNCw2ICszNCw3IEBACiAjaW5jbHVkZSAiV2ViRHJhZ09wZXJhdGlvbi5oIgog
I2luY2x1ZGUgIldlYkVkaXRpbmdBY3Rpb24uaCIKICNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlckNv
bXBsZXRpb24uaCIKKyNpbmNsdWRlICJXZWJGaWxlQ2hvb3NlclBhcmFtcy5oIgogI2luY2x1ZGUg
IldlYlN0cmluZy5oIgogI2luY2x1ZGUgIldlYlRleHRBZmZpbml0eS5oIgogI2luY2x1ZGUgIldl
YlRleHREaXJlY3Rpb24uaCIKQEAgLTE2MCwxNCArMTYxLDE3IEBAIHB1YmxpYzoKIAogICAgIC8v
IERpYWxvZ3MgLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLQogCi0gICAgLy8gVGhpcyBtZXRob2QgcmV0dXJucyBpbW1lZGlhdGVseSBh
ZnRlciBzaG93aW5nIHRoZSBkaWFsb2cuIFdoZW4gdGhlCi0gICAgLy8gZGlhbG9nIGlzIGNsb3Nl
ZCwgaXQgc2hvdWxkIGNhbGwgdGhlIFdlYkZpbGVDaG9vc2VyQ29tcGxldGlvbiB0bwotICAgIC8v
IHBhc3MgdGhlIHJlc3VsdHMgb2YgdGhlIGRpYWxvZy4gUmV0dXJucyBmYWxzZSBpZgotICAgIC8v
IFdlYkZpbGVDaG9vc2VDb21wbGV0aW9uIHdpbGwgbmV2ZXIgYmUgY2FsbGVkLgorICAgIC8vIERl
cHJlY2F0ZWQuIFVzZSBydW5GaWxlQ2hvb3Nlcihjb25zdCBXZWJGaWxlQ2hvb3NlclBhcmFtcyYp
IGluc3RlYWQuCiAgICAgdmlydHVhbCBib29sIHJ1bkZpbGVDaG9vc2VyKAogICAgICAgICBib29s
IG11bHRpU2VsZWN0LCBjb25zdCBXZWJTdHJpbmcmIHRpdGxlLAogICAgICAgICBjb25zdCBXZWJT
dHJpbmcmIGluaXRpYWxWYWx1ZSwgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uKikgeyByZXR1cm4g
ZmFsc2U7IH0KIAorICAgIC8vIFRoaXMgbWV0aG9kIHJldHVybnMgaW1tZWRpYXRlbHkgYWZ0ZXIg
c2hvd2luZyB0aGUgZGlhbG9nLiBXaGVuIHRoZQorICAgIC8vIGRpYWxvZyBpcyBjbG9zZWQsIGl0
IHNob3VsZCBjYWxsIHRoZSBXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb24gdG8KKyAgICAvLyBwYXNz
IHRoZSByZXN1bHRzIG9mIHRoZSBkaWFsb2cuIFJldHVybnMgZmFsc2UgaWYKKyAgICAvLyBXZWJG
aWxlQ2hvb3NlQ29tcGxldGlvbiBpbiBXZWJGaWxlQ2hvb3NlclBhcmFtcyB3aWxsIG5ldmVyIGJl
IGNhbGxlZC4KKyAgICB2aXJ0dWFsIGJvb2wgcnVuRmlsZUNob29zZXIoY29uc3QgV2ViRmlsZUNo
b29zZXJQYXJhbXMmKSB7IHJldHVybiBmYWxzZTsgfQorCiAgICAgLy8gRGlzcGxheXMgYSBtb2Rh
bCBhbGVydCBkaWFsb2cgY29udGFpbmluZyB0aGUgZ2l2ZW4gbWVzc2FnZS4gIFJldHVybnMKICAg
ICAvLyBvbmNlIHRoZSB1c2VyIGRpc21pc3NlcyB0aGUgZGlhbG9nLgogICAgIHZpcnR1YWwgdm9p
ZCBydW5Nb2RhbEFsZXJ0RGlhbG9nKApkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3NyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcCBiL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50SW1w
bC5jcHAKaW5kZXggNGUyMDEyNC4uNjdjOTM1YSAxMDA2NDQKLS0tIGEvV2ViS2l0L2Nocm9taXVt
L3NyYy9DaHJvbWVDbGllbnRJbXBsLmNwcAorKysgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9t
ZUNsaWVudEltcGwuY3BwCkBAIC01NjAsMjIgKzU2MCwyNyBAQCB2b2lkIENocm9tZUNsaWVudElt
cGw6OnJ1bk9wZW5QYW5lbChGcmFtZSogZnJhbWUsIFBhc3NSZWZQdHI8RmlsZUNob29zZXI+IGZp
bGVDaAogICAgIGlmICghY2xpZW50KQogICAgICAgICByZXR1cm47CiAKLSAgICBib29sIG11bHRp
cGxlRmlsZXMgPSBmaWxlQ2hvb3Nlci0+YWxsb3dzTXVsdGlwbGVGaWxlcygpOwotCi0gICAgV2Vi
U3RyaW5nIHN1Z2dlc3Rpb247Ci0gICAgaWYgKGZpbGVDaG9vc2VyLT5maWxlbmFtZXMoKS5zaXpl
KCkgPiAwKQotICAgICAgICBzdWdnZXN0aW9uID0gZmlsZUNob29zZXItPmZpbGVuYW1lcygpWzBd
OwotCi0gICAgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1wbCogY2hvb3NlckNvbXBsZXRpb24g
PQotICAgICAgICBuZXcgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1wbChmaWxlQ2hvb3Nlcik7
Ci0gICAgYm9vbCBvayA9IGNsaWVudC0+cnVuRmlsZUNob29zZXIobXVsdGlwbGVGaWxlcywKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJTdHJpbmcoKSwKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWdnZXN0aW9uLAotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGNob29zZXJDb21wbGV0aW9uKTsKLSAgICBpZiAoIW9rKSB7
Ci0gICAgICAgIC8vIENob29zaW5nIGZhaWxlZCwgc28gZG8gY2FsbGJhY2sgd2l0aCBhbiBlbXB0
eSBsaXN0LgotICAgICAgICBjaG9vc2VyQ29tcGxldGlvbi0+ZGlkQ2hvb3NlRmlsZShXZWJWZWN0
b3I8V2ViU3RyaW5nPigpKTsKLSAgICB9CisgICAgV2ViRmlsZUNob29zZXJQYXJhbXMgcGFyYW1z
OworICAgIHBhcmFtcy5tdWx0aVNlbGVjdCA9IGZpbGVDaG9vc2VyLT5hbGxvd3NNdWx0aXBsZUZp
bGVzKCk7CisgICAgcGFyYW1zLmFjY2VwdFR5cGVzID0gZmlsZUNob29zZXItPmFjY2VwdFR5cGVz
KCk7CisgICAgY29uc3QgVmVjdG9yPFN0cmluZz4mIHNlbGVjdGVkRmlsZXMgPSBmaWxlQ2hvb3Nl
ci0+ZmlsZW5hbWVzKCk7CisgICAgcGFyYW1zLnNlbGVjdGVkRmlsZXMgPSBXZWJWZWN0b3I8V2Vi
U3RyaW5nPihzZWxlY3RlZEZpbGVzKTsKKyAgICBpZiAoc2VsZWN0ZWRGaWxlcy5zaXplKCkgPiAw
KQorICAgICAgICBwYXJhbXMuaW5pdGlhbFZhbHVlID0gc2VsZWN0ZWRGaWxlc1swXTsKKyAgICBw
YXJhbXMuY2hvb3NlckNvbXBsZXRpb24gPSBuZXcgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1w
bChmaWxlQ2hvb3Nlcik7CisKKyAgICBpZiAoY2xpZW50LT5ydW5GaWxlQ2hvb3NlcihwYXJhbXMp
KQorICAgICAgICByZXR1cm47CisKKyAgICAvLyBDaG9vc2luZyB3aXRoIG5ldyBmdW5jdGlvbiBm
YWlsZWQsIHNvIGZhbGxiYWNrIHRvIG9sZCBmdW5jdGlvbi4KKyAgICBpZiAoY2xpZW50LT5ydW5G
aWxlQ2hvb3NlcihwYXJhbXMubXVsdGlTZWxlY3QsCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgcGFyYW1zLnRpdGxlLAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFt
cy5pbml0aWFsVmFsdWUsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyYW1zLmNo
b29zZXJDb21wbGV0aW9uKSkKKyAgICAgICAgcmV0dXJuOworCisgICAgLy8gQ2hvb3Npbmcgd2l0
aCB0aGUgb2xkIGZ1bmN0aW9uIGZhaWxlZCwgc28gZG8gY2FsbGJhY2sgd2l0aCBhbiBlbXB0eSBs
aXN0LgorICAgIHBhcmFtcy5jaG9vc2VyQ29tcGxldGlvbi0+ZGlkQ2hvb3NlRmlsZShXZWJWZWN0
b3I8V2ViU3RyaW5nPigpKTsKIH0KIAogdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpwb3B1cE9wZW5l
ZChQb3B1cENvbnRhaW5lciogcG9wdXBDb250YWluZXIsCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>46545</attachid>
            <date>2010-01-14 00:04:50 -0800</date>
            <delta_ts>2010-01-14 09:39:02 -0800</delta_ts>
            <desc>Proposed patch (rev.4)</desc>
            <filename>bug-32473-20100114170448.patch</filename>
            <type>text/plain</type>
            <size>8148</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9DaGFuZ2VMb2cgYi9XZWJLaXQvY2hyb21pdW0v
Q2hhbmdlTG9nCmluZGV4IDU5ZmM1OTQuLmI5NzFjM2EgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJv
bWl1bS9DaGFuZ2VMb2cKKysrIGIvV2ViS2l0L2Nocm9taXVtL0NoYW5nZUxvZwpAQCAtMSwzICsx
LDI1IEBACisyMDEwLTAxLTEzICBLZW50IFRhbXVyYSAgPHRrZW50QGNocm9taXVtLm9yZz4KKwor
ICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBJbnRyb2R1Y2Ug
V2ViRmlsZUNob29zZXJQYXJhbXMgdG8gY29udmV5IHBhcmFtZXRlcnMgZm9yCisgICAgICAgIFdl
YlZpZXdDbGllbnQ6OnJ1bkZpbGVDaG9vc2VyKCksIGFuZCBhZGQgbmV3IHBhcmFtZXRlcnMgdG8g
aXQuCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0zMjQ3
MworCisgICAgICAgIFRoZSBuZXcgcGFyYW1ldGVycyBhcmUKKyAgICAgICAgIC0gc2VsZWN0ZWQg
ZmlsZSBuYW1lcworICAgICAgICAgLSAiYWNjZXB0IiBhdHRyaWJ1dGUgdmFsdWUKKworICAgICAg
ICAqIFdlYktpdC5neXA6IEFkZCBXZWJGaWxlQ2hvb3NlclBhcmFtcy5oCisgICAgICAgICogcHVi
bGljL1dlYkZpbGVDaG9vc2VyUGFyYW1zLmg6IEFkZGVkLgorICAgICAgICAqIHB1YmxpYy9XZWJW
aWV3Q2xpZW50Lmg6CisgICAgICAgIChXZWJLaXQ6OldlYlZpZXdDbGllbnQ6OnJ1bkZpbGVDaG9v
c2VyKToKKyAgICAgICAgICBBZGQgcnVuRmlsZUNob29zZXIoKSB3aXRoIFdlYkZpbGVDaG9vc2Vy
UGFyYW1zLCBhbmQgbWFyayB0aGUgb2xkIG9uZSBkZXByZWNhdGVkLgorICAgICAgICAqIHNyYy9D
aHJvbWVDbGllbnRJbXBsLmNwcDoKKyAgICAgICAgKFdlYktpdDo6Q2hyb21lQ2xpZW50SW1wbDo6
cnVuT3BlblBhbmVsKToKKyAgICAgICAgICBDYWxsIHRoZSBuZXcgcnVuRmlsZUNob29zZXIoKSBm
aXJzdCwgdGhlbiBjYWxsIHRoZSBvbGQKKyAgICAgICAgICBydW5GaWxlQ2hvb3NlcigpIGlmIHRo
ZSBuZXcgb25lIGZhaWxlZC4KKwogMjAxMC0wMS0xMyAgSmVyZW15IE9ybG93ICA8am9ybG93QGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBGaXNoZXIuCmRpZmYgLS1n
aXQgYS9XZWJLaXQvY2hyb21pdW0vV2ViS2l0Lmd5cCBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQu
Z3lwCmluZGV4IGY2NDk4NDYuLjBmODRlZmUgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9X
ZWJLaXQuZ3lwCisrKyBiL1dlYktpdC9jaHJvbWl1bS9XZWJLaXQuZ3lwCkBAIC0xMDgsNiArMTA4
LDcgQEAKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkVkaXRpbmdBY3Rpb24uaCcsCiAgICAg
ICAgICAgICAgICAgJ3B1YmxpYy9XZWJFbGVtZW50LmgnLAogICAgICAgICAgICAgICAgICdwdWJs
aWMvV2ViRmlsZUNob29zZXJDb21wbGV0aW9uLmgnLAorICAgICAgICAgICAgICAgICdwdWJsaWMv
V2ViRmlsZUNob29zZXJQYXJhbXMuaCcsCiAgICAgICAgICAgICAgICAgJ3B1YmxpYy9XZWJGaW5k
T3B0aW9ucy5oJywKICAgICAgICAgICAgICAgICAncHVibGljL1dlYkZyYW1lLmgnLAogICAgICAg
ICAgICAgICAgICdwdWJsaWMvV2ViRnJhbWVDbGllbnQuaCcsCmRpZmYgLS1naXQgYS9XZWJLaXQv
Y2hyb21pdW0vcHVibGljL1dlYkZpbGVDaG9vc2VyUGFyYW1zLmggYi9XZWJLaXQvY2hyb21pdW0v
cHVibGljL1dlYkZpbGVDaG9vc2VyUGFyYW1zLmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXgg
MDAwMDAwMC4uNjM1OWYxNAotLS0gL2Rldi9udWxsCisrKyBiL1dlYktpdC9jaHJvbWl1bS9wdWJs
aWMvV2ViRmlsZUNob29zZXJQYXJhbXMuaApAQCAtMCwwICsxLDY0IEBACisvKgorICogQ29weXJp
Z2h0IChDKSAyMDEwIEdvb2dsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMgYXJlCisgKiBtZXQ6CisgKgorICogICAgICogUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqICAgICAqIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJv
ZHVjZSB0aGUgYWJvdmUKKyAqIGNvcHlyaWdodCBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIKKyAqIGluIHRoZSBkb2N1bWVudGF0aW9u
IGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUKKyAqIGRpc3RyaWJ1dGlv
bi4KKyAqICAgICAqIE5laXRoZXIgdGhlIG5hbWUgb2YgR29vZ2xlIEluYy4gbm9yIHRoZSBuYW1l
cyBvZiBpdHMKKyAqIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZCBmcm9tCisgKiB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lm
aWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJP
VklERUQgQlkgVEhFIENPUFlSSUdIVCBIT0xERVJTIEFORCBDT05UUklCVVRPUlMKKyAqICJBUyBJ
UyIgQU5EIEFOWSBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQg
Tk9UCisgKiBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRCBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJ
TElUWSBBTkQgRklUTkVTUyBGT1IKKyAqIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRSBESVNDTEFJ
TUVELiBJTiBOTyBFVkVOVCBTSEFMTCBUSEUgQ09QWVJJR0hUCisgKiBPV05FUiBPUiBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkgRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwKKyAq
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTIChJTkNMVURJTkcs
IEJVVCBOT1QKKyAqIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7IExPU1MgT0YgVVNFLAorICogREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQgT04gQU5ZCisgKiBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UKKyAqIE9GIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI2lmbmRlZiBXZWJGaWxl
Q2hvb3NlclBhcmFtc19oCisjZGVmaW5lIFdlYkZpbGVDaG9vc2VyUGFyYW1zX2gKKworI2luY2x1
ZGUgIldlYkZpbGVDaG9vc2VyQ29tcGxldGlvbi5oIgorI2luY2x1ZGUgIldlYlN0cmluZy5oIgor
I2luY2x1ZGUgIldlYlZlY3Rvci5oIgorCituYW1lc3BhY2UgV2ViS2l0IHsKKworc3RydWN0IFdl
YkZpbGVDaG9vc2VyUGFyYW1zIHsKKyAgICAvLyBJZiB8bXVsdGlTZWxlY3R8IGlzIHRydWUsIHRo
ZSBkaWFsb2cgYWxsb3cgdG8gc2VsZWN0IG11bHRpcGxlIGZpbGVzLgorICAgIGJvb2wgbXVsdGlT
ZWxlY3Q7CisgICAgLy8gfHRpdGxlfCBpcyBhIHRpdGxlIG9mIGEgZmlsZSBjaG9vc2VyIGRpYWxv
Zy4gSXQgY2FuIGJlIGFuIGVtcHR5IHN0cmluZy4KKyAgICBXZWJTdHJpbmcgdGl0bGU7CisgICAg
Ly8gfGluaXRpYWxWYWx1ZXwgaXMgYSBmaWxlbmFtZSB3aGljaCB0aGUgZGlhbG9nIHNob3VsZCBz
ZWxlY3QgYnkgZGVmYXVsdC4KKyAgICAvLyBJdCBjYW4gYmUgYW4gZW1wdHkgc3RyaW5nLgorICAg
IFdlYlN0cmluZyBpbml0aWFsVmFsdWU7CisgICAgLy8gfGFjY2VwdFR5cGVzfCBoYXMgYSBjb21t
YS1zZXBhcmF0ZWQgTUlNRSB0eXBlcyBzdWNoIGFzICJhdWRpby8qLHRleHQvcGxhaW4iLgorICAg
IC8vIFRoZSBkaWFsb2cgbWF5IHJlc3RyaWN0IHNlbGVjdGFibGUgZmlsZXMgdG8gdGhlIHNwZWNp
ZmllZCBNSU1FIHR5cGVzLgorICAgIC8vIFRoaXMgdmFsdWUgY29tZXMgZnJvbSBhbiAnYWNjZXB0
JyBhdHRyaWJ1dGUgdmFsdWUgb2YgYW4gSU5QVVQgZWxlbWVudC4KKyAgICAvLyBTbyBpdCBtaWdo
dCBiZSBhIHdyb25nIGZvcm1hdHRlZCBzdHJpbmcuCisgICAgV2ViU3RyaW5nIGFjY2VwdFR5cGVz
OworICAgIC8vIHxzZWxlY3RlZEZpbGVzfCBoYXMgZmlsZW5hbWVzIHdoaWNoIGEgZmlsZSB1cGxv
YWQgY29udHJvbCBhbHJlYWR5IHNlbGVjdC4KKyAgICAvLyBBIFdlYlZpZXdDbGllbnQgaW1wbGVt
ZW50YXRpb24gbWF5IGFzayBhIHVzZXIgdG8gc2VsZWN0CisgICAgLy8gIC0gcmVtb3ZpbmcgYSBm
aWxlIGZyb20gdGhlIHNlbGVjdGVkIGZpbGVzLAorICAgIC8vICAtIGFwcGVuZGluZyBvdGhlciBm
aWxlcywgb3IKKyAgICAvLyAgLSByZXBsYWNpbmcgd2l0aCBvdGhlciBmaWxlcworICAgIC8vIGJl
Zm9yZSBvcGVuaW5nIGEgZmlsZSBjaG9vc2VyIGRpYWxvZy4KKyAgICBXZWJWZWN0b3I8V2ViU3Ry
aW5nPiBzZWxlY3RlZEZpbGVzOworfTsKKworfSAvLyBuYW1lc3BhY2UgV2ViS2l0CisKKyNlbmRp
ZgpkaWZmIC0tZ2l0IGEvV2ViS2l0L2Nocm9taXVtL3B1YmxpYy9XZWJWaWV3Q2xpZW50LmggYi9X
ZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAppbmRleCAxYjBhNjFhLi4xNmEy
ZmNhIDEwMDY0NAotLS0gYS9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaAor
KysgYi9XZWJLaXQvY2hyb21pdW0vcHVibGljL1dlYlZpZXdDbGllbnQuaApAQCAtMzQsNiArMzQs
NyBAQAogI2luY2x1ZGUgIldlYkRyYWdPcGVyYXRpb24uaCIKICNpbmNsdWRlICJXZWJFZGl0aW5n
QWN0aW9uLmgiCiAjaW5jbHVkZSAiV2ViRmlsZUNob29zZXJDb21wbGV0aW9uLmgiCisjaW5jbHVk
ZSAiV2ViRmlsZUNob29zZXJQYXJhbXMuaCIKICNpbmNsdWRlICJXZWJTdHJpbmcuaCIKICNpbmNs
dWRlICJXZWJUZXh0QWZmaW5pdHkuaCIKICNpbmNsdWRlICJXZWJUZXh0RGlyZWN0aW9uLmgiCkBA
IC0xNjAsMTMgKzE2MSwxNyBAQCBwdWJsaWM6CiAKICAgICAvLyBEaWFsb2dzIC0tLS0tLS0tLS0t
LS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0KIAorICAg
IC8vIERlcHJlY2F0ZWQuIFVzZSBhbm90aGVyIHJ1bkZpbGVDaG9vc2VyKCkgYmVsb3cgaW5zdGVh
ZC4KKyAgICB2aXJ0dWFsIGJvb2wgcnVuRmlsZUNob29zZXIoCisgICAgICAgIGJvb2wgbXVsdGlT
ZWxlY3QsIGNvbnN0IFdlYlN0cmluZyYgdGl0bGUsCisgICAgICAgIGNvbnN0IFdlYlN0cmluZyYg
aW5pdGlhbFZhbHVlLCBXZWJGaWxlQ2hvb3NlckNvbXBsZXRpb24qKSB7IHJldHVybiBmYWxzZTsg
fQorCiAgICAgLy8gVGhpcyBtZXRob2QgcmV0dXJucyBpbW1lZGlhdGVseSBhZnRlciBzaG93aW5n
IHRoZSBkaWFsb2cuIFdoZW4gdGhlCiAgICAgLy8gZGlhbG9nIGlzIGNsb3NlZCwgaXQgc2hvdWxk
IGNhbGwgdGhlIFdlYkZpbGVDaG9vc2VyQ29tcGxldGlvbiB0bwogICAgIC8vIHBhc3MgdGhlIHJl
c3VsdHMgb2YgdGhlIGRpYWxvZy4gUmV0dXJucyBmYWxzZSBpZgogICAgIC8vIFdlYkZpbGVDaG9v
c2VDb21wbGV0aW9uIHdpbGwgbmV2ZXIgYmUgY2FsbGVkLgotICAgIHZpcnR1YWwgYm9vbCBydW5G
aWxlQ2hvb3NlcigKLSAgICAgICAgYm9vbCBtdWx0aVNlbGVjdCwgY29uc3QgV2ViU3RyaW5nJiB0
aXRsZSwKLSAgICAgICAgY29uc3QgV2ViU3RyaW5nJiBpbml0aWFsVmFsdWUsIFdlYkZpbGVDaG9v
c2VyQ29tcGxldGlvbiopIHsgcmV0dXJuIGZhbHNlOyB9CisgICAgdmlydHVhbCBib29sIHJ1bkZp
bGVDaG9vc2VyKGNvbnN0IFdlYkZpbGVDaG9vc2VyUGFyYW1zJiwKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uKikgeyByZXR1cm4gZmFsc2U7
IH0KIAogICAgIC8vIERpc3BsYXlzIGEgbW9kYWwgYWxlcnQgZGlhbG9nIGNvbnRhaW5pbmcgdGhl
IGdpdmVuIG1lc3NhZ2UuICBSZXR1cm5zCiAgICAgLy8gb25jZSB0aGUgdXNlciBkaXNtaXNzZXMg
dGhlIGRpYWxvZy4KZGlmZiAtLWdpdCBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21lQ2xpZW50
SW1wbC5jcHAgYi9XZWJLaXQvY2hyb21pdW0vc3JjL0Nocm9tZUNsaWVudEltcGwuY3BwCmluZGV4
IDRlMjAxMjQuLjc1NTI5OTcgMTAwNjQ0Ci0tLSBhL1dlYktpdC9jaHJvbWl1bS9zcmMvQ2hyb21l
Q2xpZW50SW1wbC5jcHAKKysrIGIvV2ViS2l0L2Nocm9taXVtL3NyYy9DaHJvbWVDbGllbnRJbXBs
LmNwcApAQCAtNTYwLDIyICs1NjAsMjcgQEAgdm9pZCBDaHJvbWVDbGllbnRJbXBsOjpydW5PcGVu
UGFuZWwoRnJhbWUqIGZyYW1lLCBQYXNzUmVmUHRyPEZpbGVDaG9vc2VyPiBmaWxlQ2gKICAgICBp
ZiAoIWNsaWVudCkKICAgICAgICAgcmV0dXJuOwogCi0gICAgYm9vbCBtdWx0aXBsZUZpbGVzID0g
ZmlsZUNob29zZXItPmFsbG93c011bHRpcGxlRmlsZXMoKTsKLQotICAgIFdlYlN0cmluZyBzdWdn
ZXN0aW9uOwotICAgIGlmIChmaWxlQ2hvb3Nlci0+ZmlsZW5hbWVzKCkuc2l6ZSgpID4gMCkKLSAg
ICAgICAgc3VnZ2VzdGlvbiA9IGZpbGVDaG9vc2VyLT5maWxlbmFtZXMoKVswXTsKLQorICAgIFdl
YkZpbGVDaG9vc2VyUGFyYW1zIHBhcmFtczsKKyAgICBwYXJhbXMubXVsdGlTZWxlY3QgPSBmaWxl
Q2hvb3Nlci0+YWxsb3dzTXVsdGlwbGVGaWxlcygpOworICAgIHBhcmFtcy5hY2NlcHRUeXBlcyA9
IGZpbGVDaG9vc2VyLT5hY2NlcHRUeXBlcygpOworICAgIHBhcmFtcy5zZWxlY3RlZEZpbGVzID0g
ZmlsZUNob29zZXItPmZpbGVuYW1lcygpOworICAgIGlmIChwYXJhbXMuc2VsZWN0ZWRGaWxlcy5z
aXplKCkgPiAwKQorICAgICAgICBwYXJhbXMuaW5pdGlhbFZhbHVlID0gcGFyYW1zLnNlbGVjdGVk
RmlsZXNbMF07CiAgICAgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1wbCogY2hvb3NlckNvbXBs
ZXRpb24gPQogICAgICAgICBuZXcgV2ViRmlsZUNob29zZXJDb21wbGV0aW9uSW1wbChmaWxlQ2hv
b3Nlcik7Ci0gICAgYm9vbCBvayA9IGNsaWVudC0+cnVuRmlsZUNob29zZXIobXVsdGlwbGVGaWxl
cywKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBXZWJTdHJpbmcoKSwKLSAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdWdnZXN0aW9uLAotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNob29zZXJDb21wbGV0aW9uKTsKLSAgICBpZiAo
IW9rKSB7Ci0gICAgICAgIC8vIENob29zaW5nIGZhaWxlZCwgc28gZG8gY2FsbGJhY2sgd2l0aCBh
biBlbXB0eSBsaXN0LgotICAgICAgICBjaG9vc2VyQ29tcGxldGlvbi0+ZGlkQ2hvb3NlRmlsZShX
ZWJWZWN0b3I8V2ViU3RyaW5nPigpKTsKLSAgICB9CisKKyAgICBpZiAoY2xpZW50LT5ydW5GaWxl
Q2hvb3NlcihwYXJhbXMsIGNob29zZXJDb21wbGV0aW9uKSkKKyAgICAgICAgcmV0dXJuOworCisg
ICAgLy8gQ2hvb3Npbmcgd2l0aCBuZXcgZnVuY3Rpb24gZmFpbGVkLCBzbyBmYWxsYmFjayB0byBv
bGQgZnVuY3Rpb24uCisgICAgaWYgKGNsaWVudC0+cnVuRmlsZUNob29zZXIocGFyYW1zLm11bHRp
U2VsZWN0LAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBhcmFtcy50aXRsZSwKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwYXJhbXMuaW5pdGlhbFZhbHVlLAorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGNob29zZXJDb21wbGV0aW9uKSkKKyAgICAgICAgcmV0
dXJuOworCisgICAgLy8gQ2hvb3Npbmcgd2l0aCB0aGUgb2xkIGZ1bmN0aW9uIGZhaWxlZCwgc28g
ZG8gY2FsbGJhY2sgd2l0aCBhbiBlbXB0eSBsaXN0LgorICAgIGNob29zZXJDb21wbGV0aW9uLT5k
aWRDaG9vc2VGaWxlKFdlYlZlY3RvcjxXZWJTdHJpbmc+KCkpOwogfQogCiB2b2lkIENocm9tZUNs
aWVudEltcGw6OnBvcHVwT3BlbmVkKFBvcHVwQ29udGFpbmVyKiBwb3B1cENvbnRhaW5lciwK
</data>

          </attachment>
      

    </bug>

</bugzilla>