<?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>216454</bug_id>
          
          <creation_ts>2020-09-12 21:44:35 -0700</creation_ts>
          <short_desc>[Apple Win] Migrate from FontCGWin.cpp FontCascadeCoreText.cpp</short_desc>
          <delta_ts>2024-02-06 19:43:42 -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>WONTFIX</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>
          
          <blocked>216353</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>fujii</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1688055</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-09-12 21:44:35 -0700</bug_when>
    <thetext>This is one of the steps of https://bugs.webkit.org/show_bug.cgi?id=216353 [Apple Win] Migrate the Apple Win port&apos;s font code to Core Text from Core Graphics</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1688056</commentid>
    <comment_count>1</comment_count>
      <attachid>408640</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-09-12 21:44:53 -0700</bug_when>
    <thetext>Created attachment 408640
WIP</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1690372</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-21 11:56:25 -0700</bug_when>
    <thetext>&lt;rdar://problem/69318002&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2011273</commentid>
    <comment_count>3</comment_count>
    <who name="Fujii Hironori">fujii</who>
    <bug_when>2024-02-06 19:43:42 -0800</bug_when>
    <thetext>Apple Windows port has gone. Closed.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408640</attachid>
            <date>2020-09-12 21:44:53 -0700</date>
            <delta_ts>2020-09-12 22:45:58 -0700</delta_ts>
            <desc>WIP</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>13966</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlLmNwcAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2Fk
ZS5jcHAJKHJldmlzaW9uIDI2Njk4NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYXNjYWRlLmNwcAkod29ya2luZyBjb3B5KQpAQCAtNTk1LDcgKzU5NSw3IEBACiAg
ICAgcmV0dXJuIHNob3VsZFVzZUZvbnRTbW9vdGhpbmc7CiB9CiAKLSNpZiAhVVNFKENPUkVfVEVY
VCkgfHwgUExBVEZPUk0oV0lOKQorI2lmICFVU0UoQ09SRV9URVhUKQogYm9vbCBGb250Q2FzY2Fk
ZTo6aXNTdWJwaXhlbEFudGlhbGlhc2luZ0F2YWlsYWJsZSgpCiB7CiAgICAgcmV0dXJuIGZhbHNl
OwpAQCAtMTY0NSwyMSArMTY0NSw2IEBACiAgICAgcmV0dXJuIGNvbnRyb2xsZXIub2Zmc2V0Rm9y
UG9zaXRpb24oeCwgaW5jbHVkZVBhcnRpYWxHbHlwaHMpOwogfQogCi0jaWYgIVBMQVRGT1JNKENP
Q09BKSAmJiAhVVNFKEhBUkZCVVpaKQotLy8gRklYTUU6IFVuaWZ5IHRoaXMgd2l0aCB0aGUgbWFj
T1MgYW5kIGlPUyBpbXBsZW1lbnRhdGlvbi4KLWNvbnN0IEZvbnQqIEZvbnRDYXNjYWRlOjpmb250
Rm9yQ29tYmluaW5nQ2hhcmFjdGVyU2VxdWVuY2UoY29uc3QgVUNoYXIqIGNoYXJhY3RlcnMsIHNp
emVfdCBsZW5ndGgpIGNvbnN0Ci17Ci0gICAgVUNoYXIzMiBiYXNlQ2hhcmFjdGVyOwotICAgIHNp
emVfdCBiYXNlQ2hhcmFjdGVyTGVuZ3RoID0gMDsKLSAgICBVMTZfTkVYVChjaGFyYWN0ZXJzLCBi
YXNlQ2hhcmFjdGVyTGVuZ3RoLCBsZW5ndGgsIGJhc2VDaGFyYWN0ZXIpOwotICAgIEdseXBoRGF0
YSBiYXNlQ2hhcmFjdGVyR2x5cGhEYXRhID0gZ2x5cGhEYXRhRm9yQ2hhcmFjdGVyKGJhc2VDaGFy
YWN0ZXIsIGZhbHNlLCBOb3JtYWxWYXJpYW50KTsKLQotICAgIGlmICghYmFzZUNoYXJhY3Rlckds
eXBoRGF0YS5nbHlwaCkKLSAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0gICAgcmV0dXJuIGJhc2VD
aGFyYWN0ZXJHbHlwaERhdGEuZm9udDsKLX0KLSNlbmRpZgotCiBzdHJ1Y3QgR2x5cGhJdGVyYXRp
b25TdGF0ZSB7CiAgICAgRmxvYXRQb2ludCBzdGFydGluZ1BvaW50OwogICAgIEZsb2F0UG9pbnQg
Y3VycmVudFBvaW50OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29y
ZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udENhc2NhZGVDb3JlVGV4dC5jcHAJKHJl
dmlzaW9uIDI2Njk4NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvcmV0
ZXh0L0ZvbnRDYXNjYWRlQ29yZVRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0zNiwxMyArMzYs
MTIgQEAKICNpZiBQTEFURk9STShDT0NPQSkKICNpbmNsdWRlIDxwYWwvc3BpL2NvY29hL0NvcmVU
ZXh0U1BJLmg+CiAjZWxzZQorI2luY2x1ZGUgIldlYkNvcmVUZXh0UmVuZGVyZXIuaCIKICNpbmNs
dWRlIDxwYWwvc3BpL3dpbi9Db3JlVGV4dFNQSVdpbi5oPgogI2VuZGlmCiAKIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAotI2lmICFQTEFURk9STShXSU4pCi0KIC8vIENvbmZ1c2luZ2x5LCBldmVuIHdo
ZW4gQ0dGb250UmVuZGVyaW5nR2V0Rm9udFNtb290aGluZ0Rpc2FibGVkKCkgcmV0dXJucyB0cnVl
LCBDR0NvbnRleHRTZXRTaG91bGRTbW9vdGhGb250cygpIHN0aWxsIGltcGFjdHMgdGV4dAogLy8g
cmVuZGVyaW5nLCB3aGljaCBpcyB3aHkgdGhpcyBmdW5jdGlvbiB1c2VzIHRoZSAic3VicGl4ZWwg
YW50aWFsaWFzaW5nIiByYXRoZXIgdGhhbiAic21vb3RoaW5nIiB0ZXJtaW5vbG9neS4KIGJvb2wg
Rm9udENhc2NhZGU6OmlzU3VicGl4ZWxBbnRpYWxpYXNpbmdBdmFpbGFibGUoKQpAQCAtMTYxLDYg
KzE2MCwzMyBAQAogICAgIGlmICghc2hvdWxkVXNlU21vb3RoaW5nKCkpCiAgICAgICAgIHNob3Vs
ZFNtb290aEZvbnRzID0gZmFsc2U7CiAKKyNpZiBQTEFURk9STShXSU4pCisgICAgYm9vbCBzaG91
bGRVc2VGb250U21vb3RoaW5nID0gV2ViQ29yZVNob3VsZFVzZUZvbnRTbW9vdGhpbmcoKTsKKwor
ICAgIHN3aXRjaCAoc21vb3RoaW5nTW9kZSkgeworICAgIGNhc2UgRm9udFNtb290aGluZ01vZGU6
OkFudGlhbGlhc2VkOiB7CisgICAgICAgIHNob3VsZFVzZUZvbnRTbW9vdGhpbmcgPSBmYWxzZTsK
KyAgICAgICAgYnJlYWs7CisgICAgfQorICAgIGNhc2UgRm9udFNtb290aGluZ01vZGU6OlN1YnBp
eGVsQW50aWFsaWFzZWQ6IHsKKyAgICAgICAgc2hvdWxkVXNlRm9udFNtb290aGluZyA9IHRydWU7
CisgICAgICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEZvbnRTbW9vdGhpbmdNb2RlOjpOb1Nt
b290aGluZzogeworICAgICAgICBzaG91bGRVc2VGb250U21vb3RoaW5nID0gZmFsc2U7CisgICAg
ICAgIGJyZWFrOworICAgIH0KKyAgICBjYXNlIEZvbnRTbW9vdGhpbmdNb2RlOjpBdXRvU21vb3Ro
aW5nOiB7CisgICAgICAgIC8vIEZvciB0aGUgQXV0b1Ntb290aCBjYXNlLCBkb24ndCBkbyBhbnl0
aGluZyEgS2VlcCB0aGUgZGVmYXVsdCBzZXR0aW5ncy4KKyAgICAgICAgYnJlYWs7CisgICAgfQor
ICAgIGRlZmF1bHQ6CisgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOworICAgIH0KKworICAg
IHVpbnQzMl90IG9sZEZvbnRTbW9vdGhpbmdTdHlsZSA9IEZvbnRDYXNjYWRlOjpzZXRGb250U21v
b3RoaW5nU3R5bGUoY2dDb250ZXh0LCBzaG91bGRVc2VGb250U21vb3RoaW5nKTsKKyNlbmRpZgor
CiAjaWYgIVBMQVRGT1JNKElPU19GQU1JTFkpCiAgICAgYm9vbCBvcmlnaW5hbFNob3VsZFVzZUZv
bnRTbW9vdGhpbmcgPSBDR0NvbnRleHRHZXRTaG91bGRTbW9vdGhGb250cyhjZ0NvbnRleHQpOwog
ICAgIGlmIChzaG91bGRTbW9vdGhGb250cyAhPSBvcmlnaW5hbFNob3VsZFVzZUZvbnRTbW9vdGhp
bmcpCkBAIC0xNzcsNyArMjAzLDcgQEAKIAogICAgIENHQWZmaW5lVHJhbnNmb3JtIG1hdHJpeCA9
IENHQWZmaW5lVHJhbnNmb3JtSWRlbnRpdHk7CiAgICAgaWYgKCFwbGF0Zm9ybURhdGEuaXNDb2xv
ckJpdG1hcEZvbnQoKSkKLSAgICAgICAgbWF0cml4ID0gQ1RGb250R2V0TWF0cml4KHBsYXRmb3Jt
RGF0YS5mb250KCkpOworICAgICAgICBtYXRyaXggPSBDVEZvbnRHZXRNYXRyaXgocGxhdGZvcm1E
YXRhLmN0Rm9udCgpKTsKICAgICBtYXRyaXguYiA9IC1tYXRyaXguYjsKICAgICBtYXRyaXguZCA9
IC1tYXRyaXguZDsKICAgICBpZiAocGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlxdWUoKSkgewpA
QCAtMTk0LDYgKzIyMCw5IEBACiAKICAgICBzZXRDR0ZvbnRSZW5kZXJpbmdNb2RlKGNvbnRleHQp
OwogICAgIENHQ29udGV4dFNldEZvbnRTaXplKGNnQ29udGV4dCwgcGxhdGZvcm1EYXRhLnNpemUo
KSk7CisjaWYgUExBVEZPUk0oV0lOKQorICAgIEZvbnRDYXNjYWRlOjpzZXRDR0NvbnRleHRGb250
UmVuZGVyaW5nU3R5bGUoY2dDb250ZXh0LCBmb250LnBsYXRmb3JtRGF0YSgpLmlzU3lzdGVtRm9u
dCgpLCBmYWxzZSwgZm9udC5wbGF0Zm9ybURhdGEoKS51c2VHREkoKSk7CisjZW5kaWYKIAogICAg
IEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7CiAgICAgZmxvYXQgc2hhZG93Qmx1cjsKQEAgLTI0OSw2
ICsyNzgsMTAgQEAKIAogICAgIGlmIChzaG91bGRBbnRpYWxpYXMgIT0gb3JpZ2luYWxTaG91bGRB
bnRpYWxpYXMpCiAgICAgICAgIENHQ29udGV4dFNldFNob3VsZEFudGlhbGlhcyhjZ0NvbnRleHQs
IG9yaWdpbmFsU2hvdWxkQW50aWFsaWFzKTsKKworI2lmIFBMQVRGT1JNKFdJTikKKyAgICBGb250
Q2FzY2FkZTo6c2V0Rm9udFNtb290aGluZ1N0eWxlKGNnQ29udGV4dCwgb2xkRm9udFNtb290aGlu
Z1N0eWxlKTsKKyNlbmRpZgogfQogCiBib29sIEZvbnRDYXNjYWRlOjpwcmltYXJ5Rm9udElzU3lz
dGVtRm9udCgpIGNvbnN0CkBAIC0zMTEsNiArMzQ0LDQgQEAKICAgICByZXR1cm4gRm9udDo6c3lz
dGVtRmFsbGJhY2soKTsKIH0KIAotI2VuZGlmCi0KIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvcmV0ZXh0L0ZvbnRQbGF0Zm9ybURhdGFDb3JlVGV4dC5jcHAKPT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9u
dFBsYXRmb3JtRGF0YUNvcmVUZXh0LmNwcAkocmV2aXNpb24gMjY2OTg2KQorKysgU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29yZXRleHQvRm9udFBsYXRmb3JtRGF0YUNvcmVUZXh0
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMzUsNiArMzUsMTUgQEAKIAogbmFtZXNwYWNlIFdlYkNv
cmUgewogCitib29sIGlzU3lzdGVtRm9udChDVEZvbnRSZWYgZm9udCkKK3sKKyNpZiBIQVZFKENU
Rk9OVElTU1lTVEVNVUlGT05UKQorICAgIHJldHVybiBDVEZvbnRJc1N5c3RlbVVJRm9udChmb250
KTsKKyNlbHNlCisgICAgcmV0dXJuIENURm9udERlc2NyaXB0b3JJc1N5c3RlbVVJRm9udChhZG9w
dENGKENURm9udENvcHlGb250RGVzY3JpcHRvcihmb250KSkuZ2V0KCkpOworI2VuZGlmCit9CisK
ICNpZiAhUExBVEZPUk0oV0lOKQogCiBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRh
KENURm9udFJlZiBmb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJp
YW50IHdpZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCkBA
IC01MiwxNSArNjEsNiBAQAogI2VuZGlmCiB9CiAKLWJvb2wgaXNTeXN0ZW1Gb250KENURm9udFJl
ZiBmb250KQotewotI2lmIEhBVkUoQ1RGT05USVNTWVNURU1VSUZPTlQpCi0gICAgcmV0dXJuIENU
Rm9udElzU3lzdGVtVUlGb250KGZvbnQpOwotI2Vsc2UKLSAgICByZXR1cm4gQ1RGb250RGVzY3Jp
cHRvcklzU3lzdGVtVUlGb250KGFkb3B0Q0YoQ1RGb250Q29weUZvbnREZXNjcmlwdG9yKGZvbnQp
KS5nZXQoKSk7Ci0jZW5kaWYKLX0KLQogQ1RGb250UmVmIEZvbnRQbGF0Zm9ybURhdGE6OnJlZ2lz
dGVyZWRGb250KCkgY29uc3QKIHsKICAgICBDVEZvbnRSZWYgcGxhdGZvcm1Gb250ID0gZm9udCgp
OwpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDR1dpbi5j
cHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRDR1dpbi5jcHAJKHJldmlzaW9uIDI2Njk4NikKKysrIFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250Q0dXaW4uY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00MCwxODAgKzQw
LDYgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1zdGF0aWMgaW5saW5lIENHRmxvYXQgdG9D
R0Zsb2F0KEZJWEVEIGYpCi17Ci0gICAgcmV0dXJuIGYudmFsdWUgKyBmLmZyYWN0IC8gQ0dGbG9h
dCg2NTUzNi4wKTsKLX0KLQotc3RhdGljIENHUGF0aFJlZiBjcmVhdGVQYXRoRm9yR2x5cGgoSERD
IGhkYywgR2x5cGggZ2x5cGgpCi17Ci0gICAgQ0dNdXRhYmxlUGF0aFJlZiBwYXRoID0gQ0dQYXRo
Q3JlYXRlTXV0YWJsZSgpOwotCi0gICAgc3RhdGljIGNvbnN0IE1BVDIgaWRlbnRpdHkgPSB7IDAs
IDEsICAwLCAwLCAgMCwgMCwgIDAsIDEgfTsKLSAgICBHTFlQSE1FVFJJQ1MgZ2x5cGhNZXRyaWNz
OwotICAgIC8vIEdHT19OQVRJVkUgbWF0Y2hlcyB0aGUgb3V0bGluZSBwZXJmZWN0bHkgd2hlbiBX
aW5kb3dzIGZvbnQgc21vb3RoaW5nIGlzIG9mZi4KLSAgICAvLyBHR09fTkFUSVZFIHwgR0dPX1VO
SElOVEVEIGRvZXMgbm90IG1hdGNoIHBlcmZlY3RseSBlaXRoZXIgd2hlbiBXaW5kb3dzIGZvbnQg
c21vb3RoaW5nIGlzIG9uIG9yIG9mZi4KLSAgICBEV09SRCBvdXRsaW5lTGVuZ3RoID0gR2V0R2x5
cGhPdXRsaW5lKGhkYywgZ2x5cGgsIEdHT19HTFlQSF9JTkRFWCB8IEdHT19OQVRJVkUsICZnbHlw
aE1ldHJpY3MsIDAsIDAsICZpZGVudGl0eSk7Ci0gICAgQVNTRVJUKG91dGxpbmVMZW5ndGggPj0g
MCk7Ci0gICAgaWYgKG91dGxpbmVMZW5ndGggPCAwKQotICAgICAgICByZXR1cm4gcGF0aDsKLQot
ICAgIFZlY3RvcjxVSW50OD4gb3V0bGluZShvdXRsaW5lTGVuZ3RoKTsKLSAgICBHZXRHbHlwaE91
dGxpbmUoaGRjLCBnbHlwaCwgR0dPX0dMWVBIX0lOREVYIHwgR0dPX05BVElWRSwgJmdseXBoTWV0
cmljcywgb3V0bGluZUxlbmd0aCwgb3V0bGluZS5kYXRhKCksICZpZGVudGl0eSk7Ci0KLSAgICB1
bnNpZ25lZCBvZmZzZXQgPSAwOwotICAgIHdoaWxlIChvZmZzZXQgPCBvdXRsaW5lTGVuZ3RoKSB7
Ci0gICAgICAgIExQVFRQT0xZR09OSEVBREVSIHN1YnBhdGggPSByZWludGVycHJldF9jYXN0PExQ
VFRQT0xZR09OSEVBREVSPihvdXRsaW5lLmRhdGEoKSArIG9mZnNldCk7Ci0gICAgICAgIEFTU0VS
VChzdWJwYXRoLT5kd1R5cGUgPT0gVFRfUE9MWUdPTl9UWVBFKTsKLSAgICAgICAgaWYgKHN1YnBh
dGgtPmR3VHlwZSAhPSBUVF9QT0xZR09OX1RZUEUpCi0gICAgICAgICAgICByZXR1cm4gcGF0aDsK
LQotICAgICAgICBDR1BhdGhNb3ZlVG9Qb2ludChwYXRoLCAwLCB0b0NHRmxvYXQoc3VicGF0aC0+
cGZ4U3RhcnQueCksIHRvQ0dGbG9hdChzdWJwYXRoLT5wZnhTdGFydC55KSk7Ci0KLSAgICAgICAg
dW5zaWduZWQgc3VicGF0aE9mZnNldCA9IHNpemVvZigqc3VicGF0aCk7Ci0gICAgICAgIHdoaWxl
IChzdWJwYXRoT2Zmc2V0IDwgc3VicGF0aC0+Y2IpIHsKLSAgICAgICAgICAgIExQVFRQT0xZQ1VS
VkUgc2VnbWVudCA9IHJlaW50ZXJwcmV0X2Nhc3Q8TFBUVFBPTFlDVVJWRT4ocmVpbnRlcnByZXRf
Y2FzdDxVSW50OCo+KHN1YnBhdGgpICsgc3VicGF0aE9mZnNldCk7Ci0gICAgICAgICAgICBzd2l0
Y2ggKHNlZ21lbnQtPndUeXBlKSB7Ci0gICAgICAgICAgICAgICAgY2FzZSBUVF9QUklNX0xJTkU6
Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBzZWdtZW50LT5j
cGZ4OyBpKyspCi0gICAgICAgICAgICAgICAgICAgICAgICBDR1BhdGhBZGRMaW5lVG9Qb2ludChw
YXRoLCAwLCB0b0NHRmxvYXQoc2VnbWVudC0+YXBmeFtpXS54KSwgdG9DR0Zsb2F0KHNlZ21lbnQt
PmFwZnhbaV0ueSkpOwotICAgICAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAg
ICAgIGNhc2UgVFRfUFJJTV9RU1BMSU5FOgotICAgICAgICAgICAgICAgICAgICBmb3IgKHVuc2ln
bmVkIGkgPSAwOyBpIDwgc2VnbWVudC0+Y3BmeDsgaSsrKSB7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBDR0Zsb2F0IHggPSB0b0NHRmxvYXQoc2VnbWVudC0+YXBmeFtpXS54KTsKLSAgICAgICAg
ICAgICAgICAgICAgICAgIENHRmxvYXQgeSA9IHRvQ0dGbG9hdChzZWdtZW50LT5hcGZ4W2ldLnkp
OwotICAgICAgICAgICAgICAgICAgICAgICAgQ0dGbG9hdCBjcHg7Ci0gICAgICAgICAgICAgICAg
ICAgICAgICBDR0Zsb2F0IGNweTsKLQotICAgICAgICAgICAgICAgICAgICAgICAgaWYgKGkgPT0g
c2VnbWVudC0+Y3BmeCAtIDIpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICBjcHggPSB0
b0NHRmxvYXQoc2VnbWVudC0+YXBmeFtpICsgMV0ueCk7Ci0gICAgICAgICAgICAgICAgICAgICAg
ICAgICAgY3B5ID0gdG9DR0Zsb2F0KHNlZ21lbnQtPmFwZnhbaSArIDFdLnkpOwotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIGkrKzsKLSAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgY3B4ID0gKHRvQ0dGbG9hdChzZWdtZW50LT5h
cGZ4W2ldLngpICsgdG9DR0Zsb2F0KHNlZ21lbnQtPmFwZnhbaSArIDFdLngpKSAvIDI7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgY3B5ID0gKHRvQ0dGbG9hdChzZWdtZW50LT5hcGZ4W2ld
LnkpICsgdG9DR0Zsb2F0KHNlZ21lbnQtPmFwZnhbaSArIDFdLnkpKSAvIDI7Ci0gICAgICAgICAg
ICAgICAgICAgICAgICB9Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIENHUGF0aEFkZFF1YWRD
dXJ2ZVRvUG9pbnQocGF0aCwgMCwgeCwgeSwgY3B4LCBjcHkpOwotICAgICAgICAgICAgICAgICAg
ICB9Ci0gICAgICAgICAgICAgICAgICAgIGJyZWFrOwotCi0gICAgICAgICAgICAgICAgY2FzZSBU
VF9QUklNX0NTUExJTkU6Ci0gICAgICAgICAgICAgICAgICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBzZWdtZW50LT5jcGZ4OyBpICs9IDMpIHsKLSAgICAgICAgICAgICAgICAgICAgICAgIENH
RmxvYXQgY3AxeCA9IHRvQ0dGbG9hdChzZWdtZW50LT5hcGZ4W2ldLngpOwotICAgICAgICAgICAg
ICAgICAgICAgICAgQ0dGbG9hdCBjcDF5ID0gdG9DR0Zsb2F0KHNlZ21lbnQtPmFwZnhbaV0ueSk7
Ci0gICAgICAgICAgICAgICAgICAgICAgICBDR0Zsb2F0IGNwMnggPSB0b0NHRmxvYXQoc2VnbWVu
dC0+YXBmeFtpICsgMV0ueCk7Ci0gICAgICAgICAgICAgICAgICAgICAgICBDR0Zsb2F0IGNwMnkg
PSB0b0NHRmxvYXQoc2VnbWVudC0+YXBmeFtpICsgMV0ueSk7Ci0gICAgICAgICAgICAgICAgICAg
ICAgICBDR0Zsb2F0IHggPSB0b0NHRmxvYXQoc2VnbWVudC0+YXBmeFtpICsgMl0ueCk7Ci0gICAg
ICAgICAgICAgICAgICAgICAgICBDR0Zsb2F0IHkgPSB0b0NHRmxvYXQoc2VnbWVudC0+YXBmeFtp
ICsgMl0ueSk7Ci0KLSAgICAgICAgICAgICAgICAgICAgICAgIENHUGF0aEFkZEN1cnZlVG9Qb2lu
dChwYXRoLCAwLCBjcDF4LCBjcDF5LCBjcDJ4LCBjcDJ5LCB4LCB5KTsKLSAgICAgICAgICAgICAg
ICAgICAgfQotICAgICAgICAgICAgICAgICAgICBicmVhazsKLQotICAgICAgICAgICAgICAgIGRl
ZmF1bHQ6Ci0gICAgICAgICAgICAgICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgpOwotICAgICAg
ICAgICAgICAgICAgICByZXR1cm4gcGF0aDsKLSAgICAgICAgICAgIH0KLQotICAgICAgICAgICAg
c3VicGF0aE9mZnNldCArPSBzaXplb2YoKnNlZ21lbnQpICsgKHNlZ21lbnQtPmNwZnggLSAxKSAq
IHNpemVvZihzZWdtZW50LT5hcGZ4WzBdKTsKLSAgICAgICAgfQotICAgICAgICBDR1BhdGhDbG9z
ZVN1YnBhdGgocGF0aCk7Ci0gICAgICAgIG9mZnNldCArPSBzdWJwYXRoLT5jYjsKLSAgICB9Ci0g
ICAgcmV0dXJuIHBhdGg7Ci19Ci0KLXZvaWQgRm9udENhc2NhZGU6OmRyYXdHbHlwaHMoR3JhcGhp
Y3NDb250ZXh0JiBncmFwaGljc0NvbnRleHQsIGNvbnN0IEZvbnQmIGZvbnQsIGNvbnN0IEdseXBo
QnVmZmVyJiBnbHlwaEJ1ZmZlciwKLSAgICB1bnNpZ25lZCBmcm9tLCB1bnNpZ25lZCBudW1HbHlw
aHMsIGNvbnN0IEZsb2F0UG9pbnQmIHBvaW50LCBGb250U21vb3RoaW5nTW9kZSBzbW9vdGhpbmdN
b2RlKQotewotICAgIENHQ29udGV4dFJlZiBjZ0NvbnRleHQgPSBncmFwaGljc0NvbnRleHQucGxh
dGZvcm1Db250ZXh0KCk7Ci0gICAgYm9vbCBzaG91bGRVc2VGb250U21vb3RoaW5nID0gV2ViQ29y
ZVNob3VsZFVzZUZvbnRTbW9vdGhpbmcoKTsKLQotICAgIHN3aXRjaCAoc21vb3RoaW5nTW9kZSkg
ewotICAgIGNhc2UgRm9udFNtb290aGluZ01vZGU6OkFudGlhbGlhc2VkOiB7Ci0gICAgICAgIGdy
YXBoaWNzQ29udGV4dC5zZXRTaG91bGRBbnRpYWxpYXModHJ1ZSk7Ci0gICAgICAgIHNob3VsZFVz
ZUZvbnRTbW9vdGhpbmcgPSBmYWxzZTsKLSAgICAgICAgYnJlYWs7Ci0gICAgfQotICAgIGNhc2Ug
Rm9udFNtb290aGluZ01vZGU6OlN1YnBpeGVsQW50aWFsaWFzZWQ6IHsKLSAgICAgICAgZ3JhcGhp
Y3NDb250ZXh0LnNldFNob3VsZEFudGlhbGlhcyh0cnVlKTsKLSAgICAgICAgc2hvdWxkVXNlRm9u
dFNtb290aGluZyA9IHRydWU7Ci0gICAgICAgIGJyZWFrOwotICAgIH0KLSAgICBjYXNlIEZvbnRT
bW9vdGhpbmdNb2RlOjpOb1Ntb290aGluZzogewotICAgICAgICBncmFwaGljc0NvbnRleHQuc2V0
U2hvdWxkQW50aWFsaWFzKGZhbHNlKTsKLSAgICAgICAgc2hvdWxkVXNlRm9udFNtb290aGluZyA9
IGZhbHNlOwotICAgICAgICBicmVhazsKLSAgICB9Ci0gICAgY2FzZSBGb250U21vb3RoaW5nTW9k
ZTo6QXV0b1Ntb290aGluZzogewotICAgICAgICAvLyBGb3IgdGhlIEF1dG9TbW9vdGggY2FzZSwg
ZG9uJ3QgZG8gYW55dGhpbmchIEtlZXAgdGhlIGRlZmF1bHQgc2V0dGluZ3MuCi0gICAgICAgIGJy
ZWFrOyAKLSAgICB9Ci0gICAgZGVmYXVsdDogCi0gICAgICAgIEFTU0VSVF9OT1RfUkVBQ0hFRCgp
OwotICAgIH0KLQotICAgIHVpbnQzMl90IG9sZEZvbnRTbW9vdGhpbmdTdHlsZSA9IEZvbnRDYXNj
YWRlOjpzZXRGb250U21vb3RoaW5nU3R5bGUoY2dDb250ZXh0LCBzaG91bGRVc2VGb250U21vb3Ro
aW5nKTsKLQotICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSA9IGZvbnQu
cGxhdGZvcm1EYXRhKCk7Ci0KLSAgICBDR0NvbnRleHRTZXRGb250KGNnQ29udGV4dCwgcGxhdGZv
cm1EYXRhLmNnRm9udCgpKTsKLQotICAgIENHQWZmaW5lVHJhbnNmb3JtIG1hdHJpeCA9IENHQWZm
aW5lVHJhbnNmb3JtSWRlbnRpdHk7Ci0gICAgbWF0cml4LmIgPSAtbWF0cml4LmI7Ci0gICAgbWF0
cml4LmQgPSAtbWF0cml4LmQ7Ci0KLSAgICBpZiAocGxhdGZvcm1EYXRhLnN5bnRoZXRpY09ibGlx
dWUoKSkgewotICAgICAgICBzdGF0aWMgZmxvYXQgc2tldyA9IC10YW5mKHN5bnRoZXRpY09ibGlx
dWVBbmdsZSgpICogcGlGbG9hdCAvIDE4MC4wZik7Ci0gICAgICAgIG1hdHJpeCA9IENHQWZmaW5l
VHJhbnNmb3JtQ29uY2F0KG1hdHJpeCwgQ0dBZmZpbmVUcmFuc2Zvcm1NYWtlKDEsIDAsIHNrZXcs
IDEsIDAsIDApKTsKLSAgICB9Ci0KLSAgICBDR0FmZmluZVRyYW5zZm9ybSBzYXZlZE1hdHJpeCA9
IENHQ29udGV4dEdldFRleHRNYXRyaXgoY2dDb250ZXh0KTsKLSAgICBDR0NvbnRleHRTZXRUZXh0
TWF0cml4KGNnQ29udGV4dCwgbWF0cml4KTsKLQotICAgIENHQ29udGV4dFNldEZvbnRTaXplKGNn
Q29udGV4dCwgcGxhdGZvcm1EYXRhLnNpemUoKSk7Ci0gICAgRm9udENhc2NhZGU6OnNldENHQ29u
dGV4dEZvbnRSZW5kZXJpbmdTdHlsZShjZ0NvbnRleHQsIGZvbnQucGxhdGZvcm1EYXRhKCkuaXNT
eXN0ZW1Gb250KCksIGZhbHNlLCBmb250LnBsYXRmb3JtRGF0YSgpLnVzZUdESSgpKTsKLQotICAg
IEZsb2F0U2l6ZSBzaGFkb3dPZmZzZXQ7Ci0gICAgZmxvYXQgc2hhZG93Qmx1cjsKLSAgICBDb2xv
ciBzaGFkb3dDb2xvcjsKLSAgICBncmFwaGljc0NvbnRleHQuZ2V0U2hhZG93KHNoYWRvd09mZnNl
dCwgc2hhZG93Qmx1ciwgc2hhZG93Q29sb3IpOwotCi0gICAgYm9vbCBoYXNTaW1wbGVTaGFkb3cg
PSBncmFwaGljc0NvbnRleHQudGV4dERyYXdpbmdNb2RlKCkgPT0gVGV4dERyYXdpbmdNb2RlOjpG
aWxsICYmIHNoYWRvd0NvbG9yLmlzVmFsaWQoKSAmJiAhc2hhZG93Qmx1ciAmJiAoIWdyYXBoaWNz
Q29udGV4dC5zaGFkb3dzSWdub3JlVHJhbnNmb3JtcygpIHx8IGdyYXBoaWNzQ29udGV4dC5nZXRD
VE0oKS5pc0lkZW50aXR5T3JUcmFuc2xhdGlvbk9yRmxpcHBlZCgpKTsKLSAgICBpZiAoaGFzU2lt
cGxlU2hhZG93KSB7Ci0gICAgICAgIC8vIFBhaW50IHNpbXBsZSBzaGFkb3dzIG91cnNlbHZlcyBp
bnN0ZWFkIG9mIHJlbHlpbmcgb24gQ0cgc2hhZG93cywgdG8gYXZvaWQgbG9zaW5nIHN1YnBpeGVs
IGFudGlhbGlhc2luZy4KLSAgICAgICAgZ3JhcGhpY3NDb250ZXh0LmNsZWFyU2hhZG93KCk7Ci0g
ICAgICAgIENvbG9yIGZpbGxDb2xvciA9IGdyYXBoaWNzQ29udGV4dC5maWxsQ29sb3IoKTsKLSAg
ICAgICAgQ29sb3Igc2hhZG93RmlsbENvbG9yID0gc2hhZG93Q29sb3IuY29sb3JXaXRoQWxwaGFN
dWx0aXBsaWVkQnkoZmlsbENvbG9yLmFscGhhQXNGbG9hdCgpKTsKLSAgICAgICAgZ3JhcGhpY3ND
b250ZXh0LnNldEZpbGxDb2xvcihzaGFkb3dGaWxsQ29sb3IpOwotICAgICAgICBmbG9hdCBzaGFk
b3dUZXh0WCA9IHBvaW50LngoKSArIHNoYWRvd09mZnNldC53aWR0aCgpOwotICAgICAgICAvLyBJ
ZiBzaGFkb3dzIGFyZSBpZ25vcmluZyB0cmFuc2Zvcm1zLCB0aGVuIHdlIGhhdmVuJ3QgYXBwbGll
ZCB0aGUgWSBjb29yZGluYXRlIGZsaXAgeWV0LCBzbyBkb3duIGlzIG5lZ2F0aXZlLgotICAgICAg
ICBmbG9hdCBzaGFkb3dUZXh0WSA9IHBvaW50LnkoKSArIHNoYWRvd09mZnNldC5oZWlnaHQoKSAq
IChncmFwaGljc0NvbnRleHQuc2hhZG93c0lnbm9yZVRyYW5zZm9ybXMoKSA/IC0xIDogMSk7Ci0g
ICAgICAgIENHQ29udGV4dFNldFRleHRQb3NpdGlvbihjZ0NvbnRleHQsIHNoYWRvd1RleHRYLCBz
aGFkb3dUZXh0WSk7Ci0gICAgICAgIENHQ29udGV4dFNob3dHbHlwaHNXaXRoQWR2YW5jZXMoY2dD
b250ZXh0LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIHN0YXRpY19jYXN0PGNvbnN0IENHU2l6
ZSo+KGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pKSwgbnVtR2x5cGhzKTsKLSAgICAgICAgaWYg
KGZvbnQuc3ludGhldGljQm9sZE9mZnNldCgpKSB7Ci0gICAgICAgICAgICBDR0NvbnRleHRTZXRU
ZXh0UG9zaXRpb24oY2dDb250ZXh0LCBwb2ludC54KCkgKyBzaGFkb3dPZmZzZXQud2lkdGgoKSAr
IGZvbnQuc3ludGhldGljQm9sZE9mZnNldCgpLCBwb2ludC55KCkgKyBzaGFkb3dPZmZzZXQuaGVp
Z2h0KCkpOwotICAgICAgICAgICAgQ0dDb250ZXh0U2hvd0dseXBoc1dpdGhBZHZhbmNlcyhjZ0Nv
bnRleHQsIGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgc3RhdGljX2Nhc3Q8Y29uc3QgQ0dTaXpl
Kj4oZ2x5cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSkpLCBudW1HbHlwaHMpOwotICAgICAgICB9Ci0g
ICAgICAgIGdyYXBoaWNzQ29udGV4dC5zZXRGaWxsQ29sb3IoZmlsbENvbG9yKTsKLSAgICB9Ci0K
LSAgICBDR0NvbnRleHRTZXRUZXh0UG9zaXRpb24oY2dDb250ZXh0LCBwb2ludC54KCksIHBvaW50
LnkoKSk7Ci0gICAgQ0dDb250ZXh0U2hvd0dseXBoc1dpdGhBZHZhbmNlcyhjZ0NvbnRleHQsIGds
eXBoQnVmZmVyLmdseXBocyhmcm9tKSwgc3RhdGljX2Nhc3Q8Y29uc3QgQ0dTaXplKj4oZ2x5cGhC
dWZmZXIuYWR2YW5jZXMoZnJvbSkpLCBudW1HbHlwaHMpOwotICAgIGlmIChmb250LnN5bnRoZXRp
Y0JvbGRPZmZzZXQoKSkgewotICAgICAgICBDR0NvbnRleHRTZXRUZXh0UG9zaXRpb24oY2dDb250
ZXh0LCBwb2ludC54KCkgKyBmb250LnN5bnRoZXRpY0JvbGRPZmZzZXQoKSwgcG9pbnQueSgpKTsK
LSAgICAgICAgQ0dDb250ZXh0U2hvd0dseXBoc1dpdGhBZHZhbmNlcyhjZ0NvbnRleHQsIGdseXBo
QnVmZmVyLmdseXBocyhmcm9tKSwgc3RhdGljX2Nhc3Q8Y29uc3QgQ0dTaXplKj4oZ2x5cGhCdWZm
ZXIuYWR2YW5jZXMoZnJvbSkpLCBudW1HbHlwaHMpOwotICAgIH0KLQotICAgIGlmIChoYXNTaW1w
bGVTaGFkb3cpCi0gICAgICAgIGdyYXBoaWNzQ29udGV4dC5zZXRTaGFkb3coc2hhZG93T2Zmc2V0
LCBzaGFkb3dCbHVyLCBzaGFkb3dDb2xvcik7Ci0KLSAgICBGb250Q2FzY2FkZTo6c2V0Rm9udFNt
b290aGluZ1N0eWxlKGNnQ29udGV4dCwgb2xkRm9udFNtb290aGluZ1N0eWxlKTsKLSAgICBDR0Nv
bnRleHRTZXRUZXh0TWF0cml4KGNnQ29udGV4dCwgc2F2ZWRNYXRyaXgpOwotfQotCiBjb25zdGV4
cHIgdWludDMyX3Qga0NHRm9udFNtb290aGluZ1N0eWxlTWluaW11bSA9ICgxIDw8IDQpOwogY29u
c3RleHByIHVpbnQzMl90IGtDR0ZvbnRTbW9vdGhpbmdTdHlsZUxpZ2h0ID0gKDIgPDwgNCk7CiBj
b25zdGV4cHIgdWludDMyX3Qga0NHRm9udFNtb290aGluZ1N0eWxlTWVkaXVtID0gKDMgPDwgNCk7
Cg==
</data>
<flag name="commit-queue"
          id="424090"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
      

    </bug>

</bugzilla>