<?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>180951</bug_id>
          
          <creation_ts>2017-12-18 15:24:56 -0800</creation_ts>
          <short_desc>A disallowed user-installed font may be used if its PostScript name is specified</short_desc>
          <delta_ts>2018-02-02 20:22:09 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>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>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Myles C. Maxfield">mmaxfield</reporter>
          <assigned_to name="Myles C. Maxfield">mmaxfield</assigned_to>
          <cc>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>jonlee</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>webkit-bug-importer</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1382930</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-18 15:24:56 -0800</bug_when>
    <thetext>A disallowed user-installed font may be used if its PostScript name is specified</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382931</commentid>
    <comment_count>1</comment_count>
      <attachid>329692</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-18 15:25:45 -0800</bug_when>
    <thetext>Created attachment 329692
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382961</commentid>
    <comment_count>2</comment_count>
      <attachid>329703</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-18 16:16:37 -0800</bug_when>
    <thetext>Created attachment 329703
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1382995</commentid>
    <comment_count>3</comment_count>
      <attachid>329716</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-18 17:24:27 -0800</bug_when>
    <thetext>Created attachment 329716
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383052</commentid>
    <comment_count>4</comment_count>
      <attachid>329735</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-18 20:45:24 -0800</bug_when>
    <thetext>Created attachment 329735
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383053</commentid>
    <comment_count>5</comment_count>
      <attachid>329736</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-18 20:46:49 -0800</bug_when>
    <thetext>Created attachment 329736
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383054</commentid>
    <comment_count>6</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-18 20:49:48 -0800</bug_when>
    <thetext>&lt;rdar://problem/36029919&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383058</commentid>
    <comment_count>7</comment_count>
      <attachid>329738</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-18 21:06:04 -0800</bug_when>
    <thetext>Created attachment 329738
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383197</commentid>
    <comment_count>8</comment_count>
      <attachid>329778</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-19 11:15:56 -0800</bug_when>
    <thetext>Created attachment 329778
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383206</commentid>
    <comment_count>9</comment_count>
      <attachid>329780</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-19 11:38:37 -0800</bug_when>
    <thetext>Created attachment 329780
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383213</commentid>
    <comment_count>10</comment_count>
      <attachid>329785</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-19 12:00:31 -0800</bug_when>
    <thetext>Created attachment 329785
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383387</commentid>
    <comment_count>11</comment_count>
      <attachid>329847</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-19 15:55:25 -0800</bug_when>
    <thetext>Created attachment 329847
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383447</commentid>
    <comment_count>12</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-19 17:24:03 -0800</bug_when>
    <thetext>This cause fast/text/user-installed-fonts/disable.html to pass.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383501</commentid>
    <comment_count>13</comment_count>
      <attachid>329877</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-19 19:41:01 -0800</bug_when>
    <thetext>Created attachment 329877
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383503</commentid>
    <comment_count>14</comment_count>
      <attachid>329878</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-19 19:41:38 -0800</bug_when>
    <thetext>Created attachment 329878
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383506</commentid>
    <comment_count>15</comment_count>
      <attachid>329880</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2017-12-19 19:47:30 -0800</bug_when>
    <thetext>Created attachment 329880
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383914</commentid>
    <comment_count>16</comment_count>
      <attachid>329880</attachid>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2017-12-20 17:22:08 -0800</bug_when>
    <thetext>Comment on attachment 329880
Patch

Looks good! r=me.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1383915</commentid>
    <comment_count>17</comment_count>
      <attachid>329880</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2017-12-20 17:26:11 -0800</bug_when>
    <thetext>Comment on attachment 329880
Patch

Rejecting attachment 329880 from commit-queue.

Failed to run &quot;[&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=webkit-queues.webkit.org&apos;, &apos;--bot-id=webkit-cq-01&apos;, &apos;apply-attachment&apos;, &apos;--no-update&apos;, &apos;--non-interactive&apos;, 329880, &apos;--port=mac&apos;]&quot; exit_code: 2 cwd: /Volumes/Data/EWS/WebKit

Last 500 characters of output:
cs/cocoa/FontCacheCoreText.cpp
Hunk #1 FAILED at 908.
Hunk #2 FAILED at 937.
2 out of 3 hunks FAILED -- saving rejects to file Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp.rej
patching file Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.h
patching file Source/WebCore/platform/graphics/mac/FontCustomPlatformData.cpp

Failed to run &quot;[u&apos;/Volumes/Data/EWS/WebKit/Tools/Scripts/svn-apply&apos;, &apos;--force&apos;, &apos;--reviewer&apos;, u&apos;Brent Fulgham&apos;]&quot; exit_code: 1 cwd: /Volumes/Data/EWS/WebKit

Full output: http://webkit-queues.webkit.org/results/5782477</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1385185</commentid>
    <comment_count>18</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2018-01-02 11:59:26 -0800</bug_when>
    <thetext>It looks like the patch is stale. Can you land manually, please?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1386357</commentid>
    <comment_count>19</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-01-05 16:30:10 -0800</bug_when>
    <thetext>I need to wait for &lt;rdar://problem/35895817&gt;.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394336</commentid>
    <comment_count>20</comment_count>
      <attachid>332602</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-01-29 16:52:20 -0800</bug_when>
    <thetext>Created attachment 332602
Patch for committing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394464</commentid>
    <comment_count>21</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-01-30 01:01:35 -0800</bug_when>
    <thetext>Committed r227776: &lt;https://trac.webkit.org/changeset/227776&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1394723</commentid>
    <comment_count>22</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-01-30 13:51:25 -0800</bug_when>
    <thetext>Committed r227848: &lt;https://trac.webkit.org/changeset/227848&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1395739</commentid>
    <comment_count>23</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-02-01 20:46:30 -0800</bug_when>
    <thetext>Committed r227995: &lt;https://trac.webkit.org/changeset/227995&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1396092</commentid>
    <comment_count>24</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2018-02-02 20:22:09 -0800</bug_when>
    <thetext>Committed r228044: &lt;https://trac.webkit.org/changeset/228044&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329692</attachid>
            <date>2017-12-18 15:25:45 -0800</date>
            <delta_ts>2017-12-18 16:16:35 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171218152545.patch</filename>
            <type>text/plain</type>
            <size>2370</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTcxNzViZTZjNzJhYTAz
MWViNjdlNmM4MTMyZjJhZTgyNzNkZTg3My4uZDBjMmUyYTRjNmE0Y2IxNjg5MDQ3ZmFiZmMxMDIw
Njk2NDVjMzk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTEyLTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250RGF0YWJhc2U6OmZvbnRGb3JQb3N0U2NyaXB0TmFtZSk6CisKIDIwMTctMTItMTggIERlYW4g
SmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc29tZSBmdW5jdGlvbnMg
aW4gR3JhcGhpY3NDb250ZXh0Q0cgdXNlIGNhbGxfb25jZSBmb3Igc3RhdGljcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuY3BwCmluZGV4IGNlNzAzNzQxNTA2OWUwNzMxM2FiOThhZDk1MzcyMTYwYWQ5ZGI2
ZjMuLmQ1Y2Y0NTU0YzZlMmQxM2M4YTA1NDAwNDhkODVkNDM4YTk5YjY1ZDkgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2Fj
aGVDb3JlVGV4dC5jcHAKQEAgLTk2MCw3ICs5NjAsMTQgQEAgcHVibGljOgogICAgICAgICAgICAg
ICAgIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JE
ZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBlRGlj
dGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsK
ICAgICAgICAgICAgIH0KICAgICAgICAgICAgIGF1dG8gZm9udERlc2NyaXB0b3JUb01hdGNoID0g
YWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlV2l0aEF0dHJpYnV0ZXMoYXR0cmlidXRlcy5n
ZXQoKSkpOwotICAgICAgICAgICAgYXV0byBtYXRjaCA9IGFkb3B0Q0Yoc3RhdGljX2Nhc3Q8Q1RG
b250RGVzY3JpcHRvclJlZj4oQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2Ny
aXB0b3IoZm9udERlc2NyaXB0b3JUb01hdGNoLmdldCgpLCBudWxscHRyKSkpOworICAgICAgICAg
ICAgUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVzOworI2lmIENBTl9ESVNB
TExPV19VU0VSX0lOU1RBTExFRF9GT05UUworICAgICAgICAgICAgaWYgKG1fYWxsb3dVc2VySW5z
dGFsbGVkRm9udHMgPT0gRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pIHsK
KyAgICAgICAgICAgICAgICBDRlR5cGVSZWYgbWFuZGF0b3J5QXR0cmlidXRlc1ZhbHVlc1tdID0g
eyBrQ1RGb250VXNlckluc3RhbGxlZEF0dHJpYnV0ZSB9OworICAgICAgICAgICAgICAgIG1hbmRh
dG9yeUF0dHJpYnV0ZXMgPSBhZG9wdENGKENGU2V0Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IG1hbmRhdG9yeUF0dHJpYnV0ZXNWYWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgobWFuZGF0b3J5QXR0
cmlidXRlc1ZhbHVlcyksICZrQ0ZUeXBlU2V0Q2FsbEJhY2tzKSk7CisgICAgICAgICAgICB9Cisj
ZW5kaWYKKyAgICAgICAgICAgIGF1dG8gbWF0Y2ggPSBhZG9wdENGKHN0YXRpY19jYXN0PENURm9u
dERlc2NyaXB0b3JSZWY+KENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGluZ0ZvbnREZXNjcmlw
dG9yKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbWFuZGF0b3J5QXR0cmlidXRlcy5nZXQo
KSkpKTsKICAgICAgICAgICAgIHJldHVybiBJbnN0YWxsZWRGb250KG1hdGNoLmdldCgpKTsKICAg
ICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogICAgIH0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329703</attachid>
            <date>2017-12-18 16:16:37 -0800</date>
            <delta_ts>2017-12-18 17:24:26 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171218161636.patch</filename>
            <type>text/plain</type>
            <size>6533</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTcxNzViZTZjNzJhYTAz
MWViNjdlNmM4MTMyZjJhZTgyNzNkZTg3My4uZDBjMmUyYTRjNmE0Y2IxNjg5MDQ3ZmFiZmMxMDIw
Njk2NDVjMzk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTEyLTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250RGF0YWJhc2U6OmZvbnRGb3JQb3N0U2NyaXB0TmFtZSk6CisKIDIwMTctMTItMTggIERlYW4g
SmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc29tZSBmdW5jdGlvbnMg
aW4gR3JhcGhpY3NDb250ZXh0Q0cgdXNlIGNhbGxfb25jZSBmb3Igc3RhdGljcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRl
eHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuY3BwCmluZGV4IGNlNzAzNzQxNTA2OWUwNzMxM2FiOThhZDk1MzcyMTYwYWQ5ZGI2
ZjMuLjZmYjVjMTRlZWIyYWJmMTJiZjFjZTY4Zjg3OTc5Y2JiMzc0NzQzNTQgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2Fj
aGVDb3JlVGV4dC5jcHAKQEAgLTkwMywyNiArOTAzLDM2IEBAIHB1YmxpYzoKICAgICAgICAgRm9u
dFNlbGVjdGlvbkNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXM7CiAgICAgfTsKIAorICAgIHN0YXRp
YyB2b2lkIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoQ0ZNdXRhYmxlRGljdGlv
bmFyeVJlZiBhdHRyaWJ1dGVzLCBGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFs
bG93VXNlckluc3RhbGxlZEZvbnRzKQorICAgIHsKKyNpZiBDQU5fRElTQUxMT1dfVVNFUl9JTlNU
QUxMRURfRk9OVFMKKyAgICAgICAgaWYgKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gRm9u
dENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pCisgICAgICAgICAgICBDRkRpY3Rp
b25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLmdldCgpLCBrQ1RGb250VXNlckluc3RhbGxlZEF0dHJp
YnV0ZSwga0NGQm9vbGVhbkZhbHNlKTsKKyNlbmRpZgorICAgIH0KKworICAgIHN0YXRpYyBDRjxD
RlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRlcyhGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxl
ZEZvbnRzIGFsbG93VXNlckluc3RhbGxlZEZvbnRzKQorICAgIHsKKyNpZiBDQU5fRElTQUxMT1df
VVNFUl9JTlNUQUxMRURfRk9OVFMKKyAgICAgICAgaWYgKGFsbG93VXNlckluc3RhbGxlZEZvbnRz
ID09IEZvbnRDYWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5vKSB7CisgICAgICAgICAg
ICBDRlR5cGVSZWYgbWFuZGF0b3J5QXR0cmlidXRlc1ZhbHVlc1tdID0geyBrQ1RGb250VXNlcklu
c3RhbGxlZEF0dHJpYnV0ZSB9OworICAgICAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZTZXRDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbWFuZGF0b3J5QXR0cmlidXRlc1ZhbHVlcywgV1RGX0FS
UkFZX0xFTkdUSChtYW5kYXRvcnlBdHRyaWJ1dGVzVmFsdWVzKSwgJmtDRlR5cGVTZXRDYWxsQmFj
a3MpKTsKKyAgICAgICAgfQorI2VuZGlmCisgICAgICAgIHJldHVybiBudWxscHRyOworICAgIH0K
KwogICAgIGNvbnN0IEluc3RhbGxlZEZvbnRGYW1pbHkmIGNvbGxlY3Rpb25Gb3JGYW1pbHkoY29u
c3QgU3RyaW5nJiBmYW1pbHlOYW1lKQogICAgIHsKICAgICAgICAgYXV0byBmb2xkZWQgPSBmYW1p
bHlOYW1lLmZvbGRDYXNlKCk7CiAgICAgICAgIHJldHVybiBtX2ZhbWlseU5hbWVUb0ZvbnREZXNj
cmlwdG9ycy5lbnN1cmUoZm9sZGVkLCBbJl0gewogICAgICAgICAgICAgYXV0byBmYW1pbHlOYW1l
U3RyaW5nID0gZm9sZGVkLmNyZWF0ZUNGU3RyaW5nKCk7Ci0gICAgICAgICAgICBSZXRhaW5QdHI8
Q0ZEaWN0aW9uYXJ5UmVmPiBhdHRyaWJ1dGVzOwotI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RB
TExFRF9GT05UUwotICAgICAgICAgICAgaWYgKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0g
Rm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pIHsKLSAgICAgICAgICAgICAg
ICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RmFtaWx5TmFtZUF0dHJpYnV0ZSwga0NURm9u
dFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFs
dWVzW10gPSB7IGZhbWlseU5hbWVTdHJpbmcuZ2V0KCksIGtDRkJvb2xlYW5GYWxzZSB9OwotICAg
ICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZr
Q0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxs
QmFja3MpKTsKLSAgICAgICAgICAgIH0gZWxzZQotI2VuZGlmCi0gICAgICAgICAgICB7Ci0gICAg
ICAgICAgICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1
dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGZhbWlseU5hbWVT
dHJpbmcuZ2V0KCkgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRp
Y3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJS
QVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBl
RGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBh
dXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlw
ZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRk
VmFsdWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUsIGZhbWls
eU5hbWVTdHJpbmcuZ2V0KCkpOworICAgICAgICAgICAgYWRkQXR0cmlidXRlc0ZvclVzZXJJbnN0
YWxsZWRGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzKTsK
ICAgICAgICAgICAgIGF1dG8gZm9udERlc2NyaXB0b3JUb01hdGNoID0gYWRvcHRDRihDVEZvbnRE
ZXNjcmlwdG9yQ3JlYXRlV2l0aEF0dHJpYnV0ZXMoYXR0cmlidXRlcy5nZXQoKSkpOwotICAgICAg
ICAgICAgaWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1h
dGNoaW5nRm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVsbHB0
cikpKSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0
ZXMgPSBGb250RGF0YWJhc2U6Om1hbmRhdG9yeUF0dHJpYnV0ZXMobV9hbGxvd1VzZXJJbnN0YWxs
ZWRGb250cyk7CisgICAgICAgICAgICBpZiAoYXV0byBtYXRjaGVzID0gYWRvcHRDRihDVEZvbnRE
ZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVzY3JpcHRvcnMoZm9udERlc2NyaXB0b3JUb01h
dGNoLmdldCgpLCBtYW5kYXRvcnlBdHRyaWJ1dGVzLmdldCgpKSkpIHsKICAgICAgICAgICAgICAg
ICBhdXRvIGNvdW50ID0gQ0ZBcnJheUdldENvdW50KG1hdGNoZXMuZ2V0KCkpOwogICAgICAgICAg
ICAgICAgIFZlY3RvcjxJbnN0YWxsZWRGb250PiByZXN1bHQ7CiAgICAgICAgICAgICAgICAgcmVz
dWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQpOwpAQCAtOTQ2LDIxICs5NTYsMTMgQEAg
cHVibGljOgogI2Vsc2UKICAgICAgICAgICAgIENGU3RyaW5nUmVmIG5hbWVBdHRyaWJ1dGUgPSBr
Q1RGb250TmFtZUF0dHJpYnV0ZTsKICNlbmRpZgotICAgICAgICAgICAgUmV0YWluUHRyPENGRGlj
dGlvbmFyeVJlZj4gYXR0cmlidXRlczsKLSNpZiBDQU5fRElTQUxMT1dfVVNFUl9JTlNUQUxMRURf
Rk9OVFMKLSAgICAgICAgICAgIGlmIChtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzID09IEZvbnRD
YWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5vKSB7Ci0gICAgICAgICAgICAgICAgQ0ZU
eXBlUmVmIGtleXNbXSA9IHsga0NURm9udEVuYWJsZWRBdHRyaWJ1dGUsIG5hbWVBdHRyaWJ1dGUs
IGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlIH07Ci0gICAgICAgICAgICAgICAgQ0ZUeXBl
UmVmIHZhbHVlc1tdID0geyBrQ0ZCb29sZWFuVHJ1ZSwgcG9zdFNjcmlwdE5hbWVTdHJpbmcuZ2V0
KCksIGtDRkJvb2xlYW5GYWxzZSB9OwotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBhZG9w
dENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMs
IFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywg
JmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKLSAgICAgICAgICAgIH0gZWxzZQot
I2VuZGlmCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9
IHsga0NURm9udEVuYWJsZWRBdHRyaWJ1dGUsIG5hbWVBdHRyaWJ1dGUgfTsKLSAgICAgICAgICAg
ICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGtDRkJvb2xlYW5UcnVlLCBwb3N0U2NyaXB0TmFt
ZVN0cmluZy5nZXQoKSB9OwotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENG
RGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9B
UlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5
cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKLSAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGF1dG8gYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCAwLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZU
eXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgICAgICAgICBDRkRpY3Rpb25hcnlB
ZGRWYWx1ZShhdHRyaWJ1dGVzLmdldCgpLCBrQ1RGb250RW5hYmxlZEF0dHJpYnV0ZSwga0NGQm9v
bGVhblRydWUpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5n
ZXQoKSwgbmFtZUF0dHJpYnV0ZSwgcG9zdFNjcmlwdE5hbWVTdHJpbmcuZ2V0KCkpOworICAgICAg
ICAgICAgYWRkQXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhhdHRyaWJ1dGVzLmdldCgp
LCBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKICAgICAgICAgICAgIGF1dG8gZm9udERlc2Ny
aXB0b3JUb01hdGNoID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlV2l0aEF0dHJpYnV0
ZXMoYXR0cmlidXRlcy5nZXQoKSkpOwotICAgICAgICAgICAgYXV0byBtYXRjaCA9IGFkb3B0Q0Yo
c3RhdGljX2Nhc3Q8Q1RGb250RGVzY3JpcHRvclJlZj4oQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1h
dGNoaW5nRm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3JUb01hdGNoLmdldCgpLCBudWxscHRy
KSkpOworICAgICAgICAgICAgUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVz
ID0gRm9udERhdGFiYXNlOjptYW5kYXRvcnlBdHRyaWJ1dGVzKG1fYWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMpOworICAgICAgICAgICAgYXV0byBtYXRjaCA9IGFkb3B0Q0Yoc3RhdGljX2Nhc3Q8Q1RG
b250RGVzY3JpcHRvclJlZj4oQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2Ny
aXB0b3IoZm9udERlc2NyaXB0b3JUb01hdGNoLmdldCgpLCBtYW5kYXRvcnlBdHRyaWJ1dGVzLmdl
dCgpKSkpOwogICAgICAgICAgICAgcmV0dXJuIEluc3RhbGxlZEZvbnQobWF0Y2guZ2V0KCkpOwog
ICAgICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CiAgICAgfQo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329716</attachid>
            <date>2017-12-18 17:24:27 -0800</date>
            <delta_ts>2017-12-18 20:45:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171218172426.patch</filename>
            <type>text/plain</type>
            <size>28207</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MDgxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTcxNzViZTZjNzJhYTAz
MWViNjdlNmM4MTMyZjJhZTgyNzNkZTg3My4uZDBjMmUyYTRjNmE0Y2IxNjg5MDQ3ZmFiZmMxMDIw
Njk2NDVjMzk0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE1IEBACisyMDE3LTEyLTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIENvdmVyZWQgYnkgZXhpc3RpbmcgdGVzdHMuCisKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpG
b250RGF0YWJhc2U6OmZvbnRGb3JQb3N0U2NyaXB0TmFtZSk6CisKIDIwMTctMTItMTggIERlYW4g
SmFja3NvbiAgPGRpbm9AYXBwbGUuY29tPgogCiAgICAgICAgIE1ha2Ugc29tZSBmdW5jdGlvbnMg
aW4gR3JhcGhpY3NDb250ZXh0Q0cgdXNlIGNhbGxfb25jZSBmb3Igc3RhdGljcwpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKaW5kZXggN2RjZmNkZWQz
ZTMxNWU2ZTUwYzZjZjhjNTIxZDljMDEwNThkZjgzYy4uYzhmNDNhZjA3ZmExMjZkNmNjODBlNjc5
MDU4NDI4MzBhNTA1MzY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y29jb2EvQ29yZVRleHRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2Nv
YS9Db3JlVGV4dFNQSS5oCkBAIC02Niw2ICs2Niw3IEBAIGV4dGVybiBjb25zdCBDRlN0cmluZ1Jl
ZiBrQ1RGb250UmVmZXJlbmNlVVJMQXR0cmlidXRlOwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVm
IGtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBr
Q1RGb250UG9zdFNjcmlwdE5hbWVBdHRyaWJ1dGU7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYg
a0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGU7CitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYg
a0NURm9udEZhbGxiYWNrT3B0aW9uQXR0cmlidXRlOwogCiBib29sIENURm9udFRyYW5zZm9ybUds
eXBocyhDVEZvbnRSZWYsIENHR2x5cGggZ2x5cGhzW10sIENHU2l6ZSBhZHZhbmNlc1tdLCBDRklu
ZGV4IGNvdW50LCBDVEZvbnRUcmFuc2Zvcm1PcHRpb25zKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE1MTllYzI0MTI1Y2Iy
YWNjZjdkYTNkODY5YjJiOTJjZDMxZTY5OWEuLjAyZmUzYmVkNGJhMmM0N2ZjZTRiZGNjZTQwOGM0
ZGNiMGM2NWRkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTM3MjAsNiArMzcyMCw3IEBACiAJCUMxMDVEQTY0MEYzQUE2Qjgw
MDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMwRjNBQTZCODAwMURENDRGIC8qIFRleHRF
bmNvZGluZ0RldGVjdG9yLmggKi87IH07CiAJCUMyMDE1QzBBMUJFNkZFQjIwMDgyMjM4OSAvKiBG
b250VmFyaWFudEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMyMDE1QzA5MUJFNkZFMkMwMDgyMjM4OSAvKiBGb250VmFyaWFudEJ1aWxkZXIu
aCAqLzsgfTsKIAkJQzIxREYyRUExRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25W
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIx
REYyRTgxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oICovOyB9Owor
CQlDMjQ1OEU2MzFGRTg5N0IwMDA1OTQ3NTkgLyogRm9udENhY2hlQ29yZVRleHQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyNDU4RTYxMUZFODk3OUUw
MDU5NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyNjAxN0E0MUM3MkRDOTkwMEY3NEExNiAvKiBDU1NG
b250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzI2MDE3QTIxQzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRGYWNlU2V0LmggKi87IH07CiAJ
CUMyODA4MzNGMUM2REMyNkYwMDE0NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjgwODMzRTFDNkRDMjJDMDAxNDUxQjYg
LyogSlNGb250RmFjZS5oICovOyB9OwogCQlDMkFCMEFGNzFFNkIzQzZDMDAxMzQ4QzUgLyogRm9u
dFNlbGVjdGlvbkFsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJBQjBBRjUxRTZCM0M2QzAwMTM0OEM1IC8qIEZvbnRTZWxlY3Rpb25BbGdv
cml0aG0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTI2MzYsNiArMTI2MzcsNyBAQAogCQlDMjAxNUMwOTFCRTZGRTJDMDA4MjIzODkgLyogRm9u
dFZhcmlhbnRCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRWYXJpYW50QnVpbGRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjFERjJFNzFEOUU0RTk5MDBGNUIyNEMgLyog
Q1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyMURGMkU4MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFyaWF0aW9uVmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udFZhcmlhdGlvblZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyNDU4RTYxMUZFODk3OUUwMDU5NDc1
OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250Q2FjaGVDb3JlVGV4
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjYwMTdBMTFDNzJEQzk5MDBGNzRB
MTYgLyogQ1NTRm9udEZhY2VTZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ1NTRm9udEZhY2VTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MjYwMTdBMjFDNzJEQzk5MDBGNzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udEZhY2VTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzI4MDgzM0MxQzZEQjE5NDAwMTQ1MUI2IC8qIEZvbnRGYWNlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBGb250RmFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMzAwMyw2ICsyMzAwNSw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAogCQkJCTFDMzk2OUNGMUI3NDIxMUUwMDJCQ0ZBNyAvKiBGb250Q2FjaGVDb3JlVGV4
dC5jcHAgKi8sCisJCQkJQzI0NThFNjExRkU4OTc5RTAwNTk0NzU5IC8qIEZvbnRDYWNoZUNvcmVU
ZXh0LmggKi8sCiAJCQkJQjJBRkZDNzgwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDYXNjYWRlQ29j
b2EubW0gKi8sCiAJCQkJN0M0RURENzMxQTdCNjA3ODAwMTk4QzREIC8qIEZvbnRDb2NvYS5tbSAq
LywKIAkJCQkxQzEyQUMyQzFFRTc3OTk1MDA3OUUwQTAgLyogRm9udERlc2NyaXB0aW9uQ29jb2Eu
Y3BwICovLApAQCAtMjYzNzIsNyArMjYzNzUsNiBAQAogCQkJCTA3OUQwODZCMTYyRjIxRjkwMERC
ODY1OCAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDdCNzExNkQxRDg5OUU2MzAwOUYwRkZCIC8qIENhcHR1cmVEZXZpY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3QjcxMTZGMUQ4OTlFNjMwMDlGMEZGQiAvKiBDYXB0dXJlRGV2aWNlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5MkQxRkU2RTBGMzAwQkJCQzZCIC8qIFJlbmRl
clRyZWVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM3MzQxNTE5Nzc4OTZEMDA0NkJG
QzUgLyogQ0FSaW5nQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTUwQjY5RTA5OURGMDI3
MDA5MEQ3ODEgLyogQ0RBVEFTZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREY0QjcxNjFF
MDBCN0U1MDBFMjM1QTIgLyogQ0RNLmggaW4gSGVhZGVycyAqLywKQEAgLTI2NDc3LDcgKzI2NDc5
LDYgQEAKIAkJCQk5NzQ2QUYyMTE0RjREREU2MDAzRTdBNzEgLyogQ29vcmRpbmF0ZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTNGODAyMDM1MUU5RTQ3QkYwMERFQzYxRCAvKiBDb3JlQXVkaW9DYXB0
dXJlRGV2aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzRjgwMjAzNzFFOUU0N0M1MDBERUM2MUQg
LyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0
N0MzOTJFMUZFNkUwRjcwMEJCQkM2QiAvKiBSZW5kZXJUcmVlUG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3QUZGNDIyMUVGQjE0NDkwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291
cmNlSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyog
Q29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MkYxMjlFMThDMTU3NkYw
MDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5LmggaW4gSGVhZGVycyAqLywKQEAgLTI2ODM5
LDcgKzI2ODQwLDYgQEAKIAkJCQlBN0NGQjNEMjBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY1RTREOTFFNTY3N0E5MDA0QTFGMDEgLyogRHJhZ0l0
ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTgxRjY1RkY2MTM3ODhGQUEwMEZGNkYyRCAvKiBEcmFn
U3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0N0MzOTMyMUZFNkUxMDUwMEJCQkM2QiAvKiBS
ZW5kZXJUcmVlVXBkYXRlckxpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJBNjZGMTE3
NDJCRDg2MDBDMjAyNTEgLyogRHluYW1pY0xpbmtlckludGVycG9zaW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRDZFRDJDODEzNkI4RTY2MDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1NzEzN0I2NTNCMDAwMDhEQ0UgLyogRHluYW1pY3ND
b21wcmVzc29yS2VybmVsLmggaW4gSGVhZGVycyAqLywKQEAgLTI2OTI2LDYgKzI2OTI2LDcgQEAK
IAkJCQk1MTdBNTM1QjFGNTg4QTRDMDBEQ0RDMEEgLyogRmV0Y2hCb2R5Q29uc3VtZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxMjlDOTk3MUY1OUI5NjMwMDlENzQwMyAvKiBGZXRjaEJvZHlTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDEyOURCMUYzRDE0MzgwMEQxNUU0NyAvKiBGZXRj
aEhlYWRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNjFFMkQ1MUZFNDhEQzUwMEVDMkU5NiAv
KiBGZXRjaExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QTUzNTgxRjU4ODlFODAwRENE
QzBBIC8qIEZldGNoTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUFENzUzQTFD
RUY2QkQxMDBBMzE0ODYgLyogRmV0Y2hPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0Ux
OTE0RDFGMkE5QUZCMDAyNzJGNzggLyogRmV0Y2hSZWZlcnJlclBvbGljeS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNjk4OCw2ICsyNjk4OSw3IEBACiAJCQkJMUFDMkQ4OUQxQjFFMjkxRjAwRDUyRTg3
IC8qIEZvbnRBbnRpYWxpYXNpbmdTdGF0ZVNhdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0I5
MkQ0RjEyOTM1NTBCMDBDODM4N0YgLyogRm9udEJhc2VsaW5lLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkMzREE2MzBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udENhY2hlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlDMjQ1OEU2MzFGRTg5N0IwMDA1OTQ3NTkgLyogRm9udENhY2hlQ29yZVRleHQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyQzNEQTYxMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjgwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNj
YWRlRm9udHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzdFMEQwMEE1QzEwMDMwMDc0RCAv
KiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjM2LDcgKzI3
MjM4LDYgQEAKIAkJCQk5NzdCMzg3ODEyMjg4M0U5MDBCODFGRjggLyogSFRNTFRva2VuaXplci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwNzU2OEMxNDIyNjJENjAwNDE0MTYxIC8qIEhUTUxUcmFj
a0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzNzI2MTIyODcyMTcwMEI4MUZGOCAv
KiBIVE1MVHJlZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0N0MzOTMwMUZFNkUwRkQw
MEJCQkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRlckZpcnN0TGV0dGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEVBNzlGMjBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTFVMaXN0RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQUQ0OTkxNDMxOEYwODE1MTAwQkYwMDkyIC8qIEhUTUxVbmtub3duRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjEzQUIwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhU
TUxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjczODgsNyArMjczODksNiBAQAog
CQkJCTdBNTQ4NTgwMTRFMDJENTEwMDZBRTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNUI4MUNBRTFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAv
KiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxNjFFMkQ1
MUZFNDhEQzUwMEVDMkU5NiAvKiBGZXRjaExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4
NDBFMUQxODdCNzRENTAwODQzQjEwIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQUYxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3Rv
ckxheWVyVHJlZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNCMDFGQUE0NDYyMDAz
N0QxRTYgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjg1MjMs
NyArMjg1MjMsNiBAQAogCQkJCTFBNTY5RDBCMEQ3RTJCODIwMDdDMzk4MyAvKiBOUF9qc29iamVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MjdGRDIxNDE2QTE1QjAwM0E4M0M4IC8qIG5wYXBp
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTIxOUIzQjBEQ0E4N0FCMDA0MEUzQTAgLyogbnBmdW5j
dGlvbnMuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0N0MzOTJGMUZFNkUwRjkwMEJCQkM2QiAvKiBS
ZW5kZXJUcmVlVXBkYXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MjdGRDMxNDE2QTE1QjAw
M0E4M0M4IC8qIG5wcnVudGltZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlEMEYwRDdFMkI4
MjAwN0MzOTgzIC8qIG5wcnVudGltZV9pbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQx
MDBEN0UyQjgyMDA3QzM5ODMgLyogbnBydW50aW1lX2ludGVybmFsLmggaW4gSGVhZGVycyAqLywK
QEAgLTI4Njc3LDcgKzI4Njc2LDYgQEAKIAkJCQkwNzBFMDkxOTE4NzVFRUZDMDAzQTFEM0MgLyog
UGxhdGZvcm1NZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Rjk0NDE2MTg2NEQw
NDYwMDVEMzFDQiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxQkY3MDEwMEZFODZGNjEwMDVFOERFQyAvKiBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hh
bm5lbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5MzMxRkU2RTEwODAwQkJCQzZCIC8qIFJl
bmRlclRyZWVVcGRhdGVyTXVsdGlDb2x1bW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0NzY5
MDlBQzRENDMwMEE2QUFCNCAvKiBQbGF0Zm9ybU1vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUM1OTg5MDU4MTRFOUMyOTkwMEU4RDE4QiAvKiBQbGF0Zm9ybVBhc3RlYm9hcmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRUMwMUQ3MEMyNzRFQjQwMDlGNEVDOSAvKiBQbGF0Zm9ybVNjcmVl
bi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODkyNSw2ICsyODkyMywxMyBAQAogCQkJCUZFRDEzRDUy
MENFQTk0OTcwMEQ4OTQ2NiAvKiBSZW5kZXJUaGVtZUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4ODcwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlclRoZW1lTWFjLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0YxOTk4QzA4MjQ1RTU5MDAxRTlBQkMgLyogUmVuZGVyVHJlZUFzVGV4dC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTQ3QzM5MkQxRkU2RTBGMzAwQkJCQzZCIC8qIFJlbmRlclRyZWVC
dWlsZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDdDMzkyRTFGRTZFMEY3MDBCQkJDNkIgLyog
UmVuZGVyVHJlZVBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDdDMzkyRjFGRTZFMEY5
MDBCQkJDNkIgLyogUmVuZGVyVHJlZVVwZGF0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0N0Mz
OTMwMUZFNkUwRkQwMEJCQkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRlckZpcnN0TGV0dGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFNDdDMzkzMTFGRTZFMTAyMDBCQkJDNkIgLyogUmVuZGVyVHJlZVVw
ZGF0ZXJHZW5lcmF0ZWRDb250ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDdDMzkzMjFGRTZF
MTA1MDBCQkJDNkIgLyogUmVuZGVyVHJlZVVwZGF0ZXJMaXN0SXRlbS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTQ3QzM5MzMxRkU2RTEwODAwQkJCQzZCIC8qIFJlbmRlclRyZWVVcGRhdGVyTXVsdGlD
b2x1bW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxNDUyMENENjhBMzUwMEZBREE3NSAvKiBS
ZW5kZXJWaWRlby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjgwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlclZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFMjA1MDdFMThBNDU4QzIwMDgw
NjQ3RSAvKiBSZW5kZXJWVFRDdWUuaCBpbiBIZWFkZXJzICovLApAQCAtMjkyMDcsNyArMjkyMTIs
NiBAQAogCQkJCTk3QkM2QTNDMTUwNUYwODEwMDFCNzRBQyAvKiBTUUxFcnJvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUEyMjQ2NEEwQ0M5OEREQjAwQzA1MjQwIC8qIFNRTGl0ZURhdGFiYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3RTQ3NEUxRjEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0
YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDdDMzkzMTFGRTZFMTAyMDBCQkJD
NkIgLyogUmVuZGVyVHJlZVVwZGF0ZXJHZW5lcmF0ZWRDb250ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk3RTQ3NEUxRTEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCNUE2ODQyMjBGRkFCRTk4MDBEMjQ2ODkgLyogU1FM
aXRlRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQkRCNEIxQzQ1NkZGQTAwNjQ5
NERGIC8qIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlU2V0LmNwcAppbmRleCA1YzQwMzEzZTU5YzZjNGQzZmUwZmIyN2VkODM2
OGQwNjY2MTk0MTM2Li5iMzVmN2IzMzljMTEwM2I5NDFhOGI3ZWQ0ZDIwYmE2ZjM2Yjg3YjQyIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNldC5jcHAKQEAgLTEwNCw5ICsxMDQsOSBAQCB2
b2lkIENTU0ZvbnRGYWNlU2V0OjplbnN1cmVMb2NhbEZvbnRGYWNlc0ZvckZhbWlseVJlZ2lzdGVy
ZWQoY29uc3QgU3RyaW5nJiBmYW1pbAogICAgIGlmIChtX2xvY2FsbHlJbnN0YWxsZWRGYWNlc0xv
b2t1cFRhYmxlLmNvbnRhaW5zKGZhbWlseU5hbWUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBG
b250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNlckluc3RhbGxlZEZvbnRz
ID0gRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzOworICAgIEFsbG93VXNl
ckluc3RhbGxlZEZvbnRzIGFsbG93VXNlckluc3RhbGxlZEZvbnRzID0gQWxsb3dVc2VySW5zdGFs
bGVkRm9udHM6OlllczsKICAgICBpZiAobV9vd25pbmdGb250U2VsZWN0b3ItPmRvY3VtZW50KCkg
JiYgbV9vd25pbmdGb250U2VsZWN0b3ItPmRvY3VtZW50KCktPnNldHRpbmdzKCkuc2hvdWxkRGlz
YWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSkKLSAgICAgICAgYWxsb3dVc2VySW5zdGFsbGVkRm9u
dHMgPSBGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObzsKKyAgICAgICAgYWxs
b3dVc2VySW5zdGFsbGVkRm9udHMgPSBBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm87CiAgICAg
VmVjdG9yPEZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcyA9IEZvbnRDYWNo
ZTo6c2luZ2xldG9uKCkuZ2V0Rm9udFNlbGVjdGlvbkNhcGFiaWxpdGllc0luRmFtaWx5KGZhbWls
eU5hbWUsIGFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKICAgICBpZiAoY2FwYWJpbGl0aWVzLmlz
RW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuaAppbmRleCA0YWY0N2Q0YjM2Mzk5NDc1ODJjN2UwODQ4MmE5YTVjNzcy
YTRkZTQxLi4xYzZjZTQyNjE0MTBjYjdiNDU1YzY3M2YyODRhZGVlZDVlYmYwMWVlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAtNDEsNyArNDEs
NyBAQAogI2luY2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oQ09D
T0EpCi0jaW5jbHVkZSA8Q29yZVRleHQvQ1RGb250Lmg+CisjaW5jbHVkZSAiRm9udENhY2hlQ29y
ZVRleHQuaCIKICNlbmRpZgogCiAjaWYgT1MoV0lORE9XUykKQEAgLTEyNCw3ICsxMjQsOCBAQCBz
dHJ1Y3QgRm9udERlc2NyaXB0aW9uS2V5IHsKIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6YXJy
YXk8dW5zaWduZWQsIDI+IG1ha2VGbGFnc0tleShjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uKQogICAgIHsKLSAgICAgICAgdW5zaWduZWQgZmlyc3QgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oZGVzY3JpcHRpb24uc2NyaXB0KCkpIDw8IDEzCisgICAgICAgIHVuc2lnbmVkIGZpcnN0
ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNjcmlwdCgpKSA8PCAxNAorICAg
ICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24ubWF5UmVwcmVzZW50
VXNlckluc3RhbGxlZEZvbnQoKSkgPDwgMTMKICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGRlc2NyaXB0aW9uLmZvbnRTdHlsZUF4aXMoKSA9PSBGb250U3R5bGVBeGlzOjpzbG50
KSA8PCAxMgogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24u
b3B0aWNhbFNpemluZygpKSA8PCAxMQogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4oZGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSkgPDwgOQpAQCAtMjAwLDEwICsyMDEs
NiBAQCBwdWJsaWM6CiAgICAgc3RhdGljIElNdWx0aUxhbmd1YWdlKiBnZXRNdWx0aUxhbmd1YWdl
SW50ZXJmYWNlKCk7CiAjZW5kaWYKIAotICAgIGVudW0gY2xhc3MgQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMgewotICAgICAgICBZZXMsCi0gICAgICAgIE5vCi0gICAgfTsKICAgICAvLyBUaGlzIGZ1
bmN0aW9uIGV4aXN0cyBzbyBDU1NGb250U2VsZWN0b3IgY2FuIGhhdmUgYSB1bmlmaWVkIG5vdGlv
biBvZiBwcmVpbnN0YWxsZWQgZm9udHMgYW5kIEBmb250LWZhY2UuCiAgICAgLy8gSXQgY29tZXMg
aW50byBwbGF5IHdoZW4geW91IGNyZWF0ZSBhbiBAZm9udC1mYWNlIHdoaWNoIHNoYXJlcyBhIGZh
bWlseSBuYW1lIGFzIGEgcHJlaW5zdGFsbGVkIGZvbnQuCiAgICAgVmVjdG9yPEZvbnRTZWxlY3Rp
b25DYXBhYmlsaXRpZXM+IGdldEZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXNJbkZhbWlseShjb25z
dCBBdG9taWNTdHJpbmcmLCBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CkBAIC0yNzAsMzIgKzI2
Nyw3IEBAIGlubGluZSBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hl
OjpjcmVhdGVGb250UGxhdGZvcm1EYXRhRm9yVGVzCiAgICAgcmV0dXJuIGNyZWF0ZUZvbnRQbGF0
Zm9ybURhdGEoZm9udERlc2NyaXB0aW9uLCBmYW1pbHksIG51bGxwdHIsIG51bGxwdHIsIHsgfSk7
CiB9CiAKLSNpZiBQTEFURk9STShDT0NPQSkKLQotc3RydWN0IFN5bnRoZXNpc1BhaXIgewotICAg
IFN5bnRoZXNpc1BhaXIoYm9vbCBuZWVkc1N5bnRoZXRpY0JvbGQsIGJvb2wgbmVlZHNTeW50aGV0
aWNPYmxpcXVlKQotICAgICAgICA6IG5lZWRzU3ludGhldGljQm9sZChuZWVkc1N5bnRoZXRpY0Jv
bGQpCi0gICAgICAgICwgbmVlZHNTeW50aGV0aWNPYmxpcXVlKG5lZWRzU3ludGhldGljT2JsaXF1
ZSkKLSAgICB7Ci0gICAgfQotCi0gICAgc3RkOjpwYWlyPGJvb2wsIGJvb2w+IGJvbGRPYmxpcXVl
UGFpcigpIGNvbnN0Ci0gICAgewotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIobmVlZHNT
eW50aGV0aWNCb2xkLCBuZWVkc1N5bnRoZXRpY09ibGlxdWUpOwotICAgIH0KLQotICAgIGJvb2wg
bmVlZHNTeW50aGV0aWNCb2xkOwotICAgIGJvb2wgbmVlZHNTeW50aGV0aWNPYmxpcXVlOwotfTsK
LQotUmV0YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYsIGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNl
RmVhdHVyZXMsIGNvbnN0IEZvbnRWYXJpYW50U2V0dGluZ3MqIGZvbnRGYWNlVmFyaWFudFNldHRp
bmdzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0
aWVzLCBmbG9hdCBzaXplLCBib29sIGFwcGx5V2VpZ2h0V2lkdGhTbG9wZVZhcmlhdGlvbnMgPSB0
cnVlKTsKLVN5bnRoZXNpc1BhaXIgY29tcHV0ZU5lY2Vzc2FyeVN5bnRoZXNpcyhDVEZvbnRSZWYs
IGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wgaXNQbGF0Zm9ybUZvbnQgPSBmYWxzZSk7Ci1S
ZXRhaW5QdHI8Q1RGb250UmVmPiBwbGF0Zm9ybUZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2UoY29u
c3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIEZvbnRTZWxlY3Rpb25SZXF1ZXN0LCBmbG9hdCBzaXpl
KTsKLVJldGFpblB0cjxDVEZvbnRSZWY+IHBsYXRmb3JtRm9udFdpdGhGYW1pbHkoY29uc3QgQXRv
bWljU3RyaW5nJiBmYW1pbHksIEZvbnRTZWxlY3Rpb25SZXF1ZXN0LCBUZXh0UmVuZGVyaW5nTW9k
ZSwgZmxvYXQgc2l6ZSk7Ci1ib29sIHJlcXVpcmVzQ3VzdG9tRmFsbGJhY2tGb250KFVDaGFyMzIg
Y2hhcmFjdGVyKTsKLUZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzRm9yRm9u
dERlc2NyaXB0b3IoQ1RGb250RGVzY3JpcHRvclJlZik7Ci0KLSNlbHNlCisjaWYgIVBMQVRGT1JN
KENPQ09BKQogCiBpbmxpbmUgdm9pZCBGb250Q2FjaGU6OnBsYXRmb3JtUHVyZ2VJbmFjdGl2ZUZv
bnREYXRhKCkKIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAppbmRleCBjZTcwMzc0MTUwNjllMDcz
MTNhYjk4YWQ5NTM3MjE2MGFkOWRiNmYzLi4xYjYxMWM5ZDEwODg2MDI2ZThiZTgxNDkxZDMwMTM2
NDlmMWFjY2VhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCkBAIC04MzMsNyArODMzLDcgQEAg
cHVibGljOgogI2lmICFDQU5fRElTQUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKICAgICBzdGF0
aWMgRm9udERhdGFiYXNlJiBzaW5nbGV0b24oKQogICAgIHsKLSAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEZvbnREYXRhYmFzZT4gZGF0YWJhc2UoRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0
YWxsZWRGb250czo6WWVzKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREYXRh
YmFzZT4gZGF0YWJhc2UoQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Olllcyk7CiAgICAgICAgIHJl
dHVybiBkYXRhYmFzZTsKICAgICB9CiAjZW5kaWYKQEAgLTg0MSw3ICs4NDEsNyBAQCBwdWJsaWM6
CiAgICAgc3RhdGljIEZvbnREYXRhYmFzZSYgc2luZ2xldG9uQWxsb3dpbmdVc2VySW5zdGFsbGVk
Rm9udHMoKQogICAgIHsKICNpZiBDQU5fRElTQUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKLSAg
ICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREYXRhYmFzZT4gZGF0YWJhc2UoRm9udENh
Y2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzKTsKKyAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEZvbnREYXRhYmFzZT4gZGF0YWJhc2UoQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6
Olllcyk7CiAgICAgICAgIHJldHVybiBkYXRhYmFzZTsKICNlbHNlCiAgICAgICAgIHJldHVybiBz
aW5nbGV0b24oKTsKQEAgLTg1MSw3ICs4NTEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEZvbnRE
YXRhYmFzZSYgc2luZ2xldG9uRGlzYWxsb3dpbmdVc2VySW5zdGFsbGVkRm9udHMoKQogICAgIHsK
ICNpZiBDQU5fRElTQUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKLSAgICAgICAgc3RhdGljIE5l
dmVyRGVzdHJveWVkPEZvbnREYXRhYmFzZT4gZGF0YWJhc2UoRm9udENhY2hlOjpBbGxvd1VzZXJJ
bnN0YWxsZWRGb250czo6Tm8pOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERh
dGFiYXNlPiBkYXRhYmFzZShBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pOwogICAgICAgICBy
ZXR1cm4gZGF0YWJhc2U7CiAjZWxzZQogICAgICAgICByZXR1cm4gc2luZ2xldG9uKCk7CkBAIC05
MDgsMjEgKzkwOCwxMiBAQCBwdWJsaWM6CiAgICAgICAgIGF1dG8gZm9sZGVkID0gZmFtaWx5TmFt
ZS5mb2xkQ2FzZSgpOwogICAgICAgICByZXR1cm4gbV9mYW1pbHlOYW1lVG9Gb250RGVzY3JpcHRv
cnMuZW5zdXJlKGZvbGRlZCwgWyZdIHsKICAgICAgICAgICAgIGF1dG8gZmFtaWx5TmFtZVN0cmlu
ZyA9IGZvbGRlZC5jcmVhdGVDRlN0cmluZygpOwotICAgICAgICAgICAgUmV0YWluUHRyPENGRGlj
dGlvbmFyeVJlZj4gYXR0cmlidXRlczsKLSNpZiBDQU5fRElTQUxMT1dfVVNFUl9JTlNUQUxMRURf
Rk9OVFMKLSAgICAgICAgICAgIGlmIChtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzID09IEZvbnRD
YWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5vKSB7Ci0gICAgICAgICAgICAgICAgQ0ZU
eXBlUmVmIGtleXNbXSA9IHsga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUsIGtDVEZvbnRVc2Vy
SW5zdGFsbGVkQXR0cmlidXRlIH07Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1td
ID0geyBmYW1pbHlOYW1lU3RyaW5nLmdldCgpLCBrQ0ZCb29sZWFuRmFsc2UgfTsKLSAgICAgICAg
ICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlw
ZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tz
KSk7Ci0gICAgICAgICAgICB9IGVsc2UKLSNlbmRpZgotICAgICAgICAgICAgewotICAgICAgICAg
ICAgICAgIENGVHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRGYW1pbHlOYW1lQXR0cmlidXRlIH07
Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1tdID0geyBmYW1pbHlOYW1lU3RyaW5n
LmdldCgpIH07Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9u
YXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xF
TkdUSChrZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rp
b25hcnlWYWx1ZUNhbGxCYWNrcykpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgYXV0byBh
dHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0
aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVl
KGF0dHJpYnV0ZXMuZ2V0KCksIGtDVEZvbnRGYW1pbHlOYW1lQXR0cmlidXRlLCBmYW1pbHlOYW1l
U3RyaW5nLmdldCgpKTsKKyAgICAgICAgICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVk
Rm9udHMoYXR0cmlidXRlcy5nZXQoKSwgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CiAgICAg
ICAgICAgICBhdXRvIGZvbnREZXNjcmlwdG9yVG9NYXRjaCA9IGFkb3B0Q0YoQ1RGb250RGVzY3Jp
cHRvckNyZWF0ZVdpdGhBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKLSAgICAgICAgICAg
IGlmIChhdXRvIG1hdGNoZXMgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGlu
Z0ZvbnREZXNjcmlwdG9ycyhmb250RGVzY3JpcHRvclRvTWF0Y2guZ2V0KCksIG51bGxwdHIpKSkg
eworICAgICAgICAgICAgUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVzID0g
bWFuZGF0b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhtX2FsbG93VXNlckluc3Rh
bGxlZEZvbnRzKTsKKyAgICAgICAgICAgIGlmIChhdXRvIG1hdGNoZXMgPSBhZG9wdENGKENURm9u
dERlc2NyaXB0b3JDcmVhdGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9ycyhmb250RGVzY3JpcHRvclRv
TWF0Y2guZ2V0KCksIG1hbmRhdG9yeUF0dHJpYnV0ZXMuZ2V0KCkpKSkgewogICAgICAgICAgICAg
ICAgIGF1dG8gY291bnQgPSBDRkFycmF5R2V0Q291bnQobWF0Y2hlcy5nZXQoKSk7CiAgICAgICAg
ICAgICAgICAgVmVjdG9yPEluc3RhbGxlZEZvbnQ+IHJlc3VsdDsKICAgICAgICAgICAgICAgICBy
ZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBhY2l0eShjb3VudCk7CkBAIC05NDYsMjEgKzkzNywxMyBA
QCBwdWJsaWM6CiAjZWxzZQogICAgICAgICAgICAgQ0ZTdHJpbmdSZWYgbmFtZUF0dHJpYnV0ZSA9
IGtDVEZvbnROYW1lQXR0cmlidXRlOwogI2VuZGlmCi0gICAgICAgICAgICBSZXRhaW5QdHI8Q0ZE
aWN0aW9uYXJ5UmVmPiBhdHRyaWJ1dGVzOwotI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExF
RF9GT05UUwotICAgICAgICAgICAgaWYgKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gRm9u
dENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pIHsKLSAgICAgICAgICAgICAgICBD
RlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RW5hYmxlZEF0dHJpYnV0ZSwgbmFtZUF0dHJpYnV0
ZSwga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5
cGVSZWYgdmFsdWVzW10gPSB7IGtDRkJvb2xlYW5UcnVlLCBwb3N0U2NyaXB0TmFtZVN0cmluZy5n
ZXQoKSwga0NGQm9vbGVhbkZhbHNlIH07Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IGFk
b3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtleXMsIHZhbHVl
cywgV1RGX0FSUkFZX0xFTkdUSChrZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tz
LCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwotICAgICAgICAgICAgfSBlbHNl
Ci0jZW5kaWYKLSAgICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYga2V5c1td
ID0geyBrQ1RGb250RW5hYmxlZEF0dHJpYnV0ZSwgbmFtZUF0dHJpYnV0ZSB9OwotICAgICAgICAg
ICAgICAgIENGVHlwZVJlZiB2YWx1ZXNbXSA9IHsga0NGQm9vbGVhblRydWUsIHBvc3RTY3JpcHRO
YW1lU3RyaW5nLmdldCgpIH07Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IGFkb3B0Q0Yo
Q0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtleXMsIHZhbHVlcywgV1RG
X0FSUkFZX0xFTkdUSChrZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NG
VHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwotICAgICAgICAgICAgfQorICAgICAgICAg
ICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtD
RlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFy
eUFkZFZhbHVlKGF0dHJpYnV0ZXMuZ2V0KCksIGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBrQ0ZC
b29sZWFuVHJ1ZSk7CisgICAgICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVz
LmdldCgpLCBuYW1lQXR0cmlidXRlLCBwb3N0U2NyaXB0TmFtZVN0cmluZy5nZXQoKSk7CisgICAg
ICAgICAgICBhZGRBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKGF0dHJpYnV0ZXMuZ2V0
KCksIG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOwogICAgICAgICAgICAgYXV0byBmb250RGVz
Y3JpcHRvclRvTWF0Y2ggPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVXaXRoQXR0cmli
dXRlcyhhdHRyaWJ1dGVzLmdldCgpKSk7Ci0gICAgICAgICAgICBhdXRvIG1hdGNoID0gYWRvcHRD
RihzdGF0aWNfY2FzdDxDVEZvbnREZXNjcmlwdG9yUmVmPihDVEZvbnREZXNjcmlwdG9yQ3JlYXRl
TWF0Y2hpbmdGb250RGVzY3JpcHRvcihmb250RGVzY3JpcHRvclRvTWF0Y2guZ2V0KCksIG51bGxw
dHIpKSk7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0
ZXMgPSBtYW5kYXRvcnlBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKG1fYWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMpOworICAgICAgICAgICAgYXV0byBtYXRjaCA9IGFkb3B0Q0YoQ1RGb250
RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3JUb01h
dGNoLmdldCgpLCBtYW5kYXRvcnlBdHRyaWJ1dGVzLmdldCgpKSk7CiAgICAgICAgICAgICByZXR1
cm4gSW5zdGFsbGVkRm9udChtYXRjaC5nZXQoKSk7CiAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1
ZTsKICAgICB9CkBAIC05NzQsMTQgKzk1NywxNCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZy
aWVuZCBjbGFzcyBOZXZlckRlc3Ryb3llZDxGb250RGF0YWJhc2U+OwogCi0gICAgRm9udERhdGFi
YXNlKEZvbnRDYWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMpCisgICAgRm9udERhdGFiYXNlKEFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNl
ckluc3RhbGxlZEZvbnRzKQogICAgICAgICA6IG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMoYWxs
b3dVc2VySW5zdGFsbGVkRm9udHMpCiAgICAgewogICAgIH0KIAogICAgIEhhc2hNYXA8U3RyaW5n
LCBJbnN0YWxsZWRGb250RmFtaWx5PiBtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9yczsKICAg
ICBIYXNoTWFwPFN0cmluZywgSW5zdGFsbGVkRm9udD4gbV9wb3N0U2NyaXB0TmFtZVRvRm9udERl
c2NyaXB0b3JzOwotICAgIEZvbnRDYWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHMgbV9hbGxv
d1VzZXJJbnN0YWxsZWRGb250czsKKyAgICBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBtX2FsbG93
VXNlckluc3RhbGxlZEZvbnRzOwogfTsKIAogLy8gQmVjYXVzZSB0aGlzIHN0cnVjdCBob2xkcyBp
bnRlcm1lZGlhdGUgdmFsdWVzIHdoaWNoIG1heSBiZSBpbiB0aGUgY29tcHJlc3NlZCAtMSAtIDEg
R1ggcmFuZ2UsIHdlIGRvbid0IHdhbnQgdG8gdXNlIHRoZSByZWxhdGl2ZWx5IGxhcmdlCkBAIC0x
NDc1LDQgKzE0NTgsMjcgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBGb250Q2FjaGU6OnBsYXRmb3Jt
QWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGYKICAgICByZXR1cm4gbnVs
bEF0b20oKTsKIH0KIAordm9pZCBhZGRBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKENG
TXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMg
YWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCit7CisjaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFM
TEVEX0ZPTlRTCisgICAgaWYgKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gQWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHM6Ok5vKSB7CisgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJp
YnV0ZXMuZ2V0KCksIGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlLCBrQ0ZCb29sZWFuRmFs
c2UpOworICAgICAgICBDVEZvbnRGYWxsYmFja09wdGlvbiBmYWxsYmFja09wdGlvbiA9IGtDVEZv
bnRGYWxsYmFja09wdGlvblN5c3RlbTsKKyAgICAgICAgYXV0byBmYWxsYmFja09wdGlvbk51bWJl
ciA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVy
U0ludDY0VHlwZSwgJmtDVEZvbnRGYWxsYmFja09wdGlvblN5c3RlbSkpOworICAgICAgICBDRkRp
Y3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLmdldCgpLCBrQ1RGb250RmFsbGJhY2tPcHRpb25B
dHRyaWJ1dGUsIGZhbGxiYWNrT3B0aW9uTnVtYmVyLmdldCgpKTsKKyAgICB9CisjZW5kaWYKK30K
KworQ0Y8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMo
QWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCit7CisjaWYg
Q0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZPTlRTCisgICAgaWYgKGFsbG93VXNlckluc3Rh
bGxlZEZvbnRzID09IEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObykgeworICAgICAgICBDRlR5
cGVSZWYgbWFuZGF0b3J5QXR0cmlidXRlc1ZhbHVlc1tdID0geyBrQ1RGb250VXNlckluc3RhbGxl
ZEF0dHJpYnV0ZSwga0NURm9udEZhbGxiYWNrT3B0aW9uQXR0cmlidXRlIH07CisgICAgICAgIHJl
dHVybiBhZG9wdENGKENGU2V0Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1hbmRhdG9yeUF0
dHJpYnV0ZXNWYWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgobWFuZGF0b3J5QXR0cmlidXRlc1ZhbHVl
cyksICZrQ0ZUeXBlU2V0Q2FsbEJhY2tzKSk7CisgICAgfQorI2VuZGlmCisgICAgcmV0dXJuIG51
bGxwdHI7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzZGE3MTViOTZl
NTk4YmQ5NTRjMjkzMGVlMWFiOTc3NDljZmI5Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oCkBAIC0w
LDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1l
dDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWlu
IHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRp
b25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25z
IGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAg
ICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2Ns
YWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxz
IHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1l
IG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29u
dHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJp
dmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3Jp
dHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQ
TEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElN
UExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBM
SUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQ
QVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBB
UFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElO
RElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwg
REFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBP
RiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9S
IFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisg
KiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNU
IExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lT
RSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJF
LCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICov
CisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisKKyNpbmNs
dWRlIDxDb3JlVGV4dC9DVEZvbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3Qg
U3ludGhlc2lzUGFpciB7CisgICAgU3ludGhlc2lzUGFpcihib29sIG5lZWRzU3ludGhldGljQm9s
ZCwgYm9vbCBuZWVkc1N5bnRoZXRpY09ibGlxdWUpCisgICAgICAgIDogbmVlZHNTeW50aGV0aWNC
b2xkKG5lZWRzU3ludGhldGljQm9sZCkKKyAgICAgICAgLCBuZWVkc1N5bnRoZXRpY09ibGlxdWUo
bmVlZHNTeW50aGV0aWNPYmxpcXVlKQorICAgIHsKKyAgICB9CisKKyAgICBzdGQ6OnBhaXI8Ym9v
bCwgYm9vbD4gYm9sZE9ibGlxdWVQYWlyKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBz
dGQ6Om1ha2VfcGFpcihuZWVkc1N5bnRoZXRpY0JvbGQsIG5lZWRzU3ludGhldGljT2JsaXF1ZSk7
CisgICAgfQorCisgICAgYm9vbCBuZWVkc1N5bnRoZXRpY0JvbGQ7CisgICAgYm9vbCBuZWVkc1N5
bnRoZXRpY09ibGlxdWU7Cit9OworCitSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZv
cm1Gb250KENURm9udFJlZiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgRm9udEZlYXR1
cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgY29uc3QgRm9udFZhcmlhbnRTZXR0aW5ncyog
Zm9udEZhY2VWYXJpYW50U2V0dGluZ3MsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRp
ZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGZsb2F0IHNpemUsIGJvb2wgYXBwbHlXZWlnaHRXaWR0
aFNsb3BlVmFyaWF0aW9ucyA9IHRydWUpOworU3ludGhlc2lzUGFpciBjb21wdXRlTmVjZXNzYXJ5
U3ludGhlc2lzKENURm9udFJlZiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBpc1BsYXRm
b3JtRm9udCA9IGZhbHNlKTsKK1JldGFpblB0cjxDVEZvbnRSZWY+IHBsYXRmb3JtRm9udFdpdGhG
YW1pbHlTcGVjaWFsQ2FzZShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgRm9udFNlbGVjdGlv
blJlcXVlc3QsIGZsb2F0IHNpemUpOworUmV0YWluUHRyPENURm9udFJlZj4gcGxhdGZvcm1Gb250
V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgRm9udFNlbGVjdGlvblJlcXVl
c3QsIFRleHRSZW5kZXJpbmdNb2RlLCBmbG9hdCBzaXplKTsKK2Jvb2wgcmVxdWlyZXNDdXN0b21G
YWxsYmFja0ZvbnQoVUNoYXIzMiBjaGFyYWN0ZXIpOworRm9udFNlbGVjdGlvbkNhcGFiaWxpdGll
cyBjYXBhYmlsaXRpZXNGb3JGb250RGVzY3JpcHRvcihDVEZvbnREZXNjcmlwdG9yUmVmKTsKK3Zv
aWQgYWRkQXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhDRk11dGFibGVEaWN0aW9uYXJ5
UmVmIGF0dHJpYnV0ZXMsIEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKK1JldGFpblB0cjxDRlNl
dFJlZj4gbWFuZGF0b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhBbGxvd1VzZXJJ
bnN0YWxsZWRGb250cyk7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRleCAw
NjlhNzk1MmI5YTUzM2MwOGQ0OWM0OTk5MjQ1MjUzNjgyODJmNDFmLi45M2I0NDM1YWEwY2YzYzY5
YTg2OTk1MDUyYTExZDlmMmViYzRiODY4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3Bw
CkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgog
CiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCisjaW5jbHVkZSAiRm9udENhY2hlQ29yZVRleHQuaCIK
ICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRh
LmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCkBAIC01MSw3ICs1MiwxMiBAQCBzdGQ6OnVu
aXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YShTaGFyZWRCdWZmZQogICAgIGlmICghZm9udERlc2NyaXB0b3IpCiAgICAgICAgIHJldHVy
biBudWxscHRyOwogCi0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Rm9udEN1c3RvbVBsYXRm
b3JtRGF0YT4oZm9udERlc2NyaXB0b3IuZ2V0KCkpOworICAgIGF1dG8gYXR0cmlidXRlcyA9IGFk
b3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAm
a0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2Fs
bEJhY2tzKSk7CisgICAgYWRkQXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhhdHRyaWJ1
dGVzLmdldCgpLCBBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzKTsgLy8gRklYTUU6IFNldCB0
aGlzIGZsYWcgY29ycmVjdGx5LgorICAgIGF1dG8gbW9kaWZpZWRGb250RGVzY3JpcHRvciA9IGFk
b3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZUNvcHlXaXRoQXR0cmlidXRlcyhmb250RGVzY3Jp
cHRvci5nZXQoKSwgYXR0cmlidXRlcy5nZXQoKSkpOworICAgIFJldGFpblB0cjxDRlNldFJlZj4g
bWFuZGF0b3J5QXR0cmlidXRlcyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVk
Rm9udHMoQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Olllcyk7IC8vIEZJWE1FOiBTZXQgdGhpcyBm
bGFnIGNvcnJlY3RseS4KKyAgICBhdXRvIG1hdGNoaW5nRm9udERlc2NyaXB0b3IgPSBhZG9wdENG
KENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9yKG1vZGlmaWVkRm9u
dERlc2NyaXB0b3IuZ2V0KCksIG1hbmRhdG9yeUF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICByZXR1
cm4gc3RkOjptYWtlX3VuaXF1ZTxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPihtYXRjaGluZ0ZvbnRE
ZXNjcmlwdG9yLmdldCgpKTsKIH0KIAogYm9vbCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpzdXBw
b3J0c0Zvcm1hdChjb25zdCBTdHJpbmcmIGZvcm1hdCkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90
ZXh0L1RleHRGbGFncy5oCmluZGV4IGRmZGU1YmY2YTQ2MzQ0M2MyNWRhNTZiNWM5NTU5NGJjMmQx
NTFmMTkuLmVmN2E0YzViZDFiOWE0YjhkOThlZjMyZmZiZTEyOWIwZTlkYmU1NDkgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKKysrIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaApAQCAtMzYyLDQgKzM2Miw5IEBAIGVu
dW0gY2xhc3MgRm9udFN0eWxlQXhpcyB7CiAgICAgaXRhbAogfTsKIAorZW51bSBjbGFzcyBBbGxv
d1VzZXJJbnN0YWxsZWRGb250cyB7CisgICAgWWVzLAorICAgIE5vCit9OworCiB9Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329735</attachid>
            <date>2017-12-18 20:45:24 -0800</date>
            <delta_ts>2017-12-18 20:46:48 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171218204523.patch</filename>
            <type>text/plain</type>
            <size>44782</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY3ZWY2YzZiNDBhYThi
MTU2YjY1MmM0NDI1ZjBmMjM2NTFhNjFhZi4uMzMzNjkxMWEwYjJhNGJlOGU1MmZkMmRlZjQ2Y2Rj
YjY0NDhhMTgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTEyLTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzYwMjk5MTk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZWZh
Y3RvcnMgdGhlIGV4aXN0aW5nIHVzZXItaW5zdGFsbGVkLWZvbnRzIGNvZGUgdG8gYSBuZXcgc2hh
cmVkIGxvY2F0aW9uLCBpbiBGb250Q2FjaGVDb3JlVGV4dCwKKyAgICAgICAgYW5kIGNhbGxzIHRo
aXMgbmV3IHNoYXJlZCBjb2RlIGZyb20gRm9udEN1c3RvbVBsYXRmb3JtRGF0YSBjb2RlIChmb3Ig
V2ViIGZvbnRzKS4gSXQgYWxzbyBpbXByb3ZlcyB0aGVzZQorICAgICAgICBmdW5jdGlvbnMgdG8g
aW5jbHVkZSBhbm90aGVyIENvcmVUZXh0IGZvbnQgYXR0cmlidXRlIHdoaWNoIHdpbGwgbWFrZSBm
b250IGZhbGxiYWNrIG9iZXkgdGhlIHJ1bGVzIGFib3V0CisgICAgICAgIHVzZXItaW5zdGFsbGVk
IGZvbnRzLiBJdCBhbHNvIG1pZ3JhdGVzIHNvbWUgcmF3IGJvb2xlYW4gdmFsdWVzIHRvIHVzZSBl
bnVtIGNsYXNzZXMuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBmYXN0
L3RleHQvdXNlci1pbnN0YWxsZWQvIChtb3JlIG9mIHRoZW0gcGFzcyBub3cpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgYSBuZXcgaGVhZGVyOiBG
b250Q2FjaGVDb3JlVGV4dC5oIChhbmQgc29ydCB0aGUgZmlsZSkuCisgICAgICAgICogY3NzL0NT
U0ZvbnRGYWNlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU2V0OjplbnN1
cmVMb2NhbEZvbnRGYWNlc0ZvckZhbWlseVJlZ2lzdGVyZWQpOiBNaWdyYXRlIGEgYm9vbCB0byBh
biBlbnVtIGNsYXNzLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRpYWxpemVGb250U3R5bGUpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uS2V5
OjptYWtlRmxhZ3NLZXkpOiBNYWtlIGNhY2hlcyBzZW5zaXRpdmUgdG8gd2hldGhlciBvciBub3Qg
d2Ugc2hvdWxkIGRpc2FsbG93CisgICAgICAgIHVzZXItaW5zdGFsbGVkIGZvbnRzCisgICAgICAg
IChXZWJDb3JlOjpTeW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogRGVsZXRlZC4gTW92ZWQg
dG8gRm9udENhY2hlQ29yZVRleHQuaAorICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6
Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTogRGVsZXRlZC4gRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVtIGNs
YXNzLgorICAgICAgICAoV2ViQ29yZTo6bV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzIGNvbnN0KTogTWlncmF0ZSBhIGJvb2wgdG8gYW4gZW51bSBjbGFzcy4KKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0
b3I9PSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpt
YXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCBjb25zdCk6IERlbGV0ZWQuIERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRNYXlSZXByZXNlbnRVc2VySW5zdGFs
bGVkRm9udCk6IERlbGV0ZWQuIERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREYXRhYmFz
ZTo6c2luZ2xldG9uKTogTWlncmF0ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRG
bGFncy5oCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OnNpbmdsZXRvbkFsbG93aW5n
VXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJh
c2U6OnNpbmdsZXRvbkRpc2FsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmNvbGxlY3Rpb25Gb3JGYW1pbHkpOiBDYWxsIHRo
ZSBzaGFyZWQgZnVuY3Rpb25zIHRvIHVwZGF0ZSB0aGUgRm9udERlc2NyaXB0b3IuCisgICAgICAg
IChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmZvbnRGb3JQb3N0U2NyaXB0TmFtZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGFiYXNlOjpGb250RGF0YWJhc2UpOiBNaWdyYXRlIHRo
ZSBlbnVtIGNsYXNzIHRvIHRoZSBzaGFyZWQgVGV4dEZsYWdzLmgKKyAgICAgICAgKFdlYkNvcmU6
OnBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVt
IGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6Zm9udFdpdGhGYW1pbHkpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OmFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMpOiBBZGQgYW5v
dGhlciBwYXJhbWV0ZXIgdG8gdGhlIEZvbnREZXNjcmlwdG9yIHRvIGVuZm9yY2UKKyAgICAgICAg
Q29yZSBUZXh0IGZvbnQgZmFsbGJhY2sgaGFwcGVucyBhY2NvcmRpbmcgdG8gdGhlIHVzZXItaW5z
dGFsbGVkIGZvbnQgcnVsZXMuCisgICAgICAgIChXZWJDb3JlOjptYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
eW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogTWlncmF0ZWQgZnJvbSBGb250Q2FjaGUuaAor
ICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9u
dFBsYXRmb3JtRGF0YSk6IENhbGwgdGhlIHNoYXJlZCBmdW5jdGlvbnMgdG8gcHJlcGFyZSB0aGUg
Rm9udERlc2NyaXB0b3IuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDogTW92
ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRGbGFncy5oCisgICAgICAgICogc3R5
bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OnJlc29sdmVGb3JEb2N1bWVudCk6IE1pZ3JhdGUgYSBib29sIHRvIGFuIGVudW0gY2xhc3MuCisK
IDIwMTctMTItMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0F0dGFjaG1lbnQgU3VwcG9ydF0gSW5zZXJ0IGltYWdlcyBhcyBpbmxpbmUgYXR0YWNo
bWVudHMgd2hlbiBwYXN0aW5nIGFuZCBkcm9wcGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggY2Jj
ZTA3YWMwMDViNjJmMTNjY2IwMzJmYjY1MjUxOGQzNzgzZDc2NS4uZTVlNzkwZDU2MTc4NGU4NGU3
YWY0MDg4NGI2ZTE4MTA4NGUxNWMxNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTIg
QEAKKzIwMTctMTItMTggIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
KworICAgICAgICBBIGRpc2FsbG93ZWQgdXNlci1pbnN0YWxsZWQgZm9udCBtYXkgYmUgdXNlZCBp
ZiBpdHMgUG9zdFNjcmlwdCBuYW1lIGlzIHNwZWNpZmllZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwOTUxCisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmg6
CisKIDIwMTctMTItMTQgIERhdmlkIEtpbHplciAgPGRka2lsemVyQGFwcGxlLmNvbT4KIAogICAg
ICAgICBGaXggMzItYml0IGJ1aWxkOiBFbmFibGUgLVdzdHJpY3QtcHJvdG90eXBlcyBmb3IgV2Vi
S2l0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQv
Q2hhbmdlTG9nCmluZGV4IGE2OTJjYTlkNmJmNTQxMzJjYjU1Njk0MTE5M2M2ODI2ZTdjZGNjYWUu
LjkxNjExZTRlOWU3Zjc3NThhZTE3M2RlOGFlYjM4ZGE1MTJmZWVlNTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTctMTItMTggIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KKworICAgICAgICBBIGRpc2FsbG93ZWQgdXNlci1pbnN0YWxsZWQgZm9udCBtYXkg
YmUgdXNlZCBpZiBpdHMgUG9zdFNjcmlwdCBuYW1lIGlzIHNwZWNpZmllZAorICAgICAgICBodHRw
czovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwOTUxCisKKyAgICAgICAgUmV2
aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgTWlncmF0ZSBhIGJvb2wgdG8gYW4g
ZW51bSBjbGFzcy4KKworICAgICAgICAqIFNoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sOgorICAg
ICAgICAqIFdlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcDoKKyAgICAgICAgKFdlYktpdDo6
V2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMpOgorCiAyMDE3LTEyLTE4ICBCcmFkeSBFaWRzb24g
IDxiZWlkc29uQGFwcGxlLmNvbT4KIAogICAgICAgICBBcHBzIHRoYXQgdXNlIGJvdGggV0sxIGFu
ZCBXSzIgY2FuIGNyYXNoIGNyZWF0aW5nIGEgV0tXZWJzaXRlRGF0YVN0b3JlLgpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaCBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKaW5kZXggN2RjZmNkZWQz
ZTMxNWU2ZTUwYzZjZjhjNTIxZDljMDEwNThkZjgzYy4uYzhmNDNhZjA3ZmExMjZkNmNjODBlNjc5
MDU4NDI4MzBhNTA1MzY4MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y29jb2EvQ29yZVRleHRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2Nv
YS9Db3JlVGV4dFNQSS5oCkBAIC02Niw2ICs2Niw3IEBAIGV4dGVybiBjb25zdCBDRlN0cmluZ1Jl
ZiBrQ1RGb250UmVmZXJlbmNlVVJMQXR0cmlidXRlOwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVm
IGtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBr
Q1RGb250UG9zdFNjcmlwdE5hbWVBdHRyaWJ1dGU7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYg
a0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGU7CitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYg
a0NURm9udEZhbGxiYWNrT3B0aW9uQXR0cmlidXRlOwogCiBib29sIENURm9udFRyYW5zZm9ybUds
eXBocyhDVEZvbnRSZWYsIENHR2x5cGggZ2x5cGhzW10sIENHU2l6ZSBhZHZhbmNlc1tdLCBDRklu
ZGV4IGNvdW50LCBDVEZvbnRUcmFuc2Zvcm1PcHRpb25zKTsKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNv
cmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDE1MTllYzI0MTI1Y2Iy
YWNjZjdkYTNkODY5YjJiOTJjZDMxZTY5OWEuLjAyZmUzYmVkNGJhMmM0N2ZjZTRiZGNjZTQwOGM0
ZGNiMGM2NWRkOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9q
L3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9w
cm9qZWN0LnBieHByb2oKQEAgLTM3MjAsNiArMzcyMCw3IEBACiAJCUMxMDVEQTY0MEYzQUE2Qjgw
MDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0g
UEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMwRjNBQTZCODAwMURENDRGIC8qIFRleHRF
bmNvZGluZ0RldGVjdG9yLmggKi87IH07CiAJCUMyMDE1QzBBMUJFNkZFQjIwMDgyMjM4OSAvKiBG
b250VmFyaWFudEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMyMDE1QzA5MUJFNkZFMkMwMDgyMjM4OSAvKiBGb250VmFyaWFudEJ1aWxkZXIu
aCAqLzsgfTsKIAkJQzIxREYyRUExRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25W
YWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIx
REYyRTgxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oICovOyB9Owor
CQlDMjQ1OEU2MzFGRTg5N0IwMDA1OTQ3NTkgLyogRm9udENhY2hlQ29yZVRleHQuaCBpbiBIZWFk
ZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyNDU4RTYxMUZFODk3OUUw
MDU5NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVT
ID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyNjAxN0E0MUM3MkRDOTkwMEY3NEExNiAvKiBDU1NG
b250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQzI2MDE3QTIxQzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRGYWNlU2V0LmggKi87IH07CiAJ
CUMyODA4MzNGMUM2REMyNkYwMDE0NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLyA9
IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjgwODMzRTFDNkRDMjJDMDAxNDUxQjYg
LyogSlNGb250RmFjZS5oICovOyB9OwogCQlDMkFCMEFGNzFFNkIzQzZDMDAxMzQ4QzUgLyogRm9u
dFNlbGVjdGlvbkFsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxl
OyBmaWxlUmVmID0gQzJBQjBBRjUxRTZCM0M2QzAwMTM0OEM1IC8qIEZvbnRTZWxlY3Rpb25BbGdv
cml0aG0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpA
QCAtMTI2MzYsNiArMTI2MzcsNyBAQAogCQlDMjAxNUMwOTFCRTZGRTJDMDA4MjIzODkgLyogRm9u
dFZhcmlhbnRCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRWYXJpYW50QnVpbGRlci5oOyBz
b3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjFERjJFNzFEOUU0RTk5MDBGNUIyNEMgLyog
Q1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsg
cGF0aCA9IENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CiAJCUMyMURGMkU4MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFyaWF0aW9uVmFsdWUu
aCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udFZhcmlhdGlvblZhbHVl
Lmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyNDU4RTYxMUZFODk3OUUwMDU5NDc1
OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxh
c3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250Q2FjaGVDb3JlVGV4
dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjYwMTdBMTFDNzJEQzk5MDBGNzRB
MTYgLyogQ1NTRm9udEZhY2VTZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZp
bGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBw
YXRoID0gQ1NTRm9udEZhY2VTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlD
MjYwMTdBMjFDNzJEQzk5MDBGNzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuaCAqLyA9IHtpc2EgPSBQ
QlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNv
dXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udEZhY2VTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzI4MDgzM0MxQzZEQjE5NDAwMTQ1MUI2IC8qIEZvbnRGYWNlLmlkbCAqLyA9
IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxl
VHlwZSA9IHRleHQ7IHBhdGggPSBGb250RmFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7
IH07CkBAIC0yMzAwMyw2ICsyMzAwNSw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxk
cmVuID0gKAogCQkJCTFDMzk2OUNGMUI3NDIxMUUwMDJCQ0ZBNyAvKiBGb250Q2FjaGVDb3JlVGV4
dC5jcHAgKi8sCisJCQkJQzI0NThFNjExRkU4OTc5RTAwNTk0NzU5IC8qIEZvbnRDYWNoZUNvcmVU
ZXh0LmggKi8sCiAJCQkJQjJBRkZDNzgwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDYXNjYWRlQ29j
b2EubW0gKi8sCiAJCQkJN0M0RURENzMxQTdCNjA3ODAwMTk4QzREIC8qIEZvbnRDb2NvYS5tbSAq
LywKIAkJCQkxQzEyQUMyQzFFRTc3OTk1MDA3OUUwQTAgLyogRm9udERlc2NyaXB0aW9uQ29jb2Eu
Y3BwICovLApAQCAtMjYzNzIsNyArMjYzNzUsNiBAQAogCQkJCTA3OUQwODZCMTYyRjIxRjkwMERC
ODY1OCAvKiBDYXB0aW9uVXNlclByZWZlcmVuY2VzTWVkaWFBRi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJMDdCNzExNkQxRDg5OUU2MzAwOUYwRkZCIC8qIENhcHR1cmVEZXZpY2UuaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3QjcxMTZGMUQ4OTlFNjMwMDlGMEZGQiAvKiBDYXB0dXJlRGV2aWNlTWFuYWdl
ci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5MkQxRkU2RTBGMzAwQkJCQzZCIC8qIFJlbmRl
clRyZWVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREM3MzQxNTE5Nzc4OTZEMDA0NkJG
QzUgLyogQ0FSaW5nQnVmZmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk2NTUwQjY5RTA5OURGMDI3
MDA5MEQ3ODEgLyogQ0RBVEFTZWN0aW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQlDREY0QjcxNjFF
MDBCN0U1MDBFMjM1QTIgLyogQ0RNLmggaW4gSGVhZGVycyAqLywKQEAgLTI2NDc3LDcgKzI2NDc5
LDYgQEAKIAkJCQk5NzQ2QUYyMTE0RjREREU2MDAzRTdBNzEgLyogQ29vcmRpbmF0ZXMuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTNGODAyMDM1MUU5RTQ3QkYwMERFQzYxRCAvKiBDb3JlQXVkaW9DYXB0
dXJlRGV2aWNlLmggaW4gSGVhZGVycyAqLywKIAkJCQkzRjgwMjAzNzFFOUU0N0M1MDBERUM2MUQg
LyogQ29yZUF1ZGlvQ2FwdHVyZURldmljZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0
N0MzOTJFMUZFNkUwRjcwMEJCQkM2QiAvKiBSZW5kZXJUcmVlUG9zaXRpb24uaCBpbiBIZWFkZXJz
ICovLAogCQkJCTA3QUZGNDIyMUVGQjE0NDkwMEI1NDVCMyAvKiBDb3JlQXVkaW9DYXB0dXJlU291
cmNlSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlDRDdEMzM0ODFDN0ExNkJGMDAwNDEyOTMgLyog
Q29yZVZpZGVvU29mdExpbmsuaCBpbiBIZWFkZXJzICovLAogCQkJCTg2MkYxMjlFMThDMTU3NkYw
MDVDNTRBRiAvKiBDb3VudGVkVXNlckFjdGl2aXR5LmggaW4gSGVhZGVycyAqLywKQEAgLTI2ODM5
LDcgKzI2ODQwLDYgQEAKIAkJCQlBN0NGQjNEMjBCN0VEMTBBMDA3MEMzMkQgLyogRHJhZ0ltYWdl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQUY1RTREOTFFNTY3N0E5MDA0QTFGMDEgLyogRHJhZ0l0
ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTgxRjY1RkY2MTM3ODhGQUEwMEZGNkYyRCAvKiBEcmFn
U3RhdGUuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0N0MzOTMyMUZFNkUxMDUwMEJCQkM2QiAvKiBS
ZW5kZXJUcmVlVXBkYXRlckxpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQlFMUJBNjZGMTE3
NDJCRDg2MDBDMjAyNTEgLyogRHluYW1pY0xpbmtlckludGVycG9zaW5nLmggaW4gSGVhZGVycyAq
LywKIAkJCQlGRDZFRDJDODEzNkI4RTY2MDAzQ0YwNzIgLyogRHluYW1pY3NDb21wcmVzc29yLmgg
aW4gSGVhZGVycyAqLywKIAkJCQlGRDUzNzM1NzEzN0I2NTNCMDAwMDhEQ0UgLyogRHluYW1pY3ND
b21wcmVzc29yS2VybmVsLmggaW4gSGVhZGVycyAqLywKQEAgLTI2OTI2LDYgKzI2OTI2LDcgQEAK
IAkJCQk1MTdBNTM1QjFGNTg4QTRDMDBEQ0RDMEEgLyogRmV0Y2hCb2R5Q29uc3VtZXIuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTQxMjlDOTk3MUY1OUI5NjMwMDlENzQwMyAvKiBGZXRjaEJvZHlTb3Vy
Y2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxRDEyOURCMUYzRDE0MzgwMEQxNUU0NyAvKiBGZXRj
aEhlYWRlcnMuaCBpbiBIZWFkZXJzICovLAorCQkJCTQxNjFFMkQ1MUZFNDhEQzUwMEVDMkU5NiAv
KiBGZXRjaExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTE3QTUzNTgxRjU4ODlFODAwRENE
QzBBIC8qIEZldGNoTG9hZGVyQ2xpZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUFENzUzQTFD
RUY2QkQxMDBBMzE0ODYgLyogRmV0Y2hPcHRpb25zLmggaW4gSGVhZGVycyAqLywKIAkJCQk3Q0Ux
OTE0RDFGMkE5QUZCMDAyNzJGNzggLyogRmV0Y2hSZWZlcnJlclBvbGljeS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNjk4OCw2ICsyNjk4OSw3IEBACiAJCQkJMUFDMkQ4OUQxQjFFMjkxRjAwRDUyRTg3
IC8qIEZvbnRBbnRpYWxpYXNpbmdTdGF0ZVNhdmVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0I5
MkQ0RjEyOTM1NTBCMDBDODM4N0YgLyogRm9udEJhc2VsaW5lLmggaW4gSGVhZGVycyAqLywKIAkJ
CQlCMkMzREE2MzBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udENhY2hlLmggaW4gSGVhZGVycyAqLywK
KwkJCQlDMjQ1OEU2MzFGRTg5N0IwMDA1OTQ3NTkgLyogRm9udENhY2hlQ29yZVRleHQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUIyQzNEQTYxMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FzY2FkZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjgwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNj
YWRlRm9udHMuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQUZGQzdFMEQwMEE1QzEwMDMwMDc0RCAv
KiBGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmggaW4gSGVhZGVycyAqLywKQEAgLTI3MjM2LDcgKzI3
MjM4LDYgQEAKIAkJCQk5NzdCMzg3ODEyMjg4M0U5MDBCODFGRjggLyogSFRNTFRva2VuaXplci5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJMDcwNzU2OEMxNDIyNjJENjAwNDE0MTYxIC8qIEhUTUxUcmFj
a0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTk3N0IzNzI2MTIyODcyMTcwMEI4MUZGOCAv
KiBIVE1MVHJlZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0N0MzOTMwMUZFNkUwRkQw
MEJCQkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRlckZpcnN0TGV0dGVyLmggaW4gSGVhZGVycyAqLywK
IAkJCQlBOEVBNzlGMjBBMTkxNkRGMDBBOEVGNUYgLyogSFRNTFVMaXN0RWxlbWVudC5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQUQ0OTkxNDMxOEYwODE1MTAwQkYwMDkyIC8qIEhUTUxVbmtub3duRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjEzQUIwQ0Q2MzMxMDAwRkFEQTc1IC8qIEhU
TUxWaWRlb0VsZW1lbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjczODgsNyArMjczODksNiBAQAog
CQkJCTdBNTQ4NTgwMTRFMDJENTEwMDZBRTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5LmggaW4gSGVh
ZGVycyAqLywKIAkJCQlBNUI4MUNBRTFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9ySW5kZXhl
ZERCQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAv
KiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxNjFFMkQ1
MUZFNDhEQzUwMEVDMkU5NiAvKiBGZXRjaExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4
NDBFMUQxODdCNzRENTAwODQzQjEwIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQUYxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3Rv
ckxheWVyVHJlZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNCMDFGQUE0NDYyMDAz
N0QxRTYgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCBpbiBIZWFkZXJzICovLApAQCAtMjg1MjMs
NyArMjg1MjMsNiBAQAogCQkJCTFBNTY5RDBCMEQ3RTJCODIwMDdDMzk4MyAvKiBOUF9qc29iamVj
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MjdGRDIxNDE2QTE1QjAwM0E4M0M4IC8qIG5wYXBp
LmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTIxOUIzQjBEQ0E4N0FCMDA0MEUzQTAgLyogbnBmdW5j
dGlvbnMuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0N0MzOTJGMUZFNkUwRjkwMEJCQkM2QiAvKiBS
ZW5kZXJUcmVlVXBkYXRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE5MjdGRDMxNDE2QTE1QjAw
M0E4M0M4IC8qIG5wcnVudGltZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUE1NjlEMEYwRDdFMkI4
MjAwN0MzOTgzIC8qIG5wcnVudGltZV9pbXBsLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQx
MDBEN0UyQjgyMDA3QzM5ODMgLyogbnBydW50aW1lX2ludGVybmFsLmggaW4gSGVhZGVycyAqLywK
QEAgLTI4Njc3LDcgKzI4Njc2LDYgQEAKIAkJCQkwNzBFMDkxOTE4NzVFRUZDMDAzQTFEM0MgLyog
UGxhdGZvcm1NZWRpYVNlc3Npb24uaCBpbiBIZWFkZXJzICovLAogCQkJCTA3Rjk0NDE2MTg2NEQw
NDYwMDVEMzFDQiAvKiBQbGF0Zm9ybU1lZGlhU2Vzc2lvbk1hbmFnZXIuaCBpbiBIZWFkZXJzICov
LAogCQkJCTQxQkY3MDEwMEZFODZGNjEwMDVFOERFQyAvKiBQbGF0Zm9ybU1lc3NhZ2VQb3J0Q2hh
bm5lbC5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5MzMxRkU2RTEwODAwQkJCQzZCIC8qIFJl
bmRlclRyZWVVcGRhdGVyTXVsdGlDb2x1bW4uaCBpbiBIZWFkZXJzICovLAogCQkJCTkzNUM0NzY5
MDlBQzRENDMwMEE2QUFCNCAvKiBQbGF0Zm9ybU1vdXNlRXZlbnQuaCBpbiBIZWFkZXJzICovLAog
CQkJCUM1OTg5MDU4MTRFOUMyOTkwMEU4RDE4QiAvKiBQbGF0Zm9ybVBhc3RlYm9hcmQuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUJDRUMwMUQ3MEMyNzRFQjQwMDlGNEVDOSAvKiBQbGF0Zm9ybVNjcmVl
bi5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODkyNSw2ICsyODkyMywxMyBAQAogCQkJCUZFRDEzRDUy
MENFQTk0OTcwMEQ4OTQ2NiAvKiBSZW5kZXJUaGVtZUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QkNFQTQ4ODcwOTdEOTMwMjAwOTRDOUU0IC8qIFJlbmRlclRoZW1lTWFjLmggaW4gSGVhZGVycyAq
LywKIAkJCQk5M0YxOTk4QzA4MjQ1RTU5MDAxRTlBQkMgLyogUmVuZGVyVHJlZUFzVGV4dC5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJRTQ3QzM5MkQxRkU2RTBGMzAwQkJCQzZCIC8qIFJlbmRlclRyZWVC
dWlsZGVyLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDdDMzkyRTFGRTZFMEY3MDBCQkJDNkIgLyog
UmVuZGVyVHJlZVBvc2l0aW9uLmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDdDMzkyRjFGRTZFMEY5
MDBCQkJDNkIgLyogUmVuZGVyVHJlZVVwZGF0ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0N0Mz
OTMwMUZFNkUwRkQwMEJCQkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRlckZpcnN0TGV0dGVyLmggaW4g
SGVhZGVycyAqLywKKwkJCQlFNDdDMzkzMTFGRTZFMTAyMDBCQkJDNkIgLyogUmVuZGVyVHJlZVVw
ZGF0ZXJHZW5lcmF0ZWRDb250ZW50LmggaW4gSGVhZGVycyAqLywKKwkJCQlFNDdDMzkzMjFGRTZF
MTA1MDBCQkJDNkIgLyogUmVuZGVyVHJlZVVwZGF0ZXJMaXN0SXRlbS5oIGluIEhlYWRlcnMgKi8s
CisJCQkJRTQ3QzM5MzMxRkU2RTEwODAwQkJCQzZCIC8qIFJlbmRlclRyZWVVcGRhdGVyTXVsdGlD
b2x1bW4uaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxNDUyMENENjhBMzUwMEZBREE3NSAvKiBS
ZW5kZXJWaWRlby5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkNFQTQ4NjgwOTdEOTMwMjAwOTRDOUU0
IC8qIFJlbmRlclZpZXcuaCBpbiBIZWFkZXJzICovLAogCQkJCUJFMjA1MDdFMThBNDU4QzIwMDgw
NjQ3RSAvKiBSZW5kZXJWVFRDdWUuaCBpbiBIZWFkZXJzICovLApAQCAtMjkyMDcsNyArMjkyMTIs
NiBAQAogCQkJCTk3QkM2QTNDMTUwNUYwODEwMDFCNzRBQyAvKiBTUUxFcnJvci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMUEyMjQ2NEEwQ0M5OEREQjAwQzA1MjQwIC8qIFNRTGl0ZURhdGFiYXNlLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk3RTQ3NEUxRjEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0
YWJhc2VUcmFja2VyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDdDMzkzMTFGRTZFMTAyMDBCQkJD
NkIgLyogUmVuZGVyVHJlZVVwZGF0ZXJHZW5lcmF0ZWRDb250ZW50LmggaW4gSGVhZGVycyAqLywK
IAkJCQk3RTQ3NEUxRTEyNDk0REM5MDAyMzUzNjQgLyogU1FMaXRlRGF0YWJhc2VUcmFja2VyQ2xp
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlCNUE2ODQyMjBGRkFCRTk4MDBEMjQ2ODkgLyogU1FM
aXRlRmlsZVN5c3RlbS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNTEyQkRCNEIxQzQ1NkZGQTAwNjQ5
NERGIC8qIFNRTGl0ZUlEQkJhY2tpbmdTdG9yZS5oIGluIEhlYWRlcnMgKi8sCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTZXQuY3BwIGIvU291cmNlL1dlYkNvcmUv
Y3NzL0NTU0ZvbnRGYWNlU2V0LmNwcAppbmRleCA1YzQwMzEzZTU5YzZjNGQzZmUwZmIyN2VkODM2
OGQwNjY2MTk0MTM2Li5lODc2N2U1YTJmNTgwMTc4OTMyMWY3MTlmODE1NDAxZWY0NTM3Mzg4IDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTZXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNldC5jcHAKQEAgLTEwNCw5ICsxMDQsNyBAQCB2
b2lkIENTU0ZvbnRGYWNlU2V0OjplbnN1cmVMb2NhbEZvbnRGYWNlc0ZvckZhbWlseVJlZ2lzdGVy
ZWQoY29uc3QgU3RyaW5nJiBmYW1pbAogICAgIGlmIChtX2xvY2FsbHlJbnN0YWxsZWRGYWNlc0xv
b2t1cFRhYmxlLmNvbnRhaW5zKGZhbWlseU5hbWUpKQogICAgICAgICByZXR1cm47CiAKLSAgICBG
b250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNlckluc3RhbGxlZEZvbnRz
ID0gRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzOwotICAgIGlmIChtX293
bmluZ0ZvbnRTZWxlY3Rvci0+ZG9jdW1lbnQoKSAmJiBtX293bmluZ0ZvbnRTZWxlY3Rvci0+ZG9j
dW1lbnQoKS0+c2V0dGluZ3MoKS5zaG91bGREaXNhbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKQot
ICAgICAgICBhbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9IEZvbnRDYWNoZTo6QWxsb3dVc2VySW5z
dGFsbGVkRm9udHM6Ok5vOworICAgIEFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNlcklu
c3RhbGxlZEZvbnRzID0gbV9vd25pbmdGb250U2VsZWN0b3ItPmRvY3VtZW50KCkgPyBtX293bmlu
Z0ZvbnRTZWxlY3Rvci0+ZG9jdW1lbnQoKS0+c2V0dGluZ3MoKS5zaG91bGRBbGxvd1VzZXJJbnN0
YWxsZWRGb250cygpIDogQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6OlllczsKICAgICBWZWN0b3I8
Rm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcz4gY2FwYWJpbGl0aWVzID0gRm9udENhY2hlOjpzaW5n
bGV0b24oKS5nZXRGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzSW5GYW1pbHkoZmFtaWx5TmFtZSwg
YWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOwogICAgIGlmIChjYXBhYmlsaXRpZXMuaXNFbXB0eSgp
KQogICAgICAgICByZXR1cm47CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVS
ZXNvbHZlci5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKaW5kZXgg
N2ZkMjViOGFhZDVhYmM3MGRlMTA5YjI0MTQ2MjY0N2ZkNzlmMDU1ZC4uNTlkYzFmZDNkNGYwNWFh
Yzc5ODBmMTkxMjBmZWM0NzU5MTlmNzcwYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3Nz
L1N0eWxlUmVzb2x2ZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVy
LmNwcApAQCAtMTc4OCw3ICsxNzg4LDcgQEAgdm9pZCBTdHlsZVJlc29sdmVyOjppbml0aWFsaXpl
Rm9udFN0eWxlKCkKICAgICBmb250RGVzY3JpcHRpb24uc2V0T25lRmFtaWx5KHN0YW5kYXJkRmFt
aWx5KTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemVGcm9tSWRlbnRpZmllcihD
U1NWYWx1ZU1lZGl1bSk7CiAgICAgc2V0Rm9udFNpemUoZm9udERlc2NyaXB0aW9uLCBTdHlsZTo6
Zm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlTWVkaXVtLCBmYWxzZSwgZG9jdW1lbnQoKSkpOwot
ICAgIGZvbnREZXNjcmlwdGlvbi5zZXRNYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCghc2V0
dGluZ3MoKS5zaG91bGREaXNhbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKKyAgICBmb250RGVz
Y3JpcHRpb24uc2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoc2V0dGluZ3MoKS5zaG91
bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKICAgICBzZXRGb250RGVzY3JpcHRpb24oZm9u
dERlc2NyaXB0aW9uKTsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0
aW5ncy55YW1sIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCmluZGV4IDk5NWVi
OGQxY2M0MDlkZDlkYjlmYzFjN2I5ZmZmMmE4MzU4NjQxY2EuLjBiMDNjYTdkN2FmOTVmY2VhZjIx
NjE1YjhmMmE1NjBjNGJkNzk4YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0
dGluZ3MueWFtbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKQEAgLTY2
MSw4ICs2NjEsOSBAQCBzdG9yYWdlQmxvY2tpbmdQb2xpY3k6CiAgIGluaXRpYWw6IFNlY3VyaXR5
T3JpZ2luOjpBbGxvd0FsbFN0b3JhZ2UKICAgb25DaGFuZ2U6IHN0b3JhZ2VCbG9ja2luZ1BvbGlj
eUNoYW5nZWQKIAotc2hvdWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ci0gIGluaXRpYWw6
IGZhbHNlCitzaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250czoKKyAgdHlwZTogQWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMKKyAgaW5pdGlhbDogQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Olllcwog
ICBvbkNoYW5nZTogc2V0TmVlZHNSZWNhbGNTdHlsZUluQWxsRnJhbWVzCiAKICMgT25seSBzZXQg
YnkgTGF5b3V0IFRlc3RzLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
Q2FjaGUuaAppbmRleCA0YWY0N2Q0YjM2Mzk5NDc1ODJjN2UwODQ4MmE5YTVjNzcyYTRkZTQxLi41
Y2Q3YjY4ZmRmYmI1OTc5YjgyMDhmODhlY2VjM2Y2ZGU4YjY4NWUxIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAtNDEsNyArNDEsNyBAQAogI2lu
Y2x1ZGUgPHd0Zi90ZXh0L1dURlN0cmluZy5oPgogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0jaW5j
bHVkZSA8Q29yZVRleHQvQ1RGb250Lmg+CisjaW5jbHVkZSAiRm9udENhY2hlQ29yZVRleHQuaCIK
ICNlbmRpZgogCiAjaWYgT1MoV0lORE9XUykKQEAgLTEyNCw3ICsxMjQsOCBAQCBzdHJ1Y3QgRm9u
dERlc2NyaXB0aW9uS2V5IHsKIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6YXJyYXk8dW5zaWdu
ZWQsIDI+IG1ha2VGbGFnc0tleShjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQog
ICAgIHsKLSAgICAgICAgdW5zaWduZWQgZmlyc3QgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVz
Y3JpcHRpb24uc2NyaXB0KCkpIDw8IDEzCisgICAgICAgIHVuc2lnbmVkIGZpcnN0ID0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNjcmlwdCgpKSA8PCAxNAorICAgICAgICAgICAg
fCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFs
bGVkRm9udHMoKSkgPDwgMTMKICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRl
c2NyaXB0aW9uLmZvbnRTdHlsZUF4aXMoKSA9PSBGb250U3R5bGVBeGlzOjpzbG50KSA8PCAxMgog
ICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24ub3B0aWNhbFNp
emluZygpKSA8PCAxMQogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3Jp
cHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSkgPDwgOQpAQCAtMjAwLDEwICsyMDEsNiBAQCBwdWJs
aWM6CiAgICAgc3RhdGljIElNdWx0aUxhbmd1YWdlKiBnZXRNdWx0aUxhbmd1YWdlSW50ZXJmYWNl
KCk7CiAjZW5kaWYKIAotICAgIGVudW0gY2xhc3MgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgewot
ICAgICAgICBZZXMsCi0gICAgICAgIE5vCi0gICAgfTsKICAgICAvLyBUaGlzIGZ1bmN0aW9uIGV4
aXN0cyBzbyBDU1NGb250U2VsZWN0b3IgY2FuIGhhdmUgYSB1bmlmaWVkIG5vdGlvbiBvZiBwcmVp
bnN0YWxsZWQgZm9udHMgYW5kIEBmb250LWZhY2UuCiAgICAgLy8gSXQgY29tZXMgaW50byBwbGF5
IHdoZW4geW91IGNyZWF0ZSBhbiBAZm9udC1mYWNlIHdoaWNoIHNoYXJlcyBhIGZhbWlseSBuYW1l
IGFzIGEgcHJlaW5zdGFsbGVkIGZvbnQuCiAgICAgVmVjdG9yPEZvbnRTZWxlY3Rpb25DYXBhYmls
aXRpZXM+IGdldEZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXNJbkZhbWlseShjb25zdCBBdG9taWNT
dHJpbmcmLCBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CkBAIC0yNzAsMzIgKzI2Nyw3IEBAIGlu
bGluZSBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVG
b250UGxhdGZvcm1EYXRhRm9yVGVzCiAgICAgcmV0dXJuIGNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEo
Zm9udERlc2NyaXB0aW9uLCBmYW1pbHksIG51bGxwdHIsIG51bGxwdHIsIHsgfSk7CiB9CiAKLSNp
ZiBQTEFURk9STShDT0NPQSkKLQotc3RydWN0IFN5bnRoZXNpc1BhaXIgewotICAgIFN5bnRoZXNp
c1BhaXIoYm9vbCBuZWVkc1N5bnRoZXRpY0JvbGQsIGJvb2wgbmVlZHNTeW50aGV0aWNPYmxpcXVl
KQotICAgICAgICA6IG5lZWRzU3ludGhldGljQm9sZChuZWVkc1N5bnRoZXRpY0JvbGQpCi0gICAg
ICAgICwgbmVlZHNTeW50aGV0aWNPYmxpcXVlKG5lZWRzU3ludGhldGljT2JsaXF1ZSkKLSAgICB7
Ci0gICAgfQotCi0gICAgc3RkOjpwYWlyPGJvb2wsIGJvb2w+IGJvbGRPYmxpcXVlUGFpcigpIGNv
bnN0Ci0gICAgewotICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIobmVlZHNTeW50aGV0aWNC
b2xkLCBuZWVkc1N5bnRoZXRpY09ibGlxdWUpOwotICAgIH0KLQotICAgIGJvb2wgbmVlZHNTeW50
aGV0aWNCb2xkOwotICAgIGJvb2wgbmVlZHNTeW50aGV0aWNPYmxpcXVlOwotfTsKLQotUmV0YWlu
UHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYsIGNvbnN0IEZvbnRE
ZXNjcmlwdGlvbiYsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVyZXMs
IGNvbnN0IEZvbnRWYXJpYW50U2V0dGluZ3MqIGZvbnRGYWNlVmFyaWFudFNldHRpbmdzLCBGb250
U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBmbG9h
dCBzaXplLCBib29sIGFwcGx5V2VpZ2h0V2lkdGhTbG9wZVZhcmlhdGlvbnMgPSB0cnVlKTsKLVN5
bnRoZXNpc1BhaXIgY29tcHV0ZU5lY2Vzc2FyeVN5bnRoZXNpcyhDVEZvbnRSZWYsIGNvbnN0IEZv
bnREZXNjcmlwdGlvbiYsIGJvb2wgaXNQbGF0Zm9ybUZvbnQgPSBmYWxzZSk7Ci1SZXRhaW5QdHI8
Q1RGb250UmVmPiBwbGF0Zm9ybUZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2UoY29uc3QgQXRvbWlj
U3RyaW5nJiBmYW1pbHksIEZvbnRTZWxlY3Rpb25SZXF1ZXN0LCBmbG9hdCBzaXplKTsKLVJldGFp
blB0cjxDVEZvbnRSZWY+IHBsYXRmb3JtRm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5n
JiBmYW1pbHksIEZvbnRTZWxlY3Rpb25SZXF1ZXN0LCBUZXh0UmVuZGVyaW5nTW9kZSwgZmxvYXQg
c2l6ZSk7Ci1ib29sIHJlcXVpcmVzQ3VzdG9tRmFsbGJhY2tGb250KFVDaGFyMzIgY2hhcmFjdGVy
KTsKLUZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzRm9yRm9udERlc2NyaXB0
b3IoQ1RGb250RGVzY3JpcHRvclJlZik7Ci0KLSNlbHNlCisjaWYgIVBMQVRGT1JNKENPQ09BKQog
CiBpbmxpbmUgdm9pZCBGb250Q2FjaGU6OnBsYXRmb3JtUHVyZ2VJbmFjdGl2ZUZvbnREYXRhKCkK
IHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNj
cmlwdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3Jp
cHRpb24uY3BwCmluZGV4IGRmNGE5Y2NiNWRiNDkwNzY4ZDBlMTNkYzYyZmVjNWM1MDNmYWI2ZTgu
LjNkNWRkMzU3MTQ2MDc3YjI4YWU1MjNlM2EzM2UyN2JmZDI0NTY5YWMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcApAQCAt
ODAsNyArODAsNyBAQCBGb250RGVzY3JpcHRpb246OkZvbnREZXNjcmlwdGlvbigpCiAgICAgLCBt
X3ZhcmlhbnRFYXN0QXNpYW5SdWJ5KHN0YXRpY19jYXN0PHVuc2lnbmVkPihGb250VmFyaWFudEVh
c3RBc2lhblJ1Ynk6Ok5vcm1hbCkpCiAgICAgLCBtX29wdGljYWxTaXppbmcoc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KEZvbnRPcHRpY2FsU2l6aW5nOjpFbmFibGVkKSkKICAgICAsIG1fZm9udFN0eWxl
QXhpcyhGb250Q2FzY2FkZURlc2NyaXB0aW9uOjppbml0aWFsRm9udFN0eWxlQXhpcygpID09IEZv
bnRTdHlsZUF4aXM6Oml0YWwpCi0gICAgLCBtX21heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250
KHRydWUpCisgICAgLCBtX3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKHN0YXRpY19jYXN0
PHVuc2lnbmVkPihBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzKSkKIHsKIH0KIApkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAppbmRl
eCA4YjhmYTIyNTAzZTJjNTEwNTFiZGQ4OGFiZGJjNTBhOWY1ZWJkYTlhLi4xNWI0YWY2OTRmMzlm
ZjlhYTNjZmVhMmQyODFmOTA4NWNlNWY3YjQyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaApAQCAtMTE0LDcgKzExNCw3IEBAIHB1
YmxpYzoKICAgICB9CiAgICAgRm9udE9wdGljYWxTaXppbmcgb3B0aWNhbFNpemluZygpIGNvbnN0
IHsgcmV0dXJuIHN0YXRpY19jYXN0PEZvbnRPcHRpY2FsU2l6aW5nPihtX29wdGljYWxTaXppbmcp
OyB9CiAgICAgRm9udFN0eWxlQXhpcyBmb250U3R5bGVBeGlzKCkgY29uc3QgeyByZXR1cm4gbV9m
b250U3R5bGVBeGlzID8gRm9udFN0eWxlQXhpczo6aXRhbCA6IEZvbnRTdHlsZUF4aXM6OnNsbnQ7
IH0KLSAgICBib29sIG1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KCkgY29uc3QgeyByZXR1
cm4gbV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udDsgfQorICAgIEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzIHNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkgY29uc3QgeyByZXR1cm4g
c3RhdGljX2Nhc3Q8QWxsb3dVc2VySW5zdGFsbGVkRm9udHM+KG1fc2hvdWxkQWxsb3dVc2VySW5z
dGFsbGVkRm9udHMpOyB9CiAKICAgICB2b2lkIHNldENvbXB1dGVkU2l6ZShmbG9hdCBzKSB7IG1f
Y29tcHV0ZWRTaXplID0gY2xhbXBUb0Zsb2F0KHMpOyB9CiAgICAgdm9pZCBzZXRJdGFsaWMoRm9u
dFNlbGVjdGlvblZhbHVlIGl0YWxpYykgeyBtX2ZvbnRTZWxlY3Rpb25SZXF1ZXN0LnNsb3BlID0g
aXRhbGljOyB9CkBAIC0xNDksNyArMTQ5LDcgQEAgcHVibGljOgogICAgIHZvaWQgc2V0VmFyaWFu
dEVhc3RBc2lhblJ1YnkoRm9udFZhcmlhbnRFYXN0QXNpYW5SdWJ5IHZhcmlhbnQpIHsgbV92YXJp
YW50RWFzdEFzaWFuUnVieSA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPih2YXJpYW50KTsgfQogICAg
IHZvaWQgc2V0T3B0aWNhbFNpemluZyhGb250T3B0aWNhbFNpemluZyBzaXppbmcpIHsgbV9vcHRp
Y2FsU2l6aW5nID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNpemluZyk7IH0KICAgICB2b2lkIHNl
dEZvbnRTdHlsZUF4aXMoRm9udFN0eWxlQXhpcyBheGlzKSB7IG1fZm9udFN0eWxlQXhpcyA9IGF4
aXMgPT0gRm9udFN0eWxlQXhpczo6aXRhbDsgfQotICAgIHZvaWQgc2V0TWF5UmVwcmVzZW50VXNl
ckluc3RhbGxlZEZvbnQoYm9vbCBtYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCkgeyBtX21h
eVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250ID0gbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZv
bnQ7IH0KKyAgICB2b2lkIHNldFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKEFsbG93VXNl
ckluc3RhbGxlZEZvbnRzIHNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKSB7IG1fc2hvdWxk
QWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2hvdWxkQWxs
b3dVc2VySW5zdGFsbGVkRm9udHMpOyB9CiAKICAgICBzdGF0aWMgdm9pZCBpbnZhbGlkYXRlQ2Fj
aGVzKCk7CiAKQEAgLTE4NSw3ICsxODUsNyBAQCBwcml2YXRlOgogICAgIHVuc2lnbmVkIG1fdmFy
aWFudEVhc3RBc2lhblJ1YnkgOiAxOyAvLyBGb250VmFyaWFudEVhc3RBc2lhblJ1YnkKICAgICB1
bnNpZ25lZCBtX29wdGljYWxTaXppbmcgOiAxOyAvLyBGb250T3B0aWNhbFNpemluZwogICAgIHVu
c2lnbmVkIG1fZm9udFN0eWxlQXhpcyA6IDE7IC8vIFdoZXRoZXIgImZvbnQtc3R5bGU6IGl0YWxp
YyIgb3IgImZvbnQtc3R5bGU6IG9ibGlxdWUgMjBkZWciIHdhcyBzcGVjaWZpZWQKLSAgICB1bnNp
Z25lZCBtX21heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250IDogMTsgLy8gSWYgdGhpcyBkZXNj
cmlwdGlvbiBpcyBhbGxvd2VkIHRvIG1hdGNoIGEgdXNlci1pbnN0YWxsZWQgZm9udAorICAgIHVu
c2lnbmVkIG1fc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgOiAxOyAvLyBJZiB0aGlzIGRl
c2NyaXB0aW9uIGlzIGFsbG93ZWQgdG8gbWF0Y2ggYSB1c2VyLWluc3RhbGxlZCBmb250CiB9Owog
CiBpbmxpbmUgYm9vbCBGb250RGVzY3JpcHRpb246Om9wZXJhdG9yPT0oY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBvdGhlcikgY29uc3QKQEAgLTIyMCw3ICsyMjAsNyBAQCBpbmxpbmUgYm9vbCBGb250
RGVzY3JpcHRpb246Om9wZXJhdG9yPT0oY29uc3QgRm9udERlc2NyaXB0aW9uJiBvdGhlcikgY29u
c3QKICAgICAgICAgJiYgbV92YXJpYW50RWFzdEFzaWFuUnVieSA9PSBvdGhlci5tX3ZhcmlhbnRF
YXN0QXNpYW5SdWJ5CiAgICAgICAgICYmIG1fb3B0aWNhbFNpemluZyA9PSBvdGhlci5tX29wdGlj
YWxTaXppbmcKICAgICAgICAgJiYgbV9mb250U3R5bGVBeGlzID09IG90aGVyLm1fZm9udFN0eWxl
QXhpcwotICAgICAgICAmJiBtX21heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250ID09IG90aGVy
Lm1fbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQ7CisgICAgICAgICYmIG1fc2hvdWxkQWxs
b3dVc2VySW5zdGFsbGVkRm9udHMgPT0gb3RoZXIubV9zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRG
b250czsKIH0KIAogLy8gRklYTUU6IE1vdmUgdG8gYSBmaWxlIG9mIGl0cyBvd24uCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmgKaW5kZXggYjE2ODUzNGU1ZTJlMTUyNDI1ZDNiMWI2YzAzODdm
Y2IwYWE1NTM3Ny4uZGQzYWZiN2VmODdjMzNkYmM0MmVjN2E4NDliNTVkOGI3ODUzNGI4ZSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaApAQCAtNDgsNyArNDgsNyBAQCBwcml2YXRlOgog
ICAgIGNhaXJvX2ZvbnRfZmFjZV90KiBtX2ZvbnRGYWNlOwogfTsKIAotc3RkOjp1bmlxdWVfcHRy
PEZvbnRDdXN0b21QbGF0Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hh
cmVkQnVmZmVyJik7CitzdGQ6OnVuaXF1ZV9wdHI8Rm9udEN1c3RvbVBsYXRmb3JtRGF0YT4gY3Jl
YXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRCdWZmZXImLCBBbGxvd1VzZXJJbnN0YWxs
ZWRGb250cyk7CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIApkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQu
Y3BwCmluZGV4IGNlNzAzNzQxNTA2OWUwNzMxM2FiOThhZDk1MzcyMTYwYWQ5ZGI2ZjMuLmE3OGJl
YjNkYjI2ZWYzNGEzYjdjNjA0NmE0ZmIyNDM1YTdjNTJhNDkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4
dC5jcHAKQEAgLTgzMyw3ICs4MzMsNyBAQCBwdWJsaWM6CiAjaWYgIUNBTl9ESVNBTExPV19VU0VS
X0lOU1RBTExFRF9GT05UUwogICAgIHN0YXRpYyBGb250RGF0YWJhc2UmIHNpbmdsZXRvbigpCiAg
ICAgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFz
ZShGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXMpOworICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFzZShBbGxvd1VzZXJJbnN0YWxs
ZWRGb250czo6WWVzKTsKICAgICAgICAgcmV0dXJuIGRhdGFiYXNlOwogICAgIH0KICNlbmRpZgpA
QCAtODQxLDcgKzg0MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRm9udERhdGFiYXNlJiBzaW5n
bGV0b25BbGxvd2luZ1VzZXJJbnN0YWxsZWRGb250cygpCiAgICAgewogI2lmIENBTl9ESVNBTExP
V19VU0VSX0lOU1RBTExFRF9GT05UUwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9u
dERhdGFiYXNlPiBkYXRhYmFzZShGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZ
ZXMpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFz
ZShBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzKTsKICAgICAgICAgcmV0dXJuIGRhdGFiYXNl
OwogI2Vsc2UKICAgICAgICAgcmV0dXJuIHNpbmdsZXRvbigpOwpAQCAtODUxLDcgKzg1MSw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgRm9udERhdGFiYXNlJiBzaW5nbGV0b25EaXNhbGxvd2luZ1Vz
ZXJJbnN0YWxsZWRGb250cygpCiAgICAgewogI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExF
RF9GT05UUwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRh
YmFzZShGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObyk7CisgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGF0YWJhc2U+IGRhdGFiYXNlKEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzOjpObyk7CiAgICAgICAgIHJldHVybiBkYXRhYmFzZTsKICNlbHNlCiAgICAgICAg
IHJldHVybiBzaW5nbGV0b24oKTsKQEAgLTkwOCwyMSArOTA4LDEyIEBAIHB1YmxpYzoKICAgICAg
ICAgYXV0byBmb2xkZWQgPSBmYW1pbHlOYW1lLmZvbGRDYXNlKCk7CiAgICAgICAgIHJldHVybiBt
X2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9ycy5lbnN1cmUoZm9sZGVkLCBbJl0gewogICAgICAg
ICAgICAgYXV0byBmYW1pbHlOYW1lU3RyaW5nID0gZm9sZGVkLmNyZWF0ZUNGU3RyaW5nKCk7Ci0g
ICAgICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBhdHRyaWJ1dGVzOwotI2lmIENB
Tl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUwotICAgICAgICAgICAgaWYgKG1fYWxsb3dV
c2VySW5zdGFsbGVkRm9udHMgPT0gRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6
Tm8pIHsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RmFtaWx5
TmFtZUF0dHJpYnV0ZSwga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGUgfTsKLSAgICAgICAg
ICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGZhbWlseU5hbWVTdHJpbmcuZ2V0KCksIGtD
RkJvb2xlYW5GYWxzZSB9OwotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENG
RGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9B
UlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5
cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKLSAgICAgICAgICAgIH0gZWxzZQotI2VuZGlm
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsga0NU
Rm9udEZhbWlseU5hbWVBdHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFs
dWVzW10gPSB7IGZhbWlseU5hbWVTdHJpbmcuZ2V0KCkgfTsKLSAgICAgICAgICAgICAgICBhdHRy
aWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
a2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlL
ZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAg
ICAgICB9CisgICAgICAgICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFy
eUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5
S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAg
ICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEZhbWls
eU5hbWVBdHRyaWJ1dGUsIGZhbWlseU5hbWVTdHJpbmcuZ2V0KCkpOworICAgICAgICAgICAgYWRk
QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBtX2FsbG93
VXNlckluc3RhbGxlZEZvbnRzKTsKICAgICAgICAgICAgIGF1dG8gZm9udERlc2NyaXB0b3JUb01h
dGNoID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlV2l0aEF0dHJpYnV0ZXMoYXR0cmli
dXRlcy5nZXQoKSkpOwotICAgICAgICAgICAgaWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RG
b250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9y
VG9NYXRjaC5nZXQoKSwgbnVsbHB0cikpKSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTZXRS
ZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMgPSBtYW5kYXRvcnlBdHRyaWJ1dGVzRm9yVXNlckluc3Rh
bGxlZEZvbnRzKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOworICAgICAgICAgICAgaWYgKGF1
dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERl
c2NyaXB0b3JzKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbWFuZGF0b3J5QXR0cmlidXRl
cy5nZXQoKSkpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBjb3VudCA9IENGQXJyYXlHZXRDb3Vu
dChtYXRjaGVzLmdldCgpKTsKICAgICAgICAgICAgICAgICBWZWN0b3I8SW5zdGFsbGVkRm9udD4g
cmVzdWx0OwogICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNv
dW50KTsKQEAgLTk0NiwyMSArOTM3LDEzIEBAIHB1YmxpYzoKICNlbHNlCiAgICAgICAgICAgICBD
RlN0cmluZ1JlZiBuYW1lQXR0cmlidXRlID0ga0NURm9udE5hbWVBdHRyaWJ1dGU7CiAjZW5kaWYK
LSAgICAgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGF0dHJpYnV0ZXM7Ci0jaWYg
Q0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZPTlRTCi0gICAgICAgICAgICBpZiAobV9hbGxv
d1VzZXJJbnN0YWxsZWRGb250cyA9PSBGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRz
OjpObykgewotICAgICAgICAgICAgICAgIENGVHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRFbmFi
bGVkQXR0cmlidXRlLCBuYW1lQXR0cmlidXRlLCBrQ1RGb250VXNlckluc3RhbGxlZEF0dHJpYnV0
ZSB9OwotICAgICAgICAgICAgICAgIENGVHlwZVJlZiB2YWx1ZXNbXSA9IHsga0NGQm9vbGVhblRy
dWUsIHBvc3RTY3JpcHROYW1lU3RyaW5nLmdldCgpLCBrQ0ZCb29sZWFuRmFsc2UgfTsKLSAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NG
VHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJh
Y2tzKSk7Ci0gICAgICAgICAgICB9IGVsc2UKLSNlbmRpZgotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIENGVHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBu
YW1lQXR0cmlidXRlIH07Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1tdID0geyBr
Q0ZCb29sZWFuVHJ1ZSwgcG9zdFNjcmlwdE5hbWVTdHJpbmcuZ2V0KCkgfTsKLSAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURp
Y3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7
Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENG
RGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVE
aWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykp
OworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQoKSwga0NU
Rm9udEVuYWJsZWRBdHRyaWJ1dGUsIGtDRkJvb2xlYW5UcnVlKTsKKyAgICAgICAgICAgIENGRGlj
dGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMuZ2V0KCksIG5hbWVBdHRyaWJ1dGUsIHBvc3RTY3Jp
cHROYW1lU3RyaW5nLmdldCgpKTsKKyAgICAgICAgICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5z
dGFsbGVkRm9udHMoYXR0cmlidXRlcy5nZXQoKSwgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7
CiAgICAgICAgICAgICBhdXRvIGZvbnREZXNjcmlwdG9yVG9NYXRjaCA9IGFkb3B0Q0YoQ1RGb250
RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKLSAgICAg
ICAgICAgIGF1dG8gbWF0Y2ggPSBhZG9wdENGKHN0YXRpY19jYXN0PENURm9udERlc2NyaXB0b3JS
ZWY+KENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9yKGZvbnREZXNj
cmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVsbHB0cikpKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxD
RlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRlcyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2Vy
SW5zdGFsbGVkRm9udHMobV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CisgICAgICAgICAgICBh
dXRvIG1hdGNoID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVz
Y3JpcHRvcihmb250RGVzY3JpcHRvclRvTWF0Y2guZ2V0KCksIG1hbmRhdG9yeUF0dHJpYnV0ZXMu
Z2V0KCkpKTsKICAgICAgICAgICAgIHJldHVybiBJbnN0YWxsZWRGb250KG1hdGNoLmdldCgpKTsK
ICAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogICAgIH0KQEAgLTk3NCwxNCArOTU3LDE0IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPEZvbnRE
YXRhYmFzZT47CiAKLSAgICBGb250RGF0YWJhc2UoRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxs
ZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKKyAgICBGb250RGF0YWJhc2UoQWxsb3dV
c2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCiAgICAgICAgIDogbV9h
bGxvd1VzZXJJbnN0YWxsZWRGb250cyhhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKICAgICB7CiAg
ICAgfQogCiAgICAgSGFzaE1hcDxTdHJpbmcsIEluc3RhbGxlZEZvbnRGYW1pbHk+IG1fZmFtaWx5
TmFtZVRvRm9udERlc2NyaXB0b3JzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBJbnN0YWxsZWRGb250
PiBtX3Bvc3RTY3JpcHROYW1lVG9Gb250RGVzY3JpcHRvcnM7Ci0gICAgRm9udENhY2hlOjpBbGxv
d1VzZXJJbnN0YWxsZWRGb250cyBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzOworICAgIEFsbG93
VXNlckluc3RhbGxlZEZvbnRzIG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHM7CiB9OwogCiAvLyBC
ZWNhdXNlIHRoaXMgc3RydWN0IGhvbGRzIGludGVybWVkaWF0ZSB2YWx1ZXMgd2hpY2ggbWF5IGJl
IGluIHRoZSBjb21wcmVzc2VkIC0xIC0gMSBHWCByYW5nZSwgd2UgZG9uJ3Qgd2FudCB0byB1c2Ug
dGhlIHJlbGF0aXZlbHkgbGFyZ2UKQEAgLTExOTAsNyArMTE3Myw3IEBAIHN0cnVjdCBGb250TG9v
a3VwIHsKICAgICBib29sIGNyZWF0ZWRGcm9tUG9zdFNjcmlwdE5hbWUgeyBmYWxzZSB9OwogfTsK
IAotc3RhdGljIEZvbnRMb29rdXAgcGxhdGZvcm1Gb250TG9va3VwV2l0aEZhbWlseShjb25zdCBB
dG9taWNTdHJpbmcmIGZhbWlseSwgRm9udFNlbGVjdGlvblJlcXVlc3QgcmVxdWVzdCwgZmxvYXQg
c2l6ZSwgYm9vbCBtYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCkKK3N0YXRpYyBGb250TG9v
a3VwIHBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1p
bHksIEZvbnRTZWxlY3Rpb25SZXF1ZXN0IHJlcXVlc3QsIGZsb2F0IHNpemUsIEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzIGFsbG93VXNlckluc3RhbGxlZEZvbnRzKQogewogICAgIGNvbnN0IGF1dG8m
IHdoaXRlbGlzdCA9IGZvbnRXaGl0ZWxpc3QoKTsKICAgICBpZiAoIWlzU3lzdGVtRm9udChmYW1p
bHkpICYmIHdoaXRlbGlzdC5zaXplKCkgJiYgIXdoaXRlbGlzdC5jb250YWlucyhmYW1pbHkpKQpA
QCAtMTIwMSw3ICsxMTg0LDcgQEAgc3RhdGljIEZvbnRMb29rdXAgcGxhdGZvcm1Gb250TG9va3Vw
V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgRm9udFMKICAgICBDVEZvbnRT
eW1ib2xpY1RyYWl0cyB0cmFpdHMgPSAoaXNGb250V2VpZ2h0Qm9sZChyZXF1ZXN0LndlaWdodCkg
PyBrQ1RGb250VHJhaXRCb2xkIDogMCkgfCAoaXNJdGFsaWMocmVxdWVzdC5zbG9wZSkgPyBrQ1RG
b250VHJhaXRJdGFsaWMgOiAwKTsKICAgICByZXR1cm4geyBhZG9wdENGKENURm9udENyZWF0ZUZv
ckNTUyhmYW1pbHkuc3RyaW5nKCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHJlcXVlc3Qud2VpZ2h0KSwgdHJhaXRzLCBzaXplKSkgfTsKICNlbHNlCi0gICAgYXV0
byYgZm9udERhdGFiYXNlID0gbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQgPyBGb250RGF0
YWJhc2U6OnNpbmdsZXRvbkFsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKCkgOiBGb250RGF0YWJh
c2U6OnNpbmdsZXRvbkRpc2FsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKCk7CisgICAgYXV0byYg
Zm9udERhdGFiYXNlID0gYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gQWxsb3dVc2VySW5zdGFs
bGVkRm9udHM6OlllcyA/IEZvbnREYXRhYmFzZTo6c2luZ2xldG9uQWxsb3dpbmdVc2VySW5zdGFs
bGVkRm9udHMoKSA6IEZvbnREYXRhYmFzZTo6c2luZ2xldG9uRGlzYWxsb3dpbmdVc2VySW5zdGFs
bGVkRm9udHMoKTsKICAgICBjb25zdCBhdXRvJiBmYW1pbHlGb250cyA9IGZvbnREYXRhYmFzZS5j
b2xsZWN0aW9uRm9yRmFtaWx5KGZhbWlseS5zdHJpbmcoKSk7CiAgICAgaWYgKGZhbWlseUZvbnRz
LmlzRW1wdHkoKSkgewogICAgICAgICAvLyBUaGUgQ1NTIHNwZWMgc3RhdGVzIHRoYXQgZm9udC1m
YW1pbHkgb25seSBhY2NlcHRzIGEgbmFtZSBvZiBhbiBhY3R1YWwgZm9udCBmYW1pbHkuIEhvd2V2
ZXIsIGluIFdlYktpdCwgd2UgY2xhaW0gdG8gYWxzbwpAQCAtMTI2NSw3ICsxMjQ4LDcgQEAgc3Rh
dGljIFJldGFpblB0cjxDVEZvbnRSZWY+IGZvbnRXaXRoRmFtaWx5KGNvbnN0IEF0b21pY1N0cmlu
ZyYgZmFtaWx5LCBjb25zdCBGb24KICAgICBGb250TG9va3VwIGZvbnRMb29rdXA7CiAgICAgZm9u
dExvb2t1cC5yZXN1bHQgPSBwbGF0Zm9ybUZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2UoZmFtaWx5
LCByZXF1ZXN0LCBzaXplKTsKICAgICBpZiAoIWZvbnRMb29rdXAucmVzdWx0KQotICAgICAgICBm
b250TG9va3VwID0gcGxhdGZvcm1Gb250TG9va3VwV2l0aEZhbWlseShmYW1pbHksIHJlcXVlc3Qs
IHNpemUsIGZvbnREZXNjcmlwdGlvbi5tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCgpKTsK
KyAgICAgICAgZm9udExvb2t1cCA9IHBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkoZmFtaWx5
LCByZXF1ZXN0LCBzaXplLCBmb250RGVzY3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMoKSk7CiAgICAgcmV0dXJuIHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udExvb2t1cC5yZXN1
bHQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbiwgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VWYXJp
YW50U2V0dGluZ3MsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBzaXplLCAhZm9udExvb2t1cC5jcmVh
dGVkRnJvbVBvc3RTY3JpcHROYW1lKTsKIH0KIApAQCAtMTQ3NSw0ICsxNDU4LDMyIEBAIGNvbnN0
IEF0b21pY1N0cmluZyYgRm9udENhY2hlOjpwbGF0Zm9ybUFsdGVybmF0ZUZhbWlseU5hbWUoY29u
c3QgQXRvbWljU3RyaW5nJiBmCiAgICAgcmV0dXJuIG51bGxBdG9tKCk7CiB9CiAKK3ZvaWQgYWRk
QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0
dHJpYnV0ZXMsIEFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNlckluc3RhbGxlZEZvbnRz
KQoreworI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUworICAgIGlmIChtX2Fs
bG93VXNlckluc3RhbGxlZEZvbnRzID09IEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObykgewor
ICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLmdldCgpLCBrQ1RGb250VXNl
ckluc3RhbGxlZEF0dHJpYnV0ZSwga0NGQm9vbGVhbkZhbHNlKTsKKyAgICAgICAgQ1RGb250RmFs
bGJhY2tPcHRpb24gZmFsbGJhY2tPcHRpb24gPSBrQ1RGb250RmFsbGJhY2tPcHRpb25TeXN0ZW07
CisgICAgICAgIGF1dG8gZmFsbGJhY2tPcHRpb25OdW1iZXIgPSBhZG9wdENGKENGTnVtYmVyQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNJbnQ2NFR5cGUsICZrQ1RGb250RmFs
bGJhY2tPcHRpb25TeXN0ZW0pKTsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmli
dXRlcy5nZXQoKSwga0NURm9udEZhbGxiYWNrT3B0aW9uQXR0cmlidXRlLCBmYWxsYmFja09wdGlv
bk51bWJlci5nZXQoKSk7CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYXR0cmlidXRl
cyk7CisgICAgVU5VU0VEX1BBUkFNKGFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKKyNlbmRpZgor
fQorCitSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFs
bGVkRm9udHMoQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMp
Cit7CisjaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZPTlRTCisgICAgaWYgKGFsbG93
VXNlckluc3RhbGxlZEZvbnRzID09IEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObykgeworICAg
ICAgICBDRlR5cGVSZWYgbWFuZGF0b3J5QXR0cmlidXRlc1ZhbHVlc1tdID0geyBrQ1RGb250VXNl
ckluc3RhbGxlZEF0dHJpYnV0ZSwga0NURm9udEZhbGxiYWNrT3B0aW9uQXR0cmlidXRlIH07Cisg
ICAgICAgIHJldHVybiBhZG9wdENGKENGU2V0Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1h
bmRhdG9yeUF0dHJpYnV0ZXNWYWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgobWFuZGF0b3J5QXR0cmli
dXRlc1ZhbHVlcyksICZrQ0ZUeXBlU2V0Q2FsbEJhY2tzKSk7CisgICAgfQorI2Vsc2UKKyAgICBV
TlVTRURfUEFSQU0oYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOworI2VuZGlmCisgICAgcmV0dXJu
IG51bGxwdHI7Cit9CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0
CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzZGE3MTVi
OTZlNTk4YmQ5NTRjMjkzMGVlMWFiOTc3NDljZmI5Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oCkBA
IC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiAgQWxs
IHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJj
ZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJl
IHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJl
IG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0
YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25k
aXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRp
b25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVwcm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9jdW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJp
YWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3RyaWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBu
YW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIpIG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMg
Y29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRvIGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBk
ZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNvZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Ig
d3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAqIFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkg
QVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMgIkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9S
IElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJ
TVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1FUkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1Ig
QSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisgKiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFM
TCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JTIEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1Qs
IElORElSRUNULCBJTkNJREVOVEFMLCBTUEVDSUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJ
QUwgREFNQUdFUworICogKElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVO
VCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNFUlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEs
IE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElOVEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5E
CisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJTElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RS
SUNUIExJQUJJTElUWSwgT1IgVE9SVAorICogKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVS
V0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9VVCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRX
QVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhFIFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgor
ICovCisKKyNwcmFnbWEgb25jZQorCisjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisKKyNp
bmNsdWRlIDxDb3JlVGV4dC9DVEZvbnQuaD4KKworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1
Y3QgU3ludGhlc2lzUGFpciB7CisgICAgU3ludGhlc2lzUGFpcihib29sIG5lZWRzU3ludGhldGlj
Qm9sZCwgYm9vbCBuZWVkc1N5bnRoZXRpY09ibGlxdWUpCisgICAgICAgIDogbmVlZHNTeW50aGV0
aWNCb2xkKG5lZWRzU3ludGhldGljQm9sZCkKKyAgICAgICAgLCBuZWVkc1N5bnRoZXRpY09ibGlx
dWUobmVlZHNTeW50aGV0aWNPYmxpcXVlKQorICAgIHsKKyAgICB9CisKKyAgICBzdGQ6OnBhaXI8
Ym9vbCwgYm9vbD4gYm9sZE9ibGlxdWVQYWlyKCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVy
biBzdGQ6Om1ha2VfcGFpcihuZWVkc1N5bnRoZXRpY0JvbGQsIG5lZWRzU3ludGhldGljT2JsaXF1
ZSk7CisgICAgfQorCisgICAgYm9vbCBuZWVkc1N5bnRoZXRpY0JvbGQ7CisgICAgYm9vbCBuZWVk
c1N5bnRoZXRpY09ibGlxdWU7Cit9OworCitSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxh
dGZvcm1Gb250KENURm9udFJlZiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgRm9udEZl
YXR1cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgY29uc3QgRm9udFZhcmlhbnRTZXR0aW5n
cyogZm9udEZhY2VWYXJpYW50U2V0dGluZ3MsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmls
aXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGZsb2F0IHNpemUsIGJvb2wgYXBwbHlXZWlnaHRX
aWR0aFNsb3BlVmFyaWF0aW9ucyA9IHRydWUpOworU3ludGhlc2lzUGFpciBjb21wdXRlTmVjZXNz
YXJ5U3ludGhlc2lzKENURm9udFJlZiwgY29uc3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBpc1Bs
YXRmb3JtRm9udCA9IGZhbHNlKTsKK1JldGFpblB0cjxDVEZvbnRSZWY+IHBsYXRmb3JtRm9udFdp
dGhGYW1pbHlTcGVjaWFsQ2FzZShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgRm9udFNlbGVj
dGlvblJlcXVlc3QsIGZsb2F0IHNpemUpOworUmV0YWluUHRyPENURm9udFJlZj4gcGxhdGZvcm1G
b250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgRm9udFNlbGVjdGlvblJl
cXVlc3QsIFRleHRSZW5kZXJpbmdNb2RlLCBmbG9hdCBzaXplKTsKK2Jvb2wgcmVxdWlyZXNDdXN0
b21GYWxsYmFja0ZvbnQoVUNoYXIzMiBjaGFyYWN0ZXIpOworRm9udFNlbGVjdGlvbkNhcGFiaWxp
dGllcyBjYXBhYmlsaXRpZXNGb3JGb250RGVzY3JpcHRvcihDVEZvbnREZXNjcmlwdG9yUmVmKTsK
K3ZvaWQgYWRkQXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhDRk11dGFibGVEaWN0aW9u
YXJ5UmVmIGF0dHJpYnV0ZXMsIEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKK1JldGFpblB0cjxD
RlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyk7CisKK30KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRl
eCAwNjlhNzk1MmI5YTUzM2MwOGQ0OWM0OTk5MjQ1MjUzNjgyODJmNDFmLi4wNGE4MDFkNzdlOTU5
OTYwZGNjYzliNzMwN2IyZjA4YzI1OTM5N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5o
IgogCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCisjaW5jbHVkZSAiRm9udENhY2hlQ29yZVRleHQu
aCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1E
YXRhLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCkBAIC0zNCwxMCArMzUsMTcgQEAgRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKSA9IGRlZmF1bHQ7
CiAKIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3Jt
RGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBib2xkLCBi
b29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0dXJlcywg
Y29uc3QgRm9udFZhcmlhbnRTZXR0aW5ncyYgZm9udEZhY2VWYXJpYW50U2V0dGluZ3MsIEZvbnRT
ZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpCiB7Cisg
ICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtD
RlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKKyAgICBhZGRBdHRyaWJ1dGVzRm9yVXNl
ckluc3RhbGxlZEZvbnRzKGF0dHJpYnV0ZXMuZ2V0KCksIGZvbnREZXNjcmlwdGlvbi5zaG91bGRB
bGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKKyAgICBhdXRvIG1vZGlmaWVkRm9udERlc2NyaXB0
b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0ZXMobV9m
b250RGVzY3JpcHRvci5nZXQoKSwgYXR0cmlidXRlcy5nZXQoKSkpOworICAgIFJldGFpblB0cjxD
RlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRlcyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2Vy
SW5zdGFsbGVkRm9udHMoZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZv
bnRzKCkpOworICAgIGF1dG8gbWF0Y2hpbmdGb250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250
RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3IobW9kaWZpZWRGb250RGVzY3Jp
cHRvci5nZXQoKSwgbWFuZGF0b3J5QXR0cmlidXRlcy5nZXQoKSkpOworICAgIEFTU0VSVChtYXRj
aGluZ0ZvbnREZXNjcmlwdG9yKTsKKwogICAgIGludCBzaXplID0gZm9udERlc2NyaXB0aW9uLmNv
bXB1dGVkUGl4ZWxTaXplKCk7CiAgICAgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gZm9u
dERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCk7CiAgICAgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZh
cmlhbnQgPSBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCk7Ci0gICAgUmV0YWluUHRyPENU
Rm9udFJlZj4gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNjcmlwdG9yKG1f
Zm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIpKTsKKyAgICBSZXRhaW5QdHI8Q1RG
b250UmVmPiBmb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IobWF0
Y2hpbmdGb250RGVzY3JpcHRvci5nZXQoKSwgc2l6ZSwgbnVsbHB0cikpOwogICAgIGZvbnQgPSBw
cmVwYXJlUGxhdGZvcm1Gb250KGZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbiwgJmZvbnRGYWNl
RmVhdHVyZXMsICZmb250RmFjZVZhcmlhbnRTZXR0aW5ncywgZm9udEZhY2VDYXBhYmlsaXRpZXMs
IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSk7CiAgICAgQVNTRVJUKGZvbnQpOwogICAg
IHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywg
b3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdN
b2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0Rmxh
Z3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKaW5kZXggZGZk
ZTViZjZhNDYzNDQzYzI1ZGE1NmI1Yzk1NTk0YmMyZDE1MWYxOS4uNDEyYjk2ZmEyYzJiZTdjNDU1
YmRjOThlZjk0MmU5NmU4ZGNkYzViYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vdGV4dC9UZXh0RmxhZ3MuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHRGbGFncy5oCkBAIC0xLDUgKzEsNSBAQAogLyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAw
NiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAz
LCAyMDA2LCAyMDE3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVk
aXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3
aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUg
Zm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2Miw0ICszNjIsOSBAQCBlbnVtIGNsYXNzIEZvbnRT
dHlsZUF4aXMgewogICAgIGl0YWwKIH07CiAKK2VudW0gY2xhc3MgQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMgeworICAgIFllcywKKyAgICBObworfTsKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUv
c3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCmluZGV4IGNiZjY3MjM0MjY4ZjRjMzc3
MGJmZjNlYTA5NWY5OTg3MzIyZDQxMmYuLmNhOTY2NzBlMjM4ZWFkMmM0ZmNiMDRjMDIyN2RiNTZl
ZWMzMGQzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZv
ckRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JE
b2N1bWVudC5jcHAKQEAgLTEwOSw3ICsxMDksNyBAQCBSZW5kZXJTdHlsZSByZXNvbHZlRm9yRG9j
dW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3VtZW50KQogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRM
b2NhbGUoZG9jdW1lbnQuY29udGVudExhbmd1YWdlKCkpOwogICAgIGZvbnREZXNjcmlwdGlvbi5z
ZXRSZW5kZXJpbmdNb2RlKHNldHRpbmdzLmZvbnRSZW5kZXJpbmdNb2RlKCkpOwogICAgIGZvbnRE
ZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoc3RhbmRhcmRGYW1pbHkpOwotICAgIGZvbnREZXNjcmlw
dGlvbi5zZXRNYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCghc2V0dGluZ3Muc2hvdWxkRGlz
YWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNldFNob3Vs
ZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKHNldHRpbmdzLnNob3VsZEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzKCkpOwogCiAgICAgZm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRTaXplRnJvbUlkZW50
aWZpZXIoQ1NTVmFsdWVNZWRpdW0pOwogICAgIGludCBzaXplID0gZm9udFNpemVGb3JLZXl3b3Jk
KENTU1ZhbHVlTWVkaXVtLCBmYWxzZSwgZG9jdW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dl
YlByZWZlcmVuY2VzLnlhbWwKaW5kZXggMWY0YjlkOTU1ZGFjZmE1OGFiMzcyY2ZmNzYwNTQzNzll
OGI2Mzc5Yy4uYWE0NTBlM2QxNzMzNTI0ZmRmMGYzYWZiOTBhMjQ4OTg0ZDVkNmIzOCAxMDA2NDQK
LS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCkBAIC0xMDM3LDYgKzEwMzcsNyBA
QCBWaXNpYmxlRGVidWdPdmVybGF5UmVnaW9uczoKIFNob3VsZERpc2FsbG93VXNlckluc3RhbGxl
ZEZvbnRzOgogICB0eXBlOiBib29sCiAgIGRlZmF1bHRWYWx1ZTogZmFsc2UKKyAgd2ViY29yZUJp
bmRpbmc6IGN1c3RvbQogCiAKICMgRm9yIGV4cGVyaW1lbnRhbCBmZWF0dXJlczoKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKaW5kZXggYjhiMGY5YTgyZjQx
ODI5Mzk1Njc4NzE3NDk0MGZlOGUzMTZjNmE1My4uZTFiODY5MjA5ZTBjNzJjYWJhYThiYzg0MmEx
MjFkZDFkMzliMGJiNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBh
Z2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2Vi
UGFnZS5jcHAKQEAgLTMwNjEsNiArMzA2MSw3IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVy
ZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNTdG9yZSYgc3RvcmUpCiAgICAgc2V0dGluZ3Muc2V0
U3RvcmFnZUJsb2NraW5nUG9saWN5KHN0YXRpY19jYXN0PFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdl
QmxvY2tpbmdQb2xpY3k+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lLZXkoKSkpKTsKICAgICBzZXR0aW5ncy5zZXRGcmFt
ZUZsYXR0ZW5pbmcoc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RnJhbWVGbGF0dGVuaW5nPihzdG9yZS5n
ZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZnJhbWVGbGF0dGVuaW5nS2V5
KCkpKSk7CiAgICAgc2V0dGluZ3Muc2V0RWRpdGFibGVMaW5rQmVoYXZpb3Ioc3RhdGljX2Nhc3Q8
V2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZpb3I+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5
KFdlYlByZWZlcmVuY2VzS2V5OjplZGl0YWJsZUxpbmtCZWhhdmlvcktleSgpKSkpOworICAgIHNl
dHRpbmdzLnNldFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKHN0b3JlLmdldEJvb2xWYWx1
ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c2hvdWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9u
dHNLZXkoKSkgPyBXZWJDb3JlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8gOiBXZWJDb3Jl
OjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzKTsKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJ
T04pCiAgICAgc2V0dGluZ3Muc2V0RGF0YURldGVjdG9yVHlwZXMoc3RhdGljX2Nhc3Q8RGF0YURl
dGVjdG9yVHlwZXM+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5
OjpkYXRhRGV0ZWN0b3JUeXBlc0tleSgpKSkpOwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329736</attachid>
            <date>2017-12-18 20:46:49 -0800</date>
            <delta_ts>2017-12-18 21:06:03 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171218204648.patch</filename>
            <type>text/plain</type>
            <size>44852</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MDg1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNGY3ZWY2YzZiNDBhYThi
MTU2YjY1MmM0NDI1ZjBmMjM2NTFhNjFhZi4uMzMzNjkxMWEwYjJhNGJlOGU1MmZkMmRlZjQ2Y2Rj
YjY0NDhhMTgxNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTEyLTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzYwMjk5MTk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZWZh
Y3RvcnMgdGhlIGV4aXN0aW5nIHVzZXItaW5zdGFsbGVkLWZvbnRzIGNvZGUgdG8gYSBuZXcgc2hh
cmVkIGxvY2F0aW9uLCBpbiBGb250Q2FjaGVDb3JlVGV4dCwKKyAgICAgICAgYW5kIGNhbGxzIHRo
aXMgbmV3IHNoYXJlZCBjb2RlIGZyb20gRm9udEN1c3RvbVBsYXRmb3JtRGF0YSBjb2RlIChmb3Ig
V2ViIGZvbnRzKS4gSXQgYWxzbyBpbXByb3ZlcyB0aGVzZQorICAgICAgICBmdW5jdGlvbnMgdG8g
aW5jbHVkZSBhbm90aGVyIENvcmVUZXh0IGZvbnQgYXR0cmlidXRlIHdoaWNoIHdpbGwgbWFrZSBm
b250IGZhbGxiYWNrIG9iZXkgdGhlIHJ1bGVzIGFib3V0CisgICAgICAgIHVzZXItaW5zdGFsbGVk
IGZvbnRzLiBJdCBhbHNvIG1pZ3JhdGVzIHNvbWUgcmF3IGJvb2xlYW4gdmFsdWVzIHRvIHVzZSBl
bnVtIGNsYXNzZXMuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBmYXN0
L3RleHQvdXNlci1pbnN0YWxsZWQvIChtb3JlIG9mIHRoZW0gcGFzcyBub3cpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgYSBuZXcgaGVhZGVyOiBG
b250Q2FjaGVDb3JlVGV4dC5oIChhbmQgc29ydCB0aGUgZmlsZSkuCisgICAgICAgICogY3NzL0NT
U0ZvbnRGYWNlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU2V0OjplbnN1
cmVMb2NhbEZvbnRGYWNlc0ZvckZhbWlseVJlZ2lzdGVyZWQpOiBNaWdyYXRlIGEgYm9vbCB0byBh
biBlbnVtIGNsYXNzLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRpYWxpemVGb250U3R5bGUpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uS2V5
OjptYWtlRmxhZ3NLZXkpOiBNYWtlIGNhY2hlcyBzZW5zaXRpdmUgdG8gd2hldGhlciBvciBub3Qg
d2Ugc2hvdWxkIGRpc2FsbG93CisgICAgICAgIHVzZXItaW5zdGFsbGVkIGZvbnRzCisgICAgICAg
IChXZWJDb3JlOjpTeW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogRGVsZXRlZC4gTW92ZWQg
dG8gRm9udENhY2hlQ29yZVRleHQuaAorICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6
Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTogRGVsZXRlZC4gRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVtIGNs
YXNzLgorICAgICAgICAoV2ViQ29yZTo6bV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzIGNvbnN0KTogTWlncmF0ZSBhIGJvb2wgdG8gYW4gZW51bSBjbGFzcy4KKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0
b3I9PSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpt
YXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCBjb25zdCk6IERlbGV0ZWQuIERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRNYXlSZXByZXNlbnRVc2VySW5zdGFs
bGVkRm9udCk6IERlbGV0ZWQuIERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREYXRhYmFz
ZTo6c2luZ2xldG9uKTogTWlncmF0ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRG
bGFncy5oCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OnNpbmdsZXRvbkFsbG93aW5n
VXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJh
c2U6OnNpbmdsZXRvbkRpc2FsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmNvbGxlY3Rpb25Gb3JGYW1pbHkpOiBDYWxsIHRo
ZSBzaGFyZWQgZnVuY3Rpb25zIHRvIHVwZGF0ZSB0aGUgRm9udERlc2NyaXB0b3IuCisgICAgICAg
IChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmZvbnRGb3JQb3N0U2NyaXB0TmFtZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGFiYXNlOjpGb250RGF0YWJhc2UpOiBNaWdyYXRlIHRo
ZSBlbnVtIGNsYXNzIHRvIHRoZSBzaGFyZWQgVGV4dEZsYWdzLmgKKyAgICAgICAgKFdlYkNvcmU6
OnBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVt
IGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6Zm9udFdpdGhGYW1pbHkpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OmFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMpOiBBZGQgYW5v
dGhlciBwYXJhbWV0ZXIgdG8gdGhlIEZvbnREZXNjcmlwdG9yIHRvIGVuZm9yY2UKKyAgICAgICAg
Q29yZSBUZXh0IGZvbnQgZmFsbGJhY2sgaGFwcGVucyBhY2NvcmRpbmcgdG8gdGhlIHVzZXItaW5z
dGFsbGVkIGZvbnQgcnVsZXMuCisgICAgICAgIChXZWJDb3JlOjptYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
eW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogTWlncmF0ZWQgZnJvbSBGb250Q2FjaGUuaAor
ICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9u
dFBsYXRmb3JtRGF0YSk6IENhbGwgdGhlIHNoYXJlZCBmdW5jdGlvbnMgdG8gcHJlcGFyZSB0aGUg
Rm9udERlc2NyaXB0b3IuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDogTW92
ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRGbGFncy5oCisgICAgICAgICogc3R5
bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OnJlc29sdmVGb3JEb2N1bWVudCk6IE1pZ3JhdGUgYSBib29sIHRvIGFuIGVudW0gY2xhc3MuCisK
IDIwMTctMTItMTggIFdlbnNvbiBIc2llaCAgPHdlbnNvbl9oc2llaEBhcHBsZS5jb20+CiAKICAg
ICAgICAgW0F0dGFjaG1lbnQgU3VwcG9ydF0gSW5zZXJ0IGltYWdlcyBhcyBpbmxpbmUgYXR0YWNo
bWVudHMgd2hlbiBwYXN0aW5nIGFuZCBkcm9wcGluZwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggY2Jj
ZTA3YWMwMDViNjJmMTNjY2IwMzJmYjY1MjUxOGQzNzgzZDc2NS4uYzVlMGE4YTdmMGY3Y2VkMmVk
OTU5MGU3NTBiOGI4NTRhODhkMDQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0No
YW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMg
QEAKKzIwMTctMTItMTggIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4K
KworICAgICAgICBBIGRpc2FsbG93ZWQgdXNlci1pbnN0YWxsZWQgZm9udCBtYXkgYmUgdXNlZCBp
ZiBpdHMgUG9zdFNjcmlwdCBuYW1lIGlzIHNwZWNpZmllZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwOTUxCisgICAgICAgIDxyZGFyOi8vcHJvYmxl
bS8zNjAyOTkxOT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAg
ICAgICAqIHBhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaDoKKwogMjAxNy0xMi0xNCAgRGF2aWQg
S2lsemVyICA8ZGRraWx6ZXJAYXBwbGUuY29tPgogCiAgICAgICAgIEZpeCAzMi1iaXQgYnVpbGQ6
IEVuYWJsZSAtV3N0cmljdC1wcm90b3R5cGVzIGZvciBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggYTY5MmNh
OWQ2YmY1NDEzMmNiNTU2OTQxMTkzYzY4MjZlN2NkY2NhZS4uN2JlNzIyOGNjMWMwOTFhNmJkZmI4
ZDEwMDFhODY2ZWM3ZWU3MGY2NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cK
KysrIGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0xMi0x
OCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIEEg
ZGlzYWxsb3dlZCB1c2VyLWluc3RhbGxlZCBmb250IG1heSBiZSB1c2VkIGlmIGl0cyBQb3N0U2Ny
aXB0IG5hbWUgaXMgc3BlY2lmaWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3No
b3dfYnVnLmNnaT9pZD0xODA5NTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2MDI5OTE5Pgor
CisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1pZ3JhdGUg
YSBib29sIHRvIGFuIGVudW0gY2xhc3MuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5j
ZXMueWFtbDoKKyAgICAgICAgKiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAg
ICAgIChXZWJLaXQ6OldlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAxNy0xMi0xOCAg
QnJhZHkgRWlkc29uICA8YmVpZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQXBwcyB0aGF0IHVz
ZSBib3RoIFdLMSBhbmQgV0syIGNhbiBjcmFzaCBjcmVhdGluZyBhIFdLV2Vic2l0ZURhdGFTdG9y
ZS4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0
U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCmlu
ZGV4IDdkY2ZjZGVkM2UzMTVlNmU1MGM2Y2Y4YzUyMWQ5YzAxMDU4ZGY4M2MuLmM4ZjQzYWYwN2Zh
MTI2ZDZjYzgwZTY3OTA1ODQyODMwYTUwNTM2ODAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFM
L3BhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaApAQCAtNjYsNiArNjYsNyBAQCBleHRlcm4gY29u
c3QgQ0ZTdHJpbmdSZWYga0NURm9udFJlZmVyZW5jZVVSTEF0dHJpYnV0ZTsKIGV4dGVybiBjb25z
dCBDRlN0cmluZ1JlZiBrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGU7CiBleHRlcm4gY29uc3Qg
Q0ZTdHJpbmdSZWYga0NURm9udFBvc3RTY3JpcHROYW1lQXR0cmlidXRlOwogZXh0ZXJuIGNvbnN0
IENGU3RyaW5nUmVmIGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlOworZXh0ZXJuIGNvbnN0
IENGU3RyaW5nUmVmIGtDVEZvbnRGYWxsYmFja09wdGlvbkF0dHJpYnV0ZTsKIAogYm9vbCBDVEZv
bnRUcmFuc2Zvcm1HbHlwaHMoQ1RGb250UmVmLCBDR0dseXBoIGdseXBoc1tdLCBDR1NpemUgYWR2
YW5jZXNbXSwgQ0ZJbmRleCBjb3VudCwgQ1RGb250VHJhbnNmb3JtT3B0aW9ucyk7CiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvaiBi
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCAx
NTE5ZWMyNDEyNWNiMmFjY2Y3ZGEzZDg2OWIyYjkyY2QzMWU2OTlhLi4wMmZlM2JlZDRiYTJjNDdm
Y2U0YmRjY2U0MDhjNGRjYjBjNjVkZDk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9XZWJD
b3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKKysrIGIvU291cmNlL1dlYkNvcmUvV2ViQ29y
ZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCkBAIC0zNzIwLDYgKzM3MjAsNyBAQAogCQlDMTA1
REE2NDBGM0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29kaW5nRGV0ZWN0b3IuaCBpbiBIZWFkZXJz
ICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMxMDVEQTYzMEYzQUE2QjgwMDFE
RDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oICovOyB9OwogCQlDMjAxNUMwQTFCRTZGRUIy
MDA4MjIzODkgLyogRm9udFZhcmlhbnRCdWlsZGVyLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQ
QlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjAxNUMwOTFCRTZGRTJDMDA4MjIzODkgLyogRm9udFZh
cmlhbnRCdWlsZGVyLmggKi87IH07CiAJCUMyMURGMkVBMUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NG
b250VmFyaWF0aW9uVmFsdWUuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsg
ZmlsZVJlZiA9IEMyMURGMkU4MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFyaWF0aW9uVmFs
dWUuaCAqLzsgfTsKKwkJQzI0NThFNjMxRkU4OTdCMDAwNTk0NzU5IC8qIEZvbnRDYWNoZUNvcmVU
ZXh0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjQ1
OEU2MTFGRTg5NzlFMDA1OTQ3NTkgLyogRm9udENhY2hlQ29yZVRleHQuaCAqLzsgc2V0dGluZ3Mg
PSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwogCQlDMjYwMTdBNDFDNzJEQzk5MDBG
NzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyNjAxN0EyMUM3MkRDOTkwMEY3NEExNiAvKiBDU1NGb250RmFjZVNl
dC5oICovOyB9OwogCQlDMjgwODMzRjFDNkRDMjZGMDAxNDUxQjYgLyogSlNGb250RmFjZS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI4MDgzM0UxQzZE
QzIyQzAwMTQ1MUI2IC8qIEpTRm9udEZhY2UuaCAqLzsgfTsKIAkJQzJBQjBBRjcxRTZCM0M2QzAw
MTM0OEM1IC8qIEZvbnRTZWxlY3Rpb25BbGdvcml0aG0uaCBpbiBIZWFkZXJzICovID0ge2lzYSA9
IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyQUIwQUY1MUU2QjNDNkMwMDEzNDhDNSAvKiBGb250
U2VsZWN0aW9uQWxnb3JpdGhtLmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAoUHJpdmF0
ZSwgKTsgfTsgfTsKQEAgLTEyNjM2LDYgKzEyNjM3LDcgQEAKIAkJQzIwMTVDMDkxQkU2RkUyQzAw
ODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVu
Y2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250VmFyaWFu
dEJ1aWxkZXIuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzIxREYyRTcxRDlFNEU5
OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHAgKi8gPSB7aXNhID0gUEJYRmls
ZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vj
b2RlLmNwcC5jcHA7IHBhdGggPSBDU1NGb250VmFyaWF0aW9uVmFsdWUuY3BwOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwogCQlDMjFERjJFODFEOUU0RTk5MDBGNUIyNEMgLyogQ1NTRm9udFZh
cmlhdGlvblZhbHVlLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5n
ID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZvbnRW
YXJpYXRpb25WYWx1ZS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OworCQlDMjQ1OEU2MTFG
RTg5NzlFMDA1OTQ3NTkgLyogRm9udENhY2hlQ29yZVRleHQuaCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9u
dENhY2hlQ29yZVRleHQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI2MDE3QTEx
QzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRGYWNlU2V0LmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxl
UmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNv
ZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZvbnRGYWNlU2V0LmNwcDsgc291cmNlVHJlZSA9ICI8Z3Jv
dXA+IjsgfTsKIAkJQzI2MDE3QTIxQzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRGYWNlU2V0Lmgg
Ki8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtub3du
RmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IENTU0ZvbnRGYWNlU2V0Lmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyODA4MzNDMUM2REIxOTQwMDE0NTFCNiAvKiBGb250
RmFjZS5pZGwgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsg
bGFzdEtub3duRmlsZVR5cGUgPSB0ZXh0OyBwYXRoID0gRm9udEZhY2UuaWRsOyBzb3VyY2VUcmVl
ID0gIjxncm91cD4iOyB9OwpAQCAtMjMwMDMsNiArMjMwMDUsNyBAQAogCQkJaXNhID0gUEJYR3Jv
dXA7CiAJCQljaGlsZHJlbiA9ICgKIAkJCQkxQzM5NjlDRjFCNzQyMTFFMDAyQkNGQTcgLyogRm9u
dENhY2hlQ29yZVRleHQuY3BwICovLAorCQkJCUMyNDU4RTYxMUZFODk3OUUwMDU5NDc1OSAvKiBG
b250Q2FjaGVDb3JlVGV4dC5oICovLAogCQkJCUIyQUZGQzc4MEQwMEE1QzEwMDMwMDc0RCAvKiBG
b250Q2FzY2FkZUNvY29hLm1tICovLAogCQkJCTdDNEVERDczMUE3QjYwNzgwMDE5OEM0RCAvKiBG
b250Q29jb2EubW0gKi8sCiAJCQkJMUMxMkFDMkMxRUU3Nzk5NTAwNzlFMEEwIC8qIEZvbnREZXNj
cmlwdGlvbkNvY29hLmNwcCAqLywKQEAgLTI2MzcyLDcgKzI2Mzc1LDYgQEAKIAkJCQkwNzlEMDg2
QjE2MkYyMUY5MDBEQjg2NTggLyogQ2FwdGlvblVzZXJQcmVmZXJlbmNlc01lZGlhQUYuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTA3QjcxMTZEMUQ4OTlFNjMwMDlGMEZGQiAvKiBDYXB0dXJlRGV2aWNl
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0I3MTE2RjFEODk5RTYzMDA5RjBGRkIgLyogQ2FwdHVy
ZURldmljZU1hbmFnZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0N0MzOTJEMUZFNkUwRjMwMEJC
QkM2QiAvKiBSZW5kZXJUcmVlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0RDNzM0MTUx
OTc3ODk2RDAwNDZCRkM1IC8qIENBUmluZ0J1ZmZlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNjU1
MEI2OUUwOTlERjAyNzAwOTBENzgxIC8qIENEQVRBU2VjdGlvbi5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJQ0RGNEI3MTYxRTAwQjdFNTAwRTIzNUEyIC8qIENETS5oIGluIEhlYWRlcnMgKi8sCkBAIC0y
NjQ3Nyw3ICsyNjQ3OSw2IEBACiAJCQkJOTc0NkFGMjExNEY0RERFNjAwM0U3QTcxIC8qIENvb3Jk
aW5hdGVzLmggaW4gSGVhZGVycyAqLywKIAkJCQkzRjgwMjAzNTFFOUU0N0JGMDBERUM2MUQgLyog
Q29yZUF1ZGlvQ2FwdHVyZURldmljZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJM0Y4MDIwMzcxRTlF
NDdDNTAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVEZXZpY2VNYW5hZ2VyLmggaW4gSGVhZGVy
cyAqLywKLQkJCQlFNDdDMzkyRTFGRTZFMEY3MDBCQkJDNkIgLyogUmVuZGVyVHJlZVBvc2l0aW9u
LmggaW4gSGVhZGVycyAqLywKIAkJCQkwN0FGRjQyMjFFRkIxNDQ5MDBCNTQ1QjMgLyogQ29yZUF1
ZGlvQ2FwdHVyZVNvdXJjZUlPUy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQ0Q3RDMzNDgxQzdBMTZC
RjAwMDQxMjkzIC8qIENvcmVWaWRlb1NvZnRMaW5rLmggaW4gSGVhZGVycyAqLywKIAkJCQk4NjJG
MTI5RTE4QzE1NzZGMDA1QzU0QUYgLyogQ291bnRlZFVzZXJBY3Rpdml0eS5oIGluIEhlYWRlcnMg
Ki8sCkBAIC0yNjgzOSw3ICsyNjg0MCw2IEBACiAJCQkJQTdDRkIzRDIwQjdFRDEwQTAwNzBDMzJE
IC8qIERyYWdJbWFnZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUFGNUU0RDkxRTU2NzdBOTAwNEEx
RjAxIC8qIERyYWdJdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk4MUY2NUZGNjEzNzg4RkFBMDBG
RjZGMkQgLyogRHJhZ1N0YXRlLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDdDMzkzMjFGRTZFMTA1
MDBCQkJDNkIgLyogUmVuZGVyVHJlZVVwZGF0ZXJMaXN0SXRlbS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJRTFCQTY2RjExNzQyQkQ4NjAwQzIwMjUxIC8qIER5bmFtaWNMaW5rZXJJbnRlcnBvc2luZy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ2RUQyQzgxMzZCOEU2NjAwM0NGMDcyIC8qIER5bmFtaWNz
Q29tcHJlc3Nvci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRkQ1MzczNTcxMzdCNjUzQjAwMDA4RENF
IC8qIER5bmFtaWNzQ29tcHJlc3Nvcktlcm5lbC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNjkyNiw2
ICsyNjkyNiw3IEBACiAJCQkJNTE3QTUzNUIxRjU4OEE0QzAwRENEQzBBIC8qIEZldGNoQm9keUNv
bnN1bWVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MTI5Qzk5NzFGNTlCOTYzMDA5RDc0MDMgLyog
RmV0Y2hCb2R5U291cmNlLmggaW4gSGVhZGVycyAqLywKIAkJCQk0MUQxMjlEQjFGM0QxNDM4MDBE
MTVFNDcgLyogRmV0Y2hIZWFkZXJzLmggaW4gSGVhZGVycyAqLywKKwkJCQk0MTYxRTJENTFGRTQ4
REM1MDBFQzJFOTYgLyogRmV0Y2hMb2FkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTUxN0E1MzU4
MUY1ODg5RTgwMERDREMwQSAvKiBGZXRjaExvYWRlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDFBRDc1M0ExQ0VGNkJEMTAwQTMxNDg2IC8qIEZldGNoT3B0aW9ucy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJN0NFMTkxNEQxRjJBOUFGQjAwMjcyRjc4IC8qIEZldGNoUmVmZXJyZXJQb2xpY3ku
aCBpbiBIZWFkZXJzICovLApAQCAtMjY5ODgsNiArMjY5ODksNyBAQAogCQkJCTFBQzJEODlEMUIx
RTI5MUYwMEQ1MkU4NyAvKiBGb250QW50aWFsaWFzaW5nU3RhdGVTYXZlci5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQkNCOTJENEYxMjkzNTUwQjAwQzgzODdGIC8qIEZvbnRCYXNlbGluZS5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQjJDM0RBNjMwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYWNoZS5oIGlu
IEhlYWRlcnMgKi8sCisJCQkJQzI0NThFNjMxRkU4OTdCMDAwNTk0NzU5IC8qIEZvbnRDYWNoZUNv
cmVUZXh0LmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE2MTBEMDA2Q0Q2MDBFRjZGMjYgLyog
Rm9udENhc2NhZGUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTY4MEQwMDZDRDYwMEVGNkYy
NiAvKiBGb250Q2FzY2FkZUZvbnRzLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkFGRkM3RTBEMDBB
NUMxMDAzMDA3NEQgLyogRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIGluIEhlYWRlcnMgKi8sCkBA
IC0yNzIzNiw3ICsyNzIzOCw2IEBACiAJCQkJOTc3QjM4NzgxMjI4ODNFOTAwQjgxRkY4IC8qIEhU
TUxUb2tlbml6ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTA3MDc1NjhDMTQyMjYyRDYwMDQxNDE2
MSAvKiBIVE1MVHJhY2tFbGVtZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQk5NzdCMzcyNjEyMjg3
MjE3MDBCODFGRjggLyogSFRNTFRyZWVCdWlsZGVyLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDdD
MzkzMDFGRTZFMEZEMDBCQkJDNkIgLyogUmVuZGVyVHJlZVVwZGF0ZXJGaXJzdExldHRlci5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJQThFQTc5RjIwQTE5MTZERjAwQThFRjVGIC8qIEhUTUxVTGlzdEVs
ZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUFENDk5MTQzMThGMDgxNTEwMEJGMDA5MiAvKiBI
VE1MVW5rbm93bkVsZW1lbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUU0NDYxM0FCMENENjMzMTAw
MEZBREE3NSAvKiBIVE1MVmlkZW9FbGVtZW50LmggaW4gSGVhZGVycyAqLywKQEAgLTI3Mzg4LDcg
KzI3Mzg5LDYgQEAKIAkJCQk3QTU0ODU4MDE0RTAyRDUxMDA2QUUwNUEgLyogSW5zcGVjdG9ySGlz
dG9yeS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQUUxRkFBNDQ2MjAwMzdEMUU2IC8qIElu
c3BlY3RvckluZGV4ZWREQkFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQkyMEQ2MjkyNzEyNTM2
OTBCMDAwODE1NDMgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uLmggaW4gSGVhZGVycyAqLywK
LQkJCQk0MTYxRTJENTFGRTQ4REM1MDBFQzJFOTYgLyogRmV0Y2hMb2FkZXIuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1ODQwRTFEMTg3Qjc0RDUwMDg0M0IxMCAvKiBJbnNwZWN0b3JJbnN0cnVtZW50
YXRpb25Db29raWUuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0FGMUZBQTQ0NjIwMDM3RDFF
NiAvKiBJbnNwZWN0b3JMYXllclRyZWVBZ2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFD
QjAxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3Rvck1lbW9yeUFnZW50LmggaW4gSGVhZGVycyAq
LywKQEAgLTI4NTIzLDcgKzI4NTIzLDYgQEAKIAkJCQkxQTU2OUQwQjBEN0UyQjgyMDA3QzM5ODMg
LyogTlBfanNvYmplY3QuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTI3RkQyMTQxNkExNUIwMDNB
ODNDOCAvKiBucGFwaS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMUEyMTlCM0IwRENBODdBQjAwNDBF
M0EwIC8qIG5wZnVuY3Rpb25zLmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDdDMzkyRjFGRTZFMEY5
MDBCQkJDNkIgLyogUmVuZGVyVHJlZVVwZGF0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBOTI3
RkQzMTQxNkExNUIwMDNBODNDOCAvKiBucHJ1bnRpbWUuaCBpbiBIZWFkZXJzICovLAogCQkJCTFB
NTY5RDBGMEQ3RTJCODIwMDdDMzk4MyAvKiBucHJ1bnRpbWVfaW1wbC5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMUE1NjlEMTAwRDdFMkI4MjAwN0MzOTgzIC8qIG5wcnVudGltZV9pbnRlcm5hbC5oIGlu
IEhlYWRlcnMgKi8sCkBAIC0yODY3Nyw3ICsyODY3Niw2IEBACiAJCQkJMDcwRTA5MTkxODc1RUVG
QzAwM0ExRDNDIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
N0Y5NDQxNjE4NjREMDQ2MDA1RDMxQ0IgLyogUGxhdGZvcm1NZWRpYVNlc3Npb25NYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKIAkJCQk0MUJGNzAxMDBGRTg2RjYxMDA1RThERUMgLyogUGxhdGZvcm1N
ZXNzYWdlUG9ydENoYW5uZWwuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0N0MzOTMzMUZFNkUxMDgw
MEJCQkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRlck11bHRpQ29sdW1uLmggaW4gSGVhZGVycyAqLywK
IAkJCQk5MzVDNDc2OTA5QUM0RDQzMDBBNkFBQjQgLyogUGxhdGZvcm1Nb3VzZUV2ZW50LmggaW4g
SGVhZGVycyAqLywKIAkJCQlDNTk4OTA1ODE0RTlDMjk5MDBFOEQxOEIgLyogUGxhdGZvcm1QYXN0
ZWJvYXJkLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VDMDFENzBDMjc0RUI0MDA5RjRFQzkgLyog
UGxhdGZvcm1TY3JlZW4uaCBpbiBIZWFkZXJzICovLApAQCAtMjg5MjUsNiArMjg5MjMsMTMgQEAK
IAkJCQlGRUQxM0Q1MjBDRUE5NDk3MDBEODk0NjYgLyogUmVuZGVyVGhlbWVJT1MuaCBpbiBIZWFk
ZXJzICovLAogCQkJCUJDRUE0ODg3MDk3RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJUaGVtZU1hYy5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJOTNGMTk5OEMwODI0NUU1OTAwMUU5QUJDIC8qIFJlbmRlclRy
ZWVBc1RleHQuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0N0MzOTJEMUZFNkUwRjMwMEJCQkM2QiAv
KiBSZW5kZXJUcmVlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ3QzM5MkUxRkU2RTBG
NzAwQkJCQzZCIC8qIFJlbmRlclRyZWVQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ3
QzM5MkYxRkU2RTBGOTAwQkJCQzZCIC8qIFJlbmRlclRyZWVVcGRhdGVyLmggaW4gSGVhZGVycyAq
LywKKwkJCQlFNDdDMzkzMDFGRTZFMEZEMDBCQkJDNkIgLyogUmVuZGVyVHJlZVVwZGF0ZXJGaXJz
dExldHRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ3QzM5MzExRkU2RTEwMjAwQkJCQzZCIC8q
IFJlbmRlclRyZWVVcGRhdGVyR2VuZXJhdGVkQ29udGVudC5oIGluIEhlYWRlcnMgKi8sCisJCQkJ
RTQ3QzM5MzIxRkU2RTEwNTAwQkJCQzZCIC8qIFJlbmRlclRyZWVVcGRhdGVyTGlzdEl0ZW0uaCBp
biBIZWFkZXJzICovLAorCQkJCUU0N0MzOTMzMUZFNkUxMDgwMEJCQkM2QiAvKiBSZW5kZXJUcmVl
VXBkYXRlck11bHRpQ29sdW1uLmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQ2MTQ1MjBDRDY4QTM1
MDBGQURBNzUgLyogUmVuZGVyVmlkZW8uaCBpbiBIZWFkZXJzICovLAogCQkJCUJDRUE0ODY4MDk3
RDkzMDIwMDk0QzlFNCAvKiBSZW5kZXJWaWV3LmggaW4gSGVhZGVycyAqLywKIAkJCQlCRTIwNTA3
RTE4QTQ1OEMyMDA4MDY0N0UgLyogUmVuZGVyVlRUQ3VlLmggaW4gSGVhZGVycyAqLywKQEAgLTI5
MjA3LDcgKzI5MjEyLDYgQEAKIAkJCQk5N0JDNkEzQzE1MDVGMDgxMDAxQjc0QUMgLyogU1FMRXJy
b3IuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBMjI0NjRBMENDOThEREIwMEMwNTI0MCAvKiBTUUxp
dGVEYXRhYmFzZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJN0U0NzRFMUYxMjQ5NERDOTAwMjM1MzY0
IC8qIFNRTGl0ZURhdGFiYXNlVHJhY2tlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5MzEx
RkU2RTEwMjAwQkJCQzZCIC8qIFJlbmRlclRyZWVVcGRhdGVyR2VuZXJhdGVkQ29udGVudC5oIGlu
IEhlYWRlcnMgKi8sCiAJCQkJN0U0NzRFMUUxMjQ5NERDOTAwMjM1MzY0IC8qIFNRTGl0ZURhdGFi
YXNlVHJhY2tlckNsaWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjVBNjg0MjIwRkZBQkU5ODAw
RDI0Njg5IC8qIFNRTGl0ZUZpbGVTeXN0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCTUxMkJEQjRC
MUM0NTZGRkEwMDY0OTRERiAvKiBTUUxpdGVJREJCYWNraW5nU3RvcmUuaCBpbiBIZWFkZXJzICov
LApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU2V0LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNldC5jcHAKaW5kZXggNWM0MDMxM2U1OWM2YzRk
M2ZlMGZiMjdlZDgzNjhkMDY2NjE5NDEzNi4uZTg3NjdlNWEyZjU4MDE3ODkzMjFmNzE5ZjgxNTQw
MWVmNDUzNzM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU2V0
LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTZXQuY3BwCkBAIC0xMDQs
OSArMTA0LDcgQEAgdm9pZCBDU1NGb250RmFjZVNldDo6ZW5zdXJlTG9jYWxGb250RmFjZXNGb3JG
YW1pbHlSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYgZmFtaWwKICAgICBpZiAobV9sb2NhbGx5SW5z
dGFsbGVkRmFjZXNMb29rdXBUYWJsZS5jb250YWlucyhmYW1pbHlOYW1lKSkKICAgICAgICAgcmV0
dXJuOwogCi0gICAgRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJ
bnN0YWxsZWRGb250cyA9IEZvbnRDYWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6OlllczsK
LSAgICBpZiAobV9vd25pbmdGb250U2VsZWN0b3ItPmRvY3VtZW50KCkgJiYgbV9vd25pbmdGb250
U2VsZWN0b3ItPmRvY3VtZW50KCktPnNldHRpbmdzKCkuc2hvdWxkRGlzYWxsb3dVc2VySW5zdGFs
bGVkRm9udHMoKSkKLSAgICAgICAgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPSBGb250Q2FjaGU6
OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObzsKKyAgICBBbGxvd1VzZXJJbnN0YWxsZWRGb250
cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9IG1fb3duaW5nRm9udFNlbGVjdG9yLT5kb2N1bWVu
dCgpID8gbV9vd25pbmdGb250U2VsZWN0b3ItPmRvY3VtZW50KCktPnNldHRpbmdzKCkuc2hvdWxk
QWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSA6IEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXM7
CiAgICAgVmVjdG9yPEZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcyA9IEZv
bnRDYWNoZTo6c2luZ2xldG9uKCkuZ2V0Rm9udFNlbGVjdGlvbkNhcGFiaWxpdGllc0luRmFtaWx5
KGZhbWlseU5hbWUsIGFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKICAgICBpZiAoY2FwYWJpbGl0
aWVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2
ZXIuY3BwCmluZGV4IDdmZDI1YjhhYWQ1YWJjNzBkZTEwOWIyNDE0NjI2NDdmZDc5ZjA1NWQuLjU5
ZGMxZmQzZDRmMDVhYWM3OTgwZjE5MTIwZmVjNDc1OTE5Zjc3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
U3R5bGVSZXNvbHZlci5jcHAKQEAgLTE3ODgsNyArMTc4OCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZl
cjo6aW5pdGlhbGl6ZUZvbnRTdHlsZSgpCiAgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWls
eShzdGFuZGFyZEZhbWlseSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRTaXplRnJv
bUlkZW50aWZpZXIoQ1NTVmFsdWVNZWRpdW0pOwogICAgIHNldEZvbnRTaXplKGZvbnREZXNjcmlw
dGlvbiwgU3R5bGU6OmZvbnRTaXplRm9yS2V5d29yZChDU1NWYWx1ZU1lZGl1bSwgZmFsc2UsIGRv
Y3VtZW50KCkpKTsKLSAgICBmb250RGVzY3JpcHRpb24uc2V0TWF5UmVwcmVzZW50VXNlckluc3Rh
bGxlZEZvbnQoIXNldHRpbmdzKCkuc2hvdWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7
CisgICAgZm9udERlc2NyaXB0aW9uLnNldFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKHNl
dHRpbmdzKCkuc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CiAgICAgc2V0Rm9udERl
c2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFt
bAppbmRleCA5OTVlYjhkMWNjNDA5ZGQ5ZGI5ZmMxYzdiOWZmZjJhODM1ODY0MWNhLi4wYjAzY2E3
ZDdhZjk1ZmNlYWYyMTYxNWI4ZjJhNTYwYzRiZDc5OGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy55YW1sCkBAIC02NjEsOCArNjYxLDkgQEAgc3RvcmFnZUJsb2NraW5nUG9saWN5OgogICBpbml0
aWFsOiBTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlCiAgIG9uQ2hhbmdlOiBzdG9yYWdl
QmxvY2tpbmdQb2xpY3lDaGFuZ2VkCiAKLXNob3VsZERpc2FsbG93VXNlckluc3RhbGxlZEZvbnRz
OgotICBpbml0aWFsOiBmYWxzZQorc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6CisgIHR5
cGU6IEFsbG93VXNlckluc3RhbGxlZEZvbnRzCisgIGluaXRpYWw6IEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzOjpZZXMKICAgb25DaGFuZ2U6IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwog
CiAjIE9ubHkgc2V0IGJ5IExheW91dCBUZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhY2hlLmgKaW5kZXggNGFmNDdkNGIzNjM5OTQ3NTgyYzdlMDg0ODJhOWE1
Yzc3MmE0ZGU0MS4uNWNkN2I2OGZkZmJiNTk3OWI4MjA4Zjg4ZWNlYzNmNmRlOGI2ODVlMSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTQxLDcg
KzQxLDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JN
KENPQ09BKQotI2luY2x1ZGUgPENvcmVUZXh0L0NURm9udC5oPgorI2luY2x1ZGUgIkZvbnRDYWNo
ZUNvcmVUZXh0LmgiCiAjZW5kaWYKIAogI2lmIE9TKFdJTkRPV1MpCkBAIC0xMjQsNyArMTI0LDgg
QEAgc3RydWN0IEZvbnREZXNjcmlwdGlvbktleSB7CiBwcml2YXRlOgogICAgIHN0YXRpYyBzdGQ6
OmFycmF5PHVuc2lnbmVkLCAyPiBtYWtlRmxhZ3NLZXkoY29uc3QgRm9udERlc2NyaXB0aW9uJiBk
ZXNjcmlwdGlvbikKICAgICB7Ci0gICAgICAgIHVuc2lnbmVkIGZpcnN0ID0gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNjcmlwdCgpKSA8PCAxMworICAgICAgICB1bnNpZ25lZCBm
aXJzdCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5zY3JpcHQoKSkgPDwgMTQK
KyAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNob3VsZEFs
bG93VXNlckluc3RhbGxlZEZvbnRzKCkpIDw8IDEzCiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5mb250U3R5bGVBeGlzKCkgPT0gRm9udFN0eWxlQXhpczo6
c2xudCkgPDwgMTIKICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0
aW9uLm9wdGljYWxTaXppbmcoKSkgPDwgMTEKICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KGRlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCkpIDw8IDkKQEAgLTIwMCwxMCAr
MjAxLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBJTXVsdGlMYW5ndWFnZSogZ2V0TXVsdGlMYW5n
dWFnZUludGVyZmFjZSgpOwogI2VuZGlmCiAKLSAgICBlbnVtIGNsYXNzIEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzIHsKLSAgICAgICAgWWVzLAotICAgICAgICBObwotICAgIH07CiAgICAgLy8gVGhp
cyBmdW5jdGlvbiBleGlzdHMgc28gQ1NTRm9udFNlbGVjdG9yIGNhbiBoYXZlIGEgdW5pZmllZCBu
b3Rpb24gb2YgcHJlaW5zdGFsbGVkIGZvbnRzIGFuZCBAZm9udC1mYWNlLgogICAgIC8vIEl0IGNv
bWVzIGludG8gcGxheSB3aGVuIHlvdSBjcmVhdGUgYW4gQGZvbnQtZmFjZSB3aGljaCBzaGFyZXMg
YSBmYW1pbHkgbmFtZSBhcyBhIHByZWluc3RhbGxlZCBmb250LgogICAgIFZlY3RvcjxGb250U2Vs
ZWN0aW9uQ2FwYWJpbGl0aWVzPiBnZXRGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzSW5GYW1pbHko
Y29uc3QgQXRvbWljU3RyaW5nJiwgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOwpAQCAtMjcwLDMy
ICsyNjcsNyBAQCBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRD
YWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YUZvclRlcwogICAgIHJldHVybiBjcmVhdGVGb250
UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgZmFtaWx5LCBudWxscHRyLCBudWxscHRyLCB7
IH0pOwogfQogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0KLXN0cnVjdCBTeW50aGVzaXNQYWlyIHsK
LSAgICBTeW50aGVzaXNQYWlyKGJvb2wgbmVlZHNTeW50aGV0aWNCb2xkLCBib29sIG5lZWRzU3lu
dGhldGljT2JsaXF1ZSkKLSAgICAgICAgOiBuZWVkc1N5bnRoZXRpY0JvbGQobmVlZHNTeW50aGV0
aWNCb2xkKQotICAgICAgICAsIG5lZWRzU3ludGhldGljT2JsaXF1ZShuZWVkc1N5bnRoZXRpY09i
bGlxdWUpCi0gICAgewotICAgIH0KLQotICAgIHN0ZDo6cGFpcjxib29sLCBib29sPiBib2xkT2Js
aXF1ZVBhaXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKG5l
ZWRzU3ludGhldGljQm9sZCwgbmVlZHNTeW50aGV0aWNPYmxpcXVlKTsKLSAgICB9Ci0KLSAgICBi
b29sIG5lZWRzU3ludGhldGljQm9sZDsKLSAgICBib29sIG5lZWRzU3ludGhldGljT2JsaXF1ZTsK
LX07Ci0KLVJldGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVm
LCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiBmb250
RmFjZUZlYXR1cmVzLCBjb25zdCBGb250VmFyaWFudFNldHRpbmdzKiBmb250RmFjZVZhcmlhbnRT
ZXR0aW5ncywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFi
aWxpdGllcywgZmxvYXQgc2l6ZSwgYm9vbCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25z
ID0gdHJ1ZSk7Ci1TeW50aGVzaXNQYWlyIGNvbXB1dGVOZWNlc3NhcnlTeW50aGVzaXMoQ1RGb250
UmVmLCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIGlzUGxhdGZvcm1Gb250ID0gZmFsc2Up
OwotUmV0YWluUHRyPENURm9udFJlZj4gcGxhdGZvcm1Gb250V2l0aEZhbWlseVNwZWNpYWxDYXNl
KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgZmxvYXQg
c2l6ZSk7Ci1SZXRhaW5QdHI8Q1RGb250UmVmPiBwbGF0Zm9ybUZvbnRXaXRoRmFtaWx5KGNvbnN0
IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgVGV4dFJlbmRlcmlu
Z01vZGUsIGZsb2F0IHNpemUpOwotYm9vbCByZXF1aXJlc0N1c3RvbUZhbGxiYWNrRm9udChVQ2hh
cjMyIGNoYXJhY3Rlcik7Ci1Gb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllc0Zv
ckZvbnREZXNjcmlwdG9yKENURm9udERlc2NyaXB0b3JSZWYpOwotCi0jZWxzZQorI2lmICFQTEFU
Rk9STShDT0NPQSkKIAogaW5saW5lIHZvaWQgRm9udENhY2hlOjpwbGF0Zm9ybVB1cmdlSW5hY3Rp
dmVGb250RGF0YSgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250RGVzY3JpcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udERlc2NyaXB0aW9uLmNwcAppbmRleCBkZjRhOWNjYjVkYjQ5MDc2OGQwZTEzZGM2MmZl
YzVjNTAzZmFiNmU4Li4zZDVkZDM1NzE0NjA3N2IyOGFlNTIzZTNhMzNlMjdiZmQyNDU2OWFjIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRp
b24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlw
dGlvbi5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgRm9udERlc2NyaXB0aW9uOjpGb250RGVzY3JpcHRp
b24oKQogICAgICwgbV92YXJpYW50RWFzdEFzaWFuUnVieShzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
Rm9udFZhcmlhbnRFYXN0QXNpYW5SdWJ5OjpOb3JtYWwpKQogICAgICwgbV9vcHRpY2FsU2l6aW5n
KHN0YXRpY19jYXN0PHVuc2lnbmVkPihGb250T3B0aWNhbFNpemluZzo6RW5hYmxlZCkpCiAgICAg
LCBtX2ZvbnRTdHlsZUF4aXMoRm9udENhc2NhZGVEZXNjcmlwdGlvbjo6aW5pdGlhbEZvbnRTdHls
ZUF4aXMoKSA9PSBGb250U3R5bGVBeGlzOjppdGFsKQotICAgICwgbV9tYXlSZXByZXNlbnRVc2Vy
SW5zdGFsbGVkRm9udCh0cnVlKQorICAgICwgbV9zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250
cyhzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6OlllcykpCiB7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRE
ZXNjcmlwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2Ny
aXB0aW9uLmgKaW5kZXggOGI4ZmEyMjUwM2UyYzUxMDUxYmRkODhhYmRiYzUwYTlmNWViZGE5YS4u
MTViNGFmNjk0ZjM5ZmY5YWEzY2ZlYTJkMjgxZjkwODVjZTVmN2I0MiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKQEAgLTExNCw3
ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIEZvbnRPcHRpY2FsU2l6aW5nIG9wdGljYWxT
aXppbmcoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxGb250T3B0aWNhbFNpemluZz4obV9v
cHRpY2FsU2l6aW5nKTsgfQogICAgIEZvbnRTdHlsZUF4aXMgZm9udFN0eWxlQXhpcygpIGNvbnN0
IHsgcmV0dXJuIG1fZm9udFN0eWxlQXhpcyA/IEZvbnRTdHlsZUF4aXM6Oml0YWwgOiBGb250U3R5
bGVBeGlzOjpzbG50OyB9Ci0gICAgYm9vbCBtYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCgp
IGNvbnN0IHsgcmV0dXJuIG1fbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQ7IH0KKyAgICBB
bGxvd1VzZXJJbnN0YWxsZWRGb250cyBzaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygpIGNv
bnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFsbG93VXNlckluc3RhbGxlZEZvbnRzPihtX3Nob3Vs
ZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsgfQogCiAgICAgdm9pZCBzZXRDb21wdXRlZFNpemUo
ZmxvYXQgcykgeyBtX2NvbXB1dGVkU2l6ZSA9IGNsYW1wVG9GbG9hdChzKTsgfQogICAgIHZvaWQg
c2V0SXRhbGljKEZvbnRTZWxlY3Rpb25WYWx1ZSBpdGFsaWMpIHsgbV9mb250U2VsZWN0aW9uUmVx
dWVzdC5zbG9wZSA9IGl0YWxpYzsgfQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHB1YmxpYzoKICAgICB2
b2lkIHNldFZhcmlhbnRFYXN0QXNpYW5SdWJ5KEZvbnRWYXJpYW50RWFzdEFzaWFuUnVieSB2YXJp
YW50KSB7IG1fdmFyaWFudEVhc3RBc2lhblJ1YnkgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFy
aWFudCk7IH0KICAgICB2b2lkIHNldE9wdGljYWxTaXppbmcoRm9udE9wdGljYWxTaXppbmcgc2l6
aW5nKSB7IG1fb3B0aWNhbFNpemluZyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzaXppbmcpOyB9
CiAgICAgdm9pZCBzZXRGb250U3R5bGVBeGlzKEZvbnRTdHlsZUF4aXMgYXhpcykgeyBtX2ZvbnRT
dHlsZUF4aXMgPSBheGlzID09IEZvbnRTdHlsZUF4aXM6Oml0YWw7IH0KLSAgICB2b2lkIHNldE1h
eVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KGJvb2wgbWF5UmVwcmVzZW50VXNlckluc3RhbGxl
ZEZvbnQpIHsgbV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCA9IG1heVJlcHJlc2VudFVz
ZXJJbnN0YWxsZWRGb250OyB9CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRG
b250cyhBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBzaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250
cykgeyBtX3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzID0gc3RhdGljX2Nhc3Q8dW5zaWdu
ZWQ+KHNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsgfQogCiAgICAgc3RhdGljIHZvaWQg
aW52YWxpZGF0ZUNhY2hlcygpOwogCkBAIC0xODUsNyArMTg1LDcgQEAgcHJpdmF0ZToKICAgICB1
bnNpZ25lZCBtX3ZhcmlhbnRFYXN0QXNpYW5SdWJ5IDogMTsgLy8gRm9udFZhcmlhbnRFYXN0QXNp
YW5SdWJ5CiAgICAgdW5zaWduZWQgbV9vcHRpY2FsU2l6aW5nIDogMTsgLy8gRm9udE9wdGljYWxT
aXppbmcKICAgICB1bnNpZ25lZCBtX2ZvbnRTdHlsZUF4aXMgOiAxOyAvLyBXaGV0aGVyICJmb250
LXN0eWxlOiBpdGFsaWMiIG9yICJmb250LXN0eWxlOiBvYmxpcXVlIDIwZGVnIiB3YXMgc3BlY2lm
aWVkCi0gICAgdW5zaWduZWQgbV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCA6IDE7IC8v
IElmIHRoaXMgZGVzY3JpcHRpb24gaXMgYWxsb3dlZCB0byBtYXRjaCBhIHVzZXItaW5zdGFsbGVk
IGZvbnQKKyAgICB1bnNpZ25lZCBtX3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzIDogMTsg
Ly8gSWYgdGhpcyBkZXNjcmlwdGlvbiBpcyBhbGxvd2VkIHRvIG1hdGNoIGEgdXNlci1pbnN0YWxs
ZWQgZm9udAogfTsKIAogaW5saW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYgb3RoZXIpIGNvbnN0CkBAIC0yMjAsNyArMjIwLDcgQEAgaW5s
aW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KGNvbnN0IEZvbnREZXNjcmlwdGlv
biYgb3RoZXIpIGNvbnN0CiAgICAgICAgICYmIG1fdmFyaWFudEVhc3RBc2lhblJ1YnkgPT0gb3Ro
ZXIubV92YXJpYW50RWFzdEFzaWFuUnVieQogICAgICAgICAmJiBtX29wdGljYWxTaXppbmcgPT0g
b3RoZXIubV9vcHRpY2FsU2l6aW5nCiAgICAgICAgICYmIG1fZm9udFN0eWxlQXhpcyA9PSBvdGhl
ci5tX2ZvbnRTdHlsZUF4aXMKLSAgICAgICAgJiYgbV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVk
Rm9udCA9PSBvdGhlci5tX21heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250OworICAgICAgICAm
JiBtX3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzID09IG90aGVyLm1fc2hvdWxkQWxsb3dV
c2VySW5zdGFsbGVkRm9udHM7CiB9CiAKIC8vIEZJWE1FOiBNb3ZlIHRvIGEgZmlsZSBvZiBpdHMg
b3duLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCmluZGV4IGIxNjg1MzRlNWUyZTE1MjQy
NWQzYjFiNmMwMzg3ZmNiMGFhNTUzNzcuLmRkM2FmYjdlZjg3YzMzZGJjNDJlYzdhODQ5YjU1ZDhi
Nzg1MzRiOGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgKQEAgLTQ4LDcgKzQ4LDcg
QEAgcHJpdmF0ZToKICAgICBjYWlyb19mb250X2ZhY2VfdCogbV9mb250RmFjZTsKIH07CiAKLXN0
ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVGb250Q3VzdG9tUGxh
dGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciYpOworc3RkOjp1bmlxdWVfcHRyPEZvbnRDdXN0b21QbGF0
Zm9ybURhdGE+IGNyZWF0ZUZvbnRDdXN0b21QbGF0Zm9ybURhdGEoU2hhcmVkQnVmZmVyJiwgQWxs
b3dVc2VySW5zdGFsbGVkRm9udHMpOwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCiAKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNv
cmVUZXh0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRD
YWNoZUNvcmVUZXh0LmNwcAppbmRleCBjZTcwMzc0MTUwNjllMDczMTNhYjk4YWQ5NTM3MjE2MGFk
OWRiNmYzLi5hNzhiZWIzZGIyNmVmMzRhM2I3YzYwNDZhNGZiMjQzNWE3YzUyYTQ5IDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3Jl
VGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dENhY2hlQ29yZVRleHQuY3BwCkBAIC04MzMsNyArODMzLDcgQEAgcHVibGljOgogI2lmICFDQU5f
RElTQUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKICAgICBzdGF0aWMgRm9udERhdGFiYXNlJiBz
aW5nbGV0b24oKQogICAgIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREYXRh
YmFzZT4gZGF0YWJhc2UoRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzKTsK
KyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREYXRhYmFzZT4gZGF0YWJhc2UoQWxs
b3dVc2VySW5zdGFsbGVkRm9udHM6Olllcyk7CiAgICAgICAgIHJldHVybiBkYXRhYmFzZTsKICAg
ICB9CiAjZW5kaWYKQEAgLTg0MSw3ICs4NDEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEZvbnRE
YXRhYmFzZSYgc2luZ2xldG9uQWxsb3dpbmdVc2VySW5zdGFsbGVkRm9udHMoKQogICAgIHsKICNp
ZiBDQU5fRElTQUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKLSAgICAgICAgc3RhdGljIE5ldmVy
RGVzdHJveWVkPEZvbnREYXRhYmFzZT4gZGF0YWJhc2UoRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0
YWxsZWRGb250czo6WWVzKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREYXRh
YmFzZT4gZGF0YWJhc2UoQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Olllcyk7CiAgICAgICAgIHJl
dHVybiBkYXRhYmFzZTsKICNlbHNlCiAgICAgICAgIHJldHVybiBzaW5nbGV0b24oKTsKQEAgLTg1
MSw3ICs4NTEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEZvbnREYXRhYmFzZSYgc2luZ2xldG9u
RGlzYWxsb3dpbmdVc2VySW5zdGFsbGVkRm9udHMoKQogICAgIHsKICNpZiBDQU5fRElTQUxMT1df
VVNFUl9JTlNUQUxMRURfRk9OVFMKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnRE
YXRhYmFzZT4gZGF0YWJhc2UoRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8p
OworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFzZShB
bGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pOwogICAgICAgICByZXR1cm4gZGF0YWJhc2U7CiAj
ZWxzZQogICAgICAgICByZXR1cm4gc2luZ2xldG9uKCk7CkBAIC05MDgsMjEgKzkwOCwxMiBAQCBw
dWJsaWM6CiAgICAgICAgIGF1dG8gZm9sZGVkID0gZmFtaWx5TmFtZS5mb2xkQ2FzZSgpOwogICAg
ICAgICByZXR1cm4gbV9mYW1pbHlOYW1lVG9Gb250RGVzY3JpcHRvcnMuZW5zdXJlKGZvbGRlZCwg
WyZdIHsKICAgICAgICAgICAgIGF1dG8gZmFtaWx5TmFtZVN0cmluZyA9IGZvbGRlZC5jcmVhdGVD
RlN0cmluZygpOwotICAgICAgICAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gYXR0cmli
dXRlczsKLSNpZiBDQU5fRElTQUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKLSAgICAgICAgICAg
IGlmIChtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzID09IEZvbnRDYWNoZTo6QWxsb3dVc2VySW5z
dGFsbGVkRm9udHM6Ok5vKSB7Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsg
a0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUsIGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRl
IH07Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1tdID0geyBmYW1pbHlOYW1lU3Ry
aW5nLmdldCgpLCBrQ0ZCb29sZWFuRmFsc2UgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVz
ID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywg
dmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxs
QmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9
IGVsc2UKLSNlbmRpZgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIENGVHlwZVJlZiBr
ZXlzW10gPSB7IGtDVEZvbnRGYW1pbHlOYW1lQXR0cmlidXRlIH07Ci0gICAgICAgICAgICAgICAg
Q0ZUeXBlUmVmIHZhbHVlc1tdID0geyBmYW1pbHlOYW1lU3RyaW5nLmdldCgpIH07Ci0gICAgICAg
ICAgICAgICAgYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChrZXlzKSwgJmtDRlR5
cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNr
cykpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRD
RihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZU
eXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMuZ2V0KCks
IGtDVEZvbnRGYW1pbHlOYW1lQXR0cmlidXRlLCBmYW1pbHlOYW1lU3RyaW5nLmdldCgpKTsKKyAg
ICAgICAgICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoYXR0cmlidXRlcy5n
ZXQoKSwgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CiAgICAgICAgICAgICBhdXRvIGZvbnRE
ZXNjcmlwdG9yVG9NYXRjaCA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRy
aWJ1dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKLSAgICAgICAgICAgIGlmIChhdXRvIG1hdGNoZXMg
PSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9ycyhm
b250RGVzY3JpcHRvclRvTWF0Y2guZ2V0KCksIG51bGxwdHIpKSkgeworICAgICAgICAgICAgUmV0
YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVzID0gbWFuZGF0b3J5QXR0cmlidXRl
c0ZvclVzZXJJbnN0YWxsZWRGb250cyhtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKKyAgICAg
ICAgICAgIGlmIChhdXRvIG1hdGNoZXMgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVN
YXRjaGluZ0ZvbnREZXNjcmlwdG9ycyhmb250RGVzY3JpcHRvclRvTWF0Y2guZ2V0KCksIG1hbmRh
dG9yeUF0dHJpYnV0ZXMuZ2V0KCkpKSkgewogICAgICAgICAgICAgICAgIGF1dG8gY291bnQgPSBD
RkFycmF5R2V0Q291bnQobWF0Y2hlcy5nZXQoKSk7CiAgICAgICAgICAgICAgICAgVmVjdG9yPElu
c3RhbGxlZEZvbnQ+IHJlc3VsdDsKICAgICAgICAgICAgICAgICByZXN1bHQucmVzZXJ2ZUluaXRp
YWxDYXBhY2l0eShjb3VudCk7CkBAIC05NDYsMjEgKzkzNywxMyBAQCBwdWJsaWM6CiAjZWxzZQog
ICAgICAgICAgICAgQ0ZTdHJpbmdSZWYgbmFtZUF0dHJpYnV0ZSA9IGtDVEZvbnROYW1lQXR0cmli
dXRlOwogI2VuZGlmCi0gICAgICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBhdHRy
aWJ1dGVzOwotI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUwotICAgICAgICAg
ICAgaWYgKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gRm9udENhY2hlOjpBbGxvd1VzZXJJ
bnN0YWxsZWRGb250czo6Tm8pIHsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0g
eyBrQ1RGb250RW5hYmxlZEF0dHJpYnV0ZSwgbmFtZUF0dHJpYnV0ZSwga0NURm9udFVzZXJJbnN0
YWxsZWRBdHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7
IGtDRkJvb2xlYW5UcnVlLCBwb3N0U2NyaXB0TmFtZVN0cmluZy5nZXQoKSwga0NGQm9vbGVhbkZh
bHNlIH07Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdU
SChrZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25h
cnlWYWx1ZUNhbGxCYWNrcykpOwotICAgICAgICAgICAgfSBlbHNlCi0jZW5kaWYKLSAgICAgICAg
ICAgIHsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RW5hYmxl
ZEF0dHJpYnV0ZSwgbmFtZUF0dHJpYnV0ZSB9OwotICAgICAgICAgICAgICAgIENGVHlwZVJlZiB2
YWx1ZXNbXSA9IHsga0NGQm9vbGVhblRydWUsIHBvc3RTY3JpcHROYW1lU3RyaW5nLmdldCgpIH07
Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChrZXlz
KSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1
ZUNhbGxCYWNrcykpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgYXV0byBhdHRyaWJ1dGVz
ID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFs
dWVDYWxsQmFja3MpKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0
ZXMuZ2V0KCksIGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAg
ICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLmdldCgpLCBuYW1lQXR0cmli
dXRlLCBwb3N0U2NyaXB0TmFtZVN0cmluZy5nZXQoKSk7CisgICAgICAgICAgICBhZGRBdHRyaWJ1
dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKGF0dHJpYnV0ZXMuZ2V0KCksIG1fYWxsb3dVc2VySW5z
dGFsbGVkRm9udHMpOwogICAgICAgICAgICAgYXV0byBmb250RGVzY3JpcHRvclRvTWF0Y2ggPSBh
ZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVXaXRoQXR0cmlidXRlcyhhdHRyaWJ1dGVzLmdl
dCgpKSk7Ci0gICAgICAgICAgICBhdXRvIG1hdGNoID0gYWRvcHRDRihzdGF0aWNfY2FzdDxDVEZv
bnREZXNjcmlwdG9yUmVmPihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVzY3Jp
cHRvcihmb250RGVzY3JpcHRvclRvTWF0Y2guZ2V0KCksIG51bGxwdHIpKSk7CisgICAgICAgICAg
ICBSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMgPSBtYW5kYXRvcnlBdHRy
aWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOwor
ICAgICAgICAgICAgYXV0byBtYXRjaCA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1h
dGNoaW5nRm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3JUb01hdGNoLmdldCgpLCBtYW5kYXRv
cnlBdHRyaWJ1dGVzLmdldCgpKSk7CiAgICAgICAgICAgICByZXR1cm4gSW5zdGFsbGVkRm9udCht
YXRjaC5nZXQoKSk7CiAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKICAgICB9CkBAIC05NzQs
MTQgKzk1NywxNCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBOZXZlckRl
c3Ryb3llZDxGb250RGF0YWJhc2U+OwogCi0gICAgRm9udERhdGFiYXNlKEZvbnRDYWNoZTo6QWxs
b3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCisgICAgRm9udERh
dGFiYXNlKEFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNlckluc3RhbGxlZEZvbnRzKQog
ICAgICAgICA6IG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMoYWxsb3dVc2VySW5zdGFsbGVkRm9u
dHMpCiAgICAgewogICAgIH0KIAogICAgIEhhc2hNYXA8U3RyaW5nLCBJbnN0YWxsZWRGb250RmFt
aWx5PiBtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9yczsKICAgICBIYXNoTWFwPFN0cmluZywg
SW5zdGFsbGVkRm9udD4gbV9wb3N0U2NyaXB0TmFtZVRvRm9udERlc2NyaXB0b3JzOwotICAgIEZv
bnRDYWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHMgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250
czsKKyAgICBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRz
OwogfTsKIAogLy8gQmVjYXVzZSB0aGlzIHN0cnVjdCBob2xkcyBpbnRlcm1lZGlhdGUgdmFsdWVz
IHdoaWNoIG1heSBiZSBpbiB0aGUgY29tcHJlc3NlZCAtMSAtIDEgR1ggcmFuZ2UsIHdlIGRvbid0
IHdhbnQgdG8gdXNlIHRoZSByZWxhdGl2ZWx5IGxhcmdlCkBAIC0xMTkwLDcgKzExNzMsNyBAQCBz
dHJ1Y3QgRm9udExvb2t1cCB7CiAgICAgYm9vbCBjcmVhdGVkRnJvbVBvc3RTY3JpcHROYW1lIHsg
ZmFsc2UgfTsKIH07CiAKLXN0YXRpYyBGb250TG9va3VwIHBsYXRmb3JtRm9udExvb2t1cFdpdGhG
YW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIEZvbnRTZWxlY3Rpb25SZXF1ZXN0IHJl
cXVlc3QsIGZsb2F0IHNpemUsIGJvb2wgbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQpCitz
dGF0aWMgRm9udExvb2t1cCBwbGF0Zm9ybUZvbnRMb29rdXBXaXRoRmFtaWx5KGNvbnN0IEF0b21p
Y1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCByZXF1ZXN0LCBmbG9hdCBzaXpl
LCBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKIHsKICAg
ICBjb25zdCBhdXRvJiB3aGl0ZWxpc3QgPSBmb250V2hpdGVsaXN0KCk7CiAgICAgaWYgKCFpc1N5
c3RlbUZvbnQoZmFtaWx5KSAmJiB3aGl0ZWxpc3Quc2l6ZSgpICYmICF3aGl0ZWxpc3QuY29udGFp
bnMoZmFtaWx5KSkKQEAgLTEyMDEsNyArMTE4NCw3IEBAIHN0YXRpYyBGb250TG9va3VwIHBsYXRm
b3JtRm9udExvb2t1cFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIEZvbnRT
CiAgICAgQ1RGb250U3ltYm9saWNUcmFpdHMgdHJhaXRzID0gKGlzRm9udFdlaWdodEJvbGQocmVx
dWVzdC53ZWlnaHQpID8ga0NURm9udFRyYWl0Qm9sZCA6IDApIHwgKGlzSXRhbGljKHJlcXVlc3Qu
c2xvcGUpID8ga0NURm9udFRyYWl0SXRhbGljIDogMCk7CiAgICAgcmV0dXJuIHsgYWRvcHRDRihD
VEZvbnRDcmVhdGVGb3JDU1MoZmFtaWx5LnN0cmluZygpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCks
IHN0YXRpY19jYXN0PGZsb2F0PihyZXF1ZXN0LndlaWdodCksIHRyYWl0cywgc2l6ZSkpIH07CiAj
ZWxzZQotICAgIGF1dG8mIGZvbnREYXRhYmFzZSA9IG1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRG
b250ID8gRm9udERhdGFiYXNlOjpzaW5nbGV0b25BbGxvd2luZ1VzZXJJbnN0YWxsZWRGb250cygp
IDogRm9udERhdGFiYXNlOjpzaW5nbGV0b25EaXNhbGxvd2luZ1VzZXJJbnN0YWxsZWRGb250cygp
OworICAgIGF1dG8mIGZvbnREYXRhYmFzZSA9IGFsbG93VXNlckluc3RhbGxlZEZvbnRzID09IEFs
bG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXMgPyBGb250RGF0YWJhc2U6OnNpbmdsZXRvbkFsbG93
aW5nVXNlckluc3RhbGxlZEZvbnRzKCkgOiBGb250RGF0YWJhc2U6OnNpbmdsZXRvbkRpc2FsbG93
aW5nVXNlckluc3RhbGxlZEZvbnRzKCk7CiAgICAgY29uc3QgYXV0byYgZmFtaWx5Rm9udHMgPSBm
b250RGF0YWJhc2UuY29sbGVjdGlvbkZvckZhbWlseShmYW1pbHkuc3RyaW5nKCkpOwogICAgIGlm
IChmYW1pbHlGb250cy5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gVGhlIENTUyBzcGVjIHN0YXRl
cyB0aGF0IGZvbnQtZmFtaWx5IG9ubHkgYWNjZXB0cyBhIG5hbWUgb2YgYW4gYWN0dWFsIGZvbnQg
ZmFtaWx5LiBIb3dldmVyLCBpbiBXZWJLaXQsIHdlIGNsYWltIHRvIGFsc28KQEAgLTEyNjUsNyAr
MTI0OCw3IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250V2l0aEZhbWlseShjb25z
dCBBdG9taWNTdHJpbmcmIGZhbWlseSwgY29uc3QgRm9uCiAgICAgRm9udExvb2t1cCBmb250TG9v
a3VwOwogICAgIGZvbnRMb29rdXAucmVzdWx0ID0gcGxhdGZvcm1Gb250V2l0aEZhbWlseVNwZWNp
YWxDYXNlKGZhbWlseSwgcmVxdWVzdCwgc2l6ZSk7CiAgICAgaWYgKCFmb250TG9va3VwLnJlc3Vs
dCkKLSAgICAgICAgZm9udExvb2t1cCA9IHBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkoZmFt
aWx5LCByZXF1ZXN0LCBzaXplLCBmb250RGVzY3JpcHRpb24ubWF5UmVwcmVzZW50VXNlckluc3Rh
bGxlZEZvbnQoKSk7CisgICAgICAgIGZvbnRMb29rdXAgPSBwbGF0Zm9ybUZvbnRMb29rdXBXaXRo
RmFtaWx5KGZhbWlseSwgcmVxdWVzdCwgc2l6ZSwgZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93
VXNlckluc3RhbGxlZEZvbnRzKCkpOwogICAgIHJldHVybiBwcmVwYXJlUGxhdGZvcm1Gb250KGZv
bnRMb29rdXAucmVzdWx0LmdldCgpLCBmb250RGVzY3JpcHRpb24sIGZvbnRGYWNlRmVhdHVyZXMs
IGZvbnRGYWNlVmFyaWFudFNldHRpbmdzLCBmb250RmFjZUNhcGFiaWxpdGllcywgc2l6ZSwgIWZv
bnRMb29rdXAuY3JlYXRlZEZyb21Qb3N0U2NyaXB0TmFtZSk7CiB9CiAKQEAgLTE0NzUsNCArMTQ1
OCwzMiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEZvbnRDYWNoZTo6cGxhdGZvcm1BbHRlcm5hdGVG
YW1pbHlOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYgZgogICAgIHJldHVybiBudWxsQXRvbSgpOwog
fQogCit2b2lkIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoQ0ZNdXRhYmxlRGlj
dGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJ
bnN0YWxsZWRGb250cykKK3sKKyNpZiBDQU5fRElTQUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMK
KyAgICBpZiAobV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBBbGxvd1VzZXJJbnN0YWxsZWRG
b250czo6Tm8pIHsKKyAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQo
KSwga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGUsIGtDRkJvb2xlYW5GYWxzZSk7CisgICAg
ICAgIENURm9udEZhbGxiYWNrT3B0aW9uIGZhbGxiYWNrT3B0aW9uID0ga0NURm9udEZhbGxiYWNr
T3B0aW9uU3lzdGVtOworICAgICAgICBhdXRvIGZhbGxiYWNrT3B0aW9uTnVtYmVyID0gYWRvcHRD
RihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJTSW50NjRUeXBl
LCAma0NURm9udEZhbGxiYWNrT3B0aW9uU3lzdGVtKSk7CisgICAgICAgIENGRGljdGlvbmFyeUFk
ZFZhbHVlKGF0dHJpYnV0ZXMuZ2V0KCksIGtDVEZvbnRGYWxsYmFja09wdGlvbkF0dHJpYnV0ZSwg
ZmFsbGJhY2tPcHRpb25OdW1iZXIuZ2V0KCkpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGF0dHJpYnV0ZXMpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd1VzZXJJbnN0YWxsZWRGb250
cyk7CisjZW5kaWYKK30KKworUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKEFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNlcklu
c3RhbGxlZEZvbnRzKQoreworI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUwor
ICAgIGlmIChhbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBBbGxvd1VzZXJJbnN0YWxsZWRGb250
czo6Tm8pIHsKKyAgICAgICAgQ0ZUeXBlUmVmIG1hbmRhdG9yeUF0dHJpYnV0ZXNWYWx1ZXNbXSA9
IHsga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGUsIGtDVEZvbnRGYWxsYmFja09wdGlvbkF0
dHJpYnV0ZSB9OworICAgICAgICByZXR1cm4gYWRvcHRDRihDRlNldENyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBtYW5kYXRvcnlBdHRyaWJ1dGVzVmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKG1h
bmRhdG9yeUF0dHJpYnV0ZXNWYWx1ZXMpLCAma0NGVHlwZVNldENhbGxCYWNrcykpOworICAgIH0K
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKKyNlbmRp
ZgorICAgIHJldHVybiBudWxscHRyOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaApuZXcgZmls
ZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwLi4xM2RhNzE1Yjk2ZTU5OGJkOTU0YzI5MzBlZTFhYjk3NzQ5Y2ZiOWNkCi0tLSAvZGV2L251
bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuaApAQCAtMCwwICsxLDYyIEBACisvKgorICogQ29weXJpZ2h0IChDKSAyMDE3IEFw
cGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKgorICogUmVkaXN0cmlidXRpb24gYW5k
IHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CisgKiBtb2Rp
ZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRp
dGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJlZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2Ug
Y29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlz
IGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyLgorICogMi4g
IFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUg
Y29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhl
IGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICogICAgIGRvY3VtZW50YXRpb24gYW5kL29y
IG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRoZSBkaXN0cmlidXRpb24uCisgKiAzLiAg
TmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgiQXBwbGUiKSBub3IgdGhlIG5hbWVzIG9m
CisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUgdXNlZCB0byBlbmRvcnNlIG9yIHByb21v
dGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20gdGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNw
ZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4KKyAqCisgKiBUSElTIFNPRlRXQVJFIElT
IFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJQlVUT1JTICJBUyBJUyIgQU5EIEFOWQor
ICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xVRElORywgQlVUIE5PVCBMSU1J
VEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElFUyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5E
IEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NFIEFSRQorICogRElTQ0xBSU1FRC4gSU4g
Tk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRSSUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFO
WQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRBTCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBP
UiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBU
TywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09EUyBPUiBTRVJWSUNFUzsKKyAqIExPU1Mg
T0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJTkVTUyBJTlRFUlJVUFRJT04pIEhPV0VW
RVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBPRiBMSUFCSUxJVFksIFdIRVRIRVIgSU4g
Q09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRPUlQKKyAqIChJTkNMVURJTkcgTkVHTElH
RU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRgor
ICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VEIE9GIFRIRSBQT1NTSUJJTElUWSBPRiBT
VUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UKKworI2luY2x1ZGUgIkZvbnREZXNjcmlw
dGlvbi5oIgorCisjaW5jbHVkZSA8Q29yZVRleHQvQ1RGb250Lmg+CisKK25hbWVzcGFjZSBXZWJD
b3JlIHsKKworc3RydWN0IFN5bnRoZXNpc1BhaXIgeworICAgIFN5bnRoZXNpc1BhaXIoYm9vbCBu
ZWVkc1N5bnRoZXRpY0JvbGQsIGJvb2wgbmVlZHNTeW50aGV0aWNPYmxpcXVlKQorICAgICAgICA6
IG5lZWRzU3ludGhldGljQm9sZChuZWVkc1N5bnRoZXRpY0JvbGQpCisgICAgICAgICwgbmVlZHNT
eW50aGV0aWNPYmxpcXVlKG5lZWRzU3ludGhldGljT2JsaXF1ZSkKKyAgICB7CisgICAgfQorCisg
ICAgc3RkOjpwYWlyPGJvb2wsIGJvb2w+IGJvbGRPYmxpcXVlUGFpcigpIGNvbnN0CisgICAgewor
ICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIobmVlZHNTeW50aGV0aWNCb2xkLCBuZWVkc1N5
bnRoZXRpY09ibGlxdWUpOworICAgIH0KKworICAgIGJvb2wgbmVlZHNTeW50aGV0aWNCb2xkOwor
ICAgIGJvb2wgbmVlZHNTeW50aGV0aWNPYmxpcXVlOworfTsKKworUmV0YWluUHRyPENURm9udFJl
Zj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYsIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYs
IGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRGYWNlRmVhdHVyZXMsIGNvbnN0IEZvbnRW
YXJpYW50U2V0dGluZ3MqIGZvbnRGYWNlVmFyaWFudFNldHRpbmdzLCBGb250U2VsZWN0aW9uU3Bl
Y2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBmbG9hdCBzaXplLCBib29s
IGFwcGx5V2VpZ2h0V2lkdGhTbG9wZVZhcmlhdGlvbnMgPSB0cnVlKTsKK1N5bnRoZXNpc1BhaXIg
Y29tcHV0ZU5lY2Vzc2FyeVN5bnRoZXNpcyhDVEZvbnRSZWYsIGNvbnN0IEZvbnREZXNjcmlwdGlv
biYsIGJvb2wgaXNQbGF0Zm9ybUZvbnQgPSBmYWxzZSk7CitSZXRhaW5QdHI8Q1RGb250UmVmPiBw
bGF0Zm9ybUZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2UoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1p
bHksIEZvbnRTZWxlY3Rpb25SZXF1ZXN0LCBmbG9hdCBzaXplKTsKK1JldGFpblB0cjxDVEZvbnRS
ZWY+IHBsYXRmb3JtRm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIEZv
bnRTZWxlY3Rpb25SZXF1ZXN0LCBUZXh0UmVuZGVyaW5nTW9kZSwgZmxvYXQgc2l6ZSk7Citib29s
IHJlcXVpcmVzQ3VzdG9tRmFsbGJhY2tGb250KFVDaGFyMzIgY2hhcmFjdGVyKTsKK0ZvbnRTZWxl
Y3Rpb25DYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzRm9yRm9udERlc2NyaXB0b3IoQ1RGb250RGVz
Y3JpcHRvclJlZik7Cit2b2lkIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoQ0ZN
dXRhYmxlRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7
CitSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVk
Rm9udHMoQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOworCit9CmRpZmYgLS1naXQgYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5jcHAKaW5kZXggMDY5YTc5NTJiOWE1MzNjMDhkNDljNDk5OTI0NTI1MzY4MjgyZjQxZi4u
MDRhODAxZDc3ZTk1OTk2MGRjY2M5YjczMDdiMmYwOGMyNTkzOTdmMiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkZvbnRDdXN0b21Q
bGF0Zm9ybURhdGEuaCIKIAogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgorI2luY2x1ZGUgIkZvbnRD
YWNoZUNvcmVUZXh0LmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAi
Rm9udFBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtMzQsMTAg
KzM1LDE3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
KCkgPSBkZWZhdWx0OwogCiBGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
OmZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24s
IGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRG
YWNlRmVhdHVyZXMsIGNvbnN0IEZvbnRWYXJpYW50U2V0dGluZ3MmIGZvbnRGYWNlVmFyaWFudFNl
dHRpbmdzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJp
bGl0aWVzKQogeworICAgIGF1dG8gYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3Jl
YXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAma0NGVHlwZURpY3Rpb25hcnlLZXlD
YWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgYWRkQXR0
cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBmb250RGVzY3Jp
cHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CisgICAgYXV0byBtb2RpZmll
ZEZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlQ29weVdpdGhB
dHRyaWJ1dGVzKG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAg
ICBSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMgPSBtYW5kYXRvcnlBdHRy
aWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKGZvbnREZXNjcmlwdGlvbi5zaG91bGRBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cygpKTsKKyAgICBhdXRvIG1hdGNoaW5nRm9udERlc2NyaXB0b3IgPSBh
ZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9yKG1vZGlm
aWVkRm9udERlc2NyaXB0b3IuZ2V0KCksIG1hbmRhdG9yeUF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAg
ICBBU1NFUlQobWF0Y2hpbmdGb250RGVzY3JpcHRvcik7CisKICAgICBpbnQgc2l6ZSA9IGZvbnRE
ZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpOwogICAgIEZvbnRPcmllbnRhdGlvbiBvcmll
bnRhdGlvbiA9IGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigpOwogICAgIEZvbnRXaWR0aFZh
cmlhbnQgd2lkdGhWYXJpYW50ID0gZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpOwotICAg
IFJldGFpblB0cjxDVEZvbnRSZWY+IGZvbnQgPSBhZG9wdENGKENURm9udENyZWF0ZVdpdGhGb250
RGVzY3JpcHRvcihtX2ZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXplLCBudWxscHRyKSk7CisgICAg
UmV0YWluUHRyPENURm9udFJlZj4gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnRE
ZXNjcmlwdG9yKG1hdGNoaW5nRm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIpKTsK
ICAgICBmb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChmb250LmdldCgpLCBmb250RGVzY3JpcHRp
b24sICZmb250RmFjZUZlYXR1cmVzLCAmZm9udEZhY2VWYXJpYW50U2V0dGluZ3MsIGZvbnRGYWNl
Q2FwYWJpbGl0aWVzLCBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwogICAgIEFTU0VS
VChmb250KTsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250LmdldCgpLCBzaXplLCBi
b2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIGZvbnREZXNjcmlwdGlvbi50
ZXh0UmVuZGVyaW5nTW9kZSgpKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3RleHQvVGV4dEZsYWdzLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFn
cy5oCmluZGV4IGRmZGU1YmY2YTQ2MzQ0M2MyNWRhNTZiNWM5NTU5NGJjMmQxNTFmMTkuLjQxMmI5
NmZhMmMyYmU3YzQ1NWJkYzk4ZWY5NDJlOTZlOGRjZGM1YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vdGV4dC9UZXh0RmxhZ3MuaApAQCAtMSw1ICsxLDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQg
KEMpIDIwMDMsIDIwMDYgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqIENvcHly
aWdodCAoQykgMjAwMywgMjAwNiwgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVk
LgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9y
bXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3Zp
ZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCkBAIC0zNjIsNCArMzYyLDkgQEAgZW51
bSBjbGFzcyBGb250U3R5bGVBeGlzIHsKICAgICBpdGFsCiB9OwogCitlbnVtIGNsYXNzIEFsbG93
VXNlckluc3RhbGxlZEZvbnRzIHsKKyAgICBZZXMsCisgICAgTm8KK307CisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcAppbmRleCBjYmY2
NzIzNDI2OGY0YzM3NzBiZmYzZWEwOTVmOTk4NzMyMmQ0MTJmLi5jYTk2NjcwZTIzOGVhZDJjNGZj
YjA0YzAyMjdkYjU2ZWVjMzBkM2ZlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9T
dHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5
bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCkBAIC0xMDksNyArMTA5LDcgQEAgUmVuZGVyU3R5bGUg
cmVzb2x2ZUZvckRvY3VtZW50KGNvbnN0IERvY3VtZW50JiBkb2N1bWVudCkKICAgICBmb250RGVz
Y3JpcHRpb24uc2V0TG9jYWxlKGRvY3VtZW50LmNvbnRlbnRMYW5ndWFnZSgpKTsKICAgICBmb250
RGVzY3JpcHRpb24uc2V0UmVuZGVyaW5nTW9kZShzZXR0aW5ncy5mb250UmVuZGVyaW5nTW9kZSgp
KTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0T25lRmFtaWx5KHN0YW5kYXJkRmFtaWx5KTsKLSAg
ICBmb250RGVzY3JpcHRpb24uc2V0TWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQoIXNldHRp
bmdzLnNob3VsZERpc2FsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpOworICAgIGZvbnREZXNjcmlw
dGlvbi5zZXRTaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cyhzZXR0aW5ncy5zaG91bGRBbGxv
d1VzZXJJbnN0YWxsZWRGb250cygpKTsKIAogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRLZXl3b3Jk
U2l6ZUZyb21JZGVudGlmaWVyKENTU1ZhbHVlTWVkaXVtKTsKICAgICBpbnQgc2l6ZSA9IGZvbnRT
aXplRm9yS2V5d29yZChDU1NWYWx1ZU1lZGl1bSwgZmFsc2UsIGRvY3VtZW50KTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2Vi
S2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDFmNGI5ZDk1NWRhY2ZhNThhYjM3
MmNmZjc2MDU0Mzc5ZThiNjM3OWMuLmFhNDUwZTNkMTczMzUyNGZkZjBmM2FmYjkwYTI0ODk4NGQ1
ZDZiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlh
bWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApAQCAtMTAz
Nyw2ICsxMDM3LDcgQEAgVmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnM6CiBTaG91bGREaXNhbGxv
d1VzZXJJbnN0YWxsZWRGb250czoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6IGZhbHNl
CisgIHdlYmNvcmVCaW5kaW5nOiBjdXN0b20KIAogCiAjIEZvciBleHBlcmltZW50YWwgZmVhdHVy
ZXM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdl
LmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4
IGI4YjBmOWE4MmY0MTgyOTM5NTY3ODcxNzQ5NDBmZThlMzE2YzZhNTMuLmUxYjg2OTIwOWUwYzcy
Y2FiYWE4YmM4NDJhMTIxZGQxZDM5YjBiYjQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMDYxLDYgKzMwNjEsNyBAQCB2b2lkIFdlYlBhZ2U6
OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3JlKQogICAg
IHNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShzdGF0aWNfY2FzdDxTZWN1cml0eU9y
aWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5PihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShX
ZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5nUG9saWN5S2V5KCkpKSk7CiAgICAgc2V0
dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKHN0YXRpY19jYXN0PFdlYkNvcmU6OkZyYW1lRmxhdHRl
bmluZz4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmZyYW1l
RmxhdHRlbmluZ0tleSgpKSkpOwogICAgIHNldHRpbmdzLnNldEVkaXRhYmxlTGlua0JlaGF2aW9y
KHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yPihzdG9yZS5nZXRVSW50
MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZWRpdGFibGVMaW5rQmVoYXZpb3JLZXko
KSkpKTsKKyAgICBzZXR0aW5ncy5zZXRTaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cyhzdG9y
ZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNob3VsZERpc2FsbG93VXNl
ckluc3RhbGxlZEZvbnRzS2V5KCkpID8gV2ViQ29yZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6
Ok5vIDogV2ViQ29yZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Olllcyk7CiAjaWYgRU5BQkxF
KERBVEFfREVURUNUSU9OKQogICAgIHNldHRpbmdzLnNldERhdGFEZXRlY3RvclR5cGVzKHN0YXRp
Y19jYXN0PERhdGFEZXRlY3RvclR5cGVzPihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQ
cmVmZXJlbmNlc0tleTo6ZGF0YURldGVjdG9yVHlwZXNLZXkoKSkpKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329738</attachid>
            <date>2017-12-18 21:06:04 -0800</date>
            <delta_ts>2017-12-19 11:15:54 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171218210604.patch</filename>
            <type>text/plain</type>
            <size>45492</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MDk1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWYwNjlkOGVhYjE3ZTgx
YWNiOTg4NDUyNWUwZjIwMjJiMzM1YzRmOS4uZTk4MjlmN2MwNzY4OTNjNWI3YjZjNzQzNzVhNmMx
OWQ1NWFkOTg0MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTEyLTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzYwMjk5MTk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZWZh
Y3RvcnMgdGhlIGV4aXN0aW5nIHVzZXItaW5zdGFsbGVkLWZvbnRzIGNvZGUgdG8gYSBuZXcgc2hh
cmVkIGxvY2F0aW9uLCBpbiBGb250Q2FjaGVDb3JlVGV4dCwKKyAgICAgICAgYW5kIGNhbGxzIHRo
aXMgbmV3IHNoYXJlZCBjb2RlIGZyb20gRm9udEN1c3RvbVBsYXRmb3JtRGF0YSBjb2RlIChmb3Ig
V2ViIGZvbnRzKS4gSXQgYWxzbyBpbXByb3ZlcyB0aGVzZQorICAgICAgICBmdW5jdGlvbnMgdG8g
aW5jbHVkZSBhbm90aGVyIENvcmVUZXh0IGZvbnQgYXR0cmlidXRlIHdoaWNoIHdpbGwgbWFrZSBm
b250IGZhbGxiYWNrIG9iZXkgdGhlIHJ1bGVzIGFib3V0CisgICAgICAgIHVzZXItaW5zdGFsbGVk
IGZvbnRzLiBJdCBhbHNvIG1pZ3JhdGVzIHNvbWUgcmF3IGJvb2xlYW4gdmFsdWVzIHRvIHVzZSBl
bnVtIGNsYXNzZXMuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBmYXN0
L3RleHQvdXNlci1pbnN0YWxsZWQvIChtb3JlIG9mIHRoZW0gcGFzcyBub3cpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgYSBuZXcgaGVhZGVyOiBG
b250Q2FjaGVDb3JlVGV4dC5oIChhbmQgc29ydCB0aGUgZmlsZSkuCisgICAgICAgICogY3NzL0NT
U0ZvbnRGYWNlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU2V0OjplbnN1
cmVMb2NhbEZvbnRGYWNlc0ZvckZhbWlseVJlZ2lzdGVyZWQpOiBNaWdyYXRlIGEgYm9vbCB0byBh
biBlbnVtIGNsYXNzLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRpYWxpemVGb250U3R5bGUpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uS2V5
OjptYWtlRmxhZ3NLZXkpOiBNYWtlIGNhY2hlcyBzZW5zaXRpdmUgdG8gd2hldGhlciBvciBub3Qg
d2Ugc2hvdWxkIGRpc2FsbG93CisgICAgICAgIHVzZXItaW5zdGFsbGVkIGZvbnRzCisgICAgICAg
IChXZWJDb3JlOjpTeW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogRGVsZXRlZC4gTW92ZWQg
dG8gRm9udENhY2hlQ29yZVRleHQuaAorICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6
Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTogRGVsZXRlZC4gRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVtIGNs
YXNzLgorICAgICAgICAoV2ViQ29yZTo6bV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzIGNvbnN0KTogTWlncmF0ZSBhIGJvb2wgdG8gYW4gZW51bSBjbGFzcy4KKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0
b3I9PSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpt
YXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCBjb25zdCk6IERlbGV0ZWQuIERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRNYXlSZXByZXNlbnRVc2VySW5zdGFs
bGVkRm9udCk6IERlbGV0ZWQuIERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREYXRhYmFz
ZTo6c2luZ2xldG9uKTogTWlncmF0ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRG
bGFncy5oCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OnNpbmdsZXRvbkFsbG93aW5n
VXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJh
c2U6OnNpbmdsZXRvbkRpc2FsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmNvbGxlY3Rpb25Gb3JGYW1pbHkpOiBDYWxsIHRo
ZSBzaGFyZWQgZnVuY3Rpb25zIHRvIHVwZGF0ZSB0aGUgRm9udERlc2NyaXB0b3IuCisgICAgICAg
IChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmZvbnRGb3JQb3N0U2NyaXB0TmFtZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGFiYXNlOjpGb250RGF0YWJhc2UpOiBNaWdyYXRlIHRo
ZSBlbnVtIGNsYXNzIHRvIHRoZSBzaGFyZWQgVGV4dEZsYWdzLmgKKyAgICAgICAgKFdlYkNvcmU6
OnBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVt
IGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6Zm9udFdpdGhGYW1pbHkpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OmFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMpOiBBZGQgYW5v
dGhlciBwYXJhbWV0ZXIgdG8gdGhlIEZvbnREZXNjcmlwdG9yIHRvIGVuZm9yY2UKKyAgICAgICAg
Q29yZSBUZXh0IGZvbnQgZmFsbGJhY2sgaGFwcGVucyBhY2NvcmRpbmcgdG8gdGhlIHVzZXItaW5z
dGFsbGVkIGZvbnQgcnVsZXMuCisgICAgICAgIChXZWJDb3JlOjptYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
eW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogTWlncmF0ZWQgZnJvbSBGb250Q2FjaGUuaAor
ICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9u
dFBsYXRmb3JtRGF0YSk6IENhbGwgdGhlIHNoYXJlZCBmdW5jdGlvbnMgdG8gcHJlcGFyZSB0aGUg
Rm9udERlc2NyaXB0b3IuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDogTW92
ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRGbGFncy5oCisgICAgICAgICogc3R5
bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OnJlc29sdmVGb3JEb2N1bWVudCk6IE1pZ3JhdGUgYSBib29sIHRvIGFuIGVudW0gY2xhc3MuCisK
IDIwMTctMTItMTggIFJ5b3N1a2UgTml3YSAgPHJuaXdhQHdlYmtpdC5vcmc+CiAKICAgICAgICAg
QXNzZXJ0aW9uIGhpdCBpbiBEb2N1bWVudE9yZGVyZWRNYXA6OmdldCB3aGlsZSByZW1vdmluZyBh
IGZvcm0gZWxlbWVudApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBi
L1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKaW5kZXggY2JjZTA3YWMwMDViNjJmMTNjY2Iw
MzJmYjY1MjUxOGQzNzgzZDc2NS4uYzVlMGE4YTdmMGY3Y2VkMmVkOTU5MGU3NTBiOGI4NTRhODhk
MDQ4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTMgQEAKKzIwMTctMTItMTggIE15
bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBBIGRpc2Fs
bG93ZWQgdXNlci1pbnN0YWxsZWQgZm9udCBtYXkgYmUgdXNlZCBpZiBpdHMgUG9zdFNjcmlwdCBu
YW1lIGlzIHNwZWNpZmllZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTgwOTUxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjAyOTkxOT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICAqIHBhbC9zcGkvY29j
b2EvQ29yZVRleHRTUEkuaDoKKwogMjAxNy0xMi0xNCAgRGF2aWQgS2lsemVyICA8ZGRraWx6ZXJA
YXBwbGUuY29tPgogCiAgICAgICAgIEZpeCAzMi1iaXQgYnVpbGQ6IEVuYWJsZSAtV3N0cmljdC1w
cm90b3R5cGVzIGZvciBXZWJLaXQKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNmU4YzE0NDlhYTE3MDRiMmQ4OTBjMmFl
MDIwNGVjNjQyOWM3N2NhMy4uMTJmM2Y0YTIxYmE2ZWYzNTgxZTZiMjYxYWYzNDQ5N2E5NmQ0ZDVj
YyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0xMi0xOCAgTXlsZXMgQy4gTWF4Zmll
bGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIEEgZGlzYWxsb3dlZCB1c2VyLWlu
c3RhbGxlZCBmb250IG1heSBiZSB1c2VkIGlmIGl0cyBQb3N0U2NyaXB0IG5hbWUgaXMgc3BlY2lm
aWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5
NTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2MDI5OTE5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1pZ3JhdGUgYSBib29sIHRvIGFuIGVudW0g
Y2xhc3MuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAxNy0xMi0xOCAgQnJhZHkgRWlkc29uICA8YmVp
ZHNvbkBhcHBsZS5jb20+CiAKICAgICAgICAgQWRkIGFiaWxpdHkgdG8gQVBJIHRlc3QgU2Vydmlj
ZSBXb3JrZXJzIHZpYSBhIGN1c3RvbSBwcm90b2NvbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwv
cGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCmluZGV4IDdkY2ZjZGVkM2UzMTVlNmU1MGM2Y2Y4
YzUyMWQ5YzAxMDU4ZGY4M2MuLmMyOTI4YTE0NGU5ZTNjNWRkMGI3NjJlZWUzYTZjZGJjYTc2MWI1
YmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0
U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQ29yZVRleHRTUEku
aApAQCAtNTUsNiArNTUsMjAgQEAgZW51bSB7CiAgICAga0NUUnVuU3RhdHVzSGFzT3JpZ2lucyA9
ICgxIDw8IDQpLAogfTsKIAordHlwZWRlZiBDRl9PUFRJT05TKENGT3B0aW9uRmxhZ3MsIENURm9u
dEZhbGxiYWNrT3B0aW9uKSB7CisgICAga0NURm9udEZhbGxiYWNrT3B0aW9uTm9uZSA9IDAsCisg
ICAga0NURm9udEZhbGxiYWNrT3B0aW9uU3lzdGVtID0gMSA8PCAwLAorICAgIGtDVEZvbnRGYWxs
YmFja09wdGlvblVzZXJJbnN0YWxsZWQgPSAxIDw8IDEsCisgICAga0NURm9udEZhbGxiYWNrT3B0
aW9uRGVmYXVsdCA9IGtDVEZvbnRGYWxsYmFja09wdGlvblN5c3RlbSB8IGtDVEZvbnRGYWxsYmFj
a09wdGlvblVzZXJJbnN0YWxsZWQsCit9OworCit0eXBlZGVmIENGX09QVElPTlMoQ0ZPcHRpb25G
bGFncywgQ1RGb250RmFsbGJhY2tPcHRpb24pIHsKKyAgICBrQ1RGb250RmFsbGJhY2tPcHRpb25O
b25lID0gMCwKKyAgICBrQ1RGb250RmFsbGJhY2tPcHRpb25TeXN0ZW0gPSAxIDw8IDAsCisgICAg
a0NURm9udEZhbGxiYWNrT3B0aW9uVXNlckluc3RhbGxlZCA9IDEgPDwgMSwKKyAgICBrQ1RGb250
RmFsbGJhY2tPcHRpb25EZWZhdWx0ID0ga0NURm9udEZhbGxiYWNrT3B0aW9uU3lzdGVtIHwga0NU
Rm9udEZhbGxiYWNrT3B0aW9uVXNlckluc3RhbGxlZCwKK307CisKICNlbmRpZgogCiBXVEZfRVhU
RVJOX0NfQkVHSU4KQEAgLTY2LDYgKzgwLDcgQEAgZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtD
VEZvbnRSZWZlcmVuY2VVUkxBdHRyaWJ1dGU7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NU
Rm9udE9wdGljYWxTaXplQXR0cmlidXRlOwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZv
bnRQb3N0U2NyaXB0TmFtZUF0dHJpYnV0ZTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RG
b250VXNlckluc3RhbGxlZEF0dHJpYnV0ZTsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RG
b250RmFsbGJhY2tPcHRpb25BdHRyaWJ1dGU7CiAKIGJvb2wgQ1RGb250VHJhbnNmb3JtR2x5cGhz
KENURm9udFJlZiwgQ0dHbHlwaCBnbHlwaHNbXSwgQ0dTaXplIGFkdmFuY2VzW10sIENGSW5kZXgg
Y291bnQsIENURm9udFRyYW5zZm9ybU9wdGlvbnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTUxOWVjMjQxMjVjYjJhY2Nm
N2RhM2Q4NjliMmI5MmNkMzFlNjk5YS4uMDJmZTNiZWQ0YmEyYzQ3ZmNlNGJkY2NlNDA4YzRkY2Iw
YzY1ZGQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMzcyMCw2ICszNzIwLDcgQEAKIAkJQzEwNURBNjQwRjNBQTZCODAwMURE
NDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMTA1REE2MzBGM0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29k
aW5nRGV0ZWN0b3IuaCAqLzsgfTsKIAkJQzIwMTVDMEExQkU2RkVCMjAwODIyMzg5IC8qIEZvbnRW
YXJpYW50QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzIwMTVDMDkxQkU2RkUyQzAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oICov
OyB9OwogCQlDMjFERjJFQTFEOUU0RTk5MDBGNUIyNEMgLyogQ1NTRm9udFZhcmlhdGlvblZhbHVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjFERjJF
ODFEOUU0RTk5MDBGNUIyNEMgLyogQ1NTRm9udFZhcmlhdGlvblZhbHVlLmggKi87IH07CisJCUMy
NDU4RTYzMUZFODk3QjAwMDU5NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI0NThFNjExRkU4OTc5RTAwNTk0
NzU5IC8qIEZvbnRDYWNoZUNvcmVUZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzI2MDE3QTQxQzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRG
YWNlU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MjYwMTdBMjFDNzJEQzk5MDBGNzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuaCAqLzsgfTsKIAkJQzI4
MDgzM0YxQzZEQzI2RjAwMTQ1MUI2IC8qIEpTRm9udEZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyODA4MzNFMUM2REMyMkMwMDE0NTFCNiAvKiBK
U0ZvbnRGYWNlLmggKi87IH07CiAJCUMyQUIwQUY3MUU2QjNDNkMwMDEzNDhDNSAvKiBGb250U2Vs
ZWN0aW9uQWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMkFCMEFGNTFFNkIzQzZDMDAxMzQ4QzUgLyogRm9udFNlbGVjdGlvbkFsZ29yaXRo
bS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0x
MjYzNiw2ICsxMjYzNyw3IEBACiAJCUMyMDE1QzA5MUJFNkZFMkMwMDgyMjM4OSAvKiBGb250VmFy
aWFudEJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFZhcmlhbnRCdWlsZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMURGMkU3MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NG
b250VmFyaWF0aW9uVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzIxREYyRTgxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NGb250VmFyaWF0aW9uVmFsdWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzI0NThFNjExRkU4OTc5RTAwNTk0NzU5IC8q
IEZvbnRDYWNoZUNvcmVUZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRDYWNoZUNvcmVUZXh0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyNjAxN0ExMUM3MkRDOTkwMEY3NEExNiAv
KiBDU1NGb250RmFjZVNldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDU1NGb250RmFjZVNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyNjAx
N0EyMUM3MkRDOTkwMEY3NEExNiAvKiBDU1NGb250RmFjZVNldC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDU1NGb250RmFjZVNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMjgwODMzQzFDNkRCMTk0MDAxNDUxQjYgLyogRm9udEZhY2UuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEZvbnRGYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIzMDAzLDYgKzIzMDA1LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJMUMzOTY5Q0YxQjc0MjExRTAwMkJDRkE3IC8qIEZvbnRDYWNoZUNvcmVUZXh0LmNw
cCAqLywKKwkJCQlDMjQ1OEU2MTFGRTg5NzlFMDA1OTQ3NTkgLyogRm9udENhY2hlQ29yZVRleHQu
aCAqLywKIAkJCQlCMkFGRkM3ODBEMDBBNUMxMDAzMDA3NEQgLyogRm9udENhc2NhZGVDb2NvYS5t
bSAqLywKIAkJCQk3QzRFREQ3MzFBN0I2MDc4MDAxOThDNEQgLyogRm9udENvY29hLm1tICovLAog
CQkJCTFDMTJBQzJDMUVFNzc5OTUwMDc5RTBBMCAvKiBGb250RGVzY3JpcHRpb25Db2NvYS5jcHAg
Ki8sCkBAIC0yNjM3Miw3ICsyNjM3NSw2IEBACiAJCQkJMDc5RDA4NkIxNjJGMjFGOTAwREI4NjU4
IC8qIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
N0I3MTE2RDFEODk5RTYzMDA5RjBGRkIgLyogQ2FwdHVyZURldmljZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDdCNzExNkYxRDg5OUU2MzAwOUYwRkZCIC8qIENhcHR1cmVEZXZpY2VNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlFNDdDMzkyRDFGRTZFMEYzMDBCQkJDNkIgLyogUmVuZGVyVHJl
ZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzczNDE1MTk3Nzg5NkQwMDQ2QkZDNSAv
KiBDQVJpbmdCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNjlFMDk5REYwMjcwMDkw
RDc4MSAvKiBDREFUQVNlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNERjRCNzE2MUUwMEI3
RTUwMEUyMzVBMiAvKiBDRE0uaCBpbiBIZWFkZXJzICovLApAQCAtMjY0NzcsNyArMjY0NzksNiBA
QAogCQkJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBDb29yZGluYXRlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJM0Y4MDIwMzUxRTlFNDdCRjAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVE
ZXZpY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGODAyMDM3MUU5RTQ3QzUwMERFQzYxRCAvKiBD
b3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5
MkUxRkU2RTBGNzAwQkJCQzZCIC8qIFJlbmRlclRyZWVQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDdBRkY0MjIxRUZCMTQ0OTAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJ
T1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEN0QzMzQ4MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3Jl
VmlkZW9Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODYyRjEyOUUxOEMxNTc2RjAwNUM1
NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MzksNyAr
MjY4NDAsNiBAQAogCQkJCUE3Q0ZCM0QyMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBRjVFNEQ5MUU1Njc3QTkwMDRBMUYwMSAvKiBEcmFnSXRlbS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODFGNjVGRjYxMzc4OEZBQTAwRkY2RjJEIC8qIERyYWdTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5MzIxRkU2RTEwNTAwQkJCQzZCIC8qIFJlbmRl
clRyZWVVcGRhdGVyTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQkE2NkYxMTc0MkJE
ODYwMEMyMDI1MSAvKiBEeW5hbWljTGlua2VySW50ZXJwb3NpbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZENkVEMkM4MTM2QjhFNjYwMDNDRjA3MiAvKiBEeW5hbWljc0NvbXByZXNzb3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZENTM3MzU3MTM3QjY1M0IwMDAwOERDRSAvKiBEeW5hbWljc0NvbXBy
ZXNzb3JLZXJuZWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5MjYsNiArMjY5MjYsNyBAQAogCQkJ
CTUxN0E1MzVCMUY1ODhBNEMwMERDREMwQSAvKiBGZXRjaEJvZHlDb25zdW1lci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDEyOUM5OTcxRjU5Qjk2MzAwOUQ3NDAzIC8qIEZldGNoQm9keVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMTI5REIxRjNEMTQzODAwRDE1RTQ3IC8qIEZldGNoSGVh
ZGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE2MUUyRDUxRkU0OERDNTAwRUMyRTk2IC8qIEZl
dGNoTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdBNTM1ODFGNTg4OUU4MDBEQ0RDMEEg
LyogRmV0Y2hMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQUQ3NTNBMUNFRjZC
RDEwMEEzMTQ4NiAvKiBGZXRjaE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTE5MTRE
MUYyQTlBRkIwMDI3MkY3OCAvKiBGZXRjaFJlZmVycmVyUG9saWN5LmggaW4gSGVhZGVycyAqLywK
QEAgLTI2OTg4LDYgKzI2OTg5LDcgQEAKIAkJCQkxQUMyRDg5RDFCMUUyOTFGMDBENTJFODcgLyog
Rm9udEFudGlhbGlhc2luZ1N0YXRlU2F2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjkyRDRG
MTI5MzU1MEIwMEM4Mzg3RiAvKiBGb250QmFzZWxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTYzMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUMyNDU4RTYzMUZFODk3QjAwMDU5NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJDM0RBNjEwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNjYWRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMkMzREE2ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udENhc2NhZGVG
b250cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBRkZDN0UwRDAwQTVDMTAwMzAwNzREIC8qIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjcyMzYsNyArMjcyMzgs
NiBAQAogCQkJCTk3N0IzODc4MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MVG9rZW5pemVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzA3NTY4QzE0MjI2MkQ2MDA0MTQxNjEgLyogSFRNTFRyYWNrRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM3MjYxMjI4NzIxNzAwQjgxRkY4IC8qIEhU
TUxUcmVlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5MzAxRkU2RTBGRDAwQkJC
QzZCIC8qIFJlbmRlclRyZWVVcGRhdGVyRmlyc3RMZXR0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4RUE3OUYyMEExOTE2REYwMEE4RUY1RiAvKiBIVE1MVUxpc3RFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBRDQ5OTE0MzE4RjA4MTUxMDBCRjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQ2MTNBQjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZp
ZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzM4OCw3ICsyNzM4OSw2IEBACiAJCQkJ
N0E1NDg1ODAxNEUwMkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1QjgxQ0FFMUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNwZWN0b3JJbmRleGVkREJB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE2MUUyRDUxRkU0
OERDNTAwRUMyRTk2IC8qIEZldGNoTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTg0MEUx
RDE4N0I3NEQ1MDA4NDNCMTAgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNUI4MUNBRjFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9yTGF5
ZXJUcmVlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0IwMUZBQTQ0NjIwMDM3RDFF
NiAvKiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODUyMyw3ICsy
ODUyMyw2IEBACiAJCQkJMUE1NjlEMEIwRDdFMkI4MjAwN0MzOTgzIC8qIE5QX2pzb2JqZWN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTkyN0ZEMjE0MTZBMTVCMDAzQTgzQzggLyogbnBhcGkuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBMjE5QjNCMERDQTg3QUIwMDQwRTNBMCAvKiBucGZ1bmN0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5MkYxRkU2RTBGOTAwQkJCQzZCIC8qIFJlbmRl
clRyZWVVcGRhdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkyN0ZEMzE0MTZBMTVCMDAzQTgz
QzggLyogbnBydW50aW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQwRjBEN0UyQjgyMDA3
QzM5ODMgLyogbnBydW50aW1lX2ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTY5RDEwMEQ3
RTJCODIwMDdDMzk4MyAvKiBucHJ1bnRpbWVfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAt
Mjg2NzcsNyArMjg2NzYsNiBAQAogCQkJCTA3MEUwOTE5MTg3NUVFRkMwMDNBMUQzQyAvKiBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGOTQ0MTYxODY0RDA0NjAw
NUQzMUNCIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDFCRjcwMTAwRkU4NkY2MTAwNUU4REVDIC8qIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVs
LmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDdDMzkzMzFGRTZFMTA4MDBCQkJDNkIgLyogUmVuZGVy
VHJlZVVwZGF0ZXJNdWx0aUNvbHVtbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1QzQ3NjkwOUFD
NEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzU5ODkwNTgxNEU5QzI5OTAwRThEMThCIC8qIFBsYXRmb3JtUGFzdGVib2FyZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNFQzAxRDcwQzI3NEVCNDAwOUY0RUM5IC8qIFBsYXRmb3JtU2NyZWVuLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI4OTI1LDYgKzI4OTIzLDEzIEBACiAJCQkJRkVEMTNENTIwQ0VB
OTQ5NzAwRDg5NDY2IC8qIFJlbmRlclRoZW1lSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VB
NDg4NzA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRjE5OThDMDgyNDVFNTkwMDFFOUFCQyAvKiBSZW5kZXJUcmVlQXNUZXh0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNDdDMzkyRDFGRTZFMEYzMDBCQkJDNkIgLyogUmVuZGVyVHJlZUJ1aWxk
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0N0MzOTJFMUZFNkUwRjcwMEJCQkM2QiAvKiBSZW5k
ZXJUcmVlUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUU0N0MzOTJGMUZFNkUwRjkwMEJC
QkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ3QzM5MzAx
RkU2RTBGRDAwQkJCQzZCIC8qIFJlbmRlclRyZWVVcGRhdGVyRmlyc3RMZXR0ZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUU0N0MzOTMxMUZFNkUxMDIwMEJCQkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRl
ckdlbmVyYXRlZENvbnRlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0N0MzOTMyMUZFNkUxMDUw
MEJCQkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRlckxpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFNDdDMzkzMzFGRTZFMTA4MDBCQkJDNkIgLyogUmVuZGVyVHJlZVVwZGF0ZXJNdWx0aUNvbHVt
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjE0NTIwQ0Q2OEEzNTAwRkFEQTc1IC8qIFJlbmRl
clZpZGVvLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VBNDg2ODA5N0Q5MzAyMDA5NEM5RTQgLyog
UmVuZGVyVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUyMDUwN0UxOEE0NThDMjAwODA2NDdF
IC8qIFJlbmRlclZUVEN1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTIwNyw3ICsyOTIxMiw2IEBA
CiAJCQkJOTdCQzZBM0MxNTA1RjA4MTAwMUI3NEFDIC8qIFNRTEVycm9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTIyNDY0QTBDQzk4RERCMDBDMDUyNDAgLyogU1FMaXRlRGF0YWJhc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdFNDc0RTFGMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFz
ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0N0MzOTMxMUZFNkUxMDIwMEJCQkM2QiAv
KiBSZW5kZXJUcmVlVXBkYXRlckdlbmVyYXRlZENvbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdFNDc0RTFFMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUI1QTY4NDIyMEZGQUJFOTgwMEQyNDY4OSAvKiBTUUxpdGVG
aWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJCREI0QjFDNDU2RkZBMDA2NDk0REYg
LyogU1FMaXRlSURCQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VTZXQuY3BwCmluZGV4IDVjNDAzMTNlNTljNmM0ZDNmZTBmYjI3ZWQ4MzY4ZDA2
NjYxOTQxMzYuLmU4NzY3ZTVhMmY1ODAxNzg5MzIxZjcxOWY4MTU0MDFlZjQ1MzczODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU2V0LmNwcApAQCAtMTA0LDkgKzEwNCw3IEBAIHZvaWQg
Q1NTRm9udEZhY2VTZXQ6OmVuc3VyZUxvY2FsRm9udEZhY2VzRm9yRmFtaWx5UmVnaXN0ZXJlZChj
b25zdCBTdHJpbmcmIGZhbWlsCiAgICAgaWYgKG1fbG9jYWxseUluc3RhbGxlZEZhY2VzTG9va3Vw
VGFibGUuY29udGFpbnMoZmFtaWx5TmFtZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZvbnRD
YWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPSBG
b250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXM7Ci0gICAgaWYgKG1fb3duaW5n
Rm9udFNlbGVjdG9yLT5kb2N1bWVudCgpICYmIG1fb3duaW5nRm9udFNlbGVjdG9yLT5kb2N1bWVu
dCgpLT5zZXR0aW5ncygpLnNob3VsZERpc2FsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpCi0gICAg
ICAgIGFsbG93VXNlckluc3RhbGxlZEZvbnRzID0gRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxs
ZWRGb250czo6Tm87CisgICAgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFs
bGVkRm9udHMgPSBtX293bmluZ0ZvbnRTZWxlY3Rvci0+ZG9jdW1lbnQoKSA/IG1fb3duaW5nRm9u
dFNlbGVjdG9yLT5kb2N1bWVudCgpLT5zZXR0aW5ncygpLnNob3VsZEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzKCkgOiBBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzOwogICAgIFZlY3RvcjxGb250
U2VsZWN0aW9uQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMgPSBGb250Q2FjaGU6OnNpbmdsZXRv
bigpLmdldEZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXNJbkZhbWlseShmYW1pbHlOYW1lLCBhbGxv
d1VzZXJJbnN0YWxsZWRGb250cyk7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA3ZmQy
NWI4YWFkNWFiYzcwZGUxMDliMjQxNDYyNjQ3ZmQ3OWYwNTVkLi41OWRjMWZkM2Q0ZjA1YWFjNzk4
MGYxOTEyMGZlYzQ3NTkxOWY3NzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CkBAIC0xNzg4LDcgKzE3ODgsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRpYWxpemVGb250
U3R5bGUoKQogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoc3RhbmRhcmRGYW1pbHkp
OwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6ZUZyb21JZGVudGlmaWVyKENTU1Zh
bHVlTWVkaXVtKTsKICAgICBzZXRGb250U2l6ZShmb250RGVzY3JpcHRpb24sIFN0eWxlOjpmb250
U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVNZWRpdW0sIGZhbHNlLCBkb2N1bWVudCgpKSk7Ci0gICAg
Zm9udERlc2NyaXB0aW9uLnNldE1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KCFzZXR0aW5n
cygpLnNob3VsZERpc2FsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpOworICAgIGZvbnREZXNjcmlw
dGlvbi5zZXRTaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cyhzZXR0aW5ncygpLnNob3VsZEFs
bG93VXNlckluc3RhbGxlZEZvbnRzKCkpOwogICAgIHNldEZvbnREZXNjcmlwdGlvbihmb250RGVz
Y3JpcHRpb24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggOTk1ZWI4ZDFj
YzQwOWRkOWRiOWZjMWM3YjlmZmYyYTgzNTg2NDFjYS4uMGIwM2NhN2Q3YWY5NWZjZWFmMjE2MTVi
OGYyYTU2MGM0YmQ3OThiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNjYxLDgg
KzY2MSw5IEBAIHN0b3JhZ2VCbG9ja2luZ1BvbGljeToKICAgaW5pdGlhbDogU2VjdXJpdHlPcmln
aW46OkFsbG93QWxsU3RvcmFnZQogICBvbkNoYW5nZTogc3RvcmFnZUJsb2NraW5nUG9saWN5Q2hh
bmdlZAogCi1zaG91bGREaXNhbGxvd1VzZXJJbnN0YWxsZWRGb250czoKLSAgaW5pdGlhbDogZmFs
c2UKK3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzOgorICB0eXBlOiBBbGxvd1VzZXJJbnN0
YWxsZWRGb250cworICBpbml0aWFsOiBBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzCiAgIG9u
Q2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKIAogIyBPbmx5IHNldCBieSBM
YXlvdXQgVGVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNo
ZS5oCmluZGV4IDRhZjQ3ZDRiMzYzOTk0NzU4MmM3ZTA4NDgyYTlhNWM3NzJhNGRlNDEuLjVjZDdi
NjhmZGZiYjU5NzliODIwOGY4OGVjZWMzZjZkZThiNjg1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRl
IDxDb3JlVGV4dC9DVEZvbnQuaD4KKyNpbmNsdWRlICJGb250Q2FjaGVDb3JlVGV4dC5oIgogI2Vu
ZGlmCiAKICNpZiBPUyhXSU5ET1dTKQpAQCAtMTI0LDcgKzEyNCw4IEBAIHN0cnVjdCBGb250RGVz
Y3JpcHRpb25LZXkgewogcHJpdmF0ZToKICAgICBzdGF0aWMgc3RkOjphcnJheTx1bnNpZ25lZCwg
Mj4gbWFrZUZsYWdzS2V5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCiAgICAg
ewotICAgICAgICB1bnNpZ25lZCBmaXJzdCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlw
dGlvbi5zY3JpcHQoKSkgPDwgMTMKKyAgICAgICAgdW5zaWduZWQgZmlyc3QgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oZGVzY3JpcHRpb24uc2NyaXB0KCkpIDw8IDE0CisgICAgICAgICAgICB8IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRG
b250cygpKSA8PCAxMwogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3Jp
cHRpb24uZm9udFN0eWxlQXhpcygpID09IEZvbnRTdHlsZUF4aXM6OnNsbnQpIDw8IDEyCiAgICAg
ICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5vcHRpY2FsU2l6aW5n
KCkpIDw8IDExCiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlv
bi50ZXh0UmVuZGVyaW5nTW9kZSgpKSA8PCA5CkBAIC0yMDAsMTAgKzIwMSw2IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgSU11bHRpTGFuZ3VhZ2UqIGdldE11bHRpTGFuZ3VhZ2VJbnRlcmZhY2UoKTsK
ICNlbmRpZgogCi0gICAgZW51bSBjbGFzcyBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyB7Ci0gICAg
ICAgIFllcywKLSAgICAgICAgTm8KLSAgICB9OwogICAgIC8vIFRoaXMgZnVuY3Rpb24gZXhpc3Rz
IHNvIENTU0ZvbnRTZWxlY3RvciBjYW4gaGF2ZSBhIHVuaWZpZWQgbm90aW9uIG9mIHByZWluc3Rh
bGxlZCBmb250cyBhbmQgQGZvbnQtZmFjZS4KICAgICAvLyBJdCBjb21lcyBpbnRvIHBsYXkgd2hl
biB5b3UgY3JlYXRlIGFuIEBmb250LWZhY2Ugd2hpY2ggc2hhcmVzIGEgZmFtaWx5IG5hbWUgYXMg
YSBwcmVpbnN0YWxsZWQgZm9udC4KICAgICBWZWN0b3I8Rm9udFNlbGVjdGlvbkNhcGFiaWxpdGll
cz4gZ2V0Rm9udFNlbGVjdGlvbkNhcGFiaWxpdGllc0luRmFtaWx5KGNvbnN0IEF0b21pY1N0cmlu
ZyYsIEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKQEAgLTI3MCwzMiArMjY3LDcgQEAgaW5saW5l
IHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQ
bGF0Zm9ybURhdGFGb3JUZXMKICAgICByZXR1cm4gY3JlYXRlRm9udFBsYXRmb3JtRGF0YShmb250
RGVzY3JpcHRpb24sIGZhbWlseSwgbnVsbHB0ciwgbnVsbHB0ciwgeyB9KTsKIH0KIAotI2lmIFBM
QVRGT1JNKENPQ09BKQotCi1zdHJ1Y3QgU3ludGhlc2lzUGFpciB7Ci0gICAgU3ludGhlc2lzUGFp
cihib29sIG5lZWRzU3ludGhldGljQm9sZCwgYm9vbCBuZWVkc1N5bnRoZXRpY09ibGlxdWUpCi0g
ICAgICAgIDogbmVlZHNTeW50aGV0aWNCb2xkKG5lZWRzU3ludGhldGljQm9sZCkKLSAgICAgICAg
LCBuZWVkc1N5bnRoZXRpY09ibGlxdWUobmVlZHNTeW50aGV0aWNPYmxpcXVlKQotICAgIHsKLSAg
ICB9Ci0KLSAgICBzdGQ6OnBhaXI8Ym9vbCwgYm9vbD4gYm9sZE9ibGlxdWVQYWlyKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihuZWVkc1N5bnRoZXRpY0JvbGQs
IG5lZWRzU3ludGhldGljT2JsaXF1ZSk7Ci0gICAgfQotCi0gICAgYm9vbCBuZWVkc1N5bnRoZXRp
Y0JvbGQ7Ci0gICAgYm9vbCBuZWVkc1N5bnRoZXRpY09ibGlxdWU7Ci19OwotCi1SZXRhaW5QdHI8
Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiwgY29uc3QgRm9udERlc2Ny
aXB0aW9uJiwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgY29u
c3QgRm9udFZhcmlhbnRTZXR0aW5ncyogZm9udEZhY2VWYXJpYW50U2V0dGluZ3MsIEZvbnRTZWxl
Y3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGZsb2F0IHNp
emUsIGJvb2wgYXBwbHlXZWlnaHRXaWR0aFNsb3BlVmFyaWF0aW9ucyA9IHRydWUpOwotU3ludGhl
c2lzUGFpciBjb21wdXRlTmVjZXNzYXJ5U3ludGhlc2lzKENURm9udFJlZiwgY29uc3QgRm9udERl
c2NyaXB0aW9uJiwgYm9vbCBpc1BsYXRmb3JtRm9udCA9IGZhbHNlKTsKLVJldGFpblB0cjxDVEZv
bnRSZWY+IHBsYXRmb3JtRm9udFdpdGhGYW1pbHlTcGVjaWFsQ2FzZShjb25zdCBBdG9taWNTdHJp
bmcmIGZhbWlseSwgRm9udFNlbGVjdGlvblJlcXVlc3QsIGZsb2F0IHNpemUpOwotUmV0YWluUHRy
PENURm9udFJlZj4gcGxhdGZvcm1Gb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZh
bWlseSwgRm9udFNlbGVjdGlvblJlcXVlc3QsIFRleHRSZW5kZXJpbmdNb2RlLCBmbG9hdCBzaXpl
KTsKLWJvb2wgcmVxdWlyZXNDdXN0b21GYWxsYmFja0ZvbnQoVUNoYXIzMiBjaGFyYWN0ZXIpOwot
Rm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXNGb3JGb250RGVzY3JpcHRvcihD
VEZvbnREZXNjcmlwdG9yUmVmKTsKLQotI2Vsc2UKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiAKIGlu
bGluZSB2b2lkIEZvbnRDYWNoZTo6cGxhdGZvcm1QdXJnZUluYWN0aXZlRm9udERhdGEoKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlv
bi5jcHAKaW5kZXggZGY0YTljY2I1ZGI0OTA3NjhkMGUxM2RjNjJmZWM1YzUwM2ZhYjZlOC4uM2Q1
ZGQzNTcxNDYwNzdiMjhhZTUyM2UzYTMzZTI3YmZkMjQ1NjlhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCkBAIC04MCw3
ICs4MCw3IEBAIEZvbnREZXNjcmlwdGlvbjo6Rm9udERlc2NyaXB0aW9uKCkKICAgICAsIG1fdmFy
aWFudEVhc3RBc2lhblJ1Ynkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEZvbnRWYXJpYW50RWFzdEFz
aWFuUnVieTo6Tm9ybWFsKSkKICAgICAsIG1fb3B0aWNhbFNpemluZyhzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oRm9udE9wdGljYWxTaXppbmc6OkVuYWJsZWQpKQogICAgICwgbV9mb250U3R5bGVBeGlz
KEZvbnRDYXNjYWRlRGVzY3JpcHRpb246OmluaXRpYWxGb250U3R5bGVBeGlzKCkgPT0gRm9udFN0
eWxlQXhpczo6aXRhbCkKLSAgICAsIG1fbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQodHJ1
ZSkKKyAgICAsIG1fc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXMpKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCmluZGV4IDhi
OGZhMjI1MDNlMmM1MTA1MWJkZDg4YWJkYmM1MGE5ZjVlYmRhOWEuLjE1YjRhZjY5NGYzOWZmOWFh
M2NmZWEyZDI4MWY5MDg1Y2U1ZjdiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVibGlj
OgogICAgIH0KICAgICBGb250T3B0aWNhbFNpemluZyBvcHRpY2FsU2l6aW5nKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Rm9udE9wdGljYWxTaXppbmc+KG1fb3B0aWNhbFNpemluZyk7IH0K
ICAgICBGb250U3R5bGVBeGlzIGZvbnRTdHlsZUF4aXMoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRT
dHlsZUF4aXMgPyBGb250U3R5bGVBeGlzOjppdGFsIDogRm9udFN0eWxlQXhpczo6c2xudDsgfQot
ICAgIGJvb2wgbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQoKSBjb25zdCB7IHJldHVybiBt
X21heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250OyB9CisgICAgQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMgc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxBbGxvd1VzZXJJbnN0YWxsZWRGb250cz4obV9zaG91bGRBbGxvd1VzZXJJbnN0YWxs
ZWRGb250cyk7IH0KIAogICAgIHZvaWQgc2V0Q29tcHV0ZWRTaXplKGZsb2F0IHMpIHsgbV9jb21w
dXRlZFNpemUgPSBjbGFtcFRvRmxvYXQocyk7IH0KICAgICB2b2lkIHNldEl0YWxpYyhGb250U2Vs
ZWN0aW9uVmFsdWUgaXRhbGljKSB7IG1fZm9udFNlbGVjdGlvblJlcXVlc3Quc2xvcGUgPSBpdGFs
aWM7IH0KQEAgLTE0OSw3ICsxNDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWYXJpYW50RWFz
dEFzaWFuUnVieShGb250VmFyaWFudEVhc3RBc2lhblJ1YnkgdmFyaWFudCkgeyBtX3ZhcmlhbnRF
YXN0QXNpYW5SdWJ5ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhcmlhbnQpOyB9CiAgICAgdm9p
ZCBzZXRPcHRpY2FsU2l6aW5nKEZvbnRPcHRpY2FsU2l6aW5nIHNpemluZykgeyBtX29wdGljYWxT
aXppbmcgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2l6aW5nKTsgfQogICAgIHZvaWQgc2V0Rm9u
dFN0eWxlQXhpcyhGb250U3R5bGVBeGlzIGF4aXMpIHsgbV9mb250U3R5bGVBeGlzID0gYXhpcyA9
PSBGb250U3R5bGVBeGlzOjppdGFsOyB9Ci0gICAgdm9pZCBzZXRNYXlSZXByZXNlbnRVc2VySW5z
dGFsbGVkRm9udChib29sIG1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KSB7IG1fbWF5UmVw
cmVzZW50VXNlckluc3RhbGxlZEZvbnQgPSBtYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udDsg
fQorICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoQWxsb3dVc2VySW5z
dGFsbGVkRm9udHMgc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpIHsgbV9zaG91bGRBbGxv
d1VzZXJJbnN0YWxsZWRGb250cyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzaG91bGRBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyk7IH0KIAogICAgIHN0YXRpYyB2b2lkIGludmFsaWRhdGVDYWNoZXMo
KTsKIApAQCAtMTg1LDcgKzE4NSw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV92YXJpYW50
RWFzdEFzaWFuUnVieSA6IDE7IC8vIEZvbnRWYXJpYW50RWFzdEFzaWFuUnVieQogICAgIHVuc2ln
bmVkIG1fb3B0aWNhbFNpemluZyA6IDE7IC8vIEZvbnRPcHRpY2FsU2l6aW5nCiAgICAgdW5zaWdu
ZWQgbV9mb250U3R5bGVBeGlzIDogMTsgLy8gV2hldGhlciAiZm9udC1zdHlsZTogaXRhbGljIiBv
ciAiZm9udC1zdHlsZTogb2JsaXF1ZSAyMGRlZyIgd2FzIHNwZWNpZmllZAotICAgIHVuc2lnbmVk
IG1fbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQgOiAxOyAvLyBJZiB0aGlzIGRlc2NyaXB0
aW9uIGlzIGFsbG93ZWQgdG8gbWF0Y2ggYSB1c2VyLWluc3RhbGxlZCBmb250CisgICAgdW5zaWdu
ZWQgbV9zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cyA6IDE7IC8vIElmIHRoaXMgZGVzY3Jp
cHRpb24gaXMgYWxsb3dlZCB0byBtYXRjaCBhIHVzZXItaW5zdGFsbGVkIGZvbnQKIH07CiAKIGlu
bGluZSBib29sIEZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PShjb25zdCBGb250RGVzY3JpcHRp
b24mIG90aGVyKSBjb25zdApAQCAtMjIwLDcgKzIyMCw3IEBAIGlubGluZSBib29sIEZvbnREZXNj
cmlwdGlvbjo6b3BlcmF0b3I9PShjb25zdCBGb250RGVzY3JpcHRpb24mIG90aGVyKSBjb25zdAog
ICAgICAgICAmJiBtX3ZhcmlhbnRFYXN0QXNpYW5SdWJ5ID09IG90aGVyLm1fdmFyaWFudEVhc3RB
c2lhblJ1YnkKICAgICAgICAgJiYgbV9vcHRpY2FsU2l6aW5nID09IG90aGVyLm1fb3B0aWNhbFNp
emluZwogICAgICAgICAmJiBtX2ZvbnRTdHlsZUF4aXMgPT0gb3RoZXIubV9mb250U3R5bGVBeGlz
Ci0gICAgICAgICYmIG1fbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQgPT0gb3RoZXIubV9t
YXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udDsKKyAgICAgICAgJiYgbV9zaG91bGRBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyA9PSBvdGhlci5tX3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRz
OwogfQogCiAvLyBGSVhNRTogTW92ZSB0byBhIGZpbGUgb2YgaXRzIG93bi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRDdXN0
b21QbGF0Zm9ybURhdGEuaAppbmRleCBiMTY4NTM0ZTVlMmUxNTI0MjVkM2IxYjZjMDM4N2ZjYjBh
YTU1Mzc3Li5kZDNhZmI3ZWY4N2MzM2RiYzQyZWM3YTg0OWI1NWQ4Yjc4NTM0YjhlIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8v
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oCkBAIC00OCw3ICs0OCw3IEBAIHByaXZhdGU6CiAgICAg
Y2Fpcm9fZm9udF9mYWNlX3QqIG1fZm9udEZhY2U7CiB9OwogCi1zdGQ6OnVuaXF1ZV9wdHI8Rm9u
dEN1c3RvbVBsYXRmb3JtRGF0YT4gY3JlYXRlRm9udEN1c3RvbVBsYXRmb3JtRGF0YShTaGFyZWRC
dWZmZXImKTsKK3N0ZDo6dW5pcXVlX3B0cjxGb250Q3VzdG9tUGxhdGZvcm1EYXRhPiBjcmVhdGVG
b250Q3VzdG9tUGxhdGZvcm1EYXRhKFNoYXJlZEJ1ZmZlciYsIEFsbG93VXNlckluc3RhbGxlZEZv
bnRzKTsKIAogfSAvLyBuYW1lc3BhY2UgV2ViQ29yZQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAK
aW5kZXggY2U3MDM3NDE1MDY5ZTA3MzEzYWI5OGFkOTUzNzIxNjBhZDlkYjZmMy4uYTdmMGM4ZDE0
YTY0MDg0Nzk3OTFhY2E4MGVjM2Y4YTg0Y2E3ZGYyNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cApAQCAtODMzLDcgKzgzMyw3IEBAIHB1YmxpYzoKICNpZiAhQ0FOX0RJU0FMTE9XX1VTRVJfSU5T
VEFMTEVEX0ZPTlRTCiAgICAgc3RhdGljIEZvbnREYXRhYmFzZSYgc2luZ2xldG9uKCkKICAgICB7
Ci0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGF0YWJhc2U+IGRhdGFiYXNlKEZv
bnRDYWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Olllcyk7CisgICAgICAgIHN0YXRpYyBO
ZXZlckRlc3Ryb3llZDxGb250RGF0YWJhc2U+IGRhdGFiYXNlKEFsbG93VXNlckluc3RhbGxlZEZv
bnRzOjpZZXMpOwogICAgICAgICByZXR1cm4gZGF0YWJhc2U7CiAgICAgfQogI2VuZGlmCkBAIC04
NDEsNyArODQxLDcgQEAgcHVibGljOgogICAgIHN0YXRpYyBGb250RGF0YWJhc2UmIHNpbmdsZXRv
bkFsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKCkKICAgICB7CiAjaWYgQ0FOX0RJU0FMTE9XX1VT
RVJfSU5TVEFMTEVEX0ZPTlRTCi0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGF0
YWJhc2U+IGRhdGFiYXNlKEZvbnRDYWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Olllcyk7
CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGF0YWJhc2U+IGRhdGFiYXNlKEFs
bG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXMpOwogICAgICAgICByZXR1cm4gZGF0YWJhc2U7CiAj
ZWxzZQogICAgICAgICByZXR1cm4gc2luZ2xldG9uKCk7CkBAIC04NTEsNyArODUxLDcgQEAgcHVi
bGljOgogICAgIHN0YXRpYyBGb250RGF0YWJhc2UmIHNpbmdsZXRvbkRpc2FsbG93aW5nVXNlcklu
c3RhbGxlZEZvbnRzKCkKICAgICB7CiAjaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZP
TlRTCi0gICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGF0YWJhc2U+IGRhdGFiYXNl
KEZvbnRDYWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5vKTsKKyAgICAgICAgc3RhdGlj
IE5ldmVyRGVzdHJveWVkPEZvbnREYXRhYmFzZT4gZGF0YWJhc2UoQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHM6Ok5vKTsKICAgICAgICAgcmV0dXJuIGRhdGFiYXNlOwogI2Vsc2UKICAgICAgICAgcmV0
dXJuIHNpbmdsZXRvbigpOwpAQCAtOTA4LDIxICs5MDgsMTIgQEAgcHVibGljOgogICAgICAgICBh
dXRvIGZvbGRlZCA9IGZhbWlseU5hbWUuZm9sZENhc2UoKTsKICAgICAgICAgcmV0dXJuIG1fZmFt
aWx5TmFtZVRvRm9udERlc2NyaXB0b3JzLmVuc3VyZShmb2xkZWQsIFsmXSB7CiAgICAgICAgICAg
ICBhdXRvIGZhbWlseU5hbWVTdHJpbmcgPSBmb2xkZWQuY3JlYXRlQ0ZTdHJpbmcoKTsKLSAgICAg
ICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGF0dHJpYnV0ZXM7Ci0jaWYgQ0FOX0RJ
U0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZPTlRTCi0gICAgICAgICAgICBpZiAobV9hbGxvd1VzZXJJ
bnN0YWxsZWRGb250cyA9PSBGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObykg
ewotICAgICAgICAgICAgICAgIENGVHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRGYW1pbHlOYW1l
QXR0cmlidXRlLCBrQ1RGb250VXNlckluc3RhbGxlZEF0dHJpYnV0ZSB9OwotICAgICAgICAgICAg
ICAgIENGVHlwZVJlZiB2YWx1ZXNbXSA9IHsgZmFtaWx5TmFtZVN0cmluZy5nZXQoKSwga0NGQm9v
bGVhbkZhbHNlIH07Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0
aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZ
X0xFTkdUSChrZXlzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURp
Y3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwotICAgICAgICAgICAgfSBlbHNlCi0jZW5kaWYKLSAg
ICAgICAgICAgIHsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250
RmFtaWx5TmFtZUF0dHJpYnV0ZSB9OwotICAgICAgICAgICAgICAgIENGVHlwZVJlZiB2YWx1ZXNb
XSA9IHsgZmFtaWx5TmFtZVN0cmluZy5nZXQoKSB9OwotICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrZXlz
LCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNh
bGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKLSAgICAgICAgICAg
IH0KKyAgICAgICAgICAgIGF1dG8gYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3Jl
YXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAma0NGVHlwZURpY3Rpb25hcnlLZXlD
YWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgICAgICAg
ICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLmdldCgpLCBrQ1RGb250RmFtaWx5TmFt
ZUF0dHJpYnV0ZSwgZmFtaWx5TmFtZVN0cmluZy5nZXQoKSk7CisgICAgICAgICAgICBhZGRBdHRy
aWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKGF0dHJpYnV0ZXMuZ2V0KCksIG1fYWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMpOwogICAgICAgICAgICAgYXV0byBmb250RGVzY3JpcHRvclRvTWF0Y2gg
PSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVXaXRoQXR0cmlidXRlcyhhdHRyaWJ1dGVz
LmdldCgpKSk7Ci0gICAgICAgICAgICBpZiAoYXV0byBtYXRjaGVzID0gYWRvcHRDRihDVEZvbnRE
ZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVzY3JpcHRvcnMoZm9udERlc2NyaXB0b3JUb01h
dGNoLmdldCgpLCBudWxscHRyKSkpIHsKKyAgICAgICAgICAgIFJldGFpblB0cjxDRlNldFJlZj4g
bWFuZGF0b3J5QXR0cmlidXRlcyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVk
Rm9udHMobV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CisgICAgICAgICAgICBpZiAoYXV0byBt
YXRjaGVzID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVzY3Jp
cHRvcnMoZm9udERlc2NyaXB0b3JUb01hdGNoLmdldCgpLCBtYW5kYXRvcnlBdHRyaWJ1dGVzLmdl
dCgpKSkpIHsKICAgICAgICAgICAgICAgICBhdXRvIGNvdW50ID0gQ0ZBcnJheUdldENvdW50KG1h
dGNoZXMuZ2V0KCkpOwogICAgICAgICAgICAgICAgIFZlY3RvcjxJbnN0YWxsZWRGb250PiByZXN1
bHQ7CiAgICAgICAgICAgICAgICAgcmVzdWx0LnJlc2VydmVJbml0aWFsQ2FwYWNpdHkoY291bnQp
OwpAQCAtOTQ2LDIxICs5MzcsMTMgQEAgcHVibGljOgogI2Vsc2UKICAgICAgICAgICAgIENGU3Ry
aW5nUmVmIG5hbWVBdHRyaWJ1dGUgPSBrQ1RGb250TmFtZUF0dHJpYnV0ZTsKICNlbmRpZgotICAg
ICAgICAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gYXR0cmlidXRlczsKLSNpZiBDQU5f
RElTQUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKLSAgICAgICAgICAgIGlmIChtX2FsbG93VXNl
ckluc3RhbGxlZEZvbnRzID09IEZvbnRDYWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5v
KSB7Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsga0NURm9udEVuYWJsZWRB
dHRyaWJ1dGUsIG5hbWVBdHRyaWJ1dGUsIGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlIH07
Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1tdID0geyBrQ0ZCb29sZWFuVHJ1ZSwg
cG9zdFNjcmlwdE5hbWVTdHJpbmcuZ2V0KCksIGtDRkJvb2xlYW5GYWxzZSB9OwotICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBl
RGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3Mp
KTsKLSAgICAgICAgICAgIH0gZWxzZQotI2VuZGlmCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsga0NURm9udEVuYWJsZWRBdHRyaWJ1dGUsIG5hbWVB
dHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGtDRkJv
b2xlYW5UcnVlLCBwb3N0U2NyaXB0TmFtZVN0cmluZy5nZXQoKSB9OwotICAgICAgICAgICAgICAg
IGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBlRGljdGlv
bmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKLSAg
ICAgICAgICAgIH0KKyAgICAgICAgICAgIGF1dG8gYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0
aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAma0NGVHlwZURpY3Rp
b25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Cisg
ICAgICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLmdldCgpLCBrQ1RGb250
RW5hYmxlZEF0dHJpYnV0ZSwga0NGQm9vbGVhblRydWUpOworICAgICAgICAgICAgQ0ZEaWN0aW9u
YXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQoKSwgbmFtZUF0dHJpYnV0ZSwgcG9zdFNjcmlwdE5h
bWVTdHJpbmcuZ2V0KCkpOworICAgICAgICAgICAgYWRkQXR0cmlidXRlc0ZvclVzZXJJbnN0YWxs
ZWRGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKICAg
ICAgICAgICAgIGF1dG8gZm9udERlc2NyaXB0b3JUb01hdGNoID0gYWRvcHRDRihDVEZvbnREZXNj
cmlwdG9yQ3JlYXRlV2l0aEF0dHJpYnV0ZXMoYXR0cmlidXRlcy5nZXQoKSkpOwotICAgICAgICAg
ICAgYXV0byBtYXRjaCA9IGFkb3B0Q0Yoc3RhdGljX2Nhc3Q8Q1RGb250RGVzY3JpcHRvclJlZj4o
Q1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0
b3JUb01hdGNoLmdldCgpLCBudWxscHRyKSkpOworICAgICAgICAgICAgUmV0YWluUHRyPENGU2V0
UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVzID0gbWFuZGF0b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0
YWxsZWRGb250cyhtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKKyAgICAgICAgICAgIGF1dG8g
bWF0Y2ggPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGluZ0ZvbnREZXNjcmlw
dG9yKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbWFuZGF0b3J5QXR0cmlidXRlcy5nZXQo
KSkpOwogICAgICAgICAgICAgcmV0dXJuIEluc3RhbGxlZEZvbnQobWF0Y2guZ2V0KCkpOwogICAg
ICAgICB9KS5pdGVyYXRvci0+dmFsdWU7CiAgICAgfQpAQCAtOTc0LDE0ICs5NTcsMTQgQEAgcHVi
bGljOgogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFi
YXNlPjsKIAotICAgIEZvbnREYXRhYmFzZShGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZv
bnRzIGFsbG93VXNlckluc3RhbGxlZEZvbnRzKQorICAgIEZvbnREYXRhYmFzZShBbGxvd1VzZXJJ
bnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKICAgICAgICAgOiBtX2FsbG93
VXNlckluc3RhbGxlZEZvbnRzKGFsbG93VXNlckluc3RhbGxlZEZvbnRzKQogICAgIHsKICAgICB9
CiAKICAgICBIYXNoTWFwPFN0cmluZywgSW5zdGFsbGVkRm9udEZhbWlseT4gbV9mYW1pbHlOYW1l
VG9Gb250RGVzY3JpcHRvcnM7CiAgICAgSGFzaE1hcDxTdHJpbmcsIEluc3RhbGxlZEZvbnQ+IG1f
cG9zdFNjcmlwdE5hbWVUb0ZvbnREZXNjcmlwdG9yczsKLSAgICBGb250Q2FjaGU6OkFsbG93VXNl
ckluc3RhbGxlZEZvbnRzIG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHM7CisgICAgQWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250czsKIH07CiAKIC8vIEJlY2F1
c2UgdGhpcyBzdHJ1Y3QgaG9sZHMgaW50ZXJtZWRpYXRlIHZhbHVlcyB3aGljaCBtYXkgYmUgaW4g
dGhlIGNvbXByZXNzZWQgLTEgLSAxIEdYIHJhbmdlLCB3ZSBkb24ndCB3YW50IHRvIHVzZSB0aGUg
cmVsYXRpdmVseSBsYXJnZQpAQCAtMTE5MCw3ICsxMTczLDcgQEAgc3RydWN0IEZvbnRMb29rdXAg
ewogICAgIGJvb2wgY3JlYXRlZEZyb21Qb3N0U2NyaXB0TmFtZSB7IGZhbHNlIH07CiB9OwogCi1z
dGF0aWMgRm9udExvb2t1cCBwbGF0Zm9ybUZvbnRMb29rdXBXaXRoRmFtaWx5KGNvbnN0IEF0b21p
Y1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCByZXF1ZXN0LCBmbG9hdCBzaXpl
LCBib29sIG1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KQorc3RhdGljIEZvbnRMb29rdXAg
cGxhdGZvcm1Gb250TG9va3VwV2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwg
Rm9udFNlbGVjdGlvblJlcXVlc3QgcmVxdWVzdCwgZmxvYXQgc2l6ZSwgQWxsb3dVc2VySW5zdGFs
bGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCiB7CiAgICAgY29uc3QgYXV0byYgd2hp
dGVsaXN0ID0gZm9udFdoaXRlbGlzdCgpOwogICAgIGlmICghaXNTeXN0ZW1Gb250KGZhbWlseSkg
JiYgd2hpdGVsaXN0LnNpemUoKSAmJiAhd2hpdGVsaXN0LmNvbnRhaW5zKGZhbWlseSkpCkBAIC0x
MjAxLDcgKzExODQsNyBAQCBzdGF0aWMgRm9udExvb2t1cCBwbGF0Zm9ybUZvbnRMb29rdXBXaXRo
RmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGb250UwogICAgIENURm9udFN5bWJv
bGljVHJhaXRzIHRyYWl0cyA9IChpc0ZvbnRXZWlnaHRCb2xkKHJlcXVlc3Qud2VpZ2h0KSA/IGtD
VEZvbnRUcmFpdEJvbGQgOiAwKSB8IChpc0l0YWxpYyhyZXF1ZXN0LnNsb3BlKSA/IGtDVEZvbnRU
cmFpdEl0YWxpYyA6IDApOwogICAgIHJldHVybiB7IGFkb3B0Q0YoQ1RGb250Q3JlYXRlRm9yQ1NT
KGZhbWlseS5zdHJpbmcoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBzdGF0aWNfY2FzdDxmbG9h
dD4ocmVxdWVzdC53ZWlnaHQpLCB0cmFpdHMsIHNpemUpKSB9OwogI2Vsc2UKLSAgICBhdXRvJiBm
b250RGF0YWJhc2UgPSBtYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCA/IEZvbnREYXRhYmFz
ZTo6c2luZ2xldG9uQWxsb3dpbmdVc2VySW5zdGFsbGVkRm9udHMoKSA6IEZvbnREYXRhYmFzZTo6
c2luZ2xldG9uRGlzYWxsb3dpbmdVc2VySW5zdGFsbGVkRm9udHMoKTsKKyAgICBhdXRvJiBmb250
RGF0YWJhc2UgPSBhbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBBbGxvd1VzZXJJbnN0YWxsZWRG
b250czo6WWVzID8gRm9udERhdGFiYXNlOjpzaW5nbGV0b25BbGxvd2luZ1VzZXJJbnN0YWxsZWRG
b250cygpIDogRm9udERhdGFiYXNlOjpzaW5nbGV0b25EaXNhbGxvd2luZ1VzZXJJbnN0YWxsZWRG
b250cygpOwogICAgIGNvbnN0IGF1dG8mIGZhbWlseUZvbnRzID0gZm9udERhdGFiYXNlLmNvbGxl
Y3Rpb25Gb3JGYW1pbHkoZmFtaWx5LnN0cmluZygpKTsKICAgICBpZiAoZmFtaWx5Rm9udHMuaXNF
bXB0eSgpKSB7CiAgICAgICAgIC8vIFRoZSBDU1Mgc3BlYyBzdGF0ZXMgdGhhdCBmb250LWZhbWls
eSBvbmx5IGFjY2VwdHMgYSBuYW1lIG9mIGFuIGFjdHVhbCBmb250IGZhbWlseS4gSG93ZXZlciwg
aW4gV2ViS2l0LCB3ZSBjbGFpbSB0byBhbHNvCkBAIC0xMjY1LDcgKzEyNDgsNyBAQCBzdGF0aWMg
UmV0YWluUHRyPENURm9udFJlZj4gZm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBm
YW1pbHksIGNvbnN0IEZvbgogICAgIEZvbnRMb29rdXAgZm9udExvb2t1cDsKICAgICBmb250TG9v
a3VwLnJlc3VsdCA9IHBsYXRmb3JtRm9udFdpdGhGYW1pbHlTcGVjaWFsQ2FzZShmYW1pbHksIHJl
cXVlc3QsIHNpemUpOwogICAgIGlmICghZm9udExvb2t1cC5yZXN1bHQpCi0gICAgICAgIGZvbnRM
b29rdXAgPSBwbGF0Zm9ybUZvbnRMb29rdXBXaXRoRmFtaWx5KGZhbWlseSwgcmVxdWVzdCwgc2l6
ZSwgZm9udERlc2NyaXB0aW9uLm1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KCkpOworICAg
ICAgICBmb250TG9va3VwID0gcGxhdGZvcm1Gb250TG9va3VwV2l0aEZhbWlseShmYW1pbHksIHJl
cXVlc3QsIHNpemUsIGZvbnREZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250
cygpKTsKICAgICByZXR1cm4gcHJlcGFyZVBsYXRmb3JtRm9udChmb250TG9va3VwLnJlc3VsdC5n
ZXQoKSwgZm9udERlc2NyaXB0aW9uLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZVZhcmlhbnRT
ZXR0aW5ncywgZm9udEZhY2VDYXBhYmlsaXRpZXMsIHNpemUsICFmb250TG9va3VwLmNyZWF0ZWRG
cm9tUG9zdFNjcmlwdE5hbWUpOwogfQogCkBAIC0xNDc1LDQgKzE0NTgsMzIgQEAgY29uc3QgQXRv
bWljU3RyaW5nJiBGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBB
dG9taWNTdHJpbmcmIGYKICAgICByZXR1cm4gbnVsbEF0b20oKTsKIH0KIAordm9pZCBhZGRBdHRy
aWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0cmli
dXRlcywgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCit7
CisjaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZPTlRTCisgICAgaWYgKGFsbG93VXNl
ckluc3RhbGxlZEZvbnRzID09IEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObykgeworICAgICAg
ICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLCBrQ1RGb250VXNlckluc3RhbGxlZEF0
dHJpYnV0ZSwga0NGQm9vbGVhbkZhbHNlKTsKKyAgICAgICAgQ1RGb250RmFsbGJhY2tPcHRpb24g
ZmFsbGJhY2tPcHRpb24gPSBrQ1RGb250RmFsbGJhY2tPcHRpb25TeXN0ZW07CisgICAgICAgIGF1
dG8gZmFsbGJhY2tPcHRpb25OdW1iZXIgPSBhZG9wdENGKENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtDRk51bWJlclNJbnQ2NFR5cGUsICZmYWxsYmFja09wdGlvbikpOworICAg
ICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLCBrQ1RGb250RmFsbGJhY2tPcHRp
b25BdHRyaWJ1dGUsIGZhbGxiYWNrT3B0aW9uTnVtYmVyLmdldCgpKTsKKyAgICB9CisjZWxzZQor
ICAgIFVOVVNFRF9QQVJBTShhdHRyaWJ1dGVzKTsKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMpOworI2VuZGlmCit9CisKK1JldGFpblB0cjxDRlNldFJlZj4gbWFuZGF0
b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhBbGxvd1VzZXJJbnN0YWxsZWRGb250
cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKK3sKKyNpZiBDQU5fRElTQUxMT1dfVVNFUl9JTlNU
QUxMRURfRk9OVFMKKyAgICBpZiAoYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gQWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHM6Ok5vKSB7CisgICAgICAgIENGVHlwZVJlZiBtYW5kYXRvcnlBdHRyaWJ1
dGVzVmFsdWVzW10gPSB7IGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlLCBrQ1RGb250RmFs
bGJhY2tPcHRpb25BdHRyaWJ1dGUgfTsKKyAgICAgICAgcmV0dXJuIGFkb3B0Q0YoQ0ZTZXRDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbWFuZGF0b3J5QXR0cmlidXRlc1ZhbHVlcywgV1RGX0FS
UkFZX0xFTkdUSChtYW5kYXRvcnlBdHRyaWJ1dGVzVmFsdWVzKSwgJmtDRlR5cGVTZXRDYWxsQmFj
a3MpKTsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShhbGxvd1VzZXJJbnN0YWxsZWRG
b250cyk7CisjZW5kaWYKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogfQpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQu
aCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVU
ZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMC4uMTNkYTcxNWI5NmU1OThiZDk1NGMyOTMwZWUxYWI5Nzc0OWNmYjlj
ZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAqIENvcHlyaWdo
dCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlz
dHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0
aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZv
bGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRpc3RyaWJ1dGlv
bnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAg
IG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xh
aW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVzdCByZXByb2R1
Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRp
dGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAgICBkb2N1bWVu
dGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0
aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFwcGxlIikgbm9y
IHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVzZWQgdG8gZW5k
b3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRoaXMgc29mdHdh
cmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisgKgorICogVEhJ
UyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJVVE9SUyAiQVMg
SVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJTkNMVURJTkcs
IEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMgT0YgTUVSQ0hB
TlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBBUkUKKyAqIERJ
U0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklCVVRPUlMgQkUg
TElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUwsIFNQRUNJQUws
IEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVESU5HLCBCVVQg
Tk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMgT1IgU0VSVklD
RVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5FU1MgSU5URVJS
VVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0YgTElBQklMSVRZ
LCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JUCisgKiAoSU5D
TFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBXQVkgT1VUIE9G
IFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBPRiBUSEUgUE9T
U0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisKKyNpbmNsdWRl
ICJGb250RGVzY3JpcHRpb24uaCIKKworI2luY2x1ZGUgPENvcmVUZXh0L0NURm9udC5oPgorCitu
YW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTeW50aGVzaXNQYWlyIHsKKyAgICBTeW50aGVz
aXNQYWlyKGJvb2wgbmVlZHNTeW50aGV0aWNCb2xkLCBib29sIG5lZWRzU3ludGhldGljT2JsaXF1
ZSkKKyAgICAgICAgOiBuZWVkc1N5bnRoZXRpY0JvbGQobmVlZHNTeW50aGV0aWNCb2xkKQorICAg
ICAgICAsIG5lZWRzU3ludGhldGljT2JsaXF1ZShuZWVkc1N5bnRoZXRpY09ibGlxdWUpCisgICAg
eworICAgIH0KKworICAgIHN0ZDo6cGFpcjxib29sLCBib29sPiBib2xkT2JsaXF1ZVBhaXIoKSBj
b25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKG5lZWRzU3ludGhldGlj
Qm9sZCwgbmVlZHNTeW50aGV0aWNPYmxpcXVlKTsKKyAgICB9CisKKyAgICBib29sIG5lZWRzU3lu
dGhldGljQm9sZDsKKyAgICBib29sIG5lZWRzU3ludGhldGljT2JsaXF1ZTsKK307CisKK1JldGFp
blB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmLCBjb25zdCBGb250
RGVzY3JpcHRpb24mLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiBmb250RmFjZUZlYXR1cmVz
LCBjb25zdCBGb250VmFyaWFudFNldHRpbmdzKiBmb250RmFjZVZhcmlhbnRTZXR0aW5ncywgRm9u
dFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcywgZmxv
YXQgc2l6ZSwgYm9vbCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zID0gdHJ1ZSk7CitT
eW50aGVzaXNQYWlyIGNvbXB1dGVOZWNlc3NhcnlTeW50aGVzaXMoQ1RGb250UmVmLCBjb25zdCBG
b250RGVzY3JpcHRpb24mLCBib29sIGlzUGxhdGZvcm1Gb250ID0gZmFsc2UpOworUmV0YWluUHRy
PENURm9udFJlZj4gcGxhdGZvcm1Gb250V2l0aEZhbWlseVNwZWNpYWxDYXNlKGNvbnN0IEF0b21p
Y1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgZmxvYXQgc2l6ZSk7CitSZXRh
aW5QdHI8Q1RGb250UmVmPiBwbGF0Zm9ybUZvbnRXaXRoRmFtaWx5KGNvbnN0IEF0b21pY1N0cmlu
ZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgVGV4dFJlbmRlcmluZ01vZGUsIGZsb2F0
IHNpemUpOworYm9vbCByZXF1aXJlc0N1c3RvbUZhbGxiYWNrRm9udChVQ2hhcjMyIGNoYXJhY3Rl
cik7CitGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllc0ZvckZvbnREZXNjcmlw
dG9yKENURm9udERlc2NyaXB0b3JSZWYpOwordm9pZCBhZGRBdHRyaWJ1dGVzRm9yVXNlckluc3Rh
bGxlZEZvbnRzKENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQWxsb3dVc2VySW5z
dGFsbGVkRm9udHMpOworUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVzRm9y
VXNlckluc3RhbGxlZEZvbnRzKEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKKworfQpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4IDA2OWE3OTUyYjlhNTMzYzA4ZDQ5YzQ5OTkyNDUy
NTM2ODI4MmY0MWYuLjA0YTgwMWQ3N2U5NTk5NjBkY2NjOWI3MzA3YjJmMDhjMjU5Mzk3ZjIgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTIyLDYgKzIyLDcgQEAKICNpbmNsdWRl
ICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKKyNp
bmNsdWRlICJGb250Q2FjaGVDb3JlVGV4dC5oIgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5o
IgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJTaGFyZWRCdWZmZXIu
aCIKQEAgLTM0LDEwICszNSwxNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+Rm9udEN1c3Rv
bVBsYXRmb3JtRGF0YSgpID0gZGVmYXVsdDsKIAogRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9t
UGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9u
dERlc2NyaXB0aW9uLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250RmVhdHVyZVNl
dHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBjb25zdCBGb250VmFyaWFudFNldHRpbmdzJiBmb250
RmFjZVZhcmlhbnRTZXR0aW5ncywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBm
b250RmFjZUNhcGFiaWxpdGllcykKIHsKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENG
RGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVE
aWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykp
OworICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoYXR0cmlidXRlcy5nZXQo
KSwgZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpOworICAg
IGF1dG8gbW9kaWZpZWRGb250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNy
ZWF0ZUNvcHlXaXRoQXR0cmlidXRlcyhtX2ZvbnREZXNjcmlwdG9yLmdldCgpLCBhdHRyaWJ1dGVz
LmdldCgpKSk7CisgICAgUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVzID0g
bWFuZGF0b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhmb250RGVzY3JpcHRpb24u
c2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CisgICAgYXV0byBtYXRjaGluZ0ZvbnRE
ZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVz
Y3JpcHRvcihtb2RpZmllZEZvbnREZXNjcmlwdG9yLmdldCgpLCBtYW5kYXRvcnlBdHRyaWJ1dGVz
LmdldCgpKSk7CisgICAgQVNTRVJUKG1hdGNoaW5nRm9udERlc2NyaXB0b3IpOworCiAgICAgaW50
IHNpemUgPSBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhlbFNpemUoKTsKICAgICBGb250T3Jp
ZW50YXRpb24gb3JpZW50YXRpb24gPSBmb250RGVzY3JpcHRpb24ub3JpZW50YXRpb24oKTsKICAg
ICBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCA9IGZvbnREZXNjcmlwdGlvbi53aWR0aFZh
cmlhbnQoKTsKLSAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRDRihDVEZvbnRD
cmVhdGVXaXRoRm9udERlc2NyaXB0b3IobV9mb250RGVzY3JpcHRvci5nZXQoKSwgc2l6ZSwgbnVs
bHB0cikpOworICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IGZvbnQgPSBhZG9wdENGKENURm9udENy
ZWF0ZVdpdGhGb250RGVzY3JpcHRvcihtYXRjaGluZ0ZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXpl
LCBudWxscHRyKSk7CiAgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwg
Zm9udERlc2NyaXB0aW9uLCAmZm9udEZhY2VGZWF0dXJlcywgJmZvbnRGYWNlVmFyaWFudFNldHRp
bmdzLCBmb250RmFjZUNhcGFiaWxpdGllcywgZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkU2l6ZSgp
KTsKICAgICBBU1NFUlQoZm9udCk7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoZm9udC5n
ZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50LCBmb250
RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
dGV4dC9UZXh0RmxhZ3MuaAppbmRleCBkZmRlNWJmNmE0NjM0NDNjMjVkYTU2YjVjOTU1OTRiYzJk
MTUxZjE5Li40MTJiOTZmYTJjMmJlN2M0NTViZGM5OGVmOTQyZTk2ZThkY2RjNWJhIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKQEAgLTEsNSArMSw1IEBACiAvKgot
ICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2
ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMTcgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBh
bmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlvbiwgYXJlIHBl
cm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpAQCAtMzYyLDQg
KzM2Miw5IEBAIGVudW0gY2xhc3MgRm9udFN0eWxlQXhpcyB7CiAgICAgaXRhbAogfTsKIAorZW51
bSBjbGFzcyBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyB7CisgICAgWWVzLAorICAgIE5vCit9Owor
CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1
bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5j
cHAKaW5kZXggY2JmNjcyMzQyNjhmNGMzNzcwYmZmM2VhMDk1Zjk5ODczMjJkNDEyZi4uY2E5NjY3
MGUyMzhlYWQyYzRmY2IwNGMwMjI3ZGI1NmVlYzMwZDNmZSAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcApAQCAtMTA5LDcgKzEwOSw3IEBA
IFJlbmRlclN0eWxlIHJlc29sdmVGb3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYgZG9jdW1lbnQp
CiAgICAgZm9udERlc2NyaXB0aW9uLnNldExvY2FsZShkb2N1bWVudC5jb250ZW50TGFuZ3VhZ2Uo
KSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0dGluZ3MuZm9udFJl
bmRlcmluZ01vZGUoKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWlseShzdGFuZGFy
ZEZhbWlseSk7Ci0gICAgZm9udERlc2NyaXB0aW9uLnNldE1heVJlcHJlc2VudFVzZXJJbnN0YWxs
ZWRGb250KCFzZXR0aW5ncy5zaG91bGREaXNhbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKKyAg
ICBmb250RGVzY3JpcHRpb24uc2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoc2V0dGlu
Z3Muc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CiAKICAgICBmb250RGVzY3JpcHRp
b24uc2V0S2V5d29yZFNpemVGcm9tSWRlbnRpZmllcihDU1NWYWx1ZU1lZGl1bSk7CiAgICAgaW50
IHNpemUgPSBmb250U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVNZWRpdW0sIGZhbHNlLCBkb2N1bWVu
dCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1s
IGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRleCAxZjRiOWQ5
NTVkYWNmYTU4YWIzNzJjZmY3NjA1NDM3OWU4YjYzNzljLi5hYTQ1MGUzZDE3MzM1MjRmZGYwZjNh
ZmI5MGEyNDg5ODRkNWQ2YjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQ
cmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2Vz
LnlhbWwKQEAgLTEwMzcsNiArMTAzNyw3IEBAIFZpc2libGVEZWJ1Z092ZXJsYXlSZWdpb25zOgog
U2hvdWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9udHM6CiAgIHR5cGU6IGJvb2wKICAgZGVmYXVs
dFZhbHVlOiBmYWxzZQorICB3ZWJjb3JlQmluZGluZzogY3VzdG9tCiAKIAogIyBGb3IgZXhwZXJp
bWVudGFsIGZlYXR1cmVzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dl
YlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQ
YWdlLmNwcAppbmRleCBiOGIwZjlhODJmNDE4MjkzOTU2Nzg3MTc0OTQwZmU4ZTMxNmM2YTUzLi5l
MWI4NjkyMDllMGM3MmNhYmFhOGJjODQyYTEyMWRkMWQzOWIwYmI0IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9Tb3VyY2UvV2Vi
S2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzA2MSw2ICszMDYxLDcgQEAg
dm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJlbmNlc1N0b3Jl
JiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3koc3RhdGljX2Nh
c3Q8U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4oc3RvcmUuZ2V0VUludDMy
VmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9ja2luZ1BvbGljeUtleSgp
KSkpOwogICAgIHNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZyhzdGF0aWNfY2FzdDxXZWJDb3Jl
OjpGcmFtZUZsYXR0ZW5pbmc+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVu
Y2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdLZXkoKSkpKTsKICAgICBzZXR0aW5ncy5zZXRFZGl0YWJs
ZUxpbmtCZWhhdmlvcihzdGF0aWNfY2FzdDxXZWJDb3JlOjpFZGl0YWJsZUxpbmtCZWhhdmlvcj4o
c3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmVkaXRhYmxlTGlu
a0JlaGF2aW9yS2V5KCkpKSk7CisgICAgc2V0dGluZ3Muc2V0U2hvdWxkQWxsb3dVc2VySW5zdGFs
bGVkRm9udHMoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzaG91
bGREaXNhbGxvd1VzZXJJbnN0YWxsZWRGb250c0tleSgpKSA/IFdlYkNvcmU6OkFsbG93VXNlcklu
c3RhbGxlZEZvbnRzOjpObyA6IFdlYkNvcmU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXMp
OwogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAgICBzZXR0aW5ncy5zZXREYXRhRGV0ZWN0
b3JUeXBlcyhzdGF0aWNfY2FzdDxEYXRhRGV0ZWN0b3JUeXBlcz4oc3RvcmUuZ2V0VUludDMyVmFs
dWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRhdGFEZXRlY3RvclR5cGVzS2V5KCkpKSk7CiAj
ZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329778</attachid>
            <date>2017-12-19 11:15:56 -0800</date>
            <delta_ts>2017-12-19 11:38:36 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171219111555.patch</filename>
            <type>text/plain</type>
            <size>44648</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MTI2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDhkNTYzMGJhMmY4MWEz
NDVhMTRhMzQ0OWVkYzgxYjRlMTBiOGY3MC4uZGI2ZDcxNTgzMmQ2NGI1NWNjZDMyM2MzMDc2Y2Q3
NjRjY2NjNTA0ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTEyLTE5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzYwMjk5MTk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZWZh
Y3RvcnMgdGhlIGV4aXN0aW5nIHVzZXItaW5zdGFsbGVkLWZvbnRzIGNvZGUgdG8gYSBuZXcgc2hh
cmVkIGxvY2F0aW9uLCBpbiBGb250Q2FjaGVDb3JlVGV4dCwKKyAgICAgICAgYW5kIGNhbGxzIHRo
aXMgbmV3IHNoYXJlZCBjb2RlIGZyb20gRm9udEN1c3RvbVBsYXRmb3JtRGF0YSBjb2RlIChmb3Ig
V2ViIGZvbnRzKS4gSXQgYWxzbyBpbXByb3ZlcyB0aGVzZQorICAgICAgICBmdW5jdGlvbnMgdG8g
aW5jbHVkZSBhbm90aGVyIENvcmVUZXh0IGZvbnQgYXR0cmlidXRlIHdoaWNoIHdpbGwgbWFrZSBm
b250IGZhbGxiYWNrIG9iZXkgdGhlIHJ1bGVzIGFib3V0CisgICAgICAgIHVzZXItaW5zdGFsbGVk
IGZvbnRzLiBJdCBhbHNvIG1pZ3JhdGVzIHNvbWUgcmF3IGJvb2xlYW4gdmFsdWVzIHRvIHVzZSBl
bnVtIGNsYXNzZXMuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBmYXN0
L3RleHQvdXNlci1pbnN0YWxsZWQvIChtb3JlIG9mIHRoZW0gcGFzcyBub3cpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgYSBuZXcgaGVhZGVyOiBG
b250Q2FjaGVDb3JlVGV4dC5oIChhbmQgc29ydCB0aGUgZmlsZSkuCisgICAgICAgICogY3NzL0NT
U0ZvbnRGYWNlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU2V0OjplbnN1
cmVMb2NhbEZvbnRGYWNlc0ZvckZhbWlseVJlZ2lzdGVyZWQpOiBNaWdyYXRlIGEgYm9vbCB0byBh
biBlbnVtIGNsYXNzLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRpYWxpemVGb250U3R5bGUpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uS2V5
OjptYWtlRmxhZ3NLZXkpOiBNYWtlIGNhY2hlcyBzZW5zaXRpdmUgdG8gd2hldGhlciBvciBub3Qg
d2Ugc2hvdWxkIGRpc2FsbG93CisgICAgICAgIHVzZXItaW5zdGFsbGVkIGZvbnRzCisgICAgICAg
IChXZWJDb3JlOjpTeW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogRGVsZXRlZC4gTW92ZWQg
dG8gRm9udENhY2hlQ29yZVRleHQuaAorICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6
Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTogRGVsZXRlZC4gRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVtIGNs
YXNzLgorICAgICAgICAoV2ViQ29yZTo6bV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzIGNvbnN0KTogTWlncmF0ZSBhIGJvb2wgdG8gYW4gZW51bSBjbGFzcy4KKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0
b3I9PSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpt
YXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCBjb25zdCk6IERlbGV0ZWQuIERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRNYXlSZXByZXNlbnRVc2VySW5zdGFs
bGVkRm9udCk6IERlbGV0ZWQuIERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREYXRhYmFz
ZTo6c2luZ2xldG9uKTogTWlncmF0ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRG
bGFncy5oCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OnNpbmdsZXRvbkFsbG93aW5n
VXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJh
c2U6OnNpbmdsZXRvbkRpc2FsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmNvbGxlY3Rpb25Gb3JGYW1pbHkpOiBDYWxsIHRo
ZSBzaGFyZWQgZnVuY3Rpb25zIHRvIHVwZGF0ZSB0aGUgRm9udERlc2NyaXB0b3IuCisgICAgICAg
IChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmZvbnRGb3JQb3N0U2NyaXB0TmFtZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGFiYXNlOjpGb250RGF0YWJhc2UpOiBNaWdyYXRlIHRo
ZSBlbnVtIGNsYXNzIHRvIHRoZSBzaGFyZWQgVGV4dEZsYWdzLmgKKyAgICAgICAgKFdlYkNvcmU6
OnBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVt
IGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6Zm9udFdpdGhGYW1pbHkpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OmFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMpOiBBZGQgYW5v
dGhlciBwYXJhbWV0ZXIgdG8gdGhlIEZvbnREZXNjcmlwdG9yIHRvIGVuZm9yY2UKKyAgICAgICAg
Q29yZSBUZXh0IGZvbnQgZmFsbGJhY2sgaGFwcGVucyBhY2NvcmRpbmcgdG8gdGhlIHVzZXItaW5z
dGFsbGVkIGZvbnQgcnVsZXMuCisgICAgICAgIChXZWJDb3JlOjptYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
eW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogTWlncmF0ZWQgZnJvbSBGb250Q2FjaGUuaAor
ICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9u
dFBsYXRmb3JtRGF0YSk6IENhbGwgdGhlIHNoYXJlZCBmdW5jdGlvbnMgdG8gcHJlcGFyZSB0aGUg
Rm9udERlc2NyaXB0b3IuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDogTW92
ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRGbGFncy5oCisgICAgICAgICogc3R5
bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OnJlc29sdmVGb3JEb2N1bWVudCk6IE1pZ3JhdGUgYSBib29sIHRvIGFuIGVudW0gY2xhc3MuCisK
IDIwMTctMTItMTkgIFlvdWVubiBGYWJsZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAg
IFNlcnZpY2UgV29ya2VyIHNob3VsZCBub3QgY2xlYW4gSFRUUCBoZWFkZXJzIGFkZGVkIGJ5IHRo
ZSBhcHBsaWNhdGlvbiBvciBieSBmZXRjaCBzcGVjaWZpY2F0aW9uIGJlZm9yZSBzZXJ2aWNlIHdv
cmtlciBpbnRlcmNlcHRpb24KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGMyNjMzZWU5NTdjOWU3YWQ4
NzBhOGZmNjZmNzk1NmE2M2NiMjhiZDYuLjlkOTI3ZTQ2NTNiNDg1NGI5ZGNjMWUzNjc4OTdiYzhl
YzhmNzllNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTEyLTE5
ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBk
aXNhbGxvd2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3Jp
cHQgbmFtZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4MDk1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzYwMjk5MTk+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2NvY29hL0NvcmVUZXh0U1BJLmg6CisKIDIwMTctMTItMTkgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNA
YXBwbGUuY29tPgogCiAgICAgICAgIFtBcHBsZSBQYXldIFN0b3AgbWFpbnRhaW5pbmcgYSBsaXN0
IG9mIHBheW1lbnQgbmV0d29ya3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNzJhY2I3MWRlNjk5NTlmM2U4OWUwNTBh
ZWI1YjNkMTZhNDI4OTMyMy4uNmM0ODgxNGQ0M2M5YmVmNmUzNGYyODQ1NjljZTYxNGE4N2JkZjky
MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0xMi0xOSAgTXlsZXMgQy4gTWF4Zmll
bGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIEEgZGlzYWxsb3dlZCB1c2VyLWlu
c3RhbGxlZCBmb250IG1heSBiZSB1c2VkIGlmIGl0cyBQb3N0U2NyaXB0IG5hbWUgaXMgc3BlY2lm
aWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5
NTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2MDI5OTE5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1pZ3JhdGUgYSBib29sIHRvIGFuIGVudW0g
Y2xhc3MuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAxNy0xMi0xOSAgWW91ZW5uIEZhYmxldCAgPHlv
dWVubkBhcHBsZS5jb20+CiAKICAgICAgICAgU2VydmljZSBXb3JrZXIgc2hvdWxkIG5vdCBjbGVh
biBIVFRQIGhlYWRlcnMgYWRkZWQgYnkgdGhlIGFwcGxpY2F0aW9uIG9yIGJ5IGZldGNoIHNwZWNp
ZmljYXRpb24gYmVmb3JlIHNlcnZpY2Ugd29ya2VyIGludGVyY2VwdGlvbgpkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKaW5kZXggN2RjZmNkZWQzZTMx
NWU2ZTUwYzZjZjhjNTIxZDljMDEwNThkZjgzYy4uNjdlNmJhNTE1ZDdiYzNiMWFjM2Y2Y2JhNmM4
MjZjYTUxYzUyMGQyOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvQ29yZVRleHRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9D
b3JlVGV4dFNQSS5oCkBAIC01NSw2ICs1NSwxMyBAQCBlbnVtIHsKICAgICBrQ1RSdW5TdGF0dXNI
YXNPcmlnaW5zID0gKDEgPDwgNCksCiB9OwogCit0eXBlZGVmIENGX09QVElPTlMoQ0ZPcHRpb25G
bGFncywgQ1RGb250RmFsbGJhY2tPcHRpb24pIHsKKyAgICBrQ1RGb250RmFsbGJhY2tPcHRpb25O
b25lID0gMCwKKyAgICBrQ1RGb250RmFsbGJhY2tPcHRpb25TeXN0ZW0gPSAxIDw8IDAsCisgICAg
a0NURm9udEZhbGxiYWNrT3B0aW9uVXNlckluc3RhbGxlZCA9IDEgPDwgMSwKKyAgICBrQ1RGb250
RmFsbGJhY2tPcHRpb25EZWZhdWx0ID0ga0NURm9udEZhbGxiYWNrT3B0aW9uU3lzdGVtIHwga0NU
Rm9udEZhbGxiYWNrT3B0aW9uVXNlckluc3RhbGxlZCwKK307CisKICNlbmRpZgogCiBXVEZfRVhU
RVJOX0NfQkVHSU4KQEAgLTY2LDYgKzczLDcgQEAgZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtD
VEZvbnRSZWZlcmVuY2VVUkxBdHRyaWJ1dGU7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NU
Rm9udE9wdGljYWxTaXplQXR0cmlidXRlOwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZv
bnRQb3N0U2NyaXB0TmFtZUF0dHJpYnV0ZTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RG
b250VXNlckluc3RhbGxlZEF0dHJpYnV0ZTsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RG
b250RmFsbGJhY2tPcHRpb25BdHRyaWJ1dGU7CiAKIGJvb2wgQ1RGb250VHJhbnNmb3JtR2x5cGhz
KENURm9udFJlZiwgQ0dHbHlwaCBnbHlwaHNbXSwgQ0dTaXplIGFkdmFuY2VzW10sIENGSW5kZXgg
Y291bnQsIENURm9udFRyYW5zZm9ybU9wdGlvbnMpOwogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvV2ViQ29yZS9X
ZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKaW5kZXggMTUxOWVjMjQxMjVjYjJhY2Nm
N2RhM2Q4NjliMmI5MmNkMzFlNjk5YS4uMDJmZTNiZWQ0YmEyYzQ3ZmNlNGJkY2NlNDA4YzRkY2Iw
YzY1ZGQ5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCisrKyBiL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2pl
Y3QucGJ4cHJvagpAQCAtMzcyMCw2ICszNzIwLDcgQEAKIAkJQzEwNURBNjQwRjNBQTZCODAwMURE
NDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhC
dWlsZEZpbGU7IGZpbGVSZWYgPSBDMTA1REE2MzBGM0FBNkI4MDAxREQ0NEYgLyogVGV4dEVuY29k
aW5nRGV0ZWN0b3IuaCAqLzsgfTsKIAkJQzIwMTVDMEExQkU2RkVCMjAwODIyMzg5IC8qIEZvbnRW
YXJpYW50QnVpbGRlci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzIwMTVDMDkxQkU2RkUyQzAwODIyMzg5IC8qIEZvbnRWYXJpYW50QnVpbGRlci5oICov
OyB9OwogCQlDMjFERjJFQTFEOUU0RTk5MDBGNUIyNEMgLyogQ1NTRm9udFZhcmlhdGlvblZhbHVl
LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjFERjJF
ODFEOUU0RTk5MDBGNUIyNEMgLyogQ1NTRm9udFZhcmlhdGlvblZhbHVlLmggKi87IH07CisJCUMy
NDU4RTYzMUZFODk3QjAwMDU5NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI0NThFNjExRkU4OTc5RTAwNTk0
NzU5IC8qIEZvbnRDYWNoZUNvcmVUZXh0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMgPSAo
UHJpdmF0ZSwgKTsgfTsgfTsKIAkJQzI2MDE3QTQxQzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRG
YWNlU2V0LmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBD
MjYwMTdBMjFDNzJEQzk5MDBGNzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuaCAqLzsgfTsKIAkJQzI4
MDgzM0YxQzZEQzI2RjAwMTQ1MUI2IC8qIEpTRm9udEZhY2UuaCBpbiBIZWFkZXJzICovID0ge2lz
YSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyODA4MzNFMUM2REMyMkMwMDE0NTFCNiAvKiBK
U0ZvbnRGYWNlLmggKi87IH07CiAJCUMyQUIwQUY3MUU2QjNDNkMwMDEzNDhDNSAvKiBGb250U2Vs
ZWN0aW9uQWxnb3JpdGhtLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMkFCMEFGNTFFNkIzQzZDMDAxMzQ4QzUgLyogRm9udFNlbGVjdGlvbkFsZ29yaXRo
bS5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CkBAIC0x
MjYzNiw2ICsxMjYzNyw3IEBACiAJCUMyMDE1QzA5MUJFNkZFMkMwMDgyMjM4OSAvKiBGb250VmFy
aWFudEJ1aWxkZXIuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBsYXN0S25vd25GaWxl
VHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gRm9udFZhcmlhbnRCdWlsZGVyLmg7IHNvdXJj
ZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMURGMkU3MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NG
b250VmFyaWF0aW9uVmFsdWUuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVF
bmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRo
ID0gQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
IAkJQzIxREYyRTgxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oICov
ID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZp
bGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBDU1NGb250VmFyaWF0aW9uVmFsdWUuaDsg
c291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKKwkJQzI0NThFNjExRkU4OTc5RTAwNTk0NzU5IC8q
IEZvbnRDYWNoZUNvcmVUZXh0LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRDYWNoZUNvcmVUZXh0Lmg7
IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyNjAxN0ExMUM3MkRDOTkwMEY3NEExNiAv
KiBDU1NGb250RmFjZVNldC5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVu
Y29kaW5nID0gNDsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGgg
PSBDU1NGb250RmFjZVNldC5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyNjAx
N0EyMUM3MkRDOTkwMEY3NEExNiAvKiBDU1NGb250RmFjZVNldC5oICovID0ge2lzYSA9IFBCWEZp
bGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBDU1NGb250RmFjZVNldC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4i
OyB9OwogCQlDMjgwODMzQzFDNkRCMTk0MDAxNDUxQjYgLyogRm9udEZhY2UuaWRsICovID0ge2lz
YSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBl
ID0gdGV4dDsgcGF0aCA9IEZvbnRGYWNlLmlkbDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsK
QEAgLTIzMDAzLDYgKzIzMDA1LDcgQEAKIAkJCWlzYSA9IFBCWEdyb3VwOwogCQkJY2hpbGRyZW4g
PSAoCiAJCQkJMUMzOTY5Q0YxQjc0MjExRTAwMkJDRkE3IC8qIEZvbnRDYWNoZUNvcmVUZXh0LmNw
cCAqLywKKwkJCQlDMjQ1OEU2MTFGRTg5NzlFMDA1OTQ3NTkgLyogRm9udENhY2hlQ29yZVRleHQu
aCAqLywKIAkJCQlCMkFGRkM3ODBEMDBBNUMxMDAzMDA3NEQgLyogRm9udENhc2NhZGVDb2NvYS5t
bSAqLywKIAkJCQk3QzRFREQ3MzFBN0I2MDc4MDAxOThDNEQgLyogRm9udENvY29hLm1tICovLAog
CQkJCTFDMTJBQzJDMUVFNzc5OTUwMDc5RTBBMCAvKiBGb250RGVzY3JpcHRpb25Db2NvYS5jcHAg
Ki8sCkBAIC0yNjM3Miw3ICsyNjM3NSw2IEBACiAJCQkJMDc5RDA4NkIxNjJGMjFGOTAwREI4NjU4
IC8qIENhcHRpb25Vc2VyUHJlZmVyZW5jZXNNZWRpYUFGLmggaW4gSGVhZGVycyAqLywKIAkJCQkw
N0I3MTE2RDFEODk5RTYzMDA5RjBGRkIgLyogQ2FwdHVyZURldmljZS5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDdCNzExNkYxRDg5OUU2MzAwOUYwRkZCIC8qIENhcHR1cmVEZXZpY2VNYW5hZ2VyLmgg
aW4gSGVhZGVycyAqLywKLQkJCQlFNDdDMzkyRDFGRTZFMEYzMDBCQkJDNkIgLyogUmVuZGVyVHJl
ZUJ1aWxkZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEQzczNDE1MTk3Nzg5NkQwMDQ2QkZDNSAv
KiBDQVJpbmdCdWZmZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCTY1NTBCNjlFMDk5REYwMjcwMDkw
RDc4MSAvKiBDREFUQVNlY3Rpb24uaCBpbiBIZWFkZXJzICovLAogCQkJCUNERjRCNzE2MUUwMEI3
RTUwMEUyMzVBMiAvKiBDRE0uaCBpbiBIZWFkZXJzICovLApAQCAtMjY0NzcsNyArMjY0NzksNiBA
QAogCQkJCTk3NDZBRjIxMTRGNERERTYwMDNFN0E3MSAvKiBDb29yZGluYXRlcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJM0Y4MDIwMzUxRTlFNDdCRjAwREVDNjFEIC8qIENvcmVBdWRpb0NhcHR1cmVE
ZXZpY2UuaCBpbiBIZWFkZXJzICovLAogCQkJCTNGODAyMDM3MUU5RTQ3QzUwMERFQzYxRCAvKiBD
b3JlQXVkaW9DYXB0dXJlRGV2aWNlTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5
MkUxRkU2RTBGNzAwQkJCQzZCIC8qIFJlbmRlclRyZWVQb3NpdGlvbi5oIGluIEhlYWRlcnMgKi8s
CiAJCQkJMDdBRkY0MjIxRUZCMTQ0OTAwQjU0NUIzIC8qIENvcmVBdWRpb0NhcHR1cmVTb3VyY2VJ
T1MuaCBpbiBIZWFkZXJzICovLAogCQkJCUNEN0QzMzQ4MUM3QTE2QkYwMDA0MTI5MyAvKiBDb3Jl
VmlkZW9Tb2Z0TGluay5oIGluIEhlYWRlcnMgKi8sCiAJCQkJODYyRjEyOUUxOEMxNTc2RjAwNUM1
NEFGIC8qIENvdW50ZWRVc2VyQWN0aXZpdHkuaCBpbiBIZWFkZXJzICovLApAQCAtMjY4MzksNyAr
MjY4NDAsNiBAQAogCQkJCUE3Q0ZCM0QyMEI3RUQxMEEwMDcwQzMyRCAvKiBEcmFnSW1hZ2UuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBRjVFNEQ5MUU1Njc3QTkwMDRBMUYwMSAvKiBEcmFnSXRlbS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJODFGNjVGRjYxMzc4OEZBQTAwRkY2RjJEIC8qIERyYWdTdGF0
ZS5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5MzIxRkU2RTEwNTAwQkJCQzZCIC8qIFJlbmRl
clRyZWVVcGRhdGVyTGlzdEl0ZW0uaCBpbiBIZWFkZXJzICovLAogCQkJCUUxQkE2NkYxMTc0MkJE
ODYwMEMyMDI1MSAvKiBEeW5hbWljTGlua2VySW50ZXJwb3NpbmcuaCBpbiBIZWFkZXJzICovLAog
CQkJCUZENkVEMkM4MTM2QjhFNjYwMDNDRjA3MiAvKiBEeW5hbWljc0NvbXByZXNzb3IuaCBpbiBI
ZWFkZXJzICovLAogCQkJCUZENTM3MzU3MTM3QjY1M0IwMDAwOERDRSAvKiBEeW5hbWljc0NvbXBy
ZXNzb3JLZXJuZWwuaCBpbiBIZWFkZXJzICovLApAQCAtMjY5MjYsNiArMjY5MjYsNyBAQAogCQkJ
CTUxN0E1MzVCMUY1ODhBNEMwMERDREMwQSAvKiBGZXRjaEJvZHlDb25zdW1lci5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJNDEyOUM5OTcxRjU5Qjk2MzAwOUQ3NDAzIC8qIEZldGNoQm9keVNvdXJjZS5o
IGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMTI5REIxRjNEMTQzODAwRDE1RTQ3IC8qIEZldGNoSGVh
ZGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE2MUUyRDUxRkU0OERDNTAwRUMyRTk2IC8qIEZl
dGNoTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdBNTM1ODFGNTg4OUU4MDBEQ0RDMEEg
LyogRmV0Y2hMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQUQ3NTNBMUNFRjZC
RDEwMEEzMTQ4NiAvKiBGZXRjaE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTE5MTRE
MUYyQTlBRkIwMDI3MkY3OCAvKiBGZXRjaFJlZmVycmVyUG9saWN5LmggaW4gSGVhZGVycyAqLywK
QEAgLTI2OTg4LDYgKzI2OTg5LDcgQEAKIAkJCQkxQUMyRDg5RDFCMUUyOTFGMDBENTJFODcgLyog
Rm9udEFudGlhbGlhc2luZ1N0YXRlU2F2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjkyRDRG
MTI5MzU1MEIwMEM4Mzg3RiAvKiBGb250QmFzZWxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIy
QzNEQTYzMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJ
CUMyNDU4RTYzMUZFODk3QjAwMDU5NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQjJDM0RBNjEwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNjYWRlLmggaW4g
SGVhZGVycyAqLywKIAkJCQlCMkMzREE2ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udENhc2NhZGVG
b250cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBRkZDN0UwRDAwQTVDMTAwMzAwNzREIC8qIEZv
bnRDdXN0b21QbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjcyMzYsNyArMjcyMzgs
NiBAQAogCQkJCTk3N0IzODc4MTIyODgzRTkwMEI4MUZGOCAvKiBIVE1MVG9rZW5pemVyLmggaW4g
SGVhZGVycyAqLywKIAkJCQkwNzA3NTY4QzE0MjI2MkQ2MDA0MTQxNjEgLyogSFRNTFRyYWNrRWxl
bWVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTc3QjM3MjYxMjI4NzIxNzAwQjgxRkY4IC8qIEhU
TUxUcmVlQnVpbGRlci5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5MzAxRkU2RTBGRDAwQkJC
QzZCIC8qIFJlbmRlclRyZWVVcGRhdGVyRmlyc3RMZXR0ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJ
CUE4RUE3OUYyMEExOTE2REYwMEE4RUY1RiAvKiBIVE1MVUxpc3RFbGVtZW50LmggaW4gSGVhZGVy
cyAqLywKIAkJCQlBRDQ5OTE0MzE4RjA4MTUxMDBCRjAwOTIgLyogSFRNTFVua25vd25FbGVtZW50
LmggaW4gSGVhZGVycyAqLywKIAkJCQlFNDQ2MTNBQjBDRDYzMzEwMDBGQURBNzUgLyogSFRNTFZp
ZGVvRWxlbWVudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yNzM4OCw3ICsyNzM4OSw2IEBACiAJCQkJ
N0E1NDg1ODAxNEUwMkQ1MTAwNkFFMDVBIC8qIEluc3BlY3Rvckhpc3RvcnkuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUE1QjgxQ0FFMUZBQTQ0NjIwMDM3RDFFNiAvKiBJbnNwZWN0b3JJbmRleGVkREJB
Z2VudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMjBENjI5MjcxMjUzNjkwQjAwMDgxNTQzIC8qIElu
c3BlY3Rvckluc3RydW1lbnRhdGlvbi5oIGluIEhlYWRlcnMgKi8sCi0JCQkJNDE2MUUyRDUxRkU0
OERDNTAwRUMyRTk2IC8qIEZldGNoTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQlBNTg0MEUx
RDE4N0I3NEQ1MDA4NDNCMTAgLyogSW5zcGVjdG9ySW5zdHJ1bWVudGF0aW9uQ29va2llLmggaW4g
SGVhZGVycyAqLywKIAkJCQlBNUI4MUNBRjFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9yTGF5
ZXJUcmVlQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE1QjgxQ0IwMUZBQTQ0NjIwMDM3RDFF
NiAvKiBJbnNwZWN0b3JNZW1vcnlBZ2VudC5oIGluIEhlYWRlcnMgKi8sCkBAIC0yODUyMyw3ICsy
ODUyMyw2IEBACiAJCQkJMUE1NjlEMEIwRDdFMkI4MjAwN0MzOTgzIC8qIE5QX2pzb2JqZWN0Lmgg
aW4gSGVhZGVycyAqLywKIAkJCQkxQTkyN0ZEMjE0MTZBMTVCMDAzQTgzQzggLyogbnBhcGkuaCBp
biBIZWFkZXJzICovLAogCQkJCTFBMjE5QjNCMERDQTg3QUIwMDQwRTNBMCAvKiBucGZ1bmN0aW9u
cy5oIGluIEhlYWRlcnMgKi8sCi0JCQkJRTQ3QzM5MkYxRkU2RTBGOTAwQkJCQzZCIC8qIFJlbmRl
clRyZWVVcGRhdGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTkyN0ZEMzE0MTZBMTVCMDAzQTgz
QzggLyogbnBydW50aW1lLmggaW4gSGVhZGVycyAqLywKIAkJCQkxQTU2OUQwRjBEN0UyQjgyMDA3
QzM5ODMgLyogbnBydW50aW1lX2ltcGwuaCBpbiBIZWFkZXJzICovLAogCQkJCTFBNTY5RDEwMEQ3
RTJCODIwMDdDMzk4MyAvKiBucHJ1bnRpbWVfaW50ZXJuYWwuaCBpbiBIZWFkZXJzICovLApAQCAt
Mjg2NzcsNyArMjg2NzYsNiBAQAogCQkJCTA3MEUwOTE5MTg3NUVFRkMwMDNBMUQzQyAvKiBQbGF0
Zm9ybU1lZGlhU2Vzc2lvbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJMDdGOTQ0MTYxODY0RDA0NjAw
NUQzMUNCIC8qIFBsYXRmb3JtTWVkaWFTZXNzaW9uTWFuYWdlci5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDFCRjcwMTAwRkU4NkY2MTAwNUU4REVDIC8qIFBsYXRmb3JtTWVzc2FnZVBvcnRDaGFubmVs
LmggaW4gSGVhZGVycyAqLywKLQkJCQlFNDdDMzkzMzFGRTZFMTA4MDBCQkJDNkIgLyogUmVuZGVy
VHJlZVVwZGF0ZXJNdWx0aUNvbHVtbi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJOTM1QzQ3NjkwOUFD
NEQ0MzAwQTZBQUI0IC8qIFBsYXRmb3JtTW91c2VFdmVudC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJ
QzU5ODkwNTgxNEU5QzI5OTAwRThEMThCIC8qIFBsYXRmb3JtUGFzdGVib2FyZC5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJQkNFQzAxRDcwQzI3NEVCNDAwOUY0RUM5IC8qIFBsYXRmb3JtU2NyZWVuLmgg
aW4gSGVhZGVycyAqLywKQEAgLTI4OTI1LDYgKzI4OTIzLDEzIEBACiAJCQkJRkVEMTNENTIwQ0VB
OTQ5NzAwRDg5NDY2IC8qIFJlbmRlclRoZW1lSU9TLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VB
NDg4NzA5N0Q5MzAyMDA5NEM5RTQgLyogUmVuZGVyVGhlbWVNYWMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTkzRjE5OThDMDgyNDVFNTkwMDFFOUFCQyAvKiBSZW5kZXJUcmVlQXNUZXh0LmggaW4gSGVh
ZGVycyAqLywKKwkJCQlFNDdDMzkyRDFGRTZFMEYzMDBCQkJDNkIgLyogUmVuZGVyVHJlZUJ1aWxk
ZXIuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0N0MzOTJFMUZFNkUwRjcwMEJCQkM2QiAvKiBSZW5k
ZXJUcmVlUG9zaXRpb24uaCBpbiBIZWFkZXJzICovLAorCQkJCUU0N0MzOTJGMUZFNkUwRjkwMEJC
QkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRlci5oIGluIEhlYWRlcnMgKi8sCisJCQkJRTQ3QzM5MzAx
RkU2RTBGRDAwQkJCQzZCIC8qIFJlbmRlclRyZWVVcGRhdGVyRmlyc3RMZXR0ZXIuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUU0N0MzOTMxMUZFNkUxMDIwMEJCQkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRl
ckdlbmVyYXRlZENvbnRlbnQuaCBpbiBIZWFkZXJzICovLAorCQkJCUU0N0MzOTMyMUZFNkUxMDUw
MEJCQkM2QiAvKiBSZW5kZXJUcmVlVXBkYXRlckxpc3RJdGVtLmggaW4gSGVhZGVycyAqLywKKwkJ
CQlFNDdDMzkzMzFGRTZFMTA4MDBCQkJDNkIgLyogUmVuZGVyVHJlZVVwZGF0ZXJNdWx0aUNvbHVt
bi5oIGluIEhlYWRlcnMgKi8sCiAJCQkJRTQ0NjE0NTIwQ0Q2OEEzNTAwRkFEQTc1IC8qIFJlbmRl
clZpZGVvLmggaW4gSGVhZGVycyAqLywKIAkJCQlCQ0VBNDg2ODA5N0Q5MzAyMDA5NEM5RTQgLyog
UmVuZGVyVmlldy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQkUyMDUwN0UxOEE0NThDMjAwODA2NDdF
IC8qIFJlbmRlclZUVEN1ZS5oIGluIEhlYWRlcnMgKi8sCkBAIC0yOTIwNyw3ICsyOTIxMiw2IEBA
CiAJCQkJOTdCQzZBM0MxNTA1RjA4MTAwMUI3NEFDIC8qIFNRTEVycm9yLmggaW4gSGVhZGVycyAq
LywKIAkJCQkxQTIyNDY0QTBDQzk4RERCMDBDMDUyNDAgLyogU1FMaXRlRGF0YWJhc2UuaCBpbiBI
ZWFkZXJzICovLAogCQkJCTdFNDc0RTFGMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFz
ZVRyYWNrZXIuaCBpbiBIZWFkZXJzICovLAotCQkJCUU0N0MzOTMxMUZFNkUxMDIwMEJCQkM2QiAv
KiBSZW5kZXJUcmVlVXBkYXRlckdlbmVyYXRlZENvbnRlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJ
CTdFNDc0RTFFMTI0OTREQzkwMDIzNTM2NCAvKiBTUUxpdGVEYXRhYmFzZVRyYWNrZXJDbGllbnQu
aCBpbiBIZWFkZXJzICovLAogCQkJCUI1QTY4NDIyMEZGQUJFOTgwMEQyNDY4OSAvKiBTUUxpdGVG
aWxlU3lzdGVtLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTJCREI0QjFDNDU2RkZBMDA2NDk0REYg
LyogU1FMaXRlSURCQmFja2luZ1N0b3JlLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNldC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9jc3Mv
Q1NTRm9udEZhY2VTZXQuY3BwCmluZGV4IDVjNDAzMTNlNTljNmM0ZDNmZTBmYjI3ZWQ4MzY4ZDA2
NjYxOTQxMzYuLmU4NzY3ZTVhMmY1ODAxNzg5MzIxZjcxOWY4MTU0MDFlZjQ1MzczODggMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNldC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU2V0LmNwcApAQCAtMTA0LDkgKzEwNCw3IEBAIHZvaWQg
Q1NTRm9udEZhY2VTZXQ6OmVuc3VyZUxvY2FsRm9udEZhY2VzRm9yRmFtaWx5UmVnaXN0ZXJlZChj
b25zdCBTdHJpbmcmIGZhbWlsCiAgICAgaWYgKG1fbG9jYWxseUluc3RhbGxlZEZhY2VzTG9va3Vw
VGFibGUuY29udGFpbnMoZmFtaWx5TmFtZSkpCiAgICAgICAgIHJldHVybjsKIAotICAgIEZvbnRD
YWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPSBG
b250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXM7Ci0gICAgaWYgKG1fb3duaW5n
Rm9udFNlbGVjdG9yLT5kb2N1bWVudCgpICYmIG1fb3duaW5nRm9udFNlbGVjdG9yLT5kb2N1bWVu
dCgpLT5zZXR0aW5ncygpLnNob3VsZERpc2FsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpCi0gICAg
ICAgIGFsbG93VXNlckluc3RhbGxlZEZvbnRzID0gRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxs
ZWRGb250czo6Tm87CisgICAgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFs
bGVkRm9udHMgPSBtX293bmluZ0ZvbnRTZWxlY3Rvci0+ZG9jdW1lbnQoKSA/IG1fb3duaW5nRm9u
dFNlbGVjdG9yLT5kb2N1bWVudCgpLT5zZXR0aW5ncygpLnNob3VsZEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzKCkgOiBBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzOwogICAgIFZlY3RvcjxGb250
U2VsZWN0aW9uQ2FwYWJpbGl0aWVzPiBjYXBhYmlsaXRpZXMgPSBGb250Q2FjaGU6OnNpbmdsZXRv
bigpLmdldEZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXNJbkZhbWlseShmYW1pbHlOYW1lLCBhbGxv
d1VzZXJJbnN0YWxsZWRGb250cyk7CiAgICAgaWYgKGNhcGFiaWxpdGllcy5pc0VtcHR5KCkpCiAg
ICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAppbmRleCA3ZmQy
NWI4YWFkNWFiYzcwZGUxMDliMjQxNDYyNjQ3ZmQ3OWYwNTVkLi41OWRjMWZkM2Q0ZjA1YWFjNzk4
MGYxOTEyMGZlYzQ3NTkxOWY3NzBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5
bGVSZXNvbHZlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
CkBAIC0xNzg4LDcgKzE3ODgsNyBAQCB2b2lkIFN0eWxlUmVzb2x2ZXI6OmluaXRpYWxpemVGb250
U3R5bGUoKQogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoc3RhbmRhcmRGYW1pbHkp
OwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6ZUZyb21JZGVudGlmaWVyKENTU1Zh
bHVlTWVkaXVtKTsKICAgICBzZXRGb250U2l6ZShmb250RGVzY3JpcHRpb24sIFN0eWxlOjpmb250
U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVNZWRpdW0sIGZhbHNlLCBkb2N1bWVudCgpKSk7Ci0gICAg
Zm9udERlc2NyaXB0aW9uLnNldE1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KCFzZXR0aW5n
cygpLnNob3VsZERpc2FsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpOworICAgIGZvbnREZXNjcmlw
dGlvbi5zZXRTaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cyhzZXR0aW5ncygpLnNob3VsZEFs
bG93VXNlckluc3RhbGxlZEZvbnRzKCkpOwogICAgIHNldEZvbnREZXNjcmlwdGlvbihmb250RGVz
Y3JpcHRpb24pOwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdz
LnlhbWwgYi9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKaW5kZXggOTk1ZWI4ZDFj
YzQwOWRkOWRiOWZjMWM3YjlmZmYyYTgzNTg2NDFjYS4uMGIwM2NhN2Q3YWY5NWZjZWFmMjE2MTVi
OGYyYTU2MGM0YmQ3OThiYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5n
cy55YW1sCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbApAQCAtNjYxLDgg
KzY2MSw5IEBAIHN0b3JhZ2VCbG9ja2luZ1BvbGljeToKICAgaW5pdGlhbDogU2VjdXJpdHlPcmln
aW46OkFsbG93QWxsU3RvcmFnZQogICBvbkNoYW5nZTogc3RvcmFnZUJsb2NraW5nUG9saWN5Q2hh
bmdlZAogCi1zaG91bGREaXNhbGxvd1VzZXJJbnN0YWxsZWRGb250czoKLSAgaW5pdGlhbDogZmFs
c2UKK3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzOgorICB0eXBlOiBBbGxvd1VzZXJJbnN0
YWxsZWRGb250cworICBpbml0aWFsOiBBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzCiAgIG9u
Q2hhbmdlOiBzZXROZWVkc1JlY2FsY1N0eWxlSW5BbGxGcmFtZXMKIAogIyBPbmx5IHNldCBieSBM
YXlvdXQgVGVzdHMuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250Q2FjaGUuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNo
ZS5oCmluZGV4IDRhZjQ3ZDRiMzYzOTk0NzU4MmM3ZTA4NDgyYTlhNWM3NzJhNGRlNDEuLjVjZDdi
NjhmZGZiYjU5NzliODIwOGY4OGVjZWMzZjZkZThiNjg1ZTEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oCkBAIC00MSw3ICs0MSw3IEBACiAjaW5jbHVk
ZSA8d3RmL3RleHQvV1RGU3RyaW5nLmg+CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSNpbmNsdWRl
IDxDb3JlVGV4dC9DVEZvbnQuaD4KKyNpbmNsdWRlICJGb250Q2FjaGVDb3JlVGV4dC5oIgogI2Vu
ZGlmCiAKICNpZiBPUyhXSU5ET1dTKQpAQCAtMTI0LDcgKzEyNCw4IEBAIHN0cnVjdCBGb250RGVz
Y3JpcHRpb25LZXkgewogcHJpdmF0ZToKICAgICBzdGF0aWMgc3RkOjphcnJheTx1bnNpZ25lZCwg
Mj4gbWFrZUZsYWdzS2V5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCiAgICAg
ewotICAgICAgICB1bnNpZ25lZCBmaXJzdCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlw
dGlvbi5zY3JpcHQoKSkgPDwgMTMKKyAgICAgICAgdW5zaWduZWQgZmlyc3QgPSBzdGF0aWNfY2Fz
dDx1bnNpZ25lZD4oZGVzY3JpcHRpb24uc2NyaXB0KCkpIDw8IDE0CisgICAgICAgICAgICB8IHN0
YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRG
b250cygpKSA8PCAxMwogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3Jp
cHRpb24uZm9udFN0eWxlQXhpcygpID09IEZvbnRTdHlsZUF4aXM6OnNsbnQpIDw8IDEyCiAgICAg
ICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5vcHRpY2FsU2l6aW5n
KCkpIDw8IDExCiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlv
bi50ZXh0UmVuZGVyaW5nTW9kZSgpKSA8PCA5CkBAIC0yMDAsMTAgKzIwMSw2IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgSU11bHRpTGFuZ3VhZ2UqIGdldE11bHRpTGFuZ3VhZ2VJbnRlcmZhY2UoKTsK
ICNlbmRpZgogCi0gICAgZW51bSBjbGFzcyBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyB7Ci0gICAg
ICAgIFllcywKLSAgICAgICAgTm8KLSAgICB9OwogICAgIC8vIFRoaXMgZnVuY3Rpb24gZXhpc3Rz
IHNvIENTU0ZvbnRTZWxlY3RvciBjYW4gaGF2ZSBhIHVuaWZpZWQgbm90aW9uIG9mIHByZWluc3Rh
bGxlZCBmb250cyBhbmQgQGZvbnQtZmFjZS4KICAgICAvLyBJdCBjb21lcyBpbnRvIHBsYXkgd2hl
biB5b3UgY3JlYXRlIGFuIEBmb250LWZhY2Ugd2hpY2ggc2hhcmVzIGEgZmFtaWx5IG5hbWUgYXMg
YSBwcmVpbnN0YWxsZWQgZm9udC4KICAgICBWZWN0b3I8Rm9udFNlbGVjdGlvbkNhcGFiaWxpdGll
cz4gZ2V0Rm9udFNlbGVjdGlvbkNhcGFiaWxpdGllc0luRmFtaWx5KGNvbnN0IEF0b21pY1N0cmlu
ZyYsIEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKQEAgLTI3MCwzMiArMjY3LDcgQEAgaW5saW5l
IHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQ
bGF0Zm9ybURhdGFGb3JUZXMKICAgICByZXR1cm4gY3JlYXRlRm9udFBsYXRmb3JtRGF0YShmb250
RGVzY3JpcHRpb24sIGZhbWlseSwgbnVsbHB0ciwgbnVsbHB0ciwgeyB9KTsKIH0KIAotI2lmIFBM
QVRGT1JNKENPQ09BKQotCi1zdHJ1Y3QgU3ludGhlc2lzUGFpciB7Ci0gICAgU3ludGhlc2lzUGFp
cihib29sIG5lZWRzU3ludGhldGljQm9sZCwgYm9vbCBuZWVkc1N5bnRoZXRpY09ibGlxdWUpCi0g
ICAgICAgIDogbmVlZHNTeW50aGV0aWNCb2xkKG5lZWRzU3ludGhldGljQm9sZCkKLSAgICAgICAg
LCBuZWVkc1N5bnRoZXRpY09ibGlxdWUobmVlZHNTeW50aGV0aWNPYmxpcXVlKQotICAgIHsKLSAg
ICB9Ci0KLSAgICBzdGQ6OnBhaXI8Ym9vbCwgYm9vbD4gYm9sZE9ibGlxdWVQYWlyKCkgY29uc3QK
LSAgICB7Ci0gICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihuZWVkc1N5bnRoZXRpY0JvbGQs
IG5lZWRzU3ludGhldGljT2JsaXF1ZSk7Ci0gICAgfQotCi0gICAgYm9vbCBuZWVkc1N5bnRoZXRp
Y0JvbGQ7Ci0gICAgYm9vbCBuZWVkc1N5bnRoZXRpY09ibGlxdWU7Ci19OwotCi1SZXRhaW5QdHI8
Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiwgY29uc3QgRm9udERlc2Ny
aXB0aW9uJiwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0dXJlcywgY29u
c3QgRm9udFZhcmlhbnRTZXR0aW5ncyogZm9udEZhY2VWYXJpYW50U2V0dGluZ3MsIEZvbnRTZWxl
Y3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGZsb2F0IHNp
emUsIGJvb2wgYXBwbHlXZWlnaHRXaWR0aFNsb3BlVmFyaWF0aW9ucyA9IHRydWUpOwotU3ludGhl
c2lzUGFpciBjb21wdXRlTmVjZXNzYXJ5U3ludGhlc2lzKENURm9udFJlZiwgY29uc3QgRm9udERl
c2NyaXB0aW9uJiwgYm9vbCBpc1BsYXRmb3JtRm9udCA9IGZhbHNlKTsKLVJldGFpblB0cjxDVEZv
bnRSZWY+IHBsYXRmb3JtRm9udFdpdGhGYW1pbHlTcGVjaWFsQ2FzZShjb25zdCBBdG9taWNTdHJp
bmcmIGZhbWlseSwgRm9udFNlbGVjdGlvblJlcXVlc3QsIGZsb2F0IHNpemUpOwotUmV0YWluUHRy
PENURm9udFJlZj4gcGxhdGZvcm1Gb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZh
bWlseSwgRm9udFNlbGVjdGlvblJlcXVlc3QsIFRleHRSZW5kZXJpbmdNb2RlLCBmbG9hdCBzaXpl
KTsKLWJvb2wgcmVxdWlyZXNDdXN0b21GYWxsYmFja0ZvbnQoVUNoYXIzMiBjaGFyYWN0ZXIpOwot
Rm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXNGb3JGb250RGVzY3JpcHRvcihD
VEZvbnREZXNjcmlwdG9yUmVmKTsKLQotI2Vsc2UKKyNpZiAhUExBVEZPUk0oQ09DT0EpCiAKIGlu
bGluZSB2b2lkIEZvbnRDYWNoZTo6cGxhdGZvcm1QdXJnZUluYWN0aXZlRm9udERhdGEoKQogewpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0
aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlv
bi5jcHAKaW5kZXggZGY0YTljY2I1ZGI0OTA3NjhkMGUxM2RjNjJmZWM1YzUwM2ZhYjZlOC4uM2Q1
ZGQzNTcxNDYwNzdiMjhhZTUyM2UzYTMzZTI3YmZkMjQ1NjlhYyAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCkBAIC04MCw3
ICs4MCw3IEBAIEZvbnREZXNjcmlwdGlvbjo6Rm9udERlc2NyaXB0aW9uKCkKICAgICAsIG1fdmFy
aWFudEVhc3RBc2lhblJ1Ynkoc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KEZvbnRWYXJpYW50RWFzdEFz
aWFuUnVieTo6Tm9ybWFsKSkKICAgICAsIG1fb3B0aWNhbFNpemluZyhzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oRm9udE9wdGljYWxTaXppbmc6OkVuYWJsZWQpKQogICAgICwgbV9mb250U3R5bGVBeGlz
KEZvbnRDYXNjYWRlRGVzY3JpcHRpb246OmluaXRpYWxGb250U3R5bGVBeGlzKCkgPT0gRm9udFN0
eWxlQXhpczo6aXRhbCkKLSAgICAsIG1fbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQodHJ1
ZSkKKyAgICAsIG1fc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoc3RhdGljX2Nhc3Q8dW5z
aWduZWQ+KEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXMpKQogewogfQogCmRpZmYgLS1naXQg
YS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uaCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCmluZGV4IDhi
OGZhMjI1MDNlMmM1MTA1MWJkZDg4YWJkYmM1MGE5ZjVlYmRhOWEuLjE1YjRhZjY5NGYzOWZmOWFh
M2NmZWEyZDI4MWY5MDg1Y2U1ZjdiNDIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oCkBAIC0xMTQsNyArMTE0LDcgQEAgcHVibGlj
OgogICAgIH0KICAgICBGb250T3B0aWNhbFNpemluZyBvcHRpY2FsU2l6aW5nKCkgY29uc3QgeyBy
ZXR1cm4gc3RhdGljX2Nhc3Q8Rm9udE9wdGljYWxTaXppbmc+KG1fb3B0aWNhbFNpemluZyk7IH0K
ICAgICBGb250U3R5bGVBeGlzIGZvbnRTdHlsZUF4aXMoKSBjb25zdCB7IHJldHVybiBtX2ZvbnRT
dHlsZUF4aXMgPyBGb250U3R5bGVBeGlzOjppdGFsIDogRm9udFN0eWxlQXhpczo6c2xudDsgfQot
ICAgIGJvb2wgbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQoKSBjb25zdCB7IHJldHVybiBt
X21heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250OyB9CisgICAgQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMgc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSBjb25zdCB7IHJldHVybiBzdGF0
aWNfY2FzdDxBbGxvd1VzZXJJbnN0YWxsZWRGb250cz4obV9zaG91bGRBbGxvd1VzZXJJbnN0YWxs
ZWRGb250cyk7IH0KIAogICAgIHZvaWQgc2V0Q29tcHV0ZWRTaXplKGZsb2F0IHMpIHsgbV9jb21w
dXRlZFNpemUgPSBjbGFtcFRvRmxvYXQocyk7IH0KICAgICB2b2lkIHNldEl0YWxpYyhGb250U2Vs
ZWN0aW9uVmFsdWUgaXRhbGljKSB7IG1fZm9udFNlbGVjdGlvblJlcXVlc3Quc2xvcGUgPSBpdGFs
aWM7IH0KQEAgLTE0OSw3ICsxNDksNyBAQCBwdWJsaWM6CiAgICAgdm9pZCBzZXRWYXJpYW50RWFz
dEFzaWFuUnVieShGb250VmFyaWFudEVhc3RBc2lhblJ1YnkgdmFyaWFudCkgeyBtX3ZhcmlhbnRF
YXN0QXNpYW5SdWJ5ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHZhcmlhbnQpOyB9CiAgICAgdm9p
ZCBzZXRPcHRpY2FsU2l6aW5nKEZvbnRPcHRpY2FsU2l6aW5nIHNpemluZykgeyBtX29wdGljYWxT
aXppbmcgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oc2l6aW5nKTsgfQogICAgIHZvaWQgc2V0Rm9u
dFN0eWxlQXhpcyhGb250U3R5bGVBeGlzIGF4aXMpIHsgbV9mb250U3R5bGVBeGlzID0gYXhpcyA9
PSBGb250U3R5bGVBeGlzOjppdGFsOyB9Ci0gICAgdm9pZCBzZXRNYXlSZXByZXNlbnRVc2VySW5z
dGFsbGVkRm9udChib29sIG1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KSB7IG1fbWF5UmVw
cmVzZW50VXNlckluc3RhbGxlZEZvbnQgPSBtYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udDsg
fQorICAgIHZvaWQgc2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoQWxsb3dVc2VySW5z
dGFsbGVkRm9udHMgc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpIHsgbV9zaG91bGRBbGxv
d1VzZXJJbnN0YWxsZWRGb250cyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzaG91bGRBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyk7IH0KIAogICAgIHN0YXRpYyB2b2lkIGludmFsaWRhdGVDYWNoZXMo
KTsKIApAQCAtMTg1LDcgKzE4NSw3IEBAIHByaXZhdGU6CiAgICAgdW5zaWduZWQgbV92YXJpYW50
RWFzdEFzaWFuUnVieSA6IDE7IC8vIEZvbnRWYXJpYW50RWFzdEFzaWFuUnVieQogICAgIHVuc2ln
bmVkIG1fb3B0aWNhbFNpemluZyA6IDE7IC8vIEZvbnRPcHRpY2FsU2l6aW5nCiAgICAgdW5zaWdu
ZWQgbV9mb250U3R5bGVBeGlzIDogMTsgLy8gV2hldGhlciAiZm9udC1zdHlsZTogaXRhbGljIiBv
ciAiZm9udC1zdHlsZTogb2JsaXF1ZSAyMGRlZyIgd2FzIHNwZWNpZmllZAotICAgIHVuc2lnbmVk
IG1fbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQgOiAxOyAvLyBJZiB0aGlzIGRlc2NyaXB0
aW9uIGlzIGFsbG93ZWQgdG8gbWF0Y2ggYSB1c2VyLWluc3RhbGxlZCBmb250CisgICAgdW5zaWdu
ZWQgbV9zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cyA6IDE7IC8vIElmIHRoaXMgZGVzY3Jp
cHRpb24gaXMgYWxsb3dlZCB0byBtYXRjaCBhIHVzZXItaW5zdGFsbGVkIGZvbnQKIH07CiAKIGlu
bGluZSBib29sIEZvbnREZXNjcmlwdGlvbjo6b3BlcmF0b3I9PShjb25zdCBGb250RGVzY3JpcHRp
b24mIG90aGVyKSBjb25zdApAQCAtMjIwLDcgKzIyMCw3IEBAIGlubGluZSBib29sIEZvbnREZXNj
cmlwdGlvbjo6b3BlcmF0b3I9PShjb25zdCBGb250RGVzY3JpcHRpb24mIG90aGVyKSBjb25zdAog
ICAgICAgICAmJiBtX3ZhcmlhbnRFYXN0QXNpYW5SdWJ5ID09IG90aGVyLm1fdmFyaWFudEVhc3RB
c2lhblJ1YnkKICAgICAgICAgJiYgbV9vcHRpY2FsU2l6aW5nID09IG90aGVyLm1fb3B0aWNhbFNp
emluZwogICAgICAgICAmJiBtX2ZvbnRTdHlsZUF4aXMgPT0gb3RoZXIubV9mb250U3R5bGVBeGlz
Ci0gICAgICAgICYmIG1fbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQgPT0gb3RoZXIubV9t
YXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udDsKKyAgICAgICAgJiYgbV9zaG91bGRBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyA9PSBvdGhlci5tX3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRz
OwogfQogCiAvLyBGSVhNRTogTW92ZSB0byBhIGZpbGUgb2YgaXRzIG93bi4KZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNv
cmVUZXh0LmNwcAppbmRleCBjZTcwMzc0MTUwNjllMDczMTNhYjk4YWQ5NTM3MjE2MGFkOWRiNmYz
Li5hN2YwYzhkMTRhNjQwODQ3OTc5MWFjYTgwZWMzZjhhODRjYTdkZjI1IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5j
cHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuY3BwCkBAIC04MzMsNyArODMzLDcgQEAgcHVibGljOgogI2lmICFDQU5fRElTQUxM
T1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKICAgICBzdGF0aWMgRm9udERhdGFiYXNlJiBzaW5nbGV0
b24oKQogICAgIHsKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREYXRhYmFzZT4g
ZGF0YWJhc2UoRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzKTsKKyAgICAg
ICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREYXRhYmFzZT4gZGF0YWJhc2UoQWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHM6Olllcyk7CiAgICAgICAgIHJldHVybiBkYXRhYmFzZTsKICAgICB9CiAj
ZW5kaWYKQEAgLTg0MSw3ICs4NDEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEZvbnREYXRhYmFz
ZSYgc2luZ2xldG9uQWxsb3dpbmdVc2VySW5zdGFsbGVkRm9udHMoKQogICAgIHsKICNpZiBDQU5f
RElTQUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJv
eWVkPEZvbnREYXRhYmFzZT4gZGF0YWJhc2UoRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRG
b250czo6WWVzKTsKKyAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREYXRhYmFzZT4g
ZGF0YWJhc2UoQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Olllcyk7CiAgICAgICAgIHJldHVybiBk
YXRhYmFzZTsKICNlbHNlCiAgICAgICAgIHJldHVybiBzaW5nbGV0b24oKTsKQEAgLTg1MSw3ICs4
NTEsNyBAQCBwdWJsaWM6CiAgICAgc3RhdGljIEZvbnREYXRhYmFzZSYgc2luZ2xldG9uRGlzYWxs
b3dpbmdVc2VySW5zdGFsbGVkRm9udHMoKQogICAgIHsKICNpZiBDQU5fRElTQUxMT1dfVVNFUl9J
TlNUQUxMRURfRk9OVFMKLSAgICAgICAgc3RhdGljIE5ldmVyRGVzdHJveWVkPEZvbnREYXRhYmFz
ZT4gZGF0YWJhc2UoRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pOworICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFzZShBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250czo6Tm8pOwogICAgICAgICByZXR1cm4gZGF0YWJhc2U7CiAjZWxzZQog
ICAgICAgICByZXR1cm4gc2luZ2xldG9uKCk7CkBAIC05MDgsMjEgKzkwOCwxMiBAQCBwdWJsaWM6
CiAgICAgICAgIGF1dG8gZm9sZGVkID0gZmFtaWx5TmFtZS5mb2xkQ2FzZSgpOwogICAgICAgICBy
ZXR1cm4gbV9mYW1pbHlOYW1lVG9Gb250RGVzY3JpcHRvcnMuZW5zdXJlKGZvbGRlZCwgWyZdIHsK
ICAgICAgICAgICAgIGF1dG8gZmFtaWx5TmFtZVN0cmluZyA9IGZvbGRlZC5jcmVhdGVDRlN0cmlu
ZygpOwotICAgICAgICAgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gYXR0cmlidXRlczsK
LSNpZiBDQU5fRElTQUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKLSAgICAgICAgICAgIGlmICht
X2FsbG93VXNlckluc3RhbGxlZEZvbnRzID09IEZvbnRDYWNoZTo6QWxsb3dVc2VySW5zdGFsbGVk
Rm9udHM6Ok5vKSB7Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsga0NURm9u
dEZhbWlseU5hbWVBdHRyaWJ1dGUsIGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlIH07Ci0g
ICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1tdID0geyBmYW1pbHlOYW1lU3RyaW5nLmdl
dCgpLCBrQ0ZCb29sZWFuRmFsc2UgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRv
cHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVz
LCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3Ms
ICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9IGVsc2UK
LSNlbmRpZgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIENGVHlwZVJlZiBrZXlzW10g
PSB7IGtDVEZvbnRGYW1pbHlOYW1lQXR0cmlidXRlIH07Ci0gICAgICAgICAgICAgICAgQ0ZUeXBl
UmVmIHZhbHVlc1tdID0geyBmYW1pbHlOYW1lU3RyaW5nLmdldCgpIH07Ci0gICAgICAgICAgICAg
ICAgYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChrZXlzKSwgJmtDRlR5cGVEaWN0
aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwot
ICAgICAgICAgICAgfQorICAgICAgICAgICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRp
Y3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGlj
dGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsK
KyAgICAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMuZ2V0KCksIGtDVEZv
bnRGYW1pbHlOYW1lQXR0cmlidXRlLCBmYW1pbHlOYW1lU3RyaW5nLmdldCgpKTsKKyAgICAgICAg
ICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoYXR0cmlidXRlcy5nZXQoKSwg
bV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CiAgICAgICAgICAgICBhdXRvIGZvbnREZXNjcmlw
dG9yVG9NYXRjaCA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRyaWJ1dGVz
KGF0dHJpYnV0ZXMuZ2V0KCkpKTsKLSAgICAgICAgICAgIGlmIChhdXRvIG1hdGNoZXMgPSBhZG9w
dENGKENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9ycyhmb250RGVz
Y3JpcHRvclRvTWF0Y2guZ2V0KCksIG51bGxwdHIpKSkgeworICAgICAgICAgICAgUmV0YWluUHRy
PENGU2V0UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVzID0gbWFuZGF0b3J5QXR0cmlidXRlc0ZvclVz
ZXJJbnN0YWxsZWRGb250cyhtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKKyAgICAgICAgICAg
IGlmIChhdXRvIG1hdGNoZXMgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGlu
Z0ZvbnREZXNjcmlwdG9ycyhmb250RGVzY3JpcHRvclRvTWF0Y2guZ2V0KCksIG1hbmRhdG9yeUF0
dHJpYnV0ZXMuZ2V0KCkpKSkgewogICAgICAgICAgICAgICAgIGF1dG8gY291bnQgPSBDRkFycmF5
R2V0Q291bnQobWF0Y2hlcy5nZXQoKSk7CiAgICAgICAgICAgICAgICAgVmVjdG9yPEluc3RhbGxl
ZEZvbnQ+IHJlc3VsdDsKICAgICAgICAgICAgICAgICByZXN1bHQucmVzZXJ2ZUluaXRpYWxDYXBh
Y2l0eShjb3VudCk7CkBAIC05NDYsMjEgKzkzNywxMyBAQCBwdWJsaWM6CiAjZWxzZQogICAgICAg
ICAgICAgQ0ZTdHJpbmdSZWYgbmFtZUF0dHJpYnV0ZSA9IGtDVEZvbnROYW1lQXR0cmlidXRlOwog
I2VuZGlmCi0gICAgICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBhdHRyaWJ1dGVz
OwotI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUwotICAgICAgICAgICAgaWYg
KG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxs
ZWRGb250czo6Tm8pIHsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RG
b250RW5hYmxlZEF0dHJpYnV0ZSwgbmFtZUF0dHJpYnV0ZSwga0NURm9udFVzZXJJbnN0YWxsZWRB
dHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGtDRkJv
b2xlYW5UcnVlLCBwb3N0U2NyaXB0TmFtZVN0cmluZy5nZXQoKSwga0NGQm9vbGVhbkZhbHNlIH07
Ci0gICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChrZXlz
KSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1
ZUNhbGxCYWNrcykpOwotICAgICAgICAgICAgfSBlbHNlCi0jZW5kaWYKLSAgICAgICAgICAgIHsK
LSAgICAgICAgICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RW5hYmxlZEF0dHJp
YnV0ZSwgbmFtZUF0dHJpYnV0ZSB9OwotICAgICAgICAgICAgICAgIENGVHlwZVJlZiB2YWx1ZXNb
XSA9IHsga0NGQm9vbGVhblRydWUsIHBvc3RTY3JpcHROYW1lU3RyaW5nLmdldCgpIH07Ci0gICAg
ICAgICAgICAgICAgYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFs
bG9jYXRvckRlZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChrZXlzKSwgJmtD
RlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxC
YWNrcykpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgYXV0byBhdHRyaWJ1dGVzID0gYWRv
cHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZr
Q0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxs
QmFja3MpKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMuZ2V0
KCksIGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgICAg
ICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLmdldCgpLCBuYW1lQXR0cmlidXRlLCBw
b3N0U2NyaXB0TmFtZVN0cmluZy5nZXQoKSk7CisgICAgICAgICAgICBhZGRBdHRyaWJ1dGVzRm9y
VXNlckluc3RhbGxlZEZvbnRzKGF0dHJpYnV0ZXMuZ2V0KCksIG1fYWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMpOwogICAgICAgICAgICAgYXV0byBmb250RGVzY3JpcHRvclRvTWF0Y2ggPSBhZG9wdENG
KENURm9udERlc2NyaXB0b3JDcmVhdGVXaXRoQXR0cmlidXRlcyhhdHRyaWJ1dGVzLmdldCgpKSk7
Ci0gICAgICAgICAgICBhdXRvIG1hdGNoID0gYWRvcHRDRihzdGF0aWNfY2FzdDxDVEZvbnREZXNj
cmlwdG9yUmVmPihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVzY3JpcHRvcihm
b250RGVzY3JpcHRvclRvTWF0Y2guZ2V0KCksIG51bGxwdHIpKSk7CisgICAgICAgICAgICBSZXRh
aW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMgPSBtYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOworICAgICAg
ICAgICAgYXV0byBtYXRjaCA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5n
Rm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3JUb01hdGNoLmdldCgpLCBtYW5kYXRvcnlBdHRy
aWJ1dGVzLmdldCgpKSk7CiAgICAgICAgICAgICByZXR1cm4gSW5zdGFsbGVkRm9udChtYXRjaC5n
ZXQoKSk7CiAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKICAgICB9CkBAIC05NzQsMTQgKzk1
NywxNCBAQCBwdWJsaWM6CiBwcml2YXRlOgogICAgIGZyaWVuZCBjbGFzcyBOZXZlckRlc3Ryb3ll
ZDxGb250RGF0YWJhc2U+OwogCi0gICAgRm9udERhdGFiYXNlKEZvbnRDYWNoZTo6QWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCisgICAgRm9udERhdGFiYXNl
KEFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNlckluc3RhbGxlZEZvbnRzKQogICAgICAg
ICA6IG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMoYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCiAg
ICAgewogICAgIH0KIAogICAgIEhhc2hNYXA8U3RyaW5nLCBJbnN0YWxsZWRGb250RmFtaWx5PiBt
X2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9yczsKICAgICBIYXNoTWFwPFN0cmluZywgSW5zdGFs
bGVkRm9udD4gbV9wb3N0U2NyaXB0TmFtZVRvRm9udERlc2NyaXB0b3JzOwotICAgIEZvbnRDYWNo
ZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHMgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250czsKKyAg
ICBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzOwogfTsK
IAogLy8gQmVjYXVzZSB0aGlzIHN0cnVjdCBob2xkcyBpbnRlcm1lZGlhdGUgdmFsdWVzIHdoaWNo
IG1heSBiZSBpbiB0aGUgY29tcHJlc3NlZCAtMSAtIDEgR1ggcmFuZ2UsIHdlIGRvbid0IHdhbnQg
dG8gdXNlIHRoZSByZWxhdGl2ZWx5IGxhcmdlCkBAIC0xMTkwLDcgKzExNzMsNyBAQCBzdHJ1Y3Qg
Rm9udExvb2t1cCB7CiAgICAgYm9vbCBjcmVhdGVkRnJvbVBvc3RTY3JpcHROYW1lIHsgZmFsc2Ug
fTsKIH07CiAKLXN0YXRpYyBGb250TG9va3VwIHBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHko
Y29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIEZvbnRTZWxlY3Rpb25SZXF1ZXN0IHJlcXVlc3Qs
IGZsb2F0IHNpemUsIGJvb2wgbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQpCitzdGF0aWMg
Rm9udExvb2t1cCBwbGF0Zm9ybUZvbnRMb29rdXBXaXRoRmFtaWx5KGNvbnN0IEF0b21pY1N0cmlu
ZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCByZXF1ZXN0LCBmbG9hdCBzaXplLCBBbGxv
d1VzZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKIHsKICAgICBjb25z
dCBhdXRvJiB3aGl0ZWxpc3QgPSBmb250V2hpdGVsaXN0KCk7CiAgICAgaWYgKCFpc1N5c3RlbUZv
bnQoZmFtaWx5KSAmJiB3aGl0ZWxpc3Quc2l6ZSgpICYmICF3aGl0ZWxpc3QuY29udGFpbnMoZmFt
aWx5KSkKQEAgLTEyMDEsNyArMTE4NCw3IEBAIHN0YXRpYyBGb250TG9va3VwIHBsYXRmb3JtRm9u
dExvb2t1cFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIEZvbnRTCiAgICAg
Q1RGb250U3ltYm9saWNUcmFpdHMgdHJhaXRzID0gKGlzRm9udFdlaWdodEJvbGQocmVxdWVzdC53
ZWlnaHQpID8ga0NURm9udFRyYWl0Qm9sZCA6IDApIHwgKGlzSXRhbGljKHJlcXVlc3Quc2xvcGUp
ID8ga0NURm9udFRyYWl0SXRhbGljIDogMCk7CiAgICAgcmV0dXJuIHsgYWRvcHRDRihDVEZvbnRD
cmVhdGVGb3JDU1MoZmFtaWx5LnN0cmluZygpLmNyZWF0ZUNGU3RyaW5nKCkuZ2V0KCksIHN0YXRp
Y19jYXN0PGZsb2F0PihyZXF1ZXN0LndlaWdodCksIHRyYWl0cywgc2l6ZSkpIH07CiAjZWxzZQot
ICAgIGF1dG8mIGZvbnREYXRhYmFzZSA9IG1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250ID8g
Rm9udERhdGFiYXNlOjpzaW5nbGV0b25BbGxvd2luZ1VzZXJJbnN0YWxsZWRGb250cygpIDogRm9u
dERhdGFiYXNlOjpzaW5nbGV0b25EaXNhbGxvd2luZ1VzZXJJbnN0YWxsZWRGb250cygpOworICAg
IGF1dG8mIGZvbnREYXRhYmFzZSA9IGFsbG93VXNlckluc3RhbGxlZEZvbnRzID09IEFsbG93VXNl
ckluc3RhbGxlZEZvbnRzOjpZZXMgPyBGb250RGF0YWJhc2U6OnNpbmdsZXRvbkFsbG93aW5nVXNl
ckluc3RhbGxlZEZvbnRzKCkgOiBGb250RGF0YWJhc2U6OnNpbmdsZXRvbkRpc2FsbG93aW5nVXNl
ckluc3RhbGxlZEZvbnRzKCk7CiAgICAgY29uc3QgYXV0byYgZmFtaWx5Rm9udHMgPSBmb250RGF0
YWJhc2UuY29sbGVjdGlvbkZvckZhbWlseShmYW1pbHkuc3RyaW5nKCkpOwogICAgIGlmIChmYW1p
bHlGb250cy5pc0VtcHR5KCkpIHsKICAgICAgICAgLy8gVGhlIENTUyBzcGVjIHN0YXRlcyB0aGF0
IGZvbnQtZmFtaWx5IG9ubHkgYWNjZXB0cyBhIG5hbWUgb2YgYW4gYWN0dWFsIGZvbnQgZmFtaWx5
LiBIb3dldmVyLCBpbiBXZWJLaXQsIHdlIGNsYWltIHRvIGFsc28KQEAgLTEyNjUsNyArMTI0OCw3
IEBAIHN0YXRpYyBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250V2l0aEZhbWlseShjb25zdCBBdG9t
aWNTdHJpbmcmIGZhbWlseSwgY29uc3QgRm9uCiAgICAgRm9udExvb2t1cCBmb250TG9va3VwOwog
ICAgIGZvbnRMb29rdXAucmVzdWx0ID0gcGxhdGZvcm1Gb250V2l0aEZhbWlseVNwZWNpYWxDYXNl
KGZhbWlseSwgcmVxdWVzdCwgc2l6ZSk7CiAgICAgaWYgKCFmb250TG9va3VwLnJlc3VsdCkKLSAg
ICAgICAgZm9udExvb2t1cCA9IHBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkoZmFtaWx5LCBy
ZXF1ZXN0LCBzaXplLCBmb250RGVzY3JpcHRpb24ubWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZv
bnQoKSk7CisgICAgICAgIGZvbnRMb29rdXAgPSBwbGF0Zm9ybUZvbnRMb29rdXBXaXRoRmFtaWx5
KGZhbWlseSwgcmVxdWVzdCwgc2l6ZSwgZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzKCkpOwogICAgIHJldHVybiBwcmVwYXJlUGxhdGZvcm1Gb250KGZvbnRMb29r
dXAucmVzdWx0LmdldCgpLCBmb250RGVzY3JpcHRpb24sIGZvbnRGYWNlRmVhdHVyZXMsIGZvbnRG
YWNlVmFyaWFudFNldHRpbmdzLCBmb250RmFjZUNhcGFiaWxpdGllcywgc2l6ZSwgIWZvbnRMb29r
dXAuY3JlYXRlZEZyb21Qb3N0U2NyaXB0TmFtZSk7CiB9CiAKQEAgLTE0NzUsNCArMTQ1OCwzMiBA
QCBjb25zdCBBdG9taWNTdHJpbmcmIEZvbnRDYWNoZTo6cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlO
YW1lKGNvbnN0IEF0b21pY1N0cmluZyYgZgogICAgIHJldHVybiBudWxsQXRvbSgpOwogfQogCit2
b2lkIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoQ0ZNdXRhYmxlRGljdGlvbmFy
eVJlZiBhdHRyaWJ1dGVzLCBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxs
ZWRGb250cykKK3sKKyNpZiBDQU5fRElTQUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKKyAgICBp
ZiAoYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5v
KSB7CisgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMsIGtDVEZvbnRVc2Vy
SW5zdGFsbGVkQXR0cmlidXRlLCBrQ0ZCb29sZWFuRmFsc2UpOworICAgICAgICBDVEZvbnRGYWxs
YmFja09wdGlvbiBmYWxsYmFja09wdGlvbiA9IGtDVEZvbnRGYWxsYmFja09wdGlvblN5c3RlbTsK
KyAgICAgICAgYXV0byBmYWxsYmFja09wdGlvbk51bWJlciA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyU0ludDY0VHlwZSwgJmZhbGxiYWNrT3B0
aW9uKSk7CisgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMsIGtDVEZvbnRG
YWxsYmFja09wdGlvbkF0dHJpYnV0ZSwgZmFsbGJhY2tPcHRpb25OdW1iZXIuZ2V0KCkpOworICAg
IH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGF0dHJpYnV0ZXMpOworICAgIFVOVVNFRF9QQVJB
TShhbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CisjZW5kaWYKK30KKworUmV0YWluUHRyPENGU2V0
UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzIGFsbG93VXNlckluc3RhbGxlZEZvbnRzKQoreworI2lmIENBTl9ESVNBTExP
V19VU0VSX0lOU1RBTExFRF9GT05UUworICAgIGlmIChhbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9
PSBBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pIHsKKyAgICAgICAgQ0ZUeXBlUmVmIG1hbmRh
dG9yeUF0dHJpYnV0ZXNWYWx1ZXNbXSA9IHsga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGUs
IGtDVEZvbnRGYWxsYmFja09wdGlvbkF0dHJpYnV0ZSB9OworICAgICAgICByZXR1cm4gYWRvcHRD
RihDRlNldENyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBtYW5kYXRvcnlBdHRyaWJ1dGVzVmFs
dWVzLCBXVEZfQVJSQVlfTEVOR1RIKG1hbmRhdG9yeUF0dHJpYnV0ZXNWYWx1ZXMpLCAma0NGVHlw
ZVNldENhbGxCYWNrcykpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93VXNl
ckluc3RhbGxlZEZvbnRzKTsKKyNlbmRpZgorICAgIHJldHVybiBudWxscHRyOworfQorCiB9CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2Fj
aGVDb3JlVGV4dC5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dENhY2hlQ29yZVRleHQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4xM2RhNzE1Yjk2ZTU5OGJkOTU0YzI5MzBlZTFh
Yjk3NzQ5Y2ZiOWNkCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaApAQCAtMCwwICsxLDYyIEBACisvKgor
ICogQ29weXJpZ2h0IChDKSAyMDE3IEFwcGxlIEluYy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisg
KgorICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3VyY2UgYW5kIGJpbmFyeSBmb3Jtcywg
d2l0aCBvciB3aXRob3V0CisgKiBtb2RpZmljYXRpb24sIGFyZSBwZXJtaXR0ZWQgcHJvdmlkZWQg
dGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKKyAqIGFyZSBtZXQ6CisgKgorICogMS4gIFJl
ZGlzdHJpYnV0aW9ucyBvZiBzb3VyY2UgY29kZSBtdXN0IHJldGFpbiB0aGUgYWJvdmUgY29weXJp
Z2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxpc3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxv
d2luZyBkaXNjbGFpbWVyLgorICogMi4gIFJlZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBt
dXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29weXJpZ2h0CisgKiAgICAgbm90aWNlLCB0aGlzIGxp
c3Qgb2YgY29uZGl0aW9ucyBhbmQgdGhlIGZvbGxvd2luZyBkaXNjbGFpbWVyIGluIHRoZQorICog
ICAgIGRvY3VtZW50YXRpb24gYW5kL29yIG90aGVyIG1hdGVyaWFscyBwcm92aWRlZCB3aXRoIHRo
ZSBkaXN0cmlidXRpb24uCisgKiAzLiAgTmVpdGhlciB0aGUgbmFtZSBvZiBBcHBsZSBJbmMuICgi
QXBwbGUiKSBub3IgdGhlIG5hbWVzIG9mCisgKiAgICAgaXRzIGNvbnRyaWJ1dG9ycyBtYXkgYmUg
dXNlZCB0byBlbmRvcnNlIG9yIHByb21vdGUgcHJvZHVjdHMgZGVyaXZlZAorICogICAgIGZyb20g
dGhpcyBzb2Z0d2FyZSB3aXRob3V0IHNwZWNpZmljIHByaW9yIHdyaXR0ZW4gcGVybWlzc2lvbi4K
KyAqCisgKiBUSElTIFNPRlRXQVJFIElTIFBST1ZJREVEIEJZIEFQUExFIEFORCBJVFMgQ09OVFJJ
QlVUT1JTICJBUyBJUyIgQU5EIEFOWQorICogRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMs
IElOQ0xVRElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBUSEUgSU1QTElFRAorICogV0FSUkFOVElF
UyBPRiBNRVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUiBQVVJQT1NF
IEFSRQorICogRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgT1IgSVRTIENPTlRS
SUJVVE9SUyBCRSBMSUFCTEUgRk9SIEFOWQorICogRElSRUNULCBJTkRJUkVDVCwgSU5DSURFTlRB
TCwgU1BFQ0lBTCwgRVhFTVBMQVJZLCBPUiBDT05TRVFVRU5USUFMIERBTUFHRVMKKyAqIChJTkNM
VURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgUFJPQ1VSRU1FTlQgT0YgU1VCU1RJVFVURSBHT09E
UyBPUiBTRVJWSUNFUzsKKyAqIExPU1MgT0YgVVNFLCBEQVRBLCBPUiBQUk9GSVRTOyBPUiBCVVNJ
TkVTUyBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORAorICogT04gQU5ZIFRIRU9SWSBP
RiBMSUFCSUxJVFksIFdIRVRIRVIgSU4gQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9SIFRP
UlQKKyAqIChJTkNMVURJTkcgTkVHTElHRU5DRSBPUiBPVEhFUldJU0UpIEFSSVNJTkcgSU4gQU5Z
IFdBWSBPVVQgT0YgVEhFIFVTRSBPRgorICogVEhJUyBTT0ZUV0FSRSwgRVZFTiBJRiBBRFZJU0VE
IE9GIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjcHJhZ21hIG9uY2UK
KworI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgorCisjaW5jbHVkZSA8Q29yZVRleHQvQ1RG
b250Lmg+CisKK25hbWVzcGFjZSBXZWJDb3JlIHsKKworc3RydWN0IFN5bnRoZXNpc1BhaXIgewor
ICAgIFN5bnRoZXNpc1BhaXIoYm9vbCBuZWVkc1N5bnRoZXRpY0JvbGQsIGJvb2wgbmVlZHNTeW50
aGV0aWNPYmxpcXVlKQorICAgICAgICA6IG5lZWRzU3ludGhldGljQm9sZChuZWVkc1N5bnRoZXRp
Y0JvbGQpCisgICAgICAgICwgbmVlZHNTeW50aGV0aWNPYmxpcXVlKG5lZWRzU3ludGhldGljT2Js
aXF1ZSkKKyAgICB7CisgICAgfQorCisgICAgc3RkOjpwYWlyPGJvb2wsIGJvb2w+IGJvbGRPYmxp
cXVlUGFpcigpIGNvbnN0CisgICAgeworICAgICAgICByZXR1cm4gc3RkOjptYWtlX3BhaXIobmVl
ZHNTeW50aGV0aWNCb2xkLCBuZWVkc1N5bnRoZXRpY09ibGlxdWUpOworICAgIH0KKworICAgIGJv
b2wgbmVlZHNTeW50aGV0aWNCb2xkOworICAgIGJvb2wgbmVlZHNTeW50aGV0aWNPYmxpcXVlOwor
fTsKKworUmV0YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRmb3JtRm9udChDVEZvbnRSZWYs
IGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZvbnRG
YWNlRmVhdHVyZXMsIGNvbnN0IEZvbnRWYXJpYW50U2V0dGluZ3MqIGZvbnRGYWNlVmFyaWFudFNl
dHRpbmdzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJp
bGl0aWVzLCBmbG9hdCBzaXplLCBib29sIGFwcGx5V2VpZ2h0V2lkdGhTbG9wZVZhcmlhdGlvbnMg
PSB0cnVlKTsKK1N5bnRoZXNpc1BhaXIgY29tcHV0ZU5lY2Vzc2FyeVN5bnRoZXNpcyhDVEZvbnRS
ZWYsIGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGJvb2wgaXNQbGF0Zm9ybUZvbnQgPSBmYWxzZSk7
CitSZXRhaW5QdHI8Q1RGb250UmVmPiBwbGF0Zm9ybUZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2Uo
Y29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIEZvbnRTZWxlY3Rpb25SZXF1ZXN0LCBmbG9hdCBz
aXplKTsKK1JldGFpblB0cjxDVEZvbnRSZWY+IHBsYXRmb3JtRm9udFdpdGhGYW1pbHkoY29uc3Qg
QXRvbWljU3RyaW5nJiBmYW1pbHksIEZvbnRTZWxlY3Rpb25SZXF1ZXN0LCBUZXh0UmVuZGVyaW5n
TW9kZSwgZmxvYXQgc2l6ZSk7Citib29sIHJlcXVpcmVzQ3VzdG9tRmFsbGJhY2tGb250KFVDaGFy
MzIgY2hhcmFjdGVyKTsKK0ZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzRm9y
Rm9udERlc2NyaXB0b3IoQ1RGb250RGVzY3JpcHRvclJlZik7Cit2b2lkIGFkZEF0dHJpYnV0ZXNG
b3JVc2VySW5zdGFsbGVkRm9udHMoQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBB
bGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CitSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0
dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOwor
Cit9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9u
dEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKaW5kZXggMDY5YTc5NTJiOWE1MzNjMDhk
NDljNDk5OTI0NTI1MzY4MjgyZjQxZi4uMDRhODAxZDc3ZTk1OTk2MGRjY2M5YjczMDdiMmYwOGMy
NTkzOTdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcApAQCAtMjIsNiArMjIsNyBA
QAogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCIKIAogI2luY2x1ZGUgIkZvbnRD
YWNoZS5oIgorI2luY2x1ZGUgIkZvbnRDYWNoZUNvcmVUZXh0LmgiCiAjaW5jbHVkZSAiRm9udERl
c2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFBsYXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIlNo
YXJlZEJ1ZmZlci5oIgpAQCAtMzQsMTAgKzM1LDE3IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6
On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCkgPSBkZWZhdWx0OwogCiBGb250UGxhdGZvcm1EYXRh
IEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2Ny
aXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wgYm9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZv
bnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVhdHVyZXMsIGNvbnN0IEZvbnRWYXJpYW50U2V0
dGluZ3MmIGZvbnRGYWNlVmFyaWFudFNldHRpbmdzLCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2Fw
YWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVzKQogeworICAgIGF1dG8gYXR0cmlidXRlcyA9
IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAw
LCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVl
Q2FsbEJhY2tzKSk7CisgICAgYWRkQXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhhdHRy
aWJ1dGVzLmdldCgpLCBmb250RGVzY3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9u
dHMoKSk7CisgICAgYXV0byBtb2RpZmllZEZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnRE
ZXNjcmlwdG9yQ3JlYXRlQ29weVdpdGhBdHRyaWJ1dGVzKG1fZm9udERlc2NyaXB0b3IuZ2V0KCks
IGF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0
dHJpYnV0ZXMgPSBtYW5kYXRvcnlBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKGZvbnRE
ZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKKyAgICBhdXRvIG1h
dGNoaW5nRm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRj
aGluZ0ZvbnREZXNjcmlwdG9yKG1vZGlmaWVkRm9udERlc2NyaXB0b3IuZ2V0KCksIG1hbmRhdG9y
eUF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBBU1NFUlQobWF0Y2hpbmdGb250RGVzY3JpcHRvcik7
CisKICAgICBpbnQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpOwog
ICAgIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiA9IGZvbnREZXNjcmlwdGlvbi5vcmllbnRh
dGlvbigpOwogICAgIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50ID0gZm9udERlc2NyaXB0
aW9uLndpZHRoVmFyaWFudCgpOwotICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IGZvbnQgPSBhZG9w
dENGKENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcihtX2ZvbnREZXNjcmlwdG9yLmdldCgp
LCBzaXplLCBudWxscHRyKSk7CisgICAgUmV0YWluUHRyPENURm9udFJlZj4gZm9udCA9IGFkb3B0
Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNjcmlwdG9yKG1hdGNoaW5nRm9udERlc2NyaXB0b3Iu
Z2V0KCksIHNpemUsIG51bGxwdHIpKTsKICAgICBmb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChm
b250LmdldCgpLCBmb250RGVzY3JpcHRpb24sICZmb250RmFjZUZlYXR1cmVzLCAmZm9udEZhY2VW
YXJpYW50U2V0dGluZ3MsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBmb250RGVzY3JpcHRpb24uY29t
cHV0ZWRTaXplKCkpOwogICAgIEFTU0VSVChmb250KTsKICAgICByZXR1cm4gRm9udFBsYXRmb3Jt
RGF0YShmb250LmdldCgpLCBzaXplLCBib2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uLCB3aWR0aFZh
cmlhbnQsIGZvbnREZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpKTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oCmluZGV4IGRmZGU1YmY2YTQ2MzQ0M2MyNWRhNTZi
NWM5NTU5NGJjMmQxNTFmMTkuLjQxMmI5NmZhMmMyYmU3YzQ1NWJkYzk4ZWY5NDJlOTZlOGRjZGM1
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaApAQCAtMSw1ICsx
LDUgQEAKIC8qCi0gKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYgQXBwbGUgSW5jLiAgQWxsIHJp
Z2h0cyByZXNlcnZlZC4KKyAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiwgMjAxNyBBcHBsZSBJ
bmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgogICoKICAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2Ug
aW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAogICogbW9kaWZpY2F0
aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25z
CkBAIC0zNjIsNCArMzYyLDkgQEAgZW51bSBjbGFzcyBGb250U3R5bGVBeGlzIHsKICAgICBpdGFs
CiB9OwogCitlbnVtIGNsYXNzIEFsbG93VXNlckluc3RhbGxlZEZvbnRzIHsKKyAgICBZZXMsCisg
ICAgTm8KK307CisKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVz
b2x2ZUZvckRvY3VtZW50LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZv
ckRvY3VtZW50LmNwcAppbmRleCBjYmY2NzIzNDI2OGY0YzM3NzBiZmYzZWEwOTVmOTk4NzMyMmQ0
MTJmLi5jYTk2NjcwZTIzOGVhZDJjNGZjYjA0YzAyMjdkYjU2ZWVjMzBkM2ZlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKKysrIGIv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCkBAIC0xMDks
NyArMTA5LDcgQEAgUmVuZGVyU3R5bGUgcmVzb2x2ZUZvckRvY3VtZW50KGNvbnN0IERvY3VtZW50
JiBkb2N1bWVudCkKICAgICBmb250RGVzY3JpcHRpb24uc2V0TG9jYWxlKGRvY3VtZW50LmNvbnRl
bnRMYW5ndWFnZSgpKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0UmVuZGVyaW5nTW9kZShzZXR0
aW5ncy5mb250UmVuZGVyaW5nTW9kZSgpKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0T25lRmFt
aWx5KHN0YW5kYXJkRmFtaWx5KTsKLSAgICBmb250RGVzY3JpcHRpb24uc2V0TWF5UmVwcmVzZW50
VXNlckluc3RhbGxlZEZvbnQoIXNldHRpbmdzLnNob3VsZERpc2FsbG93VXNlckluc3RhbGxlZEZv
bnRzKCkpOworICAgIGZvbnREZXNjcmlwdGlvbi5zZXRTaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRG
b250cyhzZXR0aW5ncy5zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKIAogICAgIGZv
bnREZXNjcmlwdGlvbi5zZXRLZXl3b3JkU2l6ZUZyb21JZGVudGlmaWVyKENTU1ZhbHVlTWVkaXVt
KTsKICAgICBpbnQgc2l6ZSA9IGZvbnRTaXplRm9yS2V5d29yZChDU1NWYWx1ZU1lZGl1bSwgZmFs
c2UsIGRvY3VtZW50KTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZl
cmVuY2VzLnlhbWwgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmlu
ZGV4IDFmNGI5ZDk1NWRhY2ZhNThhYjM3MmNmZjc2MDU0Mzc5ZThiNjM3OWMuLmFhNDUwZTNkMTcz
MzUyNGZkZjBmM2FmYjkwYTI0ODk4NGQ1ZDZiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQv
U2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2Vi
UHJlZmVyZW5jZXMueWFtbApAQCAtMTAzNyw2ICsxMDM3LDcgQEAgVmlzaWJsZURlYnVnT3Zlcmxh
eVJlZ2lvbnM6CiBTaG91bGREaXNhbGxvd1VzZXJJbnN0YWxsZWRGb250czoKICAgdHlwZTogYm9v
bAogICBkZWZhdWx0VmFsdWU6IGZhbHNlCisgIHdlYmNvcmVCaW5kaW5nOiBjdXN0b20KIAogCiAj
IEZvciBleHBlcmltZW50YWwgZmVhdHVyZXM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dl
YlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9X
ZWJQYWdlL1dlYlBhZ2UuY3BwCmluZGV4IGMzMDJjNTk0M2Y3YzJkZTdmMGMyZmYzZjM4ZjI3OWVi
M2E0YzY1NGIuLjdhNWRmNmM2ZWJmODk4ZjM4NmQ5NmMyYzE4M2EyOWM3ZmQxNmQxZDMgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBi
L1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMDYyLDYg
KzMwNjIsNyBAQCB2b2lkIFdlYlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZl
cmVuY2VzU3RvcmUmIHN0b3JlKQogICAgIHNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGlj
eShzdGF0aWNfY2FzdDxTZWN1cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5PihzdG9y
ZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5n
UG9saWN5S2V5KCkpKSk7CiAgICAgc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKHN0YXRpY19j
YXN0PFdlYkNvcmU6OkZyYW1lRmxhdHRlbmluZz4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXko
V2ViUHJlZmVyZW5jZXNLZXk6OmZyYW1lRmxhdHRlbmluZ0tleSgpKSkpOwogICAgIHNldHRpbmdz
LnNldEVkaXRhYmxlTGlua0JlaGF2aW9yKHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRhYmxlTGlu
a0JlaGF2aW9yPihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
ZWRpdGFibGVMaW5rQmVoYXZpb3JLZXkoKSkpKTsKKyAgICBzZXR0aW5ncy5zZXRTaG91bGRBbGxv
d1VzZXJJbnN0YWxsZWRGb250cyhzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5j
ZXNLZXk6OnNob3VsZERpc2FsbG93VXNlckluc3RhbGxlZEZvbnRzS2V5KCkpID8gV2ViQ29yZTo6
QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5vIDogV2ViQ29yZTo6QWxsb3dVc2VySW5zdGFsbGVk
Rm9udHM6Olllcyk7CiAjaWYgRU5BQkxFKERBVEFfREVURUNUSU9OKQogICAgIHNldHRpbmdzLnNl
dERhdGFEZXRlY3RvclR5cGVzKHN0YXRpY19jYXN0PERhdGFEZXRlY3RvclR5cGVzPihzdG9yZS5n
ZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZGF0YURldGVjdG9yVHlwZXNL
ZXkoKSkpKTsKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329780</attachid>
            <date>2017-12-19 11:38:37 -0800</date>
            <delta_ts>2017-12-19 12:00:29 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171219113837.patch</filename>
            <type>text/plain</type>
            <size>40138</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTBlOWQxZGVjNjkyZTU5
YzYzMmViM2YwNDFmMjhlMTkyYjkyOGNlNi4uNTcyMmYyYTJiZmU5NWMxYWViNDQ2ZGVkYjJiM2I2
M2Y0OTZiNDJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTEyLTE5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzYwMjk5MTk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZWZh
Y3RvcnMgdGhlIGV4aXN0aW5nIHVzZXItaW5zdGFsbGVkLWZvbnRzIGNvZGUgdG8gYSBuZXcgc2hh
cmVkIGxvY2F0aW9uLCBpbiBGb250Q2FjaGVDb3JlVGV4dCwKKyAgICAgICAgYW5kIGNhbGxzIHRo
aXMgbmV3IHNoYXJlZCBjb2RlIGZyb20gRm9udEN1c3RvbVBsYXRmb3JtRGF0YSBjb2RlIChmb3Ig
V2ViIGZvbnRzKS4gSXQgYWxzbyBpbXByb3ZlcyB0aGVzZQorICAgICAgICBmdW5jdGlvbnMgdG8g
aW5jbHVkZSBhbm90aGVyIENvcmVUZXh0IGZvbnQgYXR0cmlidXRlIHdoaWNoIHdpbGwgbWFrZSBm
b250IGZhbGxiYWNrIG9iZXkgdGhlIHJ1bGVzIGFib3V0CisgICAgICAgIHVzZXItaW5zdGFsbGVk
IGZvbnRzLiBJdCBhbHNvIG1pZ3JhdGVzIHNvbWUgcmF3IGJvb2xlYW4gdmFsdWVzIHRvIHVzZSBl
bnVtIGNsYXNzZXMuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBmYXN0
L3RleHQvdXNlci1pbnN0YWxsZWQvIChtb3JlIG9mIHRoZW0gcGFzcyBub3cpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgYSBuZXcgaGVhZGVyOiBG
b250Q2FjaGVDb3JlVGV4dC5oIChhbmQgc29ydCB0aGUgZmlsZSkuCisgICAgICAgICogY3NzL0NT
U0ZvbnRGYWNlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU2V0OjplbnN1
cmVMb2NhbEZvbnRGYWNlc0ZvckZhbWlseVJlZ2lzdGVyZWQpOiBNaWdyYXRlIGEgYm9vbCB0byBh
biBlbnVtIGNsYXNzLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRpYWxpemVGb250U3R5bGUpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uS2V5
OjptYWtlRmxhZ3NLZXkpOiBNYWtlIGNhY2hlcyBzZW5zaXRpdmUgdG8gd2hldGhlciBvciBub3Qg
d2Ugc2hvdWxkIGRpc2FsbG93CisgICAgICAgIHVzZXItaW5zdGFsbGVkIGZvbnRzCisgICAgICAg
IChXZWJDb3JlOjpTeW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogRGVsZXRlZC4gTW92ZWQg
dG8gRm9udENhY2hlQ29yZVRleHQuaAorICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6
Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTogRGVsZXRlZC4gRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVtIGNs
YXNzLgorICAgICAgICAoV2ViQ29yZTo6bV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzIGNvbnN0KTogTWlncmF0ZSBhIGJvb2wgdG8gYW4gZW51bSBjbGFzcy4KKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0
b3I9PSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpt
YXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCBjb25zdCk6IERlbGV0ZWQuIERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRNYXlSZXByZXNlbnRVc2VySW5zdGFs
bGVkRm9udCk6IERlbGV0ZWQuIERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREYXRhYmFz
ZTo6c2luZ2xldG9uKTogTWlncmF0ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRG
bGFncy5oCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OnNpbmdsZXRvbkFsbG93aW5n
VXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJh
c2U6OnNpbmdsZXRvbkRpc2FsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmNvbGxlY3Rpb25Gb3JGYW1pbHkpOiBDYWxsIHRo
ZSBzaGFyZWQgZnVuY3Rpb25zIHRvIHVwZGF0ZSB0aGUgRm9udERlc2NyaXB0b3IuCisgICAgICAg
IChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmZvbnRGb3JQb3N0U2NyaXB0TmFtZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGFiYXNlOjpGb250RGF0YWJhc2UpOiBNaWdyYXRlIHRo
ZSBlbnVtIGNsYXNzIHRvIHRoZSBzaGFyZWQgVGV4dEZsYWdzLmgKKyAgICAgICAgKFdlYkNvcmU6
OnBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVt
IGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6Zm9udFdpdGhGYW1pbHkpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OmFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMpOiBBZGQgYW5v
dGhlciBwYXJhbWV0ZXIgdG8gdGhlIEZvbnREZXNjcmlwdG9yIHRvIGVuZm9yY2UKKyAgICAgICAg
Q29yZSBUZXh0IGZvbnQgZmFsbGJhY2sgaGFwcGVucyBhY2NvcmRpbmcgdG8gdGhlIHVzZXItaW5z
dGFsbGVkIGZvbnQgcnVsZXMuCisgICAgICAgIChXZWJDb3JlOjptYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
eW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogTWlncmF0ZWQgZnJvbSBGb250Q2FjaGUuaAor
ICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9u
dFBsYXRmb3JtRGF0YSk6IENhbGwgdGhlIHNoYXJlZCBmdW5jdGlvbnMgdG8gcHJlcGFyZSB0aGUg
Rm9udERlc2NyaXB0b3IuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDogTW92
ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRGbGFncy5oCisgICAgICAgICogc3R5
bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OnJlc29sdmVGb3JEb2N1bWVudCk6IE1pZ3JhdGUgYSBib29sIHRvIGFuIGVudW0gY2xhc3MuCisK
IDIwMTctMTItMTkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAg
ICAgICAgW1lBUlJdIFlhcnIgc2hvdWxkIHJldHVybiBFcnJvckNvZGUgaW5zdGVhZCBvZiBlcnJv
ciBtZXNzYWdlcyAoY29uc3QgY2hhciopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBjMjYzM2VlOTU3
YzllN2FkODcwYThmZjY2Zjc5NTZhNjNjYjI4YmQ2Li45ZDkyN2U0NjUzYjQ4NTRiOWRjYzFlMzY3
ODk3YmM4ZWM4Zjc5ZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Ny0xMi0xOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAg
ICAgIEEgZGlzYWxsb3dlZCB1c2VyLWluc3RhbGxlZCBmb250IG1heSBiZSB1c2VkIGlmIGl0cyBQ
b3N0U2NyaXB0IG5hbWUgaXMgc3BlY2lmaWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5NTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2MDI5
OTE5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oOgorCiAyMDE3LTEyLTE5ICBBbmR5IEVzdGVzICA8
YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQXBwbGUgUGF5XSBTdG9wIG1haW50YWluaW5n
IGEgbGlzdCBvZiBwYXltZW50IG5ldHdvcmtzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcyYWNiNzFkZTY5OTU5ZjNl
ODllMDUwYWViNWIzZDE2YTQyODkzMjMuLjZjNDg4MTRkNDNjOWJlZjZlMzRmMjg0NTY5Y2U2MTRh
ODdiZGY5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMTItMTkgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBBIGRpc2FsbG93ZWQg
dXNlci1pbnN0YWxsZWQgZm9udCBtYXkgYmUgdXNlZCBpZiBpdHMgUG9zdFNjcmlwdCBuYW1lIGlz
IHNwZWNpZmllZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgwOTUxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjAyOTkxOT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNaWdyYXRlIGEgYm9vbCB0byBh
biBlbnVtIGNsYXNzLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMTctMTItMTkgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNlcnZpY2UgV29ya2VyIHNob3VsZCBu
b3QgY2xlYW4gSFRUUCBoZWFkZXJzIGFkZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBvciBieSBmZXRj
aCBzcGVjaWZpY2F0aW9uIGJlZm9yZSBzZXJ2aWNlIHdvcmtlciBpbnRlcmNlcHRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCmluZGV4IDdkY2Zj
ZGVkM2UzMTVlNmU1MGM2Y2Y4YzUyMWQ5YzAxMDU4ZGY4M2MuLjY3ZTZiYTUxNWQ3YmMzYjFhYzNm
NmNiYTZjODI2Y2E1MWM1MjBkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y29jb2EvQ29yZVRleHRTUEkuaApAQCAtNTUsNiArNTUsMTMgQEAgZW51bSB7CiAgICAga0NUUnVu
U3RhdHVzSGFzT3JpZ2lucyA9ICgxIDw8IDQpLAogfTsKIAordHlwZWRlZiBDRl9PUFRJT05TKENG
T3B0aW9uRmxhZ3MsIENURm9udEZhbGxiYWNrT3B0aW9uKSB7CisgICAga0NURm9udEZhbGxiYWNr
T3B0aW9uTm9uZSA9IDAsCisgICAga0NURm9udEZhbGxiYWNrT3B0aW9uU3lzdGVtID0gMSA8PCAw
LAorICAgIGtDVEZvbnRGYWxsYmFja09wdGlvblVzZXJJbnN0YWxsZWQgPSAxIDw8IDEsCisgICAg
a0NURm9udEZhbGxiYWNrT3B0aW9uRGVmYXVsdCA9IGtDVEZvbnRGYWxsYmFja09wdGlvblN5c3Rl
bSB8IGtDVEZvbnRGYWxsYmFja09wdGlvblVzZXJJbnN0YWxsZWQsCit9OworCiAjZW5kaWYKIAog
V1RGX0VYVEVSTl9DX0JFR0lOCkBAIC02Niw2ICs3Myw3IEBAIGV4dGVybiBjb25zdCBDRlN0cmlu
Z1JlZiBrQ1RGb250UmVmZXJlbmNlVVJMQXR0cmlidXRlOwogZXh0ZXJuIGNvbnN0IENGU3RyaW5n
UmVmIGtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1Jl
ZiBrQ1RGb250UG9zdFNjcmlwdE5hbWVBdHRyaWJ1dGU7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdS
ZWYga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGU7CitleHRlcm4gY29uc3QgQ0ZTdHJpbmdS
ZWYga0NURm9udEZhbGxiYWNrT3B0aW9uQXR0cmlidXRlOwogCiBib29sIENURm9udFRyYW5zZm9y
bUdseXBocyhDVEZvbnRSZWYsIENHR2x5cGggZ2x5cGhzW10sIENHU2l6ZSBhZHZhbmNlc1tdLCBD
RkluZGV4IGNvdW50LCBDVEZvbnRUcmFuc2Zvcm1PcHRpb25zKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNlM2IyZWI4Y2Zh
YjE0NzcwMzUxMzM2M2JlYmFjNjg2NzljZWQ3MmQuLjFiMjNlYWE5M2Q5MmQwMGIwNGFmNmFmNmIy
MTEwZGQ3ZjBjMTQwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTM3MjEsNiArMzcyMSw3IEBACiAJCUMxMDVEQTY0MEYzQUE2
QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMwRjNBQTZCODAwMURENDRGIC8qIFRl
eHRFbmNvZGluZ0RldGVjdG9yLmggKi87IH07CiAJCUMyMDE1QzBBMUJFNkZFQjIwMDgyMjM4OSAv
KiBGb250VmFyaWFudEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyMDE1QzA5MUJFNkZFMkMwMDgyMjM4OSAvKiBGb250VmFyaWFudEJ1aWxk
ZXIuaCAqLzsgfTsKIAkJQzIxREYyRUExRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRp
b25WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzIxREYyRTgxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oICovOyB9
OworCQlDMjQ1OEU2MzFGRTg5N0IwMDA1OTQ3NTkgLyogRm9udENhY2hlQ29yZVRleHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyNDU4RTYxMUZFODk3
OUUwMDU5NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyNjAxN0E0MUM3MkRDOTkwMEY3NEExNiAvKiBD
U1NGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzI2MDE3QTIxQzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRGYWNlU2V0LmggKi87IH07
CiAJCUMyODA4MzNGMUM2REMyNkYwMDE0NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjgwODMzRTFDNkRDMjJDMDAxNDUx
QjYgLyogSlNGb250RmFjZS5oICovOyB9OwogCQlDMkFCMEFGNzFFNkIzQzZDMDAxMzQ4QzUgLyog
Rm9udFNlbGVjdGlvbkFsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzJBQjBBRjUxRTZCM0M2QzAwMTM0OEM1IC8qIEZvbnRTZWxlY3Rpb25B
bGdvcml0aG0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTI2MzksNiArMTI2NDAsNyBAQAogCQlDMjAxNUMwOTFCRTZGRTJDMDA4MjIzODkgLyog
Rm9udFZhcmlhbnRCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRWYXJpYW50QnVpbGRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjFERjJFNzFEOUU0RTk5MDBGNUIyNEMg
LyogQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUMyMURGMkU4MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFyaWF0aW9uVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udFZhcmlhdGlvblZh
bHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyNDU4RTYxMUZFODk3OUUwMDU5
NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250Q2FjaGVDb3Jl
VGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjYwMTdBMTFDNzJEQzk5MDBG
NzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ1NTRm9udEZhY2VTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMjYwMTdBMjFDNzJEQzk5MDBGNzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udEZhY2VTZXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzI4MDgzM0MxQzZEQjE5NDAwMTQ1MUI2IC8qIEZvbnRGYWNlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGb250RmFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMzAwNiw2ICsyMzAwOCw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAogCQkJCTFDMzk2OUNGMUI3NDIxMUUwMDJCQ0ZBNyAvKiBGb250Q2FjaGVDb3Jl
VGV4dC5jcHAgKi8sCisJCQkJQzI0NThFNjExRkU4OTc5RTAwNTk0NzU5IC8qIEZvbnRDYWNoZUNv
cmVUZXh0LmggKi8sCiAJCQkJQjJBRkZDNzgwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDYXNjYWRl
Q29jb2EubW0gKi8sCiAJCQkJN0M0RURENzMxQTdCNjA3ODAwMTk4QzREIC8qIEZvbnRDb2NvYS5t
bSAqLywKIAkJCQkxQzEyQUMyQzFFRTc3OTk1MDA3OUUwQTAgLyogRm9udERlc2NyaXB0aW9uQ29j
b2EuY3BwICovLApAQCAtMjY5MjgsNiArMjY5MzEsNyBAQAogCQkJCTUxN0E1MzVCMUY1ODhBNEMw
MERDREMwQSAvKiBGZXRjaEJvZHlDb25zdW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyOUM5
OTcxRjU5Qjk2MzAwOUQ3NDAzIC8qIEZldGNoQm9keVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDFEMTI5REIxRjNEMTQzODAwRDE1RTQ3IC8qIEZldGNoSGVhZGVycy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDE2MUUyRDUxRkU0OERDNTAwRUMyRTk2IC8qIEZldGNoTG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTdBNTM1ODFGNTg4OUU4MDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQUQ3NTNBMUNFRjZCRDEwMEEzMTQ4NiAvKiBGZXRj
aE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTE5MTREMUYyQTlBRkIwMDI3MkY3OCAv
KiBGZXRjaFJlZmVycmVyUG9saWN5LmggaW4gSGVhZGVycyAqLywKQEAgLTI2OTkwLDYgKzI2OTk0
LDcgQEAKIAkJCQkxQUMyRDg5RDFCMUUyOTFGMDBENTJFODcgLyogRm9udEFudGlhbGlhc2luZ1N0
YXRlU2F2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjkyRDRGMTI5MzU1MEIwMEM4Mzg3RiAv
KiBGb250QmFzZWxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTYzMEQwMDZDRDYwMEVG
NkYyNiAvKiBGb250Q2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyNDU4RTYzMUZFODk3QjAw
MDU5NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RB
NjEwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNjYWRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkMzREE2ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udENhc2NhZGVGb250cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjJBRkZDN0UwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjczODksNyArMjczOTQsNiBAQAogCQkJCTdBNTQ4NTgw
MTRFMDJENTEwMDZBRTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNUI4MUNBRTFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxNjFFMkQ1MUZFNDhEQzUwMEVD
MkU5NiAvKiBGZXRjaExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDBFMUQxODdCNzRE
NTAwODQzQjEwIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTVCODFDQUYxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3RvckxheWVyVHJlZUFn
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNCMDFGQUE0NDYyMDAzN0QxRTYgLyogSW5z
cGVjdG9yTWVtb3J5QWdlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
RmFjZVNldC5jcHAKaW5kZXggNWM0MDMxM2U1OWM2YzRkM2ZlMGZiMjdlZDgzNjhkMDY2NjE5NDEz
Ni4uZTg3NjdlNWEyZjU4MDE3ODkzMjFmNzE5ZjgxNTQwMWVmNDUzNzM4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udEZhY2VTZXQuY3BwCkBAIC0xMDQsOSArMTA0LDcgQEAgdm9pZCBDU1NGb250
RmFjZVNldDo6ZW5zdXJlTG9jYWxGb250RmFjZXNGb3JGYW1pbHlSZWdpc3RlcmVkKGNvbnN0IFN0
cmluZyYgZmFtaWwKICAgICBpZiAobV9sb2NhbGx5SW5zdGFsbGVkRmFjZXNMb29rdXBUYWJsZS5j
b250YWlucyhmYW1pbHlOYW1lKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRm9udENhY2hlOjpB
bGxvd1VzZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9IEZvbnRDYWNo
ZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6OlllczsKLSAgICBpZiAobV9vd25pbmdGb250U2Vs
ZWN0b3ItPmRvY3VtZW50KCkgJiYgbV9vd25pbmdGb250U2VsZWN0b3ItPmRvY3VtZW50KCktPnNl
dHRpbmdzKCkuc2hvdWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSkKLSAgICAgICAgYWxs
b3dVc2VySW5zdGFsbGVkRm9udHMgPSBGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRz
OjpObzsKKyAgICBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250
cyA9IG1fb3duaW5nRm9udFNlbGVjdG9yLT5kb2N1bWVudCgpID8gbV9vd25pbmdGb250U2VsZWN0
b3ItPmRvY3VtZW50KCktPnNldHRpbmdzKCkuc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMo
KSA6IEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXM7CiAgICAgVmVjdG9yPEZvbnRTZWxlY3Rp
b25DYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcyA9IEZvbnRDYWNoZTo6c2luZ2xldG9uKCkuZ2V0
Rm9udFNlbGVjdGlvbkNhcGFiaWxpdGllc0luRmFtaWx5KGZhbWlseU5hbWUsIGFsbG93VXNlcklu
c3RhbGxlZEZvbnRzKTsKICAgICBpZiAoY2FwYWJpbGl0aWVzLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDdmZDI1YjhhYWQ1
YWJjNzBkZTEwOWIyNDE0NjI2NDdmZDc5ZjA1NWQuLjU5ZGMxZmQzZDRmMDVhYWM3OTgwZjE5MTIw
ZmVjNDc1OTE5Zjc3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE3
ODgsNyArMTc4OCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6aW5pdGlhbGl6ZUZvbnRTdHlsZSgp
CiAgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWlseShzdGFuZGFyZEZhbWlseSk7CiAgICAg
Zm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRTaXplRnJvbUlkZW50aWZpZXIoQ1NTVmFsdWVNZWRp
dW0pOwogICAgIHNldEZvbnRTaXplKGZvbnREZXNjcmlwdGlvbiwgU3R5bGU6OmZvbnRTaXplRm9y
S2V5d29yZChDU1NWYWx1ZU1lZGl1bSwgZmFsc2UsIGRvY3VtZW50KCkpKTsKLSAgICBmb250RGVz
Y3JpcHRpb24uc2V0TWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQoIXNldHRpbmdzKCkuc2hv
dWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNl
dFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKHNldHRpbmdzKCkuc2hvdWxkQWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMoKSk7CiAgICAgc2V0Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlv
bik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCA5OTVlYjhkMWNjNDA5ZGQ5
ZGI5ZmMxYzdiOWZmZjJhODM1ODY0MWNhLi4wYjAzY2E3ZDdhZjk1ZmNlYWYyMTYxNWI4ZjJhNTYw
YzRiZDc5OGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC02NjEsOCArNjYxLDkg
QEAgc3RvcmFnZUJsb2NraW5nUG9saWN5OgogICBpbml0aWFsOiBTZWN1cml0eU9yaWdpbjo6QWxs
b3dBbGxTdG9yYWdlCiAgIG9uQ2hhbmdlOiBzdG9yYWdlQmxvY2tpbmdQb2xpY3lDaGFuZ2VkCiAK
LXNob3VsZERpc2FsbG93VXNlckluc3RhbGxlZEZvbnRzOgotICBpbml0aWFsOiBmYWxzZQorc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6CisgIHR5cGU6IEFsbG93VXNlckluc3RhbGxlZEZv
bnRzCisgIGluaXRpYWw6IEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXMKICAgb25DaGFuZ2U6
IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwogCiAjIE9ubHkgc2V0IGJ5IExheW91dCBU
ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5k
ZXggNGFmNDdkNGIzNjM5OTQ3NTgyYzdlMDg0ODJhOWE1Yzc3MmE0ZGU0MS4uNWNkN2I2OGZkZmJi
NTk3OWI4MjA4Zjg4ZWNlYzNmNmRlOGI2ODVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgPENvcmVU
ZXh0L0NURm9udC5oPgorI2luY2x1ZGUgIkZvbnRDYWNoZUNvcmVUZXh0LmgiCiAjZW5kaWYKIAog
I2lmIE9TKFdJTkRPV1MpCkBAIC0xMjQsNyArMTI0LDggQEAgc3RydWN0IEZvbnREZXNjcmlwdGlv
bktleSB7CiBwcml2YXRlOgogICAgIHN0YXRpYyBzdGQ6OmFycmF5PHVuc2lnbmVkLCAyPiBtYWtl
RmxhZ3NLZXkoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKICAgICB7Ci0gICAg
ICAgIHVuc2lnbmVkIGZpcnN0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNj
cmlwdCgpKSA8PCAxMworICAgICAgICB1bnNpZ25lZCBmaXJzdCA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihkZXNjcmlwdGlvbi5zY3JpcHQoKSkgPDwgMTQKKyAgICAgICAgICAgIHwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkp
IDw8IDEzCiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5m
b250U3R5bGVBeGlzKCkgPT0gRm9udFN0eWxlQXhpczo6c2xudCkgPDwgMTIKICAgICAgICAgICAg
IHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLm9wdGljYWxTaXppbmcoKSkgPDwg
MTEKICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnRleHRS
ZW5kZXJpbmdNb2RlKCkpIDw8IDkKQEAgLTIwMCwxMCArMjAxLDYgQEAgcHVibGljOgogICAgIHN0
YXRpYyBJTXVsdGlMYW5ndWFnZSogZ2V0TXVsdGlMYW5ndWFnZUludGVyZmFjZSgpOwogI2VuZGlm
CiAKLSAgICBlbnVtIGNsYXNzIEFsbG93VXNlckluc3RhbGxlZEZvbnRzIHsKLSAgICAgICAgWWVz
LAotICAgICAgICBObwotICAgIH07CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBleGlzdHMgc28gQ1NT
Rm9udFNlbGVjdG9yIGNhbiBoYXZlIGEgdW5pZmllZCBub3Rpb24gb2YgcHJlaW5zdGFsbGVkIGZv
bnRzIGFuZCBAZm9udC1mYWNlLgogICAgIC8vIEl0IGNvbWVzIGludG8gcGxheSB3aGVuIHlvdSBj
cmVhdGUgYW4gQGZvbnQtZmFjZSB3aGljaCBzaGFyZXMgYSBmYW1pbHkgbmFtZSBhcyBhIHByZWlu
c3RhbGxlZCBmb250LgogICAgIFZlY3RvcjxGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzPiBnZXRG
b250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzSW5GYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiwgQWxs
b3dVc2VySW5zdGFsbGVkRm9udHMpOwpAQCAtMjcwLDMyICsyNjcsNyBAQCBpbmxpbmUgc3RkOjp1
bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3Jt
RGF0YUZvclRlcwogICAgIHJldHVybiBjcmVhdGVGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlw
dGlvbiwgZmFtaWx5LCBudWxscHRyLCBudWxscHRyLCB7IH0pOwogfQogCi0jaWYgUExBVEZPUk0o
Q09DT0EpCi0KLXN0cnVjdCBTeW50aGVzaXNQYWlyIHsKLSAgICBTeW50aGVzaXNQYWlyKGJvb2wg
bmVlZHNTeW50aGV0aWNCb2xkLCBib29sIG5lZWRzU3ludGhldGljT2JsaXF1ZSkKLSAgICAgICAg
OiBuZWVkc1N5bnRoZXRpY0JvbGQobmVlZHNTeW50aGV0aWNCb2xkKQotICAgICAgICAsIG5lZWRz
U3ludGhldGljT2JsaXF1ZShuZWVkc1N5bnRoZXRpY09ibGlxdWUpCi0gICAgewotICAgIH0KLQot
ICAgIHN0ZDo6cGFpcjxib29sLCBib29sPiBib2xkT2JsaXF1ZVBhaXIoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKG5lZWRzU3ludGhldGljQm9sZCwgbmVlZHNT
eW50aGV0aWNPYmxpcXVlKTsKLSAgICB9Ci0KLSAgICBib29sIG5lZWRzU3ludGhldGljQm9sZDsK
LSAgICBib29sIG5lZWRzU3ludGhldGljT2JsaXF1ZTsKLX07Ci0KLVJldGFpblB0cjxDVEZvbnRS
ZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmLCBjb25zdCBGb250RGVzY3JpcHRpb24m
LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiBmb250RmFjZUZlYXR1cmVzLCBjb25zdCBGb250
VmFyaWFudFNldHRpbmdzKiBmb250RmFjZVZhcmlhbnRTZXR0aW5ncywgRm9udFNlbGVjdGlvblNw
ZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcywgZmxvYXQgc2l6ZSwgYm9v
bCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zID0gdHJ1ZSk7Ci1TeW50aGVzaXNQYWly
IGNvbXB1dGVOZWNlc3NhcnlTeW50aGVzaXMoQ1RGb250UmVmLCBjb25zdCBGb250RGVzY3JpcHRp
b24mLCBib29sIGlzUGxhdGZvcm1Gb250ID0gZmFsc2UpOwotUmV0YWluUHRyPENURm9udFJlZj4g
cGxhdGZvcm1Gb250V2l0aEZhbWlseVNwZWNpYWxDYXNlKGNvbnN0IEF0b21pY1N0cmluZyYgZmFt
aWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgZmxvYXQgc2l6ZSk7Ci1SZXRhaW5QdHI8Q1RGb250
UmVmPiBwbGF0Zm9ybUZvbnRXaXRoRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBG
b250U2VsZWN0aW9uUmVxdWVzdCwgVGV4dFJlbmRlcmluZ01vZGUsIGZsb2F0IHNpemUpOwotYm9v
bCByZXF1aXJlc0N1c3RvbUZhbGxiYWNrRm9udChVQ2hhcjMyIGNoYXJhY3Rlcik7Ci1Gb250U2Vs
ZWN0aW9uQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllc0ZvckZvbnREZXNjcmlwdG9yKENURm9udERl
c2NyaXB0b3JSZWYpOwotCi0jZWxzZQorI2lmICFQTEFURk9STShDT0NPQSkKIAogaW5saW5lIHZv
aWQgRm9udENhY2hlOjpwbGF0Zm9ybVB1cmdlSW5hY3RpdmVGb250RGF0YSgpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcApp
bmRleCBkZjRhOWNjYjVkYjQ5MDc2OGQwZTEzZGM2MmZlYzVjNTAzZmFiNmU4Li4zZDVkZDM1NzE0
NjA3N2IyOGFlNTIzZTNhMzNlMjdiZmQyNDU2OWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKQEAgLTgwLDcgKzgwLDcg
QEAgRm9udERlc2NyaXB0aW9uOjpGb250RGVzY3JpcHRpb24oKQogICAgICwgbV92YXJpYW50RWFz
dEFzaWFuUnVieShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oRm9udFZhcmlhbnRFYXN0QXNpYW5SdWJ5
OjpOb3JtYWwpKQogICAgICwgbV9vcHRpY2FsU2l6aW5nKHN0YXRpY19jYXN0PHVuc2lnbmVkPihG
b250T3B0aWNhbFNpemluZzo6RW5hYmxlZCkpCiAgICAgLCBtX2ZvbnRTdHlsZUF4aXMoRm9udENh
c2NhZGVEZXNjcmlwdGlvbjo6aW5pdGlhbEZvbnRTdHlsZUF4aXMoKSA9PSBGb250U3R5bGVBeGlz
OjppdGFsKQotICAgICwgbV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCh0cnVlKQorICAg
ICwgbV9zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cyhzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6OlllcykpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKaW5kZXggOGI4ZmEyMjUw
M2UyYzUxMDUxYmRkODhhYmRiYzUwYTlmNWViZGE5YS4uMTViNGFmNjk0ZjM5ZmY5YWEzY2ZlYTJk
MjgxZjkwODVjZTVmN2I0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udERlc2NyaXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udERlc2NyaXB0aW9uLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAg
fQogICAgIEZvbnRPcHRpY2FsU2l6aW5nIG9wdGljYWxTaXppbmcoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxGb250T3B0aWNhbFNpemluZz4obV9vcHRpY2FsU2l6aW5nKTsgfQogICAgIEZv
bnRTdHlsZUF4aXMgZm9udFN0eWxlQXhpcygpIGNvbnN0IHsgcmV0dXJuIG1fZm9udFN0eWxlQXhp
cyA/IEZvbnRTdHlsZUF4aXM6Oml0YWwgOiBGb250U3R5bGVBeGlzOjpzbG50OyB9Ci0gICAgYm9v
bCBtYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF5UmVw
cmVzZW50VXNlckluc3RhbGxlZEZvbnQ7IH0KKyAgICBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBz
aG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PEFsbG93VXNlckluc3RhbGxlZEZvbnRzPihtX3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRz
KTsgfQogCiAgICAgdm9pZCBzZXRDb21wdXRlZFNpemUoZmxvYXQgcykgeyBtX2NvbXB1dGVkU2l6
ZSA9IGNsYW1wVG9GbG9hdChzKTsgfQogICAgIHZvaWQgc2V0SXRhbGljKEZvbnRTZWxlY3Rpb25W
YWx1ZSBpdGFsaWMpIHsgbV9mb250U2VsZWN0aW9uUmVxdWVzdC5zbG9wZSA9IGl0YWxpYzsgfQpA
QCAtMTQ5LDcgKzE0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZhcmlhbnRFYXN0QXNpYW5S
dWJ5KEZvbnRWYXJpYW50RWFzdEFzaWFuUnVieSB2YXJpYW50KSB7IG1fdmFyaWFudEVhc3RBc2lh
blJ1YnkgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFyaWFudCk7IH0KICAgICB2b2lkIHNldE9w
dGljYWxTaXppbmcoRm9udE9wdGljYWxTaXppbmcgc2l6aW5nKSB7IG1fb3B0aWNhbFNpemluZyA9
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzaXppbmcpOyB9CiAgICAgdm9pZCBzZXRGb250U3R5bGVB
eGlzKEZvbnRTdHlsZUF4aXMgYXhpcykgeyBtX2ZvbnRTdHlsZUF4aXMgPSBheGlzID09IEZvbnRT
dHlsZUF4aXM6Oml0YWw7IH0KLSAgICB2b2lkIHNldE1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRG
b250KGJvb2wgbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQpIHsgbV9tYXlSZXByZXNlbnRV
c2VySW5zdGFsbGVkRm9udCA9IG1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250OyB9CisgICAg
dm9pZCBzZXRTaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cyhBbGxvd1VzZXJJbnN0YWxsZWRG
b250cyBzaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cykgeyBtX3Nob3VsZEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzKTsgfQogCiAgICAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZUNhY2hlcygpOwogCkBA
IC0xODUsNyArMTg1LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3ZhcmlhbnRFYXN0QXNp
YW5SdWJ5IDogMTsgLy8gRm9udFZhcmlhbnRFYXN0QXNpYW5SdWJ5CiAgICAgdW5zaWduZWQgbV9v
cHRpY2FsU2l6aW5nIDogMTsgLy8gRm9udE9wdGljYWxTaXppbmcKICAgICB1bnNpZ25lZCBtX2Zv
bnRTdHlsZUF4aXMgOiAxOyAvLyBXaGV0aGVyICJmb250LXN0eWxlOiBpdGFsaWMiIG9yICJmb250
LXN0eWxlOiBvYmxpcXVlIDIwZGVnIiB3YXMgc3BlY2lmaWVkCi0gICAgdW5zaWduZWQgbV9tYXlS
ZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCA6IDE7IC8vIElmIHRoaXMgZGVzY3JpcHRpb24gaXMg
YWxsb3dlZCB0byBtYXRjaCBhIHVzZXItaW5zdGFsbGVkIGZvbnQKKyAgICB1bnNpZ25lZCBtX3No
b3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzIDogMTsgLy8gSWYgdGhpcyBkZXNjcmlwdGlvbiBp
cyBhbGxvd2VkIHRvIG1hdGNoIGEgdXNlci1pbnN0YWxsZWQgZm9udAogfTsKIAogaW5saW5lIGJv
b2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgb3Ro
ZXIpIGNvbnN0CkBAIC0yMjAsNyArMjIwLDcgQEAgaW5saW5lIGJvb2wgRm9udERlc2NyaXB0aW9u
OjpvcGVyYXRvcj09KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgb3RoZXIpIGNvbnN0CiAgICAgICAg
ICYmIG1fdmFyaWFudEVhc3RBc2lhblJ1YnkgPT0gb3RoZXIubV92YXJpYW50RWFzdEFzaWFuUnVi
eQogICAgICAgICAmJiBtX29wdGljYWxTaXppbmcgPT0gb3RoZXIubV9vcHRpY2FsU2l6aW5nCiAg
ICAgICAgICYmIG1fZm9udFN0eWxlQXhpcyA9PSBvdGhlci5tX2ZvbnRTdHlsZUF4aXMKLSAgICAg
ICAgJiYgbV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCA9PSBvdGhlci5tX21heVJlcHJl
c2VudFVzZXJJbnN0YWxsZWRGb250OworICAgICAgICAmJiBtX3Nob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzID09IG90aGVyLm1fc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHM7CiB9CiAK
IC8vIEZJWE1FOiBNb3ZlIHRvIGEgZmlsZSBvZiBpdHMgb3duLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQu
Y3BwCmluZGV4IGNlNzAzNzQxNTA2OWUwNzMxM2FiOThhZDk1MzcyMTYwYWQ5ZGI2ZjMuLmE3ZjBj
OGQxNGE2NDA4NDc5NzkxYWNhODBlYzNmOGE4NGNhN2RmMjUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4
dC5jcHAKQEAgLTgzMyw3ICs4MzMsNyBAQCBwdWJsaWM6CiAjaWYgIUNBTl9ESVNBTExPV19VU0VS
X0lOU1RBTExFRF9GT05UUwogICAgIHN0YXRpYyBGb250RGF0YWJhc2UmIHNpbmdsZXRvbigpCiAg
ICAgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFz
ZShGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXMpOworICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFzZShBbGxvd1VzZXJJbnN0YWxs
ZWRGb250czo6WWVzKTsKICAgICAgICAgcmV0dXJuIGRhdGFiYXNlOwogICAgIH0KICNlbmRpZgpA
QCAtODQxLDcgKzg0MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRm9udERhdGFiYXNlJiBzaW5n
bGV0b25BbGxvd2luZ1VzZXJJbnN0YWxsZWRGb250cygpCiAgICAgewogI2lmIENBTl9ESVNBTExP
V19VU0VSX0lOU1RBTExFRF9GT05UUwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9u
dERhdGFiYXNlPiBkYXRhYmFzZShGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZ
ZXMpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFz
ZShBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzKTsKICAgICAgICAgcmV0dXJuIGRhdGFiYXNl
OwogI2Vsc2UKICAgICAgICAgcmV0dXJuIHNpbmdsZXRvbigpOwpAQCAtODUxLDcgKzg1MSw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgRm9udERhdGFiYXNlJiBzaW5nbGV0b25EaXNhbGxvd2luZ1Vz
ZXJJbnN0YWxsZWRGb250cygpCiAgICAgewogI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExF
RF9GT05UUwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRh
YmFzZShGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObyk7CisgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGF0YWJhc2U+IGRhdGFiYXNlKEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzOjpObyk7CiAgICAgICAgIHJldHVybiBkYXRhYmFzZTsKICNlbHNlCiAgICAgICAg
IHJldHVybiBzaW5nbGV0b24oKTsKQEAgLTkwOCwyMSArOTA4LDEyIEBAIHB1YmxpYzoKICAgICAg
ICAgYXV0byBmb2xkZWQgPSBmYW1pbHlOYW1lLmZvbGRDYXNlKCk7CiAgICAgICAgIHJldHVybiBt
X2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9ycy5lbnN1cmUoZm9sZGVkLCBbJl0gewogICAgICAg
ICAgICAgYXV0byBmYW1pbHlOYW1lU3RyaW5nID0gZm9sZGVkLmNyZWF0ZUNGU3RyaW5nKCk7Ci0g
ICAgICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBhdHRyaWJ1dGVzOwotI2lmIENB
Tl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUwotICAgICAgICAgICAgaWYgKG1fYWxsb3dV
c2VySW5zdGFsbGVkRm9udHMgPT0gRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6
Tm8pIHsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RmFtaWx5
TmFtZUF0dHJpYnV0ZSwga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGUgfTsKLSAgICAgICAg
ICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGZhbWlseU5hbWVTdHJpbmcuZ2V0KCksIGtD
RkJvb2xlYW5GYWxzZSB9OwotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENG
RGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9B
UlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5
cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKLSAgICAgICAgICAgIH0gZWxzZQotI2VuZGlm
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsga0NU
Rm9udEZhbWlseU5hbWVBdHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFs
dWVzW10gPSB7IGZhbWlseU5hbWVTdHJpbmcuZ2V0KCkgfTsKLSAgICAgICAgICAgICAgICBhdHRy
aWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
a2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlL
ZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAg
ICAgICB9CisgICAgICAgICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFy
eUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5
S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAg
ICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEZhbWls
eU5hbWVBdHRyaWJ1dGUsIGZhbWlseU5hbWVTdHJpbmcuZ2V0KCkpOworICAgICAgICAgICAgYWRk
QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBtX2FsbG93
VXNlckluc3RhbGxlZEZvbnRzKTsKICAgICAgICAgICAgIGF1dG8gZm9udERlc2NyaXB0b3JUb01h
dGNoID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlV2l0aEF0dHJpYnV0ZXMoYXR0cmli
dXRlcy5nZXQoKSkpOwotICAgICAgICAgICAgaWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RG
b250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9y
VG9NYXRjaC5nZXQoKSwgbnVsbHB0cikpKSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTZXRS
ZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMgPSBtYW5kYXRvcnlBdHRyaWJ1dGVzRm9yVXNlckluc3Rh
bGxlZEZvbnRzKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOworICAgICAgICAgICAgaWYgKGF1
dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERl
c2NyaXB0b3JzKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbWFuZGF0b3J5QXR0cmlidXRl
cy5nZXQoKSkpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBjb3VudCA9IENGQXJyYXlHZXRDb3Vu
dChtYXRjaGVzLmdldCgpKTsKICAgICAgICAgICAgICAgICBWZWN0b3I8SW5zdGFsbGVkRm9udD4g
cmVzdWx0OwogICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNv
dW50KTsKQEAgLTk0NiwyMSArOTM3LDEzIEBAIHB1YmxpYzoKICNlbHNlCiAgICAgICAgICAgICBD
RlN0cmluZ1JlZiBuYW1lQXR0cmlidXRlID0ga0NURm9udE5hbWVBdHRyaWJ1dGU7CiAjZW5kaWYK
LSAgICAgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGF0dHJpYnV0ZXM7Ci0jaWYg
Q0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZPTlRTCi0gICAgICAgICAgICBpZiAobV9hbGxv
d1VzZXJJbnN0YWxsZWRGb250cyA9PSBGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRz
OjpObykgewotICAgICAgICAgICAgICAgIENGVHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRFbmFi
bGVkQXR0cmlidXRlLCBuYW1lQXR0cmlidXRlLCBrQ1RGb250VXNlckluc3RhbGxlZEF0dHJpYnV0
ZSB9OwotICAgICAgICAgICAgICAgIENGVHlwZVJlZiB2YWx1ZXNbXSA9IHsga0NGQm9vbGVhblRy
dWUsIHBvc3RTY3JpcHROYW1lU3RyaW5nLmdldCgpLCBrQ0ZCb29sZWFuRmFsc2UgfTsKLSAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NG
VHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJh
Y2tzKSk7Ci0gICAgICAgICAgICB9IGVsc2UKLSNlbmRpZgotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIENGVHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBu
YW1lQXR0cmlidXRlIH07Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1tdID0geyBr
Q0ZCb29sZWFuVHJ1ZSwgcG9zdFNjcmlwdE5hbWVTdHJpbmcuZ2V0KCkgfTsKLSAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURp
Y3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7
Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENG
RGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVE
aWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykp
OworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQoKSwga0NU
Rm9udEVuYWJsZWRBdHRyaWJ1dGUsIGtDRkJvb2xlYW5UcnVlKTsKKyAgICAgICAgICAgIENGRGlj
dGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMuZ2V0KCksIG5hbWVBdHRyaWJ1dGUsIHBvc3RTY3Jp
cHROYW1lU3RyaW5nLmdldCgpKTsKKyAgICAgICAgICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5z
dGFsbGVkRm9udHMoYXR0cmlidXRlcy5nZXQoKSwgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7
CiAgICAgICAgICAgICBhdXRvIGZvbnREZXNjcmlwdG9yVG9NYXRjaCA9IGFkb3B0Q0YoQ1RGb250
RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKLSAgICAg
ICAgICAgIGF1dG8gbWF0Y2ggPSBhZG9wdENGKHN0YXRpY19jYXN0PENURm9udERlc2NyaXB0b3JS
ZWY+KENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9yKGZvbnREZXNj
cmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVsbHB0cikpKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxD
RlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRlcyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2Vy
SW5zdGFsbGVkRm9udHMobV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CisgICAgICAgICAgICBh
dXRvIG1hdGNoID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVz
Y3JpcHRvcihmb250RGVzY3JpcHRvclRvTWF0Y2guZ2V0KCksIG1hbmRhdG9yeUF0dHJpYnV0ZXMu
Z2V0KCkpKTsKICAgICAgICAgICAgIHJldHVybiBJbnN0YWxsZWRGb250KG1hdGNoLmdldCgpKTsK
ICAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogICAgIH0KQEAgLTk3NCwxNCArOTU3LDE0IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPEZvbnRE
YXRhYmFzZT47CiAKLSAgICBGb250RGF0YWJhc2UoRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxs
ZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKKyAgICBGb250RGF0YWJhc2UoQWxsb3dV
c2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCiAgICAgICAgIDogbV9h
bGxvd1VzZXJJbnN0YWxsZWRGb250cyhhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKICAgICB7CiAg
ICAgfQogCiAgICAgSGFzaE1hcDxTdHJpbmcsIEluc3RhbGxlZEZvbnRGYW1pbHk+IG1fZmFtaWx5
TmFtZVRvRm9udERlc2NyaXB0b3JzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBJbnN0YWxsZWRGb250
PiBtX3Bvc3RTY3JpcHROYW1lVG9Gb250RGVzY3JpcHRvcnM7Ci0gICAgRm9udENhY2hlOjpBbGxv
d1VzZXJJbnN0YWxsZWRGb250cyBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzOworICAgIEFsbG93
VXNlckluc3RhbGxlZEZvbnRzIG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHM7CiB9OwogCiAvLyBC
ZWNhdXNlIHRoaXMgc3RydWN0IGhvbGRzIGludGVybWVkaWF0ZSB2YWx1ZXMgd2hpY2ggbWF5IGJl
IGluIHRoZSBjb21wcmVzc2VkIC0xIC0gMSBHWCByYW5nZSwgd2UgZG9uJ3Qgd2FudCB0byB1c2Ug
dGhlIHJlbGF0aXZlbHkgbGFyZ2UKQEAgLTExOTAsNyArMTE3Myw3IEBAIHN0cnVjdCBGb250TG9v
a3VwIHsKICAgICBib29sIGNyZWF0ZWRGcm9tUG9zdFNjcmlwdE5hbWUgeyBmYWxzZSB9OwogfTsK
IAotc3RhdGljIEZvbnRMb29rdXAgcGxhdGZvcm1Gb250TG9va3VwV2l0aEZhbWlseShjb25zdCBB
dG9taWNTdHJpbmcmIGZhbWlseSwgRm9udFNlbGVjdGlvblJlcXVlc3QgcmVxdWVzdCwgZmxvYXQg
c2l6ZSwgYm9vbCBtYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCkKK3N0YXRpYyBGb250TG9v
a3VwIHBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1p
bHksIEZvbnRTZWxlY3Rpb25SZXF1ZXN0IHJlcXVlc3QsIGZsb2F0IHNpemUsIEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzIGFsbG93VXNlckluc3RhbGxlZEZvbnRzKQogewogICAgIGNvbnN0IGF1dG8m
IHdoaXRlbGlzdCA9IGZvbnRXaGl0ZWxpc3QoKTsKICAgICBpZiAoIWlzU3lzdGVtRm9udChmYW1p
bHkpICYmIHdoaXRlbGlzdC5zaXplKCkgJiYgIXdoaXRlbGlzdC5jb250YWlucyhmYW1pbHkpKQpA
QCAtMTIwMSw3ICsxMTg0LDcgQEAgc3RhdGljIEZvbnRMb29rdXAgcGxhdGZvcm1Gb250TG9va3Vw
V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgRm9udFMKICAgICBDVEZvbnRT
eW1ib2xpY1RyYWl0cyB0cmFpdHMgPSAoaXNGb250V2VpZ2h0Qm9sZChyZXF1ZXN0LndlaWdodCkg
PyBrQ1RGb250VHJhaXRCb2xkIDogMCkgfCAoaXNJdGFsaWMocmVxdWVzdC5zbG9wZSkgPyBrQ1RG
b250VHJhaXRJdGFsaWMgOiAwKTsKICAgICByZXR1cm4geyBhZG9wdENGKENURm9udENyZWF0ZUZv
ckNTUyhmYW1pbHkuc3RyaW5nKCkuY3JlYXRlQ0ZTdHJpbmcoKS5nZXQoKSwgc3RhdGljX2Nhc3Q8
ZmxvYXQ+KHJlcXVlc3Qud2VpZ2h0KSwgdHJhaXRzLCBzaXplKSkgfTsKICNlbHNlCi0gICAgYXV0
byYgZm9udERhdGFiYXNlID0gbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQgPyBGb250RGF0
YWJhc2U6OnNpbmdsZXRvbkFsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKCkgOiBGb250RGF0YWJh
c2U6OnNpbmdsZXRvbkRpc2FsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKCk7CisgICAgYXV0byYg
Zm9udERhdGFiYXNlID0gYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gQWxsb3dVc2VySW5zdGFs
bGVkRm9udHM6OlllcyA/IEZvbnREYXRhYmFzZTo6c2luZ2xldG9uQWxsb3dpbmdVc2VySW5zdGFs
bGVkRm9udHMoKSA6IEZvbnREYXRhYmFzZTo6c2luZ2xldG9uRGlzYWxsb3dpbmdVc2VySW5zdGFs
bGVkRm9udHMoKTsKICAgICBjb25zdCBhdXRvJiBmYW1pbHlGb250cyA9IGZvbnREYXRhYmFzZS5j
b2xsZWN0aW9uRm9yRmFtaWx5KGZhbWlseS5zdHJpbmcoKSk7CiAgICAgaWYgKGZhbWlseUZvbnRz
LmlzRW1wdHkoKSkgewogICAgICAgICAvLyBUaGUgQ1NTIHNwZWMgc3RhdGVzIHRoYXQgZm9udC1m
YW1pbHkgb25seSBhY2NlcHRzIGEgbmFtZSBvZiBhbiBhY3R1YWwgZm9udCBmYW1pbHkuIEhvd2V2
ZXIsIGluIFdlYktpdCwgd2UgY2xhaW0gdG8gYWxzbwpAQCAtMTI2NSw3ICsxMjQ4LDcgQEAgc3Rh
dGljIFJldGFpblB0cjxDVEZvbnRSZWY+IGZvbnRXaXRoRmFtaWx5KGNvbnN0IEF0b21pY1N0cmlu
ZyYgZmFtaWx5LCBjb25zdCBGb24KICAgICBGb250TG9va3VwIGZvbnRMb29rdXA7CiAgICAgZm9u
dExvb2t1cC5yZXN1bHQgPSBwbGF0Zm9ybUZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2UoZmFtaWx5
LCByZXF1ZXN0LCBzaXplKTsKICAgICBpZiAoIWZvbnRMb29rdXAucmVzdWx0KQotICAgICAgICBm
b250TG9va3VwID0gcGxhdGZvcm1Gb250TG9va3VwV2l0aEZhbWlseShmYW1pbHksIHJlcXVlc3Qs
IHNpemUsIGZvbnREZXNjcmlwdGlvbi5tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCgpKTsK
KyAgICAgICAgZm9udExvb2t1cCA9IHBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkoZmFtaWx5
LCByZXF1ZXN0LCBzaXplLCBmb250RGVzY3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMoKSk7CiAgICAgcmV0dXJuIHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udExvb2t1cC5yZXN1
bHQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbiwgZm9udEZhY2VGZWF0dXJlcywgZm9udEZhY2VWYXJp
YW50U2V0dGluZ3MsIGZvbnRGYWNlQ2FwYWJpbGl0aWVzLCBzaXplLCAhZm9udExvb2t1cC5jcmVh
dGVkRnJvbVBvc3RTY3JpcHROYW1lKTsKIH0KIApAQCAtMTQ3NSw0ICsxNDU4LDMyIEBAIGNvbnN0
IEF0b21pY1N0cmluZyYgRm9udENhY2hlOjpwbGF0Zm9ybUFsdGVybmF0ZUZhbWlseU5hbWUoY29u
c3QgQXRvbWljU3RyaW5nJiBmCiAgICAgcmV0dXJuIG51bGxBdG9tKCk7CiB9CiAKK3ZvaWQgYWRk
QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0
dHJpYnV0ZXMsIEFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNlckluc3RhbGxlZEZvbnRz
KQoreworI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUworICAgIGlmIChhbGxv
d1VzZXJJbnN0YWxsZWRGb250cyA9PSBBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pIHsKKyAg
ICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcywga0NURm9udFVzZXJJbnN0YWxs
ZWRBdHRyaWJ1dGUsIGtDRkJvb2xlYW5GYWxzZSk7CisgICAgICAgIENURm9udEZhbGxiYWNrT3B0
aW9uIGZhbGxiYWNrT3B0aW9uID0ga0NURm9udEZhbGxiYWNrT3B0aW9uU3lzdGVtOworICAgICAg
ICBhdXRvIGZhbGxiYWNrT3B0aW9uTnVtYmVyID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZB
bGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1iZXJTSW50NjRUeXBlLCAmZmFsbGJhY2tPcHRpb24pKTsK
KyAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcywga0NURm9udEZhbGxiYWNr
T3B0aW9uQXR0cmlidXRlLCBmYWxsYmFja09wdGlvbk51bWJlci5nZXQoKSk7CisgICAgfQorI2Vs
c2UKKyAgICBVTlVTRURfUEFSQU0oYXR0cmlidXRlcyk7CisgICAgVU5VU0VEX1BBUkFNKGFsbG93
VXNlckluc3RhbGxlZEZvbnRzKTsKKyNlbmRpZgorfQorCitSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1h
bmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCit7CisjaWYgQ0FOX0RJU0FMTE9XX1VTRVJf
SU5TVEFMTEVEX0ZPTlRTCisgICAgaWYgKGFsbG93VXNlckluc3RhbGxlZEZvbnRzID09IEFsbG93
VXNlckluc3RhbGxlZEZvbnRzOjpObykgeworICAgICAgICBDRlR5cGVSZWYgbWFuZGF0b3J5QXR0
cmlidXRlc1ZhbHVlc1tdID0geyBrQ1RGb250VXNlckluc3RhbGxlZEF0dHJpYnV0ZSwga0NURm9u
dEZhbGxiYWNrT3B0aW9uQXR0cmlidXRlIH07CisgICAgICAgIHJldHVybiBhZG9wdENGKENGU2V0
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIG1hbmRhdG9yeUF0dHJpYnV0ZXNWYWx1ZXMsIFdU
Rl9BUlJBWV9MRU5HVEgobWFuZGF0b3J5QXR0cmlidXRlc1ZhbHVlcyksICZrQ0ZUeXBlU2V0Q2Fs
bEJhY2tzKSk7CisgICAgfQorI2Vsc2UKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dVc2VySW5zdGFs
bGVkRm9udHMpOworI2VuZGlmCisgICAgcmV0dXJuIG51bGxwdHI7Cit9CisKIH0KZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVU
ZXh0LmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVD
b3JlVGV4dC5oCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAuLjEzZGE3MTViOTZlNTk4YmQ5NTRjMjkzMGVlMWFiOTc3NDlj
ZmI5Y2QKLS0tIC9kZXYvbnVsbAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oCkBAIC0wLDAgKzEsNjIgQEAKKy8qCisgKiBDb3B5
cmlnaHQgKEMpIDIwMTcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KKyAqCisgKiBS
ZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9y
IHdpdGhvdXQKKyAqIG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRo
ZSBmb2xsb3dpbmcgY29uZGl0aW9ucworICogYXJlIG1ldDoKKyAqCisgKiAxLiAgUmVkaXN0cmli
dXRpb25zIG9mIHNvdXJjZSBjb2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAq
ICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRp
c2NsYWltZXIuCisgKiAyLiAgUmVkaXN0cmlidXRpb25zIGluIGJpbmFyeSBmb3JtIG11c3QgcmVw
cm9kdWNlIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBj
b25kaXRpb25zIGFuZCB0aGUgZm9sbG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICAgZG9j
dW1lbnRhdGlvbiBhbmQvb3Igb3RoZXIgbWF0ZXJpYWxzIHByb3ZpZGVkIHdpdGggdGhlIGRpc3Ry
aWJ1dGlvbi4KKyAqIDMuICBOZWl0aGVyIHRoZSBuYW1lIG9mIEFwcGxlIEluYy4gKCJBcHBsZSIp
IG5vciB0aGUgbmFtZXMgb2YKKyAqICAgICBpdHMgY29udHJpYnV0b3JzIG1heSBiZSB1c2VkIHRv
IGVuZG9yc2Ugb3IgcHJvbW90ZSBwcm9kdWN0cyBkZXJpdmVkCisgKiAgICAgZnJvbSB0aGlzIHNv
ZnR3YXJlIHdpdGhvdXQgc3BlY2lmaWMgcHJpb3Igd3JpdHRlbiBwZXJtaXNzaW9uLgorICoKKyAq
IFRISVMgU09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgQU5EIElUUyBDT05UUklCVVRPUlMg
IkFTIElTIiBBTkQgQU5ZCisgKiBFWFBSRVNTIE9SIElNUExJRUQgV0FSUkFOVElFUywgSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFRIRSBJTVBMSUVECisgKiBXQVJSQU5USUVTIE9GIE1F
UkNIQU5UQUJJTElUWSBBTkQgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UgQVJFCisg
KiBESVNDTEFJTUVELiBJTiBOTyBFVkVOVCBTSEFMTCBBUFBMRSBPUiBJVFMgQ09OVFJJQlVUT1JT
IEJFIExJQUJMRSBGT1IgQU5ZCisgKiBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFMLCBTUEVD
SUFMLCBFWEVNUExBUlksIE9SIENPTlNFUVVFTlRJQUwgREFNQUdFUworICogKElOQ0xVRElORywg
QlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRiBTVUJTVElUVVRFIEdPT0RTIE9SIFNF
UlZJQ0VTOworICogTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lORVNTIElO
VEVSUlVQVElPTikgSE9XRVZFUiBDQVVTRUQgQU5ECisgKiBPTiBBTlkgVEhFT1JZIE9GIExJQUJJ
TElUWSwgV0hFVEhFUiBJTiBDT05UUkFDVCwgU1RSSUNUIExJQUJJTElUWSwgT1IgVE9SVAorICog
KElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkgQVJJU0lORyBJTiBBTlkgV0FZIE9V
VCBPRiBUSEUgVVNFIE9GCisgKiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQgT0YgVEhF
IFBPU1NJQklMSVRZIE9GIFNVQ0ggREFNQUdFLgorICovCisKKyNwcmFnbWEgb25jZQorCisjaW5j
bHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCisKKyNpbmNsdWRlIDxDb3JlVGV4dC9DVEZvbnQuaD4K
KworbmFtZXNwYWNlIFdlYkNvcmUgeworCitzdHJ1Y3QgU3ludGhlc2lzUGFpciB7CisgICAgU3lu
dGhlc2lzUGFpcihib29sIG5lZWRzU3ludGhldGljQm9sZCwgYm9vbCBuZWVkc1N5bnRoZXRpY09i
bGlxdWUpCisgICAgICAgIDogbmVlZHNTeW50aGV0aWNCb2xkKG5lZWRzU3ludGhldGljQm9sZCkK
KyAgICAgICAgLCBuZWVkc1N5bnRoZXRpY09ibGlxdWUobmVlZHNTeW50aGV0aWNPYmxpcXVlKQor
ICAgIHsKKyAgICB9CisKKyAgICBzdGQ6OnBhaXI8Ym9vbCwgYm9vbD4gYm9sZE9ibGlxdWVQYWly
KCkgY29uc3QKKyAgICB7CisgICAgICAgIHJldHVybiBzdGQ6Om1ha2VfcGFpcihuZWVkc1N5bnRo
ZXRpY0JvbGQsIG5lZWRzU3ludGhldGljT2JsaXF1ZSk7CisgICAgfQorCisgICAgYm9vbCBuZWVk
c1N5bnRoZXRpY0JvbGQ7CisgICAgYm9vbCBuZWVkc1N5bnRoZXRpY09ibGlxdWU7Cit9OworCitS
ZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiwgY29uc3Qg
Rm9udERlc2NyaXB0aW9uJiwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZm9udEZhY2VGZWF0
dXJlcywgY29uc3QgRm9udFZhcmlhbnRTZXR0aW5ncyogZm9udEZhY2VWYXJpYW50U2V0dGluZ3Ms
IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMs
IGZsb2F0IHNpemUsIGJvb2wgYXBwbHlXZWlnaHRXaWR0aFNsb3BlVmFyaWF0aW9ucyA9IHRydWUp
OworU3ludGhlc2lzUGFpciBjb21wdXRlTmVjZXNzYXJ5U3ludGhlc2lzKENURm9udFJlZiwgY29u
c3QgRm9udERlc2NyaXB0aW9uJiwgYm9vbCBpc1BsYXRmb3JtRm9udCA9IGZhbHNlKTsKK1JldGFp
blB0cjxDVEZvbnRSZWY+IHBsYXRmb3JtRm9udFdpdGhGYW1pbHlTcGVjaWFsQ2FzZShjb25zdCBB
dG9taWNTdHJpbmcmIGZhbWlseSwgRm9udFNlbGVjdGlvblJlcXVlc3QsIGZsb2F0IHNpemUpOwor
UmV0YWluUHRyPENURm9udFJlZj4gcGxhdGZvcm1Gb250V2l0aEZhbWlseShjb25zdCBBdG9taWNT
dHJpbmcmIGZhbWlseSwgRm9udFNlbGVjdGlvblJlcXVlc3QsIFRleHRSZW5kZXJpbmdNb2RlLCBm
bG9hdCBzaXplKTsKK2Jvb2wgcmVxdWlyZXNDdXN0b21GYWxsYmFja0ZvbnQoVUNoYXIzMiBjaGFy
YWN0ZXIpOworRm9udFNlbGVjdGlvbkNhcGFiaWxpdGllcyBjYXBhYmlsaXRpZXNGb3JGb250RGVz
Y3JpcHRvcihDVEZvbnREZXNjcmlwdG9yUmVmKTsKK3ZvaWQgYWRkQXR0cmlidXRlc0ZvclVzZXJJ
bnN0YWxsZWRGb250cyhDRk11dGFibGVEaWN0aW9uYXJ5UmVmIGF0dHJpYnV0ZXMsIEFsbG93VXNl
ckluc3RhbGxlZEZvbnRzKTsKK1JldGFpblB0cjxDRlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRl
c0ZvclVzZXJJbnN0YWxsZWRGb250cyhBbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CisKK30KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9t
UGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRleCAwNjlhNzk1MmI5YTUzM2MwOGQ0OWM0OTk5
MjQ1MjUzNjgyODJmNDFmLi4wNGE4MDFkNzdlOTU5OTYwZGNjYzliNzMwN2IyZjA4YzI1OTM5N2Yy
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5j
bHVkZSAiRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5oIgogCiAjaW5jbHVkZSAiRm9udENhY2hlLmgi
CisjaW5jbHVkZSAiRm9udENhY2hlQ29yZVRleHQuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRp
b24uaCIKICNpbmNsdWRlICJGb250UGxhdGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVm
ZmVyLmgiCkBAIC0zNCwxMCArMzUsMTcgQEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRD
dXN0b21QbGF0Zm9ybURhdGEoKSA9IGRlZmF1bHQ7CiAKIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1
c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24m
IGZvbnREZXNjcmlwdGlvbiwgYm9vbCBib2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1
cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0dXJlcywgY29uc3QgRm9udFZhcmlhbnRTZXR0aW5ncyYg
Zm9udEZhY2VWYXJpYW50U2V0dGluZ3MsIEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRp
ZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMpCiB7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRD
RihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZU
eXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpKTsKKyAgICBhZGRBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKGF0dHJpYnV0ZXMu
Z2V0KCksIGZvbnREZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsK
KyAgICBhdXRvIG1vZGlmaWVkRm9udERlc2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0
b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0ZXMobV9mb250RGVzY3JpcHRvci5nZXQoKSwgYXR0cmli
dXRlcy5nZXQoKSkpOworICAgIFJldGFpblB0cjxDRlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRl
cyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoZm9udERlc2NyaXB0
aW9uLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpOworICAgIGF1dG8gbWF0Y2hpbmdG
b250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9u
dERlc2NyaXB0b3IobW9kaWZpZWRGb250RGVzY3JpcHRvci5nZXQoKSwgbWFuZGF0b3J5QXR0cmli
dXRlcy5nZXQoKSkpOworICAgIEFTU0VSVChtYXRjaGluZ0ZvbnREZXNjcmlwdG9yKTsKKwogICAg
IGludCBzaXplID0gZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCk7CiAgICAgRm9u
dE9yaWVudGF0aW9uIG9yaWVudGF0aW9uID0gZm9udERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCk7
CiAgICAgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQgPSBmb250RGVzY3JpcHRpb24ud2lk
dGhWYXJpYW50KCk7Ci0gICAgUmV0YWluUHRyPENURm9udFJlZj4gZm9udCA9IGFkb3B0Q0YoQ1RG
b250Q3JlYXRlV2l0aEZvbnREZXNjcmlwdG9yKG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUs
IG51bGxwdHIpKTsKKyAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRDRihDVEZv
bnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IobWF0Y2hpbmdGb250RGVzY3JpcHRvci5nZXQoKSwg
c2l6ZSwgbnVsbHB0cikpOwogICAgIGZvbnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KGZvbnQuZ2V0
KCksIGZvbnREZXNjcmlwdGlvbiwgJmZvbnRGYWNlRmVhdHVyZXMsICZmb250RmFjZVZhcmlhbnRT
ZXR0aW5ncywgZm9udEZhY2VDYXBhYmlsaXRpZXMsIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNp
emUoKSk7CiAgICAgQVNTRVJUKGZvbnQpOwogICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZv
bnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwg
Zm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCkpOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3RleHQvVGV4dEZsYWdzLmgKaW5kZXggZGZkZTViZjZhNDYzNDQzYzI1ZGE1NmI1Yzk1NTk0
YmMyZDE1MWYxOS4uNDEyYjk2ZmEyYzJiZTdjNDU1YmRjOThlZjk0MmU5NmU4ZGNkYzViYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oCkBAIC0xLDUgKzEsNSBAQAog
LyoKLSAqIENvcHlyaWdodCAoQykgMjAwMywgMjAwNiBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2LCAyMDE3IEFwcGxlIEluYy4gIEFs
bCByaWdodHMgcmVzZXJ2ZWQuCiAgKgogICogUmVkaXN0cmlidXRpb24gYW5kIHVzZSBpbiBzb3Vy
Y2UgYW5kIGJpbmFyeSBmb3Jtcywgd2l0aCBvciB3aXRob3V0CiAgKiBtb2RpZmljYXRpb24sIGFy
ZSBwZXJtaXR0ZWQgcHJvdmlkZWQgdGhhdCB0aGUgZm9sbG93aW5nIGNvbmRpdGlvbnMKQEAgLTM2
Miw0ICszNjIsOSBAQCBlbnVtIGNsYXNzIEZvbnRTdHlsZUF4aXMgewogICAgIGl0YWwKIH07CiAK
K2VudW0gY2xhc3MgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgeworICAgIFllcywKKyAgICBObwor
fTsKKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9y
RG9jdW1lbnQuY3BwIGIvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1l
bnQuY3BwCmluZGV4IGNiZjY3MjM0MjY4ZjRjMzc3MGJmZjNlYTA5NWY5OTg3MzIyZDQxMmYuLmNh
OTY2NzBlMjM4ZWFkMmM0ZmNiMDRjMDIyN2RiNTZlZWMzMGQzZmUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKQEAgLTEwOSw3ICsxMDks
NyBAQCBSZW5kZXJTdHlsZSByZXNvbHZlRm9yRG9jdW1lbnQoY29uc3QgRG9jdW1lbnQmIGRvY3Vt
ZW50KQogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRMb2NhbGUoZG9jdW1lbnQuY29udGVudExhbmd1
YWdlKCkpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRSZW5kZXJpbmdNb2RlKHNldHRpbmdzLmZv
bnRSZW5kZXJpbmdNb2RlKCkpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkoc3Rh
bmRhcmRGYW1pbHkpOwotICAgIGZvbnREZXNjcmlwdGlvbi5zZXRNYXlSZXByZXNlbnRVc2VySW5z
dGFsbGVkRm9udCghc2V0dGluZ3Muc2hvdWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7
CisgICAgZm9udERlc2NyaXB0aW9uLnNldFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKHNl
dHRpbmdzLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpOwogCiAgICAgZm9udERlc2Ny
aXB0aW9uLnNldEtleXdvcmRTaXplRnJvbUlkZW50aWZpZXIoQ1NTVmFsdWVNZWRpdW0pOwogICAg
IGludCBzaXplID0gZm9udFNpemVGb3JLZXl3b3JkKENTU1ZhbHVlTWVkaXVtLCBmYWxzZSwgZG9j
dW1lbnQpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMu
eWFtbCBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwKaW5kZXggMWY0
YjlkOTU1ZGFjZmE1OGFiMzcyY2ZmNzYwNTQzNzllOGI2Mzc5Yy4uYWE0NTBlM2QxNzMzNTI0ZmRm
MGYzYWZiOTBhMjQ4OTg0ZDVkNmIzOCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9TaGFyZWQv
V2ViUHJlZmVyZW5jZXMueWFtbAorKysgYi9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sCkBAIC0xMDM3LDYgKzEwMzcsNyBAQCBWaXNpYmxlRGVidWdPdmVybGF5UmVnaW9u
czoKIFNob3VsZERpc2FsbG93VXNlckluc3RhbGxlZEZvbnRzOgogICB0eXBlOiBib29sCiAgIGRl
ZmF1bHRWYWx1ZTogZmFsc2UKKyAgd2ViY29yZUJpbmRpbmc6IGN1c3RvbQogCiAKICMgRm9yIGV4
cGVyaW1lbnRhbCBmZWF0dXJlczoKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vz
cy9XZWJQYWdlL1dlYlBhZ2UuY3BwIGIvU291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2Uv
V2ViUGFnZS5jcHAKaW5kZXggYzMwMmM1OTQzZjdjMmRlN2YwYzJmZjNmMzhmMjc5ZWIzYTRjNjU0
Yi4uN2E1ZGY2YzZlYmY4OThmMzg2ZDk2YzJjMTgzYTI5YzdmZDE2ZDFkMyAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKKysrIGIvU291cmNl
L1dlYktpdC9XZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAKQEAgLTMwNjIsNiArMzA2Miw3
IEBAIHZvaWQgV2ViUGFnZTo6dXBkYXRlUHJlZmVyZW5jZXMoY29uc3QgV2ViUHJlZmVyZW5jZXNT
dG9yZSYgc3RvcmUpCiAgICAgc2V0dGluZ3Muc2V0U3RvcmFnZUJsb2NraW5nUG9saWN5KHN0YXRp
Y19jYXN0PFNlY3VyaXR5T3JpZ2luOjpTdG9yYWdlQmxvY2tpbmdQb2xpY3k+KHN0b3JlLmdldFVJ
bnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpzdG9yYWdlQmxvY2tpbmdQb2xpY3lL
ZXkoKSkpKTsKICAgICBzZXR0aW5ncy5zZXRGcmFtZUZsYXR0ZW5pbmcoc3RhdGljX2Nhc3Q8V2Vi
Q29yZTo6RnJhbWVGbGF0dGVuaW5nPihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVm
ZXJlbmNlc0tleTo6ZnJhbWVGbGF0dGVuaW5nS2V5KCkpKSk7CiAgICAgc2V0dGluZ3Muc2V0RWRp
dGFibGVMaW5rQmVoYXZpb3Ioc3RhdGljX2Nhc3Q8V2ViQ29yZTo6RWRpdGFibGVMaW5rQmVoYXZp
b3I+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjplZGl0YWJs
ZUxpbmtCZWhhdmlvcktleSgpKSkpOworICAgIHNldHRpbmdzLnNldFNob3VsZEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzKHN0b3JlLmdldEJvb2xWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6
c2hvdWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9udHNLZXkoKSkgPyBXZWJDb3JlOjpBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250czo6Tm8gOiBXZWJDb3JlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6
WWVzKTsKICNpZiBFTkFCTEUoREFUQV9ERVRFQ1RJT04pCiAgICAgc2V0dGluZ3Muc2V0RGF0YURl
dGVjdG9yVHlwZXMoc3RhdGljX2Nhc3Q8RGF0YURldGVjdG9yVHlwZXM+KHN0b3JlLmdldFVJbnQz
MlZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2VzS2V5OjpkYXRhRGV0ZWN0b3JUeXBlc0tleSgpKSkp
OwogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329785</attachid>
            <date>2017-12-19 12:00:31 -0800</date>
            <delta_ts>2017-12-19 15:55:23 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171219120030.patch</filename>
            <type>text/plain</type>
            <size>40200</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MTI5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZTBlOWQxZGVjNjkyZTU5
YzYzMmViM2YwNDFmMjhlMTkyYjkyOGNlNi4uNTcyMmYyYTJiZmU5NWMxYWViNDQ2ZGVkYjJiM2I2
M2Y0OTZiNDJkNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTEyLTE5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzYwMjk5MTk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZWZh
Y3RvcnMgdGhlIGV4aXN0aW5nIHVzZXItaW5zdGFsbGVkLWZvbnRzIGNvZGUgdG8gYSBuZXcgc2hh
cmVkIGxvY2F0aW9uLCBpbiBGb250Q2FjaGVDb3JlVGV4dCwKKyAgICAgICAgYW5kIGNhbGxzIHRo
aXMgbmV3IHNoYXJlZCBjb2RlIGZyb20gRm9udEN1c3RvbVBsYXRmb3JtRGF0YSBjb2RlIChmb3Ig
V2ViIGZvbnRzKS4gSXQgYWxzbyBpbXByb3ZlcyB0aGVzZQorICAgICAgICBmdW5jdGlvbnMgdG8g
aW5jbHVkZSBhbm90aGVyIENvcmVUZXh0IGZvbnQgYXR0cmlidXRlIHdoaWNoIHdpbGwgbWFrZSBm
b250IGZhbGxiYWNrIG9iZXkgdGhlIHJ1bGVzIGFib3V0CisgICAgICAgIHVzZXItaW5zdGFsbGVk
IGZvbnRzLiBJdCBhbHNvIG1pZ3JhdGVzIHNvbWUgcmF3IGJvb2xlYW4gdmFsdWVzIHRvIHVzZSBl
bnVtIGNsYXNzZXMuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBmYXN0
L3RleHQvdXNlci1pbnN0YWxsZWQvIChtb3JlIG9mIHRoZW0gcGFzcyBub3cpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgYSBuZXcgaGVhZGVyOiBG
b250Q2FjaGVDb3JlVGV4dC5oIChhbmQgc29ydCB0aGUgZmlsZSkuCisgICAgICAgICogY3NzL0NT
U0ZvbnRGYWNlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU2V0OjplbnN1
cmVMb2NhbEZvbnRGYWNlc0ZvckZhbWlseVJlZ2lzdGVyZWQpOiBNaWdyYXRlIGEgYm9vbCB0byBh
biBlbnVtIGNsYXNzLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRpYWxpemVGb250U3R5bGUpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uS2V5
OjptYWtlRmxhZ3NLZXkpOiBNYWtlIGNhY2hlcyBzZW5zaXRpdmUgdG8gd2hldGhlciBvciBub3Qg
d2Ugc2hvdWxkIGRpc2FsbG93CisgICAgICAgIHVzZXItaW5zdGFsbGVkIGZvbnRzCisgICAgICAg
IChXZWJDb3JlOjpTeW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogRGVsZXRlZC4gTW92ZWQg
dG8gRm9udENhY2hlQ29yZVRleHQuaAorICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6
Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTogRGVsZXRlZC4gRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVtIGNs
YXNzLgorICAgICAgICAoV2ViQ29yZTo6bV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzIGNvbnN0KTogTWlncmF0ZSBhIGJvb2wgdG8gYW4gZW51bSBjbGFzcy4KKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0
b3I9PSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpt
YXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCBjb25zdCk6IERlbGV0ZWQuIERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRNYXlSZXByZXNlbnRVc2VySW5zdGFs
bGVkRm9udCk6IERlbGV0ZWQuIERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREYXRhYmFz
ZTo6c2luZ2xldG9uKTogTWlncmF0ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRG
bGFncy5oCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OnNpbmdsZXRvbkFsbG93aW5n
VXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJh
c2U6OnNpbmdsZXRvbkRpc2FsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmNvbGxlY3Rpb25Gb3JGYW1pbHkpOiBDYWxsIHRo
ZSBzaGFyZWQgZnVuY3Rpb25zIHRvIHVwZGF0ZSB0aGUgRm9udERlc2NyaXB0b3IuCisgICAgICAg
IChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmZvbnRGb3JQb3N0U2NyaXB0TmFtZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGFiYXNlOjpGb250RGF0YWJhc2UpOiBNaWdyYXRlIHRo
ZSBlbnVtIGNsYXNzIHRvIHRoZSBzaGFyZWQgVGV4dEZsYWdzLmgKKyAgICAgICAgKFdlYkNvcmU6
OnBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVt
IGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6Zm9udFdpdGhGYW1pbHkpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OmFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMpOiBBZGQgYW5v
dGhlciBwYXJhbWV0ZXIgdG8gdGhlIEZvbnREZXNjcmlwdG9yIHRvIGVuZm9yY2UKKyAgICAgICAg
Q29yZSBUZXh0IGZvbnQgZmFsbGJhY2sgaGFwcGVucyBhY2NvcmRpbmcgdG8gdGhlIHVzZXItaW5z
dGFsbGVkIGZvbnQgcnVsZXMuCisgICAgICAgIChXZWJDb3JlOjptYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
eW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogTWlncmF0ZWQgZnJvbSBGb250Q2FjaGUuaAor
ICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9u
dFBsYXRmb3JtRGF0YSk6IENhbGwgdGhlIHNoYXJlZCBmdW5jdGlvbnMgdG8gcHJlcGFyZSB0aGUg
Rm9udERlc2NyaXB0b3IuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDogTW92
ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRGbGFncy5oCisgICAgICAgICogc3R5
bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OnJlc29sdmVGb3JEb2N1bWVudCk6IE1pZ3JhdGUgYSBib29sIHRvIGFuIGVudW0gY2xhc3MuCisK
IDIwMTctMTItMTkgIFl1c3VrZSBTdXp1a2kgIDx1dGF0YW5lLnRlYUBnbWFpbC5jb20+CiAKICAg
ICAgICAgW1lBUlJdIFlhcnIgc2hvdWxkIHJldHVybiBFcnJvckNvZGUgaW5zdGVhZCBvZiBlcnJv
ciBtZXNzYWdlcyAoY29uc3QgY2hhciopCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwv
Q2hhbmdlTG9nIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwppbmRleCBjMjYzM2VlOTU3
YzllN2FkODcwYThmZjY2Zjc5NTZhNjNjYjI4YmQ2Li45ZDkyN2U0NjUzYjQ4NTRiOWRjYzFlMzY3
ODk3YmM4ZWM4Zjc5ZTQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9n
CisrKyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxMyBAQAorMjAx
Ny0xMi0xOSAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAg
ICAgIEEgZGlzYWxsb3dlZCB1c2VyLWluc3RhbGxlZCBmb250IG1heSBiZSB1c2VkIGlmIGl0cyBQ
b3N0U2NyaXB0IG5hbWUgaXMgc3BlY2lmaWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5NTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2MDI5
OTE5PgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICog
cGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oOgorCiAyMDE3LTEyLTE5ICBBbmR5IEVzdGVzICA8
YWVzdGVzQGFwcGxlLmNvbT4KIAogICAgICAgICBbQXBwbGUgUGF5XSBTdG9wIG1haW50YWluaW5n
IGEgbGlzdCBvZiBwYXltZW50IG5ldHdvcmtzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCmluZGV4IDcyYWNiNzFkZTY5OTU5ZjNl
ODllMDUwYWViNWIzZDE2YTQyODkzMjMuLjZjNDg4MTRkNDNjOWJlZjZlMzRmMjg0NTY5Y2U2MTRh
ODdiZGY5MjMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9nCisrKyBiL1NvdXJj
ZS9XZWJLaXQvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTctMTItMTkgIE15bGVzIEMu
IE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBBIGRpc2FsbG93ZWQg
dXNlci1pbnN0YWxsZWQgZm9udCBtYXkgYmUgdXNlZCBpZiBpdHMgUG9zdFNjcmlwdCBuYW1lIGlz
IHNwZWNpZmllZAorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/
aWQ9MTgwOTUxCisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8zNjAyOTkxOT4KKworICAgICAgICBS
ZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBNaWdyYXRlIGEgYm9vbCB0byBh
biBlbnVtIGNsYXNzLgorCisgICAgICAgICogU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWw6Cisg
ICAgICAgICogV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwOgorICAgICAgICAoV2ViS2l0
OjpXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyk6CisKIDIwMTctMTItMTkgIFlvdWVubiBGYWJs
ZXQgIDx5b3Vlbm5AYXBwbGUuY29tPgogCiAgICAgICAgIFNlcnZpY2UgV29ya2VyIHNob3VsZCBu
b3QgY2xlYW4gSFRUUCBoZWFkZXJzIGFkZGVkIGJ5IHRoZSBhcHBsaWNhdGlvbiBvciBieSBmZXRj
aCBzcGVjaWZpY2F0aW9uIGJlZm9yZSBzZXJ2aWNlIHdvcmtlciBpbnRlcmNlcHRpb24KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmggYi9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCmluZGV4IDdkY2Zj
ZGVkM2UzMTVlNmU1MGM2Y2Y4YzUyMWQ5YzAxMDU4ZGY4M2MuLjY3ZTZiYTUxNWQ3YmMzYjFhYzNm
NmNiYTZjODI2Y2E1MWM1MjBkMjkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwv
c3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkv
Y29jb2EvQ29yZVRleHRTUEkuaApAQCAtNTUsNiArNTUsMTMgQEAgZW51bSB7CiAgICAga0NUUnVu
U3RhdHVzSGFzT3JpZ2lucyA9ICgxIDw8IDQpLAogfTsKIAordHlwZWRlZiBDRl9PUFRJT05TKENG
T3B0aW9uRmxhZ3MsIENURm9udEZhbGxiYWNrT3B0aW9uKSB7CisgICAga0NURm9udEZhbGxiYWNr
T3B0aW9uTm9uZSA9IDAsCisgICAga0NURm9udEZhbGxiYWNrT3B0aW9uU3lzdGVtID0gMSA8PCAw
LAorICAgIGtDVEZvbnRGYWxsYmFja09wdGlvblVzZXJJbnN0YWxsZWQgPSAxIDw8IDEsCisgICAg
a0NURm9udEZhbGxiYWNrT3B0aW9uRGVmYXVsdCA9IGtDVEZvbnRGYWxsYmFja09wdGlvblN5c3Rl
bSB8IGtDVEZvbnRGYWxsYmFja09wdGlvblVzZXJJbnN0YWxsZWQsCit9OworCiAjZW5kaWYKIAog
V1RGX0VYVEVSTl9DX0JFR0lOCkBAIC02Niw2ICs3Myw3IEBAIGV4dGVybiBjb25zdCBDRlN0cmlu
Z1JlZiBrQ1RGb250UmVmZXJlbmNlVVJMQXR0cmlidXRlOwogZXh0ZXJuIGNvbnN0IENGU3RyaW5n
UmVmIGtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1Jl
ZiBrQ1RGb250UG9zdFNjcmlwdE5hbWVBdHRyaWJ1dGU7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdS
ZWYga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGU7CitleHRlcm4gY29uc3QgQ0ZTdHJpbmdS
ZWYga0NURm9udEZhbGxiYWNrT3B0aW9uQXR0cmlidXRlOwogCiBib29sIENURm9udFRyYW5zZm9y
bUdseXBocyhDVEZvbnRSZWYsIENHR2x5cGggZ2x5cGhzW10sIENHU2l6ZSBhZHZhbmNlc1tdLCBD
RkluZGV4IGNvdW50LCBDVEZvbnRUcmFuc2Zvcm1PcHRpb25zKTsKIApkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dl
YkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qCmluZGV4IDNlM2IyZWI4Y2Zh
YjE0NzcwMzUxMzM2M2JlYmFjNjg2NzljZWQ3MmQuLjFiMjNlYWE5M2Q5MmQwMGIwNGFmNmFmNmIy
MTEwZGQ3ZjBjMTQwNjggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVw
cm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJv
ai9wcm9qZWN0LnBieHByb2oKQEAgLTM3MjEsNiArMzcyMSw3IEBACiAJCUMxMDVEQTY0MEYzQUE2
QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdEZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNh
ID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzEwNURBNjMwRjNBQTZCODAwMURENDRGIC8qIFRl
eHRFbmNvZGluZ0RldGVjdG9yLmggKi87IH07CiAJCUMyMDE1QzBBMUJFNkZFQjIwMDgyMjM4OSAv
KiBGb250VmFyaWFudEJ1aWxkZXIuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmls
ZTsgZmlsZVJlZiA9IEMyMDE1QzA5MUJFNkZFMkMwMDgyMjM4OSAvKiBGb250VmFyaWFudEJ1aWxk
ZXIuaCAqLzsgfTsKIAkJQzIxREYyRUExRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRp
b25WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzIxREYyRTgxRDlFNEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oICovOyB9
OworCQlDMjQ1OEU2MzFGRTg5N0IwMDA1OTQ3NTkgLyogRm9udENhY2hlQ29yZVRleHQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyNDU4RTYxMUZFODk3
OUUwMDU5NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJV
VEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUMyNjAxN0E0MUM3MkRDOTkwMEY3NEExNiAvKiBD
U1NGb250RmFjZVNldC5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxl
UmVmID0gQzI2MDE3QTIxQzcyREM5OTAwRjc0QTE2IC8qIENTU0ZvbnRGYWNlU2V0LmggKi87IH07
CiAJCUMyODA4MzNGMUM2REMyNkYwMDE0NTFCNiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAq
LyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBDMjgwODMzRTFDNkRDMjJDMDAxNDUx
QjYgLyogSlNGb250RmFjZS5oICovOyB9OwogCQlDMkFCMEFGNzFFNkIzQzZDMDAxMzQ4QzUgLyog
Rm9udFNlbGVjdGlvbkFsZ29yaXRobS5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRG
aWxlOyBmaWxlUmVmID0gQzJBQjBBRjUxRTZCM0M2QzAwMTM0OEM1IC8qIEZvbnRTZWxlY3Rpb25B
bGdvcml0aG0uaCAqLzsgc2V0dGluZ3MgPSB7QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9
OwpAQCAtMTI2MzksNiArMTI2NDAsNyBAQAogCQlDMjAxNUMwOTFCRTZGRTJDMDA4MjIzODkgLyog
Rm9udFZhcmlhbnRCdWlsZGVyLmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IEZvbnRWYXJpYW50QnVpbGRlci5o
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjFERjJFNzFEOUU0RTk5MDBGNUIyNEMg
LyogQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNwcCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNw
cDsgcGF0aCA9IENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CiAJCUMyMURGMkU4MUQ5RTRFOTkwMEY1QjI0QyAvKiBDU1NGb250VmFyaWF0aW9uVmFs
dWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udFZhcmlhdGlvblZh
bHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CisJCUMyNDU4RTYxMUZFODk3OUUwMDU5
NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jLmg7IHBhdGggPSBGb250Q2FjaGVDb3Jl
VGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjYwMTdBMTFDNzJEQzk5MDBG
NzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuY3BwICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7
IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3Bw
OyBwYXRoID0gQ1NTRm9udEZhY2VTZXQuY3BwOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9Owog
CQlDMjYwMTdBMjFDNzJEQzk5MDBGNzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuaCAqLyA9IHtpc2Eg
PSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9
IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NTRm9udEZhY2VTZXQuaDsgc291cmNlVHJlZSA9ICI8
Z3JvdXA+IjsgfTsKIAkJQzI4MDgzM0MxQzZEQjE5NDAwMTQ1MUI2IC8qIEZvbnRGYWNlLmlkbCAq
LyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25G
aWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGb250RmFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CkBAIC0yMzAwNiw2ICsyMzAwOCw3IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNo
aWxkcmVuID0gKAogCQkJCTFDMzk2OUNGMUI3NDIxMUUwMDJCQ0ZBNyAvKiBGb250Q2FjaGVDb3Jl
VGV4dC5jcHAgKi8sCisJCQkJQzI0NThFNjExRkU4OTc5RTAwNTk0NzU5IC8qIEZvbnRDYWNoZUNv
cmVUZXh0LmggKi8sCiAJCQkJQjJBRkZDNzgwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDYXNjYWRl
Q29jb2EubW0gKi8sCiAJCQkJN0M0RURENzMxQTdCNjA3ODAwMTk4QzREIC8qIEZvbnRDb2NvYS5t
bSAqLywKIAkJCQkxQzEyQUMyQzFFRTc3OTk1MDA3OUUwQTAgLyogRm9udERlc2NyaXB0aW9uQ29j
b2EuY3BwICovLApAQCAtMjY5MjgsNiArMjY5MzEsNyBAQAogCQkJCTUxN0E1MzVCMUY1ODhBNEMw
MERDREMwQSAvKiBGZXRjaEJvZHlDb25zdW1lci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyOUM5
OTcxRjU5Qjk2MzAwOUQ3NDAzIC8qIEZldGNoQm9keVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJ
CQkJNDFEMTI5REIxRjNEMTQzODAwRDE1RTQ3IC8qIEZldGNoSGVhZGVycy5oIGluIEhlYWRlcnMg
Ki8sCisJCQkJNDE2MUUyRDUxRkU0OERDNTAwRUMyRTk2IC8qIEZldGNoTG9hZGVyLmggaW4gSGVh
ZGVycyAqLywKIAkJCQk1MTdBNTM1ODFGNTg4OUU4MDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXJDbGll
bnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQxQUQ3NTNBMUNFRjZCRDEwMEEzMTQ4NiAvKiBGZXRj
aE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAogCQkJCTdDRTE5MTREMUYyQTlBRkIwMDI3MkY3OCAv
KiBGZXRjaFJlZmVycmVyUG9saWN5LmggaW4gSGVhZGVycyAqLywKQEAgLTI2OTkwLDYgKzI2OTk0
LDcgQEAKIAkJCQkxQUMyRDg5RDFCMUUyOTFGMDBENTJFODcgLyogRm9udEFudGlhbGlhc2luZ1N0
YXRlU2F2ZXIuaCBpbiBIZWFkZXJzICovLAogCQkJCUJDQjkyRDRGMTI5MzU1MEIwMEM4Mzg3RiAv
KiBGb250QmFzZWxpbmUuaCBpbiBIZWFkZXJzICovLAogCQkJCUIyQzNEQTYzMEQwMDZDRDYwMEVG
NkYyNiAvKiBGb250Q2FjaGUuaCBpbiBIZWFkZXJzICovLAorCQkJCUMyNDU4RTYzMUZFODk3QjAw
MDU5NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RB
NjEwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRDYXNjYWRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlC
MkMzREE2ODBEMDA2Q0Q2MDBFRjZGMjYgLyogRm9udENhc2NhZGVGb250cy5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQjJBRkZDN0UwRDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURh
dGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjczODksNyArMjczOTQsNiBAQAogCQkJCTdBNTQ4NTgw
MTRFMDJENTEwMDZBRTA1QSAvKiBJbnNwZWN0b3JIaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJ
CQlBNUI4MUNBRTFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCBp
biBIZWFkZXJzICovLAogCQkJCTIwRDYyOTI3MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJ
bnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJzICovLAotCQkJCTQxNjFFMkQ1MUZFNDhEQzUwMEVD
MkU5NiAvKiBGZXRjaExvYWRlci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTU4NDBFMUQxODdCNzRE
NTAwODQzQjEwIC8qIEluc3BlY3Rvckluc3RydW1lbnRhdGlvbkNvb2tpZS5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJQTVCODFDQUYxRkFBNDQ2MjAwMzdEMUU2IC8qIEluc3BlY3RvckxheWVyVHJlZUFn
ZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNCMDFGQUE0NDYyMDAzN0QxRTYgLyogSW5z
cGVjdG9yTWVtb3J5QWdlbnQuaCBpbiBIZWFkZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvY3NzL0NTU0ZvbnRGYWNlU2V0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250
RmFjZVNldC5jcHAKaW5kZXggNWM0MDMxM2U1OWM2YzRkM2ZlMGZiMjdlZDgzNjhkMDY2NjE5NDEz
Ni4uZTg3NjdlNWEyZjU4MDE3ODkzMjFmNzE5ZjgxNTQwMWVmNDUzNzM4OCAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvQ1NTRm9udEZhY2VTZXQuY3BwCkBAIC0xMDQsOSArMTA0LDcgQEAgdm9pZCBDU1NGb250
RmFjZVNldDo6ZW5zdXJlTG9jYWxGb250RmFjZXNGb3JGYW1pbHlSZWdpc3RlcmVkKGNvbnN0IFN0
cmluZyYgZmFtaWwKICAgICBpZiAobV9sb2NhbGx5SW5zdGFsbGVkRmFjZXNMb29rdXBUYWJsZS5j
b250YWlucyhmYW1pbHlOYW1lKSkKICAgICAgICAgcmV0dXJuOwogCi0gICAgRm9udENhY2hlOjpB
bGxvd1VzZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9IEZvbnRDYWNo
ZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6OlllczsKLSAgICBpZiAobV9vd25pbmdGb250U2Vs
ZWN0b3ItPmRvY3VtZW50KCkgJiYgbV9vd25pbmdGb250U2VsZWN0b3ItPmRvY3VtZW50KCktPnNl
dHRpbmdzKCkuc2hvdWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSkKLSAgICAgICAgYWxs
b3dVc2VySW5zdGFsbGVkRm9udHMgPSBGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRz
OjpObzsKKyAgICBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250
cyA9IG1fb3duaW5nRm9udFNlbGVjdG9yLT5kb2N1bWVudCgpID8gbV9vd25pbmdGb250U2VsZWN0
b3ItPmRvY3VtZW50KCktPnNldHRpbmdzKCkuc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMo
KSA6IEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXM7CiAgICAgVmVjdG9yPEZvbnRTZWxlY3Rp
b25DYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGllcyA9IEZvbnRDYWNoZTo6c2luZ2xldG9uKCkuZ2V0
Rm9udFNlbGVjdGlvbkNhcGFiaWxpdGllc0luRmFtaWx5KGZhbWlseU5hbWUsIGFsbG93VXNlcklu
c3RhbGxlZEZvbnRzKTsKICAgICBpZiAoY2FwYWJpbGl0aWVzLmlzRW1wdHkoKSkKICAgICAgICAg
cmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3Bw
IGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwCmluZGV4IDdmZDI1YjhhYWQ1
YWJjNzBkZTEwOWIyNDE0NjI2NDdmZDc5ZjA1NWQuLjU5ZGMxZmQzZDRmMDVhYWM3OTgwZjE5MTIw
ZmVjNDc1OTE5Zjc3MGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29s
dmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE3
ODgsNyArMTc4OCw3IEBAIHZvaWQgU3R5bGVSZXNvbHZlcjo6aW5pdGlhbGl6ZUZvbnRTdHlsZSgp
CiAgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWlseShzdGFuZGFyZEZhbWlseSk7CiAgICAg
Zm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRTaXplRnJvbUlkZW50aWZpZXIoQ1NTVmFsdWVNZWRp
dW0pOwogICAgIHNldEZvbnRTaXplKGZvbnREZXNjcmlwdGlvbiwgU3R5bGU6OmZvbnRTaXplRm9y
S2V5d29yZChDU1NWYWx1ZU1lZGl1bSwgZmFsc2UsIGRvY3VtZW50KCkpKTsKLSAgICBmb250RGVz
Y3JpcHRpb24uc2V0TWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQoIXNldHRpbmdzKCkuc2hv
dWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNl
dFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKHNldHRpbmdzKCkuc2hvdWxkQWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMoKSk7CiAgICAgc2V0Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlv
bik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBi
L1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbAppbmRleCA5OTVlYjhkMWNjNDA5ZGQ5
ZGI5ZmMxYzdiOWZmZjJhODM1ODY0MWNhLi4wYjAzY2E3ZDdhZjk1ZmNlYWYyMTYxNWI4ZjJhNTYw
YzRiZDc5OGJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwK
KysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9TZXR0aW5ncy55YW1sCkBAIC02NjEsOCArNjYxLDkg
QEAgc3RvcmFnZUJsb2NraW5nUG9saWN5OgogICBpbml0aWFsOiBTZWN1cml0eU9yaWdpbjo6QWxs
b3dBbGxTdG9yYWdlCiAgIG9uQ2hhbmdlOiBzdG9yYWdlQmxvY2tpbmdQb2xpY3lDaGFuZ2VkCiAK
LXNob3VsZERpc2FsbG93VXNlckluc3RhbGxlZEZvbnRzOgotICBpbml0aWFsOiBmYWxzZQorc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6CisgIHR5cGU6IEFsbG93VXNlckluc3RhbGxlZEZv
bnRzCisgIGluaXRpYWw6IEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXMKICAgb25DaGFuZ2U6
IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZyYW1lcwogCiAjIE9ubHkgc2V0IGJ5IExheW91dCBU
ZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5k
ZXggNGFmNDdkNGIzNjM5OTQ3NTgyYzdlMDg0ODJhOWE1Yzc3MmE0ZGU0MS4uNWNkN2I2OGZkZmJi
NTk3OWI4MjA4Zjg4ZWNlYzNmNmRlOGI2ODVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlIDx3dGYv
dGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBMQVRGT1JNKENPQ09BKQotI2luY2x1ZGUgPENvcmVU
ZXh0L0NURm9udC5oPgorI2luY2x1ZGUgIkZvbnRDYWNoZUNvcmVUZXh0LmgiCiAjZW5kaWYKIAog
I2lmIE9TKFdJTkRPV1MpCkBAIC0xMjQsNyArMTI0LDggQEAgc3RydWN0IEZvbnREZXNjcmlwdGlv
bktleSB7CiBwcml2YXRlOgogICAgIHN0YXRpYyBzdGQ6OmFycmF5PHVuc2lnbmVkLCAyPiBtYWtl
RmxhZ3NLZXkoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcmlwdGlvbikKICAgICB7Ci0gICAg
ICAgIHVuc2lnbmVkIGZpcnN0ID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNj
cmlwdCgpKSA8PCAxMworICAgICAgICB1bnNpZ25lZCBmaXJzdCA9IHN0YXRpY19jYXN0PHVuc2ln
bmVkPihkZXNjcmlwdGlvbi5zY3JpcHQoKSkgPDwgMTQKKyAgICAgICAgICAgIHwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkp
IDw8IDEzCiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5m
b250U3R5bGVBeGlzKCkgPT0gRm9udFN0eWxlQXhpczo6c2xudCkgPDwgMTIKICAgICAgICAgICAg
IHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLm9wdGljYWxTaXppbmcoKSkgPDwg
MTEKICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnRleHRS
ZW5kZXJpbmdNb2RlKCkpIDw8IDkKQEAgLTIwMCwxMCArMjAxLDYgQEAgcHVibGljOgogICAgIHN0
YXRpYyBJTXVsdGlMYW5ndWFnZSogZ2V0TXVsdGlMYW5ndWFnZUludGVyZmFjZSgpOwogI2VuZGlm
CiAKLSAgICBlbnVtIGNsYXNzIEFsbG93VXNlckluc3RhbGxlZEZvbnRzIHsKLSAgICAgICAgWWVz
LAotICAgICAgICBObwotICAgIH07CiAgICAgLy8gVGhpcyBmdW5jdGlvbiBleGlzdHMgc28gQ1NT
Rm9udFNlbGVjdG9yIGNhbiBoYXZlIGEgdW5pZmllZCBub3Rpb24gb2YgcHJlaW5zdGFsbGVkIGZv
bnRzIGFuZCBAZm9udC1mYWNlLgogICAgIC8vIEl0IGNvbWVzIGludG8gcGxheSB3aGVuIHlvdSBj
cmVhdGUgYW4gQGZvbnQtZmFjZSB3aGljaCBzaGFyZXMgYSBmYW1pbHkgbmFtZSBhcyBhIHByZWlu
c3RhbGxlZCBmb250LgogICAgIFZlY3RvcjxGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzPiBnZXRG
b250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzSW5GYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiwgQWxs
b3dVc2VySW5zdGFsbGVkRm9udHMpOwpAQCAtMjcwLDMyICsyNjcsNyBAQCBpbmxpbmUgc3RkOjp1
bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3Jt
RGF0YUZvclRlcwogICAgIHJldHVybiBjcmVhdGVGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlw
dGlvbiwgZmFtaWx5LCBudWxscHRyLCBudWxscHRyLCB7IH0pOwogfQogCi0jaWYgUExBVEZPUk0o
Q09DT0EpCi0KLXN0cnVjdCBTeW50aGVzaXNQYWlyIHsKLSAgICBTeW50aGVzaXNQYWlyKGJvb2wg
bmVlZHNTeW50aGV0aWNCb2xkLCBib29sIG5lZWRzU3ludGhldGljT2JsaXF1ZSkKLSAgICAgICAg
OiBuZWVkc1N5bnRoZXRpY0JvbGQobmVlZHNTeW50aGV0aWNCb2xkKQotICAgICAgICAsIG5lZWRz
U3ludGhldGljT2JsaXF1ZShuZWVkc1N5bnRoZXRpY09ibGlxdWUpCi0gICAgewotICAgIH0KLQot
ICAgIHN0ZDo6cGFpcjxib29sLCBib29sPiBib2xkT2JsaXF1ZVBhaXIoKSBjb25zdAotICAgIHsK
LSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKG5lZWRzU3ludGhldGljQm9sZCwgbmVlZHNT
eW50aGV0aWNPYmxpcXVlKTsKLSAgICB9Ci0KLSAgICBib29sIG5lZWRzU3ludGhldGljQm9sZDsK
LSAgICBib29sIG5lZWRzU3ludGhldGljT2JsaXF1ZTsKLX07Ci0KLVJldGFpblB0cjxDVEZvbnRS
ZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmLCBjb25zdCBGb250RGVzY3JpcHRpb24m
LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiBmb250RmFjZUZlYXR1cmVzLCBjb25zdCBGb250
VmFyaWFudFNldHRpbmdzKiBmb250RmFjZVZhcmlhbnRTZXR0aW5ncywgRm9udFNlbGVjdGlvblNw
ZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcywgZmxvYXQgc2l6ZSwgYm9v
bCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zID0gdHJ1ZSk7Ci1TeW50aGVzaXNQYWly
IGNvbXB1dGVOZWNlc3NhcnlTeW50aGVzaXMoQ1RGb250UmVmLCBjb25zdCBGb250RGVzY3JpcHRp
b24mLCBib29sIGlzUGxhdGZvcm1Gb250ID0gZmFsc2UpOwotUmV0YWluUHRyPENURm9udFJlZj4g
cGxhdGZvcm1Gb250V2l0aEZhbWlseVNwZWNpYWxDYXNlKGNvbnN0IEF0b21pY1N0cmluZyYgZmFt
aWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgZmxvYXQgc2l6ZSk7Ci1SZXRhaW5QdHI8Q1RGb250
UmVmPiBwbGF0Zm9ybUZvbnRXaXRoRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBG
b250U2VsZWN0aW9uUmVxdWVzdCwgVGV4dFJlbmRlcmluZ01vZGUsIGZsb2F0IHNpemUpOwotYm9v
bCByZXF1aXJlc0N1c3RvbUZhbGxiYWNrRm9udChVQ2hhcjMyIGNoYXJhY3Rlcik7Ci1Gb250U2Vs
ZWN0aW9uQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllc0ZvckZvbnREZXNjcmlwdG9yKENURm9udERl
c2NyaXB0b3JSZWYpOwotCi0jZWxzZQorI2lmICFQTEFURk9STShDT0NPQSkKIAogaW5saW5lIHZv
aWQgRm9udENhY2hlOjpwbGF0Zm9ybVB1cmdlSW5hY3RpdmVGb250RGF0YSgpCiB7CmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcApp
bmRleCBkZjRhOWNjYjVkYjQ5MDc2OGQwZTEzZGM2MmZlYzVjNTAzZmFiNmU4Li4zZDVkZDM1NzE0
NjA3N2IyOGFlNTIzZTNhMzNlMjdiZmQyNDU2OWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5jcHAKQEAgLTgwLDcgKzgwLDcg
QEAgRm9udERlc2NyaXB0aW9uOjpGb250RGVzY3JpcHRpb24oKQogICAgICwgbV92YXJpYW50RWFz
dEFzaWFuUnVieShzdGF0aWNfY2FzdDx1bnNpZ25lZD4oRm9udFZhcmlhbnRFYXN0QXNpYW5SdWJ5
OjpOb3JtYWwpKQogICAgICwgbV9vcHRpY2FsU2l6aW5nKHN0YXRpY19jYXN0PHVuc2lnbmVkPihG
b250T3B0aWNhbFNpemluZzo6RW5hYmxlZCkpCiAgICAgLCBtX2ZvbnRTdHlsZUF4aXMoRm9udENh
c2NhZGVEZXNjcmlwdGlvbjo6aW5pdGlhbEZvbnRTdHlsZUF4aXMoKSA9PSBGb250U3R5bGVBeGlz
OjppdGFsKQotICAgICwgbV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCh0cnVlKQorICAg
ICwgbV9zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cyhzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6OlllcykpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnREZXNjcmlwdGlvbi5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKaW5kZXggOGI4ZmEyMjUw
M2UyYzUxMDUxYmRkODhhYmRiYzUwYTlmNWViZGE5YS4uMTViNGFmNjk0ZjM5ZmY5YWEzY2ZlYTJk
MjgxZjkwODVjZTVmN2I0MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udERlc2NyaXB0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udERlc2NyaXB0aW9uLmgKQEAgLTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAg
fQogICAgIEZvbnRPcHRpY2FsU2l6aW5nIG9wdGljYWxTaXppbmcoKSBjb25zdCB7IHJldHVybiBz
dGF0aWNfY2FzdDxGb250T3B0aWNhbFNpemluZz4obV9vcHRpY2FsU2l6aW5nKTsgfQogICAgIEZv
bnRTdHlsZUF4aXMgZm9udFN0eWxlQXhpcygpIGNvbnN0IHsgcmV0dXJuIG1fZm9udFN0eWxlQXhp
cyA/IEZvbnRTdHlsZUF4aXM6Oml0YWwgOiBGb250U3R5bGVBeGlzOjpzbG50OyB9Ci0gICAgYm9v
bCBtYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF5UmVw
cmVzZW50VXNlckluc3RhbGxlZEZvbnQ7IH0KKyAgICBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBz
aG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0
PEFsbG93VXNlckluc3RhbGxlZEZvbnRzPihtX3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRz
KTsgfQogCiAgICAgdm9pZCBzZXRDb21wdXRlZFNpemUoZmxvYXQgcykgeyBtX2NvbXB1dGVkU2l6
ZSA9IGNsYW1wVG9GbG9hdChzKTsgfQogICAgIHZvaWQgc2V0SXRhbGljKEZvbnRTZWxlY3Rpb25W
YWx1ZSBpdGFsaWMpIHsgbV9mb250U2VsZWN0aW9uUmVxdWVzdC5zbG9wZSA9IGl0YWxpYzsgfQpA
QCAtMTQ5LDcgKzE0OSw3IEBAIHB1YmxpYzoKICAgICB2b2lkIHNldFZhcmlhbnRFYXN0QXNpYW5S
dWJ5KEZvbnRWYXJpYW50RWFzdEFzaWFuUnVieSB2YXJpYW50KSB7IG1fdmFyaWFudEVhc3RBc2lh
blJ1YnkgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odmFyaWFudCk7IH0KICAgICB2b2lkIHNldE9w
dGljYWxTaXppbmcoRm9udE9wdGljYWxTaXppbmcgc2l6aW5nKSB7IG1fb3B0aWNhbFNpemluZyA9
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzaXppbmcpOyB9CiAgICAgdm9pZCBzZXRGb250U3R5bGVB
eGlzKEZvbnRTdHlsZUF4aXMgYXhpcykgeyBtX2ZvbnRTdHlsZUF4aXMgPSBheGlzID09IEZvbnRT
dHlsZUF4aXM6Oml0YWw7IH0KLSAgICB2b2lkIHNldE1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRG
b250KGJvb2wgbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQpIHsgbV9tYXlSZXByZXNlbnRV
c2VySW5zdGFsbGVkRm9udCA9IG1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250OyB9CisgICAg
dm9pZCBzZXRTaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cyhBbGxvd1VzZXJJbnN0YWxsZWRG
b250cyBzaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cykgeyBtX3Nob3VsZEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzID0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHNob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzKTsgfQogCiAgICAgc3RhdGljIHZvaWQgaW52YWxpZGF0ZUNhY2hlcygpOwogCkBA
IC0xODUsNyArMTg1LDcgQEAgcHJpdmF0ZToKICAgICB1bnNpZ25lZCBtX3ZhcmlhbnRFYXN0QXNp
YW5SdWJ5IDogMTsgLy8gRm9udFZhcmlhbnRFYXN0QXNpYW5SdWJ5CiAgICAgdW5zaWduZWQgbV9v
cHRpY2FsU2l6aW5nIDogMTsgLy8gRm9udE9wdGljYWxTaXppbmcKICAgICB1bnNpZ25lZCBtX2Zv
bnRTdHlsZUF4aXMgOiAxOyAvLyBXaGV0aGVyICJmb250LXN0eWxlOiBpdGFsaWMiIG9yICJmb250
LXN0eWxlOiBvYmxpcXVlIDIwZGVnIiB3YXMgc3BlY2lmaWVkCi0gICAgdW5zaWduZWQgbV9tYXlS
ZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCA6IDE7IC8vIElmIHRoaXMgZGVzY3JpcHRpb24gaXMg
YWxsb3dlZCB0byBtYXRjaCBhIHVzZXItaW5zdGFsbGVkIGZvbnQKKyAgICB1bnNpZ25lZCBtX3No
b3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzIDogMTsgLy8gSWYgdGhpcyBkZXNjcmlwdGlvbiBp
cyBhbGxvd2VkIHRvIG1hdGNoIGEgdXNlci1pbnN0YWxsZWQgZm9udAogfTsKIAogaW5saW5lIGJv
b2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgb3Ro
ZXIpIGNvbnN0CkBAIC0yMjAsNyArMjIwLDcgQEAgaW5saW5lIGJvb2wgRm9udERlc2NyaXB0aW9u
OjpvcGVyYXRvcj09KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgb3RoZXIpIGNvbnN0CiAgICAgICAg
ICYmIG1fdmFyaWFudEVhc3RBc2lhblJ1YnkgPT0gb3RoZXIubV92YXJpYW50RWFzdEFzaWFuUnVi
eQogICAgICAgICAmJiBtX29wdGljYWxTaXppbmcgPT0gb3RoZXIubV9vcHRpY2FsU2l6aW5nCiAg
ICAgICAgICYmIG1fZm9udFN0eWxlQXhpcyA9PSBvdGhlci5tX2ZvbnRTdHlsZUF4aXMKLSAgICAg
ICAgJiYgbV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCA9PSBvdGhlci5tX21heVJlcHJl
c2VudFVzZXJJbnN0YWxsZWRGb250OworICAgICAgICAmJiBtX3Nob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzID09IG90aGVyLm1fc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHM7CiB9CiAK
IC8vIEZJWE1FOiBNb3ZlIHRvIGEgZmlsZSBvZiBpdHMgb3duLgpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQu
Y3BwCmluZGV4IGNlNzAzNzQxNTA2OWUwNzMxM2FiOThhZDk1MzcyMTYwYWQ5ZGI2ZjMuLmQ3ZGNh
YzQxYWZlY2FiY2Y2N2U4YmUwZDBlODcxNDRkMTUzYzdlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4
dC5jcHAKQEAgLTgzMyw3ICs4MzMsNyBAQCBwdWJsaWM6CiAjaWYgIUNBTl9ESVNBTExPV19VU0VS
X0lOU1RBTExFRF9GT05UUwogICAgIHN0YXRpYyBGb250RGF0YWJhc2UmIHNpbmdsZXRvbigpCiAg
ICAgewotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFz
ZShGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXMpOworICAgICAgICBzdGF0
aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFzZShBbGxvd1VzZXJJbnN0YWxs
ZWRGb250czo6WWVzKTsKICAgICAgICAgcmV0dXJuIGRhdGFiYXNlOwogICAgIH0KICNlbmRpZgpA
QCAtODQxLDcgKzg0MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRm9udERhdGFiYXNlJiBzaW5n
bGV0b25BbGxvd2luZ1VzZXJJbnN0YWxsZWRGb250cygpCiAgICAgewogI2lmIENBTl9ESVNBTExP
V19VU0VSX0lOU1RBTExFRF9GT05UUwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9u
dERhdGFiYXNlPiBkYXRhYmFzZShGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZ
ZXMpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFz
ZShBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzKTsKICAgICAgICAgcmV0dXJuIGRhdGFiYXNl
OwogI2Vsc2UKICAgICAgICAgcmV0dXJuIHNpbmdsZXRvbigpOwpAQCAtODUxLDcgKzg1MSw3IEBA
IHB1YmxpYzoKICAgICBzdGF0aWMgRm9udERhdGFiYXNlJiBzaW5nbGV0b25EaXNhbGxvd2luZ1Vz
ZXJJbnN0YWxsZWRGb250cygpCiAgICAgewogI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExF
RF9GT05UUwotICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRh
YmFzZShGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObyk7CisgICAgICAgIHN0
YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGF0YWJhc2U+IGRhdGFiYXNlKEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzOjpObyk7CiAgICAgICAgIHJldHVybiBkYXRhYmFzZTsKICNlbHNlCiAgICAgICAg
IHJldHVybiBzaW5nbGV0b24oKTsKQEAgLTkwOCwyMSArOTA4LDEyIEBAIHB1YmxpYzoKICAgICAg
ICAgYXV0byBmb2xkZWQgPSBmYW1pbHlOYW1lLmZvbGRDYXNlKCk7CiAgICAgICAgIHJldHVybiBt
X2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9ycy5lbnN1cmUoZm9sZGVkLCBbJl0gewogICAgICAg
ICAgICAgYXV0byBmYW1pbHlOYW1lU3RyaW5nID0gZm9sZGVkLmNyZWF0ZUNGU3RyaW5nKCk7Ci0g
ICAgICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0aW9uYXJ5UmVmPiBhdHRyaWJ1dGVzOwotI2lmIENB
Tl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUwotICAgICAgICAgICAgaWYgKG1fYWxsb3dV
c2VySW5zdGFsbGVkRm9udHMgPT0gRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6
Tm8pIHsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RmFtaWx5
TmFtZUF0dHJpYnV0ZSwga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGUgfTsKLSAgICAgICAg
ICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGZhbWlseU5hbWVTdHJpbmcuZ2V0KCksIGtD
RkJvb2xlYW5GYWxzZSB9OwotICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENG
RGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9B
UlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5
cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKLSAgICAgICAgICAgIH0gZWxzZQotI2VuZGlm
Ci0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsga0NU
Rm9udEZhbWlseU5hbWVBdHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFs
dWVzW10gPSB7IGZhbWlseU5hbWVTdHJpbmcuZ2V0KCkgfTsKLSAgICAgICAgICAgICAgICBhdHRy
aWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
a2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlL
ZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAg
ICAgICB9CisgICAgICAgICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFy
eUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5
S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAg
ICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEZhbWls
eU5hbWVBdHRyaWJ1dGUsIGZhbWlseU5hbWVTdHJpbmcuZ2V0KCkpOworICAgICAgICAgICAgYWRk
QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBtX2FsbG93
VXNlckluc3RhbGxlZEZvbnRzKTsKICAgICAgICAgICAgIGF1dG8gZm9udERlc2NyaXB0b3JUb01h
dGNoID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlV2l0aEF0dHJpYnV0ZXMoYXR0cmli
dXRlcy5nZXQoKSkpOwotICAgICAgICAgICAgaWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RG
b250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9y
VG9NYXRjaC5nZXQoKSwgbnVsbHB0cikpKSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTZXRS
ZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMgPSBtYW5kYXRvcnlBdHRyaWJ1dGVzRm9yVXNlckluc3Rh
bGxlZEZvbnRzKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOworICAgICAgICAgICAgaWYgKGF1
dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERl
c2NyaXB0b3JzKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbWFuZGF0b3J5QXR0cmlidXRl
cy5nZXQoKSkpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBjb3VudCA9IENGQXJyYXlHZXRDb3Vu
dChtYXRjaGVzLmdldCgpKTsKICAgICAgICAgICAgICAgICBWZWN0b3I8SW5zdGFsbGVkRm9udD4g
cmVzdWx0OwogICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNv
dW50KTsKQEAgLTk0NiwyMSArOTM3LDEzIEBAIHB1YmxpYzoKICNlbHNlCiAgICAgICAgICAgICBD
RlN0cmluZ1JlZiBuYW1lQXR0cmlidXRlID0ga0NURm9udE5hbWVBdHRyaWJ1dGU7CiAjZW5kaWYK
LSAgICAgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGF0dHJpYnV0ZXM7Ci0jaWYg
Q0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZPTlRTCi0gICAgICAgICAgICBpZiAobV9hbGxv
d1VzZXJJbnN0YWxsZWRGb250cyA9PSBGb250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRz
OjpObykgewotICAgICAgICAgICAgICAgIENGVHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRFbmFi
bGVkQXR0cmlidXRlLCBuYW1lQXR0cmlidXRlLCBrQ1RGb250VXNlckluc3RhbGxlZEF0dHJpYnV0
ZSB9OwotICAgICAgICAgICAgICAgIENGVHlwZVJlZiB2YWx1ZXNbXSA9IHsga0NGQm9vbGVhblRy
dWUsIHBvc3RTY3JpcHROYW1lU3RyaW5nLmdldCgpLCBrQ0ZCb29sZWFuRmFsc2UgfTsKLSAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NG
VHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJh
Y2tzKSk7Ci0gICAgICAgICAgICB9IGVsc2UKLSNlbmRpZgotICAgICAgICAgICAgewotICAgICAg
ICAgICAgICAgIENGVHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBu
YW1lQXR0cmlidXRlIH07Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1tdID0geyBr
Q0ZCb29sZWFuVHJ1ZSwgcG9zdFNjcmlwdE5hbWVTdHJpbmcuZ2V0KCkgfTsKLSAgICAgICAgICAg
ICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURp
Y3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7
Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENG
RGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVE
aWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykp
OworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQoKSwga0NU
Rm9udEVuYWJsZWRBdHRyaWJ1dGUsIGtDRkJvb2xlYW5UcnVlKTsKKyAgICAgICAgICAgIENGRGlj
dGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMuZ2V0KCksIG5hbWVBdHRyaWJ1dGUsIHBvc3RTY3Jp
cHROYW1lU3RyaW5nLmdldCgpKTsKKyAgICAgICAgICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5z
dGFsbGVkRm9udHMoYXR0cmlidXRlcy5nZXQoKSwgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7
CiAgICAgICAgICAgICBhdXRvIGZvbnREZXNjcmlwdG9yVG9NYXRjaCA9IGFkb3B0Q0YoQ1RGb250
RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRyaWJ1dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKLSAgICAg
ICAgICAgIGF1dG8gbWF0Y2ggPSBhZG9wdENGKHN0YXRpY19jYXN0PENURm9udERlc2NyaXB0b3JS
ZWY+KENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9yKGZvbnREZXNj
cmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVsbHB0cikpKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxD
RlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRlcyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2Vy
SW5zdGFsbGVkRm9udHMobV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CisgICAgICAgICAgICBh
dXRvIG1hdGNoID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVz
Y3JpcHRvcihmb250RGVzY3JpcHRvclRvTWF0Y2guZ2V0KCksIG1hbmRhdG9yeUF0dHJpYnV0ZXMu
Z2V0KCkpKTsKICAgICAgICAgICAgIHJldHVybiBJbnN0YWxsZWRGb250KG1hdGNoLmdldCgpKTsK
ICAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVlOwogICAgIH0KQEAgLTk3NCwxNCArOTU3LDE0IEBA
IHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPEZvbnRE
YXRhYmFzZT47CiAKLSAgICBGb250RGF0YWJhc2UoRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxs
ZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKKyAgICBGb250RGF0YWJhc2UoQWxsb3dV
c2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCiAgICAgICAgIDogbV9h
bGxvd1VzZXJJbnN0YWxsZWRGb250cyhhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKICAgICB7CiAg
ICAgfQogCiAgICAgSGFzaE1hcDxTdHJpbmcsIEluc3RhbGxlZEZvbnRGYW1pbHk+IG1fZmFtaWx5
TmFtZVRvRm9udERlc2NyaXB0b3JzOwogICAgIEhhc2hNYXA8U3RyaW5nLCBJbnN0YWxsZWRGb250
PiBtX3Bvc3RTY3JpcHROYW1lVG9Gb250RGVzY3JpcHRvcnM7Ci0gICAgRm9udENhY2hlOjpBbGxv
d1VzZXJJbnN0YWxsZWRGb250cyBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzOworICAgIEFsbG93
VXNlckluc3RhbGxlZEZvbnRzIG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHM7CiB9OwogCiAvLyBC
ZWNhdXNlIHRoaXMgc3RydWN0IGhvbGRzIGludGVybWVkaWF0ZSB2YWx1ZXMgd2hpY2ggbWF5IGJl
IGluIHRoZSBjb21wcmVzc2VkIC0xIC0gMSBHWCByYW5nZSwgd2UgZG9uJ3Qgd2FudCB0byB1c2Ug
dGhlIHJlbGF0aXZlbHkgbGFyZ2UKQEAgLTExOTAsMTggKzExNzMsMTggQEAgc3RydWN0IEZvbnRM
b29rdXAgewogICAgIGJvb2wgY3JlYXRlZEZyb21Qb3N0U2NyaXB0TmFtZSB7IGZhbHNlIH07CiB9
OwogCi1zdGF0aWMgRm9udExvb2t1cCBwbGF0Zm9ybUZvbnRMb29rdXBXaXRoRmFtaWx5KGNvbnN0
IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCByZXF1ZXN0LCBmbG9h
dCBzaXplLCBib29sIG1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KQorc3RhdGljIEZvbnRM
b29rdXAgcGxhdGZvcm1Gb250TG9va3VwV2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZh
bWlseSwgRm9udFNlbGVjdGlvblJlcXVlc3QgcmVxdWVzdCwgZmxvYXQgc2l6ZSwgQWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCiB7CiAgICAgY29uc3QgYXV0
byYgd2hpdGVsaXN0ID0gZm9udFdoaXRlbGlzdCgpOwogICAgIGlmICghaXNTeXN0ZW1Gb250KGZh
bWlseSkgJiYgd2hpdGVsaXN0LnNpemUoKSAmJiAhd2hpdGVsaXN0LmNvbnRhaW5zKGZhbWlseSkp
CiAgICAgICAgIHJldHVybiB7IG51bGxwdHIgfTsKIAogI2lmIFNIT1VMRF9VU0VfQ09SRV9URVhU
X0ZPTlRfTE9PS1VQCi0gICAgVU5VU0VEX1BBUkFNKG1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRG
b250KTsKKyAgICBVTlVTRURfUEFSQU0oYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOwogICAgIENU
Rm9udFN5bWJvbGljVHJhaXRzIHRyYWl0cyA9IChpc0ZvbnRXZWlnaHRCb2xkKHJlcXVlc3Qud2Vp
Z2h0KSA/IGtDVEZvbnRUcmFpdEJvbGQgOiAwKSB8IChpc0l0YWxpYyhyZXF1ZXN0LnNsb3BlKSA/
IGtDVEZvbnRUcmFpdEl0YWxpYyA6IDApOwogICAgIHJldHVybiB7IGFkb3B0Q0YoQ1RGb250Q3Jl
YXRlRm9yQ1NTKGZhbWlseS5zdHJpbmcoKS5jcmVhdGVDRlN0cmluZygpLmdldCgpLCBzdGF0aWNf
Y2FzdDxmbG9hdD4ocmVxdWVzdC53ZWlnaHQpLCB0cmFpdHMsIHNpemUpKSB9OwogI2Vsc2UKLSAg
ICBhdXRvJiBmb250RGF0YWJhc2UgPSBtYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCA/IEZv
bnREYXRhYmFzZTo6c2luZ2xldG9uQWxsb3dpbmdVc2VySW5zdGFsbGVkRm9udHMoKSA6IEZvbnRE
YXRhYmFzZTo6c2luZ2xldG9uRGlzYWxsb3dpbmdVc2VySW5zdGFsbGVkRm9udHMoKTsKKyAgICBh
dXRvJiBmb250RGF0YWJhc2UgPSBhbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBBbGxvd1VzZXJJ
bnN0YWxsZWRGb250czo6WWVzID8gRm9udERhdGFiYXNlOjpzaW5nbGV0b25BbGxvd2luZ1VzZXJJ
bnN0YWxsZWRGb250cygpIDogRm9udERhdGFiYXNlOjpzaW5nbGV0b25EaXNhbGxvd2luZ1VzZXJJ
bnN0YWxsZWRGb250cygpOwogICAgIGNvbnN0IGF1dG8mIGZhbWlseUZvbnRzID0gZm9udERhdGFi
YXNlLmNvbGxlY3Rpb25Gb3JGYW1pbHkoZmFtaWx5LnN0cmluZygpKTsKICAgICBpZiAoZmFtaWx5
Rm9udHMuaXNFbXB0eSgpKSB7CiAgICAgICAgIC8vIFRoZSBDU1Mgc3BlYyBzdGF0ZXMgdGhhdCBm
b250LWZhbWlseSBvbmx5IGFjY2VwdHMgYSBuYW1lIG9mIGFuIGFjdHVhbCBmb250IGZhbWlseS4g
SG93ZXZlciwgaW4gV2ViS2l0LCB3ZSBjbGFpbSB0byBhbHNvCkBAIC0xMjY1LDcgKzEyNDgsNyBA
QCBzdGF0aWMgUmV0YWluUHRyPENURm9udFJlZj4gZm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbWlj
U3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbgogICAgIEZvbnRMb29rdXAgZm9udExvb2t1cDsKICAg
ICBmb250TG9va3VwLnJlc3VsdCA9IHBsYXRmb3JtRm9udFdpdGhGYW1pbHlTcGVjaWFsQ2FzZShm
YW1pbHksIHJlcXVlc3QsIHNpemUpOwogICAgIGlmICghZm9udExvb2t1cC5yZXN1bHQpCi0gICAg
ICAgIGZvbnRMb29rdXAgPSBwbGF0Zm9ybUZvbnRMb29rdXBXaXRoRmFtaWx5KGZhbWlseSwgcmVx
dWVzdCwgc2l6ZSwgZm9udERlc2NyaXB0aW9uLm1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250
KCkpOworICAgICAgICBmb250TG9va3VwID0gcGxhdGZvcm1Gb250TG9va3VwV2l0aEZhbWlseShm
YW1pbHksIHJlcXVlc3QsIHNpemUsIGZvbnREZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0
YWxsZWRGb250cygpKTsKICAgICByZXR1cm4gcHJlcGFyZVBsYXRmb3JtRm9udChmb250TG9va3Vw
LnJlc3VsdC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFj
ZVZhcmlhbnRTZXR0aW5ncywgZm9udEZhY2VDYXBhYmlsaXRpZXMsIHNpemUsICFmb250TG9va3Vw
LmNyZWF0ZWRGcm9tUG9zdFNjcmlwdE5hbWUpOwogfQogCkBAIC0xNDc1LDQgKzE0NTgsMzIgQEAg
Y29uc3QgQXRvbWljU3RyaW5nJiBGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFt
ZShjb25zdCBBdG9taWNTdHJpbmcmIGYKICAgICByZXR1cm4gbnVsbEF0b20oKTsKIH0KIAordm9p
ZCBhZGRBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKENGTXV0YWJsZURpY3Rpb25hcnlS
ZWYgYXR0cmlidXRlcywgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMpCit7CisjaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZPTlRTCisgICAgaWYg
KGFsbG93VXNlckluc3RhbGxlZEZvbnRzID09IEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObykg
eworICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLCBrQ1RGb250VXNlcklu
c3RhbGxlZEF0dHJpYnV0ZSwga0NGQm9vbGVhbkZhbHNlKTsKKyAgICAgICAgQ1RGb250RmFsbGJh
Y2tPcHRpb24gZmFsbGJhY2tPcHRpb24gPSBrQ1RGb250RmFsbGJhY2tPcHRpb25TeXN0ZW07Cisg
ICAgICAgIGF1dG8gZmFsbGJhY2tPcHRpb25OdW1iZXIgPSBhZG9wdENGKENGTnVtYmVyQ3JlYXRl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNJbnQ2NFR5cGUsICZmYWxsYmFja09wdGlv
bikpOworICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLCBrQ1RGb250RmFs
bGJhY2tPcHRpb25BdHRyaWJ1dGUsIGZhbGxiYWNrT3B0aW9uTnVtYmVyLmdldCgpKTsKKyAgICB9
CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShhdHRyaWJ1dGVzKTsKKyAgICBVTlVTRURfUEFSQU0o
YWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOworI2VuZGlmCit9CisKK1JldGFpblB0cjxDRlNldFJl
Zj4gbWFuZGF0b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhBbGxvd1VzZXJJbnN0
YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKK3sKKyNpZiBDQU5fRElTQUxMT1df
VVNFUl9JTlNUQUxMRURfRk9OVFMKKyAgICBpZiAoYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0g
QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5vKSB7CisgICAgICAgIENGVHlwZVJlZiBtYW5kYXRv
cnlBdHRyaWJ1dGVzVmFsdWVzW10gPSB7IGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlLCBr
Q1RGb250RmFsbGJhY2tPcHRpb25BdHRyaWJ1dGUgfTsKKyAgICAgICAgcmV0dXJuIGFkb3B0Q0Yo
Q0ZTZXRDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbWFuZGF0b3J5QXR0cmlidXRlc1ZhbHVl
cywgV1RGX0FSUkFZX0xFTkdUSChtYW5kYXRvcnlBdHRyaWJ1dGVzVmFsdWVzKSwgJmtDRlR5cGVT
ZXRDYWxsQmFja3MpKTsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShhbGxvd1VzZXJJ
bnN0YWxsZWRGb250cyk7CisjZW5kaWYKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwogfQpkaWZm
IC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRD
YWNoZUNvcmVUZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTNkYTcxNWI5NmU1OThiZDk1NGMyOTMwZWUxYWI5
Nzc0OWNmYjljZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKQEAgLTAsMCArMSw2MiBAQAorLyoKKyAq
IENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoK
KyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdp
dGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRo
YXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoKKyAqIDEuICBSZWRp
c3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFib3ZlIGNvcHlyaWdo
dAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dp
bmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmluYXJ5IGZvcm0gbXVz
dCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0
IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBpbiB0aGUKKyAqICAg
ICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUg
ZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBwbGUgSW5jLiAoIkFw
cGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRvcnMgbWF5IGJlIHVz
ZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAqICAgICBmcm9tIHRo
aXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBlcm1pc3Npb24uCisg
KgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQgSVRTIENPTlRSSUJV
VE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBXQVJSQU5USUVTLCBJ
TkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAqIFdBUlJBTlRJRVMg
T0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VMQVIgUFVSUE9TRSBB
UkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9SIElUUyBDT05UUklC
VVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1QsIElOQ0lERU5UQUws
IFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VTCisgKiAoSU5DTFVE
SU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNUSVRVVEUgR09PRFMg
T1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklUUzsgT1IgQlVTSU5F
U1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFOWSBUSEVPUlkgT0Yg
TElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklMSVRZLCBPUiBUT1JU
CisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklTSU5HIElOIEFOWSBX
QVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4gSUYgQURWSVNFRCBP
RiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3ByYWdtYSBvbmNlCisK
KyNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKKworI2luY2x1ZGUgPENvcmVUZXh0L0NURm9u
dC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTeW50aGVzaXNQYWlyIHsKKyAg
ICBTeW50aGVzaXNQYWlyKGJvb2wgbmVlZHNTeW50aGV0aWNCb2xkLCBib29sIG5lZWRzU3ludGhl
dGljT2JsaXF1ZSkKKyAgICAgICAgOiBuZWVkc1N5bnRoZXRpY0JvbGQobmVlZHNTeW50aGV0aWNC
b2xkKQorICAgICAgICAsIG5lZWRzU3ludGhldGljT2JsaXF1ZShuZWVkc1N5bnRoZXRpY09ibGlx
dWUpCisgICAgeworICAgIH0KKworICAgIHN0ZDo6cGFpcjxib29sLCBib29sPiBib2xkT2JsaXF1
ZVBhaXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9wYWlyKG5lZWRz
U3ludGhldGljQm9sZCwgbmVlZHNTeW50aGV0aWNPYmxpcXVlKTsKKyAgICB9CisKKyAgICBib29s
IG5lZWRzU3ludGhldGljQm9sZDsKKyAgICBib29sIG5lZWRzU3ludGhldGljT2JsaXF1ZTsKK307
CisKK1JldGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmLCBj
b25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiBmb250RmFj
ZUZlYXR1cmVzLCBjb25zdCBGb250VmFyaWFudFNldHRpbmdzKiBmb250RmFjZVZhcmlhbnRTZXR0
aW5ncywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxp
dGllcywgZmxvYXQgc2l6ZSwgYm9vbCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJpYXRpb25zID0g
dHJ1ZSk7CitTeW50aGVzaXNQYWlyIGNvbXB1dGVOZWNlc3NhcnlTeW50aGVzaXMoQ1RGb250UmVm
LCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIGlzUGxhdGZvcm1Gb250ID0gZmFsc2UpOwor
UmV0YWluUHRyPENURm9udFJlZj4gcGxhdGZvcm1Gb250V2l0aEZhbWlseVNwZWNpYWxDYXNlKGNv
bnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgZmxvYXQgc2l6
ZSk7CitSZXRhaW5QdHI8Q1RGb250UmVmPiBwbGF0Zm9ybUZvbnRXaXRoRmFtaWx5KGNvbnN0IEF0
b21pY1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgVGV4dFJlbmRlcmluZ01v
ZGUsIGZsb2F0IHNpemUpOworYm9vbCByZXF1aXJlc0N1c3RvbUZhbGxiYWNrRm9udChVQ2hhcjMy
IGNoYXJhY3Rlcik7CitGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllc0ZvckZv
bnREZXNjcmlwdG9yKENURm9udERlc2NyaXB0b3JSZWYpOwordm9pZCBhZGRBdHRyaWJ1dGVzRm9y
VXNlckluc3RhbGxlZEZvbnRzKENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQWxs
b3dVc2VySW5zdGFsbGVkRm9udHMpOworUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRy
aWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKKwor
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4IDA2OWE3OTUyYjlhNTMzYzA4ZDQ5
YzQ5OTkyNDUyNTM2ODI4MmY0MWYuLjA0YTgwMWQ3N2U5NTk5NjBkY2NjOWI3MzA3YjJmMDhjMjU5
Mzk3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTIyLDYgKzIyLDcgQEAK
ICNpbmNsdWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAKICNpbmNsdWRlICJGb250Q2Fj
aGUuaCIKKyNpbmNsdWRlICJGb250Q2FjaGVDb3JlVGV4dC5oIgogI2luY2x1ZGUgIkZvbnREZXNj
cmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJTaGFy
ZWRCdWZmZXIuaCIKQEAgLTM0LDEwICszNSwxNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpID0gZGVmYXVsdDsKIAogRm9udFBsYXRmb3JtRGF0YSBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYgZm9udERlc2NyaXB0aW9uLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250
RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBjb25zdCBGb250VmFyaWFudFNldHRp
bmdzJiBmb250RmFjZVZhcmlhbnRTZXR0aW5ncywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFi
aWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcykKIHsKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBh
ZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwg
JmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNh
bGxCYWNrcykpOworICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoYXR0cmli
dXRlcy5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRz
KCkpOworICAgIGF1dG8gbW9kaWZpZWRGb250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVz
Y3JpcHRvckNyZWF0ZUNvcHlXaXRoQXR0cmlidXRlcyhtX2ZvbnREZXNjcmlwdG9yLmdldCgpLCBh
dHRyaWJ1dGVzLmdldCgpKSk7CisgICAgUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRy
aWJ1dGVzID0gbWFuZGF0b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhmb250RGVz
Y3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CisgICAgYXV0byBtYXRj
aGluZ0ZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hp
bmdGb250RGVzY3JpcHRvcihtb2RpZmllZEZvbnREZXNjcmlwdG9yLmdldCgpLCBtYW5kYXRvcnlB
dHRyaWJ1dGVzLmdldCgpKSk7CisgICAgQVNTRVJUKG1hdGNoaW5nRm9udERlc2NyaXB0b3IpOwor
CiAgICAgaW50IHNpemUgPSBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhlbFNpemUoKTsKICAg
ICBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBmb250RGVzY3JpcHRpb24ub3JpZW50YXRp
b24oKTsKICAgICBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCA9IGZvbnREZXNjcmlwdGlv
bi53aWR0aFZhcmlhbnQoKTsKLSAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRD
RihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IobV9mb250RGVzY3JpcHRvci5nZXQoKSwg
c2l6ZSwgbnVsbHB0cikpOworICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IGZvbnQgPSBhZG9wdENG
KENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcihtYXRjaGluZ0ZvbnREZXNjcmlwdG9yLmdl
dCgpLCBzaXplLCBudWxscHRyKSk7CiAgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9u
dC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCAmZm9udEZhY2VGZWF0dXJlcywgJmZvbnRGYWNlVmFy
aWFudFNldHRpbmdzLCBmb250RmFjZUNhcGFiaWxpdGllcywgZm9udERlc2NyaXB0aW9uLmNvbXB1
dGVkU2l6ZSgpKTsKICAgICBBU1NFUlQoZm9udCk7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURh
dGEoZm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJp
YW50LCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaAppbmRleCBkZmRlNWJmNmE0NjM0NDNjMjVkYTU2YjVj
OTU1OTRiYzJkMTUxZjE5Li40MTJiOTZmYTJjMmJlN2M0NTViZGM5OGVmOTQyZTk2ZThkY2RjNWJh
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgKQEAgLTEsNSArMSw1
IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2IEFwcGxlIEluYy4gIEFsbCByaWdo
dHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIwMTcgQXBwbGUgSW5j
LiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlvbiBhbmQgdXNlIGlu
IHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAqIG1vZGlmaWNhdGlv
biwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcgY29uZGl0aW9ucwpA
QCAtMzYyLDQgKzM2Miw5IEBAIGVudW0gY2xhc3MgRm9udFN0eWxlQXhpcyB7CiAgICAgaXRhbAog
fTsKIAorZW51bSBjbGFzcyBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyB7CisgICAgWWVzLAorICAg
IE5vCit9OworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29s
dmVGb3JEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHlsZVJlc29sdmVGb3JE
b2N1bWVudC5jcHAKaW5kZXggY2JmNjcyMzQyNjhmNGMzNzcwYmZmM2VhMDk1Zjk5ODczMjJkNDEy
Zi4uY2E5NjY3MGUyMzhlYWQyYzRmY2IwNGMwMjI3ZGI1NmVlYzMwZDNmZSAxMDA2NDQKLS0tIGEv
U291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNwcApAQCAtMTA5LDcg
KzEwOSw3IEBAIFJlbmRlclN0eWxlIHJlc29sdmVGb3JEb2N1bWVudChjb25zdCBEb2N1bWVudCYg
ZG9jdW1lbnQpCiAgICAgZm9udERlc2NyaXB0aW9uLnNldExvY2FsZShkb2N1bWVudC5jb250ZW50
TGFuZ3VhZ2UoKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmluZ01vZGUoc2V0dGlu
Z3MuZm9udFJlbmRlcmluZ01vZGUoKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWls
eShzdGFuZGFyZEZhbWlseSk7Ci0gICAgZm9udERlc2NyaXB0aW9uLnNldE1heVJlcHJlc2VudFVz
ZXJJbnN0YWxsZWRGb250KCFzZXR0aW5ncy5zaG91bGREaXNhbGxvd1VzZXJJbnN0YWxsZWRGb250
cygpKTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9u
dHMoc2V0dGluZ3Muc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CiAKICAgICBmb250
RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemVGcm9tSWRlbnRpZmllcihDU1NWYWx1ZU1lZGl1bSk7
CiAgICAgaW50IHNpemUgPSBmb250U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVNZWRpdW0sIGZhbHNl
LCBkb2N1bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJl
bmNlcy55YW1sIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbAppbmRl
eCAxZjRiOWQ5NTVkYWNmYTU4YWIzNzJjZmY3NjA1NDM3OWU4YjYzNzljLi5hYTQ1MGUzZDE3MzM1
MjRmZGYwZjNhZmI5MGEyNDg5ODRkNWQ2YjM4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViS2l0L1No
YXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCisrKyBiL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlBy
ZWZlcmVuY2VzLnlhbWwKQEAgLTEwMzcsNiArMTAzNyw3IEBAIFZpc2libGVEZWJ1Z092ZXJsYXlS
ZWdpb25zOgogU2hvdWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9udHM6CiAgIHR5cGU6IGJvb2wK
ICAgZGVmYXVsdFZhbHVlOiBmYWxzZQorICB3ZWJjb3JlQmluZGluZzogY3VzdG9tCiAKIAogIyBG
b3IgZXhwZXJpbWVudGFsIGZlYXR1cmVzOgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYktpdC9XZWJQ
cm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHAgYi9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2Vi
UGFnZS9XZWJQYWdlLmNwcAppbmRleCBjMzAyYzU5NDNmN2MyZGU3ZjBjMmZmM2YzOGYyNzllYjNh
NGM2NTRiLi43YTVkZjZjNmViZjg5OGYzODZkOTZjMmMxODNhMjljN2ZkMTZkMWQzIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcAorKysgYi9T
b3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9XZWJQYWdlLmNwcApAQCAtMzA2Miw2ICsz
MDYyLDcgQEAgdm9pZCBXZWJQYWdlOjp1cGRhdGVQcmVmZXJlbmNlcyhjb25zdCBXZWJQcmVmZXJl
bmNlc1N0b3JlJiBzdG9yZSkKICAgICBzZXR0aW5ncy5zZXRTdG9yYWdlQmxvY2tpbmdQb2xpY3ko
c3RhdGljX2Nhc3Q8U2VjdXJpdHlPcmlnaW46OlN0b3JhZ2VCbG9ja2luZ1BvbGljeT4oc3RvcmUu
Z2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnN0b3JhZ2VCbG9ja2luZ1Bv
bGljeUtleSgpKSkpOwogICAgIHNldHRpbmdzLnNldEZyYW1lRmxhdHRlbmluZyhzdGF0aWNfY2Fz
dDxXZWJDb3JlOjpGcmFtZUZsYXR0ZW5pbmc+KHN0b3JlLmdldFVJbnQzMlZhbHVlRm9yS2V5KFdl
YlByZWZlcmVuY2VzS2V5OjpmcmFtZUZsYXR0ZW5pbmdLZXkoKSkpKTsKICAgICBzZXR0aW5ncy5z
ZXRFZGl0YWJsZUxpbmtCZWhhdmlvcihzdGF0aWNfY2FzdDxXZWJDb3JlOjpFZGl0YWJsZUxpbmtC
ZWhhdmlvcj4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmVk
aXRhYmxlTGlua0JlaGF2aW9yS2V5KCkpKSk7CisgICAgc2V0dGluZ3Muc2V0U2hvdWxkQWxsb3dV
c2VySW5zdGFsbGVkRm9udHMoc3RvcmUuZ2V0Qm9vbFZhbHVlRm9yS2V5KFdlYlByZWZlcmVuY2Vz
S2V5OjpzaG91bGREaXNhbGxvd1VzZXJJbnN0YWxsZWRGb250c0tleSgpKSA/IFdlYkNvcmU6OkFs
bG93VXNlckluc3RhbGxlZEZvbnRzOjpObyA6IFdlYkNvcmU6OkFsbG93VXNlckluc3RhbGxlZEZv
bnRzOjpZZXMpOwogI2lmIEVOQUJMRShEQVRBX0RFVEVDVElPTikKICAgICBzZXR0aW5ncy5zZXRE
YXRhRGV0ZWN0b3JUeXBlcyhzdGF0aWNfY2FzdDxEYXRhRGV0ZWN0b3JUeXBlcz4oc3RvcmUuZ2V0
VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OmRhdGFEZXRlY3RvclR5cGVzS2V5
KCkpKSk7CiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329847</attachid>
            <date>2017-12-19 15:55:25 -0800</date>
            <delta_ts>2017-12-19 19:41:00 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171219155524.patch</filename>
            <type>text/plain</type>
            <size>47553</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MTM3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDBjNGYxN2Y0YmRlYjZm
MTgwOTNjNTIyYjA2NDEwNDYxY2FiMWY5OS4uMDg0ZjliNmE3YWFiZjZiOGIyZjM5ZjNkNmRhYWY5
YzJmOGNjNjM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDU5IEBACisyMDE3LTEyLTE5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzYwMjk5MTk+CisKKyAgICAg
ICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRjaCByZWZh
Y3RvcnMgdGhlIGV4aXN0aW5nIHVzZXItaW5zdGFsbGVkLWZvbnRzIGNvZGUgdG8gYSBuZXcgc2hh
cmVkIGxvY2F0aW9uLCBpbiBGb250Q2FjaGVDb3JlVGV4dCwKKyAgICAgICAgYW5kIGNhbGxzIHRo
aXMgbmV3IHNoYXJlZCBjb2RlIGZyb20gRm9udEN1c3RvbVBsYXRmb3JtRGF0YSBjb2RlIChmb3Ig
V2ViIGZvbnRzKS4gSXQgYWxzbyBpbXByb3ZlcyB0aGVzZQorICAgICAgICBmdW5jdGlvbnMgdG8g
aW5jbHVkZSBhbm90aGVyIENvcmVUZXh0IGZvbnQgYXR0cmlidXRlIHdoaWNoIHdpbGwgbWFrZSBm
b250IGZhbGxiYWNrIG9iZXkgdGhlIHJ1bGVzIGFib3V0CisgICAgICAgIHVzZXItaW5zdGFsbGVk
IGZvbnRzLiBJdCBhbHNvIG1pZ3JhdGVzIHNvbWUgcmF3IGJvb2xlYW4gdmFsdWVzIHRvIHVzZSBl
bnVtIGNsYXNzZXMuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGluZyB0ZXN0cyBpbiBmYXN0
L3RleHQvdXNlci1pbnN0YWxsZWQvIChtb3JlIG9mIHRoZW0gcGFzcyBub3cpLgorCisgICAgICAg
ICogV2ViQ29yZS54Y29kZXByb2ovcHJvamVjdC5wYnhwcm9qOiBBZGQgYSBuZXcgaGVhZGVyOiBG
b250Q2FjaGVDb3JlVGV4dC5oIChhbmQgc29ydCB0aGUgZmlsZSkuCisgICAgICAgICogY3NzL0NT
U0ZvbnRGYWNlU2V0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkNTU0ZvbnRGYWNlU2V0OjplbnN1
cmVMb2NhbEZvbnRGYWNlc0ZvckZhbWlseVJlZ2lzdGVyZWQpOiBNaWdyYXRlIGEgYm9vbCB0byBh
biBlbnVtIGNsYXNzLgorICAgICAgICAqIGNzcy9TdHlsZVJlc29sdmVyLmNwcDoKKyAgICAgICAg
KFdlYkNvcmU6OlN0eWxlUmVzb2x2ZXI6OmluaXRpYWxpemVGb250U3R5bGUpOiBEaXR0by4KKyAg
ICAgICAgKiBwYWdlL1NldHRpbmdzLnlhbWw6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL0ZvbnRDYWNoZS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uS2V5
OjptYWtlRmxhZ3NLZXkpOiBNYWtlIGNhY2hlcyBzZW5zaXRpdmUgdG8gd2hldGhlciBvciBub3Qg
d2Ugc2hvdWxkIGRpc2FsbG93CisgICAgICAgIHVzZXItaW5zdGFsbGVkIGZvbnRzCisgICAgICAg
IChXZWJDb3JlOjpTeW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogRGVsZXRlZC4gTW92ZWQg
dG8gRm9udENhY2hlQ29yZVRleHQuaAorICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6
Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTogRGVsZXRlZC4gRGl0dG8uCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6Om1fc2hv
dWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVtIGNs
YXNzLgorICAgICAgICAoV2ViQ29yZTo6bV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCk6
IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb246OnNob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzIGNvbnN0KTogTWlncmF0ZSBhIGJvb2wgdG8gYW4gZW51bSBjbGFzcy4KKyAgICAg
ICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6c2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnREZXNjcmlwdGlvbjo6b3BlcmF0
b3I9PSBjb25zdCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpt
YXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCBjb25zdCk6IERlbGV0ZWQuIERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udERlc2NyaXB0aW9uOjpzZXRNYXlSZXByZXNlbnRVc2VySW5zdGFs
bGVkRm9udCk6IERlbGV0ZWQuIERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnREYXRhYmFz
ZTo6c2luZ2xldG9uKTogTWlncmF0ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRG
bGFncy5oCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OnNpbmdsZXRvbkFsbG93aW5n
VXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpGb250RGF0YWJh
c2U6OnNpbmdsZXRvbkRpc2FsbG93aW5nVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAg
ICAgIChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmNvbGxlY3Rpb25Gb3JGYW1pbHkpOiBDYWxsIHRo
ZSBzaGFyZWQgZnVuY3Rpb25zIHRvIHVwZGF0ZSB0aGUgRm9udERlc2NyaXB0b3IuCisgICAgICAg
IChXZWJDb3JlOjpGb250RGF0YWJhc2U6OmZvbnRGb3JQb3N0U2NyaXB0TmFtZSk6IERpdHRvLgor
ICAgICAgICAoV2ViQ29yZTo6Rm9udERhdGFiYXNlOjpGb250RGF0YWJhc2UpOiBNaWdyYXRlIHRo
ZSBlbnVtIGNsYXNzIHRvIHRoZSBzaGFyZWQgVGV4dEZsYWdzLmgKKyAgICAgICAgKFdlYkNvcmU6
OnBsYXRmb3JtRm9udExvb2t1cFdpdGhGYW1pbHkpOiBNaWdyYXRlIGEgYm9vbCB0byBhbiBlbnVt
IGNsYXNzLgorICAgICAgICAoV2ViQ29yZTo6Zm9udFdpdGhGYW1pbHkpOiBEaXR0by4KKyAgICAg
ICAgKFdlYkNvcmU6OmFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMpOiBBZGQgYW5v
dGhlciBwYXJhbWV0ZXIgdG8gdGhlIEZvbnREZXNjcmlwdG9yIHRvIGVuZm9yY2UKKyAgICAgICAg
Q29yZSBUZXh0IGZvbnQgZmFsbGJhY2sgaGFwcGVucyBhY2NvcmRpbmcgdG8gdGhlIHVzZXItaW5z
dGFsbGVkIGZvbnQgcnVsZXMuCisgICAgICAgIChXZWJDb3JlOjptYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaDogQWRkZWQuCisgICAgICAgIChXZWJDb3JlOjpT
eW50aGVzaXNQYWlyOjpTeW50aGVzaXNQYWlyKTogTWlncmF0ZWQgZnJvbSBGb250Q2FjaGUuaAor
ICAgICAgICAoV2ViQ29yZTo6U3ludGhlc2lzUGFpcjo6Ym9sZE9ibGlxdWVQYWlyIGNvbnN0KTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9u
dFBsYXRmb3JtRGF0YSk6IENhbGwgdGhlIHNoYXJlZCBmdW5jdGlvbnMgdG8gcHJlcGFyZSB0aGUg
Rm9udERlc2NyaXB0b3IuCisgICAgICAgICogcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaDogTW92
ZSB0aGUgZW51bSBjbGFzcyB0byB0aGUgc2hhcmVkIFRleHRGbGFncy5oCisgICAgICAgICogc3R5
bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U3R5bGU6
OnJlc29sdmVGb3JEb2N1bWVudCk6IE1pZ3JhdGUgYSBib29sIHRvIGFuIGVudW0gY2xhc3MuCisK
IDIwMTctMTItMTkgIERhbmllbCBCYXRlcyAgPGRhYmF0ZXNAYXBwbGUuY29tPgogCiAgICAgICAg
IEFkZCBzdXBwb3J0IGZvciBjb21wdXRpbmcgdGhlIGZyb250bW9zdCBsb25nZXN0IGVmZmVjdGl2
ZSBtYXJrZXIgc3VicmFuZ2UKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VM
b2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdlTG9nCmluZGV4IGMyNjMzZWU5NTdjOWU3YWQ4
NzBhOGZmNjZmNzk1NmE2M2NiMjhiZDYuLjlkOTI3ZTQ2NTNiNDg1NGI5ZGNjMWUzNjc4OTdiYzhl
YzhmNzllNDEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIv
U291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZwpAQCAtMSwzICsxLDEzIEBACisyMDE3LTEyLTE5
ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBk
aXNhbGxvd2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3Jp
cHQgbmFtZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE4MDk1MQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMzYwMjk5MTk+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgKiBwYWwvc3Bp
L2NvY29hL0NvcmVUZXh0U1BJLmg6CisKIDIwMTctMTItMTkgIEFuZHkgRXN0ZXMgIDxhZXN0ZXNA
YXBwbGUuY29tPgogCiAgICAgICAgIFtBcHBsZSBQYXldIFN0b3AgbWFpbnRhaW5pbmcgYSBsaXN0
IG9mIHBheW1lbnQgbmV0d29ya3MKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvQ2hhbmdlTG9n
IGIvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKaW5kZXggNDgyMjlhZTFiY2VkMDAwZGZjNWQxMGE3
ZDYwOTg4ODI3ZDYwMWM4Ny4uMzZiOGMyNGQyZDAwMTQ0MWU0NGVhZjUxYzljYWJiYThiZDMxZDg3
ZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYktpdC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYktp
dC9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAxNy0xMi0xOSAgTXlsZXMgQy4gTWF4Zmll
bGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAgICAgIEEgZGlzYWxsb3dlZCB1c2VyLWlu
c3RhbGxlZCBmb250IG1heSBiZSB1c2VkIGlmIGl0cyBQb3N0U2NyaXB0IG5hbWUgaXMgc3BlY2lm
aWVkCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xODA5
NTEKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzM2MDI5OTE5PgorCisgICAgICAgIFJldmlld2Vk
IGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIE1pZ3JhdGUgYSBib29sIHRvIGFuIGVudW0g
Y2xhc3MuCisKKyAgICAgICAgKiBTaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbDoKKyAgICAgICAg
KiBXZWJQcm9jZXNzL1dlYlBhZ2UvV2ViUGFnZS5jcHA6CisgICAgICAgIChXZWJLaXQ6OldlYlBh
Z2U6OnVwZGF0ZVByZWZlcmVuY2VzKToKKwogMjAxNy0xMi0xOSAgQ2hyaXMgRHVtZXogIDxjZHVt
ZXpAYXBwbGUuY29tPgogCiAgICAgICAgIEhhbmRsZSBGZXRjaCBzaG91bGQgd2FpdCBmb3IgdGhl
IHNlcnZpY2Ugd29ya2VyJ3Mgc3RhdGUgdG8gYmVjb21lIGFjdGl2YXRlZApkaWZmIC0tZ2l0IGEv
U291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaCBiL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKaW5kZXggN2RjZmNkZWQzZTMx
NWU2ZTUwYzZjZjhjNTIxZDljMDEwNThkZjgzYy4uYzY2YzcwMTdmODJjYThlNjMyYWMwYzczNWVl
ZjMxMzg2OGRmMTJmYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29j
b2EvQ29yZVRleHRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9D
b3JlVGV4dFNQSS5oCkBAIC01NSw4ICs1NSwyMiBAQCBlbnVtIHsKICAgICBrQ1RSdW5TdGF0dXNI
YXNPcmlnaW5zID0gKDEgPDwgNCksCiB9OwogCit0eXBlZGVmIENGX09QVElPTlMoQ0ZPcHRpb25G
bGFncywgQ1RGb250RmFsbGJhY2tPcHRpb24pIHsKKyAgICBrQ1RGb250RmFsbGJhY2tPcHRpb25O
b25lID0gMCwKKyAgICBrQ1RGb250RmFsbGJhY2tPcHRpb25TeXN0ZW0gPSAxIDw8IDAsCisgICAg
a0NURm9udEZhbGxiYWNrT3B0aW9uVXNlckluc3RhbGxlZCA9IDEgPDwgMSwKKyAgICBrQ1RGb250
RmFsbGJhY2tPcHRpb25EZWZhdWx0ID0ga0NURm9udEZhbGxiYWNrT3B0aW9uU3lzdGVtIHwga0NU
Rm9udEZhbGxiYWNrT3B0aW9uVXNlckluc3RhbGxlZCwKK307CisKICNlbmRpZgogCit0eXBlZGVm
IENGX09QVElPTlMoQ0ZPcHRpb25GbGFncywgQ1RGb250RmFsbGJhY2tPcHRpb24pIHsKKyAgICBr
Q1RGb250RmFsbGJhY2tPcHRpb25Ob25lID0gMCwKKyAgICBrQ1RGb250RmFsbGJhY2tPcHRpb25T
eXN0ZW0gPSAxIDw8IDAsCisgICAga0NURm9udEZhbGxiYWNrT3B0aW9uVXNlckluc3RhbGxlZCA9
IDEgPDwgMSwKKyAgICBrQ1RGb250RmFsbGJhY2tPcHRpb25EZWZhdWx0ID0ga0NURm9udEZhbGxi
YWNrT3B0aW9uU3lzdGVtIHwga0NURm9udEZhbGxiYWNrT3B0aW9uVXNlckluc3RhbGxlZCwKK307
CisKIFdURl9FWFRFUk5fQ19CRUdJTgogCiB0eXBlZGVmIGNvbnN0IFVuaUNoYXIqICgqQ1RVbmlD
aGFyUHJvdmlkZXJDYWxsYmFjaykoQ0ZJbmRleCBzdHJpbmdJbmRleCwgQ0ZJbmRleCogY2hhckNv
dW50LCBDRkRpY3Rpb25hcnlSZWYqIGF0dHJpYnV0ZXMsIHZvaWQqIHJlZkNvbik7CkBAIC02Niw2
ICs4MCw3IEBAIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RGb250UmVmZXJlbmNlVVJMQXR0
cmlidXRlOwogZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJp
YnV0ZTsKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RGb250UG9zdFNjcmlwdE5hbWVBdHRy
aWJ1dGU7CiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9udFVzZXJJbnN0YWxsZWRBdHRy
aWJ1dGU7CitleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9udEZhbGxiYWNrT3B0aW9uQXR0
cmlidXRlOwogCiBib29sIENURm9udFRyYW5zZm9ybUdseXBocyhDVEZvbnRSZWYsIENHR2x5cGgg
Z2x5cGhzW10sIENHU2l6ZSBhZHZhbmNlc1tdLCBDRkluZGV4IGNvdW50LCBDVEZvbnRUcmFuc2Zv
cm1PcHRpb25zKTsKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXBy
b2ovcHJvamVjdC5wYnhwcm9qIGIvU291cmNlL1dlYkNvcmUvV2ViQ29yZS54Y29kZXByb2ovcHJv
amVjdC5wYnhwcm9qCmluZGV4IDNlM2IyZWI4Y2ZhYjE0NzcwMzUxMzM2M2JlYmFjNjg2NzljZWQ3
MmQuLjFiMjNlYWE5M2Q5MmQwMGIwNGFmNmFmNmIyMTEwZGQ3ZjBjMTQwNjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL1dlYkNvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9T
b3VyY2UvV2ViQ29yZS9XZWJDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2oKQEAgLTM3MjEs
NiArMzcyMSw3IEBACiAJCUMxMDVEQTY0MEYzQUE2QjgwMDFERDQ0RiAvKiBUZXh0RW5jb2RpbmdE
ZXRlY3Rvci5oIGluIEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0g
QzEwNURBNjMwRjNBQTZCODAwMURENDRGIC8qIFRleHRFbmNvZGluZ0RldGVjdG9yLmggKi87IH07
CiAJCUMyMDE1QzBBMUJFNkZFQjIwMDgyMjM4OSAvKiBGb250VmFyaWFudEJ1aWxkZXIuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEMyMDE1QzA5MUJFNkZF
MkMwMDgyMjM4OSAvKiBGb250VmFyaWFudEJ1aWxkZXIuaCAqLzsgfTsKIAkJQzIxREYyRUExRDlF
NEU5OTAwRjVCMjRDIC8qIENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oIGluIEhlYWRlcnMgKi8gPSB7
aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzIxREYyRTgxRDlFNEU5OTAwRjVCMjRDIC8q
IENTU0ZvbnRWYXJpYXRpb25WYWx1ZS5oICovOyB9OworCQlDMjQ1OEU2MzFGRTg5N0IwMDA1OTQ3
NTkgLyogRm9udENhY2hlQ29yZVRleHQuaCBpbiBIZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxk
RmlsZTsgZmlsZVJlZiA9IEMyNDU4RTYxMUZFODk3OUUwMDU5NDc1OSAvKiBGb250Q2FjaGVDb3Jl
VGV4dC5oICovOyBzZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJ
CUMyNjAxN0E0MUM3MkRDOTkwMEY3NEExNiAvKiBDU1NGb250RmFjZVNldC5oIGluIEhlYWRlcnMg
Ki8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzI2MDE3QTIxQzcyREM5OTAwRjc0
QTE2IC8qIENTU0ZvbnRGYWNlU2V0LmggKi87IH07CiAJCUMyODA4MzNGMUM2REMyNkYwMDE0NTFC
NiAvKiBKU0ZvbnRGYWNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBDMjgwODMzRTFDNkRDMjJDMDAxNDUxQjYgLyogSlNGb250RmFjZS5oICovOyB9Owog
CQlDMkFCMEFGNzFFNkIzQzZDMDAxMzQ4QzUgLyogRm9udFNlbGVjdGlvbkFsZ29yaXRobS5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQzJBQjBBRjUxRTZC
M0M2QzAwMTM0OEM1IC8qIEZvbnRTZWxlY3Rpb25BbGdvcml0aG0uaCAqLzsgc2V0dGluZ3MgPSB7
QVRUUklCVVRFUyA9IChQcml2YXRlLCApOyB9OyB9OwpAQCAtMTI2MzksNiArMTI2NDAsNyBAQAog
CQlDMjAxNUMwOTFCRTZGRTJDMDA4MjIzODkgLyogRm9udFZhcmlhbnRCdWlsZGVyLmggKi8gPSB7
aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgbGFzdEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMu
aDsgcGF0aCA9IEZvbnRWYXJpYW50QnVpbGRlci5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlDMjFERjJFNzFEOUU0RTk5MDBGNUIyNEMgLyogQ1NTRm9udFZhcmlhdGlvblZhbHVlLmNw
cCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25v
d25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuY3BwLmNwcDsgcGF0aCA9IENTU0ZvbnRWYXJpYXRpb25W
YWx1ZS5jcHA7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CiAJCUMyMURGMkU4MUQ5RTRFOTkw
MEY1QjI0QyAvKiBDU1NGb250VmFyaWF0aW9uVmFsdWUuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVm
ZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUu
Yy5oOyBwYXRoID0gQ1NTRm9udFZhcmlhdGlvblZhbHVlLmg7IHNvdXJjZVRyZWUgPSAiPGdyb3Vw
PiI7IH07CisJCUMyNDU4RTYxMUZFODk3OUUwMDU5NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4dC5o
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGxhc3RLbm93bkZpbGVUeXBlID0gc291cmNl
Y29kZS5jLmg7IHBhdGggPSBGb250Q2FjaGVDb3JlVGV4dC5oOyBzb3VyY2VUcmVlID0gIjxncm91
cD4iOyB9OwogCQlDMjYwMTdBMTFDNzJEQzk5MDBGNzRBMTYgLyogQ1NTRm9udEZhY2VTZXQuY3Bw
ICovID0ge2lzYSA9IFBCWEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93
bkZpbGVUeXBlID0gc291cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gQ1NTRm9udEZhY2VTZXQuY3Bw
OyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlDMjYwMTdBMjFDNzJEQzk5MDBGNzRBMTYg
LyogQ1NTRm9udEZhY2VTZXQuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5j
b2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gQ1NT
Rm9udEZhY2VTZXQuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQzI4MDgzM0MxQzZE
QjE5NDAwMTQ1MUI2IC8qIEZvbnRGYWNlLmlkbCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHRleHQ7IHBhdGggPSBGb250
RmFjZS5pZGw7IHNvdXJjZVRyZWUgPSAiPGdyb3VwPiI7IH07CkBAIC0yMzAwNiw2ICsyMzAwOCw3
IEBACiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0gKAogCQkJCTFDMzk2OUNGMUI3
NDIxMUUwMDJCQ0ZBNyAvKiBGb250Q2FjaGVDb3JlVGV4dC5jcHAgKi8sCisJCQkJQzI0NThFNjEx
RkU4OTc5RTAwNTk0NzU5IC8qIEZvbnRDYWNoZUNvcmVUZXh0LmggKi8sCiAJCQkJQjJBRkZDNzgw
RDAwQTVDMTAwMzAwNzREIC8qIEZvbnRDYXNjYWRlQ29jb2EubW0gKi8sCiAJCQkJN0M0RURENzMx
QTdCNjA3ODAwMTk4QzREIC8qIEZvbnRDb2NvYS5tbSAqLywKIAkJCQkxQzEyQUMyQzFFRTc3OTk1
MDA3OUUwQTAgLyogRm9udERlc2NyaXB0aW9uQ29jb2EuY3BwICovLApAQCAtMjY5MjgsNiArMjY5
MzEsNyBAQAogCQkJCTUxN0E1MzVCMUY1ODhBNEMwMERDREMwQSAvKiBGZXRjaEJvZHlDb25zdW1l
ci5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDEyOUM5OTcxRjU5Qjk2MzAwOUQ3NDAzIC8qIEZldGNo
Qm9keVNvdXJjZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJNDFEMTI5REIxRjNEMTQzODAwRDE1RTQ3
IC8qIEZldGNoSGVhZGVycy5oIGluIEhlYWRlcnMgKi8sCisJCQkJNDE2MUUyRDUxRkU0OERDNTAw
RUMyRTk2IC8qIEZldGNoTG9hZGVyLmggaW4gSGVhZGVycyAqLywKIAkJCQk1MTdBNTM1ODFGNTg4
OUU4MDBEQ0RDMEEgLyogRmV0Y2hMb2FkZXJDbGllbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTQx
QUQ3NTNBMUNFRjZCRDEwMEEzMTQ4NiAvKiBGZXRjaE9wdGlvbnMuaCBpbiBIZWFkZXJzICovLAog
CQkJCTdDRTE5MTREMUYyQTlBRkIwMDI3MkY3OCAvKiBGZXRjaFJlZmVycmVyUG9saWN5LmggaW4g
SGVhZGVycyAqLywKQEAgLTI2OTkwLDYgKzI2OTk0LDcgQEAKIAkJCQkxQUMyRDg5RDFCMUUyOTFG
MDBENTJFODcgLyogRm9udEFudGlhbGlhc2luZ1N0YXRlU2F2ZXIuaCBpbiBIZWFkZXJzICovLAog
CQkJCUJDQjkyRDRGMTI5MzU1MEIwMEM4Mzg3RiAvKiBGb250QmFzZWxpbmUuaCBpbiBIZWFkZXJz
ICovLAogCQkJCUIyQzNEQTYzMEQwMDZDRDYwMEVGNkYyNiAvKiBGb250Q2FjaGUuaCBpbiBIZWFk
ZXJzICovLAorCQkJCUMyNDU4RTYzMUZFODk3QjAwMDU5NDc1OSAvKiBGb250Q2FjaGVDb3JlVGV4
dC5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJDM0RBNjEwRDAwNkNENjAwRUY2RjI2IC8qIEZvbnRD
YXNjYWRlLmggaW4gSGVhZGVycyAqLywKIAkJCQlCMkMzREE2ODBEMDA2Q0Q2MDBFRjZGMjYgLyog
Rm9udENhc2NhZGVGb250cy5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQjJBRkZDN0UwRDAwQTVDMTAw
MzAwNzREIC8qIEZvbnRDdXN0b21QbGF0Zm9ybURhdGEuaCBpbiBIZWFkZXJzICovLApAQCAtMjcz
ODksNyArMjczOTQsNiBAQAogCQkJCTdBNTQ4NTgwMTRFMDJENTEwMDZBRTA1QSAvKiBJbnNwZWN0
b3JIaXN0b3J5LmggaW4gSGVhZGVycyAqLywKIAkJCQlBNUI4MUNBRTFGQUE0NDYyMDAzN0QxRTYg
LyogSW5zcGVjdG9ySW5kZXhlZERCQWdlbnQuaCBpbiBIZWFkZXJzICovLAogCQkJCTIwRDYyOTI3
MTI1MzY5MEIwMDA4MTU0MyAvKiBJbnNwZWN0b3JJbnN0cnVtZW50YXRpb24uaCBpbiBIZWFkZXJz
ICovLAotCQkJCTQxNjFFMkQ1MUZFNDhEQzUwMEVDMkU5NiAvKiBGZXRjaExvYWRlci5oIGluIEhl
YWRlcnMgKi8sCiAJCQkJQTU4NDBFMUQxODdCNzRENTAwODQzQjEwIC8qIEluc3BlY3Rvckluc3Ry
dW1lbnRhdGlvbkNvb2tpZS5oIGluIEhlYWRlcnMgKi8sCiAJCQkJQTVCODFDQUYxRkFBNDQ2MjAw
MzdEMUU2IC8qIEluc3BlY3RvckxheWVyVHJlZUFnZW50LmggaW4gSGVhZGVycyAqLywKIAkJCQlB
NUI4MUNCMDFGQUE0NDYyMDAzN0QxRTYgLyogSW5zcGVjdG9yTWVtb3J5QWdlbnQuaCBpbiBIZWFk
ZXJzICovLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRGYWNlU2V0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL2Nzcy9DU1NGb250RmFjZVNldC5jcHAKaW5kZXggNWM0MDMxM2U1
OWM2YzRkM2ZlMGZiMjdlZDgzNjhkMDY2NjE5NDEzNi4uZTg3NjdlNWEyZjU4MDE3ODkzMjFmNzE5
ZjgxNTQwMWVmNDUzNzM4OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvY3NzL0NTU0ZvbnRG
YWNlU2V0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9jc3MvQ1NTRm9udEZhY2VTZXQuY3BwCkBA
IC0xMDQsOSArMTA0LDcgQEAgdm9pZCBDU1NGb250RmFjZVNldDo6ZW5zdXJlTG9jYWxGb250RmFj
ZXNGb3JGYW1pbHlSZWdpc3RlcmVkKGNvbnN0IFN0cmluZyYgZmFtaWwKICAgICBpZiAobV9sb2Nh
bGx5SW5zdGFsbGVkRmFjZXNMb29rdXBUYWJsZS5jb250YWlucyhmYW1pbHlOYW1lKSkKICAgICAg
ICAgcmV0dXJuOwogCi0gICAgRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBhbGxv
d1VzZXJJbnN0YWxsZWRGb250cyA9IEZvbnRDYWNoZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6
OlllczsKLSAgICBpZiAobV9vd25pbmdGb250U2VsZWN0b3ItPmRvY3VtZW50KCkgJiYgbV9vd25p
bmdGb250U2VsZWN0b3ItPmRvY3VtZW50KCktPnNldHRpbmdzKCkuc2hvdWxkRGlzYWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMoKSkKLSAgICAgICAgYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPSBGb250
Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObzsKKyAgICBBbGxvd1VzZXJJbnN0YWxs
ZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9IG1fb3duaW5nRm9udFNlbGVjdG9yLT5k
b2N1bWVudCgpID8gbV9vd25pbmdGb250U2VsZWN0b3ItPmRvY3VtZW50KCktPnNldHRpbmdzKCku
c2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSA6IEFsbG93VXNlckluc3RhbGxlZEZvbnRz
OjpZZXM7CiAgICAgVmVjdG9yPEZvbnRTZWxlY3Rpb25DYXBhYmlsaXRpZXM+IGNhcGFiaWxpdGll
cyA9IEZvbnRDYWNoZTo6c2luZ2xldG9uKCkuZ2V0Rm9udFNlbGVjdGlvbkNhcGFiaWxpdGllc0lu
RmFtaWx5KGZhbWlseU5hbWUsIGFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKICAgICBpZiAoY2Fw
YWJpbGl0aWVzLmlzRW1wdHkoKSkKICAgICAgICAgcmV0dXJuOwpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvY3NzL1N0eWxlUmVzb2x2ZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvY3NzL1N0eWxl
UmVzb2x2ZXIuY3BwCmluZGV4IDdmZDI1YjhhYWQ1YWJjNzBkZTEwOWIyNDE0NjI2NDdmZDc5ZjA1
NWQuLjU5ZGMxZmQzZDRmMDVhYWM3OTgwZjE5MTIwZmVjNDc1OTE5Zjc3MGIgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9XZWJDb3JlL2Nzcy9TdHlsZVJlc29sdmVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9jc3MvU3R5bGVSZXNvbHZlci5jcHAKQEAgLTE3ODgsNyArMTc4OCw3IEBAIHZvaWQgU3R5bGVS
ZXNvbHZlcjo6aW5pdGlhbGl6ZUZvbnRTdHlsZSgpCiAgICAgZm9udERlc2NyaXB0aW9uLnNldE9u
ZUZhbWlseShzdGFuZGFyZEZhbWlseSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldEtleXdvcmRT
aXplRnJvbUlkZW50aWZpZXIoQ1NTVmFsdWVNZWRpdW0pOwogICAgIHNldEZvbnRTaXplKGZvbnRE
ZXNjcmlwdGlvbiwgU3R5bGU6OmZvbnRTaXplRm9yS2V5d29yZChDU1NWYWx1ZU1lZGl1bSwgZmFs
c2UsIGRvY3VtZW50KCkpKTsKLSAgICBmb250RGVzY3JpcHRpb24uc2V0TWF5UmVwcmVzZW50VXNl
ckluc3RhbGxlZEZvbnQoIXNldHRpbmdzKCkuc2hvdWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9u
dHMoKSk7CisgICAgZm9udERlc2NyaXB0aW9uLnNldFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZv
bnRzKHNldHRpbmdzKCkuc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CiAgICAgc2V0
Rm9udERlc2NyaXB0aW9uKGZvbnREZXNjcmlwdGlvbik7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BhZ2UvU2V0dGluZ3MueWFtbCBiL1NvdXJjZS9XZWJDb3JlL3BhZ2UvU2V0dGlu
Z3MueWFtbAppbmRleCA5OTVlYjhkMWNjNDA5ZGQ5ZGI5ZmMxYzdiOWZmZjJhODM1ODY0MWNhLi4w
YjAzY2E3ZDdhZjk1ZmNlYWYyMTYxNWI4ZjJhNTYwYzRiZDc5OGJhIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wYWdlL1NldHRpbmdzLnlhbWwKKysrIGIvU291cmNlL1dlYkNvcmUvcGFnZS9T
ZXR0aW5ncy55YW1sCkBAIC02NjEsOCArNjYxLDkgQEAgc3RvcmFnZUJsb2NraW5nUG9saWN5Ogog
ICBpbml0aWFsOiBTZWN1cml0eU9yaWdpbjo6QWxsb3dBbGxTdG9yYWdlCiAgIG9uQ2hhbmdlOiBz
dG9yYWdlQmxvY2tpbmdQb2xpY3lDaGFuZ2VkCiAKLXNob3VsZERpc2FsbG93VXNlckluc3RhbGxl
ZEZvbnRzOgotICBpbml0aWFsOiBmYWxzZQorc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6
CisgIHR5cGU6IEFsbG93VXNlckluc3RhbGxlZEZvbnRzCisgIGluaXRpYWw6IEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzOjpZZXMKICAgb25DaGFuZ2U6IHNldE5lZWRzUmVjYWxjU3R5bGVJbkFsbEZy
YW1lcwogCiAjIE9ubHkgc2V0IGJ5IExheW91dCBUZXN0cy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5kZXggNGFmNDdkNGIzNjM5OTQ3NTgyYzdlMDg0
ODJhOWE1Yzc3MmE0ZGU0MS4uNWNkN2I2OGZkZmJiNTk3OWI4MjA4Zjg4ZWNlYzNmNmRlOGI2ODVl
MSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hl
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAg
LTQxLDcgKzQxLDcgQEAKICNpbmNsdWRlIDx3dGYvdGV4dC9XVEZTdHJpbmcuaD4KIAogI2lmIFBM
QVRGT1JNKENPQ09BKQotI2luY2x1ZGUgPENvcmVUZXh0L0NURm9udC5oPgorI2luY2x1ZGUgIkZv
bnRDYWNoZUNvcmVUZXh0LmgiCiAjZW5kaWYKIAogI2lmIE9TKFdJTkRPV1MpCkBAIC0xMjQsNyAr
MTI0LDggQEAgc3RydWN0IEZvbnREZXNjcmlwdGlvbktleSB7CiBwcml2YXRlOgogICAgIHN0YXRp
YyBzdGQ6OmFycmF5PHVuc2lnbmVkLCAyPiBtYWtlRmxhZ3NLZXkoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbikKICAgICB7Ci0gICAgICAgIHVuc2lnbmVkIGZpcnN0ID0gc3RhdGlj
X2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNjcmlwdCgpKSA8PCAxMworICAgICAgICB1bnNp
Z25lZCBmaXJzdCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5zY3JpcHQoKSkg
PDwgMTQKKyAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNo
b3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKCkpIDw8IDEzCiAgICAgICAgICAgICB8IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5mb250U3R5bGVBeGlzKCkgPT0gRm9udFN0eWxl
QXhpczo6c2xudCkgPDwgMTIKICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRl
c2NyaXB0aW9uLm9wdGljYWxTaXppbmcoKSkgPDwgMTEKICAgICAgICAgICAgIHwgc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCkpIDw8IDkKQEAgLTIw
MCwxMCArMjAxLDYgQEAgcHVibGljOgogICAgIHN0YXRpYyBJTXVsdGlMYW5ndWFnZSogZ2V0TXVs
dGlMYW5ndWFnZUludGVyZmFjZSgpOwogI2VuZGlmCiAKLSAgICBlbnVtIGNsYXNzIEFsbG93VXNl
ckluc3RhbGxlZEZvbnRzIHsKLSAgICAgICAgWWVzLAotICAgICAgICBObwotICAgIH07CiAgICAg
Ly8gVGhpcyBmdW5jdGlvbiBleGlzdHMgc28gQ1NTRm9udFNlbGVjdG9yIGNhbiBoYXZlIGEgdW5p
ZmllZCBub3Rpb24gb2YgcHJlaW5zdGFsbGVkIGZvbnRzIGFuZCBAZm9udC1mYWNlLgogICAgIC8v
IEl0IGNvbWVzIGludG8gcGxheSB3aGVuIHlvdSBjcmVhdGUgYW4gQGZvbnQtZmFjZSB3aGljaCBz
aGFyZXMgYSBmYW1pbHkgbmFtZSBhcyBhIHByZWluc3RhbGxlZCBmb250LgogICAgIFZlY3RvcjxG
b250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzPiBnZXRGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzSW5G
YW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiwgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOwpAQCAt
MjcwLDMyICsyNjcsNyBAQCBpbmxpbmUgc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+
IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YUZvclRlcwogICAgIHJldHVybiBjcmVh
dGVGb250UGxhdGZvcm1EYXRhKGZvbnREZXNjcmlwdGlvbiwgZmFtaWx5LCBudWxscHRyLCBudWxs
cHRyLCB7IH0pOwogfQogCi0jaWYgUExBVEZPUk0oQ09DT0EpCi0KLXN0cnVjdCBTeW50aGVzaXNQ
YWlyIHsKLSAgICBTeW50aGVzaXNQYWlyKGJvb2wgbmVlZHNTeW50aGV0aWNCb2xkLCBib29sIG5l
ZWRzU3ludGhldGljT2JsaXF1ZSkKLSAgICAgICAgOiBuZWVkc1N5bnRoZXRpY0JvbGQobmVlZHNT
eW50aGV0aWNCb2xkKQotICAgICAgICAsIG5lZWRzU3ludGhldGljT2JsaXF1ZShuZWVkc1N5bnRo
ZXRpY09ibGlxdWUpCi0gICAgewotICAgIH0KLQotICAgIHN0ZDo6cGFpcjxib29sLCBib29sPiBi
b2xkT2JsaXF1ZVBhaXIoKSBjb25zdAotICAgIHsKLSAgICAgICAgcmV0dXJuIHN0ZDo6bWFrZV9w
YWlyKG5lZWRzU3ludGhldGljQm9sZCwgbmVlZHNTeW50aGV0aWNPYmxpcXVlKTsKLSAgICB9Ci0K
LSAgICBib29sIG5lZWRzU3ludGhldGljQm9sZDsKLSAgICBib29sIG5lZWRzU3ludGhldGljT2Js
aXF1ZTsKLX07Ci0KLVJldGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RG
b250UmVmLCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdz
KiBmb250RmFjZUZlYXR1cmVzLCBjb25zdCBGb250VmFyaWFudFNldHRpbmdzKiBmb250RmFjZVZh
cmlhbnRTZXR0aW5ncywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFj
ZUNhcGFiaWxpdGllcywgZmxvYXQgc2l6ZSwgYm9vbCBhcHBseVdlaWdodFdpZHRoU2xvcGVWYXJp
YXRpb25zID0gdHJ1ZSk7Ci1TeW50aGVzaXNQYWlyIGNvbXB1dGVOZWNlc3NhcnlTeW50aGVzaXMo
Q1RGb250UmVmLCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIGlzUGxhdGZvcm1Gb250ID0g
ZmFsc2UpOwotUmV0YWluUHRyPENURm9udFJlZj4gcGxhdGZvcm1Gb250V2l0aEZhbWlseVNwZWNp
YWxDYXNlKGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwg
ZmxvYXQgc2l6ZSk7Ci1SZXRhaW5QdHI8Q1RGb250UmVmPiBwbGF0Zm9ybUZvbnRXaXRoRmFtaWx5
KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgVGV4dFJl
bmRlcmluZ01vZGUsIGZsb2F0IHNpemUpOwotYm9vbCByZXF1aXJlc0N1c3RvbUZhbGxiYWNrRm9u
dChVQ2hhcjMyIGNoYXJhY3Rlcik7Ci1Gb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzIGNhcGFiaWxp
dGllc0ZvckZvbnREZXNjcmlwdG9yKENURm9udERlc2NyaXB0b3JSZWYpOwotCi0jZWxzZQorI2lm
ICFQTEFURk9STShDT0NPQSkKIAogaW5saW5lIHZvaWQgRm9udENhY2hlOjpwbGF0Zm9ybVB1cmdl
SW5hY3RpdmVGb250RGF0YSgpCiB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250RGVzY3JpcHRpb24uY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmNwcAppbmRleCBkZjRhOWNjYjVkYjQ5MDc2OGQwZTEz
ZGM2MmZlYzVjNTAzZmFiNmU4Li4zZDVkZDM1NzE0NjA3N2IyOGFlNTIzZTNhMzNlMjdiZmQyNDU2
OWFjIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250RGVz
Y3JpcHRpb24uY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRE
ZXNjcmlwdGlvbi5jcHAKQEAgLTgwLDcgKzgwLDcgQEAgRm9udERlc2NyaXB0aW9uOjpGb250RGVz
Y3JpcHRpb24oKQogICAgICwgbV92YXJpYW50RWFzdEFzaWFuUnVieShzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oRm9udFZhcmlhbnRFYXN0QXNpYW5SdWJ5OjpOb3JtYWwpKQogICAgICwgbV9vcHRpY2Fs
U2l6aW5nKHN0YXRpY19jYXN0PHVuc2lnbmVkPihGb250T3B0aWNhbFNpemluZzo6RW5hYmxlZCkp
CiAgICAgLCBtX2ZvbnRTdHlsZUF4aXMoRm9udENhc2NhZGVEZXNjcmlwdGlvbjo6aW5pdGlhbEZv
bnRTdHlsZUF4aXMoKSA9PSBGb250U3R5bGVBeGlzOjppdGFsKQotICAgICwgbV9tYXlSZXByZXNl
bnRVc2VySW5zdGFsbGVkRm9udCh0cnVlKQorICAgICwgbV9zaG91bGRBbGxvd1VzZXJJbnN0YWxs
ZWRGb250cyhzdGF0aWNfY2FzdDx1bnNpZ25lZD4oQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Olll
cykpCiB7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnREZXNjcmlwdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dERlc2NyaXB0aW9uLmgKaW5kZXggOGI4ZmEyMjUwM2UyYzUxMDUxYmRkODhhYmRiYzUwYTlmNWVi
ZGE5YS4uMTViNGFmNjk0ZjM5ZmY5YWEzY2ZlYTJkMjgxZjkwODVjZTVmN2I0MiAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udERlc2NyaXB0aW9uLmgKQEAg
LTExNCw3ICsxMTQsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIEZvbnRPcHRpY2FsU2l6aW5nIG9w
dGljYWxTaXppbmcoKSBjb25zdCB7IHJldHVybiBzdGF0aWNfY2FzdDxGb250T3B0aWNhbFNpemlu
Zz4obV9vcHRpY2FsU2l6aW5nKTsgfQogICAgIEZvbnRTdHlsZUF4aXMgZm9udFN0eWxlQXhpcygp
IGNvbnN0IHsgcmV0dXJuIG1fZm9udFN0eWxlQXhpcyA/IEZvbnRTdHlsZUF4aXM6Oml0YWwgOiBG
b250U3R5bGVBeGlzOjpzbG50OyB9Ci0gICAgYm9vbCBtYXlSZXByZXNlbnRVc2VySW5zdGFsbGVk
Rm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fbWF5UmVwcmVzZW50VXNlckluc3RhbGxlZEZvbnQ7IH0K
KyAgICBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBzaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250
cygpIGNvbnN0IHsgcmV0dXJuIHN0YXRpY19jYXN0PEFsbG93VXNlckluc3RhbGxlZEZvbnRzPiht
X3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsgfQogCiAgICAgdm9pZCBzZXRDb21wdXRl
ZFNpemUoZmxvYXQgcykgeyBtX2NvbXB1dGVkU2l6ZSA9IGNsYW1wVG9GbG9hdChzKTsgfQogICAg
IHZvaWQgc2V0SXRhbGljKEZvbnRTZWxlY3Rpb25WYWx1ZSBpdGFsaWMpIHsgbV9mb250U2VsZWN0
aW9uUmVxdWVzdC5zbG9wZSA9IGl0YWxpYzsgfQpAQCAtMTQ5LDcgKzE0OSw3IEBAIHB1YmxpYzoK
ICAgICB2b2lkIHNldFZhcmlhbnRFYXN0QXNpYW5SdWJ5KEZvbnRWYXJpYW50RWFzdEFzaWFuUnVi
eSB2YXJpYW50KSB7IG1fdmFyaWFudEVhc3RBc2lhblJ1YnkgPSBzdGF0aWNfY2FzdDx1bnNpZ25l
ZD4odmFyaWFudCk7IH0KICAgICB2b2lkIHNldE9wdGljYWxTaXppbmcoRm9udE9wdGljYWxTaXpp
bmcgc2l6aW5nKSB7IG1fb3B0aWNhbFNpemluZyA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihzaXpp
bmcpOyB9CiAgICAgdm9pZCBzZXRGb250U3R5bGVBeGlzKEZvbnRTdHlsZUF4aXMgYXhpcykgeyBt
X2ZvbnRTdHlsZUF4aXMgPSBheGlzID09IEZvbnRTdHlsZUF4aXM6Oml0YWw7IH0KLSAgICB2b2lk
IHNldE1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KGJvb2wgbWF5UmVwcmVzZW50VXNlcklu
c3RhbGxlZEZvbnQpIHsgbV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCA9IG1heVJlcHJl
c2VudFVzZXJJbnN0YWxsZWRGb250OyB9CisgICAgdm9pZCBzZXRTaG91bGRBbGxvd1VzZXJJbnN0
YWxsZWRGb250cyhBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBzaG91bGRBbGxvd1VzZXJJbnN0YWxs
ZWRGb250cykgeyBtX3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzID0gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KHNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsgfQogCiAgICAgc3RhdGlj
IHZvaWQgaW52YWxpZGF0ZUNhY2hlcygpOwogCkBAIC0xODUsNyArMTg1LDcgQEAgcHJpdmF0ZToK
ICAgICB1bnNpZ25lZCBtX3ZhcmlhbnRFYXN0QXNpYW5SdWJ5IDogMTsgLy8gRm9udFZhcmlhbnRF
YXN0QXNpYW5SdWJ5CiAgICAgdW5zaWduZWQgbV9vcHRpY2FsU2l6aW5nIDogMTsgLy8gRm9udE9w
dGljYWxTaXppbmcKICAgICB1bnNpZ25lZCBtX2ZvbnRTdHlsZUF4aXMgOiAxOyAvLyBXaGV0aGVy
ICJmb250LXN0eWxlOiBpdGFsaWMiIG9yICJmb250LXN0eWxlOiBvYmxpcXVlIDIwZGVnIiB3YXMg
c3BlY2lmaWVkCi0gICAgdW5zaWduZWQgbV9tYXlSZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCA6
IDE7IC8vIElmIHRoaXMgZGVzY3JpcHRpb24gaXMgYWxsb3dlZCB0byBtYXRjaCBhIHVzZXItaW5z
dGFsbGVkIGZvbnQKKyAgICB1bnNpZ25lZCBtX3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRz
IDogMTsgLy8gSWYgdGhpcyBkZXNjcmlwdGlvbiBpcyBhbGxvd2VkIHRvIG1hdGNoIGEgdXNlci1p
bnN0YWxsZWQgZm9udAogfTsKIAogaW5saW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRv
cj09KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgb3RoZXIpIGNvbnN0CkBAIC0yMjAsNyArMjIwLDcg
QEAgaW5saW5lIGJvb2wgRm9udERlc2NyaXB0aW9uOjpvcGVyYXRvcj09KGNvbnN0IEZvbnREZXNj
cmlwdGlvbiYgb3RoZXIpIGNvbnN0CiAgICAgICAgICYmIG1fdmFyaWFudEVhc3RBc2lhblJ1Ynkg
PT0gb3RoZXIubV92YXJpYW50RWFzdEFzaWFuUnVieQogICAgICAgICAmJiBtX29wdGljYWxTaXpp
bmcgPT0gb3RoZXIubV9vcHRpY2FsU2l6aW5nCiAgICAgICAgICYmIG1fZm9udFN0eWxlQXhpcyA9
PSBvdGhlci5tX2ZvbnRTdHlsZUF4aXMKLSAgICAgICAgJiYgbV9tYXlSZXByZXNlbnRVc2VySW5z
dGFsbGVkRm9udCA9PSBvdGhlci5tX21heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250OworICAg
ICAgICAmJiBtX3Nob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzID09IG90aGVyLm1fc2hvdWxk
QWxsb3dVc2VySW5zdGFsbGVkRm9udHM7CiB9CiAKIC8vIEZJWE1FOiBNb3ZlIHRvIGEgZmlsZSBv
ZiBpdHMgb3duLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCmluZGV4IGNlNzAzNzQxNTA2OWUwNzMx
M2FiOThhZDk1MzcyMTYwYWQ5ZGI2ZjMuLjk2YjZkYzZiZWUxMTdhMWNkYjkyY2MxMWU3NmE0ZmM5
YzE3MGIxNmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nv
Y29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKQEAgLTgzMyw3ICs4MzMsNyBAQCBw
dWJsaWM6CiAjaWYgIUNBTl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUwogICAgIHN0YXRp
YyBGb250RGF0YWJhc2UmIHNpbmdsZXRvbigpCiAgICAgewotICAgICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFzZShGb250Q2FjaGU6OkFsbG93VXNlckluc3Rh
bGxlZEZvbnRzOjpZZXMpOworICAgICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFi
YXNlPiBkYXRhYmFzZShBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzKTsKICAgICAgICAgcmV0
dXJuIGRhdGFiYXNlOwogICAgIH0KICNlbmRpZgpAQCAtODQxLDcgKzg0MSw3IEBAIHB1YmxpYzoK
ICAgICBzdGF0aWMgRm9udERhdGFiYXNlJiBzaW5nbGV0b25BbGxvd2luZ1VzZXJJbnN0YWxsZWRG
b250cygpCiAgICAgewogI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUwotICAg
ICAgICBzdGF0aWMgTmV2ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFzZShGb250Q2Fj
aGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXMpOworICAgICAgICBzdGF0aWMgTmV2ZXJE
ZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFzZShBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6
WWVzKTsKICAgICAgICAgcmV0dXJuIGRhdGFiYXNlOwogI2Vsc2UKICAgICAgICAgcmV0dXJuIHNp
bmdsZXRvbigpOwpAQCAtODUxLDcgKzg1MSw3IEBAIHB1YmxpYzoKICAgICBzdGF0aWMgRm9udERh
dGFiYXNlJiBzaW5nbGV0b25EaXNhbGxvd2luZ1VzZXJJbnN0YWxsZWRGb250cygpCiAgICAgewog
I2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUwotICAgICAgICBzdGF0aWMgTmV2
ZXJEZXN0cm95ZWQ8Rm9udERhdGFiYXNlPiBkYXRhYmFzZShGb250Q2FjaGU6OkFsbG93VXNlcklu
c3RhbGxlZEZvbnRzOjpObyk7CisgICAgICAgIHN0YXRpYyBOZXZlckRlc3Ryb3llZDxGb250RGF0
YWJhc2U+IGRhdGFiYXNlKEFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObyk7CiAgICAgICAgIHJl
dHVybiBkYXRhYmFzZTsKICNlbHNlCiAgICAgICAgIHJldHVybiBzaW5nbGV0b24oKTsKQEAgLTkw
OCwyMSArOTA4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgYXV0byBmb2xkZWQgPSBmYW1pbHlOYW1l
LmZvbGRDYXNlKCk7CiAgICAgICAgIHJldHVybiBtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlwdG9y
cy5lbnN1cmUoZm9sZGVkLCBbJl0gewogICAgICAgICAgICAgYXV0byBmYW1pbHlOYW1lU3RyaW5n
ID0gZm9sZGVkLmNyZWF0ZUNGU3RyaW5nKCk7Ci0gICAgICAgICAgICBSZXRhaW5QdHI8Q0ZEaWN0
aW9uYXJ5UmVmPiBhdHRyaWJ1dGVzOwotI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9G
T05UUwotICAgICAgICAgICAgaWYgKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gRm9udENh
Y2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pIHsKLSAgICAgICAgICAgICAgICBDRlR5
cGVSZWYga2V5c1tdID0geyBrQ1RGb250RmFtaWx5TmFtZUF0dHJpYnV0ZSwga0NURm9udFVzZXJJ
bnN0YWxsZWRBdHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10g
PSB7IGZhbWlseU5hbWVTdHJpbmcuZ2V0KCksIGtDRkJvb2xlYW5GYWxzZSB9OwotICAgICAgICAg
ICAgICAgIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBl
RGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3Mp
KTsKLSAgICAgICAgICAgIH0gZWxzZQotI2VuZGlmCi0gICAgICAgICAgICB7Ci0gICAgICAgICAg
ICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUgfTsK
LSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGZhbWlseU5hbWVTdHJpbmcu
Z2V0KCkgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25h
cnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVO
R1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlv
bmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBhdXRvIGF0
dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rp
b25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUo
YXR0cmlidXRlcy5nZXQoKSwga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUsIGZhbWlseU5hbWVT
dHJpbmcuZ2V0KCkpOworICAgICAgICAgICAgYWRkQXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRG
b250cyhhdHRyaWJ1dGVzLmdldCgpLCBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKICAgICAg
ICAgICAgIGF1dG8gZm9udERlc2NyaXB0b3JUb01hdGNoID0gYWRvcHRDRihDVEZvbnREZXNjcmlw
dG9yQ3JlYXRlV2l0aEF0dHJpYnV0ZXMoYXR0cmlidXRlcy5nZXQoKSkpOwotICAgICAgICAgICAg
aWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5n
Rm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVsbHB0cikpKSB7
CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMgPSBt
YW5kYXRvcnlBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKG1fYWxsb3dVc2VySW5zdGFs
bGVkRm9udHMpOworICAgICAgICAgICAgaWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RGb250
RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9yVG9N
YXRjaC5nZXQoKSwgbWFuZGF0b3J5QXR0cmlidXRlcy5nZXQoKSkpKSB7CiAgICAgICAgICAgICAg
ICAgYXV0byBjb3VudCA9IENGQXJyYXlHZXRDb3VudChtYXRjaGVzLmdldCgpKTsKICAgICAgICAg
ICAgICAgICBWZWN0b3I8SW5zdGFsbGVkRm9udD4gcmVzdWx0OwogICAgICAgICAgICAgICAgIHJl
c3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNvdW50KTsKQEAgLTk0NiwyMSArOTM3LDEzIEBA
IHB1YmxpYzoKICNlbHNlCiAgICAgICAgICAgICBDRlN0cmluZ1JlZiBuYW1lQXR0cmlidXRlID0g
a0NURm9udE5hbWVBdHRyaWJ1dGU7CiAjZW5kaWYKLSAgICAgICAgICAgIFJldGFpblB0cjxDRkRp
Y3Rpb25hcnlSZWY+IGF0dHJpYnV0ZXM7Ci0jaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVE
X0ZPTlRTCi0gICAgICAgICAgICBpZiAobV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBGb250
Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObykgewotICAgICAgICAgICAgICAgIENG
VHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBuYW1lQXR0cmlidXRl
LCBrQ1RGb250VXNlckluc3RhbGxlZEF0dHJpYnV0ZSB9OwotICAgICAgICAgICAgICAgIENGVHlw
ZVJlZiB2YWx1ZXNbXSA9IHsga0NGQm9vbGVhblRydWUsIHBvc3RTY3JpcHROYW1lU3RyaW5nLmdl
dCgpLCBrQ0ZCb29sZWFuRmFsc2UgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRv
cHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVz
LCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3Ms
ICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9IGVsc2UK
LSNlbmRpZgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIENGVHlwZVJlZiBrZXlzW10g
PSB7IGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBuYW1lQXR0cmlidXRlIH07Ci0gICAgICAgICAg
ICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1tdID0geyBrQ0ZCb29sZWFuVHJ1ZSwgcG9zdFNjcmlwdE5h
bWVTdHJpbmcuZ2V0KCkgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihD
RkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZf
QVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZU
eXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAg
ICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NG
VHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5
QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEVuYWJsZWRBdHRyaWJ1dGUsIGtDRkJv
b2xlYW5UcnVlKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMu
Z2V0KCksIG5hbWVBdHRyaWJ1dGUsIHBvc3RTY3JpcHROYW1lU3RyaW5nLmdldCgpKTsKKyAgICAg
ICAgICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoYXR0cmlidXRlcy5nZXQo
KSwgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CiAgICAgICAgICAgICBhdXRvIGZvbnREZXNj
cmlwdG9yVG9NYXRjaCA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRyaWJ1
dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKLSAgICAgICAgICAgIGF1dG8gbWF0Y2ggPSBhZG9wdENG
KHN0YXRpY19jYXN0PENURm9udERlc2NyaXB0b3JSZWY+KENURm9udERlc2NyaXB0b3JDcmVhdGVN
YXRjaGluZ0ZvbnREZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVsbHB0
cikpKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxDRlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRl
cyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMobV9hbGxvd1VzZXJJ
bnN0YWxsZWRGb250cyk7CisgICAgICAgICAgICBhdXRvIG1hdGNoID0gYWRvcHRDRihDVEZvbnRE
ZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVzY3JpcHRvcihmb250RGVzY3JpcHRvclRvTWF0
Y2guZ2V0KCksIG1hbmRhdG9yeUF0dHJpYnV0ZXMuZ2V0KCkpKTsKICAgICAgICAgICAgIHJldHVy
biBJbnN0YWxsZWRGb250KG1hdGNoLmdldCgpKTsKICAgICAgICAgfSkuaXRlcmF0b3ItPnZhbHVl
OwogICAgIH0KQEAgLTk3NCwxNCArOTU3LDE0IEBAIHB1YmxpYzoKIHByaXZhdGU6CiAgICAgZnJp
ZW5kIGNsYXNzIE5ldmVyRGVzdHJveWVkPEZvbnREYXRhYmFzZT47CiAKLSAgICBGb250RGF0YWJh
c2UoRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRG
b250cykKKyAgICBGb250RGF0YWJhc2UoQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMpCiAgICAgICAgIDogbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyhhbGxv
d1VzZXJJbnN0YWxsZWRGb250cykKICAgICB7CiAgICAgfQogCiAgICAgSGFzaE1hcDxTdHJpbmcs
IEluc3RhbGxlZEZvbnRGYW1pbHk+IG1fZmFtaWx5TmFtZVRvRm9udERlc2NyaXB0b3JzOwogICAg
IEhhc2hNYXA8U3RyaW5nLCBJbnN0YWxsZWRGb250PiBtX3Bvc3RTY3JpcHROYW1lVG9Gb250RGVz
Y3JpcHRvcnM7Ci0gICAgRm9udENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250cyBtX2FsbG93
VXNlckluc3RhbGxlZEZvbnRzOworICAgIEFsbG93VXNlckluc3RhbGxlZEZvbnRzIG1fYWxsb3dV
c2VySW5zdGFsbGVkRm9udHM7CiB9OwogCiAvLyBCZWNhdXNlIHRoaXMgc3RydWN0IGhvbGRzIGlu
dGVybWVkaWF0ZSB2YWx1ZXMgd2hpY2ggbWF5IGJlIGluIHRoZSBjb21wcmVzc2VkIC0xIC0gMSBH
WCByYW5nZSwgd2UgZG9uJ3Qgd2FudCB0byB1c2UgdGhlIHJlbGF0aXZlbHkgbGFyZ2UKQEAgLTEx
OTAsMTggKzExNzMsMTggQEAgc3RydWN0IEZvbnRMb29rdXAgewogICAgIGJvb2wgY3JlYXRlZEZy
b21Qb3N0U2NyaXB0TmFtZSB7IGZhbHNlIH07CiB9OwogCi1zdGF0aWMgRm9udExvb2t1cCBwbGF0
Zm9ybUZvbnRMb29rdXBXaXRoRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGb250
U2VsZWN0aW9uUmVxdWVzdCByZXF1ZXN0LCBmbG9hdCBzaXplLCBib29sIG1heVJlcHJlc2VudFVz
ZXJJbnN0YWxsZWRGb250KQorc3RhdGljIEZvbnRMb29rdXAgcGxhdGZvcm1Gb250TG9va3VwV2l0
aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgRm9udFNlbGVjdGlvblJlcXVlc3Qg
cmVxdWVzdCwgZmxvYXQgc2l6ZSwgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5z
dGFsbGVkRm9udHMpCiB7CiAgICAgY29uc3QgYXV0byYgd2hpdGVsaXN0ID0gZm9udFdoaXRlbGlz
dCgpOwogICAgIGlmICghaXNTeXN0ZW1Gb250KGZhbWlseSkgJiYgd2hpdGVsaXN0LnNpemUoKSAm
JiAhd2hpdGVsaXN0LmNvbnRhaW5zKGZhbWlseSkpCiAgICAgICAgIHJldHVybiB7IG51bGxwdHIg
fTsKIAogI2lmIFNIT1VMRF9VU0VfQ09SRV9URVhUX0ZPTlRfTE9PS1VQCi0gICAgVU5VU0VEX1BB
UkFNKG1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KTsKKyAgICBVTlVTRURfUEFSQU0oYWxs
b3dVc2VySW5zdGFsbGVkRm9udHMpOwogICAgIENURm9udFN5bWJvbGljVHJhaXRzIHRyYWl0cyA9
IChpc0ZvbnRXZWlnaHRCb2xkKHJlcXVlc3Qud2VpZ2h0KSA/IGtDVEZvbnRUcmFpdEJvbGQgOiAw
KSB8IChpc0l0YWxpYyhyZXF1ZXN0LnNsb3BlKSA/IGtDVEZvbnRUcmFpdEl0YWxpYyA6IDApOwog
ICAgIHJldHVybiB7IGFkb3B0Q0YoQ1RGb250Q3JlYXRlRm9yQ1NTKGZhbWlseS5zdHJpbmcoKS5j
cmVhdGVDRlN0cmluZygpLmdldCgpLCBzdGF0aWNfY2FzdDxmbG9hdD4ocmVxdWVzdC53ZWlnaHQp
LCB0cmFpdHMsIHNpemUpKSB9OwogI2Vsc2UKLSAgICBhdXRvJiBmb250RGF0YWJhc2UgPSBtYXlS
ZXByZXNlbnRVc2VySW5zdGFsbGVkRm9udCA/IEZvbnREYXRhYmFzZTo6c2luZ2xldG9uQWxsb3dp
bmdVc2VySW5zdGFsbGVkRm9udHMoKSA6IEZvbnREYXRhYmFzZTo6c2luZ2xldG9uRGlzYWxsb3dp
bmdVc2VySW5zdGFsbGVkRm9udHMoKTsKKyAgICBhdXRvJiBmb250RGF0YWJhc2UgPSBhbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyA9PSBBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6WWVzID8gRm9udERh
dGFiYXNlOjpzaW5nbGV0b25BbGxvd2luZ1VzZXJJbnN0YWxsZWRGb250cygpIDogRm9udERhdGFi
YXNlOjpzaW5nbGV0b25EaXNhbGxvd2luZ1VzZXJJbnN0YWxsZWRGb250cygpOwogICAgIGNvbnN0
IGF1dG8mIGZhbWlseUZvbnRzID0gZm9udERhdGFiYXNlLmNvbGxlY3Rpb25Gb3JGYW1pbHkoZmFt
aWx5LnN0cmluZygpKTsKICAgICBpZiAoZmFtaWx5Rm9udHMuaXNFbXB0eSgpKSB7CiAgICAgICAg
IC8vIFRoZSBDU1Mgc3BlYyBzdGF0ZXMgdGhhdCBmb250LWZhbWlseSBvbmx5IGFjY2VwdHMgYSBu
YW1lIG9mIGFuIGFjdHVhbCBmb250IGZhbWlseS4gSG93ZXZlciwgaW4gV2ViS2l0LCB3ZSBjbGFp
bSB0byBhbHNvCkBAIC0xMjY1LDcgKzEyNDgsNyBAQCBzdGF0aWMgUmV0YWluUHRyPENURm9udFJl
Zj4gZm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIGNvbnN0IEZvbgog
ICAgIEZvbnRMb29rdXAgZm9udExvb2t1cDsKICAgICBmb250TG9va3VwLnJlc3VsdCA9IHBsYXRm
b3JtRm9udFdpdGhGYW1pbHlTcGVjaWFsQ2FzZShmYW1pbHksIHJlcXVlc3QsIHNpemUpOwogICAg
IGlmICghZm9udExvb2t1cC5yZXN1bHQpCi0gICAgICAgIGZvbnRMb29rdXAgPSBwbGF0Zm9ybUZv
bnRMb29rdXBXaXRoRmFtaWx5KGZhbWlseSwgcmVxdWVzdCwgc2l6ZSwgZm9udERlc2NyaXB0aW9u
Lm1heVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KCkpOworICAgICAgICBmb250TG9va3VwID0g
cGxhdGZvcm1Gb250TG9va3VwV2l0aEZhbWlseShmYW1pbHksIHJlcXVlc3QsIHNpemUsIGZvbnRE
ZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKICAgICByZXR1cm4g
cHJlcGFyZVBsYXRmb3JtRm9udChmb250TG9va3VwLnJlc3VsdC5nZXQoKSwgZm9udERlc2NyaXB0
aW9uLCBmb250RmFjZUZlYXR1cmVzLCBmb250RmFjZVZhcmlhbnRTZXR0aW5ncywgZm9udEZhY2VD
YXBhYmlsaXRpZXMsIHNpemUsICFmb250TG9va3VwLmNyZWF0ZWRGcm9tUG9zdFNjcmlwdE5hbWUp
OwogfQogCkBAIC0xNDc1LDQgKzE0NTgsMzQgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBGb250Q2Fj
aGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFtaWx5TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGYKICAg
ICByZXR1cm4gbnVsbEF0b20oKTsKIH0KIAorY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9udEZhbGxi
YWNrT3B0aW9uQXR0cmlidXRlID0gQ0ZTVFIoIk5TQ1RGb250RmFsbGJhY2tPcHRpb25BdHRyaWJ1
dGUiKTsKKwordm9pZCBhZGRBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKENGTXV0YWJs
ZURpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dV
c2VySW5zdGFsbGVkRm9udHMpCit7CisjaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZP
TlRTCisgICAgaWYgKGFsbG93VXNlckluc3RhbGxlZEZvbnRzID09IEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzOjpObykgeworICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLCBr
Q1RGb250VXNlckluc3RhbGxlZEF0dHJpYnV0ZSwga0NGQm9vbGVhbkZhbHNlKTsKKyAgICAgICAg
Q1RGb250RmFsbGJhY2tPcHRpb24gZmFsbGJhY2tPcHRpb24gPSBrQ1RGb250RmFsbGJhY2tPcHRp
b25TeXN0ZW07CisgICAgICAgIGF1dG8gZmFsbGJhY2tPcHRpb25OdW1iZXIgPSBhZG9wdENGKENG
TnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNJbnQ2NFR5cGUsICZm
YWxsYmFja09wdGlvbikpOworICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVz
LCBrQ1RGb250RmFsbGJhY2tPcHRpb25BdHRyaWJ1dGUsIGZhbGxiYWNrT3B0aW9uTnVtYmVyLmdl
dCgpKTsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShhdHRyaWJ1dGVzKTsKKyAgICBV
TlVTRURfUEFSQU0oYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOworI2VuZGlmCit9CisKK1JldGFp
blB0cjxDRlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhB
bGxvd1VzZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKK3sKKyNpZiBD
QU5fRElTQUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKKyAgICBpZiAoYWxsb3dVc2VySW5zdGFs
bGVkRm9udHMgPT0gQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5vKSB7CisgICAgICAgIENGVHlw
ZVJlZiBtYW5kYXRvcnlBdHRyaWJ1dGVzVmFsdWVzW10gPSB7IGtDVEZvbnRVc2VySW5zdGFsbGVk
QXR0cmlidXRlLCBrQ1RGb250RmFsbGJhY2tPcHRpb25BdHRyaWJ1dGUgfTsKKyAgICAgICAgcmV0
dXJuIGFkb3B0Q0YoQ0ZTZXRDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbWFuZGF0b3J5QXR0
cmlidXRlc1ZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChtYW5kYXRvcnlBdHRyaWJ1dGVzVmFsdWVz
KSwgJmtDRlR5cGVTZXRDYWxsQmFja3MpKTsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJB
TShhbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CisjZW5kaWYKKyAgICByZXR1cm4gbnVsbHB0cjsK
K30KKwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udENhY2hlQ29yZVRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMTNkYTcxNWI5NmU1OThiZDk1
NGMyOTMwZWUxYWI5Nzc0OWNmYjljZAotLS0gL2Rldi9udWxsCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKQEAgLTAsMCArMSw2
MiBAQAorLyoKKyAqIENvcHlyaWdodCAoQykgMjAxNyBBcHBsZSBJbmMuICBBbGwgcmlnaHRzIHJl
c2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9uIGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5h
cnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICogbW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVk
IHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBjb25kaXRpb25zCisgKiBhcmUgbWV0OgorICoK
KyAqIDEuICBSZWRpc3RyaWJ1dGlvbnMgb2Ygc291cmNlIGNvZGUgbXVzdCByZXRhaW4gdGhlIGFi
b3ZlIGNvcHlyaWdodAorICogICAgIG5vdGljZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5k
IHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuICBSZWRpc3RyaWJ1dGlvbnMgaW4gYmlu
YXJ5IGZvcm0gbXVzdCByZXByb2R1Y2UgdGhlIGFib3ZlIGNvcHlyaWdodAorICogICAgIG5vdGlj
ZSwgdGhpcyBsaXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lciBp
biB0aGUKKyAqICAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhlciBtYXRlcmlhbHMgcHJvdmlk
ZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICogMy4gIE5laXRoZXIgdGhlIG5hbWUgb2YgQXBw
bGUgSW5jLiAoIkFwcGxlIikgbm9yIHRoZSBuYW1lcyBvZgorICogICAgIGl0cyBjb250cmlidXRv
cnMgbWF5IGJlIHVzZWQgdG8gZW5kb3JzZSBvciBwcm9tb3RlIHByb2R1Y3RzIGRlcml2ZWQKKyAq
ICAgICBmcm9tIHRoaXMgc29mdHdhcmUgd2l0aG91dCBzcGVjaWZpYyBwcmlvciB3cml0dGVuIHBl
cm1pc3Npb24uCisgKgorICogVEhJUyBTT0ZUV0FSRSBJUyBQUk9WSURFRCBCWSBBUFBMRSBBTkQg
SVRTIENPTlRSSUJVVE9SUyAiQVMgSVMiIEFORCBBTlkKKyAqIEVYUFJFU1MgT1IgSU1QTElFRCBX
QVJSQU5USUVTLCBJTkNMVURJTkcsIEJVVCBOT1QgTElNSVRFRCBUTywgVEhFIElNUExJRUQKKyAq
IFdBUlJBTlRJRVMgT0YgTUVSQ0hBTlRBQklMSVRZIEFORCBGSVRORVNTIEZPUiBBIFBBUlRJQ1VM
QVIgUFVSUE9TRSBBUkUKKyAqIERJU0NMQUlNRUQuIElOIE5PIEVWRU5UIFNIQUxMIEFQUExFIE9S
IElUUyBDT05UUklCVVRPUlMgQkUgTElBQkxFIEZPUiBBTlkKKyAqIERJUkVDVCwgSU5ESVJFQ1Qs
IElOQ0lERU5UQUwsIFNQRUNJQUwsIEVYRU1QTEFSWSwgT1IgQ09OU0VRVUVOVElBTCBEQU1BR0VT
CisgKiAoSU5DTFVESU5HLCBCVVQgTk9UIExJTUlURUQgVE8sIFBST0NVUkVNRU5UIE9GIFNVQlNU
SVRVVEUgR09PRFMgT1IgU0VSVklDRVM7CisgKiBMT1NTIE9GIFVTRSwgREFUQSwgT1IgUFJPRklU
UzsgT1IgQlVTSU5FU1MgSU5URVJSVVBUSU9OKSBIT1dFVkVSIENBVVNFRCBBTkQKKyAqIE9OIEFO
WSBUSEVPUlkgT0YgTElBQklMSVRZLCBXSEVUSEVSIElOIENPTlRSQUNULCBTVFJJQ1QgTElBQklM
SVRZLCBPUiBUT1JUCisgKiAoSU5DTFVESU5HIE5FR0xJR0VOQ0UgT1IgT1RIRVJXSVNFKSBBUklT
SU5HIElOIEFOWSBXQVkgT1VUIE9GIFRIRSBVU0UgT0YKKyAqIFRISVMgU09GVFdBUkUsIEVWRU4g
SUYgQURWSVNFRCBPRiBUSEUgUE9TU0lCSUxJVFkgT0YgU1VDSCBEQU1BR0UuCisgKi8KKworI3By
YWdtYSBvbmNlCisKKyNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKKworI2luY2x1ZGUgPENv
cmVUZXh0L0NURm9udC5oPgorCituYW1lc3BhY2UgV2ViQ29yZSB7CisKK3N0cnVjdCBTeW50aGVz
aXNQYWlyIHsKKyAgICBTeW50aGVzaXNQYWlyKGJvb2wgbmVlZHNTeW50aGV0aWNCb2xkLCBib29s
IG5lZWRzU3ludGhldGljT2JsaXF1ZSkKKyAgICAgICAgOiBuZWVkc1N5bnRoZXRpY0JvbGQobmVl
ZHNTeW50aGV0aWNCb2xkKQorICAgICAgICAsIG5lZWRzU3ludGhldGljT2JsaXF1ZShuZWVkc1N5
bnRoZXRpY09ibGlxdWUpCisgICAgeworICAgIH0KKworICAgIHN0ZDo6cGFpcjxib29sLCBib29s
PiBib2xkT2JsaXF1ZVBhaXIoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIHN0ZDo6bWFr
ZV9wYWlyKG5lZWRzU3ludGhldGljQm9sZCwgbmVlZHNTeW50aGV0aWNPYmxpcXVlKTsKKyAgICB9
CisKKyAgICBib29sIG5lZWRzU3ludGhldGljQm9sZDsKKyAgICBib29sIG5lZWRzU3ludGhldGlj
T2JsaXF1ZTsKK307CisKK1JldGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQo
Q1RGb250UmVmLCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBGb250RmVhdHVyZVNldHRp
bmdzKiBmb250RmFjZUZlYXR1cmVzLCBjb25zdCBGb250VmFyaWFudFNldHRpbmdzKiBmb250RmFj
ZVZhcmlhbnRTZXR0aW5ncywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFiaWxpdGllcyBmb250
RmFjZUNhcGFiaWxpdGllcywgZmxvYXQgc2l6ZSwgYm9vbCBhcHBseVdlaWdodFdpZHRoU2xvcGVW
YXJpYXRpb25zID0gdHJ1ZSk7CitTeW50aGVzaXNQYWlyIGNvbXB1dGVOZWNlc3NhcnlTeW50aGVz
aXMoQ1RGb250UmVmLCBjb25zdCBGb250RGVzY3JpcHRpb24mLCBib29sIGlzUGxhdGZvcm1Gb250
ID0gZmFsc2UpOworUmV0YWluUHRyPENURm9udFJlZj4gcGxhdGZvcm1Gb250V2l0aEZhbWlseVNw
ZWNpYWxDYXNlKGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVz
dCwgZmxvYXQgc2l6ZSk7CitSZXRhaW5QdHI8Q1RGb250UmVmPiBwbGF0Zm9ybUZvbnRXaXRoRmFt
aWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgVGV4
dFJlbmRlcmluZ01vZGUsIGZsb2F0IHNpemUpOworYm9vbCByZXF1aXJlc0N1c3RvbUZhbGxiYWNr
Rm9udChVQ2hhcjMyIGNoYXJhY3Rlcik7CitGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzIGNhcGFi
aWxpdGllc0ZvckZvbnREZXNjcmlwdG9yKENURm9udERlc2NyaXB0b3JSZWYpOwordm9pZCBhZGRB
dHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0
cmlidXRlcywgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOworUmV0YWluUHRyPENGU2V0UmVmPiBt
YW5kYXRvcnlBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKEFsbG93VXNlckluc3RhbGxl
ZEZvbnRzKTsKKworfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4IDA2OWE3OTUy
YjlhNTMzYzA4ZDQ5YzQ5OTkyNDUyNTM2ODI4MmY0MWYuLjA0YTgwMWQ3N2U5NTk5NjBkY2NjOWI3
MzA3YjJmMDhjMjU5Mzk3ZjIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTIy
LDYgKzIyLDcgQEAKICNpbmNsdWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAKICNpbmNs
dWRlICJGb250Q2FjaGUuaCIKKyNpbmNsdWRlICJGb250Q2FjaGVDb3JlVGV4dC5oIgogI2luY2x1
ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNp
bmNsdWRlICJTaGFyZWRCdWZmZXIuaCIKQEAgLTM0LDEwICszNSwxNyBAQCBGb250Q3VzdG9tUGxh
dGZvcm1EYXRhOjp+Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpID0gZGVmYXVsdDsKIAogRm9udFBs
YXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBib29sIGJvbGQsIGJvb2wgaXRhbGlj
LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBjb25zdCBGb250
VmFyaWFudFNldHRpbmdzJiBmb250RmFjZVZhcmlhbnRTZXR0aW5ncywgRm9udFNlbGVjdGlvblNw
ZWNpZmllZENhcGFiaWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcykKIHsKKyAgICBhdXRvIGF0
dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9y
RGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rp
b25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVk
Rm9udHMoYXR0cmlidXRlcy5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlcklu
c3RhbGxlZEZvbnRzKCkpOworICAgIGF1dG8gbW9kaWZpZWRGb250RGVzY3JpcHRvciA9IGFkb3B0
Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZUNvcHlXaXRoQXR0cmlidXRlcyhtX2ZvbnREZXNjcmlw
dG9yLmdldCgpLCBhdHRyaWJ1dGVzLmdldCgpKSk7CisgICAgUmV0YWluUHRyPENGU2V0UmVmPiBt
YW5kYXRvcnlBdHRyaWJ1dGVzID0gbWFuZGF0b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRG
b250cyhmb250RGVzY3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7Cisg
ICAgYXV0byBtYXRjaGluZ0ZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9y
Q3JlYXRlTWF0Y2hpbmdGb250RGVzY3JpcHRvcihtb2RpZmllZEZvbnREZXNjcmlwdG9yLmdldCgp
LCBtYW5kYXRvcnlBdHRyaWJ1dGVzLmdldCgpKSk7CisgICAgQVNTRVJUKG1hdGNoaW5nRm9udERl
c2NyaXB0b3IpOworCiAgICAgaW50IHNpemUgPSBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhl
bFNpemUoKTsKICAgICBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBmb250RGVzY3JpcHRp
b24ub3JpZW50YXRpb24oKTsKICAgICBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCA9IGZv
bnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKTsKLSAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBm
b250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IobV9mb250RGVzY3Jp
cHRvci5nZXQoKSwgc2l6ZSwgbnVsbHB0cikpOworICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IGZv
bnQgPSBhZG9wdENGKENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcihtYXRjaGluZ0ZvbnRE
ZXNjcmlwdG9yLmdldCgpLCBzaXplLCBudWxscHRyKSk7CiAgICAgZm9udCA9IHByZXBhcmVQbGF0
Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCAmZm9udEZhY2VGZWF0dXJlcywg
JmZvbnRGYWNlVmFyaWFudFNldHRpbmdzLCBmb250RmFjZUNhcGFiaWxpdGllcywgZm9udERlc2Ny
aXB0aW9uLmNvbXB1dGVkU2l6ZSgpKTsKICAgICBBU1NFUlQoZm9udCk7CiAgICAgcmV0dXJuIEZv
bnRQbGF0Zm9ybURhdGEoZm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlv
biwgd2lkdGhWYXJpYW50LCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1RleHRGbGFncy5oIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vdGV4dC9UZXh0RmxhZ3MuaAppbmRleCBkZmRlNWJmNmE0NjM0
NDNjMjVkYTU2YjVjOTU1OTRiYzJkMTUxZjE5Li40MTJiOTZmYTJjMmJlN2M0NTViZGM5OGVmOTQy
ZTk2ZThkY2RjNWJhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS90ZXh0L1Rl
eHRGbGFncy5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3RleHQvVGV4dEZsYWdzLmgK
QEAgLTEsNSArMSw1IEBACiAvKgotICogQ29weXJpZ2h0IChDKSAyMDAzLCAyMDA2IEFwcGxlIElu
Yy4gIEFsbCByaWdodHMgcmVzZXJ2ZWQuCisgKiBDb3B5cmlnaHQgKEMpIDIwMDMsIDIwMDYsIDIw
MTcgQXBwbGUgSW5jLiAgQWxsIHJpZ2h0cyByZXNlcnZlZC4KICAqCiAgKiBSZWRpc3RyaWJ1dGlv
biBhbmQgdXNlIGluIHNvdXJjZSBhbmQgYmluYXJ5IGZvcm1zLCB3aXRoIG9yIHdpdGhvdXQKICAq
IG1vZGlmaWNhdGlvbiwgYXJlIHBlcm1pdHRlZCBwcm92aWRlZCB0aGF0IHRoZSBmb2xsb3dpbmcg
Y29uZGl0aW9ucwpAQCAtMzYyLDQgKzM2Miw5IEBAIGVudW0gY2xhc3MgRm9udFN0eWxlQXhpcyB7
CiAgICAgaXRhbAogfTsKIAorZW51bSBjbGFzcyBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyB7Cisg
ICAgWWVzLAorICAgIE5vCit9OworCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9zdHls
ZS9TdHlsZVJlc29sdmVGb3JEb2N1bWVudC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9zdHlsZS9TdHls
ZVJlc29sdmVGb3JEb2N1bWVudC5jcHAKaW5kZXggY2JmNjcyMzQyNjhmNGMzNzcwYmZmM2VhMDk1
Zjk5ODczMjJkNDEyZi4uY2E5NjY3MGUyMzhlYWQyYzRmY2IwNGMwMjI3ZGI1NmVlYzMwZDNmZSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3R5bGUvU3R5bGVSZXNvbHZlRm9yRG9jdW1lbnQu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3N0eWxlL1N0eWxlUmVzb2x2ZUZvckRvY3VtZW50LmNw
cApAQCAtMTA5LDcgKzEwOSw3IEBAIFJlbmRlclN0eWxlIHJlc29sdmVGb3JEb2N1bWVudChjb25z
dCBEb2N1bWVudCYgZG9jdW1lbnQpCiAgICAgZm9udERlc2NyaXB0aW9uLnNldExvY2FsZShkb2N1
bWVudC5jb250ZW50TGFuZ3VhZ2UoKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldFJlbmRlcmlu
Z01vZGUoc2V0dGluZ3MuZm9udFJlbmRlcmluZ01vZGUoKSk7CiAgICAgZm9udERlc2NyaXB0aW9u
LnNldE9uZUZhbWlseShzdGFuZGFyZEZhbWlseSk7Ci0gICAgZm9udERlc2NyaXB0aW9uLnNldE1h
eVJlcHJlc2VudFVzZXJJbnN0YWxsZWRGb250KCFzZXR0aW5ncy5zaG91bGREaXNhbGxvd1VzZXJJ
bnN0YWxsZWRGb250cygpKTsKKyAgICBmb250RGVzY3JpcHRpb24uc2V0U2hvdWxkQWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHMoc2V0dGluZ3Muc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7
CiAKICAgICBmb250RGVzY3JpcHRpb24uc2V0S2V5d29yZFNpemVGcm9tSWRlbnRpZmllcihDU1NW
YWx1ZU1lZGl1bSk7CiAgICAgaW50IHNpemUgPSBmb250U2l6ZUZvcktleXdvcmQoQ1NTVmFsdWVN
ZWRpdW0sIGZhbHNlLCBkb2N1bWVudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS90ZXN0
aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5h
bFNldHRpbmdzLmNwcAppbmRleCBjZGFiYjZmZGQ4NjEzOTdjMWQ1Y2RmYzQ2Y2FhNGFlZWQyMGYw
MTFmLi40ZGRmYjc3NzQ3YjI0N2I1YzMwNDQxNmMwYjBjYzBkOTAyNzk4ZWNlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5jcHAKQEAgLTExNyw2ICsxMTcsNyBA
QCBJbnRlcm5hbFNldHRpbmdzOjpCYWNrdXA6OkJhY2t1cChTZXR0aW5ncyYgc2V0dGluZ3MpCiAg
ICAgLCBtX3Nob3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KERlcHJlY2F0ZWRHbG9iYWxT
ZXR0aW5nczo6c2hvdWxkTWFuYWdlQXVkaW9TZXNzaW9uQ2F0ZWdvcnkoKSkKICNlbmRpZgogICAg
ICwgbV9jdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJsZWQoRGVwcmVjYXRlZEdsb2JhbFNldHRpbmdz
OjpjdXN0b21QYXN0ZWJvYXJkRGF0YUVuYWJsZWQoKSkKKyAgICAsIG1fYWxsb3dVc2VySW5zdGFs
bGVkRm9udHMoc2V0dGluZ3Muc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSkKIHsKIH0K
IApAQCAtMTk4LDYgKzE5OSw3IEBAIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6QmFja3VwOjpyZXN0
b3JlVG8oU2V0dGluZ3MmIHNldHRpbmdzKQogICAgIFJlbmRlclRoZW1lOjpzaW5nbGV0b24oKS5z
ZXRTaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5KG1fc2hvdWxkTW9ja0Jv
bGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSk7CiAgICAgRm9udENhY2hlOjpzaW5nbGV0b24o
KS5zZXRTaG91bGRNb2NrQm9sZFN5c3RlbUZvbnRGb3JBY2Nlc3NpYmlsaXR5KG1fc2hvdWxkTW9j
a0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNzaWJpbGl0eSk7CiAgICAgc2V0dGluZ3Muc2V0RnJhbWVG
bGF0dGVuaW5nKG1fZnJhbWVGbGF0dGVuaW5nKTsKKyAgICBzZXR0aW5ncy5zZXRTaG91bGRBbGxv
d1VzZXJJbnN0YWxsZWRGb250cyhtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKIAogI2lmIEVO
QUJMRShJTkRFWEVEX0RBVEFCQVNFX0lOX1dPUktFUlMpCiAgICAgUnVudGltZUVuYWJsZWRGZWF0
dXJlczo6c2hhcmVkRmVhdHVyZXMoKS5zZXRJbmRleGVkREJXb3JrZXJzRW5hYmxlZChtX2luZGV4
ZWREQldvcmtlcnNFbmFibGVkKTsKQEAgLTcyNCw2ICs3MjYsMTQgQEAgRXhjZXB0aW9uT3I8dm9p
ZD4gSW50ZXJuYWxTZXR0aW5nczo6c2V0U2hvdWxkTW9ja0JvbGRTeXN0ZW1Gb250Rm9yQWNjZXNz
aWJpbGl0eSgKICAgICBGb250Q2FjaGU6OnNpbmdsZXRvbigpLnNldFNob3VsZE1vY2tCb2xkU3lz
dGVtRm9udEZvckFjY2Vzc2liaWxpdHkocmVxdWlyZXMpOwogICAgIHJldHVybiB7IH07CiB9Cisg
ICAgCitFeGNlcHRpb25Pcjx2b2lkPiBJbnRlcm5hbFNldHRpbmdzOjpzZXRTaG91bGRBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyhib29sIHNob3VsZEFsbG93KQoreworICAgIGlmICghbV9wYWdlKQor
ICAgICAgICByZXR1cm4gRXhjZXB0aW9uIHsgSW52YWxpZEFjY2Vzc0Vycm9yIH07CisgICAgc2V0
dGluZ3MoKS5zZXRTaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cyhzaG91bGRBbGxvdyA/IEFs
bG93VXNlckluc3RhbGxlZEZvbnRzOjpZZXMgOiBBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8p
OworICAgIHJldHVybiB7IH07Cit9CiAKIHZvaWQgSW50ZXJuYWxTZXR0aW5nczo6c2V0SW5kZXhl
ZERCV29ya2Vyc0VuYWJsZWQoYm9vbCBlbmFibGVkKQogewpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmggYi9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5n
L0ludGVybmFsU2V0dGluZ3MuaAppbmRleCBhYjY0MTJiMWM4NzM0YWQyN2FlZjU1YmU5NDVjYjJj
ZTU3Y2Y4NzkyLi5kNmE3N2MyYWQ2Yjg3NDQzZGMwOGM4MjQzMWE2MTU3MTFmMmNmZTcyIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaAorKysgYi9T
b3VyY2UvV2ViQ29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaApAQCAtMTAwLDYgKzEwMCw3
IEBAIHB1YmxpYzoKICAgICBFeGNlcHRpb25Pcjx2b2lkPiBzZXRTaG91bGRNb2NrQm9sZFN5c3Rl
bUZvbnRGb3JBY2Nlc3NpYmlsaXR5KGJvb2wpOwogICAgIEV4Y2VwdGlvbk9yPHZvaWQ+IHNldFNo
b3VsZE1hbmFnZUF1ZGlvU2Vzc2lvbkNhdGVnb3J5KGJvb2wpOwogICAgIEV4Y2VwdGlvbk9yPHZv
aWQ+IHNldEN1c3RvbVBhc3RlYm9hcmREYXRhRW5hYmxlZChib29sKTsKKyAgICBFeGNlcHRpb25P
cjx2b2lkPiBzZXRTaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cyhib29sKTsKIAogICAgIHVz
aW5nIEZyYW1lRmxhdHRlbmluZ1ZhbHVlID0gRnJhbWVGbGF0dGVuaW5nOwogICAgIEV4Y2VwdGlv
bk9yPHZvaWQ+IHNldEZyYW1lRmxhdHRlbmluZyhGcmFtZUZsYXR0ZW5pbmdWYWx1ZSk7CkBAIC0y
MDksNiArMjEwLDcgQEAgcHJpdmF0ZToKICAgICAgICAgYm9vbCBtX3Nob3VsZE1hbmFnZUF1ZGlv
U2Vzc2lvbkNhdGVnb3J5OwogI2VuZGlmCiAgICAgICAgIGJvb2wgbV9jdXN0b21QYXN0ZWJvYXJk
RGF0YUVuYWJsZWQ7CisgICAgICAgIEFsbG93VXNlckluc3RhbGxlZEZvbnRzIG1fYWxsb3dVc2Vy
SW5zdGFsbGVkRm9udHM7CiAgICAgfTsKIAogICAgIFBhZ2UqIG1fcGFnZTsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0aW5ncy5pZGwgYi9Tb3VyY2UvV2Vi
Q29yZS90ZXN0aW5nL0ludGVybmFsU2V0dGluZ3MuaWRsCmluZGV4IDExYmI5YzdkN2RjZmY4MzQw
YWVlMTc1YzIzNGNiNDFiMDhkNjVkNjYuLjMxYjYwM2U5MThkNjUyOTIyZTg1NGJlNTI0YTNiM2M1
NDZmZmI1OGMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Rlc3RpbmcvSW50ZXJuYWxTZXR0
aW5ncy5pZGwKKysrIGIvU291cmNlL1dlYkNvcmUvdGVzdGluZy9JbnRlcm5hbFNldHRpbmdzLmlk
bApAQCAtMTAyLDYgKzEwMiw3IEBAIGVudW0gRm9udExvYWRUaW1pbmdPdmVycmlkZSB7ICJCbG9j
ayIsICJTd2FwIiwgIkZhaWx1cmUiIH07CiAgICAgW01heVRocm93RXhjZXB0aW9uXSB2b2lkIHNl
dERlZmVycmVkQ1NTUGFyc2VyRW5hYmxlZChib29sZWFuIGVuYWJsZWQpOwogCiAgICAgW01heVRo
cm93RXhjZXB0aW9uXSB2b2lkIHNldFNob3VsZE1vY2tCb2xkU3lzdGVtRm9udEZvckFjY2Vzc2li
aWxpdHkoYm9vbGVhbiBzaG91bGRNb2NrKTsKKyAgICBbTWF5VGhyb3dFeGNlcHRpb25dIHZvaWQg
c2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoYm9vbGVhbiBzaG91bGRBbGxvdyk7CiAK
ICAgICBhdHRyaWJ1dGUgRm9yY2VkQWNjZXNzaWJpbGl0eVZhbHVlIGZvcmNlZENvbG9yc0FyZUlu
dmVydGVkQWNjZXNzaWJpbGl0eVZhbHVlOwogICAgIGF0dHJpYnV0ZSBGb3JjZWRBY2Nlc3NpYmls
aXR5VmFsdWUgZm9yY2VkRGlzcGxheUlzTW9ub2Nocm9tZUFjY2Vzc2liaWxpdHlWYWx1ZTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVuY2VzLnlhbWwgYi9Tb3Vy
Y2UvV2ViS2l0L1NoYXJlZC9XZWJQcmVmZXJlbmNlcy55YW1sCmluZGV4IDFmNGI5ZDk1NWRhY2Zh
NThhYjM3MmNmZjc2MDU0Mzc5ZThiNjM3OWMuLmFhNDUwZTNkMTczMzUyNGZkZjBmM2FmYjkwYTI0
ODk4NGQ1ZDZiMzggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJLaXQvU2hhcmVkL1dlYlByZWZlcmVu
Y2VzLnlhbWwKKysrIGIvU291cmNlL1dlYktpdC9TaGFyZWQvV2ViUHJlZmVyZW5jZXMueWFtbApA
QCAtMTAzNyw2ICsxMDM3LDcgQEAgVmlzaWJsZURlYnVnT3ZlcmxheVJlZ2lvbnM6CiBTaG91bGRE
aXNhbGxvd1VzZXJJbnN0YWxsZWRGb250czoKICAgdHlwZTogYm9vbAogICBkZWZhdWx0VmFsdWU6
IGZhbHNlCisgIHdlYmNvcmVCaW5kaW5nOiBjdXN0b20KIAogCiAjIEZvciBleHBlcmltZW50YWwg
ZmVhdHVyZXM6CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViS2l0L1dlYlByb2Nlc3MvV2ViUGFnZS9X
ZWJQYWdlLmNwcCBiL1NvdXJjZS9XZWJLaXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3Bw
CmluZGV4IGMzMDJjNTk0M2Y3YzJkZTdmMGMyZmYzZjM4ZjI3OWViM2E0YzY1NGIuLjdhNWRmNmM2
ZWJmODk4ZjM4NmQ5NmMyYzE4M2EyOWM3ZmQxNmQxZDMgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJL
aXQvV2ViUHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCisrKyBiL1NvdXJjZS9XZWJLaXQvV2Vi
UHJvY2Vzcy9XZWJQYWdlL1dlYlBhZ2UuY3BwCkBAIC0zMDYyLDYgKzMwNjIsNyBAQCB2b2lkIFdl
YlBhZ2U6OnVwZGF0ZVByZWZlcmVuY2VzKGNvbnN0IFdlYlByZWZlcmVuY2VzU3RvcmUmIHN0b3Jl
KQogICAgIHNldHRpbmdzLnNldFN0b3JhZ2VCbG9ja2luZ1BvbGljeShzdGF0aWNfY2FzdDxTZWN1
cml0eU9yaWdpbjo6U3RvcmFnZUJsb2NraW5nUG9saWN5PihzdG9yZS5nZXRVSW50MzJWYWx1ZUZv
cktleShXZWJQcmVmZXJlbmNlc0tleTo6c3RvcmFnZUJsb2NraW5nUG9saWN5S2V5KCkpKSk7CiAg
ICAgc2V0dGluZ3Muc2V0RnJhbWVGbGF0dGVuaW5nKHN0YXRpY19jYXN0PFdlYkNvcmU6OkZyYW1l
RmxhdHRlbmluZz4oc3RvcmUuZ2V0VUludDMyVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6
OmZyYW1lRmxhdHRlbmluZ0tleSgpKSkpOwogICAgIHNldHRpbmdzLnNldEVkaXRhYmxlTGlua0Jl
aGF2aW9yKHN0YXRpY19jYXN0PFdlYkNvcmU6OkVkaXRhYmxlTGlua0JlaGF2aW9yPihzdG9yZS5n
ZXRVSW50MzJWYWx1ZUZvcktleShXZWJQcmVmZXJlbmNlc0tleTo6ZWRpdGFibGVMaW5rQmVoYXZp
b3JLZXkoKSkpKTsKKyAgICBzZXR0aW5ncy5zZXRTaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250
cyhzdG9yZS5nZXRCb29sVmFsdWVGb3JLZXkoV2ViUHJlZmVyZW5jZXNLZXk6OnNob3VsZERpc2Fs
bG93VXNlckluc3RhbGxlZEZvbnRzS2V5KCkpID8gV2ViQ29yZTo6QWxsb3dVc2VySW5zdGFsbGVk
Rm9udHM6Ok5vIDogV2ViQ29yZTo6QWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Olllcyk7CiAjaWYg
RU5BQkxFKERBVEFfREVURUNUSU9OKQogICAgIHNldHRpbmdzLnNldERhdGFEZXRlY3RvclR5cGVz
KHN0YXRpY19jYXN0PERhdGFEZXRlY3RvclR5cGVzPihzdG9yZS5nZXRVSW50MzJWYWx1ZUZvcktl
eShXZWJQcmVmZXJlbmNlc0tleTo6ZGF0YURldGVjdG9yVHlwZXNLZXkoKSkpKTsKICNlbmRpZgpk
aWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3VzZXItaW5zdGFsbGVkLWZvbnRzL2Rp
c2FibGUuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC91c2VyLWluc3RhbGxlZC1mb250cy9k
aXNhYmxlLmh0bWwKaW5kZXggMzE0ZWE2MTU5MDdhNWIxNDQ0YmU0OTgzYTQ2ZGE0MGVmMmJkNGI1
Zi4uMjEzYzgwMDM1YzhhODdhNWRlYjY1NDlmMDc3ZmQzZTM4M2JmNDZmZSAxMDA2NDQKLS0tIGEv
TGF5b3V0VGVzdHMvZmFzdC90ZXh0L3VzZXItaW5zdGFsbGVkLWZvbnRzL2Rpc2FibGUuaHRtbAor
KysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdXNlci1pbnN0YWxsZWQtZm9udHMvZGlzYWJsZS5o
dG1sCkBAIC0zLDcgKzMsNyBAQAogPGhlYWQ+CiA8c2NyaXB0PgogaWYgKHdpbmRvdy5pbnRlcm5h
bHMpCi0gICAgaW50ZXJuYWxzLnNldHRpbmdzLnNldFNob3VsZERpc2FsbG93VXNlckluc3RhbGxl
ZEZvbnRzKHRydWUpOworICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaG91bGRBbGxvd1VzZXJJ
bnN0YWxsZWRGb250cyhmYWxzZSk7CiA8L3NjcmlwdD4KIDwvaGVhZD4KIDxib2R5PgpkaWZmIC0t
Z2l0IGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3VzZXItaW5zdGFsbGVkLWZvbnRzL3NoYWRvdy1k
aXNhYmxlLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdXNlci1pbnN0YWxsZWQtZm9udHMv
c2hhZG93LWRpc2FibGUuaHRtbAppbmRleCBjYzQ1Nzc5ZDk1NmRhZDBlY2Q4ZGJiNWRjMWQ4YjM3
OTFmNGVmYmI3Li5iYmUyYzk5Zjc4YTY1MjJhOTI1YTI0ZGRlOGY4YmM1YmJlMTQ3OTMxIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdXNlci1pbnN0YWxsZWQtZm9udHMvc2hhZG93
LWRpc2FibGUuaHRtbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdXNlci1pbnN0YWxsZWQt
Zm9udHMvc2hhZG93LWRpc2FibGUuaHRtbApAQCAtNSw3ICs1LDcgQEAKIGlmICh3aW5kb3cudGVz
dFJ1bm5lcikKICAgICB0ZXN0UnVubmVyLmluc3RhbGxGYWtlSGVsdmV0aWNhKCJIZWx2ZXRpY2Et
NDAwIik7CiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0
U2hvdWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9udHModHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNl
dHRpbmdzLnNldFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKGZhbHNlKTsKIDwvc2NyaXB0
PgogPC9oZWFkPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdXNl
ci1pbnN0YWxsZWQtZm9udHMvc2hhZG93LWZhbWlseS1kaXNhYmxlLmh0bWwgYi9MYXlvdXRUZXN0
cy9mYXN0L3RleHQvdXNlci1pbnN0YWxsZWQtZm9udHMvc2hhZG93LWZhbWlseS1kaXNhYmxlLmh0
bWwKaW5kZXggYmVkZGFmNTVmZGZiMjUwZGJmNDA4ZWE1MjBlZTcxZDYzOTk3ZTM3Ni4uNGEwY2Rm
YTM1NjEyYzZhNjk5YjIxMDJiN2IxN2Q1OWIzNTFlZWVjNyAxMDA2NDQKLS0tIGEvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L3VzZXItaW5zdGFsbGVkLWZvbnRzL3NoYWRvdy1mYW1pbHktZGlzYWJsZS5o
dG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC91c2VyLWluc3RhbGxlZC1mb250cy9zaGFk
b3ctZmFtaWx5LWRpc2FibGUuaHRtbApAQCAtNSw3ICs1LDcgQEAKIGlmICh3aW5kb3cudGVzdFJ1
bm5lcikKICAgICB0ZXN0UnVubmVyLmluc3RhbGxGYWtlSGVsdmV0aWNhKCJIZWx2ZXRpY2EtNTAw
Iik7CiBpZiAod2luZG93LmludGVybmFscykKLSAgICBpbnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hv
dWxkRGlzYWxsb3dVc2VySW5zdGFsbGVkRm9udHModHJ1ZSk7CisgICAgaW50ZXJuYWxzLnNldHRp
bmdzLnNldFNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRzKGZhbHNlKTsKIDwvc2NyaXB0Pgog
PC9oZWFkPgogPGJvZHk+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdXNlci1p
bnN0YWxsZWQtZm9udHMvc2hhZG93LXBvc3RzY3JpcHQtZGlzYWJsZS5odG1sIGIvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L3VzZXItaW5zdGFsbGVkLWZvbnRzL3NoYWRvdy1wb3N0c2NyaXB0LWRpc2Fi
bGUuaHRtbAppbmRleCAxZTQ0ZDVjNjZlNzc0OTg0ZWE1OTcxZjM3MGFlMjYxOThkZTA1ODQ4Li5k
YzUzMjQwMDE0MGU2YjIxMGI0MTU4ZDZmNjI5YmM1MzRiMGI3ZWQyIDEwMDY0NAotLS0gYS9MYXlv
dXRUZXN0cy9mYXN0L3RleHQvdXNlci1pbnN0YWxsZWQtZm9udHMvc2hhZG93LXBvc3RzY3JpcHQt
ZGlzYWJsZS5odG1sCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC91c2VyLWluc3RhbGxlZC1m
b250cy9zaGFkb3ctcG9zdHNjcmlwdC1kaXNhYmxlLmh0bWwKQEAgLTUsNyArNSw3IEBACiBpZiAo
d2luZG93LnRlc3RSdW5uZXIpCiAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRmFrZUhlbHZldGljYSgi
SGVsdmV0aWNhMi00MDAiKTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5z
ZXR0aW5ncy5zZXRTaG91bGREaXNhbGxvd1VzZXJJbnN0YWxsZWRGb250cyh0cnVlKTsKKyAgICBp
bnRlcm5hbHMuc2V0dGluZ3Muc2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoZmFsc2Up
OwogPC9zY3JpcHQ+CiA8L2hlYWQ+CiA8Ym9keT4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC91c2VyLWluc3RhbGxlZC1mb250cy9zaGFkb3ctcG9zdHNjcmlwdC1mYW1pbHktZGlz
YWJsZS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3VzZXItaW5zdGFsbGVkLWZvbnRzL3No
YWRvdy1wb3N0c2NyaXB0LWZhbWlseS1kaXNhYmxlLmh0bWwKaW5kZXggZjBhM2ZmNGJlNTkyOGY0
YTMxYzhiM2M4M2Y5YjBlOTM2YWMwYWU1Yy4uZGY1ZmMwOWFiYzUzMTU4MDRjOTVjNmU4ZDM1NDRl
MTY4ZGZiMzFkNCAxMDA2NDQKLS0tIGEvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3VzZXItaW5zdGFs
bGVkLWZvbnRzL3NoYWRvdy1wb3N0c2NyaXB0LWZhbWlseS1kaXNhYmxlLmh0bWwKKysrIGIvTGF5
b3V0VGVzdHMvZmFzdC90ZXh0L3VzZXItaW5zdGFsbGVkLWZvbnRzL3NoYWRvdy1wb3N0c2NyaXB0
LWZhbWlseS1kaXNhYmxlLmh0bWwKQEAgLTUsNyArNSw3IEBACiBpZiAod2luZG93LnRlc3RSdW5u
ZXIpCiAgICAgdGVzdFJ1bm5lci5pbnN0YWxsRmFrZUhlbHZldGljYSgiSGVsdmV0aWNhMi01MDAi
KTsKIGlmICh3aW5kb3cuaW50ZXJuYWxzKQotICAgIGludGVybmFscy5zZXR0aW5ncy5zZXRTaG91
bGREaXNhbGxvd1VzZXJJbnN0YWxsZWRGb250cyh0cnVlKTsKKyAgICBpbnRlcm5hbHMuc2V0dGlu
Z3Muc2V0U2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoZmFsc2UpOwogPC9zY3JpcHQ+CiA8
L2hlYWQ+CiA8Ym9keT4K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329877</attachid>
            <date>2017-12-19 19:41:01 -0800</date>
            <delta_ts>2017-12-19 19:41:37 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171219194100.patch</filename>
            <type>text/plain</type>
            <size>13694</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWMyOGZmYTFhMDI3ZmY3
N2RmNjhlMjI5Yjg2NzBjN2FmMzIyYTMwYi4uY2NlMmYwYTRhNWJjOWY4YzAxMjY2NWQ0YjhlZGNm
NjcxOWM1NWM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTEyLTE5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBDb3JlVGV4dCBmb250IGF0dHJpYnV0ZSwga0NU
Rm9udEZhbGxiYWNrT3B0aW9uQXR0cmlidXRlLCB0byB0aGUKKyAgICAgICAgZm9udHMgd2hpY2gg
V2ViS2l0IGNyZWF0ZXMuIEl0IGFsc28gYWRkcyB0aGlzIGF0dHJpYnV0ZSB0byB3ZWIgZm9udHMs
IHNvIHRoYXQgZm9udAorICAgICAgICBmYWxsYmFjayB3aWxsIGhhcHBlbiBhY2NvcmRpbmcgdG8g
b3VyIHJ1bGVzIGFib3V0IHVzZXItaW5zdGFsbGVkIGZvbnRzLiBJdCBhbHNvIG1hcmtzCisgICAg
ICAgIHRoZXNlIGZvbnQgYXR0cmlidXRlcyBhcyAibWFuZGF0b3J5IiBzbyBDb3JlVGV4dCB3aWxs
IGJlIGd1YXJhbnRlZWQgdG8gZm9sbG93IHRoZQorICAgICAgICBwb2xpY3kuCisKKyAgICAgICAg
VGVzdDogZmFzdC90ZXh0L3VzZXItaW5zdGFsbGVkLWZvbnRzL2Rpc2FibGUuaHRtbAorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpG
b250RGVzY3JpcHRpb25LZXk6Om1ha2VGbGFnc0tleSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dERhdGFiYXNlOjpjb2xsZWN0aW9uRm9yRmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRE
YXRhYmFzZTo6Zm9udEZvclBvc3RTY3JpcHROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZEF0
dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMpOgorICAgICAgICAoV2ViQ29yZTo6bWFuZGF0
b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisKIDIwMTctMTIt
MTkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWZhY3RvciB1c2VyLWluc3RhbGxlZCBmb250IHNldHRpbmcgZm9yIGNsYXJpdHkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCmluZGV4IGMyNjMzZWU5NTdjOWU3YWQ4NzBhOGZmNjZmNzk1NmE2M2NiMjhiZDYuLjI3
YTY0YTg3YzlmY2QwZWU4NGFjYmQyYzdkMDg3YWUxZGM0M2IxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTEyLTE5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxvd2VkIHVzZXItaW5zdGFsbGVkIGZv
bnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFtZSBpcyBzcGVjaWZpZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDk1MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL3NwaS9jb2Nv
YS9Db3JlVGV4dFNQSS5oOgorCiAyMDE3LTEyLTE5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQXBwbGUgUGF5XSBTdG9wIG1haW50YWluaW5nIGEgbGlzdCBvZiBw
YXltZW50IG5ldHdvcmtzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9Db3JlVGV4dFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQ29y
ZVRleHRTUEkuaAppbmRleCA3ZGNmY2RlZDNlMzE1ZTZlNTBjNmNmOGM1MjFkOWMwMTA1OGRmODNj
Li42N2U2YmE1MTVkN2JjM2IxYWMzZjZjYmE2YzgyNmNhNTFjNTIwZDI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKQEAgLTU1LDYgKzU1LDEz
IEBAIGVudW0gewogICAgIGtDVFJ1blN0YXR1c0hhc09yaWdpbnMgPSAoMSA8PCA0KSwKIH07CiAK
K3R5cGVkZWYgQ0ZfT1BUSU9OUyhDRk9wdGlvbkZsYWdzLCBDVEZvbnRGYWxsYmFja09wdGlvbikg
eworICAgIGtDVEZvbnRGYWxsYmFja09wdGlvbk5vbmUgPSAwLAorICAgIGtDVEZvbnRGYWxsYmFj
a09wdGlvblN5c3RlbSA9IDEgPDwgMCwKKyAgICBrQ1RGb250RmFsbGJhY2tPcHRpb25Vc2VySW5z
dGFsbGVkID0gMSA8PCAxLAorICAgIGtDVEZvbnRGYWxsYmFja09wdGlvbkRlZmF1bHQgPSBrQ1RG
b250RmFsbGJhY2tPcHRpb25TeXN0ZW0gfCBrQ1RGb250RmFsbGJhY2tPcHRpb25Vc2VySW5zdGFs
bGVkLAorfTsKKwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19CRUdJTgpAQCAtNjYsNiArNzMsNyBA
QCBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9udFJlZmVyZW5jZVVSTEF0dHJpYnV0ZTsK
IGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGU7CiBl
eHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9udFBvc3RTY3JpcHROYW1lQXR0cmlidXRlOwog
ZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlOwor
ZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZvbnRGYWxsYmFja09wdGlvbkF0dHJpYnV0ZTsK
IAogYm9vbCBDVEZvbnRUcmFuc2Zvcm1HbHlwaHMoQ1RGb250UmVmLCBDR0dseXBoIGdseXBoc1td
LCBDR1NpemUgYWR2YW5jZXNbXSwgQ0ZJbmRleCBjb3VudCwgQ1RGb250VHJhbnNmb3JtT3B0aW9u
cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5k
ZXggYTJlYTIxM2Q1MjE2ZjYyOTI1MTk4NTg0YjJmMGU5M2Q0OWNiYjA2Yi4uNWNkN2I2OGZkZmJi
NTk3OWI4MjA4Zjg4ZWNlYzNmNmRlOGI2ODVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTEyNCw3ICsxMjQsOCBAQCBzdHJ1Y3QgRm9udERl
c2NyaXB0aW9uS2V5IHsKIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6YXJyYXk8dW5zaWduZWQs
IDI+IG1ha2VGbGFnc0tleShjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQogICAg
IHsKLSAgICAgICAgdW5zaWduZWQgZmlyc3QgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3Jp
cHRpb24uc2NyaXB0KCkpIDw8IDEzCisgICAgICAgIHVuc2lnbmVkIGZpcnN0ID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNjcmlwdCgpKSA8PCAxNAorICAgICAgICAgICAgfCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMoKSkgPDwgMTMKICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2Ny
aXB0aW9uLmZvbnRTdHlsZUF4aXMoKSA9PSBGb250U3R5bGVBeGlzOjpzbG50KSA8PCAxMgogICAg
ICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24ub3B0aWNhbFNpemlu
ZygpKSA8PCAxMQogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRp
b24udGV4dFJlbmRlcmluZ01vZGUoKSkgPDwgOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCmluZGV4
IDBhYjE3ZjU3OGY3NmM0ZDVhYzVhMTk1NzZiZjU0OTIzZjA5MDMwZjIuLmQ3ZGNhYzQxYWZlY2Fi
Y2Y2N2U4YmUwZDBlODcxNDRkMTUzYzdlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKQEAg
LTkwOCwyMSArOTA4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgYXV0byBmb2xkZWQgPSBmYW1pbHlO
YW1lLmZvbGRDYXNlKCk7CiAgICAgICAgIHJldHVybiBtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlw
dG9ycy5lbnN1cmUoZm9sZGVkLCBbJl0gewogICAgICAgICAgICAgYXV0byBmYW1pbHlOYW1lU3Ry
aW5nID0gZm9sZGVkLmNyZWF0ZUNGU3RyaW5nKCk7Ci0gICAgICAgICAgICBSZXRhaW5QdHI8Q0ZE
aWN0aW9uYXJ5UmVmPiBhdHRyaWJ1dGVzOwotI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExF
RF9GT05UUwotICAgICAgICAgICAgaWYgKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gRm9u
dENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pIHsKLSAgICAgICAgICAgICAgICBD
RlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RmFtaWx5TmFtZUF0dHJpYnV0ZSwga0NURm9udFVz
ZXJJbnN0YWxsZWRBdHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVz
W10gPSB7IGZhbWlseU5hbWVTdHJpbmcuZ2V0KCksIGtDRkJvb2xlYW5GYWxzZSB9OwotICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZU
eXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpKTsKLSAgICAgICAgICAgIH0gZWxzZQotI2VuZGlmCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUg
fTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGZhbWlseU5hbWVTdHJp
bmcuZ2V0KCkgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rp
b25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlf
TEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGlj
dGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURp
Y3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFs
dWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUsIGZhbWlseU5h
bWVTdHJpbmcuZ2V0KCkpOworICAgICAgICAgICAgYWRkQXR0cmlidXRlc0ZvclVzZXJJbnN0YWxs
ZWRGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKICAg
ICAgICAgICAgIGF1dG8gZm9udERlc2NyaXB0b3JUb01hdGNoID0gYWRvcHRDRihDVEZvbnREZXNj
cmlwdG9yQ3JlYXRlV2l0aEF0dHJpYnV0ZXMoYXR0cmlidXRlcy5nZXQoKSkpOwotICAgICAgICAg
ICAgaWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNo
aW5nRm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVsbHB0cikp
KSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMg
PSBtYW5kYXRvcnlBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKG1fYWxsb3dVc2VySW5z
dGFsbGVkRm9udHMpOworICAgICAgICAgICAgaWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RG
b250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9y
VG9NYXRjaC5nZXQoKSwgbWFuZGF0b3J5QXR0cmlidXRlcy5nZXQoKSkpKSB7CiAgICAgICAgICAg
ICAgICAgYXV0byBjb3VudCA9IENGQXJyYXlHZXRDb3VudChtYXRjaGVzLmdldCgpKTsKICAgICAg
ICAgICAgICAgICBWZWN0b3I8SW5zdGFsbGVkRm9udD4gcmVzdWx0OwogICAgICAgICAgICAgICAg
IHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNvdW50KTsKQEAgLTk0NiwyMSArOTM3LDEz
IEBAIHB1YmxpYzoKICNlbHNlCiAgICAgICAgICAgICBDRlN0cmluZ1JlZiBuYW1lQXR0cmlidXRl
ID0ga0NURm9udE5hbWVBdHRyaWJ1dGU7CiAjZW5kaWYKLSAgICAgICAgICAgIFJldGFpblB0cjxD
RkRpY3Rpb25hcnlSZWY+IGF0dHJpYnV0ZXM7Ci0jaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFM
TEVEX0ZPTlRTCi0gICAgICAgICAgICBpZiAobV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBG
b250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObykgewotICAgICAgICAgICAgICAg
IENGVHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBuYW1lQXR0cmli
dXRlLCBrQ1RGb250VXNlckluc3RhbGxlZEF0dHJpYnV0ZSB9OwotICAgICAgICAgICAgICAgIENG
VHlwZVJlZiB2YWx1ZXNbXSA9IHsga0NGQm9vbGVhblRydWUsIHBvc3RTY3JpcHROYW1lU3RyaW5n
LmdldCgpLCBrQ0ZCb29sZWFuRmFsc2UgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0g
YWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFs
dWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFj
a3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9IGVs
c2UKLSNlbmRpZgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIENGVHlwZVJlZiBrZXlz
W10gPSB7IGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBuYW1lQXR0cmlidXRlIH07Ci0gICAgICAg
ICAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1tdID0geyBrQ0ZCb29sZWFuVHJ1ZSwgcG9zdFNjcmlw
dE5hbWVTdHJpbmcuZ2V0KCkgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRD
RihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBX
VEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZr
Q0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAm
a0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAgICAgICAgQ0ZEaWN0aW9u
YXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEVuYWJsZWRBdHRyaWJ1dGUsIGtD
RkJvb2xlYW5UcnVlKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0
ZXMuZ2V0KCksIG5hbWVBdHRyaWJ1dGUsIHBvc3RTY3JpcHROYW1lU3RyaW5nLmdldCgpKTsKKyAg
ICAgICAgICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoYXR0cmlidXRlcy5n
ZXQoKSwgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CiAgICAgICAgICAgICBhdXRvIGZvbnRE
ZXNjcmlwdG9yVG9NYXRjaCA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRy
aWJ1dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKLSAgICAgICAgICAgIGF1dG8gbWF0Y2ggPSBhZG9w
dENGKHN0YXRpY19jYXN0PENURm9udERlc2NyaXB0b3JSZWY+KENURm9udERlc2NyaXB0b3JDcmVh
dGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVs
bHB0cikpKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxDRlNldFJlZj4gbWFuZGF0b3J5QXR0cmli
dXRlcyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMobV9hbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyk7CisgICAgICAgICAgICBhdXRvIG1hdGNoID0gYWRvcHRDRihDVEZv
bnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVzY3JpcHRvcihmb250RGVzY3JpcHRvclRv
TWF0Y2guZ2V0KCksIG1hbmRhdG9yeUF0dHJpYnV0ZXMuZ2V0KCkpKTsKICAgICAgICAgICAgIHJl
dHVybiBJbnN0YWxsZWRGb250KG1hdGNoLmdldCgpKTsKICAgICAgICAgfSkuaXRlcmF0b3ItPnZh
bHVlOwogICAgIH0KQEAgLTE0NzUsNCArMTQ1OCwzMiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEZv
bnRDYWNoZTo6cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYg
ZgogICAgIHJldHVybiBudWxsQXRvbSgpOwogfQogCit2b2lkIGFkZEF0dHJpYnV0ZXNGb3JVc2Vy
SW5zdGFsbGVkRm9udHMoQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKK3sKKyNpZiBDQU5fRElT
QUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKKyAgICBpZiAoYWxsb3dVc2VySW5zdGFsbGVkRm9u
dHMgPT0gQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5vKSB7CisgICAgICAgIENGRGljdGlvbmFy
eUFkZFZhbHVlKGF0dHJpYnV0ZXMsIGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlLCBrQ0ZC
b29sZWFuRmFsc2UpOworICAgICAgICBDVEZvbnRGYWxsYmFja09wdGlvbiBmYWxsYmFja09wdGlv
biA9IGtDVEZvbnRGYWxsYmFja09wdGlvblN5c3RlbTsKKyAgICAgICAgYXV0byBmYWxsYmFja09w
dGlvbk51bWJlciA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
a0NGTnVtYmVyU0ludDY0VHlwZSwgJmZhbGxiYWNrT3B0aW9uKSk7CisgICAgICAgIENGRGljdGlv
bmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMsIGtDVEZvbnRGYWxsYmFja09wdGlvbkF0dHJpYnV0ZSwg
ZmFsbGJhY2tPcHRpb25OdW1iZXIuZ2V0KCkpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGF0dHJpYnV0ZXMpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd1VzZXJJbnN0YWxsZWRGb250
cyk7CisjZW5kaWYKK30KKworUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKEFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNlcklu
c3RhbGxlZEZvbnRzKQoreworI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUwor
ICAgIGlmIChhbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBBbGxvd1VzZXJJbnN0YWxsZWRGb250
czo6Tm8pIHsKKyAgICAgICAgQ0ZUeXBlUmVmIG1hbmRhdG9yeUF0dHJpYnV0ZXNWYWx1ZXNbXSA9
IHsga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGUsIGtDVEZvbnRGYWxsYmFja09wdGlvbkF0
dHJpYnV0ZSB9OworICAgICAgICByZXR1cm4gYWRvcHRDRihDRlNldENyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBtYW5kYXRvcnlBdHRyaWJ1dGVzVmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKG1h
bmRhdG9yeUF0dHJpYnV0ZXNWYWx1ZXMpLCAma0NGVHlwZVNldENhbGxCYWNrcykpOworICAgIH0K
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKKyNlbmRp
ZgorICAgIHJldHVybiBudWxscHRyOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaAppbmRleCAx
YjE2ZjdiMWQzNzhiMDA4NzRiOTM4MTQ2OGI0ODU4MzZiYjZjODM3Li43Mzc0ZDJiNWEzYzJiYjUw
YWE3MWI4NWMzZmRiMDQ1NmNkYzkyOGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKQEAgLTU2LDUg
KzU2LDcgQEAgUmV0YWluUHRyPENURm9udFJlZj4gcGxhdGZvcm1Gb250V2l0aEZhbWlseVNwZWNp
YWxDYXNlKGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWwKIFJldGFpblB0cjxDVEZvbnRSZWY+IHBs
YXRmb3JtRm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIEZvbnRTZWxl
Y3Rpb25SZXF1ZXN0LCBUZXh0UmVuZGVyaW5nTW9kZSwgZmxvYXQgc2l6ZSk7CiBib29sIHJlcXVp
cmVzQ3VzdG9tRmFsbGJhY2tGb250KFVDaGFyMzIgY2hhcmFjdGVyKTsKIEZvbnRTZWxlY3Rpb25D
YXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzRm9yRm9udERlc2NyaXB0b3IoQ1RGb250RGVzY3JpcHRv
clJlZik7Cit2b2lkIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoQ0ZNdXRhYmxl
RGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CitSZXRh
aW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMo
QWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNw
cAppbmRleCAwNjlhNzk1MmI5YTUzM2MwOGQ0OWM0OTk5MjQ1MjUzNjgyODJmNDFmLi4wNGE4MDFk
NzdlOTU5OTYwZGNjYzliNzMwN2IyZjA4YzI1OTM5N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5oIgogCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCisjaW5jbHVkZSAiRm9udENhY2hlQ29y
ZVRleHQuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UGxh
dGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCkBAIC0zNCwxMCArMzUsMTcg
QEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKSA9IGRl
ZmF1bHQ7CiAKIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBi
b2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0
dXJlcywgY29uc3QgRm9udFZhcmlhbnRTZXR0aW5ncyYgZm9udEZhY2VWYXJpYW50U2V0dGluZ3Ms
IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMp
CiB7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRh
YmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNr
cywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKKyAgICBhZGRBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKGF0dHJpYnV0ZXMuZ2V0KCksIGZvbnREZXNjcmlwdGlvbi5z
aG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKKyAgICBhdXRvIG1vZGlmaWVkRm9udERl
c2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0
ZXMobV9mb250RGVzY3JpcHRvci5nZXQoKSwgYXR0cmlidXRlcy5nZXQoKSkpOworICAgIFJldGFp
blB0cjxDRlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRlcyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNG
b3JVc2VySW5zdGFsbGVkRm9udHMoZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzKCkpOworICAgIGF1dG8gbWF0Y2hpbmdGb250RGVzY3JpcHRvciA9IGFkb3B0Q0Yo
Q1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3IobW9kaWZpZWRGb250
RGVzY3JpcHRvci5nZXQoKSwgbWFuZGF0b3J5QXR0cmlidXRlcy5nZXQoKSkpOworICAgIEFTU0VS
VChtYXRjaGluZ0ZvbnREZXNjcmlwdG9yKTsKKwogICAgIGludCBzaXplID0gZm9udERlc2NyaXB0
aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCk7CiAgICAgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9u
ID0gZm9udERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCk7CiAgICAgRm9udFdpZHRoVmFyaWFudCB3
aWR0aFZhcmlhbnQgPSBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCk7Ci0gICAgUmV0YWlu
UHRyPENURm9udFJlZj4gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNjcmlw
dG9yKG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIpKTsKKyAgICBSZXRhaW5Q
dHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0
b3IobWF0Y2hpbmdGb250RGVzY3JpcHRvci5nZXQoKSwgc2l6ZSwgbnVsbHB0cikpOwogICAgIGZv
bnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KGZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbiwgJmZv
bnRGYWNlRmVhdHVyZXMsICZmb250RmFjZVZhcmlhbnRTZXR0aW5ncywgZm9udEZhY2VDYXBhYmls
aXRpZXMsIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSk7CiAgICAgQVNTRVJUKGZvbnQp
OwogICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0
YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5k
ZXJpbmdNb2RlKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329878</attachid>
            <date>2017-12-19 19:41:38 -0800</date>
            <delta_ts>2017-12-19 19:47:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171219194137.patch</filename>
            <type>text/plain</type>
            <size>13694</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWMyOGZmYTFhMDI3ZmY3
N2RmNjhlMjI5Yjg2NzBjN2FmMzIyYTMwYi4uY2NlMmYwYTRhNWJjOWY4YzAxMjY2NWQ0YjhlZGNm
NjcxOWM1NWM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTEyLTE5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBDb3JlVGV4dCBmb250IGF0dHJpYnV0ZSwga0NU
Rm9udEZhbGxiYWNrT3B0aW9uQXR0cmlidXRlLCB0byB0aGUKKyAgICAgICAgZm9udHMgd2hpY2gg
V2ViS2l0IGNyZWF0ZXMuIEl0IGFsc28gYWRkcyB0aGlzIGF0dHJpYnV0ZSB0byB3ZWIgZm9udHMs
IHNvIHRoYXQgZm9udAorICAgICAgICBmYWxsYmFjayB3aWxsIGhhcHBlbiBhY2NvcmRpbmcgdG8g
b3VyIHJ1bGVzIGFib3V0IHVzZXItaW5zdGFsbGVkIGZvbnRzLiBJdCBhbHNvIG1hcmtzCisgICAg
ICAgIHRoZXNlIGZvbnQgYXR0cmlidXRlcyBhcyAibWFuZGF0b3J5IiBzbyBDb3JlVGV4dCB3aWxs
IGJlIGd1YXJhbnRlZWQgdG8gZm9sbG93IHRoZQorICAgICAgICBwb2xpY3kuCisKKyAgICAgICAg
VGVzdDogZmFzdC90ZXh0L3VzZXItaW5zdGFsbGVkLWZvbnRzL2Rpc2FibGUuaHRtbAorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpG
b250RGVzY3JpcHRpb25LZXk6Om1ha2VGbGFnc0tleSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dERhdGFiYXNlOjpjb2xsZWN0aW9uRm9yRmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRE
YXRhYmFzZTo6Zm9udEZvclBvc3RTY3JpcHROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZEF0
dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMpOgorICAgICAgICAoV2ViQ29yZTo6bWFuZGF0
b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisKIDIwMTctMTIt
MTkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWZhY3RvciB1c2VyLWluc3RhbGxlZCBmb250IHNldHRpbmcgZm9yIGNsYXJpdHkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCmluZGV4IGMyNjMzZWU5NTdjOWU3YWQ4NzBhOGZmNjZmNzk1NmE2M2NiMjhiZDYuLjI3
YTY0YTg3YzlmY2QwZWU4NGFjYmQyYzdkMDg3YWUxZGM0M2IxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTEyLTE5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxvd2VkIHVzZXItaW5zdGFsbGVkIGZv
bnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFtZSBpcyBzcGVjaWZpZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDk1MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL3NwaS9jb2Nv
YS9Db3JlVGV4dFNQSS5oOgorCiAyMDE3LTEyLTE5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQXBwbGUgUGF5XSBTdG9wIG1haW50YWluaW5nIGEgbGlzdCBvZiBw
YXltZW50IG5ldHdvcmtzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9Db3JlVGV4dFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQ29y
ZVRleHRTUEkuaAppbmRleCA3ZGNmY2RlZDNlMzE1ZTZlNTBjNmNmOGM1MjFkOWMwMTA1OGRmODNj
Li42N2U2YmE1MTVkN2JjM2IxYWMzZjZjYmE2YzgyNmNhNTFjNTIwZDI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKQEAgLTU1LDYgKzU1LDEz
IEBAIGVudW0gewogICAgIGtDVFJ1blN0YXR1c0hhc09yaWdpbnMgPSAoMSA8PCA0KSwKIH07CiAK
K3R5cGVkZWYgQ0ZfT1BUSU9OUyhDRk9wdGlvbkZsYWdzLCBDVEZvbnRGYWxsYmFja09wdGlvbikg
eworICAgIGtDVEZvbnRGYWxsYmFja09wdGlvbk5vbmUgPSAwLAorICAgIGtDVEZvbnRGYWxsYmFj
a09wdGlvblN5c3RlbSA9IDEgPDwgMCwKKyAgICBrQ1RGb250RmFsbGJhY2tPcHRpb25Vc2VySW5z
dGFsbGVkID0gMSA8PCAxLAorICAgIGtDVEZvbnRGYWxsYmFja09wdGlvbkRlZmF1bHQgPSBrQ1RG
b250RmFsbGJhY2tPcHRpb25TeXN0ZW0gfCBrQ1RGb250RmFsbGJhY2tPcHRpb25Vc2VySW5zdGFs
bGVkLAorfTsKKwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19CRUdJTgpAQCAtNjYsNiArNzMsNyBA
QCBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9udFJlZmVyZW5jZVVSTEF0dHJpYnV0ZTsK
IGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGU7CiBl
eHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9udFBvc3RTY3JpcHROYW1lQXR0cmlidXRlOwog
ZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlOwor
ZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZvbnRGYWxsYmFja09wdGlvbkF0dHJpYnV0ZTsK
IAogYm9vbCBDVEZvbnRUcmFuc2Zvcm1HbHlwaHMoQ1RGb250UmVmLCBDR0dseXBoIGdseXBoc1td
LCBDR1NpemUgYWR2YW5jZXNbXSwgQ0ZJbmRleCBjb3VudCwgQ1RGb250VHJhbnNmb3JtT3B0aW9u
cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5k
ZXggYTJlYTIxM2Q1MjE2ZjYyOTI1MTk4NTg0YjJmMGU5M2Q0OWNiYjA2Yi4uNWNkN2I2OGZkZmJi
NTk3OWI4MjA4Zjg4ZWNlYzNmNmRlOGI2ODVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTEyNCw3ICsxMjQsOCBAQCBzdHJ1Y3QgRm9udERl
c2NyaXB0aW9uS2V5IHsKIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6YXJyYXk8dW5zaWduZWQs
IDI+IG1ha2VGbGFnc0tleShjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQogICAg
IHsKLSAgICAgICAgdW5zaWduZWQgZmlyc3QgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3Jp
cHRpb24uc2NyaXB0KCkpIDw8IDEzCisgICAgICAgIHVuc2lnbmVkIGZpcnN0ID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNjcmlwdCgpKSA8PCAxNAorICAgICAgICAgICAgfCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMoKSkgPDwgMTMKICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2Ny
aXB0aW9uLmZvbnRTdHlsZUF4aXMoKSA9PSBGb250U3R5bGVBeGlzOjpzbG50KSA8PCAxMgogICAg
ICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24ub3B0aWNhbFNpemlu
ZygpKSA8PCAxMQogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRp
b24udGV4dFJlbmRlcmluZ01vZGUoKSkgPDwgOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCmluZGV4
IDBhYjE3ZjU3OGY3NmM0ZDVhYzVhMTk1NzZiZjU0OTIzZjA5MDMwZjIuLmQ3ZGNhYzQxYWZlY2Fi
Y2Y2N2U4YmUwZDBlODcxNDRkMTUzYzdlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKQEAg
LTkwOCwyMSArOTA4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgYXV0byBmb2xkZWQgPSBmYW1pbHlO
YW1lLmZvbGRDYXNlKCk7CiAgICAgICAgIHJldHVybiBtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlw
dG9ycy5lbnN1cmUoZm9sZGVkLCBbJl0gewogICAgICAgICAgICAgYXV0byBmYW1pbHlOYW1lU3Ry
aW5nID0gZm9sZGVkLmNyZWF0ZUNGU3RyaW5nKCk7Ci0gICAgICAgICAgICBSZXRhaW5QdHI8Q0ZE
aWN0aW9uYXJ5UmVmPiBhdHRyaWJ1dGVzOwotI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExF
RF9GT05UUwotICAgICAgICAgICAgaWYgKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gRm9u
dENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pIHsKLSAgICAgICAgICAgICAgICBD
RlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RmFtaWx5TmFtZUF0dHJpYnV0ZSwga0NURm9udFVz
ZXJJbnN0YWxsZWRBdHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVz
W10gPSB7IGZhbWlseU5hbWVTdHJpbmcuZ2V0KCksIGtDRkJvb2xlYW5GYWxzZSB9OwotICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZU
eXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpKTsKLSAgICAgICAgICAgIH0gZWxzZQotI2VuZGlmCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUg
fTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGZhbWlseU5hbWVTdHJp
bmcuZ2V0KCkgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rp
b25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlf
TEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGlj
dGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURp
Y3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFs
dWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUsIGZhbWlseU5h
bWVTdHJpbmcuZ2V0KCkpOworICAgICAgICAgICAgYWRkQXR0cmlidXRlc0ZvclVzZXJJbnN0YWxs
ZWRGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKICAg
ICAgICAgICAgIGF1dG8gZm9udERlc2NyaXB0b3JUb01hdGNoID0gYWRvcHRDRihDVEZvbnREZXNj
cmlwdG9yQ3JlYXRlV2l0aEF0dHJpYnV0ZXMoYXR0cmlidXRlcy5nZXQoKSkpOwotICAgICAgICAg
ICAgaWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNo
aW5nRm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVsbHB0cikp
KSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMg
PSBtYW5kYXRvcnlBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKG1fYWxsb3dVc2VySW5z
dGFsbGVkRm9udHMpOworICAgICAgICAgICAgaWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RG
b250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9y
VG9NYXRjaC5nZXQoKSwgbWFuZGF0b3J5QXR0cmlidXRlcy5nZXQoKSkpKSB7CiAgICAgICAgICAg
ICAgICAgYXV0byBjb3VudCA9IENGQXJyYXlHZXRDb3VudChtYXRjaGVzLmdldCgpKTsKICAgICAg
ICAgICAgICAgICBWZWN0b3I8SW5zdGFsbGVkRm9udD4gcmVzdWx0OwogICAgICAgICAgICAgICAg
IHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNvdW50KTsKQEAgLTk0NiwyMSArOTM3LDEz
IEBAIHB1YmxpYzoKICNlbHNlCiAgICAgICAgICAgICBDRlN0cmluZ1JlZiBuYW1lQXR0cmlidXRl
ID0ga0NURm9udE5hbWVBdHRyaWJ1dGU7CiAjZW5kaWYKLSAgICAgICAgICAgIFJldGFpblB0cjxD
RkRpY3Rpb25hcnlSZWY+IGF0dHJpYnV0ZXM7Ci0jaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFM
TEVEX0ZPTlRTCi0gICAgICAgICAgICBpZiAobV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBG
b250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObykgewotICAgICAgICAgICAgICAg
IENGVHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBuYW1lQXR0cmli
dXRlLCBrQ1RGb250VXNlckluc3RhbGxlZEF0dHJpYnV0ZSB9OwotICAgICAgICAgICAgICAgIENG
VHlwZVJlZiB2YWx1ZXNbXSA9IHsga0NGQm9vbGVhblRydWUsIHBvc3RTY3JpcHROYW1lU3RyaW5n
LmdldCgpLCBrQ0ZCb29sZWFuRmFsc2UgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0g
YWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFs
dWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFj
a3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9IGVs
c2UKLSNlbmRpZgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIENGVHlwZVJlZiBrZXlz
W10gPSB7IGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBuYW1lQXR0cmlidXRlIH07Ci0gICAgICAg
ICAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1tdID0geyBrQ0ZCb29sZWFuVHJ1ZSwgcG9zdFNjcmlw
dE5hbWVTdHJpbmcuZ2V0KCkgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRD
RihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBX
VEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZr
Q0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAm
a0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAgICAgICAgQ0ZEaWN0aW9u
YXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEVuYWJsZWRBdHRyaWJ1dGUsIGtD
RkJvb2xlYW5UcnVlKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0
ZXMuZ2V0KCksIG5hbWVBdHRyaWJ1dGUsIHBvc3RTY3JpcHROYW1lU3RyaW5nLmdldCgpKTsKKyAg
ICAgICAgICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoYXR0cmlidXRlcy5n
ZXQoKSwgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CiAgICAgICAgICAgICBhdXRvIGZvbnRE
ZXNjcmlwdG9yVG9NYXRjaCA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRy
aWJ1dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKLSAgICAgICAgICAgIGF1dG8gbWF0Y2ggPSBhZG9w
dENGKHN0YXRpY19jYXN0PENURm9udERlc2NyaXB0b3JSZWY+KENURm9udERlc2NyaXB0b3JDcmVh
dGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVs
bHB0cikpKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxDRlNldFJlZj4gbWFuZGF0b3J5QXR0cmli
dXRlcyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMobV9hbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyk7CisgICAgICAgICAgICBhdXRvIG1hdGNoID0gYWRvcHRDRihDVEZv
bnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVzY3JpcHRvcihmb250RGVzY3JpcHRvclRv
TWF0Y2guZ2V0KCksIG1hbmRhdG9yeUF0dHJpYnV0ZXMuZ2V0KCkpKTsKICAgICAgICAgICAgIHJl
dHVybiBJbnN0YWxsZWRGb250KG1hdGNoLmdldCgpKTsKICAgICAgICAgfSkuaXRlcmF0b3ItPnZh
bHVlOwogICAgIH0KQEAgLTE0NzUsNCArMTQ1OCwzMiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEZv
bnRDYWNoZTo6cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYg
ZgogICAgIHJldHVybiBudWxsQXRvbSgpOwogfQogCit2b2lkIGFkZEF0dHJpYnV0ZXNGb3JVc2Vy
SW5zdGFsbGVkRm9udHMoQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKK3sKKyNpZiBDQU5fRElT
QUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKKyAgICBpZiAoYWxsb3dVc2VySW5zdGFsbGVkRm9u
dHMgPT0gQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5vKSB7CisgICAgICAgIENGRGljdGlvbmFy
eUFkZFZhbHVlKGF0dHJpYnV0ZXMsIGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlLCBrQ0ZC
b29sZWFuRmFsc2UpOworICAgICAgICBDVEZvbnRGYWxsYmFja09wdGlvbiBmYWxsYmFja09wdGlv
biA9IGtDVEZvbnRGYWxsYmFja09wdGlvblN5c3RlbTsKKyAgICAgICAgYXV0byBmYWxsYmFja09w
dGlvbk51bWJlciA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
a0NGTnVtYmVyU0ludDY0VHlwZSwgJmZhbGxiYWNrT3B0aW9uKSk7CisgICAgICAgIENGRGljdGlv
bmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMsIGtDVEZvbnRGYWxsYmFja09wdGlvbkF0dHJpYnV0ZSwg
ZmFsbGJhY2tPcHRpb25OdW1iZXIuZ2V0KCkpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGF0dHJpYnV0ZXMpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd1VzZXJJbnN0YWxsZWRGb250
cyk7CisjZW5kaWYKK30KKworUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKEFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNlcklu
c3RhbGxlZEZvbnRzKQoreworI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUwor
ICAgIGlmIChhbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBBbGxvd1VzZXJJbnN0YWxsZWRGb250
czo6Tm8pIHsKKyAgICAgICAgQ0ZUeXBlUmVmIG1hbmRhdG9yeUF0dHJpYnV0ZXNWYWx1ZXNbXSA9
IHsga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGUsIGtDVEZvbnRGYWxsYmFja09wdGlvbkF0
dHJpYnV0ZSB9OworICAgICAgICByZXR1cm4gYWRvcHRDRihDRlNldENyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBtYW5kYXRvcnlBdHRyaWJ1dGVzVmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKG1h
bmRhdG9yeUF0dHJpYnV0ZXNWYWx1ZXMpLCAma0NGVHlwZVNldENhbGxCYWNrcykpOworICAgIH0K
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKKyNlbmRp
ZgorICAgIHJldHVybiBudWxscHRyOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaAppbmRleCAx
YjE2ZjdiMWQzNzhiMDA4NzRiOTM4MTQ2OGI0ODU4MzZiYjZjODM3Li43Mzc0ZDJiNWEzYzJiYjUw
YWE3MWI4NWMzZmRiMDQ1NmNkYzkyOGYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKQEAgLTU2LDUg
KzU2LDcgQEAgUmV0YWluUHRyPENURm9udFJlZj4gcGxhdGZvcm1Gb250V2l0aEZhbWlseVNwZWNp
YWxDYXNlKGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWwKIFJldGFpblB0cjxDVEZvbnRSZWY+IHBs
YXRmb3JtRm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIEZvbnRTZWxl
Y3Rpb25SZXF1ZXN0LCBUZXh0UmVuZGVyaW5nTW9kZSwgZmxvYXQgc2l6ZSk7CiBib29sIHJlcXVp
cmVzQ3VzdG9tRmFsbGJhY2tGb250KFVDaGFyMzIgY2hhcmFjdGVyKTsKIEZvbnRTZWxlY3Rpb25D
YXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzRm9yRm9udERlc2NyaXB0b3IoQ1RGb250RGVzY3JpcHRv
clJlZik7Cit2b2lkIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoQ0ZNdXRhYmxl
RGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CitSZXRh
aW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMo
QWxsb3dVc2VySW5zdGFsbGVkRm9udHMpCiAKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNw
cAppbmRleCAwNjlhNzk1MmI5YTUzM2MwOGQ0OWM0OTk5MjQ1MjUzNjgyODJmNDFmLi4wNGE4MDFk
NzdlOTU5OTYwZGNjYzliNzMwN2IyZjA4YzI1OTM5N2YyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuY3BwCkBAIC0yMiw2ICsyMiw3IEBACiAjaW5jbHVkZSAiRm9udEN1c3RvbVBsYXRmb3Jt
RGF0YS5oIgogCiAjaW5jbHVkZSAiRm9udENhY2hlLmgiCisjaW5jbHVkZSAiRm9udENhY2hlQ29y
ZVRleHQuaCIKICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250UGxh
dGZvcm1EYXRhLmgiCiAjaW5jbHVkZSAiU2hhcmVkQnVmZmVyLmgiCkBAIC0zNCwxMCArMzUsMTcg
QEAgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6fkZvbnRDdXN0b21QbGF0Zm9ybURhdGEoKSA9IGRl
ZmF1bHQ7CiAKIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBs
YXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGZvbnREZXNjcmlwdGlvbiwgYm9vbCBi
b2xkLCBib29sIGl0YWxpYywgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyYgZm9udEZhY2VGZWF0
dXJlcywgY29uc3QgRm9udFZhcmlhbnRTZXR0aW5ncyYgZm9udEZhY2VWYXJpYW50U2V0dGluZ3Ms
IEZvbnRTZWxlY3Rpb25TcGVjaWZpZWRDYXBhYmlsaXRpZXMgZm9udEZhY2VDYXBhYmlsaXRpZXMp
CiB7CisgICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGVNdXRh
YmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNr
cywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKKyAgICBhZGRBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKGF0dHJpYnV0ZXMuZ2V0KCksIGZvbnREZXNjcmlwdGlvbi5z
aG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygpKTsKKyAgICBhdXRvIG1vZGlmaWVkRm9udERl
c2NyaXB0b3IgPSBhZG9wdENGKENURm9udERlc2NyaXB0b3JDcmVhdGVDb3B5V2l0aEF0dHJpYnV0
ZXMobV9mb250RGVzY3JpcHRvci5nZXQoKSwgYXR0cmlidXRlcy5nZXQoKSkpOworICAgIFJldGFp
blB0cjxDRlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRlcyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNG
b3JVc2VySW5zdGFsbGVkRm9udHMoZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlckluc3Rh
bGxlZEZvbnRzKCkpOworICAgIGF1dG8gbWF0Y2hpbmdGb250RGVzY3JpcHRvciA9IGFkb3B0Q0Yo
Q1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3IobW9kaWZpZWRGb250
RGVzY3JpcHRvci5nZXQoKSwgbWFuZGF0b3J5QXR0cmlidXRlcy5nZXQoKSkpOworICAgIEFTU0VS
VChtYXRjaGluZ0ZvbnREZXNjcmlwdG9yKTsKKwogICAgIGludCBzaXplID0gZm9udERlc2NyaXB0
aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCk7CiAgICAgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9u
ID0gZm9udERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCk7CiAgICAgRm9udFdpZHRoVmFyaWFudCB3
aWR0aFZhcmlhbnQgPSBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCk7Ci0gICAgUmV0YWlu
UHRyPENURm9udFJlZj4gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNjcmlw
dG9yKG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIpKTsKKyAgICBSZXRhaW5Q
dHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0
b3IobWF0Y2hpbmdGb250RGVzY3JpcHRvci5nZXQoKSwgc2l6ZSwgbnVsbHB0cikpOwogICAgIGZv
bnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KGZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbiwgJmZv
bnRGYWNlRmVhdHVyZXMsICZmb250RmFjZVZhcmlhbnRTZXR0aW5ncywgZm9udEZhY2VDYXBhYmls
aXRpZXMsIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFNpemUoKSk7CiAgICAgQVNTRVJUKGZvbnQp
OwogICAgIHJldHVybiBGb250UGxhdGZvcm1EYXRhKGZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0
YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5k
ZXJpbmdNb2RlKCkpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>329880</attachid>
            <date>2017-12-19 19:47:30 -0800</date>
            <delta_ts>2017-12-20 17:26:11 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-180951-20171219194729.patch</filename>
            <type>text/plain</type>
            <size>13695</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI2MTcyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYWMyOGZmYTFhMDI3ZmY3
N2RmNjhlMjI5Yjg2NzBjN2FmMzIyYTMwYi4uY2NlMmYwYTRhNWJjOWY4YzAxMjY2NWQ0YjhlZGNm
NjcxOWM1NWM3YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE3LTEyLTE5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisg
ICAgICAgIFRoaXMgcGF0Y2ggYWRkcyBhIG5ldyBDb3JlVGV4dCBmb250IGF0dHJpYnV0ZSwga0NU
Rm9udEZhbGxiYWNrT3B0aW9uQXR0cmlidXRlLCB0byB0aGUKKyAgICAgICAgZm9udHMgd2hpY2gg
V2ViS2l0IGNyZWF0ZXMuIEl0IGFsc28gYWRkcyB0aGlzIGF0dHJpYnV0ZSB0byB3ZWIgZm9udHMs
IHNvIHRoYXQgZm9udAorICAgICAgICBmYWxsYmFjayB3aWxsIGhhcHBlbiBhY2NvcmRpbmcgdG8g
b3VyIHJ1bGVzIGFib3V0IHVzZXItaW5zdGFsbGVkIGZvbnRzLiBJdCBhbHNvIG1hcmtzCisgICAg
ICAgIHRoZXNlIGZvbnQgYXR0cmlidXRlcyBhcyAibWFuZGF0b3J5IiBzbyBDb3JlVGV4dCB3aWxs
IGJlIGd1YXJhbnRlZWQgdG8gZm9sbG93IHRoZQorICAgICAgICBwb2xpY3kuCisKKyAgICAgICAg
VGVzdDogZmFzdC90ZXh0L3VzZXItaW5zdGFsbGVkLWZvbnRzL2Rpc2FibGUuaHRtbAorCisgICAg
ICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6CisgICAgICAgIChXZWJDb3JlOjpG
b250RGVzY3JpcHRpb25LZXk6Om1ha2VGbGFnc0tleSk6CisgICAgICAgICogcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dERhdGFiYXNlOjpjb2xsZWN0aW9uRm9yRmFtaWx5KToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRE
YXRhYmFzZTo6Zm9udEZvclBvc3RTY3JpcHROYW1lKToKKyAgICAgICAgKFdlYkNvcmU6OmFkZEF0
dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMpOgorICAgICAgICAoV2ViQ29yZTo6bWFuZGF0
b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyk6CisgICAgICAgICogcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YSk6CisKIDIwMTctMTIt
MTkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAogICAgICAgICBS
ZWZhY3RvciB1c2VyLWluc3RhbGxlZCBmb250IHNldHRpbmcgZm9yIGNsYXJpdHkKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hh
bmdlTG9nCmluZGV4IGMyNjMzZWU5NTdjOWU3YWQ4NzBhOGZmNjZmNzk1NmE2M2NiMjhiZDYuLjI3
YTY0YTg3YzlmY2QwZWU4NGFjYmQyYzdkMDg3YWUxZGM0M2IxZDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL1BBTC9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxv
ZwpAQCAtMSwzICsxLDEyIEBACisyMDE3LTEyLTE5ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhm
aWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxvd2VkIHVzZXItaW5zdGFsbGVkIGZv
bnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFtZSBpcyBzcGVjaWZpZWQKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE4MDk1MQorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgICogcGFsL3NwaS9jb2Nv
YS9Db3JlVGV4dFNQSS5oOgorCiAyMDE3LTEyLTE5ICBBbmR5IEVzdGVzICA8YWVzdGVzQGFwcGxl
LmNvbT4KIAogICAgICAgICBbQXBwbGUgUGF5XSBTdG9wIG1haW50YWluaW5nIGEgbGlzdCBvZiBw
YXltZW50IG5ldHdvcmtzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9j
b2NvYS9Db3JlVGV4dFNQSS5oIGIvU291cmNlL1dlYkNvcmUvUEFML3BhbC9zcGkvY29jb2EvQ29y
ZVRleHRTUEkuaAppbmRleCA3ZGNmY2RlZDNlMzE1ZTZlNTBjNmNmOGM1MjFkOWMwMTA1OGRmODNj
Li42N2U2YmE1MTVkN2JjM2IxYWMzZjZjYmE2YzgyNmNhNTFjNTIwZDI5IDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKQEAgLTU1LDYgKzU1LDEz
IEBAIGVudW0gewogICAgIGtDVFJ1blN0YXR1c0hhc09yaWdpbnMgPSAoMSA8PCA0KSwKIH07CiAK
K3R5cGVkZWYgQ0ZfT1BUSU9OUyhDRk9wdGlvbkZsYWdzLCBDVEZvbnRGYWxsYmFja09wdGlvbikg
eworICAgIGtDVEZvbnRGYWxsYmFja09wdGlvbk5vbmUgPSAwLAorICAgIGtDVEZvbnRGYWxsYmFj
a09wdGlvblN5c3RlbSA9IDEgPDwgMCwKKyAgICBrQ1RGb250RmFsbGJhY2tPcHRpb25Vc2VySW5z
dGFsbGVkID0gMSA8PCAxLAorICAgIGtDVEZvbnRGYWxsYmFja09wdGlvbkRlZmF1bHQgPSBrQ1RG
b250RmFsbGJhY2tPcHRpb25TeXN0ZW0gfCBrQ1RGb250RmFsbGJhY2tPcHRpb25Vc2VySW5zdGFs
bGVkLAorfTsKKwogI2VuZGlmCiAKIFdURl9FWFRFUk5fQ19CRUdJTgpAQCAtNjYsNiArNzMsNyBA
QCBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9udFJlZmVyZW5jZVVSTEF0dHJpYnV0ZTsK
IGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGU7CiBl
eHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9udFBvc3RTY3JpcHROYW1lQXR0cmlidXRlOwog
ZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlOwor
ZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZvbnRGYWxsYmFja09wdGlvbkF0dHJpYnV0ZTsK
IAogYm9vbCBDVEZvbnRUcmFuc2Zvcm1HbHlwaHMoQ1RGb250UmVmLCBDR0dseXBoIGdseXBoc1td
LCBDR1NpemUgYWR2YW5jZXNbXSwgQ0ZJbmRleCBjb3VudCwgQ1RGb250VHJhbnNmb3JtT3B0aW9u
cyk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5k
ZXggYTJlYTIxM2Q1MjE2ZjYyOTI1MTk4NTg0YjJmMGU5M2Q0OWNiYjA2Yi4uNWNkN2I2OGZkZmJi
NTk3OWI4MjA4Zjg4ZWNlYzNmNmRlOGI2ODVlMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTEyNCw3ICsxMjQsOCBAQCBzdHJ1Y3QgRm9udERl
c2NyaXB0aW9uS2V5IHsKIHByaXZhdGU6CiAgICAgc3RhdGljIHN0ZDo6YXJyYXk8dW5zaWduZWQs
IDI+IG1ha2VGbGFnc0tleShjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQogICAg
IHsKLSAgICAgICAgdW5zaWduZWQgZmlyc3QgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3Jp
cHRpb24uc2NyaXB0KCkpIDw8IDEzCisgICAgICAgIHVuc2lnbmVkIGZpcnN0ID0gc3RhdGljX2Nh
c3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNjcmlwdCgpKSA8PCAxNAorICAgICAgICAgICAgfCBz
dGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVk
Rm9udHMoKSkgPDwgMTMKICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2Ny
aXB0aW9uLmZvbnRTdHlsZUF4aXMoKSA9PSBGb250U3R5bGVBeGlzOjpzbG50KSA8PCAxMgogICAg
ICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24ub3B0aWNhbFNpemlu
ZygpKSA8PCAxMQogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRp
b24udGV4dFJlbmRlcmluZ01vZGUoKSkgPDwgOQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCmluZGV4
IDBhYjE3ZjU3OGY3NmM0ZDVhYzVhMTk1NzZiZjU0OTIzZjA5MDMwZjIuLmQ3ZGNhYzQxYWZlY2Fi
Y2Y2N2U4YmUwZDBlODcxNDRkMTUzYzdlNTAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKQEAg
LTkwOCwyMSArOTA4LDEyIEBAIHB1YmxpYzoKICAgICAgICAgYXV0byBmb2xkZWQgPSBmYW1pbHlO
YW1lLmZvbGRDYXNlKCk7CiAgICAgICAgIHJldHVybiBtX2ZhbWlseU5hbWVUb0ZvbnREZXNjcmlw
dG9ycy5lbnN1cmUoZm9sZGVkLCBbJl0gewogICAgICAgICAgICAgYXV0byBmYW1pbHlOYW1lU3Ry
aW5nID0gZm9sZGVkLmNyZWF0ZUNGU3RyaW5nKCk7Ci0gICAgICAgICAgICBSZXRhaW5QdHI8Q0ZE
aWN0aW9uYXJ5UmVmPiBhdHRyaWJ1dGVzOwotI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExF
RF9GT05UUwotICAgICAgICAgICAgaWYgKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMgPT0gRm9u
dENhY2hlOjpBbGxvd1VzZXJJbnN0YWxsZWRGb250czo6Tm8pIHsKLSAgICAgICAgICAgICAgICBD
RlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RmFtaWx5TmFtZUF0dHJpYnV0ZSwga0NURm9udFVz
ZXJJbnN0YWxsZWRBdHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVz
W10gPSB7IGZhbWlseU5hbWVTdHJpbmcuZ2V0KCksIGtDRkJvb2xlYW5GYWxzZSB9OwotICAgICAg
ICAgICAgICAgIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZU
eXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpKTsKLSAgICAgICAgICAgIH0gZWxzZQotI2VuZGlmCi0gICAgICAgICAgICB7Ci0gICAgICAg
ICAgICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUg
fTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGZhbWlseU5hbWVTdHJp
bmcuZ2V0KCkgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rp
b25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlf
TEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGlj
dGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBhdXRv
IGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2Nh
dG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURp
Y3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFs
dWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUsIGZhbWlseU5h
bWVTdHJpbmcuZ2V0KCkpOworICAgICAgICAgICAgYWRkQXR0cmlidXRlc0ZvclVzZXJJbnN0YWxs
ZWRGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKICAg
ICAgICAgICAgIGF1dG8gZm9udERlc2NyaXB0b3JUb01hdGNoID0gYWRvcHRDRihDVEZvbnREZXNj
cmlwdG9yQ3JlYXRlV2l0aEF0dHJpYnV0ZXMoYXR0cmlidXRlcy5nZXQoKSkpOwotICAgICAgICAg
ICAgaWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNo
aW5nRm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVsbHB0cikp
KSB7CisgICAgICAgICAgICBSZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMg
PSBtYW5kYXRvcnlBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKG1fYWxsb3dVc2VySW5z
dGFsbGVkRm9udHMpOworICAgICAgICAgICAgaWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RG
b250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9y
VG9NYXRjaC5nZXQoKSwgbWFuZGF0b3J5QXR0cmlidXRlcy5nZXQoKSkpKSB7CiAgICAgICAgICAg
ICAgICAgYXV0byBjb3VudCA9IENGQXJyYXlHZXRDb3VudChtYXRjaGVzLmdldCgpKTsKICAgICAg
ICAgICAgICAgICBWZWN0b3I8SW5zdGFsbGVkRm9udD4gcmVzdWx0OwogICAgICAgICAgICAgICAg
IHJlc3VsdC5yZXNlcnZlSW5pdGlhbENhcGFjaXR5KGNvdW50KTsKQEAgLTk0NiwyMSArOTM3LDEz
IEBAIHB1YmxpYzoKICNlbHNlCiAgICAgICAgICAgICBDRlN0cmluZ1JlZiBuYW1lQXR0cmlidXRl
ID0ga0NURm9udE5hbWVBdHRyaWJ1dGU7CiAjZW5kaWYKLSAgICAgICAgICAgIFJldGFpblB0cjxD
RkRpY3Rpb25hcnlSZWY+IGF0dHJpYnV0ZXM7Ci0jaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFM
TEVEX0ZPTlRTCi0gICAgICAgICAgICBpZiAobV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBG
b250Q2FjaGU6OkFsbG93VXNlckluc3RhbGxlZEZvbnRzOjpObykgewotICAgICAgICAgICAgICAg
IENGVHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBuYW1lQXR0cmli
dXRlLCBrQ1RGb250VXNlckluc3RhbGxlZEF0dHJpYnV0ZSB9OwotICAgICAgICAgICAgICAgIENG
VHlwZVJlZiB2YWx1ZXNbXSA9IHsga0NGQm9vbGVhblRydWUsIHBvc3RTY3JpcHROYW1lU3RyaW5n
LmdldCgpLCBrQ0ZCb29sZWFuRmFsc2UgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0g
YWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFs
dWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFj
a3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9IGVs
c2UKLSNlbmRpZgotICAgICAgICAgICAgewotICAgICAgICAgICAgICAgIENGVHlwZVJlZiBrZXlz
W10gPSB7IGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBuYW1lQXR0cmlidXRlIH07Ci0gICAgICAg
ICAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1tdID0geyBrQ0ZCb29sZWFuVHJ1ZSwgcG9zdFNjcmlw
dE5hbWVTdHJpbmcuZ2V0KCkgfTsKLSAgICAgICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRD
RihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBX
VEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZr
Q0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7Ci0gICAgICAgICAgICB9CisgICAgICAg
ICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAm
a0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgICAgICAgICAgQ0ZEaWN0aW9u
YXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQoKSwga0NURm9udEVuYWJsZWRBdHRyaWJ1dGUsIGtD
RkJvb2xlYW5UcnVlKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0
ZXMuZ2V0KCksIG5hbWVBdHRyaWJ1dGUsIHBvc3RTY3JpcHROYW1lU3RyaW5nLmdldCgpKTsKKyAg
ICAgICAgICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoYXR0cmlidXRlcy5n
ZXQoKSwgbV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CiAgICAgICAgICAgICBhdXRvIGZvbnRE
ZXNjcmlwdG9yVG9NYXRjaCA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRy
aWJ1dGVzKGF0dHJpYnV0ZXMuZ2V0KCkpKTsKLSAgICAgICAgICAgIGF1dG8gbWF0Y2ggPSBhZG9w
dENGKHN0YXRpY19jYXN0PENURm9udERlc2NyaXB0b3JSZWY+KENURm9udERlc2NyaXB0b3JDcmVh
dGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9yKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVs
bHB0cikpKTsKKyAgICAgICAgICAgIFJldGFpblB0cjxDRlNldFJlZj4gbWFuZGF0b3J5QXR0cmli
dXRlcyA9IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMobV9hbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyk7CisgICAgICAgICAgICBhdXRvIG1hdGNoID0gYWRvcHRDRihDVEZv
bnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVzY3JpcHRvcihmb250RGVzY3JpcHRvclRv
TWF0Y2guZ2V0KCksIG1hbmRhdG9yeUF0dHJpYnV0ZXMuZ2V0KCkpKTsKICAgICAgICAgICAgIHJl
dHVybiBJbnN0YWxsZWRGb250KG1hdGNoLmdldCgpKTsKICAgICAgICAgfSkuaXRlcmF0b3ItPnZh
bHVlOwogICAgIH0KQEAgLTE0NzUsNCArMTQ1OCwzMiBAQCBjb25zdCBBdG9taWNTdHJpbmcmIEZv
bnRDYWNoZTo6cGxhdGZvcm1BbHRlcm5hdGVGYW1pbHlOYW1lKGNvbnN0IEF0b21pY1N0cmluZyYg
ZgogICAgIHJldHVybiBudWxsQXRvbSgpOwogfQogCit2b2lkIGFkZEF0dHJpYnV0ZXNGb3JVc2Vy
SW5zdGFsbGVkRm9udHMoQ0ZNdXRhYmxlRGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKK3sKKyNpZiBDQU5fRElT
QUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKKyAgICBpZiAoYWxsb3dVc2VySW5zdGFsbGVkRm9u
dHMgPT0gQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5vKSB7CisgICAgICAgIENGRGljdGlvbmFy
eUFkZFZhbHVlKGF0dHJpYnV0ZXMsIGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmlidXRlLCBrQ0ZC
b29sZWFuRmFsc2UpOworICAgICAgICBDVEZvbnRGYWxsYmFja09wdGlvbiBmYWxsYmFja09wdGlv
biA9IGtDVEZvbnRGYWxsYmFja09wdGlvblN5c3RlbTsKKyAgICAgICAgYXV0byBmYWxsYmFja09w
dGlvbk51bWJlciA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwg
a0NGTnVtYmVyU0ludDY0VHlwZSwgJmZhbGxiYWNrT3B0aW9uKSk7CisgICAgICAgIENGRGljdGlv
bmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMsIGtDVEZvbnRGYWxsYmFja09wdGlvbkF0dHJpYnV0ZSwg
ZmFsbGJhY2tPcHRpb25OdW1iZXIuZ2V0KCkpOworICAgIH0KKyNlbHNlCisgICAgVU5VU0VEX1BB
UkFNKGF0dHJpYnV0ZXMpOworICAgIFVOVVNFRF9QQVJBTShhbGxvd1VzZXJJbnN0YWxsZWRGb250
cyk7CisjZW5kaWYKK30KKworUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKEFsbG93VXNlckluc3RhbGxlZEZvbnRzIGFsbG93VXNlcklu
c3RhbGxlZEZvbnRzKQoreworI2lmIENBTl9ESVNBTExPV19VU0VSX0lOU1RBTExFRF9GT05UUwor
ICAgIGlmIChhbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBBbGxvd1VzZXJJbnN0YWxsZWRGb250
czo6Tm8pIHsKKyAgICAgICAgQ0ZUeXBlUmVmIG1hbmRhdG9yeUF0dHJpYnV0ZXNWYWx1ZXNbXSA9
IHsga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGUsIGtDVEZvbnRGYWxsYmFja09wdGlvbkF0
dHJpYnV0ZSB9OworICAgICAgICByZXR1cm4gYWRvcHRDRihDRlNldENyZWF0ZShrQ0ZBbGxvY2F0
b3JEZWZhdWx0LCBtYW5kYXRvcnlBdHRyaWJ1dGVzVmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKG1h
bmRhdG9yeUF0dHJpYnV0ZXNWYWx1ZXMpLCAma0NGVHlwZVNldENhbGxCYWNrcykpOworICAgIH0K
KyNlbHNlCisgICAgVU5VU0VEX1BBUkFNKGFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKKyNlbmRp
ZgorICAgIHJldHVybiBudWxscHRyOworfQorCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuaAppbmRleCAx
YjE2ZjdiMWQzNzhiMDA4NzRiOTM4MTQ2OGI0ODU4MzZiYjZjODM3Li4xM2RhNzE1Yjk2ZTU5OGJk
OTU0YzI5MzBlZTFhYjk3NzQ5Y2ZiOWNkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5oCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmgKQEAgLTU2LDUg
KzU2LDcgQEAgUmV0YWluUHRyPENURm9udFJlZj4gcGxhdGZvcm1Gb250V2l0aEZhbWlseVNwZWNp
YWxDYXNlKGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWwKIFJldGFpblB0cjxDVEZvbnRSZWY+IHBs
YXRmb3JtRm9udFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIEZvbnRTZWxl
Y3Rpb25SZXF1ZXN0LCBUZXh0UmVuZGVyaW5nTW9kZSwgZmxvYXQgc2l6ZSk7CiBib29sIHJlcXVp
cmVzQ3VzdG9tRmFsbGJhY2tGb250KFVDaGFyMzIgY2hhcmFjdGVyKTsKIEZvbnRTZWxlY3Rpb25D
YXBhYmlsaXRpZXMgY2FwYWJpbGl0aWVzRm9yRm9udERlc2NyaXB0b3IoQ1RGb250RGVzY3JpcHRv
clJlZik7Cit2b2lkIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoQ0ZNdXRhYmxl
RGljdGlvbmFyeVJlZiBhdHRyaWJ1dGVzLCBBbGxvd1VzZXJJbnN0YWxsZWRGb250cyk7CitSZXRh
aW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMo
QWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOwogCiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5j
cHAKaW5kZXggMDY5YTc5NTJiOWE1MzNjMDhkNDljNDk5OTI0NTI1MzY4MjgyZjQxZi4uMDRhODAx
ZDc3ZTk1OTk2MGRjY2M5YjczMDdiMmYwOGMyNTkzOTdmMiAxMDA2NDQKLS0tIGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZv
cm1EYXRhLmNwcApAQCAtMjIsNiArMjIsNyBAQAogI2luY2x1ZGUgIkZvbnRDdXN0b21QbGF0Zm9y
bURhdGEuaCIKIAogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgorI2luY2x1ZGUgIkZvbnRDYWNoZUNv
cmVUZXh0LmgiCiAjaW5jbHVkZSAiRm9udERlc2NyaXB0aW9uLmgiCiAjaW5jbHVkZSAiRm9udFBs
YXRmb3JtRGF0YS5oIgogI2luY2x1ZGUgIlNoYXJlZEJ1ZmZlci5oIgpAQCAtMzQsMTAgKzM1LDE3
IEBAIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6On5Gb250Q3VzdG9tUGxhdGZvcm1EYXRhKCkgPSBk
ZWZhdWx0OwogCiBGb250UGxhdGZvcm1EYXRhIEZvbnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQ
bGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzY3JpcHRpb24sIGJvb2wg
Ym9sZCwgYm9vbCBpdGFsaWMsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MmIGZvbnRGYWNlRmVh
dHVyZXMsIGNvbnN0IEZvbnRWYXJpYW50U2V0dGluZ3MmIGZvbnRGYWNlVmFyaWFudFNldHRpbmdz
LCBGb250U2VsZWN0aW9uU3BlY2lmaWVkQ2FwYWJpbGl0aWVzIGZvbnRGYWNlQ2FwYWJpbGl0aWVz
KQogeworICAgIGF1dG8gYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlTXV0
YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAwLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFj
a3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgYWRkQXR0cmlidXRl
c0ZvclVzZXJJbnN0YWxsZWRGb250cyhhdHRyaWJ1dGVzLmdldCgpLCBmb250RGVzY3JpcHRpb24u
c2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CisgICAgYXV0byBtb2RpZmllZEZvbnRE
ZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlQ29weVdpdGhBdHRyaWJ1
dGVzKG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIGF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBSZXRh
aW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMgPSBtYW5kYXRvcnlBdHRyaWJ1dGVz
Rm9yVXNlckluc3RhbGxlZEZvbnRzKGZvbnREZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0
YWxsZWRGb250cygpKTsKKyAgICBhdXRvIG1hdGNoaW5nRm9udERlc2NyaXB0b3IgPSBhZG9wdENG
KENURm9udERlc2NyaXB0b3JDcmVhdGVNYXRjaGluZ0ZvbnREZXNjcmlwdG9yKG1vZGlmaWVkRm9u
dERlc2NyaXB0b3IuZ2V0KCksIG1hbmRhdG9yeUF0dHJpYnV0ZXMuZ2V0KCkpKTsKKyAgICBBU1NF
UlQobWF0Y2hpbmdGb250RGVzY3JpcHRvcik7CisKICAgICBpbnQgc2l6ZSA9IGZvbnREZXNjcmlw
dGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpOwogICAgIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlv
biA9IGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigpOwogICAgIEZvbnRXaWR0aFZhcmlhbnQg
d2lkdGhWYXJpYW50ID0gZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpOwotICAgIFJldGFp
blB0cjxDVEZvbnRSZWY+IGZvbnQgPSBhZG9wdENGKENURm9udENyZWF0ZVdpdGhGb250RGVzY3Jp
cHRvcihtX2ZvbnREZXNjcmlwdG9yLmdldCgpLCBzaXplLCBudWxscHRyKSk7CisgICAgUmV0YWlu
UHRyPENURm9udFJlZj4gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNjcmlw
dG9yKG1hdGNoaW5nRm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIpKTsKICAgICBm
b250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChmb250LmdldCgpLCBmb250RGVzY3JpcHRpb24sICZm
b250RmFjZUZlYXR1cmVzLCAmZm9udEZhY2VWYXJpYW50U2V0dGluZ3MsIGZvbnRGYWNlQ2FwYWJp
bGl0aWVzLCBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRTaXplKCkpOwogICAgIEFTU0VSVChmb250
KTsKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250LmdldCgpLCBzaXplLCBib2xkLCBp
dGFsaWMsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIGZvbnREZXNjcmlwdGlvbi50ZXh0UmVu
ZGVyaW5nTW9kZSgpKTsK
</data>
<flag name="review"
          id="348908"
          type_id="1"
          status="+"
          setter="bfulgham"
    />
    <flag name="commit-queue"
          id="349010"
          type_id="3"
          status="-"
          setter="commit-queue"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>332602</attachid>
            <date>2018-01-29 16:52:20 -0800</date>
            <delta_ts>2018-01-29 16:52:20 -0800</delta_ts>
            <desc>Patch for committing</desc>
            <filename>bug-180951-20180129165220.patch</filename>
            <type>text/plain</type>
            <size>13723</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMjI3NzYxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggNDk2N2Y3MWY3NjY0MWE4
MmYzMWJhM2NmZDI5OTFiMGJjNjBkYjJlNy4uYTZiN2ZjNDQzZGFjMTY2MTIxODIxYjBhZDk3ZDk3
N2JkYjRiZTZhZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE4LTAxLTI5ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgQSBkaXNhbGxv
d2VkIHVzZXItaW5zdGFsbGVkIGZvbnQgbWF5IGJlIHVzZWQgaWYgaXRzIFBvc3RTY3JpcHQgbmFt
ZSBpcyBzcGVjaWZpZWQKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE4MDk1MQorCisgICAgICAgIFJldmlld2VkIGJ5IEJyZW50IEZ1bGdoYW0uCisKKyAg
ICAgICAgVGhpcyBwYXRjaCBhZGRzIGEgbmV3IENvcmVUZXh0IGZvbnQgYXR0cmlidXRlLCBrQ1RG
b250RmFsbGJhY2tPcHRpb25BdHRyaWJ1dGUsIHRvIHRoZQorICAgICAgICBmb250cyB3aGljaCBX
ZWJLaXQgY3JlYXRlcy4gSXQgYWxzbyBhZGRzIHRoaXMgYXR0cmlidXRlIHRvIHdlYiBmb250cywg
c28gdGhhdCBmb250CisgICAgICAgIGZhbGxiYWNrIHdpbGwgaGFwcGVuIGFjY29yZGluZyB0byBv
dXIgcnVsZXMgYWJvdXQgdXNlci1pbnN0YWxsZWQgZm9udHMuIEl0IGFsc28gbWFya3MKKyAgICAg
ICAgdGhlc2UgZm9udCBhdHRyaWJ1dGVzIGFzICJtYW5kYXRvcnkiIHNvIENvcmVUZXh0IHdpbGwg
YmUgZ3VhcmFudGVlZCB0byBmb2xsb3cgdGhlCisgICAgICAgIHBvbGljeS4KKworICAgICAgICBU
ZXN0OiBmYXN0L3RleHQvdXNlci1pbnN0YWxsZWQtZm9udHMvZGlzYWJsZS5odG1sCisKKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnREZXNjcmlwdGlvbktleTo6bWFrZUZsYWdzS2V5KToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpGb250
RGF0YWJhc2U6OmNvbGxlY3Rpb25Gb3JGYW1pbHkpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udERh
dGFiYXNlOjpmb250Rm9yUG9zdFNjcmlwdE5hbWUpOgorICAgICAgICAoV2ViQ29yZTo6YWRkQXR0
cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyk6CisgICAgICAgIChXZWJDb3JlOjptYW5kYXRv
cnlBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKToKKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHA6CisgICAgICAgIChXZWJDb3Jl
OjpGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKToKKwogMjAxOC0wMS0y
OSAgT2xla3NhbmRyIFNrYWNoa292ICA8Z3NrYWNoa292QGdtYWlsLmNvbT4KIAogICAgICAgICBG
ZXRjaFJlc3BvbnNlIHNob3VsZCBzdXBwb3J0IENvbnN1bWVEYXRhIGNhbGxiYWNrIG9uIGNodW5r
IGRhdGEgaXMgcmVjZWl2ZWQ6IGhhbmRsaW5nIFJlYWRhYmxlU3RyZWFtIGJvZGllcwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL1BBTC9D
aGFuZ2VMb2cKaW5kZXggZTQ3OTQ4ODllYjc3ODVkZjk0ODBkYjliN2QwNThiNzhiNmVlYmFlMy4u
NjBlYmM5Mzg2YWM3YmJlMDhjNGUyZTllMTdjOWU2MWIzNGI5NjRkMyAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvUEFML0NoYW5nZUxvZworKysgYi9Tb3VyY2UvV2ViQ29yZS9QQUwvQ2hhbmdl
TG9nCkBAIC0xLDMgKzEsMTIgQEAKKzIwMTgtMDEtMjkgIE15bGVzIEMuIE1heGZpZWxkICA8bW1h
eGZpZWxkQGFwcGxlLmNvbT4KKworICAgICAgICBBIGRpc2FsbG93ZWQgdXNlci1pbnN0YWxsZWQg
Zm9udCBtYXkgYmUgdXNlZCBpZiBpdHMgUG9zdFNjcmlwdCBuYW1lIGlzIHNwZWNpZmllZAorICAg
ICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTgwOTUxCisKKyAg
ICAgICAgUmV2aWV3ZWQgYnkgQnJlbnQgRnVsZ2hhbS4KKworICAgICAgICAqIHBhbC9zcGkvY29j
b2EvQ29yZVRleHRTUEkuaDoKKwogMjAxOC0wMS0yNyAgRGFuIEJlcm5zdGVpbiAgPG1pdHpAYXBw
bGUuY29tPgogCiAgICAgICAgIEhhdmVJbnRlcm5hbFNESyBpbmNsdWRlcyBzaG91bGQgYmUgIiNp
bmNsdWRlPyIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0Nv
cmVUZXh0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9QQUwvcGFsL3NwaS9jb2NvYS9Db3JlVGV4dFNQ
SS5oCmluZGV4IGU3ZGE1MzI2MjJlZDJjNjdlMzZjY2IxZjk1NWQwY2UyMjM3YzkwYzMuLjFhMDQ1
ZDU1ZjlhYjE3YjA2YTI0MjE0NDEzYzRhYzRiODc3NDA3ODQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9X
ZWJDb3JlL1BBTC9wYWwvc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvUEFML3BhbC9zcGkvY29jb2EvQ29yZVRleHRTUEkuaApAQCAtNTUsNiArNTUsMTMgQEAgZW51
bSB7CiAgICAga0NUUnVuU3RhdHVzSGFzT3JpZ2lucyA9ICgxIDw8IDQpLAogfTsKIAordHlwZWRl
ZiBDRl9PUFRJT05TKENGT3B0aW9uRmxhZ3MsIENURm9udEZhbGxiYWNrT3B0aW9uKSB7CisgICAg
a0NURm9udEZhbGxiYWNrT3B0aW9uTm9uZSA9IDAsCisgICAga0NURm9udEZhbGxiYWNrT3B0aW9u
U3lzdGVtID0gMSA8PCAwLAorICAgIGtDVEZvbnRGYWxsYmFja09wdGlvblVzZXJJbnN0YWxsZWQg
PSAxIDw8IDEsCisgICAga0NURm9udEZhbGxiYWNrT3B0aW9uRGVmYXVsdCA9IGtDVEZvbnRGYWxs
YmFja09wdGlvblN5c3RlbSB8IGtDVEZvbnRGYWxsYmFja09wdGlvblVzZXJJbnN0YWxsZWQsCit9
OworCiAjZW5kaWYKIAogV1RGX0VYVEVSTl9DX0JFR0lOCkBAIC02Niw2ICs3Myw3IEBAIGV4dGVy
biBjb25zdCBDRlN0cmluZ1JlZiBrQ1RGb250UmVmZXJlbmNlVVJMQXR0cmlidXRlOwogZXh0ZXJu
IGNvbnN0IENGU3RyaW5nUmVmIGtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZTsKIGV4dGVybiBj
b25zdCBDRlN0cmluZ1JlZiBrQ1RGb250UG9zdFNjcmlwdE5hbWVBdHRyaWJ1dGU7CiBleHRlcm4g
Y29uc3QgQ0ZTdHJpbmdSZWYga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1dGU7CitleHRlcm4g
Y29uc3QgQ0ZTdHJpbmdSZWYga0NURm9udEZhbGxiYWNrT3B0aW9uQXR0cmlidXRlOwogCiBib29s
IENURm9udFRyYW5zZm9ybUdseXBocyhDVEZvbnRSZWYsIENHR2x5cGggZ2x5cGhzW10sIENHU2l6
ZSBhZHZhbmNlc1tdLCBDRkluZGV4IGNvdW50LCBDVEZvbnRUcmFuc2Zvcm1PcHRpb25zKTsKIApk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCBhMmVh
MjEzZDUyMTZmNjI5MjUxOTg1ODRiMmYwZTkzZDQ5Y2JiMDZiLi41Y2Q3YjY4ZmRmYmI1OTc5Yjgy
MDhmODhlY2VjM2Y2ZGU4YjY4NWUxIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250Q2FjaGUuaApAQCAtMTI0LDcgKzEyNCw4IEBAIHN0cnVjdCBGb250RGVzY3JpcHRp
b25LZXkgewogcHJpdmF0ZToKICAgICBzdGF0aWMgc3RkOjphcnJheTx1bnNpZ25lZCwgMj4gbWFr
ZUZsYWdzS2V5KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCiAgICAgewotICAg
ICAgICB1bnNpZ25lZCBmaXJzdCA9IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5z
Y3JpcHQoKSkgPDwgMTMKKyAgICAgICAgdW5zaWduZWQgZmlyc3QgPSBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4oZGVzY3JpcHRpb24uc2NyaXB0KCkpIDw8IDE0CisgICAgICAgICAgICB8IHN0YXRpY19j
YXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5zaG91bGRBbGxvd1VzZXJJbnN0YWxsZWRGb250cygp
KSA8PCAxMwogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24u
Zm9udFN0eWxlQXhpcygpID09IEZvbnRTdHlsZUF4aXM6OnNsbnQpIDw8IDEyCiAgICAgICAgICAg
ICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5vcHRpY2FsU2l6aW5nKCkpIDw8
IDExCiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi50ZXh0
UmVuZGVyaW5nTW9kZSgpKSA8PCA5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKaW5kZXggYzk0Njcw
ZDY4ZjFjZmVjNjRiMDUyODNkNTE0YWNiYjg1M2E1NmFhZi4uOGE4MDI0NDAzM2UzNjMyOTA2YWZm
ZmRkMzM3MWE0ODBhNDYxYTVhOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcApAQCAtODg5LDIx
ICs4ODksMTIgQEAgcHVibGljOgogICAgICAgICBhdXRvIGZvbGRlZCA9IGZhbWlseU5hbWUuZm9s
ZENhc2UoKTsKICAgICAgICAgcmV0dXJuIG1fZmFtaWx5TmFtZVRvRm9udERlc2NyaXB0b3JzLmVu
c3VyZShmb2xkZWQsIFsmXSB7CiAgICAgICAgICAgICBhdXRvIGZhbWlseU5hbWVTdHJpbmcgPSBm
b2xkZWQuY3JlYXRlQ0ZTdHJpbmcoKTsKLSAgICAgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25h
cnlSZWY+IGF0dHJpYnV0ZXM7Ci0jaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZPTlRT
Ci0gICAgICAgICAgICBpZiAobV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBBbGxvd1VzZXJJ
bnN0YWxsZWRGb250czo6Tm8pIHsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0g
eyBrQ1RGb250RmFtaWx5TmFtZUF0dHJpYnV0ZSwga0NURm9udFVzZXJJbnN0YWxsZWRBdHRyaWJ1
dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGZhbWlseU5hbWVT
dHJpbmcuZ2V0KCksIGtDRkJvb2xlYW5GYWxzZSB9OwotICAgICAgICAgICAgICAgIGF0dHJpYnV0
ZXMgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrZXlz
LCB2YWx1ZXMsIFdURl9BUlJBWV9MRU5HVEgoa2V5cyksICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNh
bGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKLSAgICAgICAgICAg
IH0gZWxzZQotI2VuZGlmCi0gICAgICAgICAgICB7Ci0gICAgICAgICAgICAgICAgQ0ZUeXBlUmVm
IGtleXNbXSA9IHsga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUgfTsKLSAgICAgICAgICAgICAg
ICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGZhbWlseU5hbWVTdHJpbmcuZ2V0KCkgfTsKLSAgICAg
ICAgICAgICAgICBhdHRyaWJ1dGVzID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxs
b2NhdG9yRGVmYXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKGtleXMpLCAma0NG
VHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJh
Y2tzKSk7Ci0gICAgICAgICAgICB9CisgICAgICAgICAgICBhdXRvIGF0dHJpYnV0ZXMgPSBhZG9w
dENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwgJmtD
RlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxC
YWNrcykpOworICAgICAgICAgICAgQ0ZEaWN0aW9uYXJ5QWRkVmFsdWUoYXR0cmlidXRlcy5nZXQo
KSwga0NURm9udEZhbWlseU5hbWVBdHRyaWJ1dGUsIGZhbWlseU5hbWVTdHJpbmcuZ2V0KCkpOwor
ICAgICAgICAgICAgYWRkQXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhhdHRyaWJ1dGVz
LmdldCgpLCBtX2FsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKICAgICAgICAgICAgIGF1dG8gZm9u
dERlc2NyaXB0b3JUb01hdGNoID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlV2l0aEF0
dHJpYnV0ZXMoYXR0cmlidXRlcy5nZXQoKSkpOwotICAgICAgICAgICAgaWYgKGF1dG8gbWF0Y2hl
cyA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9udERlc2NyaXB0b3Jz
KGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbnVsbHB0cikpKSB7CisgICAgICAgICAgICBS
ZXRhaW5QdHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMgPSBtYW5kYXRvcnlBdHRyaWJ1
dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOworICAg
ICAgICAgICAgaWYgKGF1dG8gbWF0Y2hlcyA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0
ZU1hdGNoaW5nRm9udERlc2NyaXB0b3JzKGZvbnREZXNjcmlwdG9yVG9NYXRjaC5nZXQoKSwgbWFu
ZGF0b3J5QXR0cmlidXRlcy5nZXQoKSkpKSB7CiAgICAgICAgICAgICAgICAgYXV0byBjb3VudCA9
IENGQXJyYXlHZXRDb3VudChtYXRjaGVzLmdldCgpKTsKICAgICAgICAgICAgICAgICBWZWN0b3I8
SW5zdGFsbGVkRm9udD4gcmVzdWx0OwogICAgICAgICAgICAgICAgIHJlc3VsdC5yZXNlcnZlSW5p
dGlhbENhcGFjaXR5KGNvdW50KTsKQEAgLTkyNywyMSArOTE4LDEzIEBAIHB1YmxpYzoKICNlbHNl
CiAgICAgICAgICAgICBDRlN0cmluZ1JlZiBuYW1lQXR0cmlidXRlID0ga0NURm9udE5hbWVBdHRy
aWJ1dGU7CiAjZW5kaWYKLSAgICAgICAgICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGF0
dHJpYnV0ZXM7Ci0jaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZPTlRTCi0gICAgICAg
ICAgICBpZiAobV9hbGxvd1VzZXJJbnN0YWxsZWRGb250cyA9PSBBbGxvd1VzZXJJbnN0YWxsZWRG
b250czo6Tm8pIHsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250
RW5hYmxlZEF0dHJpYnV0ZSwgbmFtZUF0dHJpYnV0ZSwga0NURm9udFVzZXJJbnN0YWxsZWRBdHRy
aWJ1dGUgfTsKLSAgICAgICAgICAgICAgICBDRlR5cGVSZWYgdmFsdWVzW10gPSB7IGtDRkJvb2xl
YW5UcnVlLCBwb3N0U2NyaXB0TmFtZVN0cmluZy5nZXQoKSwga0NGQm9vbGVhbkZhbHNlIH07Ci0g
ICAgICAgICAgICAgICAgYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChrZXlzKSwg
JmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNh
bGxCYWNrcykpOwotICAgICAgICAgICAgfSBlbHNlCi0jZW5kaWYKLSAgICAgICAgICAgIHsKLSAg
ICAgICAgICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RW5hYmxlZEF0dHJpYnV0
ZSwgbmFtZUF0dHJpYnV0ZSB9OwotICAgICAgICAgICAgICAgIENGVHlwZVJlZiB2YWx1ZXNbXSA9
IHsga0NGQm9vbGVhblRydWUsIHBvc3RTY3JpcHROYW1lU3RyaW5nLmdldCgpIH07Ci0gICAgICAg
ICAgICAgICAgYXR0cmlidXRlcyA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9j
YXRvckRlZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChrZXlzKSwgJmtDRlR5
cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNr
cykpOwotICAgICAgICAgICAgfQorICAgICAgICAgICAgYXV0byBhdHRyaWJ1dGVzID0gYWRvcHRD
RihDRkRpY3Rpb25hcnlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIDAsICZrQ0ZU
eXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFj
a3MpKTsKKyAgICAgICAgICAgIENGRGljdGlvbmFyeUFkZFZhbHVlKGF0dHJpYnV0ZXMuZ2V0KCks
IGtDVEZvbnRFbmFibGVkQXR0cmlidXRlLCBrQ0ZCb29sZWFuVHJ1ZSk7CisgICAgICAgICAgICBD
RkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLmdldCgpLCBuYW1lQXR0cmlidXRlLCBwb3N0
U2NyaXB0TmFtZVN0cmluZy5nZXQoKSk7CisgICAgICAgICAgICBhZGRBdHRyaWJ1dGVzRm9yVXNl
ckluc3RhbGxlZEZvbnRzKGF0dHJpYnV0ZXMuZ2V0KCksIG1fYWxsb3dVc2VySW5zdGFsbGVkRm9u
dHMpOwogICAgICAgICAgICAgYXV0byBmb250RGVzY3JpcHRvclRvTWF0Y2ggPSBhZG9wdENGKENU
Rm9udERlc2NyaXB0b3JDcmVhdGVXaXRoQXR0cmlidXRlcyhhdHRyaWJ1dGVzLmdldCgpKSk7Ci0g
ICAgICAgICAgICBhdXRvIG1hdGNoID0gYWRvcHRDRihzdGF0aWNfY2FzdDxDVEZvbnREZXNjcmlw
dG9yUmVmPihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hpbmdGb250RGVzY3JpcHRvcihmb250
RGVzY3JpcHRvclRvTWF0Y2guZ2V0KCksIG51bGxwdHIpKSk7CisgICAgICAgICAgICBSZXRhaW5Q
dHI8Q0ZTZXRSZWY+IG1hbmRhdG9yeUF0dHJpYnV0ZXMgPSBtYW5kYXRvcnlBdHRyaWJ1dGVzRm9y
VXNlckluc3RhbGxlZEZvbnRzKG1fYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOworICAgICAgICAg
ICAgYXV0byBtYXRjaCA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZU1hdGNoaW5nRm9u
dERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3JUb01hdGNoLmdldCgpLCBtYW5kYXRvcnlBdHRyaWJ1
dGVzLmdldCgpKSk7CiAgICAgICAgICAgICByZXR1cm4gSW5zdGFsbGVkRm9udChtYXRjaC5nZXQo
KSk7CiAgICAgICAgIH0pLml0ZXJhdG9yLT52YWx1ZTsKICAgICB9CkBAIC0xNDMwLDQgKzE0MTMs
MzIgQEAgY29uc3QgQXRvbWljU3RyaW5nJiBGb250Q2FjaGU6OnBsYXRmb3JtQWx0ZXJuYXRlRmFt
aWx5TmFtZShjb25zdCBBdG9taWNTdHJpbmcmIGYKICAgICByZXR1cm4gbnVsbEF0b20oKTsKIH0K
IAordm9pZCBhZGRBdHRyaWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKENGTXV0YWJsZURpY3Rp
b25hcnlSZWYgYXR0cmlidXRlcywgQWxsb3dVc2VySW5zdGFsbGVkRm9udHMgYWxsb3dVc2VySW5z
dGFsbGVkRm9udHMpCit7CisjaWYgQ0FOX0RJU0FMTE9XX1VTRVJfSU5TVEFMTEVEX0ZPTlRTCisg
ICAgaWYgKGFsbG93VXNlckluc3RhbGxlZEZvbnRzID09IEFsbG93VXNlckluc3RhbGxlZEZvbnRz
OjpObykgeworICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLCBrQ1RGb250
VXNlckluc3RhbGxlZEF0dHJpYnV0ZSwga0NGQm9vbGVhbkZhbHNlKTsKKyAgICAgICAgQ1RGb250
RmFsbGJhY2tPcHRpb24gZmFsbGJhY2tPcHRpb24gPSBrQ1RGb250RmFsbGJhY2tPcHRpb25TeXN0
ZW07CisgICAgICAgIGF1dG8gZmFsbGJhY2tPcHRpb25OdW1iZXIgPSBhZG9wdENGKENGTnVtYmVy
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlclNJbnQ2NFR5cGUsICZmYWxsYmFj
a09wdGlvbikpOworICAgICAgICBDRkRpY3Rpb25hcnlBZGRWYWx1ZShhdHRyaWJ1dGVzLCBrQ1RG
b250RmFsbGJhY2tPcHRpb25BdHRyaWJ1dGUsIGZhbGxiYWNrT3B0aW9uTnVtYmVyLmdldCgpKTsK
KyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShhdHRyaWJ1dGVzKTsKKyAgICBVTlVTRURf
UEFSQU0oYWxsb3dVc2VySW5zdGFsbGVkRm9udHMpOworI2VuZGlmCit9CisKK1JldGFpblB0cjxD
RlNldFJlZj4gbWFuZGF0b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhBbGxvd1Vz
ZXJJbnN0YWxsZWRGb250cyBhbGxvd1VzZXJJbnN0YWxsZWRGb250cykKK3sKKyNpZiBDQU5fRElT
QUxMT1dfVVNFUl9JTlNUQUxMRURfRk9OVFMKKyAgICBpZiAoYWxsb3dVc2VySW5zdGFsbGVkRm9u
dHMgPT0gQWxsb3dVc2VySW5zdGFsbGVkRm9udHM6Ok5vKSB7CisgICAgICAgIENGVHlwZVJlZiBt
YW5kYXRvcnlBdHRyaWJ1dGVzVmFsdWVzW10gPSB7IGtDVEZvbnRVc2VySW5zdGFsbGVkQXR0cmli
dXRlLCBrQ1RGb250RmFsbGJhY2tPcHRpb25BdHRyaWJ1dGUgfTsKKyAgICAgICAgcmV0dXJuIGFk
b3B0Q0YoQ0ZTZXRDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgbWFuZGF0b3J5QXR0cmlidXRl
c1ZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSChtYW5kYXRvcnlBdHRyaWJ1dGVzVmFsdWVzKSwgJmtD
RlR5cGVTZXRDYWxsQmFja3MpKTsKKyAgICB9CisjZWxzZQorICAgIFVOVVNFRF9QQVJBTShhbGxv
d1VzZXJJbnN0YWxsZWRGb250cyk7CisjZW5kaWYKKyAgICByZXR1cm4gbnVsbHB0cjsKK30KKwog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dENhY2hlQ29yZVRleHQuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRDYWNoZUNvcmVUZXh0LmgKaW5kZXggMWIxNmY3YjFkMzc4YjAwODc0YjkzODE0NjhiNDg1
ODM2YmI2YzgzNy4uMTNkYTcxNWI5NmU1OThiZDk1NGMyOTMwZWUxYWI5Nzc0OWNmYjljZCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hl
Q29yZVRleHQuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250Q2FjaGVDb3JlVGV4dC5oCkBAIC01Niw1ICs1Niw3IEBAIFJldGFpblB0cjxDVEZvbnRSZWY+
IHBsYXRmb3JtRm9udFdpdGhGYW1pbHlTcGVjaWFsQ2FzZShjb25zdCBBdG9taWNTdHJpbmcmIGZh
bWlsCiBSZXRhaW5QdHI8Q1RGb250UmVmPiBwbGF0Zm9ybUZvbnRXaXRoRmFtaWx5KGNvbnN0IEF0
b21pY1N0cmluZyYgZmFtaWx5LCBGb250U2VsZWN0aW9uUmVxdWVzdCwgVGV4dFJlbmRlcmluZ01v
ZGUsIGZsb2F0IHNpemUpOwogYm9vbCByZXF1aXJlc0N1c3RvbUZhbGxiYWNrRm9udChVQ2hhcjMy
IGNoYXJhY3Rlcik7CiBGb250U2VsZWN0aW9uQ2FwYWJpbGl0aWVzIGNhcGFiaWxpdGllc0ZvckZv
bnREZXNjcmlwdG9yKENURm9udERlc2NyaXB0b3JSZWYpOwordm9pZCBhZGRBdHRyaWJ1dGVzRm9y
VXNlckluc3RhbGxlZEZvbnRzKENGTXV0YWJsZURpY3Rpb25hcnlSZWYgYXR0cmlidXRlcywgQWxs
b3dVc2VySW5zdGFsbGVkRm9udHMpOworUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRy
aWJ1dGVzRm9yVXNlckluc3RhbGxlZEZvbnRzKEFsbG93VXNlckluc3RhbGxlZEZvbnRzKTsKIAog
fQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRD
dXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4IGNhYWFjYjI2YTRjOGJjNzY3MTFk
MTE1NDg0ZjU1MjI2MDUxNzc5YTkuLjQ5NGIyYjQ3ZDJlYjNlZWM2MjE4NjQ5ZjhhOTgwZmU4NGU2
N2U1NzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTIyLDYgKzIyLDcgQEAK
ICNpbmNsdWRlICJGb250Q3VzdG9tUGxhdGZvcm1EYXRhLmgiCiAKICNpbmNsdWRlICJGb250Q2Fj
aGUuaCIKKyNpbmNsdWRlICJGb250Q2FjaGVDb3JlVGV4dC5oIgogI2luY2x1ZGUgIkZvbnREZXNj
cmlwdGlvbi5oIgogI2luY2x1ZGUgIkZvbnRQbGF0Zm9ybURhdGEuaCIKICNpbmNsdWRlICJTaGFy
ZWRCdWZmZXIuaCIKQEAgLTM2LDEwICszNywxNyBAQCBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjp+
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YSgpID0gZGVmYXVsdDsKIAogRm9udFBsYXRmb3JtRGF0YSBG
b250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlw
dGlvbiYgZm9udERlc2NyaXB0aW9uLCBib29sIGJvbGQsIGJvb2wgaXRhbGljLCBjb25zdCBGb250
RmVhdHVyZVNldHRpbmdzJiBmb250RmFjZUZlYXR1cmVzLCBjb25zdCBGb250VmFyaWFudFNldHRp
bmdzJiBmb250RmFjZVZhcmlhbnRTZXR0aW5ncywgRm9udFNlbGVjdGlvblNwZWNpZmllZENhcGFi
aWxpdGllcyBmb250RmFjZUNhcGFiaWxpdGllcykKIHsKKyAgICBhdXRvIGF0dHJpYnV0ZXMgPSBh
ZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgMCwg
JmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNh
bGxCYWNrcykpOworICAgIGFkZEF0dHJpYnV0ZXNGb3JVc2VySW5zdGFsbGVkRm9udHMoYXR0cmli
dXRlcy5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnNob3VsZEFsbG93VXNlckluc3RhbGxlZEZvbnRz
KCkpOworICAgIGF1dG8gbW9kaWZpZWRGb250RGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVz
Y3JpcHRvckNyZWF0ZUNvcHlXaXRoQXR0cmlidXRlcyhtX2ZvbnREZXNjcmlwdG9yLmdldCgpLCBh
dHRyaWJ1dGVzLmdldCgpKSk7CisgICAgUmV0YWluUHRyPENGU2V0UmVmPiBtYW5kYXRvcnlBdHRy
aWJ1dGVzID0gbWFuZGF0b3J5QXR0cmlidXRlc0ZvclVzZXJJbnN0YWxsZWRGb250cyhmb250RGVz
Y3JpcHRpb24uc2hvdWxkQWxsb3dVc2VySW5zdGFsbGVkRm9udHMoKSk7CisgICAgYXV0byBtYXRj
aGluZ0ZvbnREZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlTWF0Y2hp
bmdGb250RGVzY3JpcHRvcihtb2RpZmllZEZvbnREZXNjcmlwdG9yLmdldCgpLCBtYW5kYXRvcnlB
dHRyaWJ1dGVzLmdldCgpKSk7CisgICAgQVNTRVJUKG1hdGNoaW5nRm9udERlc2NyaXB0b3IpOwor
CiAgICAgaW50IHNpemUgPSBmb250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhlbFNpemUoKTsKICAg
ICBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24gPSBmb250RGVzY3JpcHRpb24ub3JpZW50YXRp
b24oKTsKICAgICBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCA9IGZvbnREZXNjcmlwdGlv
bi53aWR0aFZhcmlhbnQoKTsKLSAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRD
RihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IobV9mb250RGVzY3JpcHRvci5nZXQoKSwg
c2l6ZSwgbnVsbHB0cikpOworICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IGZvbnQgPSBhZG9wdENG
KENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcihtYXRjaGluZ0ZvbnREZXNjcmlwdG9yLmdl
dCgpLCBzaXplLCBudWxscHRyKSk7CiAgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9u
dC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLCAmZm9udEZhY2VGZWF0dXJlcywgJmZvbnRGYWNlVmFy
aWFudFNldHRpbmdzLCBmb250RmFjZUNhcGFiaWxpdGllcywgZm9udERlc2NyaXB0aW9uLmNvbXB1
dGVkU2l6ZSgpKTsKICAgICBBU1NFUlQoZm9udCk7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURh
dGEoZm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJp
YW50LCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSk7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>