<?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>38158</bug_id>
          
          <creation_ts>2010-04-26 17:52:16 -0700</creation_ts>
          <short_desc>Fix gcc compiler warnings in chromium platform graphics code</short_desc>
          <delta_ts>2010-05-06 18:03:38 -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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="James Robinson">jamesr</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>abarth</cc>
    
    <cc>agl</cc>
    
    <cc>eric</cc>
    
    <cc>evan</cc>
    
    <cc>jamesr</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>217394</commentid>
    <comment_count>0</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-26 17:52:16 -0700</bug_when>
    <thetext>Fix gcc compiler warnings in chromium platform graphics code</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217404</commentid>
    <comment_count>1</comment_count>
      <attachid>54360</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-26 18:06:03 -0700</bug_when>
    <thetext>Created attachment 54360
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217405</commentid>
    <comment_count>2</comment_count>
      <attachid>54361</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-26 18:07:42 -0700</bug_when>
    <thetext>Created attachment 54361
patch that will pass checkstyle</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217406</commentid>
    <comment_count>3</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-26 18:08:21 -0700</bug_when>
    <thetext>The warnings are from gcc 4.4.1-4ubuntu9, which is what is currently shipping on Karmic, with -Wall -Werror.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217968</commentid>
    <comment_count>4</comment_count>
      <attachid>54361</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-27 14:52:27 -0700</bug_when>
    <thetext>Comment on attachment 54361
patch that will pass checkstyle

Clearing flags on attachment: 54361

Committed r58340: &lt;http://trac.webkit.org/changeset/58340&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217969</commentid>
    <comment_count>5</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-27 14:52:32 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>217970</commentid>
    <comment_count>6</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-04-27 14:52:54 -0700</bug_when>
    <thetext>Thanks for the review!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220407</commentid>
    <comment_count>7</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-05-03 18:19:08 -0700</bug_when>
    <thetext>Reverted: http://trac.webkit.org/changeset/58404</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220881</commentid>
    <comment_count>8</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-05-04 17:02:11 -0700</bug_when>
    <thetext>This was reverted because this snippet:
  if (x &lt; walker.width())
in FontLinux.cpp would evaluate to false if &apos;x&apos; was less than &apos;walker.width()&apos; or if &apos;x&apos; was negative, because walker.width() returned an unsigned value.  C&apos;s type promotion rules would promote a negative &apos;x&apos; to a large positive integer.  I&apos;ve changed walker.width() to return a signed value and changed this statement to:
  if (x &gt;= 0 &amp;&amp; x &lt; walker.width())</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>220882</commentid>
    <comment_count>9</comment_count>
      <attachid>55074</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-05-04 17:03:04 -0700</bug_when>
    <thetext>Created attachment 55074
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>221502</commentid>
    <comment_count>10</comment_count>
      <attachid>55074</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-05 22:15:58 -0700</bug_when>
    <thetext>Comment on attachment 55074
Patch

Again, removing the unused locals, and replacing NULL/0 and fixing parens (all completely uncontrovercial, mindless changes) would be easier to do first.

The signed/unsigned stuff requires some thinking to review correctly. :(</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222015</commentid>
    <comment_count>11</comment_count>
      <attachid>55311</attachid>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-05-06 15:40:10 -0700</bug_when>
    <thetext>Created attachment 55311
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222020</commentid>
    <comment_count>12</comment_count>
      <attachid>55311</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2010-05-06 15:45:17 -0700</bug_when>
    <thetext>Comment on attachment 55311
Patch

 +      if (!((format == GraphicsContext3D::RGBA &amp;&amp; type == GraphicsContext3D::UNSIGNED_BYTE) || (format == m_implementationColorReadFormat &amp;&amp; type == m_implementationColorReadType))) {
As far as I can tell this is correct.  Certainly reads nicer.  I would probably have even used local variables if I had written this originally. :)  GCC warnings FTW.

WebCore/platform/graphics/chromium/FontLinux.cpp:608
 +          if (x &gt;= 0 &amp;&amp; x &lt; walker.width()) {
I&apos;m curious how, if at all, this changes behavior.  Is this testable?

Please add at least a ChangeLog comment explaining why the x &gt;= does not change behavior and does not require testing.  Otherwise this looks good.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222036</commentid>
    <comment_count>13</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-05-06 16:18:59 -0700</bug_when>
    <thetext>Committed r58916: &lt;http://trac.webkit.org/changeset/58916&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222037</commentid>
    <comment_count>14</comment_count>
    <who name="James Robinson">jamesr</who>
    <bug_when>2010-05-06 16:19:33 -0700</bug_when>
    <thetext>Thanks for the review.  Landed with an explanation of the x &gt;= 0 change in the ChangeLog and a citation of the relevant test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>222096</commentid>
    <comment_count>15</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-05-06 18:03:38 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/58916 might have broken Qt Windows 32-bit Release
The following changes are on the blame list:
http://trac.webkit.org/changeset/58912
http://trac.webkit.org/changeset/58913
http://trac.webkit.org/changeset/58914
http://trac.webkit.org/changeset/58915
http://trac.webkit.org/changeset/58916
http://trac.webkit.org/changeset/58917
http://trac.webkit.org/changeset/58918</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54360</attachid>
            <date>2010-04-26 18:06:03 -0700</date>
            <delta_ts>2010-04-26 18:07:39 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38158-20100426180520.patch</filename>
            <type>text/plain</type>
            <size>10350</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzBkYTk4ZWI0MGYwY2ZlM2EzNWMxMGQyOGMzOGRiNzMxZjM3ZjlkYy4uOTM0YmYyNDNhOTA4NGU1
NGQ4NDcxNGExNjc0ODIxNjNmMWY4NjVlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0wNC0yNiAgSmFt
ZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB3YXJuaW5ncyBlbWl0dGVkIGJ5IGdjYyA0
LjQuMSBvbiBsaW51eCBpbiBjaHJvbWl1bS1zcGVjaWZpYyBwbGF0Zm9ybSBncmFwaGljcyBmaWxl
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MTU4
CisKKyAgICAgICAgTW9zdCBvZiB0aGUgaXNzdWVzIGFyZSBzaWduZWQvdW5zaWduZWQgbWlzbWF0
Y2hlcywgYnV0IHRoZXJlIGFyZSBhIGZldyB1bnVzdWVkIHZhcmlhYmxlcworICAgICAgICBhbmQg
ZnVuY3Rpb25zIG1peGVkIGluLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udExpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdFRleHRSZW5kZXJNb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW5XYWxrZXI6OmdldFRleHRSdW4pOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dFJ1bldhbGtlcjo6Z2V0Tm9ybWFsaXplZFRleHRSdW4pOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dFJ1bldhbGtlcjo6c2V0R2x5cGhYUG9zaXRpb25zKToKKyAgICAgICAg
KFdlYkNvcmU6OmdseXBoSW5kZXhGb3JYUG9zaXRpb25JblNjcmlwdFJ1bik6CisgICAgICAgIChX
ZWJDb3JlOjpGb250OjpvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnQ6OnNlbGVjdGlvblJlY3RGb3JDb21wbGV4VGV4dCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnNldHVwUGFpbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hhcmZidXp6U2tpYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpnZXRPdXRsaW5lUG9pbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0Nvb3JkaW5h
dGVTa2lhU2FmZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVJlY3QpOgorCiAyMDEwLTA0LTI2
ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZvbnRMaW51eC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ZvbnRMaW51eC5jcHAKaW5kZXggZmE1NDljZDA5YTU5YTEwMTcwYzFhNmUxYmZhNzkzODgwZTAx
NDE3Zi4uM2IzMmY0Njg1NjM4MWM3ODc3ZTQzYWQwZWQ1YjMwMzk5ZmJhYzRkZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGludXguY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcApAQCAtNjQs
NyArNjQsNyBAQCBzdGF0aWMgYm9vbCBpc0NhbnZhc011bHRpTGF5ZXJlZChTa0NhbnZhcyogY2Fu
dmFzKQogICAgIHJldHVybiAhbGF5ZXJJdGVyYXRvci5kb25lKCk7CiB9CiAKLXN0YXRpYyBib29s
IGFkanVzdFRleHRSZW5kZXJNb2RlKFNrUGFpbnQqIHBhaW50LCBib29sIGlzQ2FudmFzTXVsdGlM
YXllcmVkKQorc3RhdGljIHZvaWQgYWRqdXN0VGV4dFJlbmRlck1vZGUoU2tQYWludCogcGFpbnQs
IGJvb2wgaXNDYW52YXNNdWx0aUxheWVyZWQpCiB7CiAgICAgLy8gT3VyIGxheWVycyBvbmx5IGhh
dmUgYSBzaW5nbGUgYWxwaGEgY2hhbm5lbC4gVGhpcyBtZWFucyB0aGF0IHN1YnBpeGVsCiAgICAg
Ly8gcmVuZGVyZWQgdGV4dCBjYW5ub3QgYmUgY29tcG9zaXRpZWQgY29ycmVjdGx5IHdoZW4gdGhl
IGxheWVyIGlzCkBAIC0zMjQsNyArMzI0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gSGFyZmJ1
enogd2lsbCBkbyB0aGUgc2FtZSB0aGluZyBmb3IgdXMgdXNpbmcgdGhlIEdTVUIgdGFibGUuCiAg
ICAgICAgIC8vIDIpIENvbnZlcnQgc3BhY2luZyBjaGFyYWN0ZXJzIGludG8gcGxhaW4gc3BhY2Vz
LCBhcyBzb21lIGZvbnRzIHdpbGwgcHJvdmlkZSBnbHlwaHMKICAgICAgICAgLy8gZm9yIGNoYXJh
Y3RlcnMgbGlrZSAnXG4nIG90aGVyd2lzZS4KLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG9yaWdpbmFsUnVuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBvcmlnaW5hbFJ1bi5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAgICAgICBVQ2hhciBjaCA9
IG9yaWdpbmFsUnVuW2ldOwogICAgICAgICAgICAgVUJsb2NrQ29kZSBibG9jayA9IDo6dWJsb2Nr
X2dldENvZGUoY2gpOwogICAgICAgICAgICAgaWYgKGJsb2NrID09IFVCTE9DS19DT01CSU5JTkdf
RElBQ1JJVElDQUxfTUFSS1MgfHwgKEZvbnQ6OnRyZWF0QXNTcGFjZShjaCkgJiYgY2ggIT0gJyAn
KSkgewpAQCAtMzQ2LDcgKzM0Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIG5vcm1hbGl6ZWRTdHJp
bmcuZXh0cmFjdChtX25vcm1hbGl6ZWRCdWZmZXIuZ2V0KCksIG5vcm1hbGl6ZWRTdHJpbmcubGVu
Z3RoKCkgKyAxLCBlcnJvcik7CiAgICAgICAgIEFTU0VSVChVX1NVQ0NFU1MoZXJyb3IpKTsKIAot
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbm9ybWFsaXplZFN0cmluZy5sZW5ndGgo
KTsgKytpKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbm9ybWFsaXplZFN0cmluZy5s
ZW5ndGgoKTsgKytpKSB7CiAgICAgICAgICAgICBpZiAoRm9udDo6dHJlYXRBc1NwYWNlKG1fbm9y
bWFsaXplZEJ1ZmZlcltpXSkpCiAgICAgICAgICAgICAgICAgbV9ub3JtYWxpemVkQnVmZmVyW2ld
ID0gJyAnOwogICAgICAgICB9CkBAIC00MzksNyArNDM5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHNldEdseXBoWFBvc2l0aW9ucyhib29sIGlzUlRMKQogICAgIHsKICAgICAgICAgZG91YmxlIHBv
c2l0aW9uID0gMDsKLSAgICAgICAgZm9yIChpbnQgaXRlciA9IDA7IGl0ZXIgPCBtX2l0ZW0ubnVt
X2dseXBoczsgKytpdGVyKSB7CisgICAgICAgIGZvciAoaW50IGl0ZXIgPSAwOyBpdGVyIDwgc3Rh
dGljX2Nhc3Q8aW50PihtX2l0ZW0ubnVtX2dseXBocyk7ICsraXRlcikgewogICAgICAgICAgICAg
Ly8gR2x5cGhzIGFyZSBzdG9yZWQgaW4gbG9naWNhbCBvcmRlciwgYnV0IGZvciBsYXlvdXQgcHVy
cG9zZXMgd2UgYWx3YXlzIGdvIGxlZnQgdG8gcmlnaHQuCiAgICAgICAgICAgICBpbnQgaSA9IGlz
UlRMID8gbV9pdGVtLm51bV9nbHlwaHMgLSBpdGVyIC0gMSA6IGl0ZXI7CiAKQEAgLTUzOCw3ICs1
MzgsNyBAQCBzdGF0aWMgaW50IGdseXBoSW5kZXhGb3JYUG9zaXRpb25JblNjcmlwdFJ1bihjb25z
dCBUZXh0UnVuV2Fsa2VyJiB3YWxrZXIsIGludCB4KQogICAgICAgICAgICAgeCAtPSB0cnVuY2F0
ZUZpeGVkUG9pbnRUb0ludGVnZXIoYWR2YW5jZXNbZ2x5cGhJbmRleF0pOwogICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgZm9yIChnbHlwaEluZGV4ID0gMDsgZ2x5cGhJbmRleCA8IHdh
bGtlci5sZW5ndGgoKTsgKytnbHlwaEluZGV4KSB7CisgICAgICAgIGZvciAoZ2x5cGhJbmRleCA9
IDA7IGdseXBoSW5kZXggPCBzdGF0aWNfY2FzdDxpbnQ+KHdhbGtlci5sZW5ndGgoKSk7ICsrZ2x5
cGhJbmRleCkgewogICAgICAgICAgICAgaWYgKHggPCB0cnVuY2F0ZUZpeGVkUG9pbnRUb0ludGVn
ZXIoYWR2YW5jZXNbZ2x5cGhJbmRleF0pKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgeCAtPSB0cnVuY2F0ZUZpeGVkUG9pbnRUb0ludGVnZXIoYWR2YW5jZXNbZ2x5cGhJbmRl
eF0pOwpAQCAtNTkwLDcgKzU5MCw3IEBAIGludCBGb250OjpvZmZzZXRGb3JQb3NpdGlvbkZvckNv
bXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IHgsCiAgICAgICAgIGlmICh3YWxrZXIu
cnRsKCkpCiAgICAgICAgICAgICBiYXNlUG9zaXRpb24gLT0gd2Fsa2VyLm51bUNvZGVQb2ludHMo
KTsKIAotICAgICAgICBpZiAoeCA8IHdhbGtlci53aWR0aCgpKSB7CisgICAgICAgIGlmICh4IDwg
c3RhdGljX2Nhc3Q8aW50Pih3YWxrZXIud2lkdGgoKSkpIHsKICAgICAgICAgICAgIC8vIFRoZSB4
IHZhbHVlIGluIHF1ZXN0aW9uIGlzIHdpdGhpbiB0aGlzIHNjcmlwdCBydW4uIFdlIGNvbnNpZGVy
CiAgICAgICAgICAgICAvLyBlYWNoIGdseXBoIGluIHByZXNlbnRhdGlvbiBvcmRlciBhbmQgc3Rv
cCB3aGVuIHdlIGZpbmQgdGhlIG9uZQogICAgICAgICAgICAgLy8gY292ZXJpbmcgdGhpcyBwb3Np
dGlvbi4KQEAgLTY1MCw3ICs2NTAsNyBAQCBGbG9hdFJlY3QgRm9udDo6c2VsZWN0aW9uUmVjdEZv
ckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICAgICAgaWYgKHdhbGtlci5ydGwo
KSkKICAgICAgICAgICAgIGJhc2UgLT0gd2Fsa2VyLndpZHRoKCk7CiAKLSAgICAgICAgaWYgKGZy
b21YID09IC0xICYmIGZyb20gPCB3YWxrZXIubnVtQ29kZVBvaW50cygpKSB7CisgICAgICAgIGlm
IChmcm9tWCA9PSAtMSAmJiBmcm9tIDwgc3RhdGljX2Nhc3Q8aW50Pih3YWxrZXIubnVtQ29kZVBv
aW50cygpKSkgewogICAgICAgICAgICAgLy8gfGZyb218IGlzIHdpdGhpbiB0aGlzIHNjcmlwdCBy
dW4uIFNvIHdlIGluZGV4IHRoZSBjbHVzdGVycyBsb2cgdG8KICAgICAgICAgICAgIC8vIGZpbmQg
d2hpY2ggZ2x5cGggdGhpcyBjb2RlLXBvaW50IGNvbnRyaWJ1dGVkIHRvIGFuZCBmaW5kIGl0cyB4
CiAgICAgICAgICAgICAvLyBwb3NpdGlvbi4KQEAgLTY2MCw3ICs2NjAsNyBAQCBGbG9hdFJlY3Qg
Rm9udDo6c2VsZWN0aW9uUmVjdEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwKICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICBmcm9tIC09IHdhbGtlci5udW1Db2RlUG9pbnRzKCk7
CiAKLSAgICAgICAgaWYgKHRvWCA9PSAtMSAmJiB0byA8IHdhbGtlci5udW1Db2RlUG9pbnRzKCkp
IHsKKyAgICAgICAgaWYgKHRvWCA9PSAtMSAmJiB0byA8IHN0YXRpY19jYXN0PGludD4od2Fsa2Vy
Lm51bUNvZGVQb2ludHMoKSkpIHsKICAgICAgICAgICAgIGludCBnbHlwaCA9IHdhbGtlci5sb2dD
bHVzdGVycygpW3RvXTsKICAgICAgICAgICAgIHRvWCA9IGJhc2UgKyB3YWxrZXIueFBvc2l0aW9u
cygpW2dseXBoXTsKICAgICAgICAgICAgIHRvQWR2YW5jZSA9IHdhbGtlci5hZHZhbmNlcygpW2ds
eXBoXTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9u
dFBsYXRmb3JtRGF0YUxpbnV4LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmNwcAppbmRleCAyNDc1ZTY1OTQ2ZjE0OTBlNjFhYzIy
MmQwYTY4ODNlNGQ3NTBlNmY5Li43YjIyYmFkZmNjYTQ4NWUwNzY3NWJiNzBhMDdiY2Y1YzNhNWY5
ZTBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQ
bGF0Zm9ybURhdGFMaW51eC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250UGxhdGZvcm1EYXRhTGludXguY3BwCkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBG
b250UGxhdGZvcm1EYXRhOjpzZXR1cFBhaW50KFNrUGFpbnQqIHBhaW50KSBjb25zdAogICAgIHBh
aW50LT5zZXRGYWtlQm9sZFRleHQobV9mYWtlQm9sZCk7CiAgICAgcGFpbnQtPnNldFRleHRTa2V3
WChtX2Zha2VJdGFsaWMgPyAtU0tfU2NhbGFyMSAvIDQgOiAwKTsKIAotICAgIGlmIChtX3N0eWxl
LnVzZUFudGlBbGlhcyA9PSAxIHx8IG1fc3R5bGUudXNlQW50aUFsaWFzID09IEZvbnRSZW5kZXJT
dHlsZTo6Tm9QcmVmZXJlbmNlICYmIGlzU2tpYUFudGlBbGlhcykKKyAgICBpZiAobV9zdHlsZS51
c2VBbnRpQWxpYXMgPT0gMSB8fCAobV9zdHlsZS51c2VBbnRpQWxpYXMgPT0gRm9udFJlbmRlclN0
eWxlOjpOb1ByZWZlcmVuY2UgJiYgaXNTa2lhQW50aUFsaWFzKSkKICAgICAgICAgcGFpbnQtPnNl
dExDRFJlbmRlclRleHQobV9zdHlsZS51c2VTdWJwaXhlbCA9PSBGb250UmVuZGVyU3R5bGU6Ok5v
UHJlZmVyZW5jZSA/IGlzU2tpYVN1YnBpeGVsR2x5cGhzIDogbV9zdHlsZS51c2VTdWJwaXhlbCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGFy
ZmJ1enpTa2lhLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGFyZmJ1
enpTa2lhLmNwcAppbmRleCBiZTNiMGQwODcyYjFhZWFlNjdiNTliY2RkMTQ0ODM2YWYwNDA0N2E0
Li42YWU1MWQ0N2UzYTQ0YmRjYTU4ODRkYWFjOGM2NTE4Y2U1OWIxNzY1IDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hhcmZidXp6U2tpYS5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IYXJmYnV6elNraWEuY3BwCkBAIC0x
MzksNyArMTM5LDcgQEAgc3RhdGljIEhCX0Vycm9yIGdldE91dGxpbmVQb2ludChIQl9Gb250IGhi
Rm9udCwgSEJfR2x5cGggZ2x5cGgsIGludCBmbGFncywgaGJfdWkKICAgICB1aW50MTZfdCBnbHlw
aDE2ID0gZ2x5cGg7CiAgICAgU2tQYXRoIHBhdGg7CiAgICAgcGFpbnQuZ2V0VGV4dFBhdGgoJmds
eXBoMTYsIHNpemVvZihnbHlwaDE2KSwgMCwgMCwgJnBhdGgpOwotICAgIGludCBudW1Qb2ludHMg
PSBwYXRoLmdldFBvaW50cyhOVUxMLCAwKTsKKyAgICB1bnNpZ25lZCBudW1Qb2ludHMgPSBwYXRo
LmdldFBvaW50cyhOVUxMLCAwKTsKICAgICBpZiAocG9pbnQgPj0gbnVtUG9pbnRzKQogICAgICAg
ICByZXR1cm4gSEJfRXJyX0ludmFsaWRfU3ViVGFibGU7CiAgICAgU2tQb2ludCogcG9pbnRzID0g
cmVpbnRlcnByZXRfY2FzdDxTa1BvaW50Kj4oZmFzdE1hbGxvYyhzaXplb2YoU2tQb2ludCkgKiAo
cG9pbnQgKyAxKSkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lh
L0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcAppbmRleCBjYzRjYTJlZjgxMjc1NDE1ZTUzOTNl
ZjQ5NWExMDU5MmE4M2MxYWUwLi5lNzZlZDdiYWU0YmExNTY1NTAzYWRkMjhkNDkwMDg5MzQ4MTVm
OGRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3ND
b250ZXh0M0RTa2lhLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3Jh
cGhpY3NDb250ZXh0M0RTa2lhLmNwcApAQCAtNTUsMTAgKzU1LDkgQEAgYm9vbCBHcmFwaGljc0Nv
bnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYWdlKiBpbWFnZSwKICAgICAgICAgcmV0dXJuIGZhbHNl
OwogICAgIFNrQml0bWFwJiBza2lhSW1hZ2VSZWYgPSAqc2tpYUltYWdlOwogICAgIFNrQXV0b0xv
Y2tQaXhlbHMgbG9jayhza2lhSW1hZ2VSZWYpOwotICAgIGludCB3aWR0aCA9IHNraWFJbWFnZS0+
d2lkdGgoKTsKICAgICBpbnQgaGVpZ2h0ID0gc2tpYUltYWdlLT5oZWlnaHQoKTsKICAgICBpbnQg
cm93Qnl0ZXMgPSBza2lhSW1hZ2UtPnJvd0J5dGVzKCk7Ci0gICAgQVNTRVJUKHJvd0J5dGVzID09
IHdpZHRoICogNCk7CisgICAgQVNTRVJUKHJvd0J5dGVzID09IHNraWFJbWFnZS0+d2lkdGgoKSAq
IDQpOwogICAgIHVpbnQ4X3QqIHBpeGVscyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KHNr
aWFJbWFnZS0+Z2V0UGl4ZWxzKCkpOwogICAgIG91dHB1dFZlY3Rvci5yZXNpemUocm93Qnl0ZXMg
KiBoZWlnaHQpOwogICAgIGludCBzaXplID0gcm93Qnl0ZXMgKiBoZWlnaHQ7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAg
Yi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAK
aW5kZXggODk4NjY4NTIwMDlmNmM5MzkyOTRhMWExOWVlNTgyZWExYjNiZWNlYS4uZTE2YjM3MzBj
ZGIzMWJjMjdiZWMxNzAxNjgzNDA2MmU0OTVkNjBiYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCisrKyBiL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcApAQCAtOTEsOSAr
OTEsOSBAQCBpbmxpbmUgZmxvYXQgc3F1YXJlKGZsb2F0IG4pCiAvLyBidWdzLiAgTGVhdmluZyB0
aGUgY29kZSBpbiBmb3Igbm93LCBzbyB3ZSBjYW4gcmV2ZXJ0IGVhc2lseSBpZiBuZWNlc3Nhcnku
CiAvLyAjZGVmaW5lIEVOU1VSRV9WQUxVRV9TQUZFVFlfRk9SX1NLSUEKIAorI2lmZGVmIEVOU1VS
RV9WQUxVRV9TQUZFVFlfRk9SX1NLSUEKIHN0YXRpYyBib29sIGlzQ29vcmRpbmF0ZVNraWFTYWZl
KGZsb2F0IGNvb3JkKQogewotI2lmZGVmIEVOU1VSRV9WQUxVRV9TQUZFVFlfRk9SX1NLSUEKICAg
ICAvLyBGaXJzdCBjaGVjayBmb3IgdmFsaWQgZmxvYXRzLgogI2lmIGRlZmluZWQoX01TQ19WRVIp
CiAgICAgaWYgKCFfZmluaXRlKGNvb3JkKSkKQEAgLTExMCwxMCArMTEwLDggQEAgc3RhdGljIGJv
b2wgaXNDb29yZGluYXRlU2tpYVNhZmUoZmxvYXQgY29vcmQpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgog
fQorI2VuZGlmCiAKIHN0YXRpYyBib29sIGlzUG9pbnRTa2lhU2FmZShjb25zdCBTa01hdHJpeCYg
dHJhbnNmb3JtLCBjb25zdCBTa1BvaW50JiBwdCkKIHsKQEAgLTczNCw4ICs3MzIsNiBAQCB2b2lk
IEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgICAg
ICBDbGlwUmVjdFRvQ2FudmFzKCpwbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCksIHIsICZyKTsK
ICAgICB9CiAKLSAgICBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUgPSBtX2NvbW1v
bi0+c3RhdGU7Ci0KICAgICBTa1BhaW50IHBhaW50OwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5z
ZXR1cFBhaW50Rm9yRmlsbGluZygmcGFpbnQpOwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5jYW52
YXMoKS0+ZHJhd1JlY3QociwgcGFpbnQpOwpAQCAtMTEyMiwxMSArMTExOCw4IEBAIHZvaWQgR3Jh
cGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKCkKICAgICBpZiAoIWlzUGF0aFNraWFTYWZlKGdldENU
TSgpLCBwYXRoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29uc3QgR3JhcGhpY3NDb250ZXh0
U3RhdGUmIHN0YXRlID0gbV9jb21tb24tPnN0YXRlOwotCiAgICAgU2tQYWludCBwYWludDsKICAg
ICBwbGF0Zm9ybUNvbnRleHQoKS0+c2V0dXBQYWludEZvclN0cm9raW5nKCZwYWludCwgMCwgMCk7
Ci0KICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCktPmRyYXdQYXRoKHBhdGgsIHBhaW50
KTsKIH0KIApAQCAtMTEzOCwxMiArMTEzMSw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJv
a2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgbGluZVdpZHRoKQogICAgIGlmICgh
aXNSZWN0U2tpYVNhZmUoZ2V0Q1RNKCksIHJlY3QpKQogICAgICAgICByZXR1cm47CiAKLSAgICBj
b25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUgPSBtX2NvbW1vbi0+c3RhdGU7Ci0KICAg
ICBTa1BhaW50IHBhaW50OwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yU3Ry
b2tpbmcoJnBhaW50LCAwLCAwKTsKICAgICBwYWludC5zZXRTdHJva2VXaWR0aChXZWJDb3JlRmxv
YXRUb1NrU2NhbGFyKGxpbmVXaWR0aCkpOwotCiAgICAgcGxhdGZvcm1Db250ZXh0KCktPmNhbnZh
cygpLT5kcmF3UmVjdChyZWN0LCBwYWludCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>54361</attachid>
            <date>2010-04-26 18:07:42 -0700</date>
            <delta_ts>2010-05-04 17:03:01 -0700</delta_ts>
            <desc>patch that will pass checkstyle</desc>
            <filename>bug-38158-20100426180700.patch</filename>
            <type>text/plain</type>
            <size>10347</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
YzBkYTk4ZWI0MGYwY2ZlM2EzNWMxMGQyOGMzOGRiNzMxZjM3ZjlkYy4uOTM0YmYyNDNhOTA4NGU1
NGQ4NDcxNGExNjc0ODIxNjNmMWY4NjVlNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzMyBAQAorMjAxMC0wNC0yNiAgSmFt
ZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB3YXJuaW5ncyBlbWl0dGVkIGJ5IGdjYyA0
LjQuMSBvbiBsaW51eCBpbiBjaHJvbWl1bS1zcGVjaWZpYyBwbGF0Zm9ybSBncmFwaGljcyBmaWxl
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MTU4
CisKKyAgICAgICAgTW9zdCBvZiB0aGUgaXNzdWVzIGFyZSBzaWduZWQvdW5zaWduZWQgbWlzbWF0
Y2hlcywgYnV0IHRoZXJlIGFyZSBhIGZldyB1bnVzdWVkIHZhcmlhYmxlcworICAgICAgICBhbmQg
ZnVuY3Rpb25zIG1peGVkIGluLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udExpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdFRleHRSZW5kZXJNb2Rl
KToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW5XYWxrZXI6OmdldFRleHRSdW4pOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dFJ1bldhbGtlcjo6Z2V0Tm9ybWFsaXplZFRleHRSdW4pOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dFJ1bldhbGtlcjo6c2V0R2x5cGhYUG9zaXRpb25zKToKKyAgICAgICAg
KFdlYkNvcmU6OmdseXBoSW5kZXhGb3JYUG9zaXRpb25JblNjcmlwdFJ1bik6CisgICAgICAgIChX
ZWJDb3JlOjpGb250OjpvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KToKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnQ6OnNlbGVjdGlvblJlY3RGb3JDb21wbGV4VGV4dCk6CisgICAgICAgICog
cGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnNldHVwUGFpbnQpOgorICAgICAgICAq
IHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hhcmZidXp6U2tpYS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpnZXRPdXRsaW5lUG9pbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNz
Q29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjppc0Nvb3JkaW5h
dGVTa2lhU2FmZSk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0
KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCk6CisgICAg
ICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0cm9rZVJlY3QpOgorCiAyMDEwLTA0LTI2
ICBNYWNpZWogU3RhY2hvd2lhayAgPG1qc0BhcHBsZS5jb20+CiAKICAgICAgICAgUmV2aWV3ZWQg
YnkgRGFyaW4gQWRsZXIuCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2No
cm9taXVtL0ZvbnRMaW51eC5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVt
L0ZvbnRMaW51eC5jcHAKaW5kZXggZmE1NDljZDA5YTU5YTEwMTcwYzFhNmUxYmZhNzkzODgwZTAx
NDE3Zi4uM2IzMmY0Njg1NjM4MWM3ODc3ZTQzYWQwZWQ1YjMwMzk5ZmJhYzRkZCAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGludXguY3BwCisrKyBi
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcApAQCAtNjQs
NyArNjQsNyBAQCBzdGF0aWMgYm9vbCBpc0NhbnZhc011bHRpTGF5ZXJlZChTa0NhbnZhcyogY2Fu
dmFzKQogICAgIHJldHVybiAhbGF5ZXJJdGVyYXRvci5kb25lKCk7CiB9CiAKLXN0YXRpYyBib29s
IGFkanVzdFRleHRSZW5kZXJNb2RlKFNrUGFpbnQqIHBhaW50LCBib29sIGlzQ2FudmFzTXVsdGlM
YXllcmVkKQorc3RhdGljIHZvaWQgYWRqdXN0VGV4dFJlbmRlck1vZGUoU2tQYWludCogcGFpbnQs
IGJvb2wgaXNDYW52YXNNdWx0aUxheWVyZWQpCiB7CiAgICAgLy8gT3VyIGxheWVycyBvbmx5IGhh
dmUgYSBzaW5nbGUgYWxwaGEgY2hhbm5lbC4gVGhpcyBtZWFucyB0aGF0IHN1YnBpeGVsCiAgICAg
Ly8gcmVuZGVyZWQgdGV4dCBjYW5ub3QgYmUgY29tcG9zaXRpZWQgY29ycmVjdGx5IHdoZW4gdGhl
IGxheWVyIGlzCkBAIC0zMjQsNyArMzI0LDcgQEAgcHJpdmF0ZToKICAgICAgICAgLy8gSGFyZmJ1
enogd2lsbCBkbyB0aGUgc2FtZSB0aGluZyBmb3IgdXMgdXNpbmcgdGhlIEdTVUIgdGFibGUuCiAg
ICAgICAgIC8vIDIpIENvbnZlcnQgc3BhY2luZyBjaGFyYWN0ZXJzIGludG8gcGxhaW4gc3BhY2Vz
LCBhcyBzb21lIGZvbnRzIHdpbGwgcHJvdmlkZSBnbHlwaHMKICAgICAgICAgLy8gZm9yIGNoYXJh
Y3RlcnMgbGlrZSAnXG4nIG90aGVyd2lzZS4KLSAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IG9yaWdpbmFsUnVuLmxlbmd0aCgpOyArK2kpIHsKKyAgICAgICAgZm9yIChpbnQgaSA9IDA7
IGkgPCBvcmlnaW5hbFJ1bi5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAgICAgICBVQ2hhciBjaCA9
IG9yaWdpbmFsUnVuW2ldOwogICAgICAgICAgICAgVUJsb2NrQ29kZSBibG9jayA9IDo6dWJsb2Nr
X2dldENvZGUoY2gpOwogICAgICAgICAgICAgaWYgKGJsb2NrID09IFVCTE9DS19DT01CSU5JTkdf
RElBQ1JJVElDQUxfTUFSS1MgfHwgKEZvbnQ6OnRyZWF0QXNTcGFjZShjaCkgJiYgY2ggIT0gJyAn
KSkgewpAQCAtMzQ2LDcgKzM0Niw3IEBAIHByaXZhdGU6CiAgICAgICAgIG5vcm1hbGl6ZWRTdHJp
bmcuZXh0cmFjdChtX25vcm1hbGl6ZWRCdWZmZXIuZ2V0KCksIG5vcm1hbGl6ZWRTdHJpbmcubGVu
Z3RoKCkgKyAxLCBlcnJvcik7CiAgICAgICAgIEFTU0VSVChVX1NVQ0NFU1MoZXJyb3IpKTsKIAot
ICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbm9ybWFsaXplZFN0cmluZy5sZW5ndGgo
KTsgKytpKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbm9ybWFsaXplZFN0cmluZy5s
ZW5ndGgoKTsgKytpKSB7CiAgICAgICAgICAgICBpZiAoRm9udDo6dHJlYXRBc1NwYWNlKG1fbm9y
bWFsaXplZEJ1ZmZlcltpXSkpCiAgICAgICAgICAgICAgICAgbV9ub3JtYWxpemVkQnVmZmVyW2ld
ID0gJyAnOwogICAgICAgICB9CkBAIC00MzksNyArNDM5LDcgQEAgcHJpdmF0ZToKICAgICB2b2lk
IHNldEdseXBoWFBvc2l0aW9ucyhib29sIGlzUlRMKQogICAgIHsKICAgICAgICAgZG91YmxlIHBv
c2l0aW9uID0gMDsKLSAgICAgICAgZm9yIChpbnQgaXRlciA9IDA7IGl0ZXIgPCBtX2l0ZW0ubnVt
X2dseXBoczsgKytpdGVyKSB7CisgICAgICAgIGZvciAoaW50IGl0ZXIgPSAwOyBpdGVyIDwgc3Rh
dGljX2Nhc3Q8aW50PihtX2l0ZW0ubnVtX2dseXBocyk7ICsraXRlcikgewogICAgICAgICAgICAg
Ly8gR2x5cGhzIGFyZSBzdG9yZWQgaW4gbG9naWNhbCBvcmRlciwgYnV0IGZvciBsYXlvdXQgcHVy
cG9zZXMgd2UgYWx3YXlzIGdvIGxlZnQgdG8gcmlnaHQuCiAgICAgICAgICAgICBpbnQgaSA9IGlz
UlRMID8gbV9pdGVtLm51bV9nbHlwaHMgLSBpdGVyIC0gMSA6IGl0ZXI7CiAKQEAgLTUzOCw3ICs1
MzgsNyBAQCBzdGF0aWMgaW50IGdseXBoSW5kZXhGb3JYUG9zaXRpb25JblNjcmlwdFJ1bihjb25z
dCBUZXh0UnVuV2Fsa2VyJiB3YWxrZXIsIGludCB4KQogICAgICAgICAgICAgeCAtPSB0cnVuY2F0
ZUZpeGVkUG9pbnRUb0ludGVnZXIoYWR2YW5jZXNbZ2x5cGhJbmRleF0pOwogICAgICAgICB9CiAg
ICAgfSBlbHNlIHsKLSAgICAgICAgZm9yIChnbHlwaEluZGV4ID0gMDsgZ2x5cGhJbmRleCA8IHdh
bGtlci5sZW5ndGgoKTsgKytnbHlwaEluZGV4KSB7CisgICAgICAgIGZvciAoZ2x5cGhJbmRleCA9
IDA7IGdseXBoSW5kZXggPCBzdGF0aWNfY2FzdDxpbnQ+KHdhbGtlci5sZW5ndGgoKSk7ICsrZ2x5
cGhJbmRleCkgewogICAgICAgICAgICAgaWYgKHggPCB0cnVuY2F0ZUZpeGVkUG9pbnRUb0ludGVn
ZXIoYWR2YW5jZXNbZ2x5cGhJbmRleF0pKQogICAgICAgICAgICAgICAgIGJyZWFrOwogICAgICAg
ICAgICAgeCAtPSB0cnVuY2F0ZUZpeGVkUG9pbnRUb0ludGVnZXIoYWR2YW5jZXNbZ2x5cGhJbmRl
eF0pOwpAQCAtNTkwLDcgKzU5MCw3IEBAIGludCBGb250OjpvZmZzZXRGb3JQb3NpdGlvbkZvckNv
bXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IHgsCiAgICAgICAgIGlmICh3YWxrZXIu
cnRsKCkpCiAgICAgICAgICAgICBiYXNlUG9zaXRpb24gLT0gd2Fsa2VyLm51bUNvZGVQb2ludHMo
KTsKIAotICAgICAgICBpZiAoeCA8IHdhbGtlci53aWR0aCgpKSB7CisgICAgICAgIGlmICh4IDwg
c3RhdGljX2Nhc3Q8aW50Pih3YWxrZXIud2lkdGgoKSkpIHsKICAgICAgICAgICAgIC8vIFRoZSB4
IHZhbHVlIGluIHF1ZXN0aW9uIGlzIHdpdGhpbiB0aGlzIHNjcmlwdCBydW4uIFdlIGNvbnNpZGVy
CiAgICAgICAgICAgICAvLyBlYWNoIGdseXBoIGluIHByZXNlbnRhdGlvbiBvcmRlciBhbmQgc3Rv
cCB3aGVuIHdlIGZpbmQgdGhlIG9uZQogICAgICAgICAgICAgLy8gY292ZXJpbmcgdGhpcyBwb3Np
dGlvbi4KQEAgLTY1MCw3ICs2NTAsNyBAQCBGbG9hdFJlY3QgRm9udDo6c2VsZWN0aW9uUmVjdEZv
ckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwKICAgICAgICAgaWYgKHdhbGtlci5ydGwo
KSkKICAgICAgICAgICAgIGJhc2UgLT0gd2Fsa2VyLndpZHRoKCk7CiAKLSAgICAgICAgaWYgKGZy
b21YID09IC0xICYmIGZyb20gPCB3YWxrZXIubnVtQ29kZVBvaW50cygpKSB7CisgICAgICAgIGlm
IChmcm9tWCA9PSAtMSAmJiBmcm9tIDwgc3RhdGljX2Nhc3Q8aW50Pih3YWxrZXIubnVtQ29kZVBv
aW50cygpKSkgewogICAgICAgICAgICAgLy8gfGZyb218IGlzIHdpdGhpbiB0aGlzIHNjcmlwdCBy
dW4uIFNvIHdlIGluZGV4IHRoZSBjbHVzdGVycyBsb2cgdG8KICAgICAgICAgICAgIC8vIGZpbmQg
d2hpY2ggZ2x5cGggdGhpcyBjb2RlLXBvaW50IGNvbnRyaWJ1dGVkIHRvIGFuZCBmaW5kIGl0cyB4
CiAgICAgICAgICAgICAvLyBwb3NpdGlvbi4KQEAgLTY2MCw3ICs2NjAsNyBAQCBGbG9hdFJlY3Qg
Rm9udDo6c2VsZWN0aW9uUmVjdEZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwKICAg
ICAgICAgfSBlbHNlCiAgICAgICAgICAgICBmcm9tIC09IHdhbGtlci5udW1Db2RlUG9pbnRzKCk7
CiAKLSAgICAgICAgaWYgKHRvWCA9PSAtMSAmJiB0byA8IHdhbGtlci5udW1Db2RlUG9pbnRzKCkp
IHsKKyAgICAgICAgaWYgKHRvWCA9PSAtMSAmJiB0byA8IHN0YXRpY19jYXN0PGludD4od2Fsa2Vy
Lm51bUNvZGVQb2ludHMoKSkpIHsKICAgICAgICAgICAgIGludCBnbHlwaCA9IHdhbGtlci5sb2dD
bHVzdGVycygpW3RvXTsKICAgICAgICAgICAgIHRvWCA9IGJhc2UgKyB3YWxrZXIueFBvc2l0aW9u
cygpW2dseXBoXTsKICAgICAgICAgICAgIHRvQWR2YW5jZSA9IHdhbGtlci5hZHZhbmNlcygpW2ds
eXBoXTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9u
dFBsYXRmb3JtRGF0YUxpbnV4LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21p
dW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmNwcAppbmRleCAyNDc1ZTY1OTQ2ZjE0OTBlNjFhYzIy
MmQwYTY4ODNlNGQ3NTBlNmY5Li43YjIyYmFkZmNjYTQ4NWUwNzY3NWJiNzBhMDdiY2Y1YzNhNWY5
ZTBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQ
bGF0Zm9ybURhdGFMaW51eC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9Gb250UGxhdGZvcm1EYXRhTGludXguY3BwCkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBG
b250UGxhdGZvcm1EYXRhOjpzZXR1cFBhaW50KFNrUGFpbnQqIHBhaW50KSBjb25zdAogICAgIHBh
aW50LT5zZXRGYWtlQm9sZFRleHQobV9mYWtlQm9sZCk7CiAgICAgcGFpbnQtPnNldFRleHRTa2V3
WChtX2Zha2VJdGFsaWMgPyAtU0tfU2NhbGFyMSAvIDQgOiAwKTsKIAotICAgIGlmIChtX3N0eWxl
LnVzZUFudGlBbGlhcyA9PSAxIHx8IG1fc3R5bGUudXNlQW50aUFsaWFzID09IEZvbnRSZW5kZXJT
dHlsZTo6Tm9QcmVmZXJlbmNlICYmIGlzU2tpYUFudGlBbGlhcykKKyAgICBpZiAobV9zdHlsZS51
c2VBbnRpQWxpYXMgPT0gMSB8fCAobV9zdHlsZS51c2VBbnRpQWxpYXMgPT0gRm9udFJlbmRlclN0
eWxlOjpOb1ByZWZlcmVuY2UgJiYgaXNTa2lhQW50aUFsaWFzKSkKICAgICAgICAgcGFpbnQtPnNl
dExDRFJlbmRlclRleHQobV9zdHlsZS51c2VTdWJwaXhlbCA9PSBGb250UmVuZGVyU3R5bGU6Ok5v
UHJlZmVyZW5jZSA/IGlzU2tpYVN1YnBpeGVsR2x5cGhzIDogbV9zdHlsZS51c2VTdWJwaXhlbCk7
CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGFy
ZmJ1enpTa2lhLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGFyZmJ1
enpTa2lhLmNwcAppbmRleCBiZTNiMGQwODcyYjFhZWFlNjdiNTliY2RkMTQ0ODM2YWYwNDA0N2E0
Li42OWY2ZDA4OTczYzk5ZWIzM2RkOGY3NmNiYzM1ZTA2YTczZjViNmMyIDEwMDY0NAotLS0gYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hhcmZidXp6U2tpYS5jcHAKKysrIGIv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IYXJmYnV6elNraWEuY3BwCkBAIC0x
MzksNyArMTM5LDcgQEAgc3RhdGljIEhCX0Vycm9yIGdldE91dGxpbmVQb2ludChIQl9Gb250IGhi
Rm9udCwgSEJfR2x5cGggZ2x5cGgsIGludCBmbGFncywgaGJfdWkKICAgICB1aW50MTZfdCBnbHlw
aDE2ID0gZ2x5cGg7CiAgICAgU2tQYXRoIHBhdGg7CiAgICAgcGFpbnQuZ2V0VGV4dFBhdGgoJmds
eXBoMTYsIHNpemVvZihnbHlwaDE2KSwgMCwgMCwgJnBhdGgpOwotICAgIGludCBudW1Qb2ludHMg
PSBwYXRoLmdldFBvaW50cyhOVUxMLCAwKTsKKyAgICB1bnNpZ25lZCBudW1Qb2ludHMgPSBwYXRo
LmdldFBvaW50cygwLCAwKTsKICAgICBpZiAocG9pbnQgPj0gbnVtUG9pbnRzKQogICAgICAgICBy
ZXR1cm4gSEJfRXJyX0ludmFsaWRfU3ViVGFibGU7CiAgICAgU2tQb2ludCogcG9pbnRzID0gcmVp
bnRlcnByZXRfY2FzdDxTa1BvaW50Kj4oZmFzdE1hbGxvYyhzaXplb2YoU2tQb2ludCkgKiAocG9p
bnQgKyAxKSkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dy
YXBoaWNzQ29udGV4dDNEU2tpYS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEv
R3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcAppbmRleCBjYzRjYTJlZjgxMjc1NDE1ZTUzOTNlZjQ5
NWExMDU5MmE4M2MxYWUwLi5lNzZlZDdiYWU0YmExNTY1NTAzYWRkMjhkNDkwMDg5MzQ4MTVmOGRk
IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250
ZXh0M0RTa2lhLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhp
Y3NDb250ZXh0M0RTa2lhLmNwcApAQCAtNTUsMTAgKzU1LDkgQEAgYm9vbCBHcmFwaGljc0NvbnRl
eHQzRDo6Z2V0SW1hZ2VEYXRhKEltYWdlKiBpbWFnZSwKICAgICAgICAgcmV0dXJuIGZhbHNlOwog
ICAgIFNrQml0bWFwJiBza2lhSW1hZ2VSZWYgPSAqc2tpYUltYWdlOwogICAgIFNrQXV0b0xvY2tQ
aXhlbHMgbG9jayhza2lhSW1hZ2VSZWYpOwotICAgIGludCB3aWR0aCA9IHNraWFJbWFnZS0+d2lk
dGgoKTsKICAgICBpbnQgaGVpZ2h0ID0gc2tpYUltYWdlLT5oZWlnaHQoKTsKICAgICBpbnQgcm93
Qnl0ZXMgPSBza2lhSW1hZ2UtPnJvd0J5dGVzKCk7Ci0gICAgQVNTRVJUKHJvd0J5dGVzID09IHdp
ZHRoICogNCk7CisgICAgQVNTRVJUKHJvd0J5dGVzID09IHNraWFJbWFnZS0+d2lkdGgoKSAqIDQp
OwogICAgIHVpbnQ4X3QqIHBpeGVscyA9IHJlaW50ZXJwcmV0X2Nhc3Q8dWludDhfdCo+KHNraWFJ
bWFnZS0+Z2V0UGl4ZWxzKCkpOwogICAgIG91dHB1dFZlY3Rvci5yZXNpemUocm93Qnl0ZXMgKiBo
ZWlnaHQpOwogICAgIGludCBzaXplID0gcm93Qnl0ZXMgKiBoZWlnaHQ7CmRpZmYgLS1naXQgYS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAgYi9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHAKaW5k
ZXggODk4NjY4NTIwMDlmNmM5MzkyOTRhMWExOWVlNTgyZWExYjNiZWNlYS4uZTE2YjM3MzBjZGIz
MWJjMjdiZWMxNzAxNjgzNDA2MmU0OTVkNjBiYSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3BwCisrKyBiL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcApAQCAtOTEsOSArOTEs
OSBAQCBpbmxpbmUgZmxvYXQgc3F1YXJlKGZsb2F0IG4pCiAvLyBidWdzLiAgTGVhdmluZyB0aGUg
Y29kZSBpbiBmb3Igbm93LCBzbyB3ZSBjYW4gcmV2ZXJ0IGVhc2lseSBpZiBuZWNlc3NhcnkuCiAv
LyAjZGVmaW5lIEVOU1VSRV9WQUxVRV9TQUZFVFlfRk9SX1NLSUEKIAorI2lmZGVmIEVOU1VSRV9W
QUxVRV9TQUZFVFlfRk9SX1NLSUEKIHN0YXRpYyBib29sIGlzQ29vcmRpbmF0ZVNraWFTYWZlKGZs
b2F0IGNvb3JkKQogewotI2lmZGVmIEVOU1VSRV9WQUxVRV9TQUZFVFlfRk9SX1NLSUEKICAgICAv
LyBGaXJzdCBjaGVjayBmb3IgdmFsaWQgZmxvYXRzLgogI2lmIGRlZmluZWQoX01TQ19WRVIpCiAg
ICAgaWYgKCFfZmluaXRlKGNvb3JkKSkKQEAgLTExMCwxMCArMTEwLDggQEAgc3RhdGljIGJvb2wg
aXNDb29yZGluYXRlU2tpYVNhZmUoZmxvYXQgY29vcmQpCiAgICAgICAgIHJldHVybiBmYWxzZTsK
IAogICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICByZXR1cm4gdHJ1ZTsKLSNlbmRpZgogfQor
I2VuZGlmCiAKIHN0YXRpYyBib29sIGlzUG9pbnRTa2lhU2FmZShjb25zdCBTa01hdHJpeCYgdHJh
bnNmb3JtLCBjb25zdCBTa1BvaW50JiBwdCkKIHsKQEAgLTczNCw4ICs3MzIsNiBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0JiByZWN0KQogICAgICAgICBD
bGlwUmVjdFRvQ2FudmFzKCpwbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCksIHIsICZyKTsKICAg
ICB9CiAKLSAgICBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUgPSBtX2NvbW1vbi0+
c3RhdGU7Ci0KICAgICBTa1BhaW50IHBhaW50OwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5zZXR1
cFBhaW50Rm9yRmlsbGluZygmcGFpbnQpOwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5jYW52YXMo
KS0+ZHJhd1JlY3QociwgcGFpbnQpOwpAQCAtMTEyMiwxMSArMTExOCw4IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzdHJva2VQYXRoKCkKICAgICBpZiAoIWlzUGF0aFNraWFTYWZlKGdldENUTSgp
LCBwYXRoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIHN0YXRlID0gbV9jb21tb24tPnN0YXRlOwotCiAgICAgU2tQYWludCBwYWludDsKICAgICBw
bGF0Zm9ybUNvbnRleHQoKS0+c2V0dXBQYWludEZvclN0cm9raW5nKCZwYWludCwgMCwgMCk7Ci0K
ICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCktPmRyYXdQYXRoKHBhdGgsIHBhaW50KTsK
IH0KIApAQCAtMTEzOCwxMiArMTEzMSw5IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VS
ZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgbGluZVdpZHRoKQogICAgIGlmICghaXNS
ZWN0U2tpYVNhZmUoZ2V0Q1RNKCksIHJlY3QpKQogICAgICAgICByZXR1cm47CiAKLSAgICBjb25z
dCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUgPSBtX2NvbW1vbi0+c3RhdGU7Ci0KICAgICBT
a1BhaW50IHBhaW50OwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yU3Ryb2tp
bmcoJnBhaW50LCAwLCAwKTsKICAgICBwYWludC5zZXRTdHJva2VXaWR0aChXZWJDb3JlRmxvYXRU
b1NrU2NhbGFyKGxpbmVXaWR0aCkpOwotCiAgICAgcGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygp
LT5kcmF3UmVjdChyZWN0LCBwYWludCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55074</attachid>
            <date>2010-05-04 17:03:04 -0700</date>
            <delta_ts>2010-05-06 15:40:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38158-20100504170211.patch</filename>
            <type>text/plain</type>
            <size>11676</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
MzczY2ZhNjRjZGE1YWQ5ZDFjNTU3ZThmODQ1MDA3YTUxODA0ZDExZC4uNjA0NmUyOWFlNzcwNzE0
ZmQ3NGFmZjg4YWY3MDA5NTViMGQ2ZDkwZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNyBAQAorMjAxMC0wNS0wNCAgSmFt
ZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB3YXJuaW5ncyBlbWl0dGVkIGJ5IGdjYyA0
LjQuMSBvbiBsaW51eCBpbiBjaHJvbWl1bS1zcGVjaWZpYyBwbGF0Zm9ybSBncmFwaGljcyBmaWxl
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MTU4
CisKKyAgICAgICAgRml4ZXM6CisgICAgICAgIC0gdXNlIHNpZ25lZCB0eXBlICdpbnQnIGluc3Rl
YWQgb2YgdW5zaWduZWQgZm9yIHZhcmlhYmxlcyB0aGF0IG1pZ2h0IGJlCisgICAgICAgICAgbmVn
YXRpdmUgb3IgY29tcGFyZWQgdG8gc2lnbmVkIHZhcmlhYmxlcworICAgICAgICAtIHJlcGxhY2Ug
TlVMTCB3aXRoIDAKKyAgICAgICAgLSByZW1vdmUgdW51c3VlZCBsb2NhbHMKKyAgICAgICAgLSBh
ZGQgcGFyZW5zIGFyb3VuZCBhbWJpZ3VvdXMgbG9va2luZyBjb21wb3VuZCBwcmVkaWNhdGVzIGxp
a2UgKGEgfHwgYiAmJiBjKQorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0v
Rm9udExpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmFkanVzdFRleHRSZW5kZXJNb2RlKToK
KyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW5XYWxrZXI6OlRleHRSdW5XYWxrZXIpOgorICAgICAg
ICAoV2ViQ29yZTo6VGV4dFJ1bldhbGtlcjo6bGVuZ3RoKToKKyAgICAgICAgKFdlYkNvcmU6OlRl
eHRSdW5XYWxrZXI6OndpZHRoKToKKyAgICAgICAgKFdlYkNvcmU6OlRleHRSdW5XYWxrZXI6Omdl
dFRleHRSdW4pOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJ1bldhbGtlcjo6Z2V0Tm9ybWFsaXpl
ZFRleHRSdW4pOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6b2Zmc2V0Rm9yUG9zaXRpb25Gb3JD
b21wbGV4VGV4dCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBs
YXRmb3JtRGF0YUxpbnV4LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6
OnNldHVwUGFpbnQpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hhcmZi
dXp6U2tpYS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpnZXRPdXRsaW5lUG9pbnQpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDNEOjpnZXRJbWFnZURhdGEpOgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0U2tpYS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjppc0Nvb3JkaW5hdGVTa2lhU2FmZSk6CisgICAgICAgIChXZWJDb3JlOjpH
cmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29u
dGV4dDo6c3Ryb2tlUGF0aCk6CisgICAgICAgIChXZWJDb3JlOjpHcmFwaGljc0NvbnRleHQ6OnN0
cm9rZVJlY3QpOgorCiAyMDEwLTA0LTMwICBKb24gSG9uZXljdXR0ICA8amhvbmV5Y3V0dEBhcHBs
ZS5jb20+CiAKICAgICAgICAgQ2FyZXQgbWF5IGZhaWwgdG8gYmxpbmsgaWYgYSBmb2N1cyBoYW5k
bGVyIGJyaW5ncyB1cCBhIG1vZGFsIGRpYWxvZyAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRm9udExpbnV4LmNwcAppbmRleCBmYTU0OWNkMDlhNTlhMTAxNzBjMWE2
ZTFiZmE3OTM4ODBlMDE0MTdmLi4zNjA1MGI2YmUzM2Q4ZjkxMDdjYTIwOTg5MTJiZjAzODFmODgz
YWU1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRM
aW51eC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGlu
dXguY3BwCkBAIC02NCw3ICs2NCw3IEBAIHN0YXRpYyBib29sIGlzQ2FudmFzTXVsdGlMYXllcmVk
KFNrQ2FudmFzKiBjYW52YXMpCiAgICAgcmV0dXJuICFsYXllckl0ZXJhdG9yLmRvbmUoKTsKIH0K
IAotc3RhdGljIGJvb2wgYWRqdXN0VGV4dFJlbmRlck1vZGUoU2tQYWludCogcGFpbnQsIGJvb2wg
aXNDYW52YXNNdWx0aUxheWVyZWQpCitzdGF0aWMgdm9pZCBhZGp1c3RUZXh0UmVuZGVyTW9kZShT
a1BhaW50KiBwYWludCwgYm9vbCBpc0NhbnZhc011bHRpTGF5ZXJlZCkKIHsKICAgICAvLyBPdXIg
bGF5ZXJzIG9ubHkgaGF2ZSBhIHNpbmdsZSBhbHBoYSBjaGFubmVsLiBUaGlzIG1lYW5zIHRoYXQg
c3VicGl4ZWwKICAgICAvLyByZW5kZXJlZCB0ZXh0IGNhbm5vdCBiZSBjb21wb3NpdGllZCBjb3Jy
ZWN0bHkgd2hlbiB0aGUgbGF5ZXIgaXMKQEAgLTE1OSw3ICsxNTksNyBAQCBzdGF0aWMgaW50IHRy
dW5jYXRlRml4ZWRQb2ludFRvSW50ZWdlcihIQl9GaXhlZCB2YWx1ZSkKIC8vIGNhbiBjYWxsIHxy
ZXNldHwgdG8gc3RhcnQgb3ZlciBhZ2Fpbi4KIGNsYXNzIFRleHRSdW5XYWxrZXIgewogcHVibGlj
OgotICAgIFRleHRSdW5XYWxrZXIoY29uc3QgVGV4dFJ1biYgcnVuLCB1bnNpZ25lZCBzdGFydGlu
Z1gsIGNvbnN0IEZvbnQqIGZvbnQpCisgICAgVGV4dFJ1bldhbGtlcihjb25zdCBUZXh0UnVuJiBy
dW4sIGludCBzdGFydGluZ1gsIGNvbnN0IEZvbnQqIGZvbnQpCiAgICAgICAgIDogbV9mb250KGZv
bnQpCiAgICAgICAgICwgbV9zdGFydGluZ1goc3RhcnRpbmdYKQogICAgICAgICAsIG1fb2Zmc2V0
WChtX3N0YXJ0aW5nWCkKQEAgLTI1NCw3ICsyNTQsNyBAQCBwdWJsaWM6CiAgICAgfQogCiAgICAg
Ly8gUmV0dXJuIHRoZSBsZW5ndGggb2YgdGhlIGFycmF5IHJldHVybmVkIGJ5IHxnbHlwaHN8Ci0g
ICAgY29uc3QgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QKKyAgICBjb25zdCBpbnQgbGVuZ3RoKCkg
Y29uc3QKICAgICB7CiAgICAgICAgIHJldHVybiBtX2l0ZW0ubnVtX2dseXBoczsKICAgICB9CkBA
IC0yNzQsNyArMjc0LDcgQEAgcHVibGljOgogICAgIH0KIAogICAgIC8vIFJldHVybiB0aGUgd2lk
dGggKGluIHB4KSBvZiB0aGUgY3VycmVudCBzY3JpcHQgcnVuLgotICAgIGNvbnN0IHVuc2lnbmVk
IHdpZHRoKCkgY29uc3QKKyAgICBjb25zdCBpbnQgd2lkdGgoKSBjb25zdAogICAgIHsKICAgICAg
ICAgcmV0dXJuIG1fcGl4ZWxXaWR0aDsKICAgICB9CkBAIC0zMjQsNyArMzI0LDcgQEAgcHJpdmF0
ZToKICAgICAgICAgLy8gSGFyZmJ1enogd2lsbCBkbyB0aGUgc2FtZSB0aGluZyBmb3IgdXMgdXNp
bmcgdGhlIEdTVUIgdGFibGUuCiAgICAgICAgIC8vIDIpIENvbnZlcnQgc3BhY2luZyBjaGFyYWN0
ZXJzIGludG8gcGxhaW4gc3BhY2VzLCBhcyBzb21lIGZvbnRzIHdpbGwgcHJvdmlkZSBnbHlwaHMK
ICAgICAgICAgLy8gZm9yIGNoYXJhY3RlcnMgbGlrZSAnXG4nIG90aGVyd2lzZS4KLSAgICAgICAg
Zm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG9yaWdpbmFsUnVuLmxlbmd0aCgpOyArK2kpIHsKKyAg
ICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBvcmlnaW5hbFJ1bi5sZW5ndGgoKTsgKytpKSB7CiAg
ICAgICAgICAgICBVQ2hhciBjaCA9IG9yaWdpbmFsUnVuW2ldOwogICAgICAgICAgICAgVUJsb2Nr
Q29kZSBibG9jayA9IDo6dWJsb2NrX2dldENvZGUoY2gpOwogICAgICAgICAgICAgaWYgKGJsb2Nr
ID09IFVCTE9DS19DT01CSU5JTkdfRElBQ1JJVElDQUxfTUFSS1MgfHwgKEZvbnQ6OnRyZWF0QXNT
cGFjZShjaCkgJiYgY2ggIT0gJyAnKSkgewpAQCAtMzQ2LDcgKzM0Niw3IEBAIHByaXZhdGU6CiAg
ICAgICAgIG5vcm1hbGl6ZWRTdHJpbmcuZXh0cmFjdChtX25vcm1hbGl6ZWRCdWZmZXIuZ2V0KCks
IG5vcm1hbGl6ZWRTdHJpbmcubGVuZ3RoKCkgKyAxLCBlcnJvcik7CiAgICAgICAgIEFTU0VSVChV
X1NVQ0NFU1MoZXJyb3IpKTsKIAotICAgICAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbm9y
bWFsaXplZFN0cmluZy5sZW5ndGgoKTsgKytpKSB7CisgICAgICAgIGZvciAoaW50IGkgPSAwOyBp
IDwgbm9ybWFsaXplZFN0cmluZy5sZW5ndGgoKTsgKytpKSB7CiAgICAgICAgICAgICBpZiAoRm9u
dDo6dHJlYXRBc1NwYWNlKG1fbm9ybWFsaXplZEJ1ZmZlcltpXSkpCiAgICAgICAgICAgICAgICAg
bV9ub3JtYWxpemVkQnVmZmVyW2ldID0gJyAnOwogICAgICAgICB9CkBAIC00NTksMTEgKzQ1OSwx
MSBAQCBwcml2YXRlOgogICAgIHVpbnQxNl90KiBtX2dseXBoczE2OyAvLyBBIHZlY3RvciBvZiAx
Ni1iaXQgZ2x5cGggaWRzLgogICAgIFNrU2NhbGFyKiBtX3hQb3NpdGlvbnM7IC8vIEEgdmVjdG9y
IG9mIHggcG9zaXRpb25zIGZvciBlYWNoIGdseXBoLgogICAgIHNzaXplX3QgbV9pbmRleE9mTmV4
dFNjcmlwdFJ1bjsgLy8gSW5kZXhlcyB0aGUgc2NyaXB0IHJ1biBpbiB8bV9ydW58LgotICAgIGNv
bnN0IHVuc2lnbmVkIG1fc3RhcnRpbmdYOyAvLyBPZmZzZXQgaW4gcGl4ZWxzIG9mIHRoZSBmaXJz
dCBzY3JpcHQgcnVuLgotICAgIHVuc2lnbmVkIG1fb2Zmc2V0WDsgLy8gT2Zmc2V0IGluIHBpeGVs
cyB0byB0aGUgc3RhcnQgb2YgdGhlIG5leHQgc2NyaXB0IHJ1bi4KLSAgICB1bnNpZ25lZCBtX3Bp
eGVsV2lkdGg7IC8vIFdpZHRoIChpbiBweCkgb2YgdGhlIGN1cnJlbnQgc2NyaXB0IHJ1bi4KKyAg
ICBjb25zdCBpbnQgbV9zdGFydGluZ1g7IC8vIE9mZnNldCBpbiBwaXhlbHMgb2YgdGhlIGZpcnN0
IHNjcmlwdCBydW4uCisgICAgaW50IG1fb2Zmc2V0WDsgLy8gT2Zmc2V0IGluIHBpeGVscyB0byB0
aGUgc3RhcnQgb2YgdGhlIG5leHQgc2NyaXB0IHJ1bi4KKyAgICBpbnQgbV9waXhlbFdpZHRoOyAv
LyBXaWR0aCAoaW4gcHgpIG9mIHRoZSBjdXJyZW50IHNjcmlwdCBydW4uCiAgICAgdW5zaWduZWQg
bV9udW1Db2RlUG9pbnRzOyAvLyBDb2RlIHBvaW50cyBpbiBjdXJyZW50IHNjcmlwdCBydW4uCi0g
ICAgdW5zaWduZWQgbV9tYXhHbHlwaHM7IC8vIEN1cnJlbnQgc2l6ZSBvZiBhbGwgdGhlIEhhcmZi
dXp6IGFycmF5cy4KKyAgICBpbnQgbV9tYXhHbHlwaHM7IC8vIEN1cnJlbnQgc2l6ZSBvZiBhbGwg
dGhlIEhhcmZidXp6IGFycmF5cy4KIAogICAgIE93blB0cjxUZXh0UnVuPiBtX25vcm1hbGl6ZWRS
dW47CiAgICAgT3duQXJyYXlQdHI8VUNoYXI+IG1fbm9ybWFsaXplZEJ1ZmZlcjsgLy8gQSBidWZm
ZXIgZm9yIG5vcm1hbGl6ZWQgcnVuLgpAQCAtNTYyLDcgKzU2Miw3IEBAIGludCBGb250OjpvZmZz
ZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgaW50IHgsCiAg
ICAgLy8gYmVjYXVzZSBVVEYtMTYgc3Vycm9nYXRlIHBhaXJzIGFyZSBhIHNpbmdsZSBjb2RlIHBv
aW50LCBidXQgMzItYml0cyBsb25nLgogICAgIC8vIEluIExUUiB3ZSBsZWF2ZSB0aGlzIGFzIDAg
c28gdGhhdCB3ZSBnZXQgdGhlIGNvcnJlY3QgdmFsdWUgZm9yCiAgICAgLy8gfGJhc2VQb3NpdGlv
bnwsIGJlbG93LgotICAgIHVuc2lnbmVkIHRvdGFsQ29kZVBvaW50cyA9IDA7CisgICAgaW50IHRv
dGFsQ29kZVBvaW50cyA9IDA7CiAgICAgaWYgKHdhbGtlci5ydGwoKSkgewogICAgICAgICBzc2l6
ZV90IG9mZnNldCA9IDA7CiAgICAgICAgIHdoaWxlIChvZmZzZXQgPCBydW4ubGVuZ3RoKCkpIHsK
QEAgLTU3MSw3ICs1NzEsNyBAQCBpbnQgRm9udDo6b2Zmc2V0Rm9yUG9zaXRpb25Gb3JDb21wbGV4
VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIGludCB4LAogICAgICAgICB9CiAgICAgfQogCi0gICAg
dW5zaWduZWQgYmFzZVBvc2l0aW9uID0gdG90YWxDb2RlUG9pbnRzOworICAgIGludCBiYXNlUG9z
aXRpb24gPSB0b3RhbENvZGVQb2ludHM7CiAKICAgICAvLyBGb3IgUlRMOgogICAgIC8vICAgY29k
ZS1wb2ludCBvcmRlcjogIGFiY2QgZWZnIGhpamtsCkBAIC01OTAsNyArNTkwLDcgQEAgaW50IEZv
bnQ6Om9mZnNldEZvclBvc2l0aW9uRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBp
bnQgeCwKICAgICAgICAgaWYgKHdhbGtlci5ydGwoKSkKICAgICAgICAgICAgIGJhc2VQb3NpdGlv
biAtPSB3YWxrZXIubnVtQ29kZVBvaW50cygpOwogCi0gICAgICAgIGlmICh4IDwgd2Fsa2VyLndp
ZHRoKCkpIHsKKyAgICAgICAgaWYgKHggPj0gMCAmJiB4IDwgd2Fsa2VyLndpZHRoKCkpIHsKICAg
ICAgICAgICAgIC8vIFRoZSB4IHZhbHVlIGluIHF1ZXN0aW9uIGlzIHdpdGhpbiB0aGlzIHNjcmlw
dCBydW4uIFdlIGNvbnNpZGVyCiAgICAgICAgICAgICAvLyBlYWNoIGdseXBoIGluIHByZXNlbnRh
dGlvbiBvcmRlciBhbmQgc3RvcCB3aGVuIHdlIGZpbmQgdGhlIG9uZQogICAgICAgICAgICAgLy8g
Y292ZXJpbmcgdGhpcyBwb3NpdGlvbi4KQEAgLTYwNyw3ICs2MDcsNyBAQCBpbnQgRm9udDo6b2Zm
c2V0Rm9yUG9zaXRpb25Gb3JDb21wbGV4VGV4dChjb25zdCBUZXh0UnVuJiBydW4sIGludCB4LAog
ICAgICAgICAgICAgLy8gcXVlc3Rpb24sIG9yIGFueSBzdWJzZXF1ZW50IGdseXBoLiBJZiB3ZSBy
dW4gb2ZmIHRoZSBlbmQsIHRoZW4KICAgICAgICAgICAgIC8vIHdlIHRha2UgdGhlIGxhc3QgY29k
ZSBwb2ludC4KICAgICAgICAgICAgIGNvbnN0IHVuc2lnbmVkIHNob3J0KiBsb2cgPSB3YWxrZXIu
bG9nQ2x1c3RlcnMoKTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgaiA9IDA7IGogPCB3YWxr
ZXIubnVtQ29kZVBvaW50cygpOyArK2opIHsKKyAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBq
IDwgd2Fsa2VyLm51bUNvZGVQb2ludHMoKTsgKytqKSB7CiAgICAgICAgICAgICAgICAgaWYgKGxv
Z1tqXSA+PSBnbHlwaEluZGV4KQogICAgICAgICAgICAgICAgICAgICByZXR1cm4gYmFzZVBvc2l0
aW9uICsgajsKICAgICAgICAgICAgIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmNwcAppbmRleCAyNDc1
ZTY1OTQ2ZjE0OTBlNjFhYzIyMmQwYTY4ODNlNGQ3NTBlNmY5Li43YjIyYmFkZmNjYTQ4NWUwNzY3
NWJiNzBhMDdiY2Y1YzNhNWY5ZTBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFMaW51eC5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhTGludXguY3BwCkBAIC0xNDgs
NyArMTQ4LDcgQEAgdm9pZCBGb250UGxhdGZvcm1EYXRhOjpzZXR1cFBhaW50KFNrUGFpbnQqIHBh
aW50KSBjb25zdAogICAgIHBhaW50LT5zZXRGYWtlQm9sZFRleHQobV9mYWtlQm9sZCk7CiAgICAg
cGFpbnQtPnNldFRleHRTa2V3WChtX2Zha2VJdGFsaWMgPyAtU0tfU2NhbGFyMSAvIDQgOiAwKTsK
IAotICAgIGlmIChtX3N0eWxlLnVzZUFudGlBbGlhcyA9PSAxIHx8IG1fc3R5bGUudXNlQW50aUFs
aWFzID09IEZvbnRSZW5kZXJTdHlsZTo6Tm9QcmVmZXJlbmNlICYmIGlzU2tpYUFudGlBbGlhcykK
KyAgICBpZiAobV9zdHlsZS51c2VBbnRpQWxpYXMgPT0gMSB8fCAobV9zdHlsZS51c2VBbnRpQWxp
YXMgPT0gRm9udFJlbmRlclN0eWxlOjpOb1ByZWZlcmVuY2UgJiYgaXNTa2lhQW50aUFsaWFzKSkK
ICAgICAgICAgcGFpbnQtPnNldExDRFJlbmRlclRleHQobV9zdHlsZS51c2VTdWJwaXhlbCA9PSBG
b250UmVuZGVyU3R5bGU6Ok5vUHJlZmVyZW5jZSA/IGlzU2tpYVN1YnBpeGVsR2x5cGhzIDogbV9z
dHlsZS51c2VTdWJwaXhlbCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY2hyb21pdW0vSGFyZmJ1enpTa2lhLmNwcCBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2hyb21pdW0vSGFyZmJ1enpTa2lhLmNwcAppbmRleCBiZTNiMGQwODcyYjFhZWFlNjdiNTli
Y2RkMTQ0ODM2YWYwNDA0N2E0Li42OWY2ZDA4OTczYzk5ZWIzM2RkOGY3NmNiYzM1ZTA2YTczZjVi
NmMyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0hhcmZi
dXp6U2tpYS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9IYXJm
YnV6elNraWEuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgc3RhdGljIEhCX0Vycm9yIGdldE91dGxp
bmVQb2ludChIQl9Gb250IGhiRm9udCwgSEJfR2x5cGggZ2x5cGgsIGludCBmbGFncywgaGJfdWkK
ICAgICB1aW50MTZfdCBnbHlwaDE2ID0gZ2x5cGg7CiAgICAgU2tQYXRoIHBhdGg7CiAgICAgcGFp
bnQuZ2V0VGV4dFBhdGgoJmdseXBoMTYsIHNpemVvZihnbHlwaDE2KSwgMCwgMCwgJnBhdGgpOwot
ICAgIGludCBudW1Qb2ludHMgPSBwYXRoLmdldFBvaW50cyhOVUxMLCAwKTsKKyAgICB1bnNpZ25l
ZCBudW1Qb2ludHMgPSBwYXRoLmdldFBvaW50cygwLCAwKTsKICAgICBpZiAocG9pbnQgPj0gbnVt
UG9pbnRzKQogICAgICAgICByZXR1cm4gSEJfRXJyX0ludmFsaWRfU3ViVGFibGU7CiAgICAgU2tQ
b2ludCogcG9pbnRzID0gcmVpbnRlcnByZXRfY2FzdDxTa1BvaW50Kj4oZmFzdE1hbGxvYyhzaXpl
b2YoU2tQb2ludCkgKiAocG9pbnQgKyAxKSkpOwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHAgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcAppbmRleCBjYzRjYTJl
ZjgxMjc1NDE1ZTUzOTNlZjQ5NWExMDU5MmE4M2MxYWUwLi5lNzZlZDdiYWU0YmExNTY1NTAzYWRk
MjhkNDkwMDg5MzQ4MTVmOGRkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0M0RTa2lhLmNwcApAQCAtNTUsMTAgKzU1LDkgQEAg
Ym9vbCBHcmFwaGljc0NvbnRleHQzRDo6Z2V0SW1hZ2VEYXRhKEltYWdlKiBpbWFnZSwKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwogICAgIFNrQml0bWFwJiBza2lhSW1hZ2VSZWYgPSAqc2tpYUltYWdl
OwogICAgIFNrQXV0b0xvY2tQaXhlbHMgbG9jayhza2lhSW1hZ2VSZWYpOwotICAgIGludCB3aWR0
aCA9IHNraWFJbWFnZS0+d2lkdGgoKTsKICAgICBpbnQgaGVpZ2h0ID0gc2tpYUltYWdlLT5oZWln
aHQoKTsKICAgICBpbnQgcm93Qnl0ZXMgPSBza2lhSW1hZ2UtPnJvd0J5dGVzKCk7Ci0gICAgQVNT
RVJUKHJvd0J5dGVzID09IHdpZHRoICogNCk7CisgICAgQVNTRVJUKHJvd0J5dGVzID09IHNraWFJ
bWFnZS0+d2lkdGgoKSAqIDQpOwogICAgIHVpbnQ4X3QqIHBpeGVscyA9IHJlaW50ZXJwcmV0X2Nh
c3Q8dWludDhfdCo+KHNraWFJbWFnZS0+Z2V0UGl4ZWxzKCkpOwogICAgIG91dHB1dFZlY3Rvci5y
ZXNpemUocm93Qnl0ZXMgKiBoZWlnaHQpOwogICAgIGludCBzaXplID0gcm93Qnl0ZXMgKiBoZWln
aHQ7CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3ND
b250ZXh0U2tpYS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3ND
b250ZXh0U2tpYS5jcHAKaW5kZXggODk4NjY4NTIwMDlmNmM5MzkyOTRhMWExOWVlNTgyZWExYjNi
ZWNlYS4uZTE2YjM3MzBjZGIzMWJjMjdiZWMxNzAxNjgzNDA2MmU0OTVkNjBiYSAxMDA2NDQKLS0t
IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dFNraWEuY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lh
LmNwcApAQCAtOTEsOSArOTEsOSBAQCBpbmxpbmUgZmxvYXQgc3F1YXJlKGZsb2F0IG4pCiAvLyBi
dWdzLiAgTGVhdmluZyB0aGUgY29kZSBpbiBmb3Igbm93LCBzbyB3ZSBjYW4gcmV2ZXJ0IGVhc2ls
eSBpZiBuZWNlc3NhcnkuCiAvLyAjZGVmaW5lIEVOU1VSRV9WQUxVRV9TQUZFVFlfRk9SX1NLSUEK
IAorI2lmZGVmIEVOU1VSRV9WQUxVRV9TQUZFVFlfRk9SX1NLSUEKIHN0YXRpYyBib29sIGlzQ29v
cmRpbmF0ZVNraWFTYWZlKGZsb2F0IGNvb3JkKQogewotI2lmZGVmIEVOU1VSRV9WQUxVRV9TQUZF
VFlfRk9SX1NLSUEKICAgICAvLyBGaXJzdCBjaGVjayBmb3IgdmFsaWQgZmxvYXRzLgogI2lmIGRl
ZmluZWQoX01TQ19WRVIpCiAgICAgaWYgKCFfZmluaXRlKGNvb3JkKSkKQEAgLTExMCwxMCArMTEw
LDggQEAgc3RhdGljIGJvb2wgaXNDb29yZGluYXRlU2tpYVNhZmUoZmxvYXQgY29vcmQpCiAgICAg
ICAgIHJldHVybiBmYWxzZTsKIAogICAgIHJldHVybiB0cnVlOwotI2Vsc2UKLSAgICByZXR1cm4g
dHJ1ZTsKLSNlbmRpZgogfQorI2VuZGlmCiAKIHN0YXRpYyBib29sIGlzUG9pbnRTa2lhU2FmZShj
b25zdCBTa01hdHJpeCYgdHJhbnNmb3JtLCBjb25zdCBTa1BvaW50JiBwdCkKIHsKQEAgLTczNCw4
ICs3MzIsNiBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6ZmlsbFJlY3QoY29uc3QgRmxvYXRSZWN0
JiByZWN0KQogICAgICAgICBDbGlwUmVjdFRvQ2FudmFzKCpwbGF0Zm9ybUNvbnRleHQoKS0+Y2Fu
dmFzKCksIHIsICZyKTsKICAgICB9CiAKLSAgICBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYg
c3RhdGUgPSBtX2NvbW1vbi0+c3RhdGU7Ci0KICAgICBTa1BhaW50IHBhaW50OwogICAgIHBsYXRm
b3JtQ29udGV4dCgpLT5zZXR1cFBhaW50Rm9yRmlsbGluZygmcGFpbnQpOwogICAgIHBsYXRmb3Jt
Q29udGV4dCgpLT5jYW52YXMoKS0+ZHJhd1JlY3QociwgcGFpbnQpOwpAQCAtMTEyMiwxMSArMTEx
OCw4IEBAIHZvaWQgR3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKCkKICAgICBpZiAoIWlzUGF0
aFNraWFTYWZlKGdldENUTSgpLCBwYXRoKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgY29uc3Qg
R3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlID0gbV9jb21tb24tPnN0YXRlOwotCiAgICAgU2tQ
YWludCBwYWludDsKICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+c2V0dXBQYWludEZvclN0cm9raW5n
KCZwYWludCwgMCwgMCk7Ci0KICAgICBwbGF0Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCktPmRyYXdQ
YXRoKHBhdGgsIHBhaW50KTsKIH0KIApAQCAtMTEzOCwxMiArMTEzMSw5IEBAIHZvaWQgR3JhcGhp
Y3NDb250ZXh0OjpzdHJva2VSZWN0KGNvbnN0IEZsb2F0UmVjdCYgcmVjdCwgZmxvYXQgbGluZVdp
ZHRoKQogICAgIGlmICghaXNSZWN0U2tpYVNhZmUoZ2V0Q1RNKCksIHJlY3QpKQogICAgICAgICBy
ZXR1cm47CiAKLSAgICBjb25zdCBHcmFwaGljc0NvbnRleHRTdGF0ZSYgc3RhdGUgPSBtX2NvbW1v
bi0+c3RhdGU7Ci0KICAgICBTa1BhaW50IHBhaW50OwogICAgIHBsYXRmb3JtQ29udGV4dCgpLT5z
ZXR1cFBhaW50Rm9yU3Ryb2tpbmcoJnBhaW50LCAwLCAwKTsKICAgICBwYWludC5zZXRTdHJva2VX
aWR0aChXZWJDb3JlRmxvYXRUb1NrU2NhbGFyKGxpbmVXaWR0aCkpOwotCiAgICAgcGxhdGZvcm1D
b250ZXh0KCktPmNhbnZhcygpLT5kcmF3UmVjdChyZWN0LCBwYWludCk7CiB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>55311</attachid>
            <date>2010-05-06 15:40:10 -0700</date>
            <delta_ts>2010-05-06 15:45:17 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-38158-20100506153913.patch</filename>
            <type>text/plain</type>
            <size>10586</size>
            <attacher name="James Robinson">jamesr</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXgg
OGYzNmExYTRkMDgxYWI4OWFmMTRjNGIxNWM0M2VjYTQzYmJjMjRkZi4uOGE1M2MzODRjYWQ3YmQx
NzZkODYzYzRhZGNjODU0NTM5ZDlkZDk1ZiAxMDA2NDQKLS0tIGEvV2ViQ29yZS9DaGFuZ2VMb2cK
KysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSwzNSBAQAorMjAxMC0wNS0wNCAgSmFt
ZXMgUm9iaW5zb24gIDxqYW1lc3JAY2hyb21pdW0ub3JnPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIEZpeCB3YXJuaW5ncyBlbWl0dGVkIGJ5IGdjYyA0
LjQuMSBvbiBsaW51eCBpbiBjaHJvbWl1bS1zcGVjaWZpYyBwbGF0Zm9ybSBncmFwaGljcyBmaWxl
cy4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTM4MTU4
CisKKyAgICAgICAgRml4ZXM6CisgICAgICAgIC0gcmVwbGFjZSBOVUxMIHdpdGggMAorICAgICAg
ICAtIHJlbW92ZSB1bnVzdWVkIGxvY2FscworICAgICAgICAtIGFkZCBwYXJlbnMgYXJvdW5kIGFt
YmlndW91cyBsb29raW5nIGNvbXBvdW5kIHByZWRpY2F0ZXMgbGlrZSAoYSB8fCBiICYmIGMpCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250TGludXguY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6YWRqdXN0VGV4dFJlbmRlck1vZGUpOgorICAgICAgICAoV2ViQ29yZTo6
VGV4dFJ1bldhbGtlcjo6VGV4dFJ1bldhbGtlcik6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVu
V2Fsa2VyOjpsZW5ndGgpOgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJ1bldhbGtlcjo6d2lkdGgp
OgorICAgICAgICAoV2ViQ29yZTo6VGV4dFJ1bldhbGtlcjo6Z2V0VGV4dFJ1bik6CisgICAgICAg
IChXZWJDb3JlOjpUZXh0UnVuV2Fsa2VyOjpnZXROb3JtYWxpemVkVGV4dFJ1bik6CisgICAgICAg
IChXZWJDb3JlOjpGb250OjpvZmZzZXRGb3JQb3NpdGlvbkZvckNvbXBsZXhUZXh0KToKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhTGludXguY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6c2V0dXBQYWludCk6CisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGFyZmJ1enpTa2lhLmNwcDoKKyAgICAg
ICAgKFdlYkNvcmU6OmdldE91dGxpbmVQb2ludCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9HcmFwaGljc0NvbnRleHQzRFNraWEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6R3Jh
cGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YSk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OmlzQ29v
cmRpbmF0ZVNraWFTYWZlKToKKyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6Zmls
bFJlY3QpOgorICAgICAgICAoV2ViQ29yZTo6R3JhcGhpY3NDb250ZXh0OjpzdHJva2VQYXRoKToK
KyAgICAgICAgKFdlYkNvcmU6OkdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUmVjdCk6CisKIDIwMTAt
MDUtMDYgIERhcmluIEFkbGVyICA8ZGFyaW5AYXBwbGUuY29tPgogCiAgICAgICAgIFJldmlld2Vk
IGJ5IEJldGggRGFraW4uCmRpZmYgLS1naXQgYS9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVu
ZGVyaW5nQ29udGV4dC5jcHAgYi9XZWJDb3JlL2h0bWwvY2FudmFzL1dlYkdMUmVuZGVyaW5nQ29u
dGV4dC5jcHAKaW5kZXggMDVhZjc1OWExOGE5MjVkMTljNzhiMmZhYTUzYzBhMzEwNzUwNTE1NS4u
NTRiYTE3ZmU3YzQ0Y2VlNjc4MWJkM2E5ODRmNTc3Y2VjMDY2MWUzYiAxMDA2NDQKLS0tIGEvV2Vi
Q29yZS9odG1sL2NhbnZhcy9XZWJHTFJlbmRlcmluZ0NvbnRleHQuY3BwCisrKyBiL1dlYkNvcmUv
aHRtbC9jYW52YXMvV2ViR0xSZW5kZXJpbmdDb250ZXh0LmNwcApAQCAtMTYzNCw3ICsxNjM0LDcg
QEAgUGFzc1JlZlB0cjxXZWJHTEFycmF5PiBXZWJHTFJlbmRlcmluZ0NvbnRleHQ6OnJlYWRQaXhl
bHMobG9uZyB4LCBsb25nIHksIHVuc2lnbmUKICAgICAgICAgbV9jb250ZXh0LT5zeW50aGVzaXpl
R0xFcnJvcihHcmFwaGljc0NvbnRleHQzRDo6SU5WQUxJRF9FTlVNKTsKICAgICAgICAgcmV0dXJu
IDA7CiAgICAgfQotICAgIGlmICghKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQzRDo6UkdCQSAm
JiB0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFIHx8IGZvcm1hdCA9PSBt
X2ltcGxlbWVudGF0aW9uQ29sb3JSZWFkRm9ybWF0ICYmIHR5cGUgPT0gbV9pbXBsZW1lbnRhdGlv
bkNvbG9yUmVhZFR5cGUpKSB7CisgICAgaWYgKCEoKGZvcm1hdCA9PSBHcmFwaGljc0NvbnRleHQz
RDo6UkdCQSAmJiB0eXBlID09IEdyYXBoaWNzQ29udGV4dDNEOjpVTlNJR05FRF9CWVRFKSB8fCAo
Zm9ybWF0ID09IG1faW1wbGVtZW50YXRpb25Db2xvclJlYWRGb3JtYXQgJiYgdHlwZSA9PSBtX2lt
cGxlbWVudGF0aW9uQ29sb3JSZWFkVHlwZSkpKSB7CiAgICAgICAgIG1fY29udGV4dC0+c3ludGhl
c2l6ZUdMRXJyb3IoR3JhcGhpY3NDb250ZXh0M0Q6OklOVkFMSURfT1BFUkFUSU9OKTsKICAgICAg
ICAgcmV0dXJuIDA7CiAgICAgfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9VVUlELmNw
cCBiL1dlYkNvcmUvcGxhdGZvcm0vVVVJRC5jcHAKaW5kZXggYjUwYzNjNGJkZmVlMDhjZWUxY2Jj
NWM5ZjgwNjU2YWQ5ODljOTFiMS4uODUyZTNhZTZjOGJiOWU2ZWI2ZWJjMWY3NTQ5NGIzODNiMTYz
OWIxNyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9VVUlELmNwcAorKysgYi9XZWJDb3Jl
L3BsYXRmb3JtL1VVSUQuY3BwCkBAIC04NSw3ICs4NSw4IEBAIFN0cmluZyBjcmVhdGVDYW5vbmlj
YWxVVUlEU3RyaW5nKCkKICAgICBpZiAoIWZwdHIpCiAgICAgICAgIHJldHVybiBTdHJpbmcoKTsK
ICAgICBjaGFyIHV1aWRTdHJbMzddID0gezB9OwotICAgIGZnZXRzKHV1aWRTdHIsIHNpemVvZih1
dWlkU3RyKSAtIDEsIGZwdHIpOworICAgIGlmICghZmdldHModXVpZFN0ciwgc2l6ZW9mKHV1aWRT
dHIpIC0gMSwgZnB0cikpCisgICAgICAgIHJldHVybiBTdHJpbmcoKTsKICAgICBmY2xvc2UoZnB0
cik7CiAgICAgU3RyaW5nIGNhbm9uaWNhbFV1aWRTdHIgPSBTdHJpbmcodXVpZFN0cikubG93ZXIo
KTsgLy8gbWFrZSBpdCBsb3dlci4KICAgICBBU1NFUlQoY2Fub25pY2FsVXVpZFN0clt1dWlkVmVy
c2lvbklkZW50aWZpZXJJbmRleF0gPT0gdXVpZFZlcnNpb25SZXF1aXJlZCk7CmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRMaW51eC5jcHAKaW5kZXggNGI0MDJh
M2I0OGYxNDRlYjhlOTBiZDM0MWJhNmQzMWIzMDBlYTRjYy4uNzAwYjNlZDAwYTJjY2RlZWUwMGMz
MjIxOTBkZjU0ZWQwMmE5ZTg1ZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jaHJvbWl1bS9Gb250TGludXguY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2hyb21pdW0vRm9udExpbnV4LmNwcApAQCAtNjQsNyArNjQsNyBAQCBzdGF0aWMgYm9vbCBpc0Nh
bnZhc011bHRpTGF5ZXJlZChTa0NhbnZhcyogY2FudmFzKQogICAgIHJldHVybiAhbGF5ZXJJdGVy
YXRvci5kb25lKCk7CiB9CiAKLXN0YXRpYyBib29sIGFkanVzdFRleHRSZW5kZXJNb2RlKFNrUGFp
bnQqIHBhaW50LCBib29sIGlzQ2FudmFzTXVsdGlMYXllcmVkKQorc3RhdGljIHZvaWQgYWRqdXN0
VGV4dFJlbmRlck1vZGUoU2tQYWludCogcGFpbnQsIGJvb2wgaXNDYW52YXNNdWx0aUxheWVyZWQp
CiB7CiAgICAgLy8gT3VyIGxheWVycyBvbmx5IGhhdmUgYSBzaW5nbGUgYWxwaGEgY2hhbm5lbC4g
VGhpcyBtZWFucyB0aGF0IHN1YnBpeGVsCiAgICAgLy8gcmVuZGVyZWQgdGV4dCBjYW5ub3QgYmUg
Y29tcG9zaXRpZWQgY29ycmVjdGx5IHdoZW4gdGhlIGxheWVyIGlzCkBAIC02MDUsNyArNjA1LDcg
QEAgaW50IEZvbnQ6Om9mZnNldEZvclBvc2l0aW9uRm9yQ29tcGxleFRleHQoY29uc3QgVGV4dFJ1
biYgcnVuLCBpbnQgeCwKICAgICAgICAgaWYgKHdhbGtlci5ydGwoKSkKICAgICAgICAgICAgIGJh
c2VQb3NpdGlvbiAtPSB3YWxrZXIubnVtQ29kZVBvaW50cygpOwogCi0gICAgICAgIGlmICh4IDwg
d2Fsa2VyLndpZHRoKCkpIHsKKyAgICAgICAgaWYgKHggPj0gMCAmJiB4IDwgd2Fsa2VyLndpZHRo
KCkpIHsKICAgICAgICAgICAgIC8vIFRoZSB4IHZhbHVlIGluIHF1ZXN0aW9uIGlzIHdpdGhpbiB0
aGlzIHNjcmlwdCBydW4uIFdlIGNvbnNpZGVyCiAgICAgICAgICAgICAvLyBlYWNoIGdseXBoIGlu
IHByZXNlbnRhdGlvbiBvcmRlciBhbmQgc3RvcCB3aGVuIHdlIGZpbmQgdGhlIG9uZQogICAgICAg
ICAgICAgLy8gY292ZXJpbmcgdGhpcyBwb3NpdGlvbi4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmNwcCBiL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vRm9udFBsYXRmb3JtRGF0YUxpbnV4LmNwcApp
bmRleCAyNDc1ZTY1OTQ2ZjE0OTBlNjFhYzIyMmQwYTY4ODNlNGQ3NTBlNmY5Li43YjIyYmFkZmNj
YTQ4NWUwNzY3NWJiNzBhMDdiY2Y1YzNhNWY5ZTBjIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2Nocm9taXVtL0ZvbnRQbGF0Zm9ybURhdGFMaW51eC5jcHAKKysrIGIvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJvbWl1bS9Gb250UGxhdGZvcm1EYXRhTGludXguY3Bw
CkBAIC0xNDgsNyArMTQ4LDcgQEAgdm9pZCBGb250UGxhdGZvcm1EYXRhOjpzZXR1cFBhaW50KFNr
UGFpbnQqIHBhaW50KSBjb25zdAogICAgIHBhaW50LT5zZXRGYWtlQm9sZFRleHQobV9mYWtlQm9s
ZCk7CiAgICAgcGFpbnQtPnNldFRleHRTa2V3WChtX2Zha2VJdGFsaWMgPyAtU0tfU2NhbGFyMSAv
IDQgOiAwKTsKIAotICAgIGlmIChtX3N0eWxlLnVzZUFudGlBbGlhcyA9PSAxIHx8IG1fc3R5bGUu
dXNlQW50aUFsaWFzID09IEZvbnRSZW5kZXJTdHlsZTo6Tm9QcmVmZXJlbmNlICYmIGlzU2tpYUFu
dGlBbGlhcykKKyAgICBpZiAobV9zdHlsZS51c2VBbnRpQWxpYXMgPT0gMSB8fCAobV9zdHlsZS51
c2VBbnRpQWxpYXMgPT0gRm9udFJlbmRlclN0eWxlOjpOb1ByZWZlcmVuY2UgJiYgaXNTa2lhQW50
aUFsaWFzKSkKICAgICAgICAgcGFpbnQtPnNldExDRFJlbmRlclRleHQobV9zdHlsZS51c2VTdWJw
aXhlbCA9PSBGb250UmVuZGVyU3R5bGU6Ok5vUHJlZmVyZW5jZSA/IGlzU2tpYVN1YnBpeGVsR2x5
cGhzIDogbV9zdHlsZS51c2VTdWJwaXhlbCk7CiB9CiAKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY2hyb21pdW0vSGFyZmJ1enpTa2lhLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2hyb21pdW0vSGFyZmJ1enpTa2lhLmNwcAppbmRleCBiZTNiMGQwODcyYjFh
ZWFlNjdiNTliY2RkMTQ0ODM2YWYwNDA0N2E0Li40ZmQzYmEwMDAwNDllOTgyZDE4ZmQ2N2QxZWNk
ZGIwNmNmOTdhYzY1IDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nocm9t
aXVtL0hhcmZidXp6U2tpYS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jaHJv
bWl1bS9IYXJmYnV6elNraWEuY3BwCkBAIC0xMzksNyArMTM5LDcgQEAgc3RhdGljIEhCX0Vycm9y
IGdldE91dGxpbmVQb2ludChIQl9Gb250IGhiRm9udCwgSEJfR2x5cGggZ2x5cGgsIGludCBmbGFn
cywgaGJfdWkKICAgICB1aW50MTZfdCBnbHlwaDE2ID0gZ2x5cGg7CiAgICAgU2tQYXRoIHBhdGg7
CiAgICAgcGFpbnQuZ2V0VGV4dFBhdGgoJmdseXBoMTYsIHNpemVvZihnbHlwaDE2KSwgMCwgMCwg
JnBhdGgpOwotICAgIGludCBudW1Qb2ludHMgPSBwYXRoLmdldFBvaW50cyhOVUxMLCAwKTsKKyAg
ICBpbnQgbnVtUG9pbnRzID0gcGF0aC5nZXRQb2ludHMoMCwgMCk7CiAgICAgaWYgKHBvaW50ID49
IG51bVBvaW50cykKICAgICAgICAgcmV0dXJuIEhCX0Vycl9JbnZhbGlkX1N1YlRhYmxlOwogICAg
IFNrUG9pbnQqIHBvaW50cyA9IHJlaW50ZXJwcmV0X2Nhc3Q8U2tQb2ludCo+KGZhc3RNYWxsb2Mo
c2l6ZW9mKFNrUG9pbnQpICogKHBvaW50ICsgMSkpKTsKZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHQzRFNraWEuY3BwIGIvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHAKaW5kZXggY2M0
Y2EyZWY4MTI3NTQxNWU1MzkzZWY0OTVhMTA1OTJhODNjMWFlMC4uZTc2ZWQ3YmFlNGJhMTU2NTUw
M2FkZDI4ZDQ5MDA4OTM0ODE1ZjhkZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9za2lhL0dyYXBoaWNzQ29udGV4dDNEU2tpYS5jcHAKQEAgLTU1LDEwICs1NSw5
IEBAIGJvb2wgR3JhcGhpY3NDb250ZXh0M0Q6OmdldEltYWdlRGF0YShJbWFnZSogaW1hZ2UsCiAg
ICAgICAgIHJldHVybiBmYWxzZTsKICAgICBTa0JpdG1hcCYgc2tpYUltYWdlUmVmID0gKnNraWFJ
bWFnZTsKICAgICBTa0F1dG9Mb2NrUGl4ZWxzIGxvY2soc2tpYUltYWdlUmVmKTsKLSAgICBpbnQg
d2lkdGggPSBza2lhSW1hZ2UtPndpZHRoKCk7CiAgICAgaW50IGhlaWdodCA9IHNraWFJbWFnZS0+
aGVpZ2h0KCk7CiAgICAgaW50IHJvd0J5dGVzID0gc2tpYUltYWdlLT5yb3dCeXRlcygpOwotICAg
IEFTU0VSVChyb3dCeXRlcyA9PSB3aWR0aCAqIDQpOworICAgIEFTU0VSVChyb3dCeXRlcyA9PSBz
a2lhSW1hZ2UtPndpZHRoKCkgKiA0KTsKICAgICB1aW50OF90KiBwaXhlbHMgPSByZWludGVycHJl
dF9jYXN0PHVpbnQ4X3QqPihza2lhSW1hZ2UtPmdldFBpeGVscygpKTsKICAgICBvdXRwdXRWZWN0
b3IucmVzaXplKHJvd0J5dGVzICogaGVpZ2h0KTsKICAgICBpbnQgc2l6ZSA9IHJvd0J5dGVzICog
aGVpZ2h0OwpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBo
aWNzQ29udGV4dFNraWEuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL0dyYXBo
aWNzQ29udGV4dFNraWEuY3BwCmluZGV4IDg5ODY2ODUyMDA5ZjZjOTM5Mjk0YTFhMTllZTU4MmVh
MWIzYmVjZWEuLmUxNmIzNzMwY2RiMzFiYzI3YmVjMTcwMTY4MzQwNjJlNDk1ZDYwYmEgMTAwNjQ0
Ci0tLSBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9HcmFwaGljc0NvbnRleHRTa2lh
LmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3NraWEvR3JhcGhpY3NDb250ZXh0
U2tpYS5jcHAKQEAgLTkxLDkgKzkxLDkgQEAgaW5saW5lIGZsb2F0IHNxdWFyZShmbG9hdCBuKQog
Ly8gYnVncy4gIExlYXZpbmcgdGhlIGNvZGUgaW4gZm9yIG5vdywgc28gd2UgY2FuIHJldmVydCBl
YXNpbHkgaWYgbmVjZXNzYXJ5LgogLy8gI2RlZmluZSBFTlNVUkVfVkFMVUVfU0FGRVRZX0ZPUl9T
S0lBCiAKKyNpZmRlZiBFTlNVUkVfVkFMVUVfU0FGRVRZX0ZPUl9TS0lBCiBzdGF0aWMgYm9vbCBp
c0Nvb3JkaW5hdGVTa2lhU2FmZShmbG9hdCBjb29yZCkKIHsKLSNpZmRlZiBFTlNVUkVfVkFMVUVf
U0FGRVRZX0ZPUl9TS0lBCiAgICAgLy8gRmlyc3QgY2hlY2sgZm9yIHZhbGlkIGZsb2F0cy4KICNp
ZiBkZWZpbmVkKF9NU0NfVkVSKQogICAgIGlmICghX2Zpbml0ZShjb29yZCkpCkBAIC0xMTAsMTAg
KzExMCw4IEBAIHN0YXRpYyBib29sIGlzQ29vcmRpbmF0ZVNraWFTYWZlKGZsb2F0IGNvb3JkKQog
ICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICByZXR1cm4gdHJ1ZTsKLSNlbHNlCi0gICAgcmV0
dXJuIHRydWU7Ci0jZW5kaWYKIH0KKyNlbmRpZgogCiBzdGF0aWMgYm9vbCBpc1BvaW50U2tpYVNh
ZmUoY29uc3QgU2tNYXRyaXgmIHRyYW5zZm9ybSwgY29uc3QgU2tQb2ludCYgcHQpCiB7CkBAIC03
MzQsOCArNzMyLDYgQEAgdm9pZCBHcmFwaGljc0NvbnRleHQ6OmZpbGxSZWN0KGNvbnN0IEZsb2F0
UmVjdCYgcmVjdCkKICAgICAgICAgQ2xpcFJlY3RUb0NhbnZhcygqcGxhdGZvcm1Db250ZXh0KCkt
PmNhbnZhcygpLCByLCAmcik7CiAgICAgfQogCi0gICAgY29uc3QgR3JhcGhpY3NDb250ZXh0U3Rh
dGUmIHN0YXRlID0gbV9jb21tb24tPnN0YXRlOwotCiAgICAgU2tQYWludCBwYWludDsKICAgICBw
bGF0Zm9ybUNvbnRleHQoKS0+c2V0dXBQYWludEZvckZpbGxpbmcoJnBhaW50KTsKICAgICBwbGF0
Zm9ybUNvbnRleHQoKS0+Y2FudmFzKCktPmRyYXdSZWN0KHIsIHBhaW50KTsKQEAgLTExMjIsMTEg
KzExMTgsOCBAQCB2b2lkIEdyYXBoaWNzQ29udGV4dDo6c3Ryb2tlUGF0aCgpCiAgICAgaWYgKCFp
c1BhdGhTa2lhU2FmZShnZXRDVE0oKSwgcGF0aCkpCiAgICAgICAgIHJldHVybjsKIAotICAgIGNv
bnN0IEdyYXBoaWNzQ29udGV4dFN0YXRlJiBzdGF0ZSA9IG1fY29tbW9uLT5zdGF0ZTsKLQogICAg
IFNrUGFpbnQgcGFpbnQ7CiAgICAgcGxhdGZvcm1Db250ZXh0KCktPnNldHVwUGFpbnRGb3JTdHJv
a2luZygmcGFpbnQsIDAsIDApOwotCiAgICAgcGxhdGZvcm1Db250ZXh0KCktPmNhbnZhcygpLT5k
cmF3UGF0aChwYXRoLCBwYWludCk7CiB9CiAKQEAgLTExMzgsMTIgKzExMzEsOSBAQCB2b2lkIEdy
YXBoaWNzQ29udGV4dDo6c3Ryb2tlUmVjdChjb25zdCBGbG9hdFJlY3QmIHJlY3QsIGZsb2F0IGxp
bmVXaWR0aCkKICAgICBpZiAoIWlzUmVjdFNraWFTYWZlKGdldENUTSgpLCByZWN0KSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgY29uc3QgR3JhcGhpY3NDb250ZXh0U3RhdGUmIHN0YXRlID0gbV9j
b21tb24tPnN0YXRlOwotCiAgICAgU2tQYWludCBwYWludDsKICAgICBwbGF0Zm9ybUNvbnRleHQo
KS0+c2V0dXBQYWludEZvclN0cm9raW5nKCZwYWludCwgMCwgMCk7CiAgICAgcGFpbnQuc2V0U3Ry
b2tlV2lkdGgoV2ViQ29yZUZsb2F0VG9Ta1NjYWxhcihsaW5lV2lkdGgpKTsKLQogICAgIHBsYXRm
b3JtQ29udGV4dCgpLT5jYW52YXMoKS0+ZHJhd1JlY3QocmVjdCwgcGFpbnQpOwogfQogCmRpZmYg
LS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAgYi9XZWJDb3Jl
L3BsYXRmb3JtL3NxbC9TUUxpdGVEYXRhYmFzZS5jcHAKaW5kZXggYjI0Y2QxMDY5NjczYmY3YWU3
MjY0YTgxNTU2OGEzY2I1NjgyOGU0ZS4uNzVmYzAzMmY2ZWIwNzkzYjBiM2NiMjViMWE5ZjkxN2U4
MmY4MWYzMSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9zcWwvU1FMaXRlRGF0YWJhc2Uu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vc3FsL1NRTGl0ZURhdGFiYXNlLmNwcApAQCAtMTMx
LDcgKzEzMSw3IEBAIHZvaWQgU1FMaXRlRGF0YWJhc2U6OnNldE1heGltdW1TaXplKGludDY0X3Qg
c2l6ZSkKICAgICBTUUxpdGVTdGF0ZW1lbnQgc3RhdGVtZW50KCp0aGlzLCAiUFJBR01BIG1heF9w
YWdlX2NvdW50ID0gIiArIFN0cmluZzo6bnVtYmVyKG5ld01heFBhZ2VDb3VudCkpOwogICAgIHN0
YXRlbWVudC5wcmVwYXJlKCk7CiAgICAgaWYgKHN0YXRlbWVudC5zdGVwKCkgIT0gU1FMUmVzdWx0
Um93KQotICAgICAgICBMT0dfRVJST1IoIkZhaWxlZCB0byBzZXQgbWF4aW11bSBzaXplIG9mIGRh
dGFiYXNlIHRvICVsbGkgYnl0ZXMiLCBzaXplKTsKKyAgICAgICAgTE9HX0VSUk9SKCJGYWlsZWQg
dG8gc2V0IG1heGltdW0gc2l6ZSBvZiBkYXRhYmFzZSB0byAlbGxpIGJ5dGVzIiwgc3RhdGljX2Nh
c3Q8bG9uZyBsb25nPihzaXplKSk7CiAKICAgICBlbmFibGVBdXRob3JpemVyKHRydWUpOwogCmRp
ZmYgLS1naXQgYS9XZWJDb3JlL3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAgYi9XZWJDb3Jl
L3htbC9YU0xUUHJvY2Vzc29yTGlieHNsdC5jcHAKaW5kZXggYTBlZDQ1MGMwOWM4MzVmYTI3MzE2
YzBkODlmY2I1N2VkZjVmZTFhYS4uOWMzZmFmZDg1YTc5ZTQ2ZjkyZTMxMzNlMmQzNjc1ZDNhMWE4
OGUzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS94bWwvWFNMVFByb2Nlc3NvckxpYnhzbHQuY3BwCisr
KyBiL1dlYkNvcmUveG1sL1hTTFRQcm9jZXNzb3JMaWJ4c2x0LmNwcApAQCAtMzE1LDcgKzMxNSw3
IEBAIGJvb2wgWFNMVFByb2Nlc3Nvcjo6dHJhbnNmb3JtVG9TdHJpbmcoTm9kZSogc291cmNlTm9k
ZSwgU3RyaW5nJiBtaW1lVHlwZSwgU3RyaW5nCiAgICAgICAgIGlmIChzaG91bGRGcmVlU291cmNl
RG9jKQogICAgICAgICAgICAgeG1sRnJlZURvYyhzb3VyY2VEb2MpOwogCi0gICAgICAgIGlmIChz
dWNjZXNzID0gc2F2ZVJlc3VsdFRvU3RyaW5nKHJlc3VsdERvYywgc2hlZXQsIHJlc3VsdFN0cmlu
ZykpIHsKKyAgICAgICAgaWYgKChzdWNjZXNzID0gc2F2ZVJlc3VsdFRvU3RyaW5nKHJlc3VsdERv
Yywgc2hlZXQsIHJlc3VsdFN0cmluZykpKSB7CiAgICAgICAgICAgICBtaW1lVHlwZSA9IHJlc3Vs
dE1JTUVUeXBlKHJlc3VsdERvYywgc2hlZXQpOwogICAgICAgICAgICAgcmVzdWx0RW5jb2Rpbmcg
PSAoY2hhciopcmVzdWx0RG9jLT5lbmNvZGluZzsKICAgICAgICAgfQo=
</data>
<flag name="review"
          id="39467"
          type_id="1"
          status="+"
          setter="eric"
    />
    <flag name="commit-queue"
          id="39468"
          type_id="3"
          status="-"
          setter="eric"
    />
          </attachment>
      

    </bug>

</bugzilla>