<?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>216211</bug_id>
          
          <creation_ts>2020-09-05 00:50:57 -0700</creation_ts>
          <short_desc>Remove all non-web-exposed uses of ENABLE(VARIATION_FONTS)</short_desc>
          <delta_ts>2020-09-06 17:01:17 -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>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>
          <dependson>176215</dependson>
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>changseok</cc>
    
    <cc>darin</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>pdr</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1686029</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-09-05 00:50:57 -0700</bug_when>
    <thetext>Because it&apos;s enabled on all Cocoa ports, and we have shipped it for years and don&apos;t plan on disabling it, we can just stop consulting with the ENABLE() in Cocoa-specific files.

Also, we can start the process of enabling it for all ports by at least compiling in the internal data structures for it on all ports (but not have any web-exposed behavior change).</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686030</commentid>
    <comment_count>1</comment_count>
      <attachid>408070</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-09-05 00:51:28 -0700</bug_when>
    <thetext>Created attachment 408070
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686237</commentid>
    <comment_count>2</comment_count>
      <attachid>408140</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2020-09-06 15:24:10 -0700</bug_when>
    <thetext>Created attachment 408140
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686264</commentid>
    <comment_count>3</comment_count>
    <who name="EWS">ews-feeder</who>
    <bug_when>2020-09-06 17:00:58 -0700</bug_when>
    <thetext>Committed r266686: &lt;https://trac.webkit.org/changeset/266686&gt;

All reviewed patches have been landed. Closing bug and clearing flags on attachment 408140.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1686265</commentid>
    <comment_count>4</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2020-09-06 17:01:17 -0700</bug_when>
    <thetext>&lt;rdar://problem/68437601&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408070</attachid>
            <date>2020-09-05 00:51:28 -0700</date>
            <delta_ts>2020-09-06 15:24:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>patch.txt</filename>
            <type>text/plain</type>
            <size>26200</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAKaW5kZXggNzg5
MDc4ZjRlNTZkLi42MDA4NTk2YTZmMDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9D
U1NGb250VmFyaWF0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
VmFyaWF0aW9uVmFsdWUuY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAKICNpbmNsdWRlICJjb25maWcu
aCIKIAotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCi0KICNpbmNsdWRlICJDU1NGb250VmFy
aWF0aW9uVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25jYXRlbmF0ZU51bWJl
cnMuaD4KIApAQCAtNTAsNSArNDgsMyBAQCBib29sIENTU0ZvbnRWYXJpYXRpb25WYWx1ZTo6ZXF1
YWxzKGNvbnN0IENTU0ZvbnRWYXJpYXRpb25WYWx1ZSYgb3RoZXIpIGNvbnN0CiB9CiAKIH0KLQot
I2VuZGlmIC8vIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udFZhcmlhdGlvblZhbHVlLmgKaW5kZXggZmFmMzRiNTdiMDFmLi5jODhjY2RhOTEzOWMgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmgKQEAgLTI1LDggKzI1
LDYgQEAKIAogI3ByYWdtYSBvbmNlCiAKLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQotCiAj
aW5jbHVkZSAiQ1NTVmFsdWUuaCIKICNpbmNsdWRlICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKIApA
QCAtNTUsNSArNTMsMyBAQCBwcml2YXRlOgogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCiBTUEVD
SUFMSVpFX1RZUEVfVFJBSVRTX0NTU19WQUxVRShDU1NGb250VmFyaWF0aW9uVmFsdWUsIGlzRm9u
dFZhcmlhdGlvblZhbHVlKCkpCi0KLSNlbmRpZiAvLyBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL2Nzcy9DU1NWYWx1ZS5jcHAKaW5kZXggNGI5ZjAxYTJlYzkwLi4xYWEzNTM2NzgwZGQgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKKysrIGIvU291cmNlL1dl
YkNvcmUvY3NzL0NTU1ZhbHVlLmNwcApAQCAtMTY2LDEwICsxNjYsOCBAQCBib29sIENTU1ZhbHVl
OjplcXVhbHMoY29uc3QgQ1NTVmFsdWUmIG90aGVyKSBjb25zdAogICAgICAgICAgICAgcmV0dXJu
IGNvbXBhcmVDU1NWYWx1ZXM8Q1NTRm9udEZhY2VTcmNWYWx1ZT4oKnRoaXMsIG90aGVyKTsKICAg
ICAgICAgY2FzZSBGb250RmVhdHVyZUNsYXNzOgogICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVD
U1NWYWx1ZXM8Q1NTRm9udEZlYXR1cmVWYWx1ZT4oKnRoaXMsIG90aGVyKTsKLSNpZiBFTkFCTEUo
VkFSSUFUSU9OX0ZPTlRTKQogICAgICAgICBjYXNlIEZvbnRWYXJpYXRpb25DbGFzczoKICAgICAg
ICAgICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0ZvbnRWYXJpYXRpb25WYWx1ZT4oKnRo
aXMsIG90aGVyKTsKLSNlbmRpZgogICAgICAgICBjYXNlIEZ1bmN0aW9uQ2xhc3M6CiAgICAgICAg
ICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NGdW5jdGlvblZhbHVlPigqdGhpcywgb3Ro
ZXIpOwogICAgICAgICBjYXNlIExpbmVhckdyYWRpZW50Q2xhc3M6CkBAIC0yNjgsMTAgKzI2Niw4
IEBAIFN0cmluZyBDU1NWYWx1ZTo6Y3NzVGV4dCgpIGNvbnN0CiAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxDU1NGb250RmFjZVNyY1ZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNh
c2UgRm9udEZlYXR1cmVDbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0ZvbnRGZWF0
dXJlVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7Ci0jaWYgRU5BQkxFKFZBUklBVElPTl9G
T05UUykKICAgICBjYXNlIEZvbnRWYXJpYXRpb25DbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25j
YXN0PENTU0ZvbnRWYXJpYXRpb25WYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQoKTsKLSNlbmRp
ZgogICAgIGNhc2UgRnVuY3Rpb25DbGFzczoKICAgICAgICAgcmV0dXJuIGRvd25jYXN0PENTU0Z1
bmN0aW9uVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0KCk7CiAgICAgY2FzZSBMaW5lYXJHcmFk
aWVudENsYXNzOgpAQCAtMzY5LDExICszNjUsOSBAQCB2b2lkIENTU1ZhbHVlOjpkZXN0cm95KCkK
ICAgICBjYXNlIEZvbnRGZWF0dXJlQ2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2FzdDxDU1NG
b250RmVhdHVyZVZhbHVlPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwotI2lmIEVOQUJMRShWQVJJ
QVRJT05fRk9OVFMpCiAgICAgY2FzZSBGb250VmFyaWF0aW9uQ2xhc3M6CiAgICAgICAgIGRlbGV0
ZSBkb3duY2FzdDxDU1NGb250VmFyaWF0aW9uVmFsdWU+KHRoaXMpOwogICAgICAgICByZXR1cm47
Ci0jZW5kaWYKICAgICBjYXNlIEZ1bmN0aW9uQ2xhc3M6CiAgICAgICAgIGRlbGV0ZSBkb3duY2Fz
dDxDU1NGdW5jdGlvblZhbHVlPih0aGlzKTsKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmggYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFs
dWUuaAppbmRleCBjZmNlZGY0ZjMxYjguLmJkZjVhNTM4YTE4NSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVl
LmgKQEAgLTkyLDkgKzkyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNDdXN0b21Qcm9wZXJ0eVZh
bHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gQ3VzdG9tUHJvcGVydHlDbGFzczsg
fQogICAgIGJvb2wgaXNGdW5jdGlvblZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUg
PT0gRnVuY3Rpb25DbGFzczsgfQogICAgIGJvb2wgaXNGb250RmVhdHVyZVZhbHVlKCkgY29uc3Qg
eyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gRm9udEZlYXR1cmVDbGFzczsgfQotI2lmIEVOQUJMRShW
QVJJQVRJT05fRk9OVFMpCiAgICAgYm9vbCBpc0ZvbnRWYXJpYXRpb25WYWx1ZSgpIGNvbnN0IHsg
cmV0dXJuIG1fY2xhc3NUeXBlID09IEZvbnRWYXJpYXRpb25DbGFzczsgfQotI2VuZGlmCiAgICAg
Ym9vbCBpc0ZvbnRGYWNlU3JjVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNzVHlwZSA9PSBG
b250RmFjZVNyY0NsYXNzOyB9CiAgICAgYm9vbCBpc0ZvbnRWYWx1ZSgpIGNvbnN0IHsgcmV0dXJu
IG1fY2xhc3NUeXBlID09IEZvbnRDbGFzczsgfQogICAgIGJvb2wgaXNGb250U3R5bGVWYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEZvbnRTdHlsZUNsYXNzOyB9CkBAIC0xODIs
OSArMTgwLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBBc3BlY3RSYXRpb0NsYXNzLAogICAgICAg
ICBCb3JkZXJJbWFnZVNsaWNlQ2xhc3MsCiAgICAgICAgIEZvbnRGZWF0dXJlQ2xhc3MsCi0jaWYg
RU5BQkxFKFZBUklBVElPTl9GT05UUykKICAgICAgICAgRm9udFZhcmlhdGlvbkNsYXNzLAotI2Vu
ZGlmCiAgICAgICAgIEZvbnRDbGFzcywKICAgICAgICAgRm9udFN0eWxlQ2xhc3MsCiAgICAgICAg
IEZvbnRTdHlsZVJhbmdlQ2xhc3MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRDYWNoZS5oCmluZGV4IGUxNDUzZWYyY2ZiOS4uNWFhY2Y0YWFjMTA0IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAtODAsOSArODAsNyBA
QCBzdHJ1Y3QgRm9udERlc2NyaXB0aW9uS2V5IHsKICAgICAgICAgLCBtX2ZsYWdzKG1ha2VGbGFn
c0tleShkZXNjcmlwdGlvbikpCiAgICAgICAgICwgbV9sb2NhbGUoZGVzY3JpcHRpb24uc3BlY2lm
aWVkTG9jYWxlKCkpCiAgICAgICAgICwgbV9mZWF0dXJlU2V0dGluZ3MoZGVzY3JpcHRpb24uZmVh
dHVyZVNldHRpbmdzKCkpCi0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKICAgICAgICAgLCBt
X3ZhcmlhdGlvblNldHRpbmdzKGRlc2NyaXB0aW9uLnZhcmlhdGlvblNldHRpbmdzKCkpCi0jZW5k
aWYKICAgICB7IH0KIAogICAgIGV4cGxpY2l0IEZvbnREZXNjcmlwdGlvbktleShXVEY6Okhhc2hU
YWJsZURlbGV0ZWRWYWx1ZVR5cGUpCkBAIC05Niw5ICs5NCw3IEBAIHN0cnVjdCBGb250RGVzY3Jp
cHRpb25LZXkgewogICAgICAgICAgICAgJiYgbV9mb250U2VsZWN0aW9uUmVxdWVzdCA9PSBvdGhl
ci5tX2ZvbnRTZWxlY3Rpb25SZXF1ZXN0CiAgICAgICAgICAgICAmJiBtX2ZsYWdzID09IG90aGVy
Lm1fZmxhZ3MKICAgICAgICAgICAgICYmIG1fbG9jYWxlID09IG90aGVyLm1fbG9jYWxlCi0jaWYg
RU5BQkxFKFZBUklBVElPTl9GT05UUykKICAgICAgICAgICAgICYmIG1fdmFyaWF0aW9uU2V0dGlu
Z3MgPT0gb3RoZXIubV92YXJpYXRpb25TZXR0aW5ncwotI2VuZGlmCiAgICAgICAgICAgICAmJiBt
X2ZlYXR1cmVTZXR0aW5ncyA9PSBvdGhlci5tX2ZlYXR1cmVTZXR0aW5nczsKICAgICB9CiAKQEAg
LTEyMCw5ICsxMTYsNyBAQCBzdHJ1Y3QgRm9udERlc2NyaXB0aW9uS2V5IHsKICAgICAgICAgZm9y
ICh1bnNpZ25lZCBmbGFnSXRlbSA6IG1fZmxhZ3MpCiAgICAgICAgICAgICBoYXNoZXIuYWRkKGZs
YWdJdGVtKTsKICAgICAgICAgaGFzaGVyLmFkZChtX2ZlYXR1cmVTZXR0aW5ncy5oYXNoKCkpOwot
I2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCiAgICAgICAgIGhhc2hlci5hZGQobV92YXJpYXRp
b25TZXR0aW5ncy5oYXNoKCkpOwotI2VuZGlmCiAgICAgICAgIHJldHVybiBoYXNoZXIuaGFzaCgp
OwogICAgIH0KIApAQCAtMTY0LDkgKzE1OCw3IEBAIHByaXZhdGU6CiAgICAgc3RkOjphcnJheTx1
bnNpZ25lZCwgMj4gbV9mbGFncyB7eyAwLCAwIH19OwogICAgIEF0b21TdHJpbmcgbV9sb2NhbGU7
CiAgICAgRm9udEZlYXR1cmVTZXR0aW5ncyBtX2ZlYXR1cmVTZXR0aW5nczsKLSNpZiBFTkFCTEUo
VkFSSUFUSU9OX0ZPTlRTKQogICAgIEZvbnRWYXJpYXRpb25TZXR0aW5ncyBtX3ZhcmlhdGlvblNl
dHRpbmdzOwotI2VuZGlmCiB9OwogCiBzdHJ1Y3QgRm9udERlc2NyaXB0aW9uS2V5SGFzaCB7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZURl
c2NyaXB0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNj
YWRlRGVzY3JpcHRpb24uY3BwCmluZGV4IDE0YTk2ZjdmNzMyZS4uNmQwZmFkOTJjZTBkIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FzY2FkZURlc2Ny
aXB0aW9uLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2Fz
Y2FkZURlc2NyaXB0aW9uLmNwcApAQCAtMzYsMTEgKzM2LDcgQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogCiBzdHJ1Y3QgU2FtZVNpemVBc0ZvbnRDYXNjYWRlRGVzY3JpcHRpb24gewogICAgIFZlY3Rv
cjx2b2lkKj4gdmVjdG9yOwotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCiAgICAgVmVjdG9y
PHZvaWQqPiB2ZWN0b3IyOwotI2Vsc2UKLSAgICBjaGFyIGM7Ci0jZW5kaWYKICAgICBBdG9tU3Ry
aW5nIHN0cmluZzsKICAgICBBdG9tU3RyaW5nIHN0cmluZzI7CiAgICAgaW50MTZfdCBmb250U2Vs
ZWN0aW9uUmVxdWVzdFszXTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udERlc2NyaXB0aW9uLmgKaW5kZXggYzllNDNjNjQ5NDU5Li41NGE3NzZkYWIxMDggMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlv
bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlv
bi5oCkBAIC0xMTAsOSArMTEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2lkdGhWYXJpYW50
KEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KSB7IG1fd2lkdGhWYXJpYW50ID0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KHdpZHRoVmFyaWFudCk7IH0gLy8gTWFrZSBzdXJlIG5ldyBjYWxsZXJz
IG9mIHRoaXMgc3luYyB3aXRoIEZvbnRQbGF0Zm9ybURhdGE6OmlzRm9yVGV4dENvbWJpbmUoKSEK
ICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNwZWNpZmllZExvY2FsZShjb25zdCBBdG9tU3Ry
aW5nJik7CiAgICAgdm9pZCBzZXRGZWF0dXJlU2V0dGluZ3MoRm9udEZlYXR1cmVTZXR0aW5ncyYm
IHNldHRpbmdzKSB7IG1fZmVhdHVyZVNldHRpbmdzID0gV1RGTW92ZShzZXR0aW5ncyk7IH0KLSNp
ZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQogICAgIHZvaWQgc2V0VmFyaWF0aW9uU2V0dGluZ3Mo
Rm9udFZhcmlhdGlvblNldHRpbmdzJiYgc2V0dGluZ3MpIHsgbV92YXJpYXRpb25TZXR0aW5ncyA9
IFdURk1vdmUoc2V0dGluZ3MpOyB9Ci0jZW5kaWYKICAgICB2b2lkIHNldEZvbnRTeW50aGVzaXMo
Rm9udFN5bnRoZXNpcyBmb250U3ludGhlc2lzKSB7IG1fZm9udFN5bnRoZXNpcyA9IGZvbnRTeW50
aGVzaXM7IH0KICAgICB2b2lkIHNldFZhcmlhbnRDb21tb25MaWdhdHVyZXMoRm9udFZhcmlhbnRM
aWdhdHVyZXMgdmFyaWFudCkgeyBtX3ZhcmlhbnRDb21tb25MaWdhdHVyZXMgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4odmFyaWFudCk7IH0KICAgICB2b2lkIHNldFZhcmlhbnREaXNjcmV0aW9uYXJ5
TGlnYXR1cmVzKEZvbnRWYXJpYW50TGlnYXR1cmVzIHZhcmlhbnQpIHsgbV92YXJpYW50RGlzY3Jl
dGlvbmFyeUxpZ2F0dXJlcyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YXJpYW50KTsgfQpAQCAt
MTkwLDkgKzE4OCw3IEBAIGlubGluZSBib29sIEZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PShj
b25zdCBGb250RGVzY3JpcHRpb24mIG90aGVyKSBjb25zdAogICAgICAgICAmJiBtX3dpZHRoVmFy
aWFudCA9PSBvdGhlci5tX3dpZHRoVmFyaWFudAogICAgICAgICAmJiBtX3NwZWNpZmllZExvY2Fs
ZSA9PSBvdGhlci5tX3NwZWNpZmllZExvY2FsZQogICAgICAgICAmJiBtX2ZlYXR1cmVTZXR0aW5n
cyA9PSBvdGhlci5tX2ZlYXR1cmVTZXR0aW5ncwotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMp
CiAgICAgICAgICYmIG1fdmFyaWF0aW9uU2V0dGluZ3MgPT0gb3RoZXIubV92YXJpYXRpb25TZXR0
aW5ncwotI2VuZGlmCiAgICAgICAgICYmIG1fZm9udFN5bnRoZXNpcyA9PSBvdGhlci5tX2ZvbnRT
eW50aGVzaXMKICAgICAgICAgJiYgbV92YXJpYW50Q29tbW9uTGlnYXR1cmVzID09IG90aGVyLm1f
dmFyaWFudENvbW1vbkxpZ2F0dXJlcwogICAgICAgICAmJiBtX3ZhcmlhbnREaXNjcmV0aW9uYXJ5
TGlnYXR1cmVzID09IG90aGVyLm1fdmFyaWFudERpc2NyZXRpb25hcnlMaWdhdHVyZXMKQEAgLTIx
OSw5ICsyMTUsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBGb250RGVzY3JpcHRp
b246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIgPDwgZmVh
dHVyZVNldHRpbmdzKCk7Ci0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKICAgICBlbmNvZGVy
IDw8IHZhcmlhdGlvblNldHRpbmdzKCk7Ci0jZW5kaWYKICAgICBlbmNvZGVyIDw8IGNvbXB1dGVk
TG9jYWxlKCk7CiAgICAgZW5jb2RlciA8PCBpdGFsaWMoKTsKICAgICBlbmNvZGVyIDw8IHN0cmV0
Y2goKTsKQEAgLTI2MywxMiArMjU3LDEwIEBAIE9wdGlvbmFsPEZvbnREZXNjcmlwdGlvbj4gRm9u
dERlc2NyaXB0aW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIWZlYXR1cmVT
ZXR0aW5ncykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotI2lmIEVOQUJMRShWQVJJ
QVRJT05fRk9OVFMpCiAgICAgT3B0aW9uYWw8Rm9udFZhcmlhdGlvblNldHRpbmdzPiB2YXJpYXRp
b25TZXR0aW5nczsKICAgICBkZWNvZGVyID4+IHZhcmlhdGlvblNldHRpbmdzOwogICAgIGlmICgh
dmFyaWF0aW9uU2V0dGluZ3MpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0jZW5kaWYK
IAogICAgIE9wdGlvbmFsPEF0b21TdHJpbmc+IGxvY2FsZTsKICAgICBkZWNvZGVyID4+IGxvY2Fs
ZTsKQEAgLTQyMSw5ICs0MTMsNyBAQCBPcHRpb25hbDxGb250RGVzY3JpcHRpb24+IEZvbnREZXNj
cmlwdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgICAgIHJldHVybiBXVEY6Om51
bGxvcHQ7CiAKICAgICBmb250RGVzY3JpcHRpb24uc2V0RmVhdHVyZVNldHRpbmdzKFdURk1vdmUo
KmZlYXR1cmVTZXR0aW5ncykpOwotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCiAgICAgZm9u
dERlc2NyaXB0aW9uLnNldFZhcmlhdGlvblNldHRpbmdzKFdURk1vdmUoKnZhcmlhdGlvblNldHRp
bmdzKSk7Ci0jZW5kaWYKICAgICBmb250RGVzY3JpcHRpb24uc2V0U3BlY2lmaWVkTG9jYWxlKCps
b2NhbGUpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRJdGFsaWMoKml0YWxpYyk7CiAgICAgZm9u
dERlc2NyaXB0aW9uLnNldFN0cmV0Y2goKnN0cmV0Y2gpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKaW5kZXggNGU2
MDhmMTkyNWE1Li44YThjNzk3ZjY0NzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcApAQCAtNDQsNyArNDQsNiBA
QCB1bnNpZ25lZCBGb250RmVhdHVyZVNldHRpbmdzOjpoYXNoKCkgY29uc3QKICAgICByZXR1cm4g
aGFzaGVyLmhhc2goKTsKIH0KIAotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCiB0ZW1wbGF0
ZSA8PgogdW5zaWduZWQgRm9udFZhcmlhdGlvblNldHRpbmdzOjpoYXNoKCkgY29uc3QKIHsKQEAg
LTc2LDYgKzc1LDUgQEAgVGV4dFN0cmVhbSYgb3BlcmF0b3I8PChUZXh0U3RyZWFtJiB0cywgY29u
c3QgRm9udFZhcmlhdGlvblNldHRpbmdzJiBpdGVtKQogICAgIH0KICAgICByZXR1cm4gdHM7CiB9
Ci0jZW5kaWYKIAogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udFRhZ2dlZFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250VGFnZ2VkU2V0dGluZ3MuaAppbmRleCBkNjllZGFjY2ZlMjQuLmI5MjAzNGVhMjE2OCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNl
dHRpbmdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dl
ZFNldHRpbmdzLmgKQEAgLTIxNiwxOSArMjE2LDkgQEAgdHlwZWRlZiBGb250VGFnZ2VkU2V0dGlu
Z3M8aW50PiBGb250RmVhdHVyZVNldHRpbmdzOwogCiB0ZW1wbGF0ZSA8PiB1bnNpZ25lZCBGb250
RmVhdHVyZVNldHRpbmdzOjpoYXNoKCkgY29uc3Q7CiAKLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZP
TlRTKQotCiB0eXBlZGVmIEZvbnRUYWdnZWRTZXR0aW5nczxmbG9hdD4gRm9udFZhcmlhdGlvblNl
dHRpbmdzOwogV1RGOjpUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFdURjo6VGV4dFN0cmVhbSYsIGNv
bnN0IEZvbnRWYXJpYXRpb25TZXR0aW5ncyYpOwogCiB0ZW1wbGF0ZSA8PiB1bnNpZ25lZCBGb250
VmFyaWF0aW9uU2V0dGluZ3M6Omhhc2goKSBjb25zdDsKIAotI2Vsc2UKLQotc3RydWN0IEZvbnRW
YXJpYXRpb25TZXR0aW5ncyB7Ci0gICAgYm9vbCBpc0VtcHR5KCkgY29uc3QgeyByZXR1cm4gdHJ1
ZTsgfQotfTsKLQotI2VuZGlmCi0KIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAppbmRleCA2ZGY3
NDRlMTE3ZjEuLjMxZDc3MmMyYWMzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcApAQCAtMTUy
LDkgKzE1Miw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRPcGVuVHlwZUZlYXR1cmUoQ0ZN
dXRhYmxlQXJyYXlSZWYgZmVhdHVyZXMsIGNvbnN0IEZvbnRGCiB9CiAKIHR5cGVkZWYgSGFzaE1h
cDxGb250VGFnLCBpbnQsIEZvdXJDaGFyYWN0ZXJUYWdIYXNoLCBGb3VyQ2hhcmFjdGVyVGFnSGFz
aFRyYWl0cz4gRmVhdHVyZXNNYXA7Ci0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKIHR5cGVk
ZWYgSGFzaE1hcDxGb250VGFnLCBmbG9hdCwgRm91ckNoYXJhY3RlclRhZ0hhc2gsIEZvdXJDaGFy
YWN0ZXJUYWdIYXNoVHJhaXRzPiBWYXJpYXRpb25zTWFwOwotI2VuZGlmCiAKIHN0YXRpYyBGZWF0
dXJlc01hcCBjb21wdXRlRmVhdHVyZVNldHRpbmdzRnJvbVZhcmlhbnRzKGNvbnN0IEZvbnRWYXJp
YW50U2V0dGluZ3MmIHZhcmlhbnRTZXR0aW5ncykKIHsKQEAgLTM3Nyw3ICszNzUsNiBAQCBzdGF0
aWMgaW5saW5lIGJvb2wgZm9udE5hbWVJc1N5c3RlbUZvbnQoQ0ZTdHJpbmdSZWYgZm9udE5hbWUp
CiAgICAgcmV0dXJuIENGU3RyaW5nR2V0TGVuZ3RoKGZvbnROYW1lKSA+IDAgJiYgQ0ZTdHJpbmdH
ZXRDaGFyYWN0ZXJBdEluZGV4KGZvbnROYW1lLCAwKSA9PSAnLic7CiB9CiAKLSNpZiBFTkFCTEUo
VkFSSUFUSU9OX0ZPTlRTKQogc3RydWN0IFZhcmlhdGlvbkRlZmF1bHRzIHsKICAgICBmbG9hdCBk
ZWZhdWx0VmFsdWU7CiAgICAgZmxvYXQgbWluaW11bVZhbHVlOwpAQCAtNDYyLDkgKzQ1OSw3IEBA
IHN0YXRpYyBpbmxpbmUgZmxvYXQgZGVub3JtYWxpemVWYXJpYXRpb25XaWR0aChmbG9hdCB2YWx1
ZSkKICAgICAgICAgcmV0dXJuICh2YWx1ZSArIDEyNSkgLyAyMDA7CiAgICAgcmV0dXJuICh2YWx1
ZSArIDQwMCkgLyA0MDA7CiB9Ci0jZW5kaWYKIAotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMp
IHx8ICFIQVNfQ09SRV9URVhUX1dJRFRIX0FUVFJJQlVURQogc3RhdGljIGlubGluZSBmbG9hdCBu
b3JtYWxpemVWYXJpYXRpb25XaWR0aChmbG9hdCB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUgPD0g
MS4yNSkKQEAgLTQ3Myw3ICs0NjgsNiBAQCBzdGF0aWMgaW5saW5lIGZsb2F0IG5vcm1hbGl6ZVZh
cmlhdGlvbldpZHRoKGZsb2F0IHZhbHVlKQogICAgICAgICByZXR1cm4gdmFsdWUgKiAyMDAgLSAx
MjU7CiAgICAgcmV0dXJuIHZhbHVlICogNDAwIC0gNDAwOwogfQotI2VuZGlmCiAKICNpZiAhSEFT
X0NPUkVfVEVYVF9XSURUSF9BVFRSSUJVVEUKIHN0YXRpYyBpbmxpbmUgZmxvYXQgbm9ybWFsaXpl
V2lkdGgoZmxvYXQgdmFsdWUpCkBAIC01NDIsNyArNTM2LDYgQEAgUmV0YWluUHRyPENURm9udFJl
Zj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250
RGVzY3IKIAogICAgIGF1dG8gZm9udE9wdGljYWxTaXppbmcgPSBmb250RGVzY3JpcHRpb24ub3B0
aWNhbFNpemluZygpOwogCi0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKICAgICBhdXRvIGRl
ZmF1bHRWYWx1ZXMgPSBkZWZhdWx0VmFyaWF0aW9uVmFsdWVzKG9yaWdpbmFsRm9udCk7CiAKICAg
ICBhdXRvIGZvbnRTZWxlY3Rpb25SZXF1ZXN0ID0gZm9udERlc2NyaXB0aW9uLmZvbnRTZWxlY3Rp
b25SZXF1ZXN0KCk7CkBAIC01NTEsMTEgKzU0NCw2IEBAIFJldGFpblB0cjxDVEZvbnRSZWY+IHBy
ZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9udCwgY29uc3QgRm9udERlc2Ny
CiAgICAgYm9vbCBmb3JjZU9wdGljYWxTaXppbmdPbiA9IGZvbnRPcHRpY2FsU2l6aW5nID09IEZv
bnRPcHRpY2FsU2l6aW5nOjpFbmFibGVkICYmIGZvbnRUeXBlLnZhcmlhdGlvblR5cGUgPT0gRm9u
dFR5cGU6OlZhcmlhdGlvblR5cGU6OlRydWVUeXBlR1ggJiYgZGVmYXVsdFZhbHVlcy5jb250YWlu
cyh7eydvJywgJ3AnLCAncycsICd6J319KTsKICAgICBib29sIGZvcmNlVmFyaWF0aW9ucyA9IGRl
ZmF1bHRWYWx1ZXMuY29udGFpbnMoe3sndycsICdnJywgJ2gnLCAndCd9fSkgfHwgZGVmYXVsdFZh
bHVlcy5jb250YWlucyh7eyd3JywgJ2QnLCAndCcsICdoJ319KSB8fCAoZm9udFN0eWxlQXhpcyA9
PSBGb250U3R5bGVBeGlzOjppdGFsICYmIGRlZmF1bHRWYWx1ZXMuY29udGFpbnMoe3snaScsICd0
JywgJ2EnLCAnbCd9fSkpIHx8IChmb250U3R5bGVBeGlzID09IEZvbnRTdHlsZUF4aXM6OnNsbnQg
JiYgZGVmYXVsdFZhbHVlcy5jb250YWlucyh7eydzJywgJ2wnLCAnbicsICd0J319KSk7CiAgICAg
Y29uc3QgYXV0byYgdmFyaWF0aW9ucyA9IGZvbnREZXNjcmlwdGlvbi52YXJpYXRpb25TZXR0aW5n
cygpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZm9udEZhY2VDYXBhYmlsaXRpZXMpOwotICAg
IFVOVVNFRF9QQVJBTShhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zKTsKLSAgICBib29s
IGZvcmNlT3B0aWNhbFNpemluZ09uID0gZmFsc2U7Ci0jZW5kaWYKIAogICAgIGNvbnN0IGF1dG8m
IGZlYXR1cmVzID0gZm9udERlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpOwogICAgIGNvbnN0
IGF1dG8mIHZhcmlhbnRTZXR0aW5ncyA9IGZvbnREZXNjcmlwdGlvbi52YXJpYW50U2V0dGluZ3Mo
KTsKQEAgLTU2NCwxMSArNTUyLDcgQEAgUmV0YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRm
b3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250RGVzY3IKIAogICAgIC8v
IFdlIG1pZ2h0IHdhbnQgdG8gY2hlY2sgZm9udFR5cGUudHJhY2tpbmdUeXBlID09IEZvbnRUeXBl
OjpUcmFja2luZ1R5cGU6Ok1hbnVhbCBoZXJlLCBidXQgaW4gb3JkZXIgdG8gbWFpbnRhaW4gY29t
cGF0aWJpbGl0eSB3aXRoIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0sIHdlIGRvbid0LgogICAgIGJv
b2wgbm9Gb250RmVhdHVyZVNldHRpbmdzID0gZmVhdHVyZXMuaXNFbXB0eSgpOwotI2lmIEVOQUJM
RShWQVJJQVRJT05fRk9OVFMpCiAgICAgYm9vbCBub0ZvbnRWYXJpYXRpb25TZXR0aW5ncyA9ICFm
b3JjZVZhcmlhdGlvbnMgJiYgdmFyaWF0aW9ucy5pc0VtcHR5KCk7Ci0jZWxzZQotICAgIGJvb2wg
bm9Gb250VmFyaWF0aW9uU2V0dGluZ3MgPSB0cnVlOwotI2VuZGlmCiAgICAgYm9vbCB0ZXh0UmVu
ZGVyaW5nTW9kZUlzQXV0byA9IHRleHRSZW5kZXJpbmdNb2RlID09IFRleHRSZW5kZXJpbmdNb2Rl
OjpBdXRvVGV4dFJlbmRlcmluZzsKICAgICBib29sIHZhcmlhbnRTZXR0aW5nc0lzTm9ybWFsID0g
dmFyaWFudFNldHRpbmdzLmlzQWxsTm9ybWFsKCk7CiAgICAgYm9vbCBkb250TmVlZFRvQXBwbHlP
cHRpY2FsU2l6aW5nID0gZm9udE9wdGljYWxTaXppbmcgPT0gRm9udE9wdGljYWxTaXppbmc6OkVu
YWJsZWQgJiYgIWZvcmNlT3B0aWNhbFNpemluZ09uOwpAQCAtNTgzLDYgKzU2NywxNyBAQCBSZXRh
aW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZv
bnQsIGNvbnN0IEZvbnREZXNjcgogCiAgICAgLy8gVGhpcyBhbGdvcml0aG0gaXMgZGVzY3JpYmVk
IGF0IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZm9udHMtNC8jZmVhdHVyZS12YXJpYXRp
b24tcHJlY2VkZW5jZQogICAgIEZlYXR1cmVzTWFwIGZlYXR1cmVzVG9CZUFwcGxpZWQ7CisgICAg
VmFyaWF0aW9uc01hcCB2YXJpYXRpb25zVG9CZUFwcGxpZWQ7CisKKyAgICBib29sIG5lZWRzQ29u
dmVyc2lvbiA9IGZvbnRUeXBlLnZhcmlhdGlvblR5cGUgPT0gRm9udFR5cGU6OlZhcmlhdGlvblR5
cGU6OlRydWVUeXBlR1g7CisKKyAgICBhdXRvIGFwcGx5VmFyaWF0aW9uID0gWyZdKGNvbnN0IEZv
bnRUYWcmIHRhZywgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgYXV0byBpdGVyYXRvciA9IGRlZmF1
bHRWYWx1ZXMuZmluZCh0YWcpOworICAgICAgICBpZiAoaXRlcmF0b3IgPT0gZGVmYXVsdFZhbHVl
cy5lbmQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZmxvYXQgdmFsdWVUb0FwcGx5
ID0gY2xhbXBUbyh2YWx1ZSwgaXRlcmF0b3ItPnZhbHVlLm1pbmltdW1WYWx1ZSwgaXRlcmF0b3It
PnZhbHVlLm1heGltdW1WYWx1ZSk7CisgICAgICAgIHZhcmlhdGlvbnNUb0JlQXBwbGllZC5zZXQo
dGFnLCB2YWx1ZVRvQXBwbHkpOworICAgIH07CiAKICAgICBhdXRvIGFwcGx5RmVhdHVyZSA9IFsm
XShjb25zdCBGb250VGFnJiB0YWcsIGludCB2YWx1ZSkgewogICAgICAgICAvLyBBQVQgZG9lc24n
dCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gbGlnYSBhbmQgY2xpZy4gV2UgbmVlZCB0byBtYWtlIHN1
cmUgdGhleSBhbHdheXMgYWdyZWUuCkBAIC01OTcsNTAgKzU5Miw2IEBAIFJldGFpblB0cjxDVEZv
bnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9udCwgY29uc3Qg
Rm9udERlc2NyCiAKICAgICAvLyBTdGVwIDE6IENvcmVUZXh0IGhhbmRsZXMgZGVmYXVsdCBmZWF0
dXJlcyAoc3VjaCBhcyByZXF1aXJlZCBsaWdhdHVyZXMpLgogCi0gICAgLy8gU3RlcCA2OiBDb25z
dWx0IHdpdGggZm9udC1mZWF0dXJlLXNldHRpbmdzIGluc2lkZSBAZm9udC1mYWNlCi0gICAgaWYg
KGZvbnRGYWNlRmVhdHVyZXMpIHsKLSAgICAgICAgZm9yIChhdXRvJiBmb250RmFjZUZlYXR1cmUg
OiAqZm9udEZhY2VGZWF0dXJlcykKLSAgICAgICAgICAgIGFwcGx5RmVhdHVyZShmb250RmFjZUZl
YXR1cmUudGFnKCksIGZvbnRGYWNlRmVhdHVyZS52YWx1ZSgpKTsKLSAgICB9Ci0KLSAgICAvLyBT
dGVwIDEwOiBGb250LXZhcmlhbnQKLSAgICBmb3IgKGF1dG8mIG5ld0ZlYXR1cmUgOiBjb21wdXRl
RmVhdHVyZVNldHRpbmdzRnJvbVZhcmlhbnRzKHZhcmlhbnRTZXR0aW5ncykpCi0gICAgICAgIGFw
cGx5RmVhdHVyZShuZXdGZWF0dXJlLmtleSwgbmV3RmVhdHVyZS52YWx1ZSk7Ci0KLSAgICAvLyBT
dGVwIDExOiBPdGhlciBwcm9wZXJ0aWVzCi0gICAgaWYgKHRleHRSZW5kZXJpbmdNb2RlID09IFRl
eHRSZW5kZXJpbmdNb2RlOjpPcHRpbWl6ZVNwZWVkKSB7Ci0gICAgICAgIGFwcGx5RmVhdHVyZShm
b250RmVhdHVyZVRhZygibGlnYSIpLCAwKTsKLSAgICAgICAgYXBwbHlGZWF0dXJlKGZvbnRGZWF0
dXJlVGFnKCJjbGlnIiksIDApOwotICAgICAgICBhcHBseUZlYXR1cmUoZm9udEZlYXR1cmVUYWco
ImRsaWciKSwgMCk7Ci0gICAgICAgIGFwcGx5RmVhdHVyZShmb250RmVhdHVyZVRhZygiaGxpZyIp
LCAwKTsKLSAgICAgICAgYXBwbHlGZWF0dXJlKGZvbnRGZWF0dXJlVGFnKCJjYWx0IiksIDApOwot
ICAgIH0KLSAgICBpZiAoc2hvdWxkRGlzYWJsZUxpZ2F0dXJlc0ZvclNwYWNpbmcpIHsKLSAgICAg
ICAgYXBwbHlGZWF0dXJlKGZvbnRGZWF0dXJlVGFnKCJsaWdhIiksIDApOwotICAgICAgICBhcHBs
eUZlYXR1cmUoZm9udEZlYXR1cmVUYWcoImNsaWciKSwgMCk7Ci0gICAgICAgIGFwcGx5RmVhdHVy
ZShmb250RmVhdHVyZVRhZygiZGxpZyIpLCAwKTsKLSAgICAgICAgYXBwbHlGZWF0dXJlKGZvbnRG
ZWF0dXJlVGFnKCJobGlnIiksIDApOwotICAgICAgICAvLyBDb3JlIFRleHQgZG9lc24ndCBkaXNh
YmxlIGNhbHQgd2hlbiBsZXR0ZXItc3BhY2luZyBpcyBhcHBsaWVkLCBzbyB3ZSB3b24ndCBlaXRo
ZXIuCi0gICAgfQotCi0gICAgLy8gU3RlcCAxMzogRm9udC1mZWF0dXJlLXNldHRpbmdzCi0gICAg
Zm9yIChhdXRvJiBuZXdGZWF0dXJlIDogZmVhdHVyZXMpCi0gICAgICAgIGFwcGx5RmVhdHVyZShu
ZXdGZWF0dXJlLnRhZygpLCBuZXdGZWF0dXJlLnZhbHVlKCkpOwotCi0gICAgLy8gVGhlIHZhcmlh
dGlvbiBmb250cyBhcmUgc2VwYXJhdGVkIGZyb20gdGhlIGZvbnQgZmVhdHVyZXMgYmVjYXVzZSB0
aGV5IGRvbid0IGNvbmZsaWN0LCBhbmQgYWxsb3cgdXMgdG8gb25seSBoYXZlIGEgc2luZ2xlIEVO
QUJMRSgpLgotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCi0gICAgVmFyaWF0aW9uc01hcCB2
YXJpYXRpb25zVG9CZUFwcGxpZWQ7Ci0KLSAgICBib29sIG5lZWRzQ29udmVyc2lvbiA9IGZvbnRU
eXBlLnZhcmlhdGlvblR5cGUgPT0gRm9udFR5cGU6OlZhcmlhdGlvblR5cGU6OlRydWVUeXBlR1g7
Ci0KLSAgICBhdXRvIGFwcGx5VmFyaWF0aW9uID0gWyZdKGNvbnN0IEZvbnRUYWcmIHRhZywgZmxv
YXQgdmFsdWUpIHsKLSAgICAgICAgYXV0byBpdGVyYXRvciA9IGRlZmF1bHRWYWx1ZXMuZmluZCh0
YWcpOwotICAgICAgICBpZiAoaXRlcmF0b3IgPT0gZGVmYXVsdFZhbHVlcy5lbmQoKSkKLSAgICAg
ICAgICAgIHJldHVybjsKLSAgICAgICAgZmxvYXQgdmFsdWVUb0FwcGx5ID0gY2xhbXBUbyh2YWx1
ZSwgaXRlcmF0b3ItPnZhbHVlLm1pbmltdW1WYWx1ZSwgaXRlcmF0b3ItPnZhbHVlLm1heGltdW1W
YWx1ZSk7Ci0gICAgICAgIHZhcmlhdGlvbnNUb0JlQXBwbGllZC5zZXQodGFnLCB2YWx1ZVRvQXBw
bHkpOwotICAgIH07Ci0KICAgICAvLyBTdGVwIDI6IGZvbnQtd2VpZ2h0LCBmb250LXN0cmV0Y2gs
IGFuZCBmb250LXN0eWxlCiAgICAgLy8gVGhlIHN5c3RlbSBmb250IGlzIHNvbWV3aGF0IG1hZ2lj
YWwuIERvbid0IG1lc3Mgd2l0aCBpdHMgdmFyaWF0aW9ucy4KICAgICBpZiAoYXBwbHlXZWlnaHRX
aWR0aFNsb3BlVmFyaWF0aW9ucyAmJiAhZm9udElzU3lzdGVtRm9udChvcmlnaW5hbEZvbnQpKSB7
CkBAIC02NzAsMTIgKzYyMSw0MSBAQCBSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZv
cm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQsIGNvbnN0IEZvbnREZXNjcgogCiAgICAgLy8g
RklYTUU6IEltcGxlbWVudCBTdGVwIDY6IHRoZSBmb250LXZhcmlhdGlvbi1zZXR0aW5ncyBkZXNj
cmlwdG9yIGluc2lkZSBAZm9udC1mYWNlCiAKKyAgICAvLyBTdGVwIDc6IENvbnN1bHQgd2l0aCBm
b250LWZlYXR1cmUtc2V0dGluZ3MgaW5zaWRlIEBmb250LWZhY2UKKyAgICBpZiAoZm9udEZhY2VG
ZWF0dXJlcykgeworICAgICAgICBmb3IgKGF1dG8mIGZvbnRGYWNlRmVhdHVyZSA6ICpmb250RmFj
ZUZlYXR1cmVzKQorICAgICAgICAgICAgYXBwbHlGZWF0dXJlKGZvbnRGYWNlRmVhdHVyZS50YWco
KSwgZm9udEZhY2VGZWF0dXJlLnZhbHVlKCkpOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBNb3Zl
IGZvbnQtb3B0aWNhbC1zaXppbmcgaGFuZGxpbmcgaGVyZS4gSXQgc2hvdWxkIGJlIHN0ZXAgOS4K
IAorICAgIC8vIFN0ZXAgMTA6IEZvbnQtdmFyaWFudAorICAgIGZvciAoYXV0byYgbmV3RmVhdHVy
ZSA6IGNvbXB1dGVGZWF0dXJlU2V0dGluZ3NGcm9tVmFyaWFudHModmFyaWFudFNldHRpbmdzKSkK
KyAgICAgICAgYXBwbHlGZWF0dXJlKG5ld0ZlYXR1cmUua2V5LCBuZXdGZWF0dXJlLnZhbHVlKTsK
KworICAgIC8vIFN0ZXAgMTE6IE90aGVyIHByb3BlcnRpZXMKKyAgICBpZiAodGV4dFJlbmRlcmlu
Z01vZGUgPT0gVGV4dFJlbmRlcmluZ01vZGU6Ok9wdGltaXplU3BlZWQpIHsKKyAgICAgICAgYXBw
bHlGZWF0dXJlKGZvbnRGZWF0dXJlVGFnKCJsaWdhIiksIDApOworICAgICAgICBhcHBseUZlYXR1
cmUoZm9udEZlYXR1cmVUYWcoImNsaWciKSwgMCk7CisgICAgICAgIGFwcGx5RmVhdHVyZShmb250
RmVhdHVyZVRhZygiZGxpZyIpLCAwKTsKKyAgICAgICAgYXBwbHlGZWF0dXJlKGZvbnRGZWF0dXJl
VGFnKCJobGlnIiksIDApOworICAgICAgICBhcHBseUZlYXR1cmUoZm9udEZlYXR1cmVUYWcoImNh
bHQiKSwgMCk7CisgICAgfQorICAgIGlmIChzaG91bGREaXNhYmxlTGlnYXR1cmVzRm9yU3BhY2lu
ZykgeworICAgICAgICBhcHBseUZlYXR1cmUoZm9udEZlYXR1cmVUYWcoImxpZ2EiKSwgMCk7Cisg
ICAgICAgIGFwcGx5RmVhdHVyZShmb250RmVhdHVyZVRhZygiY2xpZyIpLCAwKTsKKyAgICAgICAg
YXBwbHlGZWF0dXJlKGZvbnRGZWF0dXJlVGFnKCJkbGlnIiksIDApOworICAgICAgICBhcHBseUZl
YXR1cmUoZm9udEZlYXR1cmVUYWcoImhsaWciKSwgMCk7CisgICAgICAgIC8vIENvcmUgVGV4dCBk
b2Vzbid0IGRpc2FibGUgY2FsdCB3aGVuIGxldHRlci1zcGFjaW5nIGlzIGFwcGxpZWQsIHNvIHdl
IHdvbid0IGVpdGhlci4KKyAgICB9CisKKyAgICAvLyBTdGVwIDEzOiBGb250LWZlYXR1cmUtc2V0
dGluZ3MKKyAgICBmb3IgKGF1dG8mIG5ld0ZlYXR1cmUgOiBmZWF0dXJlcykKKyAgICAgICAgYXBw
bHlGZWF0dXJlKG5ld0ZlYXR1cmUudGFnKCksIG5ld0ZlYXR1cmUudmFsdWUoKSk7CisKICAgICAv
LyBTdGVwIDEyOiBmb250LXZhcmlhdGlvbi1zZXR0aW5ncwogICAgIGZvciAoYXV0byYgbmV3VmFy
aWF0aW9uIDogdmFyaWF0aW9ucykKICAgICAgICAgYXBwbHlWYXJpYXRpb24obmV3VmFyaWF0aW9u
LnRhZygpLCBuZXdWYXJpYXRpb24udmFsdWUoKSk7Ci0jZW5kaWYgLy8gRU5BQkxFKFZBUklBVElP
Tl9GT05UUykKIAogICAgIGF1dG8gYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3Jl
YXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAyLCAma0NGVHlwZURpY3Rpb25hcnlLZXlD
YWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAgaWYgKCFm
ZWF0dXJlc1RvQmVBcHBsaWVkLmlzRW1wdHkoKSkgewpAQCAtNjg5LDggKzY2OSw2IEBAIFJldGFp
blB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9u
dCwgY29uc3QgRm9udERlc2NyCiAgICAgICAgIH0KICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFs
dWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEZlYXR1cmVTZXR0aW5nc0F0dHJpYnV0ZSwgZmVh
dHVyZUFycmF5LmdldCgpKTsKICAgICB9Ci0KLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQog
ICAgIGlmICghdmFyaWF0aW9uc1RvQmVBcHBsaWVkLmlzRW1wdHkoKSkgewogICAgICAgICBhdXRv
IHZhcmlhdGlvbkRpY3Rpb25hcnkgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAm
a0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogICAgICAgICBmb3IgKGF1dG8mIHAg
OiB2YXJpYXRpb25zVG9CZUFwcGxpZWQpIHsKQEAgLTcwMSw3ICs2NzksNiBAQCBSZXRhaW5QdHI8
Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQsIGNv
bnN0IEZvbnREZXNjcgogICAgICAgICB9CiAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0
dHJpYnV0ZXMuZ2V0KCksIGtDVEZvbnRWYXJpYXRpb25BdHRyaWJ1dGUsIHZhcmlhdGlvbkRpY3Rp
b25hcnkuZ2V0KCkpOwogICAgIH0KLSNlbmRpZgogCiAgICAgLy8gU3RlcCA5OiBmb250LW9wdGlj
YWwtc2l6aW5nCiAgICAgLy8gRklYTUU6IEFwcGx5IHRoaXMgYmVmb3JlIGZvbnQtdmFyaWF0aW9u
LXNldHRpbmdzCkBAIC0xMDMzLDcgKzEwMTAsNiBAQCBzdHJ1Y3QgVmFyaWF0aW9uQ2FwYWJpbGl0
aWVzIHsKICAgICBPcHRpb25hbDxNaW5NYXg+IHNsb3BlOwogfTsKIAotI2lmIEVOQUJMRShWQVJJ
QVRJT05fRk9OVFMpCiBzdGF0aWMgT3B0aW9uYWw8TWluTWF4PiBleHRyYWN0VmFyaWF0aW9uQm91
bmRzKENGRGljdGlvbmFyeVJlZiBheGlzKQogewogICAgIENGTnVtYmVyUmVmIG1pbmltdW1WYWx1
ZSA9IHN0YXRpY19jYXN0PENGTnVtYmVyUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShheGlzLCBr
Q1RGb250VmFyaWF0aW9uQXhpc01pbmltdW1WYWx1ZUtleSkpOwpAQCAtMTA0NiwxMyArMTAyMiwx
MSBAQCBzdGF0aWMgT3B0aW9uYWw8TWluTWF4PiBleHRyYWN0VmFyaWF0aW9uQm91bmRzKENGRGlj
dGlvbmFyeVJlZiBheGlzKQogICAgICAgICByZXR1cm4ge3sgcmF3TWluaW11bVZhbHVlLCByYXdN
YXhpbXVtVmFsdWUgfX07CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KLSNlbmRpZgogCiBz
dGF0aWMgVmFyaWF0aW9uQ2FwYWJpbGl0aWVzIHZhcmlhdGlvbkNhcGFiaWxpdGllc0ZvckZvbnRE
ZXNjcmlwdG9yKENURm9udERlc2NyaXB0b3JSZWYgZm9udERlc2NyaXB0b3IpCiB7CiAgICAgVmFy
aWF0aW9uQ2FwYWJpbGl0aWVzIHJlc3VsdDsKIAotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMp
CiAgICAgaWYgKCFhZG9wdENGKENURm9udERlc2NyaXB0b3JDb3B5QXR0cmlidXRlKGZvbnREZXNj
cmlwdG9yLCBrQ1RGb250VmFyaWF0aW9uQXR0cmlidXRlKSkpCiAgICAgICAgIHJldHVybiByZXN1
bHQ7CiAKQEAgLTExMDIsOSArMTA3Niw2IEBAIHN0YXRpYyBWYXJpYXRpb25DYXBhYmlsaXRpZXMg
dmFyaWF0aW9uQ2FwYWJpbGl0aWVzRm9yRm9udERlc2NyaXB0b3IoQ1RGb250RGVzY3JpCiAgICAg
ICAgIHJlc3VsdC53aWR0aCA9IHsgfTsKICAgICBpZiAocmVzdWx0LnNsb3BlICYmIChyZXN1bHQu
c2xvcGUudmFsdWUoKS5taW5pbXVtIDwgbWluaW11bSB8fCByZXN1bHQuc2xvcGUudmFsdWUoKS5t
YXhpbXVtID4gbWF4aW11bSkpCiAgICAgICAgIHJlc3VsdC5zbG9wZSA9IHsgfTsKLSNlbHNlCi0g
ICAgVU5VU0VEX1BBUkFNKGZvbnREZXNjcmlwdG9yKTsKLSNlbmRpZgogCiAgICAgcmV0dXJuIHJl
c3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRleCA4YzQ2MTUzMTBkMGUu
LmI5MGQ5YzM0MzdjMyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcApAQCAtOTMsMTQg
KzkzLDEwIEBAIGJvb2wgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6c3VwcG9ydHNGb3JtYXQoY29u
c3QgU3RyaW5nJiBmb3JtYXQpCiAgICAgcmV0dXJuIGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlD
YXNlKGZvcm1hdCwgInRydWV0eXBlIikKICAgICAgICAgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoZm9ybWF0LCAib3BlbnR5cGUiKQogICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25v
cmluZ0FTQ0lJQ2FzZShmb3JtYXQsICJ3b2ZmMiIpCi0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05U
UykKICAgICAgICAgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZm9ybWF0LCAid29m
ZjItdmFyaWF0aW9ucyIpCi0jZW5kaWYKLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQogICAg
ICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmb3JtYXQsICJ3b2ZmLXZhcmlh
dGlvbnMiKQogICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmb3JtYXQs
ICJ0cnVldHlwZS12YXJpYXRpb25zIikKICAgICAgICAgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoZm9ybWF0LCAib3BlbnR5cGUtdmFyaWF0aW9ucyIpCi0jZW5kaWYKICAgICAgICAg
fHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZm9ybWF0LCAid29mZiIpOwogfQogCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAppbmRleCA0
MDk4MmVhMjU3MjkuLjRhMDBiOGNlYzcyNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCkBAIC0xODUyLDcgKzE4NTIsNiBAQCB2b2lkIFJlbmRl
clN0eWxlOjpzZXRGb250U2l6ZShmbG9hdCBzaXplKQogICAgIGZvbnRDYXNjYWRlKCkudXBkYXRl
KGN1cnJlbnRGb250U2VsZWN0b3IpOwogfQogCi0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykK
IHZvaWQgUmVuZGVyU3R5bGU6OnNldEZvbnRWYXJpYXRpb25TZXR0aW5ncyhGb250VmFyaWF0aW9u
U2V0dGluZ3Mgc2V0dGluZ3MpCiB7CiAgICAgRm9udFNlbGVjdG9yKiBjdXJyZW50Rm9udFNlbGVj
dG9yID0gZm9udENhc2NhZGUoKS5mb250U2VsZWN0b3IoKTsKQEAgLTE4NjIsNyArMTg2MSw2IEBA
IHZvaWQgUmVuZGVyU3R5bGU6OnNldEZvbnRWYXJpYXRpb25TZXR0aW5ncyhGb250VmFyaWF0aW9u
U2V0dGluZ3Mgc2V0dGluZ3MpCiAgICAgc2V0Rm9udERlc2NyaXB0aW9uKFdURk1vdmUoZGVzY3Jp
cHRpb24pKTsKICAgICBmb250Q2FzY2FkZSgpLnVwZGF0ZShjdXJyZW50Rm9udFNlbGVjdG9yKTsK
IH0KLSNlbmRpZgogCiB2b2lkIFJlbmRlclN0eWxlOjpzZXRGb250V2VpZ2h0KEZvbnRTZWxlY3Rp
b25WYWx1ZSB2YWx1ZSkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9z
dHlsZS9SZW5kZXJTdHlsZS5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N0eWxlL1JlbmRl
clN0eWxlLmgKaW5kZXggOTE0ZWU1NWUzY2Y2Li5jOGMxNjQ4NmEzZDcgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0zNTIsOSArMzUyLDcgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIGNvbXB1dGVkRm9udFBpeGVsU2l6ZSgpIGNvbnN0OwogICAg
IHN0ZDo6cGFpcjxGb250T3JpZW50YXRpb24sIE5vbkNKS0dseXBoT3JpZW50YXRpb24+IGZvbnRB
bmRHbHlwaE9yaWVudGF0aW9uKCk7CiAKLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQogICAg
IEZvbnRWYXJpYXRpb25TZXR0aW5ncyBmb250VmFyaWF0aW9uU2V0dGluZ3MoKSBjb25zdCB7IHJl
dHVybiBmb250RGVzY3JpcHRpb24oKS52YXJpYXRpb25TZXR0aW5ncygpOyB9Ci0jZW5kaWYKICAg
ICBGb250U2VsZWN0aW9uVmFsdWUgZm9udFdlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGZvbnREZXNj
cmlwdGlvbigpLndlaWdodCgpOyB9CiAgICAgRm9udFNlbGVjdGlvblZhbHVlIGZvbnRTdHJldGNo
KCkgY29uc3QgeyByZXR1cm4gZm9udERlc2NyaXB0aW9uKCkuc3RyZXRjaCgpOyB9CiAgICAgT3B0
aW9uYWw8Rm9udFNlbGVjdGlvblZhbHVlPiBmb250SXRhbGljKCkgY29uc3QgeyByZXR1cm4gZm9u
dERlc2NyaXB0aW9uKCkuaXRhbGljKCk7IH0KQEAgLTkxMyw5ICs5MTEsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gT25seSB1c2VkIGZvciBibGVuZGluZyBmb250IHNpemVzIHdoZW4gYW5pbWF0aW5nLCBm
b3IgTWF0aE1MIGFub255bW91cyBibG9ja3MsIGFuZCBmb3IgdGV4dCBhdXRvc2l6aW5nLgogICAg
IHZvaWQgc2V0Rm9udFNpemUoZmxvYXQpOwogCi0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykK
ICAgICB2b2lkIHNldEZvbnRWYXJpYXRpb25TZXR0aW5ncyhGb250VmFyaWF0aW9uU2V0dGluZ3Mp
OwotI2VuZGlmCiAgICAgdm9pZCBzZXRGb250V2VpZ2h0KEZvbnRTZWxlY3Rpb25WYWx1ZSk7CiAg
ICAgdm9pZCBzZXRGb250U3RyZXRjaChGb250U2VsZWN0aW9uVmFsdWUpOwogICAgIHZvaWQgc2V0
Rm9udEl0YWxpYyhPcHRpb25hbDxGb250U2VsZWN0aW9uVmFsdWU+KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKaW5kZXggMzY1YjE4MjdiN2FhLi41OGQx
YTFjMDUxZWQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNv
bnZlcnRlci5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRl
ci5oCkBAIC0xMzUsOSArMTM1LDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBGb250U2VsZWN0aW9u
VmFsdWUgY29udmVydEZvbnRXZWlnaHQoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsK
ICAgICBzdGF0aWMgRm9udFNlbGVjdGlvblZhbHVlIGNvbnZlcnRGb250U3RyZXRjaChCdWlsZGVy
U3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBGb250U2VsZWN0aW9uVmFsdWUg
Y29udmVydEZvbnRTdHlsZShCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOwotI2lmIEVO
QUJMRShWQVJJQVRJT05fRk9OVFMpCiAgICAgc3RhdGljIEZvbnRWYXJpYXRpb25TZXR0aW5ncyBj
b252ZXJ0Rm9udFZhcmlhdGlvblNldHRpbmdzKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVl
Jik7Ci0jZW5kaWYKICAgICBzdGF0aWMgU1ZHTGVuZ3RoVmFsdWUgY29udmVydFNWR0xlbmd0aFZh
bHVlKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIFZlY3RvcjxT
VkdMZW5ndGhWYWx1ZT4gY29udmVydFNWR0xlbmd0aFZlY3RvcihCdWlsZGVyU3RhdGUmLCBjb25z
dCBDU1NWYWx1ZSYpOwogICAgIHN0YXRpYyBWZWN0b3I8U1ZHTGVuZ3RoVmFsdWU+IGNvbnZlcnRT
dHJva2VEYXNoQXJyYXkoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKQEAgLTEzMjYs
NyArMTMyNCw2IEBAIGlubGluZSBGb250U2VsZWN0aW9uVmFsdWUgQnVpbGRlckNvbnZlcnRlcjo6
Y29udmVydEZvbnRTdHJldGNoKEJ1aWxkZXJTdGF0ZSYsIGNvCiAgICAgcmV0dXJuIGNvbnZlcnRG
b250U3RyZXRjaEZyb21WYWx1ZSh2YWx1ZSk7CiB9CiAKLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZP
TlRTKQogaW5saW5lIEZvbnRWYXJpYXRpb25TZXR0aW5ncyBCdWlsZGVyQ29udmVydGVyOjpjb252
ZXJ0Rm9udFZhcmlhdGlvblNldHRpbmdzKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJiB2
YWx1ZSkKIHsKICAgICBpZiAoaXM8Q1NTUHJpbWl0aXZlVmFsdWU+KHZhbHVlKSkgewpAQCAtMTM0
MSw3ICsxMzM4LDYgQEAgaW5saW5lIEZvbnRWYXJpYXRpb25TZXR0aW5ncyBCdWlsZGVyQ29udmVy
dGVyOjpjb252ZXJ0Rm9udFZhcmlhdGlvblNldHRpbmdzKEJ1aWwKICAgICB9CiAgICAgcmV0dXJu
IHNldHRpbmdzOwogfQotI2VuZGlmCiAKICNpZiBQTEFURk9STShJT1NfRkFNSUxZKQogaW5saW5l
IGJvb2wgQnVpbGRlckNvbnZlcnRlcjo6Y29udmVydFRvdWNoQ2FsbG91dChCdWlsZGVyU3RhdGUm
LCBjb25zdCBDU1NWYWx1ZSYgdmFsdWUpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZUJ1aWxkZXJDdXN0b20uaCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRl
ckN1c3RvbS5oCmluZGV4IDdiODk2MWIzMWQxNC4uYjYzZDVmZGY5YzE1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9zdHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaApAQCAtMTE3LDEwICsxMTcsOCBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIHZvaWQgYXBwbHlJbmhlcml0V2Via2l0TWFza0ltYWdlKEJ1aWxkZXJT
dGF0ZSYpIHsgfQogICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5pdGlhbEZvbnRGZWF0dXJlU2V0dGlu
Z3MoQnVpbGRlclN0YXRlJikgeyB9CiAgICAgc3RhdGljIHZvaWQgYXBwbHlJbmhlcml0Rm9udEZl
YXR1cmVTZXR0aW5ncyhCdWlsZGVyU3RhdGUmKSB7IH0KLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZP
TlRTKQogICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5pdGlhbEZvbnRWYXJpYXRpb25TZXR0aW5ncyhC
dWlsZGVyU3RhdGUmKSB7IH0KICAgICBzdGF0aWMgdm9pZCBhcHBseUluaGVyaXRGb250VmFyaWF0
aW9uU2V0dGluZ3MoQnVpbGRlclN0YXRlJikgeyB9Ci0jZW5kaWYKIAogICAgIC8vIEN1c3RvbSBo
YW5kbGluZyBvZiBpbmhlcml0ICsgdmFsdWUgc2V0dGluZyBvbmx5LgogICAgIHN0YXRpYyB2b2lk
IGFwcGx5SW5oZXJpdERpc3BsYXkoQnVpbGRlclN0YXRlJik7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>408140</attachid>
            <date>2020-09-06 15:24:10 -0700</date>
            <delta_ts>2020-09-06 17:00:58 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-216211-20200906152410.patch</filename>
            <type>text/plain</type>
            <size>30188</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjY2NjgzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2YxNGU0YWYyYjI3OTJk
OTQ0M2M3NmM2MGFhMzg0ZTM1MDkyZjg2NC4uY2ExNWQyYWQyOTQ5ZmU3N2Q3NWExMzdhMGViYTdh
Y2Y1OTZkMTY0OSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDYwIEBACisyMDIwLTA5LTA2ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgUmVtb3ZlIGFs
bCBub24td2ViLWV4cG9zZWQgdXNlcyBvZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQorICAgICAg
ICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MjE2MjExCisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBpcyB0aGUgZmly
c3Qgc3RlcCB0b3dhcmQgZW5hYmxpbmcgdmFyaWF0aW9uIGZvbnRzIG9uIGFsbCBwb3J0cy4KKyAg
ICAgICAgVGhpcyBwYXRjaCBjb21waWxlcyBpbnRlcm5hbCBkYXRhIHN0cnVjdHVyZXMgb24gYWxs
IHBvcnRzLCBrZWVwaW5nIGNhcmUgdG8gbm90IG1ha2UKKyAgICAgICAgYW55IHdlYi1leHBvc2Vk
IGNoYW5nZXMuIEl0IGFsc28gc3RvcHMgY29uc3VsdGluZyB3aXRoIEVOQUJMRShWQVJJQVRJT05f
Rk9OVFMpIG9uCisgICAgICAgIENvY29hIHBsYXRmb3Jtcywgc2luY2UgdGhlIGZsYWcgaXMgZW5h
YmxlZCBvbiBhbGwgQ29jb2EgcGxhdGZvcm1zIGFuZCB3ZSd2ZSBiZWVuCisgICAgICAgIHNoaXBw
aW5nIGl0IGZvciB5ZWFycy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0aGVyZSBp
cyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBjc3MvQ1NTRm9udFZhcmlhdGlvblZh
bHVlLmNwcDoKKyAgICAgICAgKiBjc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmg6CisgICAgICAg
ICogY3NzL0NTU1ZhbHVlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU1ZhbHVlOjplcXVhbHMg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmNzc1RleHQgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmRlc3Ryb3kpOgorICAgICAgICAqIGNzcy9DU1NWYWx1
ZS5oOgorICAgICAgICAoV2ViQ29yZTo6Q1NTVmFsdWU6OmlzRm9udEZlYXR1cmVWYWx1ZSBjb25z
dCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NWYWx1ZTo6aXNGb250VmFyaWF0aW9uVmFsdWUgY29u
c3QpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uS2V5OjpGb250RGVzY3JpcHRpb25LZXkpOgorICAgICAg
ICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uS2V5OjpvcGVyYXRvcj09IGNvbnN0KToKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbktleTo6Y29tcHV0ZUhhc2ggY29uc3QpOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRlRGVzY3JpcHRpb24uY3BwOgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRGZWF0dXJlU2V0dGluZ3MpOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRWYXJpYXRpb25TZXR0aW5ncyk6CisgICAgICAgIChX
ZWJDb3JlOjpGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0gY29uc3QpOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udERlc2NyaXB0aW9uOjplbmNvZGUgY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udERlc2NyaXB0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRUYWdnZWRTZXR0aW5ncy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpvcGVyYXRvcjw8KToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuaDoKKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRWYXJpYXRpb25TZXR0aW5nczo6aXNFbXB0eSBjb25zdCk6IERlbGV0ZWQu
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3Bw
OgorICAgICAgICAoV2ViQ29yZTo6ZGVub3JtYWxpemVWYXJpYXRpb25XaWR0aCk6CisgICAgICAg
IChXZWJDb3JlOjpub3JtYWxpemVWYXJpYXRpb25XaWR0aCk6CisgICAgICAgIChXZWJDb3JlOjpw
cmVwYXJlUGxhdGZvcm1Gb250KToKKyAgICAgICAgKFdlYkNvcmU6OmV4dHJhY3RWYXJpYXRpb25C
b3VuZHMpOgorICAgICAgICAoV2ViQ29yZTo6dmFyaWF0aW9uQ2FwYWJpbGl0aWVzRm9yRm9udERl
c2NyaXB0b3IpOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OnN1cHBvcnRzRm9ybWF0KToKKyAgICAgICAgKiByZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUu
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyU3R5bGU6OnNldEZvbnRWYXJpYXRpb25TZXR0
aW5ncyk6CisgICAgICAgICogcmVuZGVyaW5nL3N0eWxlL1JlbmRlclN0eWxlLmg6CisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJTdHlsZTo6Zm9udFZhcmlhdGlvblNldHRpbmdzIGNvbnN0KToKKyAg
ICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDb252ZXJ0ZXIuaDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0Rm9udFZhcmlhdGlvblNldHRpbmdzKToK
KyAgICAgICAgKiBzdHlsZS9TdHlsZUJ1aWxkZXJDdXN0b20uaDoKKyAgICAgICAgKFdlYkNvcmU6
OlN0eWxlOjpCdWlsZGVyQ3VzdG9tOjphcHBseUluaGVyaXRGb250RmVhdHVyZVNldHRpbmdzKToK
KyAgICAgICAgKFdlYkNvcmU6OlN0eWxlOjpCdWlsZGVyQ3VzdG9tOjphcHBseUluaGVyaXRGb250
VmFyaWF0aW9uU2V0dGluZ3MpOgorCiAyMDIwLTA5LTA2ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1t
YXhmaWVsZEBhcHBsZS5jb20+CiAKICAgICAgICAgTGV0dGVyLXNwYWNpbmcgc2hvdWxkIGRpc2Fi
bGUgbGlnYXR1cmVzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlh
dGlvblZhbHVlLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUu
Y3BwCmluZGV4IDc4OTA3OGY0ZTU2ZDFlNGM5NTU4OTdiYjBjNmUzODE3N2ZkMDg0ZmUuLjYwMDg1
OTZhNmYwMjg0ZDRmMThlNjBjMjlkODkwNDEyNjY2MjdiOTMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwCkBAIC0yNSw4ICsyNSw2IEBACiAKICNpbmNs
dWRlICJjb25maWcuaCIKIAotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCi0KICNpbmNsdWRl
ICJDU1NGb250VmFyaWF0aW9uVmFsdWUuaCIKICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdDb25j
YXRlbmF0ZU51bWJlcnMuaD4KIApAQCAtNTAsNSArNDgsMyBAQCBib29sIENTU0ZvbnRWYXJpYXRp
b25WYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU0ZvbnRWYXJpYXRpb25WYWx1ZSYgb3RoZXIpIGNvbnN0
CiB9CiAKIH0KLQotI2VuZGlmIC8vIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmggYi9Tb3VyY2UvV2Vi
Q29yZS9jc3MvQ1NTRm9udFZhcmlhdGlvblZhbHVlLmgKaW5kZXggZmFmMzRiNTdiMDFmYmMzNmI2
YjcwM2RlNzVlZmUyNmRiZTA3ZGM3ZS4uYzg4Y2NkYTkxMzljNzRlYWE4ODJjOWFmNTE4MGNmYjFk
YzZiNmI0YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRWYXJpYXRpb25W
YWx1ZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250VmFyaWF0aW9uVmFsdWUuaApA
QCAtMjUsOCArMjUsNiBAQAogCiAjcHJhZ21hIG9uY2UKIAotI2lmIEVOQUJMRShWQVJJQVRJT05f
Rk9OVFMpCi0KICNpbmNsdWRlICJDU1NWYWx1ZS5oIgogI2luY2x1ZGUgIkZvbnRUYWdnZWRTZXR0
aW5ncy5oIgogCkBAIC01NSw1ICs1MywzIEBAIHByaXZhdGU6CiB9IC8vIG5hbWVzcGFjZSBXZWJD
b3JlCiAKIFNQRUNJQUxJWkVfVFlQRV9UUkFJVFNfQ1NTX1ZBTFVFKENTU0ZvbnRWYXJpYXRpb25W
YWx1ZSwgaXNGb250VmFyaWF0aW9uVmFsdWUoKSkKLQotI2VuZGlmIC8vIEVOQUJMRShWQVJJQVRJ
T05fRk9OVFMpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwIGIv
U291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmNwcAppbmRleCA0YjlmMDFhMmVjOTA5YjYyOWE0
MTg2Nzk1ZWViZmExYmMzOTdhYTllLi4xYWEzNTM2NzgwZGRhMDFiMDQ5ZGNiZGFmMGZhOTFmMGMy
YWQ3YzMzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTVmFsdWUuY3BwCisrKyBi
L1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5jcHAKQEAgLTE2NiwxMCArMTY2LDggQEAgYm9v
bCBDU1NWYWx1ZTo6ZXF1YWxzKGNvbnN0IENTU1ZhbHVlJiBvdGhlcikgY29uc3QKICAgICAgICAg
ICAgIHJldHVybiBjb21wYXJlQ1NTVmFsdWVzPENTU0ZvbnRGYWNlU3JjVmFsdWU+KCp0aGlzLCBv
dGhlcik7CiAgICAgICAgIGNhc2UgRm9udEZlYXR1cmVDbGFzczoKICAgICAgICAgICAgIHJldHVy
biBjb21wYXJlQ1NTVmFsdWVzPENTU0ZvbnRGZWF0dXJlVmFsdWU+KCp0aGlzLCBvdGhlcik7Ci0j
aWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKICAgICAgICAgY2FzZSBGb250VmFyaWF0aW9uQ2xh
c3M6CiAgICAgICAgICAgICByZXR1cm4gY29tcGFyZUNTU1ZhbHVlczxDU1NGb250VmFyaWF0aW9u
VmFsdWU+KCp0aGlzLCBvdGhlcik7Ci0jZW5kaWYKICAgICAgICAgY2FzZSBGdW5jdGlvbkNsYXNz
OgogICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVDU1NWYWx1ZXM8Q1NTRnVuY3Rpb25WYWx1ZT4o
KnRoaXMsIG90aGVyKTsKICAgICAgICAgY2FzZSBMaW5lYXJHcmFkaWVudENsYXNzOgpAQCAtMjY4
LDEwICsyNjYsOCBAQCBTdHJpbmcgQ1NTVmFsdWU6OmNzc1RleHQoKSBjb25zdAogICAgICAgICBy
ZXR1cm4gZG93bmNhc3Q8Q1NTRm9udEZhY2VTcmNWYWx1ZT4oKnRoaXMpLmN1c3RvbUNTU1RleHQo
KTsKICAgICBjYXNlIEZvbnRGZWF0dXJlQ2xhc3M6CiAgICAgICAgIHJldHVybiBkb3duY2FzdDxD
U1NGb250RmVhdHVyZVZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwotI2lmIEVOQUJMRShW
QVJJQVRJT05fRk9OVFMpCiAgICAgY2FzZSBGb250VmFyaWF0aW9uQ2xhc3M6CiAgICAgICAgIHJl
dHVybiBkb3duY2FzdDxDU1NGb250VmFyaWF0aW9uVmFsdWU+KCp0aGlzKS5jdXN0b21DU1NUZXh0
KCk7Ci0jZW5kaWYKICAgICBjYXNlIEZ1bmN0aW9uQ2xhc3M6CiAgICAgICAgIHJldHVybiBkb3du
Y2FzdDxDU1NGdW5jdGlvblZhbHVlPigqdGhpcykuY3VzdG9tQ1NTVGV4dCgpOwogICAgIGNhc2Ug
TGluZWFyR3JhZGllbnRDbGFzczoKQEAgLTM2OSwxMSArMzY1LDkgQEAgdm9pZCBDU1NWYWx1ZTo6
ZGVzdHJveSgpCiAgICAgY2FzZSBGb250RmVhdHVyZUNsYXNzOgogICAgICAgICBkZWxldGUgZG93
bmNhc3Q8Q1NTRm9udEZlYXR1cmVWYWx1ZT4odGhpcyk7CiAgICAgICAgIHJldHVybjsKLSNpZiBF
TkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQogICAgIGNhc2UgRm9udFZhcmlhdGlvbkNsYXNzOgogICAg
ICAgICBkZWxldGUgZG93bmNhc3Q8Q1NTRm9udFZhcmlhdGlvblZhbHVlPih0aGlzKTsKICAgICAg
ICAgcmV0dXJuOwotI2VuZGlmCiAgICAgY2FzZSBGdW5jdGlvbkNsYXNzOgogICAgICAgICBkZWxl
dGUgZG93bmNhc3Q8Q1NTRnVuY3Rpb25WYWx1ZT4odGhpcyk7CiAgICAgICAgIHJldHVybjsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NWYWx1ZS5oIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU1ZhbHVlLmgKaW5kZXggY2ZjZWRmNGYzMWI4Y2ZkNTE5ZTZiMTBmYjE4ZmRlMmZlOTUy
NjZlNi4uYmRmNWE1MzhhMTg1ZTM5NjJjZjU2MDBjMTdjNzg1OWI5MDUwNjZmNCAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU1ZhbHVlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvY3Nz
L0NTU1ZhbHVlLmgKQEAgLTkyLDkgKzkyLDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNDdXN0b21Q
cm9wZXJ0eVZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gQ3VzdG9tUHJvcGVy
dHlDbGFzczsgfQogICAgIGJvb2wgaXNGdW5jdGlvblZhbHVlKCkgY29uc3QgeyByZXR1cm4gbV9j
bGFzc1R5cGUgPT0gRnVuY3Rpb25DbGFzczsgfQogICAgIGJvb2wgaXNGb250RmVhdHVyZVZhbHVl
KCkgY29uc3QgeyByZXR1cm4gbV9jbGFzc1R5cGUgPT0gRm9udEZlYXR1cmVDbGFzczsgfQotI2lm
IEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCiAgICAgYm9vbCBpc0ZvbnRWYXJpYXRpb25WYWx1ZSgp
IGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEZvbnRWYXJpYXRpb25DbGFzczsgfQotI2Vu
ZGlmCiAgICAgYm9vbCBpc0ZvbnRGYWNlU3JjVmFsdWUoKSBjb25zdCB7IHJldHVybiBtX2NsYXNz
VHlwZSA9PSBGb250RmFjZVNyY0NsYXNzOyB9CiAgICAgYm9vbCBpc0ZvbnRWYWx1ZSgpIGNvbnN0
IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEZvbnRDbGFzczsgfQogICAgIGJvb2wgaXNGb250U3R5
bGVWYWx1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fY2xhc3NUeXBlID09IEZvbnRTdHlsZUNsYXNzOyB9
CkBAIC0xODIsOSArMTgwLDcgQEAgcHJvdGVjdGVkOgogICAgICAgICBBc3BlY3RSYXRpb0NsYXNz
LAogICAgICAgICBCb3JkZXJJbWFnZVNsaWNlQ2xhc3MsCiAgICAgICAgIEZvbnRGZWF0dXJlQ2xh
c3MsCi0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKICAgICAgICAgRm9udFZhcmlhdGlvbkNs
YXNzLAotI2VuZGlmCiAgICAgICAgIEZvbnRDbGFzcywKICAgICAgICAgRm9udFN0eWxlQ2xhc3Ms
CiAgICAgICAgIEZvbnRTdHlsZVJhbmdlQ2xhc3MsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYWNoZS5oCmluZGV4IDFiODMyMjM3ODliMmI3MDUzYjhhZTk1ZDkwNWQy
MDY3YTZmOTYyMmQuLmY4ZTA1YWViODZkNGQ3MDg3NWYwMTE5MDYxYzE2NDM3NjBiZDcwN2QgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCkBAIC04MCw5
ICs4MCw3IEBAIHN0cnVjdCBGb250RGVzY3JpcHRpb25LZXkgewogICAgICAgICAsIG1fZmxhZ3Mo
bWFrZUZsYWdzS2V5KGRlc2NyaXB0aW9uKSkKICAgICAgICAgLCBtX2xvY2FsZShkZXNjcmlwdGlv
bi5zcGVjaWZpZWRMb2NhbGUoKSkKICAgICAgICAgLCBtX2ZlYXR1cmVTZXR0aW5ncyhkZXNjcmlw
dGlvbi5mZWF0dXJlU2V0dGluZ3MoKSkKLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQogICAg
ICAgICAsIG1fdmFyaWF0aW9uU2V0dGluZ3MoZGVzY3JpcHRpb24udmFyaWF0aW9uU2V0dGluZ3Mo
KSkKLSNlbmRpZgogICAgIHsgfQogCiAgICAgZXhwbGljaXQgRm9udERlc2NyaXB0aW9uS2V5KFdU
Rjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKQEAgLTk2LDkgKzk0LDcgQEAgc3RydWN0IEZv
bnREZXNjcmlwdGlvbktleSB7CiAgICAgICAgICAgICAmJiBtX2ZvbnRTZWxlY3Rpb25SZXF1ZXN0
ID09IG90aGVyLm1fZm9udFNlbGVjdGlvblJlcXVlc3QKICAgICAgICAgICAgICYmIG1fZmxhZ3Mg
PT0gb3RoZXIubV9mbGFncwogICAgICAgICAgICAgJiYgbV9sb2NhbGUgPT0gb3RoZXIubV9sb2Nh
bGUKLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQogICAgICAgICAgICAgJiYgbV92YXJpYXRp
b25TZXR0aW5ncyA9PSBvdGhlci5tX3ZhcmlhdGlvblNldHRpbmdzCi0jZW5kaWYKICAgICAgICAg
ICAgICYmIG1fZmVhdHVyZVNldHRpbmdzID09IG90aGVyLm1fZmVhdHVyZVNldHRpbmdzOwogICAg
IH0KIApAQCAtMTIwLDkgKzExNiw3IEBAIHN0cnVjdCBGb250RGVzY3JpcHRpb25LZXkgewogICAg
ICAgICBmb3IgKHVuc2lnbmVkIGZsYWdJdGVtIDogbV9mbGFncykKICAgICAgICAgICAgIGhhc2hl
ci5hZGQoZmxhZ0l0ZW0pOwogICAgICAgICBoYXNoZXIuYWRkKG1fZmVhdHVyZVNldHRpbmdzLmhh
c2goKSk7Ci0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKICAgICAgICAgaGFzaGVyLmFkZCht
X3ZhcmlhdGlvblNldHRpbmdzLmhhc2goKSk7Ci0jZW5kaWYKICAgICAgICAgcmV0dXJuIGhhc2hl
ci5oYXNoKCk7CiAgICAgfQogCkBAIC0xNjQsOSArMTU4LDcgQEAgcHJpdmF0ZToKICAgICBzdGQ6
OmFycmF5PHVuc2lnbmVkLCAyPiBtX2ZsYWdzIHt7IDAsIDAgfX07CiAgICAgQXRvbVN0cmluZyBt
X2xvY2FsZTsKICAgICBGb250RmVhdHVyZVNldHRpbmdzIG1fZmVhdHVyZVNldHRpbmdzOwotI2lm
IEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCiAgICAgRm9udFZhcmlhdGlvblNldHRpbmdzIG1fdmFy
aWF0aW9uU2V0dGluZ3M7Ci0jZW5kaWYKIH07CiAKIHN0cnVjdCBGb250RGVzY3JpcHRpb25LZXlI
YXNoIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YXNjYWRlRGVzY3JpcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGVEZXNjcmlwdGlvbi5jcHAKaW5kZXggOWRhOWVlYmI1ZjE5ZWI4ODE3OWJiMGRh
NTUxODVkZDg2ZTgzMzU2NC4uMWQyOTNkN2YxNThjZDVjMjlhYTAyYzMxOTI0ODA0M2ZhNzQ2NGFk
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2Nh
ZGVEZXNjcmlwdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhc2NhZGVEZXNjcmlwdGlvbi5jcHAKQEAgLTM2LDExICszNiw3IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIAogc3RydWN0IFNhbWVTaXplQXNGb250Q2FzY2FkZURlc2NyaXB0aW9uIHsKICAg
ICBWZWN0b3I8dm9pZCo+IHZlY3RvcjsKLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQogICAg
IFZlY3Rvcjx2b2lkKj4gdmVjdG9yMjsKLSNlbHNlCi0gICAgY2hhciBjOwotI2VuZGlmCiAgICAg
QXRvbVN0cmluZyBzdHJpbmc7CiAgICAgQXRvbVN0cmluZyBzdHJpbmcyOwogICAgIGludDE2X3Qg
Zm9udFNlbGVjdGlvblJlcXVlc3RbM107CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCmluZGV4IGM5ZTQzYzY0OTQ1OWM0NmJjZjg0ZWM3
ZDRjZjAzMjEwNDQ2MTZhYjUuLjU0YTc3NmRhYjEwOGNlMDI5OWJkNGNhOWI4N2NkOGM3OTE5Y2Uz
NDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNj
cmlwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNj
cmlwdGlvbi5oCkBAIC0xMTAsOSArMTEwLDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0V2lkdGhW
YXJpYW50KEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KSB7IG1fd2lkdGhWYXJpYW50ID0g
c3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHdpZHRoVmFyaWFudCk7IH0gLy8gTWFrZSBzdXJlIG5ldyBj
YWxsZXJzIG9mIHRoaXMgc3luYyB3aXRoIEZvbnRQbGF0Zm9ybURhdGE6OmlzRm9yVGV4dENvbWJp
bmUoKSEKICAgICBXRUJDT1JFX0VYUE9SVCB2b2lkIHNldFNwZWNpZmllZExvY2FsZShjb25zdCBB
dG9tU3RyaW5nJik7CiAgICAgdm9pZCBzZXRGZWF0dXJlU2V0dGluZ3MoRm9udEZlYXR1cmVTZXR0
aW5ncyYmIHNldHRpbmdzKSB7IG1fZmVhdHVyZVNldHRpbmdzID0gV1RGTW92ZShzZXR0aW5ncyk7
IH0KLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQogICAgIHZvaWQgc2V0VmFyaWF0aW9uU2V0
dGluZ3MoRm9udFZhcmlhdGlvblNldHRpbmdzJiYgc2V0dGluZ3MpIHsgbV92YXJpYXRpb25TZXR0
aW5ncyA9IFdURk1vdmUoc2V0dGluZ3MpOyB9Ci0jZW5kaWYKICAgICB2b2lkIHNldEZvbnRTeW50
aGVzaXMoRm9udFN5bnRoZXNpcyBmb250U3ludGhlc2lzKSB7IG1fZm9udFN5bnRoZXNpcyA9IGZv
bnRTeW50aGVzaXM7IH0KICAgICB2b2lkIHNldFZhcmlhbnRDb21tb25MaWdhdHVyZXMoRm9udFZh
cmlhbnRMaWdhdHVyZXMgdmFyaWFudCkgeyBtX3ZhcmlhbnRDb21tb25MaWdhdHVyZXMgPSBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4odmFyaWFudCk7IH0KICAgICB2b2lkIHNldFZhcmlhbnREaXNjcmV0
aW9uYXJ5TGlnYXR1cmVzKEZvbnRWYXJpYW50TGlnYXR1cmVzIHZhcmlhbnQpIHsgbV92YXJpYW50
RGlzY3JldGlvbmFyeUxpZ2F0dXJlcyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YXJpYW50KTsg
fQpAQCAtMTkwLDkgKzE4OCw3IEBAIGlubGluZSBib29sIEZvbnREZXNjcmlwdGlvbjo6b3BlcmF0
b3I9PShjb25zdCBGb250RGVzY3JpcHRpb24mIG90aGVyKSBjb25zdAogICAgICAgICAmJiBtX3dp
ZHRoVmFyaWFudCA9PSBvdGhlci5tX3dpZHRoVmFyaWFudAogICAgICAgICAmJiBtX3NwZWNpZmll
ZExvY2FsZSA9PSBvdGhlci5tX3NwZWNpZmllZExvY2FsZQogICAgICAgICAmJiBtX2ZlYXR1cmVT
ZXR0aW5ncyA9PSBvdGhlci5tX2ZlYXR1cmVTZXR0aW5ncwotI2lmIEVOQUJMRShWQVJJQVRJT05f
Rk9OVFMpCiAgICAgICAgICYmIG1fdmFyaWF0aW9uU2V0dGluZ3MgPT0gb3RoZXIubV92YXJpYXRp
b25TZXR0aW5ncwotI2VuZGlmCiAgICAgICAgICYmIG1fZm9udFN5bnRoZXNpcyA9PSBvdGhlci5t
X2ZvbnRTeW50aGVzaXMKICAgICAgICAgJiYgbV92YXJpYW50Q29tbW9uTGlnYXR1cmVzID09IG90
aGVyLm1fdmFyaWFudENvbW1vbkxpZ2F0dXJlcwogICAgICAgICAmJiBtX3ZhcmlhbnREaXNjcmV0
aW9uYXJ5TGlnYXR1cmVzID09IG90aGVyLm1fdmFyaWFudERpc2NyZXRpb25hcnlMaWdhdHVyZXMK
QEAgLTIxOSw5ICsyMTUsNyBAQCB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBGb250RGVz
Y3JpcHRpb246OmVuY29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewogICAgIGVuY29kZXIg
PDwgZmVhdHVyZVNldHRpbmdzKCk7Ci0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKICAgICBl
bmNvZGVyIDw8IHZhcmlhdGlvblNldHRpbmdzKCk7Ci0jZW5kaWYKICAgICBlbmNvZGVyIDw8IGNv
bXB1dGVkTG9jYWxlKCk7CiAgICAgZW5jb2RlciA8PCBpdGFsaWMoKTsKICAgICBlbmNvZGVyIDw8
IHN0cmV0Y2goKTsKQEAgLTI2MywxMiArMjU3LDEwIEBAIE9wdGlvbmFsPEZvbnREZXNjcmlwdGlv
bj4gRm9udERlc2NyaXB0aW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKICAgICBpZiAoIWZl
YXR1cmVTZXR0aW5ncykKICAgICAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIAotI2lmIEVOQUJM
RShWQVJJQVRJT05fRk9OVFMpCiAgICAgT3B0aW9uYWw8Rm9udFZhcmlhdGlvblNldHRpbmdzPiB2
YXJpYXRpb25TZXR0aW5nczsKICAgICBkZWNvZGVyID4+IHZhcmlhdGlvblNldHRpbmdzOwogICAg
IGlmICghdmFyaWF0aW9uU2V0dGluZ3MpCiAgICAgICAgIHJldHVybiBXVEY6Om51bGxvcHQ7Ci0j
ZW5kaWYKIAogICAgIE9wdGlvbmFsPEF0b21TdHJpbmc+IGxvY2FsZTsKICAgICBkZWNvZGVyID4+
IGxvY2FsZTsKQEAgLTQyMSw5ICs0MTMsNyBAQCBPcHRpb25hbDxGb250RGVzY3JpcHRpb24+IEZv
bnREZXNjcmlwdGlvbjo6ZGVjb2RlKERlY29kZXImIGRlY29kZXIpCiAgICAgICAgIHJldHVybiBX
VEY6Om51bGxvcHQ7CiAKICAgICBmb250RGVzY3JpcHRpb24uc2V0RmVhdHVyZVNldHRpbmdzKFdU
Rk1vdmUoKmZlYXR1cmVTZXR0aW5ncykpOwotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCiAg
ICAgZm9udERlc2NyaXB0aW9uLnNldFZhcmlhdGlvblNldHRpbmdzKFdURk1vdmUoKnZhcmlhdGlv
blNldHRpbmdzKSk7Ci0jZW5kaWYKICAgICBmb250RGVzY3JpcHRpb24uc2V0U3BlY2lmaWVkTG9j
YWxlKCpsb2NhbGUpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRJdGFsaWMoKml0YWxpYyk7CiAg
ICAgZm9udERlc2NyaXB0aW9uLnNldFN0cmV0Y2goKnN0cmV0Y2gpOwpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5jcHAKaW5k
ZXggNGU2MDhmMTkyNWE1NzhhZGMwNmE4MTk3OThhYjU1N2NjZDMxNTcxYy4uOGE4Yzc5N2Y2NDcx
MjM5ZjFlN2NmOGE1ZDI3ZTMwNmQ1ODkzM2ViMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFRhZ2dlZFNldHRpbmdzLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuY3BwCkBAIC00NCw3ICs0
NCw2IEBAIHVuc2lnbmVkIEZvbnRGZWF0dXJlU2V0dGluZ3M6Omhhc2goKSBjb25zdAogICAgIHJl
dHVybiBoYXNoZXIuaGFzaCgpOwogfQogCi0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKIHRl
bXBsYXRlIDw+CiB1bnNpZ25lZCBGb250VmFyaWF0aW9uU2V0dGluZ3M6Omhhc2goKSBjb25zdAog
ewpAQCAtNzYsNiArNzUsNSBAQCBUZXh0U3RyZWFtJiBvcGVyYXRvcjw8KFRleHRTdHJlYW0mIHRz
LCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmIGl0ZW0pCiAgICAgfQogICAgIHJldHVybiB0
czsKIH0KLSNlbmRpZgogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250VGFnZ2VkU2V0dGluZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRUYWdnZWRTZXR0aW5ncy5oCmluZGV4IGQ2OWVkYWNjZmUyNGM5MGEyYTVkMmU2
NTcyMmZmMDRjMTgwZDNhOGQuLmI5MjAzNGVhMjE2ODlmYmE0ZWY1NTNjZTJmYThmNWJjNGFjMWUz
MTcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRUYWdn
ZWRTZXR0aW5ncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRU
YWdnZWRTZXR0aW5ncy5oCkBAIC0yMTYsMTkgKzIxNiw5IEBAIHR5cGVkZWYgRm9udFRhZ2dlZFNl
dHRpbmdzPGludD4gRm9udEZlYXR1cmVTZXR0aW5nczsKIAogdGVtcGxhdGUgPD4gdW5zaWduZWQg
Rm9udEZlYXR1cmVTZXR0aW5nczo6aGFzaCgpIGNvbnN0OwogCi0jaWYgRU5BQkxFKFZBUklBVElP
Tl9GT05UUykKLQogdHlwZWRlZiBGb250VGFnZ2VkU2V0dGluZ3M8ZmxvYXQ+IEZvbnRWYXJpYXRp
b25TZXR0aW5nczsKIFdURjo6VGV4dFN0cmVhbSYgb3BlcmF0b3I8PChXVEY6OlRleHRTdHJlYW0m
LCBjb25zdCBGb250VmFyaWF0aW9uU2V0dGluZ3MmKTsKIAogdGVtcGxhdGUgPD4gdW5zaWduZWQg
Rm9udFZhcmlhdGlvblNldHRpbmdzOjpoYXNoKCkgY29uc3Q7CiAKLSNlbHNlCi0KLXN0cnVjdCBG
b250VmFyaWF0aW9uU2V0dGluZ3MgewotICAgIGJvb2wgaXNFbXB0eSgpIGNvbnN0IHsgcmV0dXJu
IHRydWU7IH0KLX07Ci0KLSNlbmRpZgotCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKaW5kZXgg
MDljODc1YTViYmFhZTBkYjIzMmVkYjFiNzBiZjQxZjRiNTE0YTMzNC4uMTAwNmY0YmE1ZTI4NThm
YTlhODUyZjFlZWZiNTBjM2Y2ZDczNjgzYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcApAQCAt
MTUyLDkgKzE1Miw3IEBAIHN0YXRpYyBpbmxpbmUgdm9pZCBhcHBlbmRPcGVuVHlwZUZlYXR1cmUo
Q0ZNdXRhYmxlQXJyYXlSZWYgZmVhdHVyZXMsIGNvbnN0IEZvbnRGCiB9CiAKIHR5cGVkZWYgSGFz
aE1hcDxGb250VGFnLCBpbnQsIEZvdXJDaGFyYWN0ZXJUYWdIYXNoLCBGb3VyQ2hhcmFjdGVyVGFn
SGFzaFRyYWl0cz4gRmVhdHVyZXNNYXA7Ci0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKIHR5
cGVkZWYgSGFzaE1hcDxGb250VGFnLCBmbG9hdCwgRm91ckNoYXJhY3RlclRhZ0hhc2gsIEZvdXJD
aGFyYWN0ZXJUYWdIYXNoVHJhaXRzPiBWYXJpYXRpb25zTWFwOwotI2VuZGlmCiAKIHN0YXRpYyBG
ZWF0dXJlc01hcCBjb21wdXRlRmVhdHVyZVNldHRpbmdzRnJvbVZhcmlhbnRzKGNvbnN0IEZvbnRW
YXJpYW50U2V0dGluZ3MmIHZhcmlhbnRTZXR0aW5ncykKIHsKQEAgLTM3Nyw3ICszNzUsNiBAQCBz
dGF0aWMgaW5saW5lIGJvb2wgZm9udE5hbWVJc1N5c3RlbUZvbnQoQ0ZTdHJpbmdSZWYgZm9udE5h
bWUpCiAgICAgcmV0dXJuIENGU3RyaW5nR2V0TGVuZ3RoKGZvbnROYW1lKSA+IDAgJiYgQ0ZTdHJp
bmdHZXRDaGFyYWN0ZXJBdEluZGV4KGZvbnROYW1lLCAwKSA9PSAnLic7CiB9CiAKLSNpZiBFTkFC
TEUoVkFSSUFUSU9OX0ZPTlRTKQogc3RydWN0IFZhcmlhdGlvbkRlZmF1bHRzIHsKICAgICBmbG9h
dCBkZWZhdWx0VmFsdWU7CiAgICAgZmxvYXQgbWluaW11bVZhbHVlOwpAQCAtNDYyLDkgKzQ1OSw3
IEBAIHN0YXRpYyBpbmxpbmUgZmxvYXQgZGVub3JtYWxpemVWYXJpYXRpb25XaWR0aChmbG9hdCB2
YWx1ZSkKICAgICAgICAgcmV0dXJuICh2YWx1ZSArIDEyNSkgLyAyMDA7CiAgICAgcmV0dXJuICh2
YWx1ZSArIDQwMCkgLyA0MDA7CiB9Ci0jZW5kaWYKIAotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9O
VFMpIHx8ICFIQVNfQ09SRV9URVhUX1dJRFRIX0FUVFJJQlVURQogc3RhdGljIGlubGluZSBmbG9h
dCBub3JtYWxpemVWYXJpYXRpb25XaWR0aChmbG9hdCB2YWx1ZSkKIHsKICAgICBpZiAodmFsdWUg
PD0gMS4yNSkKQEAgLTQ3Myw3ICs0NjgsNiBAQCBzdGF0aWMgaW5saW5lIGZsb2F0IG5vcm1hbGl6
ZVZhcmlhdGlvbldpZHRoKGZsb2F0IHZhbHVlKQogICAgICAgICByZXR1cm4gdmFsdWUgKiAyMDAg
LSAxMjU7CiAgICAgcmV0dXJuIHZhbHVlICogNDAwIC0gNDAwOwogfQotI2VuZGlmCiAKICNpZiAh
SEFTX0NPUkVfVEVYVF9XSURUSF9BVFRSSUJVVEUKIHN0YXRpYyBpbmxpbmUgZmxvYXQgbm9ybWFs
aXplV2lkdGgoZmxvYXQgdmFsdWUpCkBAIC01NDIsNyArNTM2LDYgQEAgUmV0YWluUHRyPENURm9u
dFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250LCBjb25zdCBG
b250RGVzY3IKIAogICAgIGF1dG8gZm9udE9wdGljYWxTaXppbmcgPSBmb250RGVzY3JpcHRpb24u
b3B0aWNhbFNpemluZygpOwogCi0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykKICAgICBhdXRv
IGRlZmF1bHRWYWx1ZXMgPSBkZWZhdWx0VmFyaWF0aW9uVmFsdWVzKG9yaWdpbmFsRm9udCk7CiAK
ICAgICBhdXRvIGZvbnRTZWxlY3Rpb25SZXF1ZXN0ID0gZm9udERlc2NyaXB0aW9uLmZvbnRTZWxl
Y3Rpb25SZXF1ZXN0KCk7CkBAIC01NTEsMTEgKzU0NCw2IEBAIFJldGFpblB0cjxDVEZvbnRSZWY+
IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9udCwgY29uc3QgRm9udERl
c2NyCiAgICAgYm9vbCBmb3JjZU9wdGljYWxTaXppbmdPbiA9IGZvbnRPcHRpY2FsU2l6aW5nID09
IEZvbnRPcHRpY2FsU2l6aW5nOjpFbmFibGVkICYmIGZvbnRUeXBlLnZhcmlhdGlvblR5cGUgPT0g
Rm9udFR5cGU6OlZhcmlhdGlvblR5cGU6OlRydWVUeXBlR1ggJiYgZGVmYXVsdFZhbHVlcy5jb250
YWlucyh7eydvJywgJ3AnLCAncycsICd6J319KTsKICAgICBib29sIGZvcmNlVmFyaWF0aW9ucyA9
IGRlZmF1bHRWYWx1ZXMuY29udGFpbnMoe3sndycsICdnJywgJ2gnLCAndCd9fSkgfHwgZGVmYXVs
dFZhbHVlcy5jb250YWlucyh7eyd3JywgJ2QnLCAndCcsICdoJ319KSB8fCAoZm9udFN0eWxlQXhp
cyA9PSBGb250U3R5bGVBeGlzOjppdGFsICYmIGRlZmF1bHRWYWx1ZXMuY29udGFpbnMoe3snaScs
ICd0JywgJ2EnLCAnbCd9fSkpIHx8IChmb250U3R5bGVBeGlzID09IEZvbnRTdHlsZUF4aXM6OnNs
bnQgJiYgZGVmYXVsdFZhbHVlcy5jb250YWlucyh7eydzJywgJ2wnLCAnbicsICd0J319KSk7CiAg
ICAgY29uc3QgYXV0byYgdmFyaWF0aW9ucyA9IGZvbnREZXNjcmlwdGlvbi52YXJpYXRpb25TZXR0
aW5ncygpOwotI2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oZm9udEZhY2VDYXBhYmlsaXRpZXMpOwot
ICAgIFVOVVNFRF9QQVJBTShhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zKTsKLSAgICBi
b29sIGZvcmNlT3B0aWNhbFNpemluZ09uID0gZmFsc2U7Ci0jZW5kaWYKIAogICAgIGNvbnN0IGF1
dG8mIGZlYXR1cmVzID0gZm9udERlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpOwogICAgIGNv
bnN0IGF1dG8mIHZhcmlhbnRTZXR0aW5ncyA9IGZvbnREZXNjcmlwdGlvbi52YXJpYW50U2V0dGlu
Z3MoKTsKQEAgLTU2NCwxMSArNTUyLDcgQEAgUmV0YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBs
YXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250RGVzY3IKIAogICAg
IC8vIFdlIG1pZ2h0IHdhbnQgdG8gY2hlY2sgZm9udFR5cGUudHJhY2tpbmdUeXBlID09IEZvbnRU
eXBlOjpUcmFja2luZ1R5cGU6Ok1hbnVhbCBoZXJlLCBidXQgaW4gb3JkZXIgdG8gbWFpbnRhaW4g
Y29tcGF0aWJpbGl0eSB3aXRoIHRoZSByZXN0IG9mIHRoZSBzeXN0ZW0sIHdlIGRvbid0LgogICAg
IGJvb2wgbm9Gb250RmVhdHVyZVNldHRpbmdzID0gZmVhdHVyZXMuaXNFbXB0eSgpOwotI2lmIEVO
QUJMRShWQVJJQVRJT05fRk9OVFMpCiAgICAgYm9vbCBub0ZvbnRWYXJpYXRpb25TZXR0aW5ncyA9
ICFmb3JjZVZhcmlhdGlvbnMgJiYgdmFyaWF0aW9ucy5pc0VtcHR5KCk7Ci0jZWxzZQotICAgIGJv
b2wgbm9Gb250VmFyaWF0aW9uU2V0dGluZ3MgPSB0cnVlOwotI2VuZGlmCiAgICAgYm9vbCB0ZXh0
UmVuZGVyaW5nTW9kZUlzQXV0byA9IHRleHRSZW5kZXJpbmdNb2RlID09IFRleHRSZW5kZXJpbmdN
b2RlOjpBdXRvVGV4dFJlbmRlcmluZzsKICAgICBib29sIHZhcmlhbnRTZXR0aW5nc0lzTm9ybWFs
ID0gdmFyaWFudFNldHRpbmdzLmlzQWxsTm9ybWFsKCk7CiAgICAgYm9vbCBkb250TmVlZFRvQXBw
bHlPcHRpY2FsU2l6aW5nID0gZm9udE9wdGljYWxTaXppbmcgPT0gRm9udE9wdGljYWxTaXppbmc6
OkVuYWJsZWQgJiYgIWZvcmNlT3B0aWNhbFNpemluZ09uOwpAQCAtNTgzLDYgKzU2NywxNyBAQCBS
ZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5h
bEZvbnQsIGNvbnN0IEZvbnREZXNjcgogCiAgICAgLy8gVGhpcyBhbGdvcml0aG0gaXMgZGVzY3Jp
YmVkIGF0IGh0dHBzOi8vZHJhZnRzLmNzc3dnLm9yZy9jc3MtZm9udHMtNC8jZmVhdHVyZS12YXJp
YXRpb24tcHJlY2VkZW5jZQogICAgIEZlYXR1cmVzTWFwIGZlYXR1cmVzVG9CZUFwcGxpZWQ7Cisg
ICAgVmFyaWF0aW9uc01hcCB2YXJpYXRpb25zVG9CZUFwcGxpZWQ7CisKKyAgICBib29sIG5lZWRz
Q29udmVyc2lvbiA9IGZvbnRUeXBlLnZhcmlhdGlvblR5cGUgPT0gRm9udFR5cGU6OlZhcmlhdGlv
blR5cGU6OlRydWVUeXBlR1g7CisKKyAgICBhdXRvIGFwcGx5VmFyaWF0aW9uID0gWyZdKGNvbnN0
IEZvbnRUYWcmIHRhZywgZmxvYXQgdmFsdWUpIHsKKyAgICAgICAgYXV0byBpdGVyYXRvciA9IGRl
ZmF1bHRWYWx1ZXMuZmluZCh0YWcpOworICAgICAgICBpZiAoaXRlcmF0b3IgPT0gZGVmYXVsdFZh
bHVlcy5lbmQoKSkKKyAgICAgICAgICAgIHJldHVybjsKKyAgICAgICAgZmxvYXQgdmFsdWVUb0Fw
cGx5ID0gY2xhbXBUbyh2YWx1ZSwgaXRlcmF0b3ItPnZhbHVlLm1pbmltdW1WYWx1ZSwgaXRlcmF0
b3ItPnZhbHVlLm1heGltdW1WYWx1ZSk7CisgICAgICAgIHZhcmlhdGlvbnNUb0JlQXBwbGllZC5z
ZXQodGFnLCB2YWx1ZVRvQXBwbHkpOworICAgIH07CiAKICAgICBhdXRvIGFwcGx5RmVhdHVyZSA9
IFsmXShjb25zdCBGb250VGFnJiB0YWcsIGludCB2YWx1ZSkgewogICAgICAgICAvLyBBQVQgZG9l
c24ndCBkaWZmZXJlbnRpYXRlIGJldHdlZW4gbGlnYSBhbmQgY2xpZy4gV2UgbmVlZCB0byBtYWtl
IHN1cmUgdGhleSBhbHdheXMgYWdyZWUuCkBAIC01OTcsNTAgKzU5Miw2IEBAIFJldGFpblB0cjxD
VEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9udCwgY29u
c3QgRm9udERlc2NyCiAKICAgICAvLyBTdGVwIDE6IENvcmVUZXh0IGhhbmRsZXMgZGVmYXVsdCBm
ZWF0dXJlcyAoc3VjaCBhcyByZXF1aXJlZCBsaWdhdHVyZXMpLgogCi0gICAgLy8gU3RlcCA2OiBD
b25zdWx0IHdpdGggZm9udC1mZWF0dXJlLXNldHRpbmdzIGluc2lkZSBAZm9udC1mYWNlCi0gICAg
aWYgKGZvbnRGYWNlRmVhdHVyZXMpIHsKLSAgICAgICAgZm9yIChhdXRvJiBmb250RmFjZUZlYXR1
cmUgOiAqZm9udEZhY2VGZWF0dXJlcykKLSAgICAgICAgICAgIGFwcGx5RmVhdHVyZShmb250RmFj
ZUZlYXR1cmUudGFnKCksIGZvbnRGYWNlRmVhdHVyZS52YWx1ZSgpKTsKLSAgICB9Ci0KLSAgICAv
LyBTdGVwIDEwOiBGb250LXZhcmlhbnQKLSAgICBmb3IgKGF1dG8mIG5ld0ZlYXR1cmUgOiBjb21w
dXRlRmVhdHVyZVNldHRpbmdzRnJvbVZhcmlhbnRzKHZhcmlhbnRTZXR0aW5ncykpCi0gICAgICAg
IGFwcGx5RmVhdHVyZShuZXdGZWF0dXJlLmtleSwgbmV3RmVhdHVyZS52YWx1ZSk7Ci0KLSAgICAv
LyBTdGVwIDExOiBPdGhlciBwcm9wZXJ0aWVzCi0gICAgaWYgKHRleHRSZW5kZXJpbmdNb2RlID09
IFRleHRSZW5kZXJpbmdNb2RlOjpPcHRpbWl6ZVNwZWVkKSB7Ci0gICAgICAgIGFwcGx5RmVhdHVy
ZShmb250RmVhdHVyZVRhZygibGlnYSIpLCAwKTsKLSAgICAgICAgYXBwbHlGZWF0dXJlKGZvbnRG
ZWF0dXJlVGFnKCJjbGlnIiksIDApOwotICAgICAgICBhcHBseUZlYXR1cmUoZm9udEZlYXR1cmVU
YWcoImRsaWciKSwgMCk7Ci0gICAgICAgIGFwcGx5RmVhdHVyZShmb250RmVhdHVyZVRhZygiaGxp
ZyIpLCAwKTsKLSAgICAgICAgYXBwbHlGZWF0dXJlKGZvbnRGZWF0dXJlVGFnKCJjYWx0IiksIDAp
OwotICAgIH0KLSAgICBpZiAoc2hvdWxkRGlzYWJsZUxpZ2F0dXJlc0ZvclNwYWNpbmcpIHsKLSAg
ICAgICAgYXBwbHlGZWF0dXJlKGZvbnRGZWF0dXJlVGFnKCJsaWdhIiksIDApOwotICAgICAgICBh
cHBseUZlYXR1cmUoZm9udEZlYXR1cmVUYWcoImNsaWciKSwgMCk7Ci0gICAgICAgIGFwcGx5RmVh
dHVyZShmb250RmVhdHVyZVRhZygiZGxpZyIpLCAwKTsKLSAgICAgICAgYXBwbHlGZWF0dXJlKGZv
bnRGZWF0dXJlVGFnKCJobGlnIiksIDApOwotICAgICAgICAvLyBDb3JlIFRleHQgZG9lc24ndCBk
aXNhYmxlIGNhbHQgd2hlbiBsZXR0ZXItc3BhY2luZyBpcyBhcHBsaWVkLCBzbyB3ZSB3b24ndCBl
aXRoZXIuCi0gICAgfQotCi0gICAgLy8gU3RlcCAxMzogRm9udC1mZWF0dXJlLXNldHRpbmdzCi0g
ICAgZm9yIChhdXRvJiBuZXdGZWF0dXJlIDogZmVhdHVyZXMpCi0gICAgICAgIGFwcGx5RmVhdHVy
ZShuZXdGZWF0dXJlLnRhZygpLCBuZXdGZWF0dXJlLnZhbHVlKCkpOwotCi0gICAgLy8gVGhlIHZh
cmlhdGlvbiBmb250cyBhcmUgc2VwYXJhdGVkIGZyb20gdGhlIGZvbnQgZmVhdHVyZXMgYmVjYXVz
ZSB0aGV5IGRvbid0IGNvbmZsaWN0LCBhbmQgYWxsb3cgdXMgdG8gb25seSBoYXZlIGEgc2luZ2xl
IEVOQUJMRSgpLgotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCi0gICAgVmFyaWF0aW9uc01h
cCB2YXJpYXRpb25zVG9CZUFwcGxpZWQ7Ci0KLSAgICBib29sIG5lZWRzQ29udmVyc2lvbiA9IGZv
bnRUeXBlLnZhcmlhdGlvblR5cGUgPT0gRm9udFR5cGU6OlZhcmlhdGlvblR5cGU6OlRydWVUeXBl
R1g7Ci0KLSAgICBhdXRvIGFwcGx5VmFyaWF0aW9uID0gWyZdKGNvbnN0IEZvbnRUYWcmIHRhZywg
ZmxvYXQgdmFsdWUpIHsKLSAgICAgICAgYXV0byBpdGVyYXRvciA9IGRlZmF1bHRWYWx1ZXMuZmlu
ZCh0YWcpOwotICAgICAgICBpZiAoaXRlcmF0b3IgPT0gZGVmYXVsdFZhbHVlcy5lbmQoKSkKLSAg
ICAgICAgICAgIHJldHVybjsKLSAgICAgICAgZmxvYXQgdmFsdWVUb0FwcGx5ID0gY2xhbXBUbyh2
YWx1ZSwgaXRlcmF0b3ItPnZhbHVlLm1pbmltdW1WYWx1ZSwgaXRlcmF0b3ItPnZhbHVlLm1heGlt
dW1WYWx1ZSk7Ci0gICAgICAgIHZhcmlhdGlvbnNUb0JlQXBwbGllZC5zZXQodGFnLCB2YWx1ZVRv
QXBwbHkpOwotICAgIH07Ci0KICAgICAvLyBTdGVwIDI6IGZvbnQtd2VpZ2h0LCBmb250LXN0cmV0
Y2gsIGFuZCBmb250LXN0eWxlCiAgICAgLy8gVGhlIHN5c3RlbSBmb250IGlzIHNvbWV3aGF0IG1h
Z2ljYWwuIERvbid0IG1lc3Mgd2l0aCBpdHMgdmFyaWF0aW9ucy4KICAgICBpZiAoYXBwbHlXZWln
aHRXaWR0aFNsb3BlVmFyaWF0aW9ucyAmJiAhZm9udElzU3lzdGVtRm9udChvcmlnaW5hbEZvbnQp
KSB7CkBAIC02NzAsMTIgKzYyMSw0MSBAQCBSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxh
dGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQsIGNvbnN0IEZvbnREZXNjcgogCiAgICAg
Ly8gRklYTUU6IEltcGxlbWVudCBTdGVwIDY6IHRoZSBmb250LXZhcmlhdGlvbi1zZXR0aW5ncyBk
ZXNjcmlwdG9yIGluc2lkZSBAZm9udC1mYWNlCiAKKyAgICAvLyBTdGVwIDc6IENvbnN1bHQgd2l0
aCBmb250LWZlYXR1cmUtc2V0dGluZ3MgaW5zaWRlIEBmb250LWZhY2UKKyAgICBpZiAoZm9udEZh
Y2VGZWF0dXJlcykgeworICAgICAgICBmb3IgKGF1dG8mIGZvbnRGYWNlRmVhdHVyZSA6ICpmb250
RmFjZUZlYXR1cmVzKQorICAgICAgICAgICAgYXBwbHlGZWF0dXJlKGZvbnRGYWNlRmVhdHVyZS50
YWcoKSwgZm9udEZhY2VGZWF0dXJlLnZhbHVlKCkpOworICAgIH0KKwogICAgIC8vIEZJWE1FOiBN
b3ZlIGZvbnQtb3B0aWNhbC1zaXppbmcgaGFuZGxpbmcgaGVyZS4gSXQgc2hvdWxkIGJlIHN0ZXAg
OS4KIAorICAgIC8vIFN0ZXAgMTA6IEZvbnQtdmFyaWFudAorICAgIGZvciAoYXV0byYgbmV3RmVh
dHVyZSA6IGNvbXB1dGVGZWF0dXJlU2V0dGluZ3NGcm9tVmFyaWFudHModmFyaWFudFNldHRpbmdz
KSkKKyAgICAgICAgYXBwbHlGZWF0dXJlKG5ld0ZlYXR1cmUua2V5LCBuZXdGZWF0dXJlLnZhbHVl
KTsKKworICAgIC8vIFN0ZXAgMTE6IE90aGVyIHByb3BlcnRpZXMKKyAgICBpZiAodGV4dFJlbmRl
cmluZ01vZGUgPT0gVGV4dFJlbmRlcmluZ01vZGU6Ok9wdGltaXplU3BlZWQpIHsKKyAgICAgICAg
YXBwbHlGZWF0dXJlKGZvbnRGZWF0dXJlVGFnKCJsaWdhIiksIDApOworICAgICAgICBhcHBseUZl
YXR1cmUoZm9udEZlYXR1cmVUYWcoImNsaWciKSwgMCk7CisgICAgICAgIGFwcGx5RmVhdHVyZShm
b250RmVhdHVyZVRhZygiZGxpZyIpLCAwKTsKKyAgICAgICAgYXBwbHlGZWF0dXJlKGZvbnRGZWF0
dXJlVGFnKCJobGlnIiksIDApOworICAgICAgICBhcHBseUZlYXR1cmUoZm9udEZlYXR1cmVUYWco
ImNhbHQiKSwgMCk7CisgICAgfQorICAgIGlmIChzaG91bGREaXNhYmxlTGlnYXR1cmVzRm9yU3Bh
Y2luZykgeworICAgICAgICBhcHBseUZlYXR1cmUoZm9udEZlYXR1cmVUYWcoImxpZ2EiKSwgMCk7
CisgICAgICAgIGFwcGx5RmVhdHVyZShmb250RmVhdHVyZVRhZygiY2xpZyIpLCAwKTsKKyAgICAg
ICAgYXBwbHlGZWF0dXJlKGZvbnRGZWF0dXJlVGFnKCJkbGlnIiksIDApOworICAgICAgICBhcHBs
eUZlYXR1cmUoZm9udEZlYXR1cmVUYWcoImhsaWciKSwgMCk7CisgICAgICAgIC8vIENvcmUgVGV4
dCBkb2Vzbid0IGRpc2FibGUgY2FsdCB3aGVuIGxldHRlci1zcGFjaW5nIGlzIGFwcGxpZWQsIHNv
IHdlIHdvbid0IGVpdGhlci4KKyAgICB9CisKKyAgICAvLyBTdGVwIDEzOiBGb250LWZlYXR1cmUt
c2V0dGluZ3MKKyAgICBmb3IgKGF1dG8mIG5ld0ZlYXR1cmUgOiBmZWF0dXJlcykKKyAgICAgICAg
YXBwbHlGZWF0dXJlKG5ld0ZlYXR1cmUudGFnKCksIG5ld0ZlYXR1cmUudmFsdWUoKSk7CisKICAg
ICAvLyBTdGVwIDEyOiBmb250LXZhcmlhdGlvbi1zZXR0aW5ncwogICAgIGZvciAoYXV0byYgbmV3
VmFyaWF0aW9uIDogdmFyaWF0aW9ucykKICAgICAgICAgYXBwbHlWYXJpYXRpb24obmV3VmFyaWF0
aW9uLnRhZygpLCBuZXdWYXJpYXRpb24udmFsdWUoKSk7Ci0jZW5kaWYgLy8gRU5BQkxFKFZBUklB
VElPTl9GT05UUykKIAogICAgIGF1dG8gYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5
Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAyLCAma0NGVHlwZURpY3Rpb25hcnlL
ZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAgaWYg
KCFmZWF0dXJlc1RvQmVBcHBsaWVkLmlzRW1wdHkoKSkgewpAQCAtNjg5LDggKzY2OSw2IEBAIFJl
dGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFs
Rm9udCwgY29uc3QgRm9udERlc2NyCiAgICAgICAgIH0KICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRk
VmFsdWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEZlYXR1cmVTZXR0aW5nc0F0dHJpYnV0ZSwg
ZmVhdHVyZUFycmF5LmdldCgpKTsKICAgICB9Ci0KLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRT
KQogICAgIGlmICghdmFyaWF0aW9uc1RvQmVBcHBsaWVkLmlzRW1wdHkoKSkgewogICAgICAgICBh
dXRvIHZhcmlhdGlvbkRpY3Rpb25hcnkgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFi
bGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tz
LCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogICAgICAgICBmb3IgKGF1dG8m
IHAgOiB2YXJpYXRpb25zVG9CZUFwcGxpZWQpIHsKQEAgLTcwMSw3ICs2NzksNiBAQCBSZXRhaW5Q
dHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQs
IGNvbnN0IEZvbnREZXNjcgogICAgICAgICB9CiAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVl
KGF0dHJpYnV0ZXMuZ2V0KCksIGtDVEZvbnRWYXJpYXRpb25BdHRyaWJ1dGUsIHZhcmlhdGlvbkRp
Y3Rpb25hcnkuZ2V0KCkpOwogICAgIH0KLSNlbmRpZgogCiAgICAgLy8gU3RlcCA5OiBmb250LW9w
dGljYWwtc2l6aW5nCiAgICAgLy8gRklYTUU6IEFwcGx5IHRoaXMgYmVmb3JlIGZvbnQtdmFyaWF0
aW9uLXNldHRpbmdzCkBAIC0xMDMxLDcgKzEwMDgsNiBAQCBzdHJ1Y3QgVmFyaWF0aW9uQ2FwYWJp
bGl0aWVzIHsKICAgICBPcHRpb25hbDxNaW5NYXg+IHNsb3BlOwogfTsKIAotI2lmIEVOQUJMRShW
QVJJQVRJT05fRk9OVFMpCiBzdGF0aWMgT3B0aW9uYWw8TWluTWF4PiBleHRyYWN0VmFyaWF0aW9u
Qm91bmRzKENGRGljdGlvbmFyeVJlZiBheGlzKQogewogICAgIENGTnVtYmVyUmVmIG1pbmltdW1W
YWx1ZSA9IHN0YXRpY19jYXN0PENGTnVtYmVyUmVmPihDRkRpY3Rpb25hcnlHZXRWYWx1ZShheGlz
LCBrQ1RGb250VmFyaWF0aW9uQXhpc01pbmltdW1WYWx1ZUtleSkpOwpAQCAtMTA0NCwxMyArMTAy
MCwxMSBAQCBzdGF0aWMgT3B0aW9uYWw8TWluTWF4PiBleHRyYWN0VmFyaWF0aW9uQm91bmRzKENG
RGljdGlvbmFyeVJlZiBheGlzKQogICAgICAgICByZXR1cm4ge3sgcmF3TWluaW11bVZhbHVlLCBy
YXdNYXhpbXVtVmFsdWUgfX07CiAgICAgcmV0dXJuIFdURjo6bnVsbG9wdDsKIH0KLSNlbmRpZgog
CiBzdGF0aWMgVmFyaWF0aW9uQ2FwYWJpbGl0aWVzIHZhcmlhdGlvbkNhcGFiaWxpdGllc0ZvckZv
bnREZXNjcmlwdG9yKENURm9udERlc2NyaXB0b3JSZWYgZm9udERlc2NyaXB0b3IpCiB7CiAgICAg
VmFyaWF0aW9uQ2FwYWJpbGl0aWVzIHJlc3VsdDsKIAotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9O
VFMpCiAgICAgaWYgKCFhZG9wdENGKENURm9udERlc2NyaXB0b3JDb3B5QXR0cmlidXRlKGZvbnRE
ZXNjcmlwdG9yLCBrQ1RGb250VmFyaWF0aW9uQXR0cmlidXRlKSkpCiAgICAgICAgIHJldHVybiBy
ZXN1bHQ7CiAKQEAgLTExMDAsOSArMTA3NCw2IEBAIHN0YXRpYyBWYXJpYXRpb25DYXBhYmlsaXRp
ZXMgdmFyaWF0aW9uQ2FwYWJpbGl0aWVzRm9yRm9udERlc2NyaXB0b3IoQ1RGb250RGVzY3JpCiAg
ICAgICAgIHJlc3VsdC53aWR0aCA9IHsgfTsKICAgICBpZiAocmVzdWx0LnNsb3BlICYmIChyZXN1
bHQuc2xvcGUudmFsdWUoKS5taW5pbXVtIDwgbWluaW11bSB8fCByZXN1bHQuc2xvcGUudmFsdWUo
KS5tYXhpbXVtID4gbWF4aW11bSkpCiAgICAgICAgIHJlc3VsdC5zbG9wZSA9IHsgfTsKLSNlbHNl
Ci0gICAgVU5VU0VEX1BBUkFNKGZvbnREZXNjcmlwdG9yKTsKLSNlbmRpZgogCiAgICAgcmV0dXJu
IHJlc3VsdDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRleCA4YzQ2MTUzMTBk
MGU3OWQzZjkzMTJjYzIyODk5NmJmNTc5NzAyZmI0Li5iOTBkOWMzNDM3YzNhMWY1MTI1MTU5M2U3
NzRkMWFhOTEyZDg5NjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC05Mywx
NCArOTMsMTAgQEAgYm9vbCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpzdXBwb3J0c0Zvcm1hdChj
b25zdCBTdHJpbmcmIGZvcm1hdCkKICAgICByZXR1cm4gZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJ
SUNhc2UoZm9ybWF0LCAidHJ1ZXR5cGUiKQogICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZShmb3JtYXQsICJvcGVudHlwZSIpCiAgICAgICAgIHx8IGVxdWFsTGV0dGVyc0ln
bm9yaW5nQVNDSUlDYXNlKGZvcm1hdCwgIndvZmYyIikKLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZP
TlRTKQogICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmb3JtYXQsICJ3
b2ZmMi12YXJpYXRpb25zIikKLSNlbmRpZgotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMpCiAg
ICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZvcm1hdCwgIndvZmYtdmFy
aWF0aW9ucyIpCiAgICAgICAgIHx8IGVxdWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZvcm1h
dCwgInRydWV0eXBlLXZhcmlhdGlvbnMiKQogICAgICAgICB8fCBlcXVhbExldHRlcnNJZ25vcmlu
Z0FTQ0lJQ2FzZShmb3JtYXQsICJvcGVudHlwZS12YXJpYXRpb25zIikKLSNlbmRpZgogICAgICAg
ICB8fCBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmb3JtYXQsICJ3b2ZmIik7CiB9CiAK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5j
cHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3R5bGUvUmVuZGVyU3R5bGUuY3BwCmluZGV4
IDQwOTgyZWEyNTcyOTRhYmFmNTE4NzcwZDdiZTVjMzcyMWQyODYwZjYuLjRhMDBiOGNlYzcyNzE0
MmM3NDFlN2E3YWFkMjQzYzhkODAwNjc3ZGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N0eWxlL1JlbmRlclN0eWxlLmNwcApAQCAtMTg1Miw3ICsxODUyLDYgQEAgdm9pZCBSZW5k
ZXJTdHlsZTo6c2V0Rm9udFNpemUoZmxvYXQgc2l6ZSkKICAgICBmb250Q2FzY2FkZSgpLnVwZGF0
ZShjdXJyZW50Rm9udFNlbGVjdG9yKTsKIH0KIAotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9OVFMp
CiB2b2lkIFJlbmRlclN0eWxlOjpzZXRGb250VmFyaWF0aW9uU2V0dGluZ3MoRm9udFZhcmlhdGlv
blNldHRpbmdzIHNldHRpbmdzKQogewogICAgIEZvbnRTZWxlY3RvciogY3VycmVudEZvbnRTZWxl
Y3RvciA9IGZvbnRDYXNjYWRlKCkuZm9udFNlbGVjdG9yKCk7CkBAIC0xODYyLDcgKzE4NjEsNiBA
QCB2b2lkIFJlbmRlclN0eWxlOjpzZXRGb250VmFyaWF0aW9uU2V0dGluZ3MoRm9udFZhcmlhdGlv
blNldHRpbmdzIHNldHRpbmdzKQogICAgIHNldEZvbnREZXNjcmlwdGlvbihXVEZNb3ZlKGRlc2Ny
aXB0aW9uKSk7CiAgICAgZm9udENhc2NhZGUoKS51cGRhdGUoY3VycmVudEZvbnRTZWxlY3Rvcik7
CiB9Ci0jZW5kaWYKIAogdm9pZCBSZW5kZXJTdHlsZTo6c2V0Rm9udFdlaWdodChGb250U2VsZWN0
aW9uVmFsdWUgdmFsdWUpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
c3R5bGUvUmVuZGVyU3R5bGUuaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5k
ZXJTdHlsZS5oCmluZGV4IDkxNGVlNTVlM2NmNjA2ZDllYTJhZDMwZWUwYzA1MjBkOTQyZjg0NGIu
LmM4YzE2NDg2YTNkNzhkMzVkNTIwZjI2ZjBkMTBiMTdiMjQ3MDY0YzIgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdHlsZS9SZW5kZXJTdHlsZS5oCkBAIC0zNTIsOSArMzUyLDcgQEAg
cHVibGljOgogICAgIHVuc2lnbmVkIGNvbXB1dGVkRm9udFBpeGVsU2l6ZSgpIGNvbnN0OwogICAg
IHN0ZDo6cGFpcjxGb250T3JpZW50YXRpb24sIE5vbkNKS0dseXBoT3JpZW50YXRpb24+IGZvbnRB
bmRHbHlwaE9yaWVudGF0aW9uKCk7CiAKLSNpZiBFTkFCTEUoVkFSSUFUSU9OX0ZPTlRTKQogICAg
IEZvbnRWYXJpYXRpb25TZXR0aW5ncyBmb250VmFyaWF0aW9uU2V0dGluZ3MoKSBjb25zdCB7IHJl
dHVybiBmb250RGVzY3JpcHRpb24oKS52YXJpYXRpb25TZXR0aW5ncygpOyB9Ci0jZW5kaWYKICAg
ICBGb250U2VsZWN0aW9uVmFsdWUgZm9udFdlaWdodCgpIGNvbnN0IHsgcmV0dXJuIGZvbnREZXNj
cmlwdGlvbigpLndlaWdodCgpOyB9CiAgICAgRm9udFNlbGVjdGlvblZhbHVlIGZvbnRTdHJldGNo
KCkgY29uc3QgeyByZXR1cm4gZm9udERlc2NyaXB0aW9uKCkuc3RyZXRjaCgpOyB9CiAgICAgT3B0
aW9uYWw8Rm9udFNlbGVjdGlvblZhbHVlPiBmb250SXRhbGljKCkgY29uc3QgeyByZXR1cm4gZm9u
dERlc2NyaXB0aW9uKCkuaXRhbGljKCk7IH0KQEAgLTkxMyw5ICs5MTEsNyBAQCBwdWJsaWM6CiAg
ICAgLy8gT25seSB1c2VkIGZvciBibGVuZGluZyBmb250IHNpemVzIHdoZW4gYW5pbWF0aW5nLCBm
b3IgTWF0aE1MIGFub255bW91cyBibG9ja3MsIGFuZCBmb3IgdGV4dCBhdXRvc2l6aW5nLgogICAg
IHZvaWQgc2V0Rm9udFNpemUoZmxvYXQpOwogCi0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05UUykK
ICAgICB2b2lkIHNldEZvbnRWYXJpYXRpb25TZXR0aW5ncyhGb250VmFyaWF0aW9uU2V0dGluZ3Mp
OwotI2VuZGlmCiAgICAgdm9pZCBzZXRGb250V2VpZ2h0KEZvbnRTZWxlY3Rpb25WYWx1ZSk7CiAg
ICAgdm9pZCBzZXRGb250U3RyZXRjaChGb250U2VsZWN0aW9uVmFsdWUpOwogICAgIHZvaWQgc2V0
Rm9udEl0YWxpYyhPcHRpb25hbDxGb250U2VsZWN0aW9uVmFsdWU+KTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlQnVpbGRlckNvbnZlcnRlci5oIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVyLmgKaW5kZXggMzY1YjE4MjdiN2FhYWU4Nzgy
ZmIxMzEzMTE3ZTVkYzI5ZDg1Mzg5NC4uNThkMWExYzA1MWVkZmZiOTFiZjY5NTQxOTZjZWUwMDBh
YTNiZjJlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29u
dmVydGVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ29udmVydGVy
LmgKQEAgLTEzNSw5ICsxMzUsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEZvbnRTZWxlY3Rpb25W
YWx1ZSBjb252ZXJ0Rm9udFdlaWdodChCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOwog
ICAgIHN0YXRpYyBGb250U2VsZWN0aW9uVmFsdWUgY29udmVydEZvbnRTdHJldGNoKEJ1aWxkZXJT
dGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIEZvbnRTZWxlY3Rpb25WYWx1ZSBj
b252ZXJ0Rm9udFN0eWxlKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0IENTU1ZhbHVlJik7Ci0jaWYgRU5B
QkxFKFZBUklBVElPTl9GT05UUykKICAgICBzdGF0aWMgRm9udFZhcmlhdGlvblNldHRpbmdzIGNv
bnZlcnRGb250VmFyaWF0aW9uU2V0dGluZ3MoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUm
KTsKLSNlbmRpZgogICAgIHN0YXRpYyBTVkdMZW5ndGhWYWx1ZSBjb252ZXJ0U1ZHTGVuZ3RoVmFs
dWUoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmKTsKICAgICBzdGF0aWMgVmVjdG9yPFNW
R0xlbmd0aFZhbHVlPiBjb252ZXJ0U1ZHTGVuZ3RoVmVjdG9yKEJ1aWxkZXJTdGF0ZSYsIGNvbnN0
IENTU1ZhbHVlJik7CiAgICAgc3RhdGljIFZlY3RvcjxTVkdMZW5ndGhWYWx1ZT4gY29udmVydFN0
cm9rZURhc2hBcnJheShCdWlsZGVyU3RhdGUmLCBjb25zdCBDU1NWYWx1ZSYpOwpAQCAtMTMyNiw3
ICsxMzI0LDYgQEAgaW5saW5lIEZvbnRTZWxlY3Rpb25WYWx1ZSBCdWlsZGVyQ29udmVydGVyOjpj
b252ZXJ0Rm9udFN0cmV0Y2goQnVpbGRlclN0YXRlJiwgY28KICAgICByZXR1cm4gY29udmVydEZv
bnRTdHJldGNoRnJvbVZhbHVlKHZhbHVlKTsKIH0KIAotI2lmIEVOQUJMRShWQVJJQVRJT05fRk9O
VFMpCiBpbmxpbmUgRm9udFZhcmlhdGlvblNldHRpbmdzIEJ1aWxkZXJDb252ZXJ0ZXI6OmNvbnZl
cnRGb250VmFyaWF0aW9uU2V0dGluZ3MoQnVpbGRlclN0YXRlJiwgY29uc3QgQ1NTVmFsdWUmIHZh
bHVlKQogewogICAgIGlmIChpczxDU1NQcmltaXRpdmVWYWx1ZT4odmFsdWUpKSB7CkBAIC0xMzQx
LDcgKzEzMzgsNiBAQCBpbmxpbmUgRm9udFZhcmlhdGlvblNldHRpbmdzIEJ1aWxkZXJDb252ZXJ0
ZXI6OmNvbnZlcnRGb250VmFyaWF0aW9uU2V0dGluZ3MoQnVpbAogICAgIH0KICAgICByZXR1cm4g
c2V0dGluZ3M7CiB9Ci0jZW5kaWYKIAogI2lmIFBMQVRGT1JNKElPU19GQU1JTFkpCiBpbmxpbmUg
Ym9vbCBCdWlsZGVyQ29udmVydGVyOjpjb252ZXJ0VG91Y2hDYWxsb3V0KEJ1aWxkZXJTdGF0ZSYs
IGNvbnN0IENTU1ZhbHVlJiB2YWx1ZSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxl
L1N0eWxlQnVpbGRlckN1c3RvbS5oIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVy
Q3VzdG9tLmgKaW5kZXggN2I4OTYxYjMxZDE0NTU0ZTQ5YmQ4YzQwMjI3YmY3NTczNjY5ZmQ1Mi4u
YjYzZDVmZGY5YzE1ZTJiM2Q2NjBkZmI4MDIwNzc3ZTUxNzgxZTIzYiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvc3R5bGUvU3R5bGVCdWlsZGVyQ3VzdG9tLmgKQEAgLTExNywxMCArMTE3LDggQEAgcHVibGlj
OgogICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdFdlYmtpdE1hc2tJbWFnZShCdWlsZGVyU3Rh
dGUmKSB7IH0KICAgICBzdGF0aWMgdm9pZCBhcHBseUluaXRpYWxGb250RmVhdHVyZVNldHRpbmdz
KEJ1aWxkZXJTdGF0ZSYpIHsgfQogICAgIHN0YXRpYyB2b2lkIGFwcGx5SW5oZXJpdEZvbnRGZWF0
dXJlU2V0dGluZ3MoQnVpbGRlclN0YXRlJikgeyB9Ci0jaWYgRU5BQkxFKFZBUklBVElPTl9GT05U
UykKICAgICBzdGF0aWMgdm9pZCBhcHBseUluaXRpYWxGb250VmFyaWF0aW9uU2V0dGluZ3MoQnVp
bGRlclN0YXRlJikgeyB9CiAgICAgc3RhdGljIHZvaWQgYXBwbHlJbmhlcml0Rm9udFZhcmlhdGlv
blNldHRpbmdzKEJ1aWxkZXJTdGF0ZSYpIHsgfQotI2VuZGlmCiAKICAgICAvLyBDdXN0b20gaGFu
ZGxpbmcgb2YgaW5oZXJpdCArIHZhbHVlIHNldHRpbmcgb25seS4KICAgICBzdGF0aWMgdm9pZCBh
cHBseUluaGVyaXREaXNwbGF5KEJ1aWxkZXJTdGF0ZSYpOwo=
</data>

          </attachment>
      

    </bug>

</bugzilla>