<?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>101115</bug_id>
          
          <creation_ts>2012-11-02 15:32:18 -0700</creation_ts>
          <short_desc>Implement SimpleFontData::platformBoundsForGlyph on skia</short_desc>
          <delta_ts>2012-11-05 10:18:27 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Platform</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Dave Barton">dbarton</reporter>
          <assigned_to name="Dave Barton">dbarton</assigned_to>
          <cc>dglazkov</cc>
    
    <cc>eric</cc>
    
    <cc>fred.wang</cc>
    
    <cc>inferno</cc>
    
    <cc>peter</cc>
    
    <cc>reed</cc>
    
    <cc>senorblanco</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>spartha80</cc>
    
    <cc>tony</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>757678</commentid>
    <comment_count>0</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-11-02 15:32:18 -0700</bug_when>
    <thetext>Implement SimpleFontDataSkia::platformBoundsForGlyph</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757687</commentid>
    <comment_count>1</comment_count>
      <attachid>172162</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-11-02 15:49:52 -0700</bug_when>
    <thetext>Created attachment 172162
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757691</commentid>
    <comment_count>2</comment_count>
      <attachid>172162</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-02 15:54:04 -0700</bug_when>
    <thetext>Comment on attachment 172162
Patch

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

Seems reasonable.  One of hte skia guys should say LGTM first.

&gt; Source/WebCore/platform/graphics/skia/SimpleFontDataSkia.cpp:242
&gt; +    SkASSERT(sizeof(glyph) == 2); // compile-time assert

Curious why this ASSERT is needed?  Could we just pass sizeof(glyph) instead of 2 to measureText?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757693</commentid>
    <comment_count>3</comment_count>
      <attachid>172162</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-02 15:54:33 -0700</bug_when>
    <thetext>Comment on attachment 172162
Patch

Attachment 172162 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14697815</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757694</commentid>
    <comment_count>4</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-11-02 15:56:04 -0700</bug_when>
    <thetext>This is needed for MathML in Chrome on linux. It&apos;s the most important patch to include now in Chrome 24 (other than security ones). Without this, it would be better to not enable MathML in Chrome on linux.

This is a duplicate of &lt;http://crbug.com/77095&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757699</commentid>
    <comment_count>5</comment_count>
      <attachid>172162</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-11-02 15:59:16 -0700</bug_when>
    <thetext>Comment on attachment 172162
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/skia/SimpleFontDataSkia.cpp:242
&gt;&gt; +    SkASSERT(sizeof(glyph) == 2); // compile-time assert
&gt; 
&gt; Curious why this ASSERT is needed?  Could we just pass sizeof(glyph) instead of 2 to measureText?

I just copied this from platformWidthForGlyph which comes next. I guess we could change both of them. This is my first time with skia, so I am being timid.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757704</commentid>
    <comment_count>6</comment_count>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-02 16:02:21 -0700</bug_when>
    <thetext>Timid is fine. :)  One of the Skia guys can set us straight.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757715</commentid>
    <comment_count>7</comment_count>
      <attachid>172168</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-11-02 16:08:18 -0700</bug_when>
    <thetext>Created attachment 172168
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757727</commentid>
    <comment_count>8</comment_count>
      <attachid>172162</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-11-02 16:18:57 -0700</bug_when>
    <thetext>Comment on attachment 172162
Patch

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

Sorry to spam you all with my dumbness. I can&apos;t compile this on my Mac, so I was going to cc you all after I got it working on cr-linux, but forgot.

&gt;&gt;&gt; Source/WebCore/platform/graphics/skia/SimpleFontDataSkia.cpp:242
&gt;&gt;&gt; +    SkASSERT(sizeof(glyph) == 2); // compile-time assert
&gt;&gt; 
&gt;&gt; Curious why this ASSERT is needed?  Could we just pass sizeof(glyph) instead of 2 to measureText?
&gt; 
&gt; I just copied this from platformWidthForGlyph which comes next. I guess we could change both of them. This is my first time with skia, so I am being timid.

Actually I now think it&apos;s good to assert that |glyph| is 2 bytes, like skia expects. If it was stored in a 4-byte int, then passing that as a 4-byte argument to skia might be bad - it&apos;d be a null (0) character followed by a real one, or the other way around for little-endian machines.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757783</commentid>
    <comment_count>9</comment_count>
      <attachid>172168</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-02 17:21:59 -0700</bug_when>
    <thetext>Comment on attachment 172168
Patch

Attachment 172168 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14692999

New failing tests:
fast/repaint/stacked-diacritics.html
mathml/xHeight.xhtml
fast/block/lineboxcontain/block-glyphs.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757864</commentid>
    <comment_count>10</comment_count>
      <attachid>172198</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-11-02 19:54:39 -0700</bug_when>
    <thetext>Created attachment 172198
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757881</commentid>
    <comment_count>11</comment_count>
      <attachid>172198</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-02 21:04:09 -0700</bug_when>
    <thetext>Comment on attachment 172198
Patch

Attachment 172198 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14720108

New failing tests:
fast/repaint/stacked-diacritics.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>757891</commentid>
    <comment_count>12</comment_count>
      <attachid>172198</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-02 21:47:31 -0700</bug_when>
    <thetext>Comment on attachment 172198
Patch

Attachment 172198 did not pass chromium-ews (chromium-xvfb):
Output: http://queues.webkit.org/results/14720117

New failing tests:
fast/repaint/stacked-diacritics.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758000</commentid>
    <comment_count>13</comment_count>
      <attachid>172230</attachid>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-11-03 14:32:45 -0700</bug_when>
    <thetext>Created attachment 172230
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758432</commentid>
    <comment_count>14</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-11-05 05:01:56 -0800</bug_when>
    <thetext>We could replace the assert with an assignment if that is preferrable.

uint16_t glyphID16 = SkToU16(glyph);

