<?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>145644</bug_id>
          
          <creation_ts>2015-06-04 10:17:20 -0700</creation_ts>
          <short_desc>Clean up m_isEmoji in FontPlatformData</short_desc>
          <delta_ts>2015-06-04 11:18:55 -0700</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>528+ (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></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>enrica</cc>
    
    <cc>kling</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1099502</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-04 10:17:20 -0700</bug_when>
    <thetext>Clean up m_isEmoji in FontPlatformData</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099504</commentid>
    <comment_count>1</comment_count>
      <attachid>254268</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-04 10:23:10 -0700</bug_when>
    <thetext>Created attachment 254268
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099517</commentid>
    <comment_count>2</comment_count>
      <attachid>254271</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-04 10:38:23 -0700</bug_when>
    <thetext>Created attachment 254271
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099519</commentid>
    <comment_count>3</comment_count>
      <attachid>254273</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-04 10:46:41 -0700</bug_when>
    <thetext>Created attachment 254273
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099529</commentid>
    <comment_count>4</comment_count>
      <attachid>254273</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-06-04 10:59:15 -0700</bug_when>
    <thetext>Comment on attachment 254273
Patch

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1099538</commentid>
    <comment_count>5</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-06-04 11:18:55 -0700</bug_when>
    <thetext>Committed r185205: &lt;http://trac.webkit.org/changeset/185205&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254268</attachid>
            <date>2015-06-04 10:23:10 -0700</date>
            <delta_ts>2015-06-04 10:38:21 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145644-20150604102249.patch</filename>
            <type>text/plain</type>
            <size>14888</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjljYzA4MmY3M2IyYWM0
ZjRkMzQ5NWQxZDE4NmU2NmFhOTg0ZWJmZS4uODhlZTBkZDdjMzIxN2ZhMmNjYTJmZTEwMThkMTA3
OTk2NmM1MjlhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDE1LTA2LTA0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgW0NvY29hXSBD
bGVhbiB1cCBtX2lzRW1vamkgaW4gRm9udFBsYXRmb3JtRGF0YQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NjQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbV9pc0Vtb2ppIHVzZWQgdG8gYmUgYSBwdWJs
aWMgbWVtYmVyIHZhcmlhYmxlIG9ubHkgZGVmaW5lZCBvbiBpT1MuIFRoaXMKKyAgICAgICAgbWVh
bnMgdGhhdCwgd2hlbmV2ZXIgaXQgd2FzIGNvbnN1bHRlZCwgdGhlIHNpdGVzIHdlcmUgc3Vycm91
bmRlZCBieQorICAgICAgICBQTEFURk9STShJT1MpIGd1YXJkcy4gQSBjbGVhbmVyIGRlc2lnbiBp
cyB0byB1c2UgYSBnZXR0ZXIgYW5kIHNldHRlciwKKyAgICAgICAgd2hpY2ggb24gbm9uLWlPUyBw
bGF0Zm9ybXMsIGFsd2F5cyByZXR1cm4gZmFsc2UgLyBkbyBub3RoaW5nLiBUaGVuLCB0aGUKKyAg
ICAgICAgdXNlIHNpdGVzIGNhbiBqdXN0IHVzZSB0aGVzZSBmdW5jdGlvbnMgd2l0aG91dCBoYXZp
bmcgdWdseSBndWFyZHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMg
bm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBs
YXRmb3JtRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6aGFzaCk6
IFNpbXBsaWZ5IGlzRW1vamkgdXNlIHNpdGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZv
cm1EYXRhOjppc0Vtb2ppKTogR2V0dGVyLiBSZXR1cm5zIGZhbHNlIG9uIE1hYy4KKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnNldElzRW1vamkpOiBTZXR0ZXIuIERvZXMgbm90
aGluZyBvbiBNYWMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2Nh
ZGVDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50QWRqdXN0ZWRGb3JFbW9qaSk6IFNp
bXBsaWZ5IGlzRW1vamkgdXNlIHNpdGUuCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6
ZHJhd0dseXBocyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnBsYXRmb3JtSW5pdCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Y2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6aXNFbW9qaSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhSW5pdCk6IFNpbXBsaWZ5IGlzRW1v
amkgdXNlCisgICAgICAgIHNpdGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpwbGF0Zm9ybURhdGFBc3NpZ24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0
Zm9ybURhdGE6OnBsYXRmb3JtSXNFcXVhbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dFBsYXRmb3JtRGF0YTo6Y3RGb250U2l6ZSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6
OmdldFN5c3RlbUZvbnRGYWxsYmFja0ZvckNoYXJhY3RlcnMpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZh
bmNlcyk6IERpdHRvLgorCisyMDE1LTA2LTA0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVs
ZEBhcHBsZS5jb20+CisKICAgICAgICAgW0NvY29hXSBDbGVhbiB1cCBtX2ZvbnQgaW5zaWRlIEZv
bnRQbGF0Zm9ybURhdGEKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0NTYzNAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGxhdGZvcm1EYXRhLmgKaW5kZXggOWRiYjRkYTY1MDZhYjJlYTY5NDFkNjM1ZWYxMWI0
YTlmODMxMTFjMi4uNDM1NmY1MTg1ZDViNjg2ZWExYzNjZGVjMmFhYTFmNWQ3MDM3OTAwYSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURh
dGEuaApAQCAtMTQ5LDEzICsxNDksMTQgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdJTikgJiYg
IVVTRShDQUlSTykKICAgICAgICAgcmV0dXJuIG1fZm9udCA/IG1fZm9udC0+aGFzaCgpIDogMDsK
ICNlbGlmIE9TKERBUldJTikKKyAgICAgICAgQVNTRVJUKG1fZm9udCB8fCAhbV9jZ0ZvbnQgfHwg
aXNFbW9qaSgpKTsKKyAgICAgICAgdWludHB0cl90IGZsYWdzID0gc3RhdGljX2Nhc3Q8dWludHB0
cl90PihtX2lzSGFzaFRhYmxlRGVsZXRlZFZhbHVlIDw8IDQgfCBpc0Vtb2ppKCkgPDwgMyB8IG1f
b3JpZW50YXRpb24gPDwgMiB8IG1fc3ludGhldGljQm9sZCA8PCAxIHwgbV9zeW50aGV0aWNPYmxp
cXVlKTsKICNpZiBVU0UoQVBQS0lUKQotICAgICAgICBBU1NFUlQobV9mb250IHx8ICFtX2NnRm9u
dCk7Ci0gICAgICAgIHVpbnRwdHJfdCBoYXNoQ29kZXNbM10gPSB7IHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90Pihjb25zdF9jYXN0PF9fQ1RGb250Kj4obV9mb250LmdldCgpKSksIG1fd2lkdGhW
YXJpYW50LCBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUg
PDwgMyB8IG1fb3JpZW50YXRpb24gPDwgMiB8IG1fc3ludGhldGljQm9sZCA8PCAxIHwgbV9zeW50
aGV0aWNPYmxpcXVlKSB9OworICAgICAgICB1aW50cHRyX3QgZm9udEhhc2ggPSBzdGF0aWNfY2Fz
dDx1aW50cHRyX3Q+KGNvbnN0X2Nhc3Q8X19DVEZvbnQqPihtX2ZvbnQuZ2V0KCkpKQogI2Vsc2UK
LSAgICAgICAgQVNTRVJUKG1fZm9udCB8fCAhbV9jZ0ZvbnQgfHwgbV9pc0Vtb2ppKTsKLSAgICAg
ICAgdWludHB0cl90IGhhc2hDb2Rlc1szXSA9IHsgc3RhdGljX2Nhc3Q8dWludHB0cl90PihDRkhh
c2gobV9mb250LmdldCgpKSksIG1fd2lkdGhWYXJpYW50LCBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+
KG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUgPDwgNCB8IG1faXNFbW9qaSA8PCAzIHwgbV9vcmll
bnRhdGlvbiA8PCAyIHwgbV9zeW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRoZXRpY09ibGlxdWUp
IH07CisgICAgICAgIHVpbnRwdHJfdCBmb250SGFzaCA9IHN0YXRpY19jYXN0PHVpbnRwdHJfdD4o
Q0ZIYXNoKG1fZm9udC5nZXQoKSkpCiAjZW5kaWYKKyAgICAgICAgdWludHB0cl90IGhhc2hDb2Rl
c1szXSA9IHsgZm9udEhhc2gsIG1fd2lkdGhWYXJpYW50LCBmbGFncyB9OwogICAgICAgICByZXR1
cm4gU3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5PHNpemVvZihoYXNoQ29kZXMpPihoYXNoQ29kZXMp
OwogI2VsaWYgVVNFKENBSVJPKQogICAgICAgICByZXR1cm4gUHRySGFzaDxjYWlyb19zY2FsZWRf
Zm9udF90Kj46Omhhc2gobV9zY2FsZWRGb250KTsKQEAgLTE5MCw2ICsxOTEsMTQgQEAgcHVibGlj
OgogICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogI2VuZGlmCiAKKyNpZiBQTEFURk9S
TShJT1MpCisgICAgYm9vbCBpc0Vtb2ppKCkgY29uc3QgeyByZXR1cm4gbV9pc0Vtb2ppOyB9Cisg
ICAgdm9pZCBzZXRJc0Vtb2ppKGJvb2wgaXNFbW9qaSkgeyBtX2lzRW1vamkgPSBpc0Vtb2ppOyB9
CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgYm9vbCBpc0Vtb2ppKCkgY29uc3QgeyByZXR1cm4g
ZmFsc2U7IH0KKyAgICB2b2lkIHNldElzRW1vamkoYm9vbCkgeyB9CisjZW5kaWYKKwogcHJpdmF0
ZToKICAgICBib29sIHBsYXRmb3JtSXNFcXVhbChjb25zdCBGb250UGxhdGZvcm1EYXRhJikgY29u
c3Q7CiAgICAgdm9pZCBwbGF0Zm9ybURhdGFJbml0KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmKTsK
QEAgLTIwNSw5ICsyMTQsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBtX3N5bnRoZXRpY0JvbGQgeyBm
YWxzZSB9OwogICAgIGJvb2wgbV9zeW50aGV0aWNPYmxpcXVlIHsgZmFsc2UgfTsKICAgICBGb250
T3JpZW50YXRpb24gbV9vcmllbnRhdGlvbiB7IEhvcml6b250YWwgfTsKLSNpZiBQTEFURk9STShJ
T1MpCi0gICAgYm9vbCBtX2lzRW1vamkgeyBmYWxzZSB9OwotI2VuZGlmCiAgICAgZmxvYXQgbV9z
aXplIHsgMCB9OwogICAgIEZvbnRXaWR0aFZhcmlhbnQgbV93aWR0aFZhcmlhbnQgeyBSZWd1bGFy
V2lkdGggfTsKIApAQCAtMjMwLDYgKzIzNiw5IEBAIHByaXZhdGU6CiAgICAgYm9vbCBtX2lzQ29s
b3JCaXRtYXBGb250IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNDb21wb3NpdGVGb250UmVmZXJl
bmNlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUgeyBmYWxz
ZSB9OworI2lmIFBMQVRGT1JNKElPUykKKyAgICBib29sIG1faXNFbW9qaSB7IGZhbHNlIH07Cisj
ZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICBib29sIG1fdXNlR0RJIHsgZmFsc2UgfTsK
ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRD
YXNjYWRlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250Q2FzY2FkZUNvY29hLm1tCmluZGV4IDU1YWQ3OTg0NWNkYzhlMmNlNmE4NzAwNGNlNzA3Y2Jj
ZDQ5ZDUzYjcuLjA5NDYyYzhmY2ZkYzI0NmQzMjM2MTExMWZlYTA2NTExOGM3YTBjYjYgMTAwNjQ0
Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDYXNjYWRl
Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dENhc2NhZGVDb2NvYS5tbQpAQCAtMjQ4LDggKzI0OCw3IEBAIHN0YXRpYyBDR1NpemUgZGlsYXRp
b25TaXplRm9yVGV4dENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKIAogc3RhdGljIEZsb2F0UG9p
bnQgcG9pbnRBZGp1c3RlZEZvckVtb2ppKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3Jt
RGF0YSwgRmxvYXRQb2ludCBwb2ludCkKIHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgaWYgKCFw
bGF0Zm9ybURhdGEubV9pc0Vtb2ppKQorICAgIGlmICghcGxhdGZvcm1EYXRhLmlzRW1vamkoKSkK
ICAgICAgICAgcmV0dXJuIHBvaW50OwogCiAgICAgLy8gTWltaWMgdGhlIHBvc2l0aW9pbmluZyBv
ZiBub24tYml0bWFwIGdseXBocywgd2hpY2ggYXJlIG5vdCBzdWJwaXhlbC1wb3NpdGlvbmVkLgpA
QCAtMjc2LDkgKzI3NSw2IEBAIHN0YXRpYyBGbG9hdFBvaW50IHBvaW50QWRqdXN0ZWRGb3JFbW9q
aShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEsIEZsCiAgICAgICAgIHN0YXRp
YyBmbG9hdCB5QWRqdXN0bWVudCA9IGlvc0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQWZ0ZXJWZXJz
aW9uKHdrSU9TU3lzdGVtVmVyc2lvbl82XzApID8gMy44IDogMjsKICAgICAgICAgcG9pbnQuc2V0
WShmbG9vcmYoeSAtIHlBZGp1c3RtZW50KSk7CiAgICAgfQotI2Vsc2UKLSAgICBVTlVTRURfUEFS
QU0ocGxhdGZvcm1EYXRhKTsKLSNlbmRpZgogICAgIHJldHVybiBwb2ludDsKIH0KIApAQCAtNDE2
LDExICs0MTIsNyBAQCB2b2lkIEZvbnRDYXNjYWRlOjpkcmF3R2x5cGhzKEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgRm9udCogZm9udCwgY29uc3QgRwogICAgICAgICAvLyBJZiBzaGFk
b3dzIGFyZSBpZ25vcmluZyB0cmFuc2Zvcm1zLCB0aGVuIHdlIGhhdmVuJ3QgYXBwbGllZCB0aGUg
WSBjb29yZGluYXRlIGZsaXAgeWV0LCBzbyBkb3duIGlzIG5lZ2F0aXZlLgogICAgICAgICBmbG9h
dCBzaGFkb3dUZXh0WSA9IHBvaW50LnkoKSArIHNoYWRvd09mZnNldC5oZWlnaHQoKSAqIChjb250
ZXh0LT5zaGFkb3dzSWdub3JlVHJhbnNmb3JtcygpID8gLTEgOiAxKTsKICAgICAgICAgc2hvd0ds
eXBoc1dpdGhBZHZhbmNlcyhGbG9hdFBvaW50KHNoYWRvd1RleHRYLCBzaGFkb3dUZXh0WSksIGZv
bnQsIGNnQ29udGV4dCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBzdGF0aWNfY2FzdDxjb25z
dCBDR1NpemUqPihnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSksIG51bUdseXBocyk7Ci0jaWYg
IVBMQVRGT1JNKElPUykKLSAgICAgICAgaWYgKHN5bnRoZXRpY0JvbGRPZmZzZXQpCi0jZWxzZQot
ICAgICAgICBpZiAoc3ludGhldGljQm9sZE9mZnNldCAmJiAhcGxhdGZvcm1EYXRhLm1faXNFbW9q
aSkKLSNlbmRpZgorICAgICAgICBpZiAoc3ludGhldGljQm9sZE9mZnNldCAmJiAhcGxhdGZvcm1E
YXRhLmlzRW1vamkoKSkKICAgICAgICAgICAgIHNob3dHbHlwaHNXaXRoQWR2YW5jZXMoRmxvYXRQ
b2ludChzaGFkb3dUZXh0WCArIHN5bnRoZXRpY0JvbGRPZmZzZXQsIHNoYWRvd1RleHRZKSwgZm9u
dCwgY2dDb250ZXh0LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIHN0YXRpY19jYXN0PGNvbnN0
IENHU2l6ZSo+KGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pKSwgbnVtR2x5cGhzKTsKICAgICAg
ICAgY29udGV4dC0+c2V0RmlsbENvbG9yKGZpbGxDb2xvciwgZmlsbENvbG9yU3BhY2UpOwogICAg
IH0KQEAgLTQyOSwxMSArNDIxLDcgQEAgdm9pZCBGb250Q2FzY2FkZTo6ZHJhd0dseXBocyhHcmFw
aGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0IEcKICAgICAgICAg
c2hvd0xldHRlcnByZXNzZWRHbHlwaHNXaXRoQWR2YW5jZXMocG9pbnQsIGZvbnQsIGNnQ29udGV4
dCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBzdGF0aWNfY2FzdDxjb25zdCBDR1NpemUqPihn
bHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSksIG51bUdseXBocyk7CiAgICAgZWxzZQogICAgICAg
ICBzaG93R2x5cGhzV2l0aEFkdmFuY2VzKHBvaW50LCBmb250LCBjZ0NvbnRleHQsIGdseXBoQnVm
ZmVyLmdseXBocyhmcm9tKSwgc3RhdGljX2Nhc3Q8Y29uc3QgQ0dTaXplKj4oZ2x5cGhCdWZmZXIu
YWR2YW5jZXMoZnJvbSkpLCBudW1HbHlwaHMpOwotI2lmICFQTEFURk9STShJT1MpCi0gICAgaWYg
KHN5bnRoZXRpY0JvbGRPZmZzZXQpCi0jZWxzZQotICAgIGlmIChzeW50aGV0aWNCb2xkT2Zmc2V0
ICYmICFwbGF0Zm9ybURhdGEubV9pc0Vtb2ppKQotI2VuZGlmCisgICAgaWYgKHN5bnRoZXRpY0Jv
bGRPZmZzZXQgJiYgIXBsYXRmb3JtRGF0YS5pc0Vtb2ppKCkpCiAgICAgICAgIHNob3dHbHlwaHNX
aXRoQWR2YW5jZXMoRmxvYXRQb2ludChwb2ludC54KCkgKyBzeW50aGV0aWNCb2xkT2Zmc2V0LCBw
b2ludC55KCkpLCBmb250LCBjZ0NvbnRleHQsIGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgc3Rh
dGljX2Nhc3Q8Y29uc3QgQ0dTaXplKj4oZ2x5cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSkpLCBudW1H
bHlwaHMpOwogCiAgICAgaWYgKGhhc1NpbXBsZVNoYWRvdykKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQppbmRleCA4MTBkOTM3ZGVi
NzRlYWRjYTk5YTdiNWY3NWIxN2MzYzJmMjM3ZjAwLi44OGY5YWNmYjdjMmRiYzI3ZTE3MGIxZWQz
Njg1NGE3ZTg0NjgyZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3Jh
cGhpY3MvY29jb2EvRm9udENvY29hLm1tCkBAIC0yNjcsNyArMjY3LDcgQEAgdm9pZCBGb250Ojpw
bGF0Zm9ybUluaXQoKQogICAgIGlmIChwbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigpID09IFZl
cnRpY2FsICYmICFpc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrKCkpCiAgICAgICAgIG1faGFzVmVy
dGljYWxHbHlwaHMgPSBmb250SGFzVmVydGljYWxHbHlwaHMobV9wbGF0Zm9ybURhdGEuY3RGb250
KCkpOwogCi0gICAgaWYgKG1fcGxhdGZvcm1EYXRhLm1faXNFbW9qaSkgeworICAgIGlmIChtX3Bs
YXRmb3JtRGF0YS5pc0Vtb2ppKCkpIHsKICAgICAgICAgaW50IHRoaXJkT2ZTaXplID0gbV9wbGF0
Zm9ybURhdGEuc2l6ZSgpIC8gMzsKICAgICAgICAgbV9mb250TWV0cmljcy5zZXRBc2NlbnQodGhp
cmRPZlNpemUpOwogICAgICAgICBtX2ZvbnRNZXRyaWNzLnNldERlc2NlbnQodGhpcmRPZlNpemUp
OwpAQCAtNDU1LDE2ICs0NTUsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYWR2YW5jZUZvckNvbG9y
Qml0bWFwRm9udChjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdAogI2VuZGlmCiB9
CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0Vtb2ppKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBs
YXRmb3JtRGF0YSkKLXsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgcmV0dXJuIHBsYXRmb3JtRGF0
YS5tX2lzRW1vamk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShwbGF0Zm9ybURhdGEpOwotICAg
IHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBzdGF0aWMgaW5saW5lIGJvb2wgY2FuVXNlRmFz
dEdseXBoQWR2YW5jZUdldHRlcihjb25zdCBGb250JiBmb250LCBHbHlwaCBnbHlwaCwgQ0dTaXpl
JiBhZHZhbmNlLCBib29sJiBwb3B1bGF0ZWRBZHZhbmNlKQogewogICAgIGNvbnN0IEZvbnRQbGF0
Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7CkBAIC00NzIsNyAr
NDYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGNhblVzZUZhc3RHbHlwaEFkdmFuY2VHZXR0ZXIo
Y29uc3QgRm9udCYgZm9udCwgR2x5cGggZ2x5cGgsIEMKICAgICBpZiAoZm9udC5oYXNDdXN0b21U
cmFja2luZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gRmFzdCBnZXR0ZXIgZG9l
c24ndCB3b3JrIGZvciBlbW9qaQotICAgIGlmIChpc0Vtb2ppKHBsYXRmb3JtRGF0YSkpCisgICAg
aWYgKHBsYXRmb3JtRGF0YS5pc0Vtb2ppKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAv
LyAuLi4gb3IgZm9yIGFueSBiaXRtYXAgZm9udHMgaW4gZ2VuZXJhbAogICAgIGlmIChhZHZhbmNl
Rm9yQ29sb3JCaXRtYXBGb250KHBsYXRmb3JtRGF0YSwgZ2x5cGgsIGFkdmFuY2UpKSB7CmRpZmYg
LS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250UGxhdGZv
cm1EYXRhQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9G
b250UGxhdGZvcm1EYXRhQ29jb2EubW0KaW5kZXggNTY4MmY0NGE4MTYxYzU0YWRlYzY3ZWMyOGYw
MjUzMTYxYTk1M2I2Ni4uOWUyYTEyNmZmOWZjYzA3ZmE2YjlhZWFjMDBhOWZjMDMzNmE2MDBiMSAx
MDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udFBs
YXRmb3JtRGF0YUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQpAQCAtNTgsOSArNTgsNyBAQCB2b2lkIEZv
bnRQbGF0Zm9ybURhdGE6OnBsYXRmb3JtRGF0YUluaXQoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYg
ZikKIHsKICAgICBtX2ZvbnQgPSBmLm1fZm9udDsKIAotI2lmIFBMQVRGT1JNKElPUykKLSAgICBt
X2lzRW1vamkgPSBmLm1faXNFbW9qaTsKLSNlbmRpZgorICAgIHNldElzRW1vamkoZi5pc0Vtb2pp
KCkpOwogICAgIG1fY2dGb250ID0gZi5tX2NnRm9udDsKICAgICBtX2N0Rm9udCA9IGYubV9jdEZv
bnQ7CiB9CkBAIC02OCw5ICs2Niw3IEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0YTo6cGxhdGZvcm1E
YXRhSW5pdChjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmKQogY29uc3QgRm9udFBsYXRmb3JtRGF0
YSYgRm9udFBsYXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhQXNzaWduKGNvbnN0IEZvbnRQbGF0Zm9y
bURhdGEmIGYpCiB7CiAgICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OwotI2lmIFBMQVRGT1JNKElP
UykKLSAgICBtX2lzRW1vamkgPSBmLm1faXNFbW9qaTsKLSNlbmRpZgorICAgIHNldElzRW1vamko
Zi5pc0Vtb2ppKCkpOwogICAgIGlmIChtX2ZvbnQgJiYgZi5tX2ZvbnQgJiYgQ0ZFcXVhbChtX2Zv
bnQuZ2V0KCksIGYubV9mb250LmdldCgpKSkKICAgICAgICAgcmV0dXJuICp0aGlzOwogICAgIG1f
Zm9udCA9IGYubV9mb250OwpAQCAtODUsMTkgKzgxLDEzIEBAIGJvb2wgRm9udFBsYXRmb3JtRGF0
YTo6cGxhdGZvcm1Jc0VxdWFsKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG90aGVyKSBjb25zdAog
ICAgIGlmIChtX2ZvbnQgfHwgb3RoZXIubV9mb250KSB7CiAjaWYgUExBVEZPUk0oSU9TKQogICAg
ICAgICByZXN1bHQgPSBtX2ZvbnQgJiYgb3RoZXIubV9mb250ICYmIENGRXF1YWwobV9mb250Lmdl
dCgpLCBvdGhlci5tX2ZvbnQuZ2V0KCkpOwotI2lmICFBU1NFUlRfRElTQUJMRUQKLSAgICAgICAg
aWYgKHJlc3VsdCkKLSAgICAgICAgICAgIEFTU0VSVChtX2lzRW1vamkgPT0gb3RoZXIubV9pc0Vt
b2ppKTsKLSNlbmRpZgogI2Vsc2UKICAgICAgICAgcmVzdWx0ID0gbV9mb250ID09IG90aGVyLm1f
Zm9udDsKICNlbmRpZgorICAgICAgICBBU1NFUlQoIXJlc3VsdCB8fCBpc0Vtb2ppKCkgPT0gb3Ro
ZXIuaXNFbW9qaSgpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9Ci0jaWYgUExBVEZP
Uk0oSU9TKSAmJiAhQVNTRVJUX0RJU0FCTEVECi0gICAgaWYgKG1fY2dGb250ID09IG90aGVyLm1f
Y2dGb250KQotICAgICAgICBBU1NFUlQobV9pc0Vtb2ppID09IG90aGVyLm1faXNFbW9qaSk7Ci0j
ZW5kaWYKKyAgICBBU1NFUlQobV9jZ0ZvbnQgIT0gb3RoZXIubV9jZ0ZvbnQgfHwgaXNFbW9qaSgp
ID09IG90aGVyLmlzRW1vamkoKSk7CiAgICAgcmV0dXJuIG1fY2dGb250ID09IG90aGVyLm1fY2dG
b250OwogfQogCkBAIC0yMDIsMTIgKzE5Miw4IEBAIHN0YXRpYyBDVEZvbnREZXNjcmlwdG9yUmVm
IGNhc2NhZGVUb0xhc3RSZXNvcnRBbmREaXNhYmxlU3dhc2hlc0ZvbnREZXNjcmlwdG9yKCkKIAog
Q0dGbG9hdCBGb250UGxhdGZvcm1EYXRhOjpjdEZvbnRTaXplKCkgY29uc3QKIHsKLSNpZiBQTEFU
Rk9STShJT1MpCi0gICAgLy8gQXBwbGUgQ29sb3IgRW1vamkgc2l6ZSBpcyBhZGp1c3RlZCAoYW5k
IHRoZW4gcmUtYWRqdXN0ZWQgYnkgQ29yZSBUZXh0KSBhbmQgY2FwcGVkLgotICAgIHJldHVybiAh
bV9pc0Vtb2ppID8gbV9zaXplIDogbV9zaXplIDw9IDE1ID8gNCAqIChtX3NpemUgKyAyKSAvIHN0
YXRpY19jYXN0PENHRmxvYXQ+KDUpIDogMTY7Ci0jZWxzZQotICAgIHJldHVybiBtX3NpemU7Ci0j
ZW5kaWYKKyAgICAvLyBPbiBpT1MsIEFwcGxlIENvbG9yIEVtb2ppIHNpemUgaXMgYWRqdXN0ZWQg
KGFuZCB0aGVuIHJlLWFkanVzdGVkIGJ5IENvcmUgVGV4dCkgYW5kIGNhcHBlZC4KKyAgICByZXR1
cm4gIWlzRW1vamkoKSA/IG1fc2l6ZSA6IG1fc2l6ZSA8PSAxNSA/IDQgKiAobV9zaXplICsgMikg
LyBzdGF0aWNfY2FzdDxDR0Zsb2F0Pig1KSA6IDE2OwogfQogCiBDVEZvbnRSZWYgRm9udFBsYXRm
b3JtRGF0YTo6Y3RGb250KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCmluZGV4IDk2NzFiY2YzNzIzYWYxZjVmYTcz
MmM3ZmQyMzQ0ZmJkYmUxZDYwNmUuLjQ5YTQ3OTZlMTI3YmNmZjgwZDIyMzQ0OTNiYzdhYWJhMmYz
YWMzNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9G
b250Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9z
L0ZvbnRDYWNoZUlPUy5tbQpAQCAtOTQsNyArOTQsNyBAQCBQYXNzUmVmUHRyPEZvbnQ+IEZvbnRD
YWNoZTo6Z2V0U3lzdGVtRm9udEZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25zdCBGb250RGVzY3Jp
cAogICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IChvcmlnaW5hbFRyYWl0cyAmIGtDVEZvbnRU
cmFpdEl0YWxpYykgJiYgIShhY3R1YWxUcmFpdHMgJiBrQ1RGb250VHJhaXRJdGFsaWMpOwogCiAg
ICAgRm9udFBsYXRmb3JtRGF0YSBhbHRlcm5hdGVGb250KHN1YnN0aXR1dGVGb250LmdldCgpLCBw
bGF0Zm9ybURhdGEuc2l6ZSgpLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBwbGF0
Zm9ybURhdGEubV9vcmllbnRhdGlvbik7Ci0gICAgYWx0ZXJuYXRlRm9udC5tX2lzRW1vamkgPSBD
VEZvbnRJc0FwcGxlQ29sb3JFbW9qaShzdWJzdGl0dXRlRm9udC5nZXQoKSk7CisgICAgYWx0ZXJu
YXRlRm9udC5zZXRJc0Vtb2ppKENURm9udElzQXBwbGVDb2xvckVtb2ppKHN1YnN0aXR1dGVGb250
LmdldCgpKSk7CiAKICAgICByZXR1cm4gZm9udEZvclBsYXRmb3JtRGF0YShhbHRlcm5hdGVGb250
KTsKIH0KQEAgLTY5OCw3ICs2OTgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9udFBsYXRmb3JtRGF0
YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZQogCiAgICAg
YXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPEZvbnRQbGF0Zm9ybURhdGE+KGN0Rm9udC5n
ZXQoKSwgc2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwgZm9udERlc2NyaXB0
aW9uLm9yaWVudGF0aW9uKCksIGZvbnREZXNjcmlwdGlvbi53aWR0aFZhcmlhbnQoKSk7CiAgICAg
aWYgKGlzQXBwbGVDb2xvckVtb2ppKQotICAgICAgICByZXN1bHQtPm1faXNFbW9qaSA9IHRydWU7
CisgICAgICAgIHJlc3VsdC0+c2V0SXNFbW9qaSh0cnVlKTsKICAgICByZXR1cm4gcmVzdWx0Owog
fQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9tYWMvQ29t
cGxleFRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCmluZGV4IGFhYzE5OTQ1NGY5NzQyZDhiNWM4
YzljMWM1ZTllNDUyYTI3ZDFjYjIuLjRhOWU3YTM4MGY2MmVhMmQ1MTlhYjQ0NjQ2YWI2OGRjODY3
YzliZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9D
b21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCkBAIC02MDMsOSArNjAzLDcgQEAg
dm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkanVzdEdseXBoc0FuZEFkdmFuY2VzKCkKICAg
ICAgICAgQ29tcGxleFRleHRSdW4mIGNvbXBsZXhUZXh0UnVuID0gKm1fY29tcGxleFRleHRSdW5z
W3JdOwogICAgICAgICB1bnNpZ25lZCBnbHlwaENvdW50ID0gY29tcGxleFRleHRSdW4uZ2x5cGhD
b3VudCgpOwogICAgICAgICBjb25zdCBGb250JiBmb250ID0gY29tcGxleFRleHRSdW4uZm9udCgp
OwotI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgYm9vbCBpc0Vtb2ppID0gZm9udC5wbGF0Zm9y
bURhdGEoKS5tX2lzRW1vamk7Ci0jZW5kaWYKKyAgICAgICAgYm9vbCBpc0Vtb2ppID0gZm9udC5w
bGF0Zm9ybURhdGEoKS5pc0Vtb2ppKCk7CiAKICAgICAgICAgLy8gUmVwcmVzZW50IHRoZSBpbml0
aWFsIGFkdmFuY2UgZm9yIGEgdGV4dCBydW4gYnkgYWRqdXN0aW5nIHRoZSBhZHZhbmNlCiAgICAg
ICAgIC8vIG9mIHRoZSBsYXN0IGdseXBoIG9mIHRoZSBwcmV2aW91cyB0ZXh0IHJ1biBpbiB0aGUg
Z2x5cGggYnVmZmVyLgpAQCAtNjUzLDEwICs2NTEsOCBAQCB2b2lkIENvbXBsZXhUZXh0Q29udHJv
bGxlcjo6YWRqdXN0R2x5cGhzQW5kQWR2YW5jZXMoKQogICAgICAgICAgICAgYm9vbCB0cmVhdEFz
U3BhY2UgPSBGb250Q2FzY2FkZTo6dHJlYXRBc1NwYWNlKGNoKTsKICAgICAgICAgICAgIENHR2x5
cGggZ2x5cGggPSB0cmVhdEFzU3BhY2UgPyBmb250LnNwYWNlR2x5cGgoKSA6IGdseXBoc1tpXTsK
ICAgICAgICAgICAgIENHU2l6ZSBhZHZhbmNlID0gdHJlYXRBc1NwYWNlID8gQ0dTaXplTWFrZShz
cGFjZVdpZHRoLCBhZHZhbmNlc1tpXS5oZWlnaHQpIDogYWR2YW5jZXNbaV07Ci0jaWYgUExBVEZP
Uk0oSU9TKQogICAgICAgICAgICAgaWYgKGlzRW1vamkgJiYgYWR2YW5jZS53aWR0aCkKICAgICAg
ICAgICAgICAgICBhZHZhbmNlLndpZHRoID0gZm9udC53aWR0aEZvckdseXBoKGdseXBoKTsKLSNl
bmRpZgogCiAgICAgICAgICAgICBpZiAoY2ggPT0gJ1x0JyAmJiBtX3J1bi5hbGxvd1RhYnMoKSkK
ICAgICAgICAgICAgICAgICBhZHZhbmNlLndpZHRoID0gbV9mb250LnRhYldpZHRoKGZvbnQsIG1f
cnVuLnRhYlNpemUoKSwgbV9ydW4ueFBvcygpICsgbV90b3RhbFdpZHRoICsgd2lkdGhTaW5jZUxh
c3RDb21taXQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254271</attachid>
            <date>2015-06-04 10:38:23 -0700</date>
            <delta_ts>2015-06-04 10:46:38 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145644-20150604103802.patch</filename>
            <type>text/plain</type>
            <size>14900</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjljYzA4MmY3M2IyYWM0
ZjRkMzQ5NWQxZDE4NmU2NmFhOTg0ZWJmZS4uODhlZTBkZDdjMzIxN2ZhMmNjYTJmZTEwMThkMTA3
OTk2NmM1MjlhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDE1LTA2LTA0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgW0NvY29hXSBD
bGVhbiB1cCBtX2lzRW1vamkgaW4gRm9udFBsYXRmb3JtRGF0YQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NjQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbV9pc0Vtb2ppIHVzZWQgdG8gYmUgYSBwdWJs
aWMgbWVtYmVyIHZhcmlhYmxlIG9ubHkgZGVmaW5lZCBvbiBpT1MuIFRoaXMKKyAgICAgICAgbWVh
bnMgdGhhdCwgd2hlbmV2ZXIgaXQgd2FzIGNvbnN1bHRlZCwgdGhlIHNpdGVzIHdlcmUgc3Vycm91
bmRlZCBieQorICAgICAgICBQTEFURk9STShJT1MpIGd1YXJkcy4gQSBjbGVhbmVyIGRlc2lnbiBp
cyB0byB1c2UgYSBnZXR0ZXIgYW5kIHNldHRlciwKKyAgICAgICAgd2hpY2ggb24gbm9uLWlPUyBw
bGF0Zm9ybXMsIGFsd2F5cyByZXR1cm4gZmFsc2UgLyBkbyBub3RoaW5nLiBUaGVuLCB0aGUKKyAg
ICAgICAgdXNlIHNpdGVzIGNhbiBqdXN0IHVzZSB0aGVzZSBmdW5jdGlvbnMgd2l0aG91dCBoYXZp
bmcgdWdseSBndWFyZHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMg
bm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBs
YXRmb3JtRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6aGFzaCk6
IFNpbXBsaWZ5IGlzRW1vamkgdXNlIHNpdGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZv
cm1EYXRhOjppc0Vtb2ppKTogR2V0dGVyLiBSZXR1cm5zIGZhbHNlIG9uIE1hYy4KKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnNldElzRW1vamkpOiBTZXR0ZXIuIERvZXMgbm90
aGluZyBvbiBNYWMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2Nh
ZGVDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50QWRqdXN0ZWRGb3JFbW9qaSk6IFNp
bXBsaWZ5IGlzRW1vamkgdXNlIHNpdGUuCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6
ZHJhd0dseXBocyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnBsYXRmb3JtSW5pdCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Y2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6aXNFbW9qaSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhSW5pdCk6IFNpbXBsaWZ5IGlzRW1v
amkgdXNlCisgICAgICAgIHNpdGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpwbGF0Zm9ybURhdGFBc3NpZ24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0
Zm9ybURhdGE6OnBsYXRmb3JtSXNFcXVhbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dFBsYXRmb3JtRGF0YTo6Y3RGb250U2l6ZSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6
OmdldFN5c3RlbUZvbnRGYWxsYmFja0ZvckNoYXJhY3RlcnMpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZh
bmNlcyk6IERpdHRvLgorCisyMDE1LTA2LTA0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVs
ZEBhcHBsZS5jb20+CisKICAgICAgICAgW0NvY29hXSBDbGVhbiB1cCBtX2ZvbnQgaW5zaWRlIEZv
bnRQbGF0Zm9ybURhdGEKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0NTYzNAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGxhdGZvcm1EYXRhLmgKaW5kZXggOWRiYjRkYTY1MDZhYjJlYTY5NDFkNjM1ZWYxMWI0
YTlmODMxMTFjMi4uY2UxYTlmZDJiNDdhZDRmYTIwZWJkNDExN2EzNDhhZmM3YjczZjNhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURh
dGEuaApAQCAtMTQ5LDEzICsxNDksMTQgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdJTikgJiYg
IVVTRShDQUlSTykKICAgICAgICAgcmV0dXJuIG1fZm9udCA/IG1fZm9udC0+aGFzaCgpIDogMDsK
ICNlbGlmIE9TKERBUldJTikKKyAgICAgICAgQVNTRVJUKG1fZm9udCB8fCAhbV9jZ0ZvbnQgfHwg
aXNFbW9qaSgpKTsKKyAgICAgICAgdWludHB0cl90IGZsYWdzID0gc3RhdGljX2Nhc3Q8dWludHB0
cl90PihtX2lzSGFzaFRhYmxlRGVsZXRlZFZhbHVlIDw8IDQgfCBpc0Vtb2ppKCkgPDwgMyB8IG1f
b3JpZW50YXRpb24gPDwgMiB8IG1fc3ludGhldGljQm9sZCA8PCAxIHwgbV9zeW50aGV0aWNPYmxp
cXVlKTsKICNpZiBVU0UoQVBQS0lUKQotICAgICAgICBBU1NFUlQobV9mb250IHx8ICFtX2NnRm9u
dCk7Ci0gICAgICAgIHVpbnRwdHJfdCBoYXNoQ29kZXNbM10gPSB7IHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90Pihjb25zdF9jYXN0PF9fQ1RGb250Kj4obV9mb250LmdldCgpKSksIG1fd2lkdGhW
YXJpYW50LCBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUg
PDwgMyB8IG1fb3JpZW50YXRpb24gPDwgMiB8IG1fc3ludGhldGljQm9sZCA8PCAxIHwgbV9zeW50
aGV0aWNPYmxpcXVlKSB9OworICAgICAgICB1aW50cHRyX3QgZm9udEhhc2ggPSByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxfX0NURm9udCo+KG1fZm9udC5nZXQoKSkpOwog
I2Vsc2UKLSAgICAgICAgQVNTRVJUKG1fZm9udCB8fCAhbV9jZ0ZvbnQgfHwgbV9pc0Vtb2ppKTsK
LSAgICAgICAgdWludHB0cl90IGhhc2hDb2Rlc1szXSA9IHsgc3RhdGljX2Nhc3Q8dWludHB0cl90
PihDRkhhc2gobV9mb250LmdldCgpKSksIG1fd2lkdGhWYXJpYW50LCBzdGF0aWNfY2FzdDx1aW50
cHRyX3Q+KG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUgPDwgNCB8IG1faXNFbW9qaSA8PCAzIHwg
bV9vcmllbnRhdGlvbiA8PCAyIHwgbV9zeW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRoZXRpY09i
bGlxdWUpIH07CisgICAgICAgIHVpbnRwdHJfdCBmb250SGFzaCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90PihDRkhhc2gobV9mb250LmdldCgpKSk7CiAjZW5kaWYKKyAgICAgICAgdWludHB0
cl90IGhhc2hDb2Rlc1szXSA9IHsgZm9udEhhc2gsIG1fd2lkdGhWYXJpYW50LCBmbGFncyB9Owog
ICAgICAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5PHNpemVvZihoYXNoQ29kZXMp
PihoYXNoQ29kZXMpOwogI2VsaWYgVVNFKENBSVJPKQogICAgICAgICByZXR1cm4gUHRySGFzaDxj
YWlyb19zY2FsZWRfZm9udF90Kj46Omhhc2gobV9zY2FsZWRGb250KTsKQEAgLTE5MCw2ICsxOTEs
MTQgQEAgcHVibGljOgogICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShJT1MpCisgICAgYm9vbCBpc0Vtb2ppKCkgY29uc3QgeyByZXR1cm4gbV9p
c0Vtb2ppOyB9CisgICAgdm9pZCBzZXRJc0Vtb2ppKGJvb2wgaXNFbW9qaSkgeyBtX2lzRW1vamkg
PSBpc0Vtb2ppOyB9CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgYm9vbCBpc0Vtb2ppKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIHNldElzRW1vamkoYm9vbCkgeyB9CisjZW5k
aWYKKwogcHJpdmF0ZToKICAgICBib29sIHBsYXRmb3JtSXNFcXVhbChjb25zdCBGb250UGxhdGZv
cm1EYXRhJikgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9ybURhdGFJbml0KGNvbnN0IEZvbnRQbGF0
Zm9ybURhdGEmKTsKQEAgLTIwNSw5ICsyMTQsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBtX3N5bnRo
ZXRpY0JvbGQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zeW50aGV0aWNPYmxpcXVlIHsgZmFsc2Ug
fTsKICAgICBGb250T3JpZW50YXRpb24gbV9vcmllbnRhdGlvbiB7IEhvcml6b250YWwgfTsKLSNp
ZiBQTEFURk9STShJT1MpCi0gICAgYm9vbCBtX2lzRW1vamkgeyBmYWxzZSB9OwotI2VuZGlmCiAg
ICAgZmxvYXQgbV9zaXplIHsgMCB9OwogICAgIEZvbnRXaWR0aFZhcmlhbnQgbV93aWR0aFZhcmlh
bnQgeyBSZWd1bGFyV2lkdGggfTsKIApAQCAtMjMwLDYgKzIzNiw5IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2lzQ29sb3JCaXRtYXBGb250IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNDb21wb3Np
dGVGb250UmVmZXJlbmNlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNIYXNoVGFibGVEZWxldGVk
VmFsdWUgeyBmYWxzZSB9OworI2lmIFBMQVRGT1JNKElPUykKKyAgICBib29sIG1faXNFbW9qaSB7
IGZhbHNlIH07CisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICBib29sIG1fdXNlR0RJ
IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRDYXNjYWRlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250Q2FzY2FkZUNvY29hLm1tCmluZGV4IDU1YWQ3OTg0NWNkYzhlMmNlNmE4
NzAwNGNlNzA3Y2JjZDQ5ZDUzYjcuLjA5NDYyYzhmY2ZkYzI0NmQzMjM2MTExMWZlYTA2NTExOGM3
YTBjYjYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRDYXNjYWRlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhc2NhZGVDb2NvYS5tbQpAQCAtMjQ4LDggKzI0OCw3IEBAIHN0YXRpYyBD
R1NpemUgZGlsYXRpb25TaXplRm9yVGV4dENvbG9yKGNvbnN0IENvbG9yJiBjb2xvcikKIAogc3Rh
dGljIEZsb2F0UG9pbnQgcG9pbnRBZGp1c3RlZEZvckVtb2ppKGNvbnN0IEZvbnRQbGF0Zm9ybURh
dGEmIHBsYXRmb3JtRGF0YSwgRmxvYXRQb2ludCBwb2ludCkKIHsKLSNpZiBQTEFURk9STShJT1Mp
Ci0gICAgaWYgKCFwbGF0Zm9ybURhdGEubV9pc0Vtb2ppKQorICAgIGlmICghcGxhdGZvcm1EYXRh
LmlzRW1vamkoKSkKICAgICAgICAgcmV0dXJuIHBvaW50OwogCiAgICAgLy8gTWltaWMgdGhlIHBv
c2l0aW9pbmluZyBvZiBub24tYml0bWFwIGdseXBocywgd2hpY2ggYXJlIG5vdCBzdWJwaXhlbC1w
b3NpdGlvbmVkLgpAQCAtMjc2LDkgKzI3NSw2IEBAIHN0YXRpYyBGbG9hdFBvaW50IHBvaW50QWRq
dXN0ZWRGb3JFbW9qaShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEsIEZsCiAg
ICAgICAgIHN0YXRpYyBmbG9hdCB5QWRqdXN0bWVudCA9IGlvc0V4ZWN1dGFibGVXYXNMaW5rZWRP
bk9yQWZ0ZXJWZXJzaW9uKHdrSU9TU3lzdGVtVmVyc2lvbl82XzApID8gMy44IDogMjsKICAgICAg
ICAgcG9pbnQuc2V0WShmbG9vcmYoeSAtIHlBZGp1c3RtZW50KSk7CiAgICAgfQotI2Vsc2UKLSAg
ICBVTlVTRURfUEFSQU0ocGxhdGZvcm1EYXRhKTsKLSNlbmRpZgogICAgIHJldHVybiBwb2ludDsK
IH0KIApAQCAtNDE2LDExICs0MTIsNyBAQCB2b2lkIEZvbnRDYXNjYWRlOjpkcmF3R2x5cGhzKEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRm9udCogZm9udCwgY29uc3QgRwogICAgICAg
ICAvLyBJZiBzaGFkb3dzIGFyZSBpZ25vcmluZyB0cmFuc2Zvcm1zLCB0aGVuIHdlIGhhdmVuJ3Qg
YXBwbGllZCB0aGUgWSBjb29yZGluYXRlIGZsaXAgeWV0LCBzbyBkb3duIGlzIG5lZ2F0aXZlLgog
ICAgICAgICBmbG9hdCBzaGFkb3dUZXh0WSA9IHBvaW50LnkoKSArIHNoYWRvd09mZnNldC5oZWln
aHQoKSAqIChjb250ZXh0LT5zaGFkb3dzSWdub3JlVHJhbnNmb3JtcygpID8gLTEgOiAxKTsKICAg
ICAgICAgc2hvd0dseXBoc1dpdGhBZHZhbmNlcyhGbG9hdFBvaW50KHNoYWRvd1RleHRYLCBzaGFk
b3dUZXh0WSksIGZvbnQsIGNnQ29udGV4dCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBzdGF0
aWNfY2FzdDxjb25zdCBDR1NpemUqPihnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSksIG51bUds
eXBocyk7Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICAgICAgaWYgKHN5bnRoZXRpY0JvbGRPZmZz
ZXQpCi0jZWxzZQotICAgICAgICBpZiAoc3ludGhldGljQm9sZE9mZnNldCAmJiAhcGxhdGZvcm1E
YXRhLm1faXNFbW9qaSkKLSNlbmRpZgorICAgICAgICBpZiAoc3ludGhldGljQm9sZE9mZnNldCAm
JiAhcGxhdGZvcm1EYXRhLmlzRW1vamkoKSkKICAgICAgICAgICAgIHNob3dHbHlwaHNXaXRoQWR2
YW5jZXMoRmxvYXRQb2ludChzaGFkb3dUZXh0WCArIHN5bnRoZXRpY0JvbGRPZmZzZXQsIHNoYWRv
d1RleHRZKSwgZm9udCwgY2dDb250ZXh0LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIHN0YXRp
Y19jYXN0PGNvbnN0IENHU2l6ZSo+KGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pKSwgbnVtR2x5
cGhzKTsKICAgICAgICAgY29udGV4dC0+c2V0RmlsbENvbG9yKGZpbGxDb2xvciwgZmlsbENvbG9y
U3BhY2UpOwogICAgIH0KQEAgLTQyOSwxMSArNDIxLDcgQEAgdm9pZCBGb250Q2FzY2FkZTo6ZHJh
d0dseXBocyhHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZvbnQqIGZvbnQsIGNvbnN0
IEcKICAgICAgICAgc2hvd0xldHRlcnByZXNzZWRHbHlwaHNXaXRoQWR2YW5jZXMocG9pbnQsIGZv
bnQsIGNnQ29udGV4dCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBzdGF0aWNfY2FzdDxjb25z
dCBDR1NpemUqPihnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSksIG51bUdseXBocyk7CiAgICAg
ZWxzZQogICAgICAgICBzaG93R2x5cGhzV2l0aEFkdmFuY2VzKHBvaW50LCBmb250LCBjZ0NvbnRl
eHQsIGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgc3RhdGljX2Nhc3Q8Y29uc3QgQ0dTaXplKj4o
Z2x5cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSkpLCBudW1HbHlwaHMpOwotI2lmICFQTEFURk9STShJ
T1MpCi0gICAgaWYgKHN5bnRoZXRpY0JvbGRPZmZzZXQpCi0jZWxzZQotICAgIGlmIChzeW50aGV0
aWNCb2xkT2Zmc2V0ICYmICFwbGF0Zm9ybURhdGEubV9pc0Vtb2ppKQotI2VuZGlmCisgICAgaWYg
KHN5bnRoZXRpY0JvbGRPZmZzZXQgJiYgIXBsYXRmb3JtRGF0YS5pc0Vtb2ppKCkpCiAgICAgICAg
IHNob3dHbHlwaHNXaXRoQWR2YW5jZXMoRmxvYXRQb2ludChwb2ludC54KCkgKyBzeW50aGV0aWNC
b2xkT2Zmc2V0LCBwb2ludC55KCkpLCBmb250LCBjZ0NvbnRleHQsIGdseXBoQnVmZmVyLmdseXBo
cyhmcm9tKSwgc3RhdGljX2Nhc3Q8Y29uc3QgQ0dTaXplKj4oZ2x5cGhCdWZmZXIuYWR2YW5jZXMo
ZnJvbSkpLCBudW1HbHlwaHMpOwogCiAgICAgaWYgKGhhc1NpbXBsZVNoYWRvdykKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbSBi
L1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQppbmRl
eCA4MTBkOTM3ZGViNzRlYWRjYTk5YTdiNWY3NWIxN2MzYzJmMjM3ZjAwLi44OGY5YWNmYjdjMmRi
YzI3ZTE3MGIxZWQzNjg1NGE3ZTg0NjgyZjU4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCkBAIC0yNjcsNyArMjY3LDcgQEAg
dm9pZCBGb250OjpwbGF0Zm9ybUluaXQoKQogICAgIGlmIChwbGF0Zm9ybURhdGEoKS5vcmllbnRh
dGlvbigpID09IFZlcnRpY2FsICYmICFpc1RleHRPcmllbnRhdGlvbkZhbGxiYWNrKCkpCiAgICAg
ICAgIG1faGFzVmVydGljYWxHbHlwaHMgPSBmb250SGFzVmVydGljYWxHbHlwaHMobV9wbGF0Zm9y
bURhdGEuY3RGb250KCkpOwogCi0gICAgaWYgKG1fcGxhdGZvcm1EYXRhLm1faXNFbW9qaSkgewor
ICAgIGlmIChtX3BsYXRmb3JtRGF0YS5pc0Vtb2ppKCkpIHsKICAgICAgICAgaW50IHRoaXJkT2ZT
aXplID0gbV9wbGF0Zm9ybURhdGEuc2l6ZSgpIC8gMzsKICAgICAgICAgbV9mb250TWV0cmljcy5z
ZXRBc2NlbnQodGhpcmRPZlNpemUpOwogICAgICAgICBtX2ZvbnRNZXRyaWNzLnNldERlc2NlbnQo
dGhpcmRPZlNpemUpOwpAQCAtNDU1LDE2ICs0NTUsNiBAQCBzdGF0aWMgaW5saW5lIGJvb2wgYWR2
YW5jZUZvckNvbG9yQml0bWFwRm9udChjb25zdCBGb250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURh
dAogI2VuZGlmCiB9CiAKLXN0YXRpYyBpbmxpbmUgYm9vbCBpc0Vtb2ppKGNvbnN0IEZvbnRQbGF0
Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSkKLXsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgcmV0dXJu
IHBsYXRmb3JtRGF0YS5tX2lzRW1vamk7Ci0jZWxzZQotICAgIFVOVVNFRF9QQVJBTShwbGF0Zm9y
bURhdGEpOwotICAgIHJldHVybiBmYWxzZTsKLSNlbmRpZgotfQotCiBzdGF0aWMgaW5saW5lIGJv
b2wgY2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRlcihjb25zdCBGb250JiBmb250LCBHbHlwaCBn
bHlwaCwgQ0dTaXplJiBhZHZhbmNlLCBib29sJiBwb3B1bGF0ZWRBZHZhbmNlKQogewogICAgIGNv
bnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSA9IGZvbnQucGxhdGZvcm1EYXRhKCk7
CkBAIC00NzIsNyArNDYyLDcgQEAgc3RhdGljIGlubGluZSBib29sIGNhblVzZUZhc3RHbHlwaEFk
dmFuY2VHZXR0ZXIoY29uc3QgRm9udCYgZm9udCwgR2x5cGggZ2x5cGgsIEMKICAgICBpZiAoZm9u
dC5oYXNDdXN0b21UcmFja2luZygpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAgICAgLy8gRmFz
dCBnZXR0ZXIgZG9lc24ndCB3b3JrIGZvciBlbW9qaQotICAgIGlmIChpc0Vtb2ppKHBsYXRmb3Jt
RGF0YSkpCisgICAgaWYgKHBsYXRmb3JtRGF0YS5pc0Vtb2ppKCkpCiAgICAgICAgIHJldHVybiBm
YWxzZTsKICAgICAvLyAuLi4gb3IgZm9yIGFueSBiaXRtYXAgZm9udHMgaW4gZ2VuZXJhbAogICAg
IGlmIChhZHZhbmNlRm9yQ29sb3JCaXRtYXBGb250KHBsYXRmb3JtRGF0YSwgZ2x5cGgsIGFkdmFu
Y2UpKSB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2Nv
YS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250UGxhdGZvcm1EYXRhQ29jb2EubW0KaW5kZXggNTY4MmY0NGE4MTYxYzU0
YWRlYzY3ZWMyOGYwMjUzMTYxYTk1M2I2Ni4uOWUyYTEyNmZmOWZjYzA3ZmE2YjlhZWFjMDBhOWZj
MDMzNmE2MDBiMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQpAQCAtNTgsOSArNTgs
NyBAQCB2b2lkIEZvbnRQbGF0Zm9ybURhdGE6OnBsYXRmb3JtRGF0YUluaXQoY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYgZikKIHsKICAgICBtX2ZvbnQgPSBmLm1fZm9udDsKIAotI2lmIFBMQVRGT1JN
KElPUykKLSAgICBtX2lzRW1vamkgPSBmLm1faXNFbW9qaTsKLSNlbmRpZgorICAgIHNldElzRW1v
amkoZi5pc0Vtb2ppKCkpOwogICAgIG1fY2dGb250ID0gZi5tX2NnRm9udDsKICAgICBtX2N0Rm9u
dCA9IGYubV9jdEZvbnQ7CiB9CkBAIC02OCw5ICs2Niw3IEBAIHZvaWQgRm9udFBsYXRmb3JtRGF0
YTo6cGxhdGZvcm1EYXRhSW5pdChjb25zdCBGb250UGxhdGZvcm1EYXRhJiBmKQogY29uc3QgRm9u
dFBsYXRmb3JtRGF0YSYgRm9udFBsYXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhQXNzaWduKGNvbnN0
IEZvbnRQbGF0Zm9ybURhdGEmIGYpCiB7CiAgICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OwotI2lm
IFBMQVRGT1JNKElPUykKLSAgICBtX2lzRW1vamkgPSBmLm1faXNFbW9qaTsKLSNlbmRpZgorICAg
IHNldElzRW1vamkoZi5pc0Vtb2ppKCkpOwogICAgIGlmIChtX2ZvbnQgJiYgZi5tX2ZvbnQgJiYg
Q0ZFcXVhbChtX2ZvbnQuZ2V0KCksIGYubV9mb250LmdldCgpKSkKICAgICAgICAgcmV0dXJuICp0
aGlzOwogICAgIG1fZm9udCA9IGYubV9mb250OwpAQCAtODUsMTkgKzgxLDEzIEBAIGJvb2wgRm9u
dFBsYXRmb3JtRGF0YTo6cGxhdGZvcm1Jc0VxdWFsKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG90
aGVyKSBjb25zdAogICAgIGlmIChtX2ZvbnQgfHwgb3RoZXIubV9mb250KSB7CiAjaWYgUExBVEZP
Uk0oSU9TKQogICAgICAgICByZXN1bHQgPSBtX2ZvbnQgJiYgb3RoZXIubV9mb250ICYmIENGRXF1
YWwobV9mb250LmdldCgpLCBvdGhlci5tX2ZvbnQuZ2V0KCkpOwotI2lmICFBU1NFUlRfRElTQUJM
RUQKLSAgICAgICAgaWYgKHJlc3VsdCkKLSAgICAgICAgICAgIEFTU0VSVChtX2lzRW1vamkgPT0g
b3RoZXIubV9pc0Vtb2ppKTsKLSNlbmRpZgogI2Vsc2UKICAgICAgICAgcmVzdWx0ID0gbV9mb250
ID09IG90aGVyLm1fZm9udDsKICNlbmRpZgorICAgICAgICBBU1NFUlQoIXJlc3VsdCB8fCBpc0Vt
b2ppKCkgPT0gb3RoZXIuaXNFbW9qaSgpKTsKICAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgICB9
Ci0jaWYgUExBVEZPUk0oSU9TKSAmJiAhQVNTRVJUX0RJU0FCTEVECi0gICAgaWYgKG1fY2dGb250
ID09IG90aGVyLm1fY2dGb250KQotICAgICAgICBBU1NFUlQobV9pc0Vtb2ppID09IG90aGVyLm1f
aXNFbW9qaSk7Ci0jZW5kaWYKKyAgICBBU1NFUlQobV9jZ0ZvbnQgIT0gb3RoZXIubV9jZ0ZvbnQg
fHwgaXNFbW9qaSgpID09IG90aGVyLmlzRW1vamkoKSk7CiAgICAgcmV0dXJuIG1fY2dGb250ID09
IG90aGVyLm1fY2dGb250OwogfQogCkBAIC0yMDIsMTIgKzE5Miw4IEBAIHN0YXRpYyBDVEZvbnRE
ZXNjcmlwdG9yUmVmIGNhc2NhZGVUb0xhc3RSZXNvcnRBbmREaXNhYmxlU3dhc2hlc0ZvbnREZXNj
cmlwdG9yKCkKIAogQ0dGbG9hdCBGb250UGxhdGZvcm1EYXRhOjpjdEZvbnRTaXplKCkgY29uc3QK
IHsKLSNpZiBQTEFURk9STShJT1MpCi0gICAgLy8gQXBwbGUgQ29sb3IgRW1vamkgc2l6ZSBpcyBh
ZGp1c3RlZCAoYW5kIHRoZW4gcmUtYWRqdXN0ZWQgYnkgQ29yZSBUZXh0KSBhbmQgY2FwcGVkLgot
ICAgIHJldHVybiAhbV9pc0Vtb2ppID8gbV9zaXplIDogbV9zaXplIDw9IDE1ID8gNCAqIChtX3Np
emUgKyAyKSAvIHN0YXRpY19jYXN0PENHRmxvYXQ+KDUpIDogMTY7Ci0jZWxzZQotICAgIHJldHVy
biBtX3NpemU7Ci0jZW5kaWYKKyAgICAvLyBPbiBpT1MsIEFwcGxlIENvbG9yIEVtb2ppIHNpemUg
aXMgYWRqdXN0ZWQgKGFuZCB0aGVuIHJlLWFkanVzdGVkIGJ5IENvcmUgVGV4dCkgYW5kIGNhcHBl
ZC4KKyAgICByZXR1cm4gIWlzRW1vamkoKSA/IG1fc2l6ZSA6IG1fc2l6ZSA8PSAxNSA/IDQgKiAo
bV9zaXplICsgMikgLyBzdGF0aWNfY2FzdDxDR0Zsb2F0Pig1KSA6IDE2OwogfQogCiBDVEZvbnRS
ZWYgRm9udFBsYXRmb3JtRGF0YTo6Y3RGb250KCkgY29uc3QKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0gYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9pb3MvRm9udENhY2hlSU9TLm1tCmluZGV4IDk2NzFiY2Yz
NzIzYWYxZjVmYTczMmM3ZmQyMzQ0ZmJkYmUxZDYwNmUuLjQ5YTQ3OTZlMTI3YmNmZjgwZDIyMzQ0
OTNiYzdhYWJhMmYzYWMzNWUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbQpAQCAtOTQsNyArOTQsNyBAQCBQYXNzUmVmUHRy
PEZvbnQ+IEZvbnRDYWNoZTo6Z2V0U3lzdGVtRm9udEZhbGxiYWNrRm9yQ2hhcmFjdGVycyhjb25z
dCBGb250RGVzY3JpcAogICAgIGJvb2wgc3ludGhldGljT2JsaXF1ZSA9IChvcmlnaW5hbFRyYWl0
cyAmIGtDVEZvbnRUcmFpdEl0YWxpYykgJiYgIShhY3R1YWxUcmFpdHMgJiBrQ1RGb250VHJhaXRJ
dGFsaWMpOwogCiAgICAgRm9udFBsYXRmb3JtRGF0YSBhbHRlcm5hdGVGb250KHN1YnN0aXR1dGVG
b250LmdldCgpLCBwbGF0Zm9ybURhdGEuc2l6ZSgpLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNP
YmxpcXVlLCBwbGF0Zm9ybURhdGEubV9vcmllbnRhdGlvbik7Ci0gICAgYWx0ZXJuYXRlRm9udC5t
X2lzRW1vamkgPSBDVEZvbnRJc0FwcGxlQ29sb3JFbW9qaShzdWJzdGl0dXRlRm9udC5nZXQoKSk7
CisgICAgYWx0ZXJuYXRlRm9udC5zZXRJc0Vtb2ppKENURm9udElzQXBwbGVDb2xvckVtb2ppKHN1
YnN0aXR1dGVGb250LmdldCgpKSk7CiAKICAgICByZXR1cm4gZm9udEZvclBsYXRmb3JtRGF0YShh
bHRlcm5hdGVGb250KTsKIH0KQEAgLTY5OCw3ICs2OTgsNyBAQCBzdGQ6OnVuaXF1ZV9wdHI8Rm9u
dFBsYXRmb3JtRGF0YT4gRm9udENhY2hlOjpjcmVhdGVGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZv
bnREZQogCiAgICAgYXV0byByZXN1bHQgPSBzdGQ6Om1ha2VfdW5pcXVlPEZvbnRQbGF0Zm9ybURh
dGE+KGN0Rm9udC5nZXQoKSwgc2l6ZSwgc3ludGhldGljQm9sZCwgc3ludGhldGljT2JsaXF1ZSwg
Zm9udERlc2NyaXB0aW9uLm9yaWVudGF0aW9uKCksIGZvbnREZXNjcmlwdGlvbi53aWR0aFZhcmlh
bnQoKSk7CiAgICAgaWYgKGlzQXBwbGVDb2xvckVtb2ppKQotICAgICAgICByZXN1bHQtPm1faXNF
bW9qaSA9IHRydWU7CisgICAgICAgIHJlc3VsdC0+c2V0SXNFbW9qaSh0cnVlKTsKICAgICByZXR1
cm4gcmVzdWx0OwogfQogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9tYWMvQ29tcGxleFRleHRDb250cm9sbGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCmluZGV4IGFhYzE5OTQ1
NGY5NzQyZDhiNWM4YzljMWM1ZTllNDUyYTI3ZDFjYjIuLjRhOWU3YTM4MGY2MmVhMmQ1MTlhYjQ0
NjQ2YWI2OGRjODY3YzliZTIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwCkBAIC02MDMs
OSArNjAzLDcgQEAgdm9pZCBDb21wbGV4VGV4dENvbnRyb2xsZXI6OmFkanVzdEdseXBoc0FuZEFk
dmFuY2VzKCkKICAgICAgICAgQ29tcGxleFRleHRSdW4mIGNvbXBsZXhUZXh0UnVuID0gKm1fY29t
cGxleFRleHRSdW5zW3JdOwogICAgICAgICB1bnNpZ25lZCBnbHlwaENvdW50ID0gY29tcGxleFRl
eHRSdW4uZ2x5cGhDb3VudCgpOwogICAgICAgICBjb25zdCBGb250JiBmb250ID0gY29tcGxleFRl
eHRSdW4uZm9udCgpOwotI2lmIFBMQVRGT1JNKElPUykKLSAgICAgICAgYm9vbCBpc0Vtb2ppID0g
Zm9udC5wbGF0Zm9ybURhdGEoKS5tX2lzRW1vamk7Ci0jZW5kaWYKKyAgICAgICAgYm9vbCBpc0Vt
b2ppID0gZm9udC5wbGF0Zm9ybURhdGEoKS5pc0Vtb2ppKCk7CiAKICAgICAgICAgLy8gUmVwcmVz
ZW50IHRoZSBpbml0aWFsIGFkdmFuY2UgZm9yIGEgdGV4dCBydW4gYnkgYWRqdXN0aW5nIHRoZSBh
ZHZhbmNlCiAgICAgICAgIC8vIG9mIHRoZSBsYXN0IGdseXBoIG9mIHRoZSBwcmV2aW91cyB0ZXh0
IHJ1biBpbiB0aGUgZ2x5cGggYnVmZmVyLgpAQCAtNjUzLDEwICs2NTEsOCBAQCB2b2lkIENvbXBs
ZXhUZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzQW5kQWR2YW5jZXMoKQogICAgICAgICAgICAg
Ym9vbCB0cmVhdEFzU3BhY2UgPSBGb250Q2FzY2FkZTo6dHJlYXRBc1NwYWNlKGNoKTsKICAgICAg
ICAgICAgIENHR2x5cGggZ2x5cGggPSB0cmVhdEFzU3BhY2UgPyBmb250LnNwYWNlR2x5cGgoKSA6
IGdseXBoc1tpXTsKICAgICAgICAgICAgIENHU2l6ZSBhZHZhbmNlID0gdHJlYXRBc1NwYWNlID8g
Q0dTaXplTWFrZShzcGFjZVdpZHRoLCBhZHZhbmNlc1tpXS5oZWlnaHQpIDogYWR2YW5jZXNbaV07
Ci0jaWYgUExBVEZPUk0oSU9TKQogICAgICAgICAgICAgaWYgKGlzRW1vamkgJiYgYWR2YW5jZS53
aWR0aCkKICAgICAgICAgICAgICAgICBhZHZhbmNlLndpZHRoID0gZm9udC53aWR0aEZvckdseXBo
KGdseXBoKTsKLSNlbmRpZgogCiAgICAgICAgICAgICBpZiAoY2ggPT0gJ1x0JyAmJiBtX3J1bi5h
bGxvd1RhYnMoKSkKICAgICAgICAgICAgICAgICBhZHZhbmNlLndpZHRoID0gbV9mb250LnRhYldp
ZHRoKGZvbnQsIG1fcnVuLnRhYlNpemUoKSwgbV9ydW4ueFBvcygpICsgbV90b3RhbFdpZHRoICsg
d2lkdGhTaW5jZUxhc3RDb21taXQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>254273</attachid>
            <date>2015-06-04 10:46:41 -0700</date>
            <delta_ts>2015-06-04 10:59:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145644-20150604104620.patch</filename>
            <type>text/plain</type>
            <size>15745</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTg1MjAwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZjljYzA4MmY3M2IyYWM0
ZjRkMzQ5NWQxZDE4NmU2NmFhOTg0ZWJmZS4uODhlZTBkZDdjMzIxN2ZhMmNjYTJmZTEwMThkMTA3
OTk2NmM1MjlhNyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDQzIEBACiAyMDE1LTA2LTA0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CiAKKyAgICAgICAgW0NvY29hXSBD
bGVhbiB1cCBtX2lzRW1vamkgaW4gRm9udFBsYXRmb3JtRGF0YQorICAgICAgICBodHRwczovL2J1
Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTQ1NjQ0CisKKyAgICAgICAgUmV2aWV3ZWQg
YnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgbV9pc0Vtb2ppIHVzZWQgdG8gYmUgYSBwdWJs
aWMgbWVtYmVyIHZhcmlhYmxlIG9ubHkgZGVmaW5lZCBvbiBpT1MuIFRoaXMKKyAgICAgICAgbWVh
bnMgdGhhdCwgd2hlbmV2ZXIgaXQgd2FzIGNvbnN1bHRlZCwgdGhlIHNpdGVzIHdlcmUgc3Vycm91
bmRlZCBieQorICAgICAgICBQTEFURk9STShJT1MpIGd1YXJkcy4gQSBjbGVhbmVyIGRlc2lnbiBp
cyB0byB1c2UgYSBnZXR0ZXIgYW5kIHNldHRlciwKKyAgICAgICAgd2hpY2ggb24gbm9uLWlPUyBw
bGF0Zm9ybXMsIGFsd2F5cyByZXR1cm4gZmFsc2UgLyBkbyBub3RoaW5nLiBUaGVuLCB0aGUKKyAg
ICAgICAgdXNlIHNpdGVzIGNhbiBqdXN0IHVzZSB0aGVzZSBmdW5jdGlvbnMgd2l0aG91dCBoYXZp
bmcgdWdseSBndWFyZHMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzIGJlY2F1c2UgdGhlcmUgaXMg
bm8gYmVoYXZpb3IgY2hhbmdlLgorCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBs
YXRmb3JtRGF0YS5oOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6aGFzaCk6
IFNpbXBsaWZ5IGlzRW1vamkgdXNlIHNpdGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZv
cm1EYXRhOjppc0Vtb2ppKTogR2V0dGVyLiBSZXR1cm5zIGZhbHNlIG9uIE1hYy4KKyAgICAgICAg
KFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnNldElzRW1vamkpOiBTZXR0ZXIuIERvZXMgbm90
aGluZyBvbiBNYWMuCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENhc2Nh
ZGVDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OnBvaW50QWRqdXN0ZWRGb3JFbW9qaSk6IFNp
bXBsaWZ5IGlzRW1vamkgdXNlIHNpdGUuCisgICAgICAgIChXZWJDb3JlOjpGb250Q2FzY2FkZTo6
ZHJhd0dseXBocyk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRDb2NvYS5tbToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnBsYXRmb3JtSW5pdCk6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6Y2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRlcik6IERpdHRv
LgorICAgICAgICAoV2ViQ29yZTo6aXNFbW9qaSk6IERlbGV0ZWQuCisgICAgICAgICogcGxhdGZv
cm0vZ3JhcGhpY3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tOgorICAgICAgICAoV2Vi
Q29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhSW5pdCk6IFNpbXBsaWZ5IGlzRW1v
amkgdXNlCisgICAgICAgIHNpdGUuCisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRh
OjpwbGF0Zm9ybURhdGFBc3NpZ24pOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0
Zm9ybURhdGE6OnBsYXRmb3JtSXNFcXVhbCk6IERpdHRvLgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dFBsYXRmb3JtRGF0YTo6Y3RGb250U2l6ZSk6IERpdHRvLgorICAgICAgICAqIHBsYXRmb3JtL2dy
YXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW06CisgICAgICAgIChXZWJDb3JlOjpGb250Q2FjaGU6
OmdldFN5c3RlbUZvbnRGYWxsYmFja0ZvckNoYXJhY3RlcnMpOiBEaXR0by4KKyAgICAgICAgKFdl
YkNvcmU6OkZvbnRDYWNoZTo6Y3JlYXRlRm9udFBsYXRmb3JtRGF0YSk6IERpdHRvLgorICAgICAg
ICAqIHBsYXRmb3JtL2dyYXBoaWNzL21hYy9Db21wbGV4VGV4dENvbnRyb2xsZXIuY3BwOgorICAg
ICAgICAoV2ViQ29yZTo6Q29tcGxleFRleHRDb250cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZh
bmNlcyk6IERpdHRvLgorCisyMDE1LTA2LTA0ICBNeWxlcyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVs
ZEBhcHBsZS5jb20+CisKICAgICAgICAgW0NvY29hXSBDbGVhbiB1cCBtX2ZvbnQgaW5zaWRlIEZv
bnRQbGF0Zm9ybURhdGEKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE0NTYzNAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250UGxhdGZvcm1EYXRhLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9Gb250UGxhdGZvcm1EYXRhLmgKaW5kZXggOWRiYjRkYTY1MDZhYjJlYTY5NDFkNjM1ZWYxMWI0
YTlmODMxMTFjMi4uY2UxYTlmZDJiNDdhZDRmYTIwZWJkNDExN2EzNDhhZmM3YjczZjNhOSAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udFBsYXRmb3JtRGF0
YS5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnRQbGF0Zm9ybURh
dGEuaApAQCAtMTQ5LDEzICsxNDksMTQgQEAgcHVibGljOgogI2lmIFBMQVRGT1JNKFdJTikgJiYg
IVVTRShDQUlSTykKICAgICAgICAgcmV0dXJuIG1fZm9udCA/IG1fZm9udC0+aGFzaCgpIDogMDsK
ICNlbGlmIE9TKERBUldJTikKKyAgICAgICAgQVNTRVJUKG1fZm9udCB8fCAhbV9jZ0ZvbnQgfHwg
aXNFbW9qaSgpKTsKKyAgICAgICAgdWludHB0cl90IGZsYWdzID0gc3RhdGljX2Nhc3Q8dWludHB0
cl90PihtX2lzSGFzaFRhYmxlRGVsZXRlZFZhbHVlIDw8IDQgfCBpc0Vtb2ppKCkgPDwgMyB8IG1f
b3JpZW50YXRpb24gPDwgMiB8IG1fc3ludGhldGljQm9sZCA8PCAxIHwgbV9zeW50aGV0aWNPYmxp
cXVlKTsKICNpZiBVU0UoQVBQS0lUKQotICAgICAgICBBU1NFUlQobV9mb250IHx8ICFtX2NnRm9u
dCk7Ci0gICAgICAgIHVpbnRwdHJfdCBoYXNoQ29kZXNbM10gPSB7IHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90Pihjb25zdF9jYXN0PF9fQ1RGb250Kj4obV9mb250LmdldCgpKSksIG1fd2lkdGhW
YXJpYW50LCBzdGF0aWNfY2FzdDx1aW50cHRyX3Q+KG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUg
PDwgMyB8IG1fb3JpZW50YXRpb24gPDwgMiB8IG1fc3ludGhldGljQm9sZCA8PCAxIHwgbV9zeW50
aGV0aWNPYmxpcXVlKSB9OworICAgICAgICB1aW50cHRyX3QgZm9udEhhc2ggPSByZWludGVycHJl
dF9jYXN0PHVpbnRwdHJfdD4oY29uc3RfY2FzdDxfX0NURm9udCo+KG1fZm9udC5nZXQoKSkpOwog
I2Vsc2UKLSAgICAgICAgQVNTRVJUKG1fZm9udCB8fCAhbV9jZ0ZvbnQgfHwgbV9pc0Vtb2ppKTsK
LSAgICAgICAgdWludHB0cl90IGhhc2hDb2Rlc1szXSA9IHsgc3RhdGljX2Nhc3Q8dWludHB0cl90
PihDRkhhc2gobV9mb250LmdldCgpKSksIG1fd2lkdGhWYXJpYW50LCBzdGF0aWNfY2FzdDx1aW50
cHRyX3Q+KG1faXNIYXNoVGFibGVEZWxldGVkVmFsdWUgPDwgNCB8IG1faXNFbW9qaSA8PCAzIHwg
bV9vcmllbnRhdGlvbiA8PCAyIHwgbV9zeW50aGV0aWNCb2xkIDw8IDEgfCBtX3N5bnRoZXRpY09i
bGlxdWUpIH07CisgICAgICAgIHVpbnRwdHJfdCBmb250SGFzaCA9IHJlaW50ZXJwcmV0X2Nhc3Q8
dWludHB0cl90PihDRkhhc2gobV9mb250LmdldCgpKSk7CiAjZW5kaWYKKyAgICAgICAgdWludHB0
cl90IGhhc2hDb2Rlc1szXSA9IHsgZm9udEhhc2gsIG1fd2lkdGhWYXJpYW50LCBmbGFncyB9Owog
ICAgICAgICByZXR1cm4gU3RyaW5nSGFzaGVyOjpoYXNoTWVtb3J5PHNpemVvZihoYXNoQ29kZXMp
PihoYXNoQ29kZXMpOwogI2VsaWYgVVNFKENBSVJPKQogICAgICAgICByZXR1cm4gUHRySGFzaDxj
YWlyb19zY2FsZWRfZm9udF90Kj46Omhhc2gobV9zY2FsZWRGb250KTsKQEAgLTE5MCw2ICsxOTEs
MTQgQEAgcHVibGljOgogICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogI2VuZGlmCiAK
KyNpZiBQTEFURk9STShJT1MpCisgICAgYm9vbCBpc0Vtb2ppKCkgY29uc3QgeyByZXR1cm4gbV9p
c0Vtb2ppOyB9CisgICAgdm9pZCBzZXRJc0Vtb2ppKGJvb2wgaXNFbW9qaSkgeyBtX2lzRW1vamkg
PSBpc0Vtb2ppOyB9CisjZWxpZiBQTEFURk9STShNQUMpCisgICAgYm9vbCBpc0Vtb2ppKCkgY29u
c3QgeyByZXR1cm4gZmFsc2U7IH0KKyAgICB2b2lkIHNldElzRW1vamkoYm9vbCkgeyB9CisjZW5k
aWYKKwogcHJpdmF0ZToKICAgICBib29sIHBsYXRmb3JtSXNFcXVhbChjb25zdCBGb250UGxhdGZv
cm1EYXRhJikgY29uc3Q7CiAgICAgdm9pZCBwbGF0Zm9ybURhdGFJbml0KGNvbnN0IEZvbnRQbGF0
Zm9ybURhdGEmKTsKQEAgLTIwNSw5ICsyMTQsNiBAQCBwdWJsaWM6CiAgICAgYm9vbCBtX3N5bnRo
ZXRpY0JvbGQgeyBmYWxzZSB9OwogICAgIGJvb2wgbV9zeW50aGV0aWNPYmxpcXVlIHsgZmFsc2Ug
fTsKICAgICBGb250T3JpZW50YXRpb24gbV9vcmllbnRhdGlvbiB7IEhvcml6b250YWwgfTsKLSNp
ZiBQTEFURk9STShJT1MpCi0gICAgYm9vbCBtX2lzRW1vamkgeyBmYWxzZSB9OwotI2VuZGlmCiAg
ICAgZmxvYXQgbV9zaXplIHsgMCB9OwogICAgIEZvbnRXaWR0aFZhcmlhbnQgbV93aWR0aFZhcmlh
bnQgeyBSZWd1bGFyV2lkdGggfTsKIApAQCAtMjMwLDYgKzIzNiw5IEBAIHByaXZhdGU6CiAgICAg
Ym9vbCBtX2lzQ29sb3JCaXRtYXBGb250IHsgZmFsc2UgfTsKICAgICBib29sIG1faXNDb21wb3Np
dGVGb250UmVmZXJlbmNlIHsgZmFsc2UgfTsKICAgICBib29sIG1faXNIYXNoVGFibGVEZWxldGVk
VmFsdWUgeyBmYWxzZSB9OworI2lmIFBMQVRGT1JNKElPUykKKyAgICBib29sIG1faXNFbW9qaSB7
IGZhbHNlIH07CisjZW5kaWYKIAogI2lmIFBMQVRGT1JNKFdJTikKICAgICBib29sIG1fdXNlR0RJ
IHsgZmFsc2UgfTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L2NvY29hL0ZvbnRDYXNjYWRlQ29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9jb2NvYS9Gb250Q2FzY2FkZUNvY29hLm1tCmluZGV4IDU1YWQ3OTg0NWNkYzhlMmNlNmE4
NzAwNGNlNzA3Y2JjZDQ5ZDUzYjcuLmI2MDJkMjA2ZTFjM2Y4OTNhNjliODc1MTMyZTU3YjRhMjAw
NmRkNGEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRDYXNjYWRlQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udENhc2NhZGVDb2NvYS5tbQpAQCAtMjQ2LDEwICsyNDYsMTkgQEAgc3RhdGlj
IENHU2l6ZSBkaWxhdGlvblNpemVGb3JUZXh0Q29sb3IoY29uc3QgQ29sb3ImIGNvbG9yKQogfQog
I2VuZGlmCiAKLXN0YXRpYyBGbG9hdFBvaW50IHBvaW50QWRqdXN0ZWRGb3JFbW9qaShjb25zdCBG
b250UGxhdGZvcm1EYXRhJiBwbGF0Zm9ybURhdGEsIEZsb2F0UG9pbnQgcG9pbnQpCitzdGF0aWMg
aW5saW5lIGJvb2wgaXNPbk9yQWZ0ZXJJT1M2KCkKIHsKICNpZiBQTEFURk9STShJT1MpCi0gICAg
aWYgKCFwbGF0Zm9ybURhdGEubV9pc0Vtb2ppKQorICAgIHJldHVybiBpb3NFeGVjdXRhYmxlV2Fz
TGlua2VkT25PckFmdGVyVmVyc2lvbih3a0lPU1N5c3RlbVZlcnNpb25fNl8wKTsKKyNlbHNlCisg
ICAgQVNTRVJUX05PVF9SRUFDSEVEKCk7CisgICAgcmV0dXJuIGZhbHNlOworI2VuZGlmCit9CisK
K3N0YXRpYyBGbG9hdFBvaW50IHBvaW50QWRqdXN0ZWRGb3JFbW9qaShjb25zdCBGb250UGxhdGZv
cm1EYXRhJiBwbGF0Zm9ybURhdGEsIEZsb2F0UG9pbnQgcG9pbnQpCit7CisgICAgaWYgKCFwbGF0
Zm9ybURhdGEuaXNFbW9qaSgpKQogICAgICAgICByZXR1cm4gcG9pbnQ7CiAKICAgICAvLyBNaW1p
YyB0aGUgcG9zaXRpb2luaW5nIG9mIG5vbi1iaXRtYXAgZ2x5cGhzLCB3aGljaCBhcmUgbm90IHN1
YnBpeGVsLXBvc2l0aW9uZWQuCkBAIC0yNjYsMTkgKzI3NSwxNiBAQCBzdGF0aWMgRmxvYXRQb2lu
dCBwb2ludEFkanVzdGVkRm9yRW1vamkoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgcGxhdGZvcm1E
YXRhLCBGbAogICAgIGZsb2F0IHkgPSBwb2ludC55KCk7CiAgICAgaWYgKGZvbnRTaXplIDw9IDE1
KSB7CiAgICAgICAgIC8vIFVuZG8gQ29yZSBUZXh0J3MgeSBhZGp1c3RtZW50LgotICAgICAgICBz
dGF0aWMgZmxvYXQgeUFkanVzdG1lbnRGYWN0b3IgPSBpb3NFeGVjdXRhYmxlV2FzTGlua2VkT25P
ckFmdGVyVmVyc2lvbih3a0lPU1N5c3RlbVZlcnNpb25fNl8wKSA/IC4xOSA6IC4xOworICAgICAg
ICBzdGF0aWMgZmxvYXQgeUFkanVzdG1lbnRGYWN0b3IgPSBpc09uT3JBZnRlcklPUzYoKSA/IC4x
OSA6IC4xOwogICAgICAgICBwb2ludC5zZXRZKGZsb29yZih5IC0geUFkanVzdG1lbnRGYWN0b3Ig
KiAoZm9udFNpemUgKyAyKSArIDIpKTsKICAgICB9IGVsc2UgewogICAgICAgICBpZiAoZm9udFNp
emUgPCAyNikKICAgICAgICAgICAgIHkgLT0gLjM1ZiAqIGZvbnRTaXplIC0gMTA7CiAKICAgICAg
ICAgLy8gVW5kbyBDb3JlIFRleHQncyB5IGFkanVzdG1lbnQuCi0gICAgICAgIHN0YXRpYyBmbG9h
dCB5QWRqdXN0bWVudCA9IGlvc0V4ZWN1dGFibGVXYXNMaW5rZWRPbk9yQWZ0ZXJWZXJzaW9uKHdr
SU9TU3lzdGVtVmVyc2lvbl82XzApID8gMy44IDogMjsKKyAgICAgICAgc3RhdGljIGZsb2F0IHlB
ZGp1c3RtZW50ID0gaXNPbk9yQWZ0ZXJJT1M2KCkgPyAzLjggOiAyOwogICAgICAgICBwb2ludC5z
ZXRZKGZsb29yZih5IC0geUFkanVzdG1lbnQpKTsKICAgICB9Ci0jZWxzZQotICAgIFVOVVNFRF9Q
QVJBTShwbGF0Zm9ybURhdGEpOwotI2VuZGlmCiAgICAgcmV0dXJuIHBvaW50OwogfQogCkBAIC00
MTYsMTEgKzQyMiw3IEBAIHZvaWQgRm9udENhc2NhZGU6OmRyYXdHbHlwaHMoR3JhcGhpY3NDb250
ZXh0KiBjb250ZXh0LCBjb25zdCBGb250KiBmb250LCBjb25zdCBHCiAgICAgICAgIC8vIElmIHNo
YWRvd3MgYXJlIGlnbm9yaW5nIHRyYW5zZm9ybXMsIHRoZW4gd2UgaGF2ZW4ndCBhcHBsaWVkIHRo
ZSBZIGNvb3JkaW5hdGUgZmxpcCB5ZXQsIHNvIGRvd24gaXMgbmVnYXRpdmUuCiAgICAgICAgIGZs
b2F0IHNoYWRvd1RleHRZID0gcG9pbnQueSgpICsgc2hhZG93T2Zmc2V0LmhlaWdodCgpICogKGNv
bnRleHQtPnNoYWRvd3NJZ25vcmVUcmFuc2Zvcm1zKCkgPyAtMSA6IDEpOwogICAgICAgICBzaG93
R2x5cGhzV2l0aEFkdmFuY2VzKEZsb2F0UG9pbnQoc2hhZG93VGV4dFgsIHNoYWRvd1RleHRZKSwg
Zm9udCwgY2dDb250ZXh0LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIHN0YXRpY19jYXN0PGNv
bnN0IENHU2l6ZSo+KGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pKSwgbnVtR2x5cGhzKTsKLSNp
ZiAhUExBVEZPUk0oSU9TKQotICAgICAgICBpZiAoc3ludGhldGljQm9sZE9mZnNldCkKLSNlbHNl
Ci0gICAgICAgIGlmIChzeW50aGV0aWNCb2xkT2Zmc2V0ICYmICFwbGF0Zm9ybURhdGEubV9pc0Vt
b2ppKQotI2VuZGlmCisgICAgICAgIGlmIChzeW50aGV0aWNCb2xkT2Zmc2V0ICYmICFwbGF0Zm9y
bURhdGEuaXNFbW9qaSgpKQogICAgICAgICAgICAgc2hvd0dseXBoc1dpdGhBZHZhbmNlcyhGbG9h
dFBvaW50KHNoYWRvd1RleHRYICsgc3ludGhldGljQm9sZE9mZnNldCwgc2hhZG93VGV4dFkpLCBm
b250LCBjZ0NvbnRleHQsIGdseXBoQnVmZmVyLmdseXBocyhmcm9tKSwgc3RhdGljX2Nhc3Q8Y29u
c3QgQ0dTaXplKj4oZ2x5cGhCdWZmZXIuYWR2YW5jZXMoZnJvbSkpLCBudW1HbHlwaHMpOwogICAg
ICAgICBjb250ZXh0LT5zZXRGaWxsQ29sb3IoZmlsbENvbG9yLCBmaWxsQ29sb3JTcGFjZSk7CiAg
ICAgfQpAQCAtNDI5LDExICs0MzEsNyBAQCB2b2lkIEZvbnRDYXNjYWRlOjpkcmF3R2x5cGhzKEdy
YXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgRm9udCogZm9udCwgY29uc3QgRwogICAgICAg
ICBzaG93TGV0dGVycHJlc3NlZEdseXBoc1dpdGhBZHZhbmNlcyhwb2ludCwgZm9udCwgY2dDb250
ZXh0LCBnbHlwaEJ1ZmZlci5nbHlwaHMoZnJvbSksIHN0YXRpY19jYXN0PGNvbnN0IENHU2l6ZSo+
KGdseXBoQnVmZmVyLmFkdmFuY2VzKGZyb20pKSwgbnVtR2x5cGhzKTsKICAgICBlbHNlCiAgICAg
ICAgIHNob3dHbHlwaHNXaXRoQWR2YW5jZXMocG9pbnQsIGZvbnQsIGNnQ29udGV4dCwgZ2x5cGhC
dWZmZXIuZ2x5cGhzKGZyb20pLCBzdGF0aWNfY2FzdDxjb25zdCBDR1NpemUqPihnbHlwaEJ1ZmZl
ci5hZHZhbmNlcyhmcm9tKSksIG51bUdseXBocyk7Ci0jaWYgIVBMQVRGT1JNKElPUykKLSAgICBp
ZiAoc3ludGhldGljQm9sZE9mZnNldCkKLSNlbHNlCi0gICAgaWYgKHN5bnRoZXRpY0JvbGRPZmZz
ZXQgJiYgIXBsYXRmb3JtRGF0YS5tX2lzRW1vamkpCi0jZW5kaWYKKyAgICBpZiAoc3ludGhldGlj
Qm9sZE9mZnNldCAmJiAhcGxhdGZvcm1EYXRhLmlzRW1vamkoKSkKICAgICAgICAgc2hvd0dseXBo
c1dpdGhBZHZhbmNlcyhGbG9hdFBvaW50KHBvaW50LngoKSArIHN5bnRoZXRpY0JvbGRPZmZzZXQs
IHBvaW50LnkoKSksIGZvbnQsIGNnQ29udGV4dCwgZ2x5cGhCdWZmZXIuZ2x5cGhzKGZyb20pLCBz
dGF0aWNfY2FzdDxjb25zdCBDR1NpemUqPihnbHlwaEJ1ZmZlci5hZHZhbmNlcyhmcm9tKSksIG51
bUdseXBocyk7CiAKICAgICBpZiAoaGFzU2ltcGxlU2hhZG93KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tIGIvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9udENvY29hLm1tCmluZGV4IDgxMGQ5Mzdk
ZWI3NGVhZGNhOTlhN2I1Zjc1YjE3YzNjMmYyMzdmMDAuLjg4ZjlhY2ZiN2MyZGJjMjdlMTcwYjFl
ZDM2ODU0YTdlODQ2ODJmNTggMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KQEAgLTI2Nyw3ICsyNjcsNyBAQCB2b2lkIEZvbnQ6
OnBsYXRmb3JtSW5pdCgpCiAgICAgaWYgKHBsYXRmb3JtRGF0YSgpLm9yaWVudGF0aW9uKCkgPT0g
VmVydGljYWwgJiYgIWlzVGV4dE9yaWVudGF0aW9uRmFsbGJhY2soKSkKICAgICAgICAgbV9oYXNW
ZXJ0aWNhbEdseXBocyA9IGZvbnRIYXNWZXJ0aWNhbEdseXBocyhtX3BsYXRmb3JtRGF0YS5jdEZv
bnQoKSk7CiAKLSAgICBpZiAobV9wbGF0Zm9ybURhdGEubV9pc0Vtb2ppKSB7CisgICAgaWYgKG1f
cGxhdGZvcm1EYXRhLmlzRW1vamkoKSkgewogICAgICAgICBpbnQgdGhpcmRPZlNpemUgPSBtX3Bs
YXRmb3JtRGF0YS5zaXplKCkgLyAzOwogICAgICAgICBtX2ZvbnRNZXRyaWNzLnNldEFzY2VudCh0
aGlyZE9mU2l6ZSk7CiAgICAgICAgIG1fZm9udE1ldHJpY3Muc2V0RGVzY2VudCh0aGlyZE9mU2l6
ZSk7CkBAIC00NTUsMTYgKzQ1NSw2IEBAIHN0YXRpYyBpbmxpbmUgYm9vbCBhZHZhbmNlRm9yQ29s
b3JCaXRtYXBGb250KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0CiAjZW5kaWYK
IH0KIAotc3RhdGljIGlubGluZSBib29sIGlzRW1vamkoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYg
cGxhdGZvcm1EYXRhKQotewotI2lmIFBMQVRGT1JNKElPUykKLSAgICByZXR1cm4gcGxhdGZvcm1E
YXRhLm1faXNFbW9qaTsKLSNlbHNlCi0gICAgVU5VU0VEX1BBUkFNKHBsYXRmb3JtRGF0YSk7Ci0g
ICAgcmV0dXJuIGZhbHNlOwotI2VuZGlmCi19Ci0KIHN0YXRpYyBpbmxpbmUgYm9vbCBjYW5Vc2VG
YXN0R2x5cGhBZHZhbmNlR2V0dGVyKGNvbnN0IEZvbnQmIGZvbnQsIEdseXBoIGdseXBoLCBDR1Np
emUmIGFkdmFuY2UsIGJvb2wmIHBvcHVsYXRlZEFkdmFuY2UpCiB7CiAgICAgY29uc3QgRm9udFBs
YXRmb3JtRGF0YSYgcGxhdGZvcm1EYXRhID0gZm9udC5wbGF0Zm9ybURhdGEoKTsKQEAgLTQ3Miw3
ICs0NjIsNyBAQCBzdGF0aWMgaW5saW5lIGJvb2wgY2FuVXNlRmFzdEdseXBoQWR2YW5jZUdldHRl
cihjb25zdCBGb250JiBmb250LCBHbHlwaCBnbHlwaCwgQwogICAgIGlmIChmb250Lmhhc0N1c3Rv
bVRyYWNraW5nKCkpCiAgICAgICAgIHJldHVybiBmYWxzZTsKICAgICAvLyBGYXN0IGdldHRlciBk
b2Vzbid0IHdvcmsgZm9yIGVtb2ppCi0gICAgaWYgKGlzRW1vamkocGxhdGZvcm1EYXRhKSkKKyAg
ICBpZiAocGxhdGZvcm1EYXRhLmlzRW1vamkoKSkKICAgICAgICAgcmV0dXJuIGZhbHNlOwogICAg
IC8vIC4uLiBvciBmb3IgYW55IGJpdG1hcCBmb250cyBpbiBnZW5lcmFsCiAgICAgaWYgKGFkdmFu
Y2VGb3JDb2xvckJpdG1hcEZvbnQocGxhdGZvcm1EYXRhLCBnbHlwaCwgYWR2YW5jZSkpIHsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRQbGF0
Zm9ybURhdGFDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29h
L0ZvbnRQbGF0Zm9ybURhdGFDb2NvYS5tbQppbmRleCA1NjgyZjQ0YTgxNjFjNTRhZGVjNjdlYzI4
ZjAyNTMxNjFhOTUzYjY2Li45ZTJhMTI2ZmY5ZmNjMDdmYTZiOWFlYWMwMGE5ZmMwMzM2YTYwMGIx
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9jb2NvYS9Gb250
UGxhdGZvcm1EYXRhQ29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvY29jb2EvRm9udFBsYXRmb3JtRGF0YUNvY29hLm1tCkBAIC01OCw5ICs1OCw3IEBAIHZvaWQg
Rm9udFBsYXRmb3JtRGF0YTo6cGxhdGZvcm1EYXRhSW5pdChjb25zdCBGb250UGxhdGZvcm1EYXRh
JiBmKQogewogICAgIG1fZm9udCA9IGYubV9mb250OwogCi0jaWYgUExBVEZPUk0oSU9TKQotICAg
IG1faXNFbW9qaSA9IGYubV9pc0Vtb2ppOwotI2VuZGlmCisgICAgc2V0SXNFbW9qaShmLmlzRW1v
amkoKSk7CiAgICAgbV9jZ0ZvbnQgPSBmLm1fY2dGb250OwogICAgIG1fY3RGb250ID0gZi5tX2N0
Rm9udDsKIH0KQEAgLTY4LDkgKzY2LDcgQEAgdm9pZCBGb250UGxhdGZvcm1EYXRhOjpwbGF0Zm9y
bURhdGFJbml0KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIGYpCiBjb25zdCBGb250UGxhdGZvcm1E
YXRhJiBGb250UGxhdGZvcm1EYXRhOjpwbGF0Zm9ybURhdGFBc3NpZ24oY29uc3QgRm9udFBsYXRm
b3JtRGF0YSYgZikKIHsKICAgICBtX2NnRm9udCA9IGYubV9jZ0ZvbnQ7Ci0jaWYgUExBVEZPUk0o
SU9TKQotICAgIG1faXNFbW9qaSA9IGYubV9pc0Vtb2ppOwotI2VuZGlmCisgICAgc2V0SXNFbW9q
aShmLmlzRW1vamkoKSk7CiAgICAgaWYgKG1fZm9udCAmJiBmLm1fZm9udCAmJiBDRkVxdWFsKG1f
Zm9udC5nZXQoKSwgZi5tX2ZvbnQuZ2V0KCkpKQogICAgICAgICByZXR1cm4gKnRoaXM7CiAgICAg
bV9mb250ID0gZi5tX2ZvbnQ7CkBAIC04NSwxOSArODEsMTMgQEAgYm9vbCBGb250UGxhdGZvcm1E
YXRhOjpwbGF0Zm9ybUlzRXF1YWwoY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZXIpIGNvbnN0
CiAgICAgaWYgKG1fZm9udCB8fCBvdGhlci5tX2ZvbnQpIHsKICNpZiBQTEFURk9STShJT1MpCiAg
ICAgICAgIHJlc3VsdCA9IG1fZm9udCAmJiBvdGhlci5tX2ZvbnQgJiYgQ0ZFcXVhbChtX2ZvbnQu
Z2V0KCksIG90aGVyLm1fZm9udC5nZXQoKSk7Ci0jaWYgIUFTU0VSVF9ESVNBQkxFRAotICAgICAg
ICBpZiAocmVzdWx0KQotICAgICAgICAgICAgQVNTRVJUKG1faXNFbW9qaSA9PSBvdGhlci5tX2lz
RW1vamkpOwotI2VuZGlmCiAjZWxzZQogICAgICAgICByZXN1bHQgPSBtX2ZvbnQgPT0gb3RoZXIu
bV9mb250OwogI2VuZGlmCisgICAgICAgIEFTU0VSVCghcmVzdWx0IHx8IGlzRW1vamkoKSA9PSBv
dGhlci5pc0Vtb2ppKCkpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0KLSNpZiBQTEFU
Rk9STShJT1MpICYmICFBU1NFUlRfRElTQUJMRUQKLSAgICBpZiAobV9jZ0ZvbnQgPT0gb3RoZXIu
bV9jZ0ZvbnQpCi0gICAgICAgIEFTU0VSVChtX2lzRW1vamkgPT0gb3RoZXIubV9pc0Vtb2ppKTsK
LSNlbmRpZgorICAgIEFTU0VSVChtX2NnRm9udCAhPSBvdGhlci5tX2NnRm9udCB8fCBpc0Vtb2pp
KCkgPT0gb3RoZXIuaXNFbW9qaSgpKTsKICAgICByZXR1cm4gbV9jZ0ZvbnQgPT0gb3RoZXIubV9j
Z0ZvbnQ7CiB9CiAKQEAgLTIwMiwxMiArMTkyLDggQEAgc3RhdGljIENURm9udERlc2NyaXB0b3JS
ZWYgY2FzY2FkZVRvTGFzdFJlc29ydEFuZERpc2FibGVTd2FzaGVzRm9udERlc2NyaXB0b3IoKQog
CiBDR0Zsb2F0IEZvbnRQbGF0Zm9ybURhdGE6OmN0Rm9udFNpemUoKSBjb25zdAogewotI2lmIFBM
QVRGT1JNKElPUykKLSAgICAvLyBBcHBsZSBDb2xvciBFbW9qaSBzaXplIGlzIGFkanVzdGVkIChh
bmQgdGhlbiByZS1hZGp1c3RlZCBieSBDb3JlIFRleHQpIGFuZCBjYXBwZWQuCi0gICAgcmV0dXJu
ICFtX2lzRW1vamkgPyBtX3NpemUgOiBtX3NpemUgPD0gMTUgPyA0ICogKG1fc2l6ZSArIDIpIC8g
c3RhdGljX2Nhc3Q8Q0dGbG9hdD4oNSkgOiAxNjsKLSNlbHNlCi0gICAgcmV0dXJuIG1fc2l6ZTsK
LSNlbmRpZgorICAgIC8vIE9uIGlPUywgQXBwbGUgQ29sb3IgRW1vamkgc2l6ZSBpcyBhZGp1c3Rl
ZCAoYW5kIHRoZW4gcmUtYWRqdXN0ZWQgYnkgQ29yZSBUZXh0KSBhbmQgY2FwcGVkLgorICAgIHJl
dHVybiAhaXNFbW9qaSgpID8gbV9zaXplIDogbV9zaXplIDw9IDE1ID8gNCAqIChtX3NpemUgKyAy
KSAvIHN0YXRpY19jYXN0PENHRmxvYXQ+KDUpIDogMTY7CiB9CiAKIENURm9udFJlZiBGb250UGxh
dGZvcm1EYXRhOjpjdEZvbnQoKSBjb25zdApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaW9zL0ZvbnRDYWNoZUlPUy5tbSBiL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL2lvcy9Gb250Q2FjaGVJT1MubW0KaW5kZXggOTY3MWJjZjM3MjNhZjFmNWZh
NzMyYzdmZDIzNDRmYmRiZTFkNjA2ZS4uNDlhNDc5NmUxMjdiY2ZmODBkMjIzNDQ5M2JjN2FhYmEy
ZjNhYzM1ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvaW9z
L0ZvbnRDYWNoZUlPUy5tbQorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9p
b3MvRm9udENhY2hlSU9TLm1tCkBAIC05NCw3ICs5NCw3IEBAIFBhc3NSZWZQdHI8Rm9udD4gRm9u
dENhY2hlOjpnZXRTeXN0ZW1Gb250RmFsbGJhY2tGb3JDaGFyYWN0ZXJzKGNvbnN0IEZvbnREZXNj
cmlwCiAgICAgYm9vbCBzeW50aGV0aWNPYmxpcXVlID0gKG9yaWdpbmFsVHJhaXRzICYga0NURm9u
dFRyYWl0SXRhbGljKSAmJiAhKGFjdHVhbFRyYWl0cyAmIGtDVEZvbnRUcmFpdEl0YWxpYyk7CiAK
ICAgICBGb250UGxhdGZvcm1EYXRhIGFsdGVybmF0ZUZvbnQoc3Vic3RpdHV0ZUZvbnQuZ2V0KCks
IHBsYXRmb3JtRGF0YS5zaXplKCksIHN5bnRoZXRpY0JvbGQsIHN5bnRoZXRpY09ibGlxdWUsIHBs
YXRmb3JtRGF0YS5tX29yaWVudGF0aW9uKTsKLSAgICBhbHRlcm5hdGVGb250Lm1faXNFbW9qaSA9
IENURm9udElzQXBwbGVDb2xvckVtb2ppKHN1YnN0aXR1dGVGb250LmdldCgpKTsKKyAgICBhbHRl
cm5hdGVGb250LnNldElzRW1vamkoQ1RGb250SXNBcHBsZUNvbG9yRW1vamkoc3Vic3RpdHV0ZUZv
bnQuZ2V0KCkpKTsKIAogICAgIHJldHVybiBmb250Rm9yUGxhdGZvcm1EYXRhKGFsdGVybmF0ZUZv
bnQpOwogfQpAQCAtNjk4LDcgKzY5OCw3IEBAIHN0ZDo6dW5pcXVlX3B0cjxGb250UGxhdGZvcm1E
YXRhPiBGb250Q2FjaGU6OmNyZWF0ZUZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlCiAKICAg
ICBhdXRvIHJlc3VsdCA9IHN0ZDo6bWFrZV91bmlxdWU8Rm9udFBsYXRmb3JtRGF0YT4oY3RGb250
LmdldCgpLCBzaXplLCBzeW50aGV0aWNCb2xkLCBzeW50aGV0aWNPYmxpcXVlLCBmb250RGVzY3Jp
cHRpb24ub3JpZW50YXRpb24oKSwgZm9udERlc2NyaXB0aW9uLndpZHRoVmFyaWFudCgpKTsKICAg
ICBpZiAoaXNBcHBsZUNvbG9yRW1vamkpCi0gICAgICAgIHJlc3VsdC0+bV9pc0Vtb2ppID0gdHJ1
ZTsKKyAgICAgICAgcmVzdWx0LT5zZXRJc0Vtb2ppKHRydWUpOwogICAgIHJldHVybiByZXN1bHQ7
CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL21hYy9D
b21wbGV4VGV4dENvbnRyb2xsZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKaW5kZXggYWFjMTk5NDU0Zjk3NDJkOGI1
YzhjOWMxYzVlOWU0NTJhMjdkMWNiMi4uNGE5ZTdhMzgwZjYyZWEyZDUxOWFiNDQ2NDZhYjY4ZGM4
NjdjOWJlMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvbWFj
L0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvbWFjL0NvbXBsZXhUZXh0Q29udHJvbGxlci5jcHAKQEAgLTYwMyw5ICs2MDMsNyBA
QCB2b2lkIENvbXBsZXhUZXh0Q29udHJvbGxlcjo6YWRqdXN0R2x5cGhzQW5kQWR2YW5jZXMoKQog
ICAgICAgICBDb21wbGV4VGV4dFJ1biYgY29tcGxleFRleHRSdW4gPSAqbV9jb21wbGV4VGV4dFJ1
bnNbcl07CiAgICAgICAgIHVuc2lnbmVkIGdseXBoQ291bnQgPSBjb21wbGV4VGV4dFJ1bi5nbHlw
aENvdW50KCk7CiAgICAgICAgIGNvbnN0IEZvbnQmIGZvbnQgPSBjb21wbGV4VGV4dFJ1bi5mb250
KCk7Ci0jaWYgUExBVEZPUk0oSU9TKQotICAgICAgICBib29sIGlzRW1vamkgPSBmb250LnBsYXRm
b3JtRGF0YSgpLm1faXNFbW9qaTsKLSNlbmRpZgorICAgICAgICBib29sIGlzRW1vamkgPSBmb250
LnBsYXRmb3JtRGF0YSgpLmlzRW1vamkoKTsKIAogICAgICAgICAvLyBSZXByZXNlbnQgdGhlIGlu
aXRpYWwgYWR2YW5jZSBmb3IgYSB0ZXh0IHJ1biBieSBhZGp1c3RpbmcgdGhlIGFkdmFuY2UKICAg
ICAgICAgLy8gb2YgdGhlIGxhc3QgZ2x5cGggb2YgdGhlIHByZXZpb3VzIHRleHQgcnVuIGluIHRo
ZSBnbHlwaCBidWZmZXIuCkBAIC02NTMsMTAgKzY1MSw4IEBAIHZvaWQgQ29tcGxleFRleHRDb250
cm9sbGVyOjphZGp1c3RHbHlwaHNBbmRBZHZhbmNlcygpCiAgICAgICAgICAgICBib29sIHRyZWF0
QXNTcGFjZSA9IEZvbnRDYXNjYWRlOjp0cmVhdEFzU3BhY2UoY2gpOwogICAgICAgICAgICAgQ0dH
bHlwaCBnbHlwaCA9IHRyZWF0QXNTcGFjZSA/IGZvbnQuc3BhY2VHbHlwaCgpIDogZ2x5cGhzW2ld
OwogICAgICAgICAgICAgQ0dTaXplIGFkdmFuY2UgPSB0cmVhdEFzU3BhY2UgPyBDR1NpemVNYWtl
KHNwYWNlV2lkdGgsIGFkdmFuY2VzW2ldLmhlaWdodCkgOiBhZHZhbmNlc1tpXTsKLSNpZiBQTEFU
Rk9STShJT1MpCiAgICAgICAgICAgICBpZiAoaXNFbW9qaSAmJiBhZHZhbmNlLndpZHRoKQogICAg
ICAgICAgICAgICAgIGFkdmFuY2Uud2lkdGggPSBmb250LndpZHRoRm9yR2x5cGgoZ2x5cGgpOwot
I2VuZGlmCiAKICAgICAgICAgICAgIGlmIChjaCA9PSAnXHQnICYmIG1fcnVuLmFsbG93VGFicygp
KQogICAgICAgICAgICAgICAgIGFkdmFuY2Uud2lkdGggPSBtX2ZvbnQudGFiV2lkdGgoZm9udCwg
bV9ydW4udGFiU2l6ZSgpLCBtX3J1bi54UG9zKCkgKyBtX3RvdGFsV2lkdGggKyB3aWR0aFNpbmNl
TGFzdENvbW1pdCk7Cg==
</data>
<flag name="review"
          id="279253"
          type_id="1"
          status="+"
          setter="kling"
    />
          </attachment>
      

    </bug>

</bugzilla>