<?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>72614</bug_id>
          
          <creation_ts>2011-11-17 07:59:33 -0800</creation_ts>
          <short_desc>[GTK] Improve FontMetrics accuracy</short_desc>
          <delta_ts>2012-12-10 16:15:15 -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>WebKitGTK</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>
          
          <blocked>47467</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Philippe Normand">pnormand</reporter>
          <assigned_to name="Martin Robinson">mrobinson</assigned_to>
          <cc>laszlo.gombos</cc>
    
    <cc>mrobinson</cc>
    
    <cc>zimmermann</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>504854</commentid>
    <comment_count>0</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-11-17 07:59:33 -0800</bug_when>
    <thetext>Nikolas Zimmermann suggests to look at http://mxr.mozilla.org/mozilla-central/source/gfx/thebes/gfxFT2Utils.cpp#82

Something similar should be done in SimpleFontData::platformInit ... See also bug 47467</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505746</commentid>
    <comment_count>1</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-11-18 06:43:29 -0800</bug_when>
    <thetext>Some news on this one, it turns out this patch would be needed only if we used the Pango backend but by default we use Freetype.

Nikolas came up with a simple fix for the Freetype backend, disabling hinting font metrics.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505749</commentid>
    <comment_count>2</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-18 06:48:50 -0800</bug_when>
    <thetext>So just to be clear, disabling font hinting puts the font extents at floating point positions. From what I undertand, we already disabled font hinting long ago.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505809</commentid>
    <comment_count>3</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-18 08:23:18 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; So just to be clear, disabling font hinting puts the font extents at floating point positions. From what I undertand, we already disabled font hinting long ago.

Right you&apos;ve disabled hinting for bitmap glyphs, that&apos;s called &quot;style hinting&quot;, this bug is about &quot;metrics hinting&quot;.

From cairo docs: enum cairo_hint_style_t:

Specifies the type of hinting to do on font outlines. Hinting is the process of fitting outlines to the pixel grid in order to improve the appearance of the result. Since hinting outlines involves distorting them, it also reduces the faithfulness to the original outline shapes. Not all of the outline hinting styles are supported by all font backends.

enum cairo_hint_metrics_t

Specifies whether to hint font metrics; hinting font metrics means quantizing them so that they are integer values in device space. Doing this improves the consistency of letter and line spacing, however it also means that text will be laid out differently at different zoom factors.

Currently GtkSettings sets the default of CAIRO_HINT_METRICS_ON, which gives integer values in device space, instead of precise floating point values.

you&apos;re doing the rendering correctly, but measuring is still integer based, which is the underlying bug here.

I forgot to leave a note here before that the mozilla link is not relevant here, as Cairo actually does respect em_units and gives precise metrics, but only if CAIRO_HINT_METRICS_ is OFF, not when its ON.
Mozilla uses FT directly, and thus has to take care of em handling on its own.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>505819</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-18 08:40:14 -0800</bug_when>
    <thetext>(In reply to comment #3)

&gt; Specifies whether to hint font metrics; hinting font metrics means quantizing them so that they are integer values in device space. Doing this improves the consistency of letter and line spacing, however it also means that text will be laid out differently at different zoom factors.

Thanks for clearing this up. From the documentation it seems like turning this off carries a small regression in render quality, but an improvement in consistency?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508057</commentid>
    <comment_count>5</comment_count>
      <attachid>116342</attachid>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2011-11-23 04:10:43 -0800</bug_when>
    <thetext>Created attachment 116342
Proposed way to get floating point metrics for Cairo

The problem is not not handling m_unitsPerEm, that should be queried from the font.
The real problem is that Cairo turns on hinting metrics - the attached patch gives an idea how to fix it.
I didn&apos;t test on my own on Cairo, but Phil said that we correctly get floating point metrics then, see the discussion in bug 47467!

Could any of the Gtk guys take over the work and test on their own whats the impact. Might be great to run new-run-webkit-tests --rest-results -p, then apply the patch, and make a comparision run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>508785</commentid>
    <comment_count>6</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2011-11-24 07:53:50 -0800</bug_when>
    <thetext>(In reply to comment #5)
&gt; Created an attachment (id=116342) [details]
&gt; Proposed way to get floating point metrics for Cairo

I did some smoke testing of this patch locally. It changes almost every single DRT result, but the changes it produces seem sane enough. In the layout test, at least, it results in smaller space between lines and more space between letters.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>509085</commentid>
    <comment_count>7</comment_count>
      <attachid>116596</attachid>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-11-25 04:17:02 -0800</bug_when>
    <thetext>Created attachment 116596
proposed patch ((c) WildFox)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>510603</commentid>
    <comment_count>8</comment_count>
    <who name="Philippe Normand">pnormand</who>
    <bug_when>2011-11-29 01:43:12 -0800</bug_when>
    <thetext>Committed r101343: &lt;http://trac.webkit.org/changeset/101343&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>776501</commentid>
    <comment_count>9</comment_count>
      <attachid>116596</attachid>
    <who name="Dominik Röttsches (drott)">d-r</who>
    <bug_when>2012-11-27 01:54:46 -0800</bug_when>
    <thetext>Comment on attachment 116596
proposed patch ((c) WildFox)

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

&gt; Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp:67
&gt; +    m_fontMetrics.setLineSpacing(lroundf(ascent) + lroundf(descent) + lroundf(lineGap));

Nikolas, can you explain a bit more about the rationale of rounding here? I know CoreGraphics does it, but Qt and Skia don&apos;t do this anymore, if I checked correctly. What do you think is the benefit? With subpixel layout and zooming, I think we should get rid of rounding in the backends as much as possible. In bug 102374, I am considering removing this rounding, so it&apos;d be good to know if you have more background. Thanks!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>777139</commentid>
    <comment_count>10</comment_count>
    <who name="Nikolas Zimmermann">zimmermann</who>
    <bug_when>2012-11-27 12:52:39 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (From update of attachment 116596 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=116596&amp;action=review
&gt; 
&gt; &gt; Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp:67
&gt; &gt; +    m_fontMetrics.setLineSpacing(lroundf(ascent) + lroundf(descent) + lroundf(lineGap));
&gt; 
&gt; Nikolas, can you explain a bit more about the rationale of rounding here? I know CoreGraphics does it, but Qt and Skia don&apos;t do this anymore, if I checked correctly. What do you think is the benefit? With subpixel layout and zooming, I think we should get rid of rounding in the backends as much as possible. In bug 102374, I am considering removing this rounding, so it&apos;d be good to know if you have more background. Thanks!

Sorry it&apos;s been a while since I looked at this the last time. I only chose the way for consistency between the ports. Someone more familiar with OSX Text rendering might answer why this was a good idea back then.

Is this still in use for CoreGraphics text rendering? (the lroundf() statements)</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116342</attachid>
            <date>2011-11-23 04:10:43 -0800</date>
            <delta_ts>2011-11-25 04:17:02 -0800</delta_ts>
            <desc>Proposed way to get floating point metrics for Cairo</desc>
            <filename>FreeTypeChanges.diff</filename>
            <type>text/plain</type>
            <size>3319</size>
            <attacher name="Nikolas Zimmermann">zimmermann</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0
Zm9ybURhdGFGcmVlVHlwZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAkocmV2aXNp
b24gMTAwODQ3KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUv
Rm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtOTgsNiArOTgs
OSBAQCB2b2lkIHNldENhaXJvRm9udE9wdGlvbnNGcm9tRm9udENvbmZpZ1BhCiAgICAgICAgIGNh
aXJvX2ZvbnRfb3B0aW9uc19zZXRfaGludF9zdHlsZShvcHRpb25zLCBjb252ZXJ0Rm9udENvbmZp
Z0hpbnRTdHlsZShpbnRlZ2VyUmVzdWx0KSk7CiAgICAgaWYgKEZjUGF0dGVybkdldEJvb2wocGF0
dGVybiwgRkNfSElOVElORywgMCwgJmJvb2xlYW5SZXN1bHQpID09IEZjUmVzdWx0TWF0Y2ggJiYg
IWJvb2xlYW5SZXN1bHQpCiAgICAgICAgIGNhaXJvX2ZvbnRfb3B0aW9uc19zZXRfaGludF9zdHls
ZShvcHRpb25zLCBDQUlST19ISU5UX1NUWUxFX05PTkUpOworCisgICAgLy8gVHVybiBvZmYgdGV4
dCBtZXRyaWNzIGhpbnRpbmcsIHdoaWNoIHF1YW50aXplcyBtZXRyaWNzIHRvIHBpeGVscyBpbiBk
ZXZpY2Ugc3BhY2UuCisgICAgY2Fpcm9fZm9udF9vcHRpb25zX3NldF9oaW50X21ldHJpY3Mob3B0
aW9ucywgQ0FJUk9fSElOVF9NRVRSSUNTX09GRik7CiB9CiAKIHN0YXRpYyBjYWlyb19mb250X29w
dGlvbnNfdCogZ2V0RGVmYXVsdEZvbnRPcHRpb25zKCkKSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRhRnJlZVR5cGUuY3BwCj09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT0KLS0tIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBs
ZUZvbnREYXRhRnJlZVR5cGUuY3BwCShyZXZpc2lvbiAxMDA4NDcpCisrKyBTb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9TaW1wbGVGb250RGF0YUZyZWVUeXBlLmNwcAko
d29ya2luZyBjb3B5KQpAQCAtMzMsNiArMzMsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2lu
Y2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCiAKKyNpbmNsdWRlICJGbG9hdENvbnZlcnNpb24uaCIK
ICNpbmNsdWRlICJGbG9hdFJlY3QuaCIKICNpbmNsdWRlICJGb250LmgiCiAjaW5jbHVkZSAiRm9u
dENhY2hlLmgiCkBAIC01NSwyNiArNTYsMjIgQEAgdm9pZCBTaW1wbGVGb250RGF0YTo6cGxhdGZv
cm1Jbml0KCkKICAgICBjYWlyb190ZXh0X2V4dGVudHNfdCB0ZXh0X2V4dGVudHM7CiAgICAgY2Fp
cm9fc2NhbGVkX2ZvbnRfZXh0ZW50cyhtX3BsYXRmb3JtRGF0YS5zY2FsZWRGb250KCksICZmb250
X2V4dGVudHMpOwogCi0gICAgbV9mb250TWV0cmljcy5zZXRBc2NlbnQoZm9udF9leHRlbnRzLmFz
Y2VudCk7Ci0gICAgbV9mb250TWV0cmljcy5zZXREZXNjZW50KGZvbnRfZXh0ZW50cy5kZXNjZW50
KTsKLQotICAgIC8vIFRoZXJlIHNlZW1zIHRvIGJlIHNvbWUgcm91bmRpbmcgZXJyb3IgaW4gY2Fp
cm8gKG9yIGluIGhvdyB3ZQotICAgIC8vIHVzZSBjYWlybykgd2l0aCBzb21lIGZvbnRzLCBsaWtl
IERlamFWdSBTYW5zIE1vbm8sIHdoaWNoIG1ha2VzCi0gICAgLy8gY2Fpcm8gcmVwb3J0IGEgaGVp
Z2h0IHNtYWxsZXIgdGhhbiBhc2NlbnQgKyBkZXNjZW50LCB3aGljaCBpcwotICAgIC8vIHdyb25n
IGFuZCBjb25mdXNlcyBXZWJDb3JlJ3MgbGF5b3V0IHN5c3RlbS4gV29ya2Fyb3VuZCB0aGlzCi0g
ICAgLy8gd2hpbGUgd2UgZmlndXJlIG91dCB3aGF0J3MgZ29pbmcgb24uCi0gICAgZmxvYXQgbGlu
ZVNwYWNpbmcgPSBmb250X2V4dGVudHMuaGVpZ2h0OwotICAgIGlmIChsaW5lU3BhY2luZyA8IGZv
bnRfZXh0ZW50cy5hc2NlbnQgKyBmb250X2V4dGVudHMuZGVzY2VudCkKLSAgICAgICAgbGluZVNw
YWNpbmcgPSBmb250X2V4dGVudHMuYXNjZW50ICsgZm9udF9leHRlbnRzLmRlc2NlbnQ7Ci0KLSAg
ICBtX2ZvbnRNZXRyaWNzLnNldExpbmVTcGFjaW5nKGxyb3VuZGYobGluZVNwYWNpbmcpKTsKLSAg
ICBtX2ZvbnRNZXRyaWNzLnNldExpbmVHYXAobGluZVNwYWNpbmcgLSBmb250X2V4dGVudHMuYXNj
ZW50IC0gZm9udF9leHRlbnRzLmRlc2NlbnQpOworICAgIGZsb2F0IGFzY2VudCA9IG5hcnJvd1By
ZWNpc2lvblRvRmxvYXQoZm9udF9leHRlbnRzLmFzY2VudCk7CisgICAgZmxvYXQgZGVzY2VudCA9
IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZm9udF9leHRlbnRzLmRlc2NlbnQpOworICAgIGZsb2F0
IGxpbmVHYXAgPSBuYXJyb3dQcmVjaXNpb25Ub0Zsb2F0KGZvbnRfZXh0ZW50cy5oZWlnaHQgLSBm
b250X2V4dGVudHMuYXNjZW50IC0gZm9udF9leHRlbnRzLmRlc2NlbnQpOworCisgICAgbV9mb250
TWV0cmljcy5zZXRBc2NlbnQoYXNjZW50KTsKKyAgICBtX2ZvbnRNZXRyaWNzLnNldERlc2NlbnQo
ZGVzY2VudCk7CisKKyAgICAvLyBNYXRjaCBDb3JlR3JhcGhpY3MgbWV0cmljcy4KKyAgICBtX2Zv
bnRNZXRyaWNzLnNldExpbmVTcGFjaW5nKGxyb3VuZGYoYXNjZW50KSArIGxyb3VuZGYoZGVzY2Vu
dCkgKyBscm91bmRmKGxpbmVHYXApKTsKKyAgICBtX2ZvbnRNZXRyaWNzLnNldExpbmVHYXAobGlu
ZUdhcCk7CiAKICAgICBjYWlyb19zY2FsZWRfZm9udF90ZXh0X2V4dGVudHMobV9wbGF0Zm9ybURh
dGEuc2NhbGVkRm9udCgpLCAieCIsICZ0ZXh0X2V4dGVudHMpOwotICAgIG1fZm9udE1ldHJpY3Mu
c2V0WEhlaWdodCh0ZXh0X2V4dGVudHMuaGVpZ2h0KTsKKyAgICBtX2ZvbnRNZXRyaWNzLnNldFhI
ZWlnaHQobmFycm93UHJlY2lzaW9uVG9GbG9hdCh0ZXh0X2V4dGVudHMuaGVpZ2h0KSk7CiAKICAg
ICBjYWlyb19zY2FsZWRfZm9udF90ZXh0X2V4dGVudHMobV9wbGF0Zm9ybURhdGEuc2NhbGVkRm9u
dCgpLCAiICIsICZ0ZXh0X2V4dGVudHMpOwotICAgIG1fc3BhY2VXaWR0aCA9IHN0YXRpY19jYXN0
PGZsb2F0Pih0ZXh0X2V4dGVudHMueF9hZHZhbmNlKTsKKyAgICBtX3NwYWNlV2lkdGggPSBuYXJy
b3dQcmVjaXNpb25Ub0Zsb2F0KHRleHRfZXh0ZW50cy54X2FkdmFuY2UpOwogICAgIAogICAgIG1f
c3ludGhldGljQm9sZE9mZnNldCA9IG1fcGxhdGZvcm1EYXRhLnN5bnRoZXRpY0JvbGQoKSA/IDEu
MGYgOiAwLmY7CiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>116596</attachid>
            <date>2011-11-25 04:17:02 -0800</date>
            <delta_ts>2012-11-27 01:54:46 -0800</delta_ts>
            <desc>proposed patch ((c) WildFox)</desc>
            <filename>proposed-patch-c-WildFox.patch</filename>
            <type>text/plain</type>
            <size>4636</size>
            <attacher name="Philippe Normand">pnormand</attacher>
            
              <data encoding="base64">RnJvbSBiNTY5NTJhN2Q0YmE2ODVlNzdjNDg3NTY4NzI0ZDQzZWQ2YmNlYTZmIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBQaGlsaXBwZSBOb3JtYW5kIDxwbm9ybWFuZEBpZ2FsaWEuY29t
PgpEYXRlOiBGcmksIDI1IE5vdiAyMDExIDEzOjE2OjE3ICswMTAwClN1YmplY3Q6IFtQQVRDSF0g
cHJvcG9zZWQgcGF0Y2ggKChjKSBXaWxkRm94KQoKLS0tCiBTb3VyY2UvV2ViQ29yZS9DaGFuZ2VM
b2cgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMTQgKysrKysrKysrKysKIC4uLi9ncmFw
aGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwIHwgICAgMyArKwogLi4u
L2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRhRnJlZVR5cGUuY3BwICAgfCAgIDI1ICsr
KysrKysrLS0tLS0tLS0tLS0KIDMgZmlsZXMgY2hhbmdlZCwgMjggaW5zZXJ0aW9ucygrKSwgMTQg
ZGVsZXRpb25zKC0pCgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCmluZGV4IGYzODA1ZTAuLjlkMGY1MzMgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cK
QEAgLTEsMyArMSwxNyBAQAorMjAxMS0xMS0yNSAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5k
QGlnYWxpYS5jb20+CisKKyAgICAgICAgW0dUS10gSW1wcm92ZSBGb250TWV0cmljcyBhY2N1cmFj
eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NzI2MTQK
KworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBQYXRjaCBi
eSBOaWtvbGFzIFppbW1lcm1hbm4uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9mcmVl
dHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0
Q2Fpcm9Gb250T3B0aW9uc0Zyb21Gb250Q29uZmlnUGF0dGVybik6CisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvU2ltcGxlRm9udERhdGFGcmVlVHlwZS5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1Jbml0KToKKwogMjAxMS0xMS0yNSAg
V2VpIENoYXJsZXMgIDxjaGFybGVzLndlaUB0b3JjaG1vYmlsZS5jb20uY24+CiAKICAgICAgICAg
VXBzdHJlYW0gdGhlIFFOWC9SSU0gc3BlY2lmaWMgSGlzdG9yeUl0ZW1WaWV3U3RhdGUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0
Zm9ybURhdGFGcmVlVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9m
cmVldHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCmluZGV4IDk4YWU1ZWQuLmViODkw
ZjEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBl
L0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcApAQCAtOTgs
NiArOTgsOSBAQCB2b2lkIHNldENhaXJvRm9udE9wdGlvbnNGcm9tRm9udENvbmZpZ1BhdHRlcm4o
Y2Fpcm9fZm9udF9vcHRpb25zX3QqIG9wdGlvbnMsIEZjUAogICAgICAgICBjYWlyb19mb250X29w
dGlvbnNfc2V0X2hpbnRfc3R5bGUob3B0aW9ucywgY29udmVydEZvbnRDb25maWdIaW50U3R5bGUo
aW50ZWdlclJlc3VsdCkpOwogICAgIGlmIChGY1BhdHRlcm5HZXRCb29sKHBhdHRlcm4sIEZDX0hJ
TlRJTkcsIDAsICZib29sZWFuUmVzdWx0KSA9PSBGY1Jlc3VsdE1hdGNoICYmICFib29sZWFuUmVz
dWx0KQogICAgICAgICBjYWlyb19mb250X29wdGlvbnNfc2V0X2hpbnRfc3R5bGUob3B0aW9ucywg
Q0FJUk9fSElOVF9TVFlMRV9OT05FKTsKKworICAgIC8vIFR1cm4gb2ZmIHRleHQgbWV0cmljcyBo
aW50aW5nLCB3aGljaCBxdWFudGl6ZXMgbWV0cmljcyB0byBwaXhlbHMgaW4gZGV2aWNlIHNwYWNl
LgorICAgIGNhaXJvX2ZvbnRfb3B0aW9uc19zZXRfaGludF9tZXRyaWNzKG9wdGlvbnMsIENBSVJP
X0hJTlRfTUVUUklDU19PRkYpOwogfQogCiBzdGF0aWMgY2Fpcm9fZm9udF9vcHRpb25zX3QqIGdl
dERlZmF1bHRGb250T3B0aW9ucygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9mcmVldHlwZS9TaW1wbGVGb250RGF0YUZyZWVUeXBlLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRhRnJlZVR5cGUu
Y3BwCmluZGV4IGZmNWVmMDIuLjVkNmU3ZmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRhRnJlZVR5cGUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL1NpbXBsZUZvbnREYXRh
RnJlZVR5cGUuY3BwCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5j
bHVkZSAiU2ltcGxlRm9udERhdGEuaCIKIAorI2luY2x1ZGUgIkZsb2F0Q29udmVyc2lvbi5oIgog
I2luY2x1ZGUgIkZsb2F0UmVjdC5oIgogI2luY2x1ZGUgIkZvbnQuaCIKICNpbmNsdWRlICJGb250
Q2FjaGUuaCIKQEAgLTU1LDI2ICs1NiwyMiBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9y
bUluaXQoKQogICAgIGNhaXJvX3RleHRfZXh0ZW50c190IHRleHRfZXh0ZW50czsKICAgICBjYWly
b19zY2FsZWRfZm9udF9leHRlbnRzKG1fcGxhdGZvcm1EYXRhLnNjYWxlZEZvbnQoKSwgJmZvbnRf
ZXh0ZW50cyk7CiAKLSAgICBtX2ZvbnRNZXRyaWNzLnNldEFzY2VudChmb250X2V4dGVudHMuYXNj
ZW50KTsKLSAgICBtX2ZvbnRNZXRyaWNzLnNldERlc2NlbnQoZm9udF9leHRlbnRzLmRlc2NlbnQp
OworICAgIGZsb2F0IGFzY2VudCA9IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZm9udF9leHRlbnRz
LmFzY2VudCk7CisgICAgZmxvYXQgZGVzY2VudCA9IG5hcnJvd1ByZWNpc2lvblRvRmxvYXQoZm9u
dF9leHRlbnRzLmRlc2NlbnQpOworICAgIGZsb2F0IGxpbmVHYXAgPSBuYXJyb3dQcmVjaXNpb25U
b0Zsb2F0KGZvbnRfZXh0ZW50cy5oZWlnaHQgLSBmb250X2V4dGVudHMuYXNjZW50IC0gZm9udF9l
eHRlbnRzLmRlc2NlbnQpOwogCi0gICAgLy8gVGhlcmUgc2VlbXMgdG8gYmUgc29tZSByb3VuZGlu
ZyBlcnJvciBpbiBjYWlybyAob3IgaW4gaG93IHdlCi0gICAgLy8gdXNlIGNhaXJvKSB3aXRoIHNv
bWUgZm9udHMsIGxpa2UgRGVqYVZ1IFNhbnMgTW9ubywgd2hpY2ggbWFrZXMKLSAgICAvLyBjYWly
byByZXBvcnQgYSBoZWlnaHQgc21hbGxlciB0aGFuIGFzY2VudCArIGRlc2NlbnQsIHdoaWNoIGlz
Ci0gICAgLy8gd3JvbmcgYW5kIGNvbmZ1c2VzIFdlYkNvcmUncyBsYXlvdXQgc3lzdGVtLiBXb3Jr
YXJvdW5kIHRoaXMKLSAgICAvLyB3aGlsZSB3ZSBmaWd1cmUgb3V0IHdoYXQncyBnb2luZyBvbi4K
LSAgICBmbG9hdCBsaW5lU3BhY2luZyA9IGZvbnRfZXh0ZW50cy5oZWlnaHQ7Ci0gICAgaWYgKGxp
bmVTcGFjaW5nIDwgZm9udF9leHRlbnRzLmFzY2VudCArIGZvbnRfZXh0ZW50cy5kZXNjZW50KQot
ICAgICAgICBsaW5lU3BhY2luZyA9IGZvbnRfZXh0ZW50cy5hc2NlbnQgKyBmb250X2V4dGVudHMu
ZGVzY2VudDsKKyAgICBtX2ZvbnRNZXRyaWNzLnNldEFzY2VudChhc2NlbnQpOworICAgIG1fZm9u
dE1ldHJpY3Muc2V0RGVzY2VudChkZXNjZW50KTsKIAotICAgIG1fZm9udE1ldHJpY3Muc2V0TGlu
ZVNwYWNpbmcobHJvdW5kZihsaW5lU3BhY2luZykpOwotICAgIG1fZm9udE1ldHJpY3Muc2V0TGlu
ZUdhcChsaW5lU3BhY2luZyAtIGZvbnRfZXh0ZW50cy5hc2NlbnQgLSBmb250X2V4dGVudHMuZGVz
Y2VudCk7CisgICAgLy8gTWF0Y2ggQ29yZUdyYXBoaWNzIG1ldHJpY3MuCisgICAgbV9mb250TWV0
cmljcy5zZXRMaW5lU3BhY2luZyhscm91bmRmKGFzY2VudCkgKyBscm91bmRmKGRlc2NlbnQpICsg
bHJvdW5kZihsaW5lR2FwKSk7CisgICAgbV9mb250TWV0cmljcy5zZXRMaW5lR2FwKGxpbmVHYXAp
OwogCiAgICAgY2Fpcm9fc2NhbGVkX2ZvbnRfdGV4dF9leHRlbnRzKG1fcGxhdGZvcm1EYXRhLnNj
YWxlZEZvbnQoKSwgIngiLCAmdGV4dF9leHRlbnRzKTsKLSAgICBtX2ZvbnRNZXRyaWNzLnNldFhI
ZWlnaHQodGV4dF9leHRlbnRzLmhlaWdodCk7CisgICAgbV9mb250TWV0cmljcy5zZXRYSGVpZ2h0
KG5hcnJvd1ByZWNpc2lvblRvRmxvYXQodGV4dF9leHRlbnRzLmhlaWdodCkpOwogCiAgICAgY2Fp
cm9fc2NhbGVkX2ZvbnRfdGV4dF9leHRlbnRzKG1fcGxhdGZvcm1EYXRhLnNjYWxlZEZvbnQoKSwg
IiAiLCAmdGV4dF9leHRlbnRzKTsKLSAgICBtX3NwYWNlV2lkdGggPSBzdGF0aWNfY2FzdDxmbG9h
dD4odGV4dF9leHRlbnRzLnhfYWR2YW5jZSk7CisgICAgbV9zcGFjZVdpZHRoID0gbmFycm93UHJl
Y2lzaW9uVG9GbG9hdCh0ZXh0X2V4dGVudHMueF9hZHZhbmNlKTsKICAgICAKICAgICBtX3N5bnRo
ZXRpY0JvbGRPZmZzZXQgPSBtX3BsYXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCkgPyAxLjBmIDog
MC5mOwogfQotLSAKMS43LjcuMw==
</data>
<flag name="review"
          id="115798"
          type_id="1"
          status="+"
          setter="mrobinson"
    />
          </attachment>
      

    </bug>

</bugzilla>