and then pass &amp;glyphID16 to the paint API. Not saying its better, its just a different way to be sure we pass the right thing to skia.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758565</commentid>
    <comment_count>15</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-11-05 08:33:45 -0800</bug_when>
    <thetext>(In reply to comment #14)
&gt; We could replace the assert with an assignment if that is preferrable.
&gt; 
&gt; uint16_t glyphID16 = SkToU16(glyph);
&gt; 
&gt; and then pass &amp;glyphID16 to the paint API. Not saying its better, its just a different way to be sure we pass the right thing to skia.

This apparently fails in debug mode if glyph ≥ 2^16, and succeeds otherwise. Actually I prefer the current code, because if we ever change Glyph to be an unsigned int instead of unsigned short, e.g. to handle Unicode characters ≥ 2^16, then I think it&apos;s better to get the failure as soon as possible (not wait until we actually pass in a non-BMP codepoint). On the other hand, you are the expert on this. :) Thanks for the help!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758569</commentid>
    <comment_count>16</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-11-05 08:38:15 -0800</bug_when>
    <thetext>exactly! If it fails, then we won&apos;t draw the right glyph. In the current code, we will silently draw the wrong thing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758598</commentid>
    <comment_count>17</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-11-05 09:06:33 -0800</bug_when>
    <thetext>In the current code, we assert sizeof(glyph) == 2, so we can&apos;t pass a number ≥ 2^16.

