<?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>137354</bug_id>
          
          <creation_ts>2014-10-02 12:53:28 -0700</creation_ts>
          <short_desc>TextRun::length() should return an unsigned</short_desc>
          <delta_ts>2014-10-03 10:56: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>bfulgham</cc>
    
    <cc>commit-queue</cc>
    
    <cc>dino</cc>
    
    <cc>d-r</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>fmalita</cc>
    
    <cc>glenn</cc>
    
    <cc>gyuyoung.kim</cc>
    
    <cc>jonlee</cc>
    
    <cc>koivisto</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>pdr</cc>
    
    <cc>schenney</cc>
    
    <cc>sergio</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>thorton</cc>
    
    <cc>zalan</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1038949</commentid>
    <comment_count>0</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-10-02 12:53:28 -0700</bug_when>
    <thetext>TextRun::length() should return an unsigned</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1038950</commentid>
    <comment_count>1</comment_count>
      <attachid>239131</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-10-02 13:03:26 -0700</bug_when>
    <thetext>Created attachment 239131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039017</commentid>
    <comment_count>2</comment_count>
      <attachid>239149</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-10-02 15:57:45 -0700</bug_when>
    <thetext>Created attachment 239149
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039023</commentid>
    <comment_count>3</comment_count>
      <attachid>239150</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-10-02 16:12:22 -0700</bug_when>
    <thetext>Created attachment 239150
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039164</commentid>
    <comment_count>4</comment_count>
      <attachid>239150</attachid>
    <who name="Antti Koivisto">koivisto</who>
    <bug_when>2014-10-03 01:53:37 -0700</bug_when>
    <thetext>Comment on attachment 239150
Patch

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

&gt; Source/WebCore/platform/graphics/GlyphBuffer.h:127
&gt; +    static const unsigned kNoOffset = UINT_MAX;

You could drop the initial &apos;k&apos;. That doesn&apos;t match our current style. 
Using std::numeric_limits&lt;unsigned&gt;::max() would be more stylish than UINT_MAX.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039232</commentid>
    <comment_count>5</comment_count>
      <attachid>239150</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-10-03 09:22:31 -0700</bug_when>
    <thetext>Comment on attachment 239150
Patch

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

&gt;&gt; Source/WebCore/platform/graphics/GlyphBuffer.h:127
&gt;&gt; +    static const unsigned kNoOffset = UINT_MAX;
&gt; 
&gt; You could drop the initial &apos;k&apos;. That doesn&apos;t match our current style. 
&gt; Using std::numeric_limits&lt;unsigned&gt;::max() would be more stylish than UINT_MAX.

The Microsoft compiler doesn&apos;t support constexpr, which means that it errors when it sees something that looks like a function here :( Originally it was std::numeric_limits&lt;unsigned&gt;::max() but I had to change it when the windows EFL bot went red.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039233</commentid>
    <comment_count>6</comment_count>
      <attachid>239150</attachid>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-10-03 09:30:36 -0700</bug_when>
    <thetext>Comment on attachment 239150
Patch

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

&gt;&gt;&gt; Source/WebCore/platform/graphics/GlyphBuffer.h:127
&gt;&gt;&gt; +    static const unsigned kNoOffset = UINT_MAX;
&gt;&gt; 
&gt;&gt; You could drop the initial &apos;k&apos;. That doesn&apos;t match our current style. 
&gt;&gt; Using std::numeric_limits&lt;unsigned&gt;::max() would be more stylish than UINT_MAX.
&gt; 
&gt; The Microsoft compiler doesn&apos;t support constexpr, which means that it errors when it sees something that looks like a function here :( Originally it was std::numeric_limits&lt;unsigned&gt;::max() but I had to change it when the windows EFL bot went red.

***Windows EWS bot</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039242</commentid>
    <comment_count>7</comment_count>
    <who name="Myles C. Maxfield">mmaxfield</who>
    <bug_when>2014-10-03 09:57:44 -0700</bug_when>
    <thetext>http://trac.webkit.org/changeset/174269</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1039263</commentid>
    <comment_count>8</comment_count>
    <who name="Brent Fulgham">bfulgham</who>
    <bug_when>2014-10-03 10:56:55 -0700</bug_when>
    <thetext>Windows build fix checked in under &lt;http://trac.webkit.org/changeset/174272&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239131</attachid>
            <date>2014-10-02 13:03:26 -0700</date>
            <delta_ts>2014-10-02 15:57:40 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137354-20141002130328.patch</filename>
            <type>text/plain</type>
            <size>11059</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTMyYzlhYTE4NTY0Yzkw
ZDg5MjZlN2RhYmJmOTBhZmVhYzE3ZmU2MC4uNjY1Y2IyZDlkN2U0YjI5N2UxYjUzMGZhZmZkYWQy
ZTllYjJkN2NjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE0LTEwLTAyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgVGV4dFJ1bjo6
bGVuZ3RoKCkgc2hvdWxkIHJldHVybiBhbiB1bnNpZ25lZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MzU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGUgbV9sZW4gaW5zdGFuY2Ug
dmFyaWFibGUgdGhhdCBiYWNrcyB0aGUgVGV4dFJ1bjo6bGVuZ3RoKCkgZnVuY3Rpb24gaXMKKyAg
ICAgICAgYW4gdW5zaWduZWQsIGJ1dCB0aGUgbGVuZ3RoKCkgZnVuY3Rpb24gaW1wbGljaXRseSBj
YXN0cyB0aGF0IHRvIGFuIGludCB3aGVuCisgICAgICAgIHJldHVybmluZyBpdC4gVGhpcyBwYXRj
aCBtYWtlcyB0aGUgZnVuY3Rpb24gcmV0dXJuIGFuIHVuc2lnbmVkLCBhbmQgbWFrZXMgdGhlCisg
ICAgICAgIGRvIGFueSBjYXN0aW5nIGlmIG5lY2Vzc2FyeS4KKworICAgICAgICBObyBuZXcgdGVz
dHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdUZXh0
KTogQ2FzdCByZXN1bHQgdG8gaW50LgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0VtcGhh
c2lzTWFya3MpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmFkanVzdFNlbGVjdGlv
blJlY3RGb3JUZXh0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVW5kZXJsaW5l
VHlwZSk6IFVwZGF0ZSBpbnRlcm5hbCB0eXBlIHRvIGJlIHVuc2lnbmVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaEJ1
ZmZlcjo6YWRkKTogVXBkYXRlIHNlbnRpbmVsIHZhbHVlIHRvIGJlIHVuc2lnbmVkLgorICAgICAg
ICAoV2ViQ29yZTo6R2x5cGhCdWZmZXI6OnNhdmVPZmZzZXRzSW5TdHJpbmcpOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOiBVcGRhdGUgaW50
ZXJuYWwgdHlwZSB0byBiZSB1bnNpZ25lZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0UnVuLmg6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVuOjpsZW5ndGgpOiBVcGRhdGUgcmV0
dXJuIHR5cGUuCisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVuOjpjaGFyYWN0ZXJzTGVuZ3RoKTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXaWR0aEl0ZXJhdG9yOjphZHZhbmNlSW50ZXJuYWwpOiBDYXN0IHJl
c3VsdCB0byBpbnQuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljc0J1aWxk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dE1ldHJpY3NCdWlsZGVyOjpjdXJyZW50
Q2hhcmFjdGVyU3RhcnRzU3Vycm9nYXRlUGFpcik6IFJlbW92ZQorICAgICAgICB1bm5lY2Vzc2Fy
eSBjYXN0cy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRNZXRyaWNzQnVpbGRlcjo6YWR2YW5j
ZSk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdGb250RGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdGb250RGF0YTo6YXBwbHlTVkdHbHlwaFNlbGVjdGlvbik6IENhc3QgcmVzdWx0IHRv
IGludC4KKwogMjAxNC0xMC0wMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBmb3IgRXZlbnQgY2xhc3Nlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAppbmRleCA2YTkzN2E5ZTA0
ZWFjMTZkNGNjMTlhNzYyY2ZmNTIzZjQ0YjIxN2E2Li5mZjZmNWQwZThjOTlmOGY5OTQxMzhhNWQw
ZmRiOWE4N2U0NTg2YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmNwcApAQCAtMzQxLDcgKzM0MSw3IEBAIGZsb2F0IEZvbnQ6OmRyYXdUZXh0KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvCiAKICAgICBD
b2RlUGF0aCBjb2RlUGF0aFRvVXNlID0gY29kZVBhdGgocnVuKTsKICAgICAvLyBGSVhNRTogVXNl
IHRoZSBmYXN0IGNvZGUgcGF0aCBvbmNlIGl0IGhhbmRsZXMgcGFydGlhbCBydW5zIHdpdGgga2Vy
bmluZyBhbmQgbGlnYXR1cmVzLiBTZWUgaHR0cDovL3dlYmtpdC5vcmcvYi8xMDAwNTAKLSAgICBp
ZiAoY29kZVBhdGhUb1VzZSAhPSBDb21wbGV4ICYmIHR5cGVzZXR0aW5nRmVhdHVyZXMoKSAmJiAo
ZnJvbSB8fCB0byAhPSBydW4ubGVuZ3RoKCkpICYmICFpc0RyYXduV2l0aFNWR0ZvbnQocnVuKSkK
KyAgICBpZiAoY29kZVBhdGhUb1VzZSAhPSBDb21wbGV4ICYmIHR5cGVzZXR0aW5nRmVhdHVyZXMo
KSAmJiAoZnJvbSB8fCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odG8pICE9IHJ1bi5sZW5ndGgoKSkg
JiYgIWlzRHJhd25XaXRoU1ZHRm9udChydW4pKQogICAgICAgICBjb2RlUGF0aFRvVXNlID0gQ29t
cGxleDsKIAogICAgIGlmIChjb2RlUGF0aFRvVXNlICE9IENvbXBsZXgpCkBAIC0zNjAsNyArMzYw
LDcgQEAgdm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QKIAogICAgIENvZGVQYXRoIGNvZGVQYXRoVG9V
c2UgPSBjb2RlUGF0aChydW4pOwogICAgIC8vIEZJWE1FOiBVc2UgdGhlIGZhc3QgY29kZSBwYXRo
IG9uY2UgaXQgaGFuZGxlcyBwYXJ0aWFsIHJ1bnMgd2l0aCBrZXJuaW5nIGFuZCBsaWdhdHVyZXMu
IFNlZSBodHRwOi8vd2Via2l0Lm9yZy9iLzEwMDA1MAotICAgIGlmIChjb2RlUGF0aFRvVXNlICE9
IENvbXBsZXggJiYgdHlwZXNldHRpbmdGZWF0dXJlcygpICYmIChmcm9tIHx8IHRvICE9IHJ1bi5s
ZW5ndGgoKSkgJiYgIWlzRHJhd25XaXRoU1ZHRm9udChydW4pKQorICAgIGlmIChjb2RlUGF0aFRv
VXNlICE9IENvbXBsZXggJiYgdHlwZXNldHRpbmdGZWF0dXJlcygpICYmIChmcm9tIHx8IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPih0bykgIT0gcnVuLmxlbmd0aCgpKSAmJiAhaXNEcmF3bldpdGhTVkdG
b250KHJ1bikpCiAgICAgICAgIGNvZGVQYXRoVG9Vc2UgPSBDb21wbGV4OwogCiAgICAgaWYgKGNv
ZGVQYXRoVG9Vc2UgIT0gQ29tcGxleCkKQEAgLTUxMyw3ICs1MTMsNyBAQCB2b2lkIEZvbnQ6OmFk
anVzdFNlbGVjdGlvblJlY3RGb3JUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgTGF5b3V0UmVjdCYg
c2VsZWN0aW9uUgogCiAgICAgQ29kZVBhdGggY29kZVBhdGhUb1VzZSA9IGNvZGVQYXRoKHJ1bik7
CiAgICAgLy8gRklYTUU6IFVzZSB0aGUgZmFzdCBjb2RlIHBhdGggb25jZSBpdCBoYW5kbGVzIHBh
cnRpYWwgcnVucyB3aXRoIGtlcm5pbmcgYW5kIGxpZ2F0dXJlcy4gU2VlIGh0dHA6Ly93ZWJraXQu
b3JnL2IvMTAwMDUwCi0gICAgaWYgKGNvZGVQYXRoVG9Vc2UgIT0gQ29tcGxleCAmJiB0eXBlc2V0
dGluZ0ZlYXR1cmVzKCkgJiYgKGZyb20gfHwgdG8gIT0gcnVuLmxlbmd0aCgpKSAmJiAhaXNEcmF3
bldpdGhTVkdGb250KHJ1bikpCisgICAgaWYgKGNvZGVQYXRoVG9Vc2UgIT0gQ29tcGxleCAmJiB0
eXBlc2V0dGluZ0ZlYXR1cmVzKCkgJiYgKGZyb20gfHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHRv
KSAhPSBydW4ubGVuZ3RoKCkpICYmICFpc0RyYXduV2l0aFNWR0ZvbnQocnVuKSkKICAgICAgICAg
Y29kZVBhdGhUb1VzZSA9IENvbXBsZXg7CiAKICAgICBpZiAoY29kZVBhdGhUb1VzZSAhPSBDb21w
bGV4KQpAQCAtMTA1OSw3ICsxMDU5LDcgQEAgR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpHbHlwaFVu
ZGVybGluZVR5cGUgY29tcHV0ZVVuZGVybGluZVR5cGUoY29uc3QgVGV4dFJ1biYgdGUKICAgICAv
LyBJbiBnZW5lcmFsLCB3ZSB3YW50IHRvIHNraXAgZGVzY2VuZGVycy4gSG93ZXZlciwgc2tpcHBp
bmcgZGVzY2VuZGVycyBvbiBDSksgY2hhcmFjdGVycyBsZWFkcyB0byB1bmRlc2lyYWJsZSByZW5k
ZXJpbmdzLAogICAgIC8vIHNvIHdlIHdhbnQgdG8gZHJhdyB0aHJvdWdoIENKSyBjaGFyYWN0ZXJz
IChvbiBhIGNoYXJhY3Rlci1ieS1jaGFyYWN0ZXIgYmFzaXMpLgogICAgIFVDaGFyMzIgYmFzZUNo
YXJhY3RlcjsKLSAgICBpbnQgb2Zmc2V0SW5TdHJpbmcgPSBnbHlwaEJ1ZmZlci5vZmZzZXRJblN0
cmluZyhpbmRleCk7CisgICAgdW5zaWduZWQgb2Zmc2V0SW5TdHJpbmcgPSBnbHlwaEJ1ZmZlci5v
ZmZzZXRJblN0cmluZyhpbmRleCk7CiAKICAgICBpZiAob2Zmc2V0SW5TdHJpbmcgPT0gR2x5cGhC
dWZmZXI6OmtOb09mZnNldCkgewogICAgICAgICAvLyBXZSBoYXZlIG5vIGlkZWEgd2hpY2ggY2hh
cmFjdGVyIHNwYXduZWQgdGhpcyBnbHlwaC4gQmFpbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oCmluZGV4IDNjNTkzNWZjNmQyYzAyNDc2MDdlMzMz
MjRkMzkwYjA1ZDdmODliNDYuLjVkMGUxYzQzNDk1NmJmY2YzYmMxYjA5NTFjMTQyYzg4MDgxMWE5
YmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIu
aApAQCAtMTI0LDggKzEyNCw4IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KICAgICAKLSAgICBz
dGF0aWMgY29uc3QgaW50IGtOb09mZnNldCA9IC0xOwotICAgIHZvaWQgYWRkKEdseXBoIGdseXBo
LCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udCwgZmxvYXQgd2lkdGgsIGludCBvZmZzZXRJblN0
cmluZyA9IGtOb09mZnNldCwgY29uc3QgRmxvYXRTaXplKiBvZmZzZXQgPSAwKQorICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBrTm9PZmZzZXQgPSBzdGQ6Om51bWVyaWNfbGltaXRzPHVuc2lnbmVk
Pjo6bWF4KCk7CisgICAgdm9pZCBhZGQoR2x5cGggZ2x5cGgsIGNvbnN0IFNpbXBsZUZvbnREYXRh
KiBmb250LCBmbG9hdCB3aWR0aCwgdW5zaWduZWQgb2Zmc2V0SW5TdHJpbmcgPSBrTm9PZmZzZXQs
IGNvbnN0IEZsb2F0U2l6ZSogb2Zmc2V0ID0gMCkKICAgICB7CiAgICAgICAgIG1fZm9udERhdGEu
YXBwZW5kKGZvbnQpOwogCkBAIC0xNTgsNyArMTU4LDcgQEAgcHVibGljOgogICAgIH0KICAgICAK
ICNpZiAhVVNFKFdJTkdESSkKLSAgICB2b2lkIGFkZChHbHlwaCBnbHlwaCwgY29uc3QgU2ltcGxl
Rm9udERhdGEqIGZvbnQsIEdseXBoQnVmZmVyQWR2YW5jZSBhZHZhbmNlLCBpbnQgb2Zmc2V0SW5T
dHJpbmcgPSBrTm9PZmZzZXQpCisgICAgdm9pZCBhZGQoR2x5cGggZ2x5cGgsIGNvbnN0IFNpbXBs
ZUZvbnREYXRhKiBmb250LCBHbHlwaEJ1ZmZlckFkdmFuY2UgYWR2YW5jZSwgdW5zaWduZWQgb2Zm
c2V0SW5TdHJpbmcgPSBrTm9PZmZzZXQpCiAgICAgewogICAgICAgICBtX2ZvbnREYXRhLmFwcGVu
ZChmb250KTsKICNpZiBVU0UoQ0FJUk8pCkBAIC0xOTEsOSArMTkxLDEwIEBAIHB1YmxpYzoKICAg
ICAKICAgICB2b2lkIHNhdmVPZmZzZXRzSW5TdHJpbmcoKQogICAgIHsKLSAgICAgICAgbV9vZmZz
ZXRzSW5TdHJpbmcucmVzZXQobmV3IFZlY3RvcjxpbnQsIDIwNDg+KCkpOworICAgICAgICBtX29m
ZnNldHNJblN0cmluZy5yZXNldChuZXcgVmVjdG9yPHVuc2lnbmVkLCAyMDQ4PigpKTsKICAgICB9
Ci0gICAgCisKKyAgICAvLyBGSVhNRTogVGhpcyBjb252ZXJ0cyBmcm9tIGFuIHVuc2lnbmVkIHRv
IGFuIGludAogICAgIGludCBvZmZzZXRJblN0cmluZyhpbnQgaW5kZXgpIGNvbnN0CiAgICAgewog
ICAgICAgICBBU1NFUlQobV9vZmZzZXRzSW5TdHJpbmcpOwpAQCAtMjI2LDcgKzIyNyw3IEBAIHBy
aXZhdGU6CiAgICAgVmVjdG9yPEdseXBoQnVmZmVyR2x5cGgsIDIwNDg+IG1fZ2x5cGhzOwogICAg
IFZlY3RvcjxHbHlwaEJ1ZmZlckFkdmFuY2UsIDIwNDg+IG1fYWR2YW5jZXM7CiAgICAgR2x5cGhC
dWZmZXJBZHZhbmNlIG1faW5pdGlhbEFkdmFuY2U7Ci0gICAgc3RkOjp1bmlxdWVfcHRyPFZlY3Rv
cjxpbnQsIDIwNDg+PiBtX29mZnNldHNJblN0cmluZzsKKyAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVj
dG9yPHVuc2lnbmVkLCAyMDQ4Pj4gbV9vZmZzZXRzSW5TdHJpbmc7CiAjaWYgUExBVEZPUk0oV0lO
KQogICAgIFZlY3RvcjxGbG9hdFNpemUsIDIwNDg+IG1fb2Zmc2V0czsKICNlbmRpZgpkaWZmIC0t
Z2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNw
cCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAK
aW5kZXggYjkzZGYzYzM5MDczM2JjMDYxN2IyNTgwN2Y4MzBmZjk1MzVjYjJhYS4uZjQwODcyNTE5
NzM4ZmFhNTdkZGRkZjMyNmU4MGNkOWNlNzYzOTkzMiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNv
cmUvcGxhdGZvcm0vZ3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAorKysgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCkBAIC03NCw3ICs3NCw3
IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICBjb25zdCBUZXh0UnVuKiBtX3RleHRSdW47Ci0g
ICAgaW50IG1fb2Zmc2V0OworICAgIHVuc2lnbmVkIG1fb2Zmc2V0OwogfTsKIAogY2xhc3MgSW50
ZXJwb2xhdGlvblF1YWxpdHlNYWludGFpbmVyIHsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL1RleHRSdW4uaCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dy
YXBoaWNzL1RleHRSdW4uaAppbmRleCAzOTYxYTRjYzVmNWNmZDBjNGVhMTM2ODQ2MjU5YWZmNjdi
MDc1Yjc0Li5hY2NiNGI3NGUxNTdhZWNhYmIwMmJjODkwNmMzYjYzYWI1M2RiNDBmIDEwMDY0NAot
LS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKKysrIGIvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCkBAIC0xNzEsOCArMTcxLDgg
QEAgcHVibGljOgogICAgIGNvbnN0IFVDaGFyKiBjaGFyYWN0ZXJzMTYoKSBjb25zdCB7IEFTU0VS
VCghaXM4Qml0KCkpOyByZXR1cm4gbV9kYXRhLmNoYXJhY3RlcnMxNjsgfQogICAgIAogICAgIGJv
b2wgaXM4Qml0KCkgY29uc3QgeyByZXR1cm4gbV9pczhCaXQ7IH0KLSAgICBpbnQgbGVuZ3RoKCkg
Y29uc3QgeyByZXR1cm4gbV9sZW47IH0KLSAgICBpbnQgY2hhcmFjdGVyc0xlbmd0aCgpIGNvbnN0
IHsgcmV0dXJuIG1fY2hhcmFjdGVyc0xlbmd0aDsgfQorICAgIHVuc2lnbmVkIGxlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fbGVuOyB9CisgICAgdW5zaWduZWQgY2hhcmFjdGVyc0xlbmd0aCgpIGNv
bnN0IHsgcmV0dXJuIG1fY2hhcmFjdGVyc0xlbmd0aDsgfQogICAgIFN0cmluZyBzdHJpbmcoKSBj
b25zdAogICAgIHsKICAgICAgICAgaWYgKGlzOEJpdCgpKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dl
YkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0aEl0ZXJhdG9yLmNwcAppbmRleCA3YzUxZGU3NmJiZGFk
N2VmYjE2MzFhYWZjN2NiYTU2ZmUyMjBiOTM5Li41Mzk4ZTc0NzRjYmJjMDgwOGIzZDhkMmFkMGNm
NGQ3MGU0YmMwOThkIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9XaWR0aEl0ZXJhdG9yLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9XaWR0aEl0ZXJhdG9yLmNwcApAQCAtMjk3LDggKzI5Nyw4IEBAIGlubGluZSB1bnNpZ25lZCBX
aWR0aEl0ZXJhdG9yOjphZHZhbmNlSW50ZXJuYWwoVGV4dEl0ZXJhdG9yJiB0ZXh0SXRlcmF0b3Is
IEdseXBoCiAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAvLyBDaGVjayB0byBzZWUgaWYg
dGhlIG5leHQgY2hhcmFjdGVyIGlzIGEgInJvdW5kaW5nIGhhY2sgY2hhcmFjdGVyIiwgaWYgc28s
IGFkanVzdAogICAgICAgICAgICAgLy8gd2lkdGggc28gdGhhdCB0aGUgdG90YWwgcnVuIHdpZHRo
IHdpbGwgYmUgb24gYW4gaW50ZWdlciBib3VuZGFyeS4KLSAgICAgICAgICAgIGlmICgobV9ydW4u
YXBwbHlXb3JkUm91bmRpbmcoKSAmJiB0ZXh0SXRlcmF0b3IuY3VycmVudENoYXJhY3RlcigpIDwg
bV9ydW4ubGVuZ3RoKCkgJiYgRm9udDo6aXNSb3VuZGluZ0hhY2tDaGFyYWN0ZXIoKih0ZXh0SXRl
cmF0b3IuY2hhcmFjdGVycygpKSkpCi0gICAgICAgICAgICAgICAgfHwgKG1fcnVuLmFwcGx5UnVu
Um91bmRpbmcoKSAmJiB0ZXh0SXRlcmF0b3IuY3VycmVudENoYXJhY3RlcigpID49IG1fcnVuLmxl
bmd0aCgpKSkgeworICAgICAgICAgICAgaWYgKChtX3J1bi5hcHBseVdvcmRSb3VuZGluZygpICYm
IHN0YXRpY19jYXN0PHVuc2lnbmVkPih0ZXh0SXRlcmF0b3IuY3VycmVudENoYXJhY3RlcigpKSA8
IG1fcnVuLmxlbmd0aCgpICYmIEZvbnQ6OmlzUm91bmRpbmdIYWNrQ2hhcmFjdGVyKCoodGV4dEl0
ZXJhdG9yLmNoYXJhY3RlcnMoKSkpKQorICAgICAgICAgICAgICAgIHx8IChtX3J1bi5hcHBseVJ1
blJvdW5kaW5nKCkgJiYgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHRleHRJdGVyYXRvci5jdXJyZW50
Q2hhcmFjdGVyKCkpID49IG1fcnVuLmxlbmd0aCgpKSkgewogICAgICAgICAgICAgICAgIGZsb2F0
IHRvdGFsV2lkdGggPSB3aWR0aFNpbmNlTGFzdFJvdW5kaW5nICsgd2lkdGg7CiAgICAgICAgICAg
ICAgICAgd2lkdGhTaW5jZUxhc3RSb3VuZGluZyA9IGNlaWxmKHRvdGFsV2lkdGgpOwogICAgICAg
ICAgICAgICAgIHdpZHRoICs9IHdpZHRoU2luY2VMYXN0Um91bmRpbmcgLSB0b3RhbFdpZHRoOwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljc0J1
aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljc0J1
aWxkZXIuY3BwCmluZGV4IGU2MDEwMmRiMDhjMzk2Mzk0OGI4YTU2Y2YxOTZmYTU2MzNkYzA4MWYu
LmU1NDI3MmY0MjJkM2FjNDA4NzU5YjZhZDVkNmI2YTQ0N2UzMjNlOTQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmNwcAorKysg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NWR1RleHRNZXRyaWNzQnVpbGRlci5jcHAK
QEAgLTM3LDEzICszNywxMyBAQCBTVkdUZXh0TWV0cmljc0J1aWxkZXI6OlNWR1RleHRNZXRyaWNz
QnVpbGRlcigpCiAKIGlubGluZSBib29sIFNWR1RleHRNZXRyaWNzQnVpbGRlcjo6Y3VycmVudENo
YXJhY3RlclN0YXJ0c1N1cnJvZ2F0ZVBhaXIoKSBjb25zdAogewotICAgIHJldHVybiBVMTZfSVNf
TEVBRChtX3J1blttX3RleHRQb3NpdGlvbl0pICYmIGludChtX3RleHRQb3NpdGlvbiArIDEpIDwg
bV9ydW4uY2hhcmFjdGVyc0xlbmd0aCgpICYmIFUxNl9JU19UUkFJTChtX3J1blttX3RleHRQb3Np
dGlvbiArIDFdKTsKKyAgICByZXR1cm4gVTE2X0lTX0xFQUQobV9ydW5bbV90ZXh0UG9zaXRpb25d
KSAmJiAobV90ZXh0UG9zaXRpb24gKyAxKSA8IG1fcnVuLmNoYXJhY3RlcnNMZW5ndGgoKSAmJiBV
MTZfSVNfVFJBSUwobV9ydW5bbV90ZXh0UG9zaXRpb24gKyAxXSk7CiB9CiAKIGJvb2wgU1ZHVGV4
dE1ldHJpY3NCdWlsZGVyOjphZHZhbmNlKCkKIHsKICAgICBtX3RleHRQb3NpdGlvbiArPSBtX2N1
cnJlbnRNZXRyaWNzLmxlbmd0aCgpOwotICAgIGlmIChpbnQobV90ZXh0UG9zaXRpb24pID49IG1f
cnVuLmNoYXJhY3RlcnNMZW5ndGgoKSkKKyAgICBpZiAobV90ZXh0UG9zaXRpb24gPj0gbV9ydW4u
Y2hhcmFjdGVyc0xlbmd0aCgpKQogICAgICAgICByZXR1cm4gZmFsc2U7CiAKICAgICBpZiAobV9p
c0NvbXBsZXhUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnREYXRh
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5jcHAKaW5kZXggNTA5M2IyZWQx
YjdlYTYyMzhmNzY2NmQ4YTg5ODBkNzQ3OWEwM2RiZC4uMTJkZTYwMzM2YmUzMzQ1OGM0NzlhMzYw
ODgzMDg5MGU0YzhkZWNlYSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnRE
YXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcvU1ZHRm9udERhdGEuY3BwCkBAIC0xMzUs
NyArMTM1LDcgQEAgYm9vbCBTVkdGb250RGF0YTo6YXBwbHlTVkdHbHlwaFNlbGVjdGlvbihXaWR0
aEl0ZXJhdG9yJiBpdGVyYXRvciwgR2x5cGhEYXRhJiBnbHkKIHsKICAgICBjb25zdCBUZXh0UnVu
JiBydW4gPSBpdGVyYXRvci5ydW4oKTsKICAgICBWZWN0b3I8U1ZHR2x5cGg6OkFyYWJpY0Zvcm0+
JiBhcmFiaWNGb3JtcyA9IGl0ZXJhdG9yLmFyYWJpY0Zvcm1zKCk7Ci0gICAgQVNTRVJUKHJ1bi5j
aGFyYWN0ZXJzTGVuZ3RoKCkgPj0gY3VycmVudENoYXJhY3Rlcik7CisgICAgQVNTRVJUKHJ1bi5j
aGFyYWN0ZXJzTGVuZ3RoKCkgPj0gc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KGN1cnJlbnRDaGFyYWN0
ZXIpKTsKIAogICAgIFNWR0ZvbnRGYWNlRWxlbWVudCogc3ZnRm9udEZhY2VFbGVtZW50ID0gdGhp
cy0+c3ZnRm9udEZhY2VFbGVtZW50KCk7CiAgICAgQVNTRVJUKHN2Z0ZvbnRGYWNlRWxlbWVudCk7
Cg==
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239149</attachid>
            <date>2014-10-02 15:57:45 -0700</date>
            <delta_ts>2014-10-02 16:12:15 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137354-20141002155746.patch</filename>
            <type>text/plain</type>
            <size>11837</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MTg4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMTMyYzlhYTE4NTY0Yzkw
ZDg5MjZlN2RhYmJmOTBhZmVhYzE3ZmU2MC4uNjY1Y2IyZDlkN2U0YjI5N2UxYjUzMGZhZmZkYWQy
ZTllYjJkN2NjZSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE0LTEwLTAyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgVGV4dFJ1bjo6
bGVuZ3RoKCkgc2hvdWxkIHJldHVybiBhbiB1bnNpZ25lZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MzU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGUgbV9sZW4gaW5zdGFuY2Ug
dmFyaWFibGUgdGhhdCBiYWNrcyB0aGUgVGV4dFJ1bjo6bGVuZ3RoKCkgZnVuY3Rpb24gaXMKKyAg
ICAgICAgYW4gdW5zaWduZWQsIGJ1dCB0aGUgbGVuZ3RoKCkgZnVuY3Rpb24gaW1wbGljaXRseSBj
YXN0cyB0aGF0IHRvIGFuIGludCB3aGVuCisgICAgICAgIHJldHVybmluZyBpdC4gVGhpcyBwYXRj
aCBtYWtlcyB0aGUgZnVuY3Rpb24gcmV0dXJuIGFuIHVuc2lnbmVkLCBhbmQgbWFrZXMgdGhlCisg
ICAgICAgIGRvIGFueSBjYXN0aW5nIGlmIG5lY2Vzc2FyeS4KKworICAgICAgICBObyBuZXcgdGVz
dHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdUZXh0
KTogQ2FzdCByZXN1bHQgdG8gaW50LgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0VtcGhh
c2lzTWFya3MpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmFkanVzdFNlbGVjdGlv
blJlY3RGb3JUZXh0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVW5kZXJsaW5l
VHlwZSk6IFVwZGF0ZSBpbnRlcm5hbCB0eXBlIHRvIGJlIHVuc2lnbmVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaEJ1
ZmZlcjo6YWRkKTogVXBkYXRlIHNlbnRpbmVsIHZhbHVlIHRvIGJlIHVuc2lnbmVkLgorICAgICAg
ICAoV2ViQ29yZTo6R2x5cGhCdWZmZXI6OnNhdmVPZmZzZXRzSW5TdHJpbmcpOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOiBVcGRhdGUgaW50
ZXJuYWwgdHlwZSB0byBiZSB1bnNpZ25lZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0UnVuLmg6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVuOjpsZW5ndGgpOiBVcGRhdGUgcmV0
dXJuIHR5cGUuCisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVuOjpjaGFyYWN0ZXJzTGVuZ3RoKTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXaWR0aEl0ZXJhdG9yOjphZHZhbmNlSW50ZXJuYWwpOiBDYXN0IHJl
c3VsdCB0byBpbnQuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljc0J1aWxk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dE1ldHJpY3NCdWlsZGVyOjpjdXJyZW50
Q2hhcmFjdGVyU3RhcnRzU3Vycm9nYXRlUGFpcik6IFJlbW92ZQorICAgICAgICB1bm5lY2Vzc2Fy
eSBjYXN0cy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRNZXRyaWNzQnVpbGRlcjo6YWR2YW5j
ZSk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdGb250RGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdGb250RGF0YTo6YXBwbHlTVkdHbHlwaFNlbGVjdGlvbik6IENhc3QgcmVzdWx0IHRv
IGludC4KKwogMjAxNC0xMC0wMSAgQ2hyaXN0b3BoZSBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBmb3IgRXZlbnQgY2xhc3Nlcwpk
aWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvRm9udC5jcHAgYi9T
b3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250LmNwcAppbmRleCA2YTkzN2E5ZTA0
ZWFjMTZkNGNjMTlhNzYyY2ZmNTIzZjQ0YjIxN2E2Li5mZjZmNWQwZThjOTlmOGY5OTQxMzhhNWQw
ZmRiOWE4N2U0NTg2YzE1IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFw
aGljcy9Gb250LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmNwcApAQCAtMzQxLDcgKzM0MSw3IEBAIGZsb2F0IEZvbnQ6OmRyYXdUZXh0KEdyYXBoaWNzQ29u
dGV4dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdCBGbG9hdFBvCiAKICAgICBD
b2RlUGF0aCBjb2RlUGF0aFRvVXNlID0gY29kZVBhdGgocnVuKTsKICAgICAvLyBGSVhNRTogVXNl
IHRoZSBmYXN0IGNvZGUgcGF0aCBvbmNlIGl0IGhhbmRsZXMgcGFydGlhbCBydW5zIHdpdGgga2Vy
bmluZyBhbmQgbGlnYXR1cmVzLiBTZWUgaHR0cDovL3dlYmtpdC5vcmcvYi8xMDAwNTAKLSAgICBp
ZiAoY29kZVBhdGhUb1VzZSAhPSBDb21wbGV4ICYmIHR5cGVzZXR0aW5nRmVhdHVyZXMoKSAmJiAo
ZnJvbSB8fCB0byAhPSBydW4ubGVuZ3RoKCkpICYmICFpc0RyYXduV2l0aFNWR0ZvbnQocnVuKSkK
KyAgICBpZiAoY29kZVBhdGhUb1VzZSAhPSBDb21wbGV4ICYmIHR5cGVzZXR0aW5nRmVhdHVyZXMo
KSAmJiAoZnJvbSB8fCBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odG8pICE9IHJ1bi5sZW5ndGgoKSkg
JiYgIWlzRHJhd25XaXRoU1ZHRm9udChydW4pKQogICAgICAgICBjb2RlUGF0aFRvVXNlID0gQ29t
cGxleDsKIAogICAgIGlmIChjb2RlUGF0aFRvVXNlICE9IENvbXBsZXgpCkBAIC0zNjAsNyArMzYw
LDcgQEAgdm9pZCBGb250OjpkcmF3RW1waGFzaXNNYXJrcyhHcmFwaGljc0NvbnRleHQqIGNvbnRl
eHQsIGNvbnN0IFRleHRSdW4mIHJ1biwgY29uc3QKIAogICAgIENvZGVQYXRoIGNvZGVQYXRoVG9V
c2UgPSBjb2RlUGF0aChydW4pOwogICAgIC8vIEZJWE1FOiBVc2UgdGhlIGZhc3QgY29kZSBwYXRo
IG9uY2UgaXQgaGFuZGxlcyBwYXJ0aWFsIHJ1bnMgd2l0aCBrZXJuaW5nIGFuZCBsaWdhdHVyZXMu
IFNlZSBodHRwOi8vd2Via2l0Lm9yZy9iLzEwMDA1MAotICAgIGlmIChjb2RlUGF0aFRvVXNlICE9
IENvbXBsZXggJiYgdHlwZXNldHRpbmdGZWF0dXJlcygpICYmIChmcm9tIHx8IHRvICE9IHJ1bi5s
ZW5ndGgoKSkgJiYgIWlzRHJhd25XaXRoU1ZHRm9udChydW4pKQorICAgIGlmIChjb2RlUGF0aFRv
VXNlICE9IENvbXBsZXggJiYgdHlwZXNldHRpbmdGZWF0dXJlcygpICYmIChmcm9tIHx8IHN0YXRp
Y19jYXN0PHVuc2lnbmVkPih0bykgIT0gcnVuLmxlbmd0aCgpKSAmJiAhaXNEcmF3bldpdGhTVkdG
b250KHJ1bikpCiAgICAgICAgIGNvZGVQYXRoVG9Vc2UgPSBDb21wbGV4OwogCiAgICAgaWYgKGNv
ZGVQYXRoVG9Vc2UgIT0gQ29tcGxleCkKQEAgLTUxMyw3ICs1MTMsNyBAQCB2b2lkIEZvbnQ6OmFk
anVzdFNlbGVjdGlvblJlY3RGb3JUZXh0KGNvbnN0IFRleHRSdW4mIHJ1biwgTGF5b3V0UmVjdCYg
c2VsZWN0aW9uUgogCiAgICAgQ29kZVBhdGggY29kZVBhdGhUb1VzZSA9IGNvZGVQYXRoKHJ1bik7
CiAgICAgLy8gRklYTUU6IFVzZSB0aGUgZmFzdCBjb2RlIHBhdGggb25jZSBpdCBoYW5kbGVzIHBh
cnRpYWwgcnVucyB3aXRoIGtlcm5pbmcgYW5kIGxpZ2F0dXJlcy4gU2VlIGh0dHA6Ly93ZWJraXQu
b3JnL2IvMTAwMDUwCi0gICAgaWYgKGNvZGVQYXRoVG9Vc2UgIT0gQ29tcGxleCAmJiB0eXBlc2V0
dGluZ0ZlYXR1cmVzKCkgJiYgKGZyb20gfHwgdG8gIT0gcnVuLmxlbmd0aCgpKSAmJiAhaXNEcmF3
bldpdGhTVkdGb250KHJ1bikpCisgICAgaWYgKGNvZGVQYXRoVG9Vc2UgIT0gQ29tcGxleCAmJiB0
eXBlc2V0dGluZ0ZlYXR1cmVzKCkgJiYgKGZyb20gfHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHRv
KSAhPSBydW4ubGVuZ3RoKCkpICYmICFpc0RyYXduV2l0aFNWR0ZvbnQocnVuKSkKICAgICAgICAg
Y29kZVBhdGhUb1VzZSA9IENvbXBsZXg7CiAKICAgICBpZiAoY29kZVBhdGhUb1VzZSAhPSBDb21w
bGV4KQpAQCAtMTA1OSw3ICsxMDU5LDcgQEAgR2x5cGhUb1BhdGhUcmFuc2xhdG9yOjpHbHlwaFVu
ZGVybGluZVR5cGUgY29tcHV0ZVVuZGVybGluZVR5cGUoY29uc3QgVGV4dFJ1biYgdGUKICAgICAv
LyBJbiBnZW5lcmFsLCB3ZSB3YW50IHRvIHNraXAgZGVzY2VuZGVycy4gSG93ZXZlciwgc2tpcHBp
bmcgZGVzY2VuZGVycyBvbiBDSksgY2hhcmFjdGVycyBsZWFkcyB0byB1bmRlc2lyYWJsZSByZW5k
ZXJpbmdzLAogICAgIC8vIHNvIHdlIHdhbnQgdG8gZHJhdyB0aHJvdWdoIENKSyBjaGFyYWN0ZXJz
IChvbiBhIGNoYXJhY3Rlci1ieS1jaGFyYWN0ZXIgYmFzaXMpLgogICAgIFVDaGFyMzIgYmFzZUNo
YXJhY3RlcjsKLSAgICBpbnQgb2Zmc2V0SW5TdHJpbmcgPSBnbHlwaEJ1ZmZlci5vZmZzZXRJblN0
cmluZyhpbmRleCk7CisgICAgdW5zaWduZWQgb2Zmc2V0SW5TdHJpbmcgPSBnbHlwaEJ1ZmZlci5v
ZmZzZXRJblN0cmluZyhpbmRleCk7CiAKICAgICBpZiAob2Zmc2V0SW5TdHJpbmcgPT0gR2x5cGhC
dWZmZXI6OmtOb09mZnNldCkgewogICAgICAgICAvLyBXZSBoYXZlIG5vIGlkZWEgd2hpY2ggY2hh
cmFjdGVyIHNwYXduZWQgdGhpcyBnbHlwaC4gQmFpbC4KZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0
Zm9ybS9ncmFwaGljcy9HbHlwaEJ1ZmZlci5oCmluZGV4IDNjNTkzNWZjNmQyYzAyNDc2MDdlMzMz
MjRkMzkwYjA1ZDdmODliNDYuLjczZGIzZmUyMTIyOGMxM2I0ZDAyYTc2ZTY1NWU0MjY0MzhmZjM3
OTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVm
ZmVyLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIu
aApAQCAtMTI0LDggKzEyNCw4IEBAIHB1YmxpYzoKICNlbmRpZgogICAgIH0KICAgICAKLSAgICBz
dGF0aWMgY29uc3QgaW50IGtOb09mZnNldCA9IC0xOwotICAgIHZvaWQgYWRkKEdseXBoIGdseXBo
LCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udCwgZmxvYXQgd2lkdGgsIGludCBvZmZzZXRJblN0
cmluZyA9IGtOb09mZnNldCwgY29uc3QgRmxvYXRTaXplKiBvZmZzZXQgPSAwKQorICAgIHN0YXRp
YyBjb25zdCB1bnNpZ25lZCBrTm9PZmZzZXQgPSBVSU5UX01BWDsKKyAgICB2b2lkIGFkZChHbHlw
aCBnbHlwaCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsIGZsb2F0IHdpZHRoLCB1bnNpZ25l
ZCBvZmZzZXRJblN0cmluZyA9IGtOb09mZnNldCwgY29uc3QgRmxvYXRTaXplKiBvZmZzZXQgPSAw
KQogICAgIHsKICAgICAgICAgbV9mb250RGF0YS5hcHBlbmQoZm9udCk7CiAKQEAgLTE1OCw3ICsx
NTgsNyBAQCBwdWJsaWM6CiAgICAgfQogICAgIAogI2lmICFVU0UoV0lOR0RJKQotICAgIHZvaWQg
YWRkKEdseXBoIGdseXBoLCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udCwgR2x5cGhCdWZmZXJB
ZHZhbmNlIGFkdmFuY2UsIGludCBvZmZzZXRJblN0cmluZyA9IGtOb09mZnNldCkKKyAgICB2b2lk
IGFkZChHbHlwaCBnbHlwaCwgY29uc3QgU2ltcGxlRm9udERhdGEqIGZvbnQsIEdseXBoQnVmZmVy
QWR2YW5jZSBhZHZhbmNlLCB1bnNpZ25lZCBvZmZzZXRJblN0cmluZyA9IGtOb09mZnNldCkKICAg
ICB7CiAgICAgICAgIG1fZm9udERhdGEuYXBwZW5kKGZvbnQpOwogI2lmIFVTRShDQUlSTykKQEAg
LTE5MSw5ICsxOTEsMTAgQEAgcHVibGljOgogICAgIAogICAgIHZvaWQgc2F2ZU9mZnNldHNJblN0
cmluZygpCiAgICAgewotICAgICAgICBtX29mZnNldHNJblN0cmluZy5yZXNldChuZXcgVmVjdG9y
PGludCwgMjA0OD4oKSk7CisgICAgICAgIG1fb2Zmc2V0c0luU3RyaW5nLnJlc2V0KG5ldyBWZWN0
b3I8dW5zaWduZWQsIDIwNDg+KCkpOwogICAgIH0KLSAgICAKKworICAgIC8vIEZJWE1FOiBUaGlz
IGNvbnZlcnRzIGZyb20gYW4gdW5zaWduZWQgdG8gYW4gaW50CiAgICAgaW50IG9mZnNldEluU3Ry
aW5nKGludCBpbmRleCkgY29uc3QKICAgICB7CiAgICAgICAgIEFTU0VSVChtX29mZnNldHNJblN0
cmluZyk7CkBAIC0yMjYsNyArMjI3LDcgQEAgcHJpdmF0ZToKICAgICBWZWN0b3I8R2x5cGhCdWZm
ZXJHbHlwaCwgMjA0OD4gbV9nbHlwaHM7CiAgICAgVmVjdG9yPEdseXBoQnVmZmVyQWR2YW5jZSwg
MjA0OD4gbV9hZHZhbmNlczsKICAgICBHbHlwaEJ1ZmZlckFkdmFuY2UgbV9pbml0aWFsQWR2YW5j
ZTsKLSAgICBzdGQ6OnVuaXF1ZV9wdHI8VmVjdG9yPGludCwgMjA0OD4+IG1fb2Zmc2V0c0luU3Ry
aW5nOworICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8dW5zaWduZWQsIDIwNDg+PiBtX29mZnNl
dHNJblN0cmluZzsKICNpZiBQTEFURk9STShXSU4pCiAgICAgVmVjdG9yPEZsb2F0U2l6ZSwgMjA0
OD4gbV9vZmZzZXRzOwogI2VuZGlmCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9y
bS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0v
Z3JhcGhpY3MvR3JhcGhpY3NDb250ZXh0LmNwcAppbmRleCBiOTNkZjNjMzkwNzMzYmMwNjE3YjI1
ODA3ZjgzMGZmOTUzNWNiMmFhLi5mNDA4NzI1MTk3MzhmYWE1N2RkZGRmMzI2ZTgwY2Q5Y2U3NjM5
OTMyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGlj
c0NvbnRleHQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBo
aWNzQ29udGV4dC5jcHAKQEAgLTc0LDcgKzc0LDcgQEAgcHVibGljOgogCiBwcml2YXRlOgogICAg
IGNvbnN0IFRleHRSdW4qIG1fdGV4dFJ1bjsKLSAgICBpbnQgbV9vZmZzZXQ7CisgICAgdW5zaWdu
ZWQgbV9vZmZzZXQ7CiB9OwogCiBjbGFzcyBJbnRlcnBvbGF0aW9uUXVhbGl0eU1haW50YWluZXIg
ewpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5o
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCmluZGV4IDM5NjFh
NGNjNWY1Y2ZkMGM0ZWExMzY4NDYyNTlhZmY2N2IwNzViNzQuLmFjY2I0Yjc0ZTE1N2FlY2FiYjAy
YmM4OTA2YzNiNjNhYjUzZGI0MGYgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RleHRSdW4uaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9UZXh0UnVuLmgKQEAgLTE3MSw4ICsxNzEsOCBAQCBwdWJsaWM6CiAgICAgY29uc3QgVUNoYXIq
IGNoYXJhY3RlcnMxNigpIGNvbnN0IHsgQVNTRVJUKCFpczhCaXQoKSk7IHJldHVybiBtX2RhdGEu
Y2hhcmFjdGVyczE2OyB9CiAgICAgCiAgICAgYm9vbCBpczhCaXQoKSBjb25zdCB7IHJldHVybiBt
X2lzOEJpdDsgfQotICAgIGludCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2xlbjsgfQotICAg
IGludCBjaGFyYWN0ZXJzTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9jaGFyYWN0ZXJzTGVuZ3Ro
OyB9CisgICAgdW5zaWduZWQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9sZW47IH0KKyAgICB1
bnNpZ25lZCBjaGFyYWN0ZXJzTGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV9jaGFyYWN0ZXJzTGVu
Z3RoOyB9CiAgICAgU3RyaW5nIHN0cmluZygpIGNvbnN0CiAgICAgewogICAgICAgICBpZiAoaXM4
Qml0KCkpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9XaWR0
aEl0ZXJhdG9yLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRl
cmF0b3IuY3BwCmluZGV4IDdjNTFkZTc2YmJkYWQ3ZWZiMTYzMWFhZmM3Y2JhNTZmZTIyMGI5Mzku
LjUzOThlNzQ3NGNiYmMwODA4YjNkOGQyYWQwY2Y0ZDcwZTRiYzA5OGQgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3BwCkBAIC0yOTcs
OCArMjk3LDggQEAgaW5saW5lIHVuc2lnbmVkIFdpZHRoSXRlcmF0b3I6OmFkdmFuY2VJbnRlcm5h
bChUZXh0SXRlcmF0b3ImIHRleHRJdGVyYXRvciwgR2x5cGgKICAgICAgICAgfSBlbHNlIHsKICAg
ICAgICAgICAgIC8vIENoZWNrIHRvIHNlZSBpZiB0aGUgbmV4dCBjaGFyYWN0ZXIgaXMgYSAicm91
bmRpbmcgaGFjayBjaGFyYWN0ZXIiLCBpZiBzbywgYWRqdXN0CiAgICAgICAgICAgICAvLyB3aWR0
aCBzbyB0aGF0IHRoZSB0b3RhbCBydW4gd2lkdGggd2lsbCBiZSBvbiBhbiBpbnRlZ2VyIGJvdW5k
YXJ5LgotICAgICAgICAgICAgaWYgKChtX3J1bi5hcHBseVdvcmRSb3VuZGluZygpICYmIHRleHRJ
dGVyYXRvci5jdXJyZW50Q2hhcmFjdGVyKCkgPCBtX3J1bi5sZW5ndGgoKSAmJiBGb250Ojppc1Jv
dW5kaW5nSGFja0NoYXJhY3RlcigqKHRleHRJdGVyYXRvci5jaGFyYWN0ZXJzKCkpKSkKLSAgICAg
ICAgICAgICAgICB8fCAobV9ydW4uYXBwbHlSdW5Sb3VuZGluZygpICYmIHRleHRJdGVyYXRvci5j
dXJyZW50Q2hhcmFjdGVyKCkgPj0gbV9ydW4ubGVuZ3RoKCkpKSB7CisgICAgICAgICAgICBpZiAo
KG1fcnVuLmFwcGx5V29yZFJvdW5kaW5nKCkgJiYgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHRleHRJ
dGVyYXRvci5jdXJyZW50Q2hhcmFjdGVyKCkpIDwgbV9ydW4ubGVuZ3RoKCkgJiYgRm9udDo6aXNS
b3VuZGluZ0hhY2tDaGFyYWN0ZXIoKih0ZXh0SXRlcmF0b3IuY2hhcmFjdGVycygpKSkpCisgICAg
ICAgICAgICAgICAgfHwgKG1fcnVuLmFwcGx5UnVuUm91bmRpbmcoKSAmJiBzdGF0aWNfY2FzdDx1
bnNpZ25lZD4odGV4dEl0ZXJhdG9yLmN1cnJlbnRDaGFyYWN0ZXIoKSkgPj0gbV9ydW4ubGVuZ3Ro
KCkpKSB7CiAgICAgICAgICAgICAgICAgZmxvYXQgdG90YWxXaWR0aCA9IHdpZHRoU2luY2VMYXN0
Um91bmRpbmcgKyB3aWR0aDsKICAgICAgICAgICAgICAgICB3aWR0aFNpbmNlTGFzdFJvdW5kaW5n
ID0gY2VpbGYodG90YWxXaWR0aCk7CiAgICAgICAgICAgICAgICAgd2lkdGggKz0gd2lkdGhTaW5j
ZUxhc3RSb3VuZGluZyAtIHRvdGFsV2lkdGg7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNoYXBlci5jcHAgYi9Tb3VyY2UvV2Vi
Q29yZS9wbGF0Zm9ybS9ncmFwaGljcy9oYXJmYnV6ei9IYXJmQnV6elNoYXBlci5jcHAKaW5kZXgg
MGNkYTVlNzgyZjdlYmI4ZjdmZjc5NGViZjEwMWRlZmZlZjhlZWIyZS4uOGRiMGQxYjc3OWJhODZm
ZTkwMDExZmQyMGMzMzZmZWMxZTAyMTA1MyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxh
dGZvcm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpTaGFwZXIuY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcApAQCAt
MjU0LDcgKzI1NCw3IEBAIHZvaWQgSGFyZkJ1enpTaGFwZXI6OnNldE5vcm1hbGl6ZWRCdWZmZXIo
Tm9ybWFsaXplTW9kZSBub3JtYWxpemVNb2RlKQogICAgIH0gZWxzZQogICAgICAgICBydW5DaGFy
YWN0ZXJzID0gbV9ydW4uY2hhcmFjdGVyczE2KCk7CiAKLSAgICBmb3IgKGludCBpID0gMDsgaSA8
IG1fcnVuLmxlbmd0aCgpOyArK2kpIHsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgbV9y
dW4ubGVuZ3RoKCk7ICsraSkgewogICAgICAgICBVQ2hhciBjaCA9IHJ1bkNoYXJhY3RlcnNbaV07
CiAgICAgICAgIGlmICg6OnVibG9ja19nZXRDb2RlKGNoKSA9PSBVQkxPQ0tfQ09NQklOSU5HX0RJ
QUNSSVRJQ0FMX01BUktTKSB7CiAgICAgICAgICAgICBpY3U6Ok5vcm1hbGl6ZXI6Om5vcm1hbGl6
ZShpY3U6OlVuaWNvZGVTdHJpbmcocnVuQ2hhcmFjdGVycywKZGlmZiAtLWdpdCBhL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmNwcCBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4dE1ldHJpY3NCdWlsZGVyLmNwcAppbmRleCBlNjAx
MDJkYjA4YzM5NjM5NDhiOGE1NmNmMTk2ZmE1NjMzZGMwODFmLi5lNTQyNzJmNDIyZDNhYzQwODc1
OWI2YWQ1ZDZiNmE0NDdlMzIzZTk0IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJp
bmcvc3ZnL1NWR1RleHRNZXRyaWNzQnVpbGRlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljc0J1aWxkZXIuY3BwCkBAIC0zNywxMyArMzcsMTMgQEAg
U1ZHVGV4dE1ldHJpY3NCdWlsZGVyOjpTVkdUZXh0TWV0cmljc0J1aWxkZXIoKQogCiBpbmxpbmUg
Ym9vbCBTVkdUZXh0TWV0cmljc0J1aWxkZXI6OmN1cnJlbnRDaGFyYWN0ZXJTdGFydHNTdXJyb2dh
dGVQYWlyKCkgY29uc3QKIHsKLSAgICByZXR1cm4gVTE2X0lTX0xFQUQobV9ydW5bbV90ZXh0UG9z
aXRpb25dKSAmJiBpbnQobV90ZXh0UG9zaXRpb24gKyAxKSA8IG1fcnVuLmNoYXJhY3RlcnNMZW5n
dGgoKSAmJiBVMTZfSVNfVFJBSUwobV9ydW5bbV90ZXh0UG9zaXRpb24gKyAxXSk7CisgICAgcmV0
dXJuIFUxNl9JU19MRUFEKG1fcnVuW21fdGV4dFBvc2l0aW9uXSkgJiYgKG1fdGV4dFBvc2l0aW9u
ICsgMSkgPCBtX3J1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgJiYgVTE2X0lTX1RSQUlMKG1fcnVuW21f
dGV4dFBvc2l0aW9uICsgMV0pOwogfQogCiBib29sIFNWR1RleHRNZXRyaWNzQnVpbGRlcjo6YWR2
YW5jZSgpCiB7CiAgICAgbV90ZXh0UG9zaXRpb24gKz0gbV9jdXJyZW50TWV0cmljcy5sZW5ndGgo
KTsKLSAgICBpZiAoaW50KG1fdGV4dFBvc2l0aW9uKSA+PSBtX3J1bi5jaGFyYWN0ZXJzTGVuZ3Ro
KCkpCisgICAgaWYgKG1fdGV4dFBvc2l0aW9uID49IG1fcnVuLmNoYXJhY3RlcnNMZW5ndGgoKSkK
ICAgICAgICAgcmV0dXJuIGZhbHNlOwogCiAgICAgaWYgKG1faXNDb21wbGV4VGV4dCkKZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5jcHAgYi9Tb3VyY2UvV2ViQ29y
ZS9zdmcvU1ZHRm9udERhdGEuY3BwCmluZGV4IDUwOTNiMmVkMWI3ZWE2MjM4Zjc2NjZkOGE4OTgw
ZDc0NzlhMDNkYmQuLjEyZGU2MDMzNmJlMzM0NThjNDc5YTM2MDg4MzA4OTBlNGM4ZGVjZWEgMTAw
NjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250RGF0YS5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnREYXRhLmNwcApAQCAtMTM1LDcgKzEzNSw3IEBAIGJvb2wgU1ZH
Rm9udERhdGE6OmFwcGx5U1ZHR2x5cGhTZWxlY3Rpb24oV2lkdGhJdGVyYXRvciYgaXRlcmF0b3Is
IEdseXBoRGF0YSYgZ2x5CiB7CiAgICAgY29uc3QgVGV4dFJ1biYgcnVuID0gaXRlcmF0b3IucnVu
KCk7CiAgICAgVmVjdG9yPFNWR0dseXBoOjpBcmFiaWNGb3JtPiYgYXJhYmljRm9ybXMgPSBpdGVy
YXRvci5hcmFiaWNGb3JtcygpOwotICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49
IGN1cnJlbnRDaGFyYWN0ZXIpOworICAgIEFTU0VSVChydW4uY2hhcmFjdGVyc0xlbmd0aCgpID49
IHN0YXRpY19jYXN0PHVuc2lnbmVkPihjdXJyZW50Q2hhcmFjdGVyKSk7CiAKICAgICBTVkdGb250
RmFjZUVsZW1lbnQqIHN2Z0ZvbnRGYWNlRWxlbWVudCA9IHRoaXMtPnN2Z0ZvbnRGYWNlRWxlbWVu
dCgpOwogICAgIEFTU0VSVChzdmdGb250RmFjZUVsZW1lbnQpOwo=
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>239150</attachid>
            <date>2014-10-02 16:12:22 -0700</date>
            <delta_ts>2014-10-03 09:30:36 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-137354-20141002161223.patch</filename>
            <type>text/plain</type>
            <size>12052</size>
            <attacher name="Myles C. Maxfield">mmaxfield</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTc0MjM4CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggM2MzMTVjZWFlMmQ4Yjk0
ZGU5ZDViY2Q5Yzg3YzdhMjYzMmNiODQ0YS4uOGYzODIyZjQ5Nzg1NjQ2MjMyYzM4ZjZjZTNjYmM0
NWI1NzNiMmMzNCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDM4IEBACisyMDE0LTEwLTAyICBNeWxl
cyBDLiBNYXhmaWVsZCAgPG1tYXhmaWVsZEBhcHBsZS5jb20+CisKKyAgICAgICAgVGV4dFJ1bjo6
bGVuZ3RoKCkgc2hvdWxkIHJldHVybiBhbiB1bnNpZ25lZAorICAgICAgICBodHRwczovL2J1Z3Mu
d2Via2l0Lm9yZy9zaG93X2J1Zy5jZ2k/aWQ9MTM3MzU0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkg
Tk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQ3VycmVudGx5LCB0aGUgbV9sZW4gaW5zdGFuY2Ug
dmFyaWFibGUgdGhhdCBiYWNrcyB0aGUgVGV4dFJ1bjo6bGVuZ3RoKCkgZnVuY3Rpb24gaXMKKyAg
ICAgICAgYW4gdW5zaWduZWQsIGJ1dCB0aGUgbGVuZ3RoKCkgZnVuY3Rpb24gaW1wbGljaXRseSBj
YXN0cyB0aGF0IHRvIGFuIGludCB3aGVuCisgICAgICAgIHJldHVybmluZyBpdC4gVGhpcyBwYXRj
aCBtYWtlcyB0aGUgZnVuY3Rpb24gcmV0dXJuIGFuIHVuc2lnbmVkLCBhbmQgbWFrZXMgdGhlCisg
ICAgICAgIGRvIGFueSBjYXN0aW5nIGlmIG5lY2Vzc2FyeS4KKworICAgICAgICBObyBuZXcgdGVz
dHMgYmVjYXVzZSB0aGVyZSBpcyBubyBiZWhhdmlvciBjaGFuZ2UuCisKKyAgICAgICAgKiBwbGF0
Zm9ybS9ncmFwaGljcy9Gb250LmNwcDoKKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmRyYXdUZXh0
KTogQ2FzdCByZXN1bHQgdG8gaW50LgorICAgICAgICAoV2ViQ29yZTo6Rm9udDo6ZHJhd0VtcGhh
c2lzTWFya3MpOiBEaXR0by4KKyAgICAgICAgKFdlYkNvcmU6OkZvbnQ6OmFkanVzdFNlbGVjdGlv
blJlY3RGb3JUZXh0KTogRGl0dG8uCisgICAgICAgIChXZWJDb3JlOjpjb21wdXRlVW5kZXJsaW5l
VHlwZSk6IFVwZGF0ZSBpbnRlcm5hbCB0eXBlIHRvIGJlIHVuc2lnbmVkLgorICAgICAgICAqIHBs
YXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmg6CisgICAgICAgIChXZWJDb3JlOjpHbHlwaEJ1
ZmZlcjo6YWRkKTogVXBkYXRlIHNlbnRpbmVsIHZhbHVlIHRvIGJlIHVuc2lnbmVkLgorICAgICAg
ICAoV2ViQ29yZTo6R2x5cGhCdWZmZXI6OnNhdmVPZmZzZXRzSW5TdHJpbmcpOiBEaXR0by4KKyAg
ICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwOiBVcGRhdGUgaW50
ZXJuYWwgdHlwZSB0byBiZSB1bnNpZ25lZC4KKyAgICAgICAgKiBwbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0UnVuLmg6CisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVuOjpsZW5ndGgpOiBVcGRhdGUgcmV0
dXJuIHR5cGUuCisgICAgICAgIChXZWJDb3JlOjpUZXh0UnVuOjpjaGFyYWN0ZXJzTGVuZ3RoKTog
RGl0dG8uCisgICAgICAgICogcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHA6Cisg
ICAgICAgIChXZWJDb3JlOjpXaWR0aEl0ZXJhdG9yOjphZHZhbmNlSW50ZXJuYWwpOiBDYXN0IHJl
c3VsdCB0byBpbnQuCisgICAgICAgICogcmVuZGVyaW5nL3N2Zy9TVkdUZXh0TWV0cmljc0J1aWxk
ZXIuY3BwOgorICAgICAgICAoV2ViQ29yZTo6U1ZHVGV4dE1ldHJpY3NCdWlsZGVyOjpjdXJyZW50
Q2hhcmFjdGVyU3RhcnRzU3Vycm9nYXRlUGFpcik6IFJlbW92ZQorICAgICAgICB1bm5lY2Vzc2Fy
eSBjYXN0cy4KKyAgICAgICAgKFdlYkNvcmU6OlNWR1RleHRNZXRyaWNzQnVpbGRlcjo6YWR2YW5j
ZSk6IERpdHRvLgorICAgICAgICAqIHN2Zy9TVkdGb250RGF0YS5jcHA6CisgICAgICAgIChXZWJD
b3JlOjpTVkdGb250RGF0YTo6YXBwbHlTVkdHbHlwaFNlbGVjdGlvbik6IENhc3QgcmVzdWx0IHRv
IGludC4KKwogMjAxNC0xMC0wMiAgQ2hyaXN0b3BoZSBEdW1leiAgPGNkdW1lekBhcHBsZS5jb20+
CiAKICAgICAgICAgVXNlIGlzPD4oKSAvIGRvd25jYXN0PD4oKSBmb3IgQ1NTQmFzaWNTaGFwZSBv
YmplY3RzCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9Gb250
LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL0ZvbnQuY3BwCmluZGV4IDZh
OTM3YTllMDRlYWMxNmQ0Y2MxOWE3NjJjZmY1MjNmNDRiMjE3YTYuLmZmNmY1ZDBlOGM5OWY4Zjk5
NDEzOGE1ZDBmZGI5YTg3ZTQ1ODZjMTUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRm
b3JtL2dyYXBoaWNzL0ZvbnQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL0ZvbnQuY3BwCkBAIC0zNDEsNyArMzQxLDcgQEAgZmxvYXQgRm9udDo6ZHJhd1RleHQoR3Jh
cGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBUZXh0UnVuJiBydW4sIGNvbnN0IEZsb2F0UG8K
IAogICAgIENvZGVQYXRoIGNvZGVQYXRoVG9Vc2UgPSBjb2RlUGF0aChydW4pOwogICAgIC8vIEZJ
WE1FOiBVc2UgdGhlIGZhc3QgY29kZSBwYXRoIG9uY2UgaXQgaGFuZGxlcyBwYXJ0aWFsIHJ1bnMg
d2l0aCBrZXJuaW5nIGFuZCBsaWdhdHVyZXMuIFNlZSBodHRwOi8vd2Via2l0Lm9yZy9iLzEwMDA1
MAotICAgIGlmIChjb2RlUGF0aFRvVXNlICE9IENvbXBsZXggJiYgdHlwZXNldHRpbmdGZWF0dXJl
cygpICYmIChmcm9tIHx8IHRvICE9IHJ1bi5sZW5ndGgoKSkgJiYgIWlzRHJhd25XaXRoU1ZHRm9u
dChydW4pKQorICAgIGlmIChjb2RlUGF0aFRvVXNlICE9IENvbXBsZXggJiYgdHlwZXNldHRpbmdG
ZWF0dXJlcygpICYmIChmcm9tIHx8IHN0YXRpY19jYXN0PHVuc2lnbmVkPih0bykgIT0gcnVuLmxl
bmd0aCgpKSAmJiAhaXNEcmF3bldpdGhTVkdGb250KHJ1bikpCiAgICAgICAgIGNvZGVQYXRoVG9V
c2UgPSBDb21wbGV4OwogCiAgICAgaWYgKGNvZGVQYXRoVG9Vc2UgIT0gQ29tcGxleCkKQEAgLTM2
MCw3ICszNjAsNyBAQCB2b2lkIEZvbnQ6OmRyYXdFbXBoYXNpc01hcmtzKEdyYXBoaWNzQ29udGV4
dCogY29udGV4dCwgY29uc3QgVGV4dFJ1biYgcnVuLCBjb25zdAogCiAgICAgQ29kZVBhdGggY29k
ZVBhdGhUb1VzZSA9IGNvZGVQYXRoKHJ1bik7CiAgICAgLy8gRklYTUU6IFVzZSB0aGUgZmFzdCBj
b2RlIHBhdGggb25jZSBpdCBoYW5kbGVzIHBhcnRpYWwgcnVucyB3aXRoIGtlcm5pbmcgYW5kIGxp
Z2F0dXJlcy4gU2VlIGh0dHA6Ly93ZWJraXQub3JnL2IvMTAwMDUwCi0gICAgaWYgKGNvZGVQYXRo
VG9Vc2UgIT0gQ29tcGxleCAmJiB0eXBlc2V0dGluZ0ZlYXR1cmVzKCkgJiYgKGZyb20gfHwgdG8g
IT0gcnVuLmxlbmd0aCgpKSAmJiAhaXNEcmF3bldpdGhTVkdGb250KHJ1bikpCisgICAgaWYgKGNv
ZGVQYXRoVG9Vc2UgIT0gQ29tcGxleCAmJiB0eXBlc2V0dGluZ0ZlYXR1cmVzKCkgJiYgKGZyb20g
fHwgc3RhdGljX2Nhc3Q8dW5zaWduZWQ+KHRvKSAhPSBydW4ubGVuZ3RoKCkpICYmICFpc0RyYXdu
V2l0aFNWR0ZvbnQocnVuKSkKICAgICAgICAgY29kZVBhdGhUb1VzZSA9IENvbXBsZXg7CiAKICAg
ICBpZiAoY29kZVBhdGhUb1VzZSAhPSBDb21wbGV4KQpAQCAtNTEzLDcgKzUxMyw3IEBAIHZvaWQg
Rm9udDo6YWRqdXN0U2VsZWN0aW9uUmVjdEZvclRleHQoY29uc3QgVGV4dFJ1biYgcnVuLCBMYXlv
dXRSZWN0JiBzZWxlY3Rpb25SCiAKICAgICBDb2RlUGF0aCBjb2RlUGF0aFRvVXNlID0gY29kZVBh
dGgocnVuKTsKICAgICAvLyBGSVhNRTogVXNlIHRoZSBmYXN0IGNvZGUgcGF0aCBvbmNlIGl0IGhh
bmRsZXMgcGFydGlhbCBydW5zIHdpdGgga2VybmluZyBhbmQgbGlnYXR1cmVzLiBTZWUgaHR0cDov
L3dlYmtpdC5vcmcvYi8xMDAwNTAKLSAgICBpZiAoY29kZVBhdGhUb1VzZSAhPSBDb21wbGV4ICYm
IHR5cGVzZXR0aW5nRmVhdHVyZXMoKSAmJiAoZnJvbSB8fCB0byAhPSBydW4ubGVuZ3RoKCkpICYm
ICFpc0RyYXduV2l0aFNWR0ZvbnQocnVuKSkKKyAgICBpZiAoY29kZVBhdGhUb1VzZSAhPSBDb21w
bGV4ICYmIHR5cGVzZXR0aW5nRmVhdHVyZXMoKSAmJiAoZnJvbSB8fCBzdGF0aWNfY2FzdDx1bnNp
Z25lZD4odG8pICE9IHJ1bi5sZW5ndGgoKSkgJiYgIWlzRHJhd25XaXRoU1ZHRm9udChydW4pKQog
ICAgICAgICBjb2RlUGF0aFRvVXNlID0gQ29tcGxleDsKIAogICAgIGlmIChjb2RlUGF0aFRvVXNl
ICE9IENvbXBsZXgpCkBAIC0xMDU5LDcgKzEwNTksNyBAQCBHbHlwaFRvUGF0aFRyYW5zbGF0b3I6
OkdseXBoVW5kZXJsaW5lVHlwZSBjb21wdXRlVW5kZXJsaW5lVHlwZShjb25zdCBUZXh0UnVuJiB0
ZQogICAgIC8vIEluIGdlbmVyYWwsIHdlIHdhbnQgdG8gc2tpcCBkZXNjZW5kZXJzLiBIb3dldmVy
LCBza2lwcGluZyBkZXNjZW5kZXJzIG9uIENKSyBjaGFyYWN0ZXJzIGxlYWRzIHRvIHVuZGVzaXJh
YmxlIHJlbmRlcmluZ3MsCiAgICAgLy8gc28gd2Ugd2FudCB0byBkcmF3IHRocm91Z2ggQ0pLIGNo
YXJhY3RlcnMgKG9uIGEgY2hhcmFjdGVyLWJ5LWNoYXJhY3RlciBiYXNpcykuCiAgICAgVUNoYXIz
MiBiYXNlQ2hhcmFjdGVyOwotICAgIGludCBvZmZzZXRJblN0cmluZyA9IGdseXBoQnVmZmVyLm9m
ZnNldEluU3RyaW5nKGluZGV4KTsKKyAgICB1bnNpZ25lZCBvZmZzZXRJblN0cmluZyA9IGdseXBo
QnVmZmVyLm9mZnNldEluU3RyaW5nKGluZGV4KTsKIAogICAgIGlmIChvZmZzZXRJblN0cmluZyA9
PSBHbHlwaEJ1ZmZlcjo6a05vT2Zmc2V0KSB7CiAgICAgICAgIC8vIFdlIGhhdmUgbm8gaWRlYSB3
aGljaCBjaGFyYWN0ZXIgc3Bhd25lZCB0aGlzIGdseXBoLiBCYWlsLgpkaWZmIC0tZ2l0IGEvU291
cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvR2x5cGhCdWZmZXIuaCBiL1NvdXJjZS9XZWJD
b3JlL3BsYXRmb3JtL2dyYXBoaWNzL0dseXBoQnVmZmVyLmgKaW5kZXggM2M1OTM1ZmM2ZDJjMDI0
NzYwN2UzMzMyNGQzOTBiMDVkN2Y4OWI0Ni4uNzNkYjNmZTIxMjI4YzEzYjRkMDJhNzZlNjU1ZTQy
NjQzOGZmMzc5NCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3Mv
R2x5cGhCdWZmZXIuaAorKysgYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9HbHlw
aEJ1ZmZlci5oCkBAIC0xMjQsOCArMTI0LDggQEAgcHVibGljOgogI2VuZGlmCiAgICAgfQogICAg
IAotICAgIHN0YXRpYyBjb25zdCBpbnQga05vT2Zmc2V0ID0gLTE7Ci0gICAgdm9pZCBhZGQoR2x5
cGggZ2x5cGgsIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250LCBmbG9hdCB3aWR0aCwgaW50IG9m
ZnNldEluU3RyaW5nID0ga05vT2Zmc2V0LCBjb25zdCBGbG9hdFNpemUqIG9mZnNldCA9IDApCisg
ICAgc3RhdGljIGNvbnN0IHVuc2lnbmVkIGtOb09mZnNldCA9IFVJTlRfTUFYOworICAgIHZvaWQg
YWRkKEdseXBoIGdseXBoLCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udCwgZmxvYXQgd2lkdGgs
IHVuc2lnbmVkIG9mZnNldEluU3RyaW5nID0ga05vT2Zmc2V0LCBjb25zdCBGbG9hdFNpemUqIG9m
ZnNldCA9IDApCiAgICAgewogICAgICAgICBtX2ZvbnREYXRhLmFwcGVuZChmb250KTsKIApAQCAt
MTU4LDcgKzE1OCw3IEBAIHB1YmxpYzoKICAgICB9CiAgICAgCiAjaWYgIVVTRShXSU5HREkpCi0g
ICAgdm9pZCBhZGQoR2x5cGggZ2x5cGgsIGNvbnN0IFNpbXBsZUZvbnREYXRhKiBmb250LCBHbHlw
aEJ1ZmZlckFkdmFuY2UgYWR2YW5jZSwgaW50IG9mZnNldEluU3RyaW5nID0ga05vT2Zmc2V0KQor
ICAgIHZvaWQgYWRkKEdseXBoIGdseXBoLCBjb25zdCBTaW1wbGVGb250RGF0YSogZm9udCwgR2x5
cGhCdWZmZXJBZHZhbmNlIGFkdmFuY2UsIHVuc2lnbmVkIG9mZnNldEluU3RyaW5nID0ga05vT2Zm
c2V0KQogICAgIHsKICAgICAgICAgbV9mb250RGF0YS5hcHBlbmQoZm9udCk7CiAjaWYgVVNFKENB
SVJPKQpAQCAtMTkxLDkgKzE5MSwxMCBAQCBwdWJsaWM6CiAgICAgCiAgICAgdm9pZCBzYXZlT2Zm
c2V0c0luU3RyaW5nKCkKICAgICB7Ci0gICAgICAgIG1fb2Zmc2V0c0luU3RyaW5nLnJlc2V0KG5l
dyBWZWN0b3I8aW50LCAyMDQ4PigpKTsKKyAgICAgICAgbV9vZmZzZXRzSW5TdHJpbmcucmVzZXQo
bmV3IFZlY3Rvcjx1bnNpZ25lZCwgMjA0OD4oKSk7CiAgICAgfQotICAgIAorCisgICAgLy8gRklY
TUU6IFRoaXMgY29udmVydHMgZnJvbSBhbiB1bnNpZ25lZCB0byBhbiBpbnQKICAgICBpbnQgb2Zm
c2V0SW5TdHJpbmcoaW50IGluZGV4KSBjb25zdAogICAgIHsKICAgICAgICAgQVNTRVJUKG1fb2Zm
c2V0c0luU3RyaW5nKTsKQEAgLTIyNiw3ICsyMjcsNyBAQCBwcml2YXRlOgogICAgIFZlY3RvcjxH
bHlwaEJ1ZmZlckdseXBoLCAyMDQ4PiBtX2dseXBoczsKICAgICBWZWN0b3I8R2x5cGhCdWZmZXJB
ZHZhbmNlLCAyMDQ4PiBtX2FkdmFuY2VzOwogICAgIEdseXBoQnVmZmVyQWR2YW5jZSBtX2luaXRp
YWxBZHZhbmNlOwotICAgIHN0ZDo6dW5pcXVlX3B0cjxWZWN0b3I8aW50LCAyMDQ4Pj4gbV9vZmZz
ZXRzSW5TdHJpbmc7CisgICAgc3RkOjp1bmlxdWVfcHRyPFZlY3Rvcjx1bnNpZ25lZCwgMjA0OD4+
IG1fb2Zmc2V0c0luU3RyaW5nOwogI2lmIFBMQVRGT1JNKFdJTikKICAgICBWZWN0b3I8RmxvYXRT
aXplLCAyMDQ4PiBtX29mZnNldHM7CiAjZW5kaWYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3Jl
L3BsYXRmb3JtL2dyYXBoaWNzL0dyYXBoaWNzQ29udGV4dC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9w
bGF0Zm9ybS9ncmFwaGljcy9HcmFwaGljc0NvbnRleHQuY3BwCmluZGV4IGI5M2RmM2MzOTA3MzNi
YzA2MTdiMjU4MDdmODMwZmY5NTM1Y2IyYWEuLmY0MDg3MjUxOTczOGZhYTU3ZGRkZGYzMjZlODBj
ZDljZTc2Mzk5MzIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNz
L0dyYXBoaWNzQ29udGV4dC5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhp
Y3MvR3JhcGhpY3NDb250ZXh0LmNwcApAQCAtNzQsNyArNzQsNyBAQCBwdWJsaWM6CiAKIHByaXZh
dGU6CiAgICAgY29uc3QgVGV4dFJ1biogbV90ZXh0UnVuOwotICAgIGludCBtX29mZnNldDsKKyAg
ICB1bnNpZ25lZCBtX29mZnNldDsKIH07CiAKIGNsYXNzIEludGVycG9sYXRpb25RdWFsaXR5TWFp
bnRhaW5lciB7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9U
ZXh0UnVuLmggYi9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGljcy9UZXh0UnVuLmgKaW5k
ZXggZGE0OTU1NzdjZjliOWZiMDBhZTE4NTZlYjdlYjQxMzY0OTkyZWE5ZS4uMzAzNGI5OWNhNjc1
MzQ4YzYxMWYyNTZkMTUwZGJmYzgzNjM5NTliMCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvVGV4dFJ1bi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL1RleHRSdW4uaApAQCAtMTUzLDEwICsxNTMsMTAgQEAgcHVibGljOgogCiAgICAg
Y29uc3QgTENoYXIqIGNoYXJhY3RlcnM4KCkgY29uc3QgeyBBU1NFUlQoaXM4Qml0KCkpOyByZXR1
cm4gbV90ZXh0LmNoYXJhY3RlcnM4KCk7IH0KICAgICBjb25zdCBVQ2hhciogY2hhcmFjdGVyczE2
KCkgY29uc3QgeyBBU1NFUlQoIWlzOEJpdCgpKTsgcmV0dXJuIG1fdGV4dC5jaGFyYWN0ZXJzMTYo
KTsgfQotICAgIAorCiAgICAgYm9vbCBpczhCaXQoKSBjb25zdCB7IHJldHVybiBtX3RleHQuaXM4
Qml0KCk7IH0KLSAgICBpbnQgbGVuZ3RoKCkgY29uc3QgeyByZXR1cm4gbV90ZXh0Lmxlbmd0aCgp
OyB9Ci0gICAgaW50IGNoYXJhY3RlcnNMZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX2NoYXJhY3Rl
cnNMZW5ndGg7IH0KKyAgICB1bnNpZ25lZCBsZW5ndGgoKSBjb25zdCB7IHJldHVybiBtX3RleHQu
bGVuZ3RoKCk7IH0KKyAgICB1bnNpZ25lZCBjaGFyYWN0ZXJzTGVuZ3RoKCkgY29uc3QgeyByZXR1
cm4gbV9jaGFyYWN0ZXJzTGVuZ3RoOyB9CiAgICAgU3RyaW5nIHN0cmluZygpIGNvbnN0IHsgcmV0
dXJuIG1fdGV4dC50b1N0cmluZygpOyB9CiAKICAgICB2b2lkIHNldFRleHQoY29uc3QgTENoYXIq
IGMsIHVuc2lnbmVkIGxlbikgeyBtX3RleHQgPSBTdHJpbmdWaWV3KGMsIGxlbik7IH0KZGlmZiAt
LWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBoaWNzL1dpZHRoSXRlcmF0b3IuY3Bw
IGIvU291cmNlL1dlYkNvcmUvcGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAKaW5k
ZXggYmQ3NGExZDc2NDUwMDE4OGJkNTQ0NWVmZDlhMWUzYTg1MmEyNTdlMS4uNDEzNmQxZTNkYTdl
ZDhlMDA3YmVmZmJlYTYyMDJiNWM0NzEyMjA4ZiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUv
cGxhdGZvcm0vZ3JhcGhpY3MvV2lkdGhJdGVyYXRvci5jcHAKQEAgLTI5OCw4ICsyOTgsOCBAQCBp
bmxpbmUgdW5zaWduZWQgV2lkdGhJdGVyYXRvcjo6YWR2YW5jZUludGVybmFsKFRleHRJdGVyYXRv
ciYgdGV4dEl0ZXJhdG9yLCBHbHlwaAogICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgLy8g
Q2hlY2sgdG8gc2VlIGlmIHRoZSBuZXh0IGNoYXJhY3RlciBpcyBhICJyb3VuZGluZyBoYWNrIGNo
YXJhY3RlciIsIGlmIHNvLCBhZGp1c3QKICAgICAgICAgICAgIC8vIHdpZHRoIHNvIHRoYXQgdGhl
IHRvdGFsIHJ1biB3aWR0aCB3aWxsIGJlIG9uIGFuIGludGVnZXIgYm91bmRhcnkuCi0gICAgICAg
ICAgICBpZiAoKG1fcnVuLmFwcGx5V29yZFJvdW5kaW5nKCkgJiYgdGV4dEl0ZXJhdG9yLmN1cnJl
bnRDaGFyYWN0ZXIoKSA8IG1fcnVuLmxlbmd0aCgpICYmIEZvbnQ6OmlzUm91bmRpbmdIYWNrQ2hh
cmFjdGVyKCoodGV4dEl0ZXJhdG9yLmNoYXJhY3RlcnMoKSkpKQotICAgICAgICAgICAgICAgIHx8
IChtX3J1bi5hcHBseVJ1blJvdW5kaW5nKCkgJiYgdGV4dEl0ZXJhdG9yLmN1cnJlbnRDaGFyYWN0
ZXIoKSA+PSBtX3J1bi5sZW5ndGgoKSkpIHsKKyAgICAgICAgICAgIGlmICgobV9ydW4uYXBwbHlX
b3JkUm91bmRpbmcoKSAmJiBzdGF0aWNfY2FzdDx1bnNpZ25lZD4odGV4dEl0ZXJhdG9yLmN1cnJl
bnRDaGFyYWN0ZXIoKSkgPCBtX3J1bi5sZW5ndGgoKSAmJiBGb250Ojppc1JvdW5kaW5nSGFja0No
YXJhY3RlcigqKHRleHRJdGVyYXRvci5jaGFyYWN0ZXJzKCkpKSkKKyAgICAgICAgICAgICAgICB8
fCAobV9ydW4uYXBwbHlSdW5Sb3VuZGluZygpICYmIHN0YXRpY19jYXN0PHVuc2lnbmVkPih0ZXh0
SXRlcmF0b3IuY3VycmVudENoYXJhY3RlcigpKSA+PSBtX3J1bi5sZW5ndGgoKSkpIHsKICAgICAg
ICAgICAgICAgICBmbG9hdCB0b3RhbFdpZHRoID0gd2lkdGhTaW5jZUxhc3RSb3VuZGluZyArIHdp
ZHRoOwogICAgICAgICAgICAgICAgIHdpZHRoU2luY2VMYXN0Um91bmRpbmcgPSBjZWlsZih0b3Rh
bFdpZHRoKTsKICAgICAgICAgICAgICAgICB3aWR0aCArPSB3aWR0aFNpbmNlTGFzdFJvdW5kaW5n
IC0gdG90YWxXaWR0aDsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3JtL2dyYXBo
aWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3BsYXRmb3Jt
L2dyYXBoaWNzL2hhcmZidXp6L0hhcmZCdXp6U2hhcGVyLmNwcAppbmRleCAwY2RhNWU3ODJmN2Vi
YjhmN2ZmNzk0ZWJmMTAxZGVmZmVmOGVlYjJlLi44ZGIwZDFiNzc5YmE4NmZlOTAwMTFmZDIwYzMz
NmZlYzFlMDIxMDUzIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9wbGF0Zm9ybS9ncmFwaGlj
cy9oYXJmYnV6ei9IYXJmQnV6elNoYXBlci5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcGxhdGZv
cm0vZ3JhcGhpY3MvaGFyZmJ1enovSGFyZkJ1enpTaGFwZXIuY3BwCkBAIC0yNTQsNyArMjU0LDcg
QEAgdm9pZCBIYXJmQnV6elNoYXBlcjo6c2V0Tm9ybWFsaXplZEJ1ZmZlcihOb3JtYWxpemVNb2Rl
IG5vcm1hbGl6ZU1vZGUpCiAgICAgfSBlbHNlCiAgICAgICAgIHJ1bkNoYXJhY3RlcnMgPSBtX3J1
bi5jaGFyYWN0ZXJzMTYoKTsKIAotICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbV9ydW4ubGVuZ3Ro
KCk7ICsraSkgeworICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBtX3J1bi5sZW5ndGgoKTsg
KytpKSB7CiAgICAgICAgIFVDaGFyIGNoID0gcnVuQ2hhcmFjdGVyc1tpXTsKICAgICAgICAgaWYg
KDo6dWJsb2NrX2dldENvZGUoY2gpID09IFVCTE9DS19DT01CSU5JTkdfRElBQ1JJVElDQUxfTUFS
S1MpIHsKICAgICAgICAgICAgIGljdTo6Tm9ybWFsaXplcjo6bm9ybWFsaXplKGljdTo6VW5pY29k
ZVN0cmluZyhydW5DaGFyYWN0ZXJzLApkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdUZXh0TWV0cmljc0J1aWxkZXIuY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL3N2Zy9TVkdUZXh0TWV0cmljc0J1aWxkZXIuY3BwCmluZGV4IGU2MDEwMmRiMDhjMzk2Mzk0
OGI4YTU2Y2YxOTZmYTU2MzNkYzA4MWYuLmU1NDI3MmY0MjJkM2FjNDA4NzU5YjZhZDVkNmI2YTQ0
N2UzMjNlOTQgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9zdmcvU1ZHVGV4
dE1ldHJpY3NCdWlsZGVyLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvc3ZnL1NW
R1RleHRNZXRyaWNzQnVpbGRlci5jcHAKQEAgLTM3LDEzICszNywxMyBAQCBTVkdUZXh0TWV0cmlj
c0J1aWxkZXI6OlNWR1RleHRNZXRyaWNzQnVpbGRlcigpCiAKIGlubGluZSBib29sIFNWR1RleHRN
ZXRyaWNzQnVpbGRlcjo6Y3VycmVudENoYXJhY3RlclN0YXJ0c1N1cnJvZ2F0ZVBhaXIoKSBjb25z
dAogewotICAgIHJldHVybiBVMTZfSVNfTEVBRChtX3J1blttX3RleHRQb3NpdGlvbl0pICYmIGlu
dChtX3RleHRQb3NpdGlvbiArIDEpIDwgbV9ydW4uY2hhcmFjdGVyc0xlbmd0aCgpICYmIFUxNl9J
U19UUkFJTChtX3J1blttX3RleHRQb3NpdGlvbiArIDFdKTsKKyAgICByZXR1cm4gVTE2X0lTX0xF
QUQobV9ydW5bbV90ZXh0UG9zaXRpb25dKSAmJiAobV90ZXh0UG9zaXRpb24gKyAxKSA8IG1fcnVu
LmNoYXJhY3RlcnNMZW5ndGgoKSAmJiBVMTZfSVNfVFJBSUwobV9ydW5bbV90ZXh0UG9zaXRpb24g
KyAxXSk7CiB9CiAKIGJvb2wgU1ZHVGV4dE1ldHJpY3NCdWlsZGVyOjphZHZhbmNlKCkKIHsKICAg
ICBtX3RleHRQb3NpdGlvbiArPSBtX2N1cnJlbnRNZXRyaWNzLmxlbmd0aCgpOwotICAgIGlmIChp
bnQobV90ZXh0UG9zaXRpb24pID49IG1fcnVuLmNoYXJhY3RlcnNMZW5ndGgoKSkKKyAgICBpZiAo
bV90ZXh0UG9zaXRpb24gPj0gbV9ydW4uY2hhcmFjdGVyc0xlbmd0aCgpKQogICAgICAgICByZXR1
cm4gZmFsc2U7CiAKICAgICBpZiAobV9pc0NvbXBsZXhUZXh0KQpkaWZmIC0tZ2l0IGEvU291cmNl
L1dlYkNvcmUvc3ZnL1NWR0ZvbnREYXRhLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3N2Zy9TVkdGb250
RGF0YS5jcHAKaW5kZXggMjcyY2U5NDJiODdkMjFiMGE3YjQwNDhjMTljNDUyYjY3Zjg0N2NlMS4u
MmQ3Zjk0ZGMxNThjYWVjZDdkYzkwYTQ2MGJjNzY2ZDUzYjNiM2ZjNiAxMDA2NDQKLS0tIGEvU291
cmNlL1dlYkNvcmUvc3ZnL1NWR0ZvbnREYXRhLmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9zdmcv
U1ZHRm9udERhdGEuY3BwCkBAIC0xMzUsNyArMTM1LDcgQEAgYm9vbCBTVkdGb250RGF0YTo6YXBw
bHlTVkdHbHlwaFNlbGVjdGlvbihXaWR0aEl0ZXJhdG9yJiBpdGVyYXRvciwgR2x5cGhEYXRhJiBn
bHkKIHsKICAgICBjb25zdCBUZXh0UnVuJiBydW4gPSBpdGVyYXRvci5ydW4oKTsKICAgICBWZWN0
b3I8U1ZHR2x5cGg6OkFyYWJpY0Zvcm0+JiBhcmFiaWNGb3JtcyA9IGl0ZXJhdG9yLmFyYWJpY0Zv
cm1zKCk7Ci0gICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gY3VycmVudENoYXJh
Y3Rlcik7CisgICAgQVNTRVJUKHJ1bi5jaGFyYWN0ZXJzTGVuZ3RoKCkgPj0gc3RhdGljX2Nhc3Q8
dW5zaWduZWQ+KGN1cnJlbnRDaGFyYWN0ZXIpKTsKIAogICAgIFNWR0ZvbnRGYWNlRWxlbWVudCog
c3ZnRm9udEZhY2VFbGVtZW50ID0gdGhpcy0+c3ZnRm9udEZhY2VFbGVtZW50KCk7CiAgICAgQVNT
RVJUKHN2Z0ZvbnRGYWNlRWxlbWVudCk7Cg==
</data>
<flag name="review"
          id="263862"
          type_id="1"
          status="+"
          setter="koivisto"
    />
          </attachment>
      

    </bug>

</bugzilla>