<?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>70095</bug_id>
          
          <creation_ts>2011-10-14 01:42:08 -0700</creation_ts>
          <short_desc>Reject invalid MIME type strings for a file selection dialog parameter</short_desc>
          <delta_ts>2011-10-19 19:12:04 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Forms</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          <dependson>69598</dependson>
          <blocked>70003</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Kent Tamura">tkent</reporter>
          <assigned_to name="Kent Tamura">tkent</assigned_to>
          <cc>fishd</cc>
    
    <cc>joepeck</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>483848</commentid>
    <comment_count>0</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-14 01:42:08 -0700</bug_when>
    <thetext>FileChooserSettings::acceptMIMETypes contains MIME type strings in wrong format.
We had better drop invalid MIME type strings.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483852</commentid>
    <comment_count>1</comment_count>
      <attachid>110981</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-14 01:48:36 -0700</bug_when>
    <thetext>Created attachment 110981
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483856</commentid>
    <comment_count>2</comment_count>
      <attachid>110981</attachid>
    <who name="Darin Fisher (:fishd, Google)">fishd</who>
    <bug_when>2011-10-14 01:56:21 -0700</bug_when>
    <thetext>Comment on attachment 110981
Patch

Nice and simple!  I&apos;m glad you were able to reuse some existing code for this.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483857</commentid>
    <comment_count>3</comment_count>
      <attachid>110981</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-14 01:59:26 -0700</bug_when>
    <thetext>Comment on attachment 110981
Patch

Thank you for midnight quick review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483862</commentid>
    <comment_count>4</comment_count>
      <attachid>110981</attachid>
    <who name="Early Warning System Bot">webkit-ews</who>
    <bug_when>2011-10-14 02:10:39 -0700</bug_when>
    <thetext>Comment on attachment 110981
Patch

Attachment 110981 did not pass qt-ews (qt):
Output: http://queues.webkit.org/results/10067454</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483870</commentid>
    <comment_count>5</comment_count>
      <attachid>110985</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-14 02:33:16 -0700</bug_when>
    <thetext>Created attachment 110985
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>483891</commentid>
    <comment_count>6</comment_count>
      <attachid>110990</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-14 03:23:40 -0700</bug_when>
    <thetext>Created attachment 110990
Patch for landing 2

Windows build fix</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484101</commentid>
    <comment_count>7</comment_count>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-10-14 11:28:44 -0700</bug_when>
    <thetext>RFC 2616 HTTP/1.1 Media Types Section and relevant parts of the grammar:
http://tools.ietf.org/html/rfc2616#section-3.7

    SP             = &lt;US-ASCII SP, space (32)&gt;
    HT             = &lt;US-ASCII HT, horizontal-tab (9)&gt;
    CTL            = &lt;any US-ASCII control character (octets 0 - 31) and DEL (127)&gt;
    token          = 1*&lt;any CHAR except CTLs or separators&gt;
    separators     = &quot;(&quot; | &quot;)&quot; | &quot;&lt;&quot; | &quot;&gt;&quot; | &quot;@&quot;
                     | &quot;,&quot; | &quot;;&quot; | &quot;:&quot; | &quot;\&quot; | &lt;&quot;&gt;
                     | &quot;/&quot; | &quot;[&quot; | &quot;]&quot; | &quot;?&quot; | &quot;=&quot;
                     | &quot;{&quot; | &quot;}&quot; | SP | HT

    media-type     = type &quot;/&quot; subtype *( &quot;;&quot; parameter )
    type           = token
    subtype        = token

It looks like isTokenCharacter may be a little generous in validating a MIME type:

    bool ContentTypeParser::isTokenCharacter(UChar c)
    {
        return isASCII(c) &amp;&amp; c &gt; &apos; &apos; &amp;&amp; c != &apos;&quot;&apos; &amp;&amp; c != &apos;(&apos; &amp;&amp; c != &apos;)&apos; &amp;&amp; c != &apos;,&apos; &amp;&amp; c != &apos;/&apos; &amp;&amp; (c &lt; &apos;:&apos; || c &gt; &apos;@&apos;) &amp;&amp; (c &lt; &apos;[&apos; || c &gt; &apos;]&apos;);
    }

It looks to me like this would allow some non-token characters, like:

    &apos;{&apos;   (separator 0x7B)
    &apos;}&apos;   (separator 0x7D)
    DEL   (CTL 0x7F)

But I don&apos;t know how important this would be to fix. And maybe I&apos;m
actually missing something and this is okay.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>484886</commentid>
    <comment_count>8</comment_count>
      <attachid>110990</attachid>
    <who name="Daniel Bates">dbates</who>
    <bug_when>2011-10-16 19:55:04 -0700</bug_when>
    <thetext>Comment on attachment 110990
Patch for landing 2