What if I leave the assert, and also add your line:
uint16_t glyphID16 = SkToU16(glyph);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758601</commentid>
    <comment_count>18</comment_count>
    <who name="Mike Reed">reed</who>
    <bug_when>2012-11-05 09:08:05 -0800</bug_when>
    <thetext>I&apos;m fine either way. Just wanted to mention the alternate style, but I do not want to force a new patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758609</commentid>
    <comment_count>19</comment_count>
    <who name="Dave Barton">dbarton</who>
    <bug_when>2012-11-05 09:24:44 -0800</bug_when>
    <thetext>(In reply to comment #18)
&gt; I&apos;m fine either way. Just wanted to mention the alternate style, but I do not want to force a new patch.

I can live with the current patch. :) So is this ok for Eric or Tony or someone to r+, or do you want to? Or would reviewers prefer a new patch? (I don&apos;t mind making one if necessary.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758621</commentid>
    <comment_count>20</comment_count>
      <attachid>172230</attachid>
    <who name="Eric Seidel (no email)">eric</who>
    <bug_when>2012-11-05 09:48:16 -0800</bug_when>
    <thetext>Comment on attachment 172230
Patch

It sounds like Mike thinks it&apos;s OK from the Skia side.  LGTM.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758654</commentid>
    <comment_count>21</comment_count>
      <attachid>172230</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 10:18:22 -0800</bug_when>
    <thetext>Comment on attachment 172230
Patch

Clearing flags on attachment: 172230

Committed r133494: &lt;http://trac.webkit.org/changeset/133494&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>758655</commentid>
    <comment_count>22</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-11-05 10:18:27 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172162</attachid>
            <date>2012-11-02 15:49:52 -0700</date>
            <delta_ts>2012-11-02 16:18:57 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101115-20121102154811.patch</filename>
            <type>text/plain</type>
            <size>3715</size>
            <attacher name="Dave Barton">dbarton</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMzM2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTAyICBEYXZpZCBC
YXJ0b24gIDxkYmFydG9uQG1hdGhzY3JpYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBTaW1w
bGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHNGb3JHbHlwaCBvbiBza2lhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gaXMg
c2ltaWxhciB0byBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoIG9uIHNraWEu
CisKKyAgICAgICAgVGVzdGVkIGJ5OgorICAgICAgICBmYXN0L2Jsb2NrL2xpbmVib3hjb250YWlu
L2Jsb2NrLWdseXBocy1yZXBsYWNlZC5odG1sCisgICAgICAgIGZhc3QvYmxvY2svbGluZWJveGNv
bnRhaW4vZ2x5cGhzLmh0bWwKKyAgICAgICAgbWF0aG1sL3ByZXNlbnRhdGlvbi8qCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHNGb3JHbHlwaCk6CisK
IDIwMTItMTEtMDIgIFN0ZXBoZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZWR1Y2UgcmVkdW5kYW50IGNvZGUgaW4gU2ltcGxlRm9udERhdGFbcGxhdGZvcm1d
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnRE
YXRhU2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9TaW1wbGVGb250RGF0YVNraWEuY3BwCShyZXZpc2lvbiAxMzMyMzgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIzNiw3ICsyMzYsMjQgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6
ZGV0ZXJtaW5lUGl0Y2goKQogCiBGbG9hdFJlY3QgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtQm91
bmRzRm9yR2x5cGgoR2x5cGgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEZsb2F0UmVjdCgpOworICAg
IGlmICghbV9wbGF0Zm9ybURhdGEuc2l6ZSgpKQorICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7
CisKKyAgICBTa0FTU0VSVChzaXplb2YoZ2x5cGgpID09IDIpOyAvLyBjb21waWxlLXRpbWUgYXNz
ZXJ0CisKKyAgICBTa1BhaW50IHBhaW50OworCisgICAgbV9wbGF0Zm9ybURhdGEuc2V0dXBQYWlu
dCgmcGFpbnQpOworCisgICAgcGFpbnQuc2V0VGV4dEVuY29kaW5nKFNrUGFpbnQ6OmtHbHlwaElE
X1RleHRFbmNvZGluZyk7CisgICAgU2tSZWN0IGJvdW5kczsKKyAgICBwYWludC5tZWFzdXJlVGV4
dCgmZ2x5cGgsIDIsICZib3VuZHMpOworICAgIGlmICghcGFpbnQuaXNTdWJwaXhlbFRleHQoKSkg
eworICAgICAgICBTa0lSZWN0IGlyOworICAgICAgICBib3VuZHMucm91bmQoJmlyKTsKKyAgICAg
ICAgYm91bmRzLnNldChpcik7CisgICAgfQorICAgIHJldHVybiBGbG9hdFJlY3QoYm91bmRzKTsK
IH0KICAgICAKIGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5
cGggZ2x5cGgpIGNvbnN0CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzMzNjIpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMS0wMiAg
RGF2aWQgQmFydG9uICA8ZGJhcnRvbkBtYXRoc2NyaWJlLmNvbT4KKworICAgICAgICBJbXBsZW1l
bnQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtQm91bmRzRm9yR2x5cGggb24gc2tpYQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTE1CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQSBjb3VwbGUgbGluZWJv
eGNvbnRhaW4gdGVzdHMgd2lsbCBuZWVkIHJlYmFzZWxpbmluZy4KKworICAgICAgICAqIHBsYXRm
b3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnM6CisKIDIwMTItMTEtMDIgIEFsaWNlIEJveGhh
bGwgIDxhYm94aGFsbEBjaHJvbWl1bS5vcmc+CiAKICAgICAgICAgVW5yZXZpZXdlZCBnYXJkZW5p
bmcuIE1hcmsgdmlkZW8tbWVkaWEtc291cmNlLXN0YXRlLWNoYW5nZXMuaHRtbCBhcyBmbGFreS4K
SW5kZXg6IExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9u
cwkocmV2aXNpb24gMTMzMjU5KQorKysgTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVz
dEV4cGVjdGF0aW9ucwkod29ya2luZyBjb3B5KQpAQCAtMjYzNCw5ICsyNjM0LDkgQEAgY3JidWcu
Y29tLzc2NjEwIFsgTWFjIFdpbiBEZWJ1ZyBdIHBsYXRmbwogY3JidWcuY29tLzc2NjE2IFsgQW5k
cm9pZCBMaW51eCBXaW4gXSBmYXN0L3RleHQvZW1waGFzaXMtY29tYmluZWQtdGV4dC5odG1sIFsg
RmFpbHVyZSBdCiBjcmJ1Zy5jb20vNzY2MTYgWyBTbm93TGVvcGFyZCBdIGZhc3QvdGV4dC9lbXBo
YXNpcy1jb21iaW5lZC10ZXh0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3MgXQogCi0jIE5l
dyBDU1MzIGZlYXR1cmUgaW4gcjgxNjg0LiBTb21lIHRlc3RzIGZhaWwgb3V0c2lkZSBNYWMuCi1j
cmJ1Zy5jb20vNzcwOTUgWyBBbmRyb2lkIExpbnV4IFdpbiBdIGZhc3QvYmxvY2svbGluZWJveGNv
bnRhaW4vYmxvY2stZ2x5cGhzLXJlcGxhY2VkLmh0bWwgWyBGYWlsdXJlIF0KLWNyYnVnLmNvbS83
NzA5NSBbIEFuZHJvaWQgTGludXggV2luIF0gZmFzdC9ibG9jay9saW5lYm94Y29udGFpbi9nbHlw
aHMuaHRtbCBbIEZhaWx1cmUgXQorIyBOZXcgQ1NTMyBmZWF0dXJlIGluIHI4MTY4NC4gU29tZSB0
ZXN0cyBmYWlsIG91dHNpZGUgTWFjLiBUaGV5IHNob3VsZCBwYXNzIGFuZCBuZWVkIHJlYmFzZWxp
bmUgbm93LgorY3JidWcuY29tLzc3MDk1IFsgQW5kcm9pZCBMaW51eCBXaW4gXSBmYXN0L2Jsb2Nr
L2xpbmVib3hjb250YWluL2Jsb2NrLWdseXBocy1yZXBsYWNlZC5odG1sIFsgRmFpbHVyZSBQYXNz
IF0KK2NyYnVnLmNvbS83NzA5NSBbIEFuZHJvaWQgTGludXggV2luIF0gZmFzdC9ibG9jay9saW5l
Ym94Y29udGFpbi9nbHlwaHMuaHRtbCBbIEZhaWx1cmUgUGFzcyBdCiAKICMgSGFzIGJlZW4gdGlt
aW5nIG91dCwgaW5pdGlhdGVkIGF0OgogIyBXZWJraXQgcGF0Y2hlcyBpbiByYW5nZSBbcjgxOTc2
LCByODE5ODFdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172168</attachid>
            <date>2012-11-02 16:08:18 -0700</date>
            <delta_ts>2012-11-02 19:54:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101115-20121102160637.patch</filename>
            <type>text/plain</type>
            <size>3845</size>
            <attacher name="Dave Barton">dbarton</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMzM2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBACisyMDEyLTExLTAyICBEYXZpZCBC
YXJ0b24gIDxkYmFydG9uQG1hdGhzY3JpYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBTaW1w
bGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHNGb3JHbHlwaCBvbiBza2lhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gaXMg
c2ltaWxhciB0byBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoIG9uIHNraWEu
CisKKyAgICAgICAgVGVzdGVkIGJ5OgorICAgICAgICBmYXN0L2Jsb2NrL2xpbmVib3hjb250YWlu
L2Jsb2NrLWdseXBocy1yZXBsYWNlZC5odG1sCisgICAgICAgIGZhc3QvYmxvY2svbGluZWJveGNv
bnRhaW4vZ2x5cGhzLmh0bWwKKyAgICAgICAgbWF0aG1sL3ByZXNlbnRhdGlvbi8qCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHNGb3JHbHlwaCk6CisK
IDIwMTItMTEtMDIgIFN0ZXBoZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAog
ICAgICAgICBSZWR1Y2UgcmVkdW5kYW50IGNvZGUgaW4gU2ltcGxlRm9udERhdGFbcGxhdGZvcm1d
CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnRE
YXRhU2tpYS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3Mvc2tpYS9TaW1wbGVGb250RGF0YVNraWEuY3BwCShyZXZpc2lvbiAxMzMyMzgpCisrKyBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5jcHAJ
KHdvcmtpbmcgY29weSkKQEAgLTIzNCw5ICsyMzQsMjYgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6
ZGV0ZXJtaW5lUGl0Y2goKQogICAgIG1fdHJlYXRBc0ZpeGVkUGl0Y2ggPSBwbGF0Zm9ybURhdGEo
KS5pc0ZpeGVkUGl0Y2goKTsKIH0KIAotRmxvYXRSZWN0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9y
bUJvdW5kc0ZvckdseXBoKEdseXBoKSBjb25zdAorRmxvYXRSZWN0IFNpbXBsZUZvbnREYXRhOjpw
bGF0Zm9ybUJvdW5kc0ZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogewotICAgIHJldHVybiBG
bG9hdFJlY3QoKTsKKyAgICBpZiAoIW1fcGxhdGZvcm1EYXRhLnNpemUoKSkKKyAgICAgICAgcmV0
dXJuIEZsb2F0UmVjdCgpOworCisgICAgU2tBU1NFUlQoc2l6ZW9mKGdseXBoKSA9PSAyKTsgLy8g
Y29tcGlsZS10aW1lIGFzc2VydAorCisgICAgU2tQYWludCBwYWludDsKKworICAgIG1fcGxhdGZv
cm1EYXRhLnNldHVwUGFpbnQoJnBhaW50KTsKKworICAgIHBhaW50LnNldFRleHRFbmNvZGluZyhT
a1BhaW50OjprR2x5cGhJRF9UZXh0RW5jb2RpbmcpOworICAgIFNrUmVjdCBib3VuZHM7CisgICAg
cGFpbnQubWVhc3VyZVRleHQoJmdseXBoLCAyLCAmYm91bmRzKTsKKyAgICBpZiAoIXBhaW50Lmlz
U3VicGl4ZWxUZXh0KCkpIHsKKyAgICAgICAgU2tJUmVjdCBpcjsKKyAgICAgICAgYm91bmRzLnJv
dW5kKCZpcik7CisgICAgICAgIGJvdW5kcy5zZXQoaXIpOworICAgIH0KKyAgICByZXR1cm4gRmxv
YXRSZWN0KGJvdW5kcyk7CiB9CiAgICAgCiBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1X
aWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTMzMzYy
KQorKysgTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQg
QEAKKzIwMTItMTEtMDIgIERhdmlkIEJhcnRvbiAgPGRiYXJ0b25AbWF0aHNjcmliZS5jb20+CisK
KyAgICAgICAgSW1wbGVtZW50IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBo
IG9uIHNraWEKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lk
PTEwMTExNQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IEEgY291cGxlIGxpbmVib3hjb250YWluIHRlc3RzIHdpbGwgbmVlZCByZWJhc2VsaW5pbmcuCisK
KyAgICAgICAgKiBwbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zOgorCiAyMDEyLTEx
LTAyICBBbGljZSBCb3hoYWxsICA8YWJveGhhbGxAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQgZ2FyZGVuaW5nLiBNYXJrIHZpZGVvLW1lZGlhLXNvdXJjZS1zdGF0ZS1jaGFuZ2Vz
Lmh0bWwgYXMgZmxha3kuCkluZGV4OiBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0
RXhwZWN0YXRpb25zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIExheW91dFRlc3RzL3BsYXRmb3JtL2Nocm9taXVt
L1Rlc3RFeHBlY3RhdGlvbnMJKHJldmlzaW9uIDEzMzI1OSkKKysrIExheW91dFRlc3RzL3BsYXRm
b3JtL2Nocm9taXVtL1Rlc3RFeHBlY3RhdGlvbnMJKHdvcmtpbmcgY29weSkKQEAgLTI2MzQsOSAr
MjYzNCw5IEBAIGNyYnVnLmNvbS83NjYxMCBbIE1hYyBXaW4gRGVidWcgXSBwbGF0Zm8KIGNyYnVn
LmNvbS83NjYxNiBbIEFuZHJvaWQgTGludXggV2luIF0gZmFzdC90ZXh0L2VtcGhhc2lzLWNvbWJp
bmVkLXRleHQuaHRtbCBbIEZhaWx1cmUgXQogY3JidWcuY29tLzc2NjE2IFsgU25vd0xlb3BhcmQg
XSBmYXN0L3RleHQvZW1waGFzaXMtY29tYmluZWQtdGV4dC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVy
ZSBQYXNzIF0KIAotIyBOZXcgQ1NTMyBmZWF0dXJlIGluIHI4MTY4NC4gU29tZSB0ZXN0cyBmYWls
IG91dHNpZGUgTWFjLgotY3JidWcuY29tLzc3MDk1IFsgQW5kcm9pZCBMaW51eCBXaW4gXSBmYXN0
L2Jsb2NrL2xpbmVib3hjb250YWluL2Jsb2NrLWdseXBocy1yZXBsYWNlZC5odG1sIFsgRmFpbHVy
ZSBdCi1jcmJ1Zy5jb20vNzcwOTUgWyBBbmRyb2lkIExpbnV4IFdpbiBdIGZhc3QvYmxvY2svbGlu
ZWJveGNvbnRhaW4vZ2x5cGhzLmh0bWwgWyBGYWlsdXJlIF0KKyMgTmV3IENTUzMgZmVhdHVyZSBp
biByODE2ODQuIFNvbWUgdGVzdHMgZmFpbCBvdXRzaWRlIE1hYy4gVGhleSBzaG91bGQgcGFzcyBh
bmQgbmVlZCByZWJhc2VsaW5lIG5vdy4KK2NyYnVnLmNvbS83NzA5NSBbIEFuZHJvaWQgTGludXgg
V2luIF0gZmFzdC9ibG9jay9saW5lYm94Y29udGFpbi9ibG9jay1nbHlwaHMtcmVwbGFjZWQuaHRt
bCBbIEZhaWx1cmUgUGFzcyBdCitjcmJ1Zy5jb20vNzcwOTUgWyBBbmRyb2lkIExpbnV4IFdpbiBd
IGZhc3QvYmxvY2svbGluZWJveGNvbnRhaW4vZ2x5cGhzLmh0bWwgWyBGYWlsdXJlIFBhc3MgXQog
CiAjIEhhcyBiZWVuIHRpbWluZyBvdXQsIGluaXRpYXRlZCBhdDoKICMgV2Via2l0IHBhdGNoZXMg
aW4gcmFuZ2UgW3I4MTk3NiwgcjgxOTgxXQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172198</attachid>
            <date>2012-11-02 19:54:39 -0700</date>
            <delta_ts>2012-11-03 14:32:42 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101115-20121102195258.patch</filename>
            <type>text/plain</type>
            <size>3925</size>
            <attacher name="Dave Barton">dbarton</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMzM2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTExLTAyICBEYXZpZCBC
YXJ0b24gIDxkYmFydG9uQG1hdGhzY3JpYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBTaW1w
bGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHNGb3JHbHlwaCBvbiBza2lhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gaXMg
c2ltaWxhciB0byBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoIG9uIHNraWEu
CisKKyAgICAgICAgVGVzdGVkIGJ5OiBmYXN0L2Jsb2NrL2xpbmVib3hjb250YWluLypnbHlwaHMq
LCBtYXRobWwvcHJlc2VudGF0aW9uLyoKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvU2ltcGxlRm9udERhdGFTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnRE
YXRhOjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKToKKwogMjAxMi0xMS0wMiAgU3RlcGhlbiBDaGVu
bmV5ICA8c2NoZW5uZXlAY2hyb21pdW0ub3JnPgogCiAgICAgICAgIFJlZHVjZSByZWR1bmRhbnQg
Y29kZSBpbiBTaW1wbGVGb250RGF0YVtwbGF0Zm9ybV0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3NraWEvU2ltcGxlRm9udERhdGFTa2lhLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tp
YS5jcHAJKHJldmlzaW9uIDEzMzIzOCkKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL3NraWEvU2ltcGxlRm9udERhdGFTa2lhLmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjM0LDkg
KzIzNCwyNiBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpkZXRlcm1pbmVQaXRjaCgpCiAgICAgbV90
cmVhdEFzRml4ZWRQaXRjaCA9IHBsYXRmb3JtRGF0YSgpLmlzRml4ZWRQaXRjaCgpOwogfQogCi1G
bG9hdFJlY3QgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtQm91bmRzRm9yR2x5cGgoR2x5cGgpIGNv
bnN0CitGbG9hdFJlY3QgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtQm91bmRzRm9yR2x5cGgoR2x5
cGggZ2x5cGgpIGNvbnN0CiB7Ci0gICAgcmV0dXJuIEZsb2F0UmVjdCgpOworICAgIGlmICghbV9w
bGF0Zm9ybURhdGEuc2l6ZSgpKQorICAgICAgICByZXR1cm4gRmxvYXRSZWN0KCk7CisKKyAgICBT
a0FTU0VSVChzaXplb2YoZ2x5cGgpID09IDIpOyAvLyBjb21waWxlLXRpbWUgYXNzZXJ0CisKKyAg
ICBTa1BhaW50IHBhaW50OworCisgICAgbV9wbGF0Zm9ybURhdGEuc2V0dXBQYWludCgmcGFpbnQp
OworCisgICAgcGFpbnQuc2V0VGV4dEVuY29kaW5nKFNrUGFpbnQ6OmtHbHlwaElEX1RleHRFbmNv
ZGluZyk7CisgICAgU2tSZWN0IGJvdW5kczsKKyAgICBwYWludC5tZWFzdXJlVGV4dCgmZ2x5cGgs
IDIsICZib3VuZHMpOworICAgIGlmICghcGFpbnQuaXNTdWJwaXhlbFRleHQoKSkgeworICAgICAg
ICBTa0lSZWN0IGlyOworICAgICAgICBib3VuZHMucm91bmQoJmlyKTsKKyAgICAgICAgYm91bmRz
LnNldChpcik7CisgICAgfQorICAgIHJldHVybiBGbG9hdFJlY3QoYm91bmRzKTsKIH0KICAgICAK
IGZsb2F0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgp
IGNvbnN0CkluZGV4OiBMYXlvdXRUZXN0cy9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCShyZXZpc2lvbiAxMzMzNjIpCisrKyBMYXlvdXRUZXN0cy9DaGFuZ2VM
b2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAxMi0xMS0wMiAgRGF2aWQgQmFy
dG9uICA8ZGJhcnRvbkBtYXRoc2NyaWJlLmNvbT4KKworICAgICAgICBJbXBsZW1lbnQgU2ltcGxl
Rm9udERhdGE6OnBsYXRmb3JtQm91bmRzRm9yR2x5cGggb24gc2tpYQorICAgICAgICBodHRwczov
L2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTAxMTE1CisKKyAgICAgICAgUmV2aWV3
ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgU29tZSBsaW5lYm94Y29udGFpbiB0ZXN0
cyB3aWxsIG5lZWQgcmViYXNlbGluaW5nLgorCisgICAgICAgICogcGxhdGZvcm0vY2hyb21pdW0v
VGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMi0xMS0wMiAgQWxpY2UgQm94aGFsbCAgPGFib3hoYWxs
QGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdhcmRlbmluZy4gTWFyayB2aWRl
by1tZWRpYS1zb3VyY2Utc3RhdGUtY2hhbmdlcy5odG1sIGFzIGZsYWt5LgpJbmRleDogTGF5b3V0
VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9ucwo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBM
YXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25zCShyZXZpc2lvbiAx
MzMzNzkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0YXRpb25z
CSh3b3JraW5nIGNvcHkpCkBAIC0yNjMxLDkgKzI2MzEsMTEgQEAgY3JidWcuY29tLzc2NjEwIFsg
TWFjIFdpbiBEZWJ1ZyBdIHBsYXRmbwogY3JidWcuY29tLzc2NjE2IFsgQW5kcm9pZCBMaW51eCBX
aW4gXSBmYXN0L3RleHQvZW1waGFzaXMtY29tYmluZWQtdGV4dC5odG1sIFsgRmFpbHVyZSBdCiBj
cmJ1Zy5jb20vNzY2MTYgWyBTbm93TGVvcGFyZCBdIGZhc3QvdGV4dC9lbXBoYXNpcy1jb21iaW5l
ZC10ZXh0Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIFBhc3MgXQogCi0jIE5ldyBDU1MzIGZlYXR1
cmUgaW4gcjgxNjg0LiBTb21lIHRlc3RzIGZhaWwgb3V0c2lkZSBNYWMuCi1jcmJ1Zy5jb20vNzcw
OTUgWyBBbmRyb2lkIExpbnV4IFdpbiBdIGZhc3QvYmxvY2svbGluZWJveGNvbnRhaW4vYmxvY2st
Z2x5cGhzLXJlcGxhY2VkLmh0bWwgWyBGYWlsdXJlIF0KLWNyYnVnLmNvbS83NzA5NSBbIEFuZHJv
aWQgTGludXggV2luIF0gZmFzdC9ibG9jay9saW5lYm94Y29udGFpbi9nbHlwaHMuaHRtbCBbIEZh
aWx1cmUgXQorIyBOZXcgQ1NTMyBmZWF0dXJlIGluIHI4MTY4NC4gU29tZSB0ZXN0cyBmYWlsIG91
dHNpZGUgTWFjLiBUaGV5IHNob3VsZCBiZSBvayBhbmQgbmVlZCByZWJhc2VsaW5lIGFmdGVyIGJ1
ZyAxMDExMTUuCitjcmJ1Zy5jb20vNzcwOTUgWyBBbmRyb2lkIExpbnV4IFdpbiBdIGZhc3QvYmxv
Y2svbGluZWJveGNvbnRhaW4vYmxvY2stZ2x5cGhzLXJlcGxhY2VkLmh0bWwgWyBGYWlsdXJlIFBh
c3MgXQorY3JidWcuY29tLzc3MDk1IFsgQW5kcm9pZCBMaW51eCBXaW4gXSBmYXN0L2Jsb2NrL2xp
bmVib3hjb250YWluL2dseXBocy5odG1sIFsgRmFpbHVyZSBQYXNzIF0KK3dlYmtpdC5vcmcvYi8x
MDExMTUgWyBMaW51eCBdIGZhc3QvYmxvY2svbGluZWJveGNvbnRhaW4vYmxvY2stZ2x5cGhzLmh0
bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcvYi8xMDExMTUgWyBMaW51eCBdIG1hdGhtbC94SGVp
Z2h0LnhodG1sIFsgRmFpbHVyZSBdCiAKICMgSGFzIGJlZW4gdGltaW5nIG91dCwgaW5pdGlhdGVk
IGF0OgogIyBXZWJraXQgcGF0Y2hlcyBpbiByYW5nZSBbcjgxOTc2LCByODE5ODFdCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>172230</attachid>
            <date>2012-11-03 14:32:45 -0700</date>
            <delta_ts>2012-11-05 10:18:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-101115-20121103143103.patch</filename>
            <type>text/plain</type>
            <size>5568</size>
            <attacher name="Dave Barton">dbarton</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDEzMzM2MikKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDE3IEBACisyMDEyLTExLTAyICBEYXZpZCBC
YXJ0b24gIDxkYmFydG9uQG1hdGhzY3JpYmUuY29tPgorCisgICAgICAgIEltcGxlbWVudCBTaW1w
bGVGb250RGF0YTo6cGxhdGZvcm1Cb3VuZHNGb3JHbHlwaCBvbiBza2lhCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xMDExMTUKKworICAgICAgICBSZXZp
ZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBUaGUgaW1wbGVtZW50YXRpb24gaXMg
c2ltaWxhciB0byBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoIG9uIHNraWEu
CisKKyAgICAgICAgVGVzdGVkIGJ5OiBmYXN0L2Jsb2NrL2xpbmVib3hjb250YWluLypnbHlwaHMq
LCBtYXRobWwvcHJlc2VudGF0aW9uLyoKKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3Nr
aWEvU2ltcGxlRm9udERhdGFTa2lhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OlNpbXBsZUZvbnRE
YXRhOjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoKTogSW1wbGVtZW50ZWQuCisKIDIwMTItMTEtMDIg
IFN0ZXBoZW4gQ2hlbm5leSAgPHNjaGVubmV5QGNocm9taXVtLm9yZz4KIAogICAgICAgICBSZWR1
Y2UgcmVkdW5kYW50IGNvZGUgaW4gU2ltcGxlRm9udERhdGFbcGxhdGZvcm1dCkluZGV4OiBTb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5jcHAK
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvc2tpYS9TaW1w
bGVGb250RGF0YVNraWEuY3BwCShyZXZpc2lvbiAxMzMyMzgpCisrKyBTb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9za2lhL1NpbXBsZUZvbnREYXRhU2tpYS5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTIzNCw5ICsyMzQsMjYgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6ZGV0ZXJtaW5lUGl0
Y2goKQogICAgIG1fdHJlYXRBc0ZpeGVkUGl0Y2ggPSBwbGF0Zm9ybURhdGEoKS5pc0ZpeGVkUGl0
Y2goKTsKIH0KIAotRmxvYXRSZWN0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5kc0Zvckds
eXBoKEdseXBoKSBjb25zdAorRmxvYXRSZWN0IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5k
c0ZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogewotICAgIHJldHVybiBGbG9hdFJlY3QoKTsK
KyAgICBpZiAoIW1fcGxhdGZvcm1EYXRhLnNpemUoKSkKKyAgICAgICAgcmV0dXJuIEZsb2F0UmVj
dCgpOworCisgICAgU2tBU1NFUlQoc2l6ZW9mKGdseXBoKSA9PSAyKTsgLy8gY29tcGlsZS10aW1l
IGFzc2VydAorCisgICAgU2tQYWludCBwYWludDsKKworICAgIG1fcGxhdGZvcm1EYXRhLnNldHVw
UGFpbnQoJnBhaW50KTsKKworICAgIHBhaW50LnNldFRleHRFbmNvZGluZyhTa1BhaW50OjprR2x5
cGhJRF9UZXh0RW5jb2RpbmcpOworICAgIFNrUmVjdCBib3VuZHM7CisgICAgcGFpbnQubWVhc3Vy
ZVRleHQoJmdseXBoLCAyLCAmYm91bmRzKTsKKyAgICBpZiAoIXBhaW50LmlzU3VicGl4ZWxUZXh0
KCkpIHsKKyAgICAgICAgU2tJUmVjdCBpcjsKKyAgICAgICAgYm91bmRzLnJvdW5kKCZpcik7Cisg
ICAgICAgIGJvdW5kcy5zZXQoaXIpOworICAgIH0KKyAgICByZXR1cm4gRmxvYXRSZWN0KGJvdW5k
cyk7CiB9CiAgICAgCiBmbG9hdCBTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBo
KEdseXBoIGdseXBoKSBjb25zdApJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMTMzMzYyKQorKysgTGF5b3V0
VGVzdHMvQ2hhbmdlTG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMTQgQEAKKzIwMTItMTEt
MDIgIERhdmlkIEJhcnRvbiAgPGRiYXJ0b25AbWF0aHNjcmliZS5jb20+CisKKyAgICAgICAgSW1w
bGVtZW50IFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUJvdW5kc0ZvckdseXBoIG9uIHNraWEKKyAg
ICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTEwMTExNQorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFNvbWUgbGluZWJv
eGNvbnRhaW4vZXRjLiB0ZXN0cyB3aWxsIG5lZWQgcmViYXNlbGluaW5nLgorCisgICAgICAgICog
cGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9uczoKKwogMjAxMi0xMS0wMiAgQWxpY2Ug
Qm94aGFsbCAgPGFib3hoYWxsQGNocm9taXVtLm9yZz4KIAogICAgICAgICBVbnJldmlld2VkIGdh
cmRlbmluZy4gTWFyayB2aWRlby1tZWRpYS1zb3VyY2Utc3RhdGUtY2hhbmdlcy5odG1sIGFzIGZs
YWt5LgpJbmRleDogTGF5b3V0VGVzdHMvcGxhdGZvcm0vY2hyb21pdW0vVGVzdEV4cGVjdGF0aW9u
cwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1bS9UZXN0RXhwZWN0
YXRpb25zCShyZXZpc2lvbiAxMzMzNzkpCisrKyBMYXlvdXRUZXN0cy9wbGF0Zm9ybS9jaHJvbWl1
bS9UZXN0RXhwZWN0YXRpb25zCSh3b3JraW5nIGNvcHkpCkBAIC0yNDk3LDEzICsyNDk3LDE1IEBA
IGNyYnVnLmNvbS82Njc1MSBodHRwL3Rlc3RzL2xvY2FsL2xpbmstc3QKIHdlYmtpdC5vcmcvYi85
MDM2MyBbIERlYnVnIF0gZmFzdC9vdmVyZmxvdy9sb3RzLW9mLXNpYmxpbmctaW5saW5lLWJveGVz
Lmh0bWwgWyBQYXNzIFRpbWVvdXQgXQogd2Via2l0Lm9yZy9iLzkwMzYzIFsgQW5kcm9pZCBSZWxl
YXNlIF0gZmFzdC9vdmVyZmxvdy9sb3RzLW9mLXNpYmxpbmctaW5saW5lLWJveGVzLmh0bWwgWyBQ
YXNzIFRpbWVvdXQgXQogCi0jIFdlYktpdCByb2xsIDc0MjU1Ojc0MzA4CisjIFdlYktpdCByb2xs
IDc0MjU1Ojc0MzA4ICg3NDI4MT8pCiBjcmJ1Zy5jb20vNjc0MTYgWyBBbmRyb2lkIExpbnV4IFdp
biBdIGZhc3QvdGV4dC9lbXBoYXNpcy5odG1sIFsgRmFpbHVyZSBdCiBjcmJ1Zy5jb20vNjc0MTYg
ZmFzdC90ZXh0L2VtcGhhc2lzLXZlcnRpY2FsLmh0bWwgWyBGYWlsdXJlIEltYWdlT25seUZhaWx1
cmUgXQogY3JidWcuY29tLzY3NTQwIFsgQW5kcm9pZCBMaW51eCBdIGZhc3QvdGV4dC9lbXBoYXNp
cy1hdm9pZC1ydWJ5Lmh0bWwgWyBJbWFnZU9ubHlGYWlsdXJlIF0KIGNyYnVnLmNvbS82NzU0MCBb
IEFuZHJvaWQgTGludXggU25vd0xlb3BhcmQgV2luIF0gZmFzdC9yZXBhaW50L3RleHQtZW1waGFz
aXMtaC5odG1sIFsgSW1hZ2VPbmx5RmFpbHVyZSBdCiBjcmJ1Zy5jb20vNjc1NDAgWyBBbmRyb2lk
IExpbnV4IF0gZmFzdC9yZXBhaW50L3RleHQtZW1waGFzaXMtdi5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBdCiAKK2NyYnVnLmNvbS82NzU0MCB3ZWJraXQub3JnL2IvOTQ3MzUgWyBMaW51eCBdIGZh
c3QvdGV4dC9lbXBoYXNpcy1vdmVybGFwLmh0bWwgWyBGYWlsdXJlIEltYWdlT25seUZhaWx1cmUg
XQorCiAjIFNlZSBhbHNvIENSQlVHMTM5ODYzCiBjcmJ1Zy5jb20vNjc0NDIgWyBBbmRyb2lkIExp
bnV4IFdpbiBdIGZhc3QvY2FudmFzL2ZpbGxUZXh0LXNoYWRvdy5odG1sIFsgRmFpbHVyZSBdCiBj
cmJ1Zy5jb20vNjc0NDIgWyBMaW51eCBXaW4gXSBwbGF0Zm9ybS9jaHJvbWl1bS92aXJ0dWFsL2dw
dS9mYXN0L2NhbnZhcy9maWxsVGV4dC1zaGFkb3cuaHRtbCBbIEZhaWx1cmUgXQpAQCAtMjYzMSw5
ICsyNjMzLDEyIEBAIGNyYnVnLmNvbS83NjYxMCBbIE1hYyBXaW4gRGVidWcgXSBwbGF0Zm8KIGNy
YnVnLmNvbS83NjYxNiBbIEFuZHJvaWQgTGludXggV2luIF0gZmFzdC90ZXh0L2VtcGhhc2lzLWNv
bWJpbmVkLXRleHQuaHRtbCBbIEZhaWx1cmUgXQogY3JidWcuY29tLzc2NjE2IFsgU25vd0xlb3Bh
cmQgXSBmYXN0L3RleHQvZW1waGFzaXMtY29tYmluZWQtdGV4dC5odG1sIFsgSW1hZ2VPbmx5RmFp
bHVyZSBQYXNzIF0KIAotIyBOZXcgQ1NTMyBmZWF0dXJlIGluIHI4MTY4NC4gU29tZSB0ZXN0cyBm
YWlsIG91dHNpZGUgTWFjLgotY3JidWcuY29tLzc3MDk1IFsgQW5kcm9pZCBMaW51eCBXaW4gXSBm
YXN0L2Jsb2NrL2xpbmVib3hjb250YWluL2Jsb2NrLWdseXBocy1yZXBsYWNlZC5odG1sIFsgRmFp
bHVyZSBdCi1jcmJ1Zy5jb20vNzcwOTUgWyBBbmRyb2lkIExpbnV4IFdpbiBdIGZhc3QvYmxvY2sv
bGluZWJveGNvbnRhaW4vZ2x5cGhzLmh0bWwgWyBGYWlsdXJlIF0KKyMgTmV3IENTUzMgZmVhdHVy
ZSBpbiByODE2ODQuIFNvbWUgdGVzdHMgZmFpbCBvdXRzaWRlIE1hYy4gVGhleSBzaG91bGQgYmUg
b2sgYW5kIG5lZWQgcmViYXNlbGluZSBhZnRlciB3ZWJraXQub3JnL2IvMTAxMTE1LgorY3JidWcu
Y29tLzc3MDk1IHdlYmtpdC5vcmcvYi8xMDExMTUgWyBBbmRyb2lkIExpbnV4IFdpbiBdIGZhc3Qv
YmxvY2svbGluZWJveGNvbnRhaW4vYmxvY2stZ2x5cGhzLXJlcGxhY2VkLmh0bWwgWyBGYWlsdXJl
IFBhc3MgXQorY3JidWcuY29tLzc3MDk1IHdlYmtpdC5vcmcvYi8xMDExMTUgWyBBbmRyb2lkIExp
bnV4IFdpbiBdIGZhc3QvYmxvY2svbGluZWJveGNvbnRhaW4vZ2x5cGhzLmh0bWwgWyBGYWlsdXJl
IFBhc3MgXQord2Via2l0Lm9yZy9iLzEwMTExNSBbIExpbnV4IF0gZmFzdC9ibG9jay9saW5lYm94
Y29udGFpbi9ibG9jay1nbHlwaHMuaHRtbCBbIEZhaWx1cmUgXQord2Via2l0Lm9yZy9iLzEwMTEx
NSBbIExpbnV4IF0gbWF0aG1sL3hIZWlnaHQueGh0bWwgWyBGYWlsdXJlIF0KK3dlYmtpdC5vcmcv
Yi8xMDExMTUgWyBMaW51eCBdIGZhc3QvcmVwYWludC9zdGFja2VkLWRpYWNyaXRpY3MuaHRtbCBb
IEltYWdlT25seUZhaWx1cmUgXQogCiAjIEhhcyBiZWVuIHRpbWluZyBvdXQsIGluaXRpYXRlZCBh
dDoKICMgV2Via2l0IHBhdGNoZXMgaW4gcmFuZ2UgW3I4MTk3NiwgcjgxOTgxXQpAQCAtMzcyNiw4
ICszNzMxLDYgQEAgd2Via2l0Lm9yZy9iLzk0NTMyIFsgTGludXggXSBmYXN0L2Zvcm1zLwogCiB3
ZWJraXQub3JnL2IvOTQ2NjAgZmFzdC9qcy9jcmVhdGUtbG90cy1vZi13b3JrZXJzLmh0bWwgWyBD
cmFzaCBQYXNzIFRpbWVvdXQgXQogCi1jcmJ1Zy5jb20vNjc1NDAgd2Via2l0Lm9yZy9iLzk0NzM1
IFsgTGludXggXSBmYXN0L3RleHQvZW1waGFzaXMtb3ZlcmxhcC5odG1sIFsgRmFpbHVyZSBJbWFn
ZU9ubHlGYWlsdXJlIF0KLQogd2Via2l0Lm9yZy9iLzk0NzkzIGh0dHAvdGVzdHMvbm90aWZpY2F0
aW9ucy9ldmVudC1saXN0ZW5lci1jcmFzaC5odG1sIFsgRmFpbHVyZSBQYXNzIF0KIAogIyBGYWls
aW5nIHRlc3RzIHdpdGggMmQgY2FudmFzIGFjY2VsZXJhdGlvbi4K
</data>

          </attachment>
      

    </bug>

</bugzilla>