<?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>190517</bug_id>
          
          <creation_ts>2018-10-12 05:21:07 -0700</creation_ts>
          <short_desc>[PSON] Prewarm system fallback fonts</short_desc>
          <delta_ts>2018-10-15 09:03:44 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Text</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Antti Koivisto">koivisto</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>achristensen</cc>
    
    <cc>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>mmaxfield</cc>
    
    <cc>rniwa</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1468409</commentid>
    <comment_count>0</comment_count>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-12 05:21:07 -0700</bug_when>
    <thetext>Looking for system fallbacks is expensive. We can prewarm them for processes that are likely need them.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468411</commentid>
    <comment_count>1</comment_count>
      <attachid>352159</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-12 05:32:01 -0700</bug_when>
    <thetext>Created attachment 352159
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468425</commentid>
    <comment_count>2</comment_count>
      <attachid>352165</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-12 06:42:14 -0700</bug_when>
    <thetext>Created attachment 352165
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1468467</commentid>
    <comment_count>3</comment_count>
      <attachid>352165</attachid>
    <who name="Ryosuke Niwa">rniwa</who>
    <bug_when>2018-10-12 10:09:22 -0700</bug_when>
    <thetext>Comment on attachment 352165
patch

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

&gt; Source/WebCore/page/ProcessWarming.cpp:93
&gt; +    prewarmInformation.fontCache = FontCache::singleton().collectPrewarmInformation();
&gt; +    return prewarmInformation;

Can&apos;t we just do this?:
return { FontCache::singleton().collectPrewarmInformation() };

&gt; Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:1538
&gt; +    if (prewarmInformation.seenFamilies.isEmpty() &amp;&amp; prewarmInformation.fontNamesRequiringSystemFallback.isEmpty())

Maybe we can add PrewarmInformation::isEmpty?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469164</commentid>
    <comment_count>4</comment_count>
      <attachid>352308</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-15 04:46:55 -0700</bug_when>
    <thetext>Created attachment 352308
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469168</commentid>
    <comment_count>5</comment_count>
      <attachid>352310</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-15 04:53:29 -0700</bug_when>
    <thetext>Created attachment 352310
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469230</commentid>
    <comment_count>6</comment_count>
      <attachid>352323</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2018-10-15 08:25:29 -0700</bug_when>
    <thetext>Created attachment 352323
patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469260</commentid>
    <comment_count>7</comment_count>
      <attachid>352323</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-15 09:02:45 -0700</bug_when>
    <thetext>Comment on attachment 352323
patch

Clearing flags on attachment: 352323

Committed r237116: &lt;https://trac.webkit.org/changeset/237116&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469261</commentid>
    <comment_count>8</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2018-10-15 09:02:46 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1469262</commentid>
    <comment_count>9</comment_count>
    <who name="Radar WebKit Bug Importer">webkit-bug-importer</who>
    <bug_when>2018-10-15 09:03:44 -0700</bug_when>
    <thetext>&lt;rdar://problem/45272576&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352159</attachid>
            <date>2018-10-12 05:32:01 -0700</date>
            <delta_ts>2018-10-12 06:42:14 -0700</delta_ts>
            <desc>patch</desc>
            <filename>prewarm-font-fallback-5.patch</filename>
            <type>text/plain</type>
            <size>11089</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzA2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTEwLTEyICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbUFNPTl0gUHJld2FybSBzeXN0
ZW0gZmFsbGJhY2sgZm9udHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MDUxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgc2VlbXMgdG8gYmUgfjIlIHByb2dyZXNzaW9uIGluIFBTT04gUExUNCB3
aXRoIGxhcmdlICg0MG1zKykgaW1wcm92ZW1lbnRzIG9uIHNvbWUgcGFnZXMKKyAgICAgICAgYWZ0
ZXIgcHJvY2VzcyBzd2Fwcy4KKworICAgICAgICAqIHBhZ2UvUHJld2FybUluZm9ybWF0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpQcmV3YXJtSW5mb3JtYXRpb246OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcmV3YXJtSW5mb3JtYXRpb246OmRlY29kZSk6CisgICAgICAgICog
cGFnZS9Qcm9jZXNzV2FybWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzV2FybWlu
Zzo6Y29sbGVjdFByZXdhcm1JbmZvcm1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNz
V2FybWluZzo6cHJld2FybVdpdGhJbmZvcm1hdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Y29sbGVj
dFByZXdhcm1JbmZvcm1hdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6
OnByZXdhcm0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb246Omlzb2xhdGVkQ29w
eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OlByZXdhcm1JbmZvcm1hdGlv
bjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6UHJld2FybUlu
Zm9ybWF0aW9uOjpkZWNvZGUpOgorCisgICAgICAgIE1ha2UgZm9udCBjYWNoZSBwcmV3YXJtIGlu
Zm9ybWF0aW9uIGEgc3RydWN0IHdpdGggZW5jb2RlL2RlY29kZSBzdXBwb3J0IGFuZCBtb3ZlIGl0
IGludG8gRm9udENhY2hlIHNjb3BlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udENhY2hlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGFiYXNl
Ojpjb2xsZWN0aW9uRm9yRmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lz
dGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKToKKworICAgICAgICBDb2xsZWN0IHRoZSBuYW1lcyBv
ZiBmb250cyB0aGF0IGVuZCB1cCBuZWVkaW5nIGNoYXJhY3RlciBzcGVjaWZpYyBzeXN0ZW0gZmFs
bGJhY2tzLgorCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmNvbGxlY3RQcmV3YXJtSW5m
b3JtYXRpb24gY29uc3QpOgorCisgICAgICAgIEluY2x1ZGUgdGhlbSBpbnRvIHByZXdhcm0gaW5m
b3JtYXRpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6cHJld2FybSk6CisKKyAg
ICAgICAgSW52b2tpbmcgQ1RGb250Q3JlYXRlRm9yQ2hhcmFjdGVyc1dpdGhMYW5ndWFnZSBmb3Ig
dGhlIGNvcnJlY3QgbmFtZWQgZm9udCBzZWVtcyBzdWZmaWNpZW50IHRvIGZ1bGx5CisgICAgICAg
IHByZXdhcm0gaXQgZm9yIGZhbGxiYWNrcyAoaW5kZXBlbmRlbnQgb2Ygc2l6ZSwgbG9jYWxlIG9y
IG90aGVyIGNoYXJhY3RlcmlzdGljcykuCisgICAgICAgIEFueSBmdXR1cmUgY2FsbHMgdG8gc3lz
dGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzIGFyZSBmYXN0LgorCiAyMDE4LTEwLTExICBEb24gT2xt
c3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgQWRkIEhvdWRpbmkgc3Bl
Y3MgdG8gZmVhdHVyZXMuanNvbgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QcmV3YXJtSW5m
b3JtYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1ByZXdhcm1JbmZv
cm1hdGlvbi5oCShyZXZpc2lvbiAyMzcwNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1ByZXdh
cm1JbmZvcm1hdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBXRUJDT1JFX0VYUE9SVCBQcmV3YXJtSW5mb3JtYXRpb24g
ewotICAgIEZvbnRQcmV3YXJtSW5mb3JtYXRpb24gZm9udDsKKyAgICBGb250Q2FjaGU6OlByZXdh
cm1JbmZvcm1hdGlvbiBmb250Q2FjaGU7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UHJld2FybUluZm9ybWF0aW9uPiBkZWNvZGUoRGVjb2RlciYp
OwpAQCAtNDEsMTcgKzQxLDE4IEBAIHN0cnVjdCBXRUJDT1JFX0VYUE9SVCBQcmV3YXJtSW5mb3Jt
YXRpb24KIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFByZXdhcm1JbmZvcm1hdGlvbjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBmb250Owor
ICAgIGVuY29kZXIgPDwgZm9udENhY2hlOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgog
c3RkOjpvcHRpb25hbDxQcmV3YXJtSW5mb3JtYXRpb24+IFByZXdhcm1JbmZvcm1hdGlvbjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgUHJld2FybUluZm9ybWF0aW9uIHByZXdhcm1J
bmZvOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJld2FybUluZm8uZm9udCkpCisgICAgc3Rk
OjpvcHRpb25hbDxGb250Q2FjaGU6OlByZXdhcm1JbmZvcm1hdGlvbj4gZm9udENhY2hlUHJld2Fy
bUluZm9ybWF0aW9uOworICAgIGRlY29kZXIgPj4gZm9udENhY2hlUHJld2FybUluZm9ybWF0aW9u
OworICAgIGlmICghZm9udENhY2hlUHJld2FybUluZm9ybWF0aW9uKQogICAgICAgICByZXR1cm4g
eyB9OwogCi0gICAgcmV0dXJuIHByZXdhcm1JbmZvOworICAgIHJldHVybiBQcmV3YXJtSW5mb3Jt
YXRpb24geyBXVEZNb3ZlKCpmb250Q2FjaGVQcmV3YXJtSW5mb3JtYXRpb24pIH07CiB9CiAKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUHJvY2Vzc1dhcm1pbmcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUHJvY2Vzc1dhcm1pbmcuY3BwCShyZXZpc2lvbiAyMzcw
NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Byb2Nlc3NXYXJtaW5nLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODgsMTQgKzg4LDE0IEBAIHZvaWQgUHJvY2Vzc1dhcm1pbmc6OnByZXdhcm1HbG9i
YWxseSgpCiAKIFdlYkNvcmU6OlByZXdhcm1JbmZvcm1hdGlvbiBQcm9jZXNzV2FybWluZzo6Y29s
bGVjdFByZXdhcm1JbmZvcm1hdGlvbigpCiB7Ci0gICAgUHJld2FybUluZm9ybWF0aW9uIGluZm87
Ci0gICAgaW5mby5mb250ID0gRm9udENhY2hlOjpzaW5nbGV0b24oKS5jb2xsZWN0UHJld2FybUlu
Zm9ybWF0aW9uKCk7Ci0gICAgcmV0dXJuIGluZm87CisgICAgUHJld2FybUluZm9ybWF0aW9uIHBy
ZXdhcm1JbmZvcm1hdGlvbjsKKyAgICBwcmV3YXJtSW5mb3JtYXRpb24uZm9udENhY2hlID0gRm9u
dENhY2hlOjpzaW5nbGV0b24oKS5jb2xsZWN0UHJld2FybUluZm9ybWF0aW9uKCk7CisgICAgcmV0
dXJuIHByZXdhcm1JbmZvcm1hdGlvbjsKIH0KIAogdm9pZCBQcm9jZXNzV2FybWluZzo6cHJld2Fy
bVdpdGhJbmZvcm1hdGlvbihjb25zdCBQcmV3YXJtSW5mb3JtYXRpb24mIHByZXdhcm1JbmZvKQog
ewotICAgIEZvbnRDYWNoZTo6c2luZ2xldG9uKCkucHJld2FybShwcmV3YXJtSW5mby5mb250KTsK
KyAgICBGb250Q2FjaGU6OnNpbmdsZXRvbigpLnByZXdhcm0ocHJld2FybUluZm8uZm9udENhY2hl
KTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250Q2FjaGUuY3BwCShyZXZpc2lvbiAyMzcwNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODMsMTIgKzQ4Mywx
MiBAQCB2b2lkIEZvbnRDYWNoZTo6aW52YWxpZGF0ZSgpCiAKICNpZiAhUExBVEZPUk0oQ09DT0Ep
CiAKLUZvbnRQcmV3YXJtSW5mb3JtYXRpb24gRm9udENhY2hlOjpjb2xsZWN0UHJld2FybUluZm9y
bWF0aW9uKCkgY29uc3QKK0ZvbnRDYWNoZTo6UHJld2FybUluZm9ybWF0aW9uIEZvbnRDYWNoZTo6
Y29sbGVjdFByZXdhcm1JbmZvcm1hdGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHsgfTsKIH0K
IAotdm9pZCBGb250Q2FjaGU6OnByZXdhcm0oY29uc3QgRm9udFByZXdhcm1JbmZvcm1hdGlvbiYp
Cit2b2lkIEZvbnRDYWNoZTo6cHJld2FybShjb25zdCBQcmV3YXJtSW5mb3JtYXRpb24mKQogewog
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
aAkocmV2aXNpb24gMjM3MDY1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDggKzY5LDYgQEAgdHlwZWRlZiBJTUxh
bmdGb250TGluayBJTUxhbmdGb250TGlua1R5cAogI2VuZGlmCiAjZW5kaWYKIAotdXNpbmcgRm9u
dFByZXdhcm1JbmZvcm1hdGlvbiA9IFZlY3RvcjxTdHJpbmc+OwotCiAvLyBUaGlzIGtleSBjb250
YWlucyB0aGUgRm9udERlc2NyaXB0aW9uIGZpZWxkcyBvdGhlciB0aGFuIGZhbWlseSB0aGF0IG1h
dHRlciB3aGVuIGZldGNoaW5nIEZvbnREYXRhcyAocGxhdGZvcm0gZm9udHMpLgogc3RydWN0IEZv
bnREZXNjcmlwdGlvbktleSB7CiAgICAgRm9udERlc2NyaXB0aW9uS2V5KCkgPSBkZWZhdWx0OwpA
QCAtMjM5LDggKzIzNywxNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRNb2NrQm9sZFN5c3Rl
bUZvbnRGb3JBY2Nlc3NpYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRNb2NrQm9sZFN5
c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5OyB9CiAgICAgdm9pZCBzZXRTaG91bGRNb2NrQm9sZFN5
c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5KGJvb2wgc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9y
QWNjZXNzaWJpbGl0eSkgeyBtX3Nob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxp
dHkgPSBzaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5OyB9CiAKLSAgICBG
b250UHJld2FybUluZm9ybWF0aW9uIGNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24oKSBjb25zdDsK
LSAgICB2b2lkIHByZXdhcm0oY29uc3QgRm9udFByZXdhcm1JbmZvcm1hdGlvbiYpOworICAgIHN0
cnVjdCBQcmV3YXJtSW5mb3JtYXRpb24geworICAgICAgICBWZWN0b3I8U3RyaW5nPiBzZWVuRmFt
aWxpZXM7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGZvbnROYW1lc1JlcXVpcmluZ1N5c3RlbUZh
bGxiYWNrOworCisgICAgICAgIFByZXdhcm1JbmZvcm1hdGlvbiBpc29sYXRlZENvcHkoKSBjb25z
dDsKKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFByZXdhcm1JbmZvcm1hdGlvbj4gZGVjb2RlKERlY29kZXImKTsKKyAgICB9OworICAg
IFByZXdhcm1JbmZvcm1hdGlvbiBjb2xsZWN0UHJld2FybUluZm9ybWF0aW9uKCkgY29uc3Q7Cisg
ICAgdm9pZCBwcmV3YXJtKGNvbnN0IFByZXdhcm1JbmZvcm1hdGlvbiYpOwogCiBwcml2YXRlOgog
ICAgIEZvbnRDYWNoZSgpOwpAQCAtMjY2LDYgKzI3Myw3IEBAIHByaXZhdGU6CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBMaXN0SGFzaFNldDxTdHJpbmc+IG1fc2VlbkZhbWlsaWVzRm9yUHJl
d2FybWluZzsKKyAgICBMaXN0SGFzaFNldDxTdHJpbmc+IG1fZm9udE5hbWVzUmVxdWlyaW5nU3lz
dGVtRmFsbGJhY2tGb3JQcmV3YXJtaW5nOwogICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fcHJld2Fy
bVF1ZXVlOwogCiAgICAgZnJpZW5kIGNsYXNzIENvbXBsZXhUZXh0Q29udHJvbGxlcjsKQEAgLTI4
Niw0ICsyOTQsMzIgQEAgaW5saW5lIHZvaWQgRm9udENhY2hlOjpwbGF0Zm9ybVB1cmdlSW5hYwog
CiAjZW5kaWYKIAorCitpbmxpbmUgRm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb24gRm9udENh
Y2hlOjpQcmV3YXJtSW5mb3JtYXRpb246Omlzb2xhdGVkQ29weSgpIGNvbnN0Cit7CisgICAgUHJl
d2FybUluZm9ybWF0aW9uIGNvcHk7CisgICAgY29weS5zZWVuRmFtaWxpZXMgPSBzZWVuRmFtaWxp
ZXMuaXNvbGF0ZWRDb3B5KCk7CisgICAgY29weS5mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxs
YmFjayA9IGZvbnROYW1lc1JlcXVpcmluZ1N5c3RlbUZhbGxiYWNrLmlzb2xhdGVkQ29weSgpOwor
ICAgIHJldHVybiBjb3B5OworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGb250
Q2FjaGU6OlByZXdhcm1JbmZvcm1hdGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2RlciA8PCBzZWVuRmFtaWxpZXM7CisgICAgZW5jb2RlciA8PCBmb250TmFt
ZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFjazsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K3N0ZDo6b3B0aW9uYWw8Rm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb24+IEZvbnRDYWNoZTo6
UHJld2FybUluZm9ybWF0aW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBQcmV3
YXJtSW5mb3JtYXRpb24gcHJld2FybUluZm9ybWF0aW9uOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocHJld2FybUluZm9ybWF0aW9uLnNlZW5GYW1pbGllcykpCisgICAgICAgIHJldHVybiB7IH07
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcmV3YXJtSW5mb3JtYXRpb24uZm9udE5hbWVzUmVx
dWlyaW5nU3lzdGVtRmFsbGJhY2spKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJu
IHByZXdhcm1JbmZvcm1hdGlvbjsKK30KKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cAkocmV2aXNpb24gMjM3MDY1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MTYsNyArOTE2
LDcgQEAgcHVibGljOgogICAgICAgICB9KCk7CiAKICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExv
Y2s+IGxvY2tlcihtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9yc0xvY2spOwotICAgICAgICBy
ZXR1cm4gbV9mYW1pbHlOYW1lVG9Gb250RGVzY3JpcHRvcnMuYWRkKGZvbGRlZC5pc29sYXRlZENv
cHkoKSwgaW5zdGFsbGVkRm9udEZhbWlseSkuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICByZXR1
cm4gbV9mYW1pbHlOYW1lVG9Gb250RGVzY3JpcHRvcnMuYWRkKGZvbGRlZC5pc29sYXRlZENvcHko
KSwgV1RGTW92ZShpbnN0YWxsZWRGb250RmFtaWx5KSkuaXRlcmF0b3ItPnZhbHVlOwogICAgIH0K
IAogICAgIGNvbnN0IEluc3RhbGxlZEZvbnQmIGZvbnRGb3JQb3N0U2NyaXB0TmFtZShjb25zdCBB
dG9taWNTdHJpbmcmIHBvc3RTY3JpcHROYW1lKQpAQCAtMTM2Niw4ICsxMzY2LDEzIEBAIFJlZlB0
cjxGb250PiBGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm8KICNlbmRpZgogCiAgICAgY29uc3Qg
Rm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhID0gb3JpZ2luYWxGb250RGF0YS0+cGxhdGZv
cm1EYXRhKCk7CisKKyAgICBhdXRvIGZ1bGxOYW1lID0gYWRvcHRDRihDVEZvbnRDb3B5RnVsbE5h
bWUocGxhdGZvcm1EYXRhLmZvbnQoKSkpOworICAgIG1fZm9udE5hbWVzUmVxdWlyaW5nU3lzdGVt
RmFsbGJhY2tGb3JQcmV3YXJtaW5nLmFkZChTdHJpbmcoZnVsbE5hbWUuZ2V0KCkpKTsKKwogICAg
IGF1dG8gcmVzdWx0ID0gbG9va3VwRmFsbGJhY2tGb250KHBsYXRmb3JtRGF0YS5mb250KCksIGRl
c2NyaXB0aW9uLndlaWdodCgpLCBkZXNjcmlwdGlvbi5sb2NhbGUoKSwgY2hhcmFjdGVycywgbGVu
Z3RoKTsKICAgICByZXN1bHQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KHJlc3VsdC5nZXQoKSwgZGVz
Y3JpcHRpb24sIG51bGxwdHIsIG51bGxwdHIsIHsgfSwgZGVzY3JpcHRpb24uY29tcHV0ZWRTaXpl
KCkpOworCiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBsYXN0UmVzb3J0RmFsbGJh
Y2tGb250KGRlc2NyaXB0aW9uKTsKIApAQCAtMTUxOSwxOCArMTUyNCwxNyBAQCBSZWY8Rm9udD4g
Rm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJhY2tGCiAgICAgcmV0dXJuIGZvbnRGb3JQbGF0Zm9y
bURhdGEocGxhdGZvcm1EYXRhKTsKIH0KIAotRm9udFByZXdhcm1JbmZvcm1hdGlvbiBGb250Q2Fj
aGU6OmNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24oKSBjb25zdAorRm9udENhY2hlOjpQcmV3YXJt
SW5mb3JtYXRpb24gRm9udENhY2hlOjpjb2xsZWN0UHJld2FybUluZm9ybWF0aW9uKCkgY29uc3QK
IHsKLSAgICBGb250UHJld2FybUluZm9ybWF0aW9uIGZvbnRQcmV3YXJtSW5mb3JtYXRpb247Ci0g
ICAgZm9udFByZXdhcm1JbmZvcm1hdGlvbiA9IGNvcHlUb1ZlY3RvcihtX3NlZW5GYW1pbGllc0Zv
clByZXdhcm1pbmcpOwotICAgIHJldHVybiBmb250UHJld2FybUluZm9ybWF0aW9uOworICAgIFBy
ZXdhcm1JbmZvcm1hdGlvbiBwcmV3YXJtSW5mb3JtYXRpb247CisgICAgcHJld2FybUluZm9ybWF0
aW9uLnNlZW5GYW1pbGllcyA9IGNvcHlUb1ZlY3RvcihtX3NlZW5GYW1pbGllc0ZvclByZXdhcm1p
bmcpOworICAgIHByZXdhcm1JbmZvcm1hdGlvbi5mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxs
YmFjayA9IGNvcHlUb1ZlY3RvcihtX2ZvbnROYW1lc1JlcXVpcmluZ1N5c3RlbUZhbGxiYWNrRm9y
UHJld2FybWluZyk7CisgICAgcmV0dXJuIHByZXdhcm1JbmZvcm1hdGlvbjsKIH0KIAotdm9pZCBG
b250Q2FjaGU6OnByZXdhcm0oY29uc3QgRm9udFByZXdhcm1JbmZvcm1hdGlvbiYgZm9udFByZXdh
cm1JbmZvcm1hdGlvbikKK3ZvaWQgRm9udENhY2hlOjpwcmV3YXJtKGNvbnN0IFByZXdhcm1JbmZv
cm1hdGlvbiYgcHJld2FybUluZm9ybWF0aW9uKQogewotICAgIGF1dG8mIGZhbWlsaWVzID0gZm9u
dFByZXdhcm1JbmZvcm1hdGlvbjsKLQotICAgIGlmIChmYW1pbGllcy5pc0VtcHR5KCkpCisgICAg
aWYgKHByZXdhcm1JbmZvcm1hdGlvbi5zZWVuRmFtaWxpZXMuaXNFbXB0eSgpICYmIHByZXdhcm1J
bmZvcm1hdGlvbi5mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFjay5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybjsKIAogICAgIGlmICghbV9wcmV3YXJtUXVldWUpCkBAIC0xNTM4LDkgKzE1
NDIsMTggQEAgdm9pZCBGb250Q2FjaGU6OnByZXdhcm0oY29uc3QgRm9udFByZXdhcgogCiAgICAg
YXV0byYgZGF0YWJhc2UgPSBGb250RGF0YWJhc2U6OnNpbmdsZXRvbkRpc2FsbG93aW5nVXNlcklu
c3RhbGxlZEZvbnRzKCk7CiAKLSAgICBtX3ByZXdhcm1RdWV1ZS0+ZGlzcGF0Y2goWyZkYXRhYmFz
ZSwgZmFtaWxpZXMgPSBmYW1pbGllcy5pc29sYXRlZENvcHkoKV0gewotICAgICAgICBmb3IgKGF1
dG8mIGZhbWlseSA6IGZhbWlsaWVzKQorICAgIG1fcHJld2FybVF1ZXVlLT5kaXNwYXRjaChbJmRh
dGFiYXNlLCBwcmV3YXJtSW5mb3JtYXRpb24gPSBwcmV3YXJtSW5mb3JtYXRpb24uaXNvbGF0ZWRD
b3B5KCldIHsKKyAgICAgICAgZm9yIChhdXRvJiBmYW1pbHkgOiBwcmV3YXJtSW5mb3JtYXRpb24u
c2VlbkZhbWlsaWVzKQogICAgICAgICAgICAgZGF0YWJhc2UuY29sbGVjdGlvbkZvckZhbWlseShm
YW1pbHkpOworCisgICAgICAgIGZvciAoYXV0byYgZm9udE5hbWUgOiBwcmV3YXJtSW5mb3JtYXRp
b24uZm9udE5hbWVzUmVxdWlyaW5nU3lzdGVtRmFsbGJhY2spIHsKKyAgICAgICAgICAgIGF1dG8g
Y2ZGb250TmFtZSA9IGZvbnROYW1lLmNyZWF0ZUNGU3RyaW5nKCk7CisgICAgICAgICAgICBhdXRv
IHdhcm1pbmdGb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoTmFtZShjZkZvbnROYW1lLmdl
dCgpLCAwLCBudWxscHRyKSk7CisgICAgICAgICAgICBDRkluZGV4IGNvdmVyZWRMZW5ndGggPSAw
OworICAgICAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gJyAnOworICAgICAgICAgICAgLy8gVGhp
cyBpcyBzdWZmaWNpZW50IHRvIHdhcm0gQ29yZVRleHQgY2FjaGVzIGZvciBsYW5ndWFnZSBhbmQg
Y2hhcmFjdGVyIHNwZWNpZmljIGZhbGxiYWNrcy4KKyAgICAgICAgICAgIGF1dG8gZmFsbGJhY2tX
YXJtaW5nRm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlRm9yQ2hhcmFjdGVyc1dpdGhMYW5ndWFn
ZSh3YXJtaW5nRm9udC5nZXQoKSwgJmNoYXJhY3RlciwgMSwgbnVsbHB0ciwgJmNvdmVyZWRMZW5n
dGgpKTsKKyAgICAgICAgfQogICAgIH0pOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352165</attachid>
            <date>2018-10-12 06:42:14 -0700</date>
            <delta_ts>2018-10-15 04:46:55 -0700</delta_ts>
            <desc>patch</desc>
            <filename>prewarm-font-fallback-6.patch</filename>
            <type>text/plain</type>
            <size>11160</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzA2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTEwLTEyICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbUFNPTl0gUHJld2FybSBzeXN0
ZW0gZmFsbGJhY2sgZm9udHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MDUxNworCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgor
CisgICAgICAgIFRoaXMgc2VlbXMgdG8gYmUgfjIlIHByb2dyZXNzaW9uIGluIFBTT04gUExUNCB3
aXRoIGxhcmdlICg0MG1zKykgaW1wcm92ZW1lbnRzIG9uIHNvbWUgcGFnZXMKKyAgICAgICAgYWZ0
ZXIgcHJvY2VzcyBzd2Fwcy4KKworICAgICAgICAqIHBhZ2UvUHJld2FybUluZm9ybWF0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpQcmV3YXJtSW5mb3JtYXRpb246OmVuY29kZSBjb25zdCk6Cisg
ICAgICAgIChXZWJDb3JlOjpQcmV3YXJtSW5mb3JtYXRpb246OmRlY29kZSk6CisgICAgICAgICog
cGFnZS9Qcm9jZXNzV2FybWluZy5jcHA6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNzV2FybWlu
Zzo6Y29sbGVjdFByZXdhcm1JbmZvcm1hdGlvbik6CisgICAgICAgIChXZWJDb3JlOjpQcm9jZXNz
V2FybWluZzo6cHJld2FybVdpdGhJbmZvcm1hdGlvbik6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Y29sbGVj
dFByZXdhcm1JbmZvcm1hdGlvbiBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6
OnByZXdhcm0pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oOgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb246Omlzb2xhdGVkQ29w
eSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OlByZXdhcm1JbmZvcm1hdGlv
bjo6ZW5jb2RlIGNvbnN0KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6UHJld2FybUlu
Zm9ybWF0aW9uOjpkZWNvZGUpOgorCisgICAgICAgIE1ha2UgZm9udCBjYWNoZSBwcmV3YXJtIGlu
Zm9ybWF0aW9uIGEgc3RydWN0IHdpdGggZW5jb2RlL2RlY29kZSBzdXBwb3J0IGFuZCBtb3ZlIGl0
IGludG8gRm9udENhY2hlIHNjb3BlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udENhY2hlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGFiYXNl
Ojpjb2xsZWN0aW9uRm9yRmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6c3lz
dGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzKToKKworICAgICAgICBDb2xsZWN0IHRoZSBuYW1lcyBv
ZiBmb250cyB0aGF0IGVuZCB1cCBuZWVkaW5nIGNoYXJhY3RlciBzcGVjaWZpYyBzeXN0ZW0gZmFs
bGJhY2tzLgorCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmNvbGxlY3RQcmV3YXJtSW5m
b3JtYXRpb24gY29uc3QpOgorCisgICAgICAgIEluY2x1ZGUgdGhlbSBpbnRvIHByZXdhcm0gaW5m
b3JtYXRpb24uCisKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6cHJld2FybSk6CisKKyAg
ICAgICAgSW52b2tpbmcgQ1RGb250Q3JlYXRlRm9yQ2hhcmFjdGVyc1dpdGhMYW5ndWFnZSBmb3Ig
dGhlIGNvcnJlY3QgbmFtZWQgZm9udCBzZWVtcyBzdWZmaWNpZW50IHRvIGZ1bGx5CisgICAgICAg
IHByZXdhcm0gaXQgZm9yIGZhbGxiYWNrcyAoaW5kZXBlbmRlbnQgb2Ygc2l6ZSwgbG9jYWxlIG9y
IG90aGVyIGNoYXJhY3RlcmlzdGljcykuCisgICAgICAgIEFueSBmdXR1cmUgY2FsbHMgdG8gc3lz
dGVtRmFsbGJhY2tGb3JDaGFyYWN0ZXJzIGFyZSBmYXN0LgorCiAyMDE4LTEwLTExICBEb24gT2xt
c3RlYWQgIDxkb24ub2xtc3RlYWRAc29ueS5jb20+CiAKICAgICAgICAgQWRkIEhvdWRpbmkgc3Bl
Y3MgdG8gZmVhdHVyZXMuanNvbgpJbmRleDogU291cmNlL1dlYkNvcmUvcGFnZS9QcmV3YXJtSW5m
b3JtYXRpb24uaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wYWdlL1ByZXdhcm1JbmZv
cm1hdGlvbi5oCShyZXZpc2lvbiAyMzcwNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1ByZXdh
cm1JbmZvcm1hdGlvbi5oCSh3b3JraW5nIGNvcHkpCkBAIC0zMiw3ICszMiw3IEBACiBuYW1lc3Bh
Y2UgV2ViQ29yZSB7CiAKIHN0cnVjdCBXRUJDT1JFX0VYUE9SVCBQcmV3YXJtSW5mb3JtYXRpb24g
ewotICAgIEZvbnRQcmV3YXJtSW5mb3JtYXRpb24gZm9udDsKKyAgICBGb250Q2FjaGU6OlByZXdh
cm1JbmZvcm1hdGlvbiBmb250Q2FjaGU7CiAKICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2
b2lkIGVuY29kZShFbmNvZGVyJikgY29uc3Q7CiAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4g
c3RhdGljIHN0ZDo6b3B0aW9uYWw8UHJld2FybUluZm9ybWF0aW9uPiBkZWNvZGUoRGVjb2RlciYp
OwpAQCAtNDEsMTcgKzQxLDE4IEBAIHN0cnVjdCBXRUJDT1JFX0VYUE9SVCBQcmV3YXJtSW5mb3Jt
YXRpb24KIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+CiB2b2lkIFByZXdhcm1JbmZvcm1hdGlvbjo6
ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0CiB7Ci0gICAgZW5jb2RlciA8PCBmb250Owor
ICAgIGVuY29kZXIgPDwgZm9udENhY2hlOwogfQogCiB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgog
c3RkOjpvcHRpb25hbDxQcmV3YXJtSW5mb3JtYXRpb24+IFByZXdhcm1JbmZvcm1hdGlvbjo6ZGVj
b2RlKERlY29kZXImIGRlY29kZXIpCiB7Ci0gICAgUHJld2FybUluZm9ybWF0aW9uIHByZXdhcm1J
bmZvOwotICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJld2FybUluZm8uZm9udCkpCisgICAgc3Rk
OjpvcHRpb25hbDxGb250Q2FjaGU6OlByZXdhcm1JbmZvcm1hdGlvbj4gZm9udENhY2hlUHJld2Fy
bUluZm9ybWF0aW9uOworICAgIGRlY29kZXIgPj4gZm9udENhY2hlUHJld2FybUluZm9ybWF0aW9u
OworICAgIGlmICghZm9udENhY2hlUHJld2FybUluZm9ybWF0aW9uKQogICAgICAgICByZXR1cm4g
eyB9OwogCi0gICAgcmV0dXJuIHByZXdhcm1JbmZvOworICAgIHJldHVybiBQcmV3YXJtSW5mb3Jt
YXRpb24geyBXVEZNb3ZlKCpmb250Q2FjaGVQcmV3YXJtSW5mb3JtYXRpb24pIH07CiB9CiAKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUHJvY2Vzc1dhcm1pbmcuY3BwCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIFNvdXJjZS9XZWJDb3JlL3BhZ2UvUHJvY2Vzc1dhcm1pbmcuY3BwCShyZXZpc2lvbiAyMzcw
NjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wYWdlL1Byb2Nlc3NXYXJtaW5nLmNwcAkod29ya2luZyBj
b3B5KQpAQCAtODgsMTQgKzg4LDE0IEBAIHZvaWQgUHJvY2Vzc1dhcm1pbmc6OnByZXdhcm1HbG9i
YWxseSgpCiAKIFdlYkNvcmU6OlByZXdhcm1JbmZvcm1hdGlvbiBQcm9jZXNzV2FybWluZzo6Y29s
bGVjdFByZXdhcm1JbmZvcm1hdGlvbigpCiB7Ci0gICAgUHJld2FybUluZm9ybWF0aW9uIGluZm87
Ci0gICAgaW5mby5mb250ID0gRm9udENhY2hlOjpzaW5nbGV0b24oKS5jb2xsZWN0UHJld2FybUlu
Zm9ybWF0aW9uKCk7Ci0gICAgcmV0dXJuIGluZm87CisgICAgUHJld2FybUluZm9ybWF0aW9uIHBy
ZXdhcm1JbmZvcm1hdGlvbjsKKyAgICBwcmV3YXJtSW5mb3JtYXRpb24uZm9udENhY2hlID0gRm9u
dENhY2hlOjpzaW5nbGV0b24oKS5jb2xsZWN0UHJld2FybUluZm9ybWF0aW9uKCk7CisgICAgcmV0
dXJuIHByZXdhcm1JbmZvcm1hdGlvbjsKIH0KIAogdm9pZCBQcm9jZXNzV2FybWluZzo6cHJld2Fy
bVdpdGhJbmZvcm1hdGlvbihjb25zdCBQcmV3YXJtSW5mb3JtYXRpb24mIHByZXdhcm1JbmZvKQog
ewotICAgIEZvbnRDYWNoZTo6c2luZ2xldG9uKCkucHJld2FybShwcmV3YXJtSW5mby5mb250KTsK
KyAgICBGb250Q2FjaGU6OnNpbmdsZXRvbigpLnByZXdhcm0ocHJld2FybUluZm8uZm9udENhY2hl
KTsKIH0KIAogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9G
b250Q2FjaGUuY3BwCShyZXZpc2lvbiAyMzcwNjUpCisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC00ODMsMTIgKzQ4Mywx
MiBAQCB2b2lkIEZvbnRDYWNoZTo6aW52YWxpZGF0ZSgpCiAKICNpZiAhUExBVEZPUk0oQ09DT0Ep
CiAKLUZvbnRQcmV3YXJtSW5mb3JtYXRpb24gRm9udENhY2hlOjpjb2xsZWN0UHJld2FybUluZm9y
bWF0aW9uKCkgY29uc3QKK0ZvbnRDYWNoZTo6UHJld2FybUluZm9ybWF0aW9uIEZvbnRDYWNoZTo6
Y29sbGVjdFByZXdhcm1JbmZvcm1hdGlvbigpIGNvbnN0CiB7CiAgICAgcmV0dXJuIHsgfTsKIH0K
IAotdm9pZCBGb250Q2FjaGU6OnByZXdhcm0oY29uc3QgRm9udFByZXdhcm1JbmZvcm1hdGlvbiYp
Cit2b2lkIEZvbnRDYWNoZTo6cHJld2FybShjb25zdCBQcmV3YXJtSW5mb3JtYXRpb24mKQogewog
fQogCkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAo9
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUu
aAkocmV2aXNpb24gMjM3MDY1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udENhY2hlLmgJKHdvcmtpbmcgY29weSkKQEAgLTY5LDggKzY5LDYgQEAgdHlwZWRlZiBJTUxh
bmdGb250TGluayBJTUxhbmdGb250TGlua1R5cAogI2VuZGlmCiAjZW5kaWYKIAotdXNpbmcgRm9u
dFByZXdhcm1JbmZvcm1hdGlvbiA9IFZlY3RvcjxTdHJpbmc+OwotCiAvLyBUaGlzIGtleSBjb250
YWlucyB0aGUgRm9udERlc2NyaXB0aW9uIGZpZWxkcyBvdGhlciB0aGFuIGZhbWlseSB0aGF0IG1h
dHRlciB3aGVuIGZldGNoaW5nIEZvbnREYXRhcyAocGxhdGZvcm0gZm9udHMpLgogc3RydWN0IEZv
bnREZXNjcmlwdGlvbktleSB7CiAgICAgRm9udERlc2NyaXB0aW9uS2V5KCkgPSBkZWZhdWx0OwpA
QCAtMjM5LDggKzIzNywxNyBAQCBwdWJsaWM6CiAgICAgYm9vbCBzaG91bGRNb2NrQm9sZFN5c3Rl
bUZvbnRGb3JBY2Nlc3NpYmlsaXR5KCkgY29uc3QgeyByZXR1cm4gbV9zaG91bGRNb2NrQm9sZFN5
c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5OyB9CiAgICAgdm9pZCBzZXRTaG91bGRNb2NrQm9sZFN5
c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5KGJvb2wgc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9y
QWNjZXNzaWJpbGl0eSkgeyBtX3Nob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxp
dHkgPSBzaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5OyB9CiAKLSAgICBG
b250UHJld2FybUluZm9ybWF0aW9uIGNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24oKSBjb25zdDsK
LSAgICB2b2lkIHByZXdhcm0oY29uc3QgRm9udFByZXdhcm1JbmZvcm1hdGlvbiYpOworICAgIHN0
cnVjdCBQcmV3YXJtSW5mb3JtYXRpb24geworICAgICAgICBWZWN0b3I8U3RyaW5nPiBzZWVuRmFt
aWxpZXM7CisgICAgICAgIFZlY3RvcjxTdHJpbmc+IGZvbnROYW1lc1JlcXVpcmluZ1N5c3RlbUZh
bGxiYWNrOworCisgICAgICAgIFByZXdhcm1JbmZvcm1hdGlvbiBpc29sYXRlZENvcHkoKSBjb25z
dDsKKworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPiB2b2lkIGVuY29kZShFbmNvZGVy
JikgY29uc3Q7CisgICAgICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0YXRpYyBzdGQ6Om9w
dGlvbmFsPFByZXdhcm1JbmZvcm1hdGlvbj4gZGVjb2RlKERlY29kZXImKTsKKyAgICB9OworICAg
IFByZXdhcm1JbmZvcm1hdGlvbiBjb2xsZWN0UHJld2FybUluZm9ybWF0aW9uKCkgY29uc3Q7Cisg
ICAgdm9pZCBwcmV3YXJtKGNvbnN0IFByZXdhcm1JbmZvcm1hdGlvbiYpOwogCiBwcml2YXRlOgog
ICAgIEZvbnRDYWNoZSgpOwpAQCAtMjY2LDYgKzI3Myw3IEBAIHByaXZhdGU6CiAKICNpZiBQTEFU
Rk9STShDT0NPQSkKICAgICBMaXN0SGFzaFNldDxTdHJpbmc+IG1fc2VlbkZhbWlsaWVzRm9yUHJl
d2FybWluZzsKKyAgICBMaXN0SGFzaFNldDxTdHJpbmc+IG1fZm9udE5hbWVzUmVxdWlyaW5nU3lz
dGVtRmFsbGJhY2tGb3JQcmV3YXJtaW5nOwogICAgIFJlZlB0cjxXb3JrUXVldWU+IG1fcHJld2Fy
bVF1ZXVlOwogCiAgICAgZnJpZW5kIGNsYXNzIENvbXBsZXhUZXh0Q29udHJvbGxlcjsKQEAgLTI4
Niw0ICsyOTQsMzIgQEAgaW5saW5lIHZvaWQgRm9udENhY2hlOjpwbGF0Zm9ybVB1cmdlSW5hYwog
CiAjZW5kaWYKIAorCitpbmxpbmUgRm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb24gRm9udENh
Y2hlOjpQcmV3YXJtSW5mb3JtYXRpb246Omlzb2xhdGVkQ29weSgpIGNvbnN0Cit7CisgICAgUHJl
d2FybUluZm9ybWF0aW9uIGNvcHk7CisgICAgY29weS5zZWVuRmFtaWxpZXMgPSBzZWVuRmFtaWxp
ZXMuaXNvbGF0ZWRDb3B5KCk7CisgICAgY29weS5mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxs
YmFjayA9IGZvbnROYW1lc1JlcXVpcmluZ1N5c3RlbUZhbGxiYWNrLmlzb2xhdGVkQ29weSgpOwor
ICAgIHJldHVybiBjb3B5OworfQorCit0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgordm9pZCBGb250
Q2FjaGU6OlByZXdhcm1JbmZvcm1hdGlvbjo6ZW5jb2RlKEVuY29kZXImIGVuY29kZXIpIGNvbnN0
Cit7CisgICAgZW5jb2RlciA8PCBzZWVuRmFtaWxpZXM7CisgICAgZW5jb2RlciA8PCBmb250TmFt
ZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFjazsKK30KKwordGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4K
K3N0ZDo6b3B0aW9uYWw8Rm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb24+IEZvbnRDYWNoZTo6
UHJld2FybUluZm9ybWF0aW9uOjpkZWNvZGUoRGVjb2RlciYgZGVjb2RlcikKK3sKKyAgICBQcmV3
YXJtSW5mb3JtYXRpb24gcHJld2FybUluZm9ybWF0aW9uOworICAgIGlmICghZGVjb2Rlci5kZWNv
ZGUocHJld2FybUluZm9ybWF0aW9uLnNlZW5GYW1pbGllcykpCisgICAgICAgIHJldHVybiB7IH07
CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcmV3YXJtSW5mb3JtYXRpb24uZm9udE5hbWVzUmVx
dWlyaW5nU3lzdGVtRmFsbGJhY2spKQorICAgICAgICByZXR1cm4geyB9OworCisgICAgcmV0dXJu
IHByZXdhcm1JbmZvcm1hdGlvbjsKK30KKwogfQpJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCj09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cAkocmV2aXNpb24gMjM3MDY1KQorKysgU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC05MTYsNyArOTE2
LDcgQEAgcHVibGljOgogICAgICAgICB9KCk7CiAKICAgICAgICAgc3RkOjpsb2NrX2d1YXJkPExv
Y2s+IGxvY2tlcihtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9yc0xvY2spOwotICAgICAgICBy
ZXR1cm4gbV9mYW1pbHlOYW1lVG9Gb250RGVzY3JpcHRvcnMuYWRkKGZvbGRlZC5pc29sYXRlZENv
cHkoKSwgaW5zdGFsbGVkRm9udEZhbWlseSkuaXRlcmF0b3ItPnZhbHVlOworICAgICAgICByZXR1
cm4gbV9mYW1pbHlOYW1lVG9Gb250RGVzY3JpcHRvcnMuYWRkKGZvbGRlZC5pc29sYXRlZENvcHko
KSwgV1RGTW92ZShpbnN0YWxsZWRGb250RmFtaWx5KSkuaXRlcmF0b3ItPnZhbHVlOwogICAgIH0K
IAogICAgIGNvbnN0IEluc3RhbGxlZEZvbnQmIGZvbnRGb3JQb3N0U2NyaXB0TmFtZShjb25zdCBB
dG9taWNTdHJpbmcmIHBvc3RTY3JpcHROYW1lKQpAQCAtMTM2Niw4ICsxMzY2LDE0IEBAIFJlZlB0
cjxGb250PiBGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm8KICNlbmRpZgogCiAgICAgY29uc3Qg
Rm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhID0gb3JpZ2luYWxGb250RGF0YS0+cGxhdGZv
cm1EYXRhKCk7CisKKyAgICBhdXRvIGZ1bGxOYW1lID0gU3RyaW5nKGFkb3B0Q0YoQ1RGb250Q29w
eUZ1bGxOYW1lKHBsYXRmb3JtRGF0YS5mb250KCkpKS5nZXQoKSk7CisgICAgaWYgKCFmdWxsTmFt
ZS5pc0VtcHR5KCkpCisgICAgICAgIG1fZm9udE5hbWVzUmVxdWlyaW5nU3lzdGVtRmFsbGJhY2tG
b3JQcmV3YXJtaW5nLmFkZChmdWxsTmFtZSk7CisKICAgICBhdXRvIHJlc3VsdCA9IGxvb2t1cEZh
bGxiYWNrRm9udChwbGF0Zm9ybURhdGEuZm9udCgpLCBkZXNjcmlwdGlvbi53ZWlnaHQoKSwgZGVz
Y3JpcHRpb24ubG9jYWxlKCksIGNoYXJhY3RlcnMsIGxlbmd0aCk7CiAgICAgcmVzdWx0ID0gcHJl
cGFyZVBsYXRmb3JtRm9udChyZXN1bHQuZ2V0KCksIGRlc2NyaXB0aW9uLCBudWxscHRyLCBudWxs
cHRyLCB7IH0sIGRlc2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgpKTsKKwogICAgIGlmICghcmVzdWx0
KQogICAgICAgICByZXR1cm4gbGFzdFJlc29ydEZhbGxiYWNrRm9udChkZXNjcmlwdGlvbik7CiAK
QEAgLTE1MTksMTggKzE1MjUsMTcgQEAgUmVmPEZvbnQ+IEZvbnRDYWNoZTo6bGFzdFJlc29ydEZh
bGxiYWNrRgogICAgIHJldHVybiBmb250Rm9yUGxhdGZvcm1EYXRhKHBsYXRmb3JtRGF0YSk7CiB9
CiAKLUZvbnRQcmV3YXJtSW5mb3JtYXRpb24gRm9udENhY2hlOjpjb2xsZWN0UHJld2FybUluZm9y
bWF0aW9uKCkgY29uc3QKK0ZvbnRDYWNoZTo6UHJld2FybUluZm9ybWF0aW9uIEZvbnRDYWNoZTo6
Y29sbGVjdFByZXdhcm1JbmZvcm1hdGlvbigpIGNvbnN0CiB7Ci0gICAgRm9udFByZXdhcm1JbmZv
cm1hdGlvbiBmb250UHJld2FybUluZm9ybWF0aW9uOwotICAgIGZvbnRQcmV3YXJtSW5mb3JtYXRp
b24gPSBjb3B5VG9WZWN0b3IobV9zZWVuRmFtaWxpZXNGb3JQcmV3YXJtaW5nKTsKLSAgICByZXR1
cm4gZm9udFByZXdhcm1JbmZvcm1hdGlvbjsKKyAgICBQcmV3YXJtSW5mb3JtYXRpb24gcHJld2Fy
bUluZm9ybWF0aW9uOworICAgIHByZXdhcm1JbmZvcm1hdGlvbi5zZWVuRmFtaWxpZXMgPSBjb3B5
VG9WZWN0b3IobV9zZWVuRmFtaWxpZXNGb3JQcmV3YXJtaW5nKTsKKyAgICBwcmV3YXJtSW5mb3Jt
YXRpb24uZm9udE5hbWVzUmVxdWlyaW5nU3lzdGVtRmFsbGJhY2sgPSBjb3B5VG9WZWN0b3IobV9m
b250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFja0ZvclByZXdhcm1pbmcpOworICAgIHJldHVy
biBwcmV3YXJtSW5mb3JtYXRpb247CiB9CiAKLXZvaWQgRm9udENhY2hlOjpwcmV3YXJtKGNvbnN0
IEZvbnRQcmV3YXJtSW5mb3JtYXRpb24mIGZvbnRQcmV3YXJtSW5mb3JtYXRpb24pCit2b2lkIEZv
bnRDYWNoZTo6cHJld2FybShjb25zdCBQcmV3YXJtSW5mb3JtYXRpb24mIHByZXdhcm1JbmZvcm1h
dGlvbikKIHsKLSAgICBhdXRvJiBmYW1pbGllcyA9IGZvbnRQcmV3YXJtSW5mb3JtYXRpb247Ci0K
LSAgICBpZiAoZmFtaWxpZXMuaXNFbXB0eSgpKQorICAgIGlmIChwcmV3YXJtSW5mb3JtYXRpb24u
c2VlbkZhbWlsaWVzLmlzRW1wdHkoKSAmJiBwcmV3YXJtSW5mb3JtYXRpb24uZm9udE5hbWVzUmVx
dWlyaW5nU3lzdGVtRmFsbGJhY2suaXNFbXB0eSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBp
ZiAoIW1fcHJld2FybVF1ZXVlKQpAQCAtMTUzOCw5ICsxNTQzLDE5IEBAIHZvaWQgRm9udENhY2hl
OjpwcmV3YXJtKGNvbnN0IEZvbnRQcmV3YXIKIAogICAgIGF1dG8mIGRhdGFiYXNlID0gRm9udERh
dGFiYXNlOjpzaW5nbGV0b25EaXNhbGxvd2luZ1VzZXJJbnN0YWxsZWRGb250cygpOwogCi0gICAg
bV9wcmV3YXJtUXVldWUtPmRpc3BhdGNoKFsmZGF0YWJhc2UsIGZhbWlsaWVzID0gZmFtaWxpZXMu
aXNvbGF0ZWRDb3B5KCldIHsKLSAgICAgICAgZm9yIChhdXRvJiBmYW1pbHkgOiBmYW1pbGllcykK
KyAgICBtX3ByZXdhcm1RdWV1ZS0+ZGlzcGF0Y2goWyZkYXRhYmFzZSwgcHJld2FybUluZm9ybWF0
aW9uID0gcHJld2FybUluZm9ybWF0aW9uLmlzb2xhdGVkQ29weSgpXSB7CisgICAgICAgIGZvciAo
YXV0byYgZmFtaWx5IDogcHJld2FybUluZm9ybWF0aW9uLnNlZW5GYW1pbGllcykKICAgICAgICAg
ICAgIGRhdGFiYXNlLmNvbGxlY3Rpb25Gb3JGYW1pbHkoZmFtaWx5KTsKKworICAgICAgICBmb3Ig
KGF1dG8mIGZvbnROYW1lIDogcHJld2FybUluZm9ybWF0aW9uLmZvbnROYW1lc1JlcXVpcmluZ1N5
c3RlbUZhbGxiYWNrKSB7CisgICAgICAgICAgICBhdXRvIGNmRm9udE5hbWUgPSBmb250TmFtZS5j
cmVhdGVDRlN0cmluZygpOworICAgICAgICAgICAgaWYgKGF1dG8gd2FybWluZ0ZvbnQgPSBhZG9w
dENGKENURm9udENyZWF0ZVdpdGhOYW1lKGNmRm9udE5hbWUuZ2V0KCksIDAsIG51bGxwdHIpKSkg
eworICAgICAgICAgICAgICAgIC8vIFRoaXMgaXMgc3VmZmljaWVudCB0byB3YXJtIENvcmVUZXh0
IGNhY2hlcyBmb3IgbGFuZ3VhZ2UgYW5kIGNoYXJhY3RlciBzcGVjaWZpYyBmYWxsYmFja3MuCisg
ICAgICAgICAgICAgICAgQ0ZJbmRleCBjb3ZlcmVkTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAg
ICBVQ2hhciBjaGFyYWN0ZXIgPSAnICc7CisgICAgICAgICAgICAgICAgYXV0byBmYWxsYmFja1dh
cm1pbmdGb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVGb3JDaGFyYWN0ZXJzV2l0aExhbmd1YWdl
KHdhcm1pbmdGb250LmdldCgpLCAmY2hhcmFjdGVyLCAxLCBudWxscHRyLCAmY292ZXJlZExlbmd0
aCkpOworICAgICAgICAgICAgfQorICAgICAgICB9CiAgICAgfSk7CiB9CiAK
</data>
<flag name="review"
          id="369468"
          type_id="1"
          status="+"
          setter="rniwa"
    />
          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352308</attachid>
            <date>2018-10-15 04:46:55 -0700</date>
            <delta_ts>2018-10-15 04:53:29 -0700</delta_ts>
            <desc>patch</desc>
            <filename>prewarm-font-fallback-7.patch</filename>
            <type>text/plain</type>
            <size>11167</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzA2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTEwLTEyICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbUFNPTl0gUHJld2FybSBzeXN0
ZW0gZmFsbGJhY2sgZm9udHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MDUxNworCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKwor
ICAgICAgICBUaGlzIHNlZW1zIHRvIGJlIH4yJSBwcm9ncmVzc2lvbiBpbiBQU09OIFBMVDQgd2l0
aCBsYXJnZSAoNDBtcyspIGltcHJvdmVtZW50cyBvbiBzb21lIHBhZ2VzCisgICAgICAgIGFmdGVy
IHByb2Nlc3Mgc3dhcHMuCisKKyAgICAgICAgKiBwYWdlL1ByZXdhcm1JbmZvcm1hdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIHBh
Z2UvUHJvY2Vzc1dhcm1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc1dhcm1pbmc6
OmNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc1dh
cm1pbmc6OnByZXdhcm1XaXRoSW5mb3JtYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmNvbGxlY3RQ
cmV3YXJtSW5mb3JtYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpw
cmV3YXJtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6UHJld2FybUluZm9ybWF0aW9uOjppc29sYXRlZENvcHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb246
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OlByZXdhcm1JbmZv
cm1hdGlvbjo6ZGVjb2RlKToKKworICAgICAgICBNYWtlIGZvbnQgY2FjaGUgcHJld2FybSBpbmZv
cm1hdGlvbiBhIHN0cnVjdCB3aXRoIGVuY29kZS9kZWNvZGUgc3VwcG9ydCBhbmQgbW92ZSBpdCBp
bnRvIEZvbnRDYWNoZSBzY29wZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREYXRhYmFzZTo6
Y29sbGVjdGlvbkZvckZhbWlseSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnN5c3Rl
bUZhbGxiYWNrRm9yQ2hhcmFjdGVycyk6CisKKyAgICAgICAgQ29sbGVjdCB0aGUgbmFtZXMgb2Yg
Zm9udHMgdGhhdCBlbmQgdXAgbmVlZGluZyBjaGFyYWN0ZXIgc3BlY2lmaWMgc3lzdGVtIGZhbGxi
YWNrcy4KKworICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpjb2xsZWN0UHJld2FybUluZm9y
bWF0aW9uIGNvbnN0KToKKworICAgICAgICBJbmNsdWRlIHRoZW0gaW50byBwcmV3YXJtIGluZm9y
bWF0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnByZXdhcm0pOgorCisgICAg
ICAgIEludm9raW5nIENURm9udENyZWF0ZUZvckNoYXJhY3RlcnNXaXRoTGFuZ3VhZ2UgZm9yIHRo
ZSBjb3JyZWN0IG5hbWVkIGZvbnQgc2VlbXMgc3VmZmljaWVudCB0byBmdWxseQorICAgICAgICBw
cmV3YXJtIGl0IGZvciBmYWxsYmFja3MgKGluZGVwZW5kZW50IG9mIHNpemUsIGxvY2FsZSBvciBv
dGhlciBjaGFyYWN0ZXJpc3RpY3MpLgorICAgICAgICBBbnkgZnV0dXJlIGNhbGxzIHRvIHN5c3Rl
bUZhbGxiYWNrRm9yQ2hhcmFjdGVycyBhcmUgZmFzdC4KKwogMjAxOC0xMC0xMSAgRG9uIE9sbXN0
ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIEFkZCBIb3VkaW5pIHNwZWNz
IHRvIGZlYXR1cmVzLmpzb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUHJld2FybUluZm9y
bWF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QcmV3YXJtSW5mb3Jt
YXRpb24uaAkocmV2aXNpb24gMjM3MDY1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QcmV3YXJt
SW5mb3JtYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgUHJld2FybUluZm9ybWF0aW9uIHsK
LSAgICBGb250UHJld2FybUluZm9ybWF0aW9uIGZvbnQ7CisgICAgRm9udENhY2hlOjpQcmV3YXJt
SW5mb3JtYXRpb24gZm9udENhY2hlOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFByZXdhcm1JbmZvcm1hdGlvbj4gZGVjb2RlKERlY29kZXImKTsK
QEAgLTQxLDE3ICs0MSwxOCBAQCBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgUHJld2FybUluZm9ybWF0
aW9uCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQcmV3YXJtSW5mb3JtYXRpb246OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgZm9udDsKKyAg
ICBlbmNvZGVyIDw8IGZvbnRDYWNoZTsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIHN0
ZDo6b3B0aW9uYWw8UHJld2FybUluZm9ybWF0aW9uPiBQcmV3YXJtSW5mb3JtYXRpb246OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIFByZXdhcm1JbmZvcm1hdGlvbiBwcmV3YXJtSW5m
bzsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByZXdhcm1JbmZvLmZvbnQpKQorICAgIHN0ZDo6
b3B0aW9uYWw8Rm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb24+IGZvbnRDYWNoZVByZXdhcm1J
bmZvcm1hdGlvbjsKKyAgICBkZWNvZGVyID4+IGZvbnRDYWNoZVByZXdhcm1JbmZvcm1hdGlvbjsK
KyAgICBpZiAoIWZvbnRDYWNoZVByZXdhcm1JbmZvcm1hdGlvbikKICAgICAgICAgcmV0dXJuIHsg
fTsKIAotICAgIHJldHVybiBwcmV3YXJtSW5mbzsKKyAgICByZXR1cm4gUHJld2FybUluZm9ybWF0
aW9uIHsgV1RGTW92ZSgqZm9udENhY2hlUHJld2FybUluZm9ybWF0aW9uKSB9OwogfQogCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Byb2Nlc3NXYXJtaW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Byb2Nlc3NXYXJtaW5nLmNwcAkocmV2aXNpb24gMjM3MDY1
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Qcm9jZXNzV2FybWluZy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg4LDE0ICs4OCwxMiBAQCB2b2lkIFByb2Nlc3NXYXJtaW5nOjpwcmV3YXJtR2xvYmFs
bHkoKQogCiBXZWJDb3JlOjpQcmV3YXJtSW5mb3JtYXRpb24gUHJvY2Vzc1dhcm1pbmc6OmNvbGxl
Y3RQcmV3YXJtSW5mb3JtYXRpb24oKQogewotICAgIFByZXdhcm1JbmZvcm1hdGlvbiBpbmZvOwot
ICAgIGluZm8uZm9udCA9IEZvbnRDYWNoZTo6c2luZ2xldG9uKCkuY29sbGVjdFByZXdhcm1JbmZv
cm1hdGlvbigpOwotICAgIHJldHVybiBpbmZvOworICAgIHJldHVybiB7IEZvbnRDYWNoZTo6c2lu
Z2xldG9uKCkuY29sbGVjdFByZXdhcm1JbmZvcm1hdGlvbigpIH07CiB9CiAKIHZvaWQgUHJvY2Vz
c1dhcm1pbmc6OnByZXdhcm1XaXRoSW5mb3JtYXRpb24oY29uc3QgUHJld2FybUluZm9ybWF0aW9u
JiBwcmV3YXJtSW5mbykKIHsKLSAgICBGb250Q2FjaGU6OnNpbmdsZXRvbigpLnByZXdhcm0ocHJl
d2FybUluZm8uZm9udCk7CisgICAgRm9udENhY2hlOjpzaW5nbGV0b24oKS5wcmV3YXJtKHByZXdh
cm1JbmZvLmZvbnRDYWNoZSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkocmV2aXNpb24gMjM3MDY1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDgzLDEyICs0ODMsMTIgQEAgdm9pZCBGb250Q2FjaGU6OmludmFsaWRhdGUoKQogCiAjaWYg
IVBMQVRGT1JNKENPQ09BKQogCi1Gb250UHJld2FybUluZm9ybWF0aW9uIEZvbnRDYWNoZTo6Y29s
bGVjdFByZXdhcm1JbmZvcm1hdGlvbigpIGNvbnN0CitGb250Q2FjaGU6OlByZXdhcm1JbmZvcm1h
dGlvbiBGb250Q2FjaGU6OmNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24oKSBjb25zdAogewogICAg
IHJldHVybiB7IH07CiB9CiAKLXZvaWQgRm9udENhY2hlOjpwcmV3YXJtKGNvbnN0IEZvbnRQcmV3
YXJtSW5mb3JtYXRpb24mKQordm9pZCBGb250Q2FjaGU6OnByZXdhcm0oY29uc3QgUHJld2FybUlu
Zm9ybWF0aW9uJikKIHsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmgJKHJldmlzaW9uIDIzNzA2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw4ICs2OSw2
IEBAIHR5cGVkZWYgSU1MYW5nRm9udExpbmsgSU1MYW5nRm9udExpbmtUeXAKICNlbmRpZgogI2Vu
ZGlmCiAKLXVzaW5nIEZvbnRQcmV3YXJtSW5mb3JtYXRpb24gPSBWZWN0b3I8U3RyaW5nPjsKLQog
Ly8gVGhpcyBrZXkgY29udGFpbnMgdGhlIEZvbnREZXNjcmlwdGlvbiBmaWVsZHMgb3RoZXIgdGhh
biBmYW1pbHkgdGhhdCBtYXR0ZXIgd2hlbiBmZXRjaGluZyBGb250RGF0YXMgKHBsYXRmb3JtIGZv
bnRzKS4KIHN0cnVjdCBGb250RGVzY3JpcHRpb25LZXkgewogICAgIEZvbnREZXNjcmlwdGlvbktl
eSgpID0gZGVmYXVsdDsKQEAgLTIzOSw4ICsyMzcsMTkgQEAgcHVibGljOgogICAgIGJvb2wgc2hv
dWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eTsgfQogICAgIHZvaWQgc2V0
U2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eShib29sIHNob3VsZE1vY2tC
b2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHkpIHsgbV9zaG91bGRNb2NrQm9sZFN5c3RlbUZv
bnRGb3JBY2Nlc3NpYmlsaXR5ID0gc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJp
bGl0eTsgfQogCi0gICAgRm9udFByZXdhcm1JbmZvcm1hdGlvbiBjb2xsZWN0UHJld2FybUluZm9y
bWF0aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBwcmV3YXJtKGNvbnN0IEZvbnRQcmV3YXJtSW5mb3Jt
YXRpb24mKTsKKyAgICBzdHJ1Y3QgUHJld2FybUluZm9ybWF0aW9uIHsKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4gc2VlbkZhbWlsaWVzOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBmb250TmFtZXNS
ZXF1aXJpbmdTeXN0ZW1GYWxsYmFjazsKKworICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsK
KworICAgICAgICBQcmV3YXJtSW5mb3JtYXRpb24gaXNvbGF0ZWRDb3B5KCkgY29uc3Q7CisKKyAg
ICAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9pZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0
OworICAgICAgICB0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPiBzdGF0aWMgc3RkOjpvcHRpb25hbDxQ
cmV3YXJtSW5mb3JtYXRpb24+IGRlY29kZShEZWNvZGVyJik7CisgICAgfTsKKyAgICBQcmV3YXJt
SW5mb3JtYXRpb24gY29sbGVjdFByZXdhcm1JbmZvcm1hdGlvbigpIGNvbnN0OworICAgIHZvaWQg
cHJld2FybShjb25zdCBQcmV3YXJtSW5mb3JtYXRpb24mKTsKIAogcHJpdmF0ZToKICAgICBGb250
Q2FjaGUoKTsKQEAgLTI2Niw2ICsyNzUsNyBAQCBwcml2YXRlOgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCiAgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBtX3NlZW5GYW1pbGllc0ZvclByZXdhcm1pbmc7
CisgICAgTGlzdEhhc2hTZXQ8U3RyaW5nPiBtX2ZvbnROYW1lc1JlcXVpcmluZ1N5c3RlbUZhbGxi
YWNrRm9yUHJld2FybWluZzsKICAgICBSZWZQdHI8V29ya1F1ZXVlPiBtX3ByZXdhcm1RdWV1ZTsK
IAogICAgIGZyaWVuZCBjbGFzcyBDb21wbGV4VGV4dENvbnRyb2xsZXI7CkBAIC0yODYsNCArMjk2
LDM3IEBAIGlubGluZSB2b2lkIEZvbnRDYWNoZTo6cGxhdGZvcm1QdXJnZUluYWMKIAogI2VuZGlm
CiAKKworaW5saW5lIGJvb2wgRm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb246OmlzRW1wdHko
KSBjb25zdAoreworICAgIHJldHVybiBzZWVuRmFtaWxpZXMuaXNFbXB0eSgpICYmIGZvbnROYW1l
c1JlcXVpcmluZ1N5c3RlbUZhbGxiYWNrLmlzRW1wdHkoKTsKK30KKworaW5saW5lIEZvbnRDYWNo
ZTo6UHJld2FybUluZm9ybWF0aW9uIEZvbnRDYWNoZTo6UHJld2FybUluZm9ybWF0aW9uOjppc29s
YXRlZENvcHkoKSBjb25zdAoreworICAgIFByZXdhcm1JbmZvcm1hdGlvbiBjb3B5OworICAgIGNv
cHkuc2VlbkZhbWlsaWVzID0gc2VlbkZhbWlsaWVzLmlzb2xhdGVkQ29weSgpOworICAgIGNvcHku
Zm9udE5hbWVzUmVxdWlyaW5nU3lzdGVtRmFsbGJhY2sgPSBmb250TmFtZXNSZXF1aXJpbmdTeXN0
ZW1GYWxsYmFjay5pc29sYXRlZENvcHkoKTsKKyAgICByZXR1cm4gY29weTsKK30KKwordGVtcGxh
dGU8Y2xhc3MgRW5jb2Rlcj4KK3ZvaWQgRm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb246OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAoreworICAgIGVuY29kZXIgPDwgc2VlbkZhbWls
aWVzOworICAgIGVuY29kZXIgPDwgZm9udE5hbWVzUmVxdWlyaW5nU3lzdGVtRmFsbGJhY2s7Cit9
CisKK3RlbXBsYXRlPGNsYXNzIERlY29kZXI+CitzdGQ6Om9wdGlvbmFsPEZvbnRDYWNoZTo6UHJl
d2FybUluZm9ybWF0aW9uPiBGb250Q2FjaGU6OlByZXdhcm1JbmZvcm1hdGlvbjo6ZGVjb2RlKERl
Y29kZXImIGRlY29kZXIpCit7CisgICAgUHJld2FybUluZm9ybWF0aW9uIHByZXdhcm1JbmZvcm1h
dGlvbjsKKyAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByZXdhcm1JbmZvcm1hdGlvbi5zZWVuRmFt
aWxpZXMpKQorICAgICAgICByZXR1cm4geyB9OworICAgIGlmICghZGVjb2Rlci5kZWNvZGUocHJl
d2FybUluZm9ybWF0aW9uLmZvbnROYW1lc1JlcXVpcmluZ1N5c3RlbUZhbGxiYWNrKSkKKyAgICAg
ICAgcmV0dXJuIHsgfTsKKworICAgIHJldHVybiBwcmV3YXJtSW5mb3JtYXRpb247Cit9CisKIH0K
SW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNv
cmVUZXh0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAJKHJldmlzaW9uIDIzNzA2NSkKKysrIFNvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAko
d29ya2luZyBjb3B5KQpAQCAtOTE2LDcgKzkxNiw3IEBAIHB1YmxpYzoKICAgICAgICAgfSgpOwog
CiAgICAgICAgIHN0ZDo6bG9ja19ndWFyZDxMb2NrPiBsb2NrZXIobV9mYW1pbHlOYW1lVG9Gb250
RGVzY3JpcHRvcnNMb2NrKTsKLSAgICAgICAgcmV0dXJuIG1fZmFtaWx5TmFtZVRvRm9udERlc2Ny
aXB0b3JzLmFkZChmb2xkZWQuaXNvbGF0ZWRDb3B5KCksIGluc3RhbGxlZEZvbnRGYW1pbHkpLml0
ZXJhdG9yLT52YWx1ZTsKKyAgICAgICAgcmV0dXJuIG1fZmFtaWx5TmFtZVRvRm9udERlc2NyaXB0
b3JzLmFkZChmb2xkZWQuaXNvbGF0ZWRDb3B5KCksIFdURk1vdmUoaW5zdGFsbGVkRm9udEZhbWls
eSkpLml0ZXJhdG9yLT52YWx1ZTsKICAgICB9CiAKICAgICBjb25zdCBJbnN0YWxsZWRGb250JiBm
b250Rm9yUG9zdFNjcmlwdE5hbWUoY29uc3QgQXRvbWljU3RyaW5nJiBwb3N0U2NyaXB0TmFtZSkK
QEAgLTEzNjYsOCArMTM2NiwxNCBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpzeXN0ZW1GYWxs
YmFja0ZvCiAjZW5kaWYKIAogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0
YSA9IG9yaWdpbmFsRm9udERhdGEtPnBsYXRmb3JtRGF0YSgpOworCisgICAgYXV0byBmdWxsTmFt
ZSA9IFN0cmluZyhhZG9wdENGKENURm9udENvcHlGdWxsTmFtZShwbGF0Zm9ybURhdGEuZm9udCgp
KSkuZ2V0KCkpOworICAgIGlmICghZnVsbE5hbWUuaXNFbXB0eSgpKQorICAgICAgICBtX2ZvbnRO
YW1lc1JlcXVpcmluZ1N5c3RlbUZhbGxiYWNrRm9yUHJld2FybWluZy5hZGQoZnVsbE5hbWUpOwor
CiAgICAgYXV0byByZXN1bHQgPSBsb29rdXBGYWxsYmFja0ZvbnQocGxhdGZvcm1EYXRhLmZvbnQo
KSwgZGVzY3JpcHRpb24ud2VpZ2h0KCksIGRlc2NyaXB0aW9uLmxvY2FsZSgpLCBjaGFyYWN0ZXJz
LCBsZW5ndGgpOwogICAgIHJlc3VsdCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQocmVzdWx0LmdldCgp
LCBkZXNjcmlwdGlvbiwgbnVsbHB0ciwgbnVsbHB0ciwgeyB9LCBkZXNjcmlwdGlvbi5jb21wdXRl
ZFNpemUoKSk7CisKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIGxhc3RSZXNvcnRG
YWxsYmFja0ZvbnQoZGVzY3JpcHRpb24pOwogCkBAIC0xNTE5LDE4ICsxNTI1LDE3IEBAIFJlZjxG
b250PiBGb250Q2FjaGU6Omxhc3RSZXNvcnRGYWxsYmFja0YKICAgICByZXR1cm4gZm9udEZvclBs
YXRmb3JtRGF0YShwbGF0Zm9ybURhdGEpOwogfQogCi1Gb250UHJld2FybUluZm9ybWF0aW9uIEZv
bnRDYWNoZTo6Y29sbGVjdFByZXdhcm1JbmZvcm1hdGlvbigpIGNvbnN0CitGb250Q2FjaGU6OlBy
ZXdhcm1JbmZvcm1hdGlvbiBGb250Q2FjaGU6OmNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24oKSBj
b25zdAogewotICAgIEZvbnRQcmV3YXJtSW5mb3JtYXRpb24gZm9udFByZXdhcm1JbmZvcm1hdGlv
bjsKLSAgICBmb250UHJld2FybUluZm9ybWF0aW9uID0gY29weVRvVmVjdG9yKG1fc2VlbkZhbWls
aWVzRm9yUHJld2FybWluZyk7Ci0gICAgcmV0dXJuIGZvbnRQcmV3YXJtSW5mb3JtYXRpb247Cisg
ICAgUHJld2FybUluZm9ybWF0aW9uIHByZXdhcm1JbmZvcm1hdGlvbjsKKyAgICBwcmV3YXJtSW5m
b3JtYXRpb24uc2VlbkZhbWlsaWVzID0gY29weVRvVmVjdG9yKG1fc2VlbkZhbWlsaWVzRm9yUHJl
d2FybWluZyk7CisgICAgcHJld2FybUluZm9ybWF0aW9uLmZvbnROYW1lc1JlcXVpcmluZ1N5c3Rl
bUZhbGxiYWNrID0gY29weVRvVmVjdG9yKG1fZm9udE5hbWVzUmVxdWlyaW5nU3lzdGVtRmFsbGJh
Y2tGb3JQcmV3YXJtaW5nKTsKKyAgICByZXR1cm4gcHJld2FybUluZm9ybWF0aW9uOwogfQogCi12
b2lkIEZvbnRDYWNoZTo6cHJld2FybShjb25zdCBGb250UHJld2FybUluZm9ybWF0aW9uJiBmb250
UHJld2FybUluZm9ybWF0aW9uKQordm9pZCBGb250Q2FjaGU6OnByZXdhcm0oY29uc3QgUHJld2Fy
bUluZm9ybWF0aW9uJiBwcmV3YXJtSW5mb3JtYXRpb24pCiB7Ci0gICAgYXV0byYgZmFtaWxpZXMg
PSBmb250UHJld2FybUluZm9ybWF0aW9uOwotCi0gICAgaWYgKGZhbWlsaWVzLmlzRW1wdHkoKSkK
KyAgICBpZiAocHJld2FybUluZm9ybWF0aW9uLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwog
CiAgICAgaWYgKCFtX3ByZXdhcm1RdWV1ZSkKQEAgLTE1MzgsOSArMTU0MywxOSBAQCB2b2lkIEZv
bnRDYWNoZTo6cHJld2FybShjb25zdCBGb250UHJld2FyCiAKICAgICBhdXRvJiBkYXRhYmFzZSA9
IEZvbnREYXRhYmFzZTo6c2luZ2xldG9uRGlzYWxsb3dpbmdVc2VySW5zdGFsbGVkRm9udHMoKTsK
IAotICAgIG1fcHJld2FybVF1ZXVlLT5kaXNwYXRjaChbJmRhdGFiYXNlLCBmYW1pbGllcyA9IGZh
bWlsaWVzLmlzb2xhdGVkQ29weSgpXSB7Ci0gICAgICAgIGZvciAoYXV0byYgZmFtaWx5IDogZmFt
aWxpZXMpCisgICAgbV9wcmV3YXJtUXVldWUtPmRpc3BhdGNoKFsmZGF0YWJhc2UsIHByZXdhcm1J
bmZvcm1hdGlvbiA9IHByZXdhcm1JbmZvcm1hdGlvbi5pc29sYXRlZENvcHkoKV0geworICAgICAg
ICBmb3IgKGF1dG8mIGZhbWlseSA6IHByZXdhcm1JbmZvcm1hdGlvbi5zZWVuRmFtaWxpZXMpCiAg
ICAgICAgICAgICBkYXRhYmFzZS5jb2xsZWN0aW9uRm9yRmFtaWx5KGZhbWlseSk7CisKKyAgICAg
ICAgZm9yIChhdXRvJiBmb250TmFtZSA6IHByZXdhcm1JbmZvcm1hdGlvbi5mb250TmFtZXNSZXF1
aXJpbmdTeXN0ZW1GYWxsYmFjaykgeworICAgICAgICAgICAgYXV0byBjZkZvbnROYW1lID0gZm9u
dE5hbWUuY3JlYXRlQ0ZTdHJpbmcoKTsKKyAgICAgICAgICAgIGlmIChhdXRvIHdhcm1pbmdGb250
ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoTmFtZShjZkZvbnROYW1lLmdldCgpLCAwLCBudWxs
cHRyKSkpIHsKKyAgICAgICAgICAgICAgICAvLyBUaGlzIGlzIHN1ZmZpY2llbnQgdG8gd2FybSBD
b3JlVGV4dCBjYWNoZXMgZm9yIGxhbmd1YWdlIGFuZCBjaGFyYWN0ZXIgc3BlY2lmaWMgZmFsbGJh
Y2tzLgorICAgICAgICAgICAgICAgIENGSW5kZXggY292ZXJlZExlbmd0aCA9IDA7CisgICAgICAg
ICAgICAgICAgVUNoYXIgY2hhcmFjdGVyID0gJyAnOworICAgICAgICAgICAgICAgIGF1dG8gZmFs
bGJhY2tXYXJtaW5nRm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlRm9yQ2hhcmFjdGVyc1dpdGhM
YW5ndWFnZSh3YXJtaW5nRm9udC5nZXQoKSwgJmNoYXJhY3RlciwgMSwgbnVsbHB0ciwgJmNvdmVy
ZWRMZW5ndGgpKTsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQogICAgIH0pOwogfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352310</attachid>
            <date>2018-10-15 04:53:29 -0700</date>
            <delta_ts>2018-10-15 08:25:29 -0700</delta_ts>
            <desc>patch</desc>
            <filename>prewarm-font-fallback-8.patch</filename>
            <type>text/plain</type>
            <size>11063</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzA2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTEwLTE1ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbUFNPTl0gUHJld2FybSBzeXN0
ZW0gZmFsbGJhY2sgZm9udHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MDUxNworCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKwor
ICAgICAgICBUaGlzIHNlZW1zIHRvIGJlIH4yJSBwcm9ncmVzc2lvbiBpbiBQU09OIFBMVDQgd2l0
aCBsYXJnZSAoNDBtcyspIGltcHJvdmVtZW50cyBvbiBzb21lIHBhZ2VzCisgICAgICAgIGFmdGVy
IHByb2Nlc3Mgc3dhcHMuCisKKyAgICAgICAgKiBwYWdlL1ByZXdhcm1JbmZvcm1hdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIHBh
Z2UvUHJvY2Vzc1dhcm1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc1dhcm1pbmc6
OmNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc1dh
cm1pbmc6OnByZXdhcm1XaXRoSW5mb3JtYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmNvbGxlY3RQ
cmV3YXJtSW5mb3JtYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpw
cmV3YXJtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6UHJld2FybUluZm9ybWF0aW9uOjppc29sYXRlZENvcHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb246
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OlByZXdhcm1JbmZv
cm1hdGlvbjo6ZGVjb2RlKToKKworICAgICAgICBNYWtlIGZvbnQgY2FjaGUgcHJld2FybSBpbmZv
cm1hdGlvbiBhIHN0cnVjdCB3aXRoIGVuY29kZS9kZWNvZGUgc3VwcG9ydCBhbmQgbW92ZSBpdCBp
bnRvIEZvbnRDYWNoZSBzY29wZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREYXRhYmFzZTo6
Y29sbGVjdGlvbkZvckZhbWlseSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnN5c3Rl
bUZhbGxiYWNrRm9yQ2hhcmFjdGVycyk6CisKKyAgICAgICAgQ29sbGVjdCB0aGUgbmFtZXMgb2Yg
Zm9udHMgdGhhdCBlbmQgdXAgbmVlZGluZyBjaGFyYWN0ZXIgc3BlY2lmaWMgc3lzdGVtIGZhbGxi
YWNrcy4KKworICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpjb2xsZWN0UHJld2FybUluZm9y
bWF0aW9uIGNvbnN0KToKKworICAgICAgICBJbmNsdWRlIHRoZW0gaW50byBwcmV3YXJtIGluZm9y
bWF0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnByZXdhcm0pOgorCisgICAg
ICAgIEludm9raW5nIENURm9udENyZWF0ZUZvckNoYXJhY3RlcnNXaXRoTGFuZ3VhZ2UgZm9yIHRo
ZSBjb3JyZWN0IG5hbWVkIGZvbnQgc2VlbXMgc3VmZmljaWVudCB0byBmdWxseQorICAgICAgICBw
cmV3YXJtIGl0IGZvciBmYWxsYmFja3MgKGluZGVwZW5kZW50IG9mIHNpemUsIGxvY2FsZSBvciBv
dGhlciBjaGFyYWN0ZXJpc3RpY3MpLgorICAgICAgICBBbnkgZnV0dXJlIGNhbGxzIHRvIHN5c3Rl
bUZhbGxiYWNrRm9yQ2hhcmFjdGVycyBhcmUgZmFzdC4KKwogMjAxOC0xMC0xMSAgRG9uIE9sbXN0
ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIEFkZCBIb3VkaW5pIHNwZWNz
IHRvIGZlYXR1cmVzLmpzb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUHJld2FybUluZm9y
bWF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QcmV3YXJtSW5mb3Jt
YXRpb24uaAkocmV2aXNpb24gMjM3MDY1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QcmV3YXJt
SW5mb3JtYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgUHJld2FybUluZm9ybWF0aW9uIHsK
LSAgICBGb250UHJld2FybUluZm9ybWF0aW9uIGZvbnQ7CisgICAgRm9udENhY2hlOjpQcmV3YXJt
SW5mb3JtYXRpb24gZm9udENhY2hlOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFByZXdhcm1JbmZvcm1hdGlvbj4gZGVjb2RlKERlY29kZXImKTsK
QEAgLTQxLDE3ICs0MSwxOCBAQCBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgUHJld2FybUluZm9ybWF0
aW9uCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQcmV3YXJtSW5mb3JtYXRpb246OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgZm9udDsKKyAg
ICBlbmNvZGVyIDw8IGZvbnRDYWNoZTsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIHN0
ZDo6b3B0aW9uYWw8UHJld2FybUluZm9ybWF0aW9uPiBQcmV3YXJtSW5mb3JtYXRpb246OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIFByZXdhcm1JbmZvcm1hdGlvbiBwcmV3YXJtSW5m
bzsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByZXdhcm1JbmZvLmZvbnQpKQorICAgIHN0ZDo6
b3B0aW9uYWw8Rm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb24+IGZvbnRDYWNoZVByZXdhcm1J
bmZvcm1hdGlvbjsKKyAgICBkZWNvZGVyID4+IGZvbnRDYWNoZVByZXdhcm1JbmZvcm1hdGlvbjsK
KyAgICBpZiAoIWZvbnRDYWNoZVByZXdhcm1JbmZvcm1hdGlvbikKICAgICAgICAgcmV0dXJuIHsg
fTsKIAotICAgIHJldHVybiBwcmV3YXJtSW5mbzsKKyAgICByZXR1cm4gUHJld2FybUluZm9ybWF0
aW9uIHsgV1RGTW92ZSgqZm9udENhY2hlUHJld2FybUluZm9ybWF0aW9uKSB9OwogfQogCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Byb2Nlc3NXYXJtaW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Byb2Nlc3NXYXJtaW5nLmNwcAkocmV2aXNpb24gMjM3MDY1
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Qcm9jZXNzV2FybWluZy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg4LDE0ICs4OCwxMiBAQCB2b2lkIFByb2Nlc3NXYXJtaW5nOjpwcmV3YXJtR2xvYmFs
bHkoKQogCiBXZWJDb3JlOjpQcmV3YXJtSW5mb3JtYXRpb24gUHJvY2Vzc1dhcm1pbmc6OmNvbGxl
Y3RQcmV3YXJtSW5mb3JtYXRpb24oKQogewotICAgIFByZXdhcm1JbmZvcm1hdGlvbiBpbmZvOwot
ICAgIGluZm8uZm9udCA9IEZvbnRDYWNoZTo6c2luZ2xldG9uKCkuY29sbGVjdFByZXdhcm1JbmZv
cm1hdGlvbigpOwotICAgIHJldHVybiBpbmZvOworICAgIHJldHVybiB7IEZvbnRDYWNoZTo6c2lu
Z2xldG9uKCkuY29sbGVjdFByZXdhcm1JbmZvcm1hdGlvbigpIH07CiB9CiAKIHZvaWQgUHJvY2Vz
c1dhcm1pbmc6OnByZXdhcm1XaXRoSW5mb3JtYXRpb24oY29uc3QgUHJld2FybUluZm9ybWF0aW9u
JiBwcmV3YXJtSW5mbykKIHsKLSAgICBGb250Q2FjaGU6OnNpbmdsZXRvbigpLnByZXdhcm0ocHJl
d2FybUluZm8uZm9udCk7CisgICAgRm9udENhY2hlOjpzaW5nbGV0b24oKS5wcmV3YXJtKHByZXdh
cm1JbmZvLmZvbnRDYWNoZSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkocmV2aXNpb24gMjM3MDY1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDgzLDEyICs0ODMsMTIgQEAgdm9pZCBGb250Q2FjaGU6OmludmFsaWRhdGUoKQogCiAjaWYg
IVBMQVRGT1JNKENPQ09BKQogCi1Gb250UHJld2FybUluZm9ybWF0aW9uIEZvbnRDYWNoZTo6Y29s
bGVjdFByZXdhcm1JbmZvcm1hdGlvbigpIGNvbnN0CitGb250Q2FjaGU6OlByZXdhcm1JbmZvcm1h
dGlvbiBGb250Q2FjaGU6OmNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24oKSBjb25zdAogewogICAg
IHJldHVybiB7IH07CiB9CiAKLXZvaWQgRm9udENhY2hlOjpwcmV3YXJtKGNvbnN0IEZvbnRQcmV3
YXJtSW5mb3JtYXRpb24mKQordm9pZCBGb250Q2FjaGU6OnByZXdhcm0oY29uc3QgUHJld2FybUlu
Zm9ybWF0aW9uJikKIHsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmgJKHJldmlzaW9uIDIzNzA2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw4ICs2OSw2
IEBAIHR5cGVkZWYgSU1MYW5nRm9udExpbmsgSU1MYW5nRm9udExpbmtUeXAKICNlbmRpZgogI2Vu
ZGlmCiAKLXVzaW5nIEZvbnRQcmV3YXJtSW5mb3JtYXRpb24gPSBWZWN0b3I8U3RyaW5nPjsKLQog
Ly8gVGhpcyBrZXkgY29udGFpbnMgdGhlIEZvbnREZXNjcmlwdGlvbiBmaWVsZHMgb3RoZXIgdGhh
biBmYW1pbHkgdGhhdCBtYXR0ZXIgd2hlbiBmZXRjaGluZyBGb250RGF0YXMgKHBsYXRmb3JtIGZv
bnRzKS4KIHN0cnVjdCBGb250RGVzY3JpcHRpb25LZXkgewogICAgIEZvbnREZXNjcmlwdGlvbktl
eSgpID0gZGVmYXVsdDsKQEAgLTIzOSw4ICsyMzcsMTggQEAgcHVibGljOgogICAgIGJvb2wgc2hv
dWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eTsgfQogICAgIHZvaWQgc2V0
U2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eShib29sIHNob3VsZE1vY2tC
b2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHkpIHsgbV9zaG91bGRNb2NrQm9sZFN5c3RlbUZv
bnRGb3JBY2Nlc3NpYmlsaXR5ID0gc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJp
bGl0eTsgfQogCi0gICAgRm9udFByZXdhcm1JbmZvcm1hdGlvbiBjb2xsZWN0UHJld2FybUluZm9y
bWF0aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBwcmV3YXJtKGNvbnN0IEZvbnRQcmV3YXJtSW5mb3Jt
YXRpb24mKTsKKyAgICBzdHJ1Y3QgUHJld2FybUluZm9ybWF0aW9uIHsKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4gc2VlbkZhbWlsaWVzOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBmb250TmFtZXNS
ZXF1aXJpbmdTeXN0ZW1GYWxsYmFjazsKKworICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsK
KyAgICAgICAgUHJld2FybUluZm9ybWF0aW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0OworCisgICAg
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
KyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHJl
d2FybUluZm9ybWF0aW9uPiBkZWNvZGUoRGVjb2RlciYpOworICAgIH07CisgICAgUHJld2FybUlu
Zm9ybWF0aW9uIGNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24oKSBjb25zdDsKKyAgICB2b2lkIHBy
ZXdhcm0oY29uc3QgUHJld2FybUluZm9ybWF0aW9uJik7CiAKIHByaXZhdGU6CiAgICAgRm9udENh
Y2hlKCk7CkBAIC0yNjYsNiArMjc0LDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIExpc3RIYXNoU2V0PFN0cmluZz4gbV9zZWVuRmFtaWxpZXNGb3JQcmV3YXJtaW5nOwor
ICAgIExpc3RIYXNoU2V0PFN0cmluZz4gbV9mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFj
a0ZvclByZXdhcm1pbmc7CiAgICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV9wcmV3YXJtUXVldWU7CiAK
ICAgICBmcmllbmQgY2xhc3MgQ29tcGxleFRleHRDb250cm9sbGVyOwpAQCAtMjg2LDQgKzI5NSwz
NCBAQCBpbmxpbmUgdm9pZCBGb250Q2FjaGU6OnBsYXRmb3JtUHVyZ2VJbmFjCiAKICNlbmRpZgog
CisKK2lubGluZSBib29sIEZvbnRDYWNoZTo6UHJld2FybUluZm9ybWF0aW9uOjppc0VtcHR5KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gc2VlbkZhbWlsaWVzLmlzRW1wdHkoKSAmJiBmb250TmFtZXNS
ZXF1aXJpbmdTeXN0ZW1GYWxsYmFjay5pc0VtcHR5KCk7Cit9CisKK2lubGluZSBGb250Q2FjaGU6
OlByZXdhcm1JbmZvcm1hdGlvbiBGb250Q2FjaGU6OlByZXdhcm1JbmZvcm1hdGlvbjo6aXNvbGF0
ZWRDb3B5KCkgY29uc3QKK3sKKyAgICByZXR1cm4geyBzZWVuRmFtaWxpZXMuaXNvbGF0ZWRDb3B5
KCksIGZvbnROYW1lc1JlcXVpcmluZ1N5c3RlbUZhbGxiYWNrLmlzb2xhdGVkQ29weSgpIH07Cit9
CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZvbnRDYWNoZTo6UHJld2FybUluZm9y
bWF0aW9uOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8
IHNlZW5GYW1pbGllczsKKyAgICBlbmNvZGVyIDw8IGZvbnROYW1lc1JlcXVpcmluZ1N5c3RlbUZh
bGxiYWNrOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxGb250
Q2FjaGU6OlByZXdhcm1JbmZvcm1hdGlvbj4gRm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb246
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFByZXdhcm1JbmZvcm1hdGlvbiBwcmV3
YXJtSW5mb3JtYXRpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcmV3YXJtSW5mb3JtYXRp
b24uc2VlbkZhbWlsaWVzKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHByZXdhcm1JbmZvcm1hdGlvbi5mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFj
aykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gcHJld2FybUluZm9ybWF0aW9u
OworfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250Q2FjaGVDb3JlVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCShyZXZpc2lvbiAyMzcwNjUp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3Jl
VGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxNiw3ICs5MTYsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIH0oKTsKIAogICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9ja2VyKG1fZmFtaWx5
TmFtZVRvRm9udERlc2NyaXB0b3JzTG9jayk7Ci0gICAgICAgIHJldHVybiBtX2ZhbWlseU5hbWVU
b0ZvbnREZXNjcmlwdG9ycy5hZGQoZm9sZGVkLmlzb2xhdGVkQ29weSgpLCBpbnN0YWxsZWRGb250
RmFtaWx5KS5pdGVyYXRvci0+dmFsdWU7CisgICAgICAgIHJldHVybiBtX2ZhbWlseU5hbWVUb0Zv
bnREZXNjcmlwdG9ycy5hZGQoZm9sZGVkLmlzb2xhdGVkQ29weSgpLCBXVEZNb3ZlKGluc3RhbGxl
ZEZvbnRGYW1pbHkpKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgfQogCiAgICAgY29uc3QgSW5zdGFs
bGVkRm9udCYgZm9udEZvclBvc3RTY3JpcHROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcG9zdFNj
cmlwdE5hbWUpCkBAIC0xMzY2LDggKzEzNjYsMTQgQEAgUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6
c3lzdGVtRmFsbGJhY2tGbwogI2VuZGlmCiAKICAgICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBw
bGF0Zm9ybURhdGEgPSBvcmlnaW5hbEZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKTsKKworICAgIGF1
dG8gZnVsbE5hbWUgPSBTdHJpbmcoYWRvcHRDRihDVEZvbnRDb3B5RnVsbE5hbWUocGxhdGZvcm1E
YXRhLmZvbnQoKSkpLmdldCgpKTsKKyAgICBpZiAoIWZ1bGxOYW1lLmlzRW1wdHkoKSkKKyAgICAg
ICAgbV9mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFja0ZvclByZXdhcm1pbmcuYWRkKGZ1
bGxOYW1lKTsKKwogICAgIGF1dG8gcmVzdWx0ID0gbG9va3VwRmFsbGJhY2tGb250KHBsYXRmb3Jt
RGF0YS5mb250KCksIGRlc2NyaXB0aW9uLndlaWdodCgpLCBkZXNjcmlwdGlvbi5sb2NhbGUoKSwg
Y2hhcmFjdGVycywgbGVuZ3RoKTsKICAgICByZXN1bHQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KHJl
c3VsdC5nZXQoKSwgZGVzY3JpcHRpb24sIG51bGxwdHIsIG51bGxwdHIsIHsgfSwgZGVzY3JpcHRp
b24uY29tcHV0ZWRTaXplKCkpOworCiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBs
YXN0UmVzb3J0RmFsbGJhY2tGb250KGRlc2NyaXB0aW9uKTsKIApAQCAtMTUxOSwxOCArMTUyNSwx
NyBAQCBSZWY8Rm9udD4gRm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJhY2tGCiAgICAgcmV0dXJu
IGZvbnRGb3JQbGF0Zm9ybURhdGEocGxhdGZvcm1EYXRhKTsKIH0KIAotRm9udFByZXdhcm1JbmZv
cm1hdGlvbiBGb250Q2FjaGU6OmNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24oKSBjb25zdAorRm9u
dENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb24gRm9udENhY2hlOjpjb2xsZWN0UHJld2FybUluZm9y
bWF0aW9uKCkgY29uc3QKIHsKLSAgICBGb250UHJld2FybUluZm9ybWF0aW9uIGZvbnRQcmV3YXJt
SW5mb3JtYXRpb247Ci0gICAgZm9udFByZXdhcm1JbmZvcm1hdGlvbiA9IGNvcHlUb1ZlY3Rvciht
X3NlZW5GYW1pbGllc0ZvclByZXdhcm1pbmcpOwotICAgIHJldHVybiBmb250UHJld2FybUluZm9y
bWF0aW9uOworICAgIFByZXdhcm1JbmZvcm1hdGlvbiBwcmV3YXJtSW5mb3JtYXRpb247CisgICAg
cHJld2FybUluZm9ybWF0aW9uLnNlZW5GYW1pbGllcyA9IGNvcHlUb1ZlY3RvcihtX3NlZW5GYW1p
bGllc0ZvclByZXdhcm1pbmcpOworICAgIHByZXdhcm1JbmZvcm1hdGlvbi5mb250TmFtZXNSZXF1
aXJpbmdTeXN0ZW1GYWxsYmFjayA9IGNvcHlUb1ZlY3RvcihtX2ZvbnROYW1lc1JlcXVpcmluZ1N5
c3RlbUZhbGxiYWNrRm9yUHJld2FybWluZyk7CisgICAgcmV0dXJuIHByZXdhcm1JbmZvcm1hdGlv
bjsKIH0KIAotdm9pZCBGb250Q2FjaGU6OnByZXdhcm0oY29uc3QgRm9udFByZXdhcm1JbmZvcm1h
dGlvbiYgZm9udFByZXdhcm1JbmZvcm1hdGlvbikKK3ZvaWQgRm9udENhY2hlOjpwcmV3YXJtKGNv
bnN0IFByZXdhcm1JbmZvcm1hdGlvbiYgcHJld2FybUluZm9ybWF0aW9uKQogewotICAgIGF1dG8m
IGZhbWlsaWVzID0gZm9udFByZXdhcm1JbmZvcm1hdGlvbjsKLQotICAgIGlmIChmYW1pbGllcy5p
c0VtcHR5KCkpCisgICAgaWYgKHByZXdhcm1JbmZvcm1hdGlvbi5pc0VtcHR5KCkpCiAgICAgICAg
IHJldHVybjsKIAogICAgIGlmICghbV9wcmV3YXJtUXVldWUpCkBAIC0xNTM4LDkgKzE1NDMsMTkg
QEAgdm9pZCBGb250Q2FjaGU6OnByZXdhcm0oY29uc3QgRm9udFByZXdhcgogCiAgICAgYXV0byYg
ZGF0YWJhc2UgPSBGb250RGF0YWJhc2U6OnNpbmdsZXRvbkRpc2FsbG93aW5nVXNlckluc3RhbGxl
ZEZvbnRzKCk7CiAKLSAgICBtX3ByZXdhcm1RdWV1ZS0+ZGlzcGF0Y2goWyZkYXRhYmFzZSwgZmFt
aWxpZXMgPSBmYW1pbGllcy5pc29sYXRlZENvcHkoKV0gewotICAgICAgICBmb3IgKGF1dG8mIGZh
bWlseSA6IGZhbWlsaWVzKQorICAgIG1fcHJld2FybVF1ZXVlLT5kaXNwYXRjaChbJmRhdGFiYXNl
LCBwcmV3YXJtSW5mb3JtYXRpb24gPSBwcmV3YXJtSW5mb3JtYXRpb24uaXNvbGF0ZWRDb3B5KCld
IHsKKyAgICAgICAgZm9yIChhdXRvJiBmYW1pbHkgOiBwcmV3YXJtSW5mb3JtYXRpb24uc2VlbkZh
bWlsaWVzKQogICAgICAgICAgICAgZGF0YWJhc2UuY29sbGVjdGlvbkZvckZhbWlseShmYW1pbHkp
OworCisgICAgICAgIGZvciAoYXV0byYgZm9udE5hbWUgOiBwcmV3YXJtSW5mb3JtYXRpb24uZm9u
dE5hbWVzUmVxdWlyaW5nU3lzdGVtRmFsbGJhY2spIHsKKyAgICAgICAgICAgIGF1dG8gY2ZGb250
TmFtZSA9IGZvbnROYW1lLmNyZWF0ZUNGU3RyaW5nKCk7CisgICAgICAgICAgICBpZiAoYXV0byB3
YXJtaW5nRm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aE5hbWUoY2ZGb250TmFtZS5nZXQo
KSwgMCwgbnVsbHB0cikpKSB7CisgICAgICAgICAgICAgICAgLy8gVGhpcyBpcyBzdWZmaWNpZW50
IHRvIHdhcm0gQ29yZVRleHQgY2FjaGVzIGZvciBsYW5ndWFnZSBhbmQgY2hhcmFjdGVyIHNwZWNp
ZmljIGZhbGxiYWNrcy4KKyAgICAgICAgICAgICAgICBDRkluZGV4IGNvdmVyZWRMZW5ndGggPSAw
OworICAgICAgICAgICAgICAgIFVDaGFyIGNoYXJhY3RlciA9ICcgJzsKKyAgICAgICAgICAgICAg
ICBhdXRvIGZhbGxiYWNrV2FybWluZ0ZvbnQgPSBhZG9wdENGKENURm9udENyZWF0ZUZvckNoYXJh
Y3RlcnNXaXRoTGFuZ3VhZ2Uod2FybWluZ0ZvbnQuZ2V0KCksICZjaGFyYWN0ZXIsIDEsIG51bGxw
dHIsICZjb3ZlcmVkTGVuZ3RoKSk7CisgICAgICAgICAgICB9CisgICAgICAgIH0KICAgICB9KTsK
IH0KIAo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>352323</attachid>
            <date>2018-10-15 08:25:29 -0700</date>
            <delta_ts>2018-10-15 09:02:45 -0700</delta_ts>
            <desc>patch</desc>
            <filename>prewarm-font-fallback-9.patch</filename>
            <type>text/plain</type>
            <size>10905</size>
            <attacher name="Antti Koivisto">koivisto</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvV2Vi
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDIzNzA2NSkKKysrIFNvdXJjZS9XZWJDb3JlL0NoYW5n
ZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDQ1IEBACisyMDE4LTEwLTE1ICBBbnR0aSBL
b2l2aXN0byAgPGFudHRpQGFwcGxlLmNvbT4KKworICAgICAgICBbUFNPTl0gUHJld2FybSBzeXN0
ZW0gZmFsbGJhY2sgZm9udHMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19i
dWcuY2dpP2lkPTE5MDUxNworCisgICAgICAgIFJldmlld2VkIGJ5IFJ5b3N1a2UgTml3YS4KKwor
ICAgICAgICBUaGlzIHNlZW1zIHRvIGJlIH4yJSBwcm9ncmVzc2lvbiBpbiBQU09OIFBMVDQgd2l0
aCBsYXJnZSAoNDBtcyspIGltcHJvdmVtZW50cyBvbiBzb21lIHBhZ2VzCisgICAgICAgIGFmdGVy
IHByb2Nlc3Mgc3dhcHMuCisKKyAgICAgICAgKiBwYWdlL1ByZXdhcm1JbmZvcm1hdGlvbi5oOgor
ICAgICAgICAoV2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uOjplbmNvZGUgY29uc3QpOgorICAg
ICAgICAoV2ViQ29yZTo6UHJld2FybUluZm9ybWF0aW9uOjpkZWNvZGUpOgorICAgICAgICAqIHBh
Z2UvUHJvY2Vzc1dhcm1pbmcuY3BwOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc1dhcm1pbmc6
OmNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24pOgorICAgICAgICAoV2ViQ29yZTo6UHJvY2Vzc1dh
cm1pbmc6OnByZXdhcm1XaXRoSW5mb3JtYXRpb24pOgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OmNvbGxlY3RQ
cmV3YXJtSW5mb3JtYXRpb24gY29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpw
cmV3YXJtKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaDoKKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6UHJld2FybUluZm9ybWF0aW9uOjppc29sYXRlZENvcHkg
Y29uc3QpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb246
OmVuY29kZSBjb25zdCk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OlByZXdhcm1JbmZv
cm1hdGlvbjo6ZGVjb2RlKToKKworICAgICAgICBNYWtlIGZvbnQgY2FjaGUgcHJld2FybSBpbmZv
cm1hdGlvbiBhIHN0cnVjdCB3aXRoIGVuY29kZS9kZWNvZGUgc3VwcG9ydCBhbmQgbW92ZSBpdCBp
bnRvIEZvbnRDYWNoZSBzY29wZS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREYXRhYmFzZTo6
Y29sbGVjdGlvbkZvckZhbWlseSk6CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnN5c3Rl
bUZhbGxiYWNrRm9yQ2hhcmFjdGVycyk6CisKKyAgICAgICAgQ29sbGVjdCB0aGUgbmFtZXMgb2Yg
Zm9udHMgdGhhdCBlbmQgdXAgbmVlZGluZyBjaGFyYWN0ZXIgc3BlY2lmaWMgc3lzdGVtIGZhbGxi
YWNrcy4KKworICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpjb2xsZWN0UHJld2FybUluZm9y
bWF0aW9uIGNvbnN0KToKKworICAgICAgICBJbmNsdWRlIHRoZW0gaW50byBwcmV3YXJtIGluZm9y
bWF0aW9uLgorCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6OnByZXdhcm0pOgorCisgICAg
ICAgIEludm9raW5nIENURm9udENyZWF0ZUZvckNoYXJhY3RlcnNXaXRoTGFuZ3VhZ2UgZm9yIHRo
ZSBjb3JyZWN0IG5hbWVkIGZvbnQgc2VlbXMgc3VmZmljaWVudCB0byBmdWxseQorICAgICAgICBw
cmV3YXJtIGl0IGZvciBmYWxsYmFja3MgKGluZGVwZW5kZW50IG9mIHNpemUsIGxvY2FsZSBvciBv
dGhlciBjaGFyYWN0ZXJpc3RpY3MpLgorICAgICAgICBBbnkgZnV0dXJlIGNhbGxzIHRvIHN5c3Rl
bUZhbGxiYWNrRm9yQ2hhcmFjdGVycyBhcmUgZmFzdC4KKwogMjAxOC0xMC0xMSAgRG9uIE9sbXN0
ZWFkICA8ZG9uLm9sbXN0ZWFkQHNvbnkuY29tPgogCiAgICAgICAgIEFkZCBIb3VkaW5pIHNwZWNz
IHRvIGZlYXR1cmVzLmpzb24KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BhZ2UvUHJld2FybUluZm9y
bWF0aW9uLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGFnZS9QcmV3YXJtSW5mb3Jt
YXRpb24uaAkocmV2aXNpb24gMjM3MDY1KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9QcmV3YXJt
SW5mb3JtYXRpb24uaAkod29ya2luZyBjb3B5KQpAQCAtMzIsNyArMzIsNyBAQAogbmFtZXNwYWNl
IFdlYkNvcmUgewogCiBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgUHJld2FybUluZm9ybWF0aW9uIHsK
LSAgICBGb250UHJld2FybUluZm9ybWF0aW9uIGZvbnQ7CisgICAgRm9udENhY2hlOjpQcmV3YXJt
SW5mb3JtYXRpb24gZm9udENhY2hlOwogCiAgICAgdGVtcGxhdGU8Y2xhc3MgRW5jb2Rlcj4gdm9p
ZCBlbmNvZGUoRW5jb2RlciYpIGNvbnN0OwogICAgIHRlbXBsYXRlPGNsYXNzIERlY29kZXI+IHN0
YXRpYyBzdGQ6Om9wdGlvbmFsPFByZXdhcm1JbmZvcm1hdGlvbj4gZGVjb2RlKERlY29kZXImKTsK
QEAgLTQxLDE3ICs0MSwxOCBAQCBzdHJ1Y3QgV0VCQ09SRV9FWFBPUlQgUHJld2FybUluZm9ybWF0
aW9uCiB0ZW1wbGF0ZTxjbGFzcyBFbmNvZGVyPgogdm9pZCBQcmV3YXJtSW5mb3JtYXRpb246OmVu
Y29kZShFbmNvZGVyJiBlbmNvZGVyKSBjb25zdAogewotICAgIGVuY29kZXIgPDwgZm9udDsKKyAg
ICBlbmNvZGVyIDw8IGZvbnRDYWNoZTsKIH0KIAogdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4KIHN0
ZDo6b3B0aW9uYWw8UHJld2FybUluZm9ybWF0aW9uPiBQcmV3YXJtSW5mb3JtYXRpb246OmRlY29k
ZShEZWNvZGVyJiBkZWNvZGVyKQogewotICAgIFByZXdhcm1JbmZvcm1hdGlvbiBwcmV3YXJtSW5m
bzsKLSAgICBpZiAoIWRlY29kZXIuZGVjb2RlKHByZXdhcm1JbmZvLmZvbnQpKQorICAgIHN0ZDo6
b3B0aW9uYWw8Rm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb24+IGZvbnRDYWNoZVByZXdhcm1J
bmZvcm1hdGlvbjsKKyAgICBkZWNvZGVyID4+IGZvbnRDYWNoZVByZXdhcm1JbmZvcm1hdGlvbjsK
KyAgICBpZiAoIWZvbnRDYWNoZVByZXdhcm1JbmZvcm1hdGlvbikKICAgICAgICAgcmV0dXJuIHsg
fTsKIAotICAgIHJldHVybiBwcmV3YXJtSW5mbzsKKyAgICByZXR1cm4gUHJld2FybUluZm9ybWF0
aW9uIHsgV1RGTW92ZSgqZm9udENhY2hlUHJld2FybUluZm9ybWF0aW9uKSB9OwogfQogCiB9Cklu
ZGV4OiBTb3VyY2UvV2ViQ29yZS9wYWdlL1Byb2Nlc3NXYXJtaW5nLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvV2ViQ29yZS9wYWdlL1Byb2Nlc3NXYXJtaW5nLmNwcAkocmV2aXNpb24gMjM3MDY1
KQorKysgU291cmNlL1dlYkNvcmUvcGFnZS9Qcm9jZXNzV2FybWluZy5jcHAJKHdvcmtpbmcgY29w
eSkKQEAgLTg4LDE0ICs4OCwxMiBAQCB2b2lkIFByb2Nlc3NXYXJtaW5nOjpwcmV3YXJtR2xvYmFs
bHkoKQogCiBXZWJDb3JlOjpQcmV3YXJtSW5mb3JtYXRpb24gUHJvY2Vzc1dhcm1pbmc6OmNvbGxl
Y3RQcmV3YXJtSW5mb3JtYXRpb24oKQogewotICAgIFByZXdhcm1JbmZvcm1hdGlvbiBpbmZvOwot
ICAgIGluZm8uZm9udCA9IEZvbnRDYWNoZTo6c2luZ2xldG9uKCkuY29sbGVjdFByZXdhcm1JbmZv
cm1hdGlvbigpOwotICAgIHJldHVybiBpbmZvOworICAgIHJldHVybiB7IEZvbnRDYWNoZTo6c2lu
Z2xldG9uKCkuY29sbGVjdFByZXdhcm1JbmZvcm1hdGlvbigpIH07CiB9CiAKIHZvaWQgUHJvY2Vz
c1dhcm1pbmc6OnByZXdhcm1XaXRoSW5mb3JtYXRpb24oY29uc3QgUHJld2FybUluZm9ybWF0aW9u
JiBwcmV3YXJtSW5mbykKIHsKLSAgICBGb250Q2FjaGU6OnNpbmdsZXRvbigpLnByZXdhcm0ocHJl
d2FybUluZm8uZm9udCk7CisgICAgRm9udENhY2hlOjpzaW5nbGV0b24oKS5wcmV3YXJtKHByZXdh
cm1JbmZvLmZvbnRDYWNoZSk7CiB9CiAKIH0KSW5kZXg6IFNvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL0ZvbnRDYWNoZS5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkocmV2aXNpb24gMjM3MDY1KQorKysgU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmNwcAkod29ya2luZyBjb3B5KQpA
QCAtNDgzLDEyICs0ODMsMTIgQEAgdm9pZCBGb250Q2FjaGU6OmludmFsaWRhdGUoKQogCiAjaWYg
IVBMQVRGT1JNKENPQ09BKQogCi1Gb250UHJld2FybUluZm9ybWF0aW9uIEZvbnRDYWNoZTo6Y29s
bGVjdFByZXdhcm1JbmZvcm1hdGlvbigpIGNvbnN0CitGb250Q2FjaGU6OlByZXdhcm1JbmZvcm1h
dGlvbiBGb250Q2FjaGU6OmNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24oKSBjb25zdAogewogICAg
IHJldHVybiB7IH07CiB9CiAKLXZvaWQgRm9udENhY2hlOjpwcmV3YXJtKGNvbnN0IEZvbnRQcmV3
YXJtSW5mb3JtYXRpb24mKQordm9pZCBGb250Q2FjaGU6OnByZXdhcm0oY29uc3QgUHJld2FybUlu
Zm9ybWF0aW9uJikKIHsKIH0KIApJbmRleDogU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhY2hlLmgKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmgJKHJldmlzaW9uIDIzNzA2NSkKKysrIFNvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCSh3b3JraW5nIGNvcHkpCkBAIC02OSw4ICs2OSw2
IEBAIHR5cGVkZWYgSU1MYW5nRm9udExpbmsgSU1MYW5nRm9udExpbmtUeXAKICNlbmRpZgogI2Vu
ZGlmCiAKLXVzaW5nIEZvbnRQcmV3YXJtSW5mb3JtYXRpb24gPSBWZWN0b3I8U3RyaW5nPjsKLQog
Ly8gVGhpcyBrZXkgY29udGFpbnMgdGhlIEZvbnREZXNjcmlwdGlvbiBmaWVsZHMgb3RoZXIgdGhh
biBmYW1pbHkgdGhhdCBtYXR0ZXIgd2hlbiBmZXRjaGluZyBGb250RGF0YXMgKHBsYXRmb3JtIGZv
bnRzKS4KIHN0cnVjdCBGb250RGVzY3JpcHRpb25LZXkgewogICAgIEZvbnREZXNjcmlwdGlvbktl
eSgpID0gZGVmYXVsdDsKQEAgLTIzOSw4ICsyMzcsMTggQEAgcHVibGljOgogICAgIGJvb2wgc2hv
dWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSgpIGNvbnN0IHsgcmV0dXJuIG1f
c2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eTsgfQogICAgIHZvaWQgc2V0
U2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eShib29sIHNob3VsZE1vY2tC
b2xkU3lzdGVtRm9udEZvckFjY2Vzc2liaWxpdHkpIHsgbV9zaG91bGRNb2NrQm9sZFN5c3RlbUZv
bnRGb3JBY2Nlc3NpYmlsaXR5ID0gc2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJp
bGl0eTsgfQogCi0gICAgRm9udFByZXdhcm1JbmZvcm1hdGlvbiBjb2xsZWN0UHJld2FybUluZm9y
bWF0aW9uKCkgY29uc3Q7Ci0gICAgdm9pZCBwcmV3YXJtKGNvbnN0IEZvbnRQcmV3YXJtSW5mb3Jt
YXRpb24mKTsKKyAgICBzdHJ1Y3QgUHJld2FybUluZm9ybWF0aW9uIHsKKyAgICAgICAgVmVjdG9y
PFN0cmluZz4gc2VlbkZhbWlsaWVzOworICAgICAgICBWZWN0b3I8U3RyaW5nPiBmb250TmFtZXNS
ZXF1aXJpbmdTeXN0ZW1GYWxsYmFjazsKKworICAgICAgICBib29sIGlzRW1wdHkoKSBjb25zdDsK
KyAgICAgICAgUHJld2FybUluZm9ybWF0aW9uIGlzb2xhdGVkQ29weSgpIGNvbnN0OworCisgICAg
ICAgIHRlbXBsYXRlPGNsYXNzIEVuY29kZXI+IHZvaWQgZW5jb2RlKEVuY29kZXImKSBjb25zdDsK
KyAgICAgICAgdGVtcGxhdGU8Y2xhc3MgRGVjb2Rlcj4gc3RhdGljIHN0ZDo6b3B0aW9uYWw8UHJl
d2FybUluZm9ybWF0aW9uPiBkZWNvZGUoRGVjb2RlciYpOworICAgIH07CisgICAgUHJld2FybUlu
Zm9ybWF0aW9uIGNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24oKSBjb25zdDsKKyAgICB2b2lkIHBy
ZXdhcm0oY29uc3QgUHJld2FybUluZm9ybWF0aW9uJik7CiAKIHByaXZhdGU6CiAgICAgRm9udENh
Y2hlKCk7CkBAIC0yNjYsNiArMjc0LDcgQEAgcHJpdmF0ZToKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQogICAgIExpc3RIYXNoU2V0PFN0cmluZz4gbV9zZWVuRmFtaWxpZXNGb3JQcmV3YXJtaW5nOwor
ICAgIExpc3RIYXNoU2V0PFN0cmluZz4gbV9mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFj
a0ZvclByZXdhcm1pbmc7CiAgICAgUmVmUHRyPFdvcmtRdWV1ZT4gbV9wcmV3YXJtUXVldWU7CiAK
ICAgICBmcmllbmQgY2xhc3MgQ29tcGxleFRleHRDb250cm9sbGVyOwpAQCAtMjg2LDQgKzI5NSwz
NCBAQCBpbmxpbmUgdm9pZCBGb250Q2FjaGU6OnBsYXRmb3JtUHVyZ2VJbmFjCiAKICNlbmRpZgog
CisKK2lubGluZSBib29sIEZvbnRDYWNoZTo6UHJld2FybUluZm9ybWF0aW9uOjppc0VtcHR5KCkg
Y29uc3QKK3sKKyAgICByZXR1cm4gc2VlbkZhbWlsaWVzLmlzRW1wdHkoKSAmJiBmb250TmFtZXNS
ZXF1aXJpbmdTeXN0ZW1GYWxsYmFjay5pc0VtcHR5KCk7Cit9CisKK2lubGluZSBGb250Q2FjaGU6
OlByZXdhcm1JbmZvcm1hdGlvbiBGb250Q2FjaGU6OlByZXdhcm1JbmZvcm1hdGlvbjo6aXNvbGF0
ZWRDb3B5KCkgY29uc3QKK3sKKyAgICByZXR1cm4geyBzZWVuRmFtaWxpZXMuaXNvbGF0ZWRDb3B5
KCksIGZvbnROYW1lc1JlcXVpcmluZ1N5c3RlbUZhbGxiYWNrLmlzb2xhdGVkQ29weSgpIH07Cit9
CisKK3RlbXBsYXRlPGNsYXNzIEVuY29kZXI+Cit2b2lkIEZvbnRDYWNoZTo6UHJld2FybUluZm9y
bWF0aW9uOjplbmNvZGUoRW5jb2RlciYgZW5jb2RlcikgY29uc3QKK3sKKyAgICBlbmNvZGVyIDw8
IHNlZW5GYW1pbGllczsKKyAgICBlbmNvZGVyIDw8IGZvbnROYW1lc1JlcXVpcmluZ1N5c3RlbUZh
bGxiYWNrOworfQorCit0ZW1wbGF0ZTxjbGFzcyBEZWNvZGVyPgorc3RkOjpvcHRpb25hbDxGb250
Q2FjaGU6OlByZXdhcm1JbmZvcm1hdGlvbj4gRm9udENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb246
OmRlY29kZShEZWNvZGVyJiBkZWNvZGVyKQoreworICAgIFByZXdhcm1JbmZvcm1hdGlvbiBwcmV3
YXJtSW5mb3JtYXRpb247CisgICAgaWYgKCFkZWNvZGVyLmRlY29kZShwcmV3YXJtSW5mb3JtYXRp
b24uc2VlbkZhbWlsaWVzKSkKKyAgICAgICAgcmV0dXJuIHsgfTsKKyAgICBpZiAoIWRlY29kZXIu
ZGVjb2RlKHByZXdhcm1JbmZvcm1hdGlvbi5mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFj
aykpCisgICAgICAgIHJldHVybiB7IH07CisKKyAgICByZXR1cm4gcHJld2FybUluZm9ybWF0aW9u
OworfQorCiB9CkluZGV4OiBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250Q2FjaGVDb3JlVGV4dC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCShyZXZpc2lvbiAyMzcwNjUp
CisrKyBTb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3Jl
VGV4dC5jcHAJKHdvcmtpbmcgY29weSkKQEAgLTkxNiw3ICs5MTYsNyBAQCBwdWJsaWM6CiAgICAg
ICAgIH0oKTsKIAogICAgICAgICBzdGQ6OmxvY2tfZ3VhcmQ8TG9jaz4gbG9ja2VyKG1fZmFtaWx5
TmFtZVRvRm9udERlc2NyaXB0b3JzTG9jayk7Ci0gICAgICAgIHJldHVybiBtX2ZhbWlseU5hbWVU
b0ZvbnREZXNjcmlwdG9ycy5hZGQoZm9sZGVkLmlzb2xhdGVkQ29weSgpLCBpbnN0YWxsZWRGb250
RmFtaWx5KS5pdGVyYXRvci0+dmFsdWU7CisgICAgICAgIHJldHVybiBtX2ZhbWlseU5hbWVUb0Zv
bnREZXNjcmlwdG9ycy5hZGQoZm9sZGVkLmlzb2xhdGVkQ29weSgpLCBXVEZNb3ZlKGluc3RhbGxl
ZEZvbnRGYW1pbHkpKS5pdGVyYXRvci0+dmFsdWU7CiAgICAgfQogCiAgICAgY29uc3QgSW5zdGFs
bGVkRm9udCYgZm9udEZvclBvc3RTY3JpcHROYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgcG9zdFNj
cmlwdE5hbWUpCkBAIC0xMzY2LDggKzEzNjYsMTQgQEAgUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6
c3lzdGVtRmFsbGJhY2tGbwogI2VuZGlmCiAKICAgICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBw
bGF0Zm9ybURhdGEgPSBvcmlnaW5hbEZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKTsKKworICAgIGF1
dG8gZnVsbE5hbWUgPSBTdHJpbmcoYWRvcHRDRihDVEZvbnRDb3B5RnVsbE5hbWUocGxhdGZvcm1E
YXRhLmZvbnQoKSkpLmdldCgpKTsKKyAgICBpZiAoIWZ1bGxOYW1lLmlzRW1wdHkoKSkKKyAgICAg
ICAgbV9mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFja0ZvclByZXdhcm1pbmcuYWRkKGZ1
bGxOYW1lKTsKKwogICAgIGF1dG8gcmVzdWx0ID0gbG9va3VwRmFsbGJhY2tGb250KHBsYXRmb3Jt
RGF0YS5mb250KCksIGRlc2NyaXB0aW9uLndlaWdodCgpLCBkZXNjcmlwdGlvbi5sb2NhbGUoKSwg
Y2hhcmFjdGVycywgbGVuZ3RoKTsKICAgICByZXN1bHQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KHJl
c3VsdC5nZXQoKSwgZGVzY3JpcHRpb24sIG51bGxwdHIsIG51bGxwdHIsIHsgfSwgZGVzY3JpcHRp
b24uY29tcHV0ZWRTaXplKCkpOworCiAgICAgaWYgKCFyZXN1bHQpCiAgICAgICAgIHJldHVybiBs
YXN0UmVzb3J0RmFsbGJhY2tGb250KGRlc2NyaXB0aW9uKTsKIApAQCAtMTUxOSwxOCArMTUyNSwx
NCBAQCBSZWY8Rm9udD4gRm9udENhY2hlOjpsYXN0UmVzb3J0RmFsbGJhY2tGCiAgICAgcmV0dXJu
IGZvbnRGb3JQbGF0Zm9ybURhdGEocGxhdGZvcm1EYXRhKTsKIH0KIAotRm9udFByZXdhcm1JbmZv
cm1hdGlvbiBGb250Q2FjaGU6OmNvbGxlY3RQcmV3YXJtSW5mb3JtYXRpb24oKSBjb25zdAorRm9u
dENhY2hlOjpQcmV3YXJtSW5mb3JtYXRpb24gRm9udENhY2hlOjpjb2xsZWN0UHJld2FybUluZm9y
bWF0aW9uKCkgY29uc3QKIHsKLSAgICBGb250UHJld2FybUluZm9ybWF0aW9uIGZvbnRQcmV3YXJt
SW5mb3JtYXRpb247Ci0gICAgZm9udFByZXdhcm1JbmZvcm1hdGlvbiA9IGNvcHlUb1ZlY3Rvciht
X3NlZW5GYW1pbGllc0ZvclByZXdhcm1pbmcpOwotICAgIHJldHVybiBmb250UHJld2FybUluZm9y
bWF0aW9uOworICAgIHJldHVybiB7IGNvcHlUb1ZlY3RvcihtX3NlZW5GYW1pbGllc0ZvclByZXdh
cm1pbmcpLCBjb3B5VG9WZWN0b3IobV9mb250TmFtZXNSZXF1aXJpbmdTeXN0ZW1GYWxsYmFja0Zv
clByZXdhcm1pbmcpIH07CiB9CiAKLXZvaWQgRm9udENhY2hlOjpwcmV3YXJtKGNvbnN0IEZvbnRQ
cmV3YXJtSW5mb3JtYXRpb24mIGZvbnRQcmV3YXJtSW5mb3JtYXRpb24pCit2b2lkIEZvbnRDYWNo
ZTo6cHJld2FybShjb25zdCBQcmV3YXJtSW5mb3JtYXRpb24mIHByZXdhcm1JbmZvcm1hdGlvbikK
IHsKLSAgICBhdXRvJiBmYW1pbGllcyA9IGZvbnRQcmV3YXJtSW5mb3JtYXRpb247Ci0KLSAgICBp
ZiAoZmFtaWxpZXMuaXNFbXB0eSgpKQorICAgIGlmIChwcmV3YXJtSW5mb3JtYXRpb24uaXNFbXB0
eSgpKQogICAgICAgICByZXR1cm47CiAKICAgICBpZiAoIW1fcHJld2FybVF1ZXVlKQpAQCAtMTUz
OCw5ICsxNTQwLDE5IEBAIHZvaWQgRm9udENhY2hlOjpwcmV3YXJtKGNvbnN0IEZvbnRQcmV3YXIK
IAogICAgIGF1dG8mIGRhdGFiYXNlID0gRm9udERhdGFiYXNlOjpzaW5nbGV0b25EaXNhbGxvd2lu
Z1VzZXJJbnN0YWxsZWRGb250cygpOwogCi0gICAgbV9wcmV3YXJtUXVldWUtPmRpc3BhdGNoKFsm
ZGF0YWJhc2UsIGZhbWlsaWVzID0gZmFtaWxpZXMuaXNvbGF0ZWRDb3B5KCldIHsKLSAgICAgICAg
Zm9yIChhdXRvJiBmYW1pbHkgOiBmYW1pbGllcykKKyAgICBtX3ByZXdhcm1RdWV1ZS0+ZGlzcGF0
Y2goWyZkYXRhYmFzZSwgcHJld2FybUluZm9ybWF0aW9uID0gcHJld2FybUluZm9ybWF0aW9uLmlz
b2xhdGVkQ29weSgpXSB7CisgICAgICAgIGZvciAoYXV0byYgZmFtaWx5IDogcHJld2FybUluZm9y
bWF0aW9uLnNlZW5GYW1pbGllcykKICAgICAgICAgICAgIGRhdGFiYXNlLmNvbGxlY3Rpb25Gb3JG
YW1pbHkoZmFtaWx5KTsKKworICAgICAgICBmb3IgKGF1dG8mIGZvbnROYW1lIDogcHJld2FybUlu
Zm9ybWF0aW9uLmZvbnROYW1lc1JlcXVpcmluZ1N5c3RlbUZhbGxiYWNrKSB7CisgICAgICAgICAg
ICBhdXRvIGNmRm9udE5hbWUgPSBmb250TmFtZS5jcmVhdGVDRlN0cmluZygpOworICAgICAgICAg
ICAgaWYgKGF1dG8gd2FybWluZ0ZvbnQgPSBhZG9wdENGKENURm9udENyZWF0ZVdpdGhOYW1lKGNm
Rm9udE5hbWUuZ2V0KCksIDAsIG51bGxwdHIpKSkgeworICAgICAgICAgICAgICAgIC8vIFRoaXMg
aXMgc3VmZmljaWVudCB0byB3YXJtIENvcmVUZXh0IGNhY2hlcyBmb3IgbGFuZ3VhZ2UgYW5kIGNo
YXJhY3RlciBzcGVjaWZpYyBmYWxsYmFja3MuCisgICAgICAgICAgICAgICAgQ0ZJbmRleCBjb3Zl
cmVkTGVuZ3RoID0gMDsKKyAgICAgICAgICAgICAgICBVQ2hhciBjaGFyYWN0ZXIgPSAnICc7Cisg
ICAgICAgICAgICAgICAgYXV0byBmYWxsYmFja1dhcm1pbmdGb250ID0gYWRvcHRDRihDVEZvbnRD
cmVhdGVGb3JDaGFyYWN0ZXJzV2l0aExhbmd1YWdlKHdhcm1pbmdGb250LmdldCgpLCAmY2hhcmFj
dGVyLCAxLCBudWxscHRyLCAmY292ZXJlZExlbmd0aCkpOworICAgICAgICAgICAgfQorICAgICAg
ICB9CiAgICAgfSk7CiB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>