Attachment 110990 did not pass mac-ews (mac):
Output: http://queues.webkit.org/results/10076816</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485824</commentid>
    <comment_count>9</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-17 23:01:04 -0700</bug_when>
    <thetext>(In reply to comment #7)
&gt; RFC 2616 HTTP/1.1 Media Types Section and relevant parts of the grammar:
&gt; http://tools.ietf.org/html/rfc2616#section-3.7
&gt; 
&gt;     SP             = &lt;US-ASCII SP, space (32)&gt;
&gt;     HT             = &lt;US-ASCII HT, horizontal-tab (9)&gt;
&gt;     CTL            = &lt;any US-ASCII control character (octets 0 - 31) and DEL (127)&gt;
&gt;     token          = 1*&lt;any CHAR except CTLs or separators&gt;
&gt;     separators     = &quot;(&quot; | &quot;)&quot; | &quot;&lt;&quot; | &quot;&gt;&quot; | &quot;@&quot;
&gt;                      | &quot;,&quot; | &quot;;&quot; | &quot;:&quot; | &quot;\&quot; | &lt;&quot;&gt;
&gt;                      | &quot;/&quot; | &quot;[&quot; | &quot;]&quot; | &quot;?&quot; | &quot;=&quot;
&gt;                      | &quot;{&quot; | &quot;}&quot; | SP | HT
&gt; 
&gt;     media-type     = type &quot;/&quot; subtype *( &quot;;&quot; parameter )
&gt;     type           = token
&gt;     subtype        = token
&gt; 
&gt; It looks like isTokenCharacter may be a little generous in validating a MIME type:
&gt; 
&gt;     bool ContentTypeParser::isTokenCharacter(UChar c)
&gt;     {
&gt;         return isASCII(c) &amp;&amp; c &gt; &apos; &apos; &amp;&amp; c != &apos;&quot;&apos; &amp;&amp; c != &apos;(&apos; &amp;&amp; c != &apos;)&apos; &amp;&amp; c != &apos;,&apos; &amp;&amp; c != &apos;/&apos; &amp;&amp; (c &lt; &apos;:&apos; || c &gt; &apos;@&apos;) &amp;&amp; (c &lt; &apos;[&apos; || c &gt; &apos;]&apos;);
&gt;     }
&gt; 
&gt; It looks to me like this would allow some non-token characters, like:
&gt; 
&gt;     &apos;{&apos;   (separator 0x7B)
&gt;     &apos;}&apos;   (separator 0x7D)
&gt;     DEL   (CTL 0x7F)
&gt; 
&gt; But I don&apos;t know how important this would be to fix. And maybe I&apos;m
&gt; actually missing something and this is okay.

It seems RFC 2045 and RFC 2616 are not compatible.

From RFC 2045:

     token := 1*&lt;any (US-ASCII) CHAR except SPACE, CTLs,
                 or tspecials&gt;

     tspecials :=  &quot;(&quot; / &quot;)&quot; / &quot;&lt;&quot; / &quot;&gt;&quot; / &quot;@&quot; /
                   &quot;,&quot; / &quot;;&quot; / &quot;:&quot; / &quot;\&quot; / &lt;&quot;&gt;
                   &quot;/&quot; / &quot;[&quot; / &quot;]&quot; / &quot;?&quot; / &quot;=&quot;
                   ; Must be in quoted-string,
                   ; to use within parameter values

I&apos;ll update the patch so that it doesn&apos;t use ContentTypeParser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>485899</commentid>
    <comment_count>10</comment_count>
      <attachid>111406</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-18 01:12:23 -0700</bug_when>
    <thetext>Created attachment 111406
Patch 2

Do not use ContentTypeParser</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486118</commentid>
    <comment_count>11</comment_count>
      <attachid>111406</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-18 09:56:28 -0700</bug_when>
    <thetext>Comment on attachment 111406
Patch 2

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

&gt; Source/WebCore/html/HTMLInputElement.cpp:1310
&gt; +static bool isRFC2616TokenCharacter(UChar ch)

Since this function is used only in one place, it would be better to mark it inline for compilers that aren’t as aggressive about inlining such things.

&gt; Source/WebCore/html/HTMLInputElement.cpp:1312
&gt; +    return isASCII(ch) &amp;&amp; ch &gt; &apos; &apos; &amp;&amp; ch != &apos;&quot;&apos; &amp;&amp; ch != &apos;(&apos; &amp;&amp; ch != &apos;)&apos; &amp;&amp; ch != &apos;,&apos; &amp;&amp; ch != &apos;/&apos; &amp;&amp; (ch &lt; &apos;:&apos; || ch &gt; &apos;@&apos;) &amp;&amp; (ch &lt; &apos;[&apos; || ch &gt; &apos;]&apos;) &amp;&amp; ch != &apos;{&apos; &amp;&amp; ch != &apos;}&apos; &amp;&amp; ch != 0x7f;

If there is a speed issue at all, a 128-byte array is a much faster way to implement this after the isASCII test.

&gt; Source/WebCore/html/HTMLInputElement.cpp:1334
&gt; +            if (j != slashPosition &amp;&amp; !isRFC2616TokenCharacter(trimmedMimeType[j])) {

You would get slightly faster performance if you reversed the &amp;&amp; here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>486134</commentid>
    <comment_count>12</comment_count>
      <attachid>111406</attachid>
    <who name="Joseph Pecoraro">joepeck</who>
    <bug_when>2011-10-18 10:18:31 -0700</bug_when>
    <thetext>Comment on attachment 111406
Patch 2

I also think it would be nice to put the bulk of the HTMLInputElement::acceptMIMETypes changes
into a new function, isValidMIMEType(), but that is totally up to you. I think it would be much
easier to read, and someone later on might look for MIME type validation and find the function.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487223</commentid>
    <comment_count>13</comment_count>
      <attachid>111406</attachid>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-19 19:08:24 -0700</bug_when>
    <thetext>Comment on attachment 111406
Patch 2

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

Darrin, Joseph, thank you for the comments.
I&apos;ll follow your comments except the following one, and land the patch.


&gt;&gt; Source/WebCore/html/HTMLInputElement.cpp:1312
&gt;&gt; +    return isASCII(ch) &amp;&amp; ch &gt; &apos; &apos; &amp;&amp; ch != &apos;&quot;&apos; &amp;&amp; ch != &apos;(&apos; &amp;&amp; ch != &apos;)&apos; &amp;&amp; ch != &apos;,&apos; &amp;&amp; ch != &apos;/&apos; &amp;&amp; (ch &lt; &apos;:&apos; || ch &gt; &apos;@&apos;) &amp;&amp; (ch &lt; &apos;[&apos; || ch &gt; &apos;]&apos;) &amp;&amp; ch != &apos;{&apos; &amp;&amp; ch != &apos;}&apos; &amp;&amp; ch != 0x7f;
&gt; 
&gt; If there is a speed issue at all, a 128-byte array is a much faster way to implement this after the isASCII test.

acceptMIMETypes() is called once only when a file chooser dialog is opened.  I think the current code is enough.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>487226</commentid>
    <comment_count>14</comment_count>
    <who name="Kent Tamura">tkent</who>
    <bug_when>2011-10-19 19:12:04 -0700</bug_when>
    <thetext>Landed: http://trac.webkit.org/changeset/97918</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110981</attachid>
            <date>2011-10-14 01:48:36 -0700</date>
            <delta_ts>2011-10-14 02:33:10 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-70095-20111014174834.patch</filename>
            <type>text/plain</type>
            <size>4298</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0NDcKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA4MjZkZTNlYjlmYmM4ZWZl
NGQxNThlNWI5ZGRkNGQ4MjFjN2E2ZGM3Li5hNjU1YWEwZTc2N2VmMDBlYzgwZDJmMmMzMWIxZmI2
ZDkxOTM5N2FhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAgQEAKKzIwMTEtMTAtMTQgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlamVjdCBpbnZhbGlkIE1J
TUUgdHlwZSBzdHJpbmdzIGZvciBhIGZpbGUgc2VsZWN0aW9uIGRpYWxvZyBwYXJhbWV0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDk1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTm8gbmV3IHRlc3Rz
LiBUaGlzIGFmZmVjdCBvbmx5IGEgdmFsdWUgcGFzc2VkIHRvIFdlYktpdCBsYXllci4KKworICAg
ICAgICAqIGh0bWwvSFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1M
SW5wdXRFbGVtZW50OjphY2NlcHRNSU1FVHlwZXMpOgorICAgICAgICBWYWxpZGF0ZSBhIE1JTUUg
dHlwZSBzdHJpbmcsIGFuZCBkb24ndCBhZGQgaW52YWxpZCBzdHJpbmdzIHRvIHRoZSBvdXRwdXQg
VmVjdG9yLgorICAgICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5cGVQYXJzZXIuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Q29udGVudFR5cGVQYXJzZXI6OmlzVG9rZW5DaGFyYWN0ZXIp
OiBNYWtlIHRoaXMgYSBwdWJsaWMgbWVtYmVyIG9mIENvbnRlbnRUeXBlUGFyc2VyLgorICAgICAg
ICAoV2ViQ29yZTo6cGFyc2VUb2tlbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Db250
ZW50VHlwZVBhcnNlci5oOiBkaXR0by4KKwogMjAxMS0xMC0xMyAgS2VuaWNoaSBJc2hpYmFzaGkg
IDxiYXNoaUBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgW0Nocm9taXVtXSBVbmluaXRpYWxpemVk
IHJlYWQgaW4gV2ViQ29yZTo6KkZvbnQqIC8gSEJfR1NVQl9TZWxlY3RfRmVhdHVyZQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKaW5kZXggYTU5ZjBhZTcxMDFlYjdmM2Fm
ZDYwMzY3ZmVlODlhMjgzZGVmOTFkNi4uYmIwMWU5MDQ4NzViNjc5ZWI2OWM2NmYxOWFiYmEyOTAy
ZDM2NmE2MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCkBAIC0z
MCw2ICszMCw3IEBACiAKICNpbmNsdWRlICJBWE9iamVjdENhY2hlLmgiCiAjaW5jbHVkZSAiQmVm
b3JlVGV4dEluc2VydGVkRXZlbnQuaCIKKyNpbmNsdWRlICJDb250ZW50VHlwZVBhcnNlci5oIgog
I2luY2x1ZGUgIkNTU1Byb3BlcnR5TmFtZXMuaCIKICNpbmNsdWRlICJDU1NWYWx1ZUtleXdvcmRz
LmgiCiAjaW5jbHVkZSAiRG9jdW1lbnQuaCIKQEAgLTEzMTksOCArMTMyMCwyMCBAQCBWZWN0b3I8
U3RyaW5nPiBIVE1MSW5wdXRFbGVtZW50OjphY2NlcHRNSU1FVHlwZXMoKQogICAgIGFjY2VwdFN0
cmluZy5zcGxpdCgnLCcsIGZhbHNlLCBzcGxpdFR5cGVzKTsKICAgICBmb3IgKHNpemVfdCBpID0g
MDsgaSA8IHNwbGl0VHlwZXMuc2l6ZSgpOyArK2kpIHsKICAgICAgICAgU3RyaW5nIHRyaW1tZWRN
aW1lVHlwZSA9IHN0cmlwTGVhZGluZ0FuZFRyYWlsaW5nSFRNTFNwYWNlcyhzcGxpdFR5cGVzW2ld
KTsKLSAgICAgICAgaWYgKCF0cmltbWVkTWltZVR5cGUuaXNFbXB0eSgpKQotICAgICAgICAgICAg
bWltZVR5cGVzLmFwcGVuZCh0cmltbWVkTWltZVR5cGUpOworICAgICAgICBpZiAodHJpbW1lZE1p
bWVUeXBlLmlzRW1wdHkoKSkKKyAgICAgICAgICAgIGNvbnRpbnVlOworICAgICAgICBzaXplX3Qg
c2xhc2hQb3NpdGlvbiA9IHRyaW1tZWRNaW1lVHlwZS5maW5kKCcvJyk7CisgICAgICAgIGlmIChz
bGFzaFBvc2l0aW9uID09IG5vdEZvdW5kIHx8ICFzbGFzaFBvc2l0aW9uIHx8IHNsYXNoUG9zaXRp
b24gPT0gdHJpbW1lZE1pbWVUeXBlLmxlbmd0aCgpIC0gMSkKKyAgICAgICAgICAgIGNvbnRpbnVl
OworICAgICAgICBib29sIGhhc0ludmFsaWRDaGFyID0gZmFsc2U7CisgICAgICAgIGZvciAoc2l6
ZV90IGogPSAwOyBqIDwgdHJpbW1lZE1pbWVUeXBlLmxlbmd0aCgpOyArK2opIHsKKyAgICAgICAg
ICAgIGlmIChqICE9IHNsYXNoUG9zaXRpb24gJiYgIUNvbnRlbnRUeXBlUGFyc2VyOjppc1Rva2Vu
Q2hhcmFjdGVyKHRyaW1tZWRNaW1lVHlwZVtqXSkpIHsKKyAgICAgICAgICAgICAgICBoYXNJbnZh
bGlkQ2hhciA9IHRydWU7CisgICAgICAgICAgICAgICAgYnJlYWs7CisgICAgICAgICAgICB9Cisg
ICAgICAgIH0KKyAgICAgICAgaWYgKCFoYXNJbnZhbGlkQ2hhcikKKyAgICAgICAgICAgIG1pbWVU
eXBlcy5hcHBlbmQodHJpbW1lZE1pbWVUeXBlLmxvd2VyKCkpOwogICAgIH0KIAogICAgIHJldHVy
biBtaW1lVHlwZXM7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3Jr
L0NvbnRlbnRUeXBlUGFyc2VyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsv
Q29udGVudFR5cGVQYXJzZXIuY3BwCmluZGV4IDY0NzhkOWJhN2IwMGQ0NDM0NTVlYTFiZjEzZWVh
MzdkYjhhNWJkMzYuLjNjZmY3MDkxZDRhYmMyNmVlM2FhYmM1Y2MwM2Y0M2NhNjVhMzUxZGYgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5cGVQYXJz
ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5cGVQ
YXJzZXIuY3BwCkBAIC00Miw3ICs0Miw3IEBAIHN0YXRpYyB2b2lkIHNraXBTcGFjZXMoY29uc3Qg
U3RyaW5nJiBpbnB1dCwgc2l6ZV90JiBzdGFydEluZGV4KQogICAgICAgICArK3N0YXJ0SW5kZXg7
CiB9CiAKLXN0YXRpYyBib29sIGlzVG9rZW5DaGFyYWN0ZXIoY2hhciBjKQorYm9vbCBDb250ZW50
VHlwZVBhcnNlcjo6aXNUb2tlbkNoYXJhY3RlcihVQ2hhciBjKQogewogICAgIHJldHVybiBpc0FT
Q0lJKGMpICYmIGMgPiAnICcgJiYgYyAhPSAnIicgJiYgYyAhPSAnKCcgJiYgYyAhPSAnKScgJiYg
YyAhPSAnLCcgJiYgYyAhPSAnLycgJiYgKGMgPCAnOicgfHwgYyA+ICdAJykgJiYgKGMgPCAnWycg
fHwgYyA+ICddJyk7CiB9CkBAIC01NSw3ICs1NSw3IEBAIHN0YXRpYyBTdHJpbmcgcGFyc2VUb2tl
bihjb25zdCBTdHJpbmcmIGlucHV0LCBzaXplX3QmIHN0YXJ0SW5kZXgpCiAgICAgU3RyaW5nQnVp
bGRlciBzdHJpbmdCdWlsZGVyOwogICAgIHdoaWxlIChzdGFydEluZGV4IDwgaW5wdXQubGVuZ3Ro
KCkpIHsKICAgICAgICAgY2hhciBjdXJyZW50Q2hhcmFjdGVyID0gaW5wdXRbc3RhcnRJbmRleF07
Ci0gICAgICAgIGlmICghaXNUb2tlbkNoYXJhY3RlcihjdXJyZW50Q2hhcmFjdGVyKSkKKyAgICAg
ICAgaWYgKCFDb250ZW50VHlwZVBhcnNlcjo6aXNUb2tlbkNoYXJhY3RlcihjdXJyZW50Q2hhcmFj
dGVyKSkKICAgICAgICAgICAgIHJldHVybiBzdHJpbmdCdWlsZGVyLnRvU3RyaW5nKCk7CiAgICAg
ICAgIHN0cmluZ0J1aWxkZXIuYXBwZW5kKGN1cnJlbnRDaGFyYWN0ZXIpOwogICAgICAgICArK3N0
YXJ0SW5kZXg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nv
bnRlbnRUeXBlUGFyc2VyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NvbnRl
bnRUeXBlUGFyc2VyLmgKaW5kZXggMDY1N2IwMTMzZGRmYjYwZDc3NWI5NmRjMDMyNWI0Yzc1ZWIy
ZmU3MS4uYTc3MjgzMzdhNmQ1ZDZiNDc0OTQwMzA3ZDFhMTM1ODVhOTU0NTAwOSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db250ZW50VHlwZVBhcnNlci5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5cGVQYXJzZXIuaApA
QCAtNDksNiArNDksOCBAQCBwdWJsaWM6CiAgICAgU3RyaW5nIHBhcmFtZXRlclZhbHVlRm9yTmFt
ZShjb25zdCBTdHJpbmcmKSBjb25zdDsKICAgICBzaXplX3QgcGFyYW1ldGVyQ291bnQoKSBjb25z
dDsKIAorICAgIHN0YXRpYyBib29sIGlzVG9rZW5DaGFyYWN0ZXIoVUNoYXIpOworCiBwcml2YXRl
OgogICAgIHZvaWQgcGFyc2UoKTsKIAo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110985</attachid>
            <date>2011-10-14 02:33:16 -0700</date>
            <delta_ts>2011-10-14 03:23:34 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-70095-20111014183314.patch</filename>
            <type>text/plain</type>
            <size>5200</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0NTMKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA0ZjQyYjgxM2E2ZmI0Y2Ex
YTgwYTVlZDQwYjAzODQ2ZmFiZmNiODQ3Li4zMzIzN2E0ZDUxOWFiZDRlYzcxNGJhMjJkMWM5ZDll
M2QxNGM3ZmZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjEgQEAKKzIwMTEtMTAtMTQgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlamVjdCBpbnZhbGlkIE1J
TUUgdHlwZSBzdHJpbmdzIGZvciBhIGZpbGUgc2VsZWN0aW9uIGRpYWxvZyBwYXJhbWV0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDk1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4g
VGhpcyBhZmZlY3Qgb25seSBhIHZhbHVlIHBhc3NlZCB0byBXZWJLaXQgbGF5ZXIuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnBybzogQWRkIENvbnRlbnRUeXBlUGFyc2VyLntjcHAsaH0uCisgICAgICAg
ICogaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1
dEVsZW1lbnQ6OmFjY2VwdE1JTUVUeXBlcyk6CisgICAgICAgIFZhbGlkYXRlIGEgTUlNRSB0eXBl
IHN0cmluZywgYW5kIGRvbid0IGFkZCBpbnZhbGlkIHN0cmluZ3MgdG8gdGhlIG91dHB1dCBWZWN0
b3IuCisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Db250ZW50VHlwZVBhcnNlci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpDb250ZW50VHlwZVBhcnNlcjo6aXNUb2tlbkNoYXJhY3Rlcik6IE1h
a2UgdGhpcyBhIHB1YmxpYyBtZW1iZXIgb2YgQ29udGVudFR5cGVQYXJzZXIuCisgICAgICAgIChX
ZWJDb3JlOjpwYXJzZVRva2VuKToKKyAgICAgICAgKiBwbGF0Zm9ybS9uZXR3b3JrL0NvbnRlbnRU
eXBlUGFyc2VyLmg6IGRpdHRvLgorCiAyMDExLTEwLTEyICBIYW5zIFdlbm5ib3JnICA8aGFuc0Bj
aHJvbWl1bS5vcmc+CiAKICAgICAgICAgSW5kZXhlZERCOiBSZW1vdmUgU1FMaXRlIGJhY2tpbmcg
c3RvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMmUzMGFjOTBmM2FlNTdlYzYwOWQxMWE1ZGRiM2UwMGQy
Y2VhMWNmNi4uZjY1MmRkNWE0MjgwMmJlMjQ4NDE2NzMyNzVjMGQxNDRjNTI2MDQ0ZCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dlYkNvcmUvV2Vi
Q29yZS5wcm8KQEAgLTEwNjAsNiArMTA2MCw3IEBAIFNPVVJDRVMgKz0gXAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvQmxvYkRhdGEuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZWdpc3Ry
eUltcGwuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRsZS5jcHAg
XAorICAgIHBsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5cGVQYXJzZXIuY3BwIFwKICAgICBwbGF0
Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWwuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Zvcm1E
YXRhLmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIuY3BwIFwKQEAg
LTIwOTAsNiArMjA5MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25ldHdvcmsvQmxv
YlJlZ2lzdHJ5SW1wbC5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhhbmRs
ZS5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JTdG9yYWdlRGF0YS5oIFwKKyAgICBwbGF0
Zm9ybS9uZXR3b3JrL0NvbnRlbnRUeXBlUGFyc2VyLmggXAogICAgIHBsYXRmb3JtL25ldHdvcmsv
Q29va2llU3RvcmFnZS5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWwuaCBcCiAg
ICAgcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIuaCBcCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvaHRt
bC9IVE1MSW5wdXRFbGVtZW50LmNwcAppbmRleCBhNTlmMGFlNzEwMWViN2YzYWZkNjAzNjdmZWU4
OWEyODNkZWY5MWQ2Li5iYjAxZTkwNDg3NWI2NzllYjY5YzY2ZjE5YWJiYTI5MDJkMzY2YTYxIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKQEAgLTMwLDYgKzMwLDcg
QEAKIAogI2luY2x1ZGUgIkFYT2JqZWN0Q2FjaGUuaCIKICNpbmNsdWRlICJCZWZvcmVUZXh0SW5z
ZXJ0ZWRFdmVudC5oIgorI2luY2x1ZGUgIkNvbnRlbnRUeXBlUGFyc2VyLmgiCiAjaW5jbHVkZSAi
Q1NTUHJvcGVydHlOYW1lcy5oIgogI2luY2x1ZGUgIkNTU1ZhbHVlS2V5d29yZHMuaCIKICNpbmNs
dWRlICJEb2N1bWVudC5oIgpAQCAtMTMxOSw4ICsxMzIwLDIwIEBAIFZlY3RvcjxTdHJpbmc+IEhU
TUxJbnB1dEVsZW1lbnQ6OmFjY2VwdE1JTUVUeXBlcygpCiAgICAgYWNjZXB0U3RyaW5nLnNwbGl0
KCcsJywgZmFsc2UsIHNwbGl0VHlwZXMpOwogICAgIGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgc3Bs
aXRUeXBlcy5zaXplKCk7ICsraSkgewogICAgICAgICBTdHJpbmcgdHJpbW1lZE1pbWVUeXBlID0g
c3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNwbGl0VHlwZXNbaV0pOwotICAgICAg
ICBpZiAoIXRyaW1tZWRNaW1lVHlwZS5pc0VtcHR5KCkpCi0gICAgICAgICAgICBtaW1lVHlwZXMu
YXBwZW5kKHRyaW1tZWRNaW1lVHlwZSk7CisgICAgICAgIGlmICh0cmltbWVkTWltZVR5cGUuaXNF
bXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHNpemVfdCBzbGFzaFBvc2l0
aW9uID0gdHJpbW1lZE1pbWVUeXBlLmZpbmQoJy8nKTsKKyAgICAgICAgaWYgKHNsYXNoUG9zaXRp
b24gPT0gbm90Rm91bmQgfHwgIXNsYXNoUG9zaXRpb24gfHwgc2xhc2hQb3NpdGlvbiA9PSB0cmlt
bWVkTWltZVR5cGUubGVuZ3RoKCkgLSAxKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAg
IGJvb2wgaGFzSW52YWxpZENoYXIgPSBmYWxzZTsKKyAgICAgICAgZm9yIChzaXplX3QgaiA9IDA7
IGogPCB0cmltbWVkTWltZVR5cGUubGVuZ3RoKCk7ICsraikgeworICAgICAgICAgICAgaWYgKGog
IT0gc2xhc2hQb3NpdGlvbiAmJiAhQ29udGVudFR5cGVQYXJzZXI6OmlzVG9rZW5DaGFyYWN0ZXIo
dHJpbW1lZE1pbWVUeXBlW2pdKSkgeworICAgICAgICAgICAgICAgIGhhc0ludmFsaWRDaGFyID0g
dHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQor
ICAgICAgICBpZiAoIWhhc0ludmFsaWRDaGFyKQorICAgICAgICAgICAgbWltZVR5cGVzLmFwcGVu
ZCh0cmltbWVkTWltZVR5cGUubG93ZXIoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1pbWVUeXBl
czsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5
cGVQYXJzZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db250ZW50VHlw
ZVBhcnNlci5jcHAKaW5kZXggNjQ3OGQ5YmE3YjAwZDQ0MzQ1NWVhMWJmMTNlZWEzN2RiOGE1YmQz
Ni4uM2NmZjcwOTFkNGFiYzI2ZWUzYWFiYzVjYzAzZjQzY2E2NWEzNTFkZiAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db250ZW50VHlwZVBhcnNlci5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db250ZW50VHlwZVBhcnNlci5jcHAK
QEAgLTQyLDcgKzQyLDcgQEAgc3RhdGljIHZvaWQgc2tpcFNwYWNlcyhjb25zdCBTdHJpbmcmIGlu
cHV0LCBzaXplX3QmIHN0YXJ0SW5kZXgpCiAgICAgICAgICsrc3RhcnRJbmRleDsKIH0KIAotc3Rh
dGljIGJvb2wgaXNUb2tlbkNoYXJhY3RlcihjaGFyIGMpCitib29sIENvbnRlbnRUeXBlUGFyc2Vy
Ojppc1Rva2VuQ2hhcmFjdGVyKFVDaGFyIGMpCiB7CiAgICAgcmV0dXJuIGlzQVNDSUkoYykgJiYg
YyA+ICcgJyAmJiBjICE9ICciJyAmJiBjICE9ICcoJyAmJiBjICE9ICcpJyAmJiBjICE9ICcsJyAm
JiBjICE9ICcvJyAmJiAoYyA8ICc6JyB8fCBjID4gJ0AnKSAmJiAoYyA8ICdbJyB8fCBjID4gJ10n
KTsKIH0KQEAgLTU1LDcgKzU1LDcgQEAgc3RhdGljIFN0cmluZyBwYXJzZVRva2VuKGNvbnN0IFN0
cmluZyYgaW5wdXQsIHNpemVfdCYgc3RhcnRJbmRleCkKICAgICBTdHJpbmdCdWlsZGVyIHN0cmlu
Z0J1aWxkZXI7CiAgICAgd2hpbGUgKHN0YXJ0SW5kZXggPCBpbnB1dC5sZW5ndGgoKSkgewogICAg
ICAgICBjaGFyIGN1cnJlbnRDaGFyYWN0ZXIgPSBpbnB1dFtzdGFydEluZGV4XTsKLSAgICAgICAg
aWYgKCFpc1Rva2VuQ2hhcmFjdGVyKGN1cnJlbnRDaGFyYWN0ZXIpKQorICAgICAgICBpZiAoIUNv
bnRlbnRUeXBlUGFyc2VyOjppc1Rva2VuQ2hhcmFjdGVyKGN1cnJlbnRDaGFyYWN0ZXIpKQogICAg
ICAgICAgICAgcmV0dXJuIHN0cmluZ0J1aWxkZXIudG9TdHJpbmcoKTsKICAgICAgICAgc3RyaW5n
QnVpbGRlci5hcHBlbmQoY3VycmVudENoYXJhY3Rlcik7CiAgICAgICAgICsrc3RhcnRJbmRleDsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5cGVQ
YXJzZXIuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5cGVQYXJz
ZXIuaAppbmRleCAwNjU3YjAxMzNkZGZiNjBkNzc1Yjk2ZGMwMzI1YjRjNzVlYjJmZTcxLi5hNzcy
ODMzN2E2ZDVkNmI0NzQ5NDAzMDdkMWExMzU4NWE5NTQ1MDA5IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NvbnRlbnRUeXBlUGFyc2VyLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db250ZW50VHlwZVBhcnNlci5oCkBAIC00OSw2ICs0
OSw4IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgcGFyYW1ldGVyVmFsdWVGb3JOYW1lKGNvbnN0IFN0
cmluZyYpIGNvbnN0OwogICAgIHNpemVfdCBwYXJhbWV0ZXJDb3VudCgpIGNvbnN0OwogCisgICAg
c3RhdGljIGJvb2wgaXNUb2tlbkNoYXJhY3RlcihVQ2hhcik7CisKIHByaXZhdGU6CiAgICAgdm9p
ZCBwYXJzZSgpOwogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>110990</attachid>
            <date>2011-10-14 03:23:40 -0700</date>
            <delta_ts>2011-10-18 01:12:16 -0700</delta_ts>
            <desc>Patch for landing 2</desc>
            <filename>bug-70095-20111014192338.patch</filename>
            <type>text/plain</type>
            <size>5892</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc0NTUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzMTk3OTkwNDdhZTE5NWEx
OGMxZDkzZGNlN2EwZjkxZTRhMTkyNDdmLi4zMzJiOGE3NTA5NWYzMGQwMDViZjRiZGM4MTJiOGI0
NTNmMzVkNWZmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjIgQEAKKzIwMTEtMTAtMTQgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlamVjdCBpbnZhbGlkIE1J
TUUgdHlwZSBzdHJpbmdzIGZvciBhIGZpbGUgc2VsZWN0aW9uIGRpYWxvZyBwYXJhbWV0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDk1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4g
VGhpcyBhZmZlY3Qgb25seSBhIHZhbHVlIHBhc3NlZCB0byBXZWJLaXQgbGF5ZXIuCisKKyAgICAg
ICAgKiBXZWJDb3JlLnBybzogQWRkIENvbnRlbnRUeXBlUGFyc2VyLntjcHAsaH0uCisgICAgICAg
ICogV2ViQ29yZS52Y3Byb2ovV2ViQ29yZS52Y3Byb2o6IGRpdHRvLgorICAgICAgICAqIGh0bWwv
SFRNTElucHV0RWxlbWVudC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpIVE1MSW5wdXRFbGVtZW50
OjphY2NlcHRNSU1FVHlwZXMpOgorICAgICAgICBWYWxpZGF0ZSBhIE1JTUUgdHlwZSBzdHJpbmcs
IGFuZCBkb24ndCBhZGQgaW52YWxpZCBzdHJpbmdzIHRvIHRoZSBvdXRwdXQgVmVjdG9yLgorICAg
ICAgICAqIHBsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5cGVQYXJzZXIuY3BwOgorICAgICAgICAo
V2ViQ29yZTo6Q29udGVudFR5cGVQYXJzZXI6OmlzVG9rZW5DaGFyYWN0ZXIpOiBNYWtlIHRoaXMg
YSBwdWJsaWMgbWVtYmVyIG9mIENvbnRlbnRUeXBlUGFyc2VyLgorICAgICAgICAoV2ViQ29yZTo6
cGFyc2VUb2tlbik6CisgICAgICAgICogcGxhdGZvcm0vbmV0d29yay9Db250ZW50VHlwZVBhcnNl
ci5oOiBkaXR0by4KKwogMjAxMS0xMC0xNCAgTWlobmVhIE92aWRlbmllICA8bWlobmVhQGFkb2Jl
LmNvbT4KIAogICAgICAgICBbQ1NTIFJlZ2lvbnNdIENoYW5nZSAtd2Via2l0LWZsb3cgdG8gLXdl
YmtpdC1mbG93LWludG8KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUucHJvIGIv
U291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KaW5kZXggMmUzMGFjOTBmM2FlNTdlYzYwOWQxMWE1
ZGRiM2UwMGQyY2VhMWNmNi4uZjY1MmRkNWE0MjgwMmJlMjQ4NDE2NzMyNzVjMGQxNDRjNTI2MDQ0
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS5wcm8KKysrIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS5wcm8KQEAgLTEwNjAsNiArMTA2MCw3IEBAIFNPVVJDRVMgKz0gXAogICAg
IHBsYXRmb3JtL25ldHdvcmsvQmxvYkRhdGEuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Js
b2JSZWdpc3RyeUltcGwuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNvdXJjZUhh
bmRsZS5jcHAgXAorICAgIHBsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5cGVQYXJzZXIuY3BwIFwK
ICAgICBwbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRpYWwuY3BwIFwKICAgICBwbGF0Zm9ybS9uZXR3
b3JrL0Zvcm1EYXRhLmNwcCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIu
Y3BwIFwKQEAgLTIwOTAsNiArMjA5MSw3IEBAIEhFQURFUlMgKz0gXAogICAgIHBsYXRmb3JtL25l
dHdvcmsvQmxvYlJlZ2lzdHJ5SW1wbC5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JSZXNv
dXJjZUhhbmRsZS5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0Jsb2JTdG9yYWdlRGF0YS5oIFwK
KyAgICBwbGF0Zm9ybS9uZXR3b3JrL0NvbnRlbnRUeXBlUGFyc2VyLmggXAogICAgIHBsYXRmb3Jt
L25ldHdvcmsvQ29va2llU3RvcmFnZS5oIFwKICAgICBwbGF0Zm9ybS9uZXR3b3JrL0NyZWRlbnRp
YWwuaCBcCiAgICAgcGxhdGZvcm0vbmV0d29yay9Gb3JtRGF0YUJ1aWxkZXIuaCBcCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnZjcHJvai9XZWJDb3JlLnZjcHJvaiBiL1NvdXJj
ZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNvcmUudmNwcm9qCmluZGV4IGJkZDczNDhmYmEw
NWI4M2QwM2RkZTU5NDExMjEzOTQyYzkyODYwZTUuLmJjYWY1YTY2NDE4MzY4ZmM4ODg3ZTBhNmMw
ZGY3YTE0NjYxODA0NWEgMTAwNzU1Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9q
L1dlYkNvcmUudmNwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUudmNwcm9qL1dlYkNv
cmUudmNwcm9qCkBAIC0zMDY0MSw2ICszMDY0MSwxNCBAQAogCQkJCQk+CiAJCQkJPC9GaWxlPgog
CQkJCTxGaWxlCisJCQkJCVJlbGF0aXZlUGF0aD0iLi5ccGxhdGZvcm1cbmV0d29ya1xDb250ZW50
VHlwZVBhcnNlci5jcHAiCisJCQkJCT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKKwkJCQkJUmVs
YXRpdmVQYXRoPSIuLlxwbGF0Zm9ybVxuZXR3b3JrXENvbnRlbnRUeXBlUGFyc2VyLmgiCisJCQkJ
CT4KKwkJCQk8L0ZpbGU+CisJCQkJPEZpbGUKIAkJCQkJUmVsYXRpdmVQYXRoPSIuLlxwbGF0Zm9y
bVxuZXR3b3JrXENvb2tpZVN0b3JhZ2UuaCIKIAkJCQkJPgogCQkJCTwvRmlsZT4KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9odG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGE1OWYwYWU3MTAxZWI3ZjNhZmQ2
MDM2N2ZlZTg5YTI4M2RlZjkxZDYuLmJiMDFlOTA0ODc1YjY3OWViNjljNjZmMTlhYmJhMjkwMmQz
NjZhNjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMzAs
NiArMzAsNyBAQAogCiAjaW5jbHVkZSAiQVhPYmplY3RDYWNoZS5oIgogI2luY2x1ZGUgIkJlZm9y
ZVRleHRJbnNlcnRlZEV2ZW50LmgiCisjaW5jbHVkZSAiQ29udGVudFR5cGVQYXJzZXIuaCIKICNp
bmNsdWRlICJDU1NQcm9wZXJ0eU5hbWVzLmgiCiAjaW5jbHVkZSAiQ1NTVmFsdWVLZXl3b3Jkcy5o
IgogI2luY2x1ZGUgIkRvY3VtZW50LmgiCkBAIC0xMzE5LDggKzEzMjAsMjAgQEAgVmVjdG9yPFN0
cmluZz4gSFRNTElucHV0RWxlbWVudDo6YWNjZXB0TUlNRVR5cGVzKCkKICAgICBhY2NlcHRTdHJp
bmcuc3BsaXQoJywnLCBmYWxzZSwgc3BsaXRUeXBlcyk7CiAgICAgZm9yIChzaXplX3QgaSA9IDA7
IGkgPCBzcGxpdFR5cGVzLnNpemUoKTsgKytpKSB7CiAgICAgICAgIFN0cmluZyB0cmltbWVkTWlt
ZVR5cGUgPSBzdHJpcExlYWRpbmdBbmRUcmFpbGluZ0hUTUxTcGFjZXMoc3BsaXRUeXBlc1tpXSk7
Ci0gICAgICAgIGlmICghdHJpbW1lZE1pbWVUeXBlLmlzRW1wdHkoKSkKLSAgICAgICAgICAgIG1p
bWVUeXBlcy5hcHBlbmQodHJpbW1lZE1pbWVUeXBlKTsKKyAgICAgICAgaWYgKHRyaW1tZWRNaW1l
VHlwZS5pc0VtcHR5KCkpCisgICAgICAgICAgICBjb250aW51ZTsKKyAgICAgICAgc2l6ZV90IHNs
YXNoUG9zaXRpb24gPSB0cmltbWVkTWltZVR5cGUuZmluZCgnLycpOworICAgICAgICBpZiAoc2xh
c2hQb3NpdGlvbiA9PSBub3RGb3VuZCB8fCAhc2xhc2hQb3NpdGlvbiB8fCBzbGFzaFBvc2l0aW9u
ID09IHRyaW1tZWRNaW1lVHlwZS5sZW5ndGgoKSAtIDEpCisgICAgICAgICAgICBjb250aW51ZTsK
KyAgICAgICAgYm9vbCBoYXNJbnZhbGlkQ2hhciA9IGZhbHNlOworICAgICAgICBmb3IgKHNpemVf
dCBqID0gMDsgaiA8IHRyaW1tZWRNaW1lVHlwZS5sZW5ndGgoKTsgKytqKSB7CisgICAgICAgICAg
ICBpZiAoaiAhPSBzbGFzaFBvc2l0aW9uICYmICFDb250ZW50VHlwZVBhcnNlcjo6aXNUb2tlbkNo
YXJhY3Rlcih0cmltbWVkTWltZVR5cGVbal0pKSB7CisgICAgICAgICAgICAgICAgaGFzSW52YWxp
ZENoYXIgPSB0cnVlOworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgfQorICAg
ICAgICB9CisgICAgICAgIGlmICghaGFzSW52YWxpZENoYXIpCisgICAgICAgICAgICBtaW1lVHlw
ZXMuYXBwZW5kKHRyaW1tZWRNaW1lVHlwZS5sb3dlcigpKTsKICAgICB9CiAKICAgICByZXR1cm4g
bWltZVR5cGVzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9D
b250ZW50VHlwZVBhcnNlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0Nv
bnRlbnRUeXBlUGFyc2VyLmNwcAppbmRleCA2NDc4ZDliYTdiMDBkNDQzNDU1ZWExYmYxM2VlYTM3
ZGI4YTViZDM2Li4zY2ZmNzA5MWQ0YWJjMjZlZTNhYWJjNWNjMDNmNDNjYTY1YTM1MWRmIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NvbnRlbnRUeXBlUGFyc2Vy
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NvbnRlbnRUeXBlUGFy
c2VyLmNwcApAQCAtNDIsNyArNDIsNyBAQCBzdGF0aWMgdm9pZCBza2lwU3BhY2VzKGNvbnN0IFN0
cmluZyYgaW5wdXQsIHNpemVfdCYgc3RhcnRJbmRleCkKICAgICAgICAgKytzdGFydEluZGV4Owog
fQogCi1zdGF0aWMgYm9vbCBpc1Rva2VuQ2hhcmFjdGVyKGNoYXIgYykKK2Jvb2wgQ29udGVudFR5
cGVQYXJzZXI6OmlzVG9rZW5DaGFyYWN0ZXIoVUNoYXIgYykKIHsKICAgICByZXR1cm4gaXNBU0NJ
SShjKSAmJiBjID4gJyAnICYmIGMgIT0gJyInICYmIGMgIT0gJygnICYmIGMgIT0gJyknICYmIGMg
IT0gJywnICYmIGMgIT0gJy8nICYmIChjIDwgJzonIHx8IGMgPiAnQCcpICYmIChjIDwgJ1snIHx8
IGMgPiAnXScpOwogfQpAQCAtNTUsNyArNTUsNyBAQCBzdGF0aWMgU3RyaW5nIHBhcnNlVG9rZW4o
Y29uc3QgU3RyaW5nJiBpbnB1dCwgc2l6ZV90JiBzdGFydEluZGV4KQogICAgIFN0cmluZ0J1aWxk
ZXIgc3RyaW5nQnVpbGRlcjsKICAgICB3aGlsZSAoc3RhcnRJbmRleCA8IGlucHV0Lmxlbmd0aCgp
KSB7CiAgICAgICAgIGNoYXIgY3VycmVudENoYXJhY3RlciA9IGlucHV0W3N0YXJ0SW5kZXhdOwot
ICAgICAgICBpZiAoIWlzVG9rZW5DaGFyYWN0ZXIoY3VycmVudENoYXJhY3RlcikpCisgICAgICAg
IGlmICghQ29udGVudFR5cGVQYXJzZXI6OmlzVG9rZW5DaGFyYWN0ZXIoY3VycmVudENoYXJhY3Rl
cikpCiAgICAgICAgICAgICByZXR1cm4gc3RyaW5nQnVpbGRlci50b1N0cmluZygpOwogICAgICAg
ICBzdHJpbmdCdWlsZGVyLmFwcGVuZChjdXJyZW50Q2hhcmFjdGVyKTsKICAgICAgICAgKytzdGFy
dEluZGV4OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db250
ZW50VHlwZVBhcnNlci5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vbmV0d29yay9Db250ZW50
VHlwZVBhcnNlci5oCmluZGV4IDA2NTdiMDEzM2RkZmI2MGQ3NzViOTZkYzAzMjViNGM3NWViMmZl
NzEuLmE3NzI4MzM3YTZkNWQ2YjQ3NDk0MDMwN2QxYTEzNTg1YTk1NDUwMDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL25ldHdvcmsvQ29udGVudFR5cGVQYXJzZXIuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9uZXR3b3JrL0NvbnRlbnRUeXBlUGFyc2VyLmgKQEAg
LTQ5LDYgKzQ5LDggQEAgcHVibGljOgogICAgIFN0cmluZyBwYXJhbWV0ZXJWYWx1ZUZvck5hbWUo
Y29uc3QgU3RyaW5nJikgY29uc3Q7CiAgICAgc2l6ZV90IHBhcmFtZXRlckNvdW50KCkgY29uc3Q7
CiAKKyAgICBzdGF0aWMgYm9vbCBpc1Rva2VuQ2hhcmFjdGVyKFVDaGFyKTsKKwogcHJpdmF0ZToK
ICAgICB2b2lkIHBhcnNlKCk7CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>111406</attachid>
            <date>2011-10-18 01:12:23 -0700</date>
            <delta_ts>2011-10-19 19:08:24 -0700</delta_ts>
            <desc>Patch 2</desc>
            <filename>bug-70095-20111018171221.patch</filename>
            <type>text/plain</type>
            <size>2628</size>
            <attacher name="Kent Tamura">tkent</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTc3MjUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBlODYxZjFmMzlhOTFkODVj
OWExZDlhNjgzMWM0NTIyZWE5MzYzMzRhLi44NWQyOGMyZjEzYWIxNjRlODJiZGM3OWJhNmQyZGNl
ODcwMDc5NjA3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTEtMTAtMTQgIEtlbnQg
VGFtdXJhICA8dGtlbnRAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJlamVjdCBpbnZhbGlkIE1J
TUUgdHlwZSBzdHJpbmdzIGZvciBhIGZpbGUgc2VsZWN0aW9uIGRpYWxvZyBwYXJhbWV0ZXIKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcwMDk1CisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgRGFyaW4gRmlzaGVyLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4g
VGhpcyBhZmZlY3Qgb25seSBhIHZhbHVlIHBhc3NlZCB0byBXZWJLaXQgbGF5ZXIuCisKKyAgICAg
ICAgKiBodG1sL0hUTUxJbnB1dEVsZW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6aXNSRkMy
NjE2VG9rZW5DaGFyYWN0ZXIpOiBBZGRlZC4KKyAgICAgICAgKFdlYkNvcmU6OkhUTUxJbnB1dEVs
ZW1lbnQ6OmFjY2VwdE1JTUVUeXBlcyk6CisgICAgICAgIFZhbGlkYXRlIGEgTUlNRSB0eXBlIHN0
cmluZywgYW5kIGRvbid0IGFkZCBpbnZhbGlkIHN0cmluZ3MgdG8gdGhlIG91dHB1dCBWZWN0b3Iu
CisKIDIwMTEtMTAtMTggIEtlbnRhcm8gSGFyYSAgPGhhcmFrZW5AY2hyb21pdW0ub3JnPgogCiAg
ICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHI5NzY5Ny4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9odG1s
L0hUTUxJbnB1dEVsZW1lbnQuY3BwCmluZGV4IGE1OWYwYWU3MTAxZWI3ZjNhZmQ2MDM2N2ZlZTg5
YTI4M2RlZjkxZDYuLmU5M2VhNDZlODZkZDU0MjZjNTc5M2Q1Njg4YzdkMWM1YzI0NDk1MjEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2h0bWwvSFRNTElucHV0RWxlbWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvaHRtbC9IVE1MSW5wdXRFbGVtZW50LmNwcApAQCAtMTMwNyw2ICsxMzA3
LDExIEBAIHZvaWQgSFRNTElucHV0RWxlbWVudDo6c2V0RGVmYXVsdE5hbWUoY29uc3QgQXRvbWlj
U3RyaW5nJiBuYW1lKQogICAgIG1fbmFtZSA9IG5hbWU7CiB9CiAKK3N0YXRpYyBib29sIGlzUkZD
MjYxNlRva2VuQ2hhcmFjdGVyKFVDaGFyIGNoKQoreworICAgIHJldHVybiBpc0FTQ0lJKGNoKSAm
JiBjaCA+ICcgJyAmJiBjaCAhPSAnIicgJiYgY2ggIT0gJygnICYmIGNoICE9ICcpJyAmJiBjaCAh
PSAnLCcgJiYgY2ggIT0gJy8nICYmIChjaCA8ICc6JyB8fCBjaCA+ICdAJykgJiYgKGNoIDwgJ1sn
IHx8IGNoID4gJ10nKSAmJiBjaCAhPSAneycgJiYgY2ggIT0gJ30nICYmIGNoICE9IDB4N2Y7Cit9
CisKIFZlY3RvcjxTdHJpbmc+IEhUTUxJbnB1dEVsZW1lbnQ6OmFjY2VwdE1JTUVUeXBlcygpCiB7
CiAgICAgVmVjdG9yPFN0cmluZz4gbWltZVR5cGVzOwpAQCAtMTMxOSw4ICsxMzI0LDIwIEBAIFZl
Y3RvcjxTdHJpbmc+IEhUTUxJbnB1dEVsZW1lbnQ6OmFjY2VwdE1JTUVUeXBlcygpCiAgICAgYWNj
ZXB0U3RyaW5nLnNwbGl0KCcsJywgZmFsc2UsIHNwbGl0VHlwZXMpOwogICAgIGZvciAoc2l6ZV90
IGkgPSAwOyBpIDwgc3BsaXRUeXBlcy5zaXplKCk7ICsraSkgewogICAgICAgICBTdHJpbmcgdHJp
bW1lZE1pbWVUeXBlID0gc3RyaXBMZWFkaW5nQW5kVHJhaWxpbmdIVE1MU3BhY2VzKHNwbGl0VHlw
ZXNbaV0pOwotICAgICAgICBpZiAoIXRyaW1tZWRNaW1lVHlwZS5pc0VtcHR5KCkpCi0gICAgICAg
ICAgICBtaW1lVHlwZXMuYXBwZW5kKHRyaW1tZWRNaW1lVHlwZSk7CisgICAgICAgIGlmICh0cmlt
bWVkTWltZVR5cGUuaXNFbXB0eSgpKQorICAgICAgICAgICAgY29udGludWU7CisgICAgICAgIHNp
emVfdCBzbGFzaFBvc2l0aW9uID0gdHJpbW1lZE1pbWVUeXBlLmZpbmQoJy8nKTsKKyAgICAgICAg
aWYgKHNsYXNoUG9zaXRpb24gPT0gbm90Rm91bmQgfHwgIXNsYXNoUG9zaXRpb24gfHwgc2xhc2hQ
b3NpdGlvbiA9PSB0cmltbWVkTWltZVR5cGUubGVuZ3RoKCkgLSAxKQorICAgICAgICAgICAgY29u
dGludWU7CisgICAgICAgIGJvb2wgaGFzSW52YWxpZENoYXIgPSBmYWxzZTsKKyAgICAgICAgZm9y
IChzaXplX3QgaiA9IDA7IGogPCB0cmltbWVkTWltZVR5cGUubGVuZ3RoKCk7ICsraikgeworICAg
ICAgICAgICAgaWYgKGogIT0gc2xhc2hQb3NpdGlvbiAmJiAhaXNSRkMyNjE2VG9rZW5DaGFyYWN0
ZXIodHJpbW1lZE1pbWVUeXBlW2pdKSkgeworICAgICAgICAgICAgICAgIGhhc0ludmFsaWRDaGFy
ID0gdHJ1ZTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAg
fQorICAgICAgICBpZiAoIWhhc0ludmFsaWRDaGFyKQorICAgICAgICAgICAgbWltZVR5cGVzLmFw
cGVuZCh0cmltbWVkTWltZVR5cGUubG93ZXIoKSk7CiAgICAgfQogCiAgICAgcmV0dXJuIG1pbWVU
eXBlczsK
</data>
<flag name="review"
          id="109231"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>