<?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>152293</bug_id>
          
          <creation_ts>2015-12-14 21:29:48 -0800</creation_ts>
          <short_desc>[Cocoa] Use faster function to calculate glyph advances</short_desc>
          <delta_ts>2024-02-25 19:19:37 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>New Bugs</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>DUPLICATE</resolution>
          <dup_id>161119</dup_id>
          
          <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>ahmad.saleem792</cc>
    
    <cc>ntim</cc>
    
    <cc>vitor.roriz</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1149205</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-12-14 21:29:48 -0800</bug_when>
    <thetext>[Cocoa] Use faster function to calculate glyph advances</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149206</commentid>
    <comment_count>1</comment_count>
      <attachid>267343</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-12-14 21:30:21 -0800</bug_when>
    <thetext>Created attachment 267343
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149210</commentid>
    <comment_count>2</comment_count>
      <attachid>267343</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-12-14 21:45:46 -0800</bug_when>
    <thetext>Comment on attachment 267343
Patch

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

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:653
&gt; +    CTFontGetUnsummedAdvancesForGlyphsAndStyle(m_platformData.ctFont(), horizontal ? kCTFontOrientationHorizontal : kCTFontOrientationVertical, renderingStyle(platformData()), &amp;glyph, &amp;advance, 1)

This should probably be kCGFontRenderingStyleAntialiasing | kCGFontAntialiasingStyleUnfiltered</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149375</commentid>
    <comment_count>3</comment_count>
      <attachid>267390</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-12-15 13:36:24 -0800</bug_when>
    <thetext>Created attachment 267390
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149442</commentid>
    <comment_count>4</comment_count>
      <attachid>267411</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-12-15 16:39:12 -0800</bug_when>
    <thetext>Created attachment 267411
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149470</commentid>
    <comment_count>5</comment_count>
      <attachid>267419</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-12-15 18:50:43 -0800</bug_when>
    <thetext>Created attachment 267419
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149490</commentid>
    <comment_count>6</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2015-12-15 20:05:22 -0800</bug_when>
    <thetext>It looks like the existing CoreText function is fast enough now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149497</commentid>
    <comment_count>7</comment_count>
      <attachid>267419</attachid>
    <who name="Sam Weinig">sam</who>
    <bug_when>2015-12-15 20:54:31 -0800</bug_when>
    <thetext>Comment on attachment 267419
Patch

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

&gt; Source/WebCore/ChangeLog:8
&gt; +        Covered by existing tests.

This changelog could use information about what API you are switching to, and how it was performance tested (what tests? what was the speed up?)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1149625</commentid>
    <comment_count>8</comment_count>
      <attachid>267419</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-12-16 09:21:28 -0800</bug_when>
    <thetext>Comment on attachment 267419
Patch

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

&gt;&gt; Source/WebCore/ChangeLog:8
&gt;&gt; +        Covered by existing tests.
&gt; 
&gt; This changelog could use information about what API you are switching to, and how it was performance tested (what tests? what was the speed up?)

Could not agree more.

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:656
&gt; +#if (PLATFORM(MAC) &amp;&amp; __MAC_OS_X_VERSION_MIN_REQUIRED &gt;= 101200) || (PLATFORM(IOS) &amp;&amp; __IPHONE_OS_VERSION_MIN_REQUIRED &gt;= 100000)

Should have a blank line after this line.

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:663
&gt; +    CGSize advance = CGSizeZero;
&gt; +    bool horizontal = platformData().orientation() == Horizontal;
&gt; +    CTFontGetUnsummedAdvancesForGlyphsAndStyle(m_platformData.ctFont(), horizontal ? kCTFontOrientationHorizontal : kCTFontOrientationVertical, renderingStyle(platformData()), &amp;glyph, &amp;advance, 1);
&gt; +
&gt; +    return advance.width + m_syntheticBoldOffset;

Slightly peculiar paragraphing. I think this would read better without a blank line.

Seems we should have a helper function that turns one orientation into the other without the intermediate step of converting to a boolean.

&gt; Source/WebCore/platform/graphics/cocoa/FontCocoa.mm:712
&gt; +#endif

Should have a blank line before this line.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2016718</commentid>
    <comment_count>9</comment_count>
    <who name="Ahmad Saleem">ahmad.saleem792</who>
    <bug_when>2024-02-25 09:59:31 -0800</bug_when>
    <thetext>It seems that similar was implemented by following 179957@main in bug 161119. I think we can mark this as duplicate of other.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>2016759</commentid>
    <comment_count>10</comment_count>
    <who name="Tim Nguyen (:ntim)">ntim</who>
    <bug_when>2024-02-25 19:19:37 -0800</bug_when>
    <thetext>

*** This bug has been marked as a duplicate of bug 161119 ***</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267343</attachid>
            <date>2015-12-14 21:30:21 -0800</date>
            <delta_ts>2015-12-15 13:36:22 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152293-20151214212944.patch</filename>
            <type>text/plain</type>
            <size>3003</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MDYzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWMyMDdjNDEzOGY0ZTA1
NDg1YTdiNWFlMWJhMGFlN2ZkNDIwMDcxZC4uZDlmM2U3NDlhZWNmYzRlYWM0YWM4N2FhZjA1MjNh
MzBkZTliM2RkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTEyLTE0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBV
c2UgZmFzdGVyIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSBnbHlwaCBhZHZhbmNlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyMjkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaCk6CisgICAg
ICAgICogcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmg6CisKIDIwMTUtMTItMTQgIEFu
ZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc291cmNlVXNhZ2VP
dmVybGF5IHNob3VsZCBzaG93IEdDIHRpbWVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQppbmRleCBkNjA2MjVlZGJiZjNiODJm
NzY4Y2ZiNmZjODUwNmU4ZTc5MmM2MjVmLi42NzM0NTA1ZDJhMjY4OGU0ZDkyOTZmMmRkNWY5ODkz
Y2RhNTdmNzg5IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Gb250Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udENvY29hLm1tCkBAIC02NDksNiArNjQ5LDkgQEAgZmxvYXQgRm9udDo6cGxhdGZv
cm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogICAgIENHU2l6ZSBhZHZhbmNlID0g
Q0dTaXplWmVybzsKICAgICBib29sIGhvcml6b250YWwgPSBwbGF0Zm9ybURhdGEoKS5vcmllbnRh
dGlvbigpID09IEhvcml6b250YWw7CiAgICAgYm9vbCBwb3B1bGF0ZWRBZHZhbmNlID0gZmFsc2U7
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEyMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMDAwMCkKKyAgICBDVEZvbnRHZXRVbnN1bW1lZEFkdmFuY2VzRm9yR2x5cGhz
QW5kU3R5bGUobV9wbGF0Zm9ybURhdGEuY3RGb250KCksIGhvcml6b250YWwgPyBrQ1RGb250T3Jp
ZW50YXRpb25Ib3Jpem9udGFsIDoga0NURm9udE9yaWVudGF0aW9uVmVydGljYWwsIHJlbmRlcmlu
Z1N0eWxlKHBsYXRmb3JtRGF0YSgpKSwgJmdseXBoLCAmYWR2YW5jZSwgMSkKKyNlbHNlCiAgICAg
aWYgKChob3Jpem9udGFsIHx8IG1faXNCcm9rZW5JZGVvZ3JhcGhGYWxsYmFjaykgJiYgY2FuVXNl
RmFzdEdseXBoQWR2YW5jZUdldHRlcih0aGlzLT5wbGF0Zm9ybURhdGEoKSwgZ2x5cGgsIGFkdmFu
Y2UsIHBvcHVsYXRlZEFkdmFuY2UpKSB7CiAgICAgICAgIGZsb2F0IHBvaW50U2l6ZSA9IHBsYXRm
b3JtRGF0YSgpLm1fc2l6ZTsKICAgICAgICAgQ0dBZmZpbmVUcmFuc2Zvcm0gbSA9IENHQWZmaW5l
VHJhbnNmb3JtTWFrZVNjYWxlKHBvaW50U2l6ZSwgcG9pbnRTaXplKTsKQEAgLTY1OSw2ICs2NjIs
NyBAQCBmbG9hdCBGb250OjpwbGF0Zm9ybVdpZHRoRm9yR2x5cGgoR2x5cGggZ2x5cGgpIGNvbnN0
CiAgICAgICAgIH0KICAgICB9IGVsc2UgaWYgKCFwb3B1bGF0ZWRBZHZhbmNlKQogICAgICAgICBD
VEZvbnRHZXRBZHZhbmNlc0ZvckdseXBocyhtX3BsYXRmb3JtRGF0YS5jdEZvbnQoKSwgaG9yaXpv
bnRhbCA/IGtDVEZvbnRPcmllbnRhdGlvbkhvcml6b250YWwgOiBrQ1RGb250T3JpZW50YXRpb25W
ZXJ0aWNhbCwgJmdseXBoLCAmYWR2YW5jZSwgMSk7CisjZW5kaWYKIAogICAgIHJldHVybiBhZHZh
bmNlLndpZHRoICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OwogfQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmggYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaAppbmRleCBkNmM5YmJlZWRmZjUwYzdk
NWQ0YjgwZDgwZDExOTBmMWM0NzRmMjg1Li5lODc0NTAxZjZkZGEyOGExZWE0N2Q2ZTU5ZDNmNmQ4
YjkwODg4OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2Ev
Q29yZVRleHRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQ29y
ZVRleHRTUEkuaApAQCAtMTIyLDYgKzEyMiw4IEBAIGJvb2wgQ1RGb250SXNBcHBsZUNvbG9yRW1v
amkoQ1RGb250UmVmKTsKIGJvb2wgQ1RGb250RGVzY3JpcHRvcklzU3lzdGVtVUlGb250KENURm9u
dERlc2NyaXB0b3JSZWYpOwogQ1RGb250UmVmIENURm9udENyZWF0ZUZvckNoYXJhY3RlcnMoQ1RG
b250UmVmIGN1cnJlbnRGb250LCBjb25zdCBVVEYxNkNoYXIgKmNoYXJhY3RlcnMsIENGSW5kZXgg
bGVuZ3RoLCBDRkluZGV4ICpjb3ZlcmVkTGVuZ3RoKTsKIAordm9pZCBDVEZvbnRHZXRVbnN1bW1l
ZEFkdmFuY2VzRm9yR2x5cGhzQW5kU3R5bGUoQ1RGb250UmVmLCBDVEZvbnRPcmllbnRhdGlvbiwg
Q0dGb250UmVuZGVyaW5nU3R5bGUsIGNvbnN0IENHR2x5cGggZ2x5cGhzW10sIENHU2l6ZSBhZHZh
bmNlc1tdLCBDRkluZGV4IGNvdW50KTsKKwogfQogCiAjZW5kaWYK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267390</attachid>
            <date>2015-12-15 13:36:24 -0800</date>
            <delta_ts>2015-12-15 16:39:09 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152293-20151215133547.patch</filename>
            <type>text/plain</type>
            <size>3004</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MDkzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWMyMDdjNDEzOGY0ZTA1
NDg1YTdiNWFlMWJhMGFlN2ZkNDIwMDcxZC4uZDlmM2U3NDlhZWNmYzRlYWM0YWM4N2FhZjA1MjNh
MzBkZTliM2RkNiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTEyLTE0ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBV
c2UgZmFzdGVyIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSBnbHlwaCBhZHZhbmNlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyMjkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaCk6CisgICAg
ICAgICogcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmg6CisKIDIwMTUtMTItMTQgIEFu
ZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUuY29tPgogCiAgICAgICAgIFJlc291cmNlVXNhZ2VP
dmVybGF5IHNob3VsZCBzaG93IEdDIHRpbWVycy4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbSBiL1NvdXJjZS9XZWJDb3JlL3Bs
YXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5tbQppbmRleCBkNjA2MjVlZGJiZjNiODJm
NzY4Y2ZiNmZjODUwNmU4ZTc5MmM2MjVmLi44NWQ4ZDg4ZjUyOWVhOTk2ZmJlMWIwMjZkZDQ0OWMy
YjUwNTYwODc3IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9j
b2NvYS9Gb250Q29jb2EubW0KKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
Y29jb2EvRm9udENvY29hLm1tCkBAIC02NDksNiArNjQ5LDkgQEAgZmxvYXQgRm9udDo6cGxhdGZv
cm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25zdAogICAgIENHU2l6ZSBhZHZhbmNlID0g
Q0dTaXplWmVybzsKICAgICBib29sIGhvcml6b250YWwgPSBwbGF0Zm9ybURhdGEoKS5vcmllbnRh
dGlvbigpID09IEhvcml6b250YWw7CiAgICAgYm9vbCBwb3B1bGF0ZWRBZHZhbmNlID0gZmFsc2U7
CisjaWYgKFBMQVRGT1JNKE1BQykgJiYgX19NQUNfT1NfWF9WRVJTSU9OX01JTl9SRVFVSVJFRCA+
PSAxMDEyMDApIHx8IChQTEFURk9STShJT1MpICYmIF9fSVBIT05FX09TX1ZFUlNJT05fTUlOX1JF
UVVJUkVEID49IDEwMDAwMCkKKyAgICBDVEZvbnRHZXRVbnN1bW1lZEFkdmFuY2VzRm9yR2x5cGhz
QW5kU3R5bGUobV9wbGF0Zm9ybURhdGEuY3RGb250KCksIGhvcml6b250YWwgPyBrQ1RGb250T3Jp
ZW50YXRpb25Ib3Jpem9udGFsIDoga0NURm9udE9yaWVudGF0aW9uVmVydGljYWwsIHJlbmRlcmlu
Z1N0eWxlKHBsYXRmb3JtRGF0YSgpKSwgJmdseXBoLCAmYWR2YW5jZSwgMSk7CisjZWxzZQogICAg
IGlmICgoaG9yaXpvbnRhbCB8fCBtX2lzQnJva2VuSWRlb2dyYXBoRmFsbGJhY2spICYmIGNhblVz
ZUZhc3RHbHlwaEFkdmFuY2VHZXR0ZXIodGhpcy0+cGxhdGZvcm1EYXRhKCksIGdseXBoLCBhZHZh
bmNlLCBwb3B1bGF0ZWRBZHZhbmNlKSkgewogICAgICAgICBmbG9hdCBwb2ludFNpemUgPSBwbGF0
Zm9ybURhdGEoKS5tX3NpemU7CiAgICAgICAgIENHQWZmaW5lVHJhbnNmb3JtIG0gPSBDR0FmZmlu
ZVRyYW5zZm9ybU1ha2VTY2FsZShwb2ludFNpemUsIHBvaW50U2l6ZSk7CkBAIC02NTksNiArNjYy
LDcgQEAgZmxvYXQgRm9udDo6cGxhdGZvcm1XaWR0aEZvckdseXBoKEdseXBoIGdseXBoKSBjb25z
dAogICAgICAgICB9CiAgICAgfSBlbHNlIGlmICghcG9wdWxhdGVkQWR2YW5jZSkKICAgICAgICAg
Q1RGb250R2V0QWR2YW5jZXNGb3JHbHlwaHMobV9wbGF0Zm9ybURhdGEuY3RGb250KCksIGhvcml6
b250YWwgPyBrQ1RGb250T3JpZW50YXRpb25Ib3Jpem9udGFsIDoga0NURm9udE9yaWVudGF0aW9u
VmVydGljYWwsICZnbHlwaCwgJmFkdmFuY2UsIDEpOworI2VuZGlmCiAKICAgICByZXR1cm4gYWR2
YW5jZS53aWR0aCArIG1fc3ludGhldGljQm9sZE9mZnNldDsKIH0KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oIGIvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmgKaW5kZXggZDZjOWJiZWVkZmY1MGM3
ZDVkNGI4MGQ4MGQxMTkwZjFjNDc0ZjI4NS4uZTg3NDUwMWY2ZGRhMjhhMWVhNDdkNmU1OWQzZjZk
OGI5MDg4ODkxZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29h
L0NvcmVUZXh0U1BJLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0Nv
cmVUZXh0U1BJLmgKQEAgLTEyMiw2ICsxMjIsOCBAQCBib29sIENURm9udElzQXBwbGVDb2xvckVt
b2ppKENURm9udFJlZik7CiBib29sIENURm9udERlc2NyaXB0b3JJc1N5c3RlbVVJRm9udChDVEZv
bnREZXNjcmlwdG9yUmVmKTsKIENURm9udFJlZiBDVEZvbnRDcmVhdGVGb3JDaGFyYWN0ZXJzKENU
Rm9udFJlZiBjdXJyZW50Rm9udCwgY29uc3QgVVRGMTZDaGFyICpjaGFyYWN0ZXJzLCBDRkluZGV4
IGxlbmd0aCwgQ0ZJbmRleCAqY292ZXJlZExlbmd0aCk7CiAKK3ZvaWQgQ1RGb250R2V0VW5zdW1t
ZWRBZHZhbmNlc0ZvckdseXBoc0FuZFN0eWxlKENURm9udFJlZiwgQ1RGb250T3JpZW50YXRpb24s
IENHRm9udFJlbmRlcmluZ1N0eWxlLCBjb25zdCBDR0dseXBoIGdseXBoc1tdLCBDR1NpemUgYWR2
YW5jZXNbXSwgQ0ZJbmRleCBjb3VudCk7CisKIH0KIAogI2VuZGlmCg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267411</attachid>
            <date>2015-12-15 16:39:12 -0800</date>
            <delta_ts>2015-12-15 18:50:40 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152293-20151215163834.patch</filename>
            <type>text/plain</type>
            <size>2918</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmE3ZDI5NDZhZGJjYzk4
ZDFhZjk0NWY3OTk4MTFiMTM0NjQyODVjNi4uMzJkMTM3ZjU5YWUxNWQ5NDA4MzMyMTIzOTkyYzQ3
OGY2NzU2ZWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTEyLTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBV
c2UgZmFzdGVyIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSBnbHlwaCBhZHZhbmNlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyMjkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaCk6CisgICAg
ICAgICogcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmg6CisKIDIwMTUtMTItMTUgIFRp
bW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSB0
byBmaXggdGhlIENNYWtlIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KaW5kZXggZjhiYjU3MTIwZDA3OTA1ZDYzODNmMjk0
ODhiYmRiNDYzYzI1MGRlMC4uYzAzYzZiMGQzMTJmZjZlMTVhZDA0YWI4NWY5YTk1MTEyZWFhNDEz
MiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRDb2NvYS5tbQpAQCAtNjgzLDYgKzY4Myw5IEBAIGZsb2F0IEZvbnQ6OnBsYXRmb3JtV2lkdGhG
b3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIHsKICAgICBDR1NpemUgYWR2YW5jZSA9IENHU2l6
ZVplcm87CiAgICAgYm9vbCBob3Jpem9udGFsID0gcGxhdGZvcm1EYXRhKCkub3JpZW50YXRpb24o
KSA9PSBIb3Jpem9udGFsOworI2lmIChQTEFURk9STShNQUMpICYmIF9fTUFDX09TX1hfVkVSU0lP
Tl9NSU5fUkVRVUlSRUQgPj0gMTAxMjAwKSB8fCAoUExBVEZPUk0oSU9TKSAmJiBfX0lQSE9ORV9P
U19WRVJTSU9OX01JTl9SRVFVSVJFRCA+PSAxMDAwMDApCisgICAgQ1RGb250R2V0VW5zdW1tZWRB
ZHZhbmNlc0ZvckdseXBoc0FuZFN0eWxlKG1fcGxhdGZvcm1EYXRhLmN0Rm9udCgpLCBob3Jpem9u
dGFsID8ga0NURm9udE9yaWVudGF0aW9uSG9yaXpvbnRhbCA6IGtDVEZvbnRPcmllbnRhdGlvblZl
cnRpY2FsLCByZW5kZXJpbmdTdHlsZShwbGF0Zm9ybURhdGEoKSksICZnbHlwaCwgJmFkdmFuY2Us
IDEpOworI2Vsc2UKICAgICBib29sIHBvcHVsYXRlZEFkdmFuY2UgPSBmYWxzZTsKICAgICBpZiAo
KGhvcml6b250YWwgfHwgbV9pc0Jyb2tlbklkZW9ncmFwaEZhbGxiYWNrKSAmJiBjYW5Vc2VGYXN0
R2x5cGhBZHZhbmNlR2V0dGVyKHRoaXMtPnBsYXRmb3JtRGF0YSgpLCBnbHlwaCwgYWR2YW5jZSwg
cG9wdWxhdGVkQWR2YW5jZSkpIHsKICAgICAgICAgZmxvYXQgcG9pbnRTaXplID0gcGxhdGZvcm1E
YXRhKCkubV9zaXplOwpAQCAtNjk0LDYgKzY5Nyw3IEBAIGZsb2F0IEZvbnQ6OnBsYXRmb3JtV2lk
dGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKICAgICAgICAgfQogICAgIH0gZWxzZSBpZiAo
IXBvcHVsYXRlZEFkdmFuY2UpCiAgICAgICAgIENURm9udEdldEFkdmFuY2VzRm9yR2x5cGhzKG1f
cGxhdGZvcm1EYXRhLmN0Rm9udCgpLCBob3Jpem9udGFsID8ga0NURm9udE9yaWVudGF0aW9uSG9y
aXpvbnRhbCA6IGtDVEZvbnRPcmllbnRhdGlvblZlcnRpY2FsLCAmZ2x5cGgsICZhZHZhbmNlLCAx
KTsKKyNlbmRpZgogCiAgICAgcmV0dXJuIGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRpY0JvbGRP
ZmZzZXQ7CiB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2Ev
Q29yZVRleHRTUEkuaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4
dFNQSS5oCmluZGV4IGQ2YzliYmVlZGZmNTBjN2Q1ZDRiODBkODBkMTE5MGYxYzQ3NGYyODUuLmU4
NzQ1MDFmNmRkYTI4YTFlYTQ3ZDZlNTlkM2Y2ZDhiOTA4ODg5MWUgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL3NwaS9jb2NvYS9Db3JlVGV4dFNQSS5oCkBAIC0xMjIsNiArMTIyLDgg
QEAgYm9vbCBDVEZvbnRJc0FwcGxlQ29sb3JFbW9qaShDVEZvbnRSZWYpOwogYm9vbCBDVEZvbnRE
ZXNjcmlwdG9ySXNTeXN0ZW1VSUZvbnQoQ1RGb250RGVzY3JpcHRvclJlZik7CiBDVEZvbnRSZWYg
Q1RGb250Q3JlYXRlRm9yQ2hhcmFjdGVycyhDVEZvbnRSZWYgY3VycmVudEZvbnQsIGNvbnN0IFVU
RjE2Q2hhciAqY2hhcmFjdGVycywgQ0ZJbmRleCBsZW5ndGgsIENGSW5kZXggKmNvdmVyZWRMZW5n
dGgpOwogCit2b2lkIENURm9udEdldFVuc3VtbWVkQWR2YW5jZXNGb3JHbHlwaHNBbmRTdHlsZShD
VEZvbnRSZWYsIENURm9udE9yaWVudGF0aW9uLCBDR0ZvbnRSZW5kZXJpbmdTdHlsZSwgY29uc3Qg
Q0dHbHlwaCBnbHlwaHNbXSwgQ0dTaXplIGFkdmFuY2VzW10sIENGSW5kZXggY291bnQpOworCiB9
CiAKICNlbmRpZgo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>267419</attachid>
            <date>2015-12-15 18:50:43 -0800</date>
            <delta_ts>2015-12-16 09:21:28 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-152293-20151215185005.patch</filename>
            <type>text/plain</type>
            <size>2829</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk0MTIzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmE3ZDI5NDZhZGJjYzk4
ZDFhZjk0NWY3OTk4MTFiMTM0NjQyODVjNi4uMzJkMTM3ZjU5YWUxNWQ5NDA4MzMyMTIzOTkyYzQ3
OGY2NzU2ZWFmMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDE2IEBACisyMDE1LTEyLTE1ICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgW0NvY29hXSBV
c2UgZmFzdGVyIGZ1bmN0aW9uIHRvIGNhbGN1bGF0ZSBnbHlwaCBhZHZhbmNlcworICAgICAgICBo
dHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTUyMjkzCisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ292ZXJlZCBieSBleGlzdGlu
ZyB0ZXN0cy4KKworICAgICAgICAqIHBsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0ZvbnRDb2NvYS5t
bToKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OnBsYXRmb3JtV2lkdGhGb3JHbHlwaCk6CisgICAg
ICAgICogcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmg6CisKIDIwMTUtMTItMTUgIFRp
bW90aHkgSG9ydG9uICA8dGltb3RoeV9ob3J0b25AYXBwbGUuY29tPgogCiAgICAgICAgIFRyeSB0
byBmaXggdGhlIENNYWtlIGJ1aWxkCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0gYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9n
cmFwaGljcy9jb2NvYS9Gb250Q29jb2EubW0KaW5kZXggZjhiYjU3MTIwZDA3OTA1ZDYzODNmMjk0
ODhiYmRiNDYzYzI1MGRlMC4uNTI3MDNiNDRkZDY1OGUwYmFjNTU4ZGNhNzg4Nzg0M2JjNDFhYWNj
ZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvY29jb2EvRm9u
dENvY29hLm1tCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2NvY29hL0Zv
bnRDb2NvYS5tbQpAQCAtNjUzLDYgKzY1MywxOCBAQCBzdGF0aWMgaW5saW5lIENHRm9udFJlbmRl
cmluZ1N0eWxlIHJlbmRlcmluZ1N0eWxlKGNvbnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmbwog
I2VuZGlmCiB9CiAKKyNpZiAoUExBVEZPUk0oTUFDKSAmJiBfX01BQ19PU19YX1ZFUlNJT05fTUlO
X1JFUVVJUkVEID49IDEwMTIwMCkgfHwgKFBMQVRGT1JNKElPUykgJiYgX19JUEhPTkVfT1NfVkVS
U0lPTl9NSU5fUkVRVUlSRUQgPj0gMTAwMDAwKQorZmxvYXQgRm9udDo6cGxhdGZvcm1XaWR0aEZv
ckdseXBoKEdseXBoIGdseXBoKSBjb25zdAoreworICAgIENHU2l6ZSBhZHZhbmNlID0gQ0dTaXpl
WmVybzsKKyAgICBib29sIGhvcml6b250YWwgPSBwbGF0Zm9ybURhdGEoKS5vcmllbnRhdGlvbigp
ID09IEhvcml6b250YWw7CisgICAgQ1RGb250R2V0VW5zdW1tZWRBZHZhbmNlc0ZvckdseXBoc0Fu
ZFN0eWxlKG1fcGxhdGZvcm1EYXRhLmN0Rm9udCgpLCBob3Jpem9udGFsID8ga0NURm9udE9yaWVu
dGF0aW9uSG9yaXpvbnRhbCA6IGtDVEZvbnRPcmllbnRhdGlvblZlcnRpY2FsLCByZW5kZXJpbmdT
dHlsZShwbGF0Zm9ybURhdGEoKSksICZnbHlwaCwgJmFkdmFuY2UsIDEpOworCisgICAgcmV0dXJu
IGFkdmFuY2Uud2lkdGggKyBtX3N5bnRoZXRpY0JvbGRPZmZzZXQ7Cit9CisKKyNlbHNlCisKIHN0
YXRpYyBpbmxpbmUgT3B0aW9uYWw8Q0dTaXplPiBhZHZhbmNlRm9yQ29sb3JCaXRtYXBGb250KGNv
bnN0IEZvbnRQbGF0Zm9ybURhdGEmIHBsYXRmb3JtRGF0YSwgR2x5cGggZ2x5cGgpCiB7CiAjaWYg
UExBVEZPUk0oTUFDKQpAQCAtNjk3LDYgKzcwOSw3IEBAIGZsb2F0IEZvbnQ6OnBsYXRmb3JtV2lk
dGhGb3JHbHlwaChHbHlwaCBnbHlwaCkgY29uc3QKIAogICAgIHJldHVybiBhZHZhbmNlLndpZHRo
ICsgbV9zeW50aGV0aWNCb2xkT2Zmc2V0OwogfQorI2VuZGlmCiAKIHN0cnVjdCBQcm92aWRlcklu
Zm8gewogICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vc3BpL2NvY29hL0NvcmVUZXh0U1BJLmggYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRleHRTUEkuaAppbmRleCBkNmM5YmJlZWRmZjUwYzdkNWQ0
YjgwZDgwZDExOTBmMWM0NzRmMjg1Li5lODc0NTAxZjZkZGEyOGExZWE0N2Q2ZTU5ZDNmNmQ4Yjkw
ODg4OTFlIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQ29y
ZVRleHRTUEkuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9zcGkvY29jb2EvQ29yZVRl
eHRTUEkuaApAQCAtMTIyLDYgKzEyMiw4IEBAIGJvb2wgQ1RGb250SXNBcHBsZUNvbG9yRW1vamko
Q1RGb250UmVmKTsKIGJvb2wgQ1RGb250RGVzY3JpcHRvcklzU3lzdGVtVUlGb250KENURm9udERl
c2NyaXB0b3JSZWYpOwogQ1RGb250UmVmIENURm9udENyZWF0ZUZvckNoYXJhY3RlcnMoQ1RGb250
UmVmIGN1cnJlbnRGb250LCBjb25zdCBVVEYxNkNoYXIgKmNoYXJhY3RlcnMsIENGSW5kZXggbGVu
Z3RoLCBDRkluZGV4ICpjb3ZlcmVkTGVuZ3RoKTsKIAordm9pZCBDVEZvbnRHZXRVbnN1bW1lZEFk
dmFuY2VzRm9yR2x5cGhzQW5kU3R5bGUoQ1RGb250UmVmLCBDVEZvbnRPcmllbnRhdGlvbiwgQ0dG
b250UmVuZGVyaW5nU3R5bGUsIGNvbnN0IENHR2x5cGggZ2x5cGhzW10sIENHU2l6ZSBhZHZhbmNl
c1tdLCBDRkluZGV4IGNvdW50KTsKKwogfQogCiAjZW5kaWYK
</data>
<flag name="review"
          id="292469"
          type_id="1"
          status="+"
          setter="darin"
    />
          </attachment>
      

    </bug>

</bugzilla>