<?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>39802</bug_id>
          
          <creation_ts>2010-05-26 18:34:02 -0700</creation_ts>
          <short_desc>Implement SegmentedString::lookAheadSlowCase</short_desc>
          <delta_ts>2010-05-26 23:54:22 -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>New Bugs</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Other</rep_platform>
          <op_sys>OS X 10.5</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>
          
          <blocked>39259</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Adam Barth">abarth</reporter>
          <assigned_to name="Adam Barth">abarth</assigned_to>
          <cc>eric</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>231034</commentid>
    <comment_count>0</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-26 18:34:02 -0700</bug_when>
    <thetext>Implement SegmentedString::lookAheadSlowCase</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231035</commentid>
    <comment_count>1</comment_count>
      <attachid>57184</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-26 18:34:40 -0700</bug_when>
    <thetext>Created attachment 57184
Work in progress</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231044</commentid>
    <comment_count>2</comment_count>
      <attachid>57187</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-26 19:26:14 -0700</bug_when>
    <thetext>Created attachment 57187
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231058</commentid>
    <comment_count>3</comment_count>
      <attachid>57187</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-26 20:51:52 -0700</bug_when>
    <thetext>Comment on attachment 57187
Patch

&gt; +        if (!m_pushedChar1 &amp;&amp; string.length() &lt;= (unsigned) m_currentString.m_length) {

We should use C++ casts such as static_cast, not C-style casts.

&gt; +        if (compare(string.characters(), futureCharacters.data(), string.length() * sizeof(UChar)))

I believe the &quot;* sizeof(UChar)&quot; here is incorrect.

The use of Vector&lt;UChar&gt; specifically for the result of the advance function seems slightly quirky to me. The function always returns a fixed number of characters, so paying for the range check and such as you append characters to a vector doesn&apos;t make sense. I would have the function take a UChar* instead.

Since strings made from vectors use two malloc blocks as opposed to a single block in the type where a vector is not involved, it would be better to use String::createUninitialized and create a string of exactly the right size. As long as advance doesn&apos;t have a preference for Vector&lt;UChar&gt; then you could use that easily.

Do you really need to name these local comparison functions in the cryptic memcmp style? If you&apos;re going to define your own functions anyway, maybe just have them return booleans instead of begin memcmp-style -1,0,1 functions, and give them normal names.

review- because of the &quot;* sizeof(UChar)&quot; error.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231064</commentid>
    <comment_count>4</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-26 21:16:06 -0700</bug_when>
    <thetext>&gt; review- because of the &quot;* sizeof(UChar)&quot; error.

Good catch.  That snuck in because of an earlier iteration.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231072</commentid>
    <comment_count>5</comment_count>
      <attachid>57191</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-26 21:38:59 -0700</bug_when>
    <thetext>Created attachment 57191
Patch

Thanks to Darin, we now pass the doctype suite in the resumer harness.  I haven&apos;t turned on the test because it fails with the old parser.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231121</commentid>
    <comment_count>6</comment_count>
      <attachid>57191</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2010-05-26 23:05:43 -0700</bug_when>
    <thetext>Comment on attachment 57191
Patch

&gt; +        *consumedCharacters++ = *current();

Just a nitpick: I would write:

    consumedCharacters[i] = *current();

But the two are equivalent.

&gt; +        if (string.length() &gt; length())
&gt; +            return NotEnoughCharacters;
&gt; +        unsigned count = string.length();

If you set up count one line earlier then you wouldn&apos;t have to evaluate string.length() twice.

&gt; +        UChar* consumedCharacters = 0;

No need to initialize to zero here.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231127</commentid>
    <comment_count>7</comment_count>
      <attachid>57198</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-26 23:30:39 -0700</bug_when>
    <thetext>Created attachment 57198
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231135</commentid>
    <comment_count>8</comment_count>
      <attachid>57198</attachid>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-26 23:54:15 -0700</bug_when>
    <thetext>Comment on attachment 57198
Patch for landing

Clearing flags on attachment: 57198

Committed r60274: &lt;http://trac.webkit.org/changeset/60274&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>231136</commentid>
    <comment_count>9</comment_count>
    <who name="Adam Barth">abarth</who>
    <bug_when>2010-05-26 23:54:22 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57184</attachid>
            <date>2010-05-26 18:34:40 -0700</date>
            <delta_ts>2010-05-26 19:26:06 -0700</delta_ts>
            <desc>Work in progress</desc>
            <filename>bug-39802-20100526183438.patch</filename>
            <type>text/plain</type>
            <size>4686</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
NjQ5NDc4ZDUzMTkyZGY3N2NmYzA3ODgxNmNkMzE0ZWM4Zjg1ZTgyMy4uNmRhNmI1OTk4ZmJkYjlh
MTg1YjQ5M2M0ODZmMzRlYmViZjNjZjIxYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwyMCBAQAorMjAxMC0wNS0yNiAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVh
ZFNsb3dDYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zOTgwMgorCisgICAgICAgIE5vIG5ldyB0ZXN0cy4gKE9PUFMhKQorCisgICAgICAgICogcGxh
dGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U2VnbWVu
dGVkU3RyaW5nOjphZHZhbmNlKToKKyAgICAgICAgKFdlYkNvcmU6OlNlZ21lbnRlZFN0cmluZzo6
bG9va0FoZWFkSWdub3JpbmdDYXNlU2xvd0Nhc2UpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQv
U2VnbWVudGVkU3RyaW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxv
b2tBaGVhZCk6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZEln
bm9yaW5nQ2FzZSk6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVh
ZFNsb3dDYXNlKToKKwogMjAxMC0wNS0yNiAgQW5kZXJzIENhcmxzc29uICA8YW5kZXJzY2FAYXBw
bGUuY29tPgogCiAgICAgICAgIEZpeCBHVEsrIHRlc3QgZmFpbHVyZXMuCmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCmluZGV4IGYyNzYwZGVhZjkyNWYwZDhmMWY4Mzc2
Nzg4ZjNjMjhiNWJjZGQzN2YuLjAzN2U0Zjk5MjI0ZDk4NjgxMDdjYWJmNjExMTRmNmNkNjMwNzU0
YWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCkBAIC0xNzks
NiArMTc5LDMwIEBAIFN0cmluZyBTZWdtZW50ZWRTdHJpbmc6OnRvU3RyaW5nKCkgY29uc3QKICAg
ICByZXR1cm4gcmVzdWx0OwogfQogCit2b2lkIFNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZSh1bnNp
Z25lZCBjb3VudCwgVmVjdG9yPFVDaGFyPiYgY29uc3VtZWRDaGFyYWN0ZXJzKQoreworICAgIEFT
U0VSVChjb3VudCA8IGxlbmd0aCgpKTsKKyAgICBmb3IgKGludCBpID0gMDsgaSA8IGxlbmd0aDsg
KytpKSB7CisgICAgICAgIEFTU0VSVCghaXNFbXB0eSgpKTsKKyAgICAgICAgY29uc3VtZWRDaGFy
YWN0ZXJzLmFwcGVuZCgqdGhpcyk7CisgICAgICAgIGFkdmFuY2UoKTsKKyAgICB9CisgICAgQVNT
RVJUKGNvbnN1bWVkQ2hhcmFjdGVycy5sZW5ndGgoKSA9PSBjb3VudCk7Cit9CisKK0xvb2tBaGVh
ZFJlc3VsdCBTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZElnbm9yaW5nQ2FzZVNsb3dDYXNlKGNv
bnN0IFN0cmluZyYgc3RyaW5nKQoreworICAgIGlmIChzdHJpbmcubGVuZ3RoKCkgPCBsZW5ndGgo
KSkKKyAgICAgICAgcmV0dXJuIE5vdEVub3VnaENoYXJhY3RlcnM7CisgICAgVmVjdG9yPFVDaGFy
PiBmdXR1cmVDaGFyYWN0ZXJzOworICAgIGFkdmFuY2Uoc3RyaW5nLmxlbmd0aCgpLCBmdXR1cmVD
aGFyYWN0ZXJzKTsKKyAgICBMb29rQWhlYWRSZXN1bHQgcmVzdWx0ID0gRGlkTWF0Y2g7CisgICAg
aWYgKHVjYXNlY21wKHN0cmluZy5jaGFyYWN0ZXJzKCksIGZ1dHVyZUNoYXJhY3RlcnMuZGF0YSgp
LCBsZW5ndGggKiBzaXplb2YoVUNoYXIpKSkKKyAgICAgICAgcmVzdWx0ID0gRGlkTm90TWF0Y2g7
CisgICAgcHJlcGVuZChTdHJpbmc6OmFkb3B0KGZ1dHVyZUNoYXJhY3RlcnMpKTsKKyAgICByZXR1
cm4gcmVzdWx0OworfQorCiB2b2lkIFNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZVNsb3dDYXNlKCkK
IHsKICAgICBpZiAobV9wdXNoZWRDaGFyMSkgewpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1NlZ21lbnRlZFN0cmluZy5oIGIvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1NlZ21lbnRl
ZFN0cmluZy5oCmluZGV4IDI4YmJhNDE1ZjlmMTA5ZGM2YzJkMmQ5ZDhiNjg2ZTI2ODdkNTMwNWMu
LmZkNzVlMTc5NDM5YTY5MmIzMjNhZTkyMjExNGYxZTZjMmJkYmRkYmQgMTAwNjQ0Ci0tLSBhL1dl
YkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmgKQEAgLTExMiw3ICsxMTIsNiBAQCBwdWJsaWM6CiAg
ICAgICAgIE5vdEVub3VnaENoYXJhY3RlcnMsCiAgICAgfTsKIAotICAgIC8vIFdBUk5JTkc6IFRo
aXMgbWV0aG9kIGlzIGN1cnJlbnRseSB1c2VkIG9ubHkgYnkgdGhlIEhUTUw1IHBhcnNlciBhbmQg
aXMgaW5jb21wbGV0ZS4KICAgICBMb29rQWhlYWRSZXN1bHQgbG9va0FoZWFkKGNvbnN0IFN0cmlu
ZyYgc3RyaW5nKQogICAgIHsKICAgICAgICAgaWYgKCFtX3B1c2hlZENoYXIxICYmIHN0cmluZy5s
ZW5ndGgoKSA8PSAodW5zaWduZWQpIG1fY3VycmVudFN0cmluZy5tX2xlbmd0aCkgewpAQCAtMTIw
LDEyICsxMTksOSBAQCBwdWJsaWM6CiAgICAgICAgICAgICAgICAgcmV0dXJuIERpZE5vdE1hdGNo
OwogICAgICAgICAgICAgcmV0dXJuIERpZE1hdGNoOwogICAgICAgICB9Ci0gICAgICAgIC8vIFdl
IGhhdmVuJ3QgaW1wbGVtZW50ZWQgdGhlIHNsb3cgY2FzZSB5ZXQuCi0gICAgICAgIEFTU0VSVF9O
T1RfUkVBQ0hFRCgpOwotICAgICAgICByZXR1cm4gRGlkTm90TWF0Y2g7CisgICAgICAgIHJldHVy
biBsb29rQWhlYWRTbG93Q2FzZTxtZW1jbXA+KHN0cmluZyk7CiAgICAgfQogCi0gICAgLy8gV0FS
TklORzogVGhpcyBtZXRob2QgaXMgY3VycmVudGx5IHVzZWQgb25seSBieSB0aGUgSFRNTDUgcGFy
c2VyIGFuZCBpcyBpbmNvbXBsZXRlLgogICAgIExvb2tBaGVhZFJlc3VsdCBsb29rQWhlYWRJZ25v
cmluZ0Nhc2UoY29uc3QgU3RyaW5nJiBzdHJpbmcpCiAgICAgewogICAgICAgICBpZiAoIW1fcHVz
aGVkQ2hhcjEgJiYgc3RyaW5nLmxlbmd0aCgpIDw9ICh1bnNpZ25lZCkgbV9jdXJyZW50U3RyaW5n
Lm1fbGVuZ3RoKSB7CkBAIC0xMzMsOSArMTI5LDcgQEAgcHVibGljOgogICAgICAgICAgICAgICAg
IHJldHVybiBEaWROb3RNYXRjaDsKICAgICAgICAgICAgIHJldHVybiBEaWRNYXRjaDsKICAgICAg
ICAgfQotICAgICAgICAvLyBXZSBoYXZlbid0IGltcGxlbWVudGVkIHRoZSBzbG93IGNhc2UgeWV0
LgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIERpZE5vdE1h
dGNoOworICAgICAgICByZXR1cm4gbG9va0FoZWFkU2xvd0Nhc2U8V1RGOjpVbmljb2RlOjp1bWVt
Y2FzZWNtcD4oc3RyaW5nKTsKICAgICB9CiAKICAgICB2b2lkIGFkdmFuY2UoKQpAQCAtMTkzLDkg
KzE4NywxMSBAQCBwdWJsaWM6CiAgICAgICAgIH0KICAgICAgICAgYWR2YW5jZVNsb3dDYXNlKGxp
bmVOdW1iZXIpOwogICAgIH0KLSAgICAKKworICAgIHZvaWQgYWR2YW5jZSh1bnNpZ25lZCBjb3Vu
dCwgVmVjdG9yPFVDaGFyPiYgY29uc3VtZWRDaGFyYWN0ZXJzKTsKKwogICAgIGJvb2wgZXNjYXBl
ZCgpIGNvbnN0IHsgcmV0dXJuIG1fcHVzaGVkQ2hhcjE7IH0KLSAgICAKKwogICAgIFN0cmluZyB0
b1N0cmluZygpIGNvbnN0OwogCiAgICAgY29uc3QgVUNoYXImIG9wZXJhdG9yKigpIGNvbnN0IHsg
cmV0dXJuICpjdXJyZW50KCk7IH0KQEAgLTIxMCw2ICsyMDYsMjAgQEAgcHJpdmF0ZToKICAgICB2
b2lkIGFkdmFuY2VTdWJzdHJpbmcoKTsKICAgICBjb25zdCBVQ2hhciogY3VycmVudCgpIGNvbnN0
IHsgcmV0dXJuIG1fY3VycmVudENoYXI7IH0KIAorICAgIHRlbXBsYXRlPGludCBjb21wYXJlKGNv
bnN0IHZvaWQqIHB0cjEsIGNvbnN0IHZvaWQqIHB0cjIsIHNpemVfdCBudW0pPgorICAgIExvb2tB
aGVhZFJlc3VsdCBsb29rQWhlYWRTbG93Q2FzZShjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7
CisgICAgICAgIGlmIChzdHJpbmcubGVuZ3RoKCkgPCBsZW5ndGgoKSkKKyAgICAgICAgICAgIHJl
dHVybiBOb3RFbm91Z2hDaGFyYWN0ZXJzOworICAgICAgICBWZWN0b3I8VUNoYXI+IGZ1dHVyZUNo
YXJhY3RlcnM7CisgICAgICAgIGFkdmFuY2Uoc3RyaW5nLmxlbmd0aCgpLCBmdXR1cmVDaGFyYWN0
ZXJzKTsKKyAgICAgICAgTG9va0FoZWFkUmVzdWx0IHJlc3VsdCA9IERpZE1hdGNoOworICAgICAg
ICBpZiAoY29tcGFyZShzdHJpbmcuY2hhcmFjdGVycygpLCBmdXR1cmVDaGFyYWN0ZXJzLmRhdGEo
KSwgbGVuZ3RoICogc2l6ZW9mKFVDaGFyKSkpCisgICAgICAgICAgICByZXN1bHQgPSBEaWROb3RN
YXRjaDsKKyAgICAgICAgcHJlcGVuZChTdHJpbmc6OmFkb3B0KGZ1dHVyZUNoYXJhY3RlcnMpKTsK
KyAgICAgICAgcmV0dXJuIHJlc3VsdDsKKyAgICB9CisKICAgICBVQ2hhciBtX3B1c2hlZENoYXIx
OwogICAgIFVDaGFyIG1fcHVzaGVkQ2hhcjI7CiAgICAgU2VnbWVudGVkU3Vic3RyaW5nIG1fY3Vy
cmVudFN0cmluZzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57187</attachid>
            <date>2010-05-26 19:26:14 -0700</date>
            <delta_ts>2010-05-26 21:38:54 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39802-20100526192612.patch</filename>
            <type>text/plain</type>
            <size>5688</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGM0MmVkNDA2MjUwYTcxNzBhNzQwZmRhNTU4NjY3Mjg4ZGZlOGUyMC4uMGU1NDg5NjMxYTRjYzUw
ZDNmMDk2OTY5N2UwN2JmMzkzMjRjMzA5MiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAxMC0wNS0yNiAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVh
ZFNsb3dDYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zOTgwMgorCisgICAgICAgIFRoZSBzbG93IGNhc2UgaXMgbmVlZCBieSB0aGUgcmVzdW1lciB0
ZXN0IHN1aXRlLiAgU2FkbHksIHRoZSByZXN1bWVyCisgICAgICAgIHRlc3Qgc3VpdGUgaXMgcmVh
bGx5IHNsb3cgYW5kIHByb2R1Y2VzIGluZmluaXRlIGVycm9ycyAobWFueSBvZiB3aGljaAorICAg
ICAgICBhcmUgZmFsc2UgcG9zaXRpdmVzKS4gIEknbGwgbGFuZCBtb3JlIG9mIHRoZSByZXN1bWVy
IHRlc3Qgc3VpdGUgaW4gYQorICAgICAgICBmdXR1cmUgcGF0Y2guCisKKyAgICAgICAgKiBwbGF0
Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50
ZWRTdHJpbmc6OmFkdmFuY2UpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3Ry
aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZElnbm9yaW5nQ2FzZSk6
CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OnVtZW1jbXApOgorICAgICAgICAo
V2ViQ29yZTo6U2VnbWVudGVkU3RyaW5nOjp1bWVtY2FzZWNtcCk6CisgICAgICAgIChXZWJDb3Jl
OjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZElubGluZSk6CisgICAgICAgIChXZWJDb3JlOjpT
ZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZFNsb3dDYXNlKToKKworMjAxMC0wNS0yNiAgQWRhbSBC
YXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFVucmV2aWV3ZWQsIHJvbGxpbmcg
b3V0IHI2MDI2Mi4KICAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9jaGFuZ2VzZXQvNjAy
NjIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM5Nzgz
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmNwcCBi
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCmluZGV4IGYyNzYwZGVh
ZjkyNWYwZDhmMWY4Mzc2Nzg4ZjNjMjhiNWJjZGQzN2YuLjRlMDQ0MDIyNDFlZWU4YzU2NDk3OGMy
NGZmMWM0OWQyYmU0NDNhOTIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdt
ZW50ZWRTdHJpbmcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJp
bmcuY3BwCkBAIC0xNzksNiArMTc5LDE3IEBAIFN0cmluZyBTZWdtZW50ZWRTdHJpbmc6OnRvU3Ry
aW5nKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2b2lkIFNlZ21lbnRlZFN0cmlu
Zzo6YWR2YW5jZSh1bnNpZ25lZCBjb3VudCwgVmVjdG9yPFVDaGFyPiYgY29uc3VtZWRDaGFyYWN0
ZXJzKQoreworICAgIEFTU0VSVChjb3VudCA8PSBsZW5ndGgoKSk7CisgICAgZm9yICh1bnNpZ25l
ZCBpID0gMDsgaSA8IGNvdW50OyArK2kpIHsKKyAgICAgICAgQVNTRVJUKCFpc0VtcHR5KCkpOwor
ICAgICAgICBjb25zdW1lZENoYXJhY3RlcnMuYXBwZW5kKCpjdXJyZW50KCkpOworICAgICAgICBh
ZHZhbmNlKCk7CisgICAgfQorICAgIEFTU0VSVChjb25zdW1lZENoYXJhY3RlcnMuc2l6ZSgpID09
IGNvdW50KTsKK30KKwogdm9pZCBTZWdtZW50ZWRTdHJpbmc6OmFkdmFuY2VTbG93Q2FzZSgpCiB7
CiAgICAgaWYgKG1fcHVzaGVkQ2hhcjEpIHsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9TZWdtZW50ZWRTdHJpbmcuaCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRT
dHJpbmcuaAppbmRleCAyOGJiYTQxNWY5ZjEwOWRjNmMyZDJkOWQ4YjY4NmUyNjg3ZDUzMDVjLi5j
ZDI4YmZhMWMwODQ4MDk1NTMyMGIxZDI1M2E5ZDY3MWM2YTg1ZWRlIDEwMDY0NAotLS0gYS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmgKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS90ZXh0L1NlZ21lbnRlZFN0cmluZy5oCkBAIC0xMTIsMzEgKzExMiw4IEBAIHB1YmxpYzoKICAg
ICAgICAgTm90RW5vdWdoQ2hhcmFjdGVycywKICAgICB9OwogCi0gICAgLy8gV0FSTklORzogVGhp
cyBtZXRob2QgaXMgY3VycmVudGx5IHVzZWQgb25seSBieSB0aGUgSFRNTDUgcGFyc2VyIGFuZCBp
cyBpbmNvbXBsZXRlLgotICAgIExvb2tBaGVhZFJlc3VsdCBsb29rQWhlYWQoY29uc3QgU3RyaW5n
JiBzdHJpbmcpCi0gICAgewotICAgICAgICBpZiAoIW1fcHVzaGVkQ2hhcjEgJiYgc3RyaW5nLmxl
bmd0aCgpIDw9ICh1bnNpZ25lZCkgbV9jdXJyZW50U3RyaW5nLm1fbGVuZ3RoKSB7Ci0gICAgICAg
ICAgICBpZiAobWVtY21wKHN0cmluZy5jaGFyYWN0ZXJzKCksIG1fY3VycmVudFN0cmluZy5tX2N1
cnJlbnQsIHN0cmluZy5sZW5ndGgoKSAqIHNpemVvZihVQ2hhcikpKQotICAgICAgICAgICAgICAg
IHJldHVybiBEaWROb3RNYXRjaDsKLSAgICAgICAgICAgIHJldHVybiBEaWRNYXRjaDsKLSAgICAg
ICAgfQotICAgICAgICAvLyBXZSBoYXZlbid0IGltcGxlbWVudGVkIHRoZSBzbG93IGNhc2UgeWV0
LgotICAgICAgICBBU1NFUlRfTk9UX1JFQUNIRUQoKTsKLSAgICAgICAgcmV0dXJuIERpZE5vdE1h
dGNoOwotICAgIH0KLQotICAgIC8vIFdBUk5JTkc6IFRoaXMgbWV0aG9kIGlzIGN1cnJlbnRseSB1
c2VkIG9ubHkgYnkgdGhlIEhUTUw1IHBhcnNlciBhbmQgaXMgaW5jb21wbGV0ZS4KLSAgICBMb29r
QWhlYWRSZXN1bHQgbG9va0FoZWFkSWdub3JpbmdDYXNlKGNvbnN0IFN0cmluZyYgc3RyaW5nKQot
ICAgIHsKLSAgICAgICAgaWYgKCFtX3B1c2hlZENoYXIxICYmIHN0cmluZy5sZW5ndGgoKSA8PSAo
dW5zaWduZWQpIG1fY3VycmVudFN0cmluZy5tX2xlbmd0aCkgewotICAgICAgICAgICAgaWYgKFdU
Rjo6VW5pY29kZTo6dW1lbWNhc2VjbXAoc3RyaW5nLmNoYXJhY3RlcnMoKSwgbV9jdXJyZW50U3Ry
aW5nLm1fY3VycmVudCwgc3RyaW5nLmxlbmd0aCgpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4g
RGlkTm90TWF0Y2g7Ci0gICAgICAgICAgICByZXR1cm4gRGlkTWF0Y2g7Ci0gICAgICAgIH0KLSAg
ICAgICAgLy8gV2UgaGF2ZW4ndCBpbXBsZW1lbnRlZCB0aGUgc2xvdyBjYXNlIHlldC4KLSAgICAg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBEaWROb3RNYXRjaDsKLSAg
ICB9CisgICAgTG9va0FoZWFkUmVzdWx0IGxvb2tBaGVhZChjb25zdCBTdHJpbmcmIHN0cmluZykg
eyByZXR1cm4gbG9va0FoZWFkSW5saW5lPFNlZ21lbnRlZFN0cmluZzo6dW1lbWNtcD4oc3RyaW5n
KTsgfQorICAgIExvb2tBaGVhZFJlc3VsdCBsb29rQWhlYWRJZ25vcmluZ0Nhc2UoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpIHsgcmV0dXJuIGxvb2tBaGVhZElubGluZTxTZWdtZW50ZWRTdHJpbmc6OnVt
ZW1jYXNlY21wPihzdHJpbmcpOyB9CiAKICAgICB2b2lkIGFkdmFuY2UoKQogICAgIHsKQEAgLTE5
Myw5ICsxNzAsMTEgQEAgcHVibGljOgogICAgICAgICB9CiAgICAgICAgIGFkdmFuY2VTbG93Q2Fz
ZShsaW5lTnVtYmVyKTsKICAgICB9Ci0gICAgCisKKyAgICB2b2lkIGFkdmFuY2UodW5zaWduZWQg
Y291bnQsIFZlY3RvcjxVQ2hhcj4mIGNvbnN1bWVkQ2hhcmFjdGVycyk7CisKICAgICBib29sIGVz
Y2FwZWQoKSBjb25zdCB7IHJldHVybiBtX3B1c2hlZENoYXIxOyB9Ci0gICAgCisKICAgICBTdHJp
bmcgdG9TdHJpbmcoKSBjb25zdDsKIAogICAgIGNvbnN0IFVDaGFyJiBvcGVyYXRvciooKSBjb25z
dCB7IHJldHVybiAqY3VycmVudCgpOyB9CkBAIC0yMTAsNiArMTg5LDM0IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBhZHZhbmNlU3Vic3RyaW5nKCk7CiAgICAgY29uc3QgVUNoYXIqIGN1cnJlbnQoKSBj
b25zdCB7IHJldHVybiBtX2N1cnJlbnRDaGFyOyB9CiAKKyAgICBzdGF0aWMgaW50IHVtZW1jbXAo
Y29uc3QgVUNoYXIqIHN0cjEsIGNvbnN0IFVDaGFyKiBzdHIyLCBzaXplX3QgY291bnQpIHsgcmV0
dXJuIG1lbWNtcChzdHIxLCBzdHIyLCBjb3VudCAqIHNpemVvZihVQ2hhcikpOyB9CisgICAgc3Rh
dGljIGludCB1bWVtY2FzZWNtcChjb25zdCBVQ2hhciogc3RyMSwgY29uc3QgVUNoYXIqIHN0cjIs
IHNpemVfdCBjb3VudCkgeyByZXR1cm4gV1RGOjpVbmljb2RlOjp1bWVtY2FzZWNtcChzdHIxLCBz
dHIyLCBjb3VudCk7IH0KKworICAgIHRlbXBsYXRlPGludCBjb21wYXJlKGNvbnN0IFVDaGFyKiBz
dHIxLCBjb25zdCBVQ2hhciogc3RyMiwgc2l6ZV90IGNvdW50KT4KKyAgICBpbmxpbmUgTG9va0Fo
ZWFkUmVzdWx0IGxvb2tBaGVhZElubGluZShjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7Cisg
ICAgICAgIGlmICghbV9wdXNoZWRDaGFyMSAmJiBzdHJpbmcubGVuZ3RoKCkgPD0gKHVuc2lnbmVk
KSBtX2N1cnJlbnRTdHJpbmcubV9sZW5ndGgpIHsKKyAgICAgICAgICAgIGlmIChjb21wYXJlKHN0
cmluZy5jaGFyYWN0ZXJzKCksIG1fY3VycmVudFN0cmluZy5tX2N1cnJlbnQsIHN0cmluZy5sZW5n
dGgoKSkpCisgICAgICAgICAgICAgICAgcmV0dXJuIERpZE5vdE1hdGNoOworICAgICAgICAgICAg
cmV0dXJuIERpZE1hdGNoOworICAgICAgICB9CisgICAgICAgIHJldHVybiBsb29rQWhlYWRTbG93
Q2FzZTxjb21wYXJlPihzdHJpbmcpOworICAgIH0KKworICAgIHRlbXBsYXRlPGludCBjb21wYXJl
KGNvbnN0IFVDaGFyKiBzdHIxLCBjb25zdCBVQ2hhciogc3RyMiwgc2l6ZV90IGNvdW50KT4KKyAg
ICBMb29rQWhlYWRSZXN1bHQgbG9va0FoZWFkU2xvd0Nhc2UoY29uc3QgU3RyaW5nJiBzdHJpbmcp
CisgICAgeworICAgICAgICBpZiAoc3RyaW5nLmxlbmd0aCgpID4gbGVuZ3RoKCkpCisgICAgICAg
ICAgICByZXR1cm4gTm90RW5vdWdoQ2hhcmFjdGVyczsKKyAgICAgICAgVmVjdG9yPFVDaGFyPiBm
dXR1cmVDaGFyYWN0ZXJzOworICAgICAgICBhZHZhbmNlKHN0cmluZy5sZW5ndGgoKSwgZnV0dXJl
Q2hhcmFjdGVycyk7CisgICAgICAgIExvb2tBaGVhZFJlc3VsdCByZXN1bHQgPSBEaWRNYXRjaDsK
KyAgICAgICAgaWYgKGNvbXBhcmUoc3RyaW5nLmNoYXJhY3RlcnMoKSwgZnV0dXJlQ2hhcmFjdGVy
cy5kYXRhKCksIHN0cmluZy5sZW5ndGgoKSAqIHNpemVvZihVQ2hhcikpKQorICAgICAgICAgICAg
cmVzdWx0ID0gRGlkTm90TWF0Y2g7CisgICAgICAgIHByZXBlbmQoU2VnbWVudGVkU3RyaW5nKFN0
cmluZzo6YWRvcHQoZnV0dXJlQ2hhcmFjdGVycykpKTsKKyAgICAgICAgcmV0dXJuIHJlc3VsdDsK
KyAgICB9CisKICAgICBVQ2hhciBtX3B1c2hlZENoYXIxOwogICAgIFVDaGFyIG1fcHVzaGVkQ2hh
cjI7CiAgICAgU2VnbWVudGVkU3Vic3RyaW5nIG1fY3VycmVudFN0cmluZzsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57191</attachid>
            <date>2010-05-26 21:38:59 -0700</date>
            <delta_ts>2010-05-26 23:30:30 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-39802-20100526213857.patch</filename>
            <type>text/plain</type>
            <size>5851</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGM0MmVkNDA2MjUwYTcxNzBhNzQwZmRhNTU4NjY3Mjg4ZGZlOGUyMC4uZDI5ZGRhMjQ3NzIzYjc1
ZjMxM2EyYTM0NTYzMWI4MzVjODZmNzczMiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAxMC0wNS0yNiAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIEltcGxlbWVudCBTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVh
ZFNsb3dDYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0zOTgwMgorCisgICAgICAgIFRoZSBzbG93IGNhc2UgaXMgbmVlZCBieSB0aGUgcmVzdW1lciB0
ZXN0IHN1aXRlLiAgU2FkbHksIHRoZSByZXN1bWVyCisgICAgICAgIHRlc3Qgc3VpdGUgaXMgcmVh
bGx5IHNsb3cgYW5kIHByb2R1Y2VzIGluZmluaXRlIGVycm9ycyAobWFueSBvZiB3aGljaAorICAg
ICAgICBhcmUgZmFsc2UgcG9zaXRpdmVzKS4gIEknbGwgbGFuZCBtb3JlIG9mIHRoZSByZXN1bWVy
IHRlc3Qgc3VpdGUgaW4gYQorICAgICAgICBmdXR1cmUgcGF0Y2guCisKKyAgICAgICAgKiBwbGF0
Zm9ybS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50
ZWRTdHJpbmc6OmFkdmFuY2UpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3Ry
aW5nLmg6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZCk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZElnbm9yaW5nQ2FzZSk6
CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OmVxdWFsc0xpdGVyYWxseSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OmVxdWFsc0lnbm9yaW5nQ2FzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZElubGluZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZFNsb3dDYXNlKToKKworMjAx
MC0wNS0yNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFVucmV2
aWV3ZWQsIHJvbGxpbmcgb3V0IHI2MDI2Mi4KICAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9y
Zy9jaGFuZ2VzZXQvNjAyNjIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTM5NzgzCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVu
dGVkU3RyaW5nLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3Bw
CmluZGV4IGYyNzYwZGVhZjkyNWYwZDhmMWY4Mzc2Nzg4ZjNjMjhiNWJjZGQzN2YuLmMyYzkxZGVj
ZTIyNGQ5ZWFkMDdkZDMxOGJmOGZmNjc5NDBmNDc1OWIgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4
dC9TZWdtZW50ZWRTdHJpbmcuY3BwCkBAIC0xNzksNiArMTc5LDE1IEBAIFN0cmluZyBTZWdtZW50
ZWRTdHJpbmc6OnRvU3RyaW5nKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2b2lk
IFNlZ21lbnRlZFN0cmluZzo6YWR2YW5jZSh1bnNpZ25lZCBjb3VudCwgVUNoYXIqIGNvbnN1bWVk
Q2hhcmFjdGVycykKK3sKKyAgICBBU1NFUlQoY291bnQgPD0gbGVuZ3RoKCkpOworICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgICpjb25zdW1lZENoYXJh
Y3RlcnMrKyA9ICpjdXJyZW50KCk7CisgICAgICAgIGFkdmFuY2UoKTsKKyAgICB9Cit9CisKIHZv
aWQgU2VnbWVudGVkU3RyaW5nOjphZHZhbmNlU2xvd0Nhc2UoKQogewogICAgIGlmIChtX3B1c2hl
ZENoYXIxKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3Ry
aW5nLmggYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmgKaW5kZXggMjhi
YmE0MTVmOWYxMDlkYzZjMmQyZDlkOGI2ODZlMjY4N2Q1MzA1Yy4uYTk4MTk2OGQyMWEyMWUwNDYz
ZWU1N2JmOTVkMjY5OGY2ZTlhOGJjYiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0
L1NlZ21lbnRlZFN0cmluZy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRT
dHJpbmcuaApAQCAtMTEyLDMxICsxMTIsOCBAQCBwdWJsaWM6CiAgICAgICAgIE5vdEVub3VnaENo
YXJhY3RlcnMsCiAgICAgfTsKIAotICAgIC8vIFdBUk5JTkc6IFRoaXMgbWV0aG9kIGlzIGN1cnJl
bnRseSB1c2VkIG9ubHkgYnkgdGhlIEhUTUw1IHBhcnNlciBhbmQgaXMgaW5jb21wbGV0ZS4KLSAg
ICBMb29rQWhlYWRSZXN1bHQgbG9va0FoZWFkKGNvbnN0IFN0cmluZyYgc3RyaW5nKQotICAgIHsK
LSAgICAgICAgaWYgKCFtX3B1c2hlZENoYXIxICYmIHN0cmluZy5sZW5ndGgoKSA8PSAodW5zaWdu
ZWQpIG1fY3VycmVudFN0cmluZy5tX2xlbmd0aCkgewotICAgICAgICAgICAgaWYgKG1lbWNtcChz
dHJpbmcuY2hhcmFjdGVycygpLCBtX2N1cnJlbnRTdHJpbmcubV9jdXJyZW50LCBzdHJpbmcubGVu
Z3RoKCkgKiBzaXplb2YoVUNoYXIpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRGlkTm90TWF0
Y2g7Ci0gICAgICAgICAgICByZXR1cm4gRGlkTWF0Y2g7Ci0gICAgICAgIH0KLSAgICAgICAgLy8g
V2UgaGF2ZW4ndCBpbXBsZW1lbnRlZCB0aGUgc2xvdyBjYXNlIHlldC4KLSAgICAgICAgQVNTRVJU
X05PVF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBEaWROb3RNYXRjaDsKLSAgICB9Ci0KLSAg
ICAvLyBXQVJOSU5HOiBUaGlzIG1ldGhvZCBpcyBjdXJyZW50bHkgdXNlZCBvbmx5IGJ5IHRoZSBI
VE1MNSBwYXJzZXIgYW5kIGlzIGluY29tcGxldGUuCi0gICAgTG9va0FoZWFkUmVzdWx0IGxvb2tB
aGVhZElnbm9yaW5nQ2FzZShjb25zdCBTdHJpbmcmIHN0cmluZykKLSAgICB7Ci0gICAgICAgIGlm
ICghbV9wdXNoZWRDaGFyMSAmJiBzdHJpbmcubGVuZ3RoKCkgPD0gKHVuc2lnbmVkKSBtX2N1cnJl
bnRTdHJpbmcubV9sZW5ndGgpIHsKLSAgICAgICAgICAgIGlmIChXVEY6OlVuaWNvZGU6OnVtZW1j
YXNlY21wKHN0cmluZy5jaGFyYWN0ZXJzKCksIG1fY3VycmVudFN0cmluZy5tX2N1cnJlbnQsIHN0
cmluZy5sZW5ndGgoKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIERpZE5vdE1hdGNoOwotICAg
ICAgICAgICAgcmV0dXJuIERpZE1hdGNoOwotICAgICAgICB9Ci0gICAgICAgIC8vIFdlIGhhdmVu
J3QgaW1wbGVtZW50ZWQgdGhlIHNsb3cgY2FzZSB5ZXQuCi0gICAgICAgIEFTU0VSVF9OT1RfUkVB
Q0hFRCgpOwotICAgICAgICByZXR1cm4gRGlkTm90TWF0Y2g7Ci0gICAgfQorICAgIExvb2tBaGVh
ZFJlc3VsdCBsb29rQWhlYWQoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIGxvb2tBaGVh
ZElubGluZTxTZWdtZW50ZWRTdHJpbmc6OmVxdWFsc0xpdGVyYWxseT4oc3RyaW5nKTsgfQorICAg
IExvb2tBaGVhZFJlc3VsdCBsb29rQWhlYWRJZ25vcmluZ0Nhc2UoY29uc3QgU3RyaW5nJiBzdHJp
bmcpIHsgcmV0dXJuIGxvb2tBaGVhZElubGluZTxTZWdtZW50ZWRTdHJpbmc6OmVxdWFsc0lnbm9y
aW5nQ2FzZT4oc3RyaW5nKTsgfQogCiAgICAgdm9pZCBhZHZhbmNlKCkKICAgICB7CkBAIC0xOTMs
OSArMTcwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICBhZHZhbmNlU2xvd0Nhc2Uo
bGluZU51bWJlcik7CiAgICAgfQotICAgIAorCisgICAgLy8gV3JpdGVzIHRoZSBjb25zdW1lZCBj
aGFyYWN0ZXJzIGludG8gY29uc3VtZWRDaGFyYWN0ZXJzLCB3aGljaCBtdXN0CisgICAgLy8gaGF2
ZSBzcGFjZSBmb3IgYXQgbGVhc3QgfGNvdW50fCBjaGFyYWN0ZXJzLgorICAgIHZvaWQgYWR2YW5j
ZSh1bnNpZ25lZCBjb3VudCwgVUNoYXIqIGNvbnN1bWVkQ2hhcmFjdGVycyk7CisKICAgICBib29s
IGVzY2FwZWQoKSBjb25zdCB7IHJldHVybiBtX3B1c2hlZENoYXIxOyB9Ci0gICAgCisKICAgICBT
dHJpbmcgdG9TdHJpbmcoKSBjb25zdDsKIAogICAgIGNvbnN0IFVDaGFyJiBvcGVyYXRvciooKSBj
b25zdCB7IHJldHVybiAqY3VycmVudCgpOyB9CkBAIC0yMTAsNiArMTkxLDM2IEBAIHByaXZhdGU6
CiAgICAgdm9pZCBhZHZhbmNlU3Vic3RyaW5nKCk7CiAgICAgY29uc3QgVUNoYXIqIGN1cnJlbnQo
KSBjb25zdCB7IHJldHVybiBtX2N1cnJlbnRDaGFyOyB9CiAKKyAgICBzdGF0aWMgYm9vbCBlcXVh
bHNMaXRlcmFsbHkoY29uc3QgVUNoYXIqIHN0cjEsIGNvbnN0IFVDaGFyKiBzdHIyLCBzaXplX3Qg
Y291bnQpIHsgcmV0dXJuICFtZW1jbXAoc3RyMSwgc3RyMiwgY291bnQgKiBzaXplb2YoVUNoYXIp
KTsgfQorICAgIHN0YXRpYyBib29sIGVxdWFsc0lnbm9yaW5nQ2FzZShjb25zdCBVQ2hhciogc3Ry
MSwgY29uc3QgVUNoYXIqIHN0cjIsIHNpemVfdCBjb3VudCkgeyByZXR1cm4gIVdURjo6VW5pY29k
ZTo6dW1lbWNhc2VjbXAoc3RyMSwgc3RyMiwgY291bnQpOyB9CisKKyAgICB0ZW1wbGF0ZTxib29s
IGVxdWFscyhjb25zdCBVQ2hhciogc3RyMSwgY29uc3QgVUNoYXIqIHN0cjIsIHNpemVfdCBjb3Vu
dCk+CisgICAgaW5saW5lIExvb2tBaGVhZFJlc3VsdCBsb29rQWhlYWRJbmxpbmUoY29uc3QgU3Ry
aW5nJiBzdHJpbmcpCisgICAgeworICAgICAgICBpZiAoIW1fcHVzaGVkQ2hhcjEgJiYgc3RyaW5n
Lmxlbmd0aCgpIDw9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2N1cnJlbnRTdHJpbmcubV9sZW5n
dGgpKSB7CisgICAgICAgICAgICBpZiAoZXF1YWxzKHN0cmluZy5jaGFyYWN0ZXJzKCksIG1fY3Vy
cmVudFN0cmluZy5tX2N1cnJlbnQsIHN0cmluZy5sZW5ndGgoKSkpCisgICAgICAgICAgICAgICAg
cmV0dXJuIERpZE1hdGNoOworICAgICAgICAgICAgcmV0dXJuIERpZE5vdE1hdGNoOworICAgICAg
ICB9CisgICAgICAgIHJldHVybiBsb29rQWhlYWRTbG93Q2FzZTxlcXVhbHM+KHN0cmluZyk7Cisg
ICAgfQorCisgICAgdGVtcGxhdGU8Ym9vbCBlcXVhbHMoY29uc3QgVUNoYXIqIHN0cjEsIGNvbnN0
IFVDaGFyKiBzdHIyLCBzaXplX3QgY291bnQpPgorICAgIExvb2tBaGVhZFJlc3VsdCBsb29rQWhl
YWRTbG93Q2FzZShjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIGlmIChzdHJp
bmcubGVuZ3RoKCkgPiBsZW5ndGgoKSkKKyAgICAgICAgICAgIHJldHVybiBOb3RFbm91Z2hDaGFy
YWN0ZXJzOworICAgICAgICB1bnNpZ25lZCBjb3VudCA9IHN0cmluZy5sZW5ndGgoKTsKKyAgICAg
ICAgVUNoYXIqIGNvbnN1bWVkQ2hhcmFjdGVycyA9IDA7CisgICAgICAgIFN0cmluZyBjb25zdW1l
ZFN0cmluZyA9IFN0cmluZzo6Y3JlYXRlVW5pbml0aWFsaXplZChjb3VudCwgY29uc3VtZWRDaGFy
YWN0ZXJzKTsKKyAgICAgICAgYWR2YW5jZShjb3VudCwgY29uc3VtZWRDaGFyYWN0ZXJzKTsKKyAg
ICAgICAgTG9va0FoZWFkUmVzdWx0IHJlc3VsdCA9IERpZE5vdE1hdGNoOworICAgICAgICBpZiAo
ZXF1YWxzKHN0cmluZy5jaGFyYWN0ZXJzKCksIGNvbnN1bWVkQ2hhcmFjdGVycywgY291bnQpKQor
ICAgICAgICAgICAgcmVzdWx0ID0gRGlkTWF0Y2g7CisgICAgICAgIHByZXBlbmQoU2VnbWVudGVk
U3RyaW5nKGNvbnN1bWVkU3RyaW5nKSk7CisgICAgICAgIHJldHVybiByZXN1bHQ7CisgICAgfQor
CiAgICAgVUNoYXIgbV9wdXNoZWRDaGFyMTsKICAgICBVQ2hhciBtX3B1c2hlZENoYXIyOwogICAg
IFNlZ21lbnRlZFN1YnN0cmluZyBtX2N1cnJlbnRTdHJpbmc7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>57198</attachid>
            <date>2010-05-26 23:30:39 -0700</date>
            <delta_ts>2010-05-26 23:54:15 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-39802-20100526233037.patch</filename>
            <type>text/plain</type>
            <size>5834</size>
            <attacher name="Adam Barth">abarth</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGM0MmVkNDA2MjUwYTcxNzBhNzQwZmRhNTU4NjY3Mjg4ZGZlOGUyMC4uOTM1MjYwMzYwOTY0OTEy
OWQ5MDQxMjA2OGNkMTk5Y2RkMjk0ZWYxNiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsNSArMSwyNyBAQAogMjAxMC0wNS0yNiAgQWRh
bSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgogCisgICAgICAgIFJldmlld2VkIGJ5IERhcmlu
IEFkbGVyLgorCisgICAgICAgIEltcGxlbWVudCBTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZFNs
b3dDYXNlCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0z
OTgwMgorCisgICAgICAgIFRoZSBzbG93IGNhc2UgaXMgbmVlZCBieSB0aGUgcmVzdW1lciB0ZXN0
IHN1aXRlLiAgU2FkbHksIHRoZSByZXN1bWVyCisgICAgICAgIHRlc3Qgc3VpdGUgaXMgcmVhbGx5
IHNsb3cgYW5kIHByb2R1Y2VzIGluZmluaXRlIGVycm9ycyAobWFueSBvZiB3aGljaAorICAgICAg
ICBhcmUgZmFsc2UgcG9zaXRpdmVzKS4gIEknbGwgbGFuZCBtb3JlIG9mIHRoZSByZXN1bWVyIHRl
c3Qgc3VpdGUgaW4gYQorICAgICAgICBmdXR1cmUgcGF0Y2guCisKKyAgICAgICAgKiBwbGF0Zm9y
bS90ZXh0L1NlZ21lbnRlZFN0cmluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRT
dHJpbmc6OmFkdmFuY2UpOgorICAgICAgICAqIHBsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5n
Lmg6CisgICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZCk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZElnbm9yaW5nQ2FzZSk6Cisg
ICAgICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OmVxdWFsc0xpdGVyYWxseSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6OmVxdWFsc0lnbm9yaW5nQ2FzZSk6CisgICAg
ICAgIChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZElubGluZSk6CisgICAgICAg
IChXZWJDb3JlOjpTZWdtZW50ZWRTdHJpbmc6Omxvb2tBaGVhZFNsb3dDYXNlKToKKworMjAxMC0w
NS0yNiAgQWRhbSBCYXJ0aCAgPGFiYXJ0aEB3ZWJraXQub3JnPgorCiAgICAgICAgIFVucmV2aWV3
ZWQsIHJvbGxpbmcgb3V0IHI2MDI2Mi4KICAgICAgICAgaHR0cDovL3RyYWMud2Via2l0Lm9yZy9j
aGFuZ2VzZXQvNjAyNjIKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTM5NzgzCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVk
U3RyaW5nLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCmlu
ZGV4IGYyNzYwZGVhZjkyNWYwZDhmMWY4Mzc2Nzg4ZjNjMjhiNWJjZGQzN2YuLmQ3NTAzMmY4YmEx
ZTQ0NDQ4Nzg2NTA4ODZlNjhmOTE3NzU4YmVmZjEgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9TZWdtZW50ZWRTdHJpbmcuY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9T
ZWdtZW50ZWRTdHJpbmcuY3BwCkBAIC0xNzksNiArMTc5LDE1IEBAIFN0cmluZyBTZWdtZW50ZWRT
dHJpbmc6OnRvU3RyaW5nKCkgY29uc3QKICAgICByZXR1cm4gcmVzdWx0OwogfQogCit2b2lkIFNl
Z21lbnRlZFN0cmluZzo6YWR2YW5jZSh1bnNpZ25lZCBjb3VudCwgVUNoYXIqIGNvbnN1bWVkQ2hh
cmFjdGVycykKK3sKKyAgICBBU1NFUlQoY291bnQgPD0gbGVuZ3RoKCkpOworICAgIGZvciAodW5z
aWduZWQgaSA9IDA7IGkgPCBjb3VudDsgKytpKSB7CisgICAgICAgIGNvbnN1bWVkQ2hhcmFjdGVy
c1tpXSA9ICpjdXJyZW50KCk7CisgICAgICAgIGFkdmFuY2UoKTsKKyAgICB9Cit9CisKIHZvaWQg
U2VnbWVudGVkU3RyaW5nOjphZHZhbmNlU2xvd0Nhc2UoKQogewogICAgIGlmIChtX3B1c2hlZENo
YXIxKSB7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5n
LmggYi9XZWJDb3JlL3BsYXRmb3JtL3RleHQvU2VnbWVudGVkU3RyaW5nLmgKaW5kZXggMjhiYmE0
MTVmOWYxMDlkYzZjMmQyZDlkOGI2ODZlMjY4N2Q1MzA1Yy4uMjFlYWUxNGQ0ZDc5ZTg1MWNjMDI2
OWRlMGYxYjlkZTI3N2YwOWU3ZSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Nl
Z21lbnRlZFN0cmluZy5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9TZWdtZW50ZWRTdHJp
bmcuaApAQCAtMTEyLDMxICsxMTIsOCBAQCBwdWJsaWM6CiAgICAgICAgIE5vdEVub3VnaENoYXJh
Y3RlcnMsCiAgICAgfTsKIAotICAgIC8vIFdBUk5JTkc6IFRoaXMgbWV0aG9kIGlzIGN1cnJlbnRs
eSB1c2VkIG9ubHkgYnkgdGhlIEhUTUw1IHBhcnNlciBhbmQgaXMgaW5jb21wbGV0ZS4KLSAgICBM
b29rQWhlYWRSZXN1bHQgbG9va0FoZWFkKGNvbnN0IFN0cmluZyYgc3RyaW5nKQotICAgIHsKLSAg
ICAgICAgaWYgKCFtX3B1c2hlZENoYXIxICYmIHN0cmluZy5sZW5ndGgoKSA8PSAodW5zaWduZWQp
IG1fY3VycmVudFN0cmluZy5tX2xlbmd0aCkgewotICAgICAgICAgICAgaWYgKG1lbWNtcChzdHJp
bmcuY2hhcmFjdGVycygpLCBtX2N1cnJlbnRTdHJpbmcubV9jdXJyZW50LCBzdHJpbmcubGVuZ3Ro
KCkgKiBzaXplb2YoVUNoYXIpKSkKLSAgICAgICAgICAgICAgICByZXR1cm4gRGlkTm90TWF0Y2g7
Ci0gICAgICAgICAgICByZXR1cm4gRGlkTWF0Y2g7Ci0gICAgICAgIH0KLSAgICAgICAgLy8gV2Ug
aGF2ZW4ndCBpbXBsZW1lbnRlZCB0aGUgc2xvdyBjYXNlIHlldC4KLSAgICAgICAgQVNTRVJUX05P
VF9SRUFDSEVEKCk7Ci0gICAgICAgIHJldHVybiBEaWROb3RNYXRjaDsKLSAgICB9Ci0KLSAgICAv
LyBXQVJOSU5HOiBUaGlzIG1ldGhvZCBpcyBjdXJyZW50bHkgdXNlZCBvbmx5IGJ5IHRoZSBIVE1M
NSBwYXJzZXIgYW5kIGlzIGluY29tcGxldGUuCi0gICAgTG9va0FoZWFkUmVzdWx0IGxvb2tBaGVh
ZElnbm9yaW5nQ2FzZShjb25zdCBTdHJpbmcmIHN0cmluZykKLSAgICB7Ci0gICAgICAgIGlmICgh
bV9wdXNoZWRDaGFyMSAmJiBzdHJpbmcubGVuZ3RoKCkgPD0gKHVuc2lnbmVkKSBtX2N1cnJlbnRT
dHJpbmcubV9sZW5ndGgpIHsKLSAgICAgICAgICAgIGlmIChXVEY6OlVuaWNvZGU6OnVtZW1jYXNl
Y21wKHN0cmluZy5jaGFyYWN0ZXJzKCksIG1fY3VycmVudFN0cmluZy5tX2N1cnJlbnQsIHN0cmlu
Zy5sZW5ndGgoKSkpCi0gICAgICAgICAgICAgICAgcmV0dXJuIERpZE5vdE1hdGNoOwotICAgICAg
ICAgICAgcmV0dXJuIERpZE1hdGNoOwotICAgICAgICB9Ci0gICAgICAgIC8vIFdlIGhhdmVuJ3Qg
aW1wbGVtZW50ZWQgdGhlIHNsb3cgY2FzZSB5ZXQuCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hF
RCgpOwotICAgICAgICByZXR1cm4gRGlkTm90TWF0Y2g7Ci0gICAgfQorICAgIExvb2tBaGVhZFJl
c3VsdCBsb29rQWhlYWQoY29uc3QgU3RyaW5nJiBzdHJpbmcpIHsgcmV0dXJuIGxvb2tBaGVhZElu
bGluZTxTZWdtZW50ZWRTdHJpbmc6OmVxdWFsc0xpdGVyYWxseT4oc3RyaW5nKTsgfQorICAgIExv
b2tBaGVhZFJlc3VsdCBsb29rQWhlYWRJZ25vcmluZ0Nhc2UoY29uc3QgU3RyaW5nJiBzdHJpbmcp
IHsgcmV0dXJuIGxvb2tBaGVhZElubGluZTxTZWdtZW50ZWRTdHJpbmc6OmVxdWFsc0lnbm9yaW5n
Q2FzZT4oc3RyaW5nKTsgfQogCiAgICAgdm9pZCBhZHZhbmNlKCkKICAgICB7CkBAIC0xOTMsOSAr
MTcwLDEzIEBAIHB1YmxpYzoKICAgICAgICAgfQogICAgICAgICBhZHZhbmNlU2xvd0Nhc2UobGlu
ZU51bWJlcik7CiAgICAgfQotICAgIAorCisgICAgLy8gV3JpdGVzIHRoZSBjb25zdW1lZCBjaGFy
YWN0ZXJzIGludG8gY29uc3VtZWRDaGFyYWN0ZXJzLCB3aGljaCBtdXN0CisgICAgLy8gaGF2ZSBz
cGFjZSBmb3IgYXQgbGVhc3QgfGNvdW50fCBjaGFyYWN0ZXJzLgorICAgIHZvaWQgYWR2YW5jZSh1
bnNpZ25lZCBjb3VudCwgVUNoYXIqIGNvbnN1bWVkQ2hhcmFjdGVycyk7CisKICAgICBib29sIGVz
Y2FwZWQoKSBjb25zdCB7IHJldHVybiBtX3B1c2hlZENoYXIxOyB9Ci0gICAgCisKICAgICBTdHJp
bmcgdG9TdHJpbmcoKSBjb25zdDsKIAogICAgIGNvbnN0IFVDaGFyJiBvcGVyYXRvciooKSBjb25z
dCB7IHJldHVybiAqY3VycmVudCgpOyB9CkBAIC0yMTAsNiArMTkxLDM2IEBAIHByaXZhdGU6CiAg
ICAgdm9pZCBhZHZhbmNlU3Vic3RyaW5nKCk7CiAgICAgY29uc3QgVUNoYXIqIGN1cnJlbnQoKSBj
b25zdCB7IHJldHVybiBtX2N1cnJlbnRDaGFyOyB9CiAKKyAgICBzdGF0aWMgYm9vbCBlcXVhbHNM
aXRlcmFsbHkoY29uc3QgVUNoYXIqIHN0cjEsIGNvbnN0IFVDaGFyKiBzdHIyLCBzaXplX3QgY291
bnQpIHsgcmV0dXJuICFtZW1jbXAoc3RyMSwgc3RyMiwgY291bnQgKiBzaXplb2YoVUNoYXIpKTsg
fQorICAgIHN0YXRpYyBib29sIGVxdWFsc0lnbm9yaW5nQ2FzZShjb25zdCBVQ2hhciogc3RyMSwg
Y29uc3QgVUNoYXIqIHN0cjIsIHNpemVfdCBjb3VudCkgeyByZXR1cm4gIVdURjo6VW5pY29kZTo6
dW1lbWNhc2VjbXAoc3RyMSwgc3RyMiwgY291bnQpOyB9CisKKyAgICB0ZW1wbGF0ZTxib29sIGVx
dWFscyhjb25zdCBVQ2hhciogc3RyMSwgY29uc3QgVUNoYXIqIHN0cjIsIHNpemVfdCBjb3VudCk+
CisgICAgaW5saW5lIExvb2tBaGVhZFJlc3VsdCBsb29rQWhlYWRJbmxpbmUoY29uc3QgU3RyaW5n
JiBzdHJpbmcpCisgICAgeworICAgICAgICBpZiAoIW1fcHVzaGVkQ2hhcjEgJiYgc3RyaW5nLmxl
bmd0aCgpIDw9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihtX2N1cnJlbnRTdHJpbmcubV9sZW5ndGgp
KSB7CisgICAgICAgICAgICBpZiAoZXF1YWxzKHN0cmluZy5jaGFyYWN0ZXJzKCksIG1fY3VycmVu
dFN0cmluZy5tX2N1cnJlbnQsIHN0cmluZy5sZW5ndGgoKSkpCisgICAgICAgICAgICAgICAgcmV0
dXJuIERpZE1hdGNoOworICAgICAgICAgICAgcmV0dXJuIERpZE5vdE1hdGNoOworICAgICAgICB9
CisgICAgICAgIHJldHVybiBsb29rQWhlYWRTbG93Q2FzZTxlcXVhbHM+KHN0cmluZyk7CisgICAg
fQorCisgICAgdGVtcGxhdGU8Ym9vbCBlcXVhbHMoY29uc3QgVUNoYXIqIHN0cjEsIGNvbnN0IFVD
aGFyKiBzdHIyLCBzaXplX3QgY291bnQpPgorICAgIExvb2tBaGVhZFJlc3VsdCBsb29rQWhlYWRT
bG93Q2FzZShjb25zdCBTdHJpbmcmIHN0cmluZykKKyAgICB7CisgICAgICAgIHVuc2lnbmVkIGNv
dW50ID0gc3RyaW5nLmxlbmd0aCgpOworICAgICAgICBpZiAoY291bnQgPiBsZW5ndGgoKSkKKyAg
ICAgICAgICAgIHJldHVybiBOb3RFbm91Z2hDaGFyYWN0ZXJzOworICAgICAgICBVQ2hhciogY29u
c3VtZWRDaGFyYWN0ZXJzOworICAgICAgICBTdHJpbmcgY29uc3VtZWRTdHJpbmcgPSBTdHJpbmc6
OmNyZWF0ZVVuaW5pdGlhbGl6ZWQoY291bnQsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CisgICAgICAg
IGFkdmFuY2UoY291bnQsIGNvbnN1bWVkQ2hhcmFjdGVycyk7CisgICAgICAgIExvb2tBaGVhZFJl
c3VsdCByZXN1bHQgPSBEaWROb3RNYXRjaDsKKyAgICAgICAgaWYgKGVxdWFscyhzdHJpbmcuY2hh
cmFjdGVycygpLCBjb25zdW1lZENoYXJhY3RlcnMsIGNvdW50KSkKKyAgICAgICAgICAgIHJlc3Vs
dCA9IERpZE1hdGNoOworICAgICAgICBwcmVwZW5kKFNlZ21lbnRlZFN0cmluZyhjb25zdW1lZFN0
cmluZykpOworICAgICAgICByZXR1cm4gcmVzdWx0OworICAgIH0KKwogICAgIFVDaGFyIG1fcHVz
aGVkQ2hhcjE7CiAgICAgVUNoYXIgbV9wdXNoZWRDaGFyMjsKICAgICBTZWdtZW50ZWRTdWJzdHJp
bmcgbV9jdXJyZW50U3RyaW5nOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>