<?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>55303</bug_id>
          
          <creation_ts>2011-02-26 12:28:35 -0800</creation_ts>
          <short_desc>[Qt] Use WTF ref counting for FontPlatformDataPrivate</short_desc>
          <delta_ts>2011-02-27 07:56:17 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>Layout and Rendering</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords>Qt, QtTriaged</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Nobody">webkit-unassigned</assigned_to>
          
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>358561</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-26 12:28:35 -0800</bug_when>
    <thetext>FontPlatformDataPrivate currently has hand-rolled ref counting for some reason. We should use RefCounted/RefPtr instead.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358562</commentid>
    <comment_count>1</comment_count>
      <attachid>83946</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-26 12:39:07 -0800</bug_when>
    <thetext>Created attachment 83946
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358576</commentid>
    <comment_count>2</comment_count>
      <attachid>83951</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-26 13:35:14 -0800</bug_when>
    <thetext>Created attachment 83951
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358668</commentid>
    <comment_count>3</comment_count>
      <attachid>83951</attachid>
    <who name="Kenneth Rohde Christiansen">kenneth</who>
    <bug_when>2011-02-27 04:46:50 -0800</bug_when>
    <thetext>Comment on attachment 83951
Proposed patch

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

Nice!

&gt; Source/WebCore/platform/graphics/qt/FontPlatformData.h:101
&gt; +            return 0;

Nice, fixing style as well :-)

&gt; Source/WebCore/platform/graphics/qt/FontPlatformData.h:137
&gt; +        // WebKit allows font size zero but QFont does not.

WebCore allows a font size of zero, but QFont does not.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>358675</commentid>
    <comment_count>4</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2011-02-27 07:56:17 -0800</bug_when>
    <thetext>Committed r79818: &lt;http://trac.webkit.org/changeset/79818&gt;</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83946</attachid>
            <date>2011-02-26 12:39:07 -0800</date>
            <delta_ts>2011-02-26 13:07:42 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-55303.diff</filename>
            <type>text/plain</type>
            <size>5612</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZjYyYWNmLi4yZmZlYjM5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjAg
QEAKKzIwMTEtMDItMjYgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gVXNlIFdURiBy
ZWYgY291bnRpbmcgZm9yIEZvbnRQbGF0Zm9ybURhdGFQcml2YXRlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTMwMworCisgICAgICAgIE1ha2UgRm9u
dFBsYXRmb3JtRGF0YVByaXZhdGUgYSBSZWZDb3VudGVkPEZQRFA+LgorICAgICAgICBJbmNpZGVu
dGFsbHkgZml4ZXMgYW4gdW5pbml0aWFsaXplZCBtZW1iZXIgYnVnIGluIEZvbnRQbGF0Zm9ybURh
dGEoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGFQcml2YXRlOjpGb250UGxhdGZv
cm1EYXRhUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250
UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZv
cm1EYXRhUXQuY3BwOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6fkZvbnRQ
bGF0Zm9ybURhdGEpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0
b3I9KToKKwogMjAxMS0wMi0yNiAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNocm9taXVtLm9y
Zz4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQ6IHJvbGxpbmcgb3V0IDc5Nzk5IGFuZCA3OTgwNCBm
b3IgYnJlYWtpbmcgeG1sIHRlc3RzIG9uIG1hYy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEuaCBiL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEuaAppbmRleCBmMjY4MzcwLi5j
NmMzMDc5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9G
b250UGxhdGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
cXQvRm9udFBsYXRmb3JtRGF0YS5oCkBAIC0yNCwzNyArMjQsMzQgQEAKICNpZm5kZWYgRm9udFBs
YXRmb3JtRGF0YV9oCiAjZGVmaW5lIEZvbnRQbGF0Zm9ybURhdGFfaAogCi0jaW5jbHVkZSA8d3Rm
L0ZvcndhcmQuaD4KICNpbmNsdWRlICJGb250RGVzY3JpcHRpb24uaCIKICNpbmNsdWRlICJGb250
T3JpZW50YXRpb24uaCIKICNpbmNsdWRlIDxRRm9udD4KICNpbmNsdWRlIDxRSGFzaD4KKyNpbmNs
dWRlIDx3dGYvRm9yd2FyZC5oPgorI2luY2x1ZGUgPHd0Zi9SZWZDb3VudGVkLmg+CiAKIG5hbWVz
cGFjZSBXZWJDb3JlIHsKIAotY2xhc3MgRm9udFBsYXRmb3JtRGF0YVByaXZhdGUgeworY2xhc3Mg
Rm9udFBsYXRmb3JtRGF0YVByaXZhdGUgOiBwdWJsaWMgUmVmQ291bnRlZDxGb250UGxhdGZvcm1E
YXRhUHJpdmF0ZT4gewogICAgIFdURl9NQUtFX05PTkNPUFlBQkxFKEZvbnRQbGF0Zm9ybURhdGFQ
cml2YXRlKTsgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6CiAgICAgRm9udFBsYXRm
b3JtRGF0YVByaXZhdGUoKQotICAgICAgICA6IHJlZkNvdW50KDEpCi0gICAgICAgICwgc2l6ZShm
b250LnBpeGVsU2l6ZSgpKQorICAgICAgICA6IHNpemUoZm9udC5waXhlbFNpemUoKSkKICAgICAg
ICAgLCBib2xkKGZvbnQuYm9sZCgpKQogICAgICAgICAsIG9ibGlxdWUoZmFsc2UpCi0gICAge30K
KyAgICB7IH0KICAgICBGb250UGxhdGZvcm1EYXRhUHJpdmF0ZShjb25zdCBmbG9hdCBzaXplLCBj
b25zdCBib29sIGJvbGQsIGNvbnN0IGJvb2wgb2JsaXF1ZSkKLSAgICAgICAgOiByZWZDb3VudCgx
KQotICAgICAgICAsIHNpemUoc2l6ZSkKKyAgICAgICAgOiBzaXplKHNpemUpCiAgICAgICAgICwg
Ym9sZChib2xkKQogICAgICAgICAsIG9ibGlxdWUob2JsaXF1ZSkKLSAgICB7fQorICAgIHsgfQog
ICAgIEZvbnRQbGF0Zm9ybURhdGFQcml2YXRlKGNvbnN0IFFGb250JiBmb250KQotICAgICAgICA6
IHJlZkNvdW50KDEpCi0gICAgICAgICwgZm9udChmb250KQorICAgICAgICA6IGZvbnQoZm9udCkK
ICAgICAgICAgLCBzaXplKGZvbnQucGl4ZWxTaXplKCkpCiAgICAgICAgICwgYm9sZChmb250LmJv
bGQoKSkKICAgICAgICAgLCBvYmxpcXVlKGZhbHNlKQotICAgIHt9Ci0gICAgdW5zaWduZWQgcmVm
Q291bnQ7CisgICAgeyB9CiAgICAgUUZvbnQgZm9udDsKICAgICBmbG9hdCBzaXplOwogICAgIGJv
b2wgYm9sZCA6IDE7CkBAIC02NiwyMCArNjMsMTUgQEAgcHVibGljOgogY2xhc3MgRm9udFBsYXRm
b3JtRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7CiBwdWJsaWM6Ci0gICAgRm9u
dFBsYXRmb3JtRGF0YSgpIHsgfQogICAgIEZvbnRQbGF0Zm9ybURhdGEoZmxvYXQgc2l6ZSwgYm9v
bCBib2xkLCBib29sIG9ibGlxdWUpOwotICAgIEZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udFBs
YXRmb3JtRGF0YSAmKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlv
biYsIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSwgaW50IHdvcmRTcGFjaW5nID0gMCwg
aW50IGxldHRlclNwYWNpbmcgPSAwKTsKICAgICBGb250UGxhdGZvcm1EYXRhKGNvbnN0IFFGb250
JiBmb250KQogICAgICAgICA6IG1fZGF0YShuZXcgRm9udFBsYXRmb3JtRGF0YVByaXZhdGUoZm9u
dCkpCi0gICAge30KKyAgICB7IH0KICAgICBGb250UGxhdGZvcm1EYXRhKFdURjo6SGFzaFRhYmxl
RGVsZXRlZFZhbHVlVHlwZSkKICAgICAgICAgOiBtX2RhdGEocmVpbnRlcnByZXRfY2FzdDxGb250
UGxhdGZvcm1EYXRhUHJpdmF0ZSo+KC0xKSkKLSAgICB7fQotCi0gICAgfkZvbnRQbGF0Zm9ybURh
dGEoKTsKKyAgICB7IH0KIAotICAgIEZvbnRQbGF0Zm9ybURhdGEmIG9wZXJhdG9yPShjb25zdCBG
b250UGxhdGZvcm1EYXRhJik7CiAgICAgYm9vbCBvcGVyYXRvcj09KGNvbnN0IEZvbnRQbGF0Zm9y
bURhdGEmKSBjb25zdDsKIAogICAgIGJvb2wgaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSBjb25z
dApAQCAtMTcwLDcgKzE2Miw3IEBAIHB1YmxpYzoKICAgICBTdHJpbmcgZGVzY3JpcHRpb24oKSBj
b25zdDsKICNlbmRpZgogcHJpdmF0ZToKLSAgICBGb250UGxhdGZvcm1EYXRhUHJpdmF0ZSogbV9k
YXRhOworICAgIFJlZlB0cjxGb250UGxhdGZvcm1EYXRhUHJpdmF0ZT4gbV9kYXRhOwogfTsKIAog
fSAvLyBuYW1lc3BhY2UgV2ViQ29yZQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YVF0LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGFRdC5jcHAKaW5kZXggNGM5ZWIzMi4u
Mjc2MWM0OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQv
Rm9udFBsYXRmb3JtRGF0YVF0LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9Gb250UGxhdGZvcm1EYXRhUXQuY3BwCkBAIC0xLDYgKzEsNyBAQAogLyoKICAgICBD
b3B5cmlnaHQgKEMpIDIwMDggSG9sZ2VyIEhhbnMgUGV0ZXIgRnJleXRoZXIKICAgICBDb3B5cmln
aHQgKEMpIDIwMDkgVG9yY2ggTW9iaWxlIEluYy4gaHR0cDovL3d3dy50b3JjaG1vYmlsZS5jb20v
CisgICAgQ29weXJpZ2h0IChDKSAyMDExIE5va2lhIENvcnBvcmF0aW9uIGFuZC9vciBpdHMgc3Vi
c2lkaWFyeSgtaWVzKQogCiAgICAgVGhpcyBsaWJyYXJ5IGlzIGZyZWUgc29mdHdhcmU7IHlvdSBj
YW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vcgogICAgIG1vZGlmeSBpdCB1bmRlciB0aGUgdGVybXMg
b2YgdGhlIEdOVSBMaWJyYXJ5IEdlbmVyYWwgUHVibGljCkBAIC00MCwxMiArNDEsNiBAQCBGb250
UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGZsb2F0IHNpemUsIGJvb2wgYm9sZCwgYm9v
bCBvYmxpcXVlKQogICAgICAgICBtX2RhdGEgPSBuZXcgRm9udFBsYXRmb3JtRGF0YVByaXZhdGUo
c2l6ZSwgYm9sZCwgb2JsaXF1ZSk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9y
bURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSAmb3RoZXIpIDogbV9kYXRhKG90aGVyLm1fZGF0
YSkKLXsKLSAgICBpZiAobV9kYXRhICYmIG1fZGF0YSAhPSByZWludGVycHJldF9jYXN0PEZvbnRQ
bGF0Zm9ybURhdGFQcml2YXRlKj4oLTEpKQotICAgICAgICArK21fZGF0YS0+cmVmQ291bnQ7Ci19
Ci0KIEZvbnRQbGF0Zm9ybURhdGE6OkZvbnRQbGF0Zm9ybURhdGEoY29uc3QgRm9udERlc2NyaXB0
aW9uJiBkZXNjcmlwdGlvbiwgY29uc3QgQXRvbWljU3RyaW5nJiBmYW1pbHlOYW1lLCBpbnQgd29y
ZFNwYWNpbmcsIGludCBsZXR0ZXJTcGFjaW5nKQogICAgIDogbV9kYXRhKG5ldyBGb250UGxhdGZv
cm1EYXRhUHJpdmF0ZSgpKQogewpAQCAtNzAsMzAgKzY1LDYgQEAgRm9udFBsYXRmb3JtRGF0YTo6
Rm9udFBsYXRmb3JtRGF0YShjb25zdCBGb250RGVzY3JpcHRpb24mIGRlc2NyaXB0aW9uLCBjb25z
dCBBdG8KICAgICBtX2RhdGEtPnNpemUgPSAoIXJlcXVlc3RlZFNpemUpID8gcmVxdWVzdGVkU2l6
ZSA6IGZvbnQucGl4ZWxTaXplKCk7CiB9CiAKLUZvbnRQbGF0Zm9ybURhdGE6On5Gb250UGxhdGZv
cm1EYXRhKCkKLXsKLSAgICBpZiAoIW1fZGF0YSB8fCBtX2RhdGEgPT0gcmVpbnRlcnByZXRfY2Fz
dDxGb250UGxhdGZvcm1EYXRhUHJpdmF0ZSo+KC0xKSkKLSAgICAgICAgcmV0dXJuOwotICAgIC0t
bV9kYXRhLT5yZWZDb3VudDsKLSAgICBpZiAoIW1fZGF0YS0+cmVmQ291bnQpCi0gICAgICAgIGRl
bGV0ZSBtX2RhdGE7Ci19Ci0KLUZvbnRQbGF0Zm9ybURhdGEmIEZvbnRQbGF0Zm9ybURhdGE6Om9w
ZXJhdG9yPShjb25zdCBGb250UGxhdGZvcm1EYXRhJiBvdGhlcikKLXsKLSAgICBpZiAobV9kYXRh
ID09IG90aGVyLm1fZGF0YSkKLSAgICAgICAgcmV0dXJuICp0aGlzOwotICAgIGlmIChtX2RhdGEg
JiYgbV9kYXRhICE9IHJlaW50ZXJwcmV0X2Nhc3Q8Rm9udFBsYXRmb3JtRGF0YVByaXZhdGUqPigt
MSkpIHsKLSAgICAgICAgLS1tX2RhdGEtPnJlZkNvdW50OwotICAgICAgICBpZiAoIW1fZGF0YS0+
cmVmQ291bnQpCi0gICAgICAgICAgICBkZWxldGUgbV9kYXRhOwotICAgIH0KLSAgICBtX2RhdGEg
PSBvdGhlci5tX2RhdGE7Ci0gICAgaWYgKG1fZGF0YSAmJiBtX2RhdGEgIT0gcmVpbnRlcnByZXRf
Y2FzdDxGb250UGxhdGZvcm1EYXRhUHJpdmF0ZSo+KC0xKSkKLSAgICAgICAgKyttX2RhdGEtPnJl
ZkNvdW50OwotICAgIHJldHVybiAqdGhpczsKLX0KLQogYm9vbCBGb250UGxhdGZvcm1EYXRhOjpv
cGVyYXRvcj09KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG90aGVyKSBjb25zdAogewogICAgIGlm
IChtX2RhdGEgPT0gb3RoZXIubV9kYXRhKQo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>83951</attachid>
            <date>2011-02-26 13:35:14 -0800</date>
            <delta_ts>2011-02-27 04:46:50 -0800</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-55303-v2.diff</filename>
            <type>text/plain</type>
            <size>11639</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZwppbmRleCA1ZjYyYWNmLi5jYTg4OWQ4IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29y
ZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMjkg
QEAKKzIwMTEtMDItMjYgIEFuZHJlYXMgS2xpbmcgIDxrbGluZ0B3ZWJraXQub3JnPgorCisgICAg
ICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFtRdF0gVXNlIFdURiBy
ZWYgY291bnRpbmcgZm9yIEZvbnRQbGF0Zm9ybURhdGFQcml2YXRlCisgICAgICAgIGh0dHBzOi8v
YnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD01NTMwMworCisgICAgICAgIE1ha2UgRm9u
dFBsYXRmb3JtRGF0YVByaXZhdGUgYSBSZWZDb3VudGVkPEZQRFA+LgorICAgICAgICBJbmNpZGVu
dGFsbHkgZml4ZXMgYW4gdW5pbml0aWFsaXplZCBtZW1iZXIgYnVnIGluIEZvbnRQbGF0Zm9ybURh
dGEoKS4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEu
aDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGFQcml2YXRlOjpGb250UGxhdGZv
cm1EYXRhUHJpdmF0ZSk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpGb250
UGxhdGZvcm1EYXRhKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OmlzSGFz
aFRhYmxlRGVsZXRlZFZhbHVlKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6
OmZvbnQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6c2l6ZSk6CisgICAg
ICAgIChXZWJDb3JlOjpGb250UGxhdGZvcm1EYXRhOjpmYW1pbHkpOgorICAgICAgICAoV2ViQ29y
ZTo6Rm9udFBsYXRmb3JtRGF0YTo6Ym9sZCk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZv
cm1EYXRhOjppdGFsaWMpOgorICAgICAgICAoV2ViQ29yZTo6Rm9udFBsYXRmb3JtRGF0YTo6c21h
bGxDYXBzKToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnRQbGF0Zm9ybURhdGE6OnBpeGVsU2l6ZSk6
CisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YVF0LmNwcDoK
KyAgICAgICAgKFdlYkNvcmU6OnRvUUZvbnRXZWlnaHQpOgorICAgICAgICAoV2ViQ29yZTo6Rm9u
dFBsYXRmb3JtRGF0YTo6b3BlcmF0b3I9PSk6CisgICAgICAgIChXZWJDb3JlOjpGb250UGxhdGZv
cm1EYXRhOjpoYXNoKToKKwogMjAxMS0wMi0yNiAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGNo
cm9taXVtLm9yZz4KIAogICAgICAgICBOb3QgcmV2aWV3ZWQ6IHJvbGxpbmcgb3V0IDc5Nzk5IGFu
ZCA3OTgwNCBmb3IgYnJlYWtpbmcgeG1sIHRlc3RzIG9uIG1hYy4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEuaCBiL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGEuaAppbmRleCBm
MjY4MzcwLi45ZTYzNDY0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9xdC9Gb250UGxhdGZvcm1EYXRhLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvcXQvRm9udFBsYXRmb3JtRGF0YS5oCkBAIC0yNCwxNDIgKzI0LDEyMCBAQAogI2lm
bmRlZiBGb250UGxhdGZvcm1EYXRhX2gKICNkZWZpbmUgRm9udFBsYXRmb3JtRGF0YV9oCiAKLSNp
bmNsdWRlIDx3dGYvRm9yd2FyZC5oPgogI2luY2x1ZGUgIkZvbnREZXNjcmlwdGlvbi5oIgogI2lu
Y2x1ZGUgIkZvbnRPcmllbnRhdGlvbi5oIgogI2luY2x1ZGUgPFFGb250PgogI2luY2x1ZGUgPFFI
YXNoPgorI2luY2x1ZGUgPHd0Zi9Gb3J3YXJkLmg+CisjaW5jbHVkZSA8d3RmL1JlZkNvdW50ZWQu
aD4KIAogbmFtZXNwYWNlIFdlYkNvcmUgewogCi1jbGFzcyBGb250UGxhdGZvcm1EYXRhUHJpdmF0
ZSB7CitjbGFzcyBGb250UGxhdGZvcm1EYXRhUHJpdmF0ZSA6IHB1YmxpYyBSZWZDb3VudGVkPEZv
bnRQbGF0Zm9ybURhdGFQcml2YXRlPiB7CiAgICAgV1RGX01BS0VfTk9OQ09QWUFCTEUoRm9udFBs
YXRmb3JtRGF0YVByaXZhdGUpOyBXVEZfTUFLRV9GQVNUX0FMTE9DQVRFRDsKIHB1YmxpYzoKICAg
ICBGb250UGxhdGZvcm1EYXRhUHJpdmF0ZSgpCi0gICAgICAgIDogcmVmQ291bnQoMSkKLSAgICAg
ICAgLCBzaXplKGZvbnQucGl4ZWxTaXplKCkpCisgICAgICAgIDogc2l6ZShmb250LnBpeGVsU2l6
ZSgpKQogICAgICAgICAsIGJvbGQoZm9udC5ib2xkKCkpCiAgICAgICAgICwgb2JsaXF1ZShmYWxz
ZSkKLSAgICB7fQorICAgICAgICAsIGlzRGVsZXRlZFZhbHVlKGZhbHNlKQorICAgIHsgfQogICAg
IEZvbnRQbGF0Zm9ybURhdGFQcml2YXRlKGNvbnN0IGZsb2F0IHNpemUsIGNvbnN0IGJvb2wgYm9s
ZCwgY29uc3QgYm9vbCBvYmxpcXVlKQotICAgICAgICA6IHJlZkNvdW50KDEpCi0gICAgICAgICwg
c2l6ZShzaXplKQorICAgICAgICA6IHNpemUoc2l6ZSkKICAgICAgICAgLCBib2xkKGJvbGQpCiAg
ICAgICAgICwgb2JsaXF1ZShvYmxpcXVlKQotICAgIHt9CisgICAgICAgICwgaXNEZWxldGVkVmFs
dWUoZmFsc2UpCisgICAgeyB9CiAgICAgRm9udFBsYXRmb3JtRGF0YVByaXZhdGUoY29uc3QgUUZv
bnQmIGZvbnQpCi0gICAgICAgIDogcmVmQ291bnQoMSkKLSAgICAgICAgLCBmb250KGZvbnQpCisg
ICAgICAgIDogZm9udChmb250KQogICAgICAgICAsIHNpemUoZm9udC5waXhlbFNpemUoKSkKICAg
ICAgICAgLCBib2xkKGZvbnQuYm9sZCgpKQogICAgICAgICAsIG9ibGlxdWUoZmFsc2UpCi0gICAg
e30KLSAgICB1bnNpZ25lZCByZWZDb3VudDsKKyAgICAgICAgLCBpc0RlbGV0ZWRWYWx1ZShmYWxz
ZSkKKyAgICB7IH0KKyAgICBGb250UGxhdGZvcm1EYXRhUHJpdmF0ZShXVEY6Okhhc2hUYWJsZURl
bGV0ZWRWYWx1ZVR5cGUpCisgICAgICAgIDogaXNEZWxldGVkVmFsdWUodHJ1ZSkKKyAgICB7IH0K
KwogICAgIFFGb250IGZvbnQ7CiAgICAgZmxvYXQgc2l6ZTsKICAgICBib29sIGJvbGQgOiAxOwog
ICAgIGJvb2wgb2JsaXF1ZSA6IDE7CisgICAgYm9vbCBpc0RlbGV0ZWRWYWx1ZSA6IDE7CiB9Owog
Ci0KLQogY2xhc3MgRm9udFBsYXRmb3JtRGF0YSB7CiAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FU
RUQ7CiBwdWJsaWM6Ci0gICAgRm9udFBsYXRmb3JtRGF0YSgpIHsgfQogICAgIEZvbnRQbGF0Zm9y
bURhdGEoZmxvYXQgc2l6ZSwgYm9vbCBib2xkLCBib29sIG9ibGlxdWUpOwotICAgIEZvbnRQbGF0
Zm9ybURhdGEoY29uc3QgRm9udFBsYXRmb3JtRGF0YSAmKTsKICAgICBGb250UGxhdGZvcm1EYXRh
KGNvbnN0IEZvbnREZXNjcmlwdGlvbiYsIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSwg
aW50IHdvcmRTcGFjaW5nID0gMCwgaW50IGxldHRlclNwYWNpbmcgPSAwKTsKICAgICBGb250UGxh
dGZvcm1EYXRhKGNvbnN0IFFGb250JiBmb250KQogICAgICAgICA6IG1fZGF0YShuZXcgRm9udFBs
YXRmb3JtRGF0YVByaXZhdGUoZm9udCkpCi0gICAge30KKyAgICB7IH0KICAgICBGb250UGxhdGZv
cm1EYXRhKFdURjo6SGFzaFRhYmxlRGVsZXRlZFZhbHVlVHlwZSkKLSAgICAgICAgOiBtX2RhdGEo
cmVpbnRlcnByZXRfY2FzdDxGb250UGxhdGZvcm1EYXRhUHJpdmF0ZSo+KC0xKSkKLSAgICB7fQot
Ci0gICAgfkZvbnRQbGF0Zm9ybURhdGEoKTsKKyAgICAgICAgOiBtX2RhdGEobmV3IEZvbnRQbGF0
Zm9ybURhdGFQcml2YXRlKCkpCisgICAgeworICAgICAgICBtX2RhdGEtPmlzRGVsZXRlZFZhbHVl
ID0gdHJ1ZTsKKyAgICB9CiAKLSAgICBGb250UGxhdGZvcm1EYXRhJiBvcGVyYXRvcj0oY29uc3Qg
Rm9udFBsYXRmb3JtRGF0YSYpOwogICAgIGJvb2wgb3BlcmF0b3I9PShjb25zdCBGb250UGxhdGZv
cm1EYXRhJikgY29uc3Q7CiAKICAgICBib29sIGlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkgY29u
c3QKICAgICB7Ci0gICAgICAgIHJldHVybiBtX2RhdGEgPT0gcmVpbnRlcnByZXRfY2FzdDxGb250
UGxhdGZvcm1EYXRhUHJpdmF0ZSo+KC0xKTsKLSAgICB9Ci0KLSAgICBzdGF0aWMgaW5saW5lIFFG
b250OjpXZWlnaHQgdG9RRm9udFdlaWdodChGb250V2VpZ2h0IGZvbnRXZWlnaHQpCi0gICAgewot
ICAgICAgICBzd2l0Y2ggKGZvbnRXZWlnaHQpIHsKLSAgICAgICAgY2FzZSBGb250V2VpZ2h0MTAw
OgotICAgICAgICBjYXNlIEZvbnRXZWlnaHQyMDA6Ci0gICAgICAgICAgICByZXR1cm4gUUZvbnQ6
OkxpZ2h0OyAgLy8gUUZvbnQ6OkxpZ2h0ID09IFdlaWdodCBvZiAyNQotICAgICAgICBjYXNlIEZv
bnRXZWlnaHQ2MDA6Ci0gICAgICAgICAgICByZXR1cm4gUUZvbnQ6OkRlbWlCb2xkOyAgLy8gUUZv
bnQ6OkRlbWlCb2xkID09IFdlaWdodCBvZiA2MwotICAgICAgICBjYXNlIEZvbnRXZWlnaHQ3MDA6
Ci0gICAgICAgIGNhc2UgRm9udFdlaWdodDgwMDoKLSAgICAgICAgICAgIHJldHVybiBRRm9udDo6
Qm9sZDsgIC8vIFFGb250OjpCb2xkID09IFdlaWdodCBvZiA3NQotICAgICAgICBjYXNlIEZvbnRX
ZWlnaHQ5MDA6Ci0gICAgICAgICAgICByZXR1cm4gUUZvbnQ6OkJsYWNrOyAgLy8gUUZvbnQ6OkJs
YWNrID09IFdlaWdodCBvZiA4NwotICAgICAgICBjYXNlIEZvbnRXZWlnaHQzMDA6Ci0gICAgICAg
IGNhc2UgRm9udFdlaWdodDQwMDoKLSAgICAgICAgY2FzZSBGb250V2VpZ2h0NTAwOgotICAgICAg
ICBkZWZhdWx0OgotICAgICAgICAgICAgcmV0dXJuIFFGb250OjpOb3JtYWw7ICAvLyBRRm9udDo6
Tm9ybWFsID09IFdlaWdodCBvZiA1MAotICAgICAgICB9CisgICAgICAgIHJldHVybiBtX2RhdGEg
JiYgbV9kYXRhLT5pc0RlbGV0ZWRWYWx1ZTsKICAgICB9CiAKICAgICBRRm9udCBmb250KCkgY29u
c3QKICAgICB7Ci0gICAgICAgIFFfQVNTRVJUKG1fZGF0YSAhPSByZWludGVycHJldF9jYXN0PEZv
bnRQbGF0Zm9ybURhdGFQcml2YXRlKj4oLTEpKTsKLSAgICAgICAgaWYgKG1fZGF0YSkKLSAgICAg
ICAgICAgIHJldHVybiBtX2RhdGEtPmZvbnQ7Ci0gICAgICAgIHJldHVybiBRRm9udCgpOworICAg
ICAgICBRX0FTU0VSVCghaXNIYXNoVGFibGVEZWxldGVkVmFsdWUoKSk7CisgICAgICAgIGlmICgh
bV9kYXRhKQorICAgICAgICAgICAgcmV0dXJuIFFGb250KCk7CisgICAgICAgIHJldHVybiBtX2Rh
dGEtPmZvbnQ7CiAgICAgfQogICAgIGZsb2F0IHNpemUoKSBjb25zdAogICAgIHsKLSAgICAgICAg
UV9BU1NFUlQobV9kYXRhICE9IHJlaW50ZXJwcmV0X2Nhc3Q8Rm9udFBsYXRmb3JtRGF0YVByaXZh
dGUqPigtMSkpOwotICAgICAgICBpZiAobV9kYXRhKQotICAgICAgICAgICAgcmV0dXJuIG1fZGF0
YS0+c2l6ZTsKLSAgICAgICAgcmV0dXJuIDAuMGY7CisgICAgICAgIFFfQVNTRVJUKCFpc0hhc2hU
YWJsZURlbGV0ZWRWYWx1ZSgpKTsKKyAgICAgICAgaWYgKCFtX2RhdGEpCisgICAgICAgICAgICBy
ZXR1cm4gMDsKKyAgICAgICAgcmV0dXJuIG1fZGF0YS0+c2l6ZTsKICAgICB9CiAgICAgUVN0cmlu
ZyBmYW1pbHkoKSBjb25zdAogICAgIHsKLSAgICAgICAgUV9BU1NFUlQobV9kYXRhICE9IHJlaW50
ZXJwcmV0X2Nhc3Q8Rm9udFBsYXRmb3JtRGF0YVByaXZhdGUqPigtMSkpOwotICAgICAgICBpZiAo
bV9kYXRhKQotICAgICAgICAgICAgcmV0dXJuIG1fZGF0YS0+Zm9udC5mYW1pbHkoKTsKLSAgICAg
ICAgcmV0dXJuIFFTdHJpbmcoKTsKKyAgICAgICAgUV9BU1NFUlQoIWlzSGFzaFRhYmxlRGVsZXRl
ZFZhbHVlKCkpOworICAgICAgICBpZiAoIW1fZGF0YSkKKyAgICAgICAgICAgIHJldHVybiBRU3Ry
aW5nKCk7CisgICAgICAgIHJldHVybiBtX2RhdGEtPmZvbnQuZmFtaWx5KCk7CiAgICAgfQogICAg
IGJvb2wgYm9sZCgpIGNvbnN0CiAgICAgewotICAgICAgICBRX0FTU0VSVChtX2RhdGEgIT0gcmVp
bnRlcnByZXRfY2FzdDxGb250UGxhdGZvcm1EYXRhUHJpdmF0ZSo+KC0xKSk7Ci0gICAgICAgIGlm
IChtX2RhdGEpCi0gICAgICAgICAgICByZXR1cm4gbV9kYXRhLT5ib2xkOwotICAgICAgICByZXR1
cm4gZmFsc2U7CisgICAgICAgIFFfQVNTRVJUKCFpc0hhc2hUYWJsZURlbGV0ZWRWYWx1ZSgpKTsK
KyAgICAgICAgaWYgKCFtX2RhdGEpCisgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgICAg
IHJldHVybiBtX2RhdGEtPmJvbGQ7CiAgICAgfQogICAgIGJvb2wgaXRhbGljKCkgY29uc3QKICAg
ICB7Ci0gICAgICAgIFFfQVNTRVJUKG1fZGF0YSAhPSByZWludGVycHJldF9jYXN0PEZvbnRQbGF0
Zm9ybURhdGFQcml2YXRlKj4oLTEpKTsKLSAgICAgICAgaWYgKG1fZGF0YSkKLSAgICAgICAgICAg
IHJldHVybiBtX2RhdGEtPmZvbnQuaXRhbGljKCk7Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAg
ICAgICAgUV9BU1NFUlQoIWlzSGFzaFRhYmxlRGVsZXRlZFZhbHVlKCkpOworICAgICAgICBpZiAo
IW1fZGF0YSkKKyAgICAgICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgcmV0dXJuIG1fZGF0
YS0+Zm9udC5pdGFsaWMoKTsKICAgICB9CiAgICAgYm9vbCBzbWFsbENhcHMoKSBjb25zdAogICAg
IHsKLSAgICAgICAgUV9BU1NFUlQobV9kYXRhICE9IHJlaW50ZXJwcmV0X2Nhc3Q8Rm9udFBsYXRm
b3JtRGF0YVByaXZhdGUqPigtMSkpOwotICAgICAgICBpZiAobV9kYXRhKQotICAgICAgICAgICAg
cmV0dXJuIG1fZGF0YS0+Zm9udC5jYXBpdGFsaXphdGlvbigpID09IFFGb250OjpTbWFsbENhcHM7
Ci0gICAgICAgIHJldHVybiBmYWxzZTsKKyAgICAgICAgUV9BU1NFUlQoIWlzSGFzaFRhYmxlRGVs
ZXRlZFZhbHVlKCkpOworICAgICAgICBpZiAoIW1fZGF0YSkKKyAgICAgICAgICAgIHJldHVybiBm
YWxzZTsKKyAgICAgICAgcmV0dXJuIG1fZGF0YS0+Zm9udC5jYXBpdGFsaXphdGlvbigpID09IFFG
b250OjpTbWFsbENhcHM7CiAgICAgfQogICAgIGludCBwaXhlbFNpemUoKSBjb25zdAogICAgIHsK
LSAgICAgICAgUV9BU1NFUlQobV9kYXRhICE9IHJlaW50ZXJwcmV0X2Nhc3Q8Rm9udFBsYXRmb3Jt
RGF0YVByaXZhdGUqPigtMSkpOwotICAgICAgICBpZiAobV9kYXRhKSB7Ci0gICAgICAgICAgICAv
LyBXZWJLaXQgYWxsb3dzIGZvbnQgc2l6ZSB6ZXJvIGJ1dCBRRm9udCBkb2VzIG5vdC4KLSAgICAg
ICAgICAgIGlmICghbV9kYXRhLT5zaXplKQotICAgICAgICAgICAgICAgIHJldHVybiBtX2RhdGEt
PnNpemU7Ci0gICAgICAgICAgICByZXR1cm4gbV9kYXRhLT5mb250LnBpeGVsU2l6ZSgpOwotICAg
ICAgICB9Ci0gICAgICAgIHJldHVybiAwOworICAgICAgICBRX0FTU0VSVCghaXNIYXNoVGFibGVE
ZWxldGVkVmFsdWUoKSk7CisgICAgICAgIGlmICghbV9kYXRhKQorICAgICAgICAgICAgcmV0dXJu
IDA7CisgICAgICAgIC8vIFdlYktpdCBhbGxvd3MgZm9udCBzaXplIHplcm8gYnV0IFFGb250IGRv
ZXMgbm90LgorICAgICAgICBpZiAoIW1fZGF0YS0+c2l6ZSkKKyAgICAgICAgICAgIHJldHVybiAw
OworICAgICAgICByZXR1cm4gbV9kYXRhLT5mb250LnBpeGVsU2l6ZSgpOwogICAgIH0KICAgICAK
ICAgICBGb250T3JpZW50YXRpb24gb3JpZW50YXRpb24oKSBjb25zdCB7IHJldHVybiBIb3Jpem9u
dGFsOyB9IC8vIEZJWE1FOiBJbXBsZW1lbnQuCkBAIC0xNzAsNyArMTQ4LDcgQEAgcHVibGljOgog
ICAgIFN0cmluZyBkZXNjcmlwdGlvbigpIGNvbnN0OwogI2VuZGlmCiBwcml2YXRlOgotICAgIEZv
bnRQbGF0Zm9ybURhdGFQcml2YXRlKiBtX2RhdGE7CisgICAgUmVmUHRyPEZvbnRQbGF0Zm9ybURh
dGFQcml2YXRlPiBtX2RhdGE7CiB9OwogCiB9IC8vIG5hbWVzcGFjZSBXZWJDb3JlCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1EYXRh
UXQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvcXQvRm9udFBsYXRmb3Jt
RGF0YVF0LmNwcAppbmRleCA0YzllYjMyLi45ODU2MmNhIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9xdC9Gb250UGxhdGZvcm1EYXRhUXQuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL3F0L0ZvbnRQbGF0Zm9ybURhdGFRdC5jcHAK
QEAgLTEsNiArMSw3IEBACiAvKgogICAgIENvcHlyaWdodCAoQykgMjAwOCBIb2xnZXIgSGFucyBQ
ZXRlciBGcmV5dGhlcgogICAgIENvcHlyaWdodCAoQykgMjAwOSBUb3JjaCBNb2JpbGUgSW5jLiBo
dHRwOi8vd3d3LnRvcmNobW9iaWxlLmNvbS8KKyAgICBDb3B5cmlnaHQgKEMpIDIwMTEgTm9raWEg
Q29ycG9yYXRpb24gYW5kL29yIGl0cyBzdWJzaWRpYXJ5KC1pZXMpCiAKICAgICBUaGlzIGxpYnJh
cnkgaXMgZnJlZSBzb2Z0d2FyZTsgeW91IGNhbiByZWRpc3RyaWJ1dGUgaXQgYW5kL29yCiAgICAg
bW9kaWZ5IGl0IHVuZGVyIHRoZSB0ZXJtcyBvZiB0aGUgR05VIExpYnJhcnkgR2VuZXJhbCBQdWJs
aWMKQEAgLTI2LDYgKzI3LDI3IEBACiAKIG5hbWVzcGFjZSBXZWJDb3JlIHsKIAorc3RhdGljIGlu
bGluZSBRRm9udDo6V2VpZ2h0IHRvUUZvbnRXZWlnaHQoRm9udFdlaWdodCBmb250V2VpZ2h0KQor
eworICAgIHN3aXRjaCAoZm9udFdlaWdodCkgeworICAgIGNhc2UgRm9udFdlaWdodDEwMDoKKyAg
ICBjYXNlIEZvbnRXZWlnaHQyMDA6CisgICAgICAgIHJldHVybiBRRm9udDo6TGlnaHQ7IC8vIFFG
b250OjpMaWdodCA9PSBXZWlnaHQgb2YgMjUKKyAgICBjYXNlIEZvbnRXZWlnaHQ2MDA6CisgICAg
ICAgIHJldHVybiBRRm9udDo6RGVtaUJvbGQ7IC8vIFFGb250OjpEZW1pQm9sZCA9PSBXZWlnaHQg
b2YgNjMKKyAgICBjYXNlIEZvbnRXZWlnaHQ3MDA6CisgICAgY2FzZSBGb250V2VpZ2h0ODAwOgor
ICAgICAgICByZXR1cm4gUUZvbnQ6OkJvbGQ7IC8vIFFGb250OjpCb2xkID09IFdlaWdodCBvZiA3
NQorICAgIGNhc2UgRm9udFdlaWdodDkwMDoKKyAgICAgICAgcmV0dXJuIFFGb250OjpCbGFjazsg
Ly8gUUZvbnQ6OkJsYWNrID09IFdlaWdodCBvZiA4NworICAgIGNhc2UgRm9udFdlaWdodDMwMDoK
KyAgICBjYXNlIEZvbnRXZWlnaHQ0MDA6CisgICAgY2FzZSBGb250V2VpZ2h0NTAwOgorICAgIGRl
ZmF1bHQ6CisgICAgICAgIHJldHVybiBRRm9udDo6Tm9ybWFsOyAvLyBRRm9udDo6Tm9ybWFsID09
IFdlaWdodCBvZiA1MAorICAgIH0KK30KKwogc3RhdGljIGlubGluZSBib29sIGlzRW1wdHlWYWx1
ZShjb25zdCBmbG9hdCBzaXplLCBjb25zdCBib29sIGJvbGQsIGNvbnN0IGJvb2wgb2JsaXF1ZSkK
IHsKICAgICAgLy8gdGhpcyBpcyB0aGUgZW1wdHkgdmFsdWUgYnkgZGVmaW5pdGlvbiBvZiB0aGUg
dHJhaXQgRm9udERhdGFDYWNoZUtleVRyYWl0cwpAQCAtNDAsMTIgKzYyLDYgQEAgRm9udFBsYXRm
b3JtRGF0YTo6Rm9udFBsYXRmb3JtRGF0YShmbG9hdCBzaXplLCBib29sIGJvbGQsIGJvb2wgb2Js
aXF1ZSkKICAgICAgICAgbV9kYXRhID0gbmV3IEZvbnRQbGF0Zm9ybURhdGFQcml2YXRlKHNpemUs
IGJvbGQsIG9ibGlxdWUpOwogfQogCi1Gb250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRh
KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEgJm90aGVyKSA6IG1fZGF0YShvdGhlci5tX2RhdGEpCi17
Ci0gICAgaWYgKG1fZGF0YSAmJiBtX2RhdGEgIT0gcmVpbnRlcnByZXRfY2FzdDxGb250UGxhdGZv
cm1EYXRhUHJpdmF0ZSo+KC0xKSkKLSAgICAgICAgKyttX2RhdGEtPnJlZkNvdW50OwotfQotCiBG
b250UGxhdGZvcm1EYXRhOjpGb250UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYg
ZGVzY3JpcHRpb24sIGNvbnN0IEF0b21pY1N0cmluZyYgZmFtaWx5TmFtZSwgaW50IHdvcmRTcGFj
aW5nLCBpbnQgbGV0dGVyU3BhY2luZykKICAgICA6IG1fZGF0YShuZXcgRm9udFBsYXRmb3JtRGF0
YVByaXZhdGUoKSkKIHsKQEAgLTcwLDM4ICs4NiwxMyBAQCBGb250UGxhdGZvcm1EYXRhOjpGb250
UGxhdGZvcm1EYXRhKGNvbnN0IEZvbnREZXNjcmlwdGlvbiYgZGVzY3JpcHRpb24sIGNvbnN0IEF0
bwogICAgIG1fZGF0YS0+c2l6ZSA9ICghcmVxdWVzdGVkU2l6ZSkgPyByZXF1ZXN0ZWRTaXplIDog
Zm9udC5waXhlbFNpemUoKTsKIH0KIAotRm9udFBsYXRmb3JtRGF0YTo6fkZvbnRQbGF0Zm9ybURh
dGEoKQotewotICAgIGlmICghbV9kYXRhIHx8IG1fZGF0YSA9PSByZWludGVycHJldF9jYXN0PEZv
bnRQbGF0Zm9ybURhdGFQcml2YXRlKj4oLTEpKQotICAgICAgICByZXR1cm47Ci0gICAgLS1tX2Rh
dGEtPnJlZkNvdW50OwotICAgIGlmICghbV9kYXRhLT5yZWZDb3VudCkKLSAgICAgICAgZGVsZXRl
IG1fZGF0YTsKLX0KLQotRm9udFBsYXRmb3JtRGF0YSYgRm9udFBsYXRmb3JtRGF0YTo6b3BlcmF0
b3I9KGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIG90aGVyKQotewotICAgIGlmIChtX2RhdGEgPT0g
b3RoZXIubV9kYXRhKQotICAgICAgICByZXR1cm4gKnRoaXM7Ci0gICAgaWYgKG1fZGF0YSAmJiBt
X2RhdGEgIT0gcmVpbnRlcnByZXRfY2FzdDxGb250UGxhdGZvcm1EYXRhUHJpdmF0ZSo+KC0xKSkg
ewotICAgICAgICAtLW1fZGF0YS0+cmVmQ291bnQ7Ci0gICAgICAgIGlmICghbV9kYXRhLT5yZWZD
b3VudCkKLSAgICAgICAgICAgIGRlbGV0ZSBtX2RhdGE7Ci0gICAgfQotICAgIG1fZGF0YSA9IG90
aGVyLm1fZGF0YTsKLSAgICBpZiAobV9kYXRhICYmIG1fZGF0YSAhPSByZWludGVycHJldF9jYXN0
PEZvbnRQbGF0Zm9ybURhdGFQcml2YXRlKj4oLTEpKQotICAgICAgICArK21fZGF0YS0+cmVmQ291
bnQ7Ci0gICAgcmV0dXJuICp0aGlzOwotfQotCiBib29sIEZvbnRQbGF0Zm9ybURhdGE6Om9wZXJh
dG9yPT0oY29uc3QgRm9udFBsYXRmb3JtRGF0YSYgb3RoZXIpIGNvbnN0CiB7CiAgICAgaWYgKG1f
ZGF0YSA9PSBvdGhlci5tX2RhdGEpCiAgICAgICAgIHJldHVybiB0cnVlOwogCi0gICAgaWYgKCFt
X2RhdGEgfHwgIW90aGVyLm1fZGF0YQotICAgICAgICB8fCBtX2RhdGEgPT0gcmVpbnRlcnByZXRf
Y2FzdDxGb250UGxhdGZvcm1EYXRhUHJpdmF0ZSo+KC0xKSB8fCBvdGhlci5tX2RhdGEgPT0gcmVp
bnRlcnByZXRfY2FzdDxGb250UGxhdGZvcm1EYXRhUHJpdmF0ZSo+KC0xKSkKLSAgICAgICAgcmV0
dXJuICBmYWxzZTsKKyAgICBpZiAoIW1fZGF0YSB8fCAhb3RoZXIubV9kYXRhIHx8IG1fZGF0YS0+
aXNEZWxldGVkVmFsdWUgfHwgb3RoZXIubV9kYXRhLT5pc0RlbGV0ZWRWYWx1ZSkKKyAgICAgICAg
cmV0dXJuIGZhbHNlOwogCiAgICAgY29uc3QgYm9vbCBlcXVhbHMgPSAobV9kYXRhLT5zaXplID09
IG90aGVyLm1fZGF0YS0+c2l6ZQogICAgICAgICAgICAgICAgICAgICAgICAgICYmIG1fZGF0YS0+
Ym9sZCA9PSBvdGhlci5tX2RhdGEtPmJvbGQKQEAgLTExNCw3ICsxMDUsNyBAQCB1bnNpZ25lZCBG
b250UGxhdGZvcm1EYXRhOjpoYXNoKCkgY29uc3QKIHsKICAgICBpZiAoIW1fZGF0YSkKICAgICAg
ICAgcmV0dXJuIDA7Ci0gICAgaWYgKG1fZGF0YSA9PSByZWludGVycHJldF9jYXN0PEZvbnRQbGF0
Zm9ybURhdGFQcml2YXRlKj4oLTEpKQorICAgIGlmIChtX2RhdGEtPmlzRGVsZXRlZFZhbHVlKQog
ICAgICAgICByZXR1cm4gMTsKICAgICByZXR1cm4gcUhhc2gobV9kYXRhLT5mb250LnRvU3RyaW5n
KCkpCiAgICAgICAgICAgIF4gcUhhc2goKnJlaW50ZXJwcmV0X2Nhc3Q8cXVpbnQzMio+KCZtX2Rh
dGEtPnNpemUpKQo=
</data>
<flag name="review"
          id="75860"
          type_id="1"
          status="+"
          setter="kenneth"
    />
          </attachment>
      

    </bug>

</bugzilla>