<?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>140994</bug_id>
          
          <creation_ts>2015-01-28 00:54:12 -0800</creation_ts>
          <short_desc>[GTK] Fonts loaded via @font-face look bad</short_desc>
          <delta_ts>2017-07-11 19:38:51 -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>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>
          
          <see_also>https://bugs.webkit.org/show_bug.cgi?id=174403</see_also>
          <bug_file_loc>http://www.rachelandrew.co.uk/archives/2014/12/26/a-year-in-links/</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="Sergio Villar Senin">svillar</reporter>
          <assigned_to name="Michael Catanzaro">mcatanzaro</assigned_to>
          <cc>clopez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>mcatanzaro</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>mrobinson</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1064843</commentid>
    <comment_count>0</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-01-28 00:54:12 -0800</bug_when>
    <thetext>This is a follow up of https://bugs.webkit.org/show_bug.cgi?id=140290#c17

Note that this was reported before also for the extinct QtWebkit https://bugs.webkit.org/show_bug.cgi?id=41474, so perhaps is a freetype issue.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064845</commentid>
    <comment_count>1</comment_count>
      <attachid>245525</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-01-28 00:55:12 -0800</bug_when>
    <thetext>Created attachment 245525
Minimal example of bad font rendering</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064848</commentid>
    <comment_count>2</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-01-28 01:01:13 -0800</bug_when>
    <thetext>BTW, this looks fine for me in Firefox but it isn&apos;t using the woff fonts mentioned in @font-face. In my system Firefox falls back to using Nimbus font.

So it seems that the issue is that we aren&apos;t using the web fonts...</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064885</commentid>
    <comment_count>3</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-01-28 07:19:29 -0800</bug_when>
    <thetext>They&apos;re being loaded though; if you open attachment #245525 and check the web inspector, you&apos;ll see insecure content warnings (which show that the insecure access is permitted).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064894</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-01-28 07:48:02 -0800</bug_when>
    <thetext>Thanks for the minimal example! Sergio, can you post a screenshot of the output? I also have Nimbus fonts installed and I cannot reproduce the issue. Another thing that would be really useful is the output of &quot;fc-match Helvetica.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064968</commentid>
    <comment_count>5</comment_count>
      <attachid>245556</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-01-28 11:37:57 -0800</bug_when>
    <thetext>Created attachment 245556
screenshot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1064979</commentid>
    <comment_count>6</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-01-28 11:56:17 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; BTW, this looks fine for me in Firefox but it isn&apos;t using the woff fonts
&gt; mentioned in @font-face. In my system Firefox falls back to using Nimbus
&gt; font.

It&apos;s because you are trying to use fonts loaded over http:// from https:// bugs.webkit.org (or from a local page), so Firefox blocks them as mixed content. We just warn.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065077</commentid>
    <comment_count>7</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-01-28 16:49:34 -0800</bug_when>
    <thetext>(In reply to comment #6)
&gt; (In reply to comment #2)
&gt; &gt; BTW, this looks fine for me in Firefox but it isn&apos;t using the woff fonts
&gt; &gt; mentioned in @font-face. In my system Firefox falls back to using Nimbus
&gt; &gt; font.
&gt; 
&gt; It&apos;s because you are trying to use fonts loaded over http:// from https://
&gt; bugs.webkit.org (or from a local page), so Firefox blocks them as mixed
&gt; content. We just warn.

I don&apos;t think so...

I just uploaded the test case here (plain http): http://people.igalia.com/clopez/wkbug/140994/attachment_245525.html

And this is how it looks: http://people.igalia.com/clopez/wkbug/140994/fonts_webkitgtk_firefox_chromium.png

The window on the left is the WebKitGTK+ Minibrowser (trunk), the one in the middle is firefox (iceweasel rebranded from Debian), and the one at the right chromium (from Debian also)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065082</commentid>
    <comment_count>8</comment_count>
    <who name="Carlos Alberto Lopez Perez">clopez</who>
    <bug_when>2015-01-28 16:53:29 -0800</bug_when>
    <thetext>(In reply to comment #4)
&gt; Another thing that would be really useful is the output of &quot;fc-match
&gt; Helvetica.&quot;

$ fc-match Helvetica
texgyreheros-regular.otf: &quot;TeX Gyre Heros&quot; &quot;Regular&quot;

$ fc-match Helvetica.
DejaVuSans.ttf: &quot;DejaVu Sans&quot; &quot;Book&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065154</commentid>
    <comment_count>9</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-01-28 21:00:00 -0800</bug_when>
    <thetext>(In reply to comment #7)
&gt; And this is how it looks:
&gt; http://people.igalia.com/clopez/wkbug/140994/
&gt; fonts_webkitgtk_firefox_chromium.png

Now Firefox is still blocking those fonts, this time due to its same origin policy. It gives you nice reasons if you open its web inspector. (WebKit is less strict and lets the fonts through.)

Anyway, Martin discovered that the fonts aren&apos;t being hinted on my computer, and he has a patch that makes this example and CNN both look good for me. But we don&apos;t know why they look good without the patch for Martin.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1065188</commentid>
    <comment_count>10</comment_count>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-01-29 01:36:30 -0800</bug_when>
    <thetext>(In reply to comment #9)
&gt; (In reply to comment #7)
&gt; &gt; And this is how it looks:
&gt; &gt; http://people.igalia.com/clopez/wkbug/140994/
&gt; &gt; fonts_webkitgtk_firefox_chromium.png
&gt; 
&gt; Now Firefox is still blocking those fonts, this time due to its same origin
&gt; policy. It gives you nice reasons if you open its web inspector. (WebKit is
&gt; less strict and lets the fonts through.)

Yeah well, but that does not apply to the original site. In any case you can download the fonts to a server and place the html there. The issue is still present.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1067535</commentid>
    <comment_count>11</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-07 10:12:49 -0800</bug_when>
    <thetext>Martin, were you planning to post your patch for this issue?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070223</commentid>
    <comment_count>12</comment_count>
      <attachid>246847</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-18 14:05:01 -0800</bug_when>
    <thetext>Created attachment 246847
test patch

So that we don&apos;t lose it, here is Martin&apos;s patch that works for me. We&apos;re still trying to figure out if this patch is the right thing to do (in particular, why the text looks good for Martin but not for me without the patch).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1070230</commentid>
    <comment_count>13</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-18 14:25:17 -0800</bug_when>
    <thetext>So, from [1]:

* &quot;By default, hinting is enabled and the font&apos;s native hinter (see FT_FACE_FLAG_HINTER) is preferred over the auto-hinter. You can disable hinting by setting FT_LOAD_NO_HINTING or change the precedence by setting FT_LOAD_FORCE_AUTOHINT. You can also set FT_LOAD_NO_AUTOHINT in case you don&apos;t want the auto-hinter to be used at all.&quot;

So sounds like we should use the native hinter (i.e. don&apos;t pass FT_LOAD_FORCE_AUTOHINT, i.e. don&apos;t change anything) unless we have a good reason not to (e.g. everything looks terrible without it).

* FT_FACE_FLAG_HINTER: &quot;Set if the font driver has a hinting machine of its own. For example, with TrueType fonts, it makes sense to use data from the SFNT ‘gasp’ table only if the native TrueType hinting engine (with the bytecode interpreter) is available and active.&quot;

[1] http://www.freetype.org/freetype2/docs/reference/ft2-base_interface.html</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071133</commentid>
    <comment_count>14</comment_count>
      <attachid>247101</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-22 22:35:06 -0800</bug_when>
    <thetext>Created attachment 247101
[GTK] Fonts loaded via @font-face look bad</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071135</commentid>
    <comment_count>15</comment_count>
      <attachid>246847</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-22 22:38:01 -0800</bug_when>
    <thetext>Comment on attachment 246847
test patch

I think fontconfig was not being checked at all when loading web fonts. This patch seems to work. I tested cnn.com and rachelandrew.co.uk and they both look much better now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071163</commentid>
    <comment_count>16</comment_count>
      <attachid>247101</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-02-23 01:46:43 -0800</bug_when>
    <thetext>Comment on attachment 247101
[GTK] Fonts loaded via @font-face look bad

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

It also works fine for me.

Is this Martin&apos;s patch? Because it&apos;d be weird to ask him to review it if that&apos;s the case :).

&gt; Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp:122
&gt; +    // Strategy from Behdad Esfahbod in https://code.google.com/p/chromium/issues/detail?id=173207#c35

What about what he says in comment#36?

&quot;Though, of course this doesn&apos;t take into account the settings set by GNOME/KDE using XSETTINGS.&quot;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071205</commentid>
    <comment_count>17</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-23 08:39:46 -0800</bug_when>
    <thetext>No, this one is my patch; Martin&apos;s was the one I labeled &quot;test patch.&quot;

I was about to say &quot;we don&apos;t look at the GTK+ font settings at all&quot; -- we certainly do not do so in the freetype platform backend -- but actually I&apos;m simply wrong. If I turn off antialiasing in Tweak Tool then the pages we load look terrible. If I turn hinting down from Medium to Slight (this triggers use of the freetype autohinter instead of the font&apos;s native hinting) then the problem with these fonts goes away. I don&apos;t know where we are checking these settings though.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071208</commentid>
    <comment_count>18</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-02-23 08:47:03 -0800</bug_when>
    <thetext>(In reply to comment #17)
&gt; No, this one is my patch; Martin&apos;s was the one I labeled &quot;test patch.&quot;
&gt; 
&gt; I was about to say &quot;we don&apos;t look at the GTK+ font settings at all&quot; -- we
&gt; certainly do not do so in the freetype platform backend -- but actually I&apos;m
&gt; simply wrong. If I turn off antialiasing in Tweak Tool then the pages we
&gt; load look terrible. If I turn hinting down from Medium to Slight (this
&gt; triggers use of the freetype autohinter instead of the font&apos;s native
&gt; hinting) then the problem with these fonts goes away. I don&apos;t know where we
&gt; are checking these settings though.

Hrm. This sounds like a bug. :/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071209</commentid>
    <comment_count>19</comment_count>
      <attachid>247101</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-02-23 08:52:08 -0800</bug_when>
    <thetext>Comment on attachment 247101
[GTK] Fonts loaded via @font-face look bad

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

Looks good, though I have some minor suggestions.

&gt; Source/WebCore/ChangeLog:9
&gt; +        Reviewed by NOBODY (OOPS!).
&gt; +
&gt; +        No new tests because I haven&apos;t found a freely-distributable font that triggers the bug.
&gt; +

This is a great change, but I think it deserves a full explanation in the changelog which describes the change and why it fixes the problem.

&gt; Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp:129
&gt; +    RefPtr&lt;FcPattern&gt; pattern = adoptRef(FcPatternCreate());
&gt; +    FcConfigSubstitute(nullptr, pattern.get(), FcMatchPattern);
&gt; +    FcDefaultSubstitute(pattern.get());
&gt; +    FcPatternRemove(pattern.get(), FC_FAMILY, 0);
&gt; +    FcConfigSubstitute(nullptr, pattern.get(), FcMatchFont);
&gt; +
&gt; +    return pattern;

We can probably allocate this once and simply keep returning it from a static variable.

&gt; Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp:186
&gt; -    : m_fallbacks(nullptr)
&gt; +    : m_pattern(getDefaultFontconfigOptions())
&gt; +    , m_fallbacks(nullptr)

Instead of making a new pattern per font, I think you should explicitly handle a null pattern in FontPlatformData::initializeWithFontFace. The way you have this now, it looks like it makes two separate instances with otherwise equal data, fail the equality test.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071514</commentid>
    <comment_count>20</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-23 20:07:30 -0800</bug_when>
    <thetext>OK, a few further discoveries:

* The GTK+ font settings (e.g. gtk-xft-hintstyle) are used to replace the default cairo font settings in getDefaultCairoFontOptions(), but most of them will be overridden immediately by fontconfig except for web fonts. With my patch the settings for web fonts will be overridden too, which will be more consistent.
* Since GTK+ uses xsettings, your normal desktop font settings &quot;pollute&quot; the jhbuild environment, which is why Martin and I had different results. Martin has GTK+ set to slight hinting but mine is set to medium hinting. Slight hinting forces use of the autohinter, so it means the font&apos;s native hints aren&apos;t used at all. I think the native hints are broken in these fonts, because they look dramatically better when slight hinting is used.
* The more I learn about our font configuration, the less I understand....

Now, I think we should actually go with a combination of Martin&apos;s patch and mine, and force autohinter use for all web fonts. For many fonts this will (subjectively) not look as good as medium or full hinting, and it will be inconsistent to ignore the system configuration for this one setting for web fonts, but I think most people won&apos;t notice and it has a huge advantage: we don&apos;t have to worry about problems with native hinting. My guess is those two fonts look terrible because their hinting is broken, and other browsers (except Firefox on Linux) don&apos;t use the native hinting, so webmasters don&apos;t notice. (This is just a guess.) But the autohinter should always produce a decent result, I think. And there is another advantage: by disabling native hints, FreeType will no longer be executing bytecode from potentially malicious fonts, which has caused security issues in the past. On the other hand, the Chromium folks are currently forcing the autohinter as well but want to switch to native hinting instead (that&apos;s https://code.google.com/p/chromium/issues/detail?id=173207).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071517</commentid>
    <comment_count>21</comment_count>
      <attachid>247194</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-23 20:31:38 -0800</bug_when>
    <thetext>Created attachment 247194
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071570</commentid>
    <comment_count>22</comment_count>
      <attachid>247194</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-02-24 00:25:45 -0800</bug_when>
    <thetext>Comment on attachment 247194
Patch

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

&gt; Source/WebCore/ChangeLog:12
&gt; +        default settings from GTK+, which are normally overridden by fontconfig when loading system

Nit, either use Fontconfig or fontconfig but not both.

&gt; Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp:131
&gt; +    }

I think that new code tends to use for this cases std::once_flag and std::call_once() but not sure that&apos;s a convention yet.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071650</commentid>
    <comment_count>23</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-24 07:06:23 -0800</bug_when>
    <thetext>(In reply to comment #22)
&gt; Nit, either use Fontconfig or fontconfig but not both.

Sure

&gt; I think that new code tends to use for this cases std::once_flag and
&gt; std::call_once() but not sure that&apos;s a convention yet.

Hm, that would require a lambda or a new function, which I think would be harder to read. The problem is my code is not safe if called from multiple threads. I have no clue if that can happen, so might as well use it to be on the safe side, I suppose.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071651</commentid>
    <comment_count>24</comment_count>
      <attachid>247194</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-02-24 07:21:57 -0800</bug_when>
    <thetext>Comment on attachment 247194
Patch

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

Looks good to me, apart from a couple tiny nits.

&gt; Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp:123
&gt; +    // Note that hint settings are overridden in FontCustomPlatformData::FontCustomPlatformData.

You probably want to say something like, &quot;Note that for web fonts, custom hinting is specifically disabled.&quot; The reason I&apos;m suggesting this is that these settings might disable hinting completely, and FontCustomPlatformData::FontCustomPlatformData will not override that.

&gt; Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp:316
&gt; +    if (m_pattern)
&gt;          setCairoFontOptionsFromFontConfigPattern(options, m_pattern.get());
&gt; +    else
&gt; +        setCairoFontOptionsFromFontConfigPattern(options, getDefaultFontconfigOptions());
&gt;  

One thing you can do here to make this slightly simpler is:

FcPattern* optionsPattern = m_pattern ? m_pattern.get() : getDefaultFontconfigOptions();
setCairoFontOptionsFromFontConfigPattern(options, optionsPattern);</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071653</commentid>
    <comment_count>25</comment_count>
      <attachid>247232</attachid>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-24 07:35:02 -0800</bug_when>
    <thetext>Created attachment 247232
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071654</commentid>
    <comment_count>26</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-24 07:37:47 -0800</bug_when>
    <thetext>Give it another quick lookover please, for the use of std::call_once</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071661</commentid>
    <comment_count>27</comment_count>
      <attachid>247232</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2015-02-24 08:10:50 -0800</bug_when>
    <thetext>Comment on attachment 247232
Patch

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

Thank you! This looks good.

&gt; Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp:128
&gt; +    static FcPattern* pattern = nullptr;
&gt; +    static std::once_flag flag;
&gt; +    std::call_once(flag, [](FcPattern*) {
&gt; +        pattern = FcPatternCreate();

I have nothing to add here that won&apos;t make me sound like a hermit shaking my stick from the woods.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071662</commentid>
    <comment_count>28</comment_count>
      <attachid>247232</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2015-02-24 08:11:17 -0800</bug_when>
    <thetext>Comment on attachment 247232
Patch

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

&gt; Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp:135
&gt; +}

Yep, that&apos;s exactly what I was suggesting.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071677</commentid>
    <comment_count>29</comment_count>
      <attachid>247232</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-24 09:08:16 -0800</bug_when>
    <thetext>Comment on attachment 247232
Patch

Clearing flags on attachment: 247232

Committed r180563: &lt;http://trac.webkit.org/changeset/180563&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1071678</commentid>
    <comment_count>30</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-02-24 09:08:21 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072325</commentid>
    <comment_count>31</comment_count>
      <attachid>247232</attachid>
    <who name="Zan Dobersek">zan</who>
    <bug_when>2015-02-26 02:34:21 -0800</bug_when>
    <thetext>Comment on attachment 247232
Patch

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

&gt; Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp:307
&gt; -    cairo_font_options_t* options = getDefaultFontOptions();
&gt; +    cairo_font_options_t* options = getDefaultCairoFontOptions();
&gt; +    FcPattern* optionsPattern = m_pattern ? m_pattern.get() : getDefaultFontconfigOptions();
&gt; +    setCairoFontOptionsFromFontConfigPattern(options, optionsPattern);

This properly checks for and works around the possibly-null m_pattern ...

&gt; Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp:324
&gt; +    for (int i = 0; FcPatternGetMatrix(m_pattern.get(), FC_MATRIX, i, &amp;tempFontConfigMatrix) == FcResultMatch; i++)
&gt; +        FcMatrixMultiply(&amp;fontConfigMatrix, &amp;fontConfigMatrix, tempFontConfigMatrix);

... but this doesn&apos;t anymore (though it used to), which leads to crashes.

Should the FcPattern* from getDefaultFontconfigOptions() be used here as well, or should the code not execute at all when m_pattern is null?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1072365</commentid>
    <comment_count>32</comment_count>
    <who name="Michael Catanzaro">mcatanzaro</who>
    <bug_when>2015-02-26 06:40:10 -0800</bug_when>
    <thetext>It should be executed, and it should have crashed when I tested it. That was one of the last changes I made so my guess is I failed to test it at all.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>245525</attachid>
            <date>2015-01-28 00:55:12 -0800</date>
            <delta_ts>2015-01-28 00:55:12 -0800</delta_ts>
            <desc>Minimal example of bad font rendering</desc>
            <filename>fonts-horrible.html</filename>
            <type>text/html</type>
            <size>2700</size>
            <attacher name="Sergio Villar Senin">svillar</attacher>
            
              <data encoding="base64">PCFET0NUWVBFIGh0bWw+CjxzdHlsZT4KICAgIEBmb250LWZhY2UgewogICAgLyogU3VwcmlhIFNh
bnMgUmVndWxhciAqLwogICAgZm9udC1mYW1pbHk6ICdTdXByaWEgU2Fucyc7CiAgICBzcmM6IHVy
bCgiaHR0cDovL3d3dy5yYWNoZWxhbmRyZXcuY28udWsvZm9udHMvMjc5NEJBXzFfMC5lb3QiKTsK
ICAgIHNyYzogdXJsKCJodHRwOi8vd3d3LnJhY2hlbGFuZHJldy5jby51ay9mb250cy8yNzk0QkFf
MV8wLmVvdD8jaWVmaXgiKSBmb3JtYXQoImVtYmVkZGVkLW9wZW50eXBlIiksIHVybCgiaHR0cDov
L3d3dy5yYWNoZWxhbmRyZXcuY28udWsvZm9udHMvMjc5NEJBXzFfMC53b2ZmIikgZm9ybWF0KCJ3
b2ZmIiksIHVybCgiaHR0cDovL3d3dy5yYWNoZWxhbmRyZXcuY28udWsvZm9udHMvMjc5NEJBXzFf
MC50dGYiKSBmb3JtYXQoInRydWV0eXBlIik7CiAgICBmb250LXN0eWxlOiBub3JtYWw7CiAgICBm
b250LXdlaWdodDogbm9ybWFsOyB9CgogICAgQGZvbnQtZmFjZSB7CiAgICAvKiBTdXByaWEgU2Fu
cyBNZWRpdW0gKi8KICAgIGZvbnQtZmFtaWx5OiAnU3VwcmlhIFNhbnMnOwogICAgc3JjOiB1cmwo
Imh0dHA6Ly93d3cucmFjaGVsYW5kcmV3LmNvLnVrL2ZvbnRzLzI3OTRCQV8yXzAuZW90Iik7CiAg
ICBzcmM6IHVybCgiaHR0cDovL3d3dy5yYWNoZWxhbmRyZXcuY28udWsvZm9udHMvMjc5NEJBXzJf
MC5lb3Q/I2llZml4IikgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLCB1cmwoImh0dHA6Ly93
d3cucmFjaGVsYW5kcmV3LmNvLnVrL2ZvbnRzLzI3OTRCQV8yXzAud29mZiIpIGZvcm1hdCgid29m
ZiIpLCB1cmwoImh0dHA6Ly93d3cucmFjaGVsYW5kcmV3LmNvLnVrL2ZvbnRzLzI3OTRCQV8yXzAu
dHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOwogICAgZm9udC1zdHlsZTogbm9ybWFsOwogICAgZm9u
dC13ZWlnaHQ6IGJvbGQ7IH0KCiAgICBAZm9udC1mYWNlIHsKICAgIC8qIFN1cHJpYSBTYW5zIE1l
ZGl1bSBJdGFsaWMgKi8KICAgIGZvbnQtZmFtaWx5OiAnU3VwcmlhIFNhbnMnOwogICAgc3JjOiB1
cmwoImh0dHA6Ly93d3cucmFjaGVsYW5kcmV3LmNvLnVrL2ZvbnRzLzI3OTRCQV8zXzAuZW90Iik7
CiAgICBzcmM6IHVybCgiaHR0cDovL3d3dy5yYWNoZWxhbmRyZXcuY28udWsvZm9udHMvMjc5NEJB
XzNfMC5lb3Q/I2llZml4IikgZm9ybWF0KCJlbWJlZGRlZC1vcGVudHlwZSIpLCB1cmwoImh0dHA6
Ly93d3cucmFjaGVsYW5kcmV3LmNvLnVrL2ZvbnRzLzI3OTRCQV8zXzAud29mZiIpIGZvcm1hdCgi
d29mZiIpLCB1cmwoImh0dHA6Ly93d3cucmFjaGVsYW5kcmV3LmNvLnVrL2ZvbnRzLzI3OTRCQV8z
XzAudHRmIikgZm9ybWF0KCJ0cnVldHlwZSIpOwogICAgZm9udC1zdHlsZTogaXRhbGljOwogICAg
Zm9udC13ZWlnaHQ6IGJvbGQ7IH0KCiAgICBAZm9udC1mYWNlIHsKICAgIC8qIFN1cHJpYSBTYW5z
IFJlZ3VsYXIgSXRhbGljICovCiAgICBmb250LWZhbWlseTogJ1N1cHJpYSBTYW5zJzsKICAgIHNy
YzogdXJsKCJodHRwOi8vd3d3LnJhY2hlbGFuZHJldy5jby51ay9mb250cy8yNzk0QkFfNV8wLmVv
dCIpOwogICAgc3JjOiB1cmwoImh0dHA6Ly93d3cucmFjaGVsYW5kcmV3LmNvLnVrL2ZvbnRzLzI3
OTRCQV81XzAuZW90PyNpZWZpeCIpIGZvcm1hdCgiZW1iZWRkZWQtb3BlbnR5cGUiKSwgdXJsKCJo
dHRwOi8vd3d3LnJhY2hlbGFuZHJldy5jby51ay9mb250cy8yNzk0QkFfNV8wLndvZmYiKSBmb3Jt
YXQoIndvZmYiKSwgdXJsKCJodHRwOi8vd3d3LnJhY2hlbGFuZHJldy5jby51ay9mb250cy8yNzk0
QkFfNV8wLnR0ZiIpIGZvcm1hdCgidHJ1ZXR5cGUiKTsKICAgIGZvbnQtc3R5bGU6IGl0YWxpYzsK
ICAgIGZvbnQtd2VpZ2h0OiBub3JtYWw7IH0KCiBib2R5IHsKICAgIGZvbnQtZmFtaWx5OiAnU3Vw
cmlhIFNhbnMnLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7CiAgICBmb250LXNpemU6IDE2cHg7CiB9
Cjwvc3R5bGU+Cjxib2R5PgogICAgPHA+TG9yZW0gaXBzdW0gZG9sb3Igc2l0IGFtZXQsIGNvbnNl
Y3RldHVyIGFkaXBpc2NpbmcgZWxpdC4gTnVsbGFtCiAgICBsb2JvcnRpcyBpcHN1bSBzb2xsaWNp
dHVkaW4sIGRpZ25pc3NpbSBwdXJ1cyBhdCwgc3VzY2lwaXQKICAgIGVzdC4gQWxpcXVhbSBldWlz
bW9kIHZpdGFlIGVsaXQgbm9uIGNvbmRpbWVudHVtLiBQZWxsZW50ZXNxdWUKICAgIGFjY3Vtc2Fu
IGNvbW1vZG8gbGliZXJvIGF0IHVsdHJpY2llcy4gTnVsbGFtIHNvZGFsZXMgZHVpIGVsaXQsCiAg
ICBwb3J0dGl0b3IgbG9ib3J0aXMgZXggdmVuZW5hdGlzIHZlbC4gTWF1cmlzIHBvcnRhIGlwc3Vt
IG5pYmgsIGlkCiAgICBkYXBpYnVzIGZlbGlzIGlhY3VsaXMgc2VkLiBEb25lYyBuZXF1ZSBhdWd1
ZSwgdGVtcG9yIGFjIGxpYmVybwogICAgbm9uLCBsdWN0dXMgcG9ydHRpdG9yIG1hdXJpcy4gTWF1
cmlzIHF1aXMgbmliaCBudW5jLiBTZWQgcHJldGl1bQogICAgc29kYWxlcyBsZWN0dXMsIHBlbGxl
bnRlc3F1ZSBmYXVjaWJ1cyBzZW0gZXVpc21vZCBuZWMuIE5hbQogICAgY29uc2VjdGV0dXIgb2Rp
byBhdCBudW5jIGxvYm9ydGlzLCBpbiBncmF2aWRhIG1ldHVzCiAgICBzb2RhbGVzLiBWZXN0aWJ1
bHVtIG1heGltdXMgc2FwaWVuIGFudGUsIHNpdCBhbWV0IGJsYW5kaXQgZGlhbQogICAgdWxsYW1j
b3JwZXIgdXQuIE5hbSBlZ2V0IHRvcnRvciBkaWduaXNzaW0gZXJvcyBlZmZpY2l0dXIKICAgIGNv
bnNlcXVhdC48L3A+CjwvYm9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="0"
              isprivate="0"
          >
            <attachid>245556</attachid>
            <date>2015-01-28 11:37:57 -0800</date>
            <delta_ts>2015-01-28 11:37:57 -0800</delta_ts>
            <desc>screenshot</desc>
            <filename>Screenshot from 2015-01-28 13:36:59.png</filename>
            <type>image/png</type>
            <size>40517</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">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
AEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwI
AACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkj
AgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDO
iAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQ
MyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA
5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAA
ADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIA
AEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwI
AACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkj
AgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDO
iAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQ
MyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA
5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAA
ADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIA
AEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwI
AACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkj
AgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDO
iAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQ
MyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA
5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAA
ADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIA
AEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwI
AACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkj
AgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDO
iAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQ
MyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA
5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAA
ADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIA
AEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwI
AACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkj
AgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDO
iAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQ
MyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA
5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAA
ADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIA
AEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwI
AACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkj
AgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDOiAAAADkjAgAA5IwIAACQMyIAAEDO
iAAAADkjAgAA5IwIAACQOzMzu/u6AwAA+MgF3prFpZ5NVnkAAAAASUVORK5CYII=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="0"
              isprivate="0"
          >
            <attachid>246847</attachid>
            <date>2015-02-18 14:05:01 -0800</date>
            <delta_ts>2015-02-22 22:38:01 -0800</delta_ts>
            <desc>test patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>734</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzCmluZGV4IGEzMTlkNzguLjA4MjFmZWEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcApAQCAt
MzUsNyArMzUsNyBAQCBzdGF0aWMgdm9pZCByZWxlYXNlQ3VzdG9tRm9udERhdGEodm9pZCogZGF0
YSkKIH0KIAogRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YShG
VF9GYWNlIGZyZWVUeXBlRmFjZSwgU2hhcmVkQnVmZmVyJiBidWZmZXIpCi0gICAgOiBtX2ZvbnRG
YWNlKGNhaXJvX2Z0X2ZvbnRfZmFjZV9jcmVhdGVfZm9yX2Z0X2ZhY2UoZnJlZVR5cGVGYWNlLCAw
KSkKKyAgICA6IG1fZm9udEZhY2UoY2Fpcm9fZnRfZm9udF9mYWNlX2NyZWF0ZV9mb3JfZnRfZmFj
ZShmcmVlVHlwZUZhY2UsIEZUX0xPQURfRk9SQ0VfQVVUT0hJTlQpKQogewogICAgIC8vIEZJWE1F
IFNob3VsZCB3ZSBiZSBzZXR0aW5nIHNvbWUgaGludGluZyBvcHRpb25zIGhlcmU/Cgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247101</attachid>
            <date>2015-02-22 22:35:06 -0800</date>
            <delta_ts>2015-02-23 20:31:30 -0800</delta_ts>
            <desc>[GTK] Fonts loaded via @font-face look bad</desc>
            <filename>bug-140994-20150223003455.patch</filename>
            <type>text/plain</type>
            <size>5390</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwMjE2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggY2IyYTg1Y2YwNDEyOGI2
ZDM4YjEyOWM1NWYwOTdhMzYwOTY3ZGQxNC4uYmQwMzk0YTk5YjBhNGM1NTRmOGNmODM0NDk3NDZh
M2E5OWQ0OGRkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIzIEBACisyMDE1LTAyLTIyICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBG
b250cyBsb2FkZWQgdmlhIEBmb250LWZhY2UgbG9vayBiYWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDk5NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE5vIG5ldyB0ZXN0cyBiZWNhdXNlIEkgaGF2ZW4n
dCBmb3VuZCBhIGZyZWVseS1kaXN0cmlidXRhYmxlIGZvbnQgdGhhdCB0cmlnZ2VycyB0aGUgYnVn
LgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YUZyZWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9y
bURhdGE6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOiBSZW1vdmUgRklYTUUgY29tbWVudC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5
cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Z2V0RGVmYXVsdENhaXJvRm9udE9wdGlvbnMpOiBS
ZW5hbWVkIGZyb20gZ2V0RGVmYXVsdEZvbnRPcHRpb25zLgorICAgICAgICAoV2ViQ29yZTo6Z2V0
RGVmYXVsdEZvbnRjb25maWdPcHRpb25zKTogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKTogSW5pdGlhbGl6ZSBtX3BhdHRlcm4gd2l0
aAorICAgICAgICBnZXREZWZhdWx0Rm9udGNvbmZpZ09wdGlvbnMgc28gdGhhdCB0aGV5IGFyZSBw
cm9wZXJseSBhcHBsaWVkIHRvIHdlYiBmb250cy4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0
Zm9ybURhdGE6OmluaXRpYWxpemVXaXRoRm9udEZhY2UpOiBSZW5hbWVkIGdldERlZmF1bHRGb250
T3B0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnNldE9yaWVudGF0
aW9uKTogUmVuYW1lZCBnZXREZWZhdWx0Rm9udE9wdGlvbnMuCisgICAgICAgIChXZWJDb3JlOjpn
ZXREZWZhdWx0Rm9udE9wdGlvbnMpOiBEZWxldGVkLgorCiAyMDE1LTAyLTE3ICBDYXJsb3MgR2Fy
Y2lhIENhbXBvcyAgPGNnYXJjaWFAaWdhbGlhLmNvbT4KIAogICAgICAgICBVc2UgSGFzaE1hcDo6
YWRkIGluc3RlYWQgb2YgZ2V0L2NvbnRhaW5zICsgc2V0IGluIERPTU9iamVjdENhY2hlCmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAppbmRleCBh
MzE5ZDc4NzQ3MGIyOWVkODYxMDE2Nzk3NjU2ODllN2I3NjUzOGQzLi40MmE0MjI0NGM1YjNlYmFm
YTc4MWQwYjIyNjE1MWYzNGEyMGZhNmRhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3Bw
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKQEAgLTM3LDggKzM3LDYgQEAgc3RhdGljIHZvaWQg
cmVsZWFzZUN1c3RvbUZvbnREYXRhKHZvaWQqIGRhdGEpCiBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
OjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhKEZUX0ZhY2UgZnJlZVR5cGVGYWNlLCBTaGFyZWRCdWZm
ZXImIGJ1ZmZlcikKICAgICA6IG1fZm9udEZhY2UoY2Fpcm9fZnRfZm9udF9mYWNlX2NyZWF0ZV9m
b3JfZnRfZmFjZShmcmVlVHlwZUZhY2UsIDApKQogewotICAgIC8vIEZJWE1FIFNob3VsZCB3ZSBi
ZSBzZXR0aW5nIHNvbWUgaGludGluZyBvcHRpb25zIGhlcmU/Ci0KICAgICBidWZmZXIucmVmKCk7
IC8vIFRoaXMgaXMgYmFsYW5jZWQgYnkgdGhlIGJ1ZmZlci0+ZGVyZWYoKSBpbiByZWxlYXNlQ3Vz
dG9tRm9udERhdGEuCiAgICAgc3RhdGljIGNhaXJvX3VzZXJfZGF0YV9rZXlfdCBidWZmZXJLZXk7
CiAgICAgY2Fpcm9fZm9udF9mYWNlX3NldF91c2VyX2RhdGEobV9mb250RmFjZSwgJmJ1ZmZlcktl
eSwgJmJ1ZmZlciwKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCmlu
ZGV4IGRhMWYyZjk4YzcxNzVlMmVmNTFkZmM1N2NmMmY3MTZlYjBmNDM0ZDMuLmM3YzFhMTEyODU2
ZjNlYTc5MmU1NzA1N2M2YWU3NDAwM2YyYzM4YmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRm
b3JtRGF0YUZyZWVUeXBlLmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkZvbnRQbGF0
Zm9ybURhdGEuaCIKIAogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIlJl
ZlB0ckNhaXJvLmgiCiAjaW5jbHVkZSA8Y2Fpcm8tZnQuaD4KICNpbmNsdWRlIDxjYWlyby5oPgog
I2luY2x1ZGUgPGZvbnRjb25maWcvZmNmcmVldHlwZS5oPgpAQCAtMTAzLDcgKzEwNCw3IEBAIHZv
aWQgc2V0Q2Fpcm9Gb250T3B0aW9uc0Zyb21Gb250Q29uZmlnUGF0dGVybihjYWlyb19mb250X29w
dGlvbnNfdCogb3B0aW9ucywgRmNQCiAgICAgICAgIGNhaXJvX2ZvbnRfb3B0aW9uc19zZXRfaGlu
dF9zdHlsZShvcHRpb25zLCBDQUlST19ISU5UX1NUWUxFX05PTkUpOwogfQogCi1zdGF0aWMgY2Fp
cm9fZm9udF9vcHRpb25zX3QqIGdldERlZmF1bHRGb250T3B0aW9ucygpCitzdGF0aWMgY2Fpcm9f
Zm9udF9vcHRpb25zX3QqIGdldERlZmF1bHRDYWlyb0ZvbnRPcHRpb25zKCkKIHsKICNpZiBQTEFU
Rk9STShHVEspCiAgICAgaWYgKEdka1NjcmVlbiogc2NyZWVuID0gZ2RrX3NjcmVlbl9nZXRfZGVm
YXVsdCgpKSB7CkBAIC0xMTUsNiArMTE2LDE5IEBAIHN0YXRpYyBjYWlyb19mb250X29wdGlvbnNf
dCogZ2V0RGVmYXVsdEZvbnRPcHRpb25zKCkKICAgICByZXR1cm4gY2Fpcm9fZm9udF9vcHRpb25z
X2NyZWF0ZSgpOwogfQogCitzdGF0aWMgUmVmUHRyPEZjUGF0dGVybj4gZ2V0RGVmYXVsdEZvbnRj
b25maWdPcHRpb25zKCkKK3sKKyAgICAvLyBGb3Igd2ViIGZvbnRzLgorICAgIC8vIFN0cmF0ZWd5
IGZyb20gQmVoZGFkIEVzZmFoYm9kIGluIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21p
dW0vaXNzdWVzL2RldGFpbD9pZD0xNzMyMDcjYzM1CisgICAgUmVmUHRyPEZjUGF0dGVybj4gcGF0
dGVybiA9IGFkb3B0UmVmKEZjUGF0dGVybkNyZWF0ZSgpKTsKKyAgICBGY0NvbmZpZ1N1YnN0aXR1
dGUobnVsbHB0ciwgcGF0dGVybi5nZXQoKSwgRmNNYXRjaFBhdHRlcm4pOworICAgIEZjRGVmYXVs
dFN1YnN0aXR1dGUocGF0dGVybi5nZXQoKSk7CisgICAgRmNQYXR0ZXJuUmVtb3ZlKHBhdHRlcm4u
Z2V0KCksIEZDX0ZBTUlMWSwgMCk7CisgICAgRmNDb25maWdTdWJzdGl0dXRlKG51bGxwdHIsIHBh
dHRlcm4uZ2V0KCksIEZjTWF0Y2hGb250KTsKKworICAgIHJldHVybiBwYXR0ZXJuOworfQorCiBz
dGF0aWMgdm9pZCByb3RhdGVDYWlyb01hdHJpeEZvclZlcnRpY2FsT3JpZW50YXRpb24oY2Fpcm9f
bWF0cml4X3QqIG1hdHJpeCkKIHsKICAgICAvLyBUaGUgcmVzdWx0aW5nIHRyYW5zZm9ybWF0aW9u
IG1hdHJpeCBmb3IgdmVydGljYWwgZ2x5cGhzIChWKSBpcyBhCkBAIC0xNjgsNyArMTgyLDggQEAg
Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQs
IGJvb2wgaXRhbGljKQogfQogCiBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGNh
aXJvX2ZvbnRfZmFjZV90KiBmb250RmFjZSwgZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIGl0
YWxpYywgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKQotICAgIDogbV9mYWxsYmFja3MobnVs
bHB0cikKKyAgICA6IG1fcGF0dGVybihnZXREZWZhdWx0Rm9udGNvbmZpZ09wdGlvbnMoKSkKKyAg
ICAsIG1fZmFsbGJhY2tzKG51bGxwdHIpCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fc3lu
dGhldGljQm9sZChib2xkKQogICAgICwgbV9zeW50aGV0aWNPYmxpcXVlKGl0YWxpYykKQEAgLTI4
Myw3ICsyOTgsNyBAQCBTdHJpbmcgRm9udFBsYXRmb3JtRGF0YTo6ZGVzY3JpcHRpb24oKSBjb25z
dAogCiB2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OmluaXRpYWxpemVXaXRoRm9udEZhY2UoY2Fpcm9f
Zm9udF9mYWNlX3QqIGZvbnRGYWNlLCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlw
dGlvbikKIHsKLSAgICBjYWlyb19mb250X29wdGlvbnNfdCogb3B0aW9ucyA9IGdldERlZmF1bHRG
b250T3B0aW9ucygpOworICAgIGNhaXJvX2ZvbnRfb3B0aW9uc190KiBvcHRpb25zID0gZ2V0RGVm
YXVsdENhaXJvRm9udE9wdGlvbnMoKTsKIAogICAgIGNhaXJvX21hdHJpeF90IGN0bTsKICAgICBj
YWlyb19tYXRyaXhfaW5pdF9pZGVudGl0eSgmY3RtKTsKQEAgLTM4OCw3ICs0MDMsNyBAQCB2b2lk
IEZvbnRQbGF0Zm9ybURhdGE6OnNldE9yaWVudGF0aW9uKEZvbnRPcmllbnRhdGlvbiBvcmllbnRh
dGlvbikKICAgICBjYWlyb19tYXRyaXhfdCBmb250TWF0cml4OwogICAgIGNhaXJvX3NjYWxlZF9m
b250X2dldF9mb250X21hdHJpeChtX3NjYWxlZEZvbnQsICZmb250TWF0cml4KTsKIAotICAgIGNh
aXJvX2ZvbnRfb3B0aW9uc190KiBvcHRpb25zID0gZ2V0RGVmYXVsdEZvbnRPcHRpb25zKCk7Cisg
ICAgY2Fpcm9fZm9udF9vcHRpb25zX3QqIG9wdGlvbnMgPSBnZXREZWZhdWx0Q2Fpcm9Gb250T3B0
aW9ucygpOwogCiAgICAgLy8gSW4gY2FzZSBvZiB2ZXJ0aWNhbCBvcmllbnRhdGlvbiwgcm90YXRl
IHRoZSB0cmFuc2Zvcm1hdGlvbiBtYXRyaXguCiAgICAgLy8gT3RoZXJ3aXNlIHJlc3RvcmUgdGhl
IGhvcml6b250YWwgb3JpZW50YXRpb24gbWF0cml4Lgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247194</attachid>
            <date>2015-02-23 20:31:38 -0800</date>
            <delta_ts>2015-02-24 07:34:57 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140994-20150223223126.patch</filename>
            <type>text/plain</type>
            <size>10377</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQzODU0ZjUzNWQyMDk3
MTcxNjdmNTZhOGU4NTE4MTc2ZTMxOTk3My4uMGU3NWVhNzFhMDdjZjI3MTJmYjI0YmFmZTRlOGFl
OTllOWZiOWE5NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE1LTAyLTIzICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBG
b250cyBsb2FkZWQgdmlhIEBmb250LWZhY2UgbG9vayBiYWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDk5NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlJ3ZlIGhhZCBzZXZlcmFsIGNvbXBsYWludHMg
dGhhdCB3b2ZmIGZvbnRzIGxvb2sgYmFkIG9uIHNvbWUgd2Vic2l0ZXMuIFRoaXMgc2VlbXMgdG8g
YmUgYQorICAgICAgICBjb21iaW5hdGlvbiBvZiBtdWx0aXBsZSBpc3N1ZXMuIEZvciBvbmUsIHdl
IGRvbid0IGxvb2sgYXQgRm9udGNvbmZpZyBzZXR0aW5ncyBhdCBhbGwgd2hlbgorICAgICAgICBj
cmVhdGluZyBhIHdlYiBmb250LiBUaGlzIGNvbW1pdCBjaGFuZ2VzIEZvbnRQbGF0Zm9ybURhdGE6
OmluaXRpYWxpemVXaXRoRm9udEZhY2UgdG8gaW5zdGVhZAorICAgICAgICB1c2Ugc2FuZSBkZWZh
dWx0IHNldHRpbmdzIGZyb20gRm9udGNvbmZpZyB3aGVuIGxvYWRpbmcgYSB3ZWIgZm9udCwgcmF0
aGVyIHRoYW4gYWNjZXB0aW5nIHRoZQorICAgICAgICBkZWZhdWx0IHNldHRpbmdzIGZyb20gR1RL
Kywgd2hpY2ggYXJlIG5vcm1hbGx5IG92ZXJyaWRkZW4gYnkgZm9udGNvbmZpZyB3aGVuIGxvYWRp
bmcgc3lzdGVtCisgICAgICAgIGZvbnRzLiBIb3dldmVyLCB3ZSB3aWxsIGhhcmRjb2RlIHRoZSBo
aW50aW5nIHNldHRpbmcgZm9yIHdlYiBmb250cyB0byBhbHdheXMgZm9yY2UgdXNlIG9mCisgICAg
ICAgIHRoZSBsaWdodCBhdXRvaGludGVyLCBzbyB0aGF0IHdlIGRvIG5vdCB1c2UgYSBmb250J3Mg
bmF0aXZlIGhpbnRzLiBUaGlzIGF2b2lkcyBjb21wYXRpYmlsaXR5CisgICAgICAgIGlzc3VlcyB3
aGVuIGZvbnRzIHdpdGggcG9vciBuYXRpdmUgaGludGluZyBhcmUgb25seSB0ZXN0ZWQgaW4gYnJv
d3NlcnMgdGhhdCBkbyBub3QgdXNlIHRoZQorICAgICAgICBuYXRpdmUgaGludHMuIEl0IGFsc28g
YWxsb3dzIHVzIHRvIHNpZGVzdGVwIGZ1dHVyZSBzZWN1cml0eSB2dWxuZXJhYmlsaXRpZXMgaW4g
RnJlZVR5cGUncworICAgICAgICBieXRlY29kZSBpbnRlcnByZXRlci4KKworICAgICAgICBUaGUg
bmV0IHJlc3VsdCBvZiB0aGlzIGlzIHRoYXQgdGhlcmUgc2hvdWxkIGJlIGxpdHRsZSBub3RpY2Fi
bGUgZGlmZmVyZW5jZSBpZiB5b3UgaGF2ZSBHVEsrCisgICAgICAgIHNldCB0byB1c2Ugc2xpZ2h0
IGhpbnRpbmcgKHdoaWNoIGZvcmNlcyB1c2Ugb2YgdGhlIGF1dG9oaW50ZXIpIHVubGVzcyB5b3Ug
aGF2ZSBjdXN0b21pemVkCisgICAgICAgIEZvbnRjb25maWcgY29uZmlndXJhdGlvbiwgYnV0IGEg
ZHJhbWF0aWMgaW1wcm92ZW1lbnQgd2l0aCBwYXJ0aWN1bGFyIGZvbnRzIGlmIHlvdSB1c2UgbWVk
aXVtCisgICAgICAgIG9yIGZ1bGwgaGludGluZy4gVGhpcyBzaG91bGQgcmVkdWNlIGNvbXBsYWlu
dHMgYWJvdXQgb3VyIGZvbnQgcmVuZGVyaW5nIG9uICJmYW5jeSBzaXRlcy4iCisKKyAgICAgICAg
Tm8gbmV3IHRlc3RzLCBzaW5jZSB0aGUgYWZmZWN0ZWQgZm9udHMgd2UndmUgZm91bmQgYXJlIG5v
dCBmcmVlbHkgcmVkaXN0cmlidXRhYmxlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOiBG
b3JjZSB3ZWIgZm9udHMgdG8gYmUgYXV0b2hpbnRlZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6Z2V0RGVmYXVsdENhaXJvRm9udE9wdGlvbnMpOiBSZW5hbWVkIHRvIGRpc2FtYmlndWF0
ZS4KKyAgICAgICAgKFdlYkNvcmU6OmdldERlZmF1bHRGb250Y29uZmlnT3B0aW9ucyk6IEFkZGVk
LgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6aW5pdGlhbGl6ZVdpdGhGb250
RmFjZSk6IEFsd2F5cyBjYWxsCisgICAgICAgIEZvbnRQbGF0Zm9ybURhdGE6OnNldENhaXJvT3B0
aW9uc0Zyb21Gb250Q29uZmlnUGF0dGVybi4gSWYgdGhlIEZvbnRQbGF0Zm9ybURhdGEgd2FzIG5v
dAorICAgICAgICBjcmVhdGVkIHdpdGggYW4gRmNQYXR0ZXJuIChlLmcuIGJlY2F1c2UgdGhpcyBp
cyBhIHdlYiBmb250KSwgY2FsbAorICAgICAgICBnZXREZWZhdWx0Rm9udGNvbmZpZ09wdGlvbnMg
dG8gZ2V0IGEgc2FuZSBkZWZhdWx0IEZjUGF0dGVybi4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQ
bGF0Zm9ybURhdGE6OnNldE9yaWVudGF0aW9uKTogUmVuYW1lZCBjYWxsIHRvIGdldERlZmF1bHRD
YWlyb0ZvbnRPcHRpb25zLgorICAgICAgICAoV2ViQ29yZTo6Z2V0RGVmYXVsdEZvbnRPcHRpb25z
KTogRGVsZXRlZC4KKwogMjAxNS0wMi0yMyAgRXJpYyBDYXJsc29uICA8ZXJpYy5jYXJsc29uQGFw
cGxlLmNvbT4KIAogICAgICAgICBPY2Nhc2lvbmFsIGNyYXNoIGluIE1lZGlhUGxheWVyOjpzZXRQ
cml2YXRlQnJvd3NpbmdNb2RlCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YUZyZWVUeXBlLmNwcAppbmRleCBhMzE5ZDc4NzQ3MGIyOWVkODYxMDE2Nzk3NjU2ODllN2I3
NjUzOGQzLi5kMWQ5Yjc3YTUyYTFlMTVlMTI1NDRjMTUyODQ4NTdlY2FkMTk1YmEwIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKQEAgLTM1
LDkgKzM1LDE2IEBAIHN0YXRpYyB2b2lkIHJlbGVhc2VDdXN0b21Gb250RGF0YSh2b2lkKiBkYXRh
KQogfQogCiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhKEZU
X0ZhY2UgZnJlZVR5cGVGYWNlLCBTaGFyZWRCdWZmZXImIGJ1ZmZlcikKLSAgICA6IG1fZm9udEZh
Y2UoY2Fpcm9fZnRfZm9udF9mYWNlX2NyZWF0ZV9mb3JfZnRfZmFjZShmcmVlVHlwZUZhY2UsIDAp
KQorICAgIDogbV9mb250RmFjZShjYWlyb19mdF9mb250X2ZhY2VfY3JlYXRlX2Zvcl9mdF9mYWNl
KGZyZWVUeXBlRmFjZSwgRlRfTE9BRF9GT1JDRV9BVVRPSElOVCkpCiB7Ci0gICAgLy8gRklYTUUg
U2hvdWxkIHdlIGJlIHNldHRpbmcgc29tZSBoaW50aW5nIG9wdGlvbnMgaGVyZT8KKyAgICAvLyBG
VF9MT0FEX0ZPUkNFX0FVVE9ISU5UIHByb2hpYml0cyB1c2Ugb2YgdGhlIGZvbnQncyBuYXRpdmUg
aGludGluZy4gVGhpcyBpcworICAgIC8vIGEgc2FmZSBvcHRpb24gZm9yIGN1c3RvbSBmb250cyBi
ZWNhdXNlIChhKSBzb21lIHN1Y2ggZm9udHMgbWF5IGhhdmUgYnJva2VuCisgICAgLy8gaGludGlu
Zywgd2hpY2ggc2l0ZSBhZG1pbnMgbWF5IG5vdCBub3RpY2UgaWYgb3RoZXIgYnJvd3NlcnMgZG8g
bm90IHVzZSB0aGUKKyAgICAvLyBuYXRpdmUgaGludHMsIGFuZCAoYikgYWxsb3dpbmcgbmF0aXZl
IGhpbnRzIGV4cG9zZXMgdGhlIEZyZWVUeXBlIGJ5dGVjb2RlCisgICAgLy8gaW50ZXJwcmV0ZXIg
dG8gcG90ZW50aWFsbHktbWFsaWNpb3VzIGlucHV0LiBUcmVhdGluZyB3ZWIgZm9udHMgZGlmZmVy
ZW50bHkKKyAgICAvLyB0aGFuIHN5c3RlbSBmb250cyBpcyBub24taWRlYWwsIGJ1dCB0aGUgcmVz
dWx0IG9mIGF1dG9oaW50aW5nIGlzIGFsd2F5cworICAgIC8vIGRlY2VudCwgd2hlcmVhcyBuYXRp
dmUgaGludHMgc29tZXRpbWVzIGxvb2sgdGVycmlibGUuIE5vdGUgdGhhdCBDaHJvbWUgaXMKKyAg
ICAvLyBjb25zaWRlcmluZyB0aGUgb3Bwb3NpdGUgYXBwcm9hY2ggaW4gaHR0cHM6Ly9jb2RlLmdv
b2dsZS5jb20vcC9jaHJvbWl1bS9pc3N1ZXMvZGV0YWlsP2lkPTE3MzIwNwogCiAgICAgYnVmZmVy
LnJlZigpOyAvLyBUaGlzIGlzIGJhbGFuY2VkIGJ5IHRoZSBidWZmZXItPmRlcmVmKCkgaW4gcmVs
ZWFzZUN1c3RvbUZvbnREYXRhLgogICAgIHN0YXRpYyBjYWlyb191c2VyX2RhdGFfa2V5X3QgYnVm
ZmVyS2V5OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJl
ZXR5cGUvRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKaW5kZXgg
M2Y0NzJhNGJlODczMWNmMmMwOWYzY2U1YjUxYzY1OTBlMWZhODc5MS4uMzM1NTRiNWI4ZTZhNmRk
NGM1NjAzZjQ2MTYxYmM4ZjM2ZWMzYmE3MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250UGxhdGZvcm1E
YXRhRnJlZVR5cGUuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiRm9udFBsYXRmb3Jt
RGF0YS5oIgogCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiUmVmUHRy
Q2Fpcm8uaCIKICNpbmNsdWRlIDxjYWlyby1mdC5oPgogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5j
bHVkZSA8Zm9udGNvbmZpZy9mY2ZyZWV0eXBlLmg+CkBAIC0xMDMsNyArMTA0LDcgQEAgdm9pZCBz
ZXRDYWlyb0ZvbnRPcHRpb25zRnJvbUZvbnRDb25maWdQYXR0ZXJuKGNhaXJvX2ZvbnRfb3B0aW9u
c190KiBvcHRpb25zLCBGY1AKICAgICAgICAgY2Fpcm9fZm9udF9vcHRpb25zX3NldF9oaW50X3N0
eWxlKG9wdGlvbnMsIENBSVJPX0hJTlRfU1RZTEVfTk9ORSk7CiB9CiAKLXN0YXRpYyBjYWlyb19m
b250X29wdGlvbnNfdCogZ2V0RGVmYXVsdEZvbnRPcHRpb25zKCkKK3N0YXRpYyBjYWlyb19mb250
X29wdGlvbnNfdCogZ2V0RGVmYXVsdENhaXJvRm9udE9wdGlvbnMoKQogewogI2lmIFBMQVRGT1JN
KEdUSykKICAgICBpZiAoR2RrU2NyZWVuKiBzY3JlZW4gPSBnZGtfc2NyZWVuX2dldF9kZWZhdWx0
KCkpIHsKQEAgLTExNSw2ICsxMTYsMjIgQEAgc3RhdGljIGNhaXJvX2ZvbnRfb3B0aW9uc190KiBn
ZXREZWZhdWx0Rm9udE9wdGlvbnMoKQogICAgIHJldHVybiBjYWlyb19mb250X29wdGlvbnNfY3Jl
YXRlKCk7CiB9CiAKK3N0YXRpYyBGY1BhdHRlcm4qIGdldERlZmF1bHRGb250Y29uZmlnT3B0aW9u
cygpCit7CisgICAgLy8gR2V0IHNvbWUgZ2VuZXJpYyBkZWZhdWx0IHNldHRpbmdzIGZyb20gZm9u
dGNvbmZpZyBmb3Igd2ViIGZvbnRzLiBTdHJhdGVneQorICAgIC8vIGZyb20gQmVoZGFkIEVzZmFo
Ym9kIGluIGh0dHBzOi8vY29kZS5nb29nbGUuY29tL3AvY2hyb21pdW0vaXNzdWVzL2RldGFpbD9p
ZD0xNzMyMDcjYzM1CisgICAgLy8gTm90ZSB0aGF0IGhpbnQgc2V0dGluZ3MgYXJlIG92ZXJyaWRk
ZW4gaW4gRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS4KKyAg
ICBzdGF0aWMgRmNQYXR0ZXJuKiBwYXR0ZXJuID0gbnVsbHB0cjsKKyAgICBpZiAoIXBhdHRlcm4p
IHsKKyAgICAgICAgcGF0dGVybiA9IEZjUGF0dGVybkNyZWF0ZSgpOworICAgICAgICBGY0NvbmZp
Z1N1YnN0aXR1dGUobnVsbHB0ciwgcGF0dGVybiwgRmNNYXRjaFBhdHRlcm4pOworICAgICAgICBG
Y0RlZmF1bHRTdWJzdGl0dXRlKHBhdHRlcm4pOworICAgICAgICBGY1BhdHRlcm5EZWwocGF0dGVy
biwgRkNfRkFNSUxZKTsKKyAgICAgICAgRmNDb25maWdTdWJzdGl0dXRlKG51bGxwdHIsIHBhdHRl
cm4sIEZjTWF0Y2hGb250KTsKKyAgICB9CisgICAgcmV0dXJuIHBhdHRlcm47Cit9CisKIHN0YXRp
YyB2b2lkIHJvdGF0ZUNhaXJvTWF0cml4Rm9yVmVydGljYWxPcmllbnRhdGlvbihjYWlyb19tYXRy
aXhfdCogbWF0cml4KQogewogICAgIC8vIFRoZSByZXN1bHRpbmcgdHJhbnNmb3JtYXRpb24gbWF0
cml4IGZvciB2ZXJ0aWNhbCBnbHlwaHMgKFYpIGlzIGEKQEAgLTI4Myw3ICszMDAsNyBAQCBTdHJp
bmcgRm9udFBsYXRmb3JtRGF0YTo6ZGVzY3JpcHRpb24oKSBjb25zdAogCiB2b2lkIEZvbnRQbGF0
Zm9ybURhdGE6OmluaXRpYWxpemVXaXRoRm9udEZhY2UoY2Fpcm9fZm9udF9mYWNlX3QqIGZvbnRG
YWNlLCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbikKIHsKLSAgICBjYWly
b19mb250X29wdGlvbnNfdCogb3B0aW9ucyA9IGdldERlZmF1bHRGb250T3B0aW9ucygpOworICAg
IGNhaXJvX2ZvbnRfb3B0aW9uc190KiBvcHRpb25zID0gZ2V0RGVmYXVsdENhaXJvRm9udE9wdGlv
bnMoKTsKIAogICAgIGNhaXJvX21hdHJpeF90IGN0bTsKICAgICBjYWlyb19tYXRyaXhfaW5pdF9p
ZGVudGl0eSgmY3RtKTsKQEAgLTI5MiwzMSArMzA5LDMwIEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0
YTo6aW5pdGlhbGl6ZVdpdGhGb250RmFjZShjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UsIGNv
bnN0CiAgICAgLy8gSW5zdGVhZCB3ZSBzY2FsZSB3ZSBzY2FsZSB0aGUgZm9udCB0byBhIHZlcnkg
dGlueSBzaXplIGFuZCBqdXN0IGFib3J0IHJlbmRlcmluZyBsYXRlciBvbi4KICAgICBmbG9hdCBy
ZWFsU2l6ZSA9IG1fc2l6ZSA/IG1fc2l6ZSA6IDE7CiAKLSAgICBjYWlyb19tYXRyaXhfdCBmb250
TWF0cml4OwotICAgIGlmICghbV9wYXR0ZXJuKQotICAgICAgICBjYWlyb19tYXRyaXhfaW5pdF9z
Y2FsZSgmZm9udE1hdHJpeCwgcmVhbFNpemUsIHJlYWxTaXplKTsKLSAgICBlbHNlIHsKKyAgICBp
ZiAobV9wYXR0ZXJuKQogICAgICAgICBzZXRDYWlyb0ZvbnRPcHRpb25zRnJvbUZvbnRDb25maWdQ
YXR0ZXJuKG9wdGlvbnMsIG1fcGF0dGVybi5nZXQoKSk7CisgICAgZWxzZQorICAgICAgICBzZXRD
YWlyb0ZvbnRPcHRpb25zRnJvbUZvbnRDb25maWdQYXR0ZXJuKG9wdGlvbnMsIGdldERlZmF1bHRG
b250Y29uZmlnT3B0aW9ucygpKTsKIAotICAgICAgICAvLyBGb250Q29uZmlnIG1heSByZXR1cm4g
YSBsaXN0IG9mIHRyYW5zZm9ybWF0aW9uIG1hdHJpY2VzIHdpdGggdGhlIHBhdHRlcm4sIGZvciBp
bnN0YW5jZSwKLSAgICAgICAgLy8gZm9yIGZvbnRzIHRoYXQgYXJlIG9ibGlxdWUuIFdlIHVzZSB0
aGF0IHRvIGluaXRpYWxpemUgdGhlIGNhaXJvIGZvbnQgbWF0cml4LgotICAgICAgICBGY01hdHJp
eCBmb250Q29uZmlnTWF0cml4LCAqdGVtcEZvbnRDb25maWdNYXRyaXg7Ci0gICAgICAgIEZjTWF0
cml4SW5pdCgmZm9udENvbmZpZ01hdHJpeCk7CisgICAgLy8gRm9udENvbmZpZyBtYXkgcmV0dXJu
IGEgbGlzdCBvZiB0cmFuc2Zvcm1hdGlvbiBtYXRyaWNlcyB3aXRoIHRoZSBwYXR0ZXJuLCBmb3Ig
aW5zdGFuY2UsCisgICAgLy8gZm9yIGZvbnRzIHRoYXQgYXJlIG9ibGlxdWUuIFdlIHVzZSB0aGF0
IHRvIGluaXRpYWxpemUgdGhlIGNhaXJvIGZvbnQgbWF0cml4LgorICAgIGNhaXJvX21hdHJpeF90
IGZvbnRNYXRyaXg7CisgICAgRmNNYXRyaXggZm9udENvbmZpZ01hdHJpeCwgKnRlbXBGb250Q29u
ZmlnTWF0cml4OworICAgIEZjTWF0cml4SW5pdCgmZm9udENvbmZpZ01hdHJpeCk7CiAKLSAgICAg
ICAgLy8gVGhlc2UgbWF0cmljZXMgbWF5IGJlIHN0YWNrZWQgaW4gdGhlIHBhdHRlcm4sIHNvIGl0
J3Mgb3VyIGpvYiB0byBnZXQgdGhlbSBhbGwgYW5kIG11bHRpcGx5IHRoZW0uCi0gICAgICAgIGZv
ciAoaW50IGkgPSAwOyBGY1BhdHRlcm5HZXRNYXRyaXgobV9wYXR0ZXJuLmdldCgpLCBGQ19NQVRS
SVgsIGksICZ0ZW1wRm9udENvbmZpZ01hdHJpeCkgPT0gRmNSZXN1bHRNYXRjaDsgaSsrKQotICAg
ICAgICAgICAgRmNNYXRyaXhNdWx0aXBseSgmZm9udENvbmZpZ01hdHJpeCwgJmZvbnRDb25maWdN
YXRyaXgsIHRlbXBGb250Q29uZmlnTWF0cml4KTsKLSAgICAgICAgY2Fpcm9fbWF0cml4X2luaXQo
JmZvbnRNYXRyaXgsIGZvbnRDb25maWdNYXRyaXgueHgsIC1mb250Q29uZmlnTWF0cml4Lnl4LAot
ICAgICAgICAgICAgICAgICAgICAgICAgICAtZm9udENvbmZpZ01hdHJpeC54eSwgZm9udENvbmZp
Z01hdHJpeC55eSwgMCwgMCk7CisgICAgLy8gVGhlc2UgbWF0cmljZXMgbWF5IGJlIHN0YWNrZWQg
aW4gdGhlIHBhdHRlcm4sIHNvIGl0J3Mgb3VyIGpvYiB0byBnZXQgdGhlbSBhbGwgYW5kIG11bHRp
cGx5IHRoZW0uCisgICAgZm9yIChpbnQgaSA9IDA7IEZjUGF0dGVybkdldE1hdHJpeChtX3BhdHRl
cm4uZ2V0KCksIEZDX01BVFJJWCwgaSwgJnRlbXBGb250Q29uZmlnTWF0cml4KSA9PSBGY1Jlc3Vs
dE1hdGNoOyBpKyspCisgICAgICAgIEZjTWF0cml4TXVsdGlwbHkoJmZvbnRDb25maWdNYXRyaXgs
ICZmb250Q29uZmlnTWF0cml4LCB0ZW1wRm9udENvbmZpZ01hdHJpeCk7CisgICAgY2Fpcm9fbWF0
cml4X2luaXQoJmZvbnRNYXRyaXgsIGZvbnRDb25maWdNYXRyaXgueHgsIC1mb250Q29uZmlnTWF0
cml4Lnl4LAorICAgICAgICAtZm9udENvbmZpZ01hdHJpeC54eSwgZm9udENvbmZpZ01hdHJpeC55
eSwgMCwgMCk7CiAKLSAgICAgICAgLy8gV2UgcmVxdWVzdGVkIGFuIGl0YWxpYyBmb250LCBidXQg
Rm9udGNvbmZpZyBnYXZlIHVzIG9uZSB0aGF0IHdhcyBuZWl0aGVyIG9ibGlxdWUgbm9yIGl0YWxp
Yy4KLSAgICAgICAgaW50IGFjdHVhbEZvbnRTbGFudDsKLSAgICAgICAgaWYgKGZvbnREZXNjcmlw
dGlvbi5pdGFsaWMoKSAmJiBGY1BhdHRlcm5HZXRJbnRlZ2VyKG1fcGF0dGVybi5nZXQoKSwgRkNf
U0xBTlQsIDAsICZhY3R1YWxGb250U2xhbnQpID09IEZjUmVzdWx0TWF0Y2gpCi0gICAgICAgICAg
ICBtX3N5bnRoZXRpY09ibGlxdWUgPSBhY3R1YWxGb250U2xhbnQgPT0gRkNfU0xBTlRfUk9NQU47
CisgICAgLy8gV2UgcmVxdWVzdGVkIGFuIGl0YWxpYyBmb250LCBidXQgRm9udGNvbmZpZyBnYXZl
IHVzIG9uZSB0aGF0IHdhcyBuZWl0aGVyIG9ibGlxdWUgbm9yIGl0YWxpYy4KKyAgICBpbnQgYWN0
dWFsRm9udFNsYW50OworICAgIGlmIChmb250RGVzY3JpcHRpb24uaXRhbGljKCkgJiYgRmNQYXR0
ZXJuR2V0SW50ZWdlcihtX3BhdHRlcm4uZ2V0KCksIEZDX1NMQU5ULCAwLCAmYWN0dWFsRm9udFNs
YW50KSA9PSBGY1Jlc3VsdE1hdGNoKQorICAgICAgICBtX3N5bnRoZXRpY09ibGlxdWUgPSBhY3R1
YWxGb250U2xhbnQgPT0gRkNfU0xBTlRfUk9NQU47CiAKLSAgICAgICAgLy8gVGhlIG1hdHJpeCBm
cm9tIEZvbnRDb25maWcgZG9lcyBub3QgaW5jbHVkZSB0aGUgc2NhbGUuIAotICAgICAgICBjYWly
b19tYXRyaXhfc2NhbGUoJmZvbnRNYXRyaXgsIHJlYWxTaXplLCByZWFsU2l6ZSk7Ci0gICAgfQor
ICAgIC8vIFRoZSBtYXRyaXggZnJvbSBGb250Q29uZmlnIGRvZXMgbm90IGluY2x1ZGUgdGhlIHNj
YWxlLiAKKyAgICBjYWlyb19tYXRyaXhfc2NhbGUoJmZvbnRNYXRyaXgsIHJlYWxTaXplLCByZWFs
U2l6ZSk7CiAKICAgICBpZiAoc3ludGhldGljT2JsaXF1ZSgpKSB7CiAgICAgICAgIHN0YXRpYyBj
b25zdCBmbG9hdCBzeW50aGV0aWNPYmxpcXVlU2tldyA9IC10YW5mKDE0ICogYWNvc2YoMCkgLyA5
MCk7CkBAIC0zODgsNyArNDA0LDcgQEAgdm9pZCBGb250UGxhdGZvcm1EYXRhOjpzZXRPcmllbnRh
dGlvbihGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24pCiAgICAgY2Fpcm9fbWF0cml4X3QgZm9u
dE1hdHJpeDsKICAgICBjYWlyb19zY2FsZWRfZm9udF9nZXRfZm9udF9tYXRyaXgobV9zY2FsZWRG
b250LCAmZm9udE1hdHJpeCk7CiAKLSAgICBjYWlyb19mb250X29wdGlvbnNfdCogb3B0aW9ucyA9
IGdldERlZmF1bHRGb250T3B0aW9ucygpOworICAgIGNhaXJvX2ZvbnRfb3B0aW9uc190KiBvcHRp
b25zID0gZ2V0RGVmYXVsdENhaXJvRm9udE9wdGlvbnMoKTsKIAogICAgIC8vIEluIGNhc2Ugb2Yg
dmVydGljYWwgb3JpZW50YXRpb24sIHJvdGF0ZSB0aGUgdHJhbnNmb3JtYXRpb24gbWF0cml4Lgog
ICAgIC8vIE90aGVyd2lzZSByZXN0b3JlIHRoZSBob3Jpem9udGFsIG9yaWVudGF0aW9uIG1hdHJp
eC4K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>247232</attachid>
            <date>2015-02-24 07:35:02 -0800</date>
            <delta_ts>2015-02-24 09:08:16 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-140994-20150224093450.patch</filename>
            <type>text/plain</type>
            <size>10890</size>
            <attacher name="Michael Catanzaro">mcatanzaro</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTgwNTEwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggOGQzODU0ZjUzNWQyMDk3
MTcxNjdmNTZhOGU4NTE4MTc2ZTMxOTk3My4uMzA1NDdmOTg0NzgzY2MzNzIwZTk1ZTdlNmU3YjVm
OTFkYTczZGQ0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQwIEBACisyMDE1LTAyLTIzICBNaWNo
YWVsIENhdGFuemFybyAgPG1jYXRhbnphcm9AaWdhbGlhLmNvbT4KKworICAgICAgICBbR1RLXSBG
b250cyBsb2FkZWQgdmlhIEBmb250LWZhY2UgbG9vayBiYWQKKyAgICAgICAgaHR0cHM6Ly9idWdz
LndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0MDk5NAorCisgICAgICAgIFJldmlld2VkIGJ5
IE1hcnRpbiBSb2JpbnNvbi4KKworICAgICAgICBXZSd2ZSBoYWQgc2V2ZXJhbCBjb21wbGFpbnRz
IHRoYXQgd29mZiBmb250cyBsb29rIGJhZCBvbiBzb21lIHdlYnNpdGVzLiBUaGlzIHNlZW1zIHRv
IGJlIGEKKyAgICAgICAgY29tYmluYXRpb24gb2YgbXVsdGlwbGUgaXNzdWVzLiBGb3Igb25lLCB3
ZSBkb24ndCBsb29rIGF0IEZvbnRjb25maWcgc2V0dGluZ3MgYXQgYWxsIHdoZW4KKyAgICAgICAg
Y3JlYXRpbmcgYSB3ZWIgZm9udC4gVGhpcyBjb21taXQgY2hhbmdlcyBGb250UGxhdGZvcm1EYXRh
Ojppbml0aWFsaXplV2l0aEZvbnRGYWNlIHRvIGluc3RlYWQKKyAgICAgICAgdXNlIHNhbmUgZGVm
YXVsdCBzZXR0aW5ncyBmcm9tIEZvbnRjb25maWcgd2hlbiBsb2FkaW5nIGEgd2ViIGZvbnQsIHJh
dGhlciB0aGFuIGFjY2VwdGluZyB0aGUKKyAgICAgICAgZGVmYXVsdCBzZXR0aW5ncyBmcm9tIEdU
SyssIHdoaWNoIGFyZSBub3JtYWxseSBvdmVycmlkZGVuIGJ5IEZvbnRjb25maWcgd2hlbiBsb2Fk
aW5nIHN5c3RlbQorICAgICAgICBmb250cy4gSG93ZXZlciwgd2Ugd2lsbCBoYXJkY29kZSB0aGUg
aGludGluZyBzZXR0aW5nIGZvciB3ZWIgZm9udHMgdG8gYWx3YXlzIGZvcmNlIHVzZSBvZgorICAg
ICAgICB0aGUgbGlnaHQgYXV0b2hpbnRlciwgc28gdGhhdCB3ZSBkbyBub3QgdXNlIGEgZm9udCdz
IG5hdGl2ZSBoaW50cy4gVGhpcyBhdm9pZHMgY29tcGF0aWJpbGl0eQorICAgICAgICBpc3N1ZXMg
d2hlbiBmb250cyB3aXRoIHBvb3IgbmF0aXZlIGhpbnRpbmcgYXJlIG9ubHkgdGVzdGVkIGluIGJy
b3dzZXJzIHRoYXQgZG8gbm90IHVzZSB0aGUKKyAgICAgICAgbmF0aXZlIGhpbnRzLiBJdCBhbHNv
IGFsbG93cyB1cyB0byBzaWRlc3RlcCBmdXR1cmUgc2VjdXJpdHkgdnVsbmVyYWJpbGl0aWVzIGlu
IEZyZWVUeXBlJ3MKKyAgICAgICAgYnl0ZWNvZGUgaW50ZXJwcmV0ZXIuCisKKyAgICAgICAgVGhl
IG5ldCByZXN1bHQgb2YgdGhpcyBpcyB0aGF0IHRoZXJlIHNob3VsZCBiZSBsaXR0bGUgbm90aWNh
YmxlIGRpZmZlcmVuY2UgaWYgeW91IGhhdmUgR1RLKworICAgICAgICBzZXQgdG8gdXNlIHNsaWdo
dCBoaW50aW5nICh3aGljaCBmb3JjZXMgdXNlIG9mIHRoZSBhdXRvaGludGVyKSB1bmxlc3MgeW91
IGhhdmUgY3VzdG9taXplZAorICAgICAgICBGb250Y29uZmlnIGNvbmZpZ3VyYXRpb24sIGJ1dCBh
IGRyYW1hdGljIGltcHJvdmVtZW50IHdpdGggcGFydGljdWxhciBmb250cyBpZiB5b3UgdXNlIG1l
ZGl1bQorICAgICAgICBvciBmdWxsIGhpbnRpbmcuIFRoaXMgc2hvdWxkIHJlZHVjZSBjb21wbGFp
bnRzIGFib3V0IG91ciBmb250IHJlbmRlcmluZyBvbiAiZmFuY3kgc2l0ZXMuIgorCisgICAgICAg
IE5vIG5ldyB0ZXN0cywgc2luY2UgdGhlIGFmZmVjdGVkIGZvbnRzIHdlJ3ZlIGZvdW5kIGFyZSBu
b3QgZnJlZWx5IHJlZGlzdHJpYnV0YWJsZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhKTog
Rm9yY2Ugd2ViIGZvbnRzIHRvIGJlIGF1dG9oaW50ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OmdldERlZmF1bHRDYWlyb0ZvbnRPcHRpb25zKTogUmVuYW1lZCB0byBkaXNhbWJpZ3Vh
dGUuCisgICAgICAgIChXZWJDb3JlOjpnZXREZWZhdWx0Rm9udGNvbmZpZ09wdGlvbnMpOiBBZGRl
ZC4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmluaXRpYWxpemVXaXRoRm9u
dEZhY2UpOiBBbHdheXMgY2FsbAorICAgICAgICBGb250UGxhdGZvcm1EYXRhOjpzZXRDYWlyb09w
dGlvbnNGcm9tRm9udENvbmZpZ1BhdHRlcm4uIElmIHRoZSBGb250UGxhdGZvcm1EYXRhIHdhcyBu
b3QKKyAgICAgICAgY3JlYXRlZCB3aXRoIGFuIEZjUGF0dGVybiAoZS5nLiBiZWNhdXNlIHRoaXMg
aXMgYSB3ZWIgZm9udCksIGNhbGwKKyAgICAgICAgZ2V0RGVmYXVsdEZvbnRjb25maWdPcHRpb25z
IHRvIGdldCBhIHNhbmUgZGVmYXVsdCBGY1BhdHRlcm4uCisgICAgICAgIChXZWJDb3JlOjpGb250
UGxhdGZvcm1EYXRhOjpzZXRPcmllbnRhdGlvbik6IFJlbmFtZWQgY2FsbCB0byBnZXREZWZhdWx0
Q2Fpcm9Gb250T3B0aW9ucy4KKyAgICAgICAgKFdlYkNvcmU6OmdldERlZmF1bHRGb250T3B0aW9u
cyk6IERlbGV0ZWQuCisKIDIwMTUtMDItMjMgIEVyaWMgQ2FybHNvbiAgPGVyaWMuY2FybHNvbkBh
cHBsZS5jb20+CiAKICAgICAgICAgT2NjYXNpb25hbCBjcmFzaCBpbiBNZWRpYVBsYXllcjo6c2V0
UHJpdmF0ZUJyb3dzaW5nTW9kZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGFGcmVlVHlwZS5jcHAKaW5kZXggYTMxOWQ3ODc0NzBiMjllZDg2MTAxNjc5NzY1Njg5ZTdi
NzY1MzhkMy4uMzBhZjI4YzY5ZGY0YTY4MDM0MTAzODM0ZWQ3MDBmNDVjNmYwOTZmNCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCkBAIC0z
NSw5ICszNSwyMSBAQCBzdGF0aWMgdm9pZCByZWxlYXNlQ3VzdG9tRm9udERhdGEodm9pZCogZGF0
YSkKIH0KIAogRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YShG
VF9GYWNlIGZyZWVUeXBlRmFjZSwgU2hhcmVkQnVmZmVyJiBidWZmZXIpCi0gICAgOiBtX2ZvbnRG
YWNlKGNhaXJvX2Z0X2ZvbnRfZmFjZV9jcmVhdGVfZm9yX2Z0X2ZhY2UoZnJlZVR5cGVGYWNlLCAw
KSkKKyAgICA6IG1fZm9udEZhY2UoY2Fpcm9fZnRfZm9udF9mYWNlX2NyZWF0ZV9mb3JfZnRfZmFj
ZShmcmVlVHlwZUZhY2UsIEZUX0xPQURfRk9SQ0VfQVVUT0hJTlQpKQogewotICAgIC8vIEZJWE1F
IFNob3VsZCB3ZSBiZSBzZXR0aW5nIHNvbWUgaGludGluZyBvcHRpb25zIGhlcmU/CisgICAgLy8g
RlRfTE9BRF9GT1JDRV9BVVRPSElOVCBwcm9oaWJpdHMgdXNlIG9mIHRoZSBmb250J3MgbmF0aXZl
IGhpbnRpbmcuIFRoaXMKKyAgICAvLyBpcyBhIHNhZmUgb3B0aW9uIGZvciBjdXN0b20gZm9udHMg
YmVjYXVzZSAoYSkgc29tZSBzdWNoIGZvbnRzIG1heSBoYXZlCisgICAgLy8gYnJva2VuIGhpbnRp
bmcsIHdoaWNoIHNpdGUgYWRtaW5zIG1heSBub3Qgbm90aWNlIGlmIG90aGVyIGJyb3dzZXJzIGRv
IG5vdAorICAgIC8vIHVzZSB0aGUgbmF0aXZlIGhpbnRzLCBhbmQgKGIpIGFsbG93aW5nIG5hdGl2
ZSBoaW50cyBleHBvc2VzIHRoZSBGcmVlVHlwZQorICAgIC8vIGJ5dGVjb2RlIGludGVycHJldGVy
IHRvIHBvdGVudGlhbGx5LW1hbGljaW91cyBpbnB1dC4gVHJlYXRpbmcgd2ViIGZvbnRzCisgICAg
Ly8gZGlmZmVyZW50bHkgdGhhbiBzeXN0ZW0gZm9udHMgaXMgbm9uLWlkZWFsLCBidXQgdGhlIHJl
c3VsdCBvZiBhdXRvaGludGluZworICAgIC8vIGlzIGFsd2F5cyBkZWNlbnQsIHdoZXJlYXMgbmF0
aXZlIGhpbnRzIHNvbWV0aW1lcyBsb29rIHRlcnJpYmxlLCBhbmQKKyAgICAvLyB1bmxpa2Ugc3lz
dGVtIGZvbnRzIHdoZXJlIEZvbnRjb25maWcgbWF5IGNoYW5nZSB0aGUgaGludGluZyBzZXR0aW5n
cyBvbiBhCisgICAgLy8gcGVyLWZvbnQgYmFzaXMsIHRoZSBzYW1lIHNldHRpbmdzIGFyZSB1c2Vk
IGZvciBhbGwgd2ViIGZvbnRzLiBOb3RlIHRoYXQKKyAgICAvLyBDaHJvbWUgaXMgY29uc2lkZXJp
bmcgc3dpdGNoaW5nIGZyb20gYXV0b2hpbnRpbmcgdG8gbmF0aXZlIGhpbnRpbmcgaW4KKyAgICAv
LyBodHRwczovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTcz
MjA3IGJ1dCB0aGlzIGlzCisgICAgLy8gbW9yZSByaXNrIHRoYW4gd2Ugd2FudCB0byBhc3N1bWUg
Zm9yIG5vdy4gU2VlCisgICAgLy8gaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE0MDk5NCBiZWZvcmUgY2hhbmdpbmcgdGhpcy4KIAogICAgIGJ1ZmZlci5yZWYoKTsgLy8g
VGhpcyBpcyBiYWxhbmNlZCBieSB0aGUgYnVmZmVyLT5kZXJlZigpIGluIHJlbGVhc2VDdXN0b21G
b250RGF0YS4KICAgICBzdGF0aWMgY2Fpcm9fdXNlcl9kYXRhX2tleV90IGJ1ZmZlcktleTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRQ
bGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9mcmVldHlwZS9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCmluZGV4IDNmNDcyYTRiZTg3
MzFjZjJjMDlmM2NlNWI1MWM2NTkwZTFmYTg3OTEuLjUzOGM5YjIxYjg1ZWNiZWYxNzc2MzEzMzIy
YzQxYmE2NDQxYjAyNmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2ZyZWV0eXBlL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBl
LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKIAog
I2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgorI2luY2x1ZGUgIlJlZlB0ckNhaXJvLmgiCiAj
aW5jbHVkZSA8Y2Fpcm8tZnQuaD4KICNpbmNsdWRlIDxjYWlyby5oPgogI2luY2x1ZGUgPGZvbnRj
b25maWcvZmNmcmVldHlwZS5oPgpAQCAtMTAzLDcgKzEwNCw3IEBAIHZvaWQgc2V0Q2Fpcm9Gb250
T3B0aW9uc0Zyb21Gb250Q29uZmlnUGF0dGVybihjYWlyb19mb250X29wdGlvbnNfdCogb3B0aW9u
cywgRmNQCiAgICAgICAgIGNhaXJvX2ZvbnRfb3B0aW9uc19zZXRfaGludF9zdHlsZShvcHRpb25z
LCBDQUlST19ISU5UX1NUWUxFX05PTkUpOwogfQogCi1zdGF0aWMgY2Fpcm9fZm9udF9vcHRpb25z
X3QqIGdldERlZmF1bHRGb250T3B0aW9ucygpCitzdGF0aWMgY2Fpcm9fZm9udF9vcHRpb25zX3Qq
IGdldERlZmF1bHRDYWlyb0ZvbnRPcHRpb25zKCkKIHsKICNpZiBQTEFURk9STShHVEspCiAgICAg
aWYgKEdka1NjcmVlbiogc2NyZWVuID0gZ2RrX3NjcmVlbl9nZXRfZGVmYXVsdCgpKSB7CkBAIC0x
MTUsNiArMTE2LDI0IEBAIHN0YXRpYyBjYWlyb19mb250X29wdGlvbnNfdCogZ2V0RGVmYXVsdEZv
bnRPcHRpb25zKCkKICAgICByZXR1cm4gY2Fpcm9fZm9udF9vcHRpb25zX2NyZWF0ZSgpOwogfQog
CitzdGF0aWMgRmNQYXR0ZXJuKiBnZXREZWZhdWx0Rm9udGNvbmZpZ09wdGlvbnMoKQoreworICAg
IC8vIEdldCBzb21lIGdlbmVyaWMgZGVmYXVsdCBzZXR0aW5ncyBmcm9tIGZvbnRjb25maWcgZm9y
IHdlYiBmb250cy4gU3RyYXRlZ3kKKyAgICAvLyBmcm9tIEJlaGRhZCBFc2ZhaGJvZCBpbiBodHRw
czovL2NvZGUuZ29vZ2xlLmNvbS9wL2Nocm9taXVtL2lzc3Vlcy9kZXRhaWw/aWQ9MTczMjA3I2Mz
NQorICAgIC8vIEZvciB3ZWIgZm9udHMsIHRoZSBoaW50IHN0eWxlIGlzIG92ZXJyaWRkZW4gaW4g
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YQorICAgIC8vIHNv
IEZvbnRjb25maWcgd2lsbCBub3QgYWZmZWN0IHRoZSBoaW50IHN0eWxlLCBidXQgaXQgbWF5IGRp
c2FibGUgaGludGluZyBjb21wbGV0ZWx5LgorICAgIHN0YXRpYyBGY1BhdHRlcm4qIHBhdHRlcm4g
PSBudWxscHRyOworICAgIHN0YXRpYyBzdGQ6Om9uY2VfZmxhZyBmbGFnOworICAgIHN0ZDo6Y2Fs
bF9vbmNlKGZsYWcsIFtdKEZjUGF0dGVybiopIHsKKyAgICAgICAgcGF0dGVybiA9IEZjUGF0dGVy
bkNyZWF0ZSgpOworICAgICAgICBGY0NvbmZpZ1N1YnN0aXR1dGUobnVsbHB0ciwgcGF0dGVybiwg
RmNNYXRjaFBhdHRlcm4pOworICAgICAgICBGY0RlZmF1bHRTdWJzdGl0dXRlKHBhdHRlcm4pOwor
ICAgICAgICBGY1BhdHRlcm5EZWwocGF0dGVybiwgRkNfRkFNSUxZKTsKKyAgICAgICAgRmNDb25m
aWdTdWJzdGl0dXRlKG51bGxwdHIsIHBhdHRlcm4sIEZjTWF0Y2hGb250KTsKKyAgICB9LCBwYXR0
ZXJuKTsKKyAgICByZXR1cm4gcGF0dGVybjsKK30KKwogc3RhdGljIHZvaWQgcm90YXRlQ2Fpcm9N
YXRyaXhGb3JWZXJ0aWNhbE9yaWVudGF0aW9uKGNhaXJvX21hdHJpeF90KiBtYXRyaXgpCiB7CiAg
ICAgLy8gVGhlIHJlc3VsdGluZyB0cmFuc2Zvcm1hdGlvbiBtYXRyaXggZm9yIHZlcnRpY2FsIGds
eXBocyAoVikgaXMgYQpAQCAtMjgzLDcgKzMwMiw5IEBAIFN0cmluZyBGb250UGxhdGZvcm1EYXRh
OjpkZXNjcmlwdGlvbigpIGNvbnN0CiAKIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6aW5pdGlhbGl6
ZVdpdGhGb250RmFjZShjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UsIGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyaXB0aW9uKQogewotICAgIGNhaXJvX2ZvbnRfb3B0aW9uc190KiBv
cHRpb25zID0gZ2V0RGVmYXVsdEZvbnRPcHRpb25zKCk7CisgICAgY2Fpcm9fZm9udF9vcHRpb25z
X3QqIG9wdGlvbnMgPSBnZXREZWZhdWx0Q2Fpcm9Gb250T3B0aW9ucygpOworICAgIEZjUGF0dGVy
biogb3B0aW9uc1BhdHRlcm4gPSBtX3BhdHRlcm4gPyBtX3BhdHRlcm4uZ2V0KCkgOiBnZXREZWZh
dWx0Rm9udGNvbmZpZ09wdGlvbnMoKTsKKyAgICBzZXRDYWlyb0ZvbnRPcHRpb25zRnJvbUZvbnRD
b25maWdQYXR0ZXJuKG9wdGlvbnMsIG9wdGlvbnNQYXR0ZXJuKTsKIAogICAgIGNhaXJvX21hdHJp
eF90IGN0bTsKICAgICBjYWlyb19tYXRyaXhfaW5pdF9pZGVudGl0eSgmY3RtKTsKQEAgLTI5Miwz
MSArMzEzLDI1IEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6aW5pdGlhbGl6ZVdpdGhGb250RmFj
ZShjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UsIGNvbnN0CiAgICAgLy8gSW5zdGVhZCB3ZSBz
Y2FsZSB3ZSBzY2FsZSB0aGUgZm9udCB0byBhIHZlcnkgdGlueSBzaXplIGFuZCBqdXN0IGFib3J0
IHJlbmRlcmluZyBsYXRlciBvbi4KICAgICBmbG9hdCByZWFsU2l6ZSA9IG1fc2l6ZSA/IG1fc2l6
ZSA6IDE7CiAKKyAgICAvLyBGb250Q29uZmlnIG1heSByZXR1cm4gYSBsaXN0IG9mIHRyYW5zZm9y
bWF0aW9uIG1hdHJpY2VzIHdpdGggdGhlIHBhdHRlcm4sIGZvciBpbnN0YW5jZSwKKyAgICAvLyBm
b3IgZm9udHMgdGhhdCBhcmUgb2JsaXF1ZS4gV2UgdXNlIHRoYXQgdG8gaW5pdGlhbGl6ZSB0aGUg
Y2Fpcm8gZm9udCBtYXRyaXguCiAgICAgY2Fpcm9fbWF0cml4X3QgZm9udE1hdHJpeDsKLSAgICBp
ZiAoIW1fcGF0dGVybikKLSAgICAgICAgY2Fpcm9fbWF0cml4X2luaXRfc2NhbGUoJmZvbnRNYXRy
aXgsIHJlYWxTaXplLCByZWFsU2l6ZSk7Ci0gICAgZWxzZSB7Ci0gICAgICAgIHNldENhaXJvRm9u
dE9wdGlvbnNGcm9tRm9udENvbmZpZ1BhdHRlcm4ob3B0aW9ucywgbV9wYXR0ZXJuLmdldCgpKTsK
LQotICAgICAgICAvLyBGb250Q29uZmlnIG1heSByZXR1cm4gYSBsaXN0IG9mIHRyYW5zZm9ybWF0
aW9uIG1hdHJpY2VzIHdpdGggdGhlIHBhdHRlcm4sIGZvciBpbnN0YW5jZSwKLSAgICAgICAgLy8g
Zm9yIGZvbnRzIHRoYXQgYXJlIG9ibGlxdWUuIFdlIHVzZSB0aGF0IHRvIGluaXRpYWxpemUgdGhl
IGNhaXJvIGZvbnQgbWF0cml4LgotICAgICAgICBGY01hdHJpeCBmb250Q29uZmlnTWF0cml4LCAq
dGVtcEZvbnRDb25maWdNYXRyaXg7Ci0gICAgICAgIEZjTWF0cml4SW5pdCgmZm9udENvbmZpZ01h
dHJpeCk7Ci0KLSAgICAgICAgLy8gVGhlc2UgbWF0cmljZXMgbWF5IGJlIHN0YWNrZWQgaW4gdGhl
IHBhdHRlcm4sIHNvIGl0J3Mgb3VyIGpvYiB0byBnZXQgdGhlbSBhbGwgYW5kIG11bHRpcGx5IHRo
ZW0uCi0gICAgICAgIGZvciAoaW50IGkgPSAwOyBGY1BhdHRlcm5HZXRNYXRyaXgobV9wYXR0ZXJu
LmdldCgpLCBGQ19NQVRSSVgsIGksICZ0ZW1wRm9udENvbmZpZ01hdHJpeCkgPT0gRmNSZXN1bHRN
YXRjaDsgaSsrKQotICAgICAgICAgICAgRmNNYXRyaXhNdWx0aXBseSgmZm9udENvbmZpZ01hdHJp
eCwgJmZvbnRDb25maWdNYXRyaXgsIHRlbXBGb250Q29uZmlnTWF0cml4KTsKLSAgICAgICAgY2Fp
cm9fbWF0cml4X2luaXQoJmZvbnRNYXRyaXgsIGZvbnRDb25maWdNYXRyaXgueHgsIC1mb250Q29u
ZmlnTWF0cml4Lnl4LAotICAgICAgICAgICAgICAgICAgICAgICAgICAtZm9udENvbmZpZ01hdHJp
eC54eSwgZm9udENvbmZpZ01hdHJpeC55eSwgMCwgMCk7Ci0KLSAgICAgICAgLy8gV2UgcmVxdWVz
dGVkIGFuIGl0YWxpYyBmb250LCBidXQgRm9udGNvbmZpZyBnYXZlIHVzIG9uZSB0aGF0IHdhcyBu
ZWl0aGVyIG9ibGlxdWUgbm9yIGl0YWxpYy4KLSAgICAgICAgaW50IGFjdHVhbEZvbnRTbGFudDsK
LSAgICAgICAgaWYgKGZvbnREZXNjcmlwdGlvbi5pdGFsaWMoKSAmJiBGY1BhdHRlcm5HZXRJbnRl
Z2VyKG1fcGF0dGVybi5nZXQoKSwgRkNfU0xBTlQsIDAsICZhY3R1YWxGb250U2xhbnQpID09IEZj
UmVzdWx0TWF0Y2gpCi0gICAgICAgICAgICBtX3N5bnRoZXRpY09ibGlxdWUgPSBhY3R1YWxGb250
U2xhbnQgPT0gRkNfU0xBTlRfUk9NQU47Ci0KLSAgICAgICAgLy8gVGhlIG1hdHJpeCBmcm9tIEZv
bnRDb25maWcgZG9lcyBub3QgaW5jbHVkZSB0aGUgc2NhbGUuIAotICAgICAgICBjYWlyb19tYXRy
aXhfc2NhbGUoJmZvbnRNYXRyaXgsIHJlYWxTaXplLCByZWFsU2l6ZSk7Ci0gICAgfQorICAgIEZj
TWF0cml4IGZvbnRDb25maWdNYXRyaXgsICp0ZW1wRm9udENvbmZpZ01hdHJpeDsKKyAgICBGY01h
dHJpeEluaXQoJmZvbnRDb25maWdNYXRyaXgpOworCisgICAgLy8gVGhlc2UgbWF0cmljZXMgbWF5
IGJlIHN0YWNrZWQgaW4gdGhlIHBhdHRlcm4sIHNvIGl0J3Mgb3VyIGpvYiB0byBnZXQgdGhlbSBh
bGwgYW5kIG11bHRpcGx5IHRoZW0uCisgICAgZm9yIChpbnQgaSA9IDA7IEZjUGF0dGVybkdldE1h
dHJpeChtX3BhdHRlcm4uZ2V0KCksIEZDX01BVFJJWCwgaSwgJnRlbXBGb250Q29uZmlnTWF0cml4
KSA9PSBGY1Jlc3VsdE1hdGNoOyBpKyspCisgICAgICAgIEZjTWF0cml4TXVsdGlwbHkoJmZvbnRD
b25maWdNYXRyaXgsICZmb250Q29uZmlnTWF0cml4LCB0ZW1wRm9udENvbmZpZ01hdHJpeCk7Cisg
ICAgY2Fpcm9fbWF0cml4X2luaXQoJmZvbnRNYXRyaXgsIGZvbnRDb25maWdNYXRyaXgueHgsIC1m
b250Q29uZmlnTWF0cml4Lnl4LAorICAgICAgICAtZm9udENvbmZpZ01hdHJpeC54eSwgZm9udENv
bmZpZ01hdHJpeC55eSwgMCwgMCk7CisKKyAgICAvLyBXZSByZXF1ZXN0ZWQgYW4gaXRhbGljIGZv
bnQsIGJ1dCBGb250Y29uZmlnIGdhdmUgdXMgb25lIHRoYXQgd2FzIG5laXRoZXIgb2JsaXF1ZSBu
b3IgaXRhbGljLgorICAgIGludCBhY3R1YWxGb250U2xhbnQ7CisgICAgaWYgKGZvbnREZXNjcmlw
dGlvbi5pdGFsaWMoKSAmJiBGY1BhdHRlcm5HZXRJbnRlZ2VyKG1fcGF0dGVybi5nZXQoKSwgRkNf
U0xBTlQsIDAsICZhY3R1YWxGb250U2xhbnQpID09IEZjUmVzdWx0TWF0Y2gpCisgICAgICAgIG1f
c3ludGhldGljT2JsaXF1ZSA9IGFjdHVhbEZvbnRTbGFudCA9PSBGQ19TTEFOVF9ST01BTjsKKwor
ICAgIC8vIFRoZSBtYXRyaXggZnJvbSBGb250Q29uZmlnIGRvZXMgbm90IGluY2x1ZGUgdGhlIHNj
YWxlLiAKKyAgICBjYWlyb19tYXRyaXhfc2NhbGUoJmZvbnRNYXRyaXgsIHJlYWxTaXplLCByZWFs
U2l6ZSk7CiAKICAgICBpZiAoc3ludGhldGljT2JsaXF1ZSgpKSB7CiAgICAgICAgIHN0YXRpYyBj
b25zdCBmbG9hdCBzeW50aGV0aWNPYmxpcXVlU2tldyA9IC10YW5mKDE0ICogYWNvc2YoMCkgLyA5
MCk7CkBAIC0zODgsNyArNDAzLDcgQEAgdm9pZCBGb250UGxhdGZvcm1EYXRhOjpzZXRPcmllbnRh
dGlvbihGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24pCiAgICAgY2Fpcm9fbWF0cml4X3QgZm9u
dE1hdHJpeDsKICAgICBjYWlyb19zY2FsZWRfZm9udF9nZXRfZm9udF9tYXRyaXgobV9zY2FsZWRG
b250LCAmZm9udE1hdHJpeCk7CiAKLSAgICBjYWlyb19mb250X29wdGlvbnNfdCogb3B0aW9ucyA9
IGdldERlZmF1bHRGb250T3B0aW9ucygpOworICAgIGNhaXJvX2ZvbnRfb3B0aW9uc190KiBvcHRp
b25zID0gZ2V0RGVmYXVsdENhaXJvRm9udE9wdGlvbnMoKTsKIAogICAgIC8vIEluIGNhc2Ugb2Yg
dmVydGljYWwgb3JpZW50YXRpb24sIHJvdGF0ZSB0aGUgdHJhbnNmb3JtYXRpb24gbWF0cml4Lgog
ICAgIC8vIE90aGVyd2lzZSByZXN0b3JlIHRoZSBob3Jpem9udGFsIG9yaWVudGF0aW9uIG1hdHJp
eC4K
</data>

          </attachment>
      

    </bug>

</bugzilla>