<?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>45917</bug_id>
          
          <creation_ts>2010-09-16 14:01:48 -0700</creation_ts>
          <short_desc>[GTK] FontPlatformDataFreeType should use smart pointers to hold its members</short_desc>
          <delta_ts>2010-09-17 10:42:30 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>WebKitGTK</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>PC</rep_platform>
          <op_sys>Linux</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Gtk</keywords>
          <priority>P3</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Martin Robinson">mrobinson</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>280344</commentid>
    <comment_count>0</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-09-16 14:01:48 -0700</bug_when>
    <thetext>Smart pointers will simplify this code greatly and be safer in the long run.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280397</commentid>
    <comment_count>1</comment_count>
      <attachid>67848</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-09-16 15:32:10 -0700</bug_when>
    <thetext>Created attachment 67848
Patch for this issue</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280399</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2010-09-16 15:33:58 -0700</bug_when>
    <thetext>Attachment 67848 did not pass style-queue:

Failed to run &quot;[&apos;WebKitTools/Scripts/check-webkit-style&apos;]&quot; exit_code: 1
WebCore/platform/graphics/cairo/PlatformRefPtrCairo.h:27:  cairo_scaled_font_t is incorrectly named. Don&apos;t use underscores in your identifier names.  [readability/naming] [4]
Total errors found: 1 in 11 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280726</commentid>
    <comment_count>3</comment_count>
      <attachid>67848</attachid>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-09-17 10:42:26 -0700</bug_when>
    <thetext>Comment on attachment 67848
Patch for this issue

Clearing flags on attachment: 67848

Committed r67724: &lt;http://trac.webkit.org/changeset/67724&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>280727</commentid>
    <comment_count>4</comment_count>
    <who name="Martin Robinson">mrobinson</who>
    <bug_when>2010-09-17 10:42:30 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>67848</attachid>
            <date>2010-09-16 15:32:10 -0700</date>
            <delta_ts>2010-09-17 10:42:25 -0700</delta_ts>
            <desc>Patch for this issue</desc>
            <filename>bug-45917-20100916153209.patch</filename>
            <type>text/plain</type>
            <size>24852</size>
            <attacher name="Martin Robinson">mrobinson</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZyBiL0phdmFTY3JpcHRDb3JlL0No
YW5nZUxvZwppbmRleCAyY2NkYzk2ZmM0OTRmNjM5NjZmZDYwOWVmOWEyMTczNTYwNzZlNGZiLi5m
OTRkMjMwZjRlMWFkZGM5NGQ1NGNiNGFjZjAxMzJmMDkwN2FiNjE2IDEwMDY0NAotLS0gYS9KYXZh
U2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvSmF2YVNjcmlwdENvcmUvQ2hhbmdlTG9nCkBAIC0x
LDMgKzEsMTYgQEAKKzIwMTAtMDktMTYgIE1hcnRpbiBSb2JpbnNvbiAgPG1yb2JpbnNvbkBpZ2Fs
aWEuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
IFtHVEtdIEZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZSBzaG91bGQgdXNlIHNtYXJ0IHBvaW50ZXJz
IHRvIGhvbGQgaXRzIG1lbWJlcnMKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTQ1OTE3CisKKyAgICAgICAgQWRkZWQgc3VwcG9ydCB0byBQbGF0Zm9ybVJl
ZlB0ciBmb3IgaGFuZGxpbmcgSGFzaFRhYmxlRGVsZXRlZFZhbHVlLgorCisgICAgICAgICogd3Rm
L1BsYXRmb3JtUmVmUHRyLmg6CisgICAgICAgIChXVEY6OlBsYXRmb3JtUmVmUHRyOjpQbGF0Zm9y
bVJlZlB0cik6IEFkZGVkIGEgY29uc3RydWN0b3IgdGhhdCB0YWtlcyBIYXNoVGFibGVEZWxldGVk
VmFsdWUuCisgICAgICAgIChXVEY6OlBsYXRmb3JtUmVmUHRyOjppc0hhc2hUYWJsZURlbGV0ZWRW
YWx1ZSk6IEFkZGVkLgorCiAyMDEwLTA5LTE2ICBFcmljIFVocmhhbmUgIDxlcmljdUBjaHJvbWl1
bS5vcmc+CiAKICAgICAgICAgUmV2aWV3ZWQgYnkgSmlhbiBMaS4KZGlmZiAtLWdpdCBhL0phdmFT
Y3JpcHRDb3JlL3d0Zi9QbGF0Zm9ybVJlZlB0ci5oIGIvSmF2YVNjcmlwdENvcmUvd3RmL1BsYXRm
b3JtUmVmUHRyLmgKaW5kZXggMmQwNWFjOTJhMzIwZmI3MTJkMDJhNTZjNzc2NWQyOGZmNjVhNzZm
OS4uOGFjMTZjYjFlMmVhYTA4OTYxMTczZjAxOGQwZWFjYjI3MzVhZmRiMyAxMDA2NDQKLS0tIGEv
SmF2YVNjcmlwdENvcmUvd3RmL1BsYXRmb3JtUmVmUHRyLmgKKysrIGIvSmF2YVNjcmlwdENvcmUv
d3RmL1BsYXRmb3JtUmVmUHRyLmgKQEAgLTI0LDYgKzI0LDcgQEAKICNkZWZpbmUgUGxhdGZvcm1S
ZWZQdHJfaAogCiAjaW5jbHVkZSAiQWx3YXlzSW5saW5lLmgiCisjaW5jbHVkZSAiUmVmUHRyLmgi
CiAjaW5jbHVkZSA8YWxnb3JpdGhtPgogCiBuYW1lc3BhY2UgV1RGIHsKQEAgLTczLDYgKzc0LDEw
IEBAIHB1YmxpYzoKICAgICAgICAgICAgIGRlcmVmUGxhdGZvcm1QdHIocHRyKTsKICAgICB9CiAK
KyAgICAvLyBIYXNoIHRhYmxlIGRlbGV0ZWQgdmFsdWVzLCB3aGljaCBhcmUgb25seSBjb25zdHJ1
Y3RlZCBhbmQgbmV2ZXIgY29waWVkIG9yIGRlc3Ryb3llZC4KKyAgICBQbGF0Zm9ybVJlZlB0cihI
YXNoVGFibGVEZWxldGVkVmFsdWVUeXBlKSA6IG1fcHRyKGhhc2hUYWJsZURlbGV0ZWRWYWx1ZSgp
KSB7IH0KKyAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29uc3QgeyByZXR1cm4g
bV9wdHIgPT0gaGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7IH0KKwogICAgIFQqIGdldCgpIGNvbnN0
IHsgcmV0dXJuIG1fcHRyOyB9CiAgICAgVCYgb3BlcmF0b3IqKCkgY29uc3QgeyByZXR1cm4gKm1f
cHRyOyB9CiAgICAgQUxXQVlTX0lOTElORSBUKiBvcGVyYXRvci0+KCkgY29uc3QgeyByZXR1cm4g
bV9wdHI7IH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvQ2hhbmdlTG9nIGIvV2ViQ29yZS9DaGFuZ2VM
b2cKaW5kZXggNmRkYjY2MTVkMTVmNzljYTNiY2IwMzAxODJlNjJmYmZhMDhkZTEyYi4uODA1NTc1
ZjgxNGIyYmE4MzNiYjhjODAyYzUxMzUyNTgxNjhlZTZlNSAxMDA2NDQKLS0tIGEvV2ViQ29yZS9D
aGFuZ2VMb2cKKysrIGIvV2ViQ29yZS9DaGFuZ2VMb2cKQEAgLTEsMyArMSw0NSBAQAorMjAxMC0w
OS0xNiAgTWFydGluIFJvYmluc29uICA8bXJvYmluc29uQGlnYWxpYS5jb20+CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgW0dUS10gRm9udFBsYXRmb3Jt
RGF0YUZyZWVUeXBlIHNob3VsZCB1c2Ugc21hcnQgcG9pbnRlcnMgdG8gaG9sZCBpdHMgbWVtYmVy
cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9NDU5MTcK
KworICAgICAgICBIYXZlIEZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZSB1c2Ugc21hcnQgcG9pbnRl
cnMgdG8gaG9sZCBpdHMgcmVmZXJlbmNlLWNvdW50ZWQKKyAgICAgICAgbWVtYmVycy4gQWxzbyBt
b3ZlIHRoZSBGY1BhdHRlcm4gc3BlY2lhbGl6YXRpb24gZnJvbSBPd25QdHJDYWlybyB0byBQbGF0
Zm9ybVJlZlB0ckNhaXJvCisgICAgICAgIGFzIHRoaXMgdHlwZSBpcyByZWZlcmVuY2UtY291bnRl
ZC4KKworICAgICAgICBObyBuZXcgdGVzdHMgYXMgdGhpcyBzaG91bGQgbm90IGludHJvZHVjZSBh
bnkgZnVuY3Rpb25hbGl0eSBjaGFuZ2VzLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3Mv
Y2Fpcm8vRm9udENhY2hlRnJlZVR5cGUuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hl
OjpnZXRGb250RGF0YUZvckNoYXJhY3RlcnMpOiBVcGRhdGVkIHRvIHJlZmxlY3Qgc21hcnQgcG9p
bnRlciBjaGFuZ2VzLgorICAgICAgICAoV2ViQ29yZTo6Rm9udENhY2hlOjpjcmVhdGVGb250UGxh
dGZvcm1EYXRhKTogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9u
dFBsYXRmb3JtRGF0YUZyZWVUeXBlLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9y
bURhdGE6OkZvbnRQbGF0Zm9ybURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQ
bGF0Zm9ybURhdGE6Om9wZXJhdG9yPSk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBs
YXRmb3JtRGF0YTo6fkZvbnRQbGF0Zm9ybURhdGEpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6
OkZvbnRQbGF0Zm9ybURhdGE6OmlzRml4ZWRQaXRjaCk6IERpdHRvLgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9PSk6IERpdHRvLgorICAgICAgICAqIHBsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5oOgorICAgICAgICAo
V2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6c2NhbGVkRm9udCk6IERpdHRvLgorICAg
ICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6aGFzaCk6IERpdHRvLgorICAgICAgICAo
V2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6aXNIYXNoVGFibGVEZWxldGVkVmFsdWUpOiBEaXR0
by4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9HbHlwaFBhZ2VUcmVlTm9kZUNh
aXJvLmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkdseXBoUGFnZTo6ZmlsbCk6IERpdHRvLgorICAg
ICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmNwcDogUmVtb3ZlZCBG
Y1BhdHRlcm4gc3BlY2lhbGl6YXRpb24uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vT3duUHRyQ2Fpcm8uaDogRGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vUGxhdGZvcm1SZWZQdHJDYWlyby5jcHA6IEFkZGVkIEZjUGF0dGVybiBhbmQgY2Fpcm9fc2Nh
bGVkX2ZvbnRfdCBzcGVjaWFsaXphdGlvbnMuCisgICAgICAgIChXVEY6OnJlZlBsYXRmb3JtUHRy
KTogRGl0dG8uCisgICAgICAgIChXVEY6OmRlcmVmUGxhdGZvcm1QdHIpOiBEaXR0by4KKyAgICAg
ICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybVJlZlB0ckNhaXJvLmg6IERpdHRv
LgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1NpbXBsZUZvbnREYXRhQ2Fpcm8u
Y3BwOgorICAgICAgICAoV2ViQ29yZTo6U2ltcGxlRm9udERhdGE6OnBsYXRmb3JtSW5pdCk6IFVw
ZGF0ZWQgdG8gcmVmbGVjdCBzbWFydCBwb2ludGVyIGNoYW5nZXMuCisgICAgICAgIChXZWJDb3Jl
OjpTaW1wbGVGb250RGF0YTo6Y29udGFpbnNDaGFyYWN0ZXJzKTogRGl0dG8uCisgICAgICAgIChX
ZWJDb3JlOjpTaW1wbGVGb250RGF0YTo6cGxhdGZvcm1XaWR0aEZvckdseXBoKTogRGl0dG8uCisg
ICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvZ3RrL0ZvbnRHdGsuY3BwOgorICAgICAgICAoV2Vi
Q29yZTo6c2V0UGFuZ29BdHRyaWJ1dGVzKTogRGl0dG8uCisKIDIwMTAtMDktMTYgIFNoZXJpZmYg
Qm90ICA8d2Via2l0LnJldmlldy5ib3RAZ21haWwuY29tPgogCiAgICAgICAgIFVucmV2aWV3ZWQs
IHJvbGxpbmcgb3V0IHI2NzYyOC4KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY2Fpcm8vRm9udENhY2hlRnJlZVR5cGUuY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9Gb250Q2FjaGVGcmVlVHlwZS5jcHAKaW5kZXggZjUwN2FkM2EyMzRjNTRjOWIzZDg5
NzgzYjFkMWFmMjY3MGFhMzA5Yy4uYzA5ZGQ0OWRjZTIxZWZiYzc1MjVhZmVjYTRlM2Q2MTFjYjIw
MmUzZCAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250Q2Fj
aGVGcmVlVHlwZS5jcHAKKysrIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250
Q2FjaGVGcmVlVHlwZS5jcHAKQEAgLTI0LDYgKzI0LDcgQEAKICNpbmNsdWRlICJDU3RyaW5nLmgi
CiAjaW5jbHVkZSAiRm9udC5oIgogI2luY2x1ZGUgIk93blB0ckNhaXJvLmgiCisjaW5jbHVkZSAi
UGxhdGZvcm1SZWZQdHJDYWlyby5oIgogI2luY2x1ZGUgIlNpbXBsZUZvbnREYXRhLmgiCiAjaW5j
bHVkZSA8d3RmL0Fzc2VydGlvbnMuaD4KIApAQCAtNDYsMTMgKzQ3LDEzIEBAIGNvbnN0IFNpbXBs
ZUZvbnREYXRhKiBGb250Q2FjaGU6OmdldEZvbnREYXRhRm9yQ2hhcmFjdGVycyhjb25zdCBGb250
JiBmb250LCBjb25zCiAgICAgICAgIHJldHVybiAwOwogCiAgICAgaWYgKCFwcmltLT5tX2ZhbGxi
YWNrcykKLSAgICAgICAgcHJpbS0+bV9mYWxsYmFja3MgPSBGY0ZvbnRTb3J0KE5VTEwsIHByaW0t
Pm1fcGF0dGVybiwgRmNUcnVlLCBOVUxMLCAmZnJlc3VsdCk7CisgICAgICAgIHByaW0tPm1fZmFs
bGJhY2tzID0gRmNGb250U29ydCgwLCBwcmltLT5tX3BhdHRlcm4uZ2V0KCksIEZjVHJ1ZSwgMCwg
JmZyZXN1bHQpOwogCiAgICAgRmNGb250U2V0KiBmcyA9IHByaW0tPm1fZmFsbGJhY2tzOwogCiAg
ICAgZm9yIChpbnQgaSA9IDA7IGkgPCBmcy0+bmZvbnQ7IGkrKykgewotICAgICAgICBGY1BhdHRl
cm4qIGZpbiA9IEZjRm9udFJlbmRlclByZXBhcmUoTlVMTCwgcHJpbS0+bV9wYXR0ZXJuLCBmcy0+
Zm9udHNbaV0pOwotICAgICAgICBjYWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UgPSBjYWlyb19m
dF9mb250X2ZhY2VfY3JlYXRlX2Zvcl9wYXR0ZXJuKGZpbik7CisgICAgICAgIFBsYXRmb3JtUmVm
UHRyPEZjUGF0dGVybj4gZmluID0gYWRvcHRQbGF0Zm9ybVJlZihGY0ZvbnRSZW5kZXJQcmVwYXJl
KDAsIHByaW0tPm1fcGF0dGVybi5nZXQoKSwgZnMtPmZvbnRzW2ldKSk7CisgICAgICAgIGNhaXJv
X2ZvbnRfZmFjZV90KiBmb250RmFjZSA9IGNhaXJvX2Z0X2ZvbnRfZmFjZV9jcmVhdGVfZm9yX3Bh
dHRlcm4oZmluLmdldCgpKTsKICAgICAgICAgRm9udFBsYXRmb3JtRGF0YSBhbHRlcm5hdGVGb250
KGZvbnRGYWNlLCBmb250LmZvbnREZXNjcmlwdGlvbigpLmNvbXB1dGVkUGl4ZWxTaXplKCksIGZh
bHNlLCBmYWxzZSk7CiAgICAgICAgIGNhaXJvX2ZvbnRfZmFjZV9kZXN0cm95KGZvbnRGYWNlKTsK
ICAgICAgICAgYWx0ZXJuYXRlRm9udC5tX3BhdHRlcm4gPSBmaW47CkBAIC0xMTIsNyArMTEzLDcg
QEAgRm9udFBsYXRmb3JtRGF0YSogRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNv
bnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udEQKICAgICBDU3RyaW5nIGZhbWlseU5hbWVTdHJpbmcg
PSBmYW1pbHkuc3RyaW5nKCkudXRmOCgpOwogICAgIGNvbnN0IGNoYXIqIGZjZmFtaWx5ID0gZmFt
aWx5TmFtZVN0cmluZy5kYXRhKCk7CiAKLSAgICBPd25QdHI8RmNQYXR0ZXJuPiBwYXR0ZXJuKEZj
UGF0dGVybkNyZWF0ZSgpKTsKKyAgICBQbGF0Zm9ybVJlZlB0cjxGY1BhdHRlcm4+IHBhdHRlcm4g
PSBhZG9wdFBsYXRmb3JtUmVmKEZjUGF0dGVybkNyZWF0ZSgpKTsKICAgICBpZiAoIUZjUGF0dGVy
bkFkZFN0cmluZyhwYXR0ZXJuLmdldCgpLCBGQ19GQU1JTFksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29u
c3QgRmNDaGFyOCo+KGZjZmFtaWx5KSkpCiAgICAgICAgIHJldHVybiAwOwogCmRpZmYgLS1naXQg
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlw
ZS5jcHAgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQbGF0Zm9ybURhdGFG
cmVlVHlwZS5jcHAKaW5kZXggMWY5NGY1YTc5NDU4ZTZmNzUyMDYyOWM2ODk5NTg4YjYxNTYyMDJi
Zi4uNzk2ODk2NjcxNGZlMjQ1YWFjZTJhNmRjYWU1NGZhNmNjYjExMjA5ZCAxMDA2NDQKLS0tIGEv
V2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUu
Y3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vRm9udFBsYXRmb3JtRGF0
YUZyZWVUeXBlLmNwcApAQCAtMzksMTIgKzM5LDEwIEBACiBuYW1lc3BhY2UgV2ViQ29yZSB7CiAK
IEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0aW9u
JiBmb250RGVzY3JpcHRpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSkKLSAgICA6
IG1fcGF0dGVybigwKQotICAgICwgbV9mYWxsYmFja3MoMCkKKyAgICA6IG1fZmFsbGJhY2tzKDAp
CiAgICAgLCBtX3NpemUoZm9udERlc2NyaXB0aW9uLmNvbXB1dGVkUGl4ZWxTaXplKCkpCiAgICAg
LCBtX3N5bnRoZXRpY0JvbGQoZmFsc2UpCiAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoZmFsc2Up
Ci0gICAgLCBtX3NjYWxlZEZvbnQoMCkKIHsKICAgICBGb250UGxhdGZvcm1EYXRhOjppbml0KCk7
CiAKQEAgLTYxLDE0ICs1OSwxNCBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBjb25zdAogCiAgICAgaW50
IHR5cGUgPSBmb250RGVzY3JpcHRpb24uZ2VuZXJpY0ZhbWlseSgpOwogCi0gICAgRmNQYXR0ZXJu
KiBwYXR0ZXJuID0gRmNQYXR0ZXJuQ3JlYXRlKCk7CisgICAgUGxhdGZvcm1SZWZQdHI8RmNQYXR0
ZXJuPiBwYXR0ZXJuID0gYWRvcHRQbGF0Zm9ybVJlZihGY1BhdHRlcm5DcmVhdGUoKSk7CiAgICAg
Y2Fpcm9fZm9udF9mYWNlX3QqIGZvbnRGYWNlOwogICAgIHN0YXRpYyBjb25zdCBjYWlyb19mb250
X29wdGlvbnNfdCogZGVmYXVsdE9wdGlvbnMgPSBjYWlyb19mb250X29wdGlvbnNfY3JlYXRlKCk7
CiAgICAgY29uc3QgY2Fpcm9fZm9udF9vcHRpb25zX3QqIG9wdGlvbnMgPSBOVUxMOwogICAgIGNh
aXJvX21hdHJpeF90IGZvbnRNYXRyaXg7CiAKLSAgICBpZiAoIUZjUGF0dGVybkFkZFN0cmluZyhw
YXR0ZXJuLCBGQ19GQU1JTFksIHJlaW50ZXJwcmV0X2Nhc3Q8Y29uc3QgRmNDaGFyOCo+KGZjZmFt
aWx5KSkpCi0gICAgICAgIGdvdG8gZnJlZVBhdHRlcm47CisgICAgaWYgKCFGY1BhdHRlcm5BZGRT
dHJpbmcocGF0dGVybi5nZXQoKSwgRkNfRkFNSUxZLCByZWludGVycHJldF9jYXN0PGNvbnN0IEZj
Q2hhcjgqPihmY2ZhbWlseSkpKQorICAgICAgICByZXR1cm47CiAKICAgICBzd2l0Y2ggKHR5cGUp
IHsKICAgICBjYXNlIEZvbnREZXNjcmlwdGlvbjo6U2VyaWZGYW1pbHk6CkBAIC04OSwzMSArODcs
MzEgQEAgRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3Jp
cHRpb24mIGZvbnREZXNjcmlwdGlvbiwgY29uc3QKICAgICAgICAgYnJlYWs7CiAgICAgfQogCi0g
ICAgaWYgKGZjZmFtaWx5ICYmICFGY1BhdHRlcm5BZGRTdHJpbmcocGF0dGVybiwgRkNfRkFNSUxZ
LCByZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPihmY2ZhbWlseSkpKQotICAgICAgICBn
b3RvIGZyZWVQYXR0ZXJuOwotICAgIGlmICghRmNQYXR0ZXJuQWRkSW50ZWdlcihwYXR0ZXJuLCBG
Q19XRUlHSFQsIGZjd2VpZ2h0KSkKLSAgICAgICAgZ290byBmcmVlUGF0dGVybjsKLSAgICBpZiAo
IUZjUGF0dGVybkFkZEludGVnZXIocGF0dGVybiwgRkNfU0xBTlQsIGZjc2xhbnQpKQotICAgICAg
ICBnb3RvIGZyZWVQYXR0ZXJuOwotICAgIGlmICghRmNQYXR0ZXJuQWRkRG91YmxlKHBhdHRlcm4s
IEZDX1BJWEVMX1NJWkUsIGZjc2l6ZSkpCi0gICAgICAgIGdvdG8gZnJlZVBhdHRlcm47CisgICAg
aWYgKGZjZmFtaWx5ICYmICFGY1BhdHRlcm5BZGRTdHJpbmcocGF0dGVybi5nZXQoKSwgRkNfRkFN
SUxZLCByZWludGVycHJldF9jYXN0PGNvbnN0IEZjQ2hhcjgqPihmY2ZhbWlseSkpKQorICAgICAg
ICByZXR1cm47CisgICAgaWYgKCFGY1BhdHRlcm5BZGRJbnRlZ2VyKHBhdHRlcm4uZ2V0KCksIEZD
X1dFSUdIVCwgZmN3ZWlnaHQpKQorICAgICAgICByZXR1cm47CisgICAgaWYgKCFGY1BhdHRlcm5B
ZGRJbnRlZ2VyKHBhdHRlcm4uZ2V0KCksIEZDX1NMQU5ULCBmY3NsYW50KSkKKyAgICAgICAgcmV0
dXJuOworICAgIGlmICghRmNQYXR0ZXJuQWRkRG91YmxlKHBhdHRlcm4uZ2V0KCksIEZDX1BJWEVM
X1NJWkUsIGZjc2l6ZSkpCisgICAgICAgIHJldHVybjsKIAotICAgIEZjQ29uZmlnU3Vic3RpdHV0
ZShOVUxMLCBwYXR0ZXJuLCBGY01hdGNoUGF0dGVybik7Ci0gICAgRmNEZWZhdWx0U3Vic3RpdHV0
ZShwYXR0ZXJuKTsKKyAgICBGY0NvbmZpZ1N1YnN0aXR1dGUoMCwgcGF0dGVybi5nZXQoKSwgRmNN
YXRjaFBhdHRlcm4pOworICAgIEZjRGVmYXVsdFN1YnN0aXR1dGUocGF0dGVybi5nZXQoKSk7CiAK
ICAgICBGY1Jlc3VsdCBmY3Jlc3VsdDsKLSAgICBtX3BhdHRlcm4gPSBGY0ZvbnRNYXRjaChOVUxM
LCBwYXR0ZXJuLCAmZmNyZXN1bHQpOworICAgIG1fcGF0dGVybiA9IGFkb3B0UGxhdGZvcm1SZWYo
RmNGb250TWF0Y2goMCwgcGF0dGVybi5nZXQoKSwgJmZjcmVzdWx0KSk7CiAgICAgLy8gRklYTUU6
IHNob3VsZCB3ZSBzZXQgc29tZSBkZWZhdWx0IGZvbnQ/CiAgICAgaWYgKCFtX3BhdHRlcm4pCi0g
ICAgICAgIGdvdG8gZnJlZVBhdHRlcm47Ci0gICAgZm9udEZhY2UgPSBjYWlyb19mdF9mb250X2Zh
Y2VfY3JlYXRlX2Zvcl9wYXR0ZXJuKG1fcGF0dGVybik7CisgICAgICAgIHJldHVybjsKKyAgICBm
b250RmFjZSA9IGNhaXJvX2Z0X2ZvbnRfZmFjZV9jcmVhdGVfZm9yX3BhdHRlcm4obV9wYXR0ZXJu
LmdldCgpKTsKICAgICBjYWlyb19tYXRyaXhfdCBjdG07CiAgICAgY2Fpcm9fbWF0cml4X2luaXRf
c2NhbGUoJmZvbnRNYXRyaXgsIGZvbnREZXNjcmlwdGlvbi5jb21wdXRlZFBpeGVsU2l6ZSgpLCBm
b250RGVzY3JpcHRpb24uY29tcHV0ZWRQaXhlbFNpemUoKSk7CiAgICAgY2Fpcm9fbWF0cml4X2lu
aXRfaWRlbnRpdHkoJmN0bSk7CiAKICNpZiAhUExBVEZPUk0oRUZMKSB8fCBFTkFCTEUoR0xJQl9T
VVBQT1JUKQogICAgIGlmIChHZGtTY3JlZW4qIHNjcmVlbiA9IGdka19zY3JlZW5fZ2V0X2RlZmF1
bHQoKSkKLSAgICAgICAgb3B0aW9ucyA9IGdka19zY3JlZW5fZ2V0X2ZvbnRfb3B0aW9ucyhzY3Jl
ZW4pOworZ2RrX3NjcmVlbl9nZXRfZm9udF9vcHRpb25zKHNjcmVlbik7CiAjZW5kaWYKIAogICAg
IC8vIGdka19zY3JlZW5fZ2V0X2ZvbnRfb3B0aW9ucygpIHJldHVybnMgTlVMTCBpZiBubyBkZWZh
dWx0IG9wdGlvbnMgYXJlCkBAIC0xMjEsMzAgKzExOSwyMyBAQCBGb250UGxhdGZvcm1EYXRhOjpG
b250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZm9udERlc2NyaXB0aW9uLCBj
b25zdAogICAgIGlmICghb3B0aW9ucykKICAgICAgICAgb3B0aW9ucyA9IGRlZmF1bHRPcHRpb25z
OwogCi0gICAgbV9zY2FsZWRGb250ID0gY2Fpcm9fc2NhbGVkX2ZvbnRfY3JlYXRlKGZvbnRGYWNl
LCAmZm9udE1hdHJpeCwgJmN0bSwgb3B0aW9ucyk7CisgICAgbV9zY2FsZWRGb250ID0gYWRvcHRQ
bGF0Zm9ybVJlZihjYWlyb19zY2FsZWRfZm9udF9jcmVhdGUoZm9udEZhY2UsICZmb250TWF0cml4
LCAmY3RtLCBvcHRpb25zKSk7CiAgICAgY2Fpcm9fZm9udF9mYWNlX2Rlc3Ryb3koZm9udEZhY2Up
OwotCi1mcmVlUGF0dGVybjoKLSAgICBGY1BhdHRlcm5EZXN0cm95KHBhdHRlcm4pOwogfQogCiBG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwg
Ym9vbCBpdGFsaWMpCi0gICAgOiBtX3BhdHRlcm4oMCkKLSAgICAsIG1fZmFsbGJhY2tzKDApCisg
ICAgOiBtX2ZhbGxiYWNrcygwKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX3N5bnRoZXRp
Y0JvbGQoYm9sZCkKICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShpdGFsaWMpCi0gICAgLCBtX3Nj
YWxlZEZvbnQoMCkKIHsKIH0KIAogRm9udFBsYXRmb3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShj
YWlyb19mb250X2ZhY2VfdCogZm9udEZhY2UsIGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9vbCBp
dGFsaWMpCi0gICAgOiBtX3BhdHRlcm4oMCkKLSAgICAsIG1fZmFsbGJhY2tzKDApCisgICAgOiBt
X2ZhbGxiYWNrcygwKQogICAgICwgbV9zaXplKHNpemUpCiAgICAgLCBtX3N5bnRoZXRpY0JvbGQo
Ym9sZCkKICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShpdGFsaWMpCi0gICAgLCBtX3NjYWxlZEZv
bnQoMCkKIHsKICAgICBjYWlyb19tYXRyaXhfdCBmb250TWF0cml4OwogICAgIGNhaXJvX21hdHJp
eF9pbml0X3NjYWxlKCZmb250TWF0cml4LCBzaXplLCBzaXplKTsKQEAgLTE2Myw3ICsxNTQsNyBA
QCBGb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGNhaXJvX2ZvbnRfZmFjZV90KiBm
b250RmFjZSwgZmxvYXQgc2l6ZSwgYm9vbAogICAgIGlmICghb3B0aW9ucykKICAgICAgICAgb3B0
aW9ucyA9IGRlZmF1bHRPcHRpb25zOwogCi0gICAgbV9zY2FsZWRGb250ID0gY2Fpcm9fc2NhbGVk
X2ZvbnRfY3JlYXRlKGZvbnRGYWNlLCAmZm9udE1hdHJpeCwgJmN0bSwgb3B0aW9ucyk7CisgICAg
bV9zY2FsZWRGb250ID0gYWRvcHRQbGF0Zm9ybVJlZihjYWlyb19zY2FsZWRfZm9udF9jcmVhdGUo
Zm9udEZhY2UsICZmb250TWF0cml4LCAmY3RtLCBvcHRpb25zKSk7CiB9CiAKIEZvbnRQbGF0Zm9y
bURhdGEmIEZvbnRQbGF0Zm9ybURhdGE6Om9wZXJhdG9yPShjb25zdCBGb250UGxhdGZvcm1EYXRh
JiBvdGhlcikKQEAgLTE3NSwxNyArMTY2LDcgQEAgRm9udFBsYXRmb3JtRGF0YSYgRm9udFBsYXRm
b3JtRGF0YTo6b3BlcmF0b3I9KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG90aGVyKQogICAgIG1f
c2l6ZSA9IG90aGVyLm1fc2l6ZTsKICAgICBtX3N5bnRoZXRpY0JvbGQgPSBvdGhlci5tX3N5bnRo
ZXRpY0JvbGQ7CiAgICAgbV9zeW50aGV0aWNPYmxpcXVlID0gb3RoZXIubV9zeW50aGV0aWNPYmxp
cXVlOwotCi0gICAgaWYgKG90aGVyLm1fc2NhbGVkRm9udCkKLSAgICAgICAgY2Fpcm9fc2NhbGVk
X2ZvbnRfcmVmZXJlbmNlKG90aGVyLm1fc2NhbGVkRm9udCk7Ci0gICAgaWYgKG1fc2NhbGVkRm9u
dCkKLSAgICAgICAgY2Fpcm9fc2NhbGVkX2ZvbnRfZGVzdHJveShtX3NjYWxlZEZvbnQpOwogICAg
IG1fc2NhbGVkRm9udCA9IG90aGVyLm1fc2NhbGVkRm9udDsKLQotICAgIGlmIChvdGhlci5tX3Bh
dHRlcm4pCi0gICAgICAgIEZjUGF0dGVyblJlZmVyZW5jZShvdGhlci5tX3BhdHRlcm4pOwotICAg
IGlmIChtX3BhdHRlcm4pCi0gICAgICAgIEZjUGF0dGVybkRlc3Ryb3kobV9wYXR0ZXJuKTsKICAg
ICBtX3BhdHRlcm4gPSBvdGhlci5tX3BhdHRlcm47CiAKICAgICBpZiAobV9mYWxsYmFja3MpIHsK
QEAgLTE5OCw5ICsxNzksNyBAQCBGb250UGxhdGZvcm1EYXRhJiBGb250UGxhdGZvcm1EYXRhOjpv
cGVyYXRvcj0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZXIpCiB9CiAKIEZvbnRQbGF0Zm9y
bURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZXIpCi0g
ICAgOiBtX3BhdHRlcm4oMCkKLSAgICAsIG1fZmFsbGJhY2tzKDApCi0gICAgLCBtX3NjYWxlZEZv
bnQoMCkKKyAgICA6IG1fZmFsbGJhY2tzKDApCiB7CiAgICAgKnRoaXMgPSBvdGhlcjsKIH0KQEAg
LTIyMCwxOCArMTk5LDEwIEBAIGJvb2wgRm9udFBsYXRmb3JtRGF0YTo6aW5pdCgpCiAKIEZvbnRQ
bGF0Zm9ybURhdGE6On5Gb250UGxhdGZvcm1EYXRhKCkKIHsKLSAgICBpZiAobV9wYXR0ZXJuICYm
ICgoRmNQYXR0ZXJuKiktMSAhPSBtX3BhdHRlcm4pKSB7Ci0gICAgICAgIEZjUGF0dGVybkRlc3Ry
b3kobV9wYXR0ZXJuKTsKLSAgICAgICAgbV9wYXR0ZXJuID0gMDsKLSAgICB9Ci0KICAgICBpZiAo
bV9mYWxsYmFja3MpIHsKICAgICAgICAgRmNGb250U2V0RGVzdHJveShtX2ZhbGxiYWNrcyk7CiAg
ICAgICAgIG1fZmFsbGJhY2tzID0gMDsKICAgICB9Ci0KLSAgICBpZiAobV9zY2FsZWRGb250KQot
ICAgICAgICBjYWlyb19zY2FsZWRfZm9udF9kZXN0cm95KG1fc2NhbGVkRm9udCk7CiB9CiAKIGJv
b2wgRm9udFBsYXRmb3JtRGF0YTo6aXNGaXhlZFBpdGNoKCkKQEAgLTI0MSw3ICsyMTIsNyBAQCBi
b29sIEZvbnRQbGF0Zm9ybURhdGE6OmlzRml4ZWRQaXRjaCgpCiAgICAgICAgIHJldHVybiBmYWxz
ZTsKIAogICAgIGludCBzcGFjaW5nOwotICAgIGlmIChGY1BhdHRlcm5HZXRJbnRlZ2VyKG1fcGF0
dGVybiwgRkNfU1BBQ0lORywgMCwgJnNwYWNpbmcpID09IEZjUmVzdWx0TWF0Y2gpCisgICAgaWYg
KEZjUGF0dGVybkdldEludGVnZXIobV9wYXR0ZXJuLmdldCgpLCBGQ19TUEFDSU5HLCAwLCAmc3Bh
Y2luZykgPT0gRmNSZXN1bHRNYXRjaCkKICAgICAgICAgcmV0dXJuIHNwYWNpbmcgPT0gRkNfTU9O
TzsKICAgICByZXR1cm4gZmFsc2U7CiB9CkBAIC0yNTAsMTAgKzIyMSw5IEBAIGJvb2wgRm9udFBs
YXRmb3JtRGF0YTo6b3BlcmF0b3I9PShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBvdGhlcikgY29u
c3QKIHsKICAgICBpZiAobV9wYXR0ZXJuID09IG90aGVyLm1fcGF0dGVybikKICAgICAgICAgcmV0
dXJuIHRydWU7Ci0gICAgaWYgKG1fcGF0dGVybiA9PSAwIHx8IG1fcGF0dGVybiA9PSByZWludGVy
cHJldF9jYXN0PEZjUGF0dGVybio+KC0xKQotICAgICAgICAgICAgfHwgb3RoZXIubV9wYXR0ZXJu
ID09IDAgfHwgb3RoZXIubV9wYXR0ZXJuID09IHJlaW50ZXJwcmV0X2Nhc3Q8RmNQYXR0ZXJuKj4o
LTEpKQorICAgIGlmICghbV9wYXR0ZXJuIHx8IG1fcGF0dGVybi5pc0hhc2hUYWJsZURlbGV0ZWRW
YWx1ZSgpIHx8ICFvdGhlci5tX3BhdHRlcm4gfHwgb3RoZXIubV9wYXR0ZXJuLmlzSGFzaFRhYmxl
RGVsZXRlZFZhbHVlKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKLSAgICByZXR1cm4gRmNQYXR0
ZXJuRXF1YWwobV9wYXR0ZXJuLCBvdGhlci5tX3BhdHRlcm4pOworICAgIHJldHVybiBGY1BhdHRl
cm5FcXVhbChtX3BhdHRlcm4uZ2V0KCksIG90aGVyLm1fcGF0dGVybi5nZXQoKSk7CiB9CiAKICNp
Zm5kZWYgTkRFQlVHCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L0ZvbnRQbGF0Zm9ybURhdGFGcmVlVHlwZS5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9Gb250UGxhdGZvcm1EYXRhRnJlZVR5cGUuaAppbmRleCAyMGNmOWNkNjAxN2QzN2ZmMjA5
MWFhMTdlNWI2NzgzZDVkMjRlYzA1Li45ODdhNjg0MTIyZjQ0ZjhhNTYzOTE3MTc2YWNjMzIyN2Yw
NzA2OTQwIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL0ZvbnRQ
bGF0Zm9ybURhdGFGcmVlVHlwZS5oCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fp
cm8vRm9udFBsYXRmb3JtRGF0YUZyZWVUeXBlLmgKQEAgLTI3LDYgKzI3LDggQEAKIAogI2luY2x1
ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2luY2x1ZGUgIkdseXBoQnVmZmVyLmgiCisjaW5jbHVk
ZSAiSGFzaEZ1bmN0aW9ucy5oIgorI2luY2x1ZGUgIlBsYXRmb3JtUmVmUHRyQ2Fpcm8uaCIKICNp
bmNsdWRlIDxjYWlyby1mdC5oPgogI2luY2x1ZGUgPGNhaXJvLmg+CiAjaW5jbHVkZSA8Zm9udGNv
bmZpZy9mY2ZyZWV0eXBlLmg+CkBAIC0zNywyMSArMzksMTggQEAgbmFtZXNwYWNlIFdlYkNvcmUg
ewogY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiBwdWJsaWM6CiAgICAgRm9udFBsYXRmb3JtRGF0
YShXVEY6Okhhc2hUYWJsZURlbGV0ZWRWYWx1ZVR5cGUpCi0gICAgICAgIDogbV9wYXR0ZXJuKGhh
c2hUYWJsZURlbGV0ZWRGb250VmFsdWUoKSkKLSAgICAgICAgLCBtX2ZhbGxiYWNrcygwKQorICAg
ICAgICA6IG1fZmFsbGJhY2tzKDApCiAgICAgICAgICwgbV9zaXplKDApCiAgICAgICAgICwgbV9z
eW50aGV0aWNCb2xkKGZhbHNlKQogICAgICAgICAsIG1fc3ludGhldGljT2JsaXF1ZShmYWxzZSkK
LSAgICAgICAgLCBtX3NjYWxlZEZvbnQoMCkKKyAgICAgICAgLCBtX3NjYWxlZEZvbnQoV1RGOjpI
YXNoVGFibGVEZWxldGVkVmFsdWUpCiAgICAgICAgIHsgfQogCiAgICAgRm9udFBsYXRmb3JtRGF0
YSgpCi0gICAgICAgIDogbV9wYXR0ZXJuKDApCi0gICAgICAgICwgbV9mYWxsYmFja3MoMCkKKyAg
ICAgICAgOiBtX2ZhbGxiYWNrcygwKQogICAgICAgICAsIG1fc2l6ZSgwKQogICAgICAgICAsIG1f
c3ludGhldGljQm9sZChmYWxzZSkKICAgICAgICAgLCBtX3N5bnRoZXRpY09ibGlxdWUoZmFsc2Up
Ci0gICAgICAgICwgbV9zY2FsZWRGb250KDApCiAgICAgICAgIHsgfQogCiAgICAgRm9udFBsYXRm
b3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mLCBjb25zdCBBdG9taWNTdHJpbmcmIGZhbWls
eSk7CkBAIC02OCwzNCArNjcsMzAgQEAgcHVibGljOgogICAgIGJvb2wgc3ludGhldGljQm9sZCgp
IGNvbnN0IHsgcmV0dXJuIG1fc3ludGhldGljQm9sZDsgfQogICAgIGJvb2wgc3ludGhldGljT2Js
aXF1ZSgpIGNvbnN0IHsgcmV0dXJuIG1fc3ludGhldGljT2JsaXF1ZTsgfQogCi0gICAgY2Fpcm9f
c2NhbGVkX2ZvbnRfdCogc2NhbGVkRm9udCgpIGNvbnN0IHsgcmV0dXJuIG1fc2NhbGVkRm9udDsg
fQorICAgIGNhaXJvX3NjYWxlZF9mb250X3QqIHNjYWxlZEZvbnQoKSBjb25zdCB7IHJldHVybiBt
X3NjYWxlZEZvbnQuZ2V0KCk7IH0KIAogICAgIHVuc2lnbmVkIGhhc2goKSBjb25zdAogICAgIHsK
LSAgICAgICAgaWYgKG1fcGF0dGVybikKLSAgICAgICAgICAgIHJldHVybiBGY1BhdHRlcm5IYXNo
KG1fcGF0dGVybik7CisgICAgICAgIHJldHVybiBQdHJIYXNoPGNhaXJvX3NjYWxlZF9mb250X3Qq
Pjo6aGFzaChtX3NjYWxlZEZvbnQuZ2V0KCkpOwogICAgIH0KIAogICAgIGJvb2wgb3BlcmF0b3I9
PShjb25zdCBGb250UGxhdGZvcm1EYXRhJikgY29uc3Q7CiAgICAgRm9udFBsYXRmb3JtRGF0YSYg
b3BlcmF0b3I9KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsKICAgICBib29sIGlzSGFzaFRhYmxl
RGVsZXRlZFZhbHVlKCkgY29uc3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX3BhdHRlcm4gPT0g
aGFzaFRhYmxlRGVsZXRlZEZvbnRWYWx1ZSgpOworICAgICAgICByZXR1cm4gbV9zY2FsZWRGb250
LmlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCk7CiAgICAgfQogCiAjaWZuZGVmIE5ERUJVRwogICAg
IFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogI2VuZGlmCiAKLSAgICBGY1BhdHRlcm4qIG1f
cGF0dGVybjsKKyAgICBQbGF0Zm9ybVJlZlB0cjxGY1BhdHRlcm4+IG1fcGF0dGVybjsKICAgICBG
Y0ZvbnRTZXQqIG1fZmFsbGJhY2tzOwogICAgIGZsb2F0IG1fc2l6ZTsKICAgICBib29sIG1fc3lu
dGhldGljQm9sZDsKICAgICBib29sIG1fc3ludGhldGljT2JsaXF1ZTsKLSAgICBjYWlyb19zY2Fs
ZWRfZm9udF90KiBtX3NjYWxlZEZvbnQ7Ci0KLXByaXZhdGU6Ci0gICAgc3RhdGljIEZjUGF0dGVy
biAqaGFzaFRhYmxlRGVsZXRlZEZvbnRWYWx1ZSgpIHsgcmV0dXJuIHJlaW50ZXJwcmV0X2Nhc3Q8
RmNQYXR0ZXJuKj4oLTEpOyB9CisgICAgUGxhdGZvcm1SZWZQdHI8Y2Fpcm9fc2NhbGVkX2ZvbnRf
dD4gbV9zY2FsZWRGb250OwogfTsKIAogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jYWlyby9HbHlwaFBhZ2VUcmVlTm9kZUNhaXJvLmNwcCBiL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvY2Fpcm8vR2x5cGhQYWdlVHJlZU5vZGVDYWlyby5jcHAKaW5kZXggN2M5ZmZl
NjE4Y2Y5ZWYwNjhlYzliOGNmOTlhY2IyMDg1MzExZDdhYi4uMjZkYTY4ZDlmZGUyZjMwNTgxNTQy
ZWFlODc3YjJjNjU1MWZmNWE5YyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9jYWlyby9HbHlwaFBhZ2VUcmVlTm9kZUNhaXJvLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL0dseXBoUGFnZVRyZWVOb2RlQ2Fpcm8uY3BwCkBAIC00Miw3ICs0Miw3
IEBAIGJvb2wgR2x5cGhQYWdlOjpmaWxsKHVuc2lnbmVkIG9mZnNldCwgdW5zaWduZWQgbGVuZ3Ro
LCBVQ2hhciogYnVmZmVyLCB1bnNpZ25lZCBiCiAgICAgaWYgKGJ1ZmZlckxlbmd0aCA+IEdseXBo
UGFnZTo6c2l6ZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCi0gICAgRlRfRmFjZSBmYWNlID0g
Y2Fpcm9fZnRfc2NhbGVkX2ZvbnRfbG9ja19mYWNlKGZvbnREYXRhLT5wbGF0Zm9ybURhdGEoKS5t
X3NjYWxlZEZvbnQpOworICAgIEZUX0ZhY2UgZmFjZSA9IGNhaXJvX2Z0X3NjYWxlZF9mb250X2xv
Y2tfZmFjZShmb250RGF0YS0+cGxhdGZvcm1EYXRhKCkubV9zY2FsZWRGb250LmdldCgpKTsKICAg
ICBpZiAoIWZhY2UpCiAgICAgICAgIHJldHVybiBmYWxzZTsKIApAQCAtNTcsNyArNTcsNyBAQCBi
b29sIEdseXBoUGFnZTo6ZmlsbCh1bnNpZ25lZCBvZmZzZXQsIHVuc2lnbmVkIGxlbmd0aCwgVUNo
YXIqIGJ1ZmZlciwgdW5zaWduZWQgYgogICAgICAgICB9CiAgICAgfQogCi0gICAgY2Fpcm9fZnRf
c2NhbGVkX2ZvbnRfdW5sb2NrX2ZhY2UoZm9udERhdGEtPnBsYXRmb3JtRGF0YSgpLm1fc2NhbGVk
Rm9udCk7CisgICAgY2Fpcm9fZnRfc2NhbGVkX2ZvbnRfdW5sb2NrX2ZhY2UoZm9udERhdGEtPnBs
YXRmb3JtRGF0YSgpLm1fc2NhbGVkRm9udC5nZXQoKSk7CiAKICAgICByZXR1cm4gaGF2ZUdseXBo
czsKIH0KZGlmZiAtLWdpdCBhL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRy
Q2Fpcm8uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5j
cHAKaW5kZXggYTYyYzFhZWUzYzJjNmVmZDI3MTE4NWQ0NmM0YjA0OGYzMjBkODAyNi4uOTRmNjgw
OTQwZDc3ZjljOGRkNzZhZDczNWRlYzJlYzk0ZmU0ODZiYyAxMDA2NDQKLS0tIGEvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAKKysrIGIvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWlyby5jcHAKQEAgLTMwLDEyICszMCw2IEBACiBu
YW1lc3BhY2UgV1RGIHsKIAogI2lmIGRlZmluZWQoVVNFX0ZSRUVUWVBFKQotdGVtcGxhdGUgPD4g
dm9pZCBkZWxldGVPd25lZFB0cjxGY1BhdHRlcm4+KEZjUGF0dGVybiogcHRyKQotewotICAgIGlm
IChwdHIpCi0gICAgICAgIEZjUGF0dGVybkRlc3Ryb3kocHRyKTsKLX0KLQogdGVtcGxhdGUgPD4g
dm9pZCBkZWxldGVPd25lZFB0cjxGY09iamVjdFNldD4oRmNPYmplY3RTZXQqIHB0cikKIHsKICAg
ICBpZiAocHRyKQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9P
d25QdHJDYWlyby5oIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9Pd25QdHJDYWly
by5oCmluZGV4IDQ0MjZiOTdiYzVmZWM1ZDUyM2Y5ZTczMDVhYTI4MDc3NzRiNThiNjcuLjAzNWQ4
MGU2Mzg1YjdhZWViNDk5ZGYzZmU3ZTU4ODI3YzI5NjkyMWUgMTAwNjQ0Ci0tLSBhL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vT3duUHRyQ2Fpcm8uaAorKysgYi9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NhaXJvL093blB0ckNhaXJvLmgKQEAgLTIzLDcgKzIzLDYgQEAKICNpbmNs
dWRlICJPd25QdHIuaCIKIAogI2lmIGRlZmluZWQoVVNFX0ZSRUVUWVBFKQotdHlwZWRlZiBzdHJ1
Y3QgX0ZjUGF0dGVybiBGY1BhdHRlcm47CiB0eXBlZGVmIHN0cnVjdCBfRmNPYmplY3RTZXQgRmNP
YmplY3RTZXQ7CiB0eXBlZGVmIHN0cnVjdCBfRmNGb250U2V0IEZjRm9udFNldDsKICNlbmRpZgpA
QCAtMzMsNyArMzIsNiBAQCB0eXBlZGVmIHN0cnVjdCBjYWlyb19wYXRoIGNhaXJvX3BhdGhfdDsK
IG5hbWVzcGFjZSBXVEYgewogCiAjaWYgZGVmaW5lZChVU0VfRlJFRVRZUEUpCi10ZW1wbGF0ZSA8
PiB2b2lkIGRlbGV0ZU93bmVkUHRyPEZjUGF0dGVybj4oRmNQYXR0ZXJuKik7CiB0ZW1wbGF0ZSA8
PiB2b2lkIGRlbGV0ZU93bmVkUHRyPEZjT2JqZWN0U2V0PihGY09iamVjdFNldCopOwogdGVtcGxh
dGUgPD4gdm9pZCBkZWxldGVPd25lZFB0cjxGY0ZvbnRTZXQ+KEZjRm9udFNldCopOwogI2VuZGlm
CmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtUmVm
UHRyQ2Fpcm8uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybVJl
ZlB0ckNhaXJvLmNwcAppbmRleCA2ODcwNTYwZTFjNmU2NGVjOGIzNzY2MTZhMTExZGZlOGJiZTM5
NWRlLi5hYTQ2NmY5OTRiMjI4ZTA0MWM2ZjU0NzM5NTI0M2FlYmE0NzUyNjVlIDEwMDY0NAotLS0g
YS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtUmVmUHRyQ2Fpcm8uY3Bw
CisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vUGxhdGZvcm1SZWZQdHJDYWly
by5jcHAKQEAgLTIxLDYgKzIxLDExIEBACiAKICNpbmNsdWRlIDxjYWlyby5oPgogCisjaWYgZGVm
aW5lZChVU0VfRlJFRVRZUEUpCisjaW5jbHVkZSA8Y2Fpcm8tZnQuaD4KKyNpbmNsdWRlIDxmb250
Y29uZmlnL2ZjZnJlZXR5cGUuaD4KKyNlbmRpZgorCiBuYW1lc3BhY2UgV1RGIHsKIAogdGVtcGxh
dGUgPD4gY2Fpcm9fdCogcmVmUGxhdGZvcm1QdHIoY2Fpcm9fdCogcHRyKQpAQCAtNDksNCArNTQs
MzIgQEAgdGVtcGxhdGUgPD4gdm9pZCBkZXJlZlBsYXRmb3JtUHRyKGNhaXJvX3N1cmZhY2VfdCog
cHRyKQogICAgICAgICBjYWlyb19zdXJmYWNlX2Rlc3Ryb3kocHRyKTsKIH0KIAordGVtcGxhdGUg
PD4gY2Fpcm9fc2NhbGVkX2ZvbnRfdCogcmVmUGxhdGZvcm1QdHIoY2Fpcm9fc2NhbGVkX2ZvbnRf
dCogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIGNhaXJvX3NjYWxlZF9mb250X3JlZmVy
ZW5jZShwdHIpOworICAgIHJldHVybiBwdHI7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZQ
bGF0Zm9ybVB0cihjYWlyb19zY2FsZWRfZm9udF90KiBwdHIpCit7CisgICAgaWYgKHB0cikKKyAg
ICAgICAgY2Fpcm9fc2NhbGVkX2ZvbnRfZGVzdHJveShwdHIpOworfQorCisjaWYgZGVmaW5lZChV
U0VfRlJFRVRZUEUpCit0ZW1wbGF0ZSA8PiBGY1BhdHRlcm4qIHJlZlBsYXRmb3JtUHRyKEZjUGF0
dGVybiogcHRyKQoreworICAgIGlmIChwdHIpCisgICAgICAgIEZjUGF0dGVyblJlZmVyZW5jZShw
dHIpOworICAgIHJldHVybiBwdHI7Cit9CisKK3RlbXBsYXRlIDw+IHZvaWQgZGVyZWZQbGF0Zm9y
bVB0cihGY1BhdHRlcm4qIHB0cikKK3sKKyAgICBpZiAocHRyKQorICAgICAgICBGY1BhdHRlcm5E
ZXN0cm95KHB0cik7Cit9CisjZW5kaWYKKwogfQpkaWZmIC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jYWlyby9QbGF0Zm9ybVJlZlB0ckNhaXJvLmggYi9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2NhaXJvL1BsYXRmb3JtUmVmUHRyQ2Fpcm8uaAppbmRleCA1MWQ4ZmE5MzAzNDcz
MmFkZWViZDk1OWVkMjY3MzhiMzQ2MmVkNjhiLi40YjQ1YzFiY2YxNmQ0N2U0ZWI0ZjFlOWYxNWM1
MTA5MDFkNTcwZTAyIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJv
L1BsYXRmb3JtUmVmUHRyQ2Fpcm8uaAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL1BsYXRmb3JtUmVmUHRyQ2Fpcm8uaApAQCAtMjQsNiArMjQsMTEgQEAKIAogdHlwZWRlZiBz
dHJ1Y3QgX2NhaXJvIGNhaXJvX3Q7CiB0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc3VyZmFjZSBjYWly
b19zdXJmYWNlX3Q7Cit0eXBlZGVmIHN0cnVjdCBfY2Fpcm9fc2NhbGVkX2ZvbnQgY2Fpcm9fc2Nh
bGVkX2ZvbnRfdDsKKworI2lmIGRlZmluZWQoVVNFX0ZSRUVUWVBFKQordHlwZWRlZiBzdHJ1Y3Qg
X0ZjUGF0dGVybiBGY1BhdHRlcm47CisjZW5kaWYKIAogbmFtZXNwYWNlIFdURiB7CiAKQEAgLTMz
LDYgKzM4LDE0IEBAIHRlbXBsYXRlIDw+IHZvaWQgZGVyZWZQbGF0Zm9ybVB0cihjYWlyb190KiBw
dHIpOwogdGVtcGxhdGUgPD4gY2Fpcm9fc3VyZmFjZV90KiByZWZQbGF0Zm9ybVB0cihjYWlyb19z
dXJmYWNlX3QqIHB0cik7CiB0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVmUGxhdGZvcm1QdHIoY2Fpcm9f
c3VyZmFjZV90KiBwdHIpOwogCit0ZW1wbGF0ZSA8PiBjYWlyb19zY2FsZWRfZm9udF90KiByZWZQ
bGF0Zm9ybVB0cihjYWlyb19zY2FsZWRfZm9udF90Kik7Cit0ZW1wbGF0ZSA8PiB2b2lkIGRlcmVm
UGxhdGZvcm1QdHIoY2Fpcm9fc2NhbGVkX2ZvbnRfdCopOworCisjaWYgZGVmaW5lZChVU0VfRlJF
RVRZUEUpCit0ZW1wbGF0ZSA8PiBGY1BhdHRlcm4qIHJlZlBsYXRmb3JtUHRyKEZjUGF0dGVybiop
OwordGVtcGxhdGUgPD4gdm9pZCBkZXJlZlBsYXRmb3JtUHRyKEZjUGF0dGVybiopOworI2VuZGlm
CisKIH0KIAogI2VuZGlmCmRpZmYgLS1naXQgYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2Nh
aXJvL1NpbXBsZUZvbnREYXRhQ2Fpcm8uY3BwIGIvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
YWlyby9TaW1wbGVGb250RGF0YUNhaXJvLmNwcAppbmRleCAwMDU1MDc4NWQ4ZDlhZTljZjQyYmJm
YzIwODFmMDU4OTIxN2I2OGQ4Li5mZDg1ZDZmNDU5OGU1ODM5NGQ4MmNjOWVkYjllMTQ4OTg2ZDEw
YjUxIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NhaXJvL1NpbXBsZUZv
bnREYXRhQ2Fpcm8uY3BwCisrKyBiL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY2Fpcm8vU2lt
cGxlRm9udERhdGFDYWlyby5jcHAKQEAgLTQ3LDcgKzQ3LDcgQEAgdm9pZCBTaW1wbGVGb250RGF0
YTo6cGxhdGZvcm1Jbml0KCkKIHsKICAgICBjYWlyb19mb250X2V4dGVudHNfdCBmb250X2V4dGVu
dHM7CiAgICAgY2Fpcm9fdGV4dF9leHRlbnRzX3QgdGV4dF9leHRlbnRzOwotICAgIGNhaXJvX3Nj
YWxlZF9mb250X2V4dGVudHMobV9wbGF0Zm9ybURhdGEubV9zY2FsZWRGb250LCAmZm9udF9leHRl
bnRzKTsKKyAgICBjYWlyb19zY2FsZWRfZm9udF9leHRlbnRzKG1fcGxhdGZvcm1EYXRhLm1fc2Nh
bGVkRm9udC5nZXQoKSwgJmZvbnRfZXh0ZW50cyk7CiAgICAgbV9hc2NlbnQgPSBzdGF0aWNfY2Fz
dDxpbnQ+KGxyb3VuZGYoZm9udF9leHRlbnRzLmFzY2VudCkpOwogICAgIG1fZGVzY2VudCA9IHN0
YXRpY19jYXN0PGludD4obHJvdW5kZihmb250X2V4dGVudHMuZGVzY2VudCkpOwogICAgIG1fbGlu
ZVNwYWNpbmcgPSBzdGF0aWNfY2FzdDxpbnQ+KGxyb3VuZGYoZm9udF9leHRlbnRzLmhlaWdodCkp
OwpAQCAtNTgsOSArNTgsOSBAQCB2b2lkIFNpbXBsZUZvbnREYXRhOjpwbGF0Zm9ybUluaXQoKQog
ICAgIC8vIHdoaWxlIHdlIGZpZ3VyZSBvdXQgd2hhdCdzIGdvaW5nIG9uLgogICAgIGlmIChtX2xp
bmVTcGFjaW5nIDwgbV9hc2NlbnQgKyBtX2Rlc2NlbnQpCiAgICAgICAgIG1fbGluZVNwYWNpbmcg
PSBtX2FzY2VudCArIG1fZGVzY2VudDsKLSAgICBjYWlyb19zY2FsZWRfZm9udF90ZXh0X2V4dGVu
dHMobV9wbGF0Zm9ybURhdGEubV9zY2FsZWRGb250LCAieCIsICZ0ZXh0X2V4dGVudHMpOworICAg
IGNhaXJvX3NjYWxlZF9mb250X3RleHRfZXh0ZW50cyhtX3BsYXRmb3JtRGF0YS5tX3NjYWxlZEZv
bnQuZ2V0KCksICJ4IiwgJnRleHRfZXh0ZW50cyk7CiAgICAgbV94SGVpZ2h0ID0gdGV4dF9leHRl
bnRzLmhlaWdodDsKLSAgICBjYWlyb19zY2FsZWRfZm9udF90ZXh0X2V4dGVudHMobV9wbGF0Zm9y
bURhdGEubV9zY2FsZWRGb250LCAiICIsICZ0ZXh0X2V4dGVudHMpOworICAgIGNhaXJvX3NjYWxl
ZF9mb250X3RleHRfZXh0ZW50cyhtX3BsYXRmb3JtRGF0YS5tX3NjYWxlZEZvbnQuZ2V0KCksICIg
IiwgJnRleHRfZXh0ZW50cyk7CiAgICAgbV9zcGFjZVdpZHRoID0gc3RhdGljX2Nhc3Q8ZmxvYXQ+
KHRleHRfZXh0ZW50cy54X2FkdmFuY2UpOwogICAgIG1fbGluZUdhcCA9IG1fbGluZVNwYWNpbmcg
LSBtX2FzY2VudCAtIG1fZGVzY2VudDsKICAgICBtX3N5bnRoZXRpY0JvbGRPZmZzZXQgPSBtX3Bs
YXRmb3JtRGF0YS5zeW50aGV0aWNCb2xkKCkgPyAxLjBmIDogMC5mOwpAQCAtOTIsMTkgKzkyLDE5
IEBAIFNpbXBsZUZvbnREYXRhKiBTaW1wbGVGb250RGF0YTo6c21hbGxDYXBzRm9udERhdGEoY29u
c3QgRm9udERlc2NyaXB0aW9uJiBmb250RGVzCiAKIGJvb2wgU2ltcGxlRm9udERhdGE6OmNvbnRh
aW5zQ2hhcmFjdGVycyhjb25zdCBVQ2hhciogY2hhcmFjdGVycywgaW50IGxlbmd0aCkgY29uc3QK
IHsKLSAgICBGVF9GYWNlIGZhY2UgPSBjYWlyb19mdF9zY2FsZWRfZm9udF9sb2NrX2ZhY2UobV9w
bGF0Zm9ybURhdGEubV9zY2FsZWRGb250KTsKKyAgICBGVF9GYWNlIGZhY2UgPSBjYWlyb19mdF9z
Y2FsZWRfZm9udF9sb2NrX2ZhY2UobV9wbGF0Zm9ybURhdGEubV9zY2FsZWRGb250LmdldCgpKTsK
IAogICAgIGlmICghZmFjZSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgZm9yIChpbnQg
aSA9IDA7IGkgPCBsZW5ndGg7IGkrKykgewogICAgICAgICBpZiAoRmNGcmVlVHlwZUNoYXJJbmRl
eChmYWNlLCBjaGFyYWN0ZXJzW2ldKSA9PSAwKSB7Ci0gICAgICAgICAgICBjYWlyb19mdF9zY2Fs
ZWRfZm9udF91bmxvY2tfZmFjZShtX3BsYXRmb3JtRGF0YS5tX3NjYWxlZEZvbnQpOworICAgICAg
ICAgICAgY2Fpcm9fZnRfc2NhbGVkX2ZvbnRfdW5sb2NrX2ZhY2UobV9wbGF0Zm9ybURhdGEubV9z
Y2FsZWRGb250LmdldCgpKTsKICAgICAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAgICAgfQog
ICAgIH0KIAotICAgIGNhaXJvX2Z0X3NjYWxlZF9mb250X3VubG9ja19mYWNlKG1fcGxhdGZvcm1E
YXRhLm1fc2NhbGVkRm9udCk7CisgICAgY2Fpcm9fZnRfc2NhbGVkX2ZvbnRfdW5sb2NrX2ZhY2Uo
bV9wbGF0Zm9ybURhdGEubV9zY2FsZWRGb250LmdldCgpKTsKIAogICAgIHJldHVybiB0cnVlOwog
fQpAQCAtMTI1LDEwICsxMjUsMTAgQEAgZmxvYXQgU2ltcGxlRm9udERhdGE6OnBsYXRmb3JtV2lk
dGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIAogICAgIGNhaXJvX2dseXBoX3QgY2dseXBo
ID0geyBnbHlwaCwgMCwgMCB9OwogICAgIGNhaXJvX3RleHRfZXh0ZW50c190IGV4dGVudHM7Ci0g
ICAgY2Fpcm9fc2NhbGVkX2ZvbnRfZ2x5cGhfZXh0ZW50cyhtX3BsYXRmb3JtRGF0YS5tX3NjYWxl
ZEZvbnQsICZjZ2x5cGgsIDEsICZleHRlbnRzKTsKKyAgICBjYWlyb19zY2FsZWRfZm9udF9nbHlw
aF9leHRlbnRzKG1fcGxhdGZvcm1EYXRhLm1fc2NhbGVkRm9udC5nZXQoKSwgJmNnbHlwaCwgMSwg
JmV4dGVudHMpOwogCiAgICAgZmxvYXQgdyA9IChmbG9hdCltX3NwYWNlV2lkdGg7Ci0gICAgaWYg
KGNhaXJvX3NjYWxlZF9mb250X3N0YXR1cyhtX3BsYXRmb3JtRGF0YS5tX3NjYWxlZEZvbnQpID09
IENBSVJPX1NUQVRVU19TVUNDRVNTICYmIGV4dGVudHMueF9hZHZhbmNlICE9IDApCisgICAgaWYg
KGNhaXJvX3NjYWxlZF9mb250X3N0YXR1cyhtX3BsYXRmb3JtRGF0YS5tX3NjYWxlZEZvbnQuZ2V0
KCkpID09IENBSVJPX1NUQVRVU19TVUNDRVNTICYmIGV4dGVudHMueF9hZHZhbmNlKQogICAgICAg
ICB3ID0gKGZsb2F0KWV4dGVudHMueF9hZHZhbmNlOwogCiAgICAgcmV0dXJuIHc7ICAgIApkaWZm
IC0tZ2l0IGEvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9ndGsvRm9udEd0ay5jcHAgYi9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNwcAppbmRleCA0ODliYWQ3MjRhYWI5
ZjA0YmE2YTA4YmM4MjQ4Y2MzM2FiN2M2NDQzLi4yN2Y0OGZjZTJkZDczM2I1YWRmMTE0M2QyMmQ1
NzczNmFjYWM2N2NkIDEwMDY0NAotLS0gYS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9G
b250R3RrLmNwcAorKysgYi9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2d0ay9Gb250R3RrLmNw
cApAQCAtMTM5LDcgKzEzOSw3IEBAIHN0YXRpYyB2b2lkIHNldFBhbmdvQXR0cmlidXRlcyhjb25z
dCBGb250KiBmb250LCBjb25zdCBUZXh0UnVuJiBydW4sIFBhbmdvTGF5b3V0CiB7CiAjaWYgZGVm
aW5lZChVU0VfRlJFRVRZUEUpCiAgICAgaWYgKGZvbnQtPnByaW1hcnlGb250KCktPnBsYXRmb3Jt
RGF0YSgpLm1fcGF0dGVybikgewotICAgICAgICBQYW5nb0ZvbnREZXNjcmlwdGlvbiogZGVzYyA9
IHBhbmdvX2ZjX2ZvbnRfZGVzY3JpcHRpb25fZnJvbV9wYXR0ZXJuKGZvbnQtPnByaW1hcnlGb250
KCktPnBsYXRmb3JtRGF0YSgpLm1fcGF0dGVybiwgRkFMU0UpOworICAgICAgICBQYW5nb0ZvbnRE
ZXNjcmlwdGlvbiogZGVzYyA9IHBhbmdvX2ZjX2ZvbnRfZGVzY3JpcHRpb25fZnJvbV9wYXR0ZXJu
KGZvbnQtPnByaW1hcnlGb250KCktPnBsYXRmb3JtRGF0YSgpLm1fcGF0dGVybi5nZXQoKSwgRkFM
U0UpOwogICAgICAgICBwYW5nb19sYXlvdXRfc2V0X2ZvbnRfZGVzY3JpcHRpb24obGF5b3V0LCBk
ZXNjKTsKICAgICAgICAgcGFuZ29fZm9udF9kZXNjcmlwdGlvbl9mcmVlKGRlc2MpOwogICAgIH0K
</data>

          </attachment>
      

    </bug>

</bugzilla>