<?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>148119</bug_id>
          
          <creation_ts>2015-08-17 20:53:09 -0700</creation_ts>
          <short_desc>[Cocoa] Honor the &apos;trak&apos; table by opting in via text-rendering: optimizeLegibility</short_desc>
          <delta_ts>2015-12-07 16:10:48 -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>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jonlee</cc>
    
    <cc>kondapallykalyan</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>1118396</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-17 20:53:09 -0700</bug_when>
    <thetext>[Cocoa] Honor the &apos;trak&apos; table by opting in via text-rendering: optimizeLegibility</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118400</commentid>
    <comment_count>1</comment_count>
      <attachid>259234</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-17 20:59:57 -0700</bug_when>
    <thetext>Created attachment 259234
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118401</commentid>
    <comment_count>2</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-17 21:00:35 -0700</bug_when>
    <thetext>&lt;rdar://problem/22291561&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118416</commentid>
    <comment_count>3</comment_count>
      <attachid>259238</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-17 21:27:10 -0700</bug_when>
    <thetext>Created attachment 259238
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118425</commentid>
    <comment_count>4</comment_count>
      <attachid>259241</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-17 21:40:52 -0700</bug_when>
    <thetext>Created attachment 259241
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118427</commentid>
    <comment_count>5</comment_count>
      <attachid>259242</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-17 21:44:58 -0700</bug_when>
    <thetext>Created attachment 259242
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118429</commentid>
    <comment_count>6</comment_count>
      <attachid>259244</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-17 21:50:07 -0700</bug_when>
    <thetext>Created attachment 259244
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118449</commentid>
    <comment_count>7</comment_count>
      <attachid>259251</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-17 22:54:10 -0700</bug_when>
    <thetext>Created attachment 259251
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118479</commentid>
    <comment_count>8</comment_count>
      <attachid>259257</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-18 00:10:14 -0700</bug_when>
    <thetext>Created attachment 259257
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118540</commentid>
    <comment_count>9</comment_count>
      <attachid>259257</attachid>
    <who name="Tim Horton">thorton</who>
    <bug_when>2015-08-18 10:05:05 -0700</bug_when>
    <thetext>Comment on attachment 259257
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:154
&gt; +    RetainPtr&lt;CFDictionaryRef&gt; dictionary;

&quot;dictionary&quot;? maybe a better name here. &quot;attributes&quot;?

&gt; Source/WebCore/platform/graphics/cocoa/FontCacheCoreText.cpp:158
&gt; +        CFTypeRef keys[] = { kCTFontFeatureSettingsAttribute, kCTFontOpticalSizeAttribute };

I assume the reason for all the duplication here (instead of building up the dictionary) is performance, or something? Is this hot code? You could definitely make this more readable/less full of duplicated code.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118596</commentid>
    <comment_count>10</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-18 12:19:58 -0700</bug_when>
    <thetext>Committed r188591: &lt;http://trac.webkit.org/changeset/188591&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1118639</commentid>
    <comment_count>11</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-18 14:45:38 -0700</bug_when>
    <thetext>Committed r188597: &lt;http://trac.webkit.org/changeset/188597&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1119625</commentid>
    <comment_count>12</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-08-20 20:20:28 -0700</bug_when>
    <thetext>Also http://trac.webkit.org/changeset/188743</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147071</commentid>
    <comment_count>13</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-12-07 16:05:29 -0800</bug_when>
    <thetext>Removing Mavericks-specific lines from platform/mac/TestExpecations due to no longer supporting Mavericks.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1147087</commentid>
    <comment_count>14</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-12-07 16:10:48 -0800</bug_when>
    <thetext>Committed r193663: &lt;http://trac.webkit.org/changeset/193663&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259234</attachid>
            <date>2015-08-17 20:59:57 -0700</date>
            <delta_ts>2015-08-17 21:27:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148119-20150817205955.patch</filename>
            <type>text/plain</type>
            <size>24627</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Q2MTUxNTY5NTYyMmM0
ZGJiZjQyNGVlZWIwZDAxMzA3NjU1ZTBmNC4uZGIwODg4N2RjNGYyZWY2M2E3NWVkMGNlOGY4Y2Yw
MjMzMDJlM2ViNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE1LTA4LTE3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBI
b25vciB0aGUgJ3RyYWsnIHRhYmxlIGJ5IG9wdGluZyBpbiB2aWEgdGV4dC1yZW5kZXJpbmc6IG9w
dGltaXplTGVnaWJpbGl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MTE5CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisK
KyAgICAgICAgV2hlbiB0aGUgYXV0aG9yIGhhcyBvcHRlZCBpbiBieSBzcGVjaWZ5aW5nICJ0ZXh0
LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5OyIsIHdlIHNob3VsZAorICAgICAgICBob25v
ciB0aGUgZm9udCdzICd0cmFrJyB0YWJsZS4gV2UgZG8gdGhpcyBieSBzcGVjaWZ5aW5nIGtDVEZv
bnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZSBhdCBmb250CisgICAgICAgIGNyZWF0aW9uIHRpbWUsIGFu
ZCBieSB1c2luZyBDVEZvbnRHZXRBZHZhbmNlc0ZvckdseXBocygpIGluc3RlYWQgb2YKKyAgICAg
ICAgQ0dGb250R2V0R2x5cGhBZHZhbmNlc0ZvclN0eWxlKCkuCisKKyAgICAgICAgTm8gbmV3IHRl
c3RzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6CisgICAgICAg
IChXZWJDb3JlOjpGb250RGVzY3JpcHRpb25LZXk6Om1ha2VGbGFnS2V5KTogTWFrZSBvdXIgY2Fj
aGVzIHNlbnNpdGl2ZSB0byBUZXh0UmVuZGVyaW5nTW9kZS4KKyAgICAgICAgKiBwbGF0Zm9ybS9n
cmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0
Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBBZGQgYSBUZXh0UmVuZGVyaW5nTW9kZSBtZW1i
ZXIgdmFyaWFibGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpvcGVyYXRv
cj0pOiBVcGRhdGUgdG8gY29uc3VsdCB3aXRoIHRoZSBuZXcgbWVtYmVyLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRQbGF0Zm9ybURhdGE6OnRleHRSZW5kZXJpbmdNb2RlKTogR2V0dGVyLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAgICAgICAgKFdl
YkNvcmU6OnByZXBhcmVQbGF0Zm9ybUZvbnQpOiBTcGVjaWZ5IGtDVEZvbnRPcHRpY2FsU2l6ZUF0
dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyk6IERl
bGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tOgor
ICAgICAgICAoV2ViQ29yZTo6Y2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRlcik6IFVzZSBDVEZv
bnRHZXRBZHZhbmNlc0ZvckdseXBocygpIGlmIHdlIGFyZQorICAgICAgICBvcHRpbWl6ZUxlZ2li
aWxpdHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0
YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRm
b3JtRGF0YSk6IFBhc3MgdGhlIFRleHRSZW5kZXJpbmdNb2RlIGFyb3VuZC4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tOgorICAgICAgICAoV2ViQ29yZTo6
Rm9udENhY2hlOjpnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFyYWN0ZXJzKTogVXBkYXRlIHRv
IGNhbGwgcmVuYW1lZCBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Y3Jl
YXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNz
L21hYy9Gb250Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpmb250V2l0aEZhbWlseSk6
IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNo
YXJhY3RlcnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6Y3JlYXRlRm9u
dFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9G
b250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDdXN0b21Q
bGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBEaXR0by4KKyAgICAgICAgKiBwbGF0Zm9y
bS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaDoKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGhl
bWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6dXBkYXRlQ2FjaGVk
U3lzdGVtRm9udERlc2NyaXB0aW9uKTogRGl0dG8uCisKIDIwMTUtMDgtMTcgIEFsZXggQ2hyaXN0
ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbV2luIENNYWtlXSBB
bGxvdyBXZWJLaXRMaWJyYXJpZXMgZGlyZWN0b3J5IHRvIGJlIHNldCBmcm9tIHRoZSBjb21tYW5k
IGxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRD
YWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5k
ZXggYmQ4ZmExNzhjNGZjNDg4NjBkMzAyOWFjNjQyZmI4YjgzYmFmNjliNi4uOGM4ZjI2NDRiYWY2
ZDZiNzIyMWUyYTlkYTA1OTA2ZDE2OGVlNmUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTEwNSw3ICsxMDUsOCBAQCBwcml2YXRlOgogICAg
IHN0YXRpYyB1bnNpZ25lZCBtYWtlRmxhZ0tleShjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2Ny
aXB0aW9uKQogICAgIHsKICAgICAgICAgc3RhdGljX2Fzc2VydChVU0NSSVBUX0NPREVfTElNSVQg
PCAweDEwMDAsICJTY3JpcHQgY29kZSBtdXN0IGZpdCBpbiBhbiB1bnNpZ25lZCBhbG9uZyB3aXRo
IHRoZSBvdGhlciBmbGFncyIpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGRlc2NyaXB0aW9uLnNjcmlwdCgpKSA8PCA5CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4oZGVzY3JpcHRpb24uc2NyaXB0KCkpIDw8IDExCisgICAgICAgICAgICB8IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpKSA8PCA5CiAg
ICAgICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5zbWFsbENhcHMo
KSkgPDwgOAogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24u
Zm9udFN5bnRoZXNpcygpKSA8PCA2CiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVk
PihkZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSkgPDwgNApAQCAtMjE1LDcgKzIxNiw3IEBAIHBy
aXZhdGU6CiB9OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi1SZXRhaW5QdHI8Q1RGb250UmVmPiBh
cHBseUZvbnRGZWF0dXJlU2V0dGluZ3MoQ1RGb250UmVmLCBjb25zdCBGb250RmVhdHVyZVNldHRp
bmdzKik7CitSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJl
ZiwgVGV4dFJlbmRlcmluZ01vZGUsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqKTsKICNlbmRp
ZgogCiAjaWYgIVBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggMzE2NjRmNGY0MzVkNzUyYTgx
NDM1NDBjYjRkYmE1YWNlMTAzMjMyOC4uYjgwODg3NWQ1NDQzOTM0MGY3YzE0MjYzMjhlOGVjZGU2
M2FmZjNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9u
dFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTQzLDI1ICs0MywyNiBAQCBGb250UGxhdGZvcm1EYXRh
OjpGb250UGxhdGZvcm1EYXRhKCkKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRm
b3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2Js
aXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRo
VmFyaWFudCkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwg
Ym9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlv
biBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQsIFRleHRSZW5kZXJp
bmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlKQogICAgIDogbV9zeW50aGV0aWNCb2xkKHN5bnRoZXRp
Y0JvbGQpCiAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKICAgICAs
IG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1f
d2lkdGhWYXJpYW50KHdpZHRoVmFyaWFudCkKKyAgICAsIG1fdGV4dFJlbmRlcmluZ01vZGUodGV4
dFJlbmRlcmluZ01vZGUpCiB7CiB9CiAKICNpZiBVU0UoQ0cpCi1Gb250UGxhdGZvcm1EYXRhOjpG
b250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhl
dGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRp
b24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KQotICAgIDogRm9udFBsYXRmb3JtRGF0
YShzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlvbiwgd2lk
dGhWYXJpYW50KQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYg
Y2dGb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2Js
aXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRo
VmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCisgICAgOiBGb250
UGxhdGZvcm1EYXRhKHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVu
dGF0aW9uLCB3aWR0aFZhcmlhbnQsIHRleHRSZW5kZXJpbmdNb2RlKQogewogICAgIG1fY2dGb250
ID0gY2dGb250OwogfQogI2VuZGlmCiAKIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURh
dGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgc291cmNlKQotICAgIDogRm9udFBsYXRmb3JtRGF0
YShzb3VyY2UubV9zaXplLCBzb3VyY2UubV9zeW50aGV0aWNCb2xkLCBzb3VyY2UubV9zeW50aGV0
aWNPYmxpcXVlLCBzb3VyY2UubV9vcmllbnRhdGlvbiwgc291cmNlLm1fd2lkdGhWYXJpYW50KQor
ICAgIDogRm9udFBsYXRmb3JtRGF0YShzb3VyY2UubV9zaXplLCBzb3VyY2UubV9zeW50aGV0aWNC
b2xkLCBzb3VyY2UubV9zeW50aGV0aWNPYmxpcXVlLCBzb3VyY2UubV9vcmllbnRhdGlvbiwgc291
cmNlLm1fd2lkdGhWYXJpYW50LCBzb3VyY2UubV90ZXh0UmVuZGVyaW5nTW9kZSkKIHsKICAgICBt
X2lzSGFzaFRhYmxlRGVsZXRlZFZhbHVlID0gc291cmNlLm1faXNIYXNoVGFibGVEZWxldGVkVmFs
dWU7CiAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IHNvdXJjZS5tX2lzQ29sb3JCaXRtYXBGb250
OwpAQCAtODMsNiArODQsNyBAQCBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBGb250UGxhdGZvcm1E
YXRhOjpvcGVyYXRvcj0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZQogICAgIG1fd2lkdGhW
YXJpYW50ID0gb3RoZXIubV93aWR0aFZhcmlhbnQ7CiAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9
IG90aGVyLm1faXNDb2xvckJpdG1hcEZvbnQ7CiAgICAgbV9pc0NvbXBvc2l0ZUZvbnRSZWZlcmVu
Y2UgPSBvdGhlci5tX2lzQ29tcG9zaXRlRm9udFJlZmVyZW5jZTsKKyAgICBtX3RleHRSZW5kZXJp
bmdNb2RlID0gb3RoZXIubV90ZXh0UmVuZGVyaW5nTW9kZTsKIAogICAgIHJldHVybiBwbGF0Zm9y
bURhdGFBc3NpZ24ob3RoZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCmluZGV4IDUxZjBmMDgzNTk4YzhhY2VlYmZlMmNj
MDUzMTczYWJhOWJmNmZhODMuLmNiZDFiYjQ4OWJjNDE3ZTNkMTI2OTQyZTkyYjE4YjdmODk1NjAw
YjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0
Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxh
dGZvcm1EYXRhLmgKQEAgLTgxLDE0ICs4MSwxNCBAQCBwdWJsaWM6CiAgICAgRm9udFBsYXRmb3Jt
RGF0YSgpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYpOwog
ICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29uc3QgQXRvbWlj
U3RyaW5nJiBmYW1pbHkpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBz
eW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiA9IEhv
cml6b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBSZWd1bGFyV2lkdGgpOworICAgIEZvbnRQbGF0
Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09i
bGlxdWUsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBS
ZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2RlID0gQXV0b1RleHRSZW5kZXJpbmcpOwogCiAj
aWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV0VCQ09SRV9FWFBPUlQgRm9udFBsYXRmb3JtRGF0YShD
VEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNlLCBib29sIHN5
bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9u
dFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCk7CisgICAgV0VCQ09SRV9FWFBPUlQgRm9udFBs
YXRmb3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCA9IGZh
bHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9uID0gSG9y
aXpvbnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCwgVGV4dFJlbmRlcmluZ01v
ZGUgPSBBdXRvVGV4dFJlbmRlcmluZyk7CiAjZW5kaWYKIAogI2lmIFVTRShDRykKLSAgICBGb250
UGxhdGZvcm1EYXRhKENHRm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBi
b29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCk7
CisgICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhl
dGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24sIEZvbnRXaWR0
aFZhcmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlKTsKICNlbmRpZgogCiAjaWYgUExBVEZPUk0oV0lO
KQpAQCAtMTM3LDYgKzEzNyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ29tcG9zaXRlRm9udFJl
ZmVyZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb21wb3NpdGVGb250UmVmZXJlbmNlOyB9CiAg
ICAgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRh
dGlvbjsgfQogICAgIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KCkgY29uc3QgeyByZXR1
cm4gbV93aWR0aFZhcmlhbnQ7IH0KKyAgICBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5n
TW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFJlbmRlcmluZ01vZGU7IH0KICAgICBib29sIGlz
Rm9yVGV4dENvbWJpbmUoKSBjb25zdCB7IHJldHVybiB3aWR0aFZhcmlhbnQoKSAhPSBSZWd1bGFy
V2lkdGg7IH0gLy8gS2VlcCBpbiBzeW5jIHdpdGggY2FsbGVycyBvZiBGb250RGVzY3JpcHRpb246
OnNldFdpZHRoVmFyaWFudCgpLgogCiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbihGb250T3JpZW50
YXRpb24gb3JpZW50YXRpb24pIHsgbV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CkBAIC0y
MTgsNiArMjE5LDcgQEAgcHVibGljOgogICAgIEZvbnRPcmllbnRhdGlvbiBtX29yaWVudGF0aW9u
IHsgSG9yaXpvbnRhbCB9OwogICAgIGZsb2F0IG1fc2l6ZSB7IDAgfTsKICAgICBGb250V2lkdGhW
YXJpYW50IG1fd2lkdGhWYXJpYW50IHsgUmVndWxhcldpZHRoIH07CisgICAgVGV4dFJlbmRlcmlu
Z01vZGUgbV90ZXh0UmVuZGVyaW5nTW9kZSB7IEF1dG9UZXh0UmVuZGVyaW5nIH07CiAKIHByaXZh
dGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKaW5kZXggYjQy
NGE5ODRkMjA0NmY5YTJkMDAwN2VjYTZiNWZhNWNmMDgwMmJjMC4uOGRjNWRjOGU0ZTJhZjVkNjNl
Zjk3NWM4MTE3MTI2ODc4MmY2MzI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcApAQCAtMjYs
NiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZvbnRDYWNoZS5oIgog
CisjaW5jbHVkZSAiQ29yZVRleHRTUEkuaCIKICNpbmNsdWRlIDxDb3JlVGV4dC9TRk5UTGF5b3V0
VHlwZXMuaD4KIAogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAtMTM3LDE4ICsx
MzgsMzUgQEAgc3RhdGljIGlubGluZSB2b2lkIGFwcGVuZE9wZW5UeXBlRmVhdHVyZShDRk11dGFi
bGVBcnJheVJlZiBmZWF0dXJlcywgY29uc3QgRm9udEYKICNlbmRpZgogfQogCi1SZXRhaW5QdHI8
Q1RGb250UmVmPiBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MoQ1RGb250UmVmIG9yaWdpbmFsRm9u
dCwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZXMpCitSZXRhaW5QdHI8Q1RGb250
UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQsIFRleHRSZW5k
ZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiBm
ZWF0dXJlcykKIHsKLSAgICBpZiAoIW9yaWdpbmFsRm9udCB8fCAhZmVhdHVyZXMgfHwgIWZlYXR1
cmVzLT5zaXplKCkpCisgICAgaWYgKCFvcmlnaW5hbEZvbnQgfHwgKCghZmVhdHVyZXMgfHwgIWZl
YXR1cmVzLT5zaXplKCkpICYmICh0ZXh0UmVuZGVyaW5nTW9kZSAhPSBPcHRpbWl6ZUxlZ2liaWxp
dHkpKSkKICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRm9udDsKIAotICAgIFJldGFpblB0cjxDRk11
dGFibGVBcnJheVJlZj4gZmVhdHVyZUFycmF5ID0gYWRvcHRDRihDRkFycmF5Q3JlYXRlTXV0YWJs
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmZWF0dXJlcy0+c2l6ZSgpLCAma0NGVHlwZUFycmF5Q2Fs
bEJhY2tzKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmZWF0dXJlcy0+c2l6ZSgpOyAr
K2kpIHsKLSAgICAgICAgYXBwZW5kVHJ1ZVR5cGVGZWF0dXJlKGZlYXR1cmVBcnJheS5nZXQoKSwg
ZmVhdHVyZXMtPmF0KGkpKTsKLSAgICAgICAgYXBwZW5kT3BlblR5cGVGZWF0dXJlKGZlYXR1cmVB
cnJheS5nZXQoKSwgZmVhdHVyZXMtPmF0KGkpKTsKKyAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlQXJy
YXlSZWY+IGZlYXR1cmVBcnJheTsKKyAgICBpZiAoZmVhdHVyZXMgJiYgZmVhdHVyZXMtPnNpemUo
KSkgeworICAgICAgICBmZWF0dXJlQXJyYXkgPSBhZG9wdENGKENGQXJyYXlDcmVhdGVNdXRhYmxl
KGtDRkFsbG9jYXRvckRlZmF1bHQsIGZlYXR1cmVzLT5zaXplKCksICZrQ0ZUeXBlQXJyYXlDYWxs
QmFja3MpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmZWF0dXJlcy0+c2l6ZSgp
OyArK2kpIHsKKyAgICAgICAgICAgIGFwcGVuZFRydWVUeXBlRmVhdHVyZShmZWF0dXJlQXJyYXku
Z2V0KCksIGZlYXR1cmVzLT5hdChpKSk7CisgICAgICAgICAgICBhcHBlbmRPcGVuVHlwZUZlYXR1
cmUoZmVhdHVyZUFycmF5LmdldCgpLCBmZWF0dXJlcy0+YXQoaSkpOworICAgICAgICB9CisgICAg
fQorICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnk7CisgICAgaWYgKHRl
eHRSZW5kZXJpbmdNb2RlID09IE9wdGltaXplTGVnaWJpbGl0eSAmJiBmZWF0dXJlQXJyYXkgJiYg
Q0ZBcnJheUdldENvdW50KGZlYXR1cmVBcnJheS5nZXQoKSkpIHsKKyAgICAgICAgQ0dGbG9hdCBz
aXplID0gQ1RGb250R2V0U2l6ZShvcmlnaW5hbEZvbnQpOworICAgICAgICBSZXRhaW5QdHI8Q0ZO
dW1iZXJSZWY+IHNpemVOdW1iZXIgPSBhZG9wdENGKENGTnVtYmVyQ3JlYXRlKGtDRkFsbG9jYXRv
ckRlZmF1bHQsIGtDRk51bWJlckNHRmxvYXRUeXBlLCAmc2l6ZSkpOworICAgICAgICBDRlR5cGVS
ZWYga2V5c1tdID0geyBrQ1RGb250RmVhdHVyZVNldHRpbmdzQXR0cmlidXRlLCBrQ1RGb250T3B0
aWNhbFNpemVBdHRyaWJ1dGUgfTsKKyAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1tdID0geyBmZWF0
dXJlQXJyYXkuZ2V0KCksIHNpemVOdW1iZXIuZ2V0KCkgfTsKKyAgICAgICAgZGljdGlvbmFyeSA9
IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtleXMsIHZh
bHVlcywgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxs
QmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgfSBlbHNlIGlm
IChmZWF0dXJlQXJyYXkgJiYgQ0ZBcnJheUdldENvdW50KGZlYXR1cmVBcnJheS5nZXQoKSkpIHsK
KyAgICAgICAgQ0ZBcnJheVJlZiBmZWF0dXJlQXJyYXlQdHIgPSBmZWF0dXJlQXJyYXkuZ2V0KCk7
CisgICAgICAgIGRpY3Rpb25hcnkgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxv
Y2F0b3JEZWZhdWx0LCAoY29uc3Qgdm9pZCoqKSZrQ1RGb250RmVhdHVyZVNldHRpbmdzQXR0cmli
dXRlLCAoY29uc3Qgdm9pZCoqKSZmZWF0dXJlQXJyYXlQdHIsIDEsICZrQ0ZUeXBlRGljdGlvbmFy
eUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKKyAgICB9
IGVsc2UgeworICAgICAgICBDR0Zsb2F0IHNpemUgPSBDVEZvbnRHZXRTaXplKG9yaWdpbmFsRm9u
dCk7CisgICAgICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gc2l6ZU51bWJlciA9IGFkb3B0Q0Yo
Q0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyQ0dGbG9hdFR5cGUs
ICZzaXplKSk7CisgICAgICAgIENGTnVtYmVyUmVmIHNpemVOdW1iZXJQdHIgPSBzaXplTnVtYmVy
LmdldCgpOworICAgICAgICBkaWN0aW9uYXJ5ID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUo
a0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IHZvaWQqKikma0NURm9udE9wdGljYWxTaXplQXR0
cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZzaXplTnVtYmVyUHRyLCAxLCAma0NGVHlwZURpY3Rpb25h
cnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAgICAg
fQotICAgIENGQXJyYXlSZWYgZmVhdHVyZUFycmF5UHRyID0gZmVhdHVyZUFycmF5LmdldCgpOwot
ICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnkgPSBhZG9wdENGKENGRGlj
dGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3Qgdm9pZCoqKSZrQ1RGb250
RmVhdHVyZVNldHRpbmdzQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZmZWF0dXJlQXJyYXlQdHIs
IDEsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFs
dWVDYWxsQmFja3MpKTsKICAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJlZj4gZGVzY3Jp
cHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRyaWJ1dGVzKGRpY3Rp
b25hcnkuZ2V0KCkpKTsKICAgICByZXR1cm4gYWRvcHRDRihDVEZvbnRDcmVhdGVDb3B5V2l0aEF0
dHJpYnV0ZXMob3JpZ2luYWxGb250LCBDVEZvbnRHZXRTaXplKG9yaWdpbmFsRm9udCksIG51bGxw
dHIsIGRlc2NyaXB0b3IuZ2V0KCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQppbmRleCA0YTNhNWVmOGMwNWFlMGExNmM0
ZGJkZmExMTQ1MTkxMTQ5OTBkMzlkLi4yY2ZlYTU3Y2Q2MGYwMGVhOTA1NGQxMmRjYjI0MjFjYzcy
ZmE5M2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udENvY29hLm1tCkBAIC00NTcsMTMgKzQ1Nyw5IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBh
ZHZhbmNlRm9yQ29sb3JCaXRtYXBGb250KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3Jt
RGF0CiBzdGF0aWMgaW5saW5lIGJvb2wgY2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRlcihjb25z
dCBGb250JiBmb250LCBHbHlwaCBnbHlwaCwgQ0dTaXplJiBhZHZhbmNlLCBib29sJiBwb3B1bGF0
ZWRBZHZhbmNlKQogewogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSA9
IGZvbnQucGxhdGZvcm1EYXRhKCk7Ci0gICAgLy8gRmFzdCBnZXR0ZXIgZG9lc24ndCB0YWtlIGN1
c3RvbSB0cmFja2luZyBpbnRvIGFjY291bnQKLSAgICBpZiAoZm9udC5oYXNDdXN0b21UcmFja2lu
ZygpKQorICAgIC8vIEZhc3QgZ2V0dGVyIGRvZXNuJ3QgZG9lc24ndCB3b3JrIGZvciBlbW9qaSwg
Yml0bWFwIGZvbnRzLCBvciB0YWtlIGN1c3RvbSB0cmFja2luZyBpbnRvIGFjY291bnQKKyAgICBp
ZiAoZm9udC5oYXNDdXN0b21UcmFja2luZygpIHx8IHBsYXRmb3JtRGF0YS5pc0Vtb2ppKCkgfHwg
cGxhdGZvcm1EYXRhLnRleHRSZW5kZXJpbmdNb2RlKCkgPT0gT3B0aW1pemVMZWdpYmlsaXR5KQog
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gRmFzdCBnZXR0ZXIgZG9lc24ndCB3b3JrIGZv
ciBlbW9qaQotICAgIGlmIChwbGF0Zm9ybURhdGEuaXNFbW9qaSgpKQotICAgICAgICByZXR1cm4g
ZmFsc2U7Ci0gICAgLy8gLi4uIG9yIGZvciBhbnkgYml0bWFwIGZvbnRzIGluIGdlbmVyYWwKICAg
ICBpZiAoYWR2YW5jZUZvckNvbG9yQml0bWFwRm9udChwbGF0Zm9ybURhdGEsIGdseXBoLCBhZHZh
bmNlKSkgewogICAgICAgICBwb3B1bGF0ZWRBZHZhbmNlID0gdHJ1ZTsKICAgICAgICAgcmV0dXJu
IGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4IGMzYjRkNzliYTQyYWYz
ZmZhMGJmOWFhOGRjMmI0NWI2ZDUxMGRjZjAuLmQxNzYwOTM1ZjMzN2I2OWUxZGJlMzlhOWM1NTYw
OWI5ZmY4YTc2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KQEAgLTQxLDggKzQx
LDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gVGhlc2UgQ29yZVRleHQgVGV4dCBTcGFjaW5n
IGZlYXR1cmUgc2VsZWN0b3JzIGFyZSBub3QgZGVmaW5lZCBpbiBDb3JlVGV4dC4KIGVudW0gVGV4
dFNwYWNpbmdDVEZlYXR1cmVTZWxlY3RvciB7IFRleHRTcGFjaW5nUHJvcG9ydGlvbmFsLCBUZXh0
U3BhY2luZ0Z1bGxXaWR0aCwgVGV4dFNwYWNpbmdIYWxmV2lkdGgsIFRleHRTcGFjaW5nVGhpcmRX
aWR0aCwgVGV4dFNwYWNpbmdRdWFydGVyV2lkdGggfTsKIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9u
dFBsYXRmb3JtRGF0YShDVEZvbnRSZWYgZm9udCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNC
b2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwg
Rm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQpCi0gICAgOiBGb250UGxhdGZvcm1EYXRhKGFk
b3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udChmb250LCBOVUxMKSkuZ2V0KCksIHNpemUsIHN5
bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQp
CitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiBmb250LCBmbG9h
dCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9y
aWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCwgVGV4
dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCisgICAgOiBGb250UGxhdGZvcm1EYXRh
KGFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udChmb250LCBOVUxMKSkuZ2V0KCksIHNpemUs
IHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlh
bnQsIHRleHRSZW5kZXJpbmdNb2RlKQogewogICAgIEFTU0VSVF9BUkcoZm9udCwgZm9udCk7CiAg
ICAgbV9mb250ID0gZm9udDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9pb3MvRm9udENhY2hlSU9TLm1tCmluZGV4IDBhODM5NGFiYTJmMTE5MDA3N2FlZjI4NDM4
ODNmZDQ1ZWFkMDQ3MzguLmZlZWE4ZDM4MTVmNjQ3OTZkNmY3MGU4ZDdkZjkxZmQzODQ1MDZlZWYg
MTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2Fj
aGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRD
YWNoZUlPUy5tbQpAQCAtOTIsNyArOTIsNyBAQCBQYXNzUmVmUHRyPEZvbnQ+IEZvbnRDYWNoZTo6
Z2V0U3lzdGVtRm9udEZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBGb250RGVzY3JpcAogICAg
IGlmICghc3Vic3RpdHV0ZUZvbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgc3Vi
c3RpdHV0ZUZvbnQgPSBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3Moc3Vic3RpdHV0ZUZvbnQuZ2V0
KCksIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICBzdWJzdGl0dXRlRm9udCA9
IHByZXBhcmVQbGF0Zm9ybUZvbnQoc3Vic3RpdHV0ZUZvbnQuZ2V0KCksIGRlc2NyaXB0aW9uLnRl
eHRSZW5kZXJpbmdNb2RlKCksIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKIAogICAg
IENURm9udFN5bWJvbGljVHJhaXRzIG9yaWdpbmFsVHJhaXRzID0gQ1RGb250R2V0U3ltYm9saWNU
cmFpdHMoY3RGb250KTsKICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyBhY3R1YWxUcmFpdHMgPSAw
OwpAQCAtNzE4LDcgKzcxOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBG
b250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgaWYgKCFj
dEZvbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgY3RGb250ID0gYXBwbHlGb250
RmVhdHVyZVNldHRpbmdzKGN0Rm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLmZlYXR1cmVTZXR0
aW5ncygpKTsKKyAgICBjdEZvbnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KGN0Rm9udC5nZXQoKSwg
Zm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlwdGlvbi5mZWF0
dXJlU2V0dGluZ3MoKSk7CiAKICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyBhY3R1YWxUcmFpdHMg
PSAwOwogICAgIGlmIChpc0ZvbnRXZWlnaHRCb2xkKGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSkg
fHwgZm9udERlc2NyaXB0aW9uLml0YWxpYygpKQpAQCAtNzI5LDcgKzcyOSw3IEBAIHN0ZDo6dW5p
cXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURh
dGEoY29uc3QgRm9udERlCiAgICAgYm9vbCBzeW50aGV0aWNCb2xkID0gKGZvbnREZXNjcmlwdGlv
bi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzV2VpZ2h0KSAmJiAodHJhaXRzICYga0NU
Rm9udFRyYWl0Qm9sZCkgJiYgIShhY3R1YWxUcmFpdHMgJiBrQ1RGb250VHJhaXRCb2xkKSAmJiAh
aXNBcHBsZUNvbG9yRW1vamk7CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gKGZvbnREZXNj
cmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzU3R5bGUpICYmICh0cmFpdHMg
JiBrQ1RGb250VHJhaXRJdGFsaWMpICYmICEoYWN0dWFsVHJhaXRzICYga0NURm9udFRyYWl0SXRh
bGljKSAmJiAhaXNBcHBsZUNvbG9yRW1vamk7CiAKLSAgICBhdXRvIHJlc3VsdCA9IHN0ZDo6bWFr
ZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4oY3RGb250LmdldCgpLCBzaXplLCBzeW50aGV0aWNC
b2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3JpZW50YXRpb24oKSwgZm9u
dERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpKTsKKyAgICBhdXRvIHJlc3VsdCA9IHN0ZDo6bWFr
ZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4oY3RGb250LmdldCgpLCBzaXplLCBzeW50aGV0aWNC
b2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3JpZW50YXRpb24oKSwgZm9u
dERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmlu
Z01vZGUoKSk7CiAgICAgaWYgKGlzQXBwbGVDb2xvckVtb2ppKQogICAgICAgICByZXN1bHQtPnNl
dElzRW1vamkodHJ1ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCmluZGV4IDE1OGZiYjBk
YjVmMWJlMTg2NzRmMDA0NjQ1YWMzODc4MzIxOTdiYmEuLmU2NjI4YzBiYzgzOTZmZTllZGI2ZmZm
NmYwMjNiZDUwYWNlNDI3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQpAQCAtMjY0LDcgKzI2NCw3IEBAIHN0YXRpYyBP
cHRpb25hbDxOU0ZvbnQqPiBmb250V2l0aEZhbWlseVNwZWNpYWxDYXNlKGNvbnN0IEF0b21pY1N0
cmluZyYgZmFtaWx5LCBGCiAvLyBGYW1pbHkgbmFtZSBpcyBzb21ld2hhdCBvZiBhIG1pc25vbWVy
IGhlcmUuIFdlIGZpcnN0IGF0dGVtcHQgdG8gZmluZCBhbiBleGFjdCBtYXRjaAogLy8gY29tcGFy
aW5nIHRoZSBkZXNpcmVkRmFtaWx5IHRvIHRoZSBQb3N0U2NyaXB0IG5hbWUgb2YgdGhlIGluc3Rh
bGxlZCBmb250cy4gSWYgdGhhdCBmYWlscwogLy8gd2UgdGhlbiBkbyBhIHNlYXJjaCBiYXNlZCBv
biB0aGUgZmFtaWx5IG5hbWVzIG9mIHRoZSBpbnN0YWxsZWQgZm9udHMuCi1zdGF0aWMgTlNGb250
ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgTlNGb250VHJhaXRN
YXNrIGRlc2lyZWRUcmFpdHMsIEZvbnRXZWlnaHQgd2VpZ2h0LCBjb25zdCBGb250RmVhdHVyZVNl
dHRpbmdzKiBmZWF0dXJlU2V0dGluZ3MsIGZsb2F0IHNpemUpCitzdGF0aWMgTlNGb250ICpmb250
V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgTlNGb250VHJhaXRNYXNrIGRl
c2lyZWRUcmFpdHMsIEZvbnRXZWlnaHQgd2VpZ2h0LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdz
KiBmZWF0dXJlU2V0dGluZ3MsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlLCBm
bG9hdCBzaXplKQogewogICAgIGlmIChjb25zdCBhdXRvJiBzcGVjaWFsQ2FzZSA9IGZvbnRXaXRo
RmFtaWx5U3BlY2lhbENhc2UoZmFtaWx5LCB3ZWlnaHQsIGRlc2lyZWRUcmFpdHMsIHNpemUpKQog
ICAgICAgICByZXR1cm4gc3BlY2lhbENhc2UudmFsdWUoKTsKQEAgLTI4Nyw3ICsyODcsNyBAQCBz
dGF0aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwg
TlNGb250VHJhaXRNYXNrIGRlc2lyZQogCiAgICAgTlNTdHJpbmcgKmRlc2lyZWRGYW1pbHkgPSBm
YW1pbHk7CiAgICAgUmV0YWluUHRyPENURm9udFJlZj4gZm91bmRGb250ID0gYWRvcHRDRihDVEZv
bnRDcmVhdGVGb3JDU1MoKENGU3RyaW5nUmVmKWRlc2lyZWRGYW1pbHksIHRvQ29yZVRleHRGb250
V2VpZ2h0KHdlaWdodCksIHJlcXVlc3RlZFRyYWl0cywgc2l6ZSkpOwotICAgIGZvdW5kRm9udCA9
IGFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyhmb3VuZEZvbnQuZ2V0KCksIGZlYXR1cmVTZXR0aW5n
cyk7CisgICAgZm91bmRGb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChmb3VuZEZvbnQuZ2V0KCks
IHRleHRSZW5kZXJpbmdNb2RlLCBmZWF0dXJlU2V0dGluZ3MpOwogICAgIGlmICghZm91bmRGb250
KQogICAgICAgICByZXR1cm4gbmlsOwogICAgIGZvbnQgPSBDRkJyaWRnaW5nUmVsZWFzZShDRlJl
dGFpbihmb3VuZEZvbnQuZ2V0KCkpKTsKQEAgLTUyMCw3ICs1MjAsNyBAQCBSZWZQdHI8Rm9udD4g
Rm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBkZXNjcgogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSA9IG9y
aWdpbmFsRm9udERhdGEtPnBsYXRmb3JtRGF0YSgpOwogICAgIE5TRm9udCAqbnNGb250ID0gcGxh
dGZvcm1EYXRhLm5zRm9udCgpOwogICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IHJlc3VsdCA9IGxv
b2t1cENURm9udChwbGF0Zm9ybURhdGEuZm9udCgpLCBwbGF0Zm9ybURhdGEuc2l6ZSgpLCBkZXNj
cmlwdGlvbi5sb2NhbGUoKSwgY2hhcmFjdGVycywgbGVuZ3RoKTsKLSAgICByZXN1bHQgPSBhcHBs
eUZvbnRGZWF0dXJlU2V0dGluZ3MocmVzdWx0LmdldCgpLCBkZXNjcmlwdGlvbi5mZWF0dXJlU2V0
dGluZ3MoKSk7CisgICAgcmVzdWx0ID0gcHJlcGFyZVBsYXRmb3JtRm9udChyZXN1bHQuZ2V0KCks
IGRlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0
aW5ncygpKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAg
LTY3OSw3ICs2NzksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENh
Y2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZQogICAgIE5TRm9udFRyYWl0
TWFzayB0cmFpdHMgPSBmb250RGVzY3JpcHRpb24uaXRhbGljKCkgPyBOU0ZvbnRJdGFsaWNUcmFp
dCA6IDA7CiAgICAgZmxvYXQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6
ZSgpOwogCi0gICAgTlNGb250ICpuc0ZvbnQgPSBmb250V2l0aEZhbWlseShmYW1pbHksIHRyYWl0
cywgZm9udERlc2NyaXB0aW9uLndlaWdodCgpLCBmb250RGVzY3JpcHRpb24uZmVhdHVyZVNldHRp
bmdzKCksIHNpemUpOworICAgIE5TRm9udCAqbnNGb250ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5
LCB0cmFpdHMsIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9uLmZlYXR1
cmVTZXR0aW5ncygpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgc2l6ZSk7
CiAgICAgaWYgKCFuc0ZvbnQpIHsKICAgICAgICAgaWYgKCFzaG91bGRBdXRvQWN0aXZhdGVGb250
SWZOZWVkZWQoZmFtaWx5KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNjg4LDcg
KzY4OCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNy
ZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgICAgIC8vIElnbm9yZSB0aGUg
cmVzdWx0IGJlY2F1c2Ugd2Ugd2FudCB0byB1c2Ugb3VyIG93biBhbGdvcml0aG0gdG8gYWN0dWFs
bHkgZmluZCB0aGUgZm9udC4KICAgICAgICAgW05TRm9udCBmb250V2l0aE5hbWU6ZmFtaWx5IHNp
emU6c2l6ZV07CiAKLSAgICAgICAgbnNGb250ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5LCB0cmFp
dHMsIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9uLmZlYXR1cmVTZXR0
aW5ncygpLCBzaXplKTsKKyAgICAgICAgbnNGb250ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5LCB0
cmFpdHMsIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9uLmZlYXR1cmVT
ZXR0aW5ncygpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgc2l6ZSk7CiAg
ICAgICAgIGlmICghbnNGb250KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpA
QCAtNzAzLDcgKzcwMyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250
Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgYm9vbCBzeW50
aGV0aWNCb2xkID0gKGZvbnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhl
c2lzV2VpZ2h0KSAmJiBpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHRvQXBwS2l0Rm9udFdlaWdodChm
b250RGVzY3JpcHRpb24ud2VpZ2h0KCkpKSAmJiAhaXNBcHBLaXRGb250V2VpZ2h0Qm9sZChhY3R1
YWxXZWlnaHQpOwogICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IChmb250RGVzY3JpcHRpb24u
Zm9udFN5bnRoZXNpcygpICYgRm9udFN5bnRoZXNpc1N0eWxlKSAmJiAodHJhaXRzICYgTlNGb250
SXRhbGljVHJhaXQpICYmICEoYWN0dWFsVHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpOwogCi0g
ICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4ocmVpbnRlcnByZXRf
Y2FzdDxDVEZvbnRSZWY+KHBsYXRmb3JtRm9udCksIHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRo
ZXRpY09ibGlxdWUsIGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigpLCBmb250RGVzY3JpcHRp
b24ud2lkdGhWYXJpYW50KCkpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVlPEZvbnRQbGF0
Zm9ybURhdGE+KHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPihwbGF0Zm9ybUZvbnQpLCBzaXpl
LCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3JpZW50
YXRpb24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpLCBmb250RGVzY3JpcHRpb24u
dGV4dFJlbmRlcmluZ01vZGUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxh
dGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRleCBlZjEyMjdiYjFkMTk4MWEwYzc0MGZlNzdhYWE0
NmQ1YjdjMmM3ZDlhLi42ZTY4MTJhOThmYmI0M2IyNzM3OWU2NmU4MjZlNDdiYzU5M2VmZTBiIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
bWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEZvbnRQbGF0
Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShjb25zdCBG
b250RGVzY3JpcHRpb24mCiAgICAgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQgPSBmb250
RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCk7CiAjaWYgQ09SRVRFWFRfV0VCX0ZPTlRTCiAgICAg
UmV0YWluUHRyPENURm9udFJlZj4gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnRE
ZXNjcmlwdG9yKG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIpKTsKLSAgICBm
b250ID0gYXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlv
bi5mZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9u
dC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlw
dGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoZm9u
dC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50KTsK
ICNlbHNlCiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9jZ0ZvbnQuZ2V0KCksIHNpemUs
IGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCk7CmRpZmYgLS1naXQgYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaCBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCmluZGV4IDI2MDZjMjZjNDU2
NWZjMzM1M2M1ZDFiZTJhN2Q5MzZkNjVkOTU1OTguLjA3ZDVkZWFjMWZhYmQ3M2QxN2RmMjQwNTNl
ZWI2NjBhYjRiZWQ1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9j
b2NvYS9Db3JlVGV4dFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2Nv
YS9Db3JlVGV4dFNQSS5oCkBAIC00OSw2ICs0OSw3IEBAIHR5cGVkZWYgY29uc3QgVW5pQ2hhciog
KCpDVFVuaUNoYXJQcm92aWRlckNhbGxiYWNrKShDRkluZGV4IHN0cmluZ0luZGV4LCBDRkluZGV4
CiB0eXBlZGVmIHZvaWQgKCpDVFVuaUNoYXJEaXNwb3NlQ2FsbGJhY2spKGNvbnN0IFVuaUNoYXIq
IGNoYXJzLCB2b2lkKiByZWZDb24pOwogCiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9u
dFJlZmVyZW5jZVVSTEF0dHJpYnV0ZTsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RGb250
T3B0aWNhbFNpemVBdHRyaWJ1dGU7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpZiAhVVNFKEFQ
UExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlP
Uy5tbQppbmRleCA1NTc4MmQxNDkzZTA5NjU3ZTIyMDJhNDExN2YxZDg0ZTM1MjIyNmM3Li5iNzNj
NWE4OTUyMTZlY2VlMzZkMGQwMTNjNThiOGIzMWY1ZjE1NDBlIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMjYxLDcgKzEyNjEsNyBAQCB2b2lkIFJl
bmRlclRoZW1lSU9TOjp1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24oQ1NTVmFsdWVJ
RCB2YWx1ZUlELCBGb250RAogCiAgICAgQVNTRVJUKGZvbnREZXNjcmlwdG9yKTsKICAgICBSZXRh
aW5QdHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2Ny
aXB0b3IoZm9udERlc2NyaXB0b3IuZ2V0KCksIDAsIG51bGxwdHIpKTsKLSAgICBmb250ID0gYXBw
bHlGb250RmVhdHVyZVNldHRpbmdzKGZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbi5mZWF0dXJl
U2V0dGluZ3MoKSk7CisgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwg
Zm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlwdGlvbi5mZWF0
dXJlU2V0dGluZ3MoKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldElzQWJzb2x1dGVTaXplKHRy
dWUpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkodGV4dFN0eWxlKTsKICAgICBm
b250RGVzY3JpcHRpb24uc2V0U3BlY2lmaWVkU2l6ZShDVEZvbnRHZXRTaXplKGZvbnQuZ2V0KCkp
KTsK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259238</attachid>
            <date>2015-08-17 21:27:10 -0700</date>
            <delta_ts>2015-08-17 21:40:49 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148119-20150817212708.patch</filename>
            <type>text/plain</type>
            <size>27679</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Q2MTUxNTY5NTYyMmM0
ZGJiZjQyNGVlZWIwZDAxMzA3NjU1ZTBmNC4uZDFiNzQwMTgyNGFhMDY3NzBhYWFjYTk5NTBlODcx
NGQ2YThiNzI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTA4LTE3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBI
b25vciB0aGUgJ3RyYWsnIHRhYmxlIGJ5IG9wdGluZyBpbiB2aWEgdGV4dC1yZW5kZXJpbmc6IG9w
dGltaXplTGVnaWJpbGl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MTE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjI5MTU2MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZSBhdXRo
b3IgaGFzIG9wdGVkIGluIGJ5IHNwZWNpZnlpbmcgInRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxl
Z2liaWxpdHk7Iiwgd2Ugc2hvdWxkCisgICAgICAgIGhvbm9yIHRoZSBmb250J3MgJ3RyYWsnIHRh
YmxlLiBXZSBkbyB0aGlzIGJ5IHNwZWNpZnlpbmcga0NURm9udE9wdGljYWxTaXplQXR0cmlidXRl
IGF0IGZvbnQKKyAgICAgICAgY3JlYXRpb24gdGltZSwgYW5kIGJ5IHVzaW5nIENURm9udEdldEFk
dmFuY2VzRm9yR2x5cGhzKCkgaW5zdGVhZCBvZgorICAgICAgICBDR0ZvbnRHZXRHbHlwaEFkdmFu
Y2VzRm9yU3R5bGUoKS4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxl
Z2liaWxpdHkuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb25LZXk6Om1ha2VGbGFnS2V5KTogTWFr
ZSBvdXIgY2FjaGVzIHNlbnNpdGl2ZSB0byBUZXh0UmVuZGVyaW5nTW9kZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBBZGQgYSBUZXh0UmVuZGVyaW5n
TW9kZSBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpvcGVyYXRvcj0pOiBVcGRhdGUgdG8gY29uc3VsdCB3aXRoIHRoZSBuZXcgbWVtYmVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnRleHRSZW5kZXJpbmdNb2RlKTogR2V0dGVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXBhcmVQbGF0Zm9ybUZvbnQpOiBTcGVjaWZ5IGtDVEZvbnRPcHRp
Y2FsU2l6ZUF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5Rm9udEZlYXR1cmVTZXR0
aW5ncyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRlcik6
IFVzZSBDVEZvbnRHZXRBZHZhbmNlc0ZvckdseXBocygpIGlmIHdlIGFyZQorICAgICAgICBvcHRp
bWl6ZUxlZ2liaWxpdHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBs
YXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YSk6IFBhc3MgdGhlIFRleHRSZW5kZXJpbmdNb2RlIGFyb3VuZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhY2hlOjpnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFyYWN0ZXJzKTog
VXBkYXRlIHRvIGNhbGwgcmVuYW1lZCBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpmb250V2l0
aEZhbWlseSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzeXN0ZW1GYWxs
YmFja0ZvckNoYXJhY3RlcnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6
Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBEaXR0by4KKyAgICAgICAg
KiBwbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6dXBk
YXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKTogRGl0dG8uCisKIDIwMTUtMDgtMTcgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbV2lu
IENNYWtlXSBBbGxvdyBXZWJLaXRMaWJyYXJpZXMgZGlyZWN0b3J5IHRvIGJlIHNldCBmcm9tIHRo
ZSBjb21tYW5kIGxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmgKaW5kZXggYmQ4ZmExNzhjNGZjNDg4NjBkMzAyOWFjNjQyZmI4YjgzYmFmNjliNi4uOGM4
ZjI2NDRiYWY2ZDZiNzIyMWUyYTlkYTA1OTA2ZDE2OGVlNmUyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTEwNSw3ICsxMDUsOCBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyB1bnNpZ25lZCBtYWtlRmxhZ0tleShjb25zdCBGb250RGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uKQogICAgIHsKICAgICAgICAgc3RhdGljX2Fzc2VydChVU0NSSVBUX0NP
REVfTElNSVQgPCAweDEwMDAsICJTY3JpcHQgY29kZSBtdXN0IGZpdCBpbiBhbiB1bnNpZ25lZCBh
bG9uZyB3aXRoIHRoZSBvdGhlciBmbGFncyIpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNjcmlwdCgpKSA8PCA5CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24uc2NyaXB0KCkpIDw8IDExCisgICAgICAgICAg
ICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgp
KSA8PCA5CiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5z
bWFsbENhcHMoKSkgPDwgOAogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVz
Y3JpcHRpb24uZm9udFN5bnRoZXNpcygpKSA8PCA2CiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihkZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSkgPDwgNApAQCAtMjE1LDcgKzIx
Niw3IEBAIHByaXZhdGU6CiB9OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi1SZXRhaW5QdHI8Q1RG
b250UmVmPiBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MoQ1RGb250UmVmLCBjb25zdCBGb250RmVh
dHVyZVNldHRpbmdzKik7CitSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250
KENURm9udFJlZiwgVGV4dFJlbmRlcmluZ01vZGUsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3Mq
KTsKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggMzE2NjRmNGY0
MzVkNzUyYTgxNDM1NDBjYjRkYmE1YWNlMTAzMjMyOC4uYjgwODg3NWQ1NDQzOTM0MGY3YzE0MjYz
MjhlOGVjZGU2M2FmZjNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTQzLDI1ICs0MywyNiBAQCBGb250UGxh
dGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKCkKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJp
YW50IHdpZHRoVmFyaWFudCkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxv
YXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRP
cmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQsIFRl
eHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlKQogICAgIDogbV9zeW50aGV0aWNCb2xk
KHN5bnRoZXRpY0JvbGQpCiAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1
ZSkKICAgICAsIG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAgICAgLCBtX3NpemUoc2l6ZSkK
ICAgICAsIG1fd2lkdGhWYXJpYW50KHdpZHRoVmFyaWFudCkKKyAgICAsIG1fdGV4dFJlbmRlcmlu
Z01vZGUodGV4dFJlbmRlcmluZ01vZGUpCiB7CiB9CiAKICNpZiBVU0UoQ0cpCi1Gb250UGxhdGZv
cm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIGZsb2F0IHNpemUsIGJv
b2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24g
b3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KQotICAgIDogRm9udFBs
YXRmb3JtRGF0YShzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBvcmllbnRh
dGlvbiwgd2lkdGhWYXJpYW50KQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShD
R0ZvbnRSZWYgY2dGb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJp
YW50IHdpZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCisg
ICAgOiBGb250UGxhdGZvcm1EYXRhKHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlx
dWUsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIHRleHRSZW5kZXJpbmdNb2RlKQogewogICAg
IG1fY2dGb250ID0gY2dGb250OwogfQogI2VuZGlmCiAKIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQ
bGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgc291cmNlKQotICAgIDogRm9udFBs
YXRmb3JtRGF0YShzb3VyY2UubV9zaXplLCBzb3VyY2UubV9zeW50aGV0aWNCb2xkLCBzb3VyY2Uu
bV9zeW50aGV0aWNPYmxpcXVlLCBzb3VyY2UubV9vcmllbnRhdGlvbiwgc291cmNlLm1fd2lkdGhW
YXJpYW50KQorICAgIDogRm9udFBsYXRmb3JtRGF0YShzb3VyY2UubV9zaXplLCBzb3VyY2UubV9z
eW50aGV0aWNCb2xkLCBzb3VyY2UubV9zeW50aGV0aWNPYmxpcXVlLCBzb3VyY2UubV9vcmllbnRh
dGlvbiwgc291cmNlLm1fd2lkdGhWYXJpYW50LCBzb3VyY2UubV90ZXh0UmVuZGVyaW5nTW9kZSkK
IHsKICAgICBtX2lzSGFzaFRhYmxlRGVsZXRlZFZhbHVlID0gc291cmNlLm1faXNIYXNoVGFibGVE
ZWxldGVkVmFsdWU7CiAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IHNvdXJjZS5tX2lzQ29sb3JC
aXRtYXBGb250OwpAQCAtODMsNiArODQsNyBAQCBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBGb250
UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZQogICAg
IG1fd2lkdGhWYXJpYW50ID0gb3RoZXIubV93aWR0aFZhcmlhbnQ7CiAgICAgbV9pc0NvbG9yQml0
bWFwRm9udCA9IG90aGVyLm1faXNDb2xvckJpdG1hcEZvbnQ7CiAgICAgbV9pc0NvbXBvc2l0ZUZv
bnRSZWZlcmVuY2UgPSBvdGhlci5tX2lzQ29tcG9zaXRlRm9udFJlZmVyZW5jZTsKKyAgICBtX3Rl
eHRSZW5kZXJpbmdNb2RlID0gb3RoZXIubV90ZXh0UmVuZGVyaW5nTW9kZTsKIAogICAgIHJldHVy
biBwbGF0Zm9ybURhdGFBc3NpZ24ob3RoZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCmluZGV4IDUxZjBmMDgzNTk4Yzhh
Y2VlYmZlMmNjMDUzMTczYWJhOWJmNmZhODMuLmNiZDFiYjQ4OWJjNDE3ZTNkMTI2OTQyZTkyYjE4
YjdmODk1NjAwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTgxLDE0ICs4MSwxNCBAQCBwdWJsaWM6CiAgICAgRm9u
dFBsYXRmb3JtRGF0YSgpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3Jt
RGF0YSYpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29u
c3QgQXRvbWljU3RyaW5nJiBmYW1pbHkpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6
ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRh
dGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBSZWd1bGFyV2lkdGgpOworICAg
IEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5
bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZh
cmlhbnQgPSBSZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2RlID0gQXV0b1RleHRSZW5kZXJp
bmcpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV0VCQ09SRV9FWFBPUlQgRm9udFBsYXRm
b3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNl
LCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9uID0gSG9yaXpv
bnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgRm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGlj
Qm9sZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0
aW9uID0gSG9yaXpvbnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCwgVGV4dFJl
bmRlcmluZ01vZGUgPSBBdXRvVGV4dFJlbmRlcmluZyk7CiAjZW5kaWYKIAogI2lmIFVTRShDRykK
LSAgICBGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0
aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiwgRm9udFdpZHRo
VmFyaWFudCk7CisgICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYsIGZsb2F0IHNpemUsIGJv
b2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24s
IEZvbnRXaWR0aFZhcmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oV0lOKQpAQCAtMTM3LDYgKzEzNyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ29tcG9z
aXRlRm9udFJlZmVyZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb21wb3NpdGVGb250UmVmZXJl
bmNlOyB9CiAgICAgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9vcmllbnRhdGlvbjsgfQogICAgIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KCkgY29u
c3QgeyByZXR1cm4gbV93aWR0aFZhcmlhbnQ7IH0KKyAgICBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0
UmVuZGVyaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFJlbmRlcmluZ01vZGU7IH0KICAg
ICBib29sIGlzRm9yVGV4dENvbWJpbmUoKSBjb25zdCB7IHJldHVybiB3aWR0aFZhcmlhbnQoKSAh
PSBSZWd1bGFyV2lkdGg7IH0gLy8gS2VlcCBpbiBzeW5jIHdpdGggY2FsbGVycyBvZiBGb250RGVz
Y3JpcHRpb246OnNldFdpZHRoVmFyaWFudCgpLgogCiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbihG
b250T3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9u
OyB9CkBAIC0yMTgsNiArMjE5LDcgQEAgcHVibGljOgogICAgIEZvbnRPcmllbnRhdGlvbiBtX29y
aWVudGF0aW9uIHsgSG9yaXpvbnRhbCB9OwogICAgIGZsb2F0IG1fc2l6ZSB7IDAgfTsKICAgICBG
b250V2lkdGhWYXJpYW50IG1fd2lkdGhWYXJpYW50IHsgUmVndWxhcldpZHRoIH07CisgICAgVGV4
dFJlbmRlcmluZ01vZGUgbV90ZXh0UmVuZGVyaW5nTW9kZSB7IEF1dG9UZXh0UmVuZGVyaW5nIH07
CiAKIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAK
aW5kZXggYjQyNGE5ODRkMjA0NmY5YTJkMDAwN2VjYTZiNWZhNWNmMDgwMmJjMC4uOGRjNWRjOGU0
ZTJhZjVkNjNlZjk3NWM4MTE3MTI2ODc4MmY2MzI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZvbnRD
YWNoZS5oIgogCisjaW5jbHVkZSAiQ29yZVRleHRTUEkuaCIKICNpbmNsdWRlIDxDb3JlVGV4dC9T
Rk5UTGF5b3V0VHlwZXMuaD4KIAogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAt
MTM3LDE4ICsxMzgsMzUgQEAgc3RhdGljIGlubGluZSB2b2lkIGFwcGVuZE9wZW5UeXBlRmVhdHVy
ZShDRk11dGFibGVBcnJheVJlZiBmZWF0dXJlcywgY29uc3QgRm9udEYKICNlbmRpZgogfQogCi1S
ZXRhaW5QdHI8Q1RGb250UmVmPiBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MoQ1RGb250UmVmIG9y
aWdpbmFsRm9udCwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZXMpCitSZXRhaW5Q
dHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQs
IFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlLCBjb25zdCBGb250RmVhdHVyZVNl
dHRpbmdzKiBmZWF0dXJlcykKIHsKLSAgICBpZiAoIW9yaWdpbmFsRm9udCB8fCAhZmVhdHVyZXMg
fHwgIWZlYXR1cmVzLT5zaXplKCkpCisgICAgaWYgKCFvcmlnaW5hbEZvbnQgfHwgKCghZmVhdHVy
ZXMgfHwgIWZlYXR1cmVzLT5zaXplKCkpICYmICh0ZXh0UmVuZGVyaW5nTW9kZSAhPSBPcHRpbWl6
ZUxlZ2liaWxpdHkpKSkKICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRm9udDsKIAotICAgIFJldGFp
blB0cjxDRk11dGFibGVBcnJheVJlZj4gZmVhdHVyZUFycmF5ID0gYWRvcHRDRihDRkFycmF5Q3Jl
YXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmZWF0dXJlcy0+c2l6ZSgpLCAma0NGVHlw
ZUFycmF5Q2FsbEJhY2tzKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmZWF0dXJlcy0+
c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgYXBwZW5kVHJ1ZVR5cGVGZWF0dXJlKGZlYXR1cmVBcnJh
eS5nZXQoKSwgZmVhdHVyZXMtPmF0KGkpKTsKLSAgICAgICAgYXBwZW5kT3BlblR5cGVGZWF0dXJl
KGZlYXR1cmVBcnJheS5nZXQoKSwgZmVhdHVyZXMtPmF0KGkpKTsKKyAgICBSZXRhaW5QdHI8Q0ZN
dXRhYmxlQXJyYXlSZWY+IGZlYXR1cmVBcnJheTsKKyAgICBpZiAoZmVhdHVyZXMgJiYgZmVhdHVy
ZXMtPnNpemUoKSkgeworICAgICAgICBmZWF0dXJlQXJyYXkgPSBhZG9wdENGKENGQXJyYXlDcmVh
dGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGZlYXR1cmVzLT5zaXplKCksICZrQ0ZUeXBl
QXJyYXlDYWxsQmFja3MpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmZWF0dXJl
cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGFwcGVuZFRydWVUeXBlRmVhdHVyZShmZWF0
dXJlQXJyYXkuZ2V0KCksIGZlYXR1cmVzLT5hdChpKSk7CisgICAgICAgICAgICBhcHBlbmRPcGVu
VHlwZUZlYXR1cmUoZmVhdHVyZUFycmF5LmdldCgpLCBmZWF0dXJlcy0+YXQoaSkpOworICAgICAg
ICB9CisgICAgfQorICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnk7Cisg
ICAgaWYgKHRleHRSZW5kZXJpbmdNb2RlID09IE9wdGltaXplTGVnaWJpbGl0eSAmJiBmZWF0dXJl
QXJyYXkgJiYgQ0ZBcnJheUdldENvdW50KGZlYXR1cmVBcnJheS5nZXQoKSkpIHsKKyAgICAgICAg
Q0dGbG9hdCBzaXplID0gQ1RGb250R2V0U2l6ZShvcmlnaW5hbEZvbnQpOworICAgICAgICBSZXRh
aW5QdHI8Q0ZOdW1iZXJSZWY+IHNpemVOdW1iZXIgPSBhZG9wdENGKENGTnVtYmVyQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckNHRmxvYXRUeXBlLCAmc2l6ZSkpOworICAgICAg
ICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RmVhdHVyZVNldHRpbmdzQXR0cmlidXRlLCBr
Q1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGUgfTsKKyAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1td
ID0geyBmZWF0dXJlQXJyYXkuZ2V0KCksIHNpemVOdW1iZXIuZ2V0KCkgfTsKKyAgICAgICAgZGlj
dGlvbmFyeSA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpLCAma0NGVHlwZURpY3Rpb25h
cnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAg
fSBlbHNlIGlmIChmZWF0dXJlQXJyYXkgJiYgQ0ZBcnJheUdldENvdW50KGZlYXR1cmVBcnJheS5n
ZXQoKSkpIHsKKyAgICAgICAgQ0ZBcnJheVJlZiBmZWF0dXJlQXJyYXlQdHIgPSBmZWF0dXJlQXJy
YXkuZ2V0KCk7CisgICAgICAgIGRpY3Rpb25hcnkgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3Qgdm9pZCoqKSZrQ1RGb250RmVhdHVyZVNldHRp
bmdzQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZmZWF0dXJlQXJyYXlQdHIsIDEsICZrQ0ZUeXBl
RGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3Mp
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBDR0Zsb2F0IHNpemUgPSBDVEZvbnRHZXRTaXplKG9y
aWdpbmFsRm9udCk7CisgICAgICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gc2l6ZU51bWJlciA9
IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyQ0dG
bG9hdFR5cGUsICZzaXplKSk7CisgICAgICAgIENGTnVtYmVyUmVmIHNpemVOdW1iZXJQdHIgPSBz
aXplTnVtYmVyLmdldCgpOworICAgICAgICBkaWN0aW9uYXJ5ID0gYWRvcHRDRihDRkRpY3Rpb25h
cnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IHZvaWQqKikma0NURm9udE9wdGlj
YWxTaXplQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZzaXplTnVtYmVyUHRyLCAxLCAma0NGVHlw
ZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tz
KSk7CiAgICAgfQotICAgIENGQXJyYXlSZWYgZmVhdHVyZUFycmF5UHRyID0gZmVhdHVyZUFycmF5
LmdldCgpOwotICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnkgPSBhZG9w
dENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3Qgdm9pZCoq
KSZrQ1RGb250RmVhdHVyZVNldHRpbmdzQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZmZWF0dXJl
QXJyYXlQdHIsIDEsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0
aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJl
Zj4gZGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRyaWJ1
dGVzKGRpY3Rpb25hcnkuZ2V0KCkpKTsKICAgICByZXR1cm4gYWRvcHRDRihDVEZvbnRDcmVhdGVD
b3B5V2l0aEF0dHJpYnV0ZXMob3JpZ2luYWxGb250LCBDVEZvbnRHZXRTaXplKG9yaWdpbmFsRm9u
dCksIG51bGxwdHIsIGRlc2NyaXB0b3IuZ2V0KCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQppbmRleCA0YTNhNWVmOGMw
NWFlMGExNmM0ZGJkZmExMTQ1MTkxMTQ5OTBkMzlkLi4yY2ZlYTU3Y2Q2MGYwMGVhOTA1NGQxMmRj
YjI0MjFjYzcyZmE5M2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENvY29hLm1tCkBAIC00NTcsMTMgKzQ1Nyw5IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBhZHZhbmNlRm9yQ29sb3JCaXRtYXBGb250KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEm
IHBsYXRmb3JtRGF0CiBzdGF0aWMgaW5saW5lIGJvb2wgY2FuVXNlRmFzdEdseXBoQWR2YW5jZUdl
dHRlcihjb25zdCBGb250JiBmb250LCBHbHlwaCBnbHlwaCwgQ0dTaXplJiBhZHZhbmNlLCBib29s
JiBwb3B1bGF0ZWRBZHZhbmNlKQogewogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRm
b3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7Ci0gICAgLy8gRmFzdCBnZXR0ZXIgZG9lc24n
dCB0YWtlIGN1c3RvbSB0cmFja2luZyBpbnRvIGFjY291bnQKLSAgICBpZiAoZm9udC5oYXNDdXN0
b21UcmFja2luZygpKQorICAgIC8vIEZhc3QgZ2V0dGVyIGRvZXNuJ3QgZG9lc24ndCB3b3JrIGZv
ciBlbW9qaSwgYml0bWFwIGZvbnRzLCBvciB0YWtlIGN1c3RvbSB0cmFja2luZyBpbnRvIGFjY291
bnQKKyAgICBpZiAoZm9udC5oYXNDdXN0b21UcmFja2luZygpIHx8IHBsYXRmb3JtRGF0YS5pc0Vt
b2ppKCkgfHwgcGxhdGZvcm1EYXRhLnRleHRSZW5kZXJpbmdNb2RlKCkgPT0gT3B0aW1pemVMZWdp
YmlsaXR5KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gRmFzdCBnZXR0ZXIgZG9lc24n
dCB3b3JrIGZvciBlbW9qaQotICAgIGlmIChwbGF0Zm9ybURhdGEuaXNFbW9qaSgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gLi4uIG9yIGZvciBhbnkgYml0bWFwIGZvbnRzIGluIGdl
bmVyYWwKICAgICBpZiAoYWR2YW5jZUZvckNvbG9yQml0bWFwRm9udChwbGF0Zm9ybURhdGEsIGds
eXBoLCBhZHZhbmNlKSkgewogICAgICAgICBwb3B1bGF0ZWRBZHZhbmNlID0gdHJ1ZTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4IGMzYjRk
NzliYTQyYWYzZmZhMGJmOWFhOGRjMmI0NWI2ZDUxMGRjZjAuLmQxNzYwOTM1ZjMzN2I2OWUxZGJl
MzlhOWM1NTYwOWI5ZmY4YTc2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KQEAg
LTQxLDggKzQxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gVGhlc2UgQ29yZVRleHQgVGV4
dCBTcGFjaW5nIGZlYXR1cmUgc2VsZWN0b3JzIGFyZSBub3QgZGVmaW5lZCBpbiBDb3JlVGV4dC4K
IGVudW0gVGV4dFNwYWNpbmdDVEZlYXR1cmVTZWxlY3RvciB7IFRleHRTcGFjaW5nUHJvcG9ydGlv
bmFsLCBUZXh0U3BhY2luZ0Z1bGxXaWR0aCwgVGV4dFNwYWNpbmdIYWxmV2lkdGgsIFRleHRTcGFj
aW5nVGhpcmRXaWR0aCwgVGV4dFNwYWNpbmdRdWFydGVyV2lkdGggfTsKIAotRm9udFBsYXRmb3Jt
RGF0YTo6Rm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYgZm9udCwgZmxvYXQgc2l6ZSwgYm9vbCBz
eW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmll
bnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQpCi0gICAgOiBGb250UGxhdGZv
cm1EYXRhKGFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udChmb250LCBOVUxMKSkuZ2V0KCks
IHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3aWR0
aFZhcmlhbnQpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiBm
b250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1
ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFy
aWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCisgICAgOiBGb250UGxh
dGZvcm1EYXRhKGFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udChmb250LCBOVUxMKSkuZ2V0
KCksIHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3
aWR0aFZhcmlhbnQsIHRleHRSZW5kZXJpbmdNb2RlKQogewogICAgIEFTU0VSVF9BUkcoZm9udCwg
Zm9udCk7CiAgICAgbV9mb250ID0gZm9udDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCmluZGV4IDBhODM5NGFiYTJmMTE5MDA3
N2FlZjI4NDM4ODNmZDQ1ZWFkMDQ3MzguLmZlZWE4ZDM4MTVmNjQ3OTZkNmY3MGU4ZDdkZjkxZmQz
ODQ1MDZlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lv
cy9Gb250Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
aW9zL0ZvbnRDYWNoZUlPUy5tbQpAQCAtOTIsNyArOTIsNyBAQCBQYXNzUmVmUHRyPEZvbnQ+IEZv
bnRDYWNoZTo6Z2V0U3lzdGVtRm9udEZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBGb250RGVz
Y3JpcAogICAgIGlmICghc3Vic3RpdHV0ZUZvbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgc3Vic3RpdHV0ZUZvbnQgPSBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3Moc3Vic3RpdHV0
ZUZvbnQuZ2V0KCksIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICBzdWJzdGl0
dXRlRm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoc3Vic3RpdHV0ZUZvbnQuZ2V0KCksIGRlc2Ny
aXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygp
KTsKIAogICAgIENURm9udFN5bWJvbGljVHJhaXRzIG9yaWdpbmFsVHJhaXRzID0gQ1RGb250R2V0
U3ltYm9saWNUcmFpdHMoY3RGb250KTsKICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyBhY3R1YWxU
cmFpdHMgPSAwOwpAQCAtNzE4LDcgKzcxOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZv
cm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAg
ICAgaWYgKCFjdEZvbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgY3RGb250ID0g
YXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGN0Rm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLmZl
YXR1cmVTZXR0aW5ncygpKTsKKyAgICBjdEZvbnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KGN0Rm9u
dC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlw
dGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAKICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyBhY3R1
YWxUcmFpdHMgPSAwOwogICAgIGlmIChpc0ZvbnRXZWlnaHRCb2xkKGZvbnREZXNjcmlwdGlvbi53
ZWlnaHQoKSkgfHwgZm9udERlc2NyaXB0aW9uLml0YWxpYygpKQpAQCAtNzI5LDcgKzcyOSw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQ
bGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgYm9vbCBzeW50aGV0aWNCb2xkID0gKGZvbnRE
ZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzV2VpZ2h0KSAmJiAodHJh
aXRzICYga0NURm9udFRyYWl0Qm9sZCkgJiYgIShhY3R1YWxUcmFpdHMgJiBrQ1RGb250VHJhaXRC
b2xkKSAmJiAhaXNBcHBsZUNvbG9yRW1vamk7CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0g
KGZvbnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzU3R5bGUpICYm
ICh0cmFpdHMgJiBrQ1RGb250VHJhaXRJdGFsaWMpICYmICEoYWN0dWFsVHJhaXRzICYga0NURm9u
dFRyYWl0SXRhbGljKSAmJiAhaXNBcHBsZUNvbG9yRW1vamk7CiAKLSAgICBhdXRvIHJlc3VsdCA9
IHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4oY3RGb250LmdldCgpLCBzaXplLCBz
eW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3JpZW50YXRp
b24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpKTsKKyAgICBhdXRvIHJlc3VsdCA9
IHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4oY3RGb250LmdldCgpLCBzaXplLCBz
eW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3JpZW50YXRp
b24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpLCBmb250RGVzY3JpcHRpb24udGV4
dFJlbmRlcmluZ01vZGUoKSk7CiAgICAgaWYgKGlzQXBwbGVDb2xvckVtb2ppKQogICAgICAgICBy
ZXN1bHQtPnNldElzRW1vamkodHJ1ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCmluZGV4
IDE1OGZiYjBkYjVmMWJlMTg2NzRmMDA0NjQ1YWMzODc4MzIxOTdiYmEuLmU2NjI4YzBiYzgzOTZm
ZTllZGI2ZmZmNmYwMjNiZDUwYWNlNDI3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQpAQCAtMjY0LDcgKzI2NCw3IEBA
IHN0YXRpYyBPcHRpb25hbDxOU0ZvbnQqPiBmb250V2l0aEZhbWlseVNwZWNpYWxDYXNlKGNvbnN0
IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGCiAvLyBGYW1pbHkgbmFtZSBpcyBzb21ld2hhdCBvZiBh
IG1pc25vbWVyIGhlcmUuIFdlIGZpcnN0IGF0dGVtcHQgdG8gZmluZCBhbiBleGFjdCBtYXRjaAog
Ly8gY29tcGFyaW5nIHRoZSBkZXNpcmVkRmFtaWx5IHRvIHRoZSBQb3N0U2NyaXB0IG5hbWUgb2Yg
dGhlIGluc3RhbGxlZCBmb250cy4gSWYgdGhhdCBmYWlscwogLy8gd2UgdGhlbiBkbyBhIHNlYXJj
aCBiYXNlZCBvbiB0aGUgZmFtaWx5IG5hbWVzIG9mIHRoZSBpbnN0YWxsZWQgZm9udHMuCi1zdGF0
aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgTlNG
b250VHJhaXRNYXNrIGRlc2lyZWRUcmFpdHMsIEZvbnRXZWlnaHQgd2VpZ2h0LCBjb25zdCBGb250
RmVhdHVyZVNldHRpbmdzKiBmZWF0dXJlU2V0dGluZ3MsIGZsb2F0IHNpemUpCitzdGF0aWMgTlNG
b250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgTlNGb250VHJh
aXRNYXNrIGRlc2lyZWRUcmFpdHMsIEZvbnRXZWlnaHQgd2VpZ2h0LCBjb25zdCBGb250RmVhdHVy
ZVNldHRpbmdzKiBmZWF0dXJlU2V0dGluZ3MsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJp
bmdNb2RlLCBmbG9hdCBzaXplKQogewogICAgIGlmIChjb25zdCBhdXRvJiBzcGVjaWFsQ2FzZSA9
IGZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2UoZmFtaWx5LCB3ZWlnaHQsIGRlc2lyZWRUcmFpdHMs
IHNpemUpKQogICAgICAgICByZXR1cm4gc3BlY2lhbENhc2UudmFsdWUoKTsKQEAgLTI4Nyw3ICsy
ODcsNyBAQCBzdGF0aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcm
IGZhbWlseSwgTlNGb250VHJhaXRNYXNrIGRlc2lyZQogCiAgICAgTlNTdHJpbmcgKmRlc2lyZWRG
YW1pbHkgPSBmYW1pbHk7CiAgICAgUmV0YWluUHRyPENURm9udFJlZj4gZm91bmRGb250ID0gYWRv
cHRDRihDVEZvbnRDcmVhdGVGb3JDU1MoKENGU3RyaW5nUmVmKWRlc2lyZWRGYW1pbHksIHRvQ29y
ZVRleHRGb250V2VpZ2h0KHdlaWdodCksIHJlcXVlc3RlZFRyYWl0cywgc2l6ZSkpOwotICAgIGZv
dW5kRm9udCA9IGFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyhmb3VuZEZvbnQuZ2V0KCksIGZlYXR1
cmVTZXR0aW5ncyk7CisgICAgZm91bmRGb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChmb3VuZEZv
bnQuZ2V0KCksIHRleHRSZW5kZXJpbmdNb2RlLCBmZWF0dXJlU2V0dGluZ3MpOwogICAgIGlmICgh
Zm91bmRGb250KQogICAgICAgICByZXR1cm4gbmlsOwogICAgIGZvbnQgPSBDRkJyaWRnaW5nUmVs
ZWFzZShDRlJldGFpbihmb3VuZEZvbnQuZ2V0KCkpKTsKQEAgLTUyMCw3ICs1MjAsNyBAQCBSZWZQ
dHI8Rm9udD4gRm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBkZXNjcgogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3Jt
RGF0YSA9IG9yaWdpbmFsRm9udERhdGEtPnBsYXRmb3JtRGF0YSgpOwogICAgIE5TRm9udCAqbnNG
b250ID0gcGxhdGZvcm1EYXRhLm5zRm9udCgpOwogICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IHJl
c3VsdCA9IGxvb2t1cENURm9udChwbGF0Zm9ybURhdGEuZm9udCgpLCBwbGF0Zm9ybURhdGEuc2l6
ZSgpLCBkZXNjcmlwdGlvbi5sb2NhbGUoKSwgY2hhcmFjdGVycywgbGVuZ3RoKTsKLSAgICByZXN1
bHQgPSBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MocmVzdWx0LmdldCgpLCBkZXNjcmlwdGlvbi5m
ZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgcmVzdWx0ID0gcHJlcGFyZVBsYXRmb3JtRm9udChyZXN1
bHQuZ2V0KCksIGRlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGRlc2NyaXB0aW9uLmZl
YXR1cmVTZXR0aW5ncygpKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKQEAgLTY3OSw3ICs2NzksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0
YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZQogICAgIE5T
Rm9udFRyYWl0TWFzayB0cmFpdHMgPSBmb250RGVzY3JpcHRpb24uaXRhbGljKCkgPyBOU0ZvbnRJ
dGFsaWNUcmFpdCA6IDA7CiAgICAgZmxvYXQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRl
ZFBpeGVsU2l6ZSgpOwogCi0gICAgTlNGb250ICpuc0ZvbnQgPSBmb250V2l0aEZhbWlseShmYW1p
bHksIHRyYWl0cywgZm9udERlc2NyaXB0aW9uLndlaWdodCgpLCBmb250RGVzY3JpcHRpb24uZmVh
dHVyZVNldHRpbmdzKCksIHNpemUpOworICAgIE5TRm9udCAqbnNGb250ID0gZm9udFdpdGhGYW1p
bHkoZmFtaWx5LCB0cmFpdHMsIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0
aW9uLmZlYXR1cmVTZXR0aW5ncygpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUo
KSwgc2l6ZSk7CiAgICAgaWYgKCFuc0ZvbnQpIHsKICAgICAgICAgaWYgKCFzaG91bGRBdXRvQWN0
aXZhdGVGb250SWZOZWVkZWQoZmFtaWx5KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpA
QCAtNjg4LDcgKzY4OCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250
Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgICAgIC8vIEln
bm9yZSB0aGUgcmVzdWx0IGJlY2F1c2Ugd2Ugd2FudCB0byB1c2Ugb3VyIG93biBhbGdvcml0aG0g
dG8gYWN0dWFsbHkgZmluZCB0aGUgZm9udC4KICAgICAgICAgW05TRm9udCBmb250V2l0aE5hbWU6
ZmFtaWx5IHNpemU6c2l6ZV07CiAKLSAgICAgICAgbnNGb250ID0gZm9udFdpdGhGYW1pbHkoZmFt
aWx5LCB0cmFpdHMsIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9uLmZl
YXR1cmVTZXR0aW5ncygpLCBzaXplKTsKKyAgICAgICAgbnNGb250ID0gZm9udFdpdGhGYW1pbHko
ZmFtaWx5LCB0cmFpdHMsIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9u
LmZlYXR1cmVTZXR0aW5ncygpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwg
c2l6ZSk7CiAgICAgICAgIGlmICghbnNGb250KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQpAQCAtNzAzLDcgKzcwMyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1E
YXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAg
Ym9vbCBzeW50aGV0aWNCb2xkID0gKGZvbnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBG
b250U3ludGhlc2lzV2VpZ2h0KSAmJiBpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHRvQXBwS2l0Rm9u
dFdlaWdodChmb250RGVzY3JpcHRpb24ud2VpZ2h0KCkpKSAmJiAhaXNBcHBLaXRGb250V2VpZ2h0
Qm9sZChhY3R1YWxXZWlnaHQpOwogICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IChmb250RGVz
Y3JpcHRpb24uZm9udFN5bnRoZXNpcygpICYgRm9udFN5bnRoZXNpc1N0eWxlKSAmJiAodHJhaXRz
ICYgTlNGb250SXRhbGljVHJhaXQpICYmICEoYWN0dWFsVHJhaXRzICYgTlNGb250SXRhbGljVHJh
aXQpOwogCi0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4ocmVp
bnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KHBsYXRmb3JtRm9udCksIHNpemUsIHN5bnRoZXRpY0Jv
bGQsIHN5bnRoZXRpY09ibGlxdWUsIGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigpLCBmb250
RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCkpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PEZvbnRQbGF0Zm9ybURhdGE+KHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPihwbGF0Zm9ybUZv
bnQpLCBzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRp
b24ub3JpZW50YXRpb24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpLCBmb250RGVz
Y3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRleCBlZjEyMjdiYjFkMTk4MWEwYzc0
MGZlNzdhYWE0NmQ1YjdjMmM3ZDlhLi42ZTY4MTJhOThmYmI0M2IyNzM3OWU2NmU4MjZlNDdiYzU5
M2VmZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC00MSw3ICs0MSw3IEBA
IEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0
YShjb25zdCBGb250RGVzY3JpcHRpb24mCiAgICAgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlh
bnQgPSBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCk7CiAjaWYgQ09SRVRFWFRfV0VCX0ZP
TlRTCiAgICAgUmV0YWluUHRyPENURm9udFJlZj4gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRl
V2l0aEZvbnREZXNjcmlwdG9yKG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIp
KTsKLSAgICBmb250ID0gYXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGZvbnQuZ2V0KCksIGZvbnRE
ZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9y
bUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZv
bnREZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9y
bURhdGEoZm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbiwgd2lkdGhW
YXJpYW50KTsKICNlbHNlCiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9jZ0ZvbnQuZ2V0
KCksIHNpemUsIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCmluZGV4IDI2
MDZjMjZjNDU2NWZjMzM1M2M1ZDFiZTJhN2Q5MzZkNjVkOTU1OTguLjA3ZDVkZWFjMWZhYmQ3M2Qx
N2RmMjQwNTNlZWI2NjBhYjRiZWQ1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCkBAIC00OSw2ICs0OSw3IEBAIHR5cGVkZWYgY29uc3Qg
VW5pQ2hhciogKCpDVFVuaUNoYXJQcm92aWRlckNhbGxiYWNrKShDRkluZGV4IHN0cmluZ0luZGV4
LCBDRkluZGV4CiB0eXBlZGVmIHZvaWQgKCpDVFVuaUNoYXJEaXNwb3NlQ2FsbGJhY2spKGNvbnN0
IFVuaUNoYXIqIGNoYXJzLCB2b2lkKiByZWZDb24pOwogCiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdS
ZWYga0NURm9udFJlZmVyZW5jZVVSTEF0dHJpYnV0ZTsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1Jl
ZiBrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGU7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICNp
ZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5tbQppbmRleCA1NTc4MmQxNDkzZTA5NjU3ZTIyMDJhNDExN2YxZDg0ZTM1MjIy
NmM3Li5iNzNjNWE4OTUyMTZlY2VlMzZkMGQwMTNjNThiOGIzMWY1ZjE1NDBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMjYxLDcgKzEyNjEsNyBA
QCB2b2lkIFJlbmRlclRoZW1lSU9TOjp1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24o
Q1NTVmFsdWVJRCB2YWx1ZUlELCBGb250RAogCiAgICAgQVNTRVJUKGZvbnREZXNjcmlwdG9yKTsK
ICAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRo
Rm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IuZ2V0KCksIDAsIG51bGxwdHIpKTsKLSAgICBm
b250ID0gYXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlv
bi5mZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9u
dC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlw
dGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldElzQWJzb2x1
dGVTaXplKHRydWUpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkodGV4dFN0eWxl
KTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0U3BlY2lmaWVkU2l6ZShDVEZvbnRHZXRTaXplKGZv
bnQuZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAyMDFjYTdjODY1MGE2Yjc2NWJmMWFjOGE1NTU2ZjkwZmU5NGE5
ZWVjLi41ZmNmZmM2NGUxYzUxOWY1MWZiY2Q3Y2ZiZTU1ODhjODBlYjBjYTE2IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMTYgQEAKIDIwMTUtMDgtMTcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KIAorICAgICAgICBbQ29jb2FdIEhvbm9yIHRoZSAndHJhaycgdGFibGUgYnkgb3B0
aW5nIGluIHZpYSB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgxMTkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyMjkxNTYxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgICogZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5LWV4cGVj
dGVkLmh0bWw6IEFkZGVkCisgICAgICAgICogZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmls
aXR5Lmh0bWw6IEFkZGVkCisKKzIwMTUtMDgtMTcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KKwogICAgICAgICBbV2luXSBUZXN0IGdhcmRlbmluZwogCiAgICAgICAg
IFVucmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdHJhay1vcHRp
bWl6ZUxlZ2liaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RyYWst
b3B0aW1pemVMZWdpYmlsaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRl
eCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmYwNzlmMDkyYjhk
MTExMGQ4ODllZGE5OGZiMGQ1NWE1NjRhNjhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVz
dHMvZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5LWV4cGVjdGVkLnR4dApAQCAtMCww
ICsxLDEyIEBACitQQVNTIGZpcnN0LmdldENsaWVudFJlY3RzKCkubGVuZ3RoIGlzIDEKK1BBU1Mg
dGhpcmQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggaXMgMQorRkFJTCBmaXJzdC5nZXRDbGllbnRS
ZWN0cygpWzBdLnJpZ2h0IHNob3VsZCBiZSB3aXRoaW4gNCBvZiAzNDYuIFdhcyAzNjQuCitQQVNT
IHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgdGVzdCBt
YWtlcyBzdXJlIHRoYXQgeW91IGNhbiBvcHQtaW4gdG8gaG9ub3JpbmcgdGhlICd0cmFrJyB0YWJs
ZSBieSBzcGVjaWZ5aW5nIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkuIFRoZSBm
aXJzdCBhbmQgdGhpcmQgbGluZXMgYmVsb3cgc2hvdWxkIGhhdmUgdGhlIHNhbWUgd2lkdGguIFRo
ZSBtaWRkbGUgb25lIGNhbiAoYnV0IGRvZXNuJ3QgaGF2ZSB0bykgaGF2ZSBhIGRpZmZlcmVudCB3
aWR0aC4KK2hhbWJ1cmdlZm9uc3RpdgorCitoYW1idXJnZWZvbnN0aXYKKworaGFtYnVyZ2Vmb25z
dGl2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2li
aWxpdHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90cmFrLW9wdGltaXplTGVnaWJpbGl0
eS5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAuLjg4NDk0YjE2MGYzNWFhMzUwNjg1NzgxMDAwNDAxMjFkZDI2YzQz
ZTkKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdHJhay1vcHRpbWl6
ZUxlZ2liaWxpdHkuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1s
PgorPGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48
L3NjcmlwdD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB5b3Ug
Y2FuIG9wdC1pbiB0byBob25vcmluZyB0aGUgJ3RyYWsnIHRhYmxlIGJ5IHNwZWNpZnlpbmcgdGV4
dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eS4KK1RoZSBmaXJzdCBhbmQgdGhpcmQgbGlu
ZXMgYmVsb3cgc2hvdWxkIGhhdmUgdGhlIHNhbWUgd2lkdGguIFRoZSBtaWRkbGUgb25lIGNhbiAo
YnV0IGRvZXNuJ3QgaGF2ZSB0bykgaGF2ZSBhIGRpZmZlcmVudCB3aWR0aC4KKzxwPjxzcGFuIGlk
PSJmaXJzdCIgc3R5bGU9ImZvbnQ6IDUwcHggJy1hcHBsZS1zeXN0ZW0nOyBmb250LXdlaWdodDog
MzAwOyI+aGFtYnVyZ2Vmb25zdGl2PC9zcGFuPjwvcD4KKzxwPjxzcGFuIGlkPSJzZWNvbmQiIHN0
eWxlPSJmb250OiA1MHB4ICcuU0ZOU1RleHQtTGlnaHQnICcuU0ZVSURpc3BsYXktTGlnaHQnOyI+
aGFtYnVyZ2Vmb25zdGl2PC9zcGFuPjwvcD4KKzxwPjxzcGFuIGlkPSJ0aGlyZCIgc3R5bGU9ImZv
bnQ6IDUwcHggJy5TRk5TVGV4dC1MaWdodCcgJy5TRlVJRGlzcGxheS1MaWdodCc7IHRleHQtcmVu
ZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7Ij5oYW1idXJnZWZvbnN0aXY8L3NwYW4+PC9wPgor
PHNjcmlwdD4KK3ZhciBmaXJzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaXJzdCIpOwor
dmFyIHRoaXJkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRoaXJkIik7CitzaG91bGRCZSgi
Zmlyc3QuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgiLCAiMSIpOworc2hvdWxkQmUoInRoaXJkLmdl
dENsaWVudFJlY3RzKCkubGVuZ3RoIiwgIjEiKTsKK3Nob3VsZEJlQ2xvc2VUbygiZmlyc3QuZ2V0
Q2xpZW50UmVjdHMoKVswXS5yaWdodCIsIHRoaXJkLmdldENsaWVudFJlY3RzKClbMF0ucmlnaHQs
IDQpOworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9z
dC5qcyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259241</attachid>
            <date>2015-08-17 21:40:52 -0700</date>
            <delta_ts>2015-08-17 21:44:56 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148119-20150817214050.patch</filename>
            <type>text/plain</type>
            <size>29455</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Q2MTUxNTY5NTYyMmM0
ZGJiZjQyNGVlZWIwZDAxMzA3NjU1ZTBmNC4uZDFiNzQwMTgyNGFhMDY3NzBhYWFjYTk5NTBlODcx
NGQ2YThiNzI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTA4LTE3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBI
b25vciB0aGUgJ3RyYWsnIHRhYmxlIGJ5IG9wdGluZyBpbiB2aWEgdGV4dC1yZW5kZXJpbmc6IG9w
dGltaXplTGVnaWJpbGl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MTE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjI5MTU2MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZSBhdXRo
b3IgaGFzIG9wdGVkIGluIGJ5IHNwZWNpZnlpbmcgInRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxl
Z2liaWxpdHk7Iiwgd2Ugc2hvdWxkCisgICAgICAgIGhvbm9yIHRoZSBmb250J3MgJ3RyYWsnIHRh
YmxlLiBXZSBkbyB0aGlzIGJ5IHNwZWNpZnlpbmcga0NURm9udE9wdGljYWxTaXplQXR0cmlidXRl
IGF0IGZvbnQKKyAgICAgICAgY3JlYXRpb24gdGltZSwgYW5kIGJ5IHVzaW5nIENURm9udEdldEFk
dmFuY2VzRm9yR2x5cGhzKCkgaW5zdGVhZCBvZgorICAgICAgICBDR0ZvbnRHZXRHbHlwaEFkdmFu
Y2VzRm9yU3R5bGUoKS4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxl
Z2liaWxpdHkuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb25LZXk6Om1ha2VGbGFnS2V5KTogTWFr
ZSBvdXIgY2FjaGVzIHNlbnNpdGl2ZSB0byBUZXh0UmVuZGVyaW5nTW9kZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBBZGQgYSBUZXh0UmVuZGVyaW5n
TW9kZSBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpvcGVyYXRvcj0pOiBVcGRhdGUgdG8gY29uc3VsdCB3aXRoIHRoZSBuZXcgbWVtYmVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnRleHRSZW5kZXJpbmdNb2RlKTogR2V0dGVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXBhcmVQbGF0Zm9ybUZvbnQpOiBTcGVjaWZ5IGtDVEZvbnRPcHRp
Y2FsU2l6ZUF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5Rm9udEZlYXR1cmVTZXR0
aW5ncyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRlcik6
IFVzZSBDVEZvbnRHZXRBZHZhbmNlc0ZvckdseXBocygpIGlmIHdlIGFyZQorICAgICAgICBvcHRp
bWl6ZUxlZ2liaWxpdHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBs
YXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YSk6IFBhc3MgdGhlIFRleHRSZW5kZXJpbmdNb2RlIGFyb3VuZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhY2hlOjpnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFyYWN0ZXJzKTog
VXBkYXRlIHRvIGNhbGwgcmVuYW1lZCBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpmb250V2l0
aEZhbWlseSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzeXN0ZW1GYWxs
YmFja0ZvckNoYXJhY3RlcnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6
Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBEaXR0by4KKyAgICAgICAg
KiBwbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6dXBk
YXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKTogRGl0dG8uCisKIDIwMTUtMDgtMTcgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbV2lu
IENNYWtlXSBBbGxvdyBXZWJLaXRMaWJyYXJpZXMgZGlyZWN0b3J5IHRvIGJlIHNldCBmcm9tIHRo
ZSBjb21tYW5kIGxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmgKaW5kZXggYmQ4ZmExNzhjNGZjNDg4NjBkMzAyOWFjNjQyZmI4YjgzYmFmNjliNi4uOGM4
ZjI2NDRiYWY2ZDZiNzIyMWUyYTlkYTA1OTA2ZDE2OGVlNmUyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTEwNSw3ICsxMDUsOCBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyB1bnNpZ25lZCBtYWtlRmxhZ0tleShjb25zdCBGb250RGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uKQogICAgIHsKICAgICAgICAgc3RhdGljX2Fzc2VydChVU0NSSVBUX0NP
REVfTElNSVQgPCAweDEwMDAsICJTY3JpcHQgY29kZSBtdXN0IGZpdCBpbiBhbiB1bnNpZ25lZCBh
bG9uZyB3aXRoIHRoZSBvdGhlciBmbGFncyIpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNjcmlwdCgpKSA8PCA5CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24uc2NyaXB0KCkpIDw8IDExCisgICAgICAgICAg
ICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgp
KSA8PCA5CiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5z
bWFsbENhcHMoKSkgPDwgOAogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVz
Y3JpcHRpb24uZm9udFN5bnRoZXNpcygpKSA8PCA2CiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihkZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSkgPDwgNApAQCAtMjE1LDcgKzIx
Niw3IEBAIHByaXZhdGU6CiB9OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi1SZXRhaW5QdHI8Q1RG
b250UmVmPiBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MoQ1RGb250UmVmLCBjb25zdCBGb250RmVh
dHVyZVNldHRpbmdzKik7CitSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250
KENURm9udFJlZiwgVGV4dFJlbmRlcmluZ01vZGUsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3Mq
KTsKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggMzE2NjRmNGY0
MzVkNzUyYTgxNDM1NDBjYjRkYmE1YWNlMTAzMjMyOC4uYjgwODg3NWQ1NDQzOTM0MGY3YzE0MjYz
MjhlOGVjZGU2M2FmZjNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTQzLDI1ICs0MywyNiBAQCBGb250UGxh
dGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKCkKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJp
YW50IHdpZHRoVmFyaWFudCkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxv
YXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRP
cmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQsIFRl
eHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlKQogICAgIDogbV9zeW50aGV0aWNCb2xk
KHN5bnRoZXRpY0JvbGQpCiAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1
ZSkKICAgICAsIG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAgICAgLCBtX3NpemUoc2l6ZSkK
ICAgICAsIG1fd2lkdGhWYXJpYW50KHdpZHRoVmFyaWFudCkKKyAgICAsIG1fdGV4dFJlbmRlcmlu
Z01vZGUodGV4dFJlbmRlcmluZ01vZGUpCiB7CiB9CiAKICNpZiBVU0UoQ0cpCi1Gb250UGxhdGZv
cm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIGZsb2F0IHNpemUsIGJv
b2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24g
b3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KQotICAgIDogRm9udFBs
YXRmb3JtRGF0YShzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBvcmllbnRh
dGlvbiwgd2lkdGhWYXJpYW50KQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShD
R0ZvbnRSZWYgY2dGb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJp
YW50IHdpZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCisg
ICAgOiBGb250UGxhdGZvcm1EYXRhKHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlx
dWUsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIHRleHRSZW5kZXJpbmdNb2RlKQogewogICAg
IG1fY2dGb250ID0gY2dGb250OwogfQogI2VuZGlmCiAKIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQ
bGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgc291cmNlKQotICAgIDogRm9udFBs
YXRmb3JtRGF0YShzb3VyY2UubV9zaXplLCBzb3VyY2UubV9zeW50aGV0aWNCb2xkLCBzb3VyY2Uu
bV9zeW50aGV0aWNPYmxpcXVlLCBzb3VyY2UubV9vcmllbnRhdGlvbiwgc291cmNlLm1fd2lkdGhW
YXJpYW50KQorICAgIDogRm9udFBsYXRmb3JtRGF0YShzb3VyY2UubV9zaXplLCBzb3VyY2UubV9z
eW50aGV0aWNCb2xkLCBzb3VyY2UubV9zeW50aGV0aWNPYmxpcXVlLCBzb3VyY2UubV9vcmllbnRh
dGlvbiwgc291cmNlLm1fd2lkdGhWYXJpYW50LCBzb3VyY2UubV90ZXh0UmVuZGVyaW5nTW9kZSkK
IHsKICAgICBtX2lzSGFzaFRhYmxlRGVsZXRlZFZhbHVlID0gc291cmNlLm1faXNIYXNoVGFibGVE
ZWxldGVkVmFsdWU7CiAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IHNvdXJjZS5tX2lzQ29sb3JC
aXRtYXBGb250OwpAQCAtODMsNiArODQsNyBAQCBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBGb250
UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZQogICAg
IG1fd2lkdGhWYXJpYW50ID0gb3RoZXIubV93aWR0aFZhcmlhbnQ7CiAgICAgbV9pc0NvbG9yQml0
bWFwRm9udCA9IG90aGVyLm1faXNDb2xvckJpdG1hcEZvbnQ7CiAgICAgbV9pc0NvbXBvc2l0ZUZv
bnRSZWZlcmVuY2UgPSBvdGhlci5tX2lzQ29tcG9zaXRlRm9udFJlZmVyZW5jZTsKKyAgICBtX3Rl
eHRSZW5kZXJpbmdNb2RlID0gb3RoZXIubV90ZXh0UmVuZGVyaW5nTW9kZTsKIAogICAgIHJldHVy
biBwbGF0Zm9ybURhdGFBc3NpZ24ob3RoZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCmluZGV4IDUxZjBmMDgzNTk4Yzhh
Y2VlYmZlMmNjMDUzMTczYWJhOWJmNmZhODMuLmNiZDFiYjQ4OWJjNDE3ZTNkMTI2OTQyZTkyYjE4
YjdmODk1NjAwYjcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTgxLDE0ICs4MSwxNCBAQCBwdWJsaWM6CiAgICAgRm9u
dFBsYXRmb3JtRGF0YSgpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3Jt
RGF0YSYpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29u
c3QgQXRvbWljU3RyaW5nJiBmYW1pbHkpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6
ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRh
dGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBSZWd1bGFyV2lkdGgpOworICAg
IEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5
bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZh
cmlhbnQgPSBSZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2RlID0gQXV0b1RleHRSZW5kZXJp
bmcpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV0VCQ09SRV9FWFBPUlQgRm9udFBsYXRm
b3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNl
LCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9uID0gSG9yaXpv
bnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgRm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGlj
Qm9sZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0
aW9uID0gSG9yaXpvbnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCwgVGV4dFJl
bmRlcmluZ01vZGUgPSBBdXRvVGV4dFJlbmRlcmluZyk7CiAjZW5kaWYKIAogI2lmIFVTRShDRykK
LSAgICBGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0
aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiwgRm9udFdpZHRo
VmFyaWFudCk7CisgICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYsIGZsb2F0IHNpemUsIGJv
b2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24s
IEZvbnRXaWR0aFZhcmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oV0lOKQpAQCAtMTM3LDYgKzEzNyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ29tcG9z
aXRlRm9udFJlZmVyZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb21wb3NpdGVGb250UmVmZXJl
bmNlOyB9CiAgICAgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9vcmllbnRhdGlvbjsgfQogICAgIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KCkgY29u
c3QgeyByZXR1cm4gbV93aWR0aFZhcmlhbnQ7IH0KKyAgICBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0
UmVuZGVyaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFJlbmRlcmluZ01vZGU7IH0KICAg
ICBib29sIGlzRm9yVGV4dENvbWJpbmUoKSBjb25zdCB7IHJldHVybiB3aWR0aFZhcmlhbnQoKSAh
PSBSZWd1bGFyV2lkdGg7IH0gLy8gS2VlcCBpbiBzeW5jIHdpdGggY2FsbGVycyBvZiBGb250RGVz
Y3JpcHRpb246OnNldFdpZHRoVmFyaWFudCgpLgogCiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbihG
b250T3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9u
OyB9CkBAIC0yMTgsNiArMjE5LDcgQEAgcHVibGljOgogICAgIEZvbnRPcmllbnRhdGlvbiBtX29y
aWVudGF0aW9uIHsgSG9yaXpvbnRhbCB9OwogICAgIGZsb2F0IG1fc2l6ZSB7IDAgfTsKICAgICBG
b250V2lkdGhWYXJpYW50IG1fd2lkdGhWYXJpYW50IHsgUmVndWxhcldpZHRoIH07CisgICAgVGV4
dFJlbmRlcmluZ01vZGUgbV90ZXh0UmVuZGVyaW5nTW9kZSB7IEF1dG9UZXh0UmVuZGVyaW5nIH07
CiAKIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAK
aW5kZXggYjQyNGE5ODRkMjA0NmY5YTJkMDAwN2VjYTZiNWZhNWNmMDgwMmJjMC4uOGRjNWRjOGU0
ZTJhZjVkNjNlZjk3NWM4MTE3MTI2ODc4MmY2MzI0YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNw
cApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUgIkZvbnRD
YWNoZS5oIgogCisjaW5jbHVkZSAiQ29yZVRleHRTUEkuaCIKICNpbmNsdWRlIDxDb3JlVGV4dC9T
Rk5UTGF5b3V0VHlwZXMuaD4KIAogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5oPgpAQCAt
MTM3LDE4ICsxMzgsMzUgQEAgc3RhdGljIGlubGluZSB2b2lkIGFwcGVuZE9wZW5UeXBlRmVhdHVy
ZShDRk11dGFibGVBcnJheVJlZiBmZWF0dXJlcywgY29uc3QgRm9udEYKICNlbmRpZgogfQogCi1S
ZXRhaW5QdHI8Q1RGb250UmVmPiBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MoQ1RGb250UmVmIG9y
aWdpbmFsRm9udCwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZXMpCitSZXRhaW5Q
dHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5hbEZvbnQs
IFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlLCBjb25zdCBGb250RmVhdHVyZVNl
dHRpbmdzKiBmZWF0dXJlcykKIHsKLSAgICBpZiAoIW9yaWdpbmFsRm9udCB8fCAhZmVhdHVyZXMg
fHwgIWZlYXR1cmVzLT5zaXplKCkpCisgICAgaWYgKCFvcmlnaW5hbEZvbnQgfHwgKCghZmVhdHVy
ZXMgfHwgIWZlYXR1cmVzLT5zaXplKCkpICYmICh0ZXh0UmVuZGVyaW5nTW9kZSAhPSBPcHRpbWl6
ZUxlZ2liaWxpdHkpKSkKICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRm9udDsKIAotICAgIFJldGFp
blB0cjxDRk11dGFibGVBcnJheVJlZj4gZmVhdHVyZUFycmF5ID0gYWRvcHRDRihDRkFycmF5Q3Jl
YXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmZWF0dXJlcy0+c2l6ZSgpLCAma0NGVHlw
ZUFycmF5Q2FsbEJhY2tzKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmZWF0dXJlcy0+
c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgYXBwZW5kVHJ1ZVR5cGVGZWF0dXJlKGZlYXR1cmVBcnJh
eS5nZXQoKSwgZmVhdHVyZXMtPmF0KGkpKTsKLSAgICAgICAgYXBwZW5kT3BlblR5cGVGZWF0dXJl
KGZlYXR1cmVBcnJheS5nZXQoKSwgZmVhdHVyZXMtPmF0KGkpKTsKKyAgICBSZXRhaW5QdHI8Q0ZN
dXRhYmxlQXJyYXlSZWY+IGZlYXR1cmVBcnJheTsKKyAgICBpZiAoZmVhdHVyZXMgJiYgZmVhdHVy
ZXMtPnNpemUoKSkgeworICAgICAgICBmZWF0dXJlQXJyYXkgPSBhZG9wdENGKENGQXJyYXlDcmVh
dGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGZlYXR1cmVzLT5zaXplKCksICZrQ0ZUeXBl
QXJyYXlDYWxsQmFja3MpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmZWF0dXJl
cy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGFwcGVuZFRydWVUeXBlRmVhdHVyZShmZWF0
dXJlQXJyYXkuZ2V0KCksIGZlYXR1cmVzLT5hdChpKSk7CisgICAgICAgICAgICBhcHBlbmRPcGVu
VHlwZUZlYXR1cmUoZmVhdHVyZUFycmF5LmdldCgpLCBmZWF0dXJlcy0+YXQoaSkpOworICAgICAg
ICB9CisgICAgfQorICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnk7Cisg
ICAgaWYgKHRleHRSZW5kZXJpbmdNb2RlID09IE9wdGltaXplTGVnaWJpbGl0eSAmJiBmZWF0dXJl
QXJyYXkgJiYgQ0ZBcnJheUdldENvdW50KGZlYXR1cmVBcnJheS5nZXQoKSkpIHsKKyAgICAgICAg
Q0dGbG9hdCBzaXplID0gQ1RGb250R2V0U2l6ZShvcmlnaW5hbEZvbnQpOworICAgICAgICBSZXRh
aW5QdHI8Q0ZOdW1iZXJSZWY+IHNpemVOdW1iZXIgPSBhZG9wdENGKENGTnVtYmVyQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckNHRmxvYXRUeXBlLCAmc2l6ZSkpOworICAgICAg
ICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RmVhdHVyZVNldHRpbmdzQXR0cmlidXRlLCBr
Q1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGUgfTsKKyAgICAgICAgQ0ZUeXBlUmVmIHZhbHVlc1td
ID0geyBmZWF0dXJlQXJyYXkuZ2V0KCksIHNpemVOdW1iZXIuZ2V0KCkgfTsKKyAgICAgICAgZGlj
dGlvbmFyeSA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQs
IGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpLCAma0NGVHlwZURpY3Rpb25h
cnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAg
fSBlbHNlIGlmIChmZWF0dXJlQXJyYXkgJiYgQ0ZBcnJheUdldENvdW50KGZlYXR1cmVBcnJheS5n
ZXQoKSkpIHsKKyAgICAgICAgQ0ZBcnJheVJlZiBmZWF0dXJlQXJyYXlQdHIgPSBmZWF0dXJlQXJy
YXkuZ2V0KCk7CisgICAgICAgIGRpY3Rpb25hcnkgPSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0
ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3Qgdm9pZCoqKSZrQ1RGb250RmVhdHVyZVNldHRp
bmdzQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZmZWF0dXJlQXJyYXlQdHIsIDEsICZrQ0ZUeXBl
RGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3Mp
KTsKKyAgICB9IGVsc2UgeworICAgICAgICBDR0Zsb2F0IHNpemUgPSBDVEZvbnRHZXRTaXplKG9y
aWdpbmFsRm9udCk7CisgICAgICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gc2l6ZU51bWJlciA9
IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyQ0dG
bG9hdFR5cGUsICZzaXplKSk7CisgICAgICAgIENGTnVtYmVyUmVmIHNpemVOdW1iZXJQdHIgPSBz
aXplTnVtYmVyLmdldCgpOworICAgICAgICBkaWN0aW9uYXJ5ID0gYWRvcHRDRihDRkRpY3Rpb25h
cnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IHZvaWQqKikma0NURm9udE9wdGlj
YWxTaXplQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZzaXplTnVtYmVyUHRyLCAxLCAma0NGVHlw
ZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tz
KSk7CiAgICAgfQotICAgIENGQXJyYXlSZWYgZmVhdHVyZUFycmF5UHRyID0gZmVhdHVyZUFycmF5
LmdldCgpOwotICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnkgPSBhZG9w
dENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3Qgdm9pZCoq
KSZrQ1RGb250RmVhdHVyZVNldHRpbmdzQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZmZWF0dXJl
QXJyYXlQdHIsIDEsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0
aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3JpcHRvclJl
Zj4gZGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZVdpdGhBdHRyaWJ1
dGVzKGRpY3Rpb25hcnkuZ2V0KCkpKTsKICAgICByZXR1cm4gYWRvcHRDRihDVEZvbnRDcmVhdGVD
b3B5V2l0aEF0dHJpYnV0ZXMob3JpZ2luYWxGb250LCBDVEZvbnRHZXRTaXplKG9yaWdpbmFsRm9u
dCksIG51bGxwdHIsIGRlc2NyaXB0b3IuZ2V0KCkpKTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQppbmRleCA0YTNhNWVmOGMw
NWFlMGExNmM0ZGJkZmExMTQ1MTkxMTQ5OTBkMzlkLi4yY2ZlYTU3Y2Q2MGYwMGVhOTA1NGQxMmRj
YjI0MjFjYzcyZmE5M2ZhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENvY29hLm1tCkBAIC00NTcsMTMgKzQ1Nyw5IEBAIHN0YXRpYyBpbmxp
bmUgYm9vbCBhZHZhbmNlRm9yQ29sb3JCaXRtYXBGb250KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEm
IHBsYXRmb3JtRGF0CiBzdGF0aWMgaW5saW5lIGJvb2wgY2FuVXNlRmFzdEdseXBoQWR2YW5jZUdl
dHRlcihjb25zdCBGb250JiBmb250LCBHbHlwaCBnbHlwaCwgQ0dTaXplJiBhZHZhbmNlLCBib29s
JiBwb3B1bGF0ZWRBZHZhbmNlKQogewogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRm
b3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7Ci0gICAgLy8gRmFzdCBnZXR0ZXIgZG9lc24n
dCB0YWtlIGN1c3RvbSB0cmFja2luZyBpbnRvIGFjY291bnQKLSAgICBpZiAoZm9udC5oYXNDdXN0
b21UcmFja2luZygpKQorICAgIC8vIEZhc3QgZ2V0dGVyIGRvZXNuJ3QgZG9lc24ndCB3b3JrIGZv
ciBlbW9qaSwgYml0bWFwIGZvbnRzLCBvciB0YWtlIGN1c3RvbSB0cmFja2luZyBpbnRvIGFjY291
bnQKKyAgICBpZiAoZm9udC5oYXNDdXN0b21UcmFja2luZygpIHx8IHBsYXRmb3JtRGF0YS5pc0Vt
b2ppKCkgfHwgcGxhdGZvcm1EYXRhLnRleHRSZW5kZXJpbmdNb2RlKCkgPT0gT3B0aW1pemVMZWdp
YmlsaXR5KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gRmFzdCBnZXR0ZXIgZG9lc24n
dCB3b3JrIGZvciBlbW9qaQotICAgIGlmIChwbGF0Zm9ybURhdGEuaXNFbW9qaSgpKQotICAgICAg
ICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gLi4uIG9yIGZvciBhbnkgYml0bWFwIGZvbnRzIGluIGdl
bmVyYWwKICAgICBpZiAoYWR2YW5jZUZvckNvbG9yQml0bWFwRm9udChwbGF0Zm9ybURhdGEsIGds
eXBoLCBhZHZhbmNlKSkgewogICAgICAgICBwb3B1bGF0ZWRBZHZhbmNlID0gdHJ1ZTsKICAgICAg
ICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4IGMzYjRk
NzliYTQyYWYzZmZhMGJmOWFhOGRjMmI0NWI2ZDUxMGRjZjAuLmQxNzYwOTM1ZjMzN2I2OWUxZGJl
MzlhOWM1NTYwOWI5ZmY4YTc2ODYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KQEAg
LTQxLDggKzQxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gVGhlc2UgQ29yZVRleHQgVGV4
dCBTcGFjaW5nIGZlYXR1cmUgc2VsZWN0b3JzIGFyZSBub3QgZGVmaW5lZCBpbiBDb3JlVGV4dC4K
IGVudW0gVGV4dFNwYWNpbmdDVEZlYXR1cmVTZWxlY3RvciB7IFRleHRTcGFjaW5nUHJvcG9ydGlv
bmFsLCBUZXh0U3BhY2luZ0Z1bGxXaWR0aCwgVGV4dFNwYWNpbmdIYWxmV2lkdGgsIFRleHRTcGFj
aW5nVGhpcmRXaWR0aCwgVGV4dFNwYWNpbmdRdWFydGVyV2lkdGggfTsKIAotRm9udFBsYXRmb3Jt
RGF0YTo6Rm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYgZm9udCwgZmxvYXQgc2l6ZSwgYm9vbCBz
eW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmll
bnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQpCi0gICAgOiBGb250UGxhdGZv
cm1EYXRhKGFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udChmb250LCBOVUxMKSkuZ2V0KCks
IHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3aWR0
aFZhcmlhbnQpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiBm
b250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1
ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFy
aWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCisgICAgOiBGb250UGxh
dGZvcm1EYXRhKGFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udChmb250LCBOVUxMKSkuZ2V0
KCksIHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3
aWR0aFZhcmlhbnQsIHRleHRSZW5kZXJpbmdNb2RlKQogewogICAgIEFTU0VSVF9BUkcoZm9udCwg
Zm9udCk7CiAgICAgbV9mb250ID0gZm9udDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCmluZGV4IDBhODM5NGFiYTJmMTE5MDA3
N2FlZjI4NDM4ODNmZDQ1ZWFkMDQ3MzguLmZlZWE4ZDM4MTVmNjQ3OTZkNmY3MGU4ZDdkZjkxZmQz
ODQ1MDZlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lv
cy9Gb250Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
aW9zL0ZvbnRDYWNoZUlPUy5tbQpAQCAtOTIsNyArOTIsNyBAQCBQYXNzUmVmUHRyPEZvbnQ+IEZv
bnRDYWNoZTo6Z2V0U3lzdGVtRm9udEZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBGb250RGVz
Y3JpcAogICAgIGlmICghc3Vic3RpdHV0ZUZvbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwog
Ci0gICAgc3Vic3RpdHV0ZUZvbnQgPSBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3Moc3Vic3RpdHV0
ZUZvbnQuZ2V0KCksIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICBzdWJzdGl0
dXRlRm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoc3Vic3RpdHV0ZUZvbnQuZ2V0KCksIGRlc2Ny
aXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygp
KTsKIAogICAgIENURm9udFN5bWJvbGljVHJhaXRzIG9yaWdpbmFsVHJhaXRzID0gQ1RGb250R2V0
U3ltYm9saWNUcmFpdHMoY3RGb250KTsKICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyBhY3R1YWxU
cmFpdHMgPSAwOwpAQCAtNzE4LDcgKzcxOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZv
cm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAg
ICAgaWYgKCFjdEZvbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgY3RGb250ID0g
YXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGN0Rm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLmZl
YXR1cmVTZXR0aW5ncygpKTsKKyAgICBjdEZvbnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KGN0Rm9u
dC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlw
dGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAKICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyBhY3R1
YWxUcmFpdHMgPSAwOwogICAgIGlmIChpc0ZvbnRXZWlnaHRCb2xkKGZvbnREZXNjcmlwdGlvbi53
ZWlnaHQoKSkgfHwgZm9udERlc2NyaXB0aW9uLml0YWxpYygpKQpAQCAtNzI5LDcgKzcyOSw3IEBA
IHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQ
bGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgYm9vbCBzeW50aGV0aWNCb2xkID0gKGZvbnRE
ZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzV2VpZ2h0KSAmJiAodHJh
aXRzICYga0NURm9udFRyYWl0Qm9sZCkgJiYgIShhY3R1YWxUcmFpdHMgJiBrQ1RGb250VHJhaXRC
b2xkKSAmJiAhaXNBcHBsZUNvbG9yRW1vamk7CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0g
KGZvbnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzU3R5bGUpICYm
ICh0cmFpdHMgJiBrQ1RGb250VHJhaXRJdGFsaWMpICYmICEoYWN0dWFsVHJhaXRzICYga0NURm9u
dFRyYWl0SXRhbGljKSAmJiAhaXNBcHBsZUNvbG9yRW1vamk7CiAKLSAgICBhdXRvIHJlc3VsdCA9
IHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4oY3RGb250LmdldCgpLCBzaXplLCBz
eW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3JpZW50YXRp
b24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpKTsKKyAgICBhdXRvIHJlc3VsdCA9
IHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4oY3RGb250LmdldCgpLCBzaXplLCBz
eW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3JpZW50YXRp
b24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpLCBmb250RGVzY3JpcHRpb24udGV4
dFJlbmRlcmluZ01vZGUoKSk7CiAgICAgaWYgKGlzQXBwbGVDb2xvckVtb2ppKQogICAgICAgICBy
ZXN1bHQtPnNldElzRW1vamkodHJ1ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0gYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCmluZGV4
IDE1OGZiYjBkYjVmMWJlMTg2NzRmMDA0NjQ1YWMzODc4MzIxOTdiYmEuLmU2NjI4YzBiYzgzOTZm
ZTllZGI2ZmZmNmYwMjNiZDUwYWNlNDI3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQpAQCAtMjY0LDcgKzI2NCw3IEBA
IHN0YXRpYyBPcHRpb25hbDxOU0ZvbnQqPiBmb250V2l0aEZhbWlseVNwZWNpYWxDYXNlKGNvbnN0
IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGCiAvLyBGYW1pbHkgbmFtZSBpcyBzb21ld2hhdCBvZiBh
IG1pc25vbWVyIGhlcmUuIFdlIGZpcnN0IGF0dGVtcHQgdG8gZmluZCBhbiBleGFjdCBtYXRjaAog
Ly8gY29tcGFyaW5nIHRoZSBkZXNpcmVkRmFtaWx5IHRvIHRoZSBQb3N0U2NyaXB0IG5hbWUgb2Yg
dGhlIGluc3RhbGxlZCBmb250cy4gSWYgdGhhdCBmYWlscwogLy8gd2UgdGhlbiBkbyBhIHNlYXJj
aCBiYXNlZCBvbiB0aGUgZmFtaWx5IG5hbWVzIG9mIHRoZSBpbnN0YWxsZWQgZm9udHMuCi1zdGF0
aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgTlNG
b250VHJhaXRNYXNrIGRlc2lyZWRUcmFpdHMsIEZvbnRXZWlnaHQgd2VpZ2h0LCBjb25zdCBGb250
RmVhdHVyZVNldHRpbmdzKiBmZWF0dXJlU2V0dGluZ3MsIGZsb2F0IHNpemUpCitzdGF0aWMgTlNG
b250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgTlNGb250VHJh
aXRNYXNrIGRlc2lyZWRUcmFpdHMsIEZvbnRXZWlnaHQgd2VpZ2h0LCBjb25zdCBGb250RmVhdHVy
ZVNldHRpbmdzKiBmZWF0dXJlU2V0dGluZ3MsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJp
bmdNb2RlLCBmbG9hdCBzaXplKQogewogICAgIGlmIChjb25zdCBhdXRvJiBzcGVjaWFsQ2FzZSA9
IGZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2UoZmFtaWx5LCB3ZWlnaHQsIGRlc2lyZWRUcmFpdHMs
IHNpemUpKQogICAgICAgICByZXR1cm4gc3BlY2lhbENhc2UudmFsdWUoKTsKQEAgLTI4Nyw3ICsy
ODcsNyBAQCBzdGF0aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcm
IGZhbWlseSwgTlNGb250VHJhaXRNYXNrIGRlc2lyZQogCiAgICAgTlNTdHJpbmcgKmRlc2lyZWRG
YW1pbHkgPSBmYW1pbHk7CiAgICAgUmV0YWluUHRyPENURm9udFJlZj4gZm91bmRGb250ID0gYWRv
cHRDRihDVEZvbnRDcmVhdGVGb3JDU1MoKENGU3RyaW5nUmVmKWRlc2lyZWRGYW1pbHksIHRvQ29y
ZVRleHRGb250V2VpZ2h0KHdlaWdodCksIHJlcXVlc3RlZFRyYWl0cywgc2l6ZSkpOwotICAgIGZv
dW5kRm9udCA9IGFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyhmb3VuZEZvbnQuZ2V0KCksIGZlYXR1
cmVTZXR0aW5ncyk7CisgICAgZm91bmRGb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChmb3VuZEZv
bnQuZ2V0KCksIHRleHRSZW5kZXJpbmdNb2RlLCBmZWF0dXJlU2V0dGluZ3MpOwogICAgIGlmICgh
Zm91bmRGb250KQogICAgICAgICByZXR1cm4gbmlsOwogICAgIGZvbnQgPSBDRkJyaWRnaW5nUmVs
ZWFzZShDRlJldGFpbihmb3VuZEZvbnQuZ2V0KCkpKTsKQEAgLTUyMCw3ICs1MjAsNyBAQCBSZWZQ
dHI8Rm9udD4gRm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9u
dERlc2NyaXB0aW9uJiBkZXNjcgogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3Jt
RGF0YSA9IG9yaWdpbmFsRm9udERhdGEtPnBsYXRmb3JtRGF0YSgpOwogICAgIE5TRm9udCAqbnNG
b250ID0gcGxhdGZvcm1EYXRhLm5zRm9udCgpOwogICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IHJl
c3VsdCA9IGxvb2t1cENURm9udChwbGF0Zm9ybURhdGEuZm9udCgpLCBwbGF0Zm9ybURhdGEuc2l6
ZSgpLCBkZXNjcmlwdGlvbi5sb2NhbGUoKSwgY2hhcmFjdGVycywgbGVuZ3RoKTsKLSAgICByZXN1
bHQgPSBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MocmVzdWx0LmdldCgpLCBkZXNjcmlwdGlvbi5m
ZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgcmVzdWx0ID0gcHJlcGFyZVBsYXRmb3JtRm9udChyZXN1
bHQuZ2V0KCksIGRlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGRlc2NyaXB0aW9uLmZl
YXR1cmVTZXR0aW5ncygpKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKQEAgLTY3OSw3ICs2NzksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0
YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZQogICAgIE5T
Rm9udFRyYWl0TWFzayB0cmFpdHMgPSBmb250RGVzY3JpcHRpb24uaXRhbGljKCkgPyBOU0ZvbnRJ
dGFsaWNUcmFpdCA6IDA7CiAgICAgZmxvYXQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRl
ZFBpeGVsU2l6ZSgpOwogCi0gICAgTlNGb250ICpuc0ZvbnQgPSBmb250V2l0aEZhbWlseShmYW1p
bHksIHRyYWl0cywgZm9udERlc2NyaXB0aW9uLndlaWdodCgpLCBmb250RGVzY3JpcHRpb24uZmVh
dHVyZVNldHRpbmdzKCksIHNpemUpOworICAgIE5TRm9udCAqbnNGb250ID0gZm9udFdpdGhGYW1p
bHkoZmFtaWx5LCB0cmFpdHMsIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0
aW9uLmZlYXR1cmVTZXR0aW5ncygpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUo
KSwgc2l6ZSk7CiAgICAgaWYgKCFuc0ZvbnQpIHsKICAgICAgICAgaWYgKCFzaG91bGRBdXRvQWN0
aXZhdGVGb250SWZOZWVkZWQoZmFtaWx5KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpA
QCAtNjg4LDcgKzY4OCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250
Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgICAgIC8vIEln
bm9yZSB0aGUgcmVzdWx0IGJlY2F1c2Ugd2Ugd2FudCB0byB1c2Ugb3VyIG93biBhbGdvcml0aG0g
dG8gYWN0dWFsbHkgZmluZCB0aGUgZm9udC4KICAgICAgICAgW05TRm9udCBmb250V2l0aE5hbWU6
ZmFtaWx5IHNpemU6c2l6ZV07CiAKLSAgICAgICAgbnNGb250ID0gZm9udFdpdGhGYW1pbHkoZmFt
aWx5LCB0cmFpdHMsIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9uLmZl
YXR1cmVTZXR0aW5ncygpLCBzaXplKTsKKyAgICAgICAgbnNGb250ID0gZm9udFdpdGhGYW1pbHko
ZmFtaWx5LCB0cmFpdHMsIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9u
LmZlYXR1cmVTZXR0aW5ncygpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwg
c2l6ZSk7CiAgICAgICAgIGlmICghbnNGb250KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7
CiAgICAgfQpAQCAtNzAzLDcgKzcwMyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1E
YXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAg
Ym9vbCBzeW50aGV0aWNCb2xkID0gKGZvbnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBG
b250U3ludGhlc2lzV2VpZ2h0KSAmJiBpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHRvQXBwS2l0Rm9u
dFdlaWdodChmb250RGVzY3JpcHRpb24ud2VpZ2h0KCkpKSAmJiAhaXNBcHBLaXRGb250V2VpZ2h0
Qm9sZChhY3R1YWxXZWlnaHQpOwogICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IChmb250RGVz
Y3JpcHRpb24uZm9udFN5bnRoZXNpcygpICYgRm9udFN5bnRoZXNpc1N0eWxlKSAmJiAodHJhaXRz
ICYgTlNGb250SXRhbGljVHJhaXQpICYmICEoYWN0dWFsVHJhaXRzICYgTlNGb250SXRhbGljVHJh
aXQpOwogCi0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4ocmVp
bnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KHBsYXRmb3JtRm9udCksIHNpemUsIHN5bnRoZXRpY0Jv
bGQsIHN5bnRoZXRpY09ibGlxdWUsIGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigpLCBmb250
RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCkpOworICAgIHJldHVybiBzdGQ6Om1ha2VfdW5pcXVl
PEZvbnRQbGF0Zm9ybURhdGE+KHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPihwbGF0Zm9ybUZv
bnQpLCBzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRp
b24ub3JpZW50YXRpb24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpLCBmb250RGVz
Y3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNv
cmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRleCBlZjEyMjdiYjFkMTk4MWEwYzc0
MGZlNzdhYWE0NmQ1YjdjMmM3ZDlhLi42ZTY4MTJhOThmYmI0M2IyNzM3OWU2NmU4MjZlNDdiYzU5
M2VmZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMv
Rm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC00MSw3ICs0MSw3IEBA
IEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0
YShjb25zdCBGb250RGVzY3JpcHRpb24mCiAgICAgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlh
bnQgPSBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCk7CiAjaWYgQ09SRVRFWFRfV0VCX0ZP
TlRTCiAgICAgUmV0YWluUHRyPENURm9udFJlZj4gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRl
V2l0aEZvbnREZXNjcmlwdG9yKG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIp
KTsKLSAgICBmb250ID0gYXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGZvbnQuZ2V0KCksIGZvbnRE
ZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9y
bUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZv
bnREZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9y
bURhdGEoZm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbiwgd2lkdGhW
YXJpYW50KTsKICNlbHNlCiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9jZ0ZvbnQuZ2V0
KCksIHNpemUsIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCk7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCmluZGV4IDI2
MDZjMjZjNDU2NWZjMzM1M2M1ZDFiZTJhN2Q5MzZkNjVkOTU1OTguLjA3ZDVkZWFjMWZhYmQ3M2Qx
N2RmMjQwNTNlZWI2NjBhYjRiZWQ1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCkBAIC00OSw2ICs0OSw3IEBAIHR5cGVkZWYgY29uc3Qg
VW5pQ2hhciogKCpDVFVuaUNoYXJQcm92aWRlckNhbGxiYWNrKShDRkluZGV4IHN0cmluZ0luZGV4
LCBDRkluZGV4CiB0eXBlZGVmIHZvaWQgKCpDVFVuaUNoYXJEaXNwb3NlQ2FsbGJhY2spKGNvbnN0
IFVuaUNoYXIqIGNoYXJzLCB2b2lkKiByZWZDb24pOwogCiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdS
ZWYga0NURm9udFJlZmVyZW5jZVVSTEF0dHJpYnV0ZTsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1Jl
ZiBrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGU7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICNp
ZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5k
ZXJUaGVtZUlPUy5tbQppbmRleCA1NTc4MmQxNDkzZTA5NjU3ZTIyMDJhNDExN2YxZDg0ZTM1MjIy
NmM3Li5iNzNjNWE4OTUyMTZlY2VlMzZkMGQwMTNjNThiOGIzMWY1ZjE1NDBlIDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMjYxLDcgKzEyNjEsNyBA
QCB2b2lkIFJlbmRlclRoZW1lSU9TOjp1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24o
Q1NTVmFsdWVJRCB2YWx1ZUlELCBGb250RAogCiAgICAgQVNTRVJUKGZvbnREZXNjcmlwdG9yKTsK
ICAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRo
Rm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IuZ2V0KCksIDAsIG51bGxwdHIpKTsKLSAgICBm
b250ID0gYXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlv
bi5mZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9u
dC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlw
dGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldElzQWJzb2x1
dGVTaXplKHRydWUpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkodGV4dFN0eWxl
KTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0U3BlY2lmaWVkU2l6ZShDVEZvbnRHZXRTaXplKGZv
bnQuZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRl
c3RzL0NoYW5nZUxvZwppbmRleCAyMDFjYTdjODY1MGE2Yjc2NWJmMWFjOGE1NTU2ZjkwZmU5NGE5
ZWVjLi4xOThmMTg1YjgzOTU0MDRjODg2ODc5ZGQzODA1NzliOTg2ODdmYzA5IDEwMDY0NAotLS0g
YS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0x
LDUgKzEsMTkgQEAKIDIwMTUtMDgtMTcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFw
cGxlLmNvbT4KIAorICAgICAgICBbQ29jb2FdIEhvbm9yIHRoZSAndHJhaycgdGFibGUgYnkgb3B0
aW5nIGluIHZpYSB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5CisgICAgICAgIGh0
dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgxMTkKKyAgICAgICAgPHJk
YXI6Ly9wcm9ibGVtLzIyMjkxNTYxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIFRoaXMgdGVzdCB3aWxsIGZhaWwgdW50aWwgd2Ugc3RvcCBtb2NraW5n
IHRoZSBzeXN0ZW0gZm9udCBvbiBFbCBDYXBpdGFuLiBVbnRpbCB0aGVuLAorICAgICAgICB0aGlz
IHBhdGNoIHdpbGwgY29tbWl0IHRoZSB0ZXN0IGZhaWx1cmUgYXMgYW4gZXhwZWN0ZWQgcmVzdWx0
LgorCisgICAgICAgICogZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5LWV4cGVjdGVk
Lmh0bWw6IEFkZGVkCisgICAgICAgICogZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5
Lmh0bWw6IEFkZGVkCisKKzIwMTUtMDgtMTcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxk
QGFwcGxlLmNvbT4KKwogICAgICAgICBbV2luXSBUZXN0IGdhcmRlbmluZwogCiAgICAgICAgIFVu
cmV2aWV3ZWQuCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdHJhay1vcHRpbWl6
ZUxlZ2liaWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RyYWstb3B0
aW1pemVMZWdpYmlsaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmYwNzlmMDkyYjhkMTEx
MGQ4ODllZGE5OGZiMGQ1NWE1NjRhNjhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMv
ZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsx
LDEyIEBACitQQVNTIGZpcnN0LmdldENsaWVudFJlY3RzKCkubGVuZ3RoIGlzIDEKK1BBU1MgdGhp
cmQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggaXMgMQorRkFJTCBmaXJzdC5nZXRDbGllbnRSZWN0
cygpWzBdLnJpZ2h0IHNob3VsZCBiZSB3aXRoaW4gNCBvZiAzNDYuIFdhcyAzNjQuCitQQVNTIHN1
Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgdGVzdCBtYWtl
cyBzdXJlIHRoYXQgeW91IGNhbiBvcHQtaW4gdG8gaG9ub3JpbmcgdGhlICd0cmFrJyB0YWJsZSBi
eSBzcGVjaWZ5aW5nIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkuIFRoZSBmaXJz
dCBhbmQgdGhpcmQgbGluZXMgYmVsb3cgc2hvdWxkIGhhdmUgdGhlIHNhbWUgd2lkdGguIFRoZSBt
aWRkbGUgb25lIGNhbiAoYnV0IGRvZXNuJ3QgaGF2ZSB0bykgaGF2ZSBhIGRpZmZlcmVudCB3aWR0
aC4KK2hhbWJ1cmdlZm9uc3RpdgorCitoYW1idXJnZWZvbnN0aXYKKworaGFtYnVyZ2Vmb25zdGl2
CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2liaWxp
dHkuaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90cmFrLW9wdGltaXplTGVnaWJpbGl0eS5o
dG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAuLjg4NDk0YjE2MGYzNWFhMzUwNjg1NzgxMDAwNDAxMjFkZDI2YzQzZTkK
LS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxl
Z2liaWxpdHkuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgor
PGhlYWQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3Nj
cmlwdD4KKzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB5b3UgY2Fu
IG9wdC1pbiB0byBob25vcmluZyB0aGUgJ3RyYWsnIHRhYmxlIGJ5IHNwZWNpZnlpbmcgdGV4dC1y
ZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eS4KK1RoZSBmaXJzdCBhbmQgdGhpcmQgbGluZXMg
YmVsb3cgc2hvdWxkIGhhdmUgdGhlIHNhbWUgd2lkdGguIFRoZSBtaWRkbGUgb25lIGNhbiAoYnV0
IGRvZXNuJ3QgaGF2ZSB0bykgaGF2ZSBhIGRpZmZlcmVudCB3aWR0aC4KKzxwPjxzcGFuIGlkPSJm
aXJzdCIgc3R5bGU9ImZvbnQ6IDUwcHggJy1hcHBsZS1zeXN0ZW0nOyBmb250LXdlaWdodDogMzAw
OyI+aGFtYnVyZ2Vmb25zdGl2PC9zcGFuPjwvcD4KKzxwPjxzcGFuIGlkPSJzZWNvbmQiIHN0eWxl
PSJmb250OiA1MHB4ICcuU0ZOU1RleHQtTGlnaHQnICcuU0ZVSURpc3BsYXktTGlnaHQnOyI+aGFt
YnVyZ2Vmb25zdGl2PC9zcGFuPjwvcD4KKzxwPjxzcGFuIGlkPSJ0aGlyZCIgc3R5bGU9ImZvbnQ6
IDUwcHggJy5TRk5TVGV4dC1MaWdodCcgJy5TRlVJRGlzcGxheS1MaWdodCc7IHRleHQtcmVuZGVy
aW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHk7Ij5oYW1idXJnZWZvbnN0aXY8L3NwYW4+PC9wPgorPHNj
cmlwdD4KK3ZhciBmaXJzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaXJzdCIpOwordmFy
IHRoaXJkID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRoaXJkIik7CitzaG91bGRCZSgiZmly
c3QuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgiLCAiMSIpOworc2hvdWxkQmUoInRoaXJkLmdldENs
aWVudFJlY3RzKCkubGVuZ3RoIiwgIjEiKTsKK3Nob3VsZEJlQ2xvc2VUbygiZmlyc3QuZ2V0Q2xp
ZW50UmVjdHMoKVswXS5yaWdodCIsIHRoaXJkLmdldENsaWVudFJlY3RzKClbMF0ucmlnaHQsIDQp
OworPC9zY3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5q
cyI+PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9w
bGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2Zhc3QvdGV4dC90cmFrLW9wdGltaXplTGVnaWJpbGl0eS1l
eHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2Zhc3QvdGV4
dC90cmFrLW9wdGltaXplTGVnaWJpbGl0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2
NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVmZmMx
NzQwYzk5ODQxYzQ1ZDQzYWRiNzgxZjdiODUxNzA4ZDk0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xh
eW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC90ZXh0L3RyYWstb3B0aW1pemVM
ZWdpYmlsaXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitQQVNTIGZpcnN0LmdldENs
aWVudFJlY3RzKCkubGVuZ3RoIGlzIDEKK1BBU1MgdGhpcmQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5n
dGggaXMgMQorUEFTUyBmaXJzdC5nZXRDbGllbnRSZWN0cygpWzBdLnJpZ2h0IGlzIHdpdGhpbiA0
IG9mIDM2OQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRF
CitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHlvdSBjYW4gb3B0LWluIHRvIGhvbm9yaW5nIHRo
ZSAndHJhaycgdGFibGUgYnkgc3BlY2lmeWluZyB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdp
YmlsaXR5LiBUaGUgZmlyc3QgYW5kIHRoaXJkIGxpbmVzIGJlbG93IHNob3VsZCBoYXZlIHRoZSBz
YW1lIHdpZHRoLiBUaGUgbWlkZGxlIG9uZSBjYW4gKGJ1dCBkb2Vzbid0IGhhdmUgdG8pIGhhdmUg
YSBkaWZmZXJlbnQgd2lkdGguCitoYW1idXJnZWZvbnN0aXYKKworaGFtYnVyZ2Vmb25zdGl2CisK
K2hhbWJ1cmdlZm9uc3RpdgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rl
c3RFeHBlY3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9u
cwppbmRleCAwYzEwNmI2NWRiNzFhNmRlZTAxNGFiNWVlNmIzMjcwNjBkM2ZjZGJmLi5iNzMyYWRk
MzY1ZjAwZjgzMmY3MTI1NGIzM2ZkODM2NzIzZTYzMDYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0
cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9tYWMvVGVzdEV4cGVjdGF0aW9ucwpAQCAtMTI5NiwzICsxMjk2LDYgQEAgd2Via2l0Lm9yZy9i
LzE0NzM5MCBbIE1hdmVyaWNrcyBZb3NlbWl0ZSBFbENhcGl0YW4gXSBmYXN0L3RleHQvZmFsbGJh
Y2stbGFuZ3VhZ2UKIAogIyBTdGFydGVkIHRvIGZhaWwgYWZ0ZXIgcjE4ODM5MAogd2Via2l0Lm9y
Zy9iLzE0ODA0MiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWJ1ZmZlcmVkLXJhbmdlLWNvbnRhaW5z
LWN1cnJlbnRUaW1lLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQorCisjIFRoaXMgdGVzdCB0ZXN0cyBh
IHBhcnRpY3VsYXIgc3lzdGVtIGZvbnQsIHdoaWNoIGlzIG9ubHkgb24gaU9TIGFuZCBFbCBDYXBp
dGFuLgord2Via2l0Lm9yZy9iLzE0ODExOSBbIE1hdmVyaWNrcyBZb3NlbWl0ZSBdIGZhc3QvdGV4
dC90cmFrLW9wdGltaXplTGVnaWJpbGl0eS5odG1sIFsgRmFpbHVyZSBdCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259242</attachid>
            <date>2015-08-17 21:44:58 -0700</date>
            <delta_ts>2015-08-17 21:50:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148119-20150817214457.patch</filename>
            <type>text/plain</type>
            <size>30486</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NTYyCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggN2Q2MTUxNTY5NTYyMmM0
ZGJiZjQyNGVlZWIwZDAxMzA3NjU1ZTBmNC4uZDFiNzQwMTgyNGFhMDY3NzBhYWFjYTk5NTBlODcx
NGQ2YThiNzI5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTA4LTE3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBI
b25vciB0aGUgJ3RyYWsnIHRhYmxlIGJ5IG9wdGluZyBpbiB2aWEgdGV4dC1yZW5kZXJpbmc6IG9w
dGltaXplTGVnaWJpbGl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MTE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjI5MTU2MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZSBhdXRo
b3IgaGFzIG9wdGVkIGluIGJ5IHNwZWNpZnlpbmcgInRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxl
Z2liaWxpdHk7Iiwgd2Ugc2hvdWxkCisgICAgICAgIGhvbm9yIHRoZSBmb250J3MgJ3RyYWsnIHRh
YmxlLiBXZSBkbyB0aGlzIGJ5IHNwZWNpZnlpbmcga0NURm9udE9wdGljYWxTaXplQXR0cmlidXRl
IGF0IGZvbnQKKyAgICAgICAgY3JlYXRpb24gdGltZSwgYW5kIGJ5IHVzaW5nIENURm9udEdldEFk
dmFuY2VzRm9yR2x5cGhzKCkgaW5zdGVhZCBvZgorICAgICAgICBDR0ZvbnRHZXRHbHlwaEFkdmFu
Y2VzRm9yU3R5bGUoKS4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxl
Z2liaWxpdHkuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb25LZXk6Om1ha2VGbGFnS2V5KTogTWFr
ZSBvdXIgY2FjaGVzIHNlbnNpdGl2ZSB0byBUZXh0UmVuZGVyaW5nTW9kZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBBZGQgYSBUZXh0UmVuZGVyaW5n
TW9kZSBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpvcGVyYXRvcj0pOiBVcGRhdGUgdG8gY29uc3VsdCB3aXRoIHRoZSBuZXcgbWVtYmVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnRleHRSZW5kZXJpbmdNb2RlKTogR2V0dGVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXBhcmVQbGF0Zm9ybUZvbnQpOiBTcGVjaWZ5IGtDVEZvbnRPcHRp
Y2FsU2l6ZUF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5Rm9udEZlYXR1cmVTZXR0
aW5ncyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRlcik6
IFVzZSBDVEZvbnRHZXRBZHZhbmNlc0ZvckdseXBocygpIGlmIHdlIGFyZQorICAgICAgICBvcHRp
bWl6ZUxlZ2liaWxpdHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBs
YXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YSk6IFBhc3MgdGhlIFRleHRSZW5kZXJpbmdNb2RlIGFyb3VuZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhY2hlOjpnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFyYWN0ZXJzKTog
VXBkYXRlIHRvIGNhbGwgcmVuYW1lZCBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpmb250V2l0
aEZhbWlseSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzeXN0ZW1GYWxs
YmFja0ZvckNoYXJhY3RlcnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6
Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBEaXR0by4KKyAgICAgICAg
KiBwbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6dXBk
YXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKTogRGl0dG8uCisKIDIwMTUtMDgtMTcgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBbV2lu
IENNYWtlXSBBbGxvdyBXZWJLaXRMaWJyYXJpZXMgZGlyZWN0b3J5IHRvIGJlIHNldCBmcm9tIHRo
ZSBjb21tYW5kIGxpbmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRDYWNoZS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENh
Y2hlLmgKaW5kZXggYmQ4ZmExNzhjNGZjNDg4NjBkMzAyOWFjNjQyZmI4YjgzYmFmNjliNi4uOGM4
ZjI2NDRiYWY2ZDZiNzIyMWUyYTlkYTA1OTA2ZDE2OGVlNmUyMSAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKQEAgLTEwNSw3ICsxMDUsOCBAQCBwcml2
YXRlOgogICAgIHN0YXRpYyB1bnNpZ25lZCBtYWtlRmxhZ0tleShjb25zdCBGb250RGVzY3JpcHRp
b24mIGRlc2NyaXB0aW9uKQogICAgIHsKICAgICAgICAgc3RhdGljX2Fzc2VydChVU0NSSVBUX0NP
REVfTElNSVQgPCAweDEwMDAsICJTY3JpcHQgY29kZSBtdXN0IGZpdCBpbiBhbiB1bnNpZ25lZCBh
bG9uZyB3aXRoIHRoZSBvdGhlciBmbGFncyIpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnNjcmlwdCgpKSA8PCA5CisgICAgICAgIHJldHVybiBzdGF0
aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24uc2NyaXB0KCkpIDw8IDExCisgICAgICAgICAg
ICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgp
KSA8PCA5CiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5z
bWFsbENhcHMoKSkgPDwgOAogICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVz
Y3JpcHRpb24uZm9udFN5bnRoZXNpcygpKSA8PCA2CiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihkZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSkgPDwgNApAQCAtMjE1LDcgKzIx
Niw3IEBAIHByaXZhdGU6CiB9OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi1SZXRhaW5QdHI8Q1RG
b250UmVmPiBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MoQ1RGb250UmVmLCBjb25zdCBGb250RmVh
dHVyZVNldHRpbmdzKik7CitSZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250
KENURm9udFJlZiwgVGV4dFJlbmRlcmluZ01vZGUsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3Mq
KTsKICNlbmRpZgogCiAjaWYgIVBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggMzE2NjRmNGY0
MzVkNzUyYTgxNDM1NDBjYjRkYmE1YWNlMTAzMjMyOC4uYjgwODg3NWQ1NDQzOTM0MGY3YzE0MjYz
MjhlOGVjZGU2M2FmZjNkNSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKQEAgLTQzLDI1ICs0MywyNiBAQCBGb250UGxh
dGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKCkKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJp
YW50IHdpZHRoVmFyaWFudCkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxv
YXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRP
cmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQsIFRl
eHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlKQogICAgIDogbV9zeW50aGV0aWNCb2xk
KHN5bnRoZXRpY0JvbGQpCiAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1
ZSkKICAgICAsIG1fb3JpZW50YXRpb24ob3JpZW50YXRpb24pCiAgICAgLCBtX3NpemUoc2l6ZSkK
ICAgICAsIG1fd2lkdGhWYXJpYW50KHdpZHRoVmFyaWFudCkKKyAgICAsIG1fdGV4dFJlbmRlcmlu
Z01vZGUodGV4dFJlbmRlcmluZ01vZGUpCiB7CiB9CiAKICNpZiBVU0UoQ0cpCi1Gb250UGxhdGZv
cm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIGZsb2F0IHNpemUsIGJv
b2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24g
b3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KQotICAgIDogRm9udFBs
YXRmb3JtRGF0YShzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBvcmllbnRh
dGlvbiwgd2lkdGhWYXJpYW50KQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShD
R0ZvbnRSZWYgY2dGb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJp
YW50IHdpZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCisg
ICAgOiBGb250UGxhdGZvcm1EYXRhKHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlx
dWUsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIHRleHRSZW5kZXJpbmdNb2RlKQogewogICAg
IG1fY2dGb250ID0gY2dGb250OwogfQogI2VuZGlmCiAKIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQ
bGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgc291cmNlKQotICAgIDogRm9udFBs
YXRmb3JtRGF0YShzb3VyY2UubV9zaXplLCBzb3VyY2UubV9zeW50aGV0aWNCb2xkLCBzb3VyY2Uu
bV9zeW50aGV0aWNPYmxpcXVlLCBzb3VyY2UubV9vcmllbnRhdGlvbiwgc291cmNlLm1fd2lkdGhW
YXJpYW50KQorICAgIDogRm9udFBsYXRmb3JtRGF0YShzb3VyY2UubV9zaXplLCBzb3VyY2UubV9z
eW50aGV0aWNCb2xkLCBzb3VyY2UubV9zeW50aGV0aWNPYmxpcXVlLCBzb3VyY2UubV9vcmllbnRh
dGlvbiwgc291cmNlLm1fd2lkdGhWYXJpYW50LCBzb3VyY2UubV90ZXh0UmVuZGVyaW5nTW9kZSkK
IHsKICAgICBtX2lzSGFzaFRhYmxlRGVsZXRlZFZhbHVlID0gc291cmNlLm1faXNIYXNoVGFibGVE
ZWxldGVkVmFsdWU7CiAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IHNvdXJjZS5tX2lzQ29sb3JC
aXRtYXBGb250OwpAQCAtODMsNiArODQsNyBAQCBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBGb250
UGxhdGZvcm1EYXRhOjpvcGVyYXRvcj0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZQogICAg
IG1fd2lkdGhWYXJpYW50ID0gb3RoZXIubV93aWR0aFZhcmlhbnQ7CiAgICAgbV9pc0NvbG9yQml0
bWFwRm9udCA9IG90aGVyLm1faXNDb2xvckJpdG1hcEZvbnQ7CiAgICAgbV9pc0NvbXBvc2l0ZUZv
bnRSZWZlcmVuY2UgPSBvdGhlci5tX2lzQ29tcG9zaXRlRm9udFJlZmVyZW5jZTsKKyAgICBtX3Rl
eHRSZW5kZXJpbmdNb2RlID0gb3RoZXIubV90ZXh0UmVuZGVyaW5nTW9kZTsKIAogICAgIHJldHVy
biBwbGF0Zm9ybURhdGFBc3NpZ24ob3RoZXIpOwogfQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCmluZGV4IDUxZjBmMDgzNTk4Yzhh
Y2VlYmZlMmNjMDUzMTczYWJhOWJmNmZhODMuLjFjMDc4ZThjM2IzOTE5OWI2ODM2NzBiMTZjYzYz
NzNiMGI2YTFjNGQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRQbGF0Zm9ybURhdGEuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGxhdGZvcm1EYXRhLmgKQEAgLTgxLDE0ICs4MSwxNCBAQCBwdWJsaWM6CiAgICAgRm9u
dFBsYXRmb3JtRGF0YSgpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3Jt
RGF0YSYpOwogICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9uJiwgY29u
c3QgQXRvbWljU3RyaW5nJiBmYW1pbHkpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6
ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRh
dGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBSZWd1bGFyV2lkdGgpOworICAg
IEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5
bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZh
cmlhbnQgPSBSZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2RlID0gQXV0b1RleHRSZW5kZXJp
bmcpOwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi0gICAgV0VCQ09SRV9FWFBPUlQgRm9udFBsYXRm
b3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCA9IGZhbHNl
LCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0aW9uID0gSG9yaXpv
bnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCk7CisgICAgV0VCQ09SRV9FWFBP
UlQgRm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGlj
Qm9sZCA9IGZhbHNlLCBib29sIHN5bnRoZXRpY09ibGlxdWUgPSBmYWxzZSwgRm9udE9yaWVudGF0
aW9uID0gSG9yaXpvbnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCwgVGV4dFJl
bmRlcmluZ01vZGUgPSBBdXRvVGV4dFJlbmRlcmluZyk7CiAjZW5kaWYKIAogI2lmIFVTRShDRykK
LSAgICBGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0
aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiwgRm9udFdpZHRo
VmFyaWFudCk7CisgICAgRm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYsIGZsb2F0IHNpemUsIGJv
b2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24s
IEZvbnRXaWR0aFZhcmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlKTsKICNlbmRpZgogCiAjaWYgUExB
VEZPUk0oV0lOKQpAQCAtMTM3LDYgKzEzNyw3IEBAIHB1YmxpYzoKICAgICBib29sIGlzQ29tcG9z
aXRlRm9udFJlZmVyZW5jZSgpIGNvbnN0IHsgcmV0dXJuIG1faXNDb21wb3NpdGVGb250UmVmZXJl
bmNlOyB9CiAgICAgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4g
bV9vcmllbnRhdGlvbjsgfQogICAgIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KCkgY29u
c3QgeyByZXR1cm4gbV93aWR0aFZhcmlhbnQ7IH0KKyAgICBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0
UmVuZGVyaW5nTW9kZSgpIGNvbnN0IHsgcmV0dXJuIG1fdGV4dFJlbmRlcmluZ01vZGU7IH0KICAg
ICBib29sIGlzRm9yVGV4dENvbWJpbmUoKSBjb25zdCB7IHJldHVybiB3aWR0aFZhcmlhbnQoKSAh
PSBSZWd1bGFyV2lkdGg7IH0gLy8gS2VlcCBpbiBzeW5jIHdpdGggY2FsbGVycyBvZiBGb250RGVz
Y3JpcHRpb246OnNldFdpZHRoVmFyaWFudCgpLgogCiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbihG
b250T3JpZW50YXRpb24gb3JpZW50YXRpb24pIHsgbV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9u
OyB9CkBAIC0xNTIsNyArMTUzLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9mb250ID8g
bV9mb250LT5oYXNoKCkgOiAwOwogI2VsaWYgT1MoREFSV0lOKQogICAgICAgICBBU1NFUlQobV9m
b250IHx8ICFtX2NnRm9udCB8fCBpc0Vtb2ppKCkpOwotICAgICAgICB1aW50cHRyX3QgZmxhZ3Mg
PSBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUgPDwgNCB8
IGlzRW1vamkoKSA8PCAzIHwgbV9vcmllbnRhdGlvbiA8PCAyIHwgbV9zeW50aGV0aWNCb2xkIDw8
IDEgfCBtX3N5bnRoZXRpY09ibGlxdWUpOworICAgICAgICB1aW50cHRyX3QgZmxhZ3MgPSBzdGF0
aWNfY2FzdDx1aW50cHRyX3Q+KG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUgPDwgNiB8IG1fdGV4
dFJlbmRlcmluZ01vZGUgPDwgNCB8IGlzRW1vamkoKSA8PCAzIHwgbV9vcmllbnRhdGlvbiA8PCAy
IHwgbV9zeW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRoZXRpY09ibGlxdWUpOwogI2lmIFVTRShB
UFBLSVQpCiAgICAgICAgIHVpbnRwdHJfdCBmb250SGFzaCA9ICh1aW50cHRyX3QpbV9mb250Lmdl
dCgpOwogI2Vsc2UKQEAgLTE3Nyw3ICsxNzgsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAmJiBt
X2lzQ29sb3JCaXRtYXBGb250ID09IG90aGVyLm1faXNDb2xvckJpdG1hcEZvbnQKICAgICAgICAg
ICAgICYmIG1faXNDb21wb3NpdGVGb250UmVmZXJlbmNlID09IG90aGVyLm1faXNDb21wb3NpdGVG
b250UmVmZXJlbmNlCiAgICAgICAgICAgICAmJiBtX29yaWVudGF0aW9uID09IG90aGVyLm1fb3Jp
ZW50YXRpb24KLSAgICAgICAgICAgICYmIG1fd2lkdGhWYXJpYW50ID09IG90aGVyLm1fd2lkdGhW
YXJpYW50OworICAgICAgICAgICAgJiYgbV93aWR0aFZhcmlhbnQgPT0gb3RoZXIubV93aWR0aFZh
cmlhbnQKKyAgICAgICAgICAgICYmIG1fdGV4dFJlbmRlcmluZ01vZGUgPT0gb3RoZXIubV90ZXh0
UmVuZGVyaW5nTW9kZTsKICAgICB9CiAKICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVl
KCkgY29uc3QKQEAgLTIxOCw2ICsyMjAsNyBAQCBwdWJsaWM6CiAgICAgRm9udE9yaWVudGF0aW9u
IG1fb3JpZW50YXRpb24geyBIb3Jpem9udGFsIH07CiAgICAgZmxvYXQgbV9zaXplIHsgMCB9Owog
ICAgIEZvbnRXaWR0aFZhcmlhbnQgbV93aWR0aFZhcmlhbnQgeyBSZWd1bGFyV2lkdGggfTsKKyAg
ICBUZXh0UmVuZGVyaW5nTW9kZSBtX3RleHRSZW5kZXJpbmdNb2RlIHsgQXV0b1RleHRSZW5kZXJp
bmcgfTsKIAogcHJpdmF0ZToKICNpZiBQTEFURk9STShDT0NPQSkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcCBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0
LmNwcAppbmRleCBiNDI0YTk4NGQyMDQ2ZjlhMmQwMDA3ZWNhNmI1ZmE1Y2YwODAyYmMwLi44ZGM1
ZGM4ZTRlMmFmNWQ2M2VmOTc1YzgxMTcxMjY4NzgyZjYzMjRiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKKysr
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRl
eHQuY3BwCkBAIC0yNiw2ICsyNiw3IEBACiAjaW5jbHVkZSAiY29uZmlnLmgiCiAjaW5jbHVkZSAi
Rm9udENhY2hlLmgiCiAKKyNpbmNsdWRlICJDb3JlVGV4dFNQSS5oIgogI2luY2x1ZGUgPENvcmVU
ZXh0L1NGTlRMYXlvdXRUeXBlcy5oPgogCiAjaW5jbHVkZSA8d3RmL05ldmVyRGVzdHJveWVkLmg+
CkBAIC0xMzcsMTggKzEzOCwzNSBAQCBzdGF0aWMgaW5saW5lIHZvaWQgYXBwZW5kT3BlblR5cGVG
ZWF0dXJlKENGTXV0YWJsZUFycmF5UmVmIGZlYXR1cmVzLCBjb25zdCBGb250RgogI2VuZGlmCiB9
CiAKLVJldGFpblB0cjxDVEZvbnRSZWY+IGFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyhDVEZvbnRS
ZWYgb3JpZ2luYWxGb250LCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKiBmZWF0dXJlcykKK1Jl
dGFpblB0cjxDVEZvbnRSZWY+IHByZXBhcmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmIG9yaWdpbmFs
Rm9udCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUsIGNvbnN0IEZvbnRGZWF0
dXJlU2V0dGluZ3MqIGZlYXR1cmVzKQogewotICAgIGlmICghb3JpZ2luYWxGb250IHx8ICFmZWF0
dXJlcyB8fCAhZmVhdHVyZXMtPnNpemUoKSkKKyAgICBpZiAoIW9yaWdpbmFsRm9udCB8fCAoKCFm
ZWF0dXJlcyB8fCAhZmVhdHVyZXMtPnNpemUoKSkgJiYgKHRleHRSZW5kZXJpbmdNb2RlICE9IE9w
dGltaXplTGVnaWJpbGl0eSkpKQogICAgICAgICByZXR1cm4gb3JpZ2luYWxGb250OwogCi0gICAg
UmV0YWluUHRyPENGTXV0YWJsZUFycmF5UmVmPiBmZWF0dXJlQXJyYXkgPSBhZG9wdENGKENGQXJy
YXlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGZlYXR1cmVzLT5zaXplKCksICZr
Q0ZUeXBlQXJyYXlDYWxsQmFja3MpKTsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZlYXR1
cmVzLT5zaXplKCk7ICsraSkgewotICAgICAgICBhcHBlbmRUcnVlVHlwZUZlYXR1cmUoZmVhdHVy
ZUFycmF5LmdldCgpLCBmZWF0dXJlcy0+YXQoaSkpOwotICAgICAgICBhcHBlbmRPcGVuVHlwZUZl
YXR1cmUoZmVhdHVyZUFycmF5LmdldCgpLCBmZWF0dXJlcy0+YXQoaSkpOworICAgIFJldGFpblB0
cjxDRk11dGFibGVBcnJheVJlZj4gZmVhdHVyZUFycmF5OworICAgIGlmIChmZWF0dXJlcyAmJiBm
ZWF0dXJlcy0+c2l6ZSgpKSB7CisgICAgICAgIGZlYXR1cmVBcnJheSA9IGFkb3B0Q0YoQ0ZBcnJh
eUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgZmVhdHVyZXMtPnNpemUoKSwgJmtD
RlR5cGVBcnJheUNhbGxCYWNrcykpOworICAgICAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZl
YXR1cmVzLT5zaXplKCk7ICsraSkgeworICAgICAgICAgICAgYXBwZW5kVHJ1ZVR5cGVGZWF0dXJl
KGZlYXR1cmVBcnJheS5nZXQoKSwgZmVhdHVyZXMtPmF0KGkpKTsKKyAgICAgICAgICAgIGFwcGVu
ZE9wZW5UeXBlRmVhdHVyZShmZWF0dXJlQXJyYXkuZ2V0KCksIGZlYXR1cmVzLT5hdChpKSk7Cisg
ICAgICAgIH0KKyAgICB9CisgICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gZGljdGlvbmFy
eTsKKyAgICBpZiAodGV4dFJlbmRlcmluZ01vZGUgPT0gT3B0aW1pemVMZWdpYmlsaXR5ICYmIGZl
YXR1cmVBcnJheSAmJiBDRkFycmF5R2V0Q291bnQoZmVhdHVyZUFycmF5LmdldCgpKSkgeworICAg
ICAgICBDR0Zsb2F0IHNpemUgPSBDVEZvbnRHZXRTaXplKG9yaWdpbmFsRm9udCk7CisgICAgICAg
IFJldGFpblB0cjxDRk51bWJlclJlZj4gc2l6ZU51bWJlciA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVh
dGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVtYmVyQ0dGbG9hdFR5cGUsICZzaXplKSk7Cisg
ICAgICAgIENGVHlwZVJlZiBrZXlzW10gPSB7IGtDVEZvbnRGZWF0dXJlU2V0dGluZ3NBdHRyaWJ1
dGUsIGtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZSB9OworICAgICAgICBDRlR5cGVSZWYgdmFs
dWVzW10gPSB7IGZlYXR1cmVBcnJheS5nZXQoKSwgc2l6ZU51bWJlci5nZXQoKSB9OworICAgICAg
ICBkaWN0aW9uYXJ5ID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwga2V5cywgdmFsdWVzLCBXVEZfQVJSQVlfTEVOR1RIKHZhbHVlcyksICZrQ0ZUeXBlRGlj
dGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsK
KyAgICB9IGVsc2UgaWYgKGZlYXR1cmVBcnJheSAmJiBDRkFycmF5R2V0Q291bnQoZmVhdHVyZUFy
cmF5LmdldCgpKSkgeworICAgICAgICBDRkFycmF5UmVmIGZlYXR1cmVBcnJheVB0ciA9IGZlYXR1
cmVBcnJheS5nZXQoKTsKKyAgICAgICAgZGljdGlvbmFyeSA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5
Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIChjb25zdCB2b2lkKiopJmtDVEZvbnRGZWF0dXJl
U2V0dGluZ3NBdHRyaWJ1dGUsIChjb25zdCB2b2lkKiopJmZlYXR1cmVBcnJheVB0ciwgMSwgJmtD
RlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxC
YWNrcykpOworICAgIH0gZWxzZSB7CisgICAgICAgIENHRmxvYXQgc2l6ZSA9IENURm9udEdldFNp
emUob3JpZ2luYWxGb250KTsKKyAgICAgICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBzaXplTnVt
YmVyID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1i
ZXJDR0Zsb2F0VHlwZSwgJnNpemUpKTsKKyAgICAgICAgQ0ZOdW1iZXJSZWYgc2l6ZU51bWJlclB0
ciA9IHNpemVOdW1iZXIuZ2V0KCk7CisgICAgICAgIGRpY3Rpb25hcnkgPSBhZG9wdENGKENGRGlj
dGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3Qgdm9pZCoqKSZrQ1RGb250
T3B0aWNhbFNpemVBdHRyaWJ1dGUsIChjb25zdCB2b2lkKiopJnNpemVOdW1iZXJQdHIsIDEsICZr
Q0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxs
QmFja3MpKTsKICAgICB9Ci0gICAgQ0ZBcnJheVJlZiBmZWF0dXJlQXJyYXlQdHIgPSBmZWF0dXJl
QXJyYXkuZ2V0KCk7Ci0gICAgUmV0YWluUHRyPENGRGljdGlvbmFyeVJlZj4gZGljdGlvbmFyeSA9
IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIChjb25zdCB2
b2lkKiopJmtDVEZvbnRGZWF0dXJlU2V0dGluZ3NBdHRyaWJ1dGUsIChjb25zdCB2b2lkKiopJmZl
YXR1cmVBcnJheVB0ciwgMSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlw
ZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogICAgIFJldGFpblB0cjxDVEZvbnREZXNjcmlw
dG9yUmVmPiBkZXNjcmlwdG9yID0gYWRvcHRDRihDVEZvbnREZXNjcmlwdG9yQ3JlYXRlV2l0aEF0
dHJpYnV0ZXMoZGljdGlvbmFyeS5nZXQoKSkpOwogICAgIHJldHVybiBhZG9wdENGKENURm9udENy
ZWF0ZUNvcHlXaXRoQXR0cmlidXRlcyhvcmlnaW5hbEZvbnQsIENURm9udEdldFNpemUob3JpZ2lu
YWxGb250KSwgbnVsbHB0ciwgZGVzY3JpcHRvci5nZXQoKSkpOwogfQpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tIGIvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCmluZGV4IDRhM2E1
ZWY4YzA1YWUwYTE2YzRkYmRmYTExNDUxOTExNDk5MGQzOWQuLjJjZmVhNTdjZDYwZjAwZWE5MDU0
ZDEyZGNiMjQyMWNjNzJmYTkzZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KQEAgLTQ1NywxMyArNDU3LDkgQEAgc3RhdGlj
IGlubGluZSBib29sIGFkdmFuY2VGb3JDb2xvckJpdG1hcEZvbnQoY29uc3QgRm9udFBsYXRmb3Jt
RGF0YSYgcGxhdGZvcm1EYXQKIHN0YXRpYyBpbmxpbmUgYm9vbCBjYW5Vc2VGYXN0R2x5cGhBZHZh
bmNlR2V0dGVyKGNvbnN0IEZvbnQmIGZvbnQsIEdseXBoIGdseXBoLCBDR1NpemUmIGFkdmFuY2Us
IGJvb2wmIHBvcHVsYXRlZEFkdmFuY2UpCiB7CiAgICAgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYg
cGxhdGZvcm1EYXRhID0gZm9udC5wbGF0Zm9ybURhdGEoKTsKLSAgICAvLyBGYXN0IGdldHRlciBk
b2Vzbid0IHRha2UgY3VzdG9tIHRyYWNraW5nIGludG8gYWNjb3VudAotICAgIGlmIChmb250Lmhh
c0N1c3RvbVRyYWNraW5nKCkpCisgICAgLy8gRmFzdCBnZXR0ZXIgZG9lc24ndCBkb2Vzbid0IHdv
cmsgZm9yIGVtb2ppLCBiaXRtYXAgZm9udHMsIG9yIHRha2UgY3VzdG9tIHRyYWNraW5nIGludG8g
YWNjb3VudAorICAgIGlmIChmb250Lmhhc0N1c3RvbVRyYWNraW5nKCkgfHwgcGxhdGZvcm1EYXRh
LmlzRW1vamkoKSB8fCBwbGF0Zm9ybURhdGEudGV4dFJlbmRlcmluZ01vZGUoKSA9PSBPcHRpbWl6
ZUxlZ2liaWxpdHkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyBGYXN0IGdldHRlciBk
b2Vzbid0IHdvcmsgZm9yIGVtb2ppCi0gICAgaWYgKHBsYXRmb3JtRGF0YS5pc0Vtb2ppKCkpCi0g
ICAgICAgIHJldHVybiBmYWxzZTsKLSAgICAvLyAuLi4gb3IgZm9yIGFueSBiaXRtYXAgZm9udHMg
aW4gZ2VuZXJhbAogICAgIGlmIChhZHZhbmNlRm9yQ29sb3JCaXRtYXBGb250KHBsYXRmb3JtRGF0
YSwgZ2x5cGgsIGFkdmFuY2UpKSB7CiAgICAgICAgIHBvcHVsYXRlZEFkdmFuY2UgPSB0cnVlOwog
ICAgICAgICByZXR1cm4gZmFsc2U7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KaW5kZXgg
YzNiNGQ3OWJhNDJhZjNmZmEwYmY5YWE4ZGMyYjQ1YjZkNTEwZGNmMC4uZDE3NjA5MzVmMzM3YjY5
ZTFkYmUzOWE5YzU1NjA5YjlmZjhhNzY4NiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5t
bQpAQCAtNDEsOCArNDEsOCBAQCBuYW1lc3BhY2UgV2ViQ29yZSB7CiAvLyBUaGVzZSBDb3JlVGV4
dCBUZXh0IFNwYWNpbmcgZmVhdHVyZSBzZWxlY3RvcnMgYXJlIG5vdCBkZWZpbmVkIGluIENvcmVU
ZXh0LgogZW51bSBUZXh0U3BhY2luZ0NURmVhdHVyZVNlbGVjdG9yIHsgVGV4dFNwYWNpbmdQcm9w
b3J0aW9uYWwsIFRleHRTcGFjaW5nRnVsbFdpZHRoLCBUZXh0U3BhY2luZ0hhbGZXaWR0aCwgVGV4
dFNwYWNpbmdUaGlyZFdpZHRoLCBUZXh0U3BhY2luZ1F1YXJ0ZXJXaWR0aCB9OwogCi1Gb250UGxh
dGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiBmb250LCBmbG9hdCBzaXplLCBi
b29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9u
IG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCkKLSAgICA6IEZvbnRQ
bGF0Zm9ybURhdGEoYWRvcHRDRihDVEZvbnRDb3B5R3JhcGhpY3NGb250KGZvbnQsIE5VTEwpKS5n
ZXQoKSwgc2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgb3JpZW50YXRpb24s
IHdpZHRoVmFyaWFudCkKK0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoQ1RGb250
UmVmIGZvbnQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNP
YmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQgd2lk
dGhWYXJpYW50LCBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSkKKyAgICA6IEZv
bnRQbGF0Zm9ybURhdGEoYWRvcHRDRihDVEZvbnRDb3B5R3JhcGhpY3NGb250KGZvbnQsIE5VTEwp
KS5nZXQoKSwgc2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgb3JpZW50YXRp
b24sIHdpZHRoVmFyaWFudCwgdGV4dFJlbmRlcmluZ01vZGUpCiB7CiAgICAgQVNTRVJUX0FSRyhm
b250LCBmb250KTsKICAgICBtX2ZvbnQgPSBmb250OwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KaW5kZXggMGE4Mzk0YWJhMmYx
MTkwMDc3YWVmMjg0Mzg4M2ZkNDVlYWQwNDczOC4uZmVlYThkMzgxNWY2NDc5NmQ2ZjcwZThkN2Rm
OTFmZDM4NDUwNmVlZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvaW9zL0ZvbnRDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9pb3MvRm9udENhY2hlSU9TLm1tCkBAIC05Miw3ICs5Miw3IEBAIFBhc3NSZWZQdHI8Rm9u
dD4gRm9udENhY2hlOjpnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZv
bnREZXNjcmlwCiAgICAgaWYgKCFzdWJzdGl0dXRlRm9udCkKICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CiAKLSAgICBzdWJzdGl0dXRlRm9udCA9IGFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyhzdWJz
dGl0dXRlRm9udC5nZXQoKSwgZGVzY3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCkpOworICAgIHN1
YnN0aXR1dGVGb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChzdWJzdGl0dXRlRm9udC5nZXQoKSwg
ZGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgZGVzY3JpcHRpb24uZmVhdHVyZVNldHRp
bmdzKCkpOwogCiAgICAgQ1RGb250U3ltYm9saWNUcmFpdHMgb3JpZ2luYWxUcmFpdHMgPSBDVEZv
bnRHZXRTeW1ib2xpY1RyYWl0cyhjdEZvbnQpOwogICAgIENURm9udFN5bWJvbGljVHJhaXRzIGFj
dHVhbFRyYWl0cyA9IDA7CkBAIC03MTgsNyArNzE4LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEZvbnRQ
bGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250
RGUKICAgICBpZiAoIWN0Rm9udCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKLSAgICBjdEZv
bnQgPSBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MoY3RGb250LmdldCgpLCBmb250RGVzY3JpcHRp
b24uZmVhdHVyZVNldHRpbmdzKCkpOworICAgIGN0Rm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQo
Y3RGb250LmdldCgpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgZm9udERl
c2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKIAogICAgIENURm9udFN5bWJvbGljVHJhaXRz
IGFjdHVhbFRyYWl0cyA9IDA7CiAgICAgaWYgKGlzRm9udFdlaWdodEJvbGQoZm9udERlc2NyaXB0
aW9uLndlaWdodCgpKSB8fCBmb250RGVzY3JpcHRpb24uaXRhbGljKCkpCkBAIC03MjksNyArNzI5
LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRl
Rm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGUKICAgICBib29sIHN5bnRoZXRpY0JvbGQgPSAo
Zm9udERlc2NyaXB0aW9uLmZvbnRTeW50aGVzaXMoKSAmIEZvbnRTeW50aGVzaXNXZWlnaHQpICYm
ICh0cmFpdHMgJiBrQ1RGb250VHJhaXRCb2xkKSAmJiAhKGFjdHVhbFRyYWl0cyAmIGtDVEZvbnRU
cmFpdEJvbGQpICYmICFpc0FwcGxlQ29sb3JFbW9qaTsKICAgICBib29sIHN5bnRoZXRpY09ibGlx
dWUgPSAoZm9udERlc2NyaXB0aW9uLmZvbnRTeW50aGVzaXMoKSAmIEZvbnRTeW50aGVzaXNTdHls
ZSkgJiYgKHRyYWl0cyAmIGtDVEZvbnRUcmFpdEl0YWxpYykgJiYgIShhY3R1YWxUcmFpdHMgJiBr
Q1RGb250VHJhaXRJdGFsaWMpICYmICFpc0FwcGxlQ29sb3JFbW9qaTsKIAotICAgIGF1dG8gcmVz
dWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxGb250UGxhdGZvcm1EYXRhPihjdEZvbnQuZ2V0KCksIHNp
emUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIGZvbnREZXNjcmlwdGlvbi5vcmll
bnRhdGlvbigpLCBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCkpOworICAgIGF1dG8gcmVz
dWx0ID0gc3RkOjptYWtlX3VuaXF1ZTxGb250UGxhdGZvcm1EYXRhPihjdEZvbnQuZ2V0KCksIHNp
emUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIGZvbnREZXNjcmlwdGlvbi5vcmll
bnRhdGlvbigpLCBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCksIGZvbnREZXNjcmlwdGlv
bi50ZXh0UmVuZGVyaW5nTW9kZSgpKTsKICAgICBpZiAoaXNBcHBsZUNvbG9yRW1vamkpCiAgICAg
ICAgIHJlc3VsdC0+c2V0SXNFbW9qaSh0cnVlKTsKICAgICByZXR1cm4gcmVzdWx0OwpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5t
bSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0K
aW5kZXggMTU4ZmJiMGRiNWYxYmUxODY3NGYwMDQ2NDVhYzM4NzgzMjE5N2JiYS4uZTY2MjhjMGJj
ODM5NmZlOWVkYjZmZmY2ZjAyM2JkNTBhY2U0MjczZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tCkBAIC0yNjQsNyArMjY0
LDcgQEAgc3RhdGljIE9wdGlvbmFsPE5TRm9udCo+IGZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2Uo
Y29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIEYKIC8vIEZhbWlseSBuYW1lIGlzIHNvbWV3aGF0
IG9mIGEgbWlzbm9tZXIgaGVyZS4gV2UgZmlyc3QgYXR0ZW1wdCB0byBmaW5kIGFuIGV4YWN0IG1h
dGNoCiAvLyBjb21wYXJpbmcgdGhlIGRlc2lyZWRGYW1pbHkgdG8gdGhlIFBvc3RTY3JpcHQgbmFt
ZSBvZiB0aGUgaW5zdGFsbGVkIGZvbnRzLiBJZiB0aGF0IGZhaWxzCiAvLyB3ZSB0aGVuIGRvIGEg
c2VhcmNoIGJhc2VkIG9uIHRoZSBmYW1pbHkgbmFtZXMgb2YgdGhlIGluc3RhbGxlZCBmb250cy4K
LXN0YXRpYyBOU0ZvbnQgKmZvbnRXaXRoRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5
LCBOU0ZvbnRUcmFpdE1hc2sgZGVzaXJlZFRyYWl0cywgRm9udFdlaWdodCB3ZWlnaHQsIGNvbnN0
IEZvbnRGZWF0dXJlU2V0dGluZ3MqIGZlYXR1cmVTZXR0aW5ncywgZmxvYXQgc2l6ZSkKK3N0YXRp
YyBOU0ZvbnQgKmZvbnRXaXRoRmFtaWx5KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBOU0Zv
bnRUcmFpdE1hc2sgZGVzaXJlZFRyYWl0cywgRm9udFdlaWdodCB3ZWlnaHQsIGNvbnN0IEZvbnRG
ZWF0dXJlU2V0dGluZ3MqIGZlYXR1cmVTZXR0aW5ncywgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJl
bmRlcmluZ01vZGUsIGZsb2F0IHNpemUpCiB7CiAgICAgaWYgKGNvbnN0IGF1dG8mIHNwZWNpYWxD
YXNlID0gZm9udFdpdGhGYW1pbHlTcGVjaWFsQ2FzZShmYW1pbHksIHdlaWdodCwgZGVzaXJlZFRy
YWl0cywgc2l6ZSkpCiAgICAgICAgIHJldHVybiBzcGVjaWFsQ2FzZS52YWx1ZSgpOwpAQCAtMjg3
LDcgKzI4Nyw3IEBAIHN0YXRpYyBOU0ZvbnQgKmZvbnRXaXRoRmFtaWx5KGNvbnN0IEF0b21pY1N0
cmluZyYgZmFtaWx5LCBOU0ZvbnRUcmFpdE1hc2sgZGVzaXJlCiAKICAgICBOU1N0cmluZyAqZGVz
aXJlZEZhbWlseSA9IGZhbWlseTsKICAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb3VuZEZvbnQg
PSBhZG9wdENGKENURm9udENyZWF0ZUZvckNTUygoQ0ZTdHJpbmdSZWYpZGVzaXJlZEZhbWlseSwg
dG9Db3JlVGV4dEZvbnRXZWlnaHQod2VpZ2h0KSwgcmVxdWVzdGVkVHJhaXRzLCBzaXplKSk7Ci0g
ICAgZm91bmRGb250ID0gYXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGZvdW5kRm9udC5nZXQoKSwg
ZmVhdHVyZVNldHRpbmdzKTsKKyAgICBmb3VuZEZvbnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250KGZv
dW5kRm9udC5nZXQoKSwgdGV4dFJlbmRlcmluZ01vZGUsIGZlYXR1cmVTZXR0aW5ncyk7CiAgICAg
aWYgKCFmb3VuZEZvbnQpCiAgICAgICAgIHJldHVybiBuaWw7CiAgICAgZm9udCA9IENGQnJpZGdp
bmdSZWxlYXNlKENGUmV0YWluKGZvdW5kRm9udC5nZXQoKSkpOwpAQCAtNTIwLDcgKzUyMCw3IEBA
IFJlZlB0cjxGb250PiBGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25z
dCBGb250RGVzY3JpcHRpb24mIGRlc2NyCiAgICAgY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgcGxh
dGZvcm1EYXRhID0gb3JpZ2luYWxGb250RGF0YS0+cGxhdGZvcm1EYXRhKCk7CiAgICAgTlNGb250
ICpuc0ZvbnQgPSBwbGF0Zm9ybURhdGEubnNGb250KCk7CiAgICAgUmV0YWluUHRyPENURm9udFJl
Zj4gcmVzdWx0ID0gbG9va3VwQ1RGb250KHBsYXRmb3JtRGF0YS5mb250KCksIHBsYXRmb3JtRGF0
YS5zaXplKCksIGRlc2NyaXB0aW9uLmxvY2FsZSgpLCBjaGFyYWN0ZXJzLCBsZW5ndGgpOwotICAg
IHJlc3VsdCA9IGFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyhyZXN1bHQuZ2V0KCksIGRlc2NyaXB0
aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICByZXN1bHQgPSBwcmVwYXJlUGxhdGZvcm1Gb250
KHJlc3VsdC5nZXQoKSwgZGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgZGVzY3JpcHRp
b24uZmVhdHVyZVNldHRpbmdzKCkpOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICByZXR1cm4g
bnVsbHB0cjsKIApAQCAtNjc5LDcgKzY3OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZv
cm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAg
ICAgTlNGb250VHJhaXRNYXNrIHRyYWl0cyA9IGZvbnREZXNjcmlwdGlvbi5pdGFsaWMoKSA/IE5T
Rm9udEl0YWxpY1RyYWl0IDogMDsKICAgICBmbG9hdCBzaXplID0gZm9udERlc2NyaXB0aW9uLmNv
bXB1dGVkUGl4ZWxTaXplKCk7CiAKLSAgICBOU0ZvbnQgKm5zRm9udCA9IGZvbnRXaXRoRmFtaWx5
KGZhbWlseSwgdHJhaXRzLCBmb250RGVzY3JpcHRpb24ud2VpZ2h0KCksIGZvbnREZXNjcmlwdGlv
bi5mZWF0dXJlU2V0dGluZ3MoKSwgc2l6ZSk7CisgICAgTlNGb250ICpuc0ZvbnQgPSBmb250V2l0
aEZhbWlseShmYW1pbHksIHRyYWl0cywgZm9udERlc2NyaXB0aW9uLndlaWdodCgpLCBmb250RGVz
Y3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCksIGZvbnREZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5n
TW9kZSgpLCBzaXplKTsKICAgICBpZiAoIW5zRm9udCkgewogICAgICAgICBpZiAoIXNob3VsZEF1
dG9BY3RpdmF0ZUZvbnRJZk5lZWRlZChmYW1pbHkpKQogICAgICAgICAgICAgcmV0dXJuIG51bGxw
dHI7CkBAIC02ODgsNyArNjg4LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9ybURhdGE+
IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGUKICAgICAgICAg
Ly8gSWdub3JlIHRoZSByZXN1bHQgYmVjYXVzZSB3ZSB3YW50IHRvIHVzZSBvdXIgb3duIGFsZ29y
aXRobSB0byBhY3R1YWxseSBmaW5kIHRoZSBmb250LgogICAgICAgICBbTlNGb250IGZvbnRXaXRo
TmFtZTpmYW1pbHkgc2l6ZTpzaXplXTsKIAotICAgICAgICBuc0ZvbnQgPSBmb250V2l0aEZhbWls
eShmYW1pbHksIHRyYWl0cywgZm9udERlc2NyaXB0aW9uLndlaWdodCgpLCBmb250RGVzY3JpcHRp
b24uZmVhdHVyZVNldHRpbmdzKCksIHNpemUpOworICAgICAgICBuc0ZvbnQgPSBmb250V2l0aEZh
bWlseShmYW1pbHksIHRyYWl0cywgZm9udERlc2NyaXB0aW9uLndlaWdodCgpLCBmb250RGVzY3Jp
cHRpb24uZmVhdHVyZVNldHRpbmdzKCksIGZvbnREZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9k
ZSgpLCBzaXplKTsKICAgICAgICAgaWYgKCFuc0ZvbnQpCiAgICAgICAgICAgICByZXR1cm4gbnVs
bHB0cjsKICAgICB9CkBAIC03MDMsNyArNzAzLDcgQEAgc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0
Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGUK
ICAgICBib29sIHN5bnRoZXRpY0JvbGQgPSAoZm9udERlc2NyaXB0aW9uLmZvbnRTeW50aGVzaXMo
KSAmIEZvbnRTeW50aGVzaXNXZWlnaHQpICYmIGlzQXBwS2l0Rm9udFdlaWdodEJvbGQodG9BcHBL
aXRGb250V2VpZ2h0KGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSkpICYmICFpc0FwcEtpdEZvbnRX
ZWlnaHRCb2xkKGFjdHVhbFdlaWdodCk7CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gKGZv
bnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzU3R5bGUpICYmICh0
cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYgIShhY3R1YWxUcmFpdHMgJiBOU0ZvbnRJdGFs
aWNUcmFpdCk7CiAKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxGb250UGxhdGZvcm1EYXRh
PihyZWludGVycHJldF9jYXN0PENURm9udFJlZj4ocGxhdGZvcm1Gb250KSwgc2l6ZSwgc3ludGhl
dGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgZm9udERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCks
IGZvbnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSk7CisgICAgcmV0dXJuIHN0ZDo6bWFrZV91
bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4ocmVpbnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KHBsYXRm
b3JtRm9udCksIHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIGZvbnREZXNj
cmlwdGlvbi5vcmllbnRhdGlvbigpLCBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCksIGZv
bnREZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpKTsKIH0KIAogfSAvLyBuYW1lc3BhY2Ug
V2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCmluZGV4IGVmMTIyN2JiMWQxOTgx
YTBjNzQwZmU3N2FhYTQ2ZDViN2MyYzdkOWEuLjZlNjgxMmE5OGZiYjQzYjI3Mzc5ZTY2ZTgyNmU0
N2JjNTkzZWZlMGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKQEAgLTQxLDcgKzQx
LDcgQEAgRm9udFBsYXRmb3JtRGF0YSBGb250Q3VzdG9tUGxhdGZvcm1EYXRhOjpmb250UGxhdGZv
cm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYKICAgICBGb250V2lkdGhWYXJpYW50IHdpZHRo
VmFyaWFudCA9IGZvbnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKTsKICNpZiBDT1JFVEVYVF9X
RUJfRk9OVFMKICAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRDRihDVEZvbnRD
cmVhdGVXaXRoRm9udERlc2NyaXB0b3IobV9mb250RGVzY3JpcHRvci5nZXQoKSwgc2l6ZSwgbnVs
bHB0cikpOwotICAgIGZvbnQgPSBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MoZm9udC5nZXQoKSwg
Zm9udERlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICBmb250ID0gcHJlcGFyZVBs
YXRmb3JtRm9udChmb250LmdldCgpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUo
KSwgZm9udERlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKICAgICByZXR1cm4gRm9udFBs
YXRmb3JtRGF0YShmb250LmdldCgpLCBzaXplLCBib2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uLCB3
aWR0aFZhcmlhbnQpOwogI2Vsc2UKICAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShtX2NnRm9u
dC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50KTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQ
SS5oIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKaW5k
ZXggMjYwNmMyNmM0NTY1ZmMzMzUzYzVkMWJlMmE3ZDkzNmQ2NWQ5NTU5OC4uMDdkNWRlYWMxZmFi
ZDczZDE3ZGYyNDA1M2VlYjY2MGFiNGJlZDVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgdHlwZWRlZiBj
b25zdCBVbmlDaGFyKiAoKkNUVW5pQ2hhclByb3ZpZGVyQ2FsbGJhY2spKENGSW5kZXggc3RyaW5n
SW5kZXgsIENGSW5kZXgKIHR5cGVkZWYgdm9pZCAoKkNUVW5pQ2hhckRpc3Bvc2VDYWxsYmFjayko
Y29uc3QgVW5pQ2hhciogY2hhcnMsIHZvaWQqIHJlZkNvbik7CiAKIGV4dGVybiBjb25zdCBDRlN0
cmluZ1JlZiBrQ1RGb250UmVmZXJlbmNlVVJMQXR0cmlidXRlOworZXh0ZXJuIGNvbnN0IENGU3Ry
aW5nUmVmIGtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZTsKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQogI2lmICFVU0UoQVBQTEVfSU5URVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNv
cmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5n
L1JlbmRlclRoZW1lSU9TLm1tCmluZGV4IDU1NzgyZDE0OTNlMDk2NTdlMjIwMmE0MTE3ZjFkODRl
MzUyMjI2YzcuLmI3M2M1YTg5NTIxNmVjZWUzNmQwZDAxM2M1OGI4YjMxZjVmMTU0MGUgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9T
b3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTEyNjEsNyArMTI2
MSw3IEBAIHZvaWQgUmVuZGVyVGhlbWVJT1M6OnVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlw
dGlvbihDU1NWYWx1ZUlEIHZhbHVlSUQsIEZvbnRECiAKICAgICBBU1NFUlQoZm9udERlc2NyaXB0
b3IpOwogICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IGZvbnQgPSBhZG9wdENGKENURm9udENyZWF0
ZVdpdGhGb250RGVzY3JpcHRvcihmb250RGVzY3JpcHRvci5nZXQoKSwgMCwgbnVsbHB0cikpOwot
ICAgIGZvbnQgPSBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MoZm9udC5nZXQoKSwgZm9udERlc2Ny
aXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICBmb250ID0gcHJlcGFyZVBsYXRmb3JtRm9u
dChmb250LmdldCgpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgZm9udERl
c2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0SXNB
YnNvbHV0ZVNpemUodHJ1ZSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWlseSh0ZXh0
U3R5bGUpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRTcGVjaWZpZWRTaXplKENURm9udEdldFNp
emUoZm9udC5nZXQoKSkpOwpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDIwMWNhN2M4NjUwYTZiNzY1YmYxYWM4YTU1NTZmOTBm
ZTk0YTllZWMuLjE5OGYxODViODM5NTQwNGM4ODY4NzlkZDM4MDU3OWI5ODY4N2ZjMDkgMTAwNjQ0
Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cK
QEAgLTEsNSArMSwxOSBAQAogMjAxNS0wOC0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4Zmll
bGRAYXBwbGUuY29tPgogCisgICAgICAgIFtDb2NvYV0gSG9ub3IgdGhlICd0cmFrJyB0YWJsZSBi
eSBvcHRpbmcgaW4gdmlhIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkKKyAgICAg
ICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODExOQorICAgICAg
ICA8cmRhcjovL3Byb2JsZW0vMjIyOTE1NjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZ
IChPT1BTISkuCisKKyAgICAgICAgVGhpcyB0ZXN0IHdpbGwgZmFpbCB1bnRpbCB3ZSBzdG9wIG1v
Y2tpbmcgdGhlIHN5c3RlbSBmb250IG9uIEVsIENhcGl0YW4uIFVudGlsIHRoZW4sCisgICAgICAg
IHRoaXMgcGF0Y2ggd2lsbCBjb21taXQgdGhlIHRlc3QgZmFpbHVyZSBhcyBhbiBleHBlY3RlZCBy
ZXN1bHQuCisKKyAgICAgICAgKiBmYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2liaWxpdHktZXhw
ZWN0ZWQuaHRtbDogQWRkZWQKKyAgICAgICAgKiBmYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2li
aWxpdHkuaHRtbDogQWRkZWQKKworMjAxNS0wOC0xNyAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4
ZmllbGRAYXBwbGUuY29tPgorCiAgICAgICAgIFtXaW5dIFRlc3QgZ2FyZGVuaW5nCiAKICAgICAg
ICAgVW5yZXZpZXdlZC4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90cmFrLW9w
dGltaXplTGVnaWJpbGl0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdHJh
ay1vcHRpbWl6ZUxlZ2liaWxpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmZjA3OWYwOTJi
OGQxMTEwZDg4OWVkYTk4ZmIwZDU1YTU2NGE2OGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2liaWxpdHktZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1BBU1MgZmlyc3QuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggaXMgMQorUEFT
UyB0aGlyZC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCBpcyAxCitGQUlMIGZpcnN0LmdldENsaWVu
dFJlY3RzKClbMF0ucmlnaHQgc2hvdWxkIGJlIHdpdGhpbiA0IG9mIDM0Ni4gV2FzIDM2NC4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVGhpcyB0ZXN0
IG1ha2VzIHN1cmUgdGhhdCB5b3UgY2FuIG9wdC1pbiB0byBob25vcmluZyB0aGUgJ3RyYWsnIHRh
YmxlIGJ5IHNwZWNpZnlpbmcgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eS4gVGhl
IGZpcnN0IGFuZCB0aGlyZCBsaW5lcyBiZWxvdyBzaG91bGQgaGF2ZSB0aGUgc2FtZSB3aWR0aC4g
VGhlIG1pZGRsZSBvbmUgY2FuIChidXQgZG9lc24ndCBoYXZlIHRvKSBoYXZlIGEgZGlmZmVyZW50
IHdpZHRoLgoraGFtYnVyZ2Vmb25zdGl2CisKK2hhbWJ1cmdlZm9uc3RpdgorCitoYW1idXJnZWZv
bnN0aXYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90cmFrLW9wdGltaXplTGVn
aWJpbGl0eS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmls
aXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODg0OTRiMTYwZjM1YWEzNTA2ODU3ODEwMDA0MDEyMWRkMjZj
NDNlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90cmFrLW9wdGlt
aXplTGVnaWJpbGl0eS5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHlv
dSBjYW4gb3B0LWluIHRvIGhvbm9yaW5nIHRoZSAndHJhaycgdGFibGUgYnkgc3BlY2lmeWluZyB0
ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5LgorVGhlIGZpcnN0IGFuZCB0aGlyZCBs
aW5lcyBiZWxvdyBzaG91bGQgaGF2ZSB0aGUgc2FtZSB3aWR0aC4gVGhlIG1pZGRsZSBvbmUgY2Fu
IChidXQgZG9lc24ndCBoYXZlIHRvKSBoYXZlIGEgZGlmZmVyZW50IHdpZHRoLgorPHA+PHNwYW4g
aWQ9ImZpcnN0IiBzdHlsZT0iZm9udDogNTBweCAnLWFwcGxlLXN5c3RlbSc7IGZvbnQtd2VpZ2h0
OiAzMDA7Ij5oYW1idXJnZWZvbnN0aXY8L3NwYW4+PC9wPgorPHA+PHNwYW4gaWQ9InNlY29uZCIg
c3R5bGU9ImZvbnQ6IDUwcHggJy5TRk5TVGV4dC1MaWdodCcgJy5TRlVJRGlzcGxheS1MaWdodCc7
Ij5oYW1idXJnZWZvbnN0aXY8L3NwYW4+PC9wPgorPHA+PHNwYW4gaWQ9InRoaXJkIiBzdHlsZT0i
Zm9udDogNTBweCAnLlNGTlNUZXh0LUxpZ2h0JyAnLlNGVUlEaXNwbGF5LUxpZ2h0JzsgdGV4dC1y
ZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsiPmhhbWJ1cmdlZm9uc3Rpdjwvc3Bhbj48L3A+
Cis8c2NyaXB0PgordmFyIGZpcnN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpcnN0Iik7
Cit2YXIgdGhpcmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGhpcmQiKTsKK3Nob3VsZEJl
KCJmaXJzdC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCIsICIxIik7CitzaG91bGRCZSgidGhpcmQu
Z2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgiLCAiMSIpOworc2hvdWxkQmVDbG9zZVRvKCJmaXJzdC5n
ZXRDbGllbnRSZWN0cygpWzBdLnJpZ2h0IiwgdGhpcmQuZ2V0Q2xpZW50UmVjdHMoKVswXS5yaWdo
dCwgNCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmls
aXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFz
dC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NWZmYzE3NDBjOTk4NDFjNDVkNDNhZGI3ODFmN2I4NTE3MDhkOTRmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0L3RleHQvdHJhay1vcHRp
bWl6ZUxlZ2liaWxpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1BBU1MgZmlyc3Qu
Z2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggaXMgMQorUEFTUyB0aGlyZC5nZXRDbGllbnRSZWN0cygp
Lmxlbmd0aCBpcyAxCitQQVNTIGZpcnN0LmdldENsaWVudFJlY3RzKClbMF0ucmlnaHQgaXMgd2l0
aGluIDQgb2YgMzY5CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgeW91IGNhbiBvcHQtaW4gdG8gaG9ub3Jp
bmcgdGhlICd0cmFrJyB0YWJsZSBieSBzcGVjaWZ5aW5nIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6
ZUxlZ2liaWxpdHkuIFRoZSBmaXJzdCBhbmQgdGhpcmQgbGluZXMgYmVsb3cgc2hvdWxkIGhhdmUg
dGhlIHNhbWUgd2lkdGguIFRoZSBtaWRkbGUgb25lIGNhbiAoYnV0IGRvZXNuJ3QgaGF2ZSB0bykg
aGF2ZSBhIGRpZmZlcmVudCB3aWR0aC4KK2hhbWJ1cmdlZm9uc3RpdgorCitoYW1idXJnZWZvbnN0
aXYKKworaGFtYnVyZ2Vmb25zdGl2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDBjMTA2YjY1ZGI3MWE2ZGVlMDE0YWI1ZWU2YjMyNzA2MGQzZmNkYmYuLmI3
MzJhZGQzNjVmMDBmODMyZjcxMjU0YjMzZmQ4MzY3MjNlNjMwNjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjk2LDMgKzEyOTYsNiBAQCB3ZWJraXQu
b3JnL2IvMTQ3MzkwIFsgTWF2ZXJpY2tzIFlvc2VtaXRlIEVsQ2FwaXRhbiBdIGZhc3QvdGV4dC9m
YWxsYmFjay1sYW5ndWFnZQogCiAjIFN0YXJ0ZWQgdG8gZmFpbCBhZnRlciByMTg4MzkwCiB3ZWJr
aXQub3JnL2IvMTQ4MDQyIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tYnVmZmVyZWQtcmFuZ2UtY29u
dGFpbnMtY3VycmVudFRpbWUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKKyMgVGhpcyB0ZXN0IHRl
c3RzIGEgcGFydGljdWxhciBzeXN0ZW0gZm9udCwgd2hpY2ggaXMgb25seSBvbiBpT1MgYW5kIEVs
IENhcGl0YW4uCit3ZWJraXQub3JnL2IvMTQ4MTE5IFsgTWF2ZXJpY2tzIFlvc2VtaXRlIF0gZmFz
dC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5Lmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259244</attachid>
            <date>2015-08-17 21:50:07 -0700</date>
            <delta_ts>2015-08-17 22:54:07 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148119-20150817215006.patch</filename>
            <type>text/plain</type>
            <size>30429</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NTc0CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMjQxMmM3OTQ0MjAwY2U4
OWE4ODAyYzkxNzM4NzZjMzIyNWJmYjBlZS4uMmEwNTAwMzg1YmMwZjU4ZWQ5YmJkY2E1NWYxYTBh
YzM3OWMyMmFjNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTA4LTE3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBI
b25vciB0aGUgJ3RyYWsnIHRhYmxlIGJ5IG9wdGluZyBpbiB2aWEgdGV4dC1yZW5kZXJpbmc6IG9w
dGltaXplTGVnaWJpbGl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MTE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjI5MTU2MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZSBhdXRo
b3IgaGFzIG9wdGVkIGluIGJ5IHNwZWNpZnlpbmcgInRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxl
Z2liaWxpdHk7Iiwgd2Ugc2hvdWxkCisgICAgICAgIGhvbm9yIHRoZSBmb250J3MgJ3RyYWsnIHRh
YmxlLiBXZSBkbyB0aGlzIGJ5IHNwZWNpZnlpbmcga0NURm9udE9wdGljYWxTaXplQXR0cmlidXRl
IGF0IGZvbnQKKyAgICAgICAgY3JlYXRpb24gdGltZSwgYW5kIGJ5IHVzaW5nIENURm9udEdldEFk
dmFuY2VzRm9yR2x5cGhzKCkgaW5zdGVhZCBvZgorICAgICAgICBDR0ZvbnRHZXRHbHlwaEFkdmFu
Y2VzRm9yU3R5bGUoKS4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxl
Z2liaWxpdHkuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb25LZXk6Om1ha2VGbGFnS2V5KTogTWFr
ZSBvdXIgY2FjaGVzIHNlbnNpdGl2ZSB0byBUZXh0UmVuZGVyaW5nTW9kZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBBZGQgYSBUZXh0UmVuZGVyaW5n
TW9kZSBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpvcGVyYXRvcj0pOiBVcGRhdGUgdG8gY29uc3VsdCB3aXRoIHRoZSBuZXcgbWVtYmVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnRleHRSZW5kZXJpbmdNb2RlKTogR2V0dGVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXBhcmVQbGF0Zm9ybUZvbnQpOiBTcGVjaWZ5IGtDVEZvbnRPcHRp
Y2FsU2l6ZUF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5Rm9udEZlYXR1cmVTZXR0
aW5ncyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRlcik6
IFVzZSBDVEZvbnRHZXRBZHZhbmNlc0ZvckdseXBocygpIGlmIHdlIGFyZQorICAgICAgICBvcHRp
bWl6ZUxlZ2liaWxpdHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBs
YXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YSk6IFBhc3MgdGhlIFRleHRSZW5kZXJpbmdNb2RlIGFyb3VuZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhY2hlOjpnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFyYWN0ZXJzKTog
VXBkYXRlIHRvIGNhbGwgcmVuYW1lZCBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpmb250V2l0
aEZhbWlseSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzeXN0ZW1GYWxs
YmFja0ZvckNoYXJhY3RlcnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6
Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBEaXR0by4KKyAgICAgICAg
KiBwbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6dXBk
YXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKTogRGl0dG8uCisKIDIwMTUtMDgtMTcgIEFs
ZXggQ2hyaXN0ZW5zZW4gIDxhY2hyaXN0ZW5zZW5Ad2Via2l0Lm9yZz4KIAogICAgICAgICBXaW5D
YWlybyBidWlsZCBmaXggYWZ0ZXIgcjE4ODU2NgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCBiZDhmYTE3OGM0ZmM0ODg2MGQzMDI5YWM2NDJmYjhi
ODNiYWY2OWI2Li44YzhmMjY0NGJhZjZkNmI3MjIxZTJhOWRhMDU5MDZkMTY4ZWU2ZTIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAtMTA1LDcg
KzEwNSw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHVuc2lnbmVkIG1ha2VGbGFnS2V5KGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCiAgICAgewogICAgICAgICBzdGF0aWNfYXNz
ZXJ0KFVTQ1JJUFRfQ09ERV9MSU1JVCA8IDB4MTAwMCwgIlNjcmlwdCBjb2RlIG11c3QgZml0IGlu
IGFuIHVuc2lnbmVkIGFsb25nIHdpdGggdGhlIG90aGVyIGZsYWdzIik7Ci0gICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24uc2NyaXB0KCkpIDw8IDkKKyAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5zY3JpcHQoKSkgPDwg
MTEKKyAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnRleHRS
ZW5kZXJpbmdNb2RlKCkpIDw8IDkKICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGRlc2NyaXB0aW9uLnNtYWxsQ2FwcygpKSA8PCA4CiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkpIDw8IDYKICAgICAgICAgICAg
IHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpKSA8PCA0
CkBAIC0yMTUsNyArMjE2LDcgQEAgcHJpdmF0ZToKIH07CiAKICNpZiBQTEFURk9STShDT0NPQSkK
LVJldGFpblB0cjxDVEZvbnRSZWY+IGFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyhDVEZvbnRSZWYs
IGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqKTsKK1JldGFpblB0cjxDVEZvbnRSZWY+IHByZXBh
cmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmLCBUZXh0UmVuZGVyaW5nTW9kZSwgY29uc3QgRm9udEZl
YXR1cmVTZXR0aW5ncyopOwogI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcApp
bmRleCAzODgzNTQwZTkzZTNkYjljYTNhNmFhYTU2NGE1ZmI2MjkzMmVmMzk0Li5kZDgzZGVmMDMw
ZGZlMzFlOGEyYTQ3MjY1MDZkM2ZiMWY1YjYzNTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcApAQCAtNDMsMjUgKzQz
LDI2IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoKQogewogfQogCi1Gb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGlj
Qm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24s
IEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGlj
T2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdp
ZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCiAgICAgOiBt
X3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShz
eW50aGV0aWNPYmxpcXVlKQogICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKICAgICAs
IG1fc2l6ZShzaXplKQogICAgICwgbV93aWR0aFZhcmlhbnQod2lkdGhWYXJpYW50KQorICAgICwg
bV90ZXh0UmVuZGVyaW5nTW9kZSh0ZXh0UmVuZGVyaW5nTW9kZSkKIHsKIH0KIAogI2lmIFVTRShD
RykKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoQ0dGb250UmVmIGNnRm9udCwg
ZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZv
bnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQp
Ci0gICAgOiBGb250UGxhdGZvcm1EYXRhKHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09i
bGlxdWUsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQpCitGb250UGxhdGZvcm1EYXRhOjpGb250
UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGlj
Qm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24s
IEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50LCBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVu
ZGVyaW5nTW9kZSkKKyAgICA6IEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgc3ludGhldGljQm9sZCwg
c3ludGhldGljT2JsaXF1ZSwgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgdGV4dFJlbmRlcmlu
Z01vZGUpCiB7CiAgICAgbV9jZ0ZvbnQgPSBjZ0ZvbnQ7CiB9CiAjZW5kaWYKIAogRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBzb3VyY2Up
Ci0gICAgOiBGb250UGxhdGZvcm1EYXRhKHNvdXJjZS5tX3NpemUsIHNvdXJjZS5tX3N5bnRoZXRp
Y0JvbGQsIHNvdXJjZS5tX3N5bnRoZXRpY09ibGlxdWUsIHNvdXJjZS5tX29yaWVudGF0aW9uLCBz
b3VyY2UubV93aWR0aFZhcmlhbnQpCisgICAgOiBGb250UGxhdGZvcm1EYXRhKHNvdXJjZS5tX3Np
emUsIHNvdXJjZS5tX3N5bnRoZXRpY0JvbGQsIHNvdXJjZS5tX3N5bnRoZXRpY09ibGlxdWUsIHNv
dXJjZS5tX29yaWVudGF0aW9uLCBzb3VyY2UubV93aWR0aFZhcmlhbnQsIHNvdXJjZS5tX3RleHRS
ZW5kZXJpbmdNb2RlKQogewogICAgIG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUgPSBzb3VyY2Uu
bV9pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZTsKICAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gc291
cmNlLm1faXNDb2xvckJpdG1hcEZvbnQ7CkBAIC04MSw2ICs4Miw3IEBAIGNvbnN0IEZvbnRQbGF0
Zm9ybURhdGEmIEZvbnRQbGF0Zm9ybURhdGE6Om9wZXJhdG9yPShjb25zdCBGb250UGxhdGZvcm1E
YXRhJiBvdGhlCiAgICAgbV9zaXplID0gb3RoZXIubV9zaXplOwogICAgIG1fd2lkdGhWYXJpYW50
ID0gb3RoZXIubV93aWR0aFZhcmlhbnQ7CiAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IG90aGVy
Lm1faXNDb2xvckJpdG1hcEZvbnQ7CisgICAgbV90ZXh0UmVuZGVyaW5nTW9kZSA9IG90aGVyLm1f
dGV4dFJlbmRlcmluZ01vZGU7CiAKICAgICByZXR1cm4gcGxhdGZvcm1EYXRhQXNzaWduKG90aGVy
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQ
bGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0
Zm9ybURhdGEuaAppbmRleCA3ZmU4ZDA5NDQzY2NjMGU4YzAxYzQxZjNkMTdlMzUxMGIxYmY3MTAw
Li40OTc4ZjhkMTI2MTM0NDQyYTA5NzVhMmE0NzI5MzZlMWQ4M2JkNmYzIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCkBAIC04
MSwxNCArODEsMTQgQEAgcHVibGljOgogICAgIEZvbnRQbGF0Zm9ybURhdGEoKTsKICAgICBGb250
UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKICAgICBGb250UGxhdGZvcm1E
YXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5KTsK
LSAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9v
bCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250V2lk
dGhWYXJpYW50ID0gUmVndWxhcldpZHRoKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNp
emUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50
YXRpb24gPSBIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gUmVndWxhcldpZHRoLCBUZXh0
UmVuZGVyaW5nTW9kZSA9IEF1dG9UZXh0UmVuZGVyaW5nKTsKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRQbGF0Zm9ybURhdGEoQ1RGb250UmVmLCBmbG9hdCBz
aXplLCBib29sIHN5bnRoZXRpY0JvbGQgPSBmYWxzZSwgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0g
ZmFsc2UsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBS
ZWd1bGFyV2lkdGgpOworICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRQbGF0Zm9ybURhdGEoQ1RGb250
UmVmLCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQgPSBmYWxzZSwgYm9vbCBzeW50aGV0
aWNPYmxpcXVlID0gZmFsc2UsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0
aFZhcmlhbnQgPSBSZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2RlID0gQXV0b1RleHRSZW5k
ZXJpbmcpOwogI2VuZGlmCiAKICNpZiBVU0UoQ0cpCi0gICAgRm9udFBsYXRmb3JtRGF0YShDR0Zv
bnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxp
cXVlLCBGb250T3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQpOworICAgIEZvbnRQbGF0Zm9y
bURhdGEoQ0dGb250UmVmLCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50LCBUZXh0UmVu
ZGVyaW5nTW9kZSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTEzNiw2ICsxMzYs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0NvbG9yQml0bWFwRm9udCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNDb2xvckJpdG1hcEZvbnQ7IH0KICAgICBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24o
KSBjb25zdCB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9CiAgICAgRm9udFdpZHRoVmFyaWFudCB3
aWR0aFZhcmlhbnQoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoVmFyaWFudDsgfQorICAgIFRleHRS
ZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0UmVu
ZGVyaW5nTW9kZTsgfQogICAgIGJvb2wgaXNGb3JUZXh0Q29tYmluZSgpIGNvbnN0IHsgcmV0dXJu
IHdpZHRoVmFyaWFudCgpICE9IFJlZ3VsYXJXaWR0aDsgfSAvLyBLZWVwIGluIHN5bmMgd2l0aCBj
YWxsZXJzIG9mIEZvbnREZXNjcmlwdGlvbjo6c2V0V2lkdGhWYXJpYW50KCkuCiAKICAgICB2b2lk
IHNldE9yaWVudGF0aW9uKEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29yaWVudGF0
aW9uID0gb3JpZW50YXRpb247IH0KQEAgLTE1MSw3ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBtX2ZvbnQgPyBtX2ZvbnQtPmhhc2goKSA6IDA7CiAjZWxpZiBPUyhEQVJXSU4pCiAg
ICAgICAgIEFTU0VSVChtX2ZvbnQgfHwgIW1fY2dGb250IHx8IGlzRW1vamkoKSk7Ci0gICAgICAg
IHVpbnRwdHJfdCBmbGFncyA9IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4obV9pc0hhc2hUYWJsZURl
bGV0ZWRWYWx1ZSA8PCA0IHwgaXNFbW9qaSgpIDw8IDMgfCBtX29yaWVudGF0aW9uIDw8IDIgfCBt
X3N5bnRoZXRpY0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2JsaXF1ZSk7CisgICAgICAgIHVpbnRw
dHJfdCBmbGFncyA9IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4obV9pc0hhc2hUYWJsZURlbGV0ZWRW
YWx1ZSA8PCA2IHwgbV90ZXh0UmVuZGVyaW5nTW9kZSA8PCA0IHwgaXNFbW9qaSgpIDw8IDMgfCBt
X29yaWVudGF0aW9uIDw8IDIgfCBtX3N5bnRoZXRpY0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2Js
aXF1ZSk7CiAjaWYgVVNFKEFQUEtJVCkKICAgICAgICAgdWludHB0cl90IGZvbnRIYXNoID0gKHVp
bnRwdHJfdCltX2ZvbnQuZ2V0KCk7CiAjZWxzZQpAQCAtMTc1LDcgKzE3Niw4IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICYmIG1fc3ludGhldGljT2JsaXF1ZSA9PSBvdGhlci5tX3N5bnRoZXRpY09i
bGlxdWUKICAgICAgICAgICAgICYmIG1faXNDb2xvckJpdG1hcEZvbnQgPT0gb3RoZXIubV9pc0Nv
bG9yQml0bWFwRm9udAogICAgICAgICAgICAgJiYgbV9vcmllbnRhdGlvbiA9PSBvdGhlci5tX29y
aWVudGF0aW9uCi0gICAgICAgICAgICAmJiBtX3dpZHRoVmFyaWFudCA9PSBvdGhlci5tX3dpZHRo
VmFyaWFudDsKKyAgICAgICAgICAgICYmIG1fd2lkdGhWYXJpYW50ID09IG90aGVyLm1fd2lkdGhW
YXJpYW50CisgICAgICAgICAgICAmJiBtX3RleHRSZW5kZXJpbmdNb2RlID09IG90aGVyLm1fdGV4
dFJlbmRlcmluZ01vZGU7CiAgICAgfQogCiAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpIGNvbnN0CkBAIC0yMTYsNiArMjE4LDcgQEAgcHVibGljOgogICAgIEZvbnRPcmllbnRhdGlv
biBtX29yaWVudGF0aW9uIHsgSG9yaXpvbnRhbCB9OwogICAgIGZsb2F0IG1fc2l6ZSB7IDAgfTsK
ICAgICBGb250V2lkdGhWYXJpYW50IG1fd2lkdGhWYXJpYW50IHsgUmVndWxhcldpZHRoIH07Cisg
ICAgVGV4dFJlbmRlcmluZ01vZGUgbV90ZXh0UmVuZGVyaW5nTW9kZSB7IEF1dG9UZXh0UmVuZGVy
aW5nIH07CiAKIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4
dC5jcHAKaW5kZXggYjQyNGE5ODRkMjA0NmY5YTJkMDAwN2VjYTZiNWZhNWNmMDgwMmJjMC4uOGRj
NWRjOGU0ZTJhZjVkNjNlZjk3NWM4MTE3MTI2ODc4MmY2MzI0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVU
ZXh0LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkZvbnRDYWNoZS5oIgogCisjaW5jbHVkZSAiQ29yZVRleHRTUEkuaCIKICNpbmNsdWRlIDxDb3Jl
VGV4dC9TRk5UTGF5b3V0VHlwZXMuaD4KIAogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgpAQCAtMTM3LDE4ICsxMzgsMzUgQEAgc3RhdGljIGlubGluZSB2b2lkIGFwcGVuZE9wZW5UeXBl
RmVhdHVyZShDRk11dGFibGVBcnJheVJlZiBmZWF0dXJlcywgY29uc3QgRm9udEYKICNlbmRpZgog
fQogCi1SZXRhaW5QdHI8Q1RGb250UmVmPiBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MoQ1RGb250
UmVmIG9yaWdpbmFsRm9udCwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZXMpCitS
ZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5h
bEZvbnQsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlLCBjb25zdCBGb250RmVh
dHVyZVNldHRpbmdzKiBmZWF0dXJlcykKIHsKLSAgICBpZiAoIW9yaWdpbmFsRm9udCB8fCAhZmVh
dHVyZXMgfHwgIWZlYXR1cmVzLT5zaXplKCkpCisgICAgaWYgKCFvcmlnaW5hbEZvbnQgfHwgKCgh
ZmVhdHVyZXMgfHwgIWZlYXR1cmVzLT5zaXplKCkpICYmICh0ZXh0UmVuZGVyaW5nTW9kZSAhPSBP
cHRpbWl6ZUxlZ2liaWxpdHkpKSkKICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRm9udDsKIAotICAg
IFJldGFpblB0cjxDRk11dGFibGVBcnJheVJlZj4gZmVhdHVyZUFycmF5ID0gYWRvcHRDRihDRkFy
cmF5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmZWF0dXJlcy0+c2l6ZSgpLCAm
a0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmZWF0
dXJlcy0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgYXBwZW5kVHJ1ZVR5cGVGZWF0dXJlKGZlYXR1
cmVBcnJheS5nZXQoKSwgZmVhdHVyZXMtPmF0KGkpKTsKLSAgICAgICAgYXBwZW5kT3BlblR5cGVG
ZWF0dXJlKGZlYXR1cmVBcnJheS5nZXQoKSwgZmVhdHVyZXMtPmF0KGkpKTsKKyAgICBSZXRhaW5Q
dHI8Q0ZNdXRhYmxlQXJyYXlSZWY+IGZlYXR1cmVBcnJheTsKKyAgICBpZiAoZmVhdHVyZXMgJiYg
ZmVhdHVyZXMtPnNpemUoKSkgeworICAgICAgICBmZWF0dXJlQXJyYXkgPSBhZG9wdENGKENGQXJy
YXlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGZlYXR1cmVzLT5zaXplKCksICZr
Q0ZUeXBlQXJyYXlDYWxsQmFja3MpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBm
ZWF0dXJlcy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGFwcGVuZFRydWVUeXBlRmVhdHVy
ZShmZWF0dXJlQXJyYXkuZ2V0KCksIGZlYXR1cmVzLT5hdChpKSk7CisgICAgICAgICAgICBhcHBl
bmRPcGVuVHlwZUZlYXR1cmUoZmVhdHVyZUFycmF5LmdldCgpLCBmZWF0dXJlcy0+YXQoaSkpOwor
ICAgICAgICB9CisgICAgfQorICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25h
cnk7CisgICAgaWYgKHRleHRSZW5kZXJpbmdNb2RlID09IE9wdGltaXplTGVnaWJpbGl0eSAmJiBm
ZWF0dXJlQXJyYXkgJiYgQ0ZBcnJheUdldENvdW50KGZlYXR1cmVBcnJheS5nZXQoKSkpIHsKKyAg
ICAgICAgQ0dGbG9hdCBzaXplID0gQ1RGb250R2V0U2l6ZShvcmlnaW5hbEZvbnQpOworICAgICAg
ICBSZXRhaW5QdHI8Q0ZOdW1iZXJSZWY+IHNpemVOdW1iZXIgPSBhZG9wdENGKENGTnVtYmVyQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckNHRmxvYXRUeXBlLCAmc2l6ZSkpOwor
ICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RmVhdHVyZVNldHRpbmdzQXR0cmli
dXRlLCBrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGUgfTsKKyAgICAgICAgQ0ZUeXBlUmVmIHZh
bHVlc1tdID0geyBmZWF0dXJlQXJyYXkuZ2V0KCksIHNpemVOdW1iZXIuZ2V0KCkgfTsKKyAgICAg
ICAgZGljdGlvbmFyeSA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpLCAma0NGVHlwZURp
Y3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7
CisgICAgfSBlbHNlIGlmIChmZWF0dXJlQXJyYXkgJiYgQ0ZBcnJheUdldENvdW50KGZlYXR1cmVB
cnJheS5nZXQoKSkpIHsKKyAgICAgICAgQ0ZBcnJheVJlZiBmZWF0dXJlQXJyYXlQdHIgPSBmZWF0
dXJlQXJyYXkuZ2V0KCk7CisgICAgICAgIGRpY3Rpb25hcnkgPSBhZG9wdENGKENGRGljdGlvbmFy
eUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3Qgdm9pZCoqKSZrQ1RGb250RmVhdHVy
ZVNldHRpbmdzQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZmZWF0dXJlQXJyYXlQdHIsIDEsICZr
Q0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxs
QmFja3MpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBDR0Zsb2F0IHNpemUgPSBDVEZvbnRHZXRT
aXplKG9yaWdpbmFsRm9udCk7CisgICAgICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gc2l6ZU51
bWJlciA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVt
YmVyQ0dGbG9hdFR5cGUsICZzaXplKSk7CisgICAgICAgIENGTnVtYmVyUmVmIHNpemVOdW1iZXJQ
dHIgPSBzaXplTnVtYmVyLmdldCgpOworICAgICAgICBkaWN0aW9uYXJ5ID0gYWRvcHRDRihDRkRp
Y3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IHZvaWQqKikma0NURm9u
dE9wdGljYWxTaXplQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZzaXplTnVtYmVyUHRyLCAxLCAm
a0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2Fs
bEJhY2tzKSk7CiAgICAgfQotICAgIENGQXJyYXlSZWYgZmVhdHVyZUFycmF5UHRyID0gZmVhdHVy
ZUFycmF5LmdldCgpOwotICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnkg
PSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3Qg
dm9pZCoqKSZrQ1RGb250RmVhdHVyZVNldHRpbmdzQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZm
ZWF0dXJlQXJyYXlQdHIsIDEsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5
cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3Jp
cHRvclJlZj4gZGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZVdpdGhB
dHRyaWJ1dGVzKGRpY3Rpb25hcnkuZ2V0KCkpKTsKICAgICByZXR1cm4gYWRvcHRDRihDVEZvbnRD
cmVhdGVDb3B5V2l0aEF0dHJpYnV0ZXMob3JpZ2luYWxGb250LCBDVEZvbnRHZXRTaXplKG9yaWdp
bmFsRm9udCksIG51bGxwdHIsIGRlc2NyaXB0b3IuZ2V0KCkpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQppbmRleCBiYTQ2
ODg4NjBlZGVhNGVkMTE4N2Q0MWM4NjkxNDM3YTIwODZlYjZmLi44Njc0NGE3MGU0OTlhYTYwODg1
NWQxYzJmNmRlMTZhMzFkNTYyY2U3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCkBAIC00NTcsMTMgKzQ1Nyw5IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBhZHZhbmNlRm9yQ29sb3JCaXRtYXBGb250KGNvbnN0IEZvbnRQbGF0Zm9y
bURhdGEmIHBsYXRmb3JtRGF0CiBzdGF0aWMgaW5saW5lIGJvb2wgY2FuVXNlRmFzdEdseXBoQWR2
YW5jZUdldHRlcihjb25zdCBGb250JiBmb250LCBHbHlwaCBnbHlwaCwgQ0dTaXplJiBhZHZhbmNl
LCBib29sJiBwb3B1bGF0ZWRBZHZhbmNlKQogewogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEm
IHBsYXRmb3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7Ci0gICAgLy8gRmFzdCBnZXR0ZXIg
ZG9lc24ndCB0YWtlIGN1c3RvbSB0cmFja2luZyBpbnRvIGFjY291bnQKLSAgICBpZiAoZm9udC5o
YXNDdXN0b21UcmFja2luZygpKQorICAgIC8vIEZhc3QgZ2V0dGVyIGRvZXNuJ3QgZG9lc24ndCB3
b3JrIGZvciBlbW9qaSwgYml0bWFwIGZvbnRzLCBvciB0YWtlIGN1c3RvbSB0cmFja2luZyBpbnRv
IGFjY291bnQKKyAgICBpZiAoZm9udC5oYXNDdXN0b21UcmFja2luZygpIHx8IHBsYXRmb3JtRGF0
YS5pc0Vtb2ppKCkgfHwgcGxhdGZvcm1EYXRhLnRleHRSZW5kZXJpbmdNb2RlKCkgPT0gT3B0aW1p
emVMZWdpYmlsaXR5KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gRmFzdCBnZXR0ZXIg
ZG9lc24ndCB3b3JrIGZvciBlbW9qaQotICAgIGlmIChwbGF0Zm9ybURhdGEuaXNFbW9qaSgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gLi4uIG9yIGZvciBhbnkgYml0bWFwIGZvbnRz
IGluIGdlbmVyYWwKICAgICBpZiAoYWR2YW5jZUZvckNvbG9yQml0bWFwRm9udChwbGF0Zm9ybURh
dGEsIGdseXBoLCBhZHZhbmNlKSkgewogICAgICAgICBwb3B1bGF0ZWRBZHZhbmNlID0gdHJ1ZTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4
IDdlYjg4OGJiMzEzMjc5MGNiZWY0ZmI0MzMzMjY0NDM4MGIxMmRmYTEuLmE3ODkxMmU4NzRlYTkw
ZDBhMjZjNjhmNjZlNDg3ZmQ4YTYyNzJhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2Eu
bW0KQEAgLTQxLDggKzQxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gVGhlc2UgQ29yZVRl
eHQgVGV4dCBTcGFjaW5nIGZlYXR1cmUgc2VsZWN0b3JzIGFyZSBub3QgZGVmaW5lZCBpbiBDb3Jl
VGV4dC4KIGVudW0gVGV4dFNwYWNpbmdDVEZlYXR1cmVTZWxlY3RvciB7IFRleHRTcGFjaW5nUHJv
cG9ydGlvbmFsLCBUZXh0U3BhY2luZ0Z1bGxXaWR0aCwgVGV4dFNwYWNpbmdIYWxmV2lkdGgsIFRl
eHRTcGFjaW5nVGhpcmRXaWR0aCwgVGV4dFNwYWNpbmdRdWFydGVyV2lkdGggfTsKIAotRm9udFBs
YXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYgZm9udCwgZmxvYXQgc2l6ZSwg
Ym9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlv
biBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQpCi0gICAgOiBGb250
UGxhdGZvcm1EYXRhKGFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udChmb250LCBOVUxMKSku
Z2V0KCksIHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9u
LCB3aWR0aFZhcmlhbnQpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENURm9u
dFJlZiBmb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGlj
T2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdp
ZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCisgICAgOiBG
b250UGxhdGZvcm1EYXRhKGFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udChmb250LCBOVUxM
KSkuZ2V0KCksIHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0
aW9uLCB3aWR0aFZhcmlhbnQsIHRleHRSZW5kZXJpbmdNb2RlKQogewogICAgIEFTU0VSVF9BUkco
Zm9udCwgZm9udCk7CiAgICAgbV9mb250ID0gZm9udDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCmluZGV4IDBhODM5NGFiYTJm
MTE5MDA3N2FlZjI4NDM4ODNmZDQ1ZWFkMDQ3MzguLmZlZWE4ZDM4MTVmNjQ3OTZkNmY3MGU4ZDdk
ZjkxZmQzODQ1MDZlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbQpAQCAtOTIsNyArOTIsNyBAQCBQYXNzUmVmUHRyPEZv
bnQ+IEZvbnRDYWNoZTo6Z2V0U3lzdGVtRm9udEZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBG
b250RGVzY3JpcAogICAgIGlmICghc3Vic3RpdHV0ZUZvbnQpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgc3Vic3RpdHV0ZUZvbnQgPSBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3Moc3Vi
c3RpdHV0ZUZvbnQuZ2V0KCksIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICBz
dWJzdGl0dXRlRm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoc3Vic3RpdHV0ZUZvbnQuZ2V0KCks
IGRlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0
aW5ncygpKTsKIAogICAgIENURm9udFN5bWJvbGljVHJhaXRzIG9yaWdpbmFsVHJhaXRzID0gQ1RG
b250R2V0U3ltYm9saWNUcmFpdHMoY3RGb250KTsKICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyBh
Y3R1YWxUcmFpdHMgPSAwOwpAQCAtNzE4LDcgKzcxOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250
UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9u
dERlCiAgICAgaWYgKCFjdEZvbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgY3RG
b250ID0gYXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGN0Rm9udC5nZXQoKSwgZm9udERlc2NyaXB0
aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICBjdEZvbnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250
KGN0Rm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZvbnRE
ZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAKICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0
cyBhY3R1YWxUcmFpdHMgPSAwOwogICAgIGlmIChpc0ZvbnRXZWlnaHRCb2xkKGZvbnREZXNjcmlw
dGlvbi53ZWlnaHQoKSkgfHwgZm9udERlc2NyaXB0aW9uLml0YWxpYygpKQpAQCAtNzI5LDcgKzcy
OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0
ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgYm9vbCBzeW50aGV0aWNCb2xkID0g
KGZvbnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzV2VpZ2h0KSAm
JiAodHJhaXRzICYga0NURm9udFRyYWl0Qm9sZCkgJiYgIShhY3R1YWxUcmFpdHMgJiBrQ1RGb250
VHJhaXRCb2xkKSAmJiAhaXNBcHBsZUNvbG9yRW1vamk7CiAgICAgYm9vbCBzeW50aGV0aWNPYmxp
cXVlID0gKGZvbnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzU3R5
bGUpICYmICh0cmFpdHMgJiBrQ1RGb250VHJhaXRJdGFsaWMpICYmICEoYWN0dWFsVHJhaXRzICYg
a0NURm9udFRyYWl0SXRhbGljKSAmJiAhaXNBcHBsZUNvbG9yRW1vamk7CiAKLSAgICBhdXRvIHJl
c3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4oY3RGb250LmdldCgpLCBz
aXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3Jp
ZW50YXRpb24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpKTsKKyAgICBhdXRvIHJl
c3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4oY3RGb250LmdldCgpLCBz
aXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3Jp
ZW50YXRpb24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpLCBmb250RGVzY3JpcHRp
b24udGV4dFJlbmRlcmluZ01vZGUoKSk7CiAgICAgaWYgKGlzQXBwbGVDb2xvckVtb2ppKQogICAg
ICAgICByZXN1bHQtPnNldElzRW1vamkodHJ1ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1t
CmluZGV4IDE1OGZiYjBkYjVmMWJlMTg2NzRmMDA0NjQ1YWMzODc4MzIxOTdiYmEuLmU2NjI4YzBi
YzgzOTZmZTllZGI2ZmZmNmYwMjNiZDUwYWNlNDI3M2QgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQpAQCAtMjY0LDcgKzI2
NCw3IEBAIHN0YXRpYyBPcHRpb25hbDxOU0ZvbnQqPiBmb250V2l0aEZhbWlseVNwZWNpYWxDYXNl
KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGCiAvLyBGYW1pbHkgbmFtZSBpcyBzb21ld2hh
dCBvZiBhIG1pc25vbWVyIGhlcmUuIFdlIGZpcnN0IGF0dGVtcHQgdG8gZmluZCBhbiBleGFjdCBt
YXRjaAogLy8gY29tcGFyaW5nIHRoZSBkZXNpcmVkRmFtaWx5IHRvIHRoZSBQb3N0U2NyaXB0IG5h
bWUgb2YgdGhlIGluc3RhbGxlZCBmb250cy4gSWYgdGhhdCBmYWlscwogLy8gd2UgdGhlbiBkbyBh
IHNlYXJjaCBiYXNlZCBvbiB0aGUgZmFtaWx5IG5hbWVzIG9mIHRoZSBpbnN0YWxsZWQgZm9udHMu
Ci1zdGF0aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWls
eSwgTlNGb250VHJhaXRNYXNrIGRlc2lyZWRUcmFpdHMsIEZvbnRXZWlnaHQgd2VpZ2h0LCBjb25z
dCBGb250RmVhdHVyZVNldHRpbmdzKiBmZWF0dXJlU2V0dGluZ3MsIGZsb2F0IHNpemUpCitzdGF0
aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgTlNG
b250VHJhaXRNYXNrIGRlc2lyZWRUcmFpdHMsIEZvbnRXZWlnaHQgd2VpZ2h0LCBjb25zdCBGb250
RmVhdHVyZVNldHRpbmdzKiBmZWF0dXJlU2V0dGluZ3MsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRS
ZW5kZXJpbmdNb2RlLCBmbG9hdCBzaXplKQogewogICAgIGlmIChjb25zdCBhdXRvJiBzcGVjaWFs
Q2FzZSA9IGZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2UoZmFtaWx5LCB3ZWlnaHQsIGRlc2lyZWRU
cmFpdHMsIHNpemUpKQogICAgICAgICByZXR1cm4gc3BlY2lhbENhc2UudmFsdWUoKTsKQEAgLTI4
Nyw3ICsyODcsNyBAQCBzdGF0aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNT
dHJpbmcmIGZhbWlseSwgTlNGb250VHJhaXRNYXNrIGRlc2lyZQogCiAgICAgTlNTdHJpbmcgKmRl
c2lyZWRGYW1pbHkgPSBmYW1pbHk7CiAgICAgUmV0YWluUHRyPENURm9udFJlZj4gZm91bmRGb250
ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVGb3JDU1MoKENGU3RyaW5nUmVmKWRlc2lyZWRGYW1pbHks
IHRvQ29yZVRleHRGb250V2VpZ2h0KHdlaWdodCksIHJlcXVlc3RlZFRyYWl0cywgc2l6ZSkpOwot
ICAgIGZvdW5kRm9udCA9IGFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyhmb3VuZEZvbnQuZ2V0KCks
IGZlYXR1cmVTZXR0aW5ncyk7CisgICAgZm91bmRGb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChm
b3VuZEZvbnQuZ2V0KCksIHRleHRSZW5kZXJpbmdNb2RlLCBmZWF0dXJlU2V0dGluZ3MpOwogICAg
IGlmICghZm91bmRGb250KQogICAgICAgICByZXR1cm4gbmlsOwogICAgIGZvbnQgPSBDRkJyaWRn
aW5nUmVsZWFzZShDRlJldGFpbihmb3VuZEZvbnQuZ2V0KCkpKTsKQEAgLTUyMCw3ICs1MjAsNyBA
QCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpzeXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcgogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBs
YXRmb3JtRGF0YSA9IG9yaWdpbmFsRm9udERhdGEtPnBsYXRmb3JtRGF0YSgpOwogICAgIE5TRm9u
dCAqbnNGb250ID0gcGxhdGZvcm1EYXRhLm5zRm9udCgpOwogICAgIFJldGFpblB0cjxDVEZvbnRS
ZWY+IHJlc3VsdCA9IGxvb2t1cENURm9udChwbGF0Zm9ybURhdGEuZm9udCgpLCBwbGF0Zm9ybURh
dGEuc2l6ZSgpLCBkZXNjcmlwdGlvbi5sb2NhbGUoKSwgY2hhcmFjdGVycywgbGVuZ3RoKTsKLSAg
ICByZXN1bHQgPSBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MocmVzdWx0LmdldCgpLCBkZXNjcmlw
dGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgcmVzdWx0ID0gcHJlcGFyZVBsYXRmb3JtRm9u
dChyZXN1bHQuZ2V0KCksIGRlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGRlc2NyaXB0
aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKICAgICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CiAKQEAgLTY3OSw3ICs2NzksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRm
b3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZQog
ICAgIE5TRm9udFRyYWl0TWFzayB0cmFpdHMgPSBmb250RGVzY3JpcHRpb24uaXRhbGljKCkgPyBO
U0ZvbnRJdGFsaWNUcmFpdCA6IDA7CiAgICAgZmxvYXQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5j
b21wdXRlZFBpeGVsU2l6ZSgpOwogCi0gICAgTlNGb250ICpuc0ZvbnQgPSBmb250V2l0aEZhbWls
eShmYW1pbHksIHRyYWl0cywgZm9udERlc2NyaXB0aW9uLndlaWdodCgpLCBmb250RGVzY3JpcHRp
b24uZmVhdHVyZVNldHRpbmdzKCksIHNpemUpOworICAgIE5TRm9udCAqbnNGb250ID0gZm9udFdp
dGhGYW1pbHkoZmFtaWx5LCB0cmFpdHMsIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERl
c2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmlu
Z01vZGUoKSwgc2l6ZSk7CiAgICAgaWYgKCFuc0ZvbnQpIHsKICAgICAgICAgaWYgKCFzaG91bGRB
dXRvQWN0aXZhdGVGb250SWZOZWVkZWQoZmFtaWx5KSkKICAgICAgICAgICAgIHJldHVybiBudWxs
cHRyOwpAQCAtNjg4LDcgKzY4OCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRh
PiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgICAg
IC8vIElnbm9yZSB0aGUgcmVzdWx0IGJlY2F1c2Ugd2Ugd2FudCB0byB1c2Ugb3VyIG93biBhbGdv
cml0aG0gdG8gYWN0dWFsbHkgZmluZCB0aGUgZm9udC4KICAgICAgICAgW05TRm9udCBmb250V2l0
aE5hbWU6ZmFtaWx5IHNpemU6c2l6ZV07CiAKLSAgICAgICAgbnNGb250ID0gZm9udFdpdGhGYW1p
bHkoZmFtaWx5LCB0cmFpdHMsIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0
aW9uLmZlYXR1cmVTZXR0aW5ncygpLCBzaXplKTsKKyAgICAgICAgbnNGb250ID0gZm9udFdpdGhG
YW1pbHkoZmFtaWx5LCB0cmFpdHMsIGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2Ny
aXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01v
ZGUoKSwgc2l6ZSk7CiAgICAgICAgIGlmICghbnNGb250KQogICAgICAgICAgICAgcmV0dXJuIG51
bGxwdHI7CiAgICAgfQpAQCAtNzAzLDcgKzcwMyw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxh
dGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERl
CiAgICAgYm9vbCBzeW50aGV0aWNCb2xkID0gKGZvbnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lz
KCkgJiBGb250U3ludGhlc2lzV2VpZ2h0KSAmJiBpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHRvQXBw
S2l0Rm9udFdlaWdodChmb250RGVzY3JpcHRpb24ud2VpZ2h0KCkpKSAmJiAhaXNBcHBLaXRGb250
V2VpZ2h0Qm9sZChhY3R1YWxXZWlnaHQpOwogICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IChm
b250RGVzY3JpcHRpb24uZm9udFN5bnRoZXNpcygpICYgRm9udFN5bnRoZXNpc1N0eWxlKSAmJiAo
dHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpICYmICEoYWN0dWFsVHJhaXRzICYgTlNGb250SXRh
bGljVHJhaXQpOwogCi0gICAgcmV0dXJuIHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0
YT4ocmVpbnRlcnByZXRfY2FzdDxDVEZvbnRSZWY+KHBsYXRmb3JtRm9udCksIHNpemUsIHN5bnRo
ZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIGZvbnREZXNjcmlwdGlvbi5vcmllbnRhdGlvbigp
LCBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCkpOworICAgIHJldHVybiBzdGQ6Om1ha2Vf
dW5pcXVlPEZvbnRQbGF0Zm9ybURhdGE+KHJlaW50ZXJwcmV0X2Nhc3Q8Q1RGb250UmVmPihwbGF0
Zm9ybUZvbnQpLCBzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVz
Y3JpcHRpb24ub3JpZW50YXRpb24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpLCBm
b250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNl
IFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21h
Yy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcAppbmRleCBlZjEyMjdiYjFkMTk4
MWEwYzc0MGZlNzdhYWE0NmQ1YjdjMmM3ZDlhLi42ZTY4MTJhOThmYmI0M2IyNzM3OWU2NmU4MjZl
NDdiYzU5M2VmZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCkBAIC00MSw3ICs0
MSw3IEBAIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRm
b3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mCiAgICAgRm9udFdpZHRoVmFyaWFudCB3aWR0
aFZhcmlhbnQgPSBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCk7CiAjaWYgQ09SRVRFWFRf
V0VCX0ZPTlRTCiAgICAgUmV0YWluUHRyPENURm9udFJlZj4gZm9udCA9IGFkb3B0Q0YoQ1RGb250
Q3JlYXRlV2l0aEZvbnREZXNjcmlwdG9yKG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51
bGxwdHIpKTsKLSAgICBmb250ID0gYXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGZvbnQuZ2V0KCks
IGZvbnREZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgZm9udCA9IHByZXBhcmVQ
bGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2Rl
KCksIGZvbnREZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAgICAgcmV0dXJuIEZvbnRQ
bGF0Zm9ybURhdGEoZm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbiwg
d2lkdGhWYXJpYW50KTsKICNlbHNlCiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9jZ0Zv
bnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRT
UEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCmlu
ZGV4IDI2MDZjMjZjNDU2NWZjMzM1M2M1ZDFiZTJhN2Q5MzZkNjVkOTU1OTguLjA3ZDVkZWFjMWZh
YmQ3M2QxN2RmMjQwNTNlZWI2NjBhYjRiZWQ1YzkgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCkBAIC00OSw2ICs0OSw3IEBAIHR5cGVkZWYg
Y29uc3QgVW5pQ2hhciogKCpDVFVuaUNoYXJQcm92aWRlckNhbGxiYWNrKShDRkluZGV4IHN0cmlu
Z0luZGV4LCBDRkluZGV4CiB0eXBlZGVmIHZvaWQgKCpDVFVuaUNoYXJEaXNwb3NlQ2FsbGJhY2sp
KGNvbnN0IFVuaUNoYXIqIGNoYXJzLCB2b2lkKiByZWZDb24pOwogCiBleHRlcm4gY29uc3QgQ0ZT
dHJpbmdSZWYga0NURm9udFJlZmVyZW5jZVVSTEF0dHJpYnV0ZTsKK2V4dGVybiBjb25zdCBDRlN0
cmluZ1JlZiBrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGU7CiAKICNpZiBQTEFURk9STShDT0NP
QSkKICNpZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCA1NTc4MmQxNDkzZTA5NjU3ZTIyMDJhNDExN2YxZDg0
ZTM1MjIyNmM3Li5iNzNjNWE4OTUyMTZlY2VlMzZkMGQwMTNjNThiOGIzMWY1ZjE1NDBlIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGhlbWVJT1MubW0KKysrIGIv
U291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCkBAIC0xMjYxLDcgKzEy
NjEsNyBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjp1cGRhdGVDYWNoZWRTeXN0ZW1Gb250RGVzY3Jp
cHRpb24oQ1NTVmFsdWVJRCB2YWx1ZUlELCBGb250RAogCiAgICAgQVNTRVJUKGZvbnREZXNjcmlw
dG9yKTsKICAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBmb250ID0gYWRvcHRDRihDVEZvbnRDcmVh
dGVXaXRoRm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0b3IuZ2V0KCksIDAsIG51bGxwdHIpKTsK
LSAgICBmb250ID0gYXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGZvbnQuZ2V0KCksIGZvbnREZXNj
cmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZv
bnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZvbnRE
ZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAgICAgZm9udERlc2NyaXB0aW9uLnNldElz
QWJzb2x1dGVTaXplKHRydWUpOwogICAgIGZvbnREZXNjcmlwdGlvbi5zZXRPbmVGYW1pbHkodGV4
dFN0eWxlKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0U3BlY2lmaWVkU2l6ZShDVEZvbnRHZXRT
aXplKGZvbnQuZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL0NoYW5nZUxvZyBiL0xh
eW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YmI3YmI2YjQ3ZmE0ZWNlNzkwZGY4YTFmZjdlMTk4
OTMzYTcxYmRiLi45NGQ2ZDQyYzJlNTA2ZDc2ZjExOTg4NGFmNDA0NjkxMjcyYTkxYWViIDEwMDY0
NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9n
CkBAIC0xLDUgKzEsMTkgQEAKIDIwMTUtMDgtMTcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZp
ZWxkQGFwcGxlLmNvbT4KIAorICAgICAgICBbQ29jb2FdIEhvbm9yIHRoZSAndHJhaycgdGFibGUg
Ynkgb3B0aW5nIGluIHZpYSB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5CisgICAg
ICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0xNDgxMTkKKyAgICAg
ICAgPHJkYXI6Ly9wcm9ibGVtLzIyMjkxNTYxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9E
WSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgdGVzdCB3aWxsIGZhaWwgdW50aWwgd2Ugc3RvcCBt
b2NraW5nIHRoZSBzeXN0ZW0gZm9udCBvbiBFbCBDYXBpdGFuLiBVbnRpbCB0aGVuLAorICAgICAg
ICB0aGlzIHBhdGNoIHdpbGwgY29tbWl0IHRoZSB0ZXN0IGZhaWx1cmUgYXMgYW4gZXhwZWN0ZWQg
cmVzdWx0LgorCisgICAgICAgICogZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5LWV4
cGVjdGVkLmh0bWw6IEFkZGVkCisgICAgICAgICogZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdp
YmlsaXR5Lmh0bWw6IEFkZGVkCisKKzIwMTUtMDgtMTcgIE15bGVzIEMuIE1heGZpZWxkICA8bW1h
eGZpZWxkQGFwcGxlLmNvbT4KKwogICAgICAgICBbT1MgWF0gUmVtb3ZlIHN1cHBvcnQgZm9yIGNv
bXBvc2l0ZSBmb250cwogICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5j
Z2k/aWQ9MTQ3OTIwCiAKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90cmFrLW9w
dGltaXplTGVnaWJpbGl0eS1leHBlY3RlZC50eHQgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdHJh
ay1vcHRpbWl6ZUxlZ2liaWxpdHktZXhwZWN0ZWQudHh0Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjRmZjA3OWYwOTJi
OGQxMTEwZDg4OWVkYTk4ZmIwZDU1YTU2NGE2OGYKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRU
ZXN0cy9mYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2liaWxpdHktZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1BBU1MgZmlyc3QuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggaXMgMQorUEFT
UyB0aGlyZC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCBpcyAxCitGQUlMIGZpcnN0LmdldENsaWVu
dFJlY3RzKClbMF0ucmlnaHQgc2hvdWxkIGJlIHdpdGhpbiA0IG9mIDM0Ni4gV2FzIDM2NC4KK1BB
U1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorVGhpcyB0ZXN0
IG1ha2VzIHN1cmUgdGhhdCB5b3UgY2FuIG9wdC1pbiB0byBob25vcmluZyB0aGUgJ3RyYWsnIHRh
YmxlIGJ5IHNwZWNpZnlpbmcgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eS4gVGhl
IGZpcnN0IGFuZCB0aGlyZCBsaW5lcyBiZWxvdyBzaG91bGQgaGF2ZSB0aGUgc2FtZSB3aWR0aC4g
VGhlIG1pZGRsZSBvbmUgY2FuIChidXQgZG9lc24ndCBoYXZlIHRvKSBoYXZlIGEgZGlmZmVyZW50
IHdpZHRoLgoraGFtYnVyZ2Vmb25zdGl2CisKK2hhbWJ1cmdlZm9uc3RpdgorCitoYW1idXJnZWZv
bnN0aXYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90cmFrLW9wdGltaXplTGVn
aWJpbGl0eS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmls
aXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMC4uODg0OTRiMTYwZjM1YWEzNTA2ODU3ODEwMDA0MDEyMWRkMjZj
NDNlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90cmFrLW9wdGlt
aXplTGVnaWJpbGl0eS5odG1sCkBAIC0wLDAgKzEsMjEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0
bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1wcmUuanMi
Pjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlzIHRlc3QgbWFrZXMgc3VyZSB0aGF0IHlv
dSBjYW4gb3B0LWluIHRvIGhvbm9yaW5nIHRoZSAndHJhaycgdGFibGUgYnkgc3BlY2lmeWluZyB0
ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5LgorVGhlIGZpcnN0IGFuZCB0aGlyZCBs
aW5lcyBiZWxvdyBzaG91bGQgaGF2ZSB0aGUgc2FtZSB3aWR0aC4gVGhlIG1pZGRsZSBvbmUgY2Fu
IChidXQgZG9lc24ndCBoYXZlIHRvKSBoYXZlIGEgZGlmZmVyZW50IHdpZHRoLgorPHA+PHNwYW4g
aWQ9ImZpcnN0IiBzdHlsZT0iZm9udDogNTBweCAnLWFwcGxlLXN5c3RlbSc7IGZvbnQtd2VpZ2h0
OiAzMDA7Ij5oYW1idXJnZWZvbnN0aXY8L3NwYW4+PC9wPgorPHA+PHNwYW4gaWQ9InNlY29uZCIg
c3R5bGU9ImZvbnQ6IDUwcHggJy5TRk5TVGV4dC1MaWdodCcgJy5TRlVJRGlzcGxheS1MaWdodCc7
Ij5oYW1idXJnZWZvbnN0aXY8L3NwYW4+PC9wPgorPHA+PHNwYW4gaWQ9InRoaXJkIiBzdHlsZT0i
Zm9udDogNTBweCAnLlNGTlNUZXh0LUxpZ2h0JyAnLlNGVUlEaXNwbGF5LUxpZ2h0JzsgdGV4dC1y
ZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsiPmhhbWJ1cmdlZm9uc3Rpdjwvc3Bhbj48L3A+
Cis8c2NyaXB0PgordmFyIGZpcnN0ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoImZpcnN0Iik7
Cit2YXIgdGhpcmQgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgidGhpcmQiKTsKK3Nob3VsZEJl
KCJmaXJzdC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCIsICIxIik7CitzaG91bGRCZSgidGhpcmQu
Z2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgiLCAiMSIpOworc2hvdWxkQmVDbG9zZVRvKCJmaXJzdC5n
ZXRDbGllbnRSZWN0cygpWzBdLnJpZ2h0IiwgdGhpcmQuZ2V0Q2xpZW50UmVjdHMoKVswXS5yaWdo
dCwgNCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9yZXNvdXJjZXMvanMtdGVzdC1w
b3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmls
aXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFz
dC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2Rl
IDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4y
NWZmYzE3NDBjOTk4NDFjNDVkNDNhZGI3ODFmN2I4NTE3MDhkOTRmCi0tLSAvZGV2L251bGwKKysr
IGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVsYXRvci9mYXN0L3RleHQvdHJhay1vcHRp
bWl6ZUxlZ2liaWxpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1BBU1MgZmlyc3Qu
Z2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggaXMgMQorUEFTUyB0aGlyZC5nZXRDbGllbnRSZWN0cygp
Lmxlbmd0aCBpcyAxCitQQVNTIGZpcnN0LmdldENsaWVudFJlY3RzKClbMF0ucmlnaHQgaXMgd2l0
aGluIDQgb2YgMzY5CitQQVNTIHN1Y2Nlc3NmdWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09N
UExFVEUKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQgeW91IGNhbiBvcHQtaW4gdG8gaG9ub3Jp
bmcgdGhlICd0cmFrJyB0YWJsZSBieSBzcGVjaWZ5aW5nIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6
ZUxlZ2liaWxpdHkuIFRoZSBmaXJzdCBhbmQgdGhpcmQgbGluZXMgYmVsb3cgc2hvdWxkIGhhdmUg
dGhlIHNhbWUgd2lkdGguIFRoZSBtaWRkbGUgb25lIGNhbiAoYnV0IGRvZXNuJ3QgaGF2ZSB0bykg
aGF2ZSBhIGRpZmZlcmVudCB3aWR0aC4KK2hhbWJ1cmdlZm9uc3RpdgorCitoYW1idXJnZWZvbnN0
aXYKKworaGFtYnVyZ2Vmb25zdGl2CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9t
YWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0
YXRpb25zCmluZGV4IDBjMTA2YjY1ZGI3MWE2ZGVlMDE0YWI1ZWU2YjMyNzA2MGQzZmNkYmYuLmI3
MzJhZGQzNjVmMDBmODMyZjcxMjU0YjMzZmQ4MzY3MjNlNjMwNjMgMTAwNjQ0Ci0tLSBhL0xheW91
dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCisrKyBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0xMjk2LDMgKzEyOTYsNiBAQCB3ZWJraXQu
b3JnL2IvMTQ3MzkwIFsgTWF2ZXJpY2tzIFlvc2VtaXRlIEVsQ2FwaXRhbiBdIGZhc3QvdGV4dC9m
YWxsYmFjay1sYW5ndWFnZQogCiAjIFN0YXJ0ZWQgdG8gZmFpbCBhZnRlciByMTg4MzkwCiB3ZWJr
aXQub3JnL2IvMTQ4MDQyIGh0dHAvdGVzdHMvbWVkaWEvdmlkZW8tYnVmZmVyZWQtcmFuZ2UtY29u
dGFpbnMtY3VycmVudFRpbWUuaHRtbCBbIFBhc3MgRmFpbHVyZSBdCisKKyMgVGhpcyB0ZXN0IHRl
c3RzIGEgcGFydGljdWxhciBzeXN0ZW0gZm9udCwgd2hpY2ggaXMgb25seSBvbiBpT1MgYW5kIEVs
IENhcGl0YW4uCit3ZWJraXQub3JnL2IvMTQ4MTE5IFsgTWF2ZXJpY2tzIFlvc2VtaXRlIF0gZmFz
dC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5Lmh0bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259251</attachid>
            <date>2015-08-17 22:54:10 -0700</date>
            <delta_ts>2015-08-18 00:10:09 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148119-20150817225408.patch</filename>
            <type>text/plain</type>
            <size>30852</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NTc1CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZGEyYTA3YTFmOWY2YmQ3
YWJiZmY4MzA1NTQyZDEyMTQzZDQxMDVjMy4uZTUwYjdhYzEzZTkwNGQyMGI0ZGM1MjQwMzdlZTUy
ZWRhZjZiYjdmYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQ4IEBACiAyMDE1LTA4LTE3ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgW0NvY29hXSBI
b25vciB0aGUgJ3RyYWsnIHRhYmxlIGJ5IG9wdGluZyBpbiB2aWEgdGV4dC1yZW5kZXJpbmc6IG9w
dGltaXplTGVnaWJpbGl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MTE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjI5MTU2MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZSBhdXRo
b3IgaGFzIG9wdGVkIGluIGJ5IHNwZWNpZnlpbmcgInRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxl
Z2liaWxpdHk7Iiwgd2Ugc2hvdWxkCisgICAgICAgIGhvbm9yIHRoZSBmb250J3MgJ3RyYWsnIHRh
YmxlLiBXZSBkbyB0aGlzIGJ5IHNwZWNpZnlpbmcga0NURm9udE9wdGljYWxTaXplQXR0cmlidXRl
IGF0IGZvbnQKKyAgICAgICAgY3JlYXRpb24gdGltZSwgYW5kIGJ5IHVzaW5nIENURm9udEdldEFk
dmFuY2VzRm9yR2x5cGhzKCkgaW5zdGVhZCBvZgorICAgICAgICBDR0ZvbnRHZXRHbHlwaEFkdmFu
Y2VzRm9yU3R5bGUoKS4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxl
Z2liaWxpdHkuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb25LZXk6Om1ha2VGbGFnS2V5KTogTWFr
ZSBvdXIgY2FjaGVzIHNlbnNpdGl2ZSB0byBUZXh0UmVuZGVyaW5nTW9kZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBBZGQgYSBUZXh0UmVuZGVyaW5n
TW9kZSBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpvcGVyYXRvcj0pOiBVcGRhdGUgdG8gY29uc3VsdCB3aXRoIHRoZSBuZXcgbWVtYmVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnRleHRSZW5kZXJpbmdNb2RlKTogR2V0dGVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXBhcmVQbGF0Zm9ybUZvbnQpOiBTcGVjaWZ5IGtDVEZvbnRPcHRp
Y2FsU2l6ZUF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5Rm9udEZlYXR1cmVTZXR0
aW5ncyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRlcik6
IFVzZSBDVEZvbnRHZXRBZHZhbmNlc0ZvckdseXBocygpIGlmIHdlIGFyZQorICAgICAgICBvcHRp
bWl6ZUxlZ2liaWxpdHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBs
YXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YSk6IFBhc3MgdGhlIFRleHRSZW5kZXJpbmdNb2RlIGFyb3VuZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhY2hlOjpnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFyYWN0ZXJzKTog
VXBkYXRlIHRvIGNhbGwgcmVuYW1lZCBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpmb250V2l0
aEZhbWlseSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzeXN0ZW1GYWxs
YmFja0ZvckNoYXJhY3RlcnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6
Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBEaXR0by4KKyAgICAgICAg
KiBwbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6dXBk
YXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKTogRGl0dG8uCisKKzIwMTUtMDgtMTcgIE15
bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKwogICAgICAgICBbQ29jb2Fd
IEFkZHJlc3MgcG9zdC1jb21taXQgcmV2aWV3CiAgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQu
b3JnL3Nob3dfYnVnLmNnaT9pZD0xNDc4NjQKIApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9Gb250Q2FjaGUuaAppbmRleCBiZDhmYTE3OGM0ZmM0ODg2MGQzMDI5YWM2NDJmYjhi
ODNiYWY2OWI2Li44YzhmMjY0NGJhZjZkNmI3MjIxZTJhOWRhMDU5MDZkMTY4ZWU2ZTIxIDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250Q2FjaGUuaApAQCAtMTA1LDcg
KzEwNSw4IEBAIHByaXZhdGU6CiAgICAgc3RhdGljIHVuc2lnbmVkIG1ha2VGbGFnS2V5KGNvbnN0
IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24pCiAgICAgewogICAgICAgICBzdGF0aWNfYXNz
ZXJ0KFVTQ1JJUFRfQ09ERV9MSU1JVCA8IDB4MTAwMCwgIlNjcmlwdCBjb2RlIG11c3QgZml0IGlu
IGFuIHVuc2lnbmVkIGFsb25nIHdpdGggdGhlIG90aGVyIGZsYWdzIik7Ci0gICAgICAgIHJldHVy
biBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24uc2NyaXB0KCkpIDw8IDkKKyAgICAg
ICAgcmV0dXJuIHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5zY3JpcHQoKSkgPDwg
MTEKKyAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLnRleHRS
ZW5kZXJpbmdNb2RlKCkpIDw8IDkKICAgICAgICAgICAgIHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+
KGRlc2NyaXB0aW9uLnNtYWxsQ2FwcygpKSA8PCA4CiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0
PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkpIDw8IDYKICAgICAgICAgICAg
IHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpKSA8PCA0
CkBAIC0yMTUsNyArMjE2LDcgQEAgcHJpdmF0ZToKIH07CiAKICNpZiBQTEFURk9STShDT0NPQSkK
LVJldGFpblB0cjxDVEZvbnRSZWY+IGFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyhDVEZvbnRSZWYs
IGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqKTsKK1JldGFpblB0cjxDVEZvbnRSZWY+IHByZXBh
cmVQbGF0Zm9ybUZvbnQoQ1RGb250UmVmLCBUZXh0UmVuZGVyaW5nTW9kZSwgY29uc3QgRm9udEZl
YXR1cmVTZXR0aW5ncyopOwogI2VuZGlmCiAKICNpZiAhUExBVEZPUk0oTUFDKQpkaWZmIC0tZ2l0
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcApp
bmRleCAzODgzNTQwZTkzZTNkYjljYTNhNmFhYTU2NGE1ZmI2MjkzMmVmMzk0Li5kZDgzZGVmMDMw
ZGZlMzFlOGEyYTQ3MjY1MDZkM2ZiMWY1YjYzNTBkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcApAQCAtNDMsMjUgKzQz
LDI2IEBAIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoKQogewogfQogCi1Gb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGlj
Qm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24s
IEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBs
YXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGlj
T2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdp
ZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCiAgICAgOiBt
X3N5bnRoZXRpY0JvbGQoc3ludGhldGljQm9sZCkKICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShz
eW50aGV0aWNPYmxpcXVlKQogICAgICwgbV9vcmllbnRhdGlvbihvcmllbnRhdGlvbikKICAgICAs
IG1fc2l6ZShzaXplKQogICAgICwgbV93aWR0aFZhcmlhbnQod2lkdGhWYXJpYW50KQorICAgICwg
bV90ZXh0UmVuZGVyaW5nTW9kZSh0ZXh0UmVuZGVyaW5nTW9kZSkKIHsKIH0KIAogI2lmIFVTRShD
RykKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoQ0dGb250UmVmIGNnRm9udCwg
ZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZv
bnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQp
Ci0gICAgOiBGb250UGxhdGZvcm1EYXRhKHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09i
bGlxdWUsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQpCitGb250UGxhdGZvcm1EYXRhOjpGb250
UGxhdGZvcm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGlj
Qm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24s
IEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50LCBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVu
ZGVyaW5nTW9kZSkKKyAgICA6IEZvbnRQbGF0Zm9ybURhdGEoc2l6ZSwgc3ludGhldGljQm9sZCwg
c3ludGhldGljT2JsaXF1ZSwgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgdGV4dFJlbmRlcmlu
Z01vZGUpCiB7CiAgICAgbV9jZ0ZvbnQgPSBjZ0ZvbnQ7CiB9CiAjZW5kaWYKIAogRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBzb3VyY2Up
Ci0gICAgOiBGb250UGxhdGZvcm1EYXRhKHNvdXJjZS5tX3NpemUsIHNvdXJjZS5tX3N5bnRoZXRp
Y0JvbGQsIHNvdXJjZS5tX3N5bnRoZXRpY09ibGlxdWUsIHNvdXJjZS5tX29yaWVudGF0aW9uLCBz
b3VyY2UubV93aWR0aFZhcmlhbnQpCisgICAgOiBGb250UGxhdGZvcm1EYXRhKHNvdXJjZS5tX3Np
emUsIHNvdXJjZS5tX3N5bnRoZXRpY0JvbGQsIHNvdXJjZS5tX3N5bnRoZXRpY09ibGlxdWUsIHNv
dXJjZS5tX29yaWVudGF0aW9uLCBzb3VyY2UubV93aWR0aFZhcmlhbnQsIHNvdXJjZS5tX3RleHRS
ZW5kZXJpbmdNb2RlKQogewogICAgIG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUgPSBzb3VyY2Uu
bV9pc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZTsKICAgICBtX2lzQ29sb3JCaXRtYXBGb250ID0gc291
cmNlLm1faXNDb2xvckJpdG1hcEZvbnQ7CkBAIC04MSw2ICs4Miw3IEBAIGNvbnN0IEZvbnRQbGF0
Zm9ybURhdGEmIEZvbnRQbGF0Zm9ybURhdGE6Om9wZXJhdG9yPShjb25zdCBGb250UGxhdGZvcm1E
YXRhJiBvdGhlCiAgICAgbV9zaXplID0gb3RoZXIubV9zaXplOwogICAgIG1fd2lkdGhWYXJpYW50
ID0gb3RoZXIubV93aWR0aFZhcmlhbnQ7CiAgICAgbV9pc0NvbG9yQml0bWFwRm9udCA9IG90aGVy
Lm1faXNDb2xvckJpdG1hcEZvbnQ7CisgICAgbV90ZXh0UmVuZGVyaW5nTW9kZSA9IG90aGVyLm1f
dGV4dFJlbmRlcmluZ01vZGU7CiAKICAgICByZXR1cm4gcGxhdGZvcm1EYXRhQXNzaWduKG90aGVy
KTsKIH0KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQ
bGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0
Zm9ybURhdGEuaAppbmRleCBlY2Q5NDk2MDUzMmM3MDM4MDExNjVjOTNjN2M0MzhjODllYjg1MTEz
Li5jNGU0NjY0OTk0YWU3NjBmNzc1ZjM0MTQ0Y2M2Y2U0ZGMwODY1YTFjIDEwMDY0NAotLS0gYS9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKKysrIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0YS5oCkBAIC04
MSwxNCArODEsMTQgQEAgcHVibGljOgogICAgIEZvbnRQbGF0Zm9ybURhdGEoKTsKICAgICBGb250
UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKICAgICBGb250UGxhdGZvcm1E
YXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5KTsK
LSAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9v
bCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9udGFsLCBGb250V2lk
dGhWYXJpYW50ID0gUmVndWxhcldpZHRoKTsKKyAgICBGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNp
emUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50
YXRpb24gPSBIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gUmVndWxhcldpZHRoLCBUZXh0
UmVuZGVyaW5nTW9kZSA9IEF1dG9UZXh0UmVuZGVyaW5nKTsKIAogI2lmIFBMQVRGT1JNKENPQ09B
KQotICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRQbGF0Zm9ybURhdGEoQ1RGb250UmVmLCBmbG9hdCBz
aXplLCBib29sIHN5bnRoZXRpY0JvbGQgPSBmYWxzZSwgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0g
ZmFsc2UsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0aFZhcmlhbnQgPSBS
ZWd1bGFyV2lkdGgpOworICAgIFdFQkNPUkVfRVhQT1JUIEZvbnRQbGF0Zm9ybURhdGEoQ1RGb250
UmVmLCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQgPSBmYWxzZSwgYm9vbCBzeW50aGV0
aWNPYmxpcXVlID0gZmFsc2UsIEZvbnRPcmllbnRhdGlvbiA9IEhvcml6b250YWwsIEZvbnRXaWR0
aFZhcmlhbnQgPSBSZWd1bGFyV2lkdGgsIFRleHRSZW5kZXJpbmdNb2RlID0gQXV0b1RleHRSZW5k
ZXJpbmcpOwogI2VuZGlmCiAKICNpZiBVU0UoQ0cpCi0gICAgRm9udFBsYXRmb3JtRGF0YShDR0Zv
bnRSZWYsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0aWNPYmxp
cXVlLCBGb250T3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQpOworICAgIEZvbnRQbGF0Zm9y
bURhdGEoQ0dGb250UmVmLCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50LCBUZXh0UmVu
ZGVyaW5nTW9kZSk7CiAjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKQEAgLTEzNiw2ICsxMzYs
NyBAQCBwdWJsaWM6CiAgICAgYm9vbCBpc0NvbG9yQml0bWFwRm9udCgpIGNvbnN0IHsgcmV0dXJu
IG1faXNDb2xvckJpdG1hcEZvbnQ7IH0KICAgICBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24o
KSBjb25zdCB7IHJldHVybiBtX29yaWVudGF0aW9uOyB9CiAgICAgRm9udFdpZHRoVmFyaWFudCB3
aWR0aFZhcmlhbnQoKSBjb25zdCB7IHJldHVybiBtX3dpZHRoVmFyaWFudDsgfQorICAgIFRleHRS
ZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0UmVu
ZGVyaW5nTW9kZTsgfQogICAgIGJvb2wgaXNGb3JUZXh0Q29tYmluZSgpIGNvbnN0IHsgcmV0dXJu
IHdpZHRoVmFyaWFudCgpICE9IFJlZ3VsYXJXaWR0aDsgfSAvLyBLZWVwIGluIHN5bmMgd2l0aCBj
YWxsZXJzIG9mIEZvbnREZXNjcmlwdGlvbjo6c2V0V2lkdGhWYXJpYW50KCkuCiAKICAgICB2b2lk
IHNldE9yaWVudGF0aW9uKEZvbnRPcmllbnRhdGlvbiBvcmllbnRhdGlvbikgeyBtX29yaWVudGF0
aW9uID0gb3JpZW50YXRpb247IH0KQEAgLTE1MSw3ICsxNTIsNyBAQCBwdWJsaWM6CiAgICAgICAg
IHJldHVybiBtX2ZvbnQgPyBtX2ZvbnQtPmhhc2goKSA6IDA7CiAjZWxpZiBPUyhEQVJXSU4pCiAg
ICAgICAgIEFTU0VSVChtX2ZvbnQgfHwgIW1fY2dGb250IHx8IGlzRW1vamkoKSk7Ci0gICAgICAg
IHVpbnRwdHJfdCBmbGFncyA9IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4obV9pc0hhc2hUYWJsZURl
bGV0ZWRWYWx1ZSA8PCA0IHwgaXNFbW9qaSgpIDw8IDMgfCBtX29yaWVudGF0aW9uIDw8IDIgfCBt
X3N5bnRoZXRpY0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2JsaXF1ZSk7CisgICAgICAgIHVpbnRw
dHJfdCBmbGFncyA9IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4obV9pc0hhc2hUYWJsZURlbGV0ZWRW
YWx1ZSA8PCA2IHwgbV90ZXh0UmVuZGVyaW5nTW9kZSA8PCA0IHwgaXNFbW9qaSgpIDw8IDMgfCBt
X29yaWVudGF0aW9uIDw8IDIgfCBtX3N5bnRoZXRpY0JvbGQgPDwgMSB8IG1fc3ludGhldGljT2Js
aXF1ZSk7CiAjaWYgVVNFKEFQUEtJVCkKICAgICAgICAgdWludHB0cl90IGZvbnRIYXNoID0gKHVp
bnRwdHJfdCltX2ZvbnQuZ2V0KCk7CiAjZWxzZQpAQCAtMTc1LDcgKzE3Niw4IEBAIHB1YmxpYzoK
ICAgICAgICAgICAgICYmIG1fc3ludGhldGljT2JsaXF1ZSA9PSBvdGhlci5tX3N5bnRoZXRpY09i
bGlxdWUKICAgICAgICAgICAgICYmIG1faXNDb2xvckJpdG1hcEZvbnQgPT0gb3RoZXIubV9pc0Nv
bG9yQml0bWFwRm9udAogICAgICAgICAgICAgJiYgbV9vcmllbnRhdGlvbiA9PSBvdGhlci5tX29y
aWVudGF0aW9uCi0gICAgICAgICAgICAmJiBtX3dpZHRoVmFyaWFudCA9PSBvdGhlci5tX3dpZHRo
VmFyaWFudDsKKyAgICAgICAgICAgICYmIG1fd2lkdGhWYXJpYW50ID09IG90aGVyLm1fd2lkdGhW
YXJpYW50CisgICAgICAgICAgICAmJiBtX3RleHRSZW5kZXJpbmdNb2RlID09IG90aGVyLm1fdGV4
dFJlbmRlcmluZ01vZGU7CiAgICAgfQogCiAgICAgYm9vbCBpc0hhc2hUYWJsZURlbGV0ZWRWYWx1
ZSgpIGNvbnN0CkBAIC0yMTYsNiArMjE4LDcgQEAgcHVibGljOgogICAgIEZvbnRPcmllbnRhdGlv
biBtX29yaWVudGF0aW9uIHsgSG9yaXpvbnRhbCB9OwogICAgIGZsb2F0IG1fc2l6ZSB7IDAgfTsK
ICAgICBGb250V2lkdGhWYXJpYW50IG1fd2lkdGhWYXJpYW50IHsgUmVndWxhcldpZHRoIH07Cisg
ICAgVGV4dFJlbmRlcmluZ01vZGUgbV90ZXh0UmVuZGVyaW5nTW9kZSB7IEF1dG9UZXh0UmVuZGVy
aW5nIH07CiAKIHByaXZhdGU6CiAjaWYgUExBVEZPUk0oQ09DT0EpCmRpZmYgLS1naXQgYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAg
Yi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4
dC5jcHAKaW5kZXggYjQyNGE5ODRkMjA0NmY5YTJkMDAwN2VjYTZiNWZhNWNmMDgwMmJjMC4uOGRj
NWRjOGU0ZTJhZjVkNjNlZjk3NWM4MTE3MTI2ODc4MmY2MzI0YiAxMDA2NDQKLS0tIGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVU
ZXh0LmNwcApAQCAtMjYsNiArMjYsNyBAQAogI2luY2x1ZGUgImNvbmZpZy5oIgogI2luY2x1ZGUg
IkZvbnRDYWNoZS5oIgogCisjaW5jbHVkZSAiQ29yZVRleHRTUEkuaCIKICNpbmNsdWRlIDxDb3Jl
VGV4dC9TRk5UTGF5b3V0VHlwZXMuaD4KIAogI2luY2x1ZGUgPHd0Zi9OZXZlckRlc3Ryb3llZC5o
PgpAQCAtMTM3LDE4ICsxMzgsMzUgQEAgc3RhdGljIGlubGluZSB2b2lkIGFwcGVuZE9wZW5UeXBl
RmVhdHVyZShDRk11dGFibGVBcnJheVJlZiBmZWF0dXJlcywgY29uc3QgRm9udEYKICNlbmRpZgog
fQogCi1SZXRhaW5QdHI8Q1RGb250UmVmPiBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3MoQ1RGb250
UmVmIG9yaWdpbmFsRm9udCwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZXMpCitS
ZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiBvcmlnaW5h
bEZvbnQsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRSZW5kZXJpbmdNb2RlLCBjb25zdCBGb250RmVh
dHVyZVNldHRpbmdzKiBmZWF0dXJlcykKIHsKLSAgICBpZiAoIW9yaWdpbmFsRm9udCB8fCAhZmVh
dHVyZXMgfHwgIWZlYXR1cmVzLT5zaXplKCkpCisgICAgaWYgKCFvcmlnaW5hbEZvbnQgfHwgKCgh
ZmVhdHVyZXMgfHwgIWZlYXR1cmVzLT5zaXplKCkpICYmICh0ZXh0UmVuZGVyaW5nTW9kZSAhPSBP
cHRpbWl6ZUxlZ2liaWxpdHkpKSkKICAgICAgICAgcmV0dXJuIG9yaWdpbmFsRm9udDsKIAotICAg
IFJldGFpblB0cjxDRk11dGFibGVBcnJheVJlZj4gZmVhdHVyZUFycmF5ID0gYWRvcHRDRihDRkFy
cmF5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBmZWF0dXJlcy0+c2l6ZSgpLCAm
a0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBmZWF0
dXJlcy0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgYXBwZW5kVHJ1ZVR5cGVGZWF0dXJlKGZlYXR1
cmVBcnJheS5nZXQoKSwgZmVhdHVyZXMtPmF0KGkpKTsKLSAgICAgICAgYXBwZW5kT3BlblR5cGVG
ZWF0dXJlKGZlYXR1cmVBcnJheS5nZXQoKSwgZmVhdHVyZXMtPmF0KGkpKTsKKyAgICBSZXRhaW5Q
dHI8Q0ZNdXRhYmxlQXJyYXlSZWY+IGZlYXR1cmVBcnJheTsKKyAgICBpZiAoZmVhdHVyZXMgJiYg
ZmVhdHVyZXMtPnNpemUoKSkgeworICAgICAgICBmZWF0dXJlQXJyYXkgPSBhZG9wdENGKENGQXJy
YXlDcmVhdGVNdXRhYmxlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGZlYXR1cmVzLT5zaXplKCksICZr
Q0ZUeXBlQXJyYXlDYWxsQmFja3MpKTsKKyAgICAgICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBm
ZWF0dXJlcy0+c2l6ZSgpOyArK2kpIHsKKyAgICAgICAgICAgIGFwcGVuZFRydWVUeXBlRmVhdHVy
ZShmZWF0dXJlQXJyYXkuZ2V0KCksIGZlYXR1cmVzLT5hdChpKSk7CisgICAgICAgICAgICBhcHBl
bmRPcGVuVHlwZUZlYXR1cmUoZmVhdHVyZUFycmF5LmdldCgpLCBmZWF0dXJlcy0+YXQoaSkpOwor
ICAgICAgICB9CisgICAgfQorICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25h
cnk7CisgICAgaWYgKHRleHRSZW5kZXJpbmdNb2RlID09IE9wdGltaXplTGVnaWJpbGl0eSAmJiBm
ZWF0dXJlQXJyYXkgJiYgQ0ZBcnJheUdldENvdW50KGZlYXR1cmVBcnJheS5nZXQoKSkpIHsKKyAg
ICAgICAgQ0dGbG9hdCBzaXplID0gQ1RGb250R2V0U2l6ZShvcmlnaW5hbEZvbnQpOworICAgICAg
ICBSZXRhaW5QdHI8Q0ZOdW1iZXJSZWY+IHNpemVOdW1iZXIgPSBhZG9wdENGKENGTnVtYmVyQ3Jl
YXRlKGtDRkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckNHRmxvYXRUeXBlLCAmc2l6ZSkpOwor
ICAgICAgICBDRlR5cGVSZWYga2V5c1tdID0geyBrQ1RGb250RmVhdHVyZVNldHRpbmdzQXR0cmli
dXRlLCBrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1dGUgfTsKKyAgICAgICAgQ0ZUeXBlUmVmIHZh
bHVlc1tdID0geyBmZWF0dXJlQXJyYXkuZ2V0KCksIHNpemVOdW1iZXIuZ2V0KCkgfTsKKyAgICAg
ICAgZGljdGlvbmFyeSA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRl
ZmF1bHQsIGtleXMsIHZhbHVlcywgV1RGX0FSUkFZX0xFTkdUSCh2YWx1ZXMpLCAma0NGVHlwZURp
Y3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7
CisgICAgfSBlbHNlIGlmIChmZWF0dXJlQXJyYXkgJiYgQ0ZBcnJheUdldENvdW50KGZlYXR1cmVB
cnJheS5nZXQoKSkpIHsKKyAgICAgICAgQ0ZBcnJheVJlZiBmZWF0dXJlQXJyYXlQdHIgPSBmZWF0
dXJlQXJyYXkuZ2V0KCk7CisgICAgICAgIGRpY3Rpb25hcnkgPSBhZG9wdENGKENGRGljdGlvbmFy
eUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3Qgdm9pZCoqKSZrQ1RGb250RmVhdHVy
ZVNldHRpbmdzQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZmZWF0dXJlQXJyYXlQdHIsIDEsICZr
Q0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5cGVEaWN0aW9uYXJ5VmFsdWVDYWxs
QmFja3MpKTsKKyAgICB9IGVsc2UgeworICAgICAgICBDR0Zsb2F0IHNpemUgPSBDVEZvbnRHZXRT
aXplKG9yaWdpbmFsRm9udCk7CisgICAgICAgIFJldGFpblB0cjxDRk51bWJlclJlZj4gc2l6ZU51
bWJlciA9IGFkb3B0Q0YoQ0ZOdW1iZXJDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwga0NGTnVt
YmVyQ0dGbG9hdFR5cGUsICZzaXplKSk7CisgICAgICAgIENGTnVtYmVyUmVmIHNpemVOdW1iZXJQ
dHIgPSBzaXplTnVtYmVyLmdldCgpOworICAgICAgICBkaWN0aW9uYXJ5ID0gYWRvcHRDRihDRkRp
Y3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IHZvaWQqKikma0NURm9u
dE9wdGljYWxTaXplQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZzaXplTnVtYmVyUHRyLCAxLCAm
a0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2Fs
bEJhY2tzKSk7CiAgICAgfQotICAgIENGQXJyYXlSZWYgZmVhdHVyZUFycmF5UHRyID0gZmVhdHVy
ZUFycmF5LmdldCgpOwotICAgIFJldGFpblB0cjxDRkRpY3Rpb25hcnlSZWY+IGRpY3Rpb25hcnkg
PSBhZG9wdENGKENGRGljdGlvbmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCAoY29uc3Qg
dm9pZCoqKSZrQ1RGb250RmVhdHVyZVNldHRpbmdzQXR0cmlidXRlLCAoY29uc3Qgdm9pZCoqKSZm
ZWF0dXJlQXJyYXlQdHIsIDEsICZrQ0ZUeXBlRGljdGlvbmFyeUtleUNhbGxCYWNrcywgJmtDRlR5
cGVEaWN0aW9uYXJ5VmFsdWVDYWxsQmFja3MpKTsKICAgICBSZXRhaW5QdHI8Q1RGb250RGVzY3Jp
cHRvclJlZj4gZGVzY3JpcHRvciA9IGFkb3B0Q0YoQ1RGb250RGVzY3JpcHRvckNyZWF0ZVdpdGhB
dHRyaWJ1dGVzKGRpY3Rpb25hcnkuZ2V0KCkpKTsKICAgICByZXR1cm4gYWRvcHRDRihDVEZvbnRD
cmVhdGVDb3B5V2l0aEF0dHJpYnV0ZXMob3JpZ2luYWxGb250LCBDVEZvbnRHZXRTaXplKG9yaWdp
bmFsRm9udCksIG51bGxwdHIsIGRlc2NyaXB0b3IuZ2V0KCkpKTsKIH0KZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbSBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQppbmRleCBkM2Nl
ZDM5Y2VmOGE2ZjBjNWEzNWRlNGIwNDMxMjQ1MDdlZGNkODYwLi5mMmI1MzkyYTZiN2E4MmM5MjMy
ZDk3Yzk3NWNmODkwNzMzODQ2MTdhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCkBAIC00NTcsMTMgKzQ1Nyw5IEBAIHN0YXRp
YyBpbmxpbmUgYm9vbCBhZHZhbmNlRm9yQ29sb3JCaXRtYXBGb250KGNvbnN0IEZvbnRQbGF0Zm9y
bURhdGEmIHBsYXRmb3JtRGF0CiBzdGF0aWMgaW5saW5lIGJvb2wgY2FuVXNlRmFzdEdseXBoQWR2
YW5jZUdldHRlcihjb25zdCBGb250JiBmb250LCBHbHlwaCBnbHlwaCwgQ0dTaXplJiBhZHZhbmNl
LCBib29sJiBwb3B1bGF0ZWRBZHZhbmNlKQogewogICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEm
IHBsYXRmb3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7Ci0gICAgLy8gRmFzdCBnZXR0ZXIg
ZG9lc24ndCB0YWtlIGN1c3RvbSB0cmFja2luZyBpbnRvIGFjY291bnQKLSAgICBpZiAoZm9udC5o
YXNDdXN0b21UcmFja2luZygpKQorICAgIC8vIEZhc3QgZ2V0dGVyIGRvZXNuJ3QgZG9lc24ndCB3
b3JrIGZvciBlbW9qaSwgYml0bWFwIGZvbnRzLCBvciB0YWtlIGN1c3RvbSB0cmFja2luZyBpbnRv
IGFjY291bnQKKyAgICBpZiAoZm9udC5oYXNDdXN0b21UcmFja2luZygpIHx8IHBsYXRmb3JtRGF0
YS5pc0Vtb2ppKCkgfHwgcGxhdGZvcm1EYXRhLnRleHRSZW5kZXJpbmdNb2RlKCkgPT0gT3B0aW1p
emVMZWdpYmlsaXR5KQogICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gRmFzdCBnZXR0ZXIg
ZG9lc24ndCB3b3JrIGZvciBlbW9qaQotICAgIGlmIChwbGF0Zm9ybURhdGEuaXNFbW9qaSgpKQot
ICAgICAgICByZXR1cm4gZmFsc2U7Ci0gICAgLy8gLi4uIG9yIGZvciBhbnkgYml0bWFwIGZvbnRz
IGluIGdlbmVyYWwKICAgICBpZiAoYWR2YW5jZUZvckNvbG9yQml0bWFwRm9udChwbGF0Zm9ybURh
dGEsIGdseXBoLCBhZHZhbmNlKSkgewogICAgICAgICBwb3B1bGF0ZWRBZHZhbmNlID0gdHJ1ZTsK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCmluZGV4
IDdlYjg4OGJiMzEzMjc5MGNiZWY0ZmI0MzMzMjY0NDM4MGIxMmRmYTEuLmE3ODkxMmU4NzRlYTkw
ZDBhMjZjNjhmNjZlNDg3ZmQ4YTYyNzJhYzcgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQorKysgYi9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2Eu
bW0KQEAgLTQxLDggKzQxLDggQEAgbmFtZXNwYWNlIFdlYkNvcmUgewogLy8gVGhlc2UgQ29yZVRl
eHQgVGV4dCBTcGFjaW5nIGZlYXR1cmUgc2VsZWN0b3JzIGFyZSBub3QgZGVmaW5lZCBpbiBDb3Jl
VGV4dC4KIGVudW0gVGV4dFNwYWNpbmdDVEZlYXR1cmVTZWxlY3RvciB7IFRleHRTcGFjaW5nUHJv
cG9ydGlvbmFsLCBUZXh0U3BhY2luZ0Z1bGxXaWR0aCwgVGV4dFNwYWNpbmdIYWxmV2lkdGgsIFRl
eHRTcGFjaW5nVGhpcmRXaWR0aCwgVGV4dFNwYWNpbmdRdWFydGVyV2lkdGggfTsKIAotRm9udFBs
YXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYgZm9udCwgZmxvYXQgc2l6ZSwg
Ym9vbCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlv
biBvcmllbnRhdGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQpCi0gICAgOiBGb250
UGxhdGZvcm1EYXRhKGFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udChmb250LCBOVUxMKSku
Z2V0KCksIHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9u
LCB3aWR0aFZhcmlhbnQpCitGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKENURm9u
dFJlZiBmb250LCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGlj
T2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdp
ZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCisgICAgOiBG
b250UGxhdGZvcm1EYXRhKGFkb3B0Q0YoQ1RGb250Q29weUdyYXBoaWNzRm9udChmb250LCBOVUxM
KSkuZ2V0KCksIHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0
aW9uLCB3aWR0aFZhcmlhbnQsIHRleHRSZW5kZXJpbmdNb2RlKQogewogICAgIEFTU0VSVF9BUkco
Zm9udCwgZm9udCk7CiAgICAgbV9mb250ID0gZm9udDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCmluZGV4IDBhODM5NGFiYTJm
MTE5MDA3N2FlZjI4NDM4ODNmZDQ1ZWFkMDQ3MzguLmZlZWE4ZDM4MTVmNjQ3OTZkNmY3MGU4ZDdk
ZjkxZmQzODQ1MDZlZWYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbQpAQCAtOTIsNyArOTIsNyBAQCBQYXNzUmVmUHRyPEZv
bnQ+IEZvbnRDYWNoZTo6Z2V0U3lzdGVtRm9udEZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBG
b250RGVzY3JpcAogICAgIGlmICghc3Vic3RpdHV0ZUZvbnQpCiAgICAgICAgIHJldHVybiBudWxs
cHRyOwogCi0gICAgc3Vic3RpdHV0ZUZvbnQgPSBhcHBseUZvbnRGZWF0dXJlU2V0dGluZ3Moc3Vi
c3RpdHV0ZUZvbnQuZ2V0KCksIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICBz
dWJzdGl0dXRlRm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoc3Vic3RpdHV0ZUZvbnQuZ2V0KCks
IGRlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0
aW5ncygpKTsKIAogICAgIENURm9udFN5bWJvbGljVHJhaXRzIG9yaWdpbmFsVHJhaXRzID0gQ1RG
b250R2V0U3ltYm9saWNUcmFpdHMoY3RGb250KTsKICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0cyBh
Y3R1YWxUcmFpdHMgPSAwOwpAQCAtNzE4LDcgKzcxOCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250
UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9u
dERlCiAgICAgaWYgKCFjdEZvbnQpCiAgICAgICAgIHJldHVybiBudWxscHRyOwogCi0gICAgY3RG
b250ID0gYXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGN0Rm9udC5nZXQoKSwgZm9udERlc2NyaXB0
aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICBjdEZvbnQgPSBwcmVwYXJlUGxhdGZvcm1Gb250
KGN0Rm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZvbnRE
ZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAKICAgICBDVEZvbnRTeW1ib2xpY1RyYWl0
cyBhY3R1YWxUcmFpdHMgPSAwOwogICAgIGlmIChpc0ZvbnRXZWlnaHRCb2xkKGZvbnREZXNjcmlw
dGlvbi53ZWlnaHQoKSkgfHwgZm9udERlc2NyaXB0aW9uLml0YWxpYygpKQpAQCAtNzI5LDcgKzcy
OSw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0
ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgYm9vbCBzeW50aGV0aWNCb2xkID0g
KGZvbnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzV2VpZ2h0KSAm
JiAodHJhaXRzICYga0NURm9udFRyYWl0Qm9sZCkgJiYgIShhY3R1YWxUcmFpdHMgJiBrQ1RGb250
VHJhaXRCb2xkKSAmJiAhaXNBcHBsZUNvbG9yRW1vamk7CiAgICAgYm9vbCBzeW50aGV0aWNPYmxp
cXVlID0gKGZvbnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzU3R5
bGUpICYmICh0cmFpdHMgJiBrQ1RGb250VHJhaXRJdGFsaWMpICYmICEoYWN0dWFsVHJhaXRzICYg
a0NURm9udFRyYWl0SXRhbGljKSAmJiAhaXNBcHBsZUNvbG9yRW1vamk7CiAKLSAgICBhdXRvIHJl
c3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4oY3RGb250LmdldCgpLCBz
aXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3Jp
ZW50YXRpb24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpKTsKKyAgICBhdXRvIHJl
c3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4oY3RGb250LmdldCgpLCBz
aXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3Jp
ZW50YXRpb24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpLCBmb250RGVzY3JpcHRp
b24udGV4dFJlbmRlcmluZ01vZGUoKSk7CiAgICAgaWYgKGlzQXBwbGVDb2xvckVtb2ppKQogICAg
ICAgICByZXN1bHQtPnNldElzRW1vamkodHJ1ZSk7CiAgICAgcmV0dXJuIHJlc3VsdDsKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMu
bW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1t
CmluZGV4IGYyN2ZkMmFjYWYzZDQwMzVlYzgxNmNlYmRjYjc0M2JiYTk5MmM2YjcuLjQyZTFiMDY0
MzM4N2M4MDIzMzE1ZmNjZTg1MjliMjViMzg3ZTkwMzEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW0KKysrIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQpAQCAtMjY0LDcgKzI2
NCw3IEBAIHN0YXRpYyBPcHRpb25hbDxOU0ZvbnQqPiBmb250V2l0aEZhbWlseVNwZWNpYWxDYXNl
KGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5LCBGCiAvLyBGYW1pbHkgbmFtZSBpcyBzb21ld2hh
dCBvZiBhIG1pc25vbWVyIGhlcmUuIFdlIGZpcnN0IGF0dGVtcHQgdG8gZmluZCBhbiBleGFjdCBt
YXRjaAogLy8gY29tcGFyaW5nIHRoZSBkZXNpcmVkRmFtaWx5IHRvIHRoZSBQb3N0U2NyaXB0IG5h
bWUgb2YgdGhlIGluc3RhbGxlZCBmb250cy4gSWYgdGhhdCBmYWlscwogLy8gd2UgdGhlbiBkbyBh
IHNlYXJjaCBiYXNlZCBvbiB0aGUgZmFtaWx5IG5hbWVzIG9mIHRoZSBpbnN0YWxsZWQgZm9udHMu
Ci1zdGF0aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWls
eSwgTlNGb250VHJhaXRNYXNrIGRlc2lyZWRUcmFpdHMsIEZvbnRXZWlnaHQgd2VpZ2h0LCBjb25z
dCBGb250RmVhdHVyZVNldHRpbmdzKiBmZWF0dXJlU2V0dGluZ3MsIGZsb2F0IHNpemUpCitzdGF0
aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgTlNG
b250VHJhaXRNYXNrIGRlc2lyZWRUcmFpdHMsIEZvbnRXZWlnaHQgd2VpZ2h0LCBjb25zdCBGb250
RmVhdHVyZVNldHRpbmdzKiBmZWF0dXJlU2V0dGluZ3MsIFRleHRSZW5kZXJpbmdNb2RlIHRleHRS
ZW5kZXJpbmdNb2RlLCBmbG9hdCBzaXplKQogewogICAgIGlmIChjb25zdCBhdXRvJiBzcGVjaWFs
Q2FzZSA9IGZvbnRXaXRoRmFtaWx5U3BlY2lhbENhc2UoZmFtaWx5LCB3ZWlnaHQsIGRlc2lyZWRU
cmFpdHMsIHNpemUpKQogICAgICAgICByZXR1cm4gc3BlY2lhbENhc2UudmFsdWUoKTsKQEAgLTI4
Nyw3ICsyODcsNyBAQCBzdGF0aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNT
dHJpbmcmIGZhbWlseSwgTlNGb250VHJhaXRNYXNrIGRlc2lyZQogCiAgICAgTlNTdHJpbmcgKmRl
c2lyZWRGYW1pbHkgPSBmYW1pbHk7CiAgICAgUmV0YWluUHRyPENURm9udFJlZj4gZm91bmRGb250
ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVGb3JDU1MoKENGU3RyaW5nUmVmKWRlc2lyZWRGYW1pbHks
IHRvQ29yZVRleHRGb250V2VpZ2h0KHdlaWdodCksIHJlcXVlc3RlZFRyYWl0cywgc2l6ZSkpOwot
ICAgIGZvdW5kRm9udCA9IGFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyhmb3VuZEZvbnQuZ2V0KCks
IGZlYXR1cmVTZXR0aW5ncyk7CisgICAgZm91bmRGb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChm
b3VuZEZvbnQuZ2V0KCksIHRleHRSZW5kZXJpbmdNb2RlLCBmZWF0dXJlU2V0dGluZ3MpOwogICAg
IGlmICghZm91bmRGb250KQogICAgICAgICByZXR1cm4gbmlsOwogICAgIGZvbnQgPSBDRkJyaWRn
aW5nUmVsZWFzZShDRlJldGFpbihmb3VuZEZvbnQuZ2V0KCkpKTsKQEAgLTI5Nyw2ICsyOTcsNyBA
QCBzdGF0aWMgTlNGb250ICpmb250V2l0aEZhbWlseShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWls
eSwgTlNGb250VHJhaXRNYXNrIGRlc2lyZQogI2Vsc2UKIAogICAgIFVOVVNFRF9QQVJBTShmZWF0
dXJlU2V0dGluZ3MpOworICAgIFVOVVNFRF9QQVJBTSh0ZXh0UmVuZGVyaW5nTW9kZSk7CiAKICAg
ICBOU0ZvbnRUcmFpdE1hc2sgZGVzaXJlZFRyYWl0c0Zvck5hbWVNYXRjaCA9IGRlc2lyZWRUcmFp
dHMgfCAod2VpZ2h0ID49IEZvbnRXZWlnaHQ2MDAgPyBOU0JvbGRGb250TWFzayA6IDApOwogICAg
IGlmIChoYXNEZXNpcmVkRmFtaWx5VG9BdmFpbGFibGVGYW1pbHlNYXBwaW5nKGZhbWlseSwgZGVz
aXJlZFRyYWl0c0Zvck5hbWVNYXRjaCwgYXZhaWxhYmxlRmFtaWx5KSkgewpAQCAtNTIwLDcgKzUy
MSw3IEBAIFJlZlB0cjxGb250PiBGb250Q2FjaGU6OnN5c3RlbUZhbGxiYWNrRm9yQ2hhcmFjdGVy
cyhjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyCiAgICAgY29uc3QgRm9udFBsYXRmb3JtRGF0
YSYgcGxhdGZvcm1EYXRhID0gb3JpZ2luYWxGb250RGF0YS0+cGxhdGZvcm1EYXRhKCk7CiAgICAg
TlNGb250ICpuc0ZvbnQgPSBwbGF0Zm9ybURhdGEubnNGb250KCk7CiAgICAgUmV0YWluUHRyPENU
Rm9udFJlZj4gcmVzdWx0ID0gbG9va3VwQ1RGb250KHBsYXRmb3JtRGF0YS5mb250KCksIHBsYXRm
b3JtRGF0YS5zaXplKCksIGRlc2NyaXB0aW9uLmxvY2FsZSgpLCBjaGFyYWN0ZXJzLCBsZW5ndGgp
OwotICAgIHJlc3VsdCA9IGFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyhyZXN1bHQuZ2V0KCksIGRl
c2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKKyAgICByZXN1bHQgPSBwcmVwYXJlUGxhdGZv
cm1Gb250KHJlc3VsdC5nZXQoKSwgZGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgZGVz
Y3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCkpOwogICAgIGlmICghcmVzdWx0KQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIApAQCAtNjc5LDcgKzY4MCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250
UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9u
dERlCiAgICAgTlNGb250VHJhaXRNYXNrIHRyYWl0cyA9IGZvbnREZXNjcmlwdGlvbi5pdGFsaWMo
KSA/IE5TRm9udEl0YWxpY1RyYWl0IDogMDsKICAgICBmbG9hdCBzaXplID0gZm9udERlc2NyaXB0
aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCk7CiAKLSAgICBOU0ZvbnQgKm5zRm9udCA9IGZvbnRXaXRo
RmFtaWx5KGZhbWlseSwgdHJhaXRzLCBmb250RGVzY3JpcHRpb24ud2VpZ2h0KCksIGZvbnREZXNj
cmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSwgc2l6ZSk7CisgICAgTlNGb250ICpuc0ZvbnQgPSBm
b250V2l0aEZhbWlseShmYW1pbHksIHRyYWl0cywgZm9udERlc2NyaXB0aW9uLndlaWdodCgpLCBm
b250RGVzY3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCksIGZvbnREZXNjcmlwdGlvbi50ZXh0UmVu
ZGVyaW5nTW9kZSgpLCBzaXplKTsKICAgICBpZiAoIW5zRm9udCkgewogICAgICAgICBpZiAoIXNo
b3VsZEF1dG9BY3RpdmF0ZUZvbnRJZk5lZWRlZChmYW1pbHkpKQogICAgICAgICAgICAgcmV0dXJu
IG51bGxwdHI7CkBAIC02ODgsNyArNjg5LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEZvbnRQbGF0Zm9y
bURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGUKICAg
ICAgICAgLy8gSWdub3JlIHRoZSByZXN1bHQgYmVjYXVzZSB3ZSB3YW50IHRvIHVzZSBvdXIgb3du
IGFsZ29yaXRobSB0byBhY3R1YWxseSBmaW5kIHRoZSBmb250LgogICAgICAgICBbTlNGb250IGZv
bnRXaXRoTmFtZTpmYW1pbHkgc2l6ZTpzaXplXTsKIAotICAgICAgICBuc0ZvbnQgPSBmb250V2l0
aEZhbWlseShmYW1pbHksIHRyYWl0cywgZm9udERlc2NyaXB0aW9uLndlaWdodCgpLCBmb250RGVz
Y3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCksIHNpemUpOworICAgICAgICBuc0ZvbnQgPSBmb250
V2l0aEZhbWlseShmYW1pbHksIHRyYWl0cywgZm9udERlc2NyaXB0aW9uLndlaWdodCgpLCBmb250
RGVzY3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCksIGZvbnREZXNjcmlwdGlvbi50ZXh0UmVuZGVy
aW5nTW9kZSgpLCBzaXplKTsKICAgICAgICAgaWYgKCFuc0ZvbnQpCiAgICAgICAgICAgICByZXR1
cm4gbnVsbHB0cjsKICAgICB9CkBAIC03MDMsNyArNzA0LDcgQEAgc3RkOjp1bmlxdWVfcHRyPEZv
bnRQbGF0Zm9ybURhdGE+IEZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YShjb25zdCBG
b250RGUKICAgICBib29sIHN5bnRoZXRpY0JvbGQgPSAoZm9udERlc2NyaXB0aW9uLmZvbnRTeW50
aGVzaXMoKSAmIEZvbnRTeW50aGVzaXNXZWlnaHQpICYmIGlzQXBwS2l0Rm9udFdlaWdodEJvbGQo
dG9BcHBLaXRGb250V2VpZ2h0KGZvbnREZXNjcmlwdGlvbi53ZWlnaHQoKSkpICYmICFpc0FwcEtp
dEZvbnRXZWlnaHRCb2xkKGFjdHVhbFdlaWdodCk7CiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVl
ID0gKGZvbnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzU3R5bGUp
ICYmICh0cmFpdHMgJiBOU0ZvbnRJdGFsaWNUcmFpdCkgJiYgIShhY3R1YWxUcmFpdHMgJiBOU0Zv
bnRJdGFsaWNUcmFpdCk7CiAKLSAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxGb250UGxhdGZv
cm1EYXRhPih0b0NURm9udChwbGF0Zm9ybUZvbnQpLCBzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50
aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3JpZW50YXRpb24oKSwgZm9udERlc2NyaXB0
aW9uLndpZHRoVmFyaWFudCgpKTsKKyAgICByZXR1cm4gc3RkOjptYWtlX3VuaXF1ZTxGb250UGxh
dGZvcm1EYXRhPih0b0NURm9udChwbGF0Zm9ybUZvbnQpLCBzaXplLCBzeW50aGV0aWNCb2xkLCBz
eW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3JpcHRpb24ub3JpZW50YXRpb24oKSwgZm9udERlc2Ny
aXB0aW9uLndpZHRoVmFyaWFudCgpLCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUo
KSk7CiB9CiAKIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcCBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRh
LmNwcAppbmRleCBlZjEyMjdiYjFkMTk4MWEwYzc0MGZlNzdhYWE0NmQ1YjdjMmM3ZDlhLi42ZTY4
MTJhOThmYmI0M2IyNzM3OWU2NmU4MjZlNDdiYzU5M2VmZTBiIDEwMDY0NAotLS0gYS9Tb3VyY2Uv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAK
KysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0ZvbnRDdXN0b21QbGF0
Zm9ybURhdGEuY3BwCkBAIC00MSw3ICs0MSw3IEBAIEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3Rv
bVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mCiAg
ICAgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQgPSBmb250RGVzY3JpcHRpb24ud2lkdGhW
YXJpYW50KCk7CiAjaWYgQ09SRVRFWFRfV0VCX0ZPTlRTCiAgICAgUmV0YWluUHRyPENURm9udFJl
Zj4gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlV2l0aEZvbnREZXNjcmlwdG9yKG1fZm9udERl
c2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIpKTsKLSAgICBmb250ID0gYXBwbHlGb250RmVh
dHVyZVNldHRpbmdzKGZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3Mo
KSk7CisgICAgZm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2Ny
aXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGlu
Z3MoKSk7CiAgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEoZm9udC5nZXQoKSwgc2l6ZSwgYm9s
ZCwgaXRhbGljLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50KTsKICNlbHNlCiAgICAgcmV0dXJu
IEZvbnRQbGF0Zm9ybURhdGEobV9jZ0ZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywgb3Jp
ZW50YXRpb24sIHdpZHRoVmFyaWFudCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3Nw
aS9jb2NvYS9Db3JlVGV4dFNQSS5oCmluZGV4IDI2MDZjMjZjNDU2NWZjMzM1M2M1ZDFiZTJhN2Q5
MzZkNjVkOTU1OTguLjA3ZDVkZWFjMWZhYmQ3M2QxN2RmMjQwNTNlZWI2NjBhYjRiZWQ1YzkgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5o
CisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCkBA
IC00OSw2ICs0OSw3IEBAIHR5cGVkZWYgY29uc3QgVW5pQ2hhciogKCpDVFVuaUNoYXJQcm92aWRl
ckNhbGxiYWNrKShDRkluZGV4IHN0cmluZ0luZGV4LCBDRkluZGV4CiB0eXBlZGVmIHZvaWQgKCpD
VFVuaUNoYXJEaXNwb3NlQ2FsbGJhY2spKGNvbnN0IFVuaUNoYXIqIGNoYXJzLCB2b2lkKiByZWZD
b24pOwogCiBleHRlcm4gY29uc3QgQ0ZTdHJpbmdSZWYga0NURm9udFJlZmVyZW5jZVVSTEF0dHJp
YnV0ZTsKK2V4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RGb250T3B0aWNhbFNpemVBdHRyaWJ1
dGU7CiAKICNpZiBQTEFURk9STShDT0NPQSkKICNpZiAhVVNFKEFQUExFX0lOVEVSTkFMX1NESykK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbSBi
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQppbmRleCA1NTc4MmQx
NDkzZTA5NjU3ZTIyMDJhNDExN2YxZDg0ZTM1MjIyNmM3Li5iNzNjNWE4OTUyMTZlY2VlMzZkMGQw
MTNjNThiOGIzMWY1ZjE1NDBlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lSU9TLm1tCkBAIC0xMjYxLDcgKzEyNjEsNyBAQCB2b2lkIFJlbmRlclRoZW1lSU9TOjp1cGRh
dGVDYWNoZWRTeXN0ZW1Gb250RGVzY3JpcHRpb24oQ1NTVmFsdWVJRCB2YWx1ZUlELCBGb250RAog
CiAgICAgQVNTRVJUKGZvbnREZXNjcmlwdG9yKTsKICAgICBSZXRhaW5QdHI8Q1RGb250UmVmPiBm
b250ID0gYWRvcHRDRihDVEZvbnRDcmVhdGVXaXRoRm9udERlc2NyaXB0b3IoZm9udERlc2NyaXB0
b3IuZ2V0KCksIDAsIG51bGxwdHIpKTsKLSAgICBmb250ID0gYXBwbHlGb250RmVhdHVyZVNldHRp
bmdzKGZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CisgICAg
Zm9udCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLnRl
eHRSZW5kZXJpbmdNb2RlKCksIGZvbnREZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAg
ICAgZm9udERlc2NyaXB0aW9uLnNldElzQWJzb2x1dGVTaXplKHRydWUpOwogICAgIGZvbnREZXNj
cmlwdGlvbi5zZXRPbmVGYW1pbHkodGV4dFN0eWxlKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0
U3BlY2lmaWVkU2l6ZShDVEZvbnRHZXRTaXplKGZvbnQuZ2V0KCkpKTsKZGlmZiAtLWdpdCBhL0xh
eW91dFRlc3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCA2YmI3YmI2
YjQ3ZmE0ZWNlNzkwZGY4YTFmZjdlMTk4OTMzYTcxYmRiLi45NGQ2ZDQyYzJlNTA2ZDc2ZjExOTg4
NGFmNDA0NjkxMjcyYTkxYWViIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysr
IGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDUgKzEsMTkgQEAKIDIwMTUtMDgtMTcgIE15
bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KIAorICAgICAgICBbQ29jb2Fd
IEhvbm9yIHRoZSAndHJhaycgdGFibGUgYnkgb3B0aW5nIGluIHZpYSB0ZXh0LXJlbmRlcmluZzog
b3B0aW1pemVMZWdpYmlsaXR5CisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3df
YnVnLmNnaT9pZD0xNDgxMTkKKyAgICAgICAgPHJkYXI6Ly9wcm9ibGVtLzIyMjkxNTYxPgorCisg
ICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgdGVzdCB3
aWxsIGZhaWwgdW50aWwgd2Ugc3RvcCBtb2NraW5nIHRoZSBzeXN0ZW0gZm9udCBvbiBFbCBDYXBp
dGFuLiBVbnRpbCB0aGVuLAorICAgICAgICB0aGlzIHBhdGNoIHdpbGwgY29tbWl0IHRoZSB0ZXN0
IGZhaWx1cmUgYXMgYW4gZXhwZWN0ZWQgcmVzdWx0LgorCisgICAgICAgICogZmFzdC90ZXh0L3Ry
YWstb3B0aW1pemVMZWdpYmlsaXR5LWV4cGVjdGVkLmh0bWw6IEFkZGVkCisgICAgICAgICogZmFz
dC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5Lmh0bWw6IEFkZGVkCisKKzIwMTUtMDgtMTcg
IE15bGVzIEMuIE1heGZpZWxkICA8bW1heGZpZWxkQGFwcGxlLmNvbT4KKwogICAgICAgICBbT1Mg
WF0gUmVtb3ZlIHN1cHBvcnQgZm9yIGNvbXBvc2l0ZSBmb250cwogICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ3OTIwCiAKZGlmZiAtLWdpdCBhL0xheW91
dFRlc3RzL2Zhc3QvdGV4dC90cmFrLW9wdGltaXplTGVnaWJpbGl0eS1leHBlY3RlZC50eHQgYi9M
YXlvdXRUZXN0cy9mYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2liaWxpdHktZXhwZWN0ZWQudHh0
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAuLjRmZjA3OWYwOTJiOGQxMTEwZDg4OWVkYTk4ZmIwZDU1YTU2NGE2OGYKLS0t
IC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2li
aWxpdHktZXhwZWN0ZWQudHh0CkBAIC0wLDAgKzEsMTIgQEAKK1BBU1MgZmlyc3QuZ2V0Q2xpZW50
UmVjdHMoKS5sZW5ndGggaXMgMQorUEFTUyB0aGlyZC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCBp
cyAxCitGQUlMIGZpcnN0LmdldENsaWVudFJlY3RzKClbMF0ucmlnaHQgc2hvdWxkIGJlIHdpdGhp
biA0IG9mIDM0Ni4gV2FzIDM2NC4KK1BBU1Mgc3VjY2Vzc2Z1bGx5UGFyc2VkIGlzIHRydWUKKwor
VEVTVCBDT01QTEVURQorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB5b3UgY2FuIG9wdC1pbiB0
byBob25vcmluZyB0aGUgJ3RyYWsnIHRhYmxlIGJ5IHNwZWNpZnlpbmcgdGV4dC1yZW5kZXJpbmc6
IG9wdGltaXplTGVnaWJpbGl0eS4gVGhlIGZpcnN0IGFuZCB0aGlyZCBsaW5lcyBiZWxvdyBzaG91
bGQgaGF2ZSB0aGUgc2FtZSB3aWR0aC4gVGhlIG1pZGRsZSBvbmUgY2FuIChidXQgZG9lc24ndCBo
YXZlIHRvKSBoYXZlIGEgZGlmZmVyZW50IHdpZHRoLgoraGFtYnVyZ2Vmb25zdGl2CisKK2hhbWJ1
cmdlZm9uc3RpdgorCitoYW1idXJnZWZvbnN0aXYKZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL2Zh
c3QvdGV4dC90cmFrLW9wdGltaXplTGVnaWJpbGl0eS5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5Lmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uODg0OTRiMTYwZjM1
YWEzNTA2ODU3ODEwMDA0MDEyMWRkMjZjNDNlOQotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL2Zhc3QvdGV4dC90cmFrLW9wdGltaXplTGVnaWJpbGl0eS5odG1sCkBAIC0wLDAgKzEsMjEg
QEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4KKzxzY3JpcHQgc3JjPSIuLi8uLi9y
ZXNvdXJjZXMvanMtdGVzdC1wcmUuanMiPjwvc2NyaXB0PgorPC9oZWFkPgorPGJvZHk+CitUaGlz
IHRlc3QgbWFrZXMgc3VyZSB0aGF0IHlvdSBjYW4gb3B0LWluIHRvIGhvbm9yaW5nIHRoZSAndHJh
aycgdGFibGUgYnkgc3BlY2lmeWluZyB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5
LgorVGhlIGZpcnN0IGFuZCB0aGlyZCBsaW5lcyBiZWxvdyBzaG91bGQgaGF2ZSB0aGUgc2FtZSB3
aWR0aC4gVGhlIG1pZGRsZSBvbmUgY2FuIChidXQgZG9lc24ndCBoYXZlIHRvKSBoYXZlIGEgZGlm
ZmVyZW50IHdpZHRoLgorPHA+PHNwYW4gaWQ9ImZpcnN0IiBzdHlsZT0iZm9udDogNTBweCAnLWFw
cGxlLXN5c3RlbSc7IGZvbnQtd2VpZ2h0OiAzMDA7Ij5oYW1idXJnZWZvbnN0aXY8L3NwYW4+PC9w
PgorPHA+PHNwYW4gaWQ9InNlY29uZCIgc3R5bGU9ImZvbnQ6IDUwcHggJy5TRk5TVGV4dC1MaWdo
dCcgJy5TRlVJRGlzcGxheS1MaWdodCc7Ij5oYW1idXJnZWZvbnN0aXY8L3NwYW4+PC9wPgorPHA+
PHNwYW4gaWQ9InRoaXJkIiBzdHlsZT0iZm9udDogNTBweCAnLlNGTlNUZXh0LUxpZ2h0JyAnLlNG
VUlEaXNwbGF5LUxpZ2h0JzsgdGV4dC1yZW5kZXJpbmc6IG9wdGltaXplTGVnaWJpbGl0eTsiPmhh
bWJ1cmdlZm9uc3Rpdjwvc3Bhbj48L3A+Cis8c2NyaXB0PgordmFyIGZpcnN0ID0gZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImZpcnN0Iik7Cit2YXIgdGhpcmQgPSBkb2N1bWVudC5nZXRFbGVtZW50
QnlJZCgidGhpcmQiKTsKK3Nob3VsZEJlKCJmaXJzdC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCIs
ICIxIik7CitzaG91bGRCZSgidGhpcmQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGgiLCAiMSIpOwor
c2hvdWxkQmVDbG9zZVRvKCJmaXJzdC5nZXRDbGllbnRSZWN0cygpWzBdLnJpZ2h0IiwgdGhpcmQu
Z2V0Q2xpZW50UmVjdHMoKVswXS5yaWdodCwgNCk7Cis8L3NjcmlwdD4KKzxzY3JpcHQgc3JjPSIu
Li8uLi9yZXNvdXJjZXMvanMtdGVzdC1wb3N0LmpzIj48L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRt
bD4KZGlmZiAtLWdpdCBhL0xheW91dFRlc3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC90
ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5LWV4cGVjdGVkLnR4dCBiL0xheW91dFRlc3RzL3Bs
YXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5LWV4
cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwLi4yNWZmYzE3NDBjOTk4NDFjNDVkNDNhZGI3ODFmN2I4NTE3
MDhkOTRmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvcGxhdGZvcm0vaW9zLXNpbXVs
YXRvci9mYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2liaWxpdHktZXhwZWN0ZWQudHh0CkBAIC0w
LDAgKzEsMTIgQEAKK1BBU1MgZmlyc3QuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggaXMgMQorUEFT
UyB0aGlyZC5nZXRDbGllbnRSZWN0cygpLmxlbmd0aCBpcyAxCitQQVNTIGZpcnN0LmdldENsaWVu
dFJlY3RzKClbMF0ucmlnaHQgaXMgd2l0aGluIDQgb2YgMzY5CitQQVNTIHN1Y2Nlc3NmdWxseVBh
cnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgdGVzdCBtYWtlcyBzdXJlIHRoYXQg
eW91IGNhbiBvcHQtaW4gdG8gaG9ub3JpbmcgdGhlICd0cmFrJyB0YWJsZSBieSBzcGVjaWZ5aW5n
IHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkuIFRoZSBmaXJzdCBhbmQgdGhpcmQg
bGluZXMgYmVsb3cgc2hvdWxkIGhhdmUgdGhlIHNhbWUgd2lkdGguIFRoZSBtaWRkbGUgb25lIGNh
biAoYnV0IGRvZXNuJ3QgaGF2ZSB0bykgaGF2ZSBhIGRpZmZlcmVudCB3aWR0aC4KK2hhbWJ1cmdl
Zm9uc3RpdgorCitoYW1idXJnZWZvbnN0aXYKKworaGFtYnVyZ2Vmb25zdGl2CmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucyBiL0xheW91dFRlc3Rz
L3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCmluZGV4IDBjMTA2YjY1ZGI3MWE2ZGVlMDE0
YWI1ZWU2YjMyNzA2MGQzZmNkYmYuLmI3MzJhZGQzNjVmMDBmODMyZjcxMjU0YjMzZmQ4MzY3MjNl
NjMwNjMgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRp
b25zCisrKyBiL0xheW91dFRlc3RzL3BsYXRmb3JtL21hYy9UZXN0RXhwZWN0YXRpb25zCkBAIC0x
Mjk2LDMgKzEyOTYsNiBAQCB3ZWJraXQub3JnL2IvMTQ3MzkwIFsgTWF2ZXJpY2tzIFlvc2VtaXRl
IEVsQ2FwaXRhbiBdIGZhc3QvdGV4dC9mYWxsYmFjay1sYW5ndWFnZQogCiAjIFN0YXJ0ZWQgdG8g
ZmFpbCBhZnRlciByMTg4MzkwCiB3ZWJraXQub3JnL2IvMTQ4MDQyIGh0dHAvdGVzdHMvbWVkaWEv
dmlkZW8tYnVmZmVyZWQtcmFuZ2UtY29udGFpbnMtY3VycmVudFRpbWUuaHRtbCBbIFBhc3MgRmFp
bHVyZSBdCisKKyMgVGhpcyB0ZXN0IHRlc3RzIGEgcGFydGljdWxhciBzeXN0ZW0gZm9udCwgd2hp
Y2ggaXMgb25seSBvbiBpT1MgYW5kIEVsIENhcGl0YW4uCit3ZWJraXQub3JnL2IvMTQ4MTE5IFsg
TWF2ZXJpY2tzIFlvc2VtaXRlIF0gZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5Lmh0
bWwgWyBGYWlsdXJlIF0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>259257</attachid>
            <date>2015-08-18 00:10:14 -0700</date>
            <delta_ts>2015-08-18 10:05:05 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-148119-20150818001012.patch</filename>
            <type>text/plain</type>
            <size>31045</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg4NTc5CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmM1YTlmZTIzOGNkZjU1
OTU3ZGU1MTg3OTZjNWFjYWFkMDEzMDczOC4uYmQwYTU1MjU3YWNlOTY4NWM2MWM2NzhlYmM0ZDkw
NDM5ZmY2YzQzMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ2IEBACisyMDE1LTA4LTE4ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBI
b25vciB0aGUgJ3RyYWsnIHRhYmxlIGJ5IG9wdGluZyBpbiB2aWEgdGV4dC1yZW5kZXJpbmc6IG9w
dGltaXplTGVnaWJpbGl0eQorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1
Zy5jZ2k/aWQ9MTQ4MTE5CisgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8yMjI5MTU2MT4KKworICAg
ICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMhKS4KKworICAgICAgICBXaGVuIHRoZSBhdXRo
b3IgaGFzIG9wdGVkIGluIGJ5IHNwZWNpZnlpbmcgInRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxl
Z2liaWxpdHk7Iiwgd2Ugc2hvdWxkCisgICAgICAgIGhvbm9yIHRoZSBmb250J3MgJ3RyYWsnIHRh
YmxlLiBXZSBkbyB0aGlzIGJ5IHNwZWNpZnlpbmcga0NURm9udE9wdGljYWxTaXplQXR0cmlidXRl
IGF0IGZvbnQKKyAgICAgICAgY3JlYXRpb24gdGltZSwgYW5kIGJ5IHVzaW5nIENURm9udEdldEFk
dmFuY2VzRm9yR2x5cGhzKCkgaW5zdGVhZCBvZgorICAgICAgICBDR0ZvbnRHZXRHbHlwaEFkdmFu
Y2VzRm9yU3R5bGUoKS4KKworICAgICAgICBUZXN0OiBmYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxl
Z2liaWxpdHkuaHRtbAorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmg6
CisgICAgICAgIChXZWJDb3JlOjpGb250RGVzY3JpcHRpb25LZXk6Om1ha2VGbGFnS2V5KTogTWFr
ZSBvdXIgY2FjaGVzIHNlbnNpdGl2ZSB0byBUZXh0UmVuZGVyaW5nTW9kZS4KKyAgICAgICAgKiBw
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBBZGQgYSBUZXh0UmVuZGVyaW5n
TW9kZSBtZW1iZXIgdmFyaWFibGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpvcGVyYXRvcj0pOiBVcGRhdGUgdG8gY29uc3VsdCB3aXRoIHRoZSBuZXcgbWVtYmVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURhdGEuaDoKKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnRleHRSZW5kZXJpbmdNb2RlKTogR2V0dGVyLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYWNoZUNvcmVUZXh0LmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OnByZXBhcmVQbGF0Zm9ybUZvbnQpOiBTcGVjaWZ5IGtDVEZvbnRPcHRp
Y2FsU2l6ZUF0dHJpYnV0ZS4KKyAgICAgICAgKFdlYkNvcmU6OmFwcGx5Rm9udEZlYXR1cmVTZXR0
aW5ncyk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENv
Y29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Y2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRlcik6
IFVzZSBDVEZvbnRHZXRBZHZhbmNlc0ZvckdseXBocygpIGlmIHdlIGFyZQorICAgICAgICBvcHRp
bWl6ZUxlZ2liaWxpdHkuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBs
YXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YSk6IFBhc3MgdGhlIFRleHRSZW5kZXJpbmdNb2RlIGFyb3VuZC4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udENhY2hlOjpnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFyYWN0ZXJzKTog
VXBkYXRlIHRvIGNhbGwgcmVuYW1lZCBmdW5jdGlvbi4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRD
YWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3Jt
L2dyYXBoaWNzL21hYy9Gb250Q2FjaGVNYWMubW06CisgICAgICAgIChXZWJDb3JlOjpmb250V2l0
aEZhbWlseSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpzeXN0ZW1GYWxs
YmFja0ZvckNoYXJhY3RlcnMpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRDYWNoZTo6
Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBo
aWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZv
bnRDdXN0b21QbGF0Zm9ybURhdGE6OmZvbnRQbGF0Zm9ybURhdGEpOiBEaXR0by4KKyAgICAgICAg
KiBwbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaDoKKyAgICAgICAgKiByZW5kZXJpbmcv
UmVuZGVyVGhlbWVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUaGVtZUlPUzo6dXBk
YXRlQ2FjaGVkU3lzdGVtRm9udERlc2NyaXB0aW9uKTogRGl0dG8uCisKIDIwMTUtMDgtMTcgIFph
bGFuIEJ1anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KIAogICAgICAgICBPdXRsaW5lIHdpdGggYXV0
byBzdHlsZSBsZWF2ZXMgYml0cyBiZWhpbmQgd2hlbiB0aGUgdGhlIGJveCBpcyBtb3ZlZC4KZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRDYWNoZS5oIGIv
U291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udENhY2hlLmgKaW5kZXggYmQ4ZmEx
NzhjNGZjNDg4NjBkMzAyOWFjNjQyZmI4YjgzYmFmNjliNi4uOGM4ZjI2NDRiYWY2ZDZiNzIyMWUy
YTlkYTA1OTA2ZDE2OGVlNmUyMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvRm9udENhY2hlLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udENhY2hlLmgKQEAgLTEwNSw3ICsxMDUsOCBAQCBwcml2YXRlOgogICAgIHN0YXRpYyB1
bnNpZ25lZCBtYWtlRmxhZ0tleShjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uKQog
ICAgIHsKICAgICAgICAgc3RhdGljX2Fzc2VydChVU0NSSVBUX0NPREVfTElNSVQgPCAweDEwMDAs
ICJTY3JpcHQgY29kZSBtdXN0IGZpdCBpbiBhbiB1bnNpZ25lZCBhbG9uZyB3aXRoIHRoZSBvdGhl
ciBmbGFncyIpOwotICAgICAgICByZXR1cm4gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGRlc2NyaXB0
aW9uLnNjcmlwdCgpKSA8PCA5CisgICAgICAgIHJldHVybiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4o
ZGVzY3JpcHRpb24uc2NyaXB0KCkpIDw8IDExCisgICAgICAgICAgICB8IHN0YXRpY19jYXN0PHVu
c2lnbmVkPihkZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgpKSA8PCA5CiAgICAgICAgICAg
ICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlwdGlvbi5zbWFsbENhcHMoKSkgPDwgOAog
ICAgICAgICAgICAgfCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4oZGVzY3JpcHRpb24uZm9udFN5bnRo
ZXNpcygpKSA8PCA2CiAgICAgICAgICAgICB8IHN0YXRpY19jYXN0PHVuc2lnbmVkPihkZXNjcmlw
dGlvbi53aWR0aFZhcmlhbnQoKSkgPDwgNApAQCAtMjE1LDcgKzIxNiw3IEBAIHByaXZhdGU6CiB9
OwogCiAjaWYgUExBVEZPUk0oQ09DT0EpCi1SZXRhaW5QdHI8Q1RGb250UmVmPiBhcHBseUZvbnRG
ZWF0dXJlU2V0dGluZ3MoQ1RGb250UmVmLCBjb25zdCBGb250RmVhdHVyZVNldHRpbmdzKik7CitS
ZXRhaW5QdHI8Q1RGb250UmVmPiBwcmVwYXJlUGxhdGZvcm1Gb250KENURm9udFJlZiwgVGV4dFJl
bmRlcmluZ01vZGUsIGNvbnN0IEZvbnRGZWF0dXJlU2V0dGluZ3MqKTsKICNlbmRpZgogCiAjaWYg
IVBMQVRGT1JNKE1BQykKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnRQbGF0Zm9ybURhdGEuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvRm9udFBsYXRmb3JtRGF0YS5jcHAKaW5kZXggMzg4MzU0MGU5M2UzZGI5Y2EzYTZhYWE1NjRh
NWZiNjI5MzJlZjM5NC4uZGQ4M2RlZjAzMGRmZTMxZThhMmE0NzI2NTA2ZDNmYjFmNWI2MzUwZCAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3Jt
RGF0YS5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRm
b3JtRGF0YS5jcHAKQEAgLTQzLDI1ICs0MywyNiBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxh
dGZvcm1EYXRhKCkKIHsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShm
bG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9u
dE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCkK
K0ZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBzeW50
aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRh
dGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlIHRl
eHRSZW5kZXJpbmdNb2RlKQogICAgIDogbV9zeW50aGV0aWNCb2xkKHN5bnRoZXRpY0JvbGQpCiAg
ICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoc3ludGhldGljT2JsaXF1ZSkKICAgICAsIG1fb3JpZW50
YXRpb24ob3JpZW50YXRpb24pCiAgICAgLCBtX3NpemUoc2l6ZSkKICAgICAsIG1fd2lkdGhWYXJp
YW50KHdpZHRoVmFyaWFudCkKKyAgICAsIG1fdGV4dFJlbmRlcmluZ01vZGUodGV4dFJlbmRlcmlu
Z01vZGUpCiB7CiB9CiAKICNpZiBVU0UoQ0cpCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZv
cm1EYXRhKENHRm9udFJlZiBjZ0ZvbnQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwg
Ym9vbCBzeW50aGV0aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRX
aWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KQotICAgIDogRm9udFBsYXRmb3JtRGF0YShzaXplLCBz
eW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50
KQorRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShDR0ZvbnRSZWYgY2dGb250LCBm
bG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9u
dE9yaWVudGF0aW9uIG9yaWVudGF0aW9uLCBGb250V2lkdGhWYXJpYW50IHdpZHRoVmFyaWFudCwg
VGV4dFJlbmRlcmluZ01vZGUgdGV4dFJlbmRlcmluZ01vZGUpCisgICAgOiBGb250UGxhdGZvcm1E
YXRhKHNpemUsIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIG9yaWVudGF0aW9uLCB3
aWR0aFZhcmlhbnQsIHRleHRSZW5kZXJpbmdNb2RlKQogewogICAgIG1fY2dGb250ID0gY2dGb250
OwogfQogI2VuZGlmCiAKIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3Qg
Rm9udFBsYXRmb3JtRGF0YSYgc291cmNlKQotICAgIDogRm9udFBsYXRmb3JtRGF0YShzb3VyY2Uu
bV9zaXplLCBzb3VyY2UubV9zeW50aGV0aWNCb2xkLCBzb3VyY2UubV9zeW50aGV0aWNPYmxpcXVl
LCBzb3VyY2UubV9vcmllbnRhdGlvbiwgc291cmNlLm1fd2lkdGhWYXJpYW50KQorICAgIDogRm9u
dFBsYXRmb3JtRGF0YShzb3VyY2UubV9zaXplLCBzb3VyY2UubV9zeW50aGV0aWNCb2xkLCBzb3Vy
Y2UubV9zeW50aGV0aWNPYmxpcXVlLCBzb3VyY2UubV9vcmllbnRhdGlvbiwgc291cmNlLm1fd2lk
dGhWYXJpYW50LCBzb3VyY2UubV90ZXh0UmVuZGVyaW5nTW9kZSkKIHsKICAgICBtX2lzSGFzaFRh
YmxlRGVsZXRlZFZhbHVlID0gc291cmNlLm1faXNIYXNoVGFibGVEZWxldGVkVmFsdWU7CiAgICAg
bV9pc0NvbG9yQml0bWFwRm9udCA9IHNvdXJjZS5tX2lzQ29sb3JCaXRtYXBGb250OwpAQCAtODEs
NiArODIsNyBAQCBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBGb250UGxhdGZvcm1EYXRhOjpvcGVy
YXRvcj0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZQogICAgIG1fc2l6ZSA9IG90aGVyLm1f
c2l6ZTsKICAgICBtX3dpZHRoVmFyaWFudCA9IG90aGVyLm1fd2lkdGhWYXJpYW50OwogICAgIG1f
aXNDb2xvckJpdG1hcEZvbnQgPSBvdGhlci5tX2lzQ29sb3JCaXRtYXBGb250OworICAgIG1fdGV4
dFJlbmRlcmluZ01vZGUgPSBvdGhlci5tX3RleHRSZW5kZXJpbmdNb2RlOwogCiAgICAgcmV0dXJu
IHBsYXRmb3JtRGF0YUFzc2lnbihvdGhlcik7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9Gb250UGxhdGZvcm1EYXRhLmgKaW5kZXggZWNkOTQ5NjA1MzJjNzAz
ODAxMTY1YzkzYzdjNDM4Yzg5ZWI4NTExMy4uYzRlNDY2NDk5NGFlNzYwZjc3NWYzNDE0NGNjNmNl
NGRjMDg2NWExYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Rm9udFBsYXRmb3JtRGF0YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0ZvbnRQbGF0Zm9ybURhdGEuaApAQCAtODEsMTQgKzgxLDE0IEBAIHB1YmxpYzoKICAgICBGb250
UGxhdGZvcm1EYXRhKCk7CiAgICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250UGxhdGZvcm1E
YXRhJik7CiAgICAgRm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25z
dCBBdG9taWNTdHJpbmcmIGZhbWlseSk7Ci0gICAgRm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXpl
LCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0
aW9uID0gSG9yaXpvbnRhbCwgRm9udFdpZHRoVmFyaWFudCA9IFJlZ3VsYXJXaWR0aCk7CisgICAg
Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIHN5bnRoZXRpY0JvbGQsIGJvb2wgc3lu
dGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uID0gSG9yaXpvbnRhbCwgRm9udFdpZHRoVmFy
aWFudCA9IFJlZ3VsYXJXaWR0aCwgVGV4dFJlbmRlcmluZ01vZGUgPSBBdXRvVGV4dFJlbmRlcmlu
Zyk7CiAKICNpZiBQTEFURk9STShDT0NPQSkKLSAgICBXRUJDT1JFX0VYUE9SVCBGb250UGxhdGZv
cm1EYXRhKENURm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNCb2xkID0gZmFsc2Us
IGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IGZhbHNlLCBGb250T3JpZW50YXRpb24gPSBIb3Jpem9u
dGFsLCBGb250V2lkdGhWYXJpYW50ID0gUmVndWxhcldpZHRoKTsKKyAgICBXRUJDT1JFX0VYUE9S
VCBGb250UGxhdGZvcm1EYXRhKENURm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50aGV0aWNC
b2xkID0gZmFsc2UsIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IGZhbHNlLCBGb250T3JpZW50YXRp
b24gPSBIb3Jpem9udGFsLCBGb250V2lkdGhWYXJpYW50ID0gUmVndWxhcldpZHRoLCBUZXh0UmVu
ZGVyaW5nTW9kZSA9IEF1dG9UZXh0UmVuZGVyaW5nKTsKICNlbmRpZgogCiAjaWYgVVNFKENHKQot
ICAgIEZvbnRQbGF0Zm9ybURhdGEoQ0dGb250UmVmLCBmbG9hdCBzaXplLCBib29sIHN5bnRoZXRp
Y0JvbGQsIGJvb2wgc3ludGhldGljT2JsaXF1ZSwgRm9udE9yaWVudGF0aW9uLCBGb250V2lkdGhW
YXJpYW50KTsKKyAgICBGb250UGxhdGZvcm1EYXRhKENHRm9udFJlZiwgZmxvYXQgc2l6ZSwgYm9v
bCBzeW50aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiwg
Rm9udFdpZHRoVmFyaWFudCwgVGV4dFJlbmRlcmluZ01vZGUpOwogI2VuZGlmCiAKICNpZiBQTEFU
Rk9STShXSU4pCkBAIC0xMzYsNiArMTM2LDcgQEAgcHVibGljOgogICAgIGJvb2wgaXNDb2xvckJp
dG1hcEZvbnQoKSBjb25zdCB7IHJldHVybiBtX2lzQ29sb3JCaXRtYXBGb250OyB9CiAgICAgRm9u
dE9yaWVudGF0aW9uIG9yaWVudGF0aW9uKCkgY29uc3QgeyByZXR1cm4gbV9vcmllbnRhdGlvbjsg
fQogICAgIEZvbnRXaWR0aFZhcmlhbnQgd2lkdGhWYXJpYW50KCkgY29uc3QgeyByZXR1cm4gbV93
aWR0aFZhcmlhbnQ7IH0KKyAgICBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSgp
IGNvbnN0IHsgcmV0dXJuIG1fdGV4dFJlbmRlcmluZ01vZGU7IH0KICAgICBib29sIGlzRm9yVGV4
dENvbWJpbmUoKSBjb25zdCB7IHJldHVybiB3aWR0aFZhcmlhbnQoKSAhPSBSZWd1bGFyV2lkdGg7
IH0gLy8gS2VlcCBpbiBzeW5jIHdpdGggY2FsbGVycyBvZiBGb250RGVzY3JpcHRpb246OnNldFdp
ZHRoVmFyaWFudCgpLgogCiAgICAgdm9pZCBzZXRPcmllbnRhdGlvbihGb250T3JpZW50YXRpb24g
b3JpZW50YXRpb24pIHsgbV9vcmllbnRhdGlvbiA9IG9yaWVudGF0aW9uOyB9CkBAIC0xNTEsNyAr
MTUyLDcgQEAgcHVibGljOgogICAgICAgICByZXR1cm4gbV9mb250ID8gbV9mb250LT5oYXNoKCkg
OiAwOwogI2VsaWYgT1MoREFSV0lOKQogICAgICAgICBBU1NFUlQobV9mb250IHx8ICFtX2NnRm9u
dCB8fCBpc0Vtb2ppKCkpOwotICAgICAgICB1aW50cHRyX3QgZmxhZ3MgPSBzdGF0aWNfY2FzdDx1
aW50cHRyX3Q+KG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUgPDwgNCB8IGlzRW1vamkoKSA8PCAz
IHwgbV9vcmllbnRhdGlvbiA8PCAyIHwgbV9zeW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRoZXRp
Y09ibGlxdWUpOworICAgICAgICB1aW50cHRyX3QgZmxhZ3MgPSBzdGF0aWNfY2FzdDx1aW50cHRy
X3Q+KG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUgPDwgNiB8IG1fdGV4dFJlbmRlcmluZ01vZGUg
PDwgNCB8IGlzRW1vamkoKSA8PCAzIHwgbV9vcmllbnRhdGlvbiA8PCAyIHwgbV9zeW50aGV0aWNC
b2xkIDw8IDEgfCBtX3N5bnRoZXRpY09ibGlxdWUpOwogI2lmIFVTRShBUFBLSVQpCiAgICAgICAg
IHVpbnRwdHJfdCBmb250SGFzaCA9ICh1aW50cHRyX3QpbV9mb250LmdldCgpOwogI2Vsc2UKQEAg
LTE3NSw3ICsxNzYsOCBAQCBwdWJsaWM6CiAgICAgICAgICAgICAmJiBtX3N5bnRoZXRpY09ibGlx
dWUgPT0gb3RoZXIubV9zeW50aGV0aWNPYmxpcXVlCiAgICAgICAgICAgICAmJiBtX2lzQ29sb3JC
aXRtYXBGb250ID09IG90aGVyLm1faXNDb2xvckJpdG1hcEZvbnQKICAgICAgICAgICAgICYmIG1f
b3JpZW50YXRpb24gPT0gb3RoZXIubV9vcmllbnRhdGlvbgotICAgICAgICAgICAgJiYgbV93aWR0
aFZhcmlhbnQgPT0gb3RoZXIubV93aWR0aFZhcmlhbnQ7CisgICAgICAgICAgICAmJiBtX3dpZHRo
VmFyaWFudCA9PSBvdGhlci5tX3dpZHRoVmFyaWFudAorICAgICAgICAgICAgJiYgbV90ZXh0UmVu
ZGVyaW5nTW9kZSA9PSBvdGhlci5tX3RleHRSZW5kZXJpbmdNb2RlOwogICAgIH0KIAogICAgIGJv
b2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25zdApAQCAtMjE2LDYgKzIxOCw3IEBAIHB1
YmxpYzoKICAgICBGb250T3JpZW50YXRpb24gbV9vcmllbnRhdGlvbiB7IEhvcml6b250YWwgfTsK
ICAgICBmbG9hdCBtX3NpemUgeyAwIH07CiAgICAgRm9udFdpZHRoVmFyaWFudCBtX3dpZHRoVmFy
aWFudCB7IFJlZ3VsYXJXaWR0aCB9OworICAgIFRleHRSZW5kZXJpbmdNb2RlIG1fdGV4dFJlbmRl
cmluZ01vZGUgeyBBdXRvVGV4dFJlbmRlcmluZyB9OwogCiBwcml2YXRlOgogI2lmIFBMQVRGT1JN
KENPQ09BKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udENhY2hlQ29yZVRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhY2hlQ29yZVRleHQuY3BwCmluZGV4IGI0MjRhOTg0ZDIwNDZmOWEyZDAw
MDdlY2E2YjVmYTVjZjA4MDJiYzAuLjhkYzVkYzhlNGUyYWY1ZDYzZWY5NzVjODExNzEyNjg3ODJm
NjMyNGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRDYWNoZUNvcmVUZXh0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250Q2FjaGVDb3JlVGV4dC5jcHAKQEAgLTI2LDYgKzI2LDcgQEAKICNpbmNs
dWRlICJjb25maWcuaCIKICNpbmNsdWRlICJGb250Q2FjaGUuaCIKIAorI2luY2x1ZGUgIkNvcmVU
ZXh0U1BJLmgiCiAjaW5jbHVkZSA8Q29yZVRleHQvU0ZOVExheW91dFR5cGVzLmg+CiAKICNpbmNs
dWRlIDx3dGYvTmV2ZXJEZXN0cm95ZWQuaD4KQEAgLTEzNywxOCArMTM4LDM1IEBAIHN0YXRpYyBp
bmxpbmUgdm9pZCBhcHBlbmRPcGVuVHlwZUZlYXR1cmUoQ0ZNdXRhYmxlQXJyYXlSZWYgZmVhdHVy
ZXMsIGNvbnN0IEZvbnRGCiAjZW5kaWYKIH0KIAotUmV0YWluUHRyPENURm9udFJlZj4gYXBwbHlG
b250RmVhdHVyZVNldHRpbmdzKENURm9udFJlZiBvcmlnaW5hbEZvbnQsIGNvbnN0IEZvbnRGZWF0
dXJlU2V0dGluZ3MqIGZlYXR1cmVzKQorUmV0YWluUHRyPENURm9udFJlZj4gcHJlcGFyZVBsYXRm
b3JtRm9udChDVEZvbnRSZWYgb3JpZ2luYWxGb250LCBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVu
ZGVyaW5nTW9kZSwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZXMpCiB7Ci0gICAg
aWYgKCFvcmlnaW5hbEZvbnQgfHwgIWZlYXR1cmVzIHx8ICFmZWF0dXJlcy0+c2l6ZSgpKQorICAg
IGlmICghb3JpZ2luYWxGb250IHx8ICgoIWZlYXR1cmVzIHx8ICFmZWF0dXJlcy0+c2l6ZSgpKSAm
JiAodGV4dFJlbmRlcmluZ01vZGUgIT0gT3B0aW1pemVMZWdpYmlsaXR5KSkpCiAgICAgICAgIHJl
dHVybiBvcmlnaW5hbEZvbnQ7CiAKLSAgICBSZXRhaW5QdHI8Q0ZNdXRhYmxlQXJyYXlSZWY+IGZl
YXR1cmVBcnJheSA9IGFkb3B0Q0YoQ0ZBcnJheUNyZWF0ZU11dGFibGUoa0NGQWxsb2NhdG9yRGVm
YXVsdCwgZmVhdHVyZXMtPnNpemUoKSwgJmtDRlR5cGVBcnJheUNhbGxCYWNrcykpOwotICAgIGZv
ciAoc2l6ZV90IGkgPSAwOyBpIDwgZmVhdHVyZXMtPnNpemUoKTsgKytpKSB7Ci0gICAgICAgIGFw
cGVuZFRydWVUeXBlRmVhdHVyZShmZWF0dXJlQXJyYXkuZ2V0KCksIGZlYXR1cmVzLT5hdChpKSk7
Ci0gICAgICAgIGFwcGVuZE9wZW5UeXBlRmVhdHVyZShmZWF0dXJlQXJyYXkuZ2V0KCksIGZlYXR1
cmVzLT5hdChpKSk7CisgICAgUmV0YWluUHRyPENGTXV0YWJsZUFycmF5UmVmPiBmZWF0dXJlQXJy
YXk7CisgICAgaWYgKGZlYXR1cmVzICYmIGZlYXR1cmVzLT5zaXplKCkpIHsKKyAgICAgICAgZmVh
dHVyZUFycmF5ID0gYWRvcHRDRihDRkFycmF5Q3JlYXRlTXV0YWJsZShrQ0ZBbGxvY2F0b3JEZWZh
dWx0LCBmZWF0dXJlcy0+c2l6ZSgpLCAma0NGVHlwZUFycmF5Q2FsbEJhY2tzKSk7CisgICAgICAg
IGZvciAoc2l6ZV90IGkgPSAwOyBpIDwgZmVhdHVyZXMtPnNpemUoKTsgKytpKSB7CisgICAgICAg
ICAgICBhcHBlbmRUcnVlVHlwZUZlYXR1cmUoZmVhdHVyZUFycmF5LmdldCgpLCBmZWF0dXJlcy0+
YXQoaSkpOworICAgICAgICAgICAgYXBwZW5kT3BlblR5cGVGZWF0dXJlKGZlYXR1cmVBcnJheS5n
ZXQoKSwgZmVhdHVyZXMtPmF0KGkpKTsKKyAgICAgICAgfQorICAgIH0KKyAgICBSZXRhaW5QdHI8
Q0ZEaWN0aW9uYXJ5UmVmPiBkaWN0aW9uYXJ5OworICAgIGlmICh0ZXh0UmVuZGVyaW5nTW9kZSA9
PSBPcHRpbWl6ZUxlZ2liaWxpdHkgJiYgZmVhdHVyZUFycmF5ICYmIENGQXJyYXlHZXRDb3VudChm
ZWF0dXJlQXJyYXkuZ2V0KCkpKSB7CisgICAgICAgIENHRmxvYXQgc2l6ZSA9IENURm9udEdldFNp
emUob3JpZ2luYWxGb250KTsKKyAgICAgICAgUmV0YWluUHRyPENGTnVtYmVyUmVmPiBzaXplTnVt
YmVyID0gYWRvcHRDRihDRk51bWJlckNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrQ0ZOdW1i
ZXJDR0Zsb2F0VHlwZSwgJnNpemUpKTsKKyAgICAgICAgQ0ZUeXBlUmVmIGtleXNbXSA9IHsga0NU
Rm9udEZlYXR1cmVTZXR0aW5nc0F0dHJpYnV0ZSwga0NURm9udE9wdGljYWxTaXplQXR0cmlidXRl
IH07CisgICAgICAgIENGVHlwZVJlZiB2YWx1ZXNbXSA9IHsgZmVhdHVyZUFycmF5LmdldCgpLCBz
aXplTnVtYmVyLmdldCgpIH07CisgICAgICAgIGRpY3Rpb25hcnkgPSBhZG9wdENGKENGRGljdGlv
bmFyeUNyZWF0ZShrQ0ZBbGxvY2F0b3JEZWZhdWx0LCBrZXlzLCB2YWx1ZXMsIFdURl9BUlJBWV9M
RU5HVEgodmFsdWVzKSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAma0NGVHlwZURp
Y3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOworICAgIH0gZWxzZSBpZiAoZmVhdHVyZUFycmF5ICYm
IENGQXJyYXlHZXRDb3VudChmZWF0dXJlQXJyYXkuZ2V0KCkpKSB7CisgICAgICAgIENGQXJyYXlS
ZWYgZmVhdHVyZUFycmF5UHRyID0gZmVhdHVyZUFycmF5LmdldCgpOworICAgICAgICBkaWN0aW9u
YXJ5ID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NGQWxsb2NhdG9yRGVmYXVsdCwgKGNv
bnN0IHZvaWQqKikma0NURm9udEZlYXR1cmVTZXR0aW5nc0F0dHJpYnV0ZSwgKGNvbnN0IHZvaWQq
KikmZmVhdHVyZUFycmF5UHRyLCAxLCAma0NGVHlwZURpY3Rpb25hcnlLZXlDYWxsQmFja3MsICZr
Q0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CisgICAgfSBlbHNlIHsKKyAgICAgICAg
Q0dGbG9hdCBzaXplID0gQ1RGb250R2V0U2l6ZShvcmlnaW5hbEZvbnQpOworICAgICAgICBSZXRh
aW5QdHI8Q0ZOdW1iZXJSZWY+IHNpemVOdW1iZXIgPSBhZG9wdENGKENGTnVtYmVyQ3JlYXRlKGtD
RkFsbG9jYXRvckRlZmF1bHQsIGtDRk51bWJlckNHRmxvYXRUeXBlLCAmc2l6ZSkpOworICAgICAg
ICBDRk51bWJlclJlZiBzaXplTnVtYmVyUHRyID0gc2l6ZU51bWJlci5nZXQoKTsKKyAgICAgICAg
ZGljdGlvbmFyeSA9IGFkb3B0Q0YoQ0ZEaWN0aW9uYXJ5Q3JlYXRlKGtDRkFsbG9jYXRvckRlZmF1
bHQsIChjb25zdCB2b2lkKiopJmtDVEZvbnRPcHRpY2FsU2l6ZUF0dHJpYnV0ZSwgKGNvbnN0IHZv
aWQqKikmc2l6ZU51bWJlclB0ciwgMSwgJmtDRlR5cGVEaWN0aW9uYXJ5S2V5Q2FsbEJhY2tzLCAm
a0NGVHlwZURpY3Rpb25hcnlWYWx1ZUNhbGxCYWNrcykpOwogICAgIH0KLSAgICBDRkFycmF5UmVm
IGZlYXR1cmVBcnJheVB0ciA9IGZlYXR1cmVBcnJheS5nZXQoKTsKLSAgICBSZXRhaW5QdHI8Q0ZE
aWN0aW9uYXJ5UmVmPiBkaWN0aW9uYXJ5ID0gYWRvcHRDRihDRkRpY3Rpb25hcnlDcmVhdGUoa0NG
QWxsb2NhdG9yRGVmYXVsdCwgKGNvbnN0IHZvaWQqKikma0NURm9udEZlYXR1cmVTZXR0aW5nc0F0
dHJpYnV0ZSwgKGNvbnN0IHZvaWQqKikmZmVhdHVyZUFycmF5UHRyLCAxLCAma0NGVHlwZURpY3Rp
b25hcnlLZXlDYWxsQmFja3MsICZrQ0ZUeXBlRGljdGlvbmFyeVZhbHVlQ2FsbEJhY2tzKSk7CiAg
ICAgUmV0YWluUHRyPENURm9udERlc2NyaXB0b3JSZWY+IGRlc2NyaXB0b3IgPSBhZG9wdENGKENU
Rm9udERlc2NyaXB0b3JDcmVhdGVXaXRoQXR0cmlidXRlcyhkaWN0aW9uYXJ5LmdldCgpKSk7CiAg
ICAgcmV0dXJuIGFkb3B0Q0YoQ1RGb250Q3JlYXRlQ29weVdpdGhBdHRyaWJ1dGVzKG9yaWdpbmFs
Rm9udCwgQ1RGb250R2V0U2l6ZShvcmlnaW5hbEZvbnQpLCBudWxscHRyLCBkZXNjcmlwdG9yLmdl
dCgpKSk7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Gb250Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250Q29jb2EubW0KaW5kZXggZDNjZWQzOWNlZjhhNmYwYzVhMzVkZTRiMDQzMTI0NTA3ZWRj
ZDg2MC4uZjJiNTM5MmE2YjdhODJjOTIzMmQ5N2M5NzVjZjg5MDczMzg0NjE3YSAxMDA2NDQKLS0t
IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQpA
QCAtNDU3LDEzICs0NTcsOSBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYWR2YW5jZUZvckNvbG9yQml0
bWFwRm9udChjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdAogc3RhdGljIGlubGlu
ZSBib29sIGNhblVzZUZhc3RHbHlwaEFkdmFuY2VHZXR0ZXIoY29uc3QgRm9udCYgZm9udCwgR2x5
cGggZ2x5cGgsIENHU2l6ZSYgYWR2YW5jZSwgYm9vbCYgcG9wdWxhdGVkQWR2YW5jZSkKIHsKICAg
ICBjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEgPSBmb250LnBsYXRmb3JtRGF0
YSgpOwotICAgIC8vIEZhc3QgZ2V0dGVyIGRvZXNuJ3QgdGFrZSBjdXN0b20gdHJhY2tpbmcgaW50
byBhY2NvdW50Ci0gICAgaWYgKGZvbnQuaGFzQ3VzdG9tVHJhY2tpbmcoKSkKKyAgICAvLyBGYXN0
IGdldHRlciBkb2Vzbid0IGRvZXNuJ3Qgd29yayBmb3IgZW1vamksIGJpdG1hcCBmb250cywgb3Ig
dGFrZSBjdXN0b20gdHJhY2tpbmcgaW50byBhY2NvdW50CisgICAgaWYgKGZvbnQuaGFzQ3VzdG9t
VHJhY2tpbmcoKSB8fCBwbGF0Zm9ybURhdGEuaXNFbW9qaSgpIHx8IHBsYXRmb3JtRGF0YS50ZXh0
UmVuZGVyaW5nTW9kZSgpID09IE9wdGltaXplTGVnaWJpbGl0eSkKICAgICAgICAgcmV0dXJuIGZh
bHNlOwotICAgIC8vIEZhc3QgZ2V0dGVyIGRvZXNuJ3Qgd29yayBmb3IgZW1vamkKLSAgICBpZiAo
cGxhdGZvcm1EYXRhLmlzRW1vamkoKSkKLSAgICAgICAgcmV0dXJuIGZhbHNlOwotICAgIC8vIC4u
LiBvciBmb3IgYW55IGJpdG1hcCBmb250cyBpbiBnZW5lcmFsCiAgICAgaWYgKGFkdmFuY2VGb3JD
b2xvckJpdG1hcEZvbnQocGxhdGZvcm1EYXRhLCBnbHlwaCwgYWR2YW5jZSkpIHsKICAgICAgICAg
cG9wdWxhdGVkQWR2YW5jZSA9IHRydWU7CiAgICAgICAgIHJldHVybiBmYWxzZTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURh
dGFDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQ
bGF0Zm9ybURhdGFDb2NvYS5tbQppbmRleCA3ZWI4ODhiYjMxMzI3OTBjYmVmNGZiNDMzMzI2NDQz
ODBiMTJkZmExLi5hNzg5MTJlODc0ZWE5MGQwYTI2YzY4ZjY2ZTQ4N2ZkOGE2MjcyYWM3IDEwMDY0
NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZv
cm1EYXRhQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29j
b2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCkBAIC00MSw4ICs0MSw4IEBAIG5hbWVzcGFjZSBX
ZWJDb3JlIHsKIC8vIFRoZXNlIENvcmVUZXh0IFRleHQgU3BhY2luZyBmZWF0dXJlIHNlbGVjdG9y
cyBhcmUgbm90IGRlZmluZWQgaW4gQ29yZVRleHQuCiBlbnVtIFRleHRTcGFjaW5nQ1RGZWF0dXJl
U2VsZWN0b3IgeyBUZXh0U3BhY2luZ1Byb3BvcnRpb25hbCwgVGV4dFNwYWNpbmdGdWxsV2lkdGgs
IFRleHRTcGFjaW5nSGFsZldpZHRoLCBUZXh0U3BhY2luZ1RoaXJkV2lkdGgsIFRleHRTcGFjaW5n
UXVhcnRlcldpZHRoIH07CiAKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoQ1RG
b250UmVmIGZvbnQsIGZsb2F0IHNpemUsIGJvb2wgc3ludGhldGljQm9sZCwgYm9vbCBzeW50aGV0
aWNPYmxpcXVlLCBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24sIEZvbnRXaWR0aFZhcmlhbnQg
d2lkdGhWYXJpYW50KQotICAgIDogRm9udFBsYXRmb3JtRGF0YShhZG9wdENGKENURm9udENvcHlH
cmFwaGljc0ZvbnQoZm9udCwgTlVMTCkpLmdldCgpLCBzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50
aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50KQorRm9udFBsYXRmb3JtRGF0
YTo6Rm9udFBsYXRmb3JtRGF0YShDVEZvbnRSZWYgZm9udCwgZmxvYXQgc2l6ZSwgYm9vbCBzeW50
aGV0aWNCb2xkLCBib29sIHN5bnRoZXRpY09ibGlxdWUsIEZvbnRPcmllbnRhdGlvbiBvcmllbnRh
dGlvbiwgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlhbnQsIFRleHRSZW5kZXJpbmdNb2RlIHRl
eHRSZW5kZXJpbmdNb2RlKQorICAgIDogRm9udFBsYXRmb3JtRGF0YShhZG9wdENGKENURm9udENv
cHlHcmFwaGljc0ZvbnQoZm9udCwgTlVMTCkpLmdldCgpLCBzaXplLCBzeW50aGV0aWNCb2xkLCBz
eW50aGV0aWNPYmxpcXVlLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJpYW50LCB0ZXh0UmVuZGVyaW5n
TW9kZSkKIHsKICAgICBBU1NFUlRfQVJHKGZvbnQsIGZvbnQpOwogICAgIG1fZm9udCA9IGZvbnQ7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENh
Y2hlSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNo
ZUlPUy5tbQppbmRleCAwYTgzOTRhYmEyZjExOTAwNzdhZWYyODQzODgzZmQ0NWVhZDA0NzM4Li5m
ZWVhOGQzODE1ZjY0Nzk2ZDZmNzBlOGQ3ZGY5MWZkMzg0NTA2ZWVmIDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KQEAgLTky
LDcgKzkyLDcgQEAgUGFzc1JlZlB0cjxGb250PiBGb250Q2FjaGU6OmdldFN5c3RlbUZvbnRGYWxs
YmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERlc2NyaXAKICAgICBpZiAoIXN1YnN0aXR1dGVG
b250KQogICAgICAgICByZXR1cm4gbnVsbHB0cjsKIAotICAgIHN1YnN0aXR1dGVGb250ID0gYXBw
bHlGb250RmVhdHVyZVNldHRpbmdzKHN1YnN0aXR1dGVGb250LmdldCgpLCBkZXNjcmlwdGlvbi5m
ZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgc3Vic3RpdHV0ZUZvbnQgPSBwcmVwYXJlUGxhdGZvcm1G
b250KHN1YnN0aXR1dGVGb250LmdldCgpLCBkZXNjcmlwdGlvbi50ZXh0UmVuZGVyaW5nTW9kZSgp
LCBkZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CiAKICAgICBDVEZvbnRTeW1ib2xpY1Ry
YWl0cyBvcmlnaW5hbFRyYWl0cyA9IENURm9udEdldFN5bWJvbGljVHJhaXRzKGN0Rm9udCk7CiAg
ICAgQ1RGb250U3ltYm9saWNUcmFpdHMgYWN0dWFsVHJhaXRzID0gMDsKQEAgLTcxOCw3ICs3MTgs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVG
b250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZQogICAgIGlmICghY3RGb250KQogICAgICAgICBy
ZXR1cm4gbnVsbHB0cjsKIAotICAgIGN0Rm9udCA9IGFwcGx5Rm9udEZlYXR1cmVTZXR0aW5ncyhj
dEZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7CisgICAgY3RG
b250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChjdEZvbnQuZ2V0KCksIGZvbnREZXNjcmlwdGlvbi50
ZXh0UmVuZGVyaW5nTW9kZSgpLCBmb250RGVzY3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCkpOwog
CiAgICAgQ1RGb250U3ltYm9saWNUcmFpdHMgYWN0dWFsVHJhaXRzID0gMDsKICAgICBpZiAoaXNG
b250V2VpZ2h0Qm9sZChmb250RGVzY3JpcHRpb24ud2VpZ2h0KCkpIHx8IGZvbnREZXNjcmlwdGlv
bi5pdGFsaWMoKSkKQEAgLTcyOSw3ICs3MjksNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRm
b3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZQog
ICAgIGJvb2wgc3ludGhldGljQm9sZCA9IChmb250RGVzY3JpcHRpb24uZm9udFN5bnRoZXNpcygp
ICYgRm9udFN5bnRoZXNpc1dlaWdodCkgJiYgKHRyYWl0cyAmIGtDVEZvbnRUcmFpdEJvbGQpICYm
ICEoYWN0dWFsVHJhaXRzICYga0NURm9udFRyYWl0Qm9sZCkgJiYgIWlzQXBwbGVDb2xvckVtb2pp
OwogICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IChmb250RGVzY3JpcHRpb24uZm9udFN5bnRo
ZXNpcygpICYgRm9udFN5bnRoZXNpc1N0eWxlKSAmJiAodHJhaXRzICYga0NURm9udFRyYWl0SXRh
bGljKSAmJiAhKGFjdHVhbFRyYWl0cyAmIGtDVEZvbnRUcmFpdEl0YWxpYykgJiYgIWlzQXBwbGVD
b2xvckVtb2ppOwogCi0gICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPEZvbnRQbGF0
Zm9ybURhdGE+KGN0Rm9udC5nZXQoKSwgc2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2Js
aXF1ZSwgZm9udERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCksIGZvbnREZXNjcmlwdGlvbi53aWR0
aFZhcmlhbnQoKSk7CisgICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPEZvbnRQbGF0
Zm9ybURhdGE+KGN0Rm9udC5nZXQoKSwgc2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2Js
aXF1ZSwgZm9udERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCksIGZvbnREZXNjcmlwdGlvbi53aWR0
aFZhcmlhbnQoKSwgZm9udERlc2NyaXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCkpOwogICAgIGlm
IChpc0FwcGxlQ29sb3JFbW9qaSkKICAgICAgICAgcmVzdWx0LT5zZXRJc0Vtb2ppKHRydWUpOwog
ICAgIHJldHVybiByZXN1bHQ7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9tYWMvRm9udENhY2hlTWFjLm1tIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvbWFjL0ZvbnRDYWNoZU1hYy5tbQppbmRleCBmMjdmZDJhY2FmM2Q0MDM1ZWM4MTZjZWJk
Y2I3NDNiYmE5OTJjNmI3Li40MmUxYjA2NDMzODdjODAyMzMxNWZjY2U4NTI5YjI1YjM4N2U5MDMx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udENh
Y2hlTWFjLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Gb250
Q2FjaGVNYWMubW0KQEAgLTI2NCw3ICsyNjQsNyBAQCBzdGF0aWMgT3B0aW9uYWw8TlNGb250Kj4g
Zm9udFdpdGhGYW1pbHlTcGVjaWFsQ2FzZShjb25zdCBBdG9taWNTdHJpbmcmIGZhbWlseSwgRgog
Ly8gRmFtaWx5IG5hbWUgaXMgc29tZXdoYXQgb2YgYSBtaXNub21lciBoZXJlLiBXZSBmaXJzdCBh
dHRlbXB0IHRvIGZpbmQgYW4gZXhhY3QgbWF0Y2gKIC8vIGNvbXBhcmluZyB0aGUgZGVzaXJlZEZh
bWlseSB0byB0aGUgUG9zdFNjcmlwdCBuYW1lIG9mIHRoZSBpbnN0YWxsZWQgZm9udHMuIElmIHRo
YXQgZmFpbHMKIC8vIHdlIHRoZW4gZG8gYSBzZWFyY2ggYmFzZWQgb24gdGhlIGZhbWlseSBuYW1l
cyBvZiB0aGUgaW5zdGFsbGVkIGZvbnRzLgotc3RhdGljIE5TRm9udCAqZm9udFdpdGhGYW1pbHko
Y29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIE5TRm9udFRyYWl0TWFzayBkZXNpcmVkVHJhaXRz
LCBGb250V2VpZ2h0IHdlaWdodCwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZVNl
dHRpbmdzLCBmbG9hdCBzaXplKQorc3RhdGljIE5TRm9udCAqZm9udFdpdGhGYW1pbHkoY29uc3Qg
QXRvbWljU3RyaW5nJiBmYW1pbHksIE5TRm9udFRyYWl0TWFzayBkZXNpcmVkVHJhaXRzLCBGb250
V2VpZ2h0IHdlaWdodCwgY29uc3QgRm9udEZlYXR1cmVTZXR0aW5ncyogZmVhdHVyZVNldHRpbmdz
LCBUZXh0UmVuZGVyaW5nTW9kZSB0ZXh0UmVuZGVyaW5nTW9kZSwgZmxvYXQgc2l6ZSkKIHsKICAg
ICBpZiAoY29uc3QgYXV0byYgc3BlY2lhbENhc2UgPSBmb250V2l0aEZhbWlseVNwZWNpYWxDYXNl
KGZhbWlseSwgd2VpZ2h0LCBkZXNpcmVkVHJhaXRzLCBzaXplKSkKICAgICAgICAgcmV0dXJuIHNw
ZWNpYWxDYXNlLnZhbHVlKCk7CkBAIC0yODcsNyArMjg3LDcgQEAgc3RhdGljIE5TRm9udCAqZm9u
dFdpdGhGYW1pbHkoY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIE5TRm9udFRyYWl0TWFzayBk
ZXNpcmUKIAogICAgIE5TU3RyaW5nICpkZXNpcmVkRmFtaWx5ID0gZmFtaWx5OwogICAgIFJldGFp
blB0cjxDVEZvbnRSZWY+IGZvdW5kRm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRlRm9yQ1NTKChD
RlN0cmluZ1JlZilkZXNpcmVkRmFtaWx5LCB0b0NvcmVUZXh0Rm9udFdlaWdodCh3ZWlnaHQpLCBy
ZXF1ZXN0ZWRUcmFpdHMsIHNpemUpKTsKLSAgICBmb3VuZEZvbnQgPSBhcHBseUZvbnRGZWF0dXJl
U2V0dGluZ3MoZm91bmRGb250LmdldCgpLCBmZWF0dXJlU2V0dGluZ3MpOworICAgIGZvdW5kRm9u
dCA9IHByZXBhcmVQbGF0Zm9ybUZvbnQoZm91bmRGb250LmdldCgpLCB0ZXh0UmVuZGVyaW5nTW9k
ZSwgZmVhdHVyZVNldHRpbmdzKTsKICAgICBpZiAoIWZvdW5kRm9udCkKICAgICAgICAgcmV0dXJu
IG5pbDsKICAgICBmb250ID0gQ0ZCcmlkZ2luZ1JlbGVhc2UoQ0ZSZXRhaW4oZm91bmRGb250Lmdl
dCgpKSk7CkBAIC0yOTcsNiArMjk3LDcgQEAgc3RhdGljIE5TRm9udCAqZm9udFdpdGhGYW1pbHko
Y29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHksIE5TRm9udFRyYWl0TWFzayBkZXNpcmUKICNlbHNl
CiAKICAgICBVTlVTRURfUEFSQU0oZmVhdHVyZVNldHRpbmdzKTsKKyAgICBVTlVTRURfUEFSQU0o
dGV4dFJlbmRlcmluZ01vZGUpOwogCiAgICAgTlNGb250VHJhaXRNYXNrIGRlc2lyZWRUcmFpdHNG
b3JOYW1lTWF0Y2ggPSBkZXNpcmVkVHJhaXRzIHwgKHdlaWdodCA+PSBGb250V2VpZ2h0NjAwID8g
TlNCb2xkRm9udE1hc2sgOiAwKTsKICAgICBpZiAoaGFzRGVzaXJlZEZhbWlseVRvQXZhaWxhYmxl
RmFtaWx5TWFwcGluZyhmYW1pbHksIGRlc2lyZWRUcmFpdHNGb3JOYW1lTWF0Y2gsIGF2YWlsYWJs
ZUZhbWlseSkpIHsKQEAgLTUyMCw3ICs1MjEsNyBAQCBSZWZQdHI8Rm9udD4gRm9udENhY2hlOjpz
eXN0ZW1GYWxsYmFja0ZvckNoYXJhY3RlcnMoY29uc3QgRm9udERlc2NyaXB0aW9uJiBkZXNjcgog
ICAgIGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSA9IG9yaWdpbmFsRm9udERh
dGEtPnBsYXRmb3JtRGF0YSgpOwogICAgIE5TRm9udCAqbnNGb250ID0gcGxhdGZvcm1EYXRhLm5z
Rm9udCgpOwogICAgIFJldGFpblB0cjxDVEZvbnRSZWY+IHJlc3VsdCA9IGxvb2t1cENURm9udChw
bGF0Zm9ybURhdGEuZm9udCgpLCBwbGF0Zm9ybURhdGEuc2l6ZSgpLCBkZXNjcmlwdGlvbi5sb2Nh
bGUoKSwgY2hhcmFjdGVycywgbGVuZ3RoKTsKLSAgICByZXN1bHQgPSBhcHBseUZvbnRGZWF0dXJl
U2V0dGluZ3MocmVzdWx0LmdldCgpLCBkZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7Cisg
ICAgcmVzdWx0ID0gcHJlcGFyZVBsYXRmb3JtRm9udChyZXN1bHQuZ2V0KCksIGRlc2NyaXB0aW9u
LnRleHRSZW5kZXJpbmdNb2RlKCksIGRlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpKTsKICAg
ICBpZiAoIXJlc3VsdCkKICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAKQEAgLTY3OSw3ICs2ODAs
NyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVG
b250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZQogICAgIE5TRm9udFRyYWl0TWFzayB0cmFpdHMg
PSBmb250RGVzY3JpcHRpb24uaXRhbGljKCkgPyBOU0ZvbnRJdGFsaWNUcmFpdCA6IDA7CiAgICAg
ZmxvYXQgc2l6ZSA9IGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpOwogCi0gICAg
TlNGb250ICpuc0ZvbnQgPSBmb250V2l0aEZhbWlseShmYW1pbHksIHRyYWl0cywgZm9udERlc2Ny
aXB0aW9uLndlaWdodCgpLCBmb250RGVzY3JpcHRpb24uZmVhdHVyZVNldHRpbmdzKCksIHNpemUp
OworICAgIE5TRm9udCAqbnNGb250ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5LCB0cmFpdHMsIGZv
bnREZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygp
LCBmb250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgc2l6ZSk7CiAgICAgaWYgKCFu
c0ZvbnQpIHsKICAgICAgICAgaWYgKCFzaG91bGRBdXRvQWN0aXZhdGVGb250SWZOZWVkZWQoZmFt
aWx5KSkKICAgICAgICAgICAgIHJldHVybiBudWxscHRyOwpAQCAtNjg4LDcgKzY4OSw3IEBAIHN0
ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0
Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgICAgIC8vIElnbm9yZSB0aGUgcmVzdWx0IGJlY2F1
c2Ugd2Ugd2FudCB0byB1c2Ugb3VyIG93biBhbGdvcml0aG0gdG8gYWN0dWFsbHkgZmluZCB0aGUg
Zm9udC4KICAgICAgICAgW05TRm9udCBmb250V2l0aE5hbWU6ZmFtaWx5IHNpemU6c2l6ZV07CiAK
LSAgICAgICAgbnNGb250ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5LCB0cmFpdHMsIGZvbnREZXNj
cmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpLCBzaXpl
KTsKKyAgICAgICAgbnNGb250ID0gZm9udFdpdGhGYW1pbHkoZmFtaWx5LCB0cmFpdHMsIGZvbnRE
ZXNjcmlwdGlvbi53ZWlnaHQoKSwgZm9udERlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5ncygpLCBm
b250RGVzY3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgc2l6ZSk7CiAgICAgICAgIGlmICgh
bnNGb250KQogICAgICAgICAgICAgcmV0dXJuIG51bGxwdHI7CiAgICAgfQpAQCAtNzAzLDcgKzcw
NCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1EYXRhPiBGb250Q2FjaGU6OmNyZWF0
ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAgICAgYm9vbCBzeW50aGV0aWNCb2xkID0g
KGZvbnREZXNjcmlwdGlvbi5mb250U3ludGhlc2lzKCkgJiBGb250U3ludGhlc2lzV2VpZ2h0KSAm
JiBpc0FwcEtpdEZvbnRXZWlnaHRCb2xkKHRvQXBwS2l0Rm9udFdlaWdodChmb250RGVzY3JpcHRp
b24ud2VpZ2h0KCkpKSAmJiAhaXNBcHBLaXRGb250V2VpZ2h0Qm9sZChhY3R1YWxXZWlnaHQpOwog
ICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IChmb250RGVzY3JpcHRpb24uZm9udFN5bnRoZXNp
cygpICYgRm9udFN5bnRoZXNpc1N0eWxlKSAmJiAodHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQp
ICYmICEoYWN0dWFsVHJhaXRzICYgTlNGb250SXRhbGljVHJhaXQpOwogCi0gICAgcmV0dXJuIHN0
ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4odG9DVEZvbnQocGxhdGZvcm1Gb250KSwg
c2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgZm9udERlc2NyaXB0aW9uLm9y
aWVudGF0aW9uKCksIGZvbnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSk7CisgICAgcmV0dXJu
IHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4odG9DVEZvbnQocGxhdGZvcm1Gb250
KSwgc2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgZm9udERlc2NyaXB0aW9u
Lm9yaWVudGF0aW9uKCksIGZvbnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSwgZm9udERlc2Ny
aXB0aW9uLnRleHRSZW5kZXJpbmdNb2RlKCkpOwogfQogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3Jl
CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvRm9udEN1
c3RvbVBsYXRmb3JtRGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9t
YWMvRm9udEN1c3RvbVBsYXRmb3JtRGF0YS5jcHAKaW5kZXggZWYxMjI3YmIxZDE5ODFhMGM3NDBm
ZTc3YWFhNDZkNWI3YzJjN2Q5YS4uMWMwNzgzZTg0MjU0MTMxMDYwZDc5ZWQ3N2QyNzBhZmY3Zjk4
ZmE5YSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFjL0Zv
bnRDdXN0b21QbGF0Zm9ybURhdGEuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Gb250Q3VzdG9tUGxhdGZvcm1EYXRhLmNwcApAQCAtNDEsMTAgKzQxLDEwIEBA
IEZvbnRQbGF0Zm9ybURhdGEgRm9udEN1c3RvbVBsYXRmb3JtRGF0YTo6Zm9udFBsYXRmb3JtRGF0
YShjb25zdCBGb250RGVzY3JpcHRpb24mCiAgICAgRm9udFdpZHRoVmFyaWFudCB3aWR0aFZhcmlh
bnQgPSBmb250RGVzY3JpcHRpb24ud2lkdGhWYXJpYW50KCk7CiAjaWYgQ09SRVRFWFRfV0VCX0ZP
TlRTCiAgICAgUmV0YWluUHRyPENURm9udFJlZj4gZm9udCA9IGFkb3B0Q0YoQ1RGb250Q3JlYXRl
V2l0aEZvbnREZXNjcmlwdG9yKG1fZm9udERlc2NyaXB0b3IuZ2V0KCksIHNpemUsIG51bGxwdHIp
KTsKLSAgICBmb250ID0gYXBwbHlGb250RmVhdHVyZVNldHRpbmdzKGZvbnQuZ2V0KCksIGZvbnRE
ZXNjcmlwdGlvbi5mZWF0dXJlU2V0dGluZ3MoKSk7Ci0gICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURh
dGEoZm9udC5nZXQoKSwgc2l6ZSwgYm9sZCwgaXRhbGljLCBvcmllbnRhdGlvbiwgd2lkdGhWYXJp
YW50KTsKKyAgICBmb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChmb250LmdldCgpLCBmb250RGVz
Y3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgZm9udERlc2NyaXB0aW9uLmZlYXR1cmVTZXR0
aW5ncygpKTsKKyAgICByZXR1cm4gRm9udFBsYXRmb3JtRGF0YShmb250LmdldCgpLCBzaXplLCBi
b2xkLCBpdGFsaWMsIG9yaWVudGF0aW9uLCB3aWR0aFZhcmlhbnQsIGZvbnREZXNjcmlwdGlvbi50
ZXh0UmVuZGVyaW5nTW9kZSgpKTsKICNlbHNlCi0gICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEo
bV9jZ0ZvbnQuZ2V0KCksIHNpemUsIGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFy
aWFudCk7CisgICAgcmV0dXJuIEZvbnRQbGF0Zm9ybURhdGEobV9jZ0ZvbnQuZ2V0KCksIHNpemUs
IGJvbGQsIGl0YWxpYywgb3JpZW50YXRpb24sIHdpZHRoVmFyaWFudCwgZm9udERlc2NyaXB0aW9u
LnRleHRSZW5kZXJpbmdNb2RlKCkpOwogI2VuZGlmCiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKaW5kZXggMjYwNmMyNmM0NTY1ZmMzMzUz
YzVkMWJlMmE3ZDkzNmQ2NWQ5NTU5OC4uMDdkNWRlYWMxZmFiZDczZDE3ZGYyNDA1M2VlYjY2MGFi
NGJlZDVjOSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0Nv
cmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVU
ZXh0U1BJLmgKQEAgLTQ5LDYgKzQ5LDcgQEAgdHlwZWRlZiBjb25zdCBVbmlDaGFyKiAoKkNUVW5p
Q2hhclByb3ZpZGVyQ2FsbGJhY2spKENGSW5kZXggc3RyaW5nSW5kZXgsIENGSW5kZXgKIHR5cGVk
ZWYgdm9pZCAoKkNUVW5pQ2hhckRpc3Bvc2VDYWxsYmFjaykoY29uc3QgVW5pQ2hhciogY2hhcnMs
IHZvaWQqIHJlZkNvbik7CiAKIGV4dGVybiBjb25zdCBDRlN0cmluZ1JlZiBrQ1RGb250UmVmZXJl
bmNlVVJMQXR0cmlidXRlOworZXh0ZXJuIGNvbnN0IENGU3RyaW5nUmVmIGtDVEZvbnRPcHRpY2Fs
U2l6ZUF0dHJpYnV0ZTsKIAogI2lmIFBMQVRGT1JNKENPQ09BKQogI2lmICFVU0UoQVBQTEVfSU5U
RVJOQUxfU0RLKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRo
ZW1lSU9TLm1tIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRoZW1lSU9TLm1tCmlu
ZGV4IDU1NzgyZDE0OTNlMDk2NTdlMjIwMmE0MTE3ZjFkODRlMzUyMjI2YzcuLmI3M2M1YTg5NTIx
NmVjZWUzNmQwZDAxM2M1OGI4YjMxZjVmMTU0MGUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJUaGVtZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvUmVuZGVyVGhlbWVJT1MubW0KQEAgLTEyNjEsNyArMTI2MSw3IEBAIHZvaWQgUmVuZGVyVGhl
bWVJT1M6OnVwZGF0ZUNhY2hlZFN5c3RlbUZvbnREZXNjcmlwdGlvbihDU1NWYWx1ZUlEIHZhbHVl
SUQsIEZvbnRECiAKICAgICBBU1NFUlQoZm9udERlc2NyaXB0b3IpOwogICAgIFJldGFpblB0cjxD
VEZvbnRSZWY+IGZvbnQgPSBhZG9wdENGKENURm9udENyZWF0ZVdpdGhGb250RGVzY3JpcHRvcihm
b250RGVzY3JpcHRvci5nZXQoKSwgMCwgbnVsbHB0cikpOwotICAgIGZvbnQgPSBhcHBseUZvbnRG
ZWF0dXJlU2V0dGluZ3MoZm9udC5nZXQoKSwgZm9udERlc2NyaXB0aW9uLmZlYXR1cmVTZXR0aW5n
cygpKTsKKyAgICBmb250ID0gcHJlcGFyZVBsYXRmb3JtRm9udChmb250LmdldCgpLCBmb250RGVz
Y3JpcHRpb24udGV4dFJlbmRlcmluZ01vZGUoKSwgZm9udERlc2NyaXB0aW9uLmZlYXR1cmVTZXR0
aW5ncygpKTsKICAgICBmb250RGVzY3JpcHRpb24uc2V0SXNBYnNvbHV0ZVNpemUodHJ1ZSk7CiAg
ICAgZm9udERlc2NyaXB0aW9uLnNldE9uZUZhbWlseSh0ZXh0U3R5bGUpOwogICAgIGZvbnREZXNj
cmlwdGlvbi5zZXRTcGVjaWZpZWRTaXplKENURm9udEdldFNpemUoZm9udC5nZXQoKSkpOwpkaWZm
IC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmlu
ZGV4IDNhMmVjYzk0ZjFlZmY3OTNkYmJjYTg4YjZkYzc2ZjEzYjk5YTAzNDguLmQ5N2E2NDg1NDI0
N2FkMTJlZjhkYTVjZDI1NDQ3MThjNWQ2NWRhNWUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0No
YW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKQEAgLTEsMyArMSwxNyBAQAorMjAx
NS0wOC0xOCAgTXlsZXMgQy4gTWF4ZmllbGQgIDxtbWF4ZmllbGRAYXBwbGUuY29tPgorCisgICAg
ICAgIFtDb2NvYV0gSG9ub3IgdGhlICd0cmFrJyB0YWJsZSBieSBvcHRpbmcgaW4gdmlhIHRleHQt
cmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTE0ODExOQorICAgICAgICA8cmRhcjovL3Byb2JsZW0vMjIy
OTE1NjE+CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAg
VGhpcyB0ZXN0IHdpbGwgZmFpbCB1bnRpbCB3ZSBzdG9wIG1vY2tpbmcgdGhlIHN5c3RlbSBmb250
IG9uIEVsIENhcGl0YW4uIFVudGlsIHRoZW4sCisgICAgICAgIHRoaXMgcGF0Y2ggd2lsbCBjb21t
aXQgdGhlIHRlc3QgZmFpbHVyZSBhcyBhbiBleHBlY3RlZCByZXN1bHQuCisKKyAgICAgICAgKiBm
YXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2liaWxpdHktZXhwZWN0ZWQuaHRtbDogQWRkZWQKKyAg
ICAgICAgKiBmYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2liaWxpdHkuaHRtbDogQWRkZWQKKwog
MjAxNS0wOC0xNyAgQ29tbWl0IFF1ZXVlICA8Y29tbWl0LXF1ZXVlQHdlYmtpdC5vcmc+CiAKICAg
ICAgICAgVW5yZXZpZXdlZCwgcm9sbGluZyBvdXQgcjE4ODUzOSwgcjE4ODU0NCwgcjE4ODU1Miwg
YW5kCmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2li
aWxpdHktZXhwZWN0ZWQudHh0IGIvTGF5b3V0VGVzdHMvZmFzdC90ZXh0L3RyYWstb3B0aW1pemVM
ZWdpYmlsaXR5LWV4cGVjdGVkLnR4dApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi40ZmYwNzlmMDkyYjhkMTExMGQ4ODll
ZGE5OGZiMGQ1NWE1NjRhNjhmCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0VGVzdHMvZmFzdC90
ZXh0L3RyYWstb3B0aW1pemVMZWdpYmlsaXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBA
CitQQVNTIGZpcnN0LmdldENsaWVudFJlY3RzKCkubGVuZ3RoIGlzIDEKK1BBU1MgdGhpcmQuZ2V0
Q2xpZW50UmVjdHMoKS5sZW5ndGggaXMgMQorRkFJTCBmaXJzdC5nZXRDbGllbnRSZWN0cygpWzBd
LnJpZ2h0IHNob3VsZCBiZSB3aXRoaW4gNCBvZiAzNDYuIFdhcyAzNjQuCitQQVNTIHN1Y2Nlc3Nm
dWxseVBhcnNlZCBpcyB0cnVlCisKK1RFU1QgQ09NUExFVEUKK1RoaXMgdGVzdCBtYWtlcyBzdXJl
IHRoYXQgeW91IGNhbiBvcHQtaW4gdG8gaG9ub3JpbmcgdGhlICd0cmFrJyB0YWJsZSBieSBzcGVj
aWZ5aW5nIHRleHQtcmVuZGVyaW5nOiBvcHRpbWl6ZUxlZ2liaWxpdHkuIFRoZSBmaXJzdCBhbmQg
dGhpcmQgbGluZXMgYmVsb3cgc2hvdWxkIGhhdmUgdGhlIHNhbWUgd2lkdGguIFRoZSBtaWRkbGUg
b25lIGNhbiAoYnV0IGRvZXNuJ3QgaGF2ZSB0bykgaGF2ZSBhIGRpZmZlcmVudCB3aWR0aC4KK2hh
bWJ1cmdlZm9uc3RpdgorCitoYW1idXJnZWZvbnN0aXYKKworaGFtYnVyZ2Vmb25zdGl2CmRpZmYg
LS1naXQgYS9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2liaWxpdHkuaHRt
bCBiL0xheW91dFRlc3RzL2Zhc3QvdGV4dC90cmFrLW9wdGltaXplTGVnaWJpbGl0eS5odG1sCm5l
dyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MDAwMDAwMDAuLjg4NDk0YjE2MGYzNWFhMzUwNjg1NzgxMDAwNDAxMjFkZDI2YzQzZTkKLS0tIC9k
ZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0cy9mYXN0L3RleHQvdHJhay1vcHRpbWl6ZUxlZ2liaWxp
dHkuaHRtbApAQCAtMCwwICsxLDIxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+
Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcHJlLmpzIj48L3NjcmlwdD4K
KzwvaGVhZD4KKzxib2R5PgorVGhpcyB0ZXN0IG1ha2VzIHN1cmUgdGhhdCB5b3UgY2FuIG9wdC1p
biB0byBob25vcmluZyB0aGUgJ3RyYWsnIHRhYmxlIGJ5IHNwZWNpZnlpbmcgdGV4dC1yZW5kZXJp
bmc6IG9wdGltaXplTGVnaWJpbGl0eS4KK1RoZSBmaXJzdCBhbmQgdGhpcmQgbGluZXMgYmVsb3cg
c2hvdWxkIGhhdmUgdGhlIHNhbWUgd2lkdGguIFRoZSBtaWRkbGUgb25lIGNhbiAoYnV0IGRvZXNu
J3QgaGF2ZSB0bykgaGF2ZSBhIGRpZmZlcmVudCB3aWR0aC4KKzxwPjxzcGFuIGlkPSJmaXJzdCIg
c3R5bGU9ImZvbnQ6IDUwcHggJy1hcHBsZS1zeXN0ZW0nOyBmb250LXdlaWdodDogMzAwOyI+aGFt
YnVyZ2Vmb25zdGl2PC9zcGFuPjwvcD4KKzxwPjxzcGFuIGlkPSJzZWNvbmQiIHN0eWxlPSJmb250
OiA1MHB4ICcuU0ZOU1RleHQtTGlnaHQnICcuU0ZVSURpc3BsYXktTGlnaHQnOyI+aGFtYnVyZ2Vm
b25zdGl2PC9zcGFuPjwvcD4KKzxwPjxzcGFuIGlkPSJ0aGlyZCIgc3R5bGU9ImZvbnQ6IDUwcHgg
Jy5TRk5TVGV4dC1MaWdodCcgJy5TRlVJRGlzcGxheS1MaWdodCc7IHRleHQtcmVuZGVyaW5nOiBv
cHRpbWl6ZUxlZ2liaWxpdHk7Ij5oYW1idXJnZWZvbnN0aXY8L3NwYW4+PC9wPgorPHNjcmlwdD4K
K3ZhciBmaXJzdCA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJmaXJzdCIpOwordmFyIHRoaXJk
ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoInRoaXJkIik7CitzaG91bGRCZSgiZmlyc3QuZ2V0
Q2xpZW50UmVjdHMoKS5sZW5ndGgiLCAiMSIpOworc2hvdWxkQmUoInRoaXJkLmdldENsaWVudFJl
Y3RzKCkubGVuZ3RoIiwgIjEiKTsKK3Nob3VsZEJlQ2xvc2VUbygiZmlyc3QuZ2V0Q2xpZW50UmVj
dHMoKVswXS5yaWdodCIsIHRoaXJkLmdldENsaWVudFJlY3RzKClbMF0ucmlnaHQsIDQpOworPC9z
Y3JpcHQ+Cis8c2NyaXB0IHNyYz0iLi4vLi4vcmVzb3VyY2VzL2pzLXRlc3QtcG9zdC5qcyI+PC9z
Y3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0cy9wbGF0Zm9y
bS9pb3Mtc2ltdWxhdG9yL2Zhc3QvdGV4dC90cmFrLW9wdGltaXplTGVnaWJpbGl0eS1leHBlY3Rl
ZC50eHQgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9pb3Mtc2ltdWxhdG9yL2Zhc3QvdGV4dC90cmFr
LW9wdGltaXplTGVnaWJpbGl0eS1leHBlY3RlZC50eHQKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5k
ZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uMjVmZmMxNzQwYzk5
ODQxYzQ1ZDQzYWRiNzgxZjdiODUxNzA4ZDk0ZgotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRl
c3RzL3BsYXRmb3JtL2lvcy1zaW11bGF0b3IvZmFzdC90ZXh0L3RyYWstb3B0aW1pemVMZWdpYmls
aXR5LWV4cGVjdGVkLnR4dApAQCAtMCwwICsxLDEyIEBACitQQVNTIGZpcnN0LmdldENsaWVudFJl
Y3RzKCkubGVuZ3RoIGlzIDEKK1BBU1MgdGhpcmQuZ2V0Q2xpZW50UmVjdHMoKS5sZW5ndGggaXMg
MQorUEFTUyBmaXJzdC5nZXRDbGllbnRSZWN0cygpWzBdLnJpZ2h0IGlzIHdpdGhpbiA0IG9mIDM2
OQorUEFTUyBzdWNjZXNzZnVsbHlQYXJzZWQgaXMgdHJ1ZQorCitURVNUIENPTVBMRVRFCitUaGlz
IHRlc3QgbWFrZXMgc3VyZSB0aGF0IHlvdSBjYW4gb3B0LWluIHRvIGhvbm9yaW5nIHRoZSAndHJh
aycgdGFibGUgYnkgc3BlY2lmeWluZyB0ZXh0LXJlbmRlcmluZzogb3B0aW1pemVMZWdpYmlsaXR5
LiBUaGUgZmlyc3QgYW5kIHRoaXJkIGxpbmVzIGJlbG93IHNob3VsZCBoYXZlIHRoZSBzYW1lIHdp
ZHRoLiBUaGUgbWlkZGxlIG9uZSBjYW4gKGJ1dCBkb2Vzbid0IGhhdmUgdG8pIGhhdmUgYSBkaWZm
ZXJlbnQgd2lkdGguCitoYW1idXJnZWZvbnN0aXYKKworaGFtYnVyZ2Vmb25zdGl2CisKK2hhbWJ1
cmdlZm9uc3RpdgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvcGxhdGZvcm0vbWFjL1Rlc3RFeHBl
Y3RhdGlvbnMgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucwppbmRl
eCAwYzEwNmI2NWRiNzFhNmRlZTAxNGFiNWVlNmIzMjcwNjBkM2ZjZGJmLi5iNzMyYWRkMzY1ZjAw
ZjgzMmY3MTI1NGIzM2ZkODM2NzIzZTYzMDYzIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9wbGF0
Zm9ybS9tYWMvVGVzdEV4cGVjdGF0aW9ucworKysgYi9MYXlvdXRUZXN0cy9wbGF0Zm9ybS9tYWMv
VGVzdEV4cGVjdGF0aW9ucwpAQCAtMTI5NiwzICsxMjk2LDYgQEAgd2Via2l0Lm9yZy9iLzE0NzM5
MCBbIE1hdmVyaWNrcyBZb3NlbWl0ZSBFbENhcGl0YW4gXSBmYXN0L3RleHQvZmFsbGJhY2stbGFu
Z3VhZ2UKIAogIyBTdGFydGVkIHRvIGZhaWwgYWZ0ZXIgcjE4ODM5MAogd2Via2l0Lm9yZy9iLzE0
ODA0MiBodHRwL3Rlc3RzL21lZGlhL3ZpZGVvLWJ1ZmZlcmVkLXJhbmdlLWNvbnRhaW5zLWN1cnJl
bnRUaW1lLmh0bWwgWyBQYXNzIEZhaWx1cmUgXQorCisjIFRoaXMgdGVzdCB0ZXN0cyBhIHBhcnRp
Y3VsYXIgc3lzdGVtIGZvbnQsIHdoaWNoIGlzIG9ubHkgb24gaU9TIGFuZCBFbCBDYXBpdGFuLgor
d2Via2l0Lm9yZy9iLzE0ODExOSBbIE1hdmVyaWNrcyBZb3NlbWl0ZSBdIGZhc3QvdGV4dC90cmFr
LW9wdGltaXplTGVnaWJpbGl0eS5odG1sIFsgRmFpbHVyZSBdCg==
</data>
<flag name="review"
          id="284419"
          type_id="1"
          status="+"
          setter="thorton"
    />
          </attachment>
      

    </bug>

</bugzilla>