<?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>194895</bug_id>
          
          <creation_ts>2019-02-20 21:30:00 -0800</creation_ts>
          <short_desc>Incorrect use of String::foldCase for font family names</short_desc>
          <delta_ts>2019-02-25 11:52:07 -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>Text</component>
          <version>WebKit 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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Darin Adler">darin</reporter>
          <assigned_to name="Darin Adler">darin</assigned_to>
          <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1508443</commentid>
    <comment_count>0</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-20 21:30:00 -0800</bug_when>
    <thetext>Incorrect use of String::foldCase for font family names</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508444</commentid>
    <comment_count>1</comment_count>
      <attachid>362589</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-20 21:33:26 -0800</bug_when>
    <thetext>Created attachment 362589
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508445</commentid>
    <comment_count>2</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-20 21:34:11 -0800</bug_when>
    <thetext>Myles, could you review this?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508450</commentid>
    <comment_count>3</comment_count>
      <attachid>362591</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-20 21:52:13 -0800</bug_when>
    <thetext>Created attachment 362591
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508837</commentid>
    <comment_count>4</comment_count>
      <attachid>362591</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-02-21 19:35:50 -0800</bug_when>
    <thetext>Comment on attachment 362591
Patch

Looks good. https://drafts.csswg.org/css-fonts-4/#localized-name-matching says font names can be non-ascii but it looks like this code handles that case correctly.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508841</commentid>
    <comment_count>5</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-21 19:43:25 -0800</bug_when>
    <thetext>(In reply to Myles C. Maxfield from comment #4)
&gt; Looks good. https://drafts.csswg.org/css-fonts-4/#localized-name-matching
&gt; says font names can be non-ascii but it looks like this code handles that
&gt; case correctly.

Actually, that draft says that we need to do full Unicode case folding. If we wanted to conform to that, then we’d have to change our hash and equality computation to use full Unicode case folding, too. We don’t have an efficient implementation of that but we could still do it.

My patch goes the other direction and does only ASCII case insensitive matching, which won’t fold non-ASCII characters. In most cases this is what we want, but the CSS specification specifically calls for the full case folding, sort of the opposite of what my patch does!

Now I don’t know what to do.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508848</commentid>
    <comment_count>6</comment_count>
      <attachid>362591</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-21 19:56:44 -0800</bug_when>
    <thetext>Comment on attachment 362591
Patch

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

&gt; Source/WebCore/platform/graphics/FontCascadeDescription.cpp:127
&gt;      return ASCIICaseInsensitiveHash::equal(family1, family2);

Writing a version of this for the Unicode case insensitivity algorithm would probably require using u_strCaseCompare. We don’t have any helpers for this because it’s not done anywhere else in WebKit, intentionally.

&gt; Source/WebCore/platform/graphics/FontCascadeDescription.cpp:136
&gt;      return ASCIICaseInsensitiveHash::hash(family);

Writing a version of this for the Unicode case insensitivity algorithm would be quite difficult. Might just need to call foldCase and then call hash, which would allocate/deallocate memory and be pretty slow!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1508850</commentid>
    <comment_count>7</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-21 19:59:57 -0800</bug_when>
    <thetext>I wonder if we could get the standard changed. Requiring full case folding doesn’t really match the rest of the web platform. Things tend to be either case sensitive or ASCII case insensitive. Full Unicode case insensitivity is almost unheard of.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509610</commentid>
    <comment_count>8</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-25 06:39:14 -0800</bug_when>
    <thetext>Committed r242038: &lt;https://trac.webkit.org/changeset/242038&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509611</commentid>
    <comment_count>9</comment_count>
    <who name="Darin Adler">darin</who>
    <bug_when>2019-02-25 06:41:01 -0800</bug_when>
    <thetext>Despite these issues I decided to land as-is. A correct implementation of ASCII case insensitivity seems better than an inconsistent implementation for now.

Outstanding issues remain: The specification says it should be full Unicode case folding. It&apos;s likely important that this logic exactly match what the underlying CoreText font name matching algorithm is on macOS and iOS. The CSS specification also talks about support for multiple names for the same font.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509613</commentid>
    <comment_count>10</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2019-02-25 06:41:58 -0800</bug_when>
    <thetext>&lt;rdar://problem/48361667&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509724</commentid>
    <comment_count>11</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-02-25 11:43:32 -0800</bug_when>
    <thetext>(In reply to Darin Adler from comment #9)
&gt; Despite these issues I decided to land as-is. A correct implementation of
&gt; ASCII case insensitivity seems better than an inconsistent implementation
&gt; for now.
&gt; 
&gt; Outstanding issues remain: The specification says it should be full Unicode
&gt; case folding. It&apos;s likely important that this logic exactly match what the
&gt; underlying CoreText font name matching algorithm is on macOS and iOS. The
&gt; CSS specification also talks about support for multiple names for the same
&gt; font.

There’s a CSS F2F meeting this week; I’ll bring this up there. I agree with you about the desired behavior.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1509725</commentid>
    <comment_count>12</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2019-02-25 11:52:07 -0800</bug_when>
    <thetext>https://github.com/w3c/csswg-drafts/issues/3675</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362589</attachid>
            <date>2019-02-20 21:33:26 -0800</date>
            <delta_ts>2019-02-20 21:52:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194895-20190220213326.patch</filename>
            <type>text/plain</type>
            <size>2777</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjYyNzdlYTVlNjQyMmVk
MGFiMzRkZmZmNDIxZmE3Y2JjMzI2NjEyMy4uOGFiYzkwZjk4Yjg5Njg3MDBjNzI3YjEwOTcyN2U4
YTI4MTkwODFlOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIxIEBACisyMDE5LTAyLTIwICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBJbmNvcnJlY3QgdXNlIG9mIFN0
cmluZzo6Zm9sZENhc2UgZm9yIGZvbnQgZmFtaWx5IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ4OTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlRGVzY3JpcHRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGVEZXNjcmlw
dGlvbjo6Zm9sZGVkRmFtaWx5TmFtZSk6IFVzZSBjb252ZXJ0VG9BU0NJSUxvd2VyY2FzZQorICAg
ICAgICBpbnN0ZWFkIG9mIGZvbGRDYXNlIGZvciB0aHJlZSByZWFzb25zOiAxKSBPdGhlciBmdW5j
dGlvbnMgaW4gdGhpcyBjbGFzcyBhcmUgZm9sZGluZworICAgICAgICBvbmx5IEFTQ0lJIGNhc2Ug
YnkgdXNpbmcgQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoLCBzbyB0aGlzIG9uZSBzaG91bGQgYmUg
Y29uc2lzdGVudC4KKyAgICAgICAgMikgVGhpcyBpcyBjb25zaWRlcmFibHkgZmFzdGVyLCBhbmQg
MykgRm9udCBmYW1pbHkgbmFtZXMgZG9uJ3QgbmVlZCBhcmJpdHJhcnkKKyAgICAgICAgVW5pY29k
ZSBjYXNlIGZvbGRpbmcsIGl0J3Mgb25seSBBLVogdGhhdCBzaG91bGQgYmUgZm9sZGVkLgorCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGFiYXNlOjpjb2xsZWN0aW9uRm9yRmFtaWx5KTogVXNl
IGNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNlIGhlcmUKKyAgICAgICAgZm9yIGJhc2ljYWxseSB0aGUg
c2FtZSByZWFzb24gYXMgYWJvdmUuCisKIDIwMTktMDItMjAgIFNpbW9uIEZyYXNlciAgPHNpbW9u
LmZyYXNlckBhcHBsZS5jb20+CiAKICAgICAgICAgUkVHUkVTU0lPTiAoMjQwNjk4KTogRml4ZWQg
cG9zaXRpb24gYmFubmVycyBmbGlja2VyIGFuZCBtb3ZlIHdoZW4gc2Nyb2xsaW5nIG9uIGlPUwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGVE
ZXNjcmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fz
Y2FkZURlc2NyaXB0aW9uLmNwcAppbmRleCBmNzU1NDdhZjQ4ZDY2MTNiMjllNWM4NzljZTY5YWIx
MWI2ZDY2ZGQ0Li5hNzQ0YmY5N2MzNzgzYjQzZTBjYmFjMTFkOTI4M2M2YTM4Nzc1MzU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZURlc2Ny
aXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fz
Y2FkZURlc2NyaXB0aW9uLmNwcApAQCAtMTQwLDcgKzE0MCw3IEBAIFN0cmluZyBGb250Q2FzY2Fk
ZURlc2NyaXB0aW9uOjpmb2xkZWRGYW1pbHlOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5
KQogICAgIC8vIGFsd2F5cyB0YWtlIHRoZSBjYXNlIGluc2Vuc2l0aXZlIHBhdGNoIG9uY2UgdGhp
cyByYWRhciBpcyBmaXhlZC4KICAgICBpZiAoZmFtaWx5LnN0YXJ0c1dpdGgoJy4nKSkKICAgICAg
ICAgcmV0dXJuIGZhbWlseS5zdHJpbmcoKTsKLSAgICByZXR1cm4gZmFtaWx5LnN0cmluZygpLmZv
bGRDYXNlKCk7CisgICAgcmV0dXJuIGZhbWlseS5zdHJpbmcoKS5jb252ZXJ0VG9BU0NJSUxvd2Vy
Y2FzZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5j
cHAKaW5kZXggNTI4NTI4NDI1YjY3NGY4YWZiYTMxMWNlZDE2ZTc1ZjA2Mjg0ZmM3MS4uZTA0NDlm
NjU0ZDA5ZTY4YmE5MGNjZGU3NjFmNTJkZGJkODIyMjNhMCAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0
LmNwcApAQCAtODg3LDcgKzg4Nyw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEluc3RhbGxlZEZv
bnRGYW1pbHkmIGNvbGxlY3Rpb25Gb3JGYW1pbHkoY29uc3QgU3RyaW5nJiBmYW1pbHlOYW1lKQog
ICAgIHsKLSAgICAgICAgYXV0byBmb2xkZWQgPSBmYW1pbHlOYW1lLmZvbGRDYXNlKCk7CisgICAg
ICAgIGF1dG8gZm9sZGVkID0gZmFtaWx5TmFtZS5jb252ZXJ0VG9BU0NJSUxvd2VyY2FzZSgpOwog
ICAgICAgICB7CiAgICAgICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9ja2VyKG1fZmFt
aWx5TmFtZVRvRm9udERlc2NyaXB0b3JzTG9jayk7CiAgICAgICAgICAgICBhdXRvIGl0ID0gbV9m
YW1pbHlOYW1lVG9Gb250RGVzY3JpcHRvcnMuZmluZChmb2xkZWQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>362591</attachid>
            <date>2019-02-20 21:52:13 -0800</date>
            <delta_ts>2019-02-21 19:35:50 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-194895-20190220215212.patch</filename>
            <type>text/plain</type>
            <size>6672</size>
            <attacher name="Darin Adler">darin</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjQxODYwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjYyNzdlYTVlNjQyMmVk
MGFiMzRkZmZmNDIxZmE3Y2JjMzI2NjEyMy4uNzE1Y2ZhYmFjNDJkYWMxNmEwOTI0MTIxMmZkY2Qx
N2VkYjQ1MWI5NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDMzIEBACisyMDE5LTAyLTIwICBEYXJp
biBBZGxlciAgPGRhcmluQGFwcGxlLmNvbT4KKworICAgICAgICBJbmNvcnJlY3QgdXNlIG9mIFN0
cmluZzo6Zm9sZENhc2UgZm9yIGZvbnQgZmFtaWx5IG5hbWVzCisgICAgICAgIGh0dHBzOi8vYnVn
cy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xOTQ4OTUKKworICAgICAgICBSZXZpZXdlZCBi
eSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlRGVzY3JpcHRpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGVEZXNjcmlw
dGlvbjo6ZmFtaWxpZXNFcXVhbEZvclRleHRBdXRvU2l6aW5nKTogVXNlCisgICAgICAgIGZhbWls
eU5hbWVzQXJlRXF1YWwgaW5zdGVhZCBvZiBjYWxsaW5nIGNvbnZlcnRUb0FTQ0lJTG93ZXJjYXNl
IGRpcmVjdGx5LgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGVEZXNjcmlwdGlvbjo6ZmFt
aWx5TmFtZXNBcmVFcXVhbCk6IFVzZSBBdG9taWNTdHJpbmcncworICAgICAgICBvcGVyYXRvcj09
IHdoZW4gd2Ugd2FudCBjYXNlIHNlbnNpdGl2ZSBmYW1pbHkgbmFtZSBjb21wYXJpc29ucy4gVGhp
cyBpcyBhIHNwZWNpYWwKKyAgICAgICAgY2FzZSB0byBhY2NvbW9kYXRlIENvcmVUZXh0LCB3aGlj
aCB1c2VzICIuIi1wcmVmaXggbmFtZXMgZm9yIGludGVybmFsIGZvbnRzIHRoYXQKKyAgICAgICAg
YXJlIHRyZWF0ZWQgY2FzZSBzZW5zaXRpdmVseS4gKElkZWFsbHkgd2VicGFnZXMgd291bGQgbm90
IHVzZSB0aGVzZSBmb250cyBhdCBhbGwuKQorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGVE
ZXNjcmlwdGlvbjo6ZmFtaWx5TmFtZUhhc2gpOiBVc2UgQXRvbWljU3RyaW5nJ3MgZXhpc3RpbmdI
YXNoCisgICAgICAgIHdoZW4gd2Ugd2FudCBjYXNlIHNlbnNpdGl2ZSBmYW1pbHkgbmFtZSBoYXNo
aW5nLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhc2NhZGVEZXNjcmlwdGlvbjo6Zm9sZGVkRmFt
aWx5TmFtZSk6IFRha2UgYSBTdHJpbmcgaW5zdGVhZCBvZiBhbgorICAgICAgICBBdG9taWNTdHJp
bmcgc28gd2UgY2FuIHVzZSB0aGlzIGF0IGFuIGFkZGl0aW9uYWwgY2FsbCBzaXRlLiBDb252ZXJ0
aW5nIGZyb20gYW4KKyAgICAgICAgQXRvbWljU3RyaW5nIHRvIGEgU3RyaW5nIGlmIGZyZWUgYW5k
IGF1dG9tYXRpYyBhdCB0aGUgZXhpc3RpbmcgY2FsbCBzaXRlcy4gVXNlCisgICAgICAgIGNvbnZl
cnRUb0FTQ0lJTG93ZXJjYXNlIGluc3RlYWQgb2YgZm9sZENhc2UgZm9yIHRocmVlIHJlYXNvbnM6
IDEpIE90aGVyIGZ1bmN0aW9ucworICAgICAgICBoZXJlIGFyZSBmb2xkaW5nIG9ubHkgQVNDSUkg
Y2FzZSBieSB1c2luZyBBU0NJSUNhc2VJbnNlbnNpdGl2ZUhhc2gsIGFuZCB0aGlzIG9uZQorICAg
ICAgICBtdXN0IGJlIGNvbnNpc3RlbnQuIDIpIHRoaXMgaXMgY29uc2lkZXJhYmx5IGZhc3Rlciwg
YW5kIDMpIGZvbnQgZmFtaWx5IG5hbWVzIGRvbid0CisgICAgICAgIG5lZWQgYXJiaXRyYXJ5IFVu
aWNvZGUgY2FzZSBmb2xkaW5nLCBpdCdzIG9ubHkgQS1aIHRoYXQgc2hvdWxkIGJlIGZvbGRlZC4K
KyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZURlc2NyaXB0aW9uLmg6IFRh
a2UgYSBTdHJpbmcgaW5zdGVhZCBvZiBBdG9taWNTdHJpbmcKKyAgICAgICAgaW4gdGhlIGZvbGRl
ZEZhbWlseU5hbWUgZnVuY3Rpb24uCisKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250Q2FjaGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6
OmNvbGxlY3Rpb25Gb3JGYW1pbHkpOiBJbnN0ZWFkIG9mIGNhbGxpbmcgZm9sZENhc2UsIHVzZQor
ICAgICAgICBGb250Q2FzY2FkZURlc2NyaXB0aW9uOjpmb2xkZWRGYW1pbHlOYW1lIHRvIGNvcnJl
Y3RseSBmb2xkIGZvbnQgZmFtaWx5IG5hbWVzLgorCiAyMDE5LTAyLTIwICBTaW1vbiBGcmFzZXIg
IDxzaW1vbi5mcmFzZXJAYXBwbGUuY29tPgogCiAgICAgICAgIFJFR1JFU1NJT04gKDI0MDY5OCk6
IEZpeGVkIHBvc2l0aW9uIGJhbm5lcnMgZmxpY2tlciBhbmQgbW92ZSB3aGVuIHNjcm9sbGluZyBv
biBpT1MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YXNjYWRlRGVzY3JpcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGVEZXNjcmlwdGlvbi5jcHAKaW5kZXggZjc1NTQ3YWY0OGQ2NjEzYjI5ZTVjODc5
Y2U2OWFiMTFiNmQ2NmRkNC4uM2ZjOTZiZmY5Y2RmM2E1NzA0N2Q3MzE4MGNkZDkzMWQzYTg3MzNk
MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGVEZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGVEZXNjcmlwdGlvbi5jcHAKQEAgLTYzLDYgKzYzLDcgQEAgRm9udENhc2NhZGVE
ZXNjcmlwdGlvbjo6Rm9udENhc2NhZGVEZXNjcmlwdGlvbigpCiB9CiAKICNpZiAhVVNFX1BMQVRG
T1JNX1NZU1RFTV9GQUxMQkFDS19MSVNUCisKIHVuc2lnbmVkIEZvbnRDYXNjYWRlRGVzY3JpcHRp
b246OmVmZmVjdGl2ZUZhbWlseUNvdW50KCkgY29uc3QKIHsKICAgICByZXR1cm4gZmFtaWx5Q291
bnQoKTsKQEAgLTcyLDYgKzczLDcgQEAgRm9udEZhbWlseVNwZWNpZmljYXRpb24gRm9udENhc2Nh
ZGVEZXNjcmlwdGlvbjo6ZWZmZWN0aXZlRmFtaWx5QXQodW5zaWduZWQgaSkgY28KIHsKICAgICBy
ZXR1cm4gZmFtaWx5QXQoaSk7CiB9CisKICNlbmRpZgogCiBGb250U2VsZWN0aW9uVmFsdWUgRm9u
dENhc2NhZGVEZXNjcmlwdGlvbjo6bGlnaHRlcldlaWdodChGb250U2VsZWN0aW9uVmFsdWUgd2Vp
Z2h0KQpAQCAtMTA3LDcgKzEwOSw3IEBAIGJvb2wgRm9udENhc2NhZGVEZXNjcmlwdGlvbjo6ZmFt
aWxpZXNFcXVhbEZvclRleHRBdXRvU2l6aW5nKGNvbnN0IEZvbnRDYXNjYWRlRGVzCiAgICAgICAg
IHJldHVybiBmYWxzZTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCB0aGlzRmFtaWx5
Q291bnQ7ICsraSkgewotICAgICAgICBpZiAoIWVxdWFsSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5
QXQoaSksIG90aGVyLmZhbWlseUF0KGkpKSkKKyAgICAgICAgaWYgKCFmYW1pbHlOYW1lc0FyZUVx
dWFsKGZhbWlseUF0KGkpLCBvdGhlci5mYW1pbHlBdChpKSkpCiAgICAgICAgICAgICByZXR1cm4g
ZmFsc2U7CiAgICAgfQogCkBAIC0xMTgsMjkgKzEyMCwyOSBAQCBib29sIEZvbnRDYXNjYWRlRGVz
Y3JpcHRpb246OmZhbWlsaWVzRXF1YWxGb3JUZXh0QXV0b1NpemluZyhjb25zdCBGb250Q2FzY2Fk
ZURlcwogCiBib29sIEZvbnRDYXNjYWRlRGVzY3JpcHRpb246OmZhbWlseU5hbWVzQXJlRXF1YWwo
Y29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHkxLCBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseTIp
CiB7Ci0gICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8zMzU5NDI1Mz4gQ29yZVRleHQgbWF0
Y2hlcyBkb3QtcHJlZml4ZWQgZm9udCBuYW1lcyBjYXNlIHNlbnNpdGl2ZWx5LiBXZSBzaG91bGQK
LSAgICAvLyBhbHdheXMgdGFrZSB0aGUgY2FzZSBpbnNlbnNpdGl2ZSBwYXRjaCBvbmNlIHRoaXMg
cmFkYXIgaXMgZml4ZWQuCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKGZhbWlseTEuc3Rh
cnRzV2l0aCgnLicpKQotICAgICAgICByZXR1cm4gU3RyaW5nSGFzaDo6ZXF1YWwoZmFtaWx5MS5z
dHJpbmcoKSwgZmFtaWx5Mi5zdHJpbmcoKSk7CisgICAgICAgIHJldHVybiBmYW1pbHkxID09IGZh
bWlseTI7CisjZW5kaWYKICAgICByZXR1cm4gQVNDSUlDYXNlSW5zZW5zaXRpdmVIYXNoOjplcXVh
bChmYW1pbHkxLCBmYW1pbHkyKTsKIH0KIAogdW5zaWduZWQgRm9udENhc2NhZGVEZXNjcmlwdGlv
bjo6ZmFtaWx5TmFtZUhhc2goY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHkpCiB7Ci0gICAgLy8g
RklYTUU6IDxyZGFyOi8vcHJvYmxlbS8zMzU5NDI1Mz4gQ29yZVRleHQgbWF0Y2hlcyBkb3QtcHJl
Zml4ZWQgZm9udCBuYW1lcyBjYXNlIHNlbnNpdGl2ZWx5LiBXZSBzaG91bGQKLSAgICAvLyBhbHdh
eXMgdGFrZSB0aGUgY2FzZSBpbnNlbnNpdGl2ZSBwYXRjaCBvbmNlIHRoaXMgcmFkYXIgaXMgZml4
ZWQuCisjaWYgUExBVEZPUk0oQ09DT0EpCiAgICAgaWYgKGZhbWlseS5zdGFydHNXaXRoKCcuJykp
Ci0gICAgICAgIHJldHVybiBTdHJpbmdIYXNoOjpoYXNoKGZhbWlseS5zdHJpbmcoKSk7CisgICAg
ICAgIHJldHVybiBmYW1pbHkuZXhpc3RpbmdIYXNoKCk7CisjZW5kaWYKICAgICByZXR1cm4gQVND
SUlDYXNlSW5zZW5zaXRpdmVIYXNoOjpoYXNoKGZhbWlseSk7CiB9CiAKLVN0cmluZyBGb250Q2Fz
Y2FkZURlc2NyaXB0aW9uOjpmb2xkZWRGYW1pbHlOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgZmFt
aWx5KQorU3RyaW5nIEZvbnRDYXNjYWRlRGVzY3JpcHRpb246OmZvbGRlZEZhbWlseU5hbWUoY29u
c3QgU3RyaW5nJiBmYW1pbHkpCiB7Ci0gICAgLy8gRklYTUU6IDxyZGFyOi8vcHJvYmxlbS8zMzU5
NDI1Mz4gQ29yZVRleHQgbWF0Y2hlcyBkb3QtcHJlZml4ZWQgZm9udCBuYW1lcyBjYXNlIHNlbnNp
dGl2ZWx5LiBXZSBzaG91bGQKLSAgICAvLyBhbHdheXMgdGFrZSB0aGUgY2FzZSBpbnNlbnNpdGl2
ZSBwYXRjaCBvbmNlIHRoaXMgcmFkYXIgaXMgZml4ZWQuCisjaWYgUExBVEZPUk0oQ09DT0EpCiAg
ICAgaWYgKGZhbWlseS5zdGFydHNXaXRoKCcuJykpCi0gICAgICAgIHJldHVybiBmYW1pbHkuc3Ry
aW5nKCk7Ci0gICAgcmV0dXJuIGZhbWlseS5zdHJpbmcoKS5mb2xkQ2FzZSgpOworICAgICAgICBy
ZXR1cm4gZmFtaWx5OworI2VuZGlmCisgICAgcmV0dXJuIGZhbWlseS5jb252ZXJ0VG9BU0NJSUxv
d2VyY2FzZSgpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZURlc2NyaXB0aW9uLmggYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZURlc2NyaXB0aW9uLmgK
aW5kZXggNmZhODMzMGRiNDQzMzBiMzhmOTkzODkyNTg0YzQ1ZDZlYzY0ZGE5MS4uMGQ1MWM1YTE4
MTk1NDliNDJmNDU2Mzg0MmM1NjJiMTU2MWM5YWJkYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGVEZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlRGVzY3JpcHRpb24uaApAQCAt
NTksNyArNTksNyBAQCBwdWJsaWM6CiAKICAgICBzdGF0aWMgYm9vbCBmYW1pbHlOYW1lc0FyZUVx
dWFsKGNvbnN0IEF0b21pY1N0cmluZyYsIGNvbnN0IEF0b21pY1N0cmluZyYpOwogICAgIHN0YXRp
YyB1bnNpZ25lZCBmYW1pbHlOYW1lSGFzaChjb25zdCBBdG9taWNTdHJpbmcmKTsKLSAgICBzdGF0
aWMgU3RyaW5nIGZvbGRlZEZhbWlseU5hbWUoY29uc3QgQXRvbWljU3RyaW5nJik7CisgICAgc3Rh
dGljIFN0cmluZyBmb2xkZWRGYW1pbHlOYW1lKGNvbnN0IFN0cmluZyYpOwogCiAgICAgdW5zaWdu
ZWQgZWZmZWN0aXZlRmFtaWx5Q291bnQoKSBjb25zdDsKICAgICBGb250RmFtaWx5U3BlY2lmaWNh
dGlvbiBlZmZlY3RpdmVGYW1pbHlBdCh1bnNpZ25lZCkgY29uc3Q7CmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4
dC5jcHAKaW5kZXggNTI4NTI4NDI1YjY3NGY4YWZiYTMxMWNlZDE2ZTc1ZjA2Mjg0ZmM3MS4uNTc3
ODEyNWM2Yzg3MDBmZmIzNDUyZDA2NjBhNmQ4NTA4MWQ5Y2U4MSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVU
ZXh0LmNwcApAQCAtODg3LDcgKzg4Nyw3IEBAIHB1YmxpYzoKIAogICAgIGNvbnN0IEluc3RhbGxl
ZEZvbnRGYW1pbHkmIGNvbGxlY3Rpb25Gb3JGYW1pbHkoY29uc3QgU3RyaW5nJiBmYW1pbHlOYW1l
KQogICAgIHsKLSAgICAgICAgYXV0byBmb2xkZWQgPSBmYW1pbHlOYW1lLmZvbGRDYXNlKCk7Cisg
ICAgICAgIGF1dG8gZm9sZGVkID0gRm9udENhc2NhZGVEZXNjcmlwdGlvbjo6Zm9sZGVkRmFtaWx5
TmFtZShmYW1pbHlOYW1lKTsKICAgICAgICAgewogICAgICAgICAgICAgc3RkOjpsb2NrX2d1YXJk
PExvY2s+IGxvY2tlcihtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9yc0xvY2spOwogICAgICAg
ICAgICAgYXV0byBpdCA9IG1fZmFtaWx5TmFtZVRvRm9udERlc2NyaXB0b3JzLmZpbmQoZm9sZGVk
KTsK
</data>
<flag name="review"
          id="379209"
          type_id="1"
          status="+"
          setter="mmaxfield"
    />
          </attachment>
      

    </bug>

</bugzilla>