<?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>230592</bug_id>
          
          <creation_ts>2021-09-21 19:00:57 -0700</creation_ts>
          <short_desc>Add FontCreationContext</short_desc>
          <delta_ts>2021-09-21 21:06:24 -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>New Bugs</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>
          
          <blocked>230446</blocked>
    
    <blocked>230449</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>annulen</cc>
    
    <cc>cdumez</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>ews-watchlist</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>japhet</cc>
    
    <cc>macpherson</cc>
    
    <cc>menard</cc>
    
    <cc>ryuan.choi</cc>
    
    <cc>sergio</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1795903</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-21 19:00:57 -0700</bug_when>
    <thetext>Add FontCreationContext</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795907</commentid>
    <comment_count>1</comment_count>
      <attachid>438903</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-21 19:05:41 -0700</bug_when>
    <thetext>Created attachment 438903
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795908</commentid>
    <comment_count>2</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2021-09-21 19:06:20 -0700</bug_when>
    <thetext>&lt;rdar://problem/83379889&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795914</commentid>
    <comment_count>3</comment_count>
      <attachid>438906</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-21 19:18:34 -0700</bug_when>
    <thetext>Created attachment 438906
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795926</commentid>
    <comment_count>4</comment_count>
      <attachid>438906</attachid>
    <who name="alan">zalan</who>
    <bug_when>2021-09-21 20:05:34 -0700</bug_when>
    <thetext>Comment on attachment 438906
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:579
&gt; -    auto attributes = adoptCF(CFDictionaryCreateMutable(kCFAllocatorDefault, 2, &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks));
&gt; +    auto attributes = adoptCF(CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks));

TIL Pass 0 to specify that the maximum capacity is not limited.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795928</commentid>
    <comment_count>5</comment_count>
      <attachid>438910</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-21 20:31:39 -0700</bug_when>
    <thetext>Created attachment 438910
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795929</commentid>
    <comment_count>6</comment_count>
      <attachid>438906</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-21 20:33:20 -0700</bug_when>
    <thetext>Comment on attachment 438906
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:579
&gt;&gt; +    auto attributes = adoptCF(CFDictionaryCreateMutable(kCFAllocatorDefault, 0, &amp;kCFTypeDictionaryKeyCallBacks, &amp;kCFTypeDictionaryValueCallBacks));
&gt; 
&gt; TIL Pass 0 to specify that the maximum capacity is not limited.

❤️</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1795938</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2021-09-21 21:06:24 -0700</bug_when>
    <thetext>Committed r282863 (241994@main): &lt;https://commits.webkit.org/241994@main&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438903</attachid>
            <date>2021-09-21 19:05:41 -0700</date>
            <delta_ts>2021-09-21 19:51:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230592-20210921190540.patch</filename>
            <type>text/plain</type>
            <size>58130</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk1ZTUwZDcyOWQyYTNj
Y2NmNWFkMjZkNjliMmI5Y2U2MmE2YmY4NS4uYmUxMTVjNDg4NzQwNTJiYTRlOTNkNWQ4MWY2OTNl
MmUyNWEzYmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDIxLTA5LTIxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEZvbnRD
cmVhdGlvbkNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMDU5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlIGhhdmUgdGhpcyBwYXR0ZXJuIHdoZXJlIHdlIHBhc3MgYXJvdW5kICJjb25zdCBG
b250RmVhdHVyZVNldHRpbmdzJiwgY29uc3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxp
dGllcyYiCisgICAgICAgIHRocm91Z2ggYWxsIHRoZSB2YXJpb3VzIGZvbnQgY3JlYXRpb24gcm91
dGluZXMuIFdoZW4gSSBhZGQgc3VwcG9ydCBmb3IgZm9udCBwYWxldHRlcyBhbmQgZm9udC1mZWF0
dXJlLXZhbHVlcywKKyAgICAgICAgdGhpcyB3b3VsZCBuZWVkIHRvIGdyb3cgdG8gNCBhcmd1bWVu
dHMgYmVpbmcgcGFzc2VkIGFyb3VuZCBpbnN0ZWFkIG9mIDIuIFJhdGhlciB0aGFuIHBhc3Npbmcg
YWxsIHRoZXNlIGFyZ3VtZW50cworICAgICAgICBhcm91bmQsIGEgYmV0dGVyIGlkZWEgaXMgdG8g
ZW5jYXBzdWxhdGUgdGhlc2UgYXJndW1lbnRzIGluIGEgImNvbnRleHQiIG9iamVjdC4gVGhpcyBp
cyBiZWNhdXNlIG1vc3QgcGxhY2VzIHRoYXQKKyAgICAgICAgdGFrZSB0aGVzZSBhcmd1bWVudHMg
ZG9uJ3QgYWN0dWFsbHkgaW5zcGVjdCB0aGVtLCBidXQgaW5zdGVhZCBqdXN0IGZvcndhcmQgdGhl
bSBvbiB0byBvdGhlciByb3V0aW5lcy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0
aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBj
c3MvQ1NTRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6OmZvbnQp
OgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZVNvdXJjZTo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFj
ZVNvdXJjZTo6Zm9udCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6CisgICAg
ICAgICogY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
U2VsZWN0b3I6OmZvbnRSYW5nZXNGb3JGYW1pbHkpOgorICAgICAgICAqIGxvYWRlci9Gb250TG9h
ZFJlcXVlc3QuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpjcmVhdGVGb250KToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkRm9udC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250
TG9hZFJlcXVlc3QuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTVkdGb250OjpjcmVhdGVGb250KToKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFNWR0ZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKToKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhQ2FjaGVL
ZXlIYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Y2FjaGVkRm9udFBs
YXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmZvbnRGb3JGYW1pbHkp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udENhY2hlOjpmb250Rm9yRmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Y2FjaGVkRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2Fj
aGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGFGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q3JlYXRpb25Db250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udENyZWF0aW9uQ29udGV4dDo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGb250Q3JlYXRpb25Db250ZXh0OjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmFkZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJlcGFyZVBsYXRmb3JtRm9udCk6Cisg
ICAgICAgIChXZWJDb3JlOjpmb250V2l0aEZhbWlseSk6CisgICAgICAgIChXZWJDb3JlOjpGb250
Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENh
Y2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0Ojpmb250UmFuZ2VzIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250
UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZvbnRMb2FkUmVxdWVzdDo6Y3JlYXRlRm9u
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuaDoKKwogMjAyMS0w
OS0yMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlZHVjZSBzaXplb2YoTmV0d29ya0xvYWRNZXRyaWNzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggZWE3N2Q4NmQyMzlkNjA1MGQ0NmJkYTc1MzVkYjM0ZWRhNzhkYTI4NC4uMjY2NDg0NGNhMmIz
ZTM0OTA3MWVkZDFlMzRiMWQ3M2Y1ZDU1ODkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjU2
LDYgKzEyNTYsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYXNjYWRlRGVzY3JpcHRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
Rm9udHMuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvbkNvbnRleHQuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udEZhbWlseVNwZWNpZmljYXRpb25OdWxsLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9G
b250R2VuZXJpY0ZhbWlsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MjdhZTk3N2E1OGM2MjE0ZTlkMzkwMjQwN2VhOTA0
M2YzNTJhYjZhLi4wOGY0NTNhNDIzMTQ5ODAzNGY4MGExMGI0ZGM5Yjc0YTM0OWNlYTQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC02NTEsNiArNjUxLDcgQEAKIAkJMUMyMUU1N0QxODNFRDFGRjAwMUMyODlEIC8qIElPU3VyZmFj
ZVBvb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
MjFFNTdCMTgzRUQxRkYwMDFDMjg5RCAvKiBJT1N1cmZhY2VQb29sLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUMyNEVFQTUxQzcyOUNFNDAwODBG
OEZDIC8qIEZvbnRGYWNlU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzI0RUVBMzFDNzI5Q0U0MDA4MEY4RkMgLyogRm9udEZhY2VTZXQuaCAqLzsg
fTsKIAkJMUMyNEVFQTkxQzcyQTdCNDAwODBGOEZDIC8qIEpTRm9udEZhY2VTZXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMjRFRUE3MUM3MkE3QjQw
MDgwRjhGQyAvKiBKU0ZvbnRGYWNlU2V0LmggKi87IH07CisJCTFDMjY2NzFCMjZGQTkzMkYwMDEx
NzA3MyAvKiBGb250Q3JlYXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI2NjcxOTI2RkE3RjJFMDAxMTcwNzMgLyogRm9udENyZWF0
aW9uQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTFDNDNERTZCMjJBQjRCOEEwMDE1MjdEOSAvKiBMb2NhbEN1cnJlbnRUcmFpdENvbGxl
Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
NDNERTY4MjJBQjRCOEEwMDE1MjdEOSAvKiBMb2NhbEN1cnJlbnRUcmFpdENvbGxlY3Rpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQzREMERE
MzI0RDlGMTBEMDAzRDc0OTggLyogR2x5cGhCdWZmZXJNZW1iZXJzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzREMEREMTI0RDlGMERCMDAzRDc0OTgg
LyogR2x5cGhCdWZmZXJNZW1iZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMUM1RTFEQTgyNkY5NEI5MDAwRTA3QUYxIC8qIEZvbnRQYWxldHRl
VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QzVFMURBNjI2Rjk0OUI5MDBFMDdBRjEgLyogRm9udFBhbGV0dGVWYWx1ZXMuaCAqLzsgfTsKQEAg
LTcwNDYsNiArNzA0Nyw3IEBACiAJCTFDMjRFRUE2MUM3MkE3QjQwMDgwRjhGQyAvKiBKU0ZvbnRG
YWNlU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTRm9udEZh
Y2VTZXQuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZvbnRGYWNlU2V0LmNw
cDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUMyNEVFQTcxQzcyQTdC
NDAwODBGOEZDIC8qIEpTRm9udEZhY2VTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gSlNGb250RmFjZVNldC5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Zv
bnRGYWNlU2V0Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDMjY0
OTc5MEQ3RTI0OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlck1hYy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDMjY2NzE5MjZGQTdGMkUwMDExNzA3MyAvKiBGb250Q3Jl
YXRpb25Db250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRDcmVhdGlvbkNvbnRleHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMzMjQ5MTAxQzZENkEzQjAwN0VEQjMyIC8qIEZv
bnRWYXJpYW50QnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGb250VmFyaWFudEJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzM5NjlDRjFCNzQyMTFFMDAyQkNGQTcgLyogRm9udENhY2hlQ29yZVRleHQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udENhY2hlQ29yZVRleHQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzQzREU2ODIyQUI0QjhBMDAxNTI3RDkgLyogTG9j
YWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IExvY2FsQ3VycmVudFRyYWl0Q29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjcwMDEsNiArMjcwMDMsNyBAQAogCQkJCUU0RThCNEYyMjE2QjhCNjAwMEI4ODM0
RCAvKiBGb250Q2FzY2FkZURlc2NyaXB0aW9uLmggKi8sCiAJCQkJQjJDM0RBNTYwRDAwNkNENjAw
RUY2RjI2IC8qIEZvbnRDYXNjYWRlRm9udHMuY3BwICovLAogCQkJCUIyQzNEQTU3MEQwMDZDRDYw
MEVGNkYyNiAvKiBGb250Q2FzY2FkZUZvbnRzLmggKi8sCisJCQkJMUMyNjY3MTkyNkZBN0YyRTAw
MTE3MDczIC8qIEZvbnRDcmVhdGlvbkNvbnRleHQuaCAqLywKIAkJCQkzN0FDQ0U2MjBEQTJBQTk2
MDA4OUU2MDIgLyogRm9udERlc2NyaXB0aW9uLmNwcCAqLywKIAkJCQlCMkMzREE1NTBEMDA2Q0Q2
MDBFRjZGMjYgLyogRm9udERlc2NyaXB0aW9uLmggKi8sCiAJCQkJQzI4MEIzRkQxRUY0NjA4OTAw
RDM1MTM1IC8qIEZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uTnVsbC5jcHAgKi8sCkBAIC0zMjUwMSw2
ICszMjUwNCw3IEBACiAJCQkJQjJDM0RBNjEwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNjYWRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEU4QjRGNTIxNkI5NTY1MDBCODgzNEQgLyogRm9udENh
c2NhZGVEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjgwRDAwNkNENjAw
RUY2RjI2IC8qIEZvbnRDYXNjYWRlRm9udHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDMjY2NzFC
MjZGQTkzMkYwMDExNzA3MyAvKiBGb250Q3JlYXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMkFGRkM3RTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjYwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnREZXNj
cmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM2NjI2MTExQzZFN0NBNjAwQUI1MjdDIC8q
IEZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCmlu
ZGV4IGIxMjU1Njc4OWVmYjU3MDcwNWM5ZTc0MjYwZjNmZjQwZDljYzZjZWYuLjA5OWVhYzRkMDQx
NTYwNGJjNTVkNjAxMTBhOGYxMzdmYWFhYmQ4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTY3OSwxMCArNjc5LDEyIEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9u
dChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50CiAgICAg
ICAgICAgICBGb250OjpWaXNpYmlsaXR5IHZpc2liaWxpdHkgPSBXZWJDb3JlOjp2aXNpYmlsaXR5
KHN0YXR1cygpLCBmb250TG9hZFRpbWluZygpKTsKICAgICAgICAgICAgIHJldHVybiBGb250Ojpj
cmVhdGUoZm9udENhY2hlLmxhc3RSZXNvcnRGYWxsYmFja0ZvbnQoZm9udERlc2NyaXB0aW9uKS0+
cGxhdGZvcm1EYXRhKCksIEZvbnQ6Ok9yaWdpbjo6TG9jYWwsICZmb250Q2FjaGUsIEZvbnQ6Oklu
dGVyc3RpdGlhbDo6WWVzLCB2aXNpYmlsaXR5KTsKICAgICAgICAgfQotICAgICAgICBjYXNlIENT
U0ZvbnRGYWNlU291cmNlOjpTdGF0dXM6OlN1Y2Nlc3M6Ci0gICAgICAgICAgICBpZiAoYXV0byBy
ZXN1bHQgPSBzb3VyY2UtPmZvbnQoZm9udERlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50
aGV0aWNJdGFsaWMsIG1fZmVhdHVyZVNldHRpbmdzLCBtX2ZvbnRTZWxlY3Rpb25DYXBhYmlsaXRp
ZXMpKQorICAgICAgICBjYXNlIENTU0ZvbnRGYWNlU291cmNlOjpTdGF0dXM6OlN1Y2Nlc3M6IHsK
KyAgICAgICAgICAgIEZvbnRDcmVhdGlvbkNvbnRleHQgZm9udENyZWF0aW9uQ29udGV4dCB7IG1f
ZmVhdHVyZVNldHRpbmdzLCBtX2ZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXMgfTsKKyAgICAgICAg
ICAgIGlmIChhdXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5bnRo
ZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAg
ICAgICAgIGNhc2UgQ1NTRm9udEZhY2VTb3VyY2U6OlN0YXR1czo6RmFpbHVyZToKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNl
LmNwcAppbmRleCBkM2EzYjAwNjY0ZDZkZmU4NWFlMmI5MDI2ZmVlZTJjOTc2NDA2YTI5Li5iMjA4
NTFmZThjOWY3ZGJiNjNmNGQ5MmZiM2QxNzhlM2Y5ZjliYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNvdXJjZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIkZvbnQuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGb250
Q2FzY2FkZURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiRm9udENyZWF0aW9uQ29udGV4dC5oIgog
I2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJGb250RGVzY3Jp
cHRpb24uaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgpAQCAtMTg1LDcgKzE4
Niw3IEBAIHZvaWQgQ1NTRm9udEZhY2VTb3VyY2U6OmxvYWQoRG9jdW1lbnQqIGRvY3VtZW50KQog
ICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWlseShtX2ZhbWlseU5hbWVPclVS
SSk7CiAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKDEpOwogICAg
ICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRz
KG1fZmFjZS5hbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKLSAgICAgICAgICAgIHN1Y2Nlc3Mg
PSBGb250Q2FjaGU6OnNpbmdsZXRvbigpLmZvbnRGb3JGYW1pbHkoZm9udERlc2NyaXB0aW9uLCBt
X2ZhbWlseU5hbWVPclVSSSwgbnVsbHB0ciwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxp
dGllcygpLCB0cnVlKTsKKyAgICAgICAgICAgIHN1Y2Nlc3MgPSBGb250Q2FjaGU6OnNpbmdsZXRv
bigpLmZvbnRGb3JGYW1pbHkoZm9udERlc2NyaXB0aW9uLCBtX2ZhbWlseU5hbWVPclVSSSwgeyB9
LCB0cnVlKTsKICAgICAgICAgICAgIGlmIChkb2N1bWVudCAmJiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkFQSVN0YXRpc3RpY3NFbmFibGVkKCkpCiAgICAgICAg
ICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmxvZ0ZvbnRMb2FkKCpkb2N1
bWVudCwgbV9mYW1pbHlOYW1lT3JVUkkuc3RyaW5nKCksIHN1Y2Nlc3MpOwogICAgICAgICB9CkBA
IC0xOTMsNyArMTk0LDcgQEAgdm9pZCBDU1NGb250RmFjZVNvdXJjZTo6bG9hZChEb2N1bWVudCog
ZG9jdW1lbnQpCiAgICAgfQogfQogCi1SZWZQdHI8Rm9udD4gQ1NTRm9udEZhY2VTb3VyY2U6OmZv
bnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgc3ludGhldGlj
Qm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZv
bnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZh
Y2VDYXBhYmlsaXRpZXMpCitSZWZQdHI8Rm9udD4gQ1NTRm9udEZhY2VTb3VyY2U6OmZvbnQoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgc3ludGhldGljQm9sZCwg
Ym9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRDcmVh
dGlvbkNvbnRleHQpCiB7CiAgICAgQVNTRVJUKHN0YXR1cygpID09IFN0YXR1czo6U3VjY2Vzcyk7
CiAKQEAgLTIwMywxMiArMjA0LDEyIEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZVNvdXJjZTo6
Zm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vCiAgICAgICAg
IGlmIChtX2ltbWVkaWF0ZVNvdXJjZSkgewogICAgICAgICAgICAgaWYgKCFtX2ltbWVkaWF0ZUZv
bnRDdXN0b21QbGF0Zm9ybURhdGEpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgICAgICAgICByZXR1cm4gRm9udDo6Y3JlYXRlKENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZy
b21DdXN0b21EYXRhKCptX2ltbWVkaWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEsIGZvbnREZXNj
cmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVz
LCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlKTsKKyAgICAgICAg
ICAgIHJldHVybiBGb250OjpjcmVhdGUoQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3Rv
bURhdGEoKm1faW1tZWRpYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YSwgZm9udERlc2NyaXB0aW9u
LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRDcmVhdGlvbkNvbnRleHQpLCBG
b250OjpPcmlnaW46OlJlbW90ZSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBXZSdyZSBsb2Nh
bC4gSnVzdCByZXR1cm4gYSBGb250IGZyb20gdGhlIG5vcm1hbCBjYWNoZS4KICAgICAgICAgLy8g
V2UgZG9uJ3Qgd2FudCB0byBjaGVjayBhbHRlcm5hdGUgZm9udCBmYW1pbHkgbmFtZXMgaGVyZSwg
c28gcGFzcyB0cnVlIGFzIHRoZSBjaGVja2luZ0FsdGVybmF0ZU5hbWUgcGFyYW1ldGVyLgotICAg
ICAgICByZXR1cm4gRm9udENhY2hlOjpzaW5nbGV0b24oKS5mb250Rm9yRmFtaWx5KGZvbnREZXNj
cmlwdGlvbiwgbV9mYW1pbHlOYW1lT3JVUkksICZmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNh
cGFiaWxpdGllcywgdHJ1ZSk7CisgICAgICAgIHJldHVybiBGb250Q2FjaGU6OnNpbmdsZXRvbigp
LmZvbnRGb3JGYW1pbHkoZm9udERlc2NyaXB0aW9uLCBtX2ZhbWlseU5hbWVPclVSSSwgZm9udENy
ZWF0aW9uQ29udGV4dCwgdHJ1ZSk7CiAgICAgfQogCiAgICAgaWYgKG1fZm9udFJlcXVlc3QpIHsK
QEAgLTIxNiw3ICsyMTcsNyBAQCBSZWZQdHI8Rm9udD4gQ1NTRm9udEZhY2VTb3VyY2U6OmZvbnQo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvbwogICAgICAgICBBU1NF
UlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOwogCiAgICAgICAgIEFTU0VSVChzdGF0dXMoKSA9
PSBTdGF0dXM6OlN1Y2Nlc3MpOwotICAgICAgICBhdXRvIHJlc3VsdCA9IG1fZm9udFJlcXVlc3Qt
PmNyZWF0ZUZvbnQoZm9udERlc2NyaXB0aW9uLCBtX2ZhbWlseU5hbWVPclVSSSwgc3ludGhldGlj
Qm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxp
dGllcyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbV9mb250UmVxdWVzdC0+Y3JlYXRlRm9udChm
b250RGVzY3JpcHRpb24sIG1fZmFtaWx5TmFtZU9yVVJJLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0
aWNJdGFsaWMsIGZvbnRDcmVhdGlvbkNvbnRleHQpOwogICAgICAgICBBU1NFUlQocmVzdWx0KTsK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CkBAIC0yMjgsNyArMjI5LDcgQEAgUmVmUHRy
PEZvbnQ+IENTU0ZvbnRGYWNlU291cmNlOjpmb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9u
dERlc2NyaXB0aW9uLCBib28KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFtX2lu
RG9jdW1lbnRDdXN0b21QbGF0Zm9ybURhdGEpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IHJldHVybiBGb250OjpjcmVhdGUobV9pbkRvY3VtZW50Q3VzdG9tUGxhdGZvcm1EYXRhLT5mb250
UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRh
bGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZvbnQ6Ok9yaWdp
bjo6UmVtb3RlKTsKKyAgICByZXR1cm4gRm9udDo6Y3JlYXRlKG1faW5Eb2N1bWVudEN1c3RvbVBs
YXRmb3JtRGF0YS0+Zm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0Jv
bGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCksIEZvbnQ6Ok9yaWdpbjo6
UmVtb3RlKTsKIH0KIAogYm9vbCBDU1NGb250RmFjZVNvdXJjZTo6aXNTVkdGb250RmFjZVNvdXJj
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oCmluZGV4IDMwZDc5
OTdmZjE3MTE5ZGU0NzZlNDczNTQyNTU3NDI0ZjhmNzg4N2YuLjFmNjU3YTY2NDUxYTBjNGNmNzE3
ZjVlODBjZDEwZWEyYmY5N2Y5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJj
ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDct
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAgY2xhc3MgQ1NTRm9udEZhY2U7CiBjbGFzcyBD
U1NGb250U2VsZWN0b3I7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZvbnQ7CitzdHJ1Y3QgRm9u
dENyZWF0aW9uQ29udGV4dDsKIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOwogY2xhc3Mg
Rm9udERlc2NyaXB0aW9uOwogc3RydWN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRp
ZXM7CkBAIC03Myw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG9wcG9ydHVuaXN0aWNhbGx5
U3RhcnRGb250RGF0YVVSTExvYWRpbmcoKTsKIAogICAgIHZvaWQgbG9hZChEb2N1bWVudCogPSBu
dWxscHRyKTsKLSAgICBSZWZQdHI8Rm9udD4gZm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250RmVhdHVy
ZVNldHRpbmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyk7CisgICAgUmVm
UHRyPEZvbnQ+IGZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBzeW50aGV0aWNCb2xk
LCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYpOwogCiAg
ICAgRm9udExvYWRSZXF1ZXN0KiBmb250TG9hZFJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX2Zv
bnRSZXF1ZXN0LmdldCgpOyB9CiAgICAgYm9vbCByZXF1aXJlc0V4dGVybmFsUmVzb3VyY2UoKSBj
b25zdCB7IHJldHVybiBtX2ZvbnRSZXF1ZXN0LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U2VsZWN0b3IuY3BwCmluZGV4IDRjOWYzMjViYWYxMDUzOTIwOTcxMzc2N2MyNjhjNzVlN2Ez
ZTgxNWQuLjBlOGRmYjI5ODU0NTMxNTIyOWIwMDNiYTliZGZlMmU3ZGJkMGY1NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCkBAIC0zNDcsNyArMzQ3LDcgQEAgRm9udFJh
bmdlcyBDU1NGb250U2VsZWN0b3I6OmZvbnRSYW5nZXNGb3JGYW1pbHkoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3IKIAogICAgIGlmICghcmVzb2x2ZUdlbmVyaWNGYW1pbHlGaXJzdCkK
ICAgICAgICAgcmVzb2x2ZUFuZEFzc2lnbkdlbmVyaWNGYW1pbHkoKTsKLSAgICBhdXRvIGZvbnQg
PSBtX2ZvbnRDYWNoZS0+Zm9udEZvckZhbWlseSgqZm9udERlc2NyaXB0aW9uRm9yTG9va3VwLCBm
YW1pbHlGb3JMb29rdXApOworICAgIGF1dG8gZm9udCA9IG1fZm9udENhY2hlLT5mb250Rm9yRmFt
aWx5KCpmb250RGVzY3JpcHRpb25Gb3JMb29rdXAsIGZhbWlseUZvckxvb2t1cCwgeyB9KTsKICAg
ICBpZiAoZG9jdW1lbnQgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS53ZWJBUElTdGF0aXN0aWNzRW5hYmxlZCgpKQogICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2hhcmVkKCkubG9nRm9udExvYWQoKmRvY3VtZW50LCBmYW1pbHlGb3JMb29rdXAuc3RyaW5n
KCksICEhZm9udCk7CiAgICAgcmV0dXJuIEZvbnRSYW5nZXMgeyBXVEZNb3ZlKGZvbnQpIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9udExvYWRSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRm9udExvYWRSZXF1ZXN0LmgKaW5kZXggNWRmYWM4MmNiNTdkYTc3
ZjNiMjA4NzBiZTYwYzNjNDliMzQ2MWYyZS4uOTVjM2U3NjA5MDgwYTBmMjhmMjRkY2Y4N2VmMzY1
MjY1YzZmOGE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZvbnRMb2FkUmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb250TG9hZFJlcXVlc3QuaApAQCAt
MSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMjEgTWV0cm9sb2dpY2FsIEdyb3Vw
IEIuVi4KICAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBGb250Oworc3RydWN0IEZvbnRDcmVhdGlvbkNvbnRleHQ7CiBjbGFzcyBGb250RGVzY3Jp
cHRpb247CiBjbGFzcyBGb250TG9hZFJlcXVlc3Q7CiBzdHJ1Y3QgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllczsKQEAgLTUxLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGVuc3Vy
ZUN1c3RvbUZvbnREYXRhKGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSkgPSAwOwotICAgIHZp
cnR1YWwgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29u
c3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhl
dGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiwgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllcykgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZv
bnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250Q3JlYXRp
b25Db250ZXh0JikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChGb250TG9hZFJl
cXVlc3RDbGllbnQqKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRGb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRG
b250LmNwcAppbmRleCAyZDM5Y2Q2YjYwODBlMTIwYjA0N2RjMzVhMGM0M2ZjMmFiYzE1OGZmLi44
YzJiYzJhMzQxYzgyMzUxZDdmNjYyNWJjZTI3MWQwNzc2MzNhZTk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkRm9udENsaWVudC5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJGb250Q3JlYXRpb25Db250ZXh0LmgiCiAj
aW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlw
dGlvbi5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKQEAgLTEwOSwyMCArMTEwLDIw
IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBDYWNoZWRGb250Ojpj
cmVhdGVDdXN0b21Gb250RGF0YShTaGFyZWRCCiAgICAgcmV0dXJuIGJ1ZmZlciA/IGNyZWF0ZUZv
bnRDdXN0b21QbGF0Zm9ybURhdGEoKmJ1ZmZlciwgaXRlbUluQ29sbGVjdGlvbikgOiBudWxscHRy
OwogfQogCi1SZWZQdHI8Rm9udD4gQ2FjaGVkRm9udDo6Y3JlYXRlRm9udChjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYsIGJvb2wgc3ludGhl
dGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3Mm
IGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9u
dEZhY2VDYXBhYmlsaXRpZXMpCitSZWZQdHI8Rm9udD4gQ2FjaGVkRm9udDo6Y3JlYXRlRm9udChj
b25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYs
IGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRDcmVh
dGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIEZvbnQ6OmNy
ZWF0ZShwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRoZXRp
Y0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmls
aXRpZXMpLCBGb250OjpPcmlnaW46OlJlbW90ZSk7CisgICAgcmV0dXJuIEZvbnQ6OmNyZWF0ZShw
bGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQs
IHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCksIEZvbnQ6Ok9yaWdpbjo6UmVt
b3RlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9t
Q3VzdG9tRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBi
b2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0
dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxp
dGllcykKK0ZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3Rv
bURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRl
eHQpCiB7CiAgICAgQVNTRVJUKG1fZm9udEN1c3RvbVBsYXRmb3JtRGF0YSk7Ci0gICAgcmV0dXJu
IHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKCptX2ZvbnRDdXN0b21QbGF0Zm9ybURhdGEsIGZv
bnREZXNjcmlwdGlvbiwgYm9sZCwgaXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNh
cGFiaWxpdGllcyk7CisgICAgcmV0dXJuIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKCptX2Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEsIGZvbnREZXNjcmlwdGlvbiwgYm9sZCwgaXRhbGljLCBmb250
Q3JlYXRpb25Db250ZXh0KTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0
Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShGb250Q3VzdG9tUGxhdGZvcm1EYXRhJiBmb250Q3VzdG9t
UGxhdGZvcm1EYXRhLCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9v
bCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VG
ZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFi
aWxpdGllcykKK0ZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1
c3RvbURhdGEoRm9udEN1c3RvbVBsYXRmb3JtRGF0YSYgZm9udEN1c3RvbVBsYXRmb3JtRGF0YSwg
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRleHQpCiB7
Ci0gICAgcmV0dXJuIGZvbnRDdXN0b21QbGF0Zm9ybURhdGEuZm9udFBsYXRmb3JtRGF0YShmb250
RGVzY3JpcHRpb24sIGJvbGQsIGl0YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBh
YmlsaXRpZXMpOworICAgIHJldHVybiBmb250Q3VzdG9tUGxhdGZvcm1EYXRhLmZvbnRQbGF0Zm9y
bURhdGEoZm9udERlc2NyaXB0aW9uLCBib2xkLCBpdGFsaWMsIGZvbnRDcmVhdGlvbkNvbnRleHQp
OwogfQogCiB2b2lkIENhY2hlZEZvbnQ6OmFsbENsaWVudHNSZW1vdmVkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCmluZGV4IDIzMDEzYWZiYjRjYzhjN2FkOWU1Mjlm
ZDRhOTg0ZjFhYzc2MTQxNmIuLmVhOTE3ZGExMWM3MjYxNWJhZWQ3NzZkMWRmYzg3NTMxZTUxNjQz
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2
ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFJlc291cmNlTG9h
ZGVyOworc3RydWN0IEZvbnRDcmVhdGlvbkNvbnRleHQ7CiBjbGFzcyBGb250RGVzY3JpcHRpb247
CiBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogc3RydWN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRD
YXBhYmlsaXRpZXM7CkBAIC01NCwxMiArNTUsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIGVuc3VyZUN1c3RvbUZvbnREYXRhKGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSk7CiAg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVD
dXN0b21Gb250RGF0YShTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmIGl0ZW1JbkNvbGxlY3Rp
b24sIGJvb2wmIHdyYXBwaW5nKTsKLSAgICBzdGF0aWMgRm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9y
bURhdGFGcm9tQ3VzdG9tRGF0YShGb250Q3VzdG9tUGxhdGZvcm1EYXRhJiwgY29uc3QgRm9udERl
c2NyaXB0aW9uJiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0
aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpOworICAgIHN0YXRpYyBG
b250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKEZvbnRDdXN0b21QbGF0
Zm9ybURhdGEmLCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jik7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxGb250
PiBjcmVhdGVGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIHJl
bW90ZVVSSSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3Qg
Rm9udEZlYXR1cmVTZXR0aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMp
OworICAgIHZpcnR1YWwgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJiwgY29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJv
b2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jik7CiAKIHByb3Rl
Y3RlZDoKLSAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRG
ZWF0dXJlU2V0dGluZ3MmLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzKTsKKyAg
ICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNv
bnRleHQmKTsKIAogICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoU2hhcmVkQnVmZmVyKiBk
YXRhKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZv
bnRMb2FkUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnRM
b2FkUmVxdWVzdC5oCmluZGV4IGI5YjBjZjg2ZWE5YzEzYTU3ZDNhNTEwZGMxN2E5Zjg4NWFhZDBi
YjcuLjEwY2ZiYTUwYjQ2YWE0NTlkN2ZiNjcwOWNlMjlmNGY1YmE0YjRkOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250TG9hZFJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udExvYWRSZXF1ZXN0LmgKQEAg
LTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDIxIE1ldHJvbG9naWNhbCBHcm91
cCBCLlYuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzM0LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitzdHJ1Y3QgRm9udENyZWF0aW9uQ29udGV4dDsKKwogY2xhc3MgQ2FjaGVkRm9udExvYWRSZXF1
ZXN0IGZpbmFsIDogcHVibGljIEZvbnRMb2FkUmVxdWVzdCwgcHVibGljIENhY2hlZEZvbnRDbGll
bnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNTYsOSArNTks
OSBAQCBwcml2YXRlOgogICAgIGJvb2wgZXJyb3JPY2N1cnJlZCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fZm9udC0+ZXJyb3JPY2N1cnJlZCgpOyB9CiAKICAgICBib29sIGVuc3VyZUN1c3RvbUZv
bnREYXRhKGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSkgZmluYWwgeyByZXR1cm4gbV9mb250
LT5lbnN1cmVDdXN0b21Gb250RGF0YShyZW1vdGVVUkkpOyB9Ci0gICAgUmVmUHRyPEZvbnQ+IGNy
ZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBzZXR0aW5ncywgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpIGZpbmFsCisgICAgUmVmUHRyPEZvbnQ+IGNy
ZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
LCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25Db250ZXh0KSBmaW5hbAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fZm9udC0+Y3JlYXRlRm9udChkZXNjcmlwdGlvbiwgcmVt
b3RlVVJJLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIHNldHRpbmdzLCBjYXBhYmls
aXRpZXMpOworICAgICAgICByZXR1cm4gbV9mb250LT5jcmVhdGVGb250KGRlc2NyaXB0aW9uLCBy
ZW1vdGVVUkksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29u
dGV4dCk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRDbGllbnQoRm9udExvYWRSZXF1ZXN0Q2xpZW50
KiBjbGllbnQpIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU1ZHRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZH
Rm9udC5jcHAKaW5kZXggZTA3YzM3NzRlOGM1YmJiMmQzYTc5YTJlYTE2YzA3NTIwMWQ5MTNlNC4u
MzgwMjhhZjY3NmU3MTVlZTg3NDM1ZjlkYThhNGIzMTRjYjMxMjNiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkNhY2hlZFNWR0ZvbnQuaCIKIAorI2luY2x1ZGUgIkZvbnRDcmVhdGlvbkNvbnRl
eHQuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UGxhdGZv
cm1EYXRhLmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKQEAgLTUzLDE3ICs1NCwxNyBAQCBD
YWNoZWRTVkdGb250OjpDYWNoZWRTVkdGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIENhY2hlZFNWR0ZvbnQmIHJlcwogewogfQogCi1SZWZQdHI8Rm9udD4gQ2FjaGVkU1ZHRm9u
dDo6Y3JlYXRlRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29u
c3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhl
dGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBG
b250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKQor
UmVmUHRyPEZvbnQ+IENhY2hlZFNWR0ZvbnQ6OmNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSwgYm9vbCBz
eW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udENyZWF0aW9uQ29u
dGV4dCYgZm9udENyZWF0aW9uQ29udGV4dCkKIHsKICAgICBBU1NFUlQoZmlyc3RGb250RmFjZShy
ZW1vdGVVUkkpKTsKLSAgICByZXR1cm4gQ2FjaGVkRm9udDo6Y3JlYXRlRm9udChmb250RGVzY3Jp
cHRpb24sIHJlbW90ZVVSSSwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFj
ZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyk7CisgICAgcmV0dXJuIENhY2hlZEZvbnQ6
OmNyZWF0ZUZvbnQoZm9udERlc2NyaXB0aW9uLCByZW1vdGVVUkksIHN5bnRoZXRpY0JvbGQsIHN5
bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCk7CiB9CiAKLUZvbnRQbGF0Zm9ybURh
dGEgQ2FjaGVkU1ZHRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0
IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVj
aWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpCitGb250UGxhdGZvcm1EYXRh
IENhY2hlZFNWR0ZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBG
b250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25Db250ZXh0KQogewogICAgIGlmIChtX2V4
dGVybmFsU1ZHRG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnRE
ZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBib2xkLCBpdGFsaWMpOwotICAgIHJldHVy
biBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24s
IGJvbGQsIGl0YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMpOwor
ICAgICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQ
aXhlbFNpemUoKSwgYm9sZCwgaXRhbGljKTsgLy8gRklYTUU6IFRoaXMgZG9lc24ndCBzZWVtIHJp
Z2h0LgorICAgIHJldHVybiBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShm
b250RGVzY3JpcHRpb24sIGJvbGQsIGl0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCk7CiB9CiAK
IGJvb2wgQ2FjaGVkU1ZHRm9udDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEoY29uc3QgQXRvbVN0cmlu
ZyYgcmVtb3RlVVJJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNWR0ZvbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250
LmgKaW5kZXggM2Y2MDc4OTcwNzRlYWRlMjUxMTFkYTFlMDY4NWNjZmI4NTU0YTgwYi4uM2YwYzAx
NDNjMGY4ZDllYjE3ODNiMGZiNjNlMjIwNzVmNzgyOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgRm9udENyZWF0aW9uQ29udGV4dDsKIGNsYXNzIFNWR0Zv
bnRGYWNlRWxlbWVudDsKIGNsYXNzIFNldHRpbmdzOwogCkBAIC0zOSwxMCArNDAsMTAgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBlbnN1cmVDdXN0b21Gb250RGF0YShjb25zdCBBdG9tU3RyaW5nJiBy
ZW1vdGVVUkkpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRo
ZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdz
JiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcykgb3ZlcnJpZGU7CisgICAgUmVm
UHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
LCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAg
Rm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRp
bmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyk7CisgICAgRm9udFBsYXRm
b3JtRGF0YSBwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
LCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jik7CiAK
ICAgICBTVkdGb250RWxlbWVudCogZ2V0U1ZHRm9udEJ5SWQoY29uc3QgU3RyaW5nJikgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggNzBkMTAw
YzQ4NThlZWU0Y2ZiZjBkMmM4N2Q0MDczMWFmNTIyZjE1MS4uZGVkNGRlNWQxMzY2M2I4MDUyMmQw
NTNjODIwZDQyN2E0MjFjNGJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKQEAgLTc0LDcgKzc0LDkgQEAgUmVmPEZvbnQ+IEZvbnQ6OmNyZWF0ZShSZWY8U2hh
cmVkQnVmZmVyPiYmIGZvbnRGYWNlRGF0YSwgRm9udDo6T3JpZ2luIG9yaWdpbiwgZmwKICAgICBh
dXRvIGN1c3RvbUZvbnREYXRhID0gQ2FjaGVkRm9udDo6Y3JlYXRlQ3VzdG9tRm9udERhdGEoZm9u
dEZhY2VEYXRhLmdldCgpLCB7IH0sIHdyYXBwaW5nKTsKICAgICBGb250RGVzY3JpcHRpb24gZGVz
Y3JpcHRpb247CiAgICAgZGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKGZvbnRTaXplKTsKLSAg
ICByZXR1cm4gRm9udDo6Y3JlYXRlKENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21E
YXRhKCpjdXN0b21Gb250RGF0YSwgZGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRp
Y0l0YWxpYywgeyB9LCB7IH0pLCBvcmlnaW4sIGZvbnRDYWNoZUZvclZlcnRpY2FsRGF0YSk7Cisg
ICAgLy8gRklYTUU6IFdoeSBkb2Vzbid0IHRoaXMgcGFzcyBpbiBhbnkgbWVhbmluZ2Z1bCBkYXRh
IGZvciB0aGUgbGFzdCBmZXcgYXJndW1lbnRzPworICAgIGF1dG8gcGxhdGZvcm1EYXRhID0gQ2Fj
aGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoKmN1c3RvbUZvbnREYXRhLCBkZXNj
cmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCB7IH0pOworICAgIHJldHVy
biBGb250OjpjcmVhdGUoV1RGTW92ZShwbGF0Zm9ybURhdGEpLCBvcmlnaW4sIGZvbnRDYWNoZUZv
clZlcnRpY2FsRGF0YSk7CiB9CiAKIEZvbnQ6OkZvbnQoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYg
cGxhdGZvcm1EYXRhLCBPcmlnaW4gb3JpZ2luLCBJbnRlcnN0aXRpYWwgaW50ZXJzdGl0aWFsLCBW
aXNpYmlsaXR5IHZpc2liaWxpdHksIE9yaWVudGF0aW9uRmFsbGJhY2sgb3JpZW50YXRpb25GYWxs
YmFjaywgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciwgRm9udENhY2hlKiBmb250Q2FjaGVGb3JWZXJ0aWNhbERhdGEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRl
eCA2ZGNkNTU2N2EzMmU2OWFlNjAyNmY1OWI0YzU2YTQyY2ZlYWYyOTI2Li5jZjEyY2Q3OGJkMjU2
NTM5YWMwZGJiNGZhMThiNWUxYmQ1YWIyMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJG
b250Q2FjaGUuaCIKIAogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiRm9udENy
ZWF0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRl
ICJGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC04MCwxNyArODEsMTgg
QEAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBGb250RmFtaWx5TmFtZSYgYSwgY29uc3Qg
Rm9udEZhbWlseU5hbWUmIGIpCiBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IHsKICAg
ICBGb250RGVzY3JpcHRpb25LZXkgZGVzY3JpcHRpb25LZXk7CiAgICAgRm9udEZhbWlseU5hbWUg
ZmFtaWx5OwotICAgIEZvbnRGZWF0dXJlU2V0dGluZ3MgZmVhdHVyZXM7Ci0gICAgRm9udFNlbGVj
dGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7CisgICAgRm9udENyZWF0aW9u
Q29udGV4dCBmb250Q3JlYXRpb25Db250ZXh0OwogfTsKIAogc3RhdGljIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkmIGEsIGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGFDYWNoZUtleSYgYikKIHsKLSAgICByZXR1cm4gYS5kZXNjcmlwdGlvbktleSA9PSBiLmRlc2Ny
aXB0aW9uS2V5ICYmIGEuZmFtaWx5ID09IGIuZmFtaWx5ICYmIGEuZmVhdHVyZXMgPT0gYi5mZWF0
dXJlcyAmJiBhLmNhcGFiaWxpdGllcyA9PSBiLmNhcGFiaWxpdGllczsKKyAgICByZXR1cm4gYS5k
ZXNjcmlwdGlvbktleSA9PSBiLmRlc2NyaXB0aW9uS2V5CisgICAgICAgICYmIGEuZmFtaWx5ID09
IGIuZmFtaWx5CisgICAgICAgICYmIGEuZm9udENyZWF0aW9uQ29udGV4dCA9PSBiLmZvbnRDcmVh
dGlvbkNvbnRleHQ7CiB9CiAKIHN0cnVjdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXlIYXNoIHsK
LSAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkm
IGtleSkgeyByZXR1cm4gY29tcHV0ZUhhc2goa2V5LmRlc2NyaXB0aW9uS2V5LCBrZXkuZmFtaWx5
LCBrZXkuZmVhdHVyZXMsIGtleS5jYXBhYmlsaXRpZXMudGllZCgpKTsgfQorICAgIHN0YXRpYyB1
bnNpZ25lZCBoYXNoKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSYga2V5KSB7IHJldHVy
biBjb21wdXRlSGFzaChrZXkuZGVzY3JpcHRpb25LZXksIGtleS5mYW1pbHksIGtleS5mb250Q3Jl
YXRpb25Db250ZXh0KTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEZvbnRQbGF0Zm9y
bURhdGFDYWNoZUtleSYgYSwgY29uc3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5JiBiKSB7IHJl
dHVybiBhID09IGI7IH0KICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKQEAgLTIwNiw4ICsyMDgsNyBAQCBzdGQ6Om9wdGlv
bmFsPEFTQ0lJTGl0ZXJhbD4gRm9udENhY2hlOjphbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IFN0
cmluZyYgZmFtaWx5TgogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKLUZvbnRQbGF0Zm9y
bURhdGEqIEZvbnRDYWNoZTo6Y2FjaGVkRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBwYXNzZWRGYW1pbHlOYW1lLAot
ICAgIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3Bl
Y2lmaWVkQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5h
bWUpCitGb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmNhY2hlZEZvbnRQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgcGFz
c2VkRmFtaWx5TmFtZSwgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYgZm9udENyZWF0aW9uQ29u
dGV4dCwgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5hbWUpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBMb2NrZXIgbG9ja2VyIHsgbV9mb250TG9jayB9OwpAQCAtMjI3LDE3ICsyMjgs
MTcgQEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpjYWNoZWRGb250UGxhdGZvcm1EYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udEQKICAgICAgICAgcGxhdGZvcm1Jbml0KCk7CiAg
ICAgfSk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkga2V5IHsgZm9udERlc2NyaXB0
aW9uLCB7IGZhbWlseU5hbWUgfSwgZmVhdHVyZXMgPyAqZmVhdHVyZXMgOiBGb250RmVhdHVyZVNl
dHRpbmdzIHsgfSwgY2FwYWJpbGl0aWVzIH07CisgICAgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5
IGtleSB7IGZvbnREZXNjcmlwdGlvbiwgeyBmYW1pbHlOYW1lIH0sIGZvbnRDcmVhdGlvbkNvbnRl
eHQgfTsKIAogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9mb250RGF0YUNhY2hlcy0+cGxhdGZvcm1E
YXRhLmFkZChrZXksIG51bGxwdHIpOwogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNoZTo6aXRlcmF0
b3IgaXQgPSBhZGRSZXN1bHQuaXRlcmF0b3I7CiAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5
KSB7Ci0gICAgICAgIGl0LT52YWx1ZSA9IGNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoZm9udERlc2Ny
aXB0aW9uLCBmYW1pbHlOYW1lLCBmZWF0dXJlcywgY2FwYWJpbGl0aWVzKTsKKyAgICAgICAgaXQt
PnZhbHVlID0gY3JlYXRlRm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIGZhbWlseU5h
bWUsIGZvbnRDcmVhdGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoIWl0LT52YWx1ZSAmJiAhY2hl
Y2tpbmdBbHRlcm5hdGVOYW1lKSB7CiAgICAgICAgICAgICAvLyBXZSB3ZXJlIHVuYWJsZSB0byBm
aW5kIGEgZm9udC4gV2UgaGF2ZSBhIHNtYWxsIHNldCBvZiBmb250cyB0aGF0IHdlIGFsaWFzIHRv
IG90aGVyIG5hbWVzLAogICAgICAgICAgICAgLy8gZS5nLiwgQXJpYWwvSGVsdmV0aWNhLCBDb3Vy
aWVyL0NvdXJpZXIgTmV3LCBldGMuIFRyeSBsb29raW5nIHVwIHRoZSBmb250IHVuZGVyIHRoZSBh
bGlhc2VkIG5hbWUuCiAgICAgICAgICAgICBpZiAoYXV0byBhbHRlcm5hdGVOYW1lID0gYWx0ZXJu
YXRlRmFtaWx5TmFtZShmYW1pbHlOYW1lKSkgewotICAgICAgICAgICAgICAgIGF1dG8qIGFsdGVy
bmF0ZURhdGEgPSBjYWNoZWRGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgKmFsdGVy
bmF0ZU5hbWUsIGZlYXR1cmVzLCBjYXBhYmlsaXRpZXMsIHRydWUpOworICAgICAgICAgICAgICAg
IGF1dG8qIGFsdGVybmF0ZURhdGEgPSBjYWNoZWRGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlw
dGlvbiwgKmFsdGVybmF0ZU5hbWUsIGZvbnRDcmVhdGlvbkNvbnRleHQsIHRydWUpOwogICAgICAg
ICAgICAgICAgIC8vIExvb2sgdXAgdGhlIGtleSBpbiB0aGUgaGFzaCB0YWJsZSBhZ2FpbiBhcyB0
aGUgcHJldmlvdXMgaXRlcmF0b3IgbWF5IGhhdmUKICAgICAgICAgICAgICAgICAvLyBiZWVuIGlu
dmFsaWRhdGVkIGJ5IHRoZSByZWN1cnNpdmUgY2FsbCB0byBjYWNoZWRGb250UGxhdGZvcm1EYXRh
KCkuCiAgICAgICAgICAgICAgICAgaXQgPSBtX2ZvbnREYXRhQ2FjaGVzLT5wbGF0Zm9ybURhdGEu
ZmluZChrZXkpOwpAQCAtMjYyLDEyICsyNjMsMTIgQEAgY29uc3QgdW5zaWduZWQgY1RhcmdldElu
YWN0aXZlRm9udERhdGEgPSAyMDA7CiBjb25zdCB1bnNpZ25lZCBjTWF4VW5kZXJNZW1vcnlQcmVz
c3VyZUluYWN0aXZlRm9udERhdGEgPSA1MDsKIGNvbnN0IHVuc2lnbmVkIGNUYXJnZXRVbmRlck1l
bW9yeVByZXNzdXJlSW5hY3RpdmVGb250RGF0YSA9IDMwOwogCi1SZWZQdHI8Rm9udD4gRm9udENh
Y2hlOjpmb250Rm9yRmFtaWx5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
LCBjb25zdCBTdHJpbmcmIGZhbWlseSwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVy
ZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBib29s
IGNoZWNraW5nQWx0ZXJuYXRlTmFtZSkKK1JlZlB0cjxGb250PiBGb250Q2FjaGU6OmZvbnRGb3JG
YW1pbHkoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IFN0cmlu
ZyYgZmFtaWx5LCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25Db250ZXh0
LCBib29sIGNoZWNraW5nQWx0ZXJuYXRlTmFtZSkKIHsKICAgICBpZiAoIW1fcHVyZ2VUaW1lci5p
c0FjdGl2ZSgpKQogICAgICAgICBtX3B1cmdlVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiAKLSAg
ICBpZiAoYXV0byogcGxhdGZvcm1EYXRhID0gY2FjaGVkRm9udFBsYXRmb3JtRGF0YShmb250RGVz
Y3JpcHRpb24sIGZhbWlseSwgZmVhdHVyZXMsIGNhcGFiaWxpdGllcywgY2hlY2tpbmdBbHRlcm5h
dGVOYW1lKSkKKyAgICBpZiAoYXV0byogcGxhdGZvcm1EYXRhID0gY2FjaGVkRm9udFBsYXRmb3Jt
RGF0YShmb250RGVzY3JpcHRpb24sIGZhbWlseSwgZm9udENyZWF0aW9uQ29udGV4dCwgY2hlY2tp
bmdBbHRlcm5hdGVOYW1lKSkKICAgICAgICAgcmV0dXJuIGZvbnRGb3JQbGF0Zm9ybURhdGEoKnBs
YXRmb3JtRGF0YSk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5kZXggMjRjYTJlNmQzNmU0OGYxYTc0OTZhMWE2
NmMzYjM2YTNiNGZmYWZkZS4uZGNlZDY1NDI1ZTY0YmU1NmQwOTFlYTJiYjA1YTU0YTg5MDk4Yjdi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRm9udENhc2NhZGVGb250
cy5oIgorI2luY2x1ZGUgIkZvbnRDcmVhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJGb250RGVz
Y3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9u
dFNlbGVjdG9yLmgiCkBAIC0zMDEsNyArMzAyLDcgQEAgcHVibGljOgogICAgIC8vIEl0IGNvbWVz
IGludG8gcGxheSB3aGVuIHlvdSBjcmVhdGUgYW4gQGZvbnQtZmFjZSB3aGljaCBzaGFyZXMgYSBm
YW1pbHkgbmFtZSBhcyBhIHByZWluc3RhbGxlZCBmb250LgogICAgIFZlY3RvcjxGb250U2VsZWN0
aW9uQ2FwYWJpbGl0aWVzPiBnZXRGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzSW5GYW1pbHkoY29u
c3QgQXRvbVN0cmluZyYsIEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIFJlZlB0cjxGb250PiBmb250Rm9yRmFtaWx5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVy
ZXMgPSBudWxscHRyLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNl
Q2FwYWJpbGl0aWVzID0geyB9LCBib29sIGNoZWNraW5nQWx0ZXJuYXRlTmFtZSA9IGZhbHNlKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8Rm9udD4gZm9udEZvckZhbWlseShjb25zdCBGb250
RGVzY3JpcHRpb24mLCBjb25zdCBTdHJpbmcmLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiA9
IHsgfSwgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5hbWUgPSBmYWxzZSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgUmVmPEZvbnQ+IGxhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEZvbnQ+IGZvbnRGb3JQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOwogICAgIFJlZlB0cjxGb250PiBzaW1pbGFyRm9udChj
b25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBTdHJpbmcmIGZhbWlseSk7CkBAIC0zNTYsMTAg
KzM1NywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJ1bmVTeXN0ZW1GYWxsYmFja0ZvbnRzKCk7
CiAgICAgUmVmPEZvbnRDYXNjYWRlRm9udHM+IHJldHJpZXZlT3JBZGRDYWNoZWRGb250cyhjb25z
dCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJiwgUmVmUHRyPEZvbnRTZWxlY3Rvcj4mJik7CiAKLSAg
ICBGb250UGxhdGZvcm1EYXRhKiBjYWNoZWRGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYsIGNvbnN0IFN0cmluZyYgZmFtaWx5LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdz
KiA9IG51bGxwdHIsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgPSB7IH0sIGJv
b2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lID0gZmFsc2UpOworICAgIEZvbnRQbGF0Zm9ybURhdGEq
IGNhY2hlZEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgU3Ry
aW5nJiBmYW1pbHksIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmID0geyB9LCBib29sIGNoZWNr
aW5nQWx0ZXJuYXRlTmFtZSA9IGZhbHNlKTsKIAogICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUg
aW1wbGVtZW50ZWQgYnkgZWFjaCBwbGF0Zm9ybSAodW5jbGVhciB3aGljaCBmdW5jdGlvbnMgdGhp
cyBjb21tZW50IGFwcGxpZXMgdG8pLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6dW5pcXVlX3B0
cjxGb250UGxhdGZvcm1EYXRhPiBjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSwgY29uc3QgRm9udEZlYXR1cmVTZXR0
aW5ncyosIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBjcmVhdGVGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSwg
Y29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYpOwogICAgIAogICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFTQ0lJTGl0ZXJhbD4gYWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBTdHJpbmcmKTsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxBU0NJSUxpdGVyYWw+IHBsYXRmb3JtQWx0ZXJuYXRlRmFt
aWx5TmFtZShjb25zdCBTdHJpbmcmKTsKQEAgLTM5Miw3ICszOTMsNyBAQCBwcml2YXRlOgogCiBp
bmxpbmUgc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRl
Rm9udFBsYXRmb3JtRGF0YUZvclRlc3RpbmcoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVz
Y3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSkKIHsKLSAgICByZXR1cm4gY3JlYXRl
Rm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIGZhbWlseSwgbnVsbHB0ciwgeyB9KTsK
KyAgICByZXR1cm4gY3JlYXRlRm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIGZhbWls
eSwgeyB9KTsKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShGUkVFVFlQRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvbkNv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvbkNv
bnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mM2U2MTc0YjFmZTQzYzU1MDQwMTFkYWI0YWIwYjhlNmM4ZTcz
NTI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENyZWF0aW9uQ29udGV4dC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkZvbnRTZWxlY3Rpb25BbGdvcml0aG0uaCIKKyNpbmNsdWRl
ICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
Rm9udENyZWF0aW9uQ29udGV4dCB7CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRDcmVh
dGlvbkNvbnRleHQmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZvbnRGYWNl
RmVhdHVyZXMgPT0gb3RoZXIuZm9udEZhY2VGZWF0dXJlcworICAgICAgICAgICAgJiYgZm9udEZh
Y2VDYXBhYmlsaXRpZXMgPT0gb3RoZXIuZm9udEZhY2VDYXBhYmlsaXRpZXM7CisgICAgfQorCisg
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIG90aGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworICAgIH0KKworICAg
IEZvbnRGZWF0dXJlU2V0dGluZ3MgZm9udEZhY2VGZWF0dXJlczsKKyAgICBGb250U2VsZWN0aW9u
U3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzOworICAgIC8vIEZJWE1F
OiBBZGQgc3VwcG9ydCBmb3IgZm9udC1wYWxldHRlLXZhbHVlcyBhbmQgZm9udC1mZWF0dXJlLXZh
bHVlcy4KK307CisKK2lubGluZSB2b2lkIGFkZChIYXNoZXImIGhhc2hlciwgY29uc3QgRm9udENy
ZWF0aW9uQ29udGV4dCYgZm9udENyZWF0aW9uQ29udGV4dCkKK3sKKyAgICBhZGQoaGFzaGVyLCBm
b250Q3JlYXRpb25Db250ZXh0LmZvbnRGYWNlRmVhdHVyZXMpOworICAgIGFkZChoYXNoZXIsIGZv
bnRDcmVhdGlvbkNvbnRleHQuZm9udEZhY2VDYXBhYmlsaXRpZXMudGllZCgpKTsKK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENh
Y2hlQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udENhY2hlQ29yZVRleHQuY3BwCmluZGV4IDE5NThjYzBlNDZkMTIzNWFlYTA5MDNhMWZhZjQ0
OTQwMDE0MjEyMmEuLjRmZDlhNWRkM2I1ZTg0MzAyMzlkMDliMTM3YzYzMzdhMDNmYTAwZGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNo
ZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw4ICsyNiwxMCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgogCisjaW5jbHVkZSAiQ29sb3IuaCIKICNp
bmNsdWRlICJGb250LmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGVEZXNjcmlwdGlvbi5oIgorI2lu
Y2x1ZGUgIkZvbnRDcmVhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJGb250RmFtaWx5U3BlY2lm
aWNhdGlvbkNvcmVUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWVDb2NvYS5oIgogI2luY2x1
ZGUgIlN5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmgiCkBAIC00NDAsNyArNDQyLDcgQEAgc3Ry
dWN0IEZvbnRUeXBlIHsKICAgICBib29sIGFhdFNoYXBpbmcgeyBmYWxzZSB9OwogfTsKIAotUmV0
YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxG
b250LCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgRm9udEZl
YXR1cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENh
cGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcywgYm9vbCBhcHBseVdlaWdodFdpZHRoU2xv
cGVWYXJpYXRpb25zKQorUmV0YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChD
VEZvbnRSZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlw
dGlvbiwgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYgZm9udENyZWF0aW9uQ29udGV4dCwgYm9v
bCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zKQogewogICAgIGlmICghb3JpZ2luYWxG
b250KQogICAgICAgICByZXR1cm4gb3JpZ2luYWxGb250OwpAQCAtNDY5LDcgKzQ3MSw3IEBAIFJl
dGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFs
Rm9udCwgY29uc3QgRm9udERlc2NyCiAgICAgYm9vbCB0ZXh0UmVuZGVyaW5nTW9kZUlzQXV0byA9
IHRleHRSZW5kZXJpbmdNb2RlID09IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRlcmlu
ZzsKICAgICBib29sIHZhcmlhbnRTZXR0aW5nc0lzTm9ybWFsID0gdmFyaWFudFNldHRpbmdzLmlz
QWxsTm9ybWFsKCk7CiAgICAgYm9vbCBkb250TmVlZFRvQXBwbHlPcHRpY2FsU2l6aW5nID0gZm9u
dE9wdGljYWxTaXppbmcgPT0gRm9udE9wdGljYWxTaXppbmc6OkVuYWJsZWQgJiYgIWZvcmNlT3B0
aWNhbFNpemluZ09uOwotICAgIGJvb2wgZm9udEZhY2VEb2VzbnRTcGVjaWZ5RmVhdHVyZXMgPSAh
Zm9udEZhY2VGZWF0dXJlcyB8fCBmb250RmFjZUZlYXR1cmVzLT5pc0VtcHR5KCk7CisgICAgYm9v
bCBmb250RmFjZURvZXNudFNwZWNpZnlGZWF0dXJlcyA9IGZvbnRDcmVhdGlvbkNvbnRleHQuZm9u
dEZhY2VGZWF0dXJlcy5pc0VtcHR5KCk7CiAgICAgaWYgKG5vRm9udEZlYXR1cmVTZXR0aW5ncyAm
JiBub0ZvbnRWYXJpYXRpb25TZXR0aW5ncyAmJiB0ZXh0UmVuZGVyaW5nTW9kZUlzQXV0byAmJiB2
YXJpYW50U2V0dGluZ3NJc05vcm1hbCAmJiBkb250TmVlZFRvQXBwbHlPcHRpY2FsU2l6aW5nICYm
IGZvbnRGYWNlRG9lc250U3BlY2lmeUZlYXR1cmVzICYmICFzaG91bGREaXNhYmxlTGlnYXR1cmVz
Rm9yU3BhY2luZykgewogI2lmIEhBVkUoQ1RGT05UQ1JFQVRFRk9SQ0hBUkFDVEVSU1dJVEhMQU5H
VUFHRUFORE9QVElPTikKICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRm9udDsKQEAgLTUxNSwxMSAr
NTE3LDExIEBAIFJldGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250
UmVmIG9yaWdpbmFsRm9udCwgY29uc3QgRm9udERlc2NyCiAgICAgICAgIGZsb2F0IHdlaWdodCA9
IGZvbnRTZWxlY3Rpb25SZXF1ZXN0LndlaWdodDsKICAgICAgICAgZmxvYXQgd2lkdGggPSBmb250
U2VsZWN0aW9uUmVxdWVzdC53aWR0aDsKICAgICAgICAgZmxvYXQgc2xvcGUgPSBmb250U2VsZWN0
aW9uUmVxdWVzdC5zbG9wZS52YWx1ZV9vcihub3JtYWxJdGFsaWNWYWx1ZSgpKTsKLSAgICAgICAg
aWYgKGF1dG8gd2VpZ2h0VmFsdWUgPSBmb250RmFjZUNhcGFiaWxpdGllcy53ZWlnaHQpCisgICAg
ICAgIGlmIChhdXRvIHdlaWdodFZhbHVlID0gZm9udENyZWF0aW9uQ29udGV4dC5mb250RmFjZUNh
cGFiaWxpdGllcy53ZWlnaHQpCiAgICAgICAgICAgICB3ZWlnaHQgPSBzdGQ6Om1heChzdGQ6Om1p
bih3ZWlnaHQsIHN0YXRpY19jYXN0PGZsb2F0Pih3ZWlnaHRWYWx1ZS0+bWF4aW11bSkpLCBzdGF0
aWNfY2FzdDxmbG9hdD4od2VpZ2h0VmFsdWUtPm1pbmltdW0pKTsKLSAgICAgICAgaWYgKGF1dG8g
d2lkdGhWYWx1ZSA9IGZvbnRGYWNlQ2FwYWJpbGl0aWVzLndpZHRoKQorICAgICAgICBpZiAoYXV0
byB3aWR0aFZhbHVlID0gZm9udENyZWF0aW9uQ29udGV4dC5mb250RmFjZUNhcGFiaWxpdGllcy53
aWR0aCkKICAgICAgICAgICAgIHdpZHRoID0gc3RkOjptYXgoc3RkOjptaW4od2lkdGgsIHN0YXRp
Y19jYXN0PGZsb2F0Pih3aWR0aFZhbHVlLT5tYXhpbXVtKSksIHN0YXRpY19jYXN0PGZsb2F0Pih3
aWR0aFZhbHVlLT5taW5pbXVtKSk7Ci0gICAgICAgIGlmIChhdXRvIHNsb3BlVmFsdWUgPSBmb250
RmFjZUNhcGFiaWxpdGllcy53ZWlnaHQpCisgICAgICAgIGlmIChhdXRvIHNsb3BlVmFsdWUgPSBm
b250Q3JlYXRpb25Db250ZXh0LmZvbnRGYWNlQ2FwYWJpbGl0aWVzLndlaWdodCkKICAgICAgICAg
ICAgIHNsb3BlID0gc3RkOjptYXgoc3RkOjptaW4oc2xvcGUsIHN0YXRpY19jYXN0PGZsb2F0Pihz
bG9wZVZhbHVlLT5tYXhpbXVtKSksIHN0YXRpY19jYXN0PGZsb2F0PihzbG9wZVZhbHVlLT5taW5p
bXVtKSk7CiAgICAgICAgIGlmIChuZWVkc0NvbnZlcnNpb24pIHsKICAgICAgICAgICAgIHdlaWdo
dCA9IGRlbm9ybWFsaXplV2VpZ2h0KHdlaWdodCk7CkBAIC01MzksOCArNTQxLDggQEAgUmV0YWlu
UHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250
LCBjb25zdCBGb250RGVzY3IKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IFN0ZXAgNjogdGhlIGZv
bnQtdmFyaWF0aW9uLXNldHRpbmdzIGRlc2NyaXB0b3IgaW5zaWRlIEBmb250LWZhY2UKIAogICAg
IC8vIFN0ZXAgNzogQ29uc3VsdCB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBpbnNpZGUgQGZv
bnQtZmFjZQotICAgIGlmIChmb250RmFjZUZlYXR1cmVzKSB7Ci0gICAgICAgIGZvciAoYXV0byYg
Zm9udEZhY2VGZWF0dXJlIDogKmZvbnRGYWNlRmVhdHVyZXMpCisgICAgaWYgKCFmb250Q3JlYXRp
b25Db250ZXh0LmZvbnRGYWNlRmVhdHVyZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIGZvciAoYXV0
byYgZm9udEZhY2VGZWF0dXJlIDogZm9udENyZWF0aW9uQ29udGV4dC5mb250RmFjZUZlYXR1cmVz
KQogICAgICAgICAgICAgYXBwbHlGZWF0dXJlKGZvbnRGYWNlRmVhdHVyZS50YWcoKSwgZm9udEZh
Y2VGZWF0dXJlLnZhbHVlKCkpOwogICAgIH0KIApAQCAtNTc0LDcgKzU3Niw3IEBAIFJldGFpblB0
cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9udCwg
Y29uc3QgRm9udERlc2NyCiAgICAgZm9yIChhdXRvJiBuZXdWYXJpYXRpb24gOiB2YXJpYXRpb25z
KQogICAgICAgICBhcHBseVZhcmlhdGlvbihuZXdWYXJpYXRpb24udGFnKCksIG5ld1ZhcmlhdGlv
bi52YWx1ZSgpKTsKIAotICAgIGF1dG8gYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5
Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAyLCAma0NGVHlwZURpY3Rpb25hcnlL
ZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgYXV0
byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVE
aWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBpZiAoIWZlYXR1cmVzVG9CZUFwcGxpZWQu
aXNFbXB0eSgpKSB7CiAgICAgICAgIGF1dG8gZmVhdHVyZUFycmF5ID0gYWRvcHRDRihDRkFycmF5
Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmZWF0dXJlcy5zaXplKCksICZrQ0ZU
eXBlQXJyYXlDYWxsQmFja3MpKTsKICAgICAgICAgZm9yIChhdXRvJiBwIDogZmVhdHVyZXNUb0Jl
QXBwbGllZCkgewpAQCAtMTI0Miw3ICsxMjQ0LDcgQEAgc3RhdGljIFJldGFpblB0cjxDVEZvbnRS
ZWY+IGZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2UoY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LAog
ICAgIHJldHVybiBudWxscHRyOwogfQogCi1zdGF0aWMgUmV0YWluUHRyPENURm9udFJlZj4gZm9u
dFdpdGhGYW1pbHkoY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LCBjb25zdCBGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZm9udEZhY2VG
ZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFi
aWxpdGllcywgZmxvYXQgc2l6ZSkKK3N0YXRpYyBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250V2l0
aEZhbWlseShjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25D
b250ZXh0LCBmbG9hdCBzaXplKQogewogICAgIGlmIChmYW1pbHkuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKQEAgLTEyNTEsNyArMTI1Myw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8
Q1RGb250UmVmPiBmb250V2l0aEZhbWlseShjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHksIGNvbnN0
IEZvbnRECiAgICAgZm9udExvb2t1cC5yZXN1bHQgPSBmb250V2l0aEZhbWlseVNwZWNpYWxDYXNl
KGZhbWlseSwgZm9udERlc2NyaXB0aW9uLCBzaXplLCBmb250RGVzY3JpcHRpb24uc2hvdWxkQWxs
b3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CiAgICAgaWYgKCFmb250TG9va3VwLnJlc3VsdCkKICAg
ICAgICAgZm9udExvb2t1cCA9IHBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkoZmFtaWx5LCBm
b250RGVzY3JpcHRpb24uZm9udFNlbGVjdGlvblJlcXVlc3QoKSwgc2l6ZSwgZm9udERlc2NyaXB0
aW9uLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpOwotICAgIHJldHVybiBwcmVwYXJl
UGxhdGZvcm1Gb250KGZvbnRMb29rdXAucmVzdWx0LmdldCgpLCBmb250RGVzY3JpcHRpb24sIGZv
bnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCAhZm9udExvb2t1cC5jcmVhdGVk
RnJvbVBvc3RTY3JpcHROYW1lKTsKKyAgICByZXR1cm4gcHJlcGFyZVBsYXRmb3JtRm9udChmb250
TG9va3VwLnJlc3VsdC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCBmb250Q3JlYXRpb25Db250ZXh0
LCAhZm9udExvb2t1cC5jcmVhdGVkRnJvbVBvc3RTY3JpcHROYW1lKTsKIH0KIAogI2lmIFBMQVRG
T1JNKE1BQykKQEAgLTEyODUsMTEgKzEyODcsMTEgQEAgc3RhdGljIHZvaWQgYXV0b0FjdGl2YXRl
Rm9udChjb25zdCBTdHJpbmcmIG5hbWUsIENHRmxvYXQgc2l6ZSkKIH0KICNlbmRpZgogCi1zdGQ6
OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9t
U3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVy
ZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRp
ZXMpCitzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVG
b250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBj
b25zdCBBdG9tU3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRD
cmVhdGlvbkNvbnRleHQpCiB7CiAgICAgZmxvYXQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21w
dXRlZFBpeGVsU2l6ZSgpOwogCi0gICAgYXV0byBmb250ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5
LCBmb250RGVzY3JpcHRpb24sIGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVz
LCBzaXplKTsKKyAgICBhdXRvIGZvbnQgPSBmb250V2l0aEZhbWlseShmYW1pbHksIGZvbnREZXNj
cmlwdGlvbiwgZm9udENyZWF0aW9uQ29udGV4dCwgc2l6ZSk7CiAKICNpZiBQTEFURk9STShNQUMp
CiAgICAgaWYgKCFmb250KSB7CkBAIC0xMzAwLDcgKzEzMDIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0
IEZvbnREZQogICAgICAgICAvLyBJZ25vcmUgdGhlIHJlc3VsdCBiZWNhdXNlIHdlIHdhbnQgdG8g
dXNlIG91ciBvd24gYWxnb3JpdGhtIHRvIGFjdHVhbGx5IGZpbmQgdGhlIGZvbnQuCiAgICAgICAg
IGF1dG9BY3RpdmF0ZUZvbnQoZmFtaWx5LnN0cmluZygpLCBzaXplKTsKIAotICAgICAgICBmb250
ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5LCBmb250RGVzY3JpcHRpb24sIGZvbnRGYWNlRmVhdHVy
ZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBzaXplKTsKKyAgICAgICAgZm9udCA9IGZvbnRXaXRo
RmFtaWx5KGZhbWlseSwgZm9udERlc2NyaXB0aW9uLCBmb250Q3JlYXRpb25Db250ZXh0LCBzaXpl
KTsKICAgICB9CiAjZW5kaWYKIApAQCAtMTQxMiw3ICsxNDE0LDcgQEAgUmVmUHRyPEZvbnQ+IEZv
bnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZGVzY3IKICAgICAgICAgbV9mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFja0ZvclBy
ZXdhcm1pbmcuYWRkKGZ1bGxOYW1lKTsKIAogICAgIGF1dG8gcmVzdWx0ID0gbG9va3VwRmFsbGJh
Y2tGb250KHBsYXRmb3JtRGF0YS5mb250KCksIGRlc2NyaXB0aW9uLndlaWdodCgpLCBkZXNjcmlw
dGlvbi5jb21wdXRlZExvY2FsZSgpLCBkZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0YWxs
ZWRGb250cygpLCBjaGFyYWN0ZXJzLCBsZW5ndGgpOwotICAgIHJlc3VsdCA9IHByZXBhcmVQbGF0
Zm9ybUZvbnQocmVzdWx0LmdldCgpLCBkZXNjcmlwdGlvbiwgbnVsbHB0ciwgeyB9KTsKKyAgICBy
ZXN1bHQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KHJlc3VsdC5nZXQoKSwgZGVzY3JpcHRpb24sIHsg
fSk7CiAKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIGxhc3RSZXNvcnRGYWxsYmFj
a0ZvbnQoZGVzY3JpcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKaW5kZXggOWFiYTg5ZjIxMzcw
NzJkNDNhOGY4OThhZGRkMThkYWQ2MjQ5MDM5NS4uODljNmNiZjMzODVlZGU4MTM5YTQ4MzQzZjM3
ZGU2Nzk2M2NkM2Q5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVjdCBGb250Q3JlYXRpb25Db250ZXh0OworCiBzdHJ1
Y3QgU3ludGhlc2lzUGFpciB7CiAgICAgZXhwbGljaXQgU3ludGhlc2lzUGFpcihib29sIG5lZWRz
U3ludGhldGljQm9sZCwgYm9vbCBuZWVkc1N5bnRoZXRpY09ibGlxdWUpCiAgICAgICAgIDogbmVl
ZHNTeW50aGV0aWNCb2xkKG5lZWRzU3ludGhldGljQm9sZCkKQEAgLTU5LDcgKzYxLDcgQEAgc3Ry
dWN0IFZhcmlhdGlvbkRlZmF1bHRzIHsKIAogdHlwZWRlZiBIYXNoTWFwPEZvbnRUYWcsIFZhcmlh
dGlvbkRlZmF1bHRzLCBGb3VyQ2hhcmFjdGVyVGFnSGFzaCwgRm91ckNoYXJhY3RlclRhZ0hhc2hU
cmFpdHM+IFZhcmlhdGlvbkRlZmF1bHRzTWFwOwogCi1SZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVw
YXJlUGxhdGZvcm1Gb250KENURm9udFJlZiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3Qg
Rm9udEZlYXR1cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcywgYm9vbCBhcHBseVdlaWdodFdp
ZHRoU2xvcGVWYXJpYXRpb25zID0gdHJ1ZSk7CitSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJl
UGxhdGZvcm1Gb250KENURm9udFJlZiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgRm9u
dENyZWF0aW9uQ29udGV4dCYsIGJvb2wgYXBwbHlXZWlnaHRXaWR0aFNsb3BlVmFyaWF0aW9ucyA9
IHRydWUpOwogZW51bSBjbGFzcyBTaG91bGRDb21wdXRlUGh5c2ljYWxUcmFpdHMgOiBib29sIHsg
Tm8sIFllcyB9OwogU3ludGhlc2lzUGFpciBjb21wdXRlTmVjZXNzYXJ5U3ludGhlc2lzKENURm9u
dFJlZiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiwgU2hvdWxkQ29tcHV0ZVBoeXNpY2FsVHJhaXRz
ID0gU2hvdWxkQ29tcHV0ZVBoeXNpY2FsVHJhaXRzOjpObywgYm9vbCBpc1BsYXRmb3JtRm9udCA9
IGZhbHNlKTsKIFJldGFpblB0cjxDVEZvbnRSZWY+IHBsYXRmb3JtRm9udFdpdGhGYW1pbHkoY29u
c3QgQXRvbVN0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgVGV4dFJlbmRlcmlu
Z01vZGUsIGZsb2F0IHNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RmFtaWx5U3BlY2lmaWNhdGlv
bkNvcmVUZXh0LmNwcAppbmRleCAyYmUzOWI3OTQzNTE1MWY0ZmE4NmZjMzE0OTE0MThhMTJkMjk0
OWQ5Li5hZGJjYzI0NDhmMWVlOWU1ODI4NGYzMmRhMzc2M2Y2MzA5ZWM3Nzk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RmFtaWx5U3BlY2lm
aWNhdGlvbkNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05Nyw3ICs5Nyw3IEBA
IEZvbnRSYW5nZXMgRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dDo6Zm9udFJhbmdlcyhj
b25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAKICAgICAgICAgYXV0byBmb250ID0gYWRvcHRDRihD
VEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IobV9mb250RGVzY3JpcHRvci5nZXQoKSwgc2l6
ZSwgbnVsbHB0cikpOwogCi0gICAgICAgIGZvbnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KGZvbnQu
Z2V0KCksIGZvbnREZXNjcmlwdGlvbiwgbnVsbHB0ciwgeyB9KTsKKyAgICAgICAgZm9udCA9IHBy
ZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCB7IH0pOwogCiAg
ICAgICAgIGF1dG8gW3N5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWVdID0gY29tcHV0ZU5l
Y2Vzc2FyeVN5bnRoZXNpcyhmb250LmdldCgpLCBmb250RGVzY3JpcHRpb24sIFNob3VsZENvbXB1
dGVQaHlzaWNhbFRyYWl0czo6WWVzKS5ib2xkT2JsaXF1ZVBhaXIoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuY3BwCmluZGV4IGYyNWRjMjFhMjY3ODg0NjBlYzViYmViODY2ZWI2MGMzNGE3
MGVkYWYuLjA3MWUwMGQ5NTBlNjVmYTBiNDQ1MWRmNzZiMGI0NWQxZjdjNDA3ZmYgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAq
IENvcHlyaWdodCAoQykgMjAwNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4K
ICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1
dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGli
cmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzUsNyArMzUsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCkgPSBk
ZWZhdWx0OwogCi1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQ
bGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wg
Ym9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVh
dHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmls
aXRpZXMpCitGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0
Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9s
ZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNv
bnRleHQpCiB7CiAgICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVh
dGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNh
bGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBhZGRBdHRy
aWJ1dGVzRm9yV2ViRm9udHMoYXR0cmlidXRlcy5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnNob3Vs
ZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpOwpAQCAtNDYsNyArNDYsNyBAQCBGb250UGxhdGZv
cm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJgogICAgIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IGZvbnREZXNj
cmlwdGlvbi5vcmllbnRhdGlvbigpOwogICAgIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50
ID0gZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpOwogICAgIGF1dG8gZm9udCA9IGFkb3B0
Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNjcmlwdG9yKG1vZGlmaWVkRm9udERlc2NyaXB0b3Iu
Z2V0KCksIHNpemUsIG51bGxwdHIpKTsKLSAgICBmb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChm
b250LmdldCgpLCBmb250RGVzY3JpcHRpb24sICZmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNh
cGFiaWxpdGllcyk7CisgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwg
Zm9udERlc2NyaXB0aW9uLCBmb250Q3JlYXRpb25Db250ZXh0KTsKICAgICBBU1NFUlQoZm9udCk7
CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoZm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRh
bGljLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50LCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRl
cmluZ01vZGUoKSwgJmNyZWF0aW9uRGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaApp
bmRleCBmZmI5YTk3NDQ0Y2EzNDlmY2ExN2EzMGM1MmQwYjgzZTQ4MzVkN2FmLi43YTZkMGExZTRi
NzhiOWE3MGI4MjVjODMzOWM5ZjQ4ZTA5MDQzY2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmgKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4K
KyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDIxIEFwcGxlIEluYy4KICAqCiAgKiBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBt
b2RpZnkgaXQgdW5kZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1Ymxp
YwpAQCAtMzMsNiArMzMsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NURm9udERlc2NyaXB0
b3IqIENURm9udERlc2NyaXB0b3JSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RydWN0
IEZvbnRDcmVhdGlvbkNvbnRleHQ7CiBjbGFzcyBGb250RGVzY3JpcHRpb247CiBzdHJ1Y3QgRm9u
dFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllczsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKQEAg
LTUxLDcgKzUyLDcgQEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgfkZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEoKTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShj
b25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250
RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVk
Q2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKTsKKyAgICBGb250UGxhdGZvcm1EYXRh
IGZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBib2xkLCBib29s
IGl0YWxpYywgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYpOwogCiAgICAgc3RhdGljIGJvb2wg
c3VwcG9ydHNGb3JtYXQoY29uc3QgU3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3dvcmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3dv
cmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmNwcAppbmRleCBmMTU3ZDMwOTdkZjY5ODdhNGI2
MzRiN2ZkNjMzMzllOTA5ZDg2ZTlmLi4wOTM0MWRiODM1ODExYzQ5ODJhOTU3MTliODJkYzU4ZjQ3
MGI3NTVmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckZvbnRMb2Fk
UmVxdWVzdC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJGb250TG9hZFJl
cXVlc3QuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNiwgMjAw
NywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMp
IDIwMDYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKiBDb3B5cmlnaHQg
KEMpIDIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMjEgTWV0cm9s
b2dpY2FsIEdyb3VwIEIuVi4KICAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgpAQCAt
MjksNiArMjksNyBAQAogI2luY2x1ZGUgIldvcmtlckZvbnRMb2FkUmVxdWVzdC5oIgogCiAjaW5j
bHVkZSAiRm9udC5oIgorI2luY2x1ZGUgIkZvbnRDcmVhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRl
ICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9udFNlbGVjdGlvbkFsZ29y
aXRobS5oIgogI2luY2x1ZGUgIlJlc291cmNlTG9hZGVyT3B0aW9ucy5oIgpAQCAtODgsMTEgKzg5
LDExIEBAIGJvb2wgV29ya2VyRm9udExvYWRSZXF1ZXN0OjplbnN1cmVDdXN0b21Gb250RGF0YShj
b25zdCBBdG9tU3RyaW5nJikKICAgICByZXR1cm4gbV9mb250Q3VzdG9tUGxhdGZvcm1EYXRhLmdl
dCgpOwogfQogCi1SZWZQdHI8Rm9udD4gV29ya2VyRm9udExvYWRSZXF1ZXN0OjpjcmVhdGVGb250
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9tU3RyaW5n
JiwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udEZl
YXR1cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENh
cGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcykKK1JlZlB0cjxGb250PiBXb3JrZXJGb250
TG9hZFJlcXVlc3Q6OmNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3Jp
cHRpb24sIGNvbnN0IEF0b21TdHJpbmcmLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhl
dGljSXRhbGljLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25Db250ZXh0
KQogewogICAgIEFTU0VSVChtX2ZvbnRDdXN0b21QbGF0Zm9ybURhdGEpOwogICAgIEFTU0VSVCht
X2NvbnRleHQpOwotICAgIHJldHVybiBGb250OjpjcmVhdGUobV9mb250Q3VzdG9tUGxhdGZvcm1E
YXRhLT5mb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3lu
dGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZv
bnQ6Ok9yaWdpbjo6UmVtb3RlLCAmbV9jb250ZXh0LT5mb250Q2FjaGUoKSk7CisgICAgcmV0dXJu
IEZvbnQ6OmNyZWF0ZShtX2ZvbnRDdXN0b21QbGF0Zm9ybURhdGEtPmZvbnRQbGF0Zm9ybURhdGEo
Zm9udERlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRDcmVh
dGlvbkNvbnRleHQpLCBGb250OjpPcmlnaW46OlJlbW90ZSwgJm1fY29udGV4dC0+Zm9udENhY2hl
KCkpOwogfQogCiB2b2lkIFdvcmtlckZvbnRMb2FkUmVxdWVzdDo6c2V0Q2xpZW50KEZvbnRMb2Fk
UmVxdWVzdENsaWVudCogY2xpZW50KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vy
cy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuaCBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2Vy
Rm9udExvYWRSZXF1ZXN0LmgKaW5kZXggYWY2OTIwNjMwMmRjMWJhZWQ1OTkwNDRlN2I3NjVlN2Jj
NTAyOGY5Mi4uNmE2YzA1OGUyMGUzZmU5NWNmMzEzNjE1N2M1MDYyMTQ3OGI3YmIyYyAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckZvbnRMb2FkUmVxdWVzdC5oCkBAIC0xLDYg
KzEsNyBAQAogLyoKICAqIENvcHlyaWdodCAoQykgMjAyMSBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5W
LgogICogQ29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCisgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCkBAIC0zMyw2ICszNCw3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3Ry
dWN0IEZvbnRDcmVhdGlvbkNvbnRleHQ7CiBjbGFzcyBTY3JpcHRFeGVjdXRpb25Db250ZXh0Owog
Y2xhc3MgU2hhcmVkQnVmZmVyOwogY2xhc3MgV29ya2VyR2xvYmFsU2NvcGU7CkBAIC01NCw3ICs1
Niw3IEBAIHByaXZhdGU6CiAgICAgYm9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgZmluYWwgeyBy
ZXR1cm4gbV9lcnJvck9jY3VycmVkOyB9CiAKICAgICBib29sIGVuc3VyZUN1c3RvbUZvbnREYXRh
KGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSkgZmluYWw7Ci0gICAgUmVmUHRyPEZvbnQ+IGNy
ZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbVN0cmluZyYgcmVtb3Rl
VVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250
RmVhdHVyZVNldHRpbmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcykgZmlu
YWw7CisgICAgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwg
Y29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljSXRhbGljLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JikgZmluYWw7CiAKICAgICB2
b2lkIHNldENsaWVudChGb250TG9hZFJlcXVlc3RDbGllbnQqKSBmaW5hbDsKIAo=
</data>
<flag name="commit-queue"
          id="462424"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438906</attachid>
            <date>2021-09-21 19:18:34 -0700</date>
            <delta_ts>2021-09-21 20:05:34 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-230592-20210921191833.patch</filename>
            <type>text/plain</type>
            <size>60889</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk1ZTUwZDcyOWQyYTNj
Y2NmNWFkMjZkNjliMmI5Y2U2MmE2YmY4NS4uYmUxMTVjNDg4NzQwNTJiYTRlOTNkNWQ4MWY2OTNl
MmUyNWEzYmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDIxLTA5LTIxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEZvbnRD
cmVhdGlvbkNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMDU5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlIGhhdmUgdGhpcyBwYXR0ZXJuIHdoZXJlIHdlIHBhc3MgYXJvdW5kICJjb25zdCBG
b250RmVhdHVyZVNldHRpbmdzJiwgY29uc3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxp
dGllcyYiCisgICAgICAgIHRocm91Z2ggYWxsIHRoZSB2YXJpb3VzIGZvbnQgY3JlYXRpb24gcm91
dGluZXMuIFdoZW4gSSBhZGQgc3VwcG9ydCBmb3IgZm9udCBwYWxldHRlcyBhbmQgZm9udC1mZWF0
dXJlLXZhbHVlcywKKyAgICAgICAgdGhpcyB3b3VsZCBuZWVkIHRvIGdyb3cgdG8gNCBhcmd1bWVu
dHMgYmVpbmcgcGFzc2VkIGFyb3VuZCBpbnN0ZWFkIG9mIDIuIFJhdGhlciB0aGFuIHBhc3Npbmcg
YWxsIHRoZXNlIGFyZ3VtZW50cworICAgICAgICBhcm91bmQsIGEgYmV0dGVyIGlkZWEgaXMgdG8g
ZW5jYXBzdWxhdGUgdGhlc2UgYXJndW1lbnRzIGluIGEgImNvbnRleHQiIG9iamVjdC4gVGhpcyBp
cyBiZWNhdXNlIG1vc3QgcGxhY2VzIHRoYXQKKyAgICAgICAgdGFrZSB0aGVzZSBhcmd1bWVudHMg
ZG9uJ3QgYWN0dWFsbHkgaW5zcGVjdCB0aGVtLCBidXQgaW5zdGVhZCBqdXN0IGZvcndhcmQgdGhl
bSBvbiB0byBvdGhlciByb3V0aW5lcy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0
aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBj
c3MvQ1NTRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6OmZvbnQp
OgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZVNvdXJjZTo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFj
ZVNvdXJjZTo6Zm9udCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6CisgICAg
ICAgICogY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
U2VsZWN0b3I6OmZvbnRSYW5nZXNGb3JGYW1pbHkpOgorICAgICAgICAqIGxvYWRlci9Gb250TG9h
ZFJlcXVlc3QuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpjcmVhdGVGb250KToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkRm9udC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250
TG9hZFJlcXVlc3QuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTVkdGb250OjpjcmVhdGVGb250KToKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFNWR0ZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKToKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhQ2FjaGVL
ZXlIYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Y2FjaGVkRm9udFBs
YXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmZvbnRGb3JGYW1pbHkp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udENhY2hlOjpmb250Rm9yRmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Y2FjaGVkRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2Fj
aGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGFGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q3JlYXRpb25Db250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udENyZWF0aW9uQ29udGV4dDo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGb250Q3JlYXRpb25Db250ZXh0OjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmFkZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJlcGFyZVBsYXRmb3JtRm9udCk6Cisg
ICAgICAgIChXZWJDb3JlOjpmb250V2l0aEZhbWlseSk6CisgICAgICAgIChXZWJDb3JlOjpGb250
Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENh
Y2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0Ojpmb250UmFuZ2VzIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250
UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZvbnRMb2FkUmVxdWVzdDo6Y3JlYXRlRm9u
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuaDoKKwogMjAyMS0w
OS0yMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlZHVjZSBzaXplb2YoTmV0d29ya0xvYWRNZXRyaWNzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggZWE3N2Q4NmQyMzlkNjA1MGQ0NmJkYTc1MzVkYjM0ZWRhNzhkYTI4NC4uMjY2NDg0NGNhMmIz
ZTM0OTA3MWVkZDFlMzRiMWQ3M2Y1ZDU1ODkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjU2
LDYgKzEyNTYsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYXNjYWRlRGVzY3JpcHRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
Rm9udHMuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvbkNvbnRleHQuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udEZhbWlseVNwZWNpZmljYXRpb25OdWxsLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9G
b250R2VuZXJpY0ZhbWlsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MjdhZTk3N2E1OGM2MjE0ZTlkMzkwMjQwN2VhOTA0
M2YzNTJhYjZhLi4wOGY0NTNhNDIzMTQ5ODAzNGY4MGExMGI0ZGM5Yjc0YTM0OWNlYTQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC02NTEsNiArNjUxLDcgQEAKIAkJMUMyMUU1N0QxODNFRDFGRjAwMUMyODlEIC8qIElPU3VyZmFj
ZVBvb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
MjFFNTdCMTgzRUQxRkYwMDFDMjg5RCAvKiBJT1N1cmZhY2VQb29sLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUMyNEVFQTUxQzcyOUNFNDAwODBG
OEZDIC8qIEZvbnRGYWNlU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzI0RUVBMzFDNzI5Q0U0MDA4MEY4RkMgLyogRm9udEZhY2VTZXQuaCAqLzsg
fTsKIAkJMUMyNEVFQTkxQzcyQTdCNDAwODBGOEZDIC8qIEpTRm9udEZhY2VTZXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMjRFRUE3MUM3MkE3QjQw
MDgwRjhGQyAvKiBKU0ZvbnRGYWNlU2V0LmggKi87IH07CisJCTFDMjY2NzFCMjZGQTkzMkYwMDEx
NzA3MyAvKiBGb250Q3JlYXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI2NjcxOTI2RkE3RjJFMDAxMTcwNzMgLyogRm9udENyZWF0
aW9uQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTFDNDNERTZCMjJBQjRCOEEwMDE1MjdEOSAvKiBMb2NhbEN1cnJlbnRUcmFpdENvbGxl
Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
NDNERTY4MjJBQjRCOEEwMDE1MjdEOSAvKiBMb2NhbEN1cnJlbnRUcmFpdENvbGxlY3Rpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQzREMERE
MzI0RDlGMTBEMDAzRDc0OTggLyogR2x5cGhCdWZmZXJNZW1iZXJzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzREMEREMTI0RDlGMERCMDAzRDc0OTgg
LyogR2x5cGhCdWZmZXJNZW1iZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMUM1RTFEQTgyNkY5NEI5MDAwRTA3QUYxIC8qIEZvbnRQYWxldHRl
VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QzVFMURBNjI2Rjk0OUI5MDBFMDdBRjEgLyogRm9udFBhbGV0dGVWYWx1ZXMuaCAqLzsgfTsKQEAg
LTcwNDYsNiArNzA0Nyw3IEBACiAJCTFDMjRFRUE2MUM3MkE3QjQwMDgwRjhGQyAvKiBKU0ZvbnRG
YWNlU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTRm9udEZh
Y2VTZXQuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZvbnRGYWNlU2V0LmNw
cDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUMyNEVFQTcxQzcyQTdC
NDAwODBGOEZDIC8qIEpTRm9udEZhY2VTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gSlNGb250RmFjZVNldC5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Zv
bnRGYWNlU2V0Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDMjY0
OTc5MEQ3RTI0OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlck1hYy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDMjY2NzE5MjZGQTdGMkUwMDExNzA3MyAvKiBGb250Q3Jl
YXRpb25Db250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRDcmVhdGlvbkNvbnRleHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMzMjQ5MTAxQzZENkEzQjAwN0VEQjMyIC8qIEZv
bnRWYXJpYW50QnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGb250VmFyaWFudEJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzM5NjlDRjFCNzQyMTFFMDAyQkNGQTcgLyogRm9udENhY2hlQ29yZVRleHQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udENhY2hlQ29yZVRleHQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzQzREU2ODIyQUI0QjhBMDAxNTI3RDkgLyogTG9j
YWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IExvY2FsQ3VycmVudFRyYWl0Q29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjcwMDEsNiArMjcwMDMsNyBAQAogCQkJCUU0RThCNEYyMjE2QjhCNjAwMEI4ODM0
RCAvKiBGb250Q2FzY2FkZURlc2NyaXB0aW9uLmggKi8sCiAJCQkJQjJDM0RBNTYwRDAwNkNENjAw
RUY2RjI2IC8qIEZvbnRDYXNjYWRlRm9udHMuY3BwICovLAogCQkJCUIyQzNEQTU3MEQwMDZDRDYw
MEVGNkYyNiAvKiBGb250Q2FzY2FkZUZvbnRzLmggKi8sCisJCQkJMUMyNjY3MTkyNkZBN0YyRTAw
MTE3MDczIC8qIEZvbnRDcmVhdGlvbkNvbnRleHQuaCAqLywKIAkJCQkzN0FDQ0U2MjBEQTJBQTk2
MDA4OUU2MDIgLyogRm9udERlc2NyaXB0aW9uLmNwcCAqLywKIAkJCQlCMkMzREE1NTBEMDA2Q0Q2
MDBFRjZGMjYgLyogRm9udERlc2NyaXB0aW9uLmggKi8sCiAJCQkJQzI4MEIzRkQxRUY0NjA4OTAw
RDM1MTM1IC8qIEZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uTnVsbC5jcHAgKi8sCkBAIC0zMjUwMSw2
ICszMjUwNCw3IEBACiAJCQkJQjJDM0RBNjEwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNjYWRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEU4QjRGNTIxNkI5NTY1MDBCODgzNEQgLyogRm9udENh
c2NhZGVEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjgwRDAwNkNENjAw
RUY2RjI2IC8qIEZvbnRDYXNjYWRlRm9udHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDMjY2NzFC
MjZGQTkzMkYwMDExNzA3MyAvKiBGb250Q3JlYXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMkFGRkM3RTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjYwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnREZXNj
cmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM2NjI2MTExQzZFN0NBNjAwQUI1MjdDIC8q
IEZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCmlu
ZGV4IGIxMjU1Njc4OWVmYjU3MDcwNWM5ZTc0MjYwZjNmZjQwZDljYzZjZWYuLjA5OWVhYzRkMDQx
NTYwNGJjNTVkNjAxMTBhOGYxMzdmYWFhYmQ4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTY3OSwxMCArNjc5LDEyIEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9u
dChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50CiAgICAg
ICAgICAgICBGb250OjpWaXNpYmlsaXR5IHZpc2liaWxpdHkgPSBXZWJDb3JlOjp2aXNpYmlsaXR5
KHN0YXR1cygpLCBmb250TG9hZFRpbWluZygpKTsKICAgICAgICAgICAgIHJldHVybiBGb250Ojpj
cmVhdGUoZm9udENhY2hlLmxhc3RSZXNvcnRGYWxsYmFja0ZvbnQoZm9udERlc2NyaXB0aW9uKS0+
cGxhdGZvcm1EYXRhKCksIEZvbnQ6Ok9yaWdpbjo6TG9jYWwsICZmb250Q2FjaGUsIEZvbnQ6Oklu
dGVyc3RpdGlhbDo6WWVzLCB2aXNpYmlsaXR5KTsKICAgICAgICAgfQotICAgICAgICBjYXNlIENT
U0ZvbnRGYWNlU291cmNlOjpTdGF0dXM6OlN1Y2Nlc3M6Ci0gICAgICAgICAgICBpZiAoYXV0byBy
ZXN1bHQgPSBzb3VyY2UtPmZvbnQoZm9udERlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50
aGV0aWNJdGFsaWMsIG1fZmVhdHVyZVNldHRpbmdzLCBtX2ZvbnRTZWxlY3Rpb25DYXBhYmlsaXRp
ZXMpKQorICAgICAgICBjYXNlIENTU0ZvbnRGYWNlU291cmNlOjpTdGF0dXM6OlN1Y2Nlc3M6IHsK
KyAgICAgICAgICAgIEZvbnRDcmVhdGlvbkNvbnRleHQgZm9udENyZWF0aW9uQ29udGV4dCB7IG1f
ZmVhdHVyZVNldHRpbmdzLCBtX2ZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXMgfTsKKyAgICAgICAg
ICAgIGlmIChhdXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5bnRo
ZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAg
ICAgICAgIGNhc2UgQ1NTRm9udEZhY2VTb3VyY2U6OlN0YXR1czo6RmFpbHVyZToKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNl
LmNwcAppbmRleCBkM2EzYjAwNjY0ZDZkZmU4NWFlMmI5MDI2ZmVlZTJjOTc2NDA2YTI5Li5iMjA4
NTFmZThjOWY3ZGJiNjNmNGQ5MmZiM2QxNzhlM2Y5ZjliYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNvdXJjZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIkZvbnQuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGb250
Q2FzY2FkZURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiRm9udENyZWF0aW9uQ29udGV4dC5oIgog
I2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJGb250RGVzY3Jp
cHRpb24uaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgpAQCAtMTg1LDcgKzE4
Niw3IEBAIHZvaWQgQ1NTRm9udEZhY2VTb3VyY2U6OmxvYWQoRG9jdW1lbnQqIGRvY3VtZW50KQog
ICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWlseShtX2ZhbWlseU5hbWVPclVS
SSk7CiAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKDEpOwogICAg
ICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRz
KG1fZmFjZS5hbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKLSAgICAgICAgICAgIHN1Y2Nlc3Mg
PSBGb250Q2FjaGU6OnNpbmdsZXRvbigpLmZvbnRGb3JGYW1pbHkoZm9udERlc2NyaXB0aW9uLCBt
X2ZhbWlseU5hbWVPclVSSSwgbnVsbHB0ciwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxp
dGllcygpLCB0cnVlKTsKKyAgICAgICAgICAgIHN1Y2Nlc3MgPSBGb250Q2FjaGU6OnNpbmdsZXRv
bigpLmZvbnRGb3JGYW1pbHkoZm9udERlc2NyaXB0aW9uLCBtX2ZhbWlseU5hbWVPclVSSSwgeyB9
LCB0cnVlKTsKICAgICAgICAgICAgIGlmIChkb2N1bWVudCAmJiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkFQSVN0YXRpc3RpY3NFbmFibGVkKCkpCiAgICAgICAg
ICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmxvZ0ZvbnRMb2FkKCpkb2N1
bWVudCwgbV9mYW1pbHlOYW1lT3JVUkkuc3RyaW5nKCksIHN1Y2Nlc3MpOwogICAgICAgICB9CkBA
IC0xOTMsNyArMTk0LDcgQEAgdm9pZCBDU1NGb250RmFjZVNvdXJjZTo6bG9hZChEb2N1bWVudCog
ZG9jdW1lbnQpCiAgICAgfQogfQogCi1SZWZQdHI8Rm9udD4gQ1NTRm9udEZhY2VTb3VyY2U6OmZv
bnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgc3ludGhldGlj
Qm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZv
bnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZh
Y2VDYXBhYmlsaXRpZXMpCitSZWZQdHI8Rm9udD4gQ1NTRm9udEZhY2VTb3VyY2U6OmZvbnQoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgc3ludGhldGljQm9sZCwg
Ym9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRDcmVh
dGlvbkNvbnRleHQpCiB7CiAgICAgQVNTRVJUKHN0YXR1cygpID09IFN0YXR1czo6U3VjY2Vzcyk7
CiAKQEAgLTIwMywxMiArMjA0LDEyIEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZVNvdXJjZTo6
Zm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vCiAgICAgICAg
IGlmIChtX2ltbWVkaWF0ZVNvdXJjZSkgewogICAgICAgICAgICAgaWYgKCFtX2ltbWVkaWF0ZUZv
bnRDdXN0b21QbGF0Zm9ybURhdGEpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgICAgICAgICByZXR1cm4gRm9udDo6Y3JlYXRlKENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZy
b21DdXN0b21EYXRhKCptX2ltbWVkaWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEsIGZvbnREZXNj
cmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVz
LCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlKTsKKyAgICAgICAg
ICAgIHJldHVybiBGb250OjpjcmVhdGUoQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3Rv
bURhdGEoKm1faW1tZWRpYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YSwgZm9udERlc2NyaXB0aW9u
LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRDcmVhdGlvbkNvbnRleHQpLCBG
b250OjpPcmlnaW46OlJlbW90ZSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBXZSdyZSBsb2Nh
bC4gSnVzdCByZXR1cm4gYSBGb250IGZyb20gdGhlIG5vcm1hbCBjYWNoZS4KICAgICAgICAgLy8g
V2UgZG9uJ3Qgd2FudCB0byBjaGVjayBhbHRlcm5hdGUgZm9udCBmYW1pbHkgbmFtZXMgaGVyZSwg
c28gcGFzcyB0cnVlIGFzIHRoZSBjaGVja2luZ0FsdGVybmF0ZU5hbWUgcGFyYW1ldGVyLgotICAg
ICAgICByZXR1cm4gRm9udENhY2hlOjpzaW5nbGV0b24oKS5mb250Rm9yRmFtaWx5KGZvbnREZXNj
cmlwdGlvbiwgbV9mYW1pbHlOYW1lT3JVUkksICZmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNh
cGFiaWxpdGllcywgdHJ1ZSk7CisgICAgICAgIHJldHVybiBGb250Q2FjaGU6OnNpbmdsZXRvbigp
LmZvbnRGb3JGYW1pbHkoZm9udERlc2NyaXB0aW9uLCBtX2ZhbWlseU5hbWVPclVSSSwgZm9udENy
ZWF0aW9uQ29udGV4dCwgdHJ1ZSk7CiAgICAgfQogCiAgICAgaWYgKG1fZm9udFJlcXVlc3QpIHsK
QEAgLTIxNiw3ICsyMTcsNyBAQCBSZWZQdHI8Rm9udD4gQ1NTRm9udEZhY2VTb3VyY2U6OmZvbnQo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvbwogICAgICAgICBBU1NF
UlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOwogCiAgICAgICAgIEFTU0VSVChzdGF0dXMoKSA9
PSBTdGF0dXM6OlN1Y2Nlc3MpOwotICAgICAgICBhdXRvIHJlc3VsdCA9IG1fZm9udFJlcXVlc3Qt
PmNyZWF0ZUZvbnQoZm9udERlc2NyaXB0aW9uLCBtX2ZhbWlseU5hbWVPclVSSSwgc3ludGhldGlj
Qm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxp
dGllcyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbV9mb250UmVxdWVzdC0+Y3JlYXRlRm9udChm
b250RGVzY3JpcHRpb24sIG1fZmFtaWx5TmFtZU9yVVJJLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0
aWNJdGFsaWMsIGZvbnRDcmVhdGlvbkNvbnRleHQpOwogICAgICAgICBBU1NFUlQocmVzdWx0KTsK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CkBAIC0yMjgsNyArMjI5LDcgQEAgUmVmUHRy
PEZvbnQ+IENTU0ZvbnRGYWNlU291cmNlOjpmb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9u
dERlc2NyaXB0aW9uLCBib28KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFtX2lu
RG9jdW1lbnRDdXN0b21QbGF0Zm9ybURhdGEpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IHJldHVybiBGb250OjpjcmVhdGUobV9pbkRvY3VtZW50Q3VzdG9tUGxhdGZvcm1EYXRhLT5mb250
UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRh
bGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZvbnQ6Ok9yaWdp
bjo6UmVtb3RlKTsKKyAgICByZXR1cm4gRm9udDo6Y3JlYXRlKG1faW5Eb2N1bWVudEN1c3RvbVBs
YXRmb3JtRGF0YS0+Zm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0Jv
bGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCksIEZvbnQ6Ok9yaWdpbjo6
UmVtb3RlKTsKIH0KIAogYm9vbCBDU1NGb250RmFjZVNvdXJjZTo6aXNTVkdGb250RmFjZVNvdXJj
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oCmluZGV4IDMwZDc5
OTdmZjE3MTE5ZGU0NzZlNDczNTQyNTU3NDI0ZjhmNzg4N2YuLjFmNjU3YTY2NDUxYTBjNGNmNzE3
ZjVlODBjZDEwZWEyYmY5N2Y5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJj
ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDct
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAgY2xhc3MgQ1NTRm9udEZhY2U7CiBjbGFzcyBD
U1NGb250U2VsZWN0b3I7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZvbnQ7CitzdHJ1Y3QgRm9u
dENyZWF0aW9uQ29udGV4dDsKIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOwogY2xhc3Mg
Rm9udERlc2NyaXB0aW9uOwogc3RydWN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRp
ZXM7CkBAIC03Myw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG9wcG9ydHVuaXN0aWNhbGx5
U3RhcnRGb250RGF0YVVSTExvYWRpbmcoKTsKIAogICAgIHZvaWQgbG9hZChEb2N1bWVudCogPSBu
dWxscHRyKTsKLSAgICBSZWZQdHI8Rm9udD4gZm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250RmVhdHVy
ZVNldHRpbmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyk7CisgICAgUmVm
UHRyPEZvbnQ+IGZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBzeW50aGV0aWNCb2xk
LCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYpOwogCiAg
ICAgRm9udExvYWRSZXF1ZXN0KiBmb250TG9hZFJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX2Zv
bnRSZXF1ZXN0LmdldCgpOyB9CiAgICAgYm9vbCByZXF1aXJlc0V4dGVybmFsUmVzb3VyY2UoKSBj
b25zdCB7IHJldHVybiBtX2ZvbnRSZXF1ZXN0LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U2VsZWN0b3IuY3BwCmluZGV4IDRjOWYzMjViYWYxMDUzOTIwOTcxMzc2N2MyNjhjNzVlN2Ez
ZTgxNWQuLjBlOGRmYjI5ODU0NTMxNTIyOWIwMDNiYTliZGZlMmU3ZGJkMGY1NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCkBAIC0zNDcsNyArMzQ3LDcgQEAgRm9udFJh
bmdlcyBDU1NGb250U2VsZWN0b3I6OmZvbnRSYW5nZXNGb3JGYW1pbHkoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3IKIAogICAgIGlmICghcmVzb2x2ZUdlbmVyaWNGYW1pbHlGaXJzdCkK
ICAgICAgICAgcmVzb2x2ZUFuZEFzc2lnbkdlbmVyaWNGYW1pbHkoKTsKLSAgICBhdXRvIGZvbnQg
PSBtX2ZvbnRDYWNoZS0+Zm9udEZvckZhbWlseSgqZm9udERlc2NyaXB0aW9uRm9yTG9va3VwLCBm
YW1pbHlGb3JMb29rdXApOworICAgIGF1dG8gZm9udCA9IG1fZm9udENhY2hlLT5mb250Rm9yRmFt
aWx5KCpmb250RGVzY3JpcHRpb25Gb3JMb29rdXAsIGZhbWlseUZvckxvb2t1cCwgeyB9KTsKICAg
ICBpZiAoZG9jdW1lbnQgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS53ZWJBUElTdGF0aXN0aWNzRW5hYmxlZCgpKQogICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2hhcmVkKCkubG9nRm9udExvYWQoKmRvY3VtZW50LCBmYW1pbHlGb3JMb29rdXAuc3RyaW5n
KCksICEhZm9udCk7CiAgICAgcmV0dXJuIEZvbnRSYW5nZXMgeyBXVEZNb3ZlKGZvbnQpIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9udExvYWRSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRm9udExvYWRSZXF1ZXN0LmgKaW5kZXggNWRmYWM4MmNiNTdkYTc3
ZjNiMjA4NzBiZTYwYzNjNDliMzQ2MWYyZS4uOTVjM2U3NjA5MDgwYTBmMjhmMjRkY2Y4N2VmMzY1
MjY1YzZmOGE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZvbnRMb2FkUmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb250TG9hZFJlcXVlc3QuaApAQCAt
MSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMjEgTWV0cm9sb2dpY2FsIEdyb3Vw
IEIuVi4KICAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBGb250Oworc3RydWN0IEZvbnRDcmVhdGlvbkNvbnRleHQ7CiBjbGFzcyBGb250RGVzY3Jp
cHRpb247CiBjbGFzcyBGb250TG9hZFJlcXVlc3Q7CiBzdHJ1Y3QgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllczsKQEAgLTUxLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGVuc3Vy
ZUN1c3RvbUZvbnREYXRhKGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSkgPSAwOwotICAgIHZp
cnR1YWwgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29u
c3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhl
dGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiwgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllcykgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZv
bnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250Q3JlYXRp
b25Db250ZXh0JikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChGb250TG9hZFJl
cXVlc3RDbGllbnQqKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRGb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRG
b250LmNwcAppbmRleCAyZDM5Y2Q2YjYwODBlMTIwYjA0N2RjMzVhMGM0M2ZjMmFiYzE1OGZmLi44
YzJiYzJhMzQxYzgyMzUxZDdmNjYyNWJjZTI3MWQwNzc2MzNhZTk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkRm9udENsaWVudC5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJGb250Q3JlYXRpb25Db250ZXh0LmgiCiAj
aW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlw
dGlvbi5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKQEAgLTEwOSwyMCArMTEwLDIw
IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBDYWNoZWRGb250Ojpj
cmVhdGVDdXN0b21Gb250RGF0YShTaGFyZWRCCiAgICAgcmV0dXJuIGJ1ZmZlciA/IGNyZWF0ZUZv
bnRDdXN0b21QbGF0Zm9ybURhdGEoKmJ1ZmZlciwgaXRlbUluQ29sbGVjdGlvbikgOiBudWxscHRy
OwogfQogCi1SZWZQdHI8Rm9udD4gQ2FjaGVkRm9udDo6Y3JlYXRlRm9udChjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYsIGJvb2wgc3ludGhl
dGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3Mm
IGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9u
dEZhY2VDYXBhYmlsaXRpZXMpCitSZWZQdHI8Rm9udD4gQ2FjaGVkRm9udDo6Y3JlYXRlRm9udChj
b25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYs
IGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRDcmVh
dGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIEZvbnQ6OmNy
ZWF0ZShwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRoZXRp
Y0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmls
aXRpZXMpLCBGb250OjpPcmlnaW46OlJlbW90ZSk7CisgICAgcmV0dXJuIEZvbnQ6OmNyZWF0ZShw
bGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQs
IHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCksIEZvbnQ6Ok9yaWdpbjo6UmVt
b3RlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9t
Q3VzdG9tRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBi
b2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0
dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxp
dGllcykKK0ZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3Rv
bURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRl
eHQpCiB7CiAgICAgQVNTRVJUKG1fZm9udEN1c3RvbVBsYXRmb3JtRGF0YSk7Ci0gICAgcmV0dXJu
IHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKCptX2ZvbnRDdXN0b21QbGF0Zm9ybURhdGEsIGZv
bnREZXNjcmlwdGlvbiwgYm9sZCwgaXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNh
cGFiaWxpdGllcyk7CisgICAgcmV0dXJuIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKCptX2Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEsIGZvbnREZXNjcmlwdGlvbiwgYm9sZCwgaXRhbGljLCBmb250
Q3JlYXRpb25Db250ZXh0KTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0
Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShGb250Q3VzdG9tUGxhdGZvcm1EYXRhJiBmb250Q3VzdG9t
UGxhdGZvcm1EYXRhLCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9v
bCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VG
ZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFi
aWxpdGllcykKK0ZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1
c3RvbURhdGEoRm9udEN1c3RvbVBsYXRmb3JtRGF0YSYgZm9udEN1c3RvbVBsYXRmb3JtRGF0YSwg
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRleHQpCiB7
Ci0gICAgcmV0dXJuIGZvbnRDdXN0b21QbGF0Zm9ybURhdGEuZm9udFBsYXRmb3JtRGF0YShmb250
RGVzY3JpcHRpb24sIGJvbGQsIGl0YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBh
YmlsaXRpZXMpOworICAgIHJldHVybiBmb250Q3VzdG9tUGxhdGZvcm1EYXRhLmZvbnRQbGF0Zm9y
bURhdGEoZm9udERlc2NyaXB0aW9uLCBib2xkLCBpdGFsaWMsIGZvbnRDcmVhdGlvbkNvbnRleHQp
OwogfQogCiB2b2lkIENhY2hlZEZvbnQ6OmFsbENsaWVudHNSZW1vdmVkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCmluZGV4IDIzMDEzYWZiYjRjYzhjN2FkOWU1Mjlm
ZDRhOTg0ZjFhYzc2MTQxNmIuLmVhOTE3ZGExMWM3MjYxNWJhZWQ3NzZkMWRmYzg3NTMxZTUxNjQz
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2
ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFJlc291cmNlTG9h
ZGVyOworc3RydWN0IEZvbnRDcmVhdGlvbkNvbnRleHQ7CiBjbGFzcyBGb250RGVzY3JpcHRpb247
CiBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogc3RydWN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRD
YXBhYmlsaXRpZXM7CkBAIC01NCwxMiArNTUsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIGVuc3VyZUN1c3RvbUZvbnREYXRhKGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSk7CiAg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVD
dXN0b21Gb250RGF0YShTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmIGl0ZW1JbkNvbGxlY3Rp
b24sIGJvb2wmIHdyYXBwaW5nKTsKLSAgICBzdGF0aWMgRm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9y
bURhdGFGcm9tQ3VzdG9tRGF0YShGb250Q3VzdG9tUGxhdGZvcm1EYXRhJiwgY29uc3QgRm9udERl
c2NyaXB0aW9uJiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0
aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpOworICAgIHN0YXRpYyBG
b250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKEZvbnRDdXN0b21QbGF0
Zm9ybURhdGEmLCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jik7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxGb250
PiBjcmVhdGVGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIHJl
bW90ZVVSSSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3Qg
Rm9udEZlYXR1cmVTZXR0aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMp
OworICAgIHZpcnR1YWwgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJiwgY29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJv
b2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jik7CiAKIHByb3Rl
Y3RlZDoKLSAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRG
ZWF0dXJlU2V0dGluZ3MmLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzKTsKKyAg
ICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNv
bnRleHQmKTsKIAogICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoU2hhcmVkQnVmZmVyKiBk
YXRhKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZv
bnRMb2FkUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnRM
b2FkUmVxdWVzdC5oCmluZGV4IGI5YjBjZjg2ZWE5YzEzYTU3ZDNhNTEwZGMxN2E5Zjg4NWFhZDBi
YjcuLjEwY2ZiYTUwYjQ2YWE0NTlkN2ZiNjcwOWNlMjlmNGY1YmE0YjRkOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250TG9hZFJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udExvYWRSZXF1ZXN0LmgKQEAg
LTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDIxIE1ldHJvbG9naWNhbCBHcm91
cCBCLlYuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzM0LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitzdHJ1Y3QgRm9udENyZWF0aW9uQ29udGV4dDsKKwogY2xhc3MgQ2FjaGVkRm9udExvYWRSZXF1
ZXN0IGZpbmFsIDogcHVibGljIEZvbnRMb2FkUmVxdWVzdCwgcHVibGljIENhY2hlZEZvbnRDbGll
bnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNTYsOSArNTks
OSBAQCBwcml2YXRlOgogICAgIGJvb2wgZXJyb3JPY2N1cnJlZCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fZm9udC0+ZXJyb3JPY2N1cnJlZCgpOyB9CiAKICAgICBib29sIGVuc3VyZUN1c3RvbUZv
bnREYXRhKGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSkgZmluYWwgeyByZXR1cm4gbV9mb250
LT5lbnN1cmVDdXN0b21Gb250RGF0YShyZW1vdGVVUkkpOyB9Ci0gICAgUmVmUHRyPEZvbnQ+IGNy
ZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBzZXR0aW5ncywgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpIGZpbmFsCisgICAgUmVmUHRyPEZvbnQ+IGNy
ZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
LCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25Db250ZXh0KSBmaW5hbAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fZm9udC0+Y3JlYXRlRm9udChkZXNjcmlwdGlvbiwgcmVt
b3RlVVJJLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIHNldHRpbmdzLCBjYXBhYmls
aXRpZXMpOworICAgICAgICByZXR1cm4gbV9mb250LT5jcmVhdGVGb250KGRlc2NyaXB0aW9uLCBy
ZW1vdGVVUkksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29u
dGV4dCk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRDbGllbnQoRm9udExvYWRSZXF1ZXN0Q2xpZW50
KiBjbGllbnQpIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU1ZHRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZH
Rm9udC5jcHAKaW5kZXggZTA3YzM3NzRlOGM1YmJiMmQzYTc5YTJlYTE2YzA3NTIwMWQ5MTNlNC4u
MzgwMjhhZjY3NmU3MTVlZTg3NDM1ZjlkYThhNGIzMTRjYjMxMjNiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkNhY2hlZFNWR0ZvbnQuaCIKIAorI2luY2x1ZGUgIkZvbnRDcmVhdGlvbkNvbnRl
eHQuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UGxhdGZv
cm1EYXRhLmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKQEAgLTUzLDE3ICs1NCwxNyBAQCBD
YWNoZWRTVkdGb250OjpDYWNoZWRTVkdGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIENhY2hlZFNWR0ZvbnQmIHJlcwogewogfQogCi1SZWZQdHI8Rm9udD4gQ2FjaGVkU1ZHRm9u
dDo6Y3JlYXRlRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29u
c3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhl
dGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBG
b250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKQor
UmVmUHRyPEZvbnQ+IENhY2hlZFNWR0ZvbnQ6OmNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSwgYm9vbCBz
eW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udENyZWF0aW9uQ29u
dGV4dCYgZm9udENyZWF0aW9uQ29udGV4dCkKIHsKICAgICBBU1NFUlQoZmlyc3RGb250RmFjZShy
ZW1vdGVVUkkpKTsKLSAgICByZXR1cm4gQ2FjaGVkRm9udDo6Y3JlYXRlRm9udChmb250RGVzY3Jp
cHRpb24sIHJlbW90ZVVSSSwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFj
ZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyk7CisgICAgcmV0dXJuIENhY2hlZEZvbnQ6
OmNyZWF0ZUZvbnQoZm9udERlc2NyaXB0aW9uLCByZW1vdGVVUkksIHN5bnRoZXRpY0JvbGQsIHN5
bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCk7CiB9CiAKLUZvbnRQbGF0Zm9ybURh
dGEgQ2FjaGVkU1ZHRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0
IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVj
aWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpCitGb250UGxhdGZvcm1EYXRh
IENhY2hlZFNWR0ZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBG
b250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25Db250ZXh0KQogewogICAgIGlmIChtX2V4
dGVybmFsU1ZHRG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnRE
ZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBib2xkLCBpdGFsaWMpOwotICAgIHJldHVy
biBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24s
IGJvbGQsIGl0YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMpOwor
ICAgICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQ
aXhlbFNpemUoKSwgYm9sZCwgaXRhbGljKTsgLy8gRklYTUU6IFRoaXMgZG9lc24ndCBzZWVtIHJp
Z2h0LgorICAgIHJldHVybiBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShm
b250RGVzY3JpcHRpb24sIGJvbGQsIGl0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCk7CiB9CiAK
IGJvb2wgQ2FjaGVkU1ZHRm9udDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEoY29uc3QgQXRvbVN0cmlu
ZyYgcmVtb3RlVVJJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNWR0ZvbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250
LmgKaW5kZXggM2Y2MDc4OTcwNzRlYWRlMjUxMTFkYTFlMDY4NWNjZmI4NTU0YTgwYi4uM2YwYzAx
NDNjMGY4ZDllYjE3ODNiMGZiNjNlMjIwNzVmNzgyOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgRm9udENyZWF0aW9uQ29udGV4dDsKIGNsYXNzIFNWR0Zv
bnRGYWNlRWxlbWVudDsKIGNsYXNzIFNldHRpbmdzOwogCkBAIC0zOSwxMCArNDAsMTAgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBlbnN1cmVDdXN0b21Gb250RGF0YShjb25zdCBBdG9tU3RyaW5nJiBy
ZW1vdGVVUkkpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRo
ZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdz
JiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcykgb3ZlcnJpZGU7CisgICAgUmVm
UHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
LCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAg
Rm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRp
bmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyk7CisgICAgRm9udFBsYXRm
b3JtRGF0YSBwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
LCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jik7CiAK
ICAgICBTVkdGb250RWxlbWVudCogZ2V0U1ZHRm9udEJ5SWQoY29uc3QgU3RyaW5nJikgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggNzBkMTAw
YzQ4NThlZWU0Y2ZiZjBkMmM4N2Q0MDczMWFmNTIyZjE1MS4uZGVkNGRlNWQxMzY2M2I4MDUyMmQw
NTNjODIwZDQyN2E0MjFjNGJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKQEAgLTc0LDcgKzc0LDkgQEAgUmVmPEZvbnQ+IEZvbnQ6OmNyZWF0ZShSZWY8U2hh
cmVkQnVmZmVyPiYmIGZvbnRGYWNlRGF0YSwgRm9udDo6T3JpZ2luIG9yaWdpbiwgZmwKICAgICBh
dXRvIGN1c3RvbUZvbnREYXRhID0gQ2FjaGVkRm9udDo6Y3JlYXRlQ3VzdG9tRm9udERhdGEoZm9u
dEZhY2VEYXRhLmdldCgpLCB7IH0sIHdyYXBwaW5nKTsKICAgICBGb250RGVzY3JpcHRpb24gZGVz
Y3JpcHRpb247CiAgICAgZGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKGZvbnRTaXplKTsKLSAg
ICByZXR1cm4gRm9udDo6Y3JlYXRlKENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21E
YXRhKCpjdXN0b21Gb250RGF0YSwgZGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRp
Y0l0YWxpYywgeyB9LCB7IH0pLCBvcmlnaW4sIGZvbnRDYWNoZUZvclZlcnRpY2FsRGF0YSk7Cisg
ICAgLy8gRklYTUU6IFdoeSBkb2Vzbid0IHRoaXMgcGFzcyBpbiBhbnkgbWVhbmluZ2Z1bCBkYXRh
IGZvciB0aGUgbGFzdCBmZXcgYXJndW1lbnRzPworICAgIGF1dG8gcGxhdGZvcm1EYXRhID0gQ2Fj
aGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoKmN1c3RvbUZvbnREYXRhLCBkZXNj
cmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCB7IH0pOworICAgIHJldHVy
biBGb250OjpjcmVhdGUoV1RGTW92ZShwbGF0Zm9ybURhdGEpLCBvcmlnaW4sIGZvbnRDYWNoZUZv
clZlcnRpY2FsRGF0YSk7CiB9CiAKIEZvbnQ6OkZvbnQoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYg
cGxhdGZvcm1EYXRhLCBPcmlnaW4gb3JpZ2luLCBJbnRlcnN0aXRpYWwgaW50ZXJzdGl0aWFsLCBW
aXNpYmlsaXR5IHZpc2liaWxpdHksIE9yaWVudGF0aW9uRmFsbGJhY2sgb3JpZW50YXRpb25GYWxs
YmFjaywgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciwgRm9udENhY2hlKiBmb250Q2FjaGVGb3JWZXJ0aWNhbERhdGEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRl
eCA2ZGNkNTU2N2EzMmU2OWFlNjAyNmY1OWI0YzU2YTQyY2ZlYWYyOTI2Li5jZjEyY2Q3OGJkMjU2
NTM5YWMwZGJiNGZhMThiNWUxYmQ1YWIyMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJG
b250Q2FjaGUuaCIKIAogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiRm9udENy
ZWF0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRl
ICJGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC04MCwxNyArODEsMTgg
QEAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBGb250RmFtaWx5TmFtZSYgYSwgY29uc3Qg
Rm9udEZhbWlseU5hbWUmIGIpCiBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IHsKICAg
ICBGb250RGVzY3JpcHRpb25LZXkgZGVzY3JpcHRpb25LZXk7CiAgICAgRm9udEZhbWlseU5hbWUg
ZmFtaWx5OwotICAgIEZvbnRGZWF0dXJlU2V0dGluZ3MgZmVhdHVyZXM7Ci0gICAgRm9udFNlbGVj
dGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7CisgICAgRm9udENyZWF0aW9u
Q29udGV4dCBmb250Q3JlYXRpb25Db250ZXh0OwogfTsKIAogc3RhdGljIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkmIGEsIGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGFDYWNoZUtleSYgYikKIHsKLSAgICByZXR1cm4gYS5kZXNjcmlwdGlvbktleSA9PSBiLmRlc2Ny
aXB0aW9uS2V5ICYmIGEuZmFtaWx5ID09IGIuZmFtaWx5ICYmIGEuZmVhdHVyZXMgPT0gYi5mZWF0
dXJlcyAmJiBhLmNhcGFiaWxpdGllcyA9PSBiLmNhcGFiaWxpdGllczsKKyAgICByZXR1cm4gYS5k
ZXNjcmlwdGlvbktleSA9PSBiLmRlc2NyaXB0aW9uS2V5CisgICAgICAgICYmIGEuZmFtaWx5ID09
IGIuZmFtaWx5CisgICAgICAgICYmIGEuZm9udENyZWF0aW9uQ29udGV4dCA9PSBiLmZvbnRDcmVh
dGlvbkNvbnRleHQ7CiB9CiAKIHN0cnVjdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXlIYXNoIHsK
LSAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkm
IGtleSkgeyByZXR1cm4gY29tcHV0ZUhhc2goa2V5LmRlc2NyaXB0aW9uS2V5LCBrZXkuZmFtaWx5
LCBrZXkuZmVhdHVyZXMsIGtleS5jYXBhYmlsaXRpZXMudGllZCgpKTsgfQorICAgIHN0YXRpYyB1
bnNpZ25lZCBoYXNoKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSYga2V5KSB7IHJldHVy
biBjb21wdXRlSGFzaChrZXkuZGVzY3JpcHRpb25LZXksIGtleS5mYW1pbHksIGtleS5mb250Q3Jl
YXRpb25Db250ZXh0KTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEZvbnRQbGF0Zm9y
bURhdGFDYWNoZUtleSYgYSwgY29uc3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5JiBiKSB7IHJl
dHVybiBhID09IGI7IH0KICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKQEAgLTIwNiw4ICsyMDgsNyBAQCBzdGQ6Om9wdGlv
bmFsPEFTQ0lJTGl0ZXJhbD4gRm9udENhY2hlOjphbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IFN0
cmluZyYgZmFtaWx5TgogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKLUZvbnRQbGF0Zm9y
bURhdGEqIEZvbnRDYWNoZTo6Y2FjaGVkRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBwYXNzZWRGYW1pbHlOYW1lLAot
ICAgIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3Bl
Y2lmaWVkQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5h
bWUpCitGb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmNhY2hlZEZvbnRQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgcGFz
c2VkRmFtaWx5TmFtZSwgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYgZm9udENyZWF0aW9uQ29u
dGV4dCwgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5hbWUpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBMb2NrZXIgbG9ja2VyIHsgbV9mb250TG9jayB9OwpAQCAtMjI3LDE3ICsyMjgs
MTcgQEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpjYWNoZWRGb250UGxhdGZvcm1EYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udEQKICAgICAgICAgcGxhdGZvcm1Jbml0KCk7CiAg
ICAgfSk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkga2V5IHsgZm9udERlc2NyaXB0
aW9uLCB7IGZhbWlseU5hbWUgfSwgZmVhdHVyZXMgPyAqZmVhdHVyZXMgOiBGb250RmVhdHVyZVNl
dHRpbmdzIHsgfSwgY2FwYWJpbGl0aWVzIH07CisgICAgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5
IGtleSB7IGZvbnREZXNjcmlwdGlvbiwgeyBmYW1pbHlOYW1lIH0sIGZvbnRDcmVhdGlvbkNvbnRl
eHQgfTsKIAogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9mb250RGF0YUNhY2hlcy0+cGxhdGZvcm1E
YXRhLmFkZChrZXksIG51bGxwdHIpOwogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNoZTo6aXRlcmF0
b3IgaXQgPSBhZGRSZXN1bHQuaXRlcmF0b3I7CiAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5
KSB7Ci0gICAgICAgIGl0LT52YWx1ZSA9IGNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoZm9udERlc2Ny
aXB0aW9uLCBmYW1pbHlOYW1lLCBmZWF0dXJlcywgY2FwYWJpbGl0aWVzKTsKKyAgICAgICAgaXQt
PnZhbHVlID0gY3JlYXRlRm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIGZhbWlseU5h
bWUsIGZvbnRDcmVhdGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoIWl0LT52YWx1ZSAmJiAhY2hl
Y2tpbmdBbHRlcm5hdGVOYW1lKSB7CiAgICAgICAgICAgICAvLyBXZSB3ZXJlIHVuYWJsZSB0byBm
aW5kIGEgZm9udC4gV2UgaGF2ZSBhIHNtYWxsIHNldCBvZiBmb250cyB0aGF0IHdlIGFsaWFzIHRv
IG90aGVyIG5hbWVzLAogICAgICAgICAgICAgLy8gZS5nLiwgQXJpYWwvSGVsdmV0aWNhLCBDb3Vy
aWVyL0NvdXJpZXIgTmV3LCBldGMuIFRyeSBsb29raW5nIHVwIHRoZSBmb250IHVuZGVyIHRoZSBh
bGlhc2VkIG5hbWUuCiAgICAgICAgICAgICBpZiAoYXV0byBhbHRlcm5hdGVOYW1lID0gYWx0ZXJu
YXRlRmFtaWx5TmFtZShmYW1pbHlOYW1lKSkgewotICAgICAgICAgICAgICAgIGF1dG8qIGFsdGVy
bmF0ZURhdGEgPSBjYWNoZWRGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgKmFsdGVy
bmF0ZU5hbWUsIGZlYXR1cmVzLCBjYXBhYmlsaXRpZXMsIHRydWUpOworICAgICAgICAgICAgICAg
IGF1dG8qIGFsdGVybmF0ZURhdGEgPSBjYWNoZWRGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlw
dGlvbiwgKmFsdGVybmF0ZU5hbWUsIGZvbnRDcmVhdGlvbkNvbnRleHQsIHRydWUpOwogICAgICAg
ICAgICAgICAgIC8vIExvb2sgdXAgdGhlIGtleSBpbiB0aGUgaGFzaCB0YWJsZSBhZ2FpbiBhcyB0
aGUgcHJldmlvdXMgaXRlcmF0b3IgbWF5IGhhdmUKICAgICAgICAgICAgICAgICAvLyBiZWVuIGlu
dmFsaWRhdGVkIGJ5IHRoZSByZWN1cnNpdmUgY2FsbCB0byBjYWNoZWRGb250UGxhdGZvcm1EYXRh
KCkuCiAgICAgICAgICAgICAgICAgaXQgPSBtX2ZvbnREYXRhQ2FjaGVzLT5wbGF0Zm9ybURhdGEu
ZmluZChrZXkpOwpAQCAtMjYyLDEyICsyNjMsMTIgQEAgY29uc3QgdW5zaWduZWQgY1RhcmdldElu
YWN0aXZlRm9udERhdGEgPSAyMDA7CiBjb25zdCB1bnNpZ25lZCBjTWF4VW5kZXJNZW1vcnlQcmVz
c3VyZUluYWN0aXZlRm9udERhdGEgPSA1MDsKIGNvbnN0IHVuc2lnbmVkIGNUYXJnZXRVbmRlck1l
bW9yeVByZXNzdXJlSW5hY3RpdmVGb250RGF0YSA9IDMwOwogCi1SZWZQdHI8Rm9udD4gRm9udENh
Y2hlOjpmb250Rm9yRmFtaWx5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
LCBjb25zdCBTdHJpbmcmIGZhbWlseSwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVy
ZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBib29s
IGNoZWNraW5nQWx0ZXJuYXRlTmFtZSkKK1JlZlB0cjxGb250PiBGb250Q2FjaGU6OmZvbnRGb3JG
YW1pbHkoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IFN0cmlu
ZyYgZmFtaWx5LCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25Db250ZXh0
LCBib29sIGNoZWNraW5nQWx0ZXJuYXRlTmFtZSkKIHsKICAgICBpZiAoIW1fcHVyZ2VUaW1lci5p
c0FjdGl2ZSgpKQogICAgICAgICBtX3B1cmdlVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiAKLSAg
ICBpZiAoYXV0byogcGxhdGZvcm1EYXRhID0gY2FjaGVkRm9udFBsYXRmb3JtRGF0YShmb250RGVz
Y3JpcHRpb24sIGZhbWlseSwgZmVhdHVyZXMsIGNhcGFiaWxpdGllcywgY2hlY2tpbmdBbHRlcm5h
dGVOYW1lKSkKKyAgICBpZiAoYXV0byogcGxhdGZvcm1EYXRhID0gY2FjaGVkRm9udFBsYXRmb3Jt
RGF0YShmb250RGVzY3JpcHRpb24sIGZhbWlseSwgZm9udENyZWF0aW9uQ29udGV4dCwgY2hlY2tp
bmdBbHRlcm5hdGVOYW1lKSkKICAgICAgICAgcmV0dXJuIGZvbnRGb3JQbGF0Zm9ybURhdGEoKnBs
YXRmb3JtRGF0YSk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5kZXggMjRjYTJlNmQzNmU0OGYxYTc0OTZhMWE2
NmMzYjM2YTNiNGZmYWZkZS4uZGNlZDY1NDI1ZTY0YmU1NmQwOTFlYTJiYjA1YTU0YTg5MDk4Yjdi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRm9udENhc2NhZGVGb250
cy5oIgorI2luY2x1ZGUgIkZvbnRDcmVhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJGb250RGVz
Y3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9u
dFNlbGVjdG9yLmgiCkBAIC0zMDEsNyArMzAyLDcgQEAgcHVibGljOgogICAgIC8vIEl0IGNvbWVz
IGludG8gcGxheSB3aGVuIHlvdSBjcmVhdGUgYW4gQGZvbnQtZmFjZSB3aGljaCBzaGFyZXMgYSBm
YW1pbHkgbmFtZSBhcyBhIHByZWluc3RhbGxlZCBmb250LgogICAgIFZlY3RvcjxGb250U2VsZWN0
aW9uQ2FwYWJpbGl0aWVzPiBnZXRGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzSW5GYW1pbHkoY29u
c3QgQXRvbVN0cmluZyYsIEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIFJlZlB0cjxGb250PiBmb250Rm9yRmFtaWx5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVy
ZXMgPSBudWxscHRyLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNl
Q2FwYWJpbGl0aWVzID0geyB9LCBib29sIGNoZWNraW5nQWx0ZXJuYXRlTmFtZSA9IGZhbHNlKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8Rm9udD4gZm9udEZvckZhbWlseShjb25zdCBGb250
RGVzY3JpcHRpb24mLCBjb25zdCBTdHJpbmcmLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiA9
IHsgfSwgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5hbWUgPSBmYWxzZSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgUmVmPEZvbnQ+IGxhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEZvbnQ+IGZvbnRGb3JQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOwogICAgIFJlZlB0cjxGb250PiBzaW1pbGFyRm9udChj
b25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBTdHJpbmcmIGZhbWlseSk7CkBAIC0zNTYsMTAg
KzM1NywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJ1bmVTeXN0ZW1GYWxsYmFja0ZvbnRzKCk7
CiAgICAgUmVmPEZvbnRDYXNjYWRlRm9udHM+IHJldHJpZXZlT3JBZGRDYWNoZWRGb250cyhjb25z
dCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJiwgUmVmUHRyPEZvbnRTZWxlY3Rvcj4mJik7CiAKLSAg
ICBGb250UGxhdGZvcm1EYXRhKiBjYWNoZWRGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYsIGNvbnN0IFN0cmluZyYgZmFtaWx5LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdz
KiA9IG51bGxwdHIsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgPSB7IH0sIGJv
b2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lID0gZmFsc2UpOworICAgIEZvbnRQbGF0Zm9ybURhdGEq
IGNhY2hlZEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgU3Ry
aW5nJiBmYW1pbHksIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmID0geyB9LCBib29sIGNoZWNr
aW5nQWx0ZXJuYXRlTmFtZSA9IGZhbHNlKTsKIAogICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUg
aW1wbGVtZW50ZWQgYnkgZWFjaCBwbGF0Zm9ybSAodW5jbGVhciB3aGljaCBmdW5jdGlvbnMgdGhp
cyBjb21tZW50IGFwcGxpZXMgdG8pLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6dW5pcXVlX3B0
cjxGb250UGxhdGZvcm1EYXRhPiBjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSwgY29uc3QgRm9udEZlYXR1cmVTZXR0
aW5ncyosIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBjcmVhdGVGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSwg
Y29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYpOwogICAgIAogICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFTQ0lJTGl0ZXJhbD4gYWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBTdHJpbmcmKTsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxBU0NJSUxpdGVyYWw+IHBsYXRmb3JtQWx0ZXJuYXRlRmFt
aWx5TmFtZShjb25zdCBTdHJpbmcmKTsKQEAgLTM5Miw3ICszOTMsNyBAQCBwcml2YXRlOgogCiBp
bmxpbmUgc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRl
Rm9udFBsYXRmb3JtRGF0YUZvclRlc3RpbmcoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVz
Y3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSkKIHsKLSAgICByZXR1cm4gY3JlYXRl
Rm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIGZhbWlseSwgbnVsbHB0ciwgeyB9KTsK
KyAgICByZXR1cm4gY3JlYXRlRm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIGZhbWls
eSwgeyB9KTsKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShGUkVFVFlQRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvbkNv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvbkNv
bnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mM2U2MTc0YjFmZTQzYzU1MDQwMTFkYWI0YWIwYjhlNmM4ZTcz
NTI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENyZWF0aW9uQ29udGV4dC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkZvbnRTZWxlY3Rpb25BbGdvcml0aG0uaCIKKyNpbmNsdWRl
ICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
Rm9udENyZWF0aW9uQ29udGV4dCB7CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRDcmVh
dGlvbkNvbnRleHQmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZvbnRGYWNl
RmVhdHVyZXMgPT0gb3RoZXIuZm9udEZhY2VGZWF0dXJlcworICAgICAgICAgICAgJiYgZm9udEZh
Y2VDYXBhYmlsaXRpZXMgPT0gb3RoZXIuZm9udEZhY2VDYXBhYmlsaXRpZXM7CisgICAgfQorCisg
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIG90aGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworICAgIH0KKworICAg
IEZvbnRGZWF0dXJlU2V0dGluZ3MgZm9udEZhY2VGZWF0dXJlczsKKyAgICBGb250U2VsZWN0aW9u
U3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzOworICAgIC8vIEZJWE1F
OiBBZGQgc3VwcG9ydCBmb3IgZm9udC1wYWxldHRlLXZhbHVlcyBhbmQgZm9udC1mZWF0dXJlLXZh
bHVlcy4KK307CisKK2lubGluZSB2b2lkIGFkZChIYXNoZXImIGhhc2hlciwgY29uc3QgRm9udENy
ZWF0aW9uQ29udGV4dCYgZm9udENyZWF0aW9uQ29udGV4dCkKK3sKKyAgICBhZGQoaGFzaGVyLCBm
b250Q3JlYXRpb25Db250ZXh0LmZvbnRGYWNlRmVhdHVyZXMpOworICAgIGFkZChoYXNoZXIsIGZv
bnRDcmVhdGlvbkNvbnRleHQuZm9udEZhY2VDYXBhYmlsaXRpZXMudGllZCgpKTsKK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENh
Y2hlQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2Ev
Rm9udENhY2hlQ29yZVRleHQuY3BwCmluZGV4IDE5NThjYzBlNDZkMTIzNWFlYTA5MDNhMWZhZjQ0
OTQwMDE0MjEyMmEuLjRmZDlhNWRkM2I1ZTg0MzAyMzlkMDliMTM3YzYzMzdhMDNmYTAwZGUgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNo
ZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJp
Z2h0IChDKSAyMDE1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAq
IFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGgg
b3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQg
dGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw4ICsyNiwxMCBAQAogI2luY2x1ZGUgImNv
bmZpZy5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgogCisjaW5jbHVkZSAiQ29sb3IuaCIKICNp
bmNsdWRlICJGb250LmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGVEZXNjcmlwdGlvbi5oIgorI2lu
Y2x1ZGUgIkZvbnRDcmVhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJGb250RmFtaWx5U3BlY2lm
aWNhdGlvbkNvcmVUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWVDb2NvYS5oIgogI2luY2x1
ZGUgIlN5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmgiCkBAIC00NDAsNyArNDQyLDcgQEAgc3Ry
dWN0IEZvbnRUeXBlIHsKICAgICBib29sIGFhdFNoYXBpbmcgeyBmYWxzZSB9OwogfTsKIAotUmV0
YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxG
b250LCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgRm9udEZl
YXR1cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENh
cGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcywgYm9vbCBhcHBseVdlaWdodFdpZHRoU2xv
cGVWYXJpYXRpb25zKQorUmV0YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChD
VEZvbnRSZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlw
dGlvbiwgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYgZm9udENyZWF0aW9uQ29udGV4dCwgYm9v
bCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zKQogewogICAgIGlmICghb3JpZ2luYWxG
b250KQogICAgICAgICByZXR1cm4gb3JpZ2luYWxGb250OwpAQCAtNDY5LDcgKzQ3MSw3IEBAIFJl
dGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFs
Rm9udCwgY29uc3QgRm9udERlc2NyCiAgICAgYm9vbCB0ZXh0UmVuZGVyaW5nTW9kZUlzQXV0byA9
IHRleHRSZW5kZXJpbmdNb2RlID09IFRleHRSZW5kZXJpbmdNb2RlOjpBdXRvVGV4dFJlbmRlcmlu
ZzsKICAgICBib29sIHZhcmlhbnRTZXR0aW5nc0lzTm9ybWFsID0gdmFyaWFudFNldHRpbmdzLmlz
QWxsTm9ybWFsKCk7CiAgICAgYm9vbCBkb250TmVlZFRvQXBwbHlPcHRpY2FsU2l6aW5nID0gZm9u
dE9wdGljYWxTaXppbmcgPT0gRm9udE9wdGljYWxTaXppbmc6OkVuYWJsZWQgJiYgIWZvcmNlT3B0
aWNhbFNpemluZ09uOwotICAgIGJvb2wgZm9udEZhY2VEb2VzbnRTcGVjaWZ5RmVhdHVyZXMgPSAh
Zm9udEZhY2VGZWF0dXJlcyB8fCBmb250RmFjZUZlYXR1cmVzLT5pc0VtcHR5KCk7CisgICAgYm9v
bCBmb250RmFjZURvZXNudFNwZWNpZnlGZWF0dXJlcyA9IGZvbnRDcmVhdGlvbkNvbnRleHQuZm9u
dEZhY2VGZWF0dXJlcy5pc0VtcHR5KCk7CiAgICAgaWYgKG5vRm9udEZlYXR1cmVTZXR0aW5ncyAm
JiBub0ZvbnRWYXJpYXRpb25TZXR0aW5ncyAmJiB0ZXh0UmVuZGVyaW5nTW9kZUlzQXV0byAmJiB2
YXJpYW50U2V0dGluZ3NJc05vcm1hbCAmJiBkb250TmVlZFRvQXBwbHlPcHRpY2FsU2l6aW5nICYm
IGZvbnRGYWNlRG9lc250U3BlY2lmeUZlYXR1cmVzICYmICFzaG91bGREaXNhYmxlTGlnYXR1cmVz
Rm9yU3BhY2luZykgewogI2lmIEhBVkUoQ1RGT05UQ1JFQVRFRk9SQ0hBUkFDVEVSU1dJVEhMQU5H
VUFHRUFORE9QVElPTikKICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRm9udDsKQEAgLTUxNSwxMSAr
NTE3LDExIEBAIFJldGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250
UmVmIG9yaWdpbmFsRm9udCwgY29uc3QgRm9udERlc2NyCiAgICAgICAgIGZsb2F0IHdlaWdodCA9
IGZvbnRTZWxlY3Rpb25SZXF1ZXN0LndlaWdodDsKICAgICAgICAgZmxvYXQgd2lkdGggPSBmb250
U2VsZWN0aW9uUmVxdWVzdC53aWR0aDsKICAgICAgICAgZmxvYXQgc2xvcGUgPSBmb250U2VsZWN0
aW9uUmVxdWVzdC5zbG9wZS52YWx1ZV9vcihub3JtYWxJdGFsaWNWYWx1ZSgpKTsKLSAgICAgICAg
aWYgKGF1dG8gd2VpZ2h0VmFsdWUgPSBmb250RmFjZUNhcGFiaWxpdGllcy53ZWlnaHQpCisgICAg
ICAgIGlmIChhdXRvIHdlaWdodFZhbHVlID0gZm9udENyZWF0aW9uQ29udGV4dC5mb250RmFjZUNh
cGFiaWxpdGllcy53ZWlnaHQpCiAgICAgICAgICAgICB3ZWlnaHQgPSBzdGQ6Om1heChzdGQ6Om1p
bih3ZWlnaHQsIHN0YXRpY19jYXN0PGZsb2F0Pih3ZWlnaHRWYWx1ZS0+bWF4aW11bSkpLCBzdGF0
aWNfY2FzdDxmbG9hdD4od2VpZ2h0VmFsdWUtPm1pbmltdW0pKTsKLSAgICAgICAgaWYgKGF1dG8g
d2lkdGhWYWx1ZSA9IGZvbnRGYWNlQ2FwYWJpbGl0aWVzLndpZHRoKQorICAgICAgICBpZiAoYXV0
byB3aWR0aFZhbHVlID0gZm9udENyZWF0aW9uQ29udGV4dC5mb250RmFjZUNhcGFiaWxpdGllcy53
aWR0aCkKICAgICAgICAgICAgIHdpZHRoID0gc3RkOjptYXgoc3RkOjptaW4od2lkdGgsIHN0YXRp
Y19jYXN0PGZsb2F0Pih3aWR0aFZhbHVlLT5tYXhpbXVtKSksIHN0YXRpY19jYXN0PGZsb2F0Pih3
aWR0aFZhbHVlLT5taW5pbXVtKSk7Ci0gICAgICAgIGlmIChhdXRvIHNsb3BlVmFsdWUgPSBmb250
RmFjZUNhcGFiaWxpdGllcy53ZWlnaHQpCisgICAgICAgIGlmIChhdXRvIHNsb3BlVmFsdWUgPSBm
b250Q3JlYXRpb25Db250ZXh0LmZvbnRGYWNlQ2FwYWJpbGl0aWVzLndlaWdodCkKICAgICAgICAg
ICAgIHNsb3BlID0gc3RkOjptYXgoc3RkOjptaW4oc2xvcGUsIHN0YXRpY19jYXN0PGZsb2F0Pihz
bG9wZVZhbHVlLT5tYXhpbXVtKSksIHN0YXRpY19jYXN0PGZsb2F0PihzbG9wZVZhbHVlLT5taW5p
bXVtKSk7CiAgICAgICAgIGlmIChuZWVkc0NvbnZlcnNpb24pIHsKICAgICAgICAgICAgIHdlaWdo
dCA9IGRlbm9ybWFsaXplV2VpZ2h0KHdlaWdodCk7CkBAIC01MzksOCArNTQxLDggQEAgUmV0YWlu
UHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250
LCBjb25zdCBGb250RGVzY3IKICAgICAvLyBGSVhNRTogSW1wbGVtZW50IFN0ZXAgNjogdGhlIGZv
bnQtdmFyaWF0aW9uLXNldHRpbmdzIGRlc2NyaXB0b3IgaW5zaWRlIEBmb250LWZhY2UKIAogICAg
IC8vIFN0ZXAgNzogQ29uc3VsdCB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0aW5ncyBpbnNpZGUgQGZv
bnQtZmFjZQotICAgIGlmIChmb250RmFjZUZlYXR1cmVzKSB7Ci0gICAgICAgIGZvciAoYXV0byYg
Zm9udEZhY2VGZWF0dXJlIDogKmZvbnRGYWNlRmVhdHVyZXMpCisgICAgaWYgKCFmb250Q3JlYXRp
b25Db250ZXh0LmZvbnRGYWNlRmVhdHVyZXMuaXNFbXB0eSgpKSB7CisgICAgICAgIGZvciAoYXV0
byYgZm9udEZhY2VGZWF0dXJlIDogZm9udENyZWF0aW9uQ29udGV4dC5mb250RmFjZUZlYXR1cmVz
KQogICAgICAgICAgICAgYXBwbHlGZWF0dXJlKGZvbnRGYWNlRmVhdHVyZS50YWcoKSwgZm9udEZh
Y2VGZWF0dXJlLnZhbHVlKCkpOwogICAgIH0KIApAQCAtNTc0LDcgKzU3Niw3IEBAIFJldGFpblB0
cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9udCwg
Y29uc3QgRm9udERlc2NyCiAgICAgZm9yIChhdXRvJiBuZXdWYXJpYXRpb24gOiB2YXJpYXRpb25z
KQogICAgICAgICBhcHBseVZhcmlhdGlvbihuZXdWYXJpYXRpb24udGFnKCksIG5ld1ZhcmlhdGlv
bi52YWx1ZSgpKTsKIAotICAgIGF1dG8gYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5
Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAyLCAma0NGVHlwZURpY3Rpb25hcnlL
ZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgYXV0
byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVE
aWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBpZiAoIWZlYXR1cmVzVG9CZUFwcGxpZWQu
aXNFbXB0eSgpKSB7CiAgICAgICAgIGF1dG8gZmVhdHVyZUFycmF5ID0gYWRvcHRDRihDRkFycmF5
Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmZWF0dXJlcy5zaXplKCksICZrQ0ZU
eXBlQXJyYXlDYWxsQmFja3MpKTsKICAgICAgICAgZm9yIChhdXRvJiBwIDogZmVhdHVyZXNUb0Jl
QXBwbGllZCkgewpAQCAtMTI0Miw3ICsxMjQ0LDcgQEAgc3RhdGljIFJldGFpblB0cjxDVEZvbnRS
ZWY+IGZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2UoY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LAog
ICAgIHJldHVybiBudWxscHRyOwogfQogCi1zdGF0aWMgUmV0YWluUHRyPENURm9udFJlZj4gZm9u
dFdpdGhGYW1pbHkoY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LCBjb25zdCBGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZm9udEZhY2VG
ZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFi
aWxpdGllcywgZmxvYXQgc2l6ZSkKK3N0YXRpYyBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250V2l0
aEZhbWlseShjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
Zm9udERlc2NyaXB0aW9uLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25D
b250ZXh0LCBmbG9hdCBzaXplKQogewogICAgIGlmIChmYW1pbHkuaXNFbXB0eSgpKQogICAgICAg
ICByZXR1cm4gbnVsbHB0cjsKQEAgLTEyNTEsNyArMTI1Myw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8
Q1RGb250UmVmPiBmb250V2l0aEZhbWlseShjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHksIGNvbnN0
IEZvbnRECiAgICAgZm9udExvb2t1cC5yZXN1bHQgPSBmb250V2l0aEZhbWlseVNwZWNpYWxDYXNl
KGZhbWlseSwgZm9udERlc2NyaXB0aW9uLCBzaXplLCBmb250RGVzY3JpcHRpb24uc2hvdWxkQWxs
b3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CiAgICAgaWYgKCFmb250TG9va3VwLnJlc3VsdCkKICAg
ICAgICAgZm9udExvb2t1cCA9IHBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkoZmFtaWx5LCBm
b250RGVzY3JpcHRpb24uZm9udFNlbGVjdGlvblJlcXVlc3QoKSwgc2l6ZSwgZm9udERlc2NyaXB0
aW9uLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpOwotICAgIHJldHVybiBwcmVwYXJl
UGxhdGZvcm1Gb250KGZvbnRMb29rdXAucmVzdWx0LmdldCgpLCBmb250RGVzY3JpcHRpb24sIGZv
bnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCAhZm9udExvb2t1cC5jcmVhdGVk
RnJvbVBvc3RTY3JpcHROYW1lKTsKKyAgICByZXR1cm4gcHJlcGFyZVBsYXRmb3JtRm9udChmb250
TG9va3VwLnJlc3VsdC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCBmb250Q3JlYXRpb25Db250ZXh0
LCAhZm9udExvb2t1cC5jcmVhdGVkRnJvbVBvc3RTY3JpcHROYW1lKTsKIH0KIAogI2lmIFBMQVRG
T1JNKE1BQykKQEAgLTEyODUsMTEgKzEyODcsMTEgQEAgc3RhdGljIHZvaWQgYXV0b0FjdGl2YXRl
Rm9udChjb25zdCBTdHJpbmcmIG5hbWUsIENHRmxvYXQgc2l6ZSkKIH0KICNlbmRpZgogCi1zdGQ6
OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBBdG9t
U3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVy
ZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRp
ZXMpCitzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVG
b250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBj
b25zdCBBdG9tU3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRD
cmVhdGlvbkNvbnRleHQpCiB7CiAgICAgZmxvYXQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21w
dXRlZFBpeGVsU2l6ZSgpOwogCi0gICAgYXV0byBmb250ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5
LCBmb250RGVzY3JpcHRpb24sIGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVz
LCBzaXplKTsKKyAgICBhdXRvIGZvbnQgPSBmb250V2l0aEZhbWlseShmYW1pbHksIGZvbnREZXNj
cmlwdGlvbiwgZm9udENyZWF0aW9uQ29udGV4dCwgc2l6ZSk7CiAKICNpZiBQTEFURk9STShNQUMp
CiAgICAgaWYgKCFmb250KSB7CkBAIC0xMzAwLDcgKzEzMDIsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8
Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0
IEZvbnREZQogICAgICAgICAvLyBJZ25vcmUgdGhlIHJlc3VsdCBiZWNhdXNlIHdlIHdhbnQgdG8g
dXNlIG91ciBvd24gYWxnb3JpdGhtIHRvIGFjdHVhbGx5IGZpbmQgdGhlIGZvbnQuCiAgICAgICAg
IGF1dG9BY3RpdmF0ZUZvbnQoZmFtaWx5LnN0cmluZygpLCBzaXplKTsKIAotICAgICAgICBmb250
ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5LCBmb250RGVzY3JpcHRpb24sIGZvbnRGYWNlRmVhdHVy
ZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBzaXplKTsKKyAgICAgICAgZm9udCA9IGZvbnRXaXRo
RmFtaWx5KGZhbWlseSwgZm9udERlc2NyaXB0aW9uLCBmb250Q3JlYXRpb25Db250ZXh0LCBzaXpl
KTsKICAgICB9CiAjZW5kaWYKIApAQCAtMTQxMiw3ICsxNDE0LDcgQEAgUmVmUHRyPEZvbnQ+IEZv
bnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgZGVzY3IKICAgICAgICAgbV9mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFja0ZvclBy
ZXdhcm1pbmcuYWRkKGZ1bGxOYW1lKTsKIAogICAgIGF1dG8gcmVzdWx0ID0gbG9va3VwRmFsbGJh
Y2tGb250KHBsYXRmb3JtRGF0YS5mb250KCksIGRlc2NyaXB0aW9uLndlaWdodCgpLCBkZXNjcmlw
dGlvbi5jb21wdXRlZExvY2FsZSgpLCBkZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0YWxs
ZWRGb250cygpLCBjaGFyYWN0ZXJzLCBsZW5ndGgpOwotICAgIHJlc3VsdCA9IHByZXBhcmVQbGF0
Zm9ybUZvbnQocmVzdWx0LmdldCgpLCBkZXNjcmlwdGlvbiwgbnVsbHB0ciwgeyB9KTsKKyAgICBy
ZXN1bHQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KHJlc3VsdC5nZXQoKSwgZGVzY3JpcHRpb24sIHsg
fSk7CiAKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIGxhc3RSZXNvcnRGYWxsYmFj
a0ZvbnQoZGVzY3JpcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKaW5kZXggOWFiYTg5ZjIxMzcw
NzJkNDNhOGY4OThhZGRkMThkYWQ2MjQ5MDM5NS4uODljNmNiZjMzODVlZGU4MTM5YTQ4MzQzZjM3
ZGU2Nzk2M2NkM2Q5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oCkBAIC0xLDUgKzEsNSBAQAogLyoK
LSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgor
ICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZv
cm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92
aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsOCBAQAogCiBu
YW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVjdCBGb250Q3JlYXRpb25Db250ZXh0OworCiBzdHJ1
Y3QgU3ludGhlc2lzUGFpciB7CiAgICAgZXhwbGljaXQgU3ludGhlc2lzUGFpcihib29sIG5lZWRz
U3ludGhldGljQm9sZCwgYm9vbCBuZWVkc1N5bnRoZXRpY09ibGlxdWUpCiAgICAgICAgIDogbmVl
ZHNTeW50aGV0aWNCb2xkKG5lZWRzU3ludGhldGljQm9sZCkKQEAgLTU5LDcgKzYxLDcgQEAgc3Ry
dWN0IFZhcmlhdGlvbkRlZmF1bHRzIHsKIAogdHlwZWRlZiBIYXNoTWFwPEZvbnRUYWcsIFZhcmlh
dGlvbkRlZmF1bHRzLCBGb3VyQ2hhcmFjdGVyVGFnSGFzaCwgRm91ckNoYXJhY3RlclRhZ0hhc2hU
cmFpdHM+IFZhcmlhdGlvbkRlZmF1bHRzTWFwOwogCi1SZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVw
YXJlUGxhdGZvcm1Gb250KENURm9udFJlZiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3Qg
Rm9udEZlYXR1cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcywgYm9vbCBhcHBseVdlaWdodFdp
ZHRoU2xvcGVWYXJpYXRpb25zID0gdHJ1ZSk7CitSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJl
UGxhdGZvcm1Gb250KENURm9udFJlZiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgRm9u
dENyZWF0aW9uQ29udGV4dCYsIGJvb2wgYXBwbHlXZWlnaHRXaWR0aFNsb3BlVmFyaWF0aW9ucyA9
IHRydWUpOwogZW51bSBjbGFzcyBTaG91bGRDb21wdXRlUGh5c2ljYWxUcmFpdHMgOiBib29sIHsg
Tm8sIFllcyB9OwogU3ludGhlc2lzUGFpciBjb21wdXRlTmVjZXNzYXJ5U3ludGhlc2lzKENURm9u
dFJlZiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiwgU2hvdWxkQ29tcHV0ZVBoeXNpY2FsVHJhaXRz
ID0gU2hvdWxkQ29tcHV0ZVBoeXNpY2FsVHJhaXRzOjpObywgYm9vbCBpc1BsYXRmb3JtRm9udCA9
IGZhbHNlKTsKIFJldGFpblB0cjxDVEZvbnRSZWY+IHBsYXRmb3JtRm9udFdpdGhGYW1pbHkoY29u
c3QgQXRvbVN0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgVGV4dFJlbmRlcmlu
Z01vZGUsIGZsb2F0IHNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RmFtaWx5U3BlY2lmaWNhdGlv
bkNvcmVUZXh0LmNwcAppbmRleCAyYmUzOWI3OTQzNTE1MWY0ZmE4NmZjMzE0OTE0MThhMTJkMjk0
OWQ5Li5hZGJjYzI0NDhmMWVlOWU1ODI4NGYzMmRhMzc2M2Y2MzA5ZWM3Nzk1IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RmFtaWx5U3BlY2lm
aWNhdGlvbkNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC05Nyw3ICs5Nyw3IEBA
IEZvbnRSYW5nZXMgRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dDo6Zm9udFJhbmdlcyhj
b25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAKICAgICAgICAgYXV0byBmb250ID0gYWRvcHRDRihD
VEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IobV9mb250RGVzY3JpcHRvci5nZXQoKSwgc2l6
ZSwgbnVsbHB0cikpOwogCi0gICAgICAgIGZvbnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KGZvbnQu
Z2V0KCksIGZvbnREZXNjcmlwdGlvbiwgbnVsbHB0ciwgeyB9KTsKKyAgICAgICAgZm9udCA9IHBy
ZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCB7IH0pOwogCiAg
ICAgICAgIGF1dG8gW3N5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWVdID0gY29tcHV0ZU5l
Y2Vzc2FyeVN5bnRoZXNpcyhmb250LmdldCgpLCBmb250RGVzY3JpcHRpb24sIFNob3VsZENvbXB1
dGVQaHlzaWNhbFRyYWl0czo6WWVzKS5ib2xkT2JsaXF1ZVBhaXIoKTsKIApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5
cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udENh
Y2hlRnJlZVR5cGUuY3BwCmluZGV4IDIyNGZhN2FmYjljYzQ0MGI1YzUzOWY1OTMwODRmY2MxMzJi
M2UwYzguLjdjMDlkOWIyMDU3OGJkOWVkZWQ2ZDI5MDczZTFiYzc2YjE3ZDk2YmUgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDYWNoZUZy
ZWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlw
ZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKQEAgLTQ5OCw3ICs0OTgsNyBAQCBzdGF0aWMgaW5saW5l
IGJvb2wgaXNDb21tb25seVVzZWRHZW5lcmljRmFtaWx5KGNvbnN0IFN0cmluZyYgZmFtaWx5TmFt
ZVN0cmluZykKICAgICAgICAgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdBU0NJSUNhc2UoZmFtaWx5
TmFtZVN0cmluZywgImN1cnNpdmUiKTsKIH0KIAotc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9y
bURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LCBjb25zdCBG
b250RmVhdHVyZVNldHRpbmdzKiBmb250RmFjZUZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3BlY2lm
aWVkQ2FwYWJpbGl0aWVzKQorc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRD
YWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRE
ZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LCBjb25zdCBGb250Q3JlYXRpb25D
b250ZXh0JiBmb250Q3JlYXRpb25Db250ZXh0KQogewogICAgIC8vIFRoZSBDU1MgZm9udCBtYXRj
aGluZyBhbGdvcml0aG0gKGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMtZm9udHMvI2ZvbnQtbWF0
Y2hpbmctYWxnb3JpdGhtKQogICAgIC8vIHNheXMgdGhhdCB3ZSBtdXN0IGZpbmQgYW4gZXhhY3Qg
bWF0Y2ggZm9yIGZvbnQgZmFtaWx5LCBzbGFudCAoaXRhbGljIG9yIG9ibGlxdWUgY2FuIGJlIHVz
ZWQpCkBAIC01NzMsOCArNTczLDggQEAgc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+
IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGUKICAgICBib29s
IGZpeGVkV2lkdGgsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWU7CiAgICAgZ2V0Rm9u
dFByb3BlcnRpZXNGcm9tUGF0dGVybihyZXN1bHRQYXR0ZXJuLmdldCgpLCBmb250RGVzY3JpcHRp
b24sIGZpeGVkV2lkdGgsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUpOwogCi0gICAg
aWYgKGZvbnRGYWNlRmVhdHVyZXMpIHsKLSAgICAgICAgZm9yIChhdXRvJiBmb250RmFjZUZlYXR1
cmUgOiAqZm9udEZhY2VGZWF0dXJlcykgeworICAgIGlmICghZm9udENyZWF0aW9uQ29udGV4dC5m
b250RmFjZUZlYXR1cmVzLmlzRW1wdHkoKSkgeworICAgICAgICBmb3IgKGF1dG8mIGZvbnRGYWNl
RmVhdHVyZSA6IGZvbnRDcmVhdGlvbkNvbnRleHQuZm9udEZhY2VGZWF0dXJlcykgewogICAgICAg
ICAgICAgaWYgKGZvbnRGYWNlRmVhdHVyZS5lbmFibGVkKCkpIHsKICAgICAgICAgICAgICAgICBj
b25zdCBhdXRvJiB0YWcgPSBmb250RmFjZUZlYXR1cmUudGFnKCk7CiAgICAgICAgICAgICAgICAg
Y29uc3QgY2hhciBidWZmZXJbXSA9IHsgdGFnWzBdLCB0YWdbMV0sIHRhZ1syXSwgdGFnWzNdLCAn
XDAnIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKaW5kZXggZjI1ZGMyMWEyNjc4ODQ2
MGVjNWJiZWI4NjZlYjYwYzM0YTcwZWRhZi4uMDcxZTAwZDk1MGU2NWZhMGI0NDUxZGY3NmIwYjQ1
ZDFmN2M0MDdmZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcApAQCAtMSw1ICsxLDUg
QEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDgsIDIwMTAgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMjEgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJl
OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUg
dGVybXMgb2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zNSw3ICszNSw3IEBA
IG5hbWVzcGFjZSBXZWJDb3JlIHsKIAogRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0
b21QbGF0Zm9ybURhdGEoKSA9IGRlZmF1bHQ7CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZv
bnREZXNjcmlwdGlvbiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVT
ZXR0aW5ncyYgZm9udEZhY2VGZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxp
dGllcyBmb250RmFjZUNhcGFiaWxpdGllcykKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBs
YXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnRE
ZXNjcmlwdGlvbiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udENyZWF0aW9uQ29u
dGV4dCYgZm9udENyZWF0aW9uQ29udGV4dCkKIHsKICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9w
dENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtD
RlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxC
YWNrcykpOwogICAgIGFkZEF0dHJpYnV0ZXNGb3JXZWJGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBm
b250RGVzY3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CkBAIC00Niw3
ICs0Niw3IEBAIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mCiAgICAgRm9udE9yaWVudGF0aW9uIG9y
aWVudGF0aW9uID0gZm9udERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCk7CiAgICAgRm9udFdpZHRo
VmFyaWFudCB3aWR0aFZhcmlhbnQgPSBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCk7CiAg
ICAgYXV0byBmb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IobW9k
aWZpZWRGb250RGVzY3JpcHRvci5nZXQoKSwgc2l6ZSwgbnVsbHB0cikpOwotICAgIGZvbnQgPSBw
cmVwYXJlUGxhdGZvcm1Gb250KGZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbiwgJmZvbnRGYWNl
RmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKTsKKyAgICBmb250ID0gcHJlcGFyZVBsYXRm
b3JtRm9udChmb250LmdldCgpLCBmb250RGVzY3JpcHRpb24sIGZvbnRDcmVhdGlvbkNvbnRleHQp
OwogICAgIEFTU0VSVChmb250KTsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250Lmdl
dCgpLCBzaXplLCBib2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIGZvbnRE
ZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpLCAmY3JlYXRpb25EYXRhKTsKIH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5oCmluZGV4IGZmYjlhOTc0NDRjYTM0OWZjYTE3YTMwYzUyZDBiODNl
NDgzNWQ3YWYuLjdhNmQwYTFlNGI3OGI5YTcwYjgyNWM4MzM5YzlmNDhlMDkwNDNjYmEgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDcgQXBwbGUgSW5jLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMjEgQXBwbGUgSW5j
LgogICoKICAqIFRoaXMgbGlicmFyeSBpcyBmcmVlIHNvZnR3YXJlOyB5b3UgY2FuIHJlZGlzdHJp
YnV0ZSBpdCBhbmQvb3IKICAqIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBM
aWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC0zMyw2ICszMyw3IEBAIHR5cGVkZWYgY29uc3Qgc3Ry
dWN0IF9fQ1RGb250RGVzY3JpcHRvciogQ1RGb250RGVzY3JpcHRvclJlZjsKIAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCitzdHJ1Y3QgRm9udENyZWF0aW9uQ29udGV4dDsKIGNsYXNzIEZvbnREZXNj
cmlwdGlvbjsKIHN0cnVjdCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzOwogY2xh
c3MgU2hhcmVkQnVmZmVyOwpAQCAtNTEsNyArNTIsNyBAQCBwdWJsaWM6CiAKICAgICBXRUJDT1JF
X0VYUE9SVCB+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpOwogCi0gICAgRm9udFBsYXRmb3JtRGF0
YSBmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVyZXMsIEZv
bnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpOwor
ICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRp
b24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jik7
CiAKICAgICBzdGF0aWMgYm9vbCBzdXBwb3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIApkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdp
bi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2lu
LmNwcAppbmRleCA3NTE1ZjI2NGNhOGNlNzM5NTViMmYyOTYzOGI4MjNiYmIzYjkzNTBjLi5jYjRj
ZGMwNTlhNzdhY2JlZGJmYmMxZTEyYjAwNTBlNmU4MTUyYWI0IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udENhY2hlV2luLmNwcApAQCAtNjQ5
LDcgKzY0OSw3IEBAIFZlY3RvcjxGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzPiBGb250Q2FjaGU6
OmdldEZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXNJbkZhbWlsCiAgICAgcmV0dXJuIHJlc3VsdDsK
IH0KIAotc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRl
Rm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwg
Y29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiwgRm9u
dFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcykKK3N0ZDo6dW5pcXVlX3B0cjxGb250UGxh
dGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSwgY29u
c3QgRm9udENyZWF0aW9uQ29udGV4dCYpCiB7CiAgICAgYm9vbCBpc0x1Y2lkYUdyYW5kZSA9IGVx
dWFsTGV0dGVyc0lnbm9yaW5nQVNDSUlDYXNlKGZhbWlseSwgImx1Y2lkYSBncmFuZGUiKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3Qu
Y3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuY3BwCmlu
ZGV4IGYxNTdkMzA5N2RmNjk4N2E0YjYzNGI3ZmQ2MzMzOWU5MDlkODZlOWYuLjA5MzQxZGI4MzU4
MTFjNDk4MmE5NTcxOWI4MmRjNThmNDcwYjc1NWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3dvcmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckZvbnRMb2FkUmVxdWVzdC5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICog
Q29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyBy
ZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUsIEluYy4KICAqIENv
cHlyaWdodCAoQykgMjAyMSBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgogICogQ29weXJpZ2h0IChD
KSAyMDIxIElnYWxpYSBTLkwuCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVkZSAiV29ya2VyRm9u
dExvYWRSZXF1ZXN0LmgiCiAKICNpbmNsdWRlICJGb250LmgiCisjaW5jbHVkZSAiRm9udENyZWF0
aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKICNpbmNs
dWRlICJGb250U2VsZWN0aW9uQWxnb3JpdGhtLmgiCiAjaW5jbHVkZSAiUmVzb3VyY2VMb2FkZXJP
cHRpb25zLmgiCkBAIC04OCwxMSArODksMTEgQEAgYm9vbCBXb3JrZXJGb250TG9hZFJlcXVlc3Q6
OmVuc3VyZUN1c3RvbUZvbnREYXRhKGNvbnN0IEF0b21TdHJpbmcmKQogICAgIHJldHVybiBtX2Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuZ2V0KCk7CiB9CiAKLVJlZlB0cjxGb250PiBXb3JrZXJGb250
TG9hZFJlcXVlc3Q6OmNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3Jp
cHRpb24sIGNvbnN0IEF0b21TdHJpbmcmLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhl
dGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBG
b250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKQor
UmVmUHRyPEZvbnQ+IFdvcmtlckZvbnRMb2FkUmVxdWVzdDo6Y3JlYXRlRm9udChjb25zdCBGb250
RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYsIGJvb2wgc3lu
dGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRl
eHQmIGZvbnRDcmVhdGlvbkNvbnRleHQpCiB7CiAgICAgQVNTRVJUKG1fZm9udEN1c3RvbVBsYXRm
b3JtRGF0YSk7CiAgICAgQVNTRVJUKG1fY29udGV4dCk7Ci0gICAgcmV0dXJuIEZvbnQ6OmNyZWF0
ZShtX2ZvbnRDdXN0b21QbGF0Zm9ybURhdGEtPmZvbnRQbGF0Zm9ybURhdGEoZm9udERlc2NyaXB0
aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRGYWNlRmVhdHVyZXMsIGZv
bnRGYWNlQ2FwYWJpbGl0aWVzKSwgRm9udDo6T3JpZ2luOjpSZW1vdGUsICZtX2NvbnRleHQtPmZv
bnRDYWNoZSgpKTsKKyAgICByZXR1cm4gRm9udDo6Y3JlYXRlKG1fZm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS0+Zm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5
bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCksIEZvbnQ6Ok9yaWdpbjo6UmVtb3Rl
LCAmbV9jb250ZXh0LT5mb250Q2FjaGUoKSk7CiB9CiAKIHZvaWQgV29ya2VyRm9udExvYWRSZXF1
ZXN0OjpzZXRDbGllbnQoRm9udExvYWRSZXF1ZXN0Q2xpZW50KiBjbGllbnQpCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckZvbnRMb2FkUmVxdWVzdC5oIGIvU291cmNl
L1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuaAppbmRleCBhZjY5MjA2MzAy
ZGMxYmFlZDU5OTA0NGU3Yjc2NWU3YmM1MDI4ZjkyLi42YTZjMDU4ZTIwZTNmZTk1Y2YzMTM2MTU3
YzUwNjIxNDc4YjdiYjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtl
ckZvbnRMb2FkUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRm9u
dExvYWRSZXF1ZXN0LmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDIx
IE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMu
TC4KKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQu
CiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jt
cywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlk
ZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzM0LDcgQEAKIAogbmFt
ZXNwYWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgRm9udENyZWF0aW9uQ29udGV4dDsKIGNsYXNzIFNj
cmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBjbGFzcyBXb3JrZXJH
bG9iYWxTY29wZTsKQEAgLTU0LDcgKzU2LDcgQEAgcHJpdmF0ZToKICAgICBib29sIGVycm9yT2Nj
dXJyZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Vycm9yT2NjdXJyZWQ7IH0KIAogICAgIGJv
b2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoY29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJKSBmaW5h
bDsKLSAgICBSZWZQdHI8Rm9udD4gY3JlYXRlRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBj
b25zdCBBdG9tU3RyaW5nJiByZW1vdGVVUkksIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50
aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmLCBGb250U2VsZWN0aW9uU3Bl
Y2lmaWVkQ2FwYWJpbGl0aWVzKSBmaW5hbDsKKyAgICBSZWZQdHI8Rm9udD4gY3JlYXRlRm9udChj
b25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9tU3RyaW5nJiByZW1vdGVVUkksIGJvb2wg
c3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNv
bnRleHQmKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0Q2xpZW50KEZvbnRMb2FkUmVxdWVzdENsaWVu
dCopIGZpbmFsOwogCg==
</data>
<flag name="review"
          id="462419"
          type_id="1"
          status="+"
          setter="zalan"
    />
    <flag name="commit-queue"
          id="462423"
          type_id="3"
          status="-"
          setter="ews-feeder"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>438910</attachid>
            <date>2021-09-21 20:31:39 -0700</date>
            <delta_ts>2021-09-21 20:31:39 -0700</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-230592-20210921203138.patch</filename>
            <type>text/plain</type>
            <size>67342</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjgyODU4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMzk1ZTUwZDcyOWQyYTNj
Y2NmNWFkMjZkNjliMmI5Y2U2MmE2YmY4NS4uYmUxMTVjNDg4NzQwNTJiYTRlOTNkNWQ4MWY2OTNl
MmUyNWEzYmE2NyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDY4IEBACisyMDIxLTA5LTIxICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQWRkIEZvbnRD
cmVhdGlvbkNvbnRleHQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTIzMDU5MgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFdlIGhhdmUgdGhpcyBwYXR0ZXJuIHdoZXJlIHdlIHBhc3MgYXJvdW5kICJjb25zdCBG
b250RmVhdHVyZVNldHRpbmdzJiwgY29uc3QgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxp
dGllcyYiCisgICAgICAgIHRocm91Z2ggYWxsIHRoZSB2YXJpb3VzIGZvbnQgY3JlYXRpb24gcm91
dGluZXMuIFdoZW4gSSBhZGQgc3VwcG9ydCBmb3IgZm9udCBwYWxldHRlcyBhbmQgZm9udC1mZWF0
dXJlLXZhbHVlcywKKyAgICAgICAgdGhpcyB3b3VsZCBuZWVkIHRvIGdyb3cgdG8gNCBhcmd1bWVu
dHMgYmVpbmcgcGFzc2VkIGFyb3VuZCBpbnN0ZWFkIG9mIDIuIFJhdGhlciB0aGFuIHBhc3Npbmcg
YWxsIHRoZXNlIGFyZ3VtZW50cworICAgICAgICBhcm91bmQsIGEgYmV0dGVyIGlkZWEgaXMgdG8g
ZW5jYXBzdWxhdGUgdGhlc2UgYXJndW1lbnRzIGluIGEgImNvbnRleHQiIG9iamVjdC4gVGhpcyBp
cyBiZWNhdXNlIG1vc3QgcGxhY2VzIHRoYXQKKyAgICAgICAgdGFrZSB0aGVzZSBhcmd1bWVudHMg
ZG9uJ3QgYWN0dWFsbHkgaW5zcGVjdCB0aGVtLCBidXQgaW5zdGVhZCBqdXN0IGZvcndhcmQgdGhl
bSBvbiB0byBvdGhlciByb3V0aW5lcy4KKworICAgICAgICBObyBuZXcgdGVzdHMgYmVjYXVzZSB0
aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBIZWFkZXJzLmNtYWtlOgor
ICAgICAgICAqIFdlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBj
c3MvQ1NTRm9udEZhY2UuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Q1NTRm9udEZhY2U6OmZvbnQp
OgorICAgICAgICAqIGNzcy9DU1NGb250RmFjZVNvdXJjZS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpDU1NGb250RmFjZVNvdXJjZTo6bG9hZCk6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250RmFj
ZVNvdXJjZTo6Zm9udCk6CisgICAgICAgICogY3NzL0NTU0ZvbnRGYWNlU291cmNlLmg6CisgICAg
ICAgICogY3NzL0NTU0ZvbnRTZWxlY3Rvci5jcHA6CisgICAgICAgIChXZWJDb3JlOjpDU1NGb250
U2VsZWN0b3I6OmZvbnRSYW5nZXNGb3JGYW1pbHkpOgorICAgICAgICAqIGxvYWRlci9Gb250TG9h
ZFJlcXVlc3QuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHA6CisgICAg
ICAgIChXZWJDb3JlOjpDYWNoZWRGb250OjpjcmVhdGVGb250KToKKyAgICAgICAgKFdlYkNvcmU6
OkNhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKToKKyAgICAgICAgKiBsb2Fk
ZXIvY2FjaGUvQ2FjaGVkRm9udC5oOgorICAgICAgICAqIGxvYWRlci9jYWNoZS9DYWNoZWRGb250
TG9hZFJlcXVlc3QuaDoKKyAgICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5jcHA6
CisgICAgICAgIChXZWJDb3JlOjpDYWNoZWRTVkdGb250OjpjcmVhdGVGb250KToKKyAgICAgICAg
KFdlYkNvcmU6OkNhY2hlZFNWR0ZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKToKKyAg
ICAgICAgKiBsb2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oOgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6Y3JlYXRlKToKKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhQ2FjaGVL
ZXlIYXNoOjpoYXNoKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Y2FjaGVkRm9udFBs
YXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmZvbnRGb3JGYW1pbHkp
OgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udENhY2hlOjpmb250Rm9yRmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Y2FjaGVkRm9udFBsYXRmb3JtRGF0YSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2Fj
aGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGFGb3JUZXN0aW5nKToKKyAgICAgICAgKiBwbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q3JlYXRpb25Db250ZXh0Lmg6IEFkZGVkLgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udENyZWF0aW9uQ29udGV4dDo6b3BlcmF0b3I9PSBjb25zdCk6CisgICAgICAgIChXZWJD
b3JlOjpGb250Q3JlYXRpb25Db250ZXh0OjpvcGVyYXRvciE9IGNvbnN0KToKKyAgICAgICAgKFdl
YkNvcmU6OmFkZCk6CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6cHJlcGFyZVBsYXRmb3JtRm9udCk6Cisg
ICAgICAgIChXZWJDb3JlOjpmb250V2l0aEZhbWlseSk6CisgICAgICAgIChXZWJDb3JlOjpGb250
Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENh
Y2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMpOgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0Lmg6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4dC5jcHA6CisgICAgICAg
IChXZWJDb3JlOjpGb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0Ojpmb250UmFuZ2VzIGNv
bnN0KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250
UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oOgorICAgICAgICAqIHdvcmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0
LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OldvcmtlckZvbnRMb2FkUmVxdWVzdDo6Y3JlYXRlRm9u
dCk6CisgICAgICAgICogd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuaDoKKwogMjAyMS0w
OS0yMSAgQWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAg
ICAgIFJlZHVjZSBzaXplb2YoTmV0d29ya0xvYWRNZXRyaWNzKQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvSGVhZGVycy5jbWFrZSBiL1NvdXJjZS9XZWJDb3JlL0hlYWRlcnMuY21ha2UKaW5k
ZXggZWE3N2Q4NmQyMzlkNjA1MGQ0NmJkYTc1MzVkYjM0ZWRhNzhkYTI4NC4uMjY2NDg0NGNhMmIz
ZTM0OTA3MWVkZDFlMzRiMWQ3M2Y1ZDU1ODkyZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
SGVhZGVycy5jbWFrZQorKysgYi9Tb3VyY2UvV2ViQ29yZS9IZWFkZXJzLmNtYWtlCkBAIC0xMjU2
LDYgKzEyNTYsNyBAQCBzZXQoV2ViQ29yZV9QUklWQVRFX0ZSQU1FV09SS19IRUFERVJTCiAgICAg
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhc2NhZGUuaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0Zv
bnRDYXNjYWRlRGVzY3JpcHRpb24uaAogICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYXNjYWRl
Rm9udHMuaAorICAgIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvbkNvbnRleHQuaAogICAg
IHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCiAgICAgcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udEZhbWlseVNwZWNpZmljYXRpb25OdWxsLmgKICAgICBwbGF0Zm9ybS9ncmFwaGljcy9G
b250R2VuZXJpY0ZhbWlsaWVzLmgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagppbmRleCA1MjdhZTk3N2E1OGM2MjE0ZTlkMzkwMjQwN2VhOTA0
M2YzNTJhYjZhLi4wOGY0NTNhNDIzMTQ5ODAzNGY4MGExMGI0ZGM5Yjc0YTM0OWNlYTQ2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oK
KysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBA
IC02NTEsNiArNjUxLDcgQEAKIAkJMUMyMUU1N0QxODNFRDFGRjAwMUMyODlEIC8qIElPU3VyZmFj
ZVBvb2wuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
MjFFNTdCMTgzRUQxRkYwMDFDMjg5RCAvKiBJT1N1cmZhY2VQb29sLmggKi87IHNldHRpbmdzID0g
e0FUVFJJQlVURVMgPSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJMUMyNEVFQTUxQzcyOUNFNDAwODBG
OEZDIC8qIEZvbnRGYWNlU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7
IGZpbGVSZWYgPSAxQzI0RUVBMzFDNzI5Q0U0MDA4MEY4RkMgLyogRm9udEZhY2VTZXQuaCAqLzsg
fTsKIAkJMUMyNEVFQTkxQzcyQTdCNDAwODBGOEZDIC8qIEpTRm9udEZhY2VTZXQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFDMjRFRUE3MUM3MkE3QjQw
MDgwRjhGQyAvKiBKU0ZvbnRGYWNlU2V0LmggKi87IH07CisJCTFDMjY2NzFCMjZGQTkzMkYwMDEx
NzA3MyAvKiBGb250Q3JlYXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSAxQzI2NjcxOTI2RkE3RjJFMDAxMTcwNzMgLyogRm9udENyZWF0
aW9uQ29udGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07
IH07CiAJCTFDNDNERTZCMjJBQjRCOEEwMDE1MjdEOSAvKiBMb2NhbEN1cnJlbnRUcmFpdENvbGxl
Y3Rpb24uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IDFD
NDNERTY4MjJBQjRCOEEwMDE1MjdEOSAvKiBMb2NhbEN1cnJlbnRUcmFpdENvbGxlY3Rpb24uaCAq
Lzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQkxQzREMERE
MzI0RDlGMTBEMDAzRDc0OTggLyogR2x5cGhCdWZmZXJNZW1iZXJzLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAxQzREMEREMTI0RDlGMERCMDAzRDc0OTgg
LyogR2x5cGhCdWZmZXJNZW1iZXJzLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJp
dmF0ZSwgKTsgfTsgfTsKIAkJMUM1RTFEQTgyNkY5NEI5MDAwRTA3QUYxIC8qIEZvbnRQYWxldHRl
VmFsdWVzLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSAx
QzVFMURBNjI2Rjk0OUI5MDBFMDdBRjEgLyogRm9udFBhbGV0dGVWYWx1ZXMuaCAqLzsgfTsKQEAg
LTcwNDYsNiArNzA0Nyw3IEBACiAJCTFDMjRFRUE2MUM3MkE3QjQwMDgwRjhGQyAvKiBKU0ZvbnRG
YWNlU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0
OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgbmFtZSA9IEpTRm9udEZh
Y2VTZXQuY3BwOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0ZvbnRGYWNlU2V0LmNw
cDsgc291cmNlVHJlZSA9IEJVSUxUX1BST0RVQ1RTX0RJUjsgfTsKIAkJMUMyNEVFQTcxQzcyQTdC
NDAwODBGOEZDIC8qIEpTRm9udEZhY2VTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBu
YW1lID0gSlNGb250RmFjZVNldC5oOyBwYXRoID0gRGVyaXZlZFNvdXJjZXMvV2ViQ29yZS9KU0Zv
bnRGYWNlU2V0Lmg7IHNvdXJjZVRyZWUgPSBCVUlMVF9QUk9EVUNUU19ESVI7IH07CiAJCTFDMjY0
OTc5MEQ3RTI0OEEwMEJEMTBGMiAvKiBEb2N1bWVudExvYWRlck1hYy5jcHAgKi8gPSB7aXNhID0g
UEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBz
b3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBEb2N1bWVudExvYWRlck1hYy5jcHA7IHNvdXJjZVRy
ZWUgPSAiPGdyb3VwPiI7IH07CisJCTFDMjY2NzE5MjZGQTdGMkUwMDExNzA3MyAvKiBGb250Q3Jl
YXRpb25Db250ZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmls
ZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRDcmVhdGlvbkNvbnRleHQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJMUMzMjQ5MTAxQzZENkEzQjAwN0VEQjMyIC8qIEZv
bnRWYXJpYW50QnVpbGRlci5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBGb250VmFyaWFudEJ1aWxkZXIuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkx
QzM5NjlDRjFCNzQyMTFFMDAyQkNGQTcgLyogRm9udENhY2hlQ29yZVRleHQuY3BwICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gRm9udENhY2hlQ29yZVRleHQuY3BwOyBzb3Vy
Y2VUcmVlID0gIjxncm91cD4iOyB9OwogCQkxQzQzREU2ODIyQUI0QjhBMDAxNTI3RDkgLyogTG9j
YWxDdXJyZW50VHJhaXRDb2xsZWN0aW9uLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsg
ZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0
aCA9IExvY2FsQ3VycmVudFRyYWl0Q29sbGVjdGlvbi5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwpAQCAtMjcwMDEsNiArMjcwMDMsNyBAQAogCQkJCUU0RThCNEYyMjE2QjhCNjAwMEI4ODM0
RCAvKiBGb250Q2FzY2FkZURlc2NyaXB0aW9uLmggKi8sCiAJCQkJQjJDM0RBNTYwRDAwNkNENjAw
RUY2RjI2IC8qIEZvbnRDYXNjYWRlRm9udHMuY3BwICovLAogCQkJCUIyQzNEQTU3MEQwMDZDRDYw
MEVGNkYyNiAvKiBGb250Q2FzY2FkZUZvbnRzLmggKi8sCisJCQkJMUMyNjY3MTkyNkZBN0YyRTAw
MTE3MDczIC8qIEZvbnRDcmVhdGlvbkNvbnRleHQuaCAqLywKIAkJCQkzN0FDQ0U2MjBEQTJBQTk2
MDA4OUU2MDIgLyogRm9udERlc2NyaXB0aW9uLmNwcCAqLywKIAkJCQlCMkMzREE1NTBEMDA2Q0Q2
MDBFRjZGMjYgLyogRm9udERlc2NyaXB0aW9uLmggKi8sCiAJCQkJQzI4MEIzRkQxRUY0NjA4OTAw
RDM1MTM1IC8qIEZvbnRGYW1pbHlTcGVjaWZpY2F0aW9uTnVsbC5jcHAgKi8sCkBAIC0zMjUwMSw2
ICszMjUwNCw3IEBACiAJCQkJQjJDM0RBNjEwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNjYWRl
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNEU4QjRGNTIxNkI5NTY1MDBCODgzNEQgLyogRm9udENh
c2NhZGVEZXNjcmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjgwRDAwNkNENjAw
RUY2RjI2IC8qIEZvbnRDYXNjYWRlRm9udHMuaCBpbiBIZWFkZXJzICovLAorCQkJCTFDMjY2NzFC
MjZGQTkzMkYwMDExNzA3MyAvKiBGb250Q3JlYXRpb25Db250ZXh0LmggaW4gSGVhZGVycyAqLywK
IAkJCQlCMkFGRkM3RTBEMDBBNUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjYwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnREZXNj
cmlwdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUM2NjI2MTExQzZFN0NBNjAwQUI1MjdDIC8q
IEZvbnRGYWNlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2UuY3BwCmlu
ZGV4IGIxMjU1Njc4OWVmYjU3MDcwNWM5ZTc0MjYwZjNmZjQwZDljYzZjZWYuLjA5OWVhYzRkMDQx
NTYwNGJjNTVkNjAxMTBhOGYxMzdmYWFhYmQ4MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L2Nzcy9DU1NGb250RmFjZS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNl
LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAxOSBBcHBs
ZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDctMjAyMSBB
cHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKQEAgLTY3OSwxMCArNjc5LDEyIEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZTo6Zm9u
dChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBzeW50CiAgICAg
ICAgICAgICBGb250OjpWaXNpYmlsaXR5IHZpc2liaWxpdHkgPSBXZWJDb3JlOjp2aXNpYmlsaXR5
KHN0YXR1cygpLCBmb250TG9hZFRpbWluZygpKTsKICAgICAgICAgICAgIHJldHVybiBGb250Ojpj
cmVhdGUoZm9udENhY2hlLmxhc3RSZXNvcnRGYWxsYmFja0ZvbnQoZm9udERlc2NyaXB0aW9uKS0+
cGxhdGZvcm1EYXRhKCksIEZvbnQ6Ok9yaWdpbjo6TG9jYWwsICZmb250Q2FjaGUsIEZvbnQ6Oklu
dGVyc3RpdGlhbDo6WWVzLCB2aXNpYmlsaXR5KTsKICAgICAgICAgfQotICAgICAgICBjYXNlIENT
U0ZvbnRGYWNlU291cmNlOjpTdGF0dXM6OlN1Y2Nlc3M6Ci0gICAgICAgICAgICBpZiAoYXV0byBy
ZXN1bHQgPSBzb3VyY2UtPmZvbnQoZm9udERlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50
aGV0aWNJdGFsaWMsIG1fZmVhdHVyZVNldHRpbmdzLCBtX2ZvbnRTZWxlY3Rpb25DYXBhYmlsaXRp
ZXMpKQorICAgICAgICBjYXNlIENTU0ZvbnRGYWNlU291cmNlOjpTdGF0dXM6OlN1Y2Nlc3M6IHsK
KyAgICAgICAgICAgIEZvbnRDcmVhdGlvbkNvbnRleHQgZm9udENyZWF0aW9uQ29udGV4dCB7IG1f
ZmVhdHVyZVNldHRpbmdzLCBtX2ZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXMgfTsKKyAgICAgICAg
ICAgIGlmIChhdXRvIHJlc3VsdCA9IHNvdXJjZS0+Zm9udChmb250RGVzY3JpcHRpb24sIHN5bnRo
ZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCkpCiAgICAgICAg
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICAgICAgICAgIGJyZWFrOworICAgICAgICB9CiAg
ICAgICAgIGNhc2UgQ1NTRm9udEZhY2VTb3VyY2U6OlN0YXR1czo6RmFpbHVyZToKICAgICAgICAg
ICAgIGJyZWFrOwogICAgICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NT
Rm9udEZhY2VTb3VyY2UuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU291cmNl
LmNwcAppbmRleCBkM2EzYjAwNjY0ZDZkZmU4NWFlMmI5MDI2ZmVlZTJjOTc2NDA2YTI5Li5iMjA4
NTFmZThjOWY3ZGJiNjNmNGQ5MmZiM2QxNzhlM2Y5ZjliYTk4IDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3VyY2UuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nz
cy9DU1NGb250RmFjZVNvdXJjZS5jcHAKQEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0
IChDKSAyMDA3LCAyMDA4LCAyMDEwLCAyMDExIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZl
ZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNl
cnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5
IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBw
cm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQsNiArMzQsNyBAQAog
I2luY2x1ZGUgIkZvbnQuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKICNpbmNsdWRlICJGb250
Q2FzY2FkZURlc2NyaXB0aW9uLmgiCisjaW5jbHVkZSAiRm9udENyZWF0aW9uQ29udGV4dC5oIgog
I2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJGb250RGVzY3Jp
cHRpb24uaCIKICNpbmNsdWRlICJSZXNvdXJjZUxvYWRPYnNlcnZlci5oIgpAQCAtMTg1LDcgKzE4
Niw3IEBAIHZvaWQgQ1NTRm9udEZhY2VTb3VyY2U6OmxvYWQoRG9jdW1lbnQqIGRvY3VtZW50KQog
ICAgICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWlseShtX2ZhbWlseU5hbWVPclVS
SSk7CiAgICAgICAgICAgICBmb250RGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKDEpOwogICAg
ICAgICAgICAgZm9udERlc2NyaXB0aW9uLnNldFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRz
KG1fZmFjZS5hbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKLSAgICAgICAgICAgIHN1Y2Nlc3Mg
PSBGb250Q2FjaGU6OnNpbmdsZXRvbigpLmZvbnRGb3JGYW1pbHkoZm9udERlc2NyaXB0aW9uLCBt
X2ZhbWlseU5hbWVPclVSSSwgbnVsbHB0ciwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxp
dGllcygpLCB0cnVlKTsKKyAgICAgICAgICAgIHN1Y2Nlc3MgPSBGb250Q2FjaGU6OnNpbmdsZXRv
bigpLmZvbnRGb3JGYW1pbHkoZm9udERlc2NyaXB0aW9uLCBtX2ZhbWlseU5hbWVPclVSSSwgeyB9
LCB0cnVlKTsKICAgICAgICAgICAgIGlmIChkb2N1bWVudCAmJiBSdW50aW1lRW5hYmxlZEZlYXR1
cmVzOjpzaGFyZWRGZWF0dXJlcygpLndlYkFQSVN0YXRpc3RpY3NFbmFibGVkKCkpCiAgICAgICAg
ICAgICAgICAgUmVzb3VyY2VMb2FkT2JzZXJ2ZXI6OnNoYXJlZCgpLmxvZ0ZvbnRMb2FkKCpkb2N1
bWVudCwgbV9mYW1pbHlOYW1lT3JVUkkuc3RyaW5nKCksIHN1Y2Nlc3MpOwogICAgICAgICB9CkBA
IC0xOTMsNyArMTk0LDcgQEAgdm9pZCBDU1NGb250RmFjZVNvdXJjZTo6bG9hZChEb2N1bWVudCog
ZG9jdW1lbnQpCiAgICAgfQogfQogCi1SZWZQdHI8Rm9udD4gQ1NTRm9udEZhY2VTb3VyY2U6OmZv
bnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgc3ludGhldGlj
Qm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZv
bnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZh
Y2VDYXBhYmlsaXRpZXMpCitSZWZQdHI8Rm9udD4gQ1NTRm9udEZhY2VTb3VyY2U6OmZvbnQoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgc3ludGhldGljQm9sZCwg
Ym9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRDcmVh
dGlvbkNvbnRleHQpCiB7CiAgICAgQVNTRVJUKHN0YXR1cygpID09IFN0YXR1czo6U3VjY2Vzcyk7
CiAKQEAgLTIwMywxMiArMjA0LDEyIEBAIFJlZlB0cjxGb250PiBDU1NGb250RmFjZVNvdXJjZTo6
Zm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vCiAgICAgICAg
IGlmIChtX2ltbWVkaWF0ZVNvdXJjZSkgewogICAgICAgICAgICAgaWYgKCFtX2ltbWVkaWF0ZUZv
bnRDdXN0b21QbGF0Zm9ybURhdGEpCiAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7Ci0g
ICAgICAgICAgICByZXR1cm4gRm9udDo6Y3JlYXRlKENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZy
b21DdXN0b21EYXRhKCptX2ltbWVkaWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEsIGZvbnREZXNj
cmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVz
LCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZvbnQ6Ok9yaWdpbjo6UmVtb3RlKTsKKyAgICAgICAg
ICAgIHJldHVybiBGb250OjpjcmVhdGUoQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3Rv
bURhdGEoKm1faW1tZWRpYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YSwgZm9udERlc2NyaXB0aW9u
LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRDcmVhdGlvbkNvbnRleHQpLCBG
b250OjpPcmlnaW46OlJlbW90ZSk7CiAgICAgICAgIH0KIAogICAgICAgICAvLyBXZSdyZSBsb2Nh
bC4gSnVzdCByZXR1cm4gYSBGb250IGZyb20gdGhlIG5vcm1hbCBjYWNoZS4KICAgICAgICAgLy8g
V2UgZG9uJ3Qgd2FudCB0byBjaGVjayBhbHRlcm5hdGUgZm9udCBmYW1pbHkgbmFtZXMgaGVyZSwg
c28gcGFzcyB0cnVlIGFzIHRoZSBjaGVja2luZ0FsdGVybmF0ZU5hbWUgcGFyYW1ldGVyLgotICAg
ICAgICByZXR1cm4gRm9udENhY2hlOjpzaW5nbGV0b24oKS5mb250Rm9yRmFtaWx5KGZvbnREZXNj
cmlwdGlvbiwgbV9mYW1pbHlOYW1lT3JVUkksICZmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNh
cGFiaWxpdGllcywgdHJ1ZSk7CisgICAgICAgIHJldHVybiBGb250Q2FjaGU6OnNpbmdsZXRvbigp
LmZvbnRGb3JGYW1pbHkoZm9udERlc2NyaXB0aW9uLCBtX2ZhbWlseU5hbWVPclVSSSwgZm9udENy
ZWF0aW9uQ29udGV4dCwgdHJ1ZSk7CiAgICAgfQogCiAgICAgaWYgKG1fZm9udFJlcXVlc3QpIHsK
QEAgLTIxNiw3ICsyMTcsNyBAQCBSZWZQdHI8Rm9udD4gQ1NTRm9udEZhY2VTb3VyY2U6OmZvbnQo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvbwogICAgICAgICBBU1NF
UlRfVU5VU0VEKHN1Y2Nlc3MsIHN1Y2Nlc3MpOwogCiAgICAgICAgIEFTU0VSVChzdGF0dXMoKSA9
PSBTdGF0dXM6OlN1Y2Nlc3MpOwotICAgICAgICBhdXRvIHJlc3VsdCA9IG1fZm9udFJlcXVlc3Qt
PmNyZWF0ZUZvbnQoZm9udERlc2NyaXB0aW9uLCBtX2ZhbWlseU5hbWVPclVSSSwgc3ludGhldGlj
Qm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxp
dGllcyk7CisgICAgICAgIGF1dG8gcmVzdWx0ID0gbV9mb250UmVxdWVzdC0+Y3JlYXRlRm9udChm
b250RGVzY3JpcHRpb24sIG1fZmFtaWx5TmFtZU9yVVJJLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0
aWNJdGFsaWMsIGZvbnRDcmVhdGlvbkNvbnRleHQpOwogICAgICAgICBBU1NFUlQocmVzdWx0KTsK
ICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9CkBAIC0yMjgsNyArMjI5LDcgQEAgUmVmUHRy
PEZvbnQ+IENTU0ZvbnRGYWNlU291cmNlOjpmb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9u
dERlc2NyaXB0aW9uLCBib28KICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgaWYgKCFtX2lu
RG9jdW1lbnRDdXN0b21QbGF0Zm9ybURhdGEpCiAgICAgICAgIHJldHVybiBudWxscHRyOwotICAg
IHJldHVybiBGb250OjpjcmVhdGUobV9pbkRvY3VtZW50Q3VzdG9tUGxhdGZvcm1EYXRhLT5mb250
UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRh
bGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyksIEZvbnQ6Ok9yaWdp
bjo6UmVtb3RlKTsKKyAgICByZXR1cm4gRm9udDo6Y3JlYXRlKG1faW5Eb2N1bWVudEN1c3RvbVBs
YXRmb3JtRGF0YS0+Zm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0Jv
bGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCksIEZvbnQ6Ok9yaWdpbjo6
UmVtb3RlKTsKIH0KIAogYm9vbCBDU1NGb250RmFjZVNvdXJjZTo6aXNTVkdGb250RmFjZVNvdXJj
ZSgpIGNvbnN0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTb3Vy
Y2UuaCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJjZS5oCmluZGV4IDMwZDc5
OTdmZjE3MTE5ZGU0NzZlNDczNTQyNTU3NDI0ZjhmNzg4N2YuLjFmNjU3YTY2NDUxYTBjNGNmNzE3
ZjVlODBjZDEwZWEyYmY5N2Y5MDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250RmFjZVNvdXJjZS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNvdXJj
ZS5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwNywgMjAwOCwgMjAx
MSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDct
MjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRp
b24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAg
KiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5n
IGNvbmRpdGlvbnMKQEAgLTM2LDYgKzM2LDcgQEAgY2xhc3MgQ1NTRm9udEZhY2U7CiBjbGFzcyBD
U1NGb250U2VsZWN0b3I7CiBjbGFzcyBEb2N1bWVudDsKIGNsYXNzIEZvbnQ7CitzdHJ1Y3QgRm9u
dENyZWF0aW9uQ29udGV4dDsKIHN0cnVjdCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOwogY2xhc3Mg
Rm9udERlc2NyaXB0aW9uOwogc3RydWN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRp
ZXM7CkBAIC03Myw3ICs3NCw3IEBAIHB1YmxpYzoKICAgICB2b2lkIG9wcG9ydHVuaXN0aWNhbGx5
U3RhcnRGb250RGF0YVVSTExvYWRpbmcoKTsKIAogICAgIHZvaWQgbG9hZChEb2N1bWVudCogPSBu
dWxscHRyKTsKLSAgICBSZWZQdHI8Rm9udD4gZm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250RmVhdHVy
ZVNldHRpbmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyk7CisgICAgUmVm
UHRyPEZvbnQ+IGZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBzeW50aGV0aWNCb2xk
LCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYpOwogCiAg
ICAgRm9udExvYWRSZXF1ZXN0KiBmb250TG9hZFJlcXVlc3QoKSBjb25zdCB7IHJldHVybiBtX2Zv
bnRSZXF1ZXN0LmdldCgpOyB9CiAgICAgYm9vbCByZXF1aXJlc0V4dGVybmFsUmVzb3VyY2UoKSBj
b25zdCB7IHJldHVybiBtX2ZvbnRSZXF1ZXN0LmdldCgpOyB9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9jc3MvQ1NTRm9udFNlbGVjdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NG
b250U2VsZWN0b3IuY3BwCmluZGV4IDRjOWYzMjViYWYxMDUzOTIwOTcxMzc2N2MyNjhjNzVlN2Ez
ZTgxNWQuLjBlOGRmYjI5ODU0NTMxNTIyOWIwMDNiYTliZGZlMmU3ZGJkMGY1NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2Nzcy9DU1NGb250U2VsZWN0b3IuY3BwCkBAIC0zNDcsNyArMzQ3LDcgQEAgRm9udFJh
bmdlcyBDU1NGb250U2VsZWN0b3I6OmZvbnRSYW5nZXNGb3JGYW1pbHkoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3IKIAogICAgIGlmICghcmVzb2x2ZUdlbmVyaWNGYW1pbHlGaXJzdCkK
ICAgICAgICAgcmVzb2x2ZUFuZEFzc2lnbkdlbmVyaWNGYW1pbHkoKTsKLSAgICBhdXRvIGZvbnQg
PSBtX2ZvbnRDYWNoZS0+Zm9udEZvckZhbWlseSgqZm9udERlc2NyaXB0aW9uRm9yTG9va3VwLCBm
YW1pbHlGb3JMb29rdXApOworICAgIGF1dG8gZm9udCA9IG1fZm9udENhY2hlLT5mb250Rm9yRmFt
aWx5KCpmb250RGVzY3JpcHRpb25Gb3JMb29rdXAsIGZhbWlseUZvckxvb2t1cCwgeyB9KTsKICAg
ICBpZiAoZG9jdW1lbnQgJiYgUnVudGltZUVuYWJsZWRGZWF0dXJlczo6c2hhcmVkRmVhdHVyZXMo
KS53ZWJBUElTdGF0aXN0aWNzRW5hYmxlZCgpKQogICAgICAgICBSZXNvdXJjZUxvYWRPYnNlcnZl
cjo6c2hhcmVkKCkubG9nRm9udExvYWQoKmRvY3VtZW50LCBmYW1pbHlGb3JMb29rdXAuc3RyaW5n
KCksICEhZm9udCk7CiAgICAgcmV0dXJuIEZvbnRSYW5nZXMgeyBXVEZNb3ZlKGZvbnQpIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvRm9udExvYWRSZXF1ZXN0LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvRm9udExvYWRSZXF1ZXN0LmgKaW5kZXggNWRmYWM4MmNiNTdkYTc3
ZjNiMjA4NzBiZTYwYzNjNDliMzQ2MWYyZS4uOTVjM2U3NjA5MDgwYTBmMjhmMjRkY2Y4N2VmMzY1
MjY1YzZmOGE4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL0ZvbnRMb2FkUmVx
dWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9Gb250TG9hZFJlcXVlc3QuaApAQCAt
MSw2ICsxLDcgQEAKIC8qCiAgKiBDb3B5cmlnaHQgKEMpIDIwMjEgTWV0cm9sb2dpY2FsIEdyb3Vw
IEIuVi4KICAqIENvcHlyaWdodCAoQykgMjAyMSBJZ2FsaWEgUy5MLgorICogQ29weXJpZ2h0IChD
KSAyMDIxIEFwcGxlIEluYy4gQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1
dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQK
ICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dp
bmcgY29uZGl0aW9ucwpAQCAtMzEsNiArMzIsNyBAQAogbmFtZXNwYWNlIFdlYkNvcmUgewogCiBj
bGFzcyBGb250Oworc3RydWN0IEZvbnRDcmVhdGlvbkNvbnRleHQ7CiBjbGFzcyBGb250RGVzY3Jp
cHRpb247CiBjbGFzcyBGb250TG9hZFJlcXVlc3Q7CiBzdHJ1Y3QgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllczsKQEAgLTUxLDcgKzUzLDcgQEAgcHVibGljOgogICAgIHZpcnR1YWwg
Ym9vbCBlcnJvck9jY3VycmVkKCkgY29uc3QgPSAwOwogCiAgICAgdmlydHVhbCBib29sIGVuc3Vy
ZUN1c3RvbUZvbnREYXRhKGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSkgPSAwOwotICAgIHZp
cnR1YWwgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29u
c3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhl
dGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiwgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllcykgPSAwOworICAgIHZpcnR1YWwgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZv
bnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250Q3JlYXRp
b25Db250ZXh0JikgPSAwOwogCiAgICAgdmlydHVhbCB2b2lkIHNldENsaWVudChGb250TG9hZFJl
cXVlc3RDbGllbnQqKSA9IDA7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9j
YWNoZS9DYWNoZWRGb250LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRG
b250LmNwcAppbmRleCAyZDM5Y2Q2YjYwODBlMTIwYjA0N2RjMzVhMGM0M2ZjMmFiYzE1OGZmLi44
YzJiYzJhMzQxYzgyMzUxZDdmNjYyNWJjZTI3MWQwNzc2MzNhZTk0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNv
cmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuY3BwCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENv
cHlyaWdodCAoQykgMjAwNiwgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDYtMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVz
ZXJ2ZWQuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlLCBJbmMuCiAgKgogICog
UmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBv
ciB3aXRob3V0CkBAIC0zMCw2ICszMCw3IEBACiAjaW5jbHVkZSAiQ2FjaGVkRm9udENsaWVudC5o
IgogI2luY2x1ZGUgIkNhY2hlZFJlc291cmNlQ2xpZW50V2Fsa2VyLmgiCiAjaW5jbHVkZSAiQ2Fj
aGVkUmVzb3VyY2VMb2FkZXIuaCIKKyNpbmNsdWRlICJGb250Q3JlYXRpb25Db250ZXh0LmgiCiAj
aW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlw
dGlvbi5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKQEAgLTEwOSwyMCArMTEwLDIw
IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBDYWNoZWRGb250Ojpj
cmVhdGVDdXN0b21Gb250RGF0YShTaGFyZWRCCiAgICAgcmV0dXJuIGJ1ZmZlciA/IGNyZWF0ZUZv
bnRDdXN0b21QbGF0Zm9ybURhdGEoKmJ1ZmZlciwgaXRlbUluQ29sbGVjdGlvbikgOiBudWxscHRy
OwogfQogCi1SZWZQdHI8Rm9udD4gQ2FjaGVkRm9udDo6Y3JlYXRlRm9udChjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYsIGJvb2wgc3ludGhl
dGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3Mm
IGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9u
dEZhY2VDYXBhYmlsaXRpZXMpCitSZWZQdHI8Rm9udD4gQ2FjaGVkRm9udDo6Y3JlYXRlRm9udChj
b25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYs
IGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRDcmVh
dGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRleHQpCiB7Ci0gICAgcmV0dXJuIEZvbnQ6OmNy
ZWF0ZShwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRoZXRp
Y0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmls
aXRpZXMpLCBGb250OjpPcmlnaW46OlJlbW90ZSk7CisgICAgcmV0dXJuIEZvbnQ6OmNyZWF0ZShw
bGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQs
IHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCksIEZvbnQ6Ok9yaWdpbjo6UmVt
b3RlKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9t
Q3VzdG9tRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBi
b2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0
dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxp
dGllcykKK0ZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3Rv
bURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRl
eHQpCiB7CiAgICAgQVNTRVJUKG1fZm9udEN1c3RvbVBsYXRmb3JtRGF0YSk7Ci0gICAgcmV0dXJu
IHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKCptX2ZvbnRDdXN0b21QbGF0Zm9ybURhdGEsIGZv
bnREZXNjcmlwdGlvbiwgYm9sZCwgaXRhbGljLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNh
cGFiaWxpdGllcyk7CisgICAgcmV0dXJuIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKCptX2Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEsIGZvbnREZXNjcmlwdGlvbiwgYm9sZCwgaXRhbGljLCBmb250
Q3JlYXRpb25Db250ZXh0KTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YSBDYWNoZWRGb250OjpwbGF0
Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShGb250Q3VzdG9tUGxhdGZvcm1EYXRhJiBmb250Q3VzdG9t
UGxhdGZvcm1EYXRhLCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9v
bCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VG
ZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFi
aWxpdGllcykKK0ZvbnRQbGF0Zm9ybURhdGEgQ2FjaGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1
c3RvbURhdGEoRm9udEN1c3RvbVBsYXRmb3JtRGF0YSYgZm9udEN1c3RvbVBsYXRmb3JtRGF0YSwg
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRleHQpCiB7
Ci0gICAgcmV0dXJuIGZvbnRDdXN0b21QbGF0Zm9ybURhdGEuZm9udFBsYXRmb3JtRGF0YShmb250
RGVzY3JpcHRpb24sIGJvbGQsIGl0YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBh
YmlsaXRpZXMpOworICAgIHJldHVybiBmb250Q3VzdG9tUGxhdGZvcm1EYXRhLmZvbnRQbGF0Zm9y
bURhdGEoZm9udERlc2NyaXB0aW9uLCBib2xkLCBpdGFsaWMsIGZvbnRDcmVhdGlvbkNvbnRleHQp
OwogfQogCiB2b2lkIENhY2hlZEZvbnQ6OmFsbENsaWVudHNSZW1vdmVkKCkKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmggYi9Tb3VyY2UvV2ViQ29y
ZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udC5oCmluZGV4IDIzMDEzYWZiYjRjYzhjN2FkOWU1Mjlm
ZDRhOTg0ZjFhYzc2MTQxNmIuLmVhOTE3ZGExMWM3MjYxNWJhZWQ3NzZkMWRmYzg3NTMxZTUxNjQz
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250LmgK
KysrIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnQuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA3LTIwMjEgQXBwbGUgSW5jLiBBbGwg
cmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNl
IGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUg
cGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNCw2
ICszNCw3IEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIGNsYXNzIENhY2hlZFJlc291cmNlTG9h
ZGVyOworc3RydWN0IEZvbnRDcmVhdGlvbkNvbnRleHQ7CiBjbGFzcyBGb250RGVzY3JpcHRpb247
CiBjbGFzcyBGb250UGxhdGZvcm1EYXRhOwogc3RydWN0IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRD
YXBhYmlsaXRpZXM7CkBAIC01NCwxMiArNTUsMTIgQEAgcHVibGljOgogCiAgICAgdmlydHVhbCBi
b29sIGVuc3VyZUN1c3RvbUZvbnREYXRhKGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSk7CiAg
ICAgc3RhdGljIHN0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVD
dXN0b21Gb250RGF0YShTaGFyZWRCdWZmZXImLCBjb25zdCBTdHJpbmcmIGl0ZW1JbkNvbGxlY3Rp
b24sIGJvb2wmIHdyYXBwaW5nKTsKLSAgICBzdGF0aWMgRm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9y
bURhdGFGcm9tQ3VzdG9tRGF0YShGb250Q3VzdG9tUGxhdGZvcm1EYXRhJiwgY29uc3QgRm9udERl
c2NyaXB0aW9uJiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0
aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpOworICAgIHN0YXRpYyBG
b250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKEZvbnRDdXN0b21QbGF0
Zm9ybURhdGEmLCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jik7CiAKLSAgICB2aXJ0dWFsIFJlZlB0cjxGb250
PiBjcmVhdGVGb250KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIHJl
bW90ZVVSSSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3Qg
Rm9udEZlYXR1cmVTZXR0aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMp
OworICAgIHZpcnR1YWwgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJiwgY29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJv
b2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jik7CiAKIHByb3Rl
Y3RlZDoKLSAgICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRG
ZWF0dXJlU2V0dGluZ3MmLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzKTsKKyAg
ICBGb250UGxhdGZvcm1EYXRhIHBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNv
bnRleHQmKTsKIAogICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoU2hhcmVkQnVmZmVyKiBk
YXRhKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZv
bnRMb2FkUmVxdWVzdC5oIGIvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZEZvbnRM
b2FkUmVxdWVzdC5oCmluZGV4IGI5YjBjZjg2ZWE5YzEzYTU3ZDNhNTEwZGMxN2E5Zjg4NWFhZDBi
YjcuLjEwY2ZiYTUwYjQ2YWE0NTlkN2ZiNjcwOWNlMjlmNGY1YmE0YjRkOGQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRGb250TG9hZFJlcXVlc3QuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkRm9udExvYWRSZXF1ZXN0LmgKQEAg
LTEsNiArMSw3IEBACiAvKgogICogQ29weXJpZ2h0IChDKSAyMDIxIE1ldHJvbG9naWNhbCBHcm91
cCBCLlYuCiAgKiBDb3B5cmlnaHQgKEMpIDIwMjEgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAo
QykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmli
dXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0
CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93
aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzM0LDggQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewog
CitzdHJ1Y3QgRm9udENyZWF0aW9uQ29udGV4dDsKKwogY2xhc3MgQ2FjaGVkRm9udExvYWRSZXF1
ZXN0IGZpbmFsIDogcHVibGljIEZvbnRMb2FkUmVxdWVzdCwgcHVibGljIENhY2hlZEZvbnRDbGll
bnQgewogICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwogcHVibGljOgpAQCAtNTYsOSArNTks
OSBAQCBwcml2YXRlOgogICAgIGJvb2wgZXJyb3JPY2N1cnJlZCgpIGNvbnN0IGZpbmFsIHsgcmV0
dXJuIG1fZm9udC0+ZXJyb3JPY2N1cnJlZCgpOyB9CiAKICAgICBib29sIGVuc3VyZUN1c3RvbUZv
bnREYXRhKGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSkgZmluYWwgeyByZXR1cm4gbV9mb250
LT5lbnN1cmVDdXN0b21Gb250RGF0YShyZW1vdGVVUkkpOyB9Ci0gICAgUmVmUHRyPEZvbnQ+IGNy
ZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBzZXR0aW5ncywgRm9udFNlbGVjdGlvblNwZWNp
ZmllZENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXMpIGZpbmFsCisgICAgUmVmUHRyPEZvbnQ+IGNy
ZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
LCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25Db250ZXh0KSBmaW5hbAog
ICAgIHsKLSAgICAgICAgcmV0dXJuIG1fZm9udC0+Y3JlYXRlRm9udChkZXNjcmlwdGlvbiwgcmVt
b3RlVVJJLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIHNldHRpbmdzLCBjYXBhYmls
aXRpZXMpOworICAgICAgICByZXR1cm4gbV9mb250LT5jcmVhdGVGb250KGRlc2NyaXB0aW9uLCBy
ZW1vdGVVUkksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29u
dGV4dCk7CiAgICAgfQogCiAgICAgdm9pZCBzZXRDbGllbnQoRm9udExvYWRSZXF1ZXN0Q2xpZW50
KiBjbGllbnQpIGZpbmFsCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUv
Q2FjaGVkU1ZHRm9udC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9sb2FkZXIvY2FjaGUvQ2FjaGVkU1ZH
Rm9udC5jcHAKaW5kZXggZTA3YzM3NzRlOGM1YmJiMmQzYTc5YTJlYTE2YzA3NTIwMWQ5MTNlNC4u
MzgwMjhhZjY3NmU3MTVlZTg3NDM1ZjlkYThhNGIzMTRjYjMxMjNiYSAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250LmNwcApAQCAtMSw1ICsxLDUgQEAKIC8q
Ci0gKiBDb3B5cmlnaHQgKEMpIDIwMDYsIDIwMDcsIDIwMDggQXBwbGUgSW5jLiBBbGwgcmlnaHRz
IHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDA2LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmln
aHRzIHJlc2VydmVkLgogICogQ29weXJpZ2h0IChDKSAyMDA5IFRvcmNoIE1vYmlsZSwgSW5jLgog
ICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMs
IHdpdGggb3Igd2l0aG91dApAQCAtMjcsNiArMjcsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgog
I2luY2x1ZGUgIkNhY2hlZFNWR0ZvbnQuaCIKIAorI2luY2x1ZGUgIkZvbnRDcmVhdGlvbkNvbnRl
eHQuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UGxhdGZv
cm1EYXRhLmgiCiAjaW5jbHVkZSAiU1ZHRG9jdW1lbnQuaCIKQEAgLTUzLDE3ICs1NCwxNyBAQCBD
YWNoZWRTVkdGb250OjpDYWNoZWRTVkdGb250KENhY2hlZFJlc291cmNlUmVxdWVzdCYmIHJlcXVl
c3QsIENhY2hlZFNWR0ZvbnQmIHJlcwogewogfQogCi1SZWZQdHI8Rm9udD4gQ2FjaGVkU1ZHRm9u
dDo6Y3JlYXRlRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29u
c3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhl
dGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBG
b250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKQor
UmVmUHRyPEZvbnQ+IENhY2hlZFNWR0ZvbnQ6OmNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmIHJlbW90ZVVSSSwgYm9vbCBz
eW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY0l0YWxpYywgY29uc3QgRm9udENyZWF0aW9uQ29u
dGV4dCYgZm9udENyZWF0aW9uQ29udGV4dCkKIHsKICAgICBBU1NFUlQoZmlyc3RGb250RmFjZShy
ZW1vdGVVUkkpKTsKLSAgICByZXR1cm4gQ2FjaGVkRm9udDo6Y3JlYXRlRm9udChmb250RGVzY3Jp
cHRpb24sIHJlbW90ZVVSSSwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCBmb250RmFj
ZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyk7CisgICAgcmV0dXJuIENhY2hlZEZvbnQ6
OmNyZWF0ZUZvbnQoZm9udERlc2NyaXB0aW9uLCByZW1vdGVVUkksIHN5bnRoZXRpY0JvbGQsIHN5
bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCk7CiB9CiAKLUZvbnRQbGF0Zm9ybURh
dGEgQ2FjaGVkU1ZHRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0
IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVj
aWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpCitGb250UGxhdGZvcm1EYXRh
IENhY2hlZFNWR0ZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBG
b250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25Db250ZXh0KQogewogICAgIGlmIChtX2V4
dGVybmFsU1ZHRG9jdW1lbnQpCi0gICAgICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnRE
ZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBib2xkLCBpdGFsaWMpOwotICAgIHJldHVy
biBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShmb250RGVzY3JpcHRpb24s
IGJvbGQsIGl0YWxpYywgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VDYXBhYmlsaXRpZXMpOwor
ICAgICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQ
aXhlbFNpemUoKSwgYm9sZCwgaXRhbGljKTsgLy8gRklYTUU6IFRoaXMgZG9lc24ndCBzZWVtIHJp
Z2h0LgorICAgIHJldHVybiBDYWNoZWRGb250OjpwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShm
b250RGVzY3JpcHRpb24sIGJvbGQsIGl0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCk7CiB9CiAK
IGJvb2wgQ2FjaGVkU1ZHRm9udDo6ZW5zdXJlQ3VzdG9tRm9udERhdGEoY29uc3QgQXRvbVN0cmlu
ZyYgcmVtb3RlVVJJKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvbG9hZGVyL2NhY2hlL0Nh
Y2hlZFNWR0ZvbnQuaCBiL1NvdXJjZS9XZWJDb3JlL2xvYWRlci9jYWNoZS9DYWNoZWRTVkdGb250
LmgKaW5kZXggM2Y2MDc4OTcwNzRlYWRlMjUxMTFkYTFlMDY4NWNjZmI4NTU0YTgwYi4uM2YwYzAx
NDNjMGY4ZDllYjE3ODNiMGZiNjNlMjIwNzVmNzgyOGQ5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvbG9hZGVyL2NhY2hlL0NhY2hlZFNWR0ZvbnQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9s
b2FkZXIvY2FjaGUvQ2FjaGVkU1ZHRm9udC5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHly
aWdodCAoQykgMjAwNywgMjAwOCBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBD
b3B5cmlnaHQgKEMpIDIwMDctMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAg
KgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTI5LDYgKzI5LDcgQEAKIAogbmFtZXNw
YWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgRm9udENyZWF0aW9uQ29udGV4dDsKIGNsYXNzIFNWR0Zv
bnRGYWNlRWxlbWVudDsKIGNsYXNzIFNldHRpbmdzOwogCkBAIC0zOSwxMCArNDAsMTAgQEAgcHVi
bGljOgogCiAgICAgYm9vbCBlbnN1cmVDdXN0b21Gb250RGF0YShjb25zdCBBdG9tU3RyaW5nJiBy
ZW1vdGVVUkkpIG92ZXJyaWRlOwogCi0gICAgUmVmUHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbVN0cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRo
ZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdz
JiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcykgb3ZlcnJpZGU7CisgICAgUmVm
UHRyPEZvbnQ+IGNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbVN0
cmluZyYgcmVtb3RlVVJJLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljSXRhbGlj
LCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jikgb3ZlcnJpZGU7CiAKIHByaXZhdGU6Ci0gICAg
Rm9udFBsYXRmb3JtRGF0YSBwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRp
bmdzJiwgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyk7CisgICAgRm9udFBsYXRm
b3JtRGF0YSBwbGF0Zm9ybURhdGFGcm9tQ3VzdG9tRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
LCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jik7CiAK
ICAgICBTVkdGb250RWxlbWVudCogZ2V0U1ZHRm9udEJ5SWQoY29uc3QgU3RyaW5nJikgY29uc3Q7
CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAKaW5kZXggNzBkMTAw
YzQ4NThlZWU0Y2ZiZjBkMmM4N2Q0MDczMWFmNTIyZjE1MS4uZGVkNGRlNWQxMzY2M2I4MDUyMmQw
NTNjODIwZDQyN2E0MjFjNGJjMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udC5jcHAKQEAgLTc0LDcgKzc0LDkgQEAgUmVmPEZvbnQ+IEZvbnQ6OmNyZWF0ZShSZWY8U2hh
cmVkQnVmZmVyPiYmIGZvbnRGYWNlRGF0YSwgRm9udDo6T3JpZ2luIG9yaWdpbiwgZmwKICAgICBh
dXRvIGN1c3RvbUZvbnREYXRhID0gQ2FjaGVkRm9udDo6Y3JlYXRlQ3VzdG9tRm9udERhdGEoZm9u
dEZhY2VEYXRhLmdldCgpLCB7IH0sIHdyYXBwaW5nKTsKICAgICBGb250RGVzY3JpcHRpb24gZGVz
Y3JpcHRpb247CiAgICAgZGVzY3JpcHRpb24uc2V0Q29tcHV0ZWRTaXplKGZvbnRTaXplKTsKLSAg
ICByZXR1cm4gRm9udDo6Y3JlYXRlKENhY2hlZEZvbnQ6OnBsYXRmb3JtRGF0YUZyb21DdXN0b21E
YXRhKCpjdXN0b21Gb250RGF0YSwgZGVzY3JpcHRpb24sIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRp
Y0l0YWxpYywgeyB9LCB7IH0pLCBvcmlnaW4sIGZvbnRDYWNoZUZvclZlcnRpY2FsRGF0YSk7Cisg
ICAgLy8gRklYTUU6IFdoeSBkb2Vzbid0IHRoaXMgcGFzcyBpbiBhbnkgbWVhbmluZ2Z1bCBkYXRh
IGZvciB0aGUgbGFzdCBmZXcgYXJndW1lbnRzPworICAgIGF1dG8gcGxhdGZvcm1EYXRhID0gQ2Fj
aGVkRm9udDo6cGxhdGZvcm1EYXRhRnJvbUN1c3RvbURhdGEoKmN1c3RvbUZvbnREYXRhLCBkZXNj
cmlwdGlvbiwgc3ludGhldGljQm9sZCwgc3ludGhldGljSXRhbGljLCB7IH0pOworICAgIHJldHVy
biBGb250OjpjcmVhdGUoV1RGTW92ZShwbGF0Zm9ybURhdGEpLCBvcmlnaW4sIGZvbnRDYWNoZUZv
clZlcnRpY2FsRGF0YSk7CiB9CiAKIEZvbnQ6OkZvbnQoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYg
cGxhdGZvcm1EYXRhLCBPcmlnaW4gb3JpZ2luLCBJbnRlcnN0aXRpYWwgaW50ZXJzdGl0aWFsLCBW
aXNpYmlsaXR5IHZpc2liaWxpdHksIE9yaWVudGF0aW9uRmFsbGJhY2sgb3JpZW50YXRpb25GYWxs
YmFjaywgc3RkOjpvcHRpb25hbDxSZW5kZXJpbmdSZXNvdXJjZUlkZW50aWZpZXI+IHJlbmRlcmlu
Z1Jlc291cmNlSWRlbnRpZmllciwgRm9udENhY2hlKiBmb250Q2FjaGVGb3JWZXJ0aWNhbERhdGEp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
Y3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAppbmRl
eCA2ZGNkNTU2N2EzMmU2OWFlNjAyNmY1OWI0YzU2YTQyY2ZlYWYyOTI2Li5jZjEyY2Q3OGJkMjU2
NTM5YWMwZGJiNGZhMThiNWUxYmQ1YWIyMTAyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKQEAgLTMxLDYgKzMxLDcgQEAKICNpbmNsdWRlICJG
b250Q2FjaGUuaCIKIAogI2luY2x1ZGUgIkZvbnRDYXNjYWRlLmgiCisjaW5jbHVkZSAiRm9udENy
ZWF0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRl
ICJGb250U2VsZWN0b3IuaCIKICNpbmNsdWRlICJMb2dnaW5nLmgiCkBAIC04MCwxNyArODEsMTgg
QEAgaW5saW5lIGJvb2wgb3BlcmF0b3IhPShjb25zdCBGb250RmFtaWx5TmFtZSYgYSwgY29uc3Qg
Rm9udEZhbWlseU5hbWUmIGIpCiBzdHJ1Y3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5IHsKICAg
ICBGb250RGVzY3JpcHRpb25LZXkgZGVzY3JpcHRpb25LZXk7CiAgICAgRm9udEZhbWlseU5hbWUg
ZmFtaWx5OwotICAgIEZvbnRGZWF0dXJlU2V0dGluZ3MgZmVhdHVyZXM7Ci0gICAgRm9udFNlbGVj
dGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7CisgICAgRm9udENyZWF0aW9u
Q29udGV4dCBmb250Q3JlYXRpb25Db250ZXh0OwogfTsKIAogc3RhdGljIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkmIGEsIGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGFDYWNoZUtleSYgYikKIHsKLSAgICByZXR1cm4gYS5kZXNjcmlwdGlvbktleSA9PSBiLmRlc2Ny
aXB0aW9uS2V5ICYmIGEuZmFtaWx5ID09IGIuZmFtaWx5ICYmIGEuZmVhdHVyZXMgPT0gYi5mZWF0
dXJlcyAmJiBhLmNhcGFiaWxpdGllcyA9PSBiLmNhcGFiaWxpdGllczsKKyAgICByZXR1cm4gYS5k
ZXNjcmlwdGlvbktleSA9PSBiLmRlc2NyaXB0aW9uS2V5CisgICAgICAgICYmIGEuZmFtaWx5ID09
IGIuZmFtaWx5CisgICAgICAgICYmIGEuZm9udENyZWF0aW9uQ29udGV4dCA9PSBiLmZvbnRDcmVh
dGlvbkNvbnRleHQ7CiB9CiAKIHN0cnVjdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXlIYXNoIHsK
LSAgICBzdGF0aWMgdW5zaWduZWQgaGFzaChjb25zdCBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkm
IGtleSkgeyByZXR1cm4gY29tcHV0ZUhhc2goa2V5LmRlc2NyaXB0aW9uS2V5LCBrZXkuZmFtaWx5
LCBrZXkuZmVhdHVyZXMsIGtleS5jYXBhYmlsaXRpZXMudGllZCgpKTsgfQorICAgIHN0YXRpYyB1
bnNpZ25lZCBoYXNoKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGFDYWNoZUtleSYga2V5KSB7IHJldHVy
biBjb21wdXRlSGFzaChrZXkuZGVzY3JpcHRpb25LZXksIGtleS5mYW1pbHksIGtleS5mb250Q3Jl
YXRpb25Db250ZXh0KTsgfQogICAgIHN0YXRpYyBib29sIGVxdWFsKGNvbnN0IEZvbnRQbGF0Zm9y
bURhdGFDYWNoZUtleSYgYSwgY29uc3QgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5JiBiKSB7IHJl
dHVybiBhID09IGI7IH0KICAgICBzdGF0aWMgY29uc3RleHByIGJvb2wgc2FmZVRvQ29tcGFyZVRv
RW1wdHlPckRlbGV0ZWQgPSB0cnVlOwogfTsKQEAgLTIwNiw4ICsyMDgsNyBAQCBzdGQ6Om9wdGlv
bmFsPEFTQ0lJTGl0ZXJhbD4gRm9udENhY2hlOjphbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IFN0
cmluZyYgZmFtaWx5TgogICAgIHJldHVybiBzdGQ6Om51bGxvcHQ7CiB9CiAKLUZvbnRQbGF0Zm9y
bURhdGEqIEZvbnRDYWNoZTo6Y2FjaGVkRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgU3RyaW5nJiBwYXNzZWRGYW1pbHlOYW1lLAot
ICAgIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3Bl
Y2lmaWVkQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllcywgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5h
bWUpCitGb250UGxhdGZvcm1EYXRhKiBGb250Q2FjaGU6OmNhY2hlZEZvbnRQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IFN0cmluZyYgcGFz
c2VkRmFtaWx5TmFtZSwgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYgZm9udENyZWF0aW9uQ29u
dGV4dCwgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5hbWUpCiB7CiAjaWYgUExBVEZPUk0oSU9TX0ZB
TUlMWSkKICAgICBMb2NrZXIgbG9ja2VyIHsgbV9mb250TG9jayB9OwpAQCAtMjI3LDE3ICsyMjgs
MTcgQEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpjYWNoZWRGb250UGxhdGZvcm1EYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udEQKICAgICAgICAgcGxhdGZvcm1Jbml0KCk7CiAg
ICAgfSk7CiAKLSAgICBGb250UGxhdGZvcm1EYXRhQ2FjaGVLZXkga2V5IHsgZm9udERlc2NyaXB0
aW9uLCB7IGZhbWlseU5hbWUgfSwgZmVhdHVyZXMgPyAqZmVhdHVyZXMgOiBGb250RmVhdHVyZVNl
dHRpbmdzIHsgfSwgY2FwYWJpbGl0aWVzIH07CisgICAgRm9udFBsYXRmb3JtRGF0YUNhY2hlS2V5
IGtleSB7IGZvbnREZXNjcmlwdGlvbiwgeyBmYW1pbHlOYW1lIH0sIGZvbnRDcmVhdGlvbkNvbnRl
eHQgfTsKIAogICAgIGF1dG8gYWRkUmVzdWx0ID0gbV9mb250RGF0YUNhY2hlcy0+cGxhdGZvcm1E
YXRhLmFkZChrZXksIG51bGxwdHIpOwogICAgIEZvbnRQbGF0Zm9ybURhdGFDYWNoZTo6aXRlcmF0
b3IgaXQgPSBhZGRSZXN1bHQuaXRlcmF0b3I7CiAgICAgaWYgKGFkZFJlc3VsdC5pc05ld0VudHJ5
KSB7Ci0gICAgICAgIGl0LT52YWx1ZSA9IGNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoZm9udERlc2Ny
aXB0aW9uLCBmYW1pbHlOYW1lLCBmZWF0dXJlcywgY2FwYWJpbGl0aWVzKTsKKyAgICAgICAgaXQt
PnZhbHVlID0gY3JlYXRlRm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIGZhbWlseU5h
bWUsIGZvbnRDcmVhdGlvbkNvbnRleHQpOwogICAgICAgICBpZiAoIWl0LT52YWx1ZSAmJiAhY2hl
Y2tpbmdBbHRlcm5hdGVOYW1lKSB7CiAgICAgICAgICAgICAvLyBXZSB3ZXJlIHVuYWJsZSB0byBm
aW5kIGEgZm9udC4gV2UgaGF2ZSBhIHNtYWxsIHNldCBvZiBmb250cyB0aGF0IHdlIGFsaWFzIHRv
IG90aGVyIG5hbWVzLAogICAgICAgICAgICAgLy8gZS5nLiwgQXJpYWwvSGVsdmV0aWNhLCBDb3Vy
aWVyL0NvdXJpZXIgTmV3LCBldGMuIFRyeSBsb29raW5nIHVwIHRoZSBmb250IHVuZGVyIHRoZSBh
bGlhc2VkIG5hbWUuCiAgICAgICAgICAgICBpZiAoYXV0byBhbHRlcm5hdGVOYW1lID0gYWx0ZXJu
YXRlRmFtaWx5TmFtZShmYW1pbHlOYW1lKSkgewotICAgICAgICAgICAgICAgIGF1dG8qIGFsdGVy
bmF0ZURhdGEgPSBjYWNoZWRGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgKmFsdGVy
bmF0ZU5hbWUsIGZlYXR1cmVzLCBjYXBhYmlsaXRpZXMsIHRydWUpOworICAgICAgICAgICAgICAg
IGF1dG8qIGFsdGVybmF0ZURhdGEgPSBjYWNoZWRGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlw
dGlvbiwgKmFsdGVybmF0ZU5hbWUsIGZvbnRDcmVhdGlvbkNvbnRleHQsIHRydWUpOwogICAgICAg
ICAgICAgICAgIC8vIExvb2sgdXAgdGhlIGtleSBpbiB0aGUgaGFzaCB0YWJsZSBhZ2FpbiBhcyB0
aGUgcHJldmlvdXMgaXRlcmF0b3IgbWF5IGhhdmUKICAgICAgICAgICAgICAgICAvLyBiZWVuIGlu
dmFsaWRhdGVkIGJ5IHRoZSByZWN1cnNpdmUgY2FsbCB0byBjYWNoZWRGb250UGxhdGZvcm1EYXRh
KCkuCiAgICAgICAgICAgICAgICAgaXQgPSBtX2ZvbnREYXRhQ2FjaGVzLT5wbGF0Zm9ybURhdGEu
ZmluZChrZXkpOwpAQCAtMjYyLDEyICsyNjMsMTIgQEAgY29uc3QgdW5zaWduZWQgY1RhcmdldElu
YWN0aXZlRm9udERhdGEgPSAyMDA7CiBjb25zdCB1bnNpZ25lZCBjTWF4VW5kZXJNZW1vcnlQcmVz
c3VyZUluYWN0aXZlRm9udERhdGEgPSA1MDsKIGNvbnN0IHVuc2lnbmVkIGNUYXJnZXRVbmRlck1l
bW9yeVByZXNzdXJlSW5hY3RpdmVGb250RGF0YSA9IDMwOwogCi1SZWZQdHI8Rm9udD4gRm9udENh
Y2hlOjpmb250Rm9yRmFtaWx5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
LCBjb25zdCBTdHJpbmcmIGZhbWlseSwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVy
ZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzLCBib29s
IGNoZWNraW5nQWx0ZXJuYXRlTmFtZSkKK1JlZlB0cjxGb250PiBGb250Q2FjaGU6OmZvbnRGb3JG
YW1pbHkoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IFN0cmlu
ZyYgZmFtaWx5LCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25Db250ZXh0
LCBib29sIGNoZWNraW5nQWx0ZXJuYXRlTmFtZSkKIHsKICAgICBpZiAoIW1fcHVyZ2VUaW1lci5p
c0FjdGl2ZSgpKQogICAgICAgICBtX3B1cmdlVGltZXIuc3RhcnRPbmVTaG90KDBfcyk7CiAKLSAg
ICBpZiAoYXV0byogcGxhdGZvcm1EYXRhID0gY2FjaGVkRm9udFBsYXRmb3JtRGF0YShmb250RGVz
Y3JpcHRpb24sIGZhbWlseSwgZmVhdHVyZXMsIGNhcGFiaWxpdGllcywgY2hlY2tpbmdBbHRlcm5h
dGVOYW1lKSkKKyAgICBpZiAoYXV0byogcGxhdGZvcm1EYXRhID0gY2FjaGVkRm9udFBsYXRmb3Jt
RGF0YShmb250RGVzY3JpcHRpb24sIGZhbWlseSwgZm9udENyZWF0aW9uQ29udGV4dCwgY2hlY2tp
bmdBbHRlcm5hdGVOYW1lKSkKICAgICAgICAgcmV0dXJuIGZvbnRGb3JQbGF0Zm9ybURhdGEoKnBs
YXRmb3JtRGF0YSk7CiAKICAgICByZXR1cm4gbnVsbHB0cjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5kZXggMjRjYTJlNmQzNmU0OGYxYTc0OTZhMWE2
NmMzYjM2YTNiNGZmYWZkZS4uZGNlZDY1NDI1ZTY0YmU1NmQwOTFlYTJiYjA1YTU0YTg5MDk4Yjdi
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAg
LTMwLDYgKzMwLDcgQEAKICNwcmFnbWEgb25jZQogCiAjaW5jbHVkZSAiRm9udENhc2NhZGVGb250
cy5oIgorI2luY2x1ZGUgIkZvbnRDcmVhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJGb250RGVz
Y3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiRm9u
dFNlbGVjdG9yLmgiCkBAIC0zMDEsNyArMzAyLDcgQEAgcHVibGljOgogICAgIC8vIEl0IGNvbWVz
IGludG8gcGxheSB3aGVuIHlvdSBjcmVhdGUgYW4gQGZvbnQtZmFjZSB3aGljaCBzaGFyZXMgYSBm
YW1pbHkgbmFtZSBhcyBhIHByZWluc3RhbGxlZCBmb250LgogICAgIFZlY3RvcjxGb250U2VsZWN0
aW9uQ2FwYWJpbGl0aWVzPiBnZXRGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzSW5GYW1pbHkoY29u
c3QgQXRvbVN0cmluZyYsIEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKIAotICAgIFdFQkNPUkVf
RVhQT1JUIFJlZlB0cjxGb250PiBmb250Rm9yRmFtaWx5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IGNvbnN0IFN0cmluZyYsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVy
ZXMgPSBudWxscHRyLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNl
Q2FwYWJpbGl0aWVzID0geyB9LCBib29sIGNoZWNraW5nQWx0ZXJuYXRlTmFtZSA9IGZhbHNlKTsK
KyAgICBXRUJDT1JFX0VYUE9SVCBSZWZQdHI8Rm9udD4gZm9udEZvckZhbWlseShjb25zdCBGb250
RGVzY3JpcHRpb24mLCBjb25zdCBTdHJpbmcmLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiA9
IHsgfSwgYm9vbCBjaGVja2luZ0FsdGVybmF0ZU5hbWUgPSBmYWxzZSk7CiAgICAgV0VCQ09SRV9F
WFBPUlQgUmVmPEZvbnQ+IGxhc3RSZXNvcnRGYWxsYmFja0ZvbnQoY29uc3QgRm9udERlc2NyaXB0
aW9uJik7CiAgICAgV0VCQ09SRV9FWFBPUlQgUmVmPEZvbnQ+IGZvbnRGb3JQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOwogICAgIFJlZlB0cjxGb250PiBzaW1pbGFyRm9udChj
b25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBTdHJpbmcmIGZhbWlseSk7CkBAIC0zNTYsMTAg
KzM1NywxMCBAQCBwcml2YXRlOgogICAgIHZvaWQgcHJ1bmVTeXN0ZW1GYWxsYmFja0ZvbnRzKCk7
CiAgICAgUmVmPEZvbnRDYXNjYWRlRm9udHM+IHJldHJpZXZlT3JBZGRDYWNoZWRGb250cyhjb25z
dCBGb250Q2FzY2FkZURlc2NyaXB0aW9uJiwgUmVmUHRyPEZvbnRTZWxlY3Rvcj4mJik7CiAKLSAg
ICBGb250UGxhdGZvcm1EYXRhKiBjYWNoZWRGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYsIGNvbnN0IFN0cmluZyYgZmFtaWx5LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdz
KiA9IG51bGxwdHIsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgPSB7IH0sIGJv
b2wgY2hlY2tpbmdBbHRlcm5hdGVOYW1lID0gZmFsc2UpOworICAgIEZvbnRQbGF0Zm9ybURhdGEq
IGNhY2hlZEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgU3Ry
aW5nJiBmYW1pbHksIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmID0geyB9LCBib29sIGNoZWNr
aW5nQWx0ZXJuYXRlTmFtZSA9IGZhbHNlKTsKIAogICAgIC8vIFRoZXNlIGZ1bmN0aW9ucyBhcmUg
aW1wbGVtZW50ZWQgYnkgZWFjaCBwbGF0Zm9ybSAodW5jbGVhciB3aGljaCBmdW5jdGlvbnMgdGhp
cyBjb21tZW50IGFwcGxpZXMgdG8pLgotICAgIFdFQkNPUkVfRVhQT1JUIHN0ZDo6dW5pcXVlX3B0
cjxGb250UGxhdGZvcm1EYXRhPiBjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSwgY29uc3QgRm9udEZlYXR1cmVTZXR0
aW5ncyosIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpOworICAgIFdFQkNPUkVf
RVhQT1JUIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBjcmVhdGVGb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSwg
Y29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYpOwogICAgIAogICAgIHN0YXRpYyBzdGQ6Om9wdGlv
bmFsPEFTQ0lJTGl0ZXJhbD4gYWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBTdHJpbmcmKTsKICAg
ICBzdGF0aWMgc3RkOjpvcHRpb25hbDxBU0NJSUxpdGVyYWw+IHBsYXRmb3JtQWx0ZXJuYXRlRmFt
aWx5TmFtZShjb25zdCBTdHJpbmcmKTsKQEAgLTM5Miw3ICszOTMsNyBAQCBwcml2YXRlOgogCiBp
bmxpbmUgc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRl
Rm9udFBsYXRmb3JtRGF0YUZvclRlc3RpbmcoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVz
Y3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSkKIHsKLSAgICByZXR1cm4gY3JlYXRl
Rm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIGZhbWlseSwgbnVsbHB0ciwgeyB9KTsK
KyAgICByZXR1cm4gY3JlYXRlRm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIGZhbWls
eSwgeyB9KTsKIH0KIAogI2lmICFQTEFURk9STShDT0NPQSkgJiYgIVVTRShGUkVFVFlQRSkKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvbkNv
bnRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDcmVhdGlvbkNv
bnRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwLi5mM2U2MTc0YjFmZTQzYzU1MDQwMTFkYWI0YWIwYjhlNmM4ZTcz
NTI0Ci0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENyZWF0aW9uQ29udGV4dC5oCkBAIC0wLDAgKzEsNTYgQEAKKy8qCisgKiBDb3B5cmlnaHQg
KEMpIDIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJp
YnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91
dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxv
d2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNv
dXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwg
dGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAq
IDIuIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJv
dmUgY29weXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0
aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9v
ciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJV
VE9SUyBgYEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVS
UE9TRSBBUkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMg
Q09OVFJJQlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJ
REVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMg
KElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJ
VFVURSBHT09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9S
IEJVU0lORVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhF
T1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJ
VFksIE9SIFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJ
TkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFE
VklTRUQgT0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJh
Z21hIG9uY2UKKworI2luY2x1ZGUgIkZvbnRTZWxlY3Rpb25BbGdvcml0aG0uaCIKKyNpbmNsdWRl
ICJGb250VGFnZ2VkU2V0dGluZ3MuaCIKKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
Rm9udENyZWF0aW9uQ29udGV4dCB7CisgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRDcmVh
dGlvbkNvbnRleHQmIG90aGVyKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIGZvbnRGYWNl
RmVhdHVyZXMgPT0gb3RoZXIuZm9udEZhY2VGZWF0dXJlcworICAgICAgICAgICAgJiYgZm9udEZh
Y2VDYXBhYmlsaXRpZXMgPT0gb3RoZXIuZm9udEZhY2VDYXBhYmlsaXRpZXM7CisgICAgfQorCisg
ICAgYm9vbCBvcGVyYXRvciE9KGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIG90aGVyKSBjb25z
dAorICAgIHsKKyAgICAgICAgcmV0dXJuICEoKnRoaXMgPT0gb3RoZXIpOworICAgIH0KKworICAg
IEZvbnRGZWF0dXJlU2V0dGluZ3MgZm9udEZhY2VGZWF0dXJlczsKKyAgICBGb250U2VsZWN0aW9u
U3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzOworICAgIC8vIEZJWE1F
OiBBZGQgc3VwcG9ydCBmb3IgZm9udC1wYWxldHRlLXZhbHVlcyBhbmQgZm9udC1mZWF0dXJlLXZh
bHVlcy4KK307CisKK2lubGluZSB2b2lkIGFkZChIYXNoZXImIGhhc2hlciwgY29uc3QgRm9udENy
ZWF0aW9uQ29udGV4dCYgZm9udENyZWF0aW9uQ29udGV4dCkKK3sKKyAgICBhZGQoaGFzaGVyLCBm
b250Q3JlYXRpb25Db250ZXh0LmZvbnRGYWNlRmVhdHVyZXMpOworICAgIGFkZChoYXNoZXIsIGZv
bnRDcmVhdGlvbkNvbnRleHQuZm9udEZhY2VDYXBhYmlsaXRpZXMudGllZCgpKTsKK30KKworfQpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCmluZGV4IDkxYWNlMTg1ZTNmMDE4NDA3NDRmNTMz
OWNlNTJlY2FmYWYwYjVmMTUuLmZiMDhjYTY4YjdmZjJjZjIyYzcyMjllZThmMDJlYzk5ZGQ2Yjgx
ZTYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKQEAgLTMxLDYgKzMxLDcgQEAgdHlw
ZWRlZiBzdHJ1Y3QgRlRfRmFjZVJlY18qICBGVF9GYWNlOwogCiBuYW1lc3BhY2UgV2ViQ29yZSB7
CiAKK3N0cnVjdCBGb250Q3JlYXRpb25Db250ZXh0OwogY2xhc3MgRm9udERlc2NyaXB0aW9uOwog
Y2xhc3MgRm9udFBsYXRmb3JtRGF0YTsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKQEAgLTQ2LDcgKzQ3
LDcgQEAgc3RydWN0IEZvbnRDdXN0b21QbGF0Zm9ybURhdGEgewogcHVibGljOgogICAgIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGEoRlRfRmFjZSwgU2hhcmVkQnVmZmVyJik7CiAgICAgfkZvbnRDdXN0
b21QbGF0Zm9ybURhdGEoKSA9IGRlZmF1bHQ7Ci0gICAgRm9udFBsYXRmb3JtRGF0YSBmb250UGxh
dGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJp
bGl0aWVzKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udENyZWF0aW9u
Q29udGV4dCYpOwogICAgIHN0YXRpYyBib29sIHN1cHBvcnRzRm9ybWF0KGNvbnN0IFN0cmluZyYp
OwogCiBwcml2YXRlOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCmluZGV4IDE5NThjYzBlNDZkMTIz
NWFlYTA5MDNhMWZhZjQ0OTQwMDE0MjEyMmEuLjRmZDlhNWRkM2I1ZTg0MzAyMzlkMDliMTM3YzYz
MzdhMDNmYTAwZGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKQEAgLTEsNSArMSw1IEBACiAv
KgotICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMTcgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2Vy
dmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE1LTIwMjEgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJl
c2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0yNiw4ICsyNiwxMCBA
QAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgogCisjaW5jbHVk
ZSAiQ29sb3IuaCIKICNpbmNsdWRlICJGb250LmgiCiAjaW5jbHVkZSAiRm9udENhc2NhZGVEZXNj
cmlwdGlvbi5oIgorI2luY2x1ZGUgIkZvbnRDcmVhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJG
b250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmgiCiAjaW5jbHVkZSAiUmVuZGVyVGhlbWVD
b2NvYS5oIgogI2luY2x1ZGUgIlN5c3RlbUZvbnREYXRhYmFzZUNvcmVUZXh0LmgiCkBAIC00NDAs
NyArNDQyLDcgQEAgc3RydWN0IEZvbnRUeXBlIHsKICAgICBib29sIGFhdFNoYXBpbmcgeyBmYWxz
ZSB9OwogfTsKIAotUmV0YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZv
bnRSZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlv
biwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgRm9udFNlbGVj
dGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcywgYm9vbCBhcHBs
eVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zKQorUmV0YWluUHRyPENURm9udFJlZj4gcHJlcGFy
ZVBsYXRmb3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250RGVzY3JpcHRp
b24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYgZm9udENyZWF0
aW9uQ29udGV4dCwgYm9vbCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zKQogewogICAg
IGlmICghb3JpZ2luYWxGb250KQogICAgICAgICByZXR1cm4gb3JpZ2luYWxGb250OwpAQCAtNDY5
LDcgKzQ3MSw3IEBAIFJldGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RG
b250UmVmIG9yaWdpbmFsRm9udCwgY29uc3QgRm9udERlc2NyCiAgICAgYm9vbCB0ZXh0UmVuZGVy
aW5nTW9kZUlzQXV0byA9IHRleHRSZW5kZXJpbmdNb2RlID09IFRleHRSZW5kZXJpbmdNb2RlOjpB
dXRvVGV4dFJlbmRlcmluZzsKICAgICBib29sIHZhcmlhbnRTZXR0aW5nc0lzTm9ybWFsID0gdmFy
aWFudFNldHRpbmdzLmlzQWxsTm9ybWFsKCk7CiAgICAgYm9vbCBkb250TmVlZFRvQXBwbHlPcHRp
Y2FsU2l6aW5nID0gZm9udE9wdGljYWxTaXppbmcgPT0gRm9udE9wdGljYWxTaXppbmc6OkVuYWJs
ZWQgJiYgIWZvcmNlT3B0aWNhbFNpemluZ09uOwotICAgIGJvb2wgZm9udEZhY2VEb2VzbnRTcGVj
aWZ5RmVhdHVyZXMgPSAhZm9udEZhY2VGZWF0dXJlcyB8fCBmb250RmFjZUZlYXR1cmVzLT5pc0Vt
cHR5KCk7CisgICAgYm9vbCBmb250RmFjZURvZXNudFNwZWNpZnlGZWF0dXJlcyA9IGZvbnRDcmVh
dGlvbkNvbnRleHQuZm9udEZhY2VGZWF0dXJlcy5pc0VtcHR5KCk7CiAgICAgaWYgKG5vRm9udEZl
YXR1cmVTZXR0aW5ncyAmJiBub0ZvbnRWYXJpYXRpb25TZXR0aW5ncyAmJiB0ZXh0UmVuZGVyaW5n
TW9kZUlzQXV0byAmJiB2YXJpYW50U2V0dGluZ3NJc05vcm1hbCAmJiBkb250TmVlZFRvQXBwbHlP
cHRpY2FsU2l6aW5nICYmIGZvbnRGYWNlRG9lc250U3BlY2lmeUZlYXR1cmVzICYmICFzaG91bGRE
aXNhYmxlTGlnYXR1cmVzRm9yU3BhY2luZykgewogI2lmIEhBVkUoQ1RGT05UQ1JFQVRFRk9SQ0hB
UkFDVEVSU1dJVEhMQU5HVUFHRUFORE9QVElPTikKICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRm9u
dDsKQEAgLTUxNSwxMSArNTE3LDExIEBAIFJldGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0
Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFsRm9udCwgY29uc3QgRm9udERlc2NyCiAgICAgICAg
IGZsb2F0IHdlaWdodCA9IGZvbnRTZWxlY3Rpb25SZXF1ZXN0LndlaWdodDsKICAgICAgICAgZmxv
YXQgd2lkdGggPSBmb250U2VsZWN0aW9uUmVxdWVzdC53aWR0aDsKICAgICAgICAgZmxvYXQgc2xv
cGUgPSBmb250U2VsZWN0aW9uUmVxdWVzdC5zbG9wZS52YWx1ZV9vcihub3JtYWxJdGFsaWNWYWx1
ZSgpKTsKLSAgICAgICAgaWYgKGF1dG8gd2VpZ2h0VmFsdWUgPSBmb250RmFjZUNhcGFiaWxpdGll
cy53ZWlnaHQpCisgICAgICAgIGlmIChhdXRvIHdlaWdodFZhbHVlID0gZm9udENyZWF0aW9uQ29u
dGV4dC5mb250RmFjZUNhcGFiaWxpdGllcy53ZWlnaHQpCiAgICAgICAgICAgICB3ZWlnaHQgPSBz
dGQ6Om1heChzdGQ6Om1pbih3ZWlnaHQsIHN0YXRpY19jYXN0PGZsb2F0Pih3ZWlnaHRWYWx1ZS0+
bWF4aW11bSkpLCBzdGF0aWNfY2FzdDxmbG9hdD4od2VpZ2h0VmFsdWUtPm1pbmltdW0pKTsKLSAg
ICAgICAgaWYgKGF1dG8gd2lkdGhWYWx1ZSA9IGZvbnRGYWNlQ2FwYWJpbGl0aWVzLndpZHRoKQor
ICAgICAgICBpZiAoYXV0byB3aWR0aFZhbHVlID0gZm9udENyZWF0aW9uQ29udGV4dC5mb250RmFj
ZUNhcGFiaWxpdGllcy53aWR0aCkKICAgICAgICAgICAgIHdpZHRoID0gc3RkOjptYXgoc3RkOjpt
aW4od2lkdGgsIHN0YXRpY19jYXN0PGZsb2F0Pih3aWR0aFZhbHVlLT5tYXhpbXVtKSksIHN0YXRp
Y19jYXN0PGZsb2F0Pih3aWR0aFZhbHVlLT5taW5pbXVtKSk7Ci0gICAgICAgIGlmIChhdXRvIHNs
b3BlVmFsdWUgPSBmb250RmFjZUNhcGFiaWxpdGllcy53ZWlnaHQpCisgICAgICAgIGlmIChhdXRv
IHNsb3BlVmFsdWUgPSBmb250Q3JlYXRpb25Db250ZXh0LmZvbnRGYWNlQ2FwYWJpbGl0aWVzLndl
aWdodCkKICAgICAgICAgICAgIHNsb3BlID0gc3RkOjptYXgoc3RkOjptaW4oc2xvcGUsIHN0YXRp
Y19jYXN0PGZsb2F0PihzbG9wZVZhbHVlLT5tYXhpbXVtKSksIHN0YXRpY19jYXN0PGZsb2F0Pihz
bG9wZVZhbHVlLT5taW5pbXVtKSk7CiAgICAgICAgIGlmIChuZWVkc0NvbnZlcnNpb24pIHsKICAg
ICAgICAgICAgIHdlaWdodCA9IGRlbm9ybWFsaXplV2VpZ2h0KHdlaWdodCk7CkBAIC01MzksOCAr
NTQxLDggQEAgUmV0YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRS
ZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250RGVzY3IKICAgICAvLyBGSVhNRTogSW1wbGVtZW50
IFN0ZXAgNjogdGhlIGZvbnQtdmFyaWF0aW9uLXNldHRpbmdzIGRlc2NyaXB0b3IgaW5zaWRlIEBm
b250LWZhY2UKIAogICAgIC8vIFN0ZXAgNzogQ29uc3VsdCB3aXRoIGZvbnQtZmVhdHVyZS1zZXR0
aW5ncyBpbnNpZGUgQGZvbnQtZmFjZQotICAgIGlmIChmb250RmFjZUZlYXR1cmVzKSB7Ci0gICAg
ICAgIGZvciAoYXV0byYgZm9udEZhY2VGZWF0dXJlIDogKmZvbnRGYWNlRmVhdHVyZXMpCisgICAg
aWYgKCFmb250Q3JlYXRpb25Db250ZXh0LmZvbnRGYWNlRmVhdHVyZXMuaXNFbXB0eSgpKSB7Cisg
ICAgICAgIGZvciAoYXV0byYgZm9udEZhY2VGZWF0dXJlIDogZm9udENyZWF0aW9uQ29udGV4dC5m
b250RmFjZUZlYXR1cmVzKQogICAgICAgICAgICAgYXBwbHlGZWF0dXJlKGZvbnRGYWNlRmVhdHVy
ZS50YWcoKSwgZm9udEZhY2VGZWF0dXJlLnZhbHVlKCkpOwogICAgIH0KIApAQCAtNTc0LDcgKzU3
Niw3IEBAIFJldGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVm
IG9yaWdpbmFsRm9udCwgY29uc3QgRm9udERlc2NyCiAgICAgZm9yIChhdXRvJiBuZXdWYXJpYXRp
b24gOiB2YXJpYXRpb25zKQogICAgICAgICBhcHBseVZhcmlhdGlvbihuZXdWYXJpYXRpb24udGFn
KCksIG5ld1ZhcmlhdGlvbi52YWx1ZSgpKTsKIAotICAgIGF1dG8gYXR0cmlidXRlcyA9IGFkb3B0
Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAyLCAma0NG
VHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJh
Y2tzKSk7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVN
dXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxC
YWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBpZiAoIWZlYXR1
cmVzVG9CZUFwcGxpZWQuaXNFbXB0eSgpKSB7CiAgICAgICAgIGF1dG8gZmVhdHVyZUFycmF5ID0g
YWRvcHRDRihDRkFycmF5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmZWF0dXJl
cy5zaXplKCksICZrQ0ZUeXBlQXJyYXlDYWxsQmFja3MpKTsKICAgICAgICAgZm9yIChhdXRvJiBw
IDogZmVhdHVyZXNUb0JlQXBwbGllZCkgewpAQCAtMTI0Miw3ICsxMjQ0LDcgQEAgc3RhdGljIFJl
dGFpblB0cjxDVEZvbnRSZWY+IGZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2UoY29uc3QgQXRvbVN0
cmluZyYgZmFtaWx5LAogICAgIHJldHVybiBudWxscHRyOwogfQogCi1zdGF0aWMgUmV0YWluUHRy
PENURm9udFJlZj4gZm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LCBjb25z
dCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgRm9udEZlYXR1cmVTZXR0
aW5ncyogZm9udEZhY2VGZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGll
cyBmb250RmFjZUNhcGFiaWxpdGllcywgZmxvYXQgc2l6ZSkKK3N0YXRpYyBSZXRhaW5QdHI8Q1RG
b250UmVmPiBmb250V2l0aEZhbWlseShjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHksIGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0
JiBmb250Q3JlYXRpb25Db250ZXh0LCBmbG9hdCBzaXplKQogewogICAgIGlmIChmYW1pbHkuaXNF
bXB0eSgpKQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKQEAgLTEyNTEsNyArMTI1Myw3IEBAIHN0
YXRpYyBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250V2l0aEZhbWlseShjb25zdCBBdG9tU3RyaW5n
JiBmYW1pbHksIGNvbnN0IEZvbnRECiAgICAgZm9udExvb2t1cC5yZXN1bHQgPSBmb250V2l0aEZh
bWlseVNwZWNpYWxDYXNlKGZhbWlseSwgZm9udERlc2NyaXB0aW9uLCBzaXplLCBmb250RGVzY3Jp
cHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CiAgICAgaWYgKCFmb250TG9v
a3VwLnJlc3VsdCkKICAgICAgICAgZm9udExvb2t1cCA9IHBsYXRmb3JtRm9udExvb2t1cFdpdGhG
YW1pbHkoZmFtaWx5LCBmb250RGVzY3JpcHRpb24uZm9udFNlbGVjdGlvblJlcXVlc3QoKSwgc2l6
ZSwgZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpOwotICAg
IHJldHVybiBwcmVwYXJlUGxhdGZvcm1Gb250KGZvbnRMb29rdXAucmVzdWx0LmdldCgpLCBmb250
RGVzY3JpcHRpb24sIGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCAhZm9u
dExvb2t1cC5jcmVhdGVkRnJvbVBvc3RTY3JpcHROYW1lKTsKKyAgICByZXR1cm4gcHJlcGFyZVBs
YXRmb3JtRm9udChmb250TG9va3VwLnJlc3VsdC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCBmb250
Q3JlYXRpb25Db250ZXh0LCAhZm9udExvb2t1cC5jcmVhdGVkRnJvbVBvc3RTY3JpcHROYW1lKTsK
IH0KIAogI2lmIFBMQVRGT1JNKE1BQykKQEAgLTEyODUsMTEgKzEyODcsMTEgQEAgc3RhdGljIHZv
aWQgYXV0b0FjdGl2YXRlRm9udChjb25zdCBTdHJpbmcmIG5hbWUsIENHRmxvYXQgc2l6ZSkKIH0K
ICNlbmRpZgogCi1zdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpj
cmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0
aW9uLCBjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3Mq
IGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9u
dEZhY2VDYXBhYmlsaXRpZXMpCitzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9u
dENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9u
dERlc2NyaXB0aW9uLCBjb25zdCBBdG9tU3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbnRDcmVhdGlv
bkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRleHQpCiB7CiAgICAgZmxvYXQgc2l6ZSA9IGZvbnRE
ZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpOwogCi0gICAgYXV0byBmb250ID0gZm9udFdp
dGhGYW1pbHkoZmFtaWx5LCBmb250RGVzY3JpcHRpb24sIGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRG
YWNlQ2FwYWJpbGl0aWVzLCBzaXplKTsKKyAgICBhdXRvIGZvbnQgPSBmb250V2l0aEZhbWlseShm
YW1pbHksIGZvbnREZXNjcmlwdGlvbiwgZm9udENyZWF0aW9uQ29udGV4dCwgc2l6ZSk7CiAKICNp
ZiBQTEFURk9STShNQUMpCiAgICAgaWYgKCFmb250KSB7CkBAIC0xMzAwLDcgKzEzMDIsNyBAQCBz
dGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxh
dGZvcm1EYXRhKGNvbnN0IEZvbnREZQogICAgICAgICAvLyBJZ25vcmUgdGhlIHJlc3VsdCBiZWNh
dXNlIHdlIHdhbnQgdG8gdXNlIG91ciBvd24gYWxnb3JpdGhtIHRvIGFjdHVhbGx5IGZpbmQgdGhl
IGZvbnQuCiAgICAgICAgIGF1dG9BY3RpdmF0ZUZvbnQoZmFtaWx5LnN0cmluZygpLCBzaXplKTsK
IAotICAgICAgICBmb250ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5LCBmb250RGVzY3JpcHRpb24s
IGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBzaXplKTsKKyAgICAgICAg
Zm9udCA9IGZvbnRXaXRoRmFtaWx5KGZhbWlseSwgZm9udERlc2NyaXB0aW9uLCBmb250Q3JlYXRp
b25Db250ZXh0LCBzaXplKTsKICAgICB9CiAjZW5kaWYKIApAQCAtMTQxMiw3ICsxNDE0LDcgQEAg
UmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6c3lzdGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZGVzY3IKICAgICAgICAgbV9mb250TmFtZXNSZXF1aXJpbmdTeXN0
ZW1GYWxsYmFja0ZvclByZXdhcm1pbmcuYWRkKGZ1bGxOYW1lKTsKIAogICAgIGF1dG8gcmVzdWx0
ID0gbG9va3VwRmFsbGJhY2tGb250KHBsYXRmb3JtRGF0YS5mb250KCksIGRlc2NyaXB0aW9uLndl
aWdodCgpLCBkZXNjcmlwdGlvbi5jb21wdXRlZExvY2FsZSgpLCBkZXNjcmlwdGlvbi5zaG91bGRB
bGxvd1VzZXJJbnN0YWxsZWRGb250cygpLCBjaGFyYWN0ZXJzLCBsZW5ndGgpOwotICAgIHJlc3Vs
dCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQocmVzdWx0LmdldCgpLCBkZXNjcmlwdGlvbiwgbnVsbHB0
ciwgeyB9KTsKKyAgICByZXN1bHQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KHJlc3VsdC5nZXQoKSwg
ZGVzY3JpcHRpb24sIHsgfSk7CiAKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIGxh
c3RSZXNvcnRGYWxsYmFja0ZvbnQoZGVzY3JpcHRpb24pOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKaW5k
ZXggOWFiYTg5ZjIxMzcwNzJkNDNhOGY4OThhZGRkMThkYWQ2MjQ5MDM5NS4uODljNmNiZjMzODVl
ZGU4MTM5YTQ4MzQzZjM3ZGU2Nzk2M2NkM2Q5MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oCkBAIC0x
LDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmln
aHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzQs
NiArMzQsOCBAQAogCiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKK3N0cnVjdCBGb250Q3JlYXRpb25D
b250ZXh0OworCiBzdHJ1Y3QgU3ludGhlc2lzUGFpciB7CiAgICAgZXhwbGljaXQgU3ludGhlc2lz
UGFpcihib29sIG5lZWRzU3ludGhldGljQm9sZCwgYm9vbCBuZWVkc1N5bnRoZXRpY09ibGlxdWUp
CiAgICAgICAgIDogbmVlZHNTeW50aGV0aWNCb2xkKG5lZWRzU3ludGhldGljQm9sZCkKQEAgLTU5
LDcgKzYxLDcgQEAgc3RydWN0IFZhcmlhdGlvbkRlZmF1bHRzIHsKIAogdHlwZWRlZiBIYXNoTWFw
PEZvbnRUYWcsIFZhcmlhdGlvbkRlZmF1bHRzLCBGb3VyQ2hhcmFjdGVyVGFnSGFzaCwgRm91ckNo
YXJhY3RlclRhZ0hhc2hUcmFpdHM+IFZhcmlhdGlvbkRlZmF1bHRzTWFwOwogCi1SZXRhaW5QdHI8
Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiwgY29uc3QgRm9udERlc2Ny
aXB0aW9uJiwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgRm9u
dFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcywgYm9v
bCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zID0gdHJ1ZSk7CitSZXRhaW5QdHI8Q1RG
b250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiwgY29uc3QgRm9udERlc2NyaXB0
aW9uJiwgY29uc3QgRm9udENyZWF0aW9uQ29udGV4dCYsIGJvb2wgYXBwbHlXZWlnaHRXaWR0aFNs
b3BlVmFyaWF0aW9ucyA9IHRydWUpOwogZW51bSBjbGFzcyBTaG91bGRDb21wdXRlUGh5c2ljYWxU
cmFpdHMgOiBib29sIHsgTm8sIFllcyB9OwogU3ludGhlc2lzUGFpciBjb21wdXRlTmVjZXNzYXJ5
U3ludGhlc2lzKENURm9udFJlZiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiwgU2hvdWxkQ29tcHV0
ZVBoeXNpY2FsVHJhaXRzID0gU2hvdWxkQ29tcHV0ZVBoeXNpY2FsVHJhaXRzOjpObywgYm9vbCBp
c1BsYXRmb3JtRm9udCA9IGZhbHNlKTsKIFJldGFpblB0cjxDVEZvbnRSZWY+IHBsYXRmb3JtRm9u
dFdpdGhGYW1pbHkoY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVz
dCwgVGV4dFJlbmRlcmluZ01vZGUsIGZsb2F0IHNpemUpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3Jl
VGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RmFt
aWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmNwcAppbmRleCAyYmUzOWI3OTQzNTE1MWY0ZmE4NmZj
MzE0OTE0MThhMTJkMjk0OWQ5Li5hZGJjYzI0NDhmMWVlOWU1ODI4NGYzMmRhMzc2M2Y2MzA5ZWM3
Nzk1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250RmFtaWx5U3BlY2lmaWNhdGlvbkNvcmVUZXh0LmNw
cApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiBB
bGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDE3LTIwMjEgQXBwbGUgSW5j
LiBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4g
c291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9u
LCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBA
IC05Nyw3ICs5Nyw3IEBAIEZvbnRSYW5nZXMgRm9udEZhbWlseVNwZWNpZmljYXRpb25Db3JlVGV4
dDo6Zm9udFJhbmdlcyhjb25zdCBGb250RGVzY3JpcHRpb24mIGZvCiAKICAgICAgICAgYXV0byBm
b250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IobV9mb250RGVzY3Jp
cHRvci5nZXQoKSwgc2l6ZSwgbnVsbHB0cikpOwogCi0gICAgICAgIGZvbnQgPSBwcmVwYXJlUGxh
dGZvcm1Gb250KGZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbiwgbnVsbHB0ciwgeyB9KTsKKyAg
ICAgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0
aW9uLCB7IH0pOwogCiAgICAgICAgIGF1dG8gW3N5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlx
dWVdID0gY29tcHV0ZU5lY2Vzc2FyeVN5bnRoZXNpcyhmb250LmdldCgpLCBmb250RGVzY3JpcHRp
b24sIFNob3VsZENvbXB1dGVQaHlzaWNhbFRyYWl0czo6WWVzKS5ib2xkT2JsaXF1ZVBhaXIoKTsK
IApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUv
Rm9udENhY2hlRnJlZVR5cGUuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
ZnJlZXR5cGUvRm9udENhY2hlRnJlZVR5cGUuY3BwCmluZGV4IDIyNGZhN2FmYjljYzQ0MGI1YzUz
OWY1OTMwODRmY2MxMzJiM2UwYzguLjdjMDlkOWIyMDU3OGJkOWVkZWQ2ZDI5MDczZTFiYzc2YjE3
ZDk2YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2ZyZWV0
eXBlL0ZvbnRDYWNoZUZyZWVUeXBlLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9mcmVldHlwZS9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKQEAgLTQ5OCw3ICs0OTgsNyBA
QCBzdGF0aWMgaW5saW5lIGJvb2wgaXNDb21tb25seVVzZWRHZW5lcmljRmFtaWx5KGNvbnN0IFN0
cmluZyYgZmFtaWx5TmFtZVN0cmluZykKICAgICAgICAgfHwgZXF1YWxMZXR0ZXJzSWdub3JpbmdB
U0NJSUNhc2UoZmFtaWx5TmFtZVN0cmluZywgImN1cnNpdmUiKTsKIH0KIAotc3RkOjp1bmlxdWVf
cHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShj
b25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYg
ZmFtaWx5LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiBmb250RmFjZUZlYXR1cmVzLCBGb250
U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzKQorc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0
Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmluZyYgZmFtaWx5LCBjb25z
dCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRpb25Db250ZXh0KQogewogICAgIC8vIFRo
ZSBDU1MgZm9udCBtYXRjaGluZyBhbGdvcml0aG0gKGh0dHA6Ly93d3cudzMub3JnL1RSL2NzczMt
Zm9udHMvI2ZvbnQtbWF0Y2hpbmctYWxnb3JpdGhtKQogICAgIC8vIHNheXMgdGhhdCB3ZSBtdXN0
IGZpbmQgYW4gZXhhY3QgbWF0Y2ggZm9yIGZvbnQgZmFtaWx5LCBzbGFudCAoaXRhbGljIG9yIG9i
bGlxdWUgY2FuIGJlIHVzZWQpCkBAIC01NzMsOCArNTczLDggQEAgc3RkOjp1bmlxdWVfcHRyPEZv
bnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBG
b250RGUKICAgICBib29sIGZpeGVkV2lkdGgsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlx
dWU7CiAgICAgZ2V0Rm9udFByb3BlcnRpZXNGcm9tUGF0dGVybihyZXN1bHRQYXR0ZXJuLmdldCgp
LCBmb250RGVzY3JpcHRpb24sIGZpeGVkV2lkdGgsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09i
bGlxdWUpOwogCi0gICAgaWYgKGZvbnRGYWNlRmVhdHVyZXMpIHsKLSAgICAgICAgZm9yIChhdXRv
JiBmb250RmFjZUZlYXR1cmUgOiAqZm9udEZhY2VGZWF0dXJlcykgeworICAgIGlmICghZm9udENy
ZWF0aW9uQ29udGV4dC5mb250RmFjZUZlYXR1cmVzLmlzRW1wdHkoKSkgeworICAgICAgICBmb3Ig
KGF1dG8mIGZvbnRGYWNlRmVhdHVyZSA6IGZvbnRDcmVhdGlvbkNvbnRleHQuZm9udEZhY2VGZWF0
dXJlcykgewogICAgICAgICAgICAgaWYgKGZvbnRGYWNlRmVhdHVyZS5lbmFibGVkKCkpIHsKICAg
ICAgICAgICAgICAgICBjb25zdCBhdXRvJiB0YWcgPSBmb250RmFjZUZlYXR1cmUudGFnKCk7CiAg
ICAgICAgICAgICAgICAgY29uc3QgY2hhciBidWZmZXJbXSA9IHsgdGFnWzBdLCB0YWdbMV0sIHRh
Z1syXSwgdGFnWzNdLCAnXDAnIH07CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvZnJlZXR5cGUvRm9udEN1c3RvbVBsYXRm
b3JtRGF0YUZyZWVUeXBlLmNwcAppbmRleCA4MTYyMWE2ZWI2YzM5OTY2OGE2ODRkYzI0YTViMWRi
NDE2MmE3MzU3Li5iNjljNTU0OTJkNzg1OGNkZTJlMjlhNTdiMmEwMzQ2YmEyMjg0NTU2IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9mcmVldHlwZS9Gb250Q3Vz
dG9tUGxhdGZvcm1EYXRhRnJlZVR5cGUuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2ZyZWV0eXBlL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFGcmVlVHlwZS5jcHAKQEAg
LTI0LDYgKzI0LDcgQEAKIAogI2luY2x1ZGUgIkNhaXJvVXRpbGl0aWVzLmgiCiAjaW5jbHVkZSAi
Rm9udENhY2hlRnJlZVR5cGUuaCIKKyNpbmNsdWRlICJGb250Q3JlYXRpb25Db250ZXh0LmgiCiAj
aW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5o
IgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtNzMsMTQgKzc0LDE0IEBAIHN0YXRpYyBS
ZWZQdHI8RmNQYXR0ZXJuPiBkZWZhdWx0Rm9udGNvbmZpZ09wdGlvbnMoKQogICAgIHJldHVybiBh
ZG9wdFJlZihGY1BhdHRlcm5EdXBsaWNhdGUocGF0dGVybikpOwogfQogCi1Gb250UGxhdGZvcm1E
YXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERl
c2NyaXB0aW9uJiBkZXNjcmlwdGlvbiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9u
dEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0dXJlcywgRm9udFNlbGVjdGlvblNwZWNpZmll
ZENhcGFiaWxpdGllcykKK0ZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6
Zm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBib29s
IGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JiBmb250Q3JlYXRp
b25Db250ZXh0KQogewogICAgIGF1dG8qIGZyZWVUeXBlRmFjZSA9IHN0YXRpY19jYXN0PEZUX0Zh
Y2U+KGNhaXJvX2ZvbnRfZmFjZV9nZXRfdXNlcl9kYXRhKG1fZm9udEZhY2UuZ2V0KCksICZmcmVl
VHlwZUZhY2VLZXkpKTsKICAgICBBU1NFUlQoZnJlZVR5cGVGYWNlKTsKICAgICBSZWZQdHI8RmNQ
YXR0ZXJuPiBwYXR0ZXJuID0gZGVmYXVsdEZvbnRjb25maWdPcHRpb25zKCk7CiAgICAgRmNQYXR0
ZXJuQWRkU3RyaW5nKHBhdHRlcm4uZ2V0KCksIEZDX0ZBTUlMWSwgcmVpbnRlcnByZXRfY2FzdDxj
b25zdCBGY0NoYXI4Kj4oZnJlZVR5cGVGYWNlLT5mYW1pbHlfbmFtZSkpOwogCi0gICAgZm9yIChh
dXRvJiBmb250RmFjZUZlYXR1cmUgOiBmb250RmFjZUZlYXR1cmVzKSB7CisgICAgZm9yIChhdXRv
JiBmb250RmFjZUZlYXR1cmUgOiBmb250Q3JlYXRpb25Db250ZXh0LmZvbnRGYWNlRmVhdHVyZXMp
IHsKICAgICAgICAgaWYgKGZvbnRGYWNlRmVhdHVyZS5lbmFibGVkKCkpIHsKICAgICAgICAgICAg
IGNvbnN0IGF1dG8mIHRhZyA9IGZvbnRGYWNlRmVhdHVyZS50YWcoKTsKICAgICAgICAgICAgIGNv
bnN0IGNoYXIgYnVmZmVyW10gPSB7IHRhZ1swXSwgdGFnWzFdLCB0YWdbMl0sIHRhZ1szXSwgJ1ww
JyB9OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4IGYyNWRjMjFhMjY3ODg0NjBl
YzViYmViODY2ZWI2MGMzNGE3MGVkYWYuLmJkMTEzYmI2YzI3MzFmYTE5YWRkZWZkMzNhOTlkNDZi
YjRhMWY0YTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTEsNSArMSw1IEBA
CiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3LCAyMDA4LCAyMDEwIEFwcGxlIEluYy4gQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNy0yMDIxIEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBzb2Z0d2FyZTsg
eW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5kZXIgdGhlIHRl
cm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMjMsNiArMjMsNyBAQAog
CiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCiAjaW5jbHVkZSAiRm9udENhY2hlQ29yZVRleHQuaCIK
KyNpbmNsdWRlICJGb250Q3JlYXRpb25Db250ZXh0LmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0
aW9uLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1
ZmZlci5oIgpAQCAtMzUsNyArMzYsNyBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAKIEZvbnRDdXN0
b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCkgPSBkZWZhdWx0OwogCi1G
b250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEo
Y29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVyZXMsIEZvbnRT
ZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpCitGb250
UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBpdGFs
aWMsIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRleHQpCiB7CiAg
ICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtD
RlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBhZGRBdHRyaWJ1dGVzRm9yV2Vi
Rm9udHMoYXR0cmlidXRlcy5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzKCkpOwpAQCAtNDYsNyArNDcsNyBAQCBGb250UGxhdGZvcm1EYXRhIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9u
JgogICAgIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IGZvbnREZXNjcmlwdGlvbi5vcmll
bnRhdGlvbigpOwogICAgIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50ID0gZm9udERlc2Ny
aXB0aW9uLndpZHRoVmFyaWFudCgpOwogICAgIGF1dG8gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3Jl
YXRlV2l0aEZvbnREZXNjcmlwdG9yKG1vZGlmaWVkRm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUs
IG51bGxwdHIpKTsKLSAgICBmb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChmb250LmdldCgpLCBm
b250RGVzY3JpcHRpb24sICZmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZUNhcGFiaWxpdGllcyk7
CisgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0
aW9uLCBmb250Q3JlYXRpb25Db250ZXh0KTsKICAgICBBU1NFUlQoZm9udCk7CiAgICAgcmV0dXJu
IEZvbnRQbGF0Zm9ybURhdGEoZm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRh
dGlvbiwgd2lkdGhWYXJpYW50LCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwg
JmNyZWF0aW9uRGF0YSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAppbmRleCBmZmI5YTk3
NDQ0Y2EzNDlmY2ExN2EzMGM1MmQwYjgzZTQ4MzVkN2FmLi43YTZkMGExZTRiNzhiOWE3MGI4MjVj
ODMzOWM5ZjQ4ZTA5MDQzY2JhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKQEAgLTEsNSAr
MSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA3IEFwcGxlIEluYy4KKyAqIENvcHlyaWdo
dCAoQykgMjAwNy0yMDIxIEFwcGxlIEluYy4KICAqCiAgKiBUaGlzIGxpYnJhcnkgaXMgZnJlZSBz
b2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgKiBtb2RpZnkgaXQgdW5k
ZXIgdGhlIHRlcm1zIG9mIHRoZSBHTlUgTGlicmFyeSBHZW5lcmFsIFB1YmxpYwpAQCAtMzMsNiAr
MzMsNyBAQCB0eXBlZGVmIGNvbnN0IHN0cnVjdCBfX0NURm9udERlc2NyaXB0b3IqIENURm9udERl
c2NyaXB0b3JSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RydWN0IEZvbnRDcmVhdGlv
bkNvbnRleHQ7CiBjbGFzcyBGb250RGVzY3JpcHRpb247CiBzdHJ1Y3QgRm9udFNlbGVjdGlvblNw
ZWNpZmllZENhcGFiaWxpdGllczsKIGNsYXNzIFNoYXJlZEJ1ZmZlcjsKQEAgLTUxLDcgKzUyLDcg
QEAgcHVibGljOgogCiAgICAgV0VCQ09SRV9FWFBPUlQgfkZvbnRDdXN0b21QbGF0Zm9ybURhdGEo
KTsKIAotICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVz
Y3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRp
bmdzJiBmb250RmFjZUZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVz
IGZvbnRGYWNlQ2FwYWJpbGl0aWVzKTsKKyAgICBGb250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9y
bURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29u
c3QgRm9udENyZWF0aW9uQ29udGV4dCYpOwogCiAgICAgc3RhdGljIGJvb2wgc3VwcG9ydHNGb3Jt
YXQoY29uc3QgU3RyaW5nJik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL3dpbi9Gb250Q2FjaGVXaW4uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3Mvd2luL0ZvbnRDYWNoZVdpbi5jcHAKaW5kZXggNzUxNWYyNjRjYThjZTczOTU1YjJm
Mjk2MzhiODIzYmJiM2I5MzUwYy4uY2I0Y2RjMDU5YTc3YWNiZWRiZmJjMWUxMmIwMDUwZTZlODE1
MmFiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0Zv
bnRDYWNoZVdpbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2lu
L0ZvbnRDYWNoZVdpbi5jcHAKQEAgLTY0OSw3ICs2NDksNyBAQCBWZWN0b3I8Rm9udFNlbGVjdGlv
bkNhcGFiaWxpdGllcz4gRm9udENhY2hlOjpnZXRGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzSW5G
YW1pbAogICAgIHJldHVybiByZXN1bHQ7CiB9CiAKLXN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZv
cm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmIGZhbWlseSwgY29uc3Qg
Rm9udEZlYXR1cmVTZXR0aW5ncyosIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMp
CitzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250
UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25z
dCBBdG9tU3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmKQogewogICAg
IGJvb2wgaXNMdWNpZGFHcmFuZGUgPSBlcXVhbExldHRlcnNJZ25vcmluZ0FTQ0lJQ2FzZShmYW1p
bHksICJsdWNpZGEgZ3JhbmRlIik7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRl
eCA1NDRhZDUwODEwNTVhYWZiY2Y2MjViNmU2ODc0NTZiMTA4NDIxNDlkLi5jODY4M2E3ZWY1ODlj
M2ZlNjU0ZDg0NTcxMjk1ZTI0MGQyMjQ0OWU0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwCkBAIC0yMSw2ICsyMSw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAiRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogCisjaW5jbHVkZSAiRm9udENyZWF0aW9uQ29udGV4dC5o
IgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRNZW1vcnlSZXNv
dXJjZS5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKQEAgLTQ5LDcgKzUwLDcgQEAg
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YShjb25zdCBTdHJp
bmcmIG5hbWUsIEZvbnRQbGF0Zm9ybUQKIAogRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRD
dXN0b21QbGF0Zm9ybURhdGEoKSA9IGRlZmF1bHQ7CiAKLUZvbnRQbGF0Zm9ybURhdGEgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1
cmVTZXR0aW5ncyYsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpCitGb250UGxh
dGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMs
IGNvbnN0IEZvbnRDcmVhdGlvbkNvbnRleHQmKQogewogICAgIGludCBzaXplID0gZm9udERlc2Ny
aXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCk7CiAgICAgRm9udFJlbmRlcmluZ01vZGUgcmVuZGVy
aW5nTW9kZSA9IGZvbnREZXNjcmlwdGlvbi5yZW5kZXJpbmdNb2RlKCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuaAppbmRleCA0NGE1MjEzZGM4YjZjNzEzZWJkMTE4NjhkODhiNDNmNGY4MzRlYWZi
Li4yYjkyMWM0NjJkODdiMDI3MGFhMzBmMWNlMWI5N2JlMzk4NGRkMTg0IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3dpbi9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmgKQEAgLTM2LDYgKzM2LDcgQEAgdHlwZWRlZiBzdHJ1Y3QgQ0dGb250KiBD
R0ZvbnRSZWY7CiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RydWN0IEZvbnRDcmVhdGlvbkNv
bnRleHQ7CiBjbGFzcyBGb250RGVzY3JpcHRpb247CiBjbGFzcyBGb250TWVtb3J5UmVzb3VyY2U7
CiBjbGFzcyBTaGFyZWRCdWZmZXI7CkBAIC01Miw3ICs1Myw3IEBAIHB1YmxpYzoKICAgICBGb250
Q3VzdG9tUGxhdGZvcm1EYXRhKGNvbnN0IFN0cmluZyYgbmFtZSwgRm9udFBsYXRmb3JtRGF0YTo6
Q3JlYXRpb25EYXRhJiYpOwogICAgIH5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCk7CiAKLSAgICBG
b250UGxhdGZvcm1EYXRhIGZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwg
Ym9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYsIEZvbnRT
ZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMpOworICAgIEZvbnRQbGF0Zm9ybURhdGEgZm9u
dFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIGJvbGQsIGJvb2wgaXRh
bGljLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0Jik7CiAKICAgICBzdGF0aWMgYm9vbCBzdXBw
b3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3Mvd2luL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGFDYWlyby5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YUNhaXJvLmNwcAppbmRleCA4ZTIyMTRhMjY5ZTY3MjMwOGU0MTY5YjhjMDVjYzNmZWZlOTkzNzUz
Li4zYzFkNGUyZjNjNzU0YTczYTgyM2EwMGMxNjc0ZWMzMDQ0OTMxMTJkIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9udEN1c3RvbVBsYXRmb3JtRGF0
YUNhaXJvLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy93aW4vRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YUNhaXJvLmNwcApAQCAtMjEsNiArMjEsNyBAQAogI2luY2x1ZGUg
ImNvbmZpZy5oIgogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKIAorI2luY2x1
ZGUgIkZvbnRDcmVhdGlvbkNvbnRleHQuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIK
ICNpbmNsdWRlICJGb250TWVtb3J5UmVzb3VyY2UuaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1E
YXRhLmgiCkBAIC00MSw3ICs0Miw3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OkZvbnRDdXN0
b21QbGF0Zm9ybURhdGEoY29uc3QgU3RyaW5nJiBuYW1lLCBGb250UGxhdGZvcm1ECiAKIEZvbnRD
dXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCkgPSBkZWZhdWx0Owog
Ci1Gb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURh
dGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9v
bCBpdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmLCBGb250U2VsZWN0aW9uU3BlY2lm
aWVkQ2FwYWJpbGl0aWVzKQorRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRh
Ojpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9u
LCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250Q3JlYXRpb25Db250ZXh0JikKIHsK
ICAgICBpbnQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpOwogICAg
IEZvbnRSZW5kZXJpbmdNb2RlIHJlbmRlcmluZ01vZGUgPSBmb250RGVzY3JpcHRpb24ucmVuZGVy
aW5nTW9kZSgpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJGb250
TG9hZFJlcXVlc3QuY3BwIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJGb250TG9hZFJl
cXVlc3QuY3BwCmluZGV4IGYxNTdkMzA5N2RmNjk4N2E0YjYzNGI3ZmQ2MzMzOWU5MDlkODZlOWYu
LjA5MzQxZGI4MzU4MTFjNDk4MmE5NTcxOWI4MmRjNThmNDcwYjc1NWYgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3dvcmtlcnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckZvbnRMb2FkUmVxdWVzdC5jcHAKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDA2LCAyMDA3LCAyMDA4IEFwcGxlIEluYy4gQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwNi0yMDIxIEFwcGxlIEluYy4g
QWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUs
IEluYy4KICAqIENvcHlyaWdodCAoQykgMjAyMSBNZXRyb2xvZ2ljYWwgR3JvdXAgQi5WLgogICog
Q29weXJpZ2h0IChDKSAyMDIxIElnYWxpYSBTLkwuCkBAIC0yOSw2ICsyOSw3IEBACiAjaW5jbHVk
ZSAiV29ya2VyRm9udExvYWRSZXF1ZXN0LmgiCiAKICNpbmNsdWRlICJGb250LmgiCisjaW5jbHVk
ZSAiRm9udENyZWF0aW9uQ29udGV4dC5oIgogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuaCIKICNpbmNsdWRlICJGb250U2VsZWN0aW9uQWxnb3JpdGhtLmgiCiAjaW5jbHVkZSAiUmVz
b3VyY2VMb2FkZXJPcHRpb25zLmgiCkBAIC04OCwxMSArODksMTEgQEAgYm9vbCBXb3JrZXJGb250
TG9hZFJlcXVlc3Q6OmVuc3VyZUN1c3RvbUZvbnREYXRhKGNvbnN0IEF0b21TdHJpbmcmKQogICAg
IHJldHVybiBtX2ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuZ2V0KCk7CiB9CiAKLVJlZlB0cjxGb250
PiBXb3JrZXJGb250TG9hZFJlcXVlc3Q6OmNyZWF0ZUZvbnQoY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21TdHJpbmcmLCBib29sIHN5bnRoZXRpY0JvbGQs
IGJvb2wgc3ludGhldGljSXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFj
ZUZlYXR1cmVzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2Fw
YWJpbGl0aWVzKQorUmVmUHRyPEZvbnQ+IFdvcmtlckZvbnRMb2FkUmVxdWVzdDo6Y3JlYXRlRm9u
dChjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QgQXRvbVN0cmlu
ZyYsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRD
cmVhdGlvbkNvbnRleHQmIGZvbnRDcmVhdGlvbkNvbnRleHQpCiB7CiAgICAgQVNTRVJUKG1fZm9u
dEN1c3RvbVBsYXRmb3JtRGF0YSk7CiAgICAgQVNTRVJUKG1fY29udGV4dCk7Ci0gICAgcmV0dXJu
IEZvbnQ6OmNyZWF0ZShtX2ZvbnRDdXN0b21QbGF0Zm9ybURhdGEtPmZvbnRQbGF0Zm9ybURhdGEo
Zm9udERlc2NyaXB0aW9uLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNJdGFsaWMsIGZvbnRGYWNl
RmVhdHVyZXMsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKSwgRm9udDo6T3JpZ2luOjpSZW1vdGUsICZt
X2NvbnRleHQtPmZvbnRDYWNoZSgpKTsKKyAgICByZXR1cm4gRm9udDo6Y3JlYXRlKG1fZm9udEN1
c3RvbVBsYXRmb3JtRGF0YS0+Zm9udFBsYXRmb3JtRGF0YShmb250RGVzY3JpcHRpb24sIHN5bnRo
ZXRpY0JvbGQsIHN5bnRoZXRpY0l0YWxpYywgZm9udENyZWF0aW9uQ29udGV4dCksIEZvbnQ6Ok9y
aWdpbjo6UmVtb3RlLCAmbV9jb250ZXh0LT5mb250Q2FjaGUoKSk7CiB9CiAKIHZvaWQgV29ya2Vy
Rm9udExvYWRSZXF1ZXN0OjpzZXRDbGllbnQoRm9udExvYWRSZXF1ZXN0Q2xpZW50KiBjbGllbnQp
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS93b3JrZXJzL1dvcmtlckZvbnRMb2FkUmVxdWVz
dC5oIGIvU291cmNlL1dlYkNvcmUvd29ya2Vycy9Xb3JrZXJGb250TG9hZFJlcXVlc3QuaAppbmRl
eCBhZjY5MjA2MzAyZGMxYmFlZDU5OTA0NGU3Yjc2NWU3YmM1MDI4ZjkyLi42YTZjMDU4ZTIwZTNm
ZTk1Y2YzMTM2MTU3YzUwNjIxNDc4YjdiYjJjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS93
b3JrZXJzL1dvcmtlckZvbnRMb2FkUmVxdWVzdC5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3dvcmtl
cnMvV29ya2VyRm9udExvYWRSZXF1ZXN0LmgKQEAgLTEsNiArMSw3IEBACiAvKgogICogQ29weXJp
Z2h0IChDKSAyMDIxIE1ldHJvbG9naWNhbCBHcm91cCBCLlYuCiAgKiBDb3B5cmlnaHQgKEMpIDIw
MjEgSWdhbGlhIFMuTC4KKyAqIENvcHlyaWdodCAoQykgMjAyMSBBcHBsZSBJbmMuIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5k
IGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJt
aXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTMzLDYgKzM0
LDcgQEAKIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCitzdHJ1Y3QgRm9udENyZWF0aW9uQ29udGV4
dDsKIGNsYXNzIFNjcmlwdEV4ZWN1dGlvbkNvbnRleHQ7CiBjbGFzcyBTaGFyZWRCdWZmZXI7CiBj
bGFzcyBXb3JrZXJHbG9iYWxTY29wZTsKQEAgLTU0LDcgKzU2LDcgQEAgcHJpdmF0ZToKICAgICBi
b29sIGVycm9yT2NjdXJyZWQoKSBjb25zdCBmaW5hbCB7IHJldHVybiBtX2Vycm9yT2NjdXJyZWQ7
IH0KIAogICAgIGJvb2wgZW5zdXJlQ3VzdG9tRm9udERhdGEoY29uc3QgQXRvbVN0cmluZyYgcmVt
b3RlVVJJKSBmaW5hbDsKLSAgICBSZWZQdHI8Rm9udD4gY3JlYXRlRm9udChjb25zdCBGb250RGVz
Y3JpcHRpb24mLCBjb25zdCBBdG9tU3RyaW5nJiByZW1vdGVVUkksIGJvb2wgc3ludGhldGljQm9s
ZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmLCBGb250
U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzKSBmaW5hbDsKKyAgICBSZWZQdHI8Rm9udD4g
Y3JlYXRlRm9udChjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9tU3RyaW5nJiByZW1v
dGVVUkksIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNJdGFsaWMsIGNvbnN0IEZv
bnRDcmVhdGlvbkNvbnRleHQmKSBmaW5hbDsKIAogICAgIHZvaWQgc2V0Q2xpZW50KEZvbnRMb2Fk
UmVxdWVzdENsaWVudCopIGZpbmFsOwogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>