<?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>132164</bug_id>
          
          <creation_ts>2014-04-24 19:28:59 -0700</creation_ts>
          <short_desc>Subpixel rendering: Inline text selection painting should not snap to integral CSS pixel position.</short_desc>
          <delta_ts>2014-05-02 11:36:44 -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>Layout and Rendering</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="alan">zalan</reporter>
          <assigned_to name="alan">zalan</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>mitz</cc>
    
    <cc>simon.fraser</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1003942</commentid>
    <comment_count>0</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-04-24 19:28:59 -0700</bug_when>
    <thetext>ssia. patch is coming up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1003943</commentid>
    <comment_count>1</comment_count>
      <attachid>230131</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-04-24 19:40:08 -0700</bug_when>
    <thetext>Created attachment 230131
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1004963</commentid>
    <comment_count>2</comment_count>
      <attachid>230131</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2014-04-29 09:02:46 -0700</bug_when>
    <thetext>Comment on attachment 230131
Patch

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

I wish I understood the difference between “rounding” and “pixel snapping”.

&gt; Source/WebCore/rendering/EllipsisBox.cpp:140
&gt; +    FloatRect clipRect = pixelSnappedForPainting(x() + paintOffset.x(), top + paintOffset.y(), m_logicalWidth, h, renderer().document().deviceScaleFactor());
&gt; +
&gt;      context-&gt;clip(clipRect);

Not sure we need a local variable for this.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:760
&gt; +    LayoutUnit selHeight = std::max&lt;LayoutUnit&gt;(0, selectionBottom - selectionTop);

Might be nice to use the word “selection” instead of the abbreviation “sel” here.

&gt; Source/WebCore/rendering/InlineTextBox.cpp:765
&gt; +    FloatRect clipRect = pixelSnappedForPainting(LayoutRect(LayoutPoint(localOrigin), LayoutSize(m_logicalWidth, selHeight)), deviceScaleFactor);
&gt;      context-&gt;clip(clipRect);

Not sure we need a local variable for this.

&gt; Source/WebCore/rendering/InlineTextBox.h:199
&gt;  INLINE_BOX_OBJECT_TYPE_CASTS(InlineTextBox, isInlineTextBox())
&gt; -
&gt; -void alignSelectionRectToDevicePixels(FloatRect&amp;);
&gt; -
&gt;  } // namespace WebCore

Should leave a blank line here.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005603</commentid>
    <comment_count>3</comment_count>
      <attachid>230545</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-04-30 17:25:56 -0700</bug_when>
    <thetext>Created attachment 230545
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005604</commentid>
    <comment_count>4</comment_count>
      <attachid>230545</attachid>
    <who name="alan">zalan</who>
    <bug_when>2014-04-30 17:26:13 -0700</bug_when>
    <thetext>Comment on attachment 230545
Patch

EWS testing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005607</commentid>
    <comment_count>5</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-04-30 17:31:19 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; (From update of attachment 230131 [details])
&gt; View in context: https://bugs.webkit.org/attachment.cgi?id=230131&amp;action=review
&gt; 
&gt; I wish I understood the difference between “rounding” and “pixel snapping”.
Nothing, they both round. It is indeed confusing and I am planning to cleanup and fix all these different/legacy terms soon after I removed the compile time flag for subpixel layout.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005711</commentid>
    <comment_count>6</comment_count>
      <attachid>230545</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-01 06:32:14 -0700</bug_when>
    <thetext>Comment on attachment 230545
Patch

Clearing flags on attachment: 230545

Committed r168095: &lt;http://trac.webkit.org/changeset/168095&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1005712</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-05-01 06:32:19 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006064</commentid>
    <comment_count>8</comment_count>
    <who name="">mitz</who>
    <bug_when>2014-05-02 11:33:07 -0700</bug_when>
    <thetext>(In reply to comment #6)
&gt; (From update of attachment 230545 [details])
&gt; Clearing flags on attachment: 230545
&gt; 
&gt; Committed r168095: &lt;http://trac.webkit.org/changeset/168095&gt;

This caused bug 132474.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1006067</commentid>
    <comment_count>9</comment_count>
    <who name="alan">zalan</who>
    <bug_when>2014-05-02 11:36:44 -0700</bug_when>
    <thetext>(In reply to comment #8)
&gt; (In reply to comment #6)
&gt; &gt; (From update of attachment 230545 [details] [details])
&gt; &gt; Clearing flags on attachment: 230545
&gt; &gt; 
&gt; &gt; Committed r168095: &lt;http://trac.webkit.org/changeset/168095&gt;
&gt; 
&gt; This caused bug 132474.
This patch made the inline text snapping errors visible for selections. It gets fixed when inline texts start setting its position properly on device pixels.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230131</attachid>
            <date>2014-04-24 19:40:08 -0700</date>
            <delta_ts>2014-04-30 17:25:52 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132164-20140424193945.patch</filename>
            <type>text/plain</type>
            <size>9148</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY3NzY2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZmJjNWQ5Y2E5Yjk0OWI2
MzM1OTBlZGE1MzFhNDU5YzM0N2U5NDVjOS4uNzIzZTk0ZmViOWMxNTkzYzFkNDg2YWI0Njk5NDg1
ODU5NzJjM2EwMSAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA0LTI0ICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBJbmxpbmUgdGV4dCBzZWxlY3Rpb24gcGFpbnRpbmcgc2hvdWxkIG5vdCBzbmFwIHRvIGludGVn
cmFsIENTUyBwaXhlbCBwb3NpdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzMjE2NAorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09Q
UyEpLgorCisgICAgICAgIElubGluZSB0ZXh0IHNlbGVjdGlvbiBwYWludGluZyBub3cgc25hcHMg
dG8gZGV2aWNlIHBpeGVscy4gSXQgdXNlcyB0aGUgc2FtZSByb3VuZGluZyBsb2dpYyBhcworICAg
ICAgICBvdGhlciBwYWludGluZyBmdW5jdGlvbnMuCisKKyAgICAgICAgVGVzdDogZmFzdC9pbmxp
bmUvaGlkcGktc2VsZWN0LWlubGluZS1vbi1zdWJwaXhlbC1wb3NpdGlvbi5odG1sCisKKyAgICAg
ICAgKiByZW5kZXJpbmcvRWxsaXBzaXNCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxsaXBz
aXNCb3g6OnBhaW50U2VsZWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJv
eC5jcHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludFNlbGVjdGlvbik6
CisgICAgICAgIChXZWJDb3JlOjphbGlnblNlbGVjdGlvblJlY3RUb0RldmljZVBpeGVscyk6IERl
bGV0ZWQuCisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guaDoKKwogMjAxNC0wNC0y
NCAgRGF2aWQgSHlhdHQgIDxoeWF0dEBhcHBsZS5jb20+CiAKICAgICAgICAgW05ldyBNdWx0aWNv
bHVtbl0gQ2xpZW50IHJlY3RzIGRvbid0IHdvcmsgd2l0aCBjb2x1bW4gc3BhbnMuCmRpZmYgLS1n
aXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRWxsaXBzaXNCb3guY3BwIGIvU291cmNlL1dl
YkNvcmUvcmVuZGVyaW5nL0VsbGlwc2lzQm94LmNwcAppbmRleCA2MjNhZWIwZDBlNTZkNWE3ZWVi
OTRmMGU1NjcwZDVhYmE0YjQ4ZmE4Li45ZmFmOTNlY2JkMGE5MjQ5ZWQ3YzE0ZDZkMzU2ZTRkZTEx
MTdlYTRmIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRWxsaXBzaXNCb3gu
Y3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9FbGxpcHNpc0JveC5jcHAKQEAgLTEz
MSwxMyArMTMxLDE1IEBAIHZvaWQgRWxsaXBzaXNCb3g6OnBhaW50U2VsZWN0aW9uKEdyYXBoaWNz
Q29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UG9pbnQmIHBhCiAgICAgY29uc3QgUm9vdElu
bGluZUJveCYgcm9vdEJveCA9IHJvb3QoKTsKICAgICBMYXlvdXRVbml0IHRvcCA9IHJvb3RCb3gu
c2VsZWN0aW9uVG9wKCk7CiAgICAgTGF5b3V0VW5pdCBoID0gcm9vdEJveC5zZWxlY3Rpb25IZWln
aHQoKTsKLSAgICBGbG9hdFJlY3QgY2xpcFJlY3QoeCgpICsgcGFpbnRPZmZzZXQueCgpLCB0b3Ag
KyBwYWludE9mZnNldC55KCksIG1fbG9naWNhbFdpZHRoLCBoKTsKLSAgICBhbGlnblNlbGVjdGlv
blJlY3RUb0RldmljZVBpeGVscyhjbGlwUmVjdCk7CiAKICAgICBHcmFwaGljc0NvbnRleHRTdGF0
ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOworICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9y
ID0gcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgRmxvYXRQ
b2ludCBsb2NhbE9yaWdpbiA9IHJvdW5kZWRGb3JQYWludGluZyhMYXlvdXRQb2ludCh4KCkgKyBw
YWludE9mZnNldC54KCksIHkoKSArIHBhaW50T2Zmc2V0LnkoKSArIHRvcCksIGRldmljZVNjYWxl
RmFjdG9yKTsKKyAgICBGbG9hdFJlY3QgY2xpcFJlY3QgPSBwaXhlbFNuYXBwZWRGb3JQYWludGlu
Zyh4KCkgKyBwYWludE9mZnNldC54KCksIHRvcCArIHBhaW50T2Zmc2V0LnkoKSwgbV9sb2dpY2Fs
V2lkdGgsIGgsIHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZhY3RvcigpKTsKKwog
ICAgIGNvbnRleHQtPmNsaXAoY2xpcFJlY3QpOwogICAgIC8vIEZJWE1FOiBXaHkgaXMgdGhpcyBh
bHdheXMgTFRSPyBGaXggYnkgcGFzc2luZyBjb3JyZWN0IHRleHQgcnVuIGZsYWdzIGJlbG93Lgot
ICAgIGNvbnRleHQtPmRyYXdIaWdobGlnaHRGb3JUZXh0KGZvbnQsIFJlbmRlckJsb2NrOjpjb25z
dHJ1Y3RUZXh0UnVuKCZibG9ja0Zsb3coKSwgZm9udCwgbV9zdHIsIHN0eWxlLCBUZXh0UnVuOjpB
bGxvd1RyYWlsaW5nRXhwYW5zaW9uKSwgcm91bmRlZEludFBvaW50KExheW91dFBvaW50KHgoKSAr
IHBhaW50T2Zmc2V0LngoKSwgeSgpICsgcGFpbnRPZmZzZXQueSgpICsgdG9wKSksIGgsIGMsIHN0
eWxlLmNvbG9yU3BhY2UoKSk7CisgICAgY29udGV4dC0+ZHJhd0hpZ2hsaWdodEZvclRleHQoZm9u
dCwgUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRleHRSdW4oJmJsb2NrRmxvdygpLCBmb250LCBtX3N0
ciwgc3R5bGUsIFRleHRSdW46OkFsbG93VHJhaWxpbmdFeHBhbnNpb24pLCBsb2NhbE9yaWdpbiwg
aCwgYywgc3R5bGUuY29sb3JTcGFjZSgpKTsKIH0KIAogYm9vbCBFbGxpcHNpc0JveDo6bm9kZUF0
UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmIHJlcXVlc3QsIEhpdFRlc3RSZXN1bHQmIHJlc3Vs
dCwgY29uc3QgSGl0VGVzdExvY2F0aW9uJiBsb2NhdGlvbkluQ29udGFpbmVyLCBjb25zdCBMYXlv
dXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIExheW91dFVuaXQgbGluZVRvcCwgTGF5b3V0VW5p
dCBsaW5lQm90dG9tKQpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGlu
ZVRleHRCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3Bw
CmluZGV4IGFmZjg3NTYzZjM2NzUzZGZjZDIwYTU0Y2I1YWY4Nzc4MGNjNTliMWIuLjRhMmQzODZh
MzhhMmEyY2FkNjVhM2Y0MTY2NTRhMGRiZmUxYmZmODIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5k
ZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKQEAgLTcxMiwxMyArNzEyLDYgQEAgdm9pZCBJbmxpbmVU
ZXh0Qm94OjpzZWxlY3Rpb25TdGFydEVuZChpbnQmIHNQb3MsIGludCYgZVBvcykKICAgICBlUG9z
ID0gc3RkOjptaW4oZW5kUG9zIC0gbV9zdGFydCwgKGludCltX2xlbik7CiB9CiAKLXZvaWQgYWxp
Z25TZWxlY3Rpb25SZWN0VG9EZXZpY2VQaXhlbHMoRmxvYXRSZWN0JiByZWN0KQotewotICAgIGZs
b2F0IG1heFggPSBmbG9vcmYocmVjdC5tYXhYKCkpOwotICAgIHJlY3Quc2V0WChmbG9vcmYocmVj
dC54KCkpKTsKLSAgICByZWN0LnNldFdpZHRoKHJvdW5kZihtYXhYIC0gcmVjdC54KCkpKTsKLX0K
LQogdm9pZCBJbmxpbmVUZXh0Qm94OjpwYWludFNlbGVjdGlvbihHcmFwaGljc0NvbnRleHQqIGNv
bnRleHQsIGNvbnN0IEZsb2F0UG9pbnQmIGJveE9yaWdpbiwgY29uc3QgUmVuZGVyU3R5bGUmIHN0
eWxlLCBjb25zdCBGb250JiBmb250LCBDb2xvciB0ZXh0Q29sb3IpCiB7CiAjaWYgRU5BQkxFKFRF
WFRfU0VMRUNUSU9OKQpAQCAtNzYzLDE1ICs3NTYsMTMgQEAgdm9pZCBJbmxpbmVUZXh0Qm94Ojpw
YWludFNlbGVjdGlvbihHcmFwaGljc0NvbnRleHQqIGNvbnRleHQsIGNvbnN0IEZsb2F0UG9pbnQm
IGIKICAgICBMYXlvdXRVbml0IHNlbGVjdGlvbkJvdHRvbSA9IHJvb3RCb3guc2VsZWN0aW9uQm90
dG9tKCk7CiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Ub3AgPSByb290Qm94LnNlbGVjdGlvblRv
cEFkanVzdGVkRm9yUHJlY2VkaW5nQmxvY2soKTsKIAotICAgIGludCBkZWx0YVkgPSByb3VuZFRv
SW50KHJlbmRlcmVyKCkuc3R5bGUoKS5pc0ZsaXBwZWRMaW5lc1dyaXRpbmdNb2RlKCkgPyBzZWxl
Y3Rpb25Cb3R0b20gLSBsb2dpY2FsQm90dG9tKCkgOiBsb2dpY2FsVG9wKCkgLSBzZWxlY3Rpb25U
b3ApOwotICAgIGludCBzZWxIZWlnaHQgPSBzdGQ6Om1heCgwLCByb3VuZFRvSW50KHNlbGVjdGlv
bkJvdHRvbSAtIHNlbGVjdGlvblRvcCkpOwotCi0gICAgRmxvYXRQb2ludCBsb2NhbE9yaWdpbihi
b3hPcmlnaW4ueCgpLCBib3hPcmlnaW4ueSgpIC0gZGVsdGFZKTsKLSAgICBGbG9hdFJlY3QgY2xp
cFJlY3QobG9jYWxPcmlnaW4sIEZsb2F0U2l6ZShtX2xvZ2ljYWxXaWR0aCwgc2VsSGVpZ2h0KSk7
Ci0gICAgYWxpZ25TZWxlY3Rpb25SZWN0VG9EZXZpY2VQaXhlbHMoY2xpcFJlY3QpOworICAgIExh
eW91dFVuaXQgZGVsdGFZID0gcmVuZGVyZXIoKS5zdHlsZSgpLmlzRmxpcHBlZExpbmVzV3JpdGlu
Z01vZGUoKSA/IHNlbGVjdGlvbkJvdHRvbSAtIGxvZ2ljYWxCb3R0b20oKSA6IGxvZ2ljYWxUb3Ao
KSAtIHNlbGVjdGlvblRvcDsKKyAgICBMYXlvdXRVbml0IHNlbEhlaWdodCA9IHN0ZDo6bWF4PExh
eW91dFVuaXQ+KDAsIHNlbGVjdGlvbkJvdHRvbSAtIHNlbGVjdGlvblRvcCk7CiAKKyAgICBmbG9h
dCBkZXZpY2VTY2FsZUZhY3RvciA9IHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5kZXZpY2VTY2FsZUZh
Y3RvcigpOworICAgIEZsb2F0UG9pbnQgbG9jYWxPcmlnaW4gPSByb3VuZGVkRm9yUGFpbnRpbmco
TGF5b3V0UG9pbnQoYm94T3JpZ2luLngoKSwgYm94T3JpZ2luLnkoKSAtIGRlbHRhWSksIGRldmlj
ZVNjYWxlRmFjdG9yKTsKKyAgICBGbG9hdFJlY3QgY2xpcFJlY3QgPSBwaXhlbFNuYXBwZWRGb3JQ
YWludGluZyhMYXlvdXRSZWN0KExheW91dFBvaW50KGxvY2FsT3JpZ2luKSwgTGF5b3V0U2l6ZSht
X2xvZ2ljYWxXaWR0aCwgc2VsSGVpZ2h0KSksIGRldmljZVNjYWxlRmFjdG9yKTsKICAgICBjb250
ZXh0LT5jbGlwKGNsaXBSZWN0KTsKLQogICAgIGNvbnRleHQtPmRyYXdIaWdobGlnaHRGb3JUZXh0
KGZvbnQsIHRleHRSdW4sIGxvY2FsT3JpZ2luLCBzZWxIZWlnaHQsIGMsIHN0eWxlLmNvbG9yU3Bh
Y2UoKSwgc1BvcywgZVBvcyk7CiAjZWxzZQogICAgIFVOVVNFRF9QQVJBTShjb250ZXh0KTsKZGlm
ZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmggYi9Tb3Vy
Y2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCmluZGV4IDQwNWE5YmU4Mjk2ZTBj
MGZkNGI3MDY4YWQ2N2EzZDhkYjUxNmI2NjMuLjI4N2Q1OTg0M2JmOWViMTM1OWFiMTgwYzdmYzQ5
YjljODAzZWZiOGIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVU
ZXh0Qm94LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaApA
QCAtMTk2LDkgKzE5Niw2IEBAIHByaXZhdGU6CiB9OwogCiBJTkxJTkVfQk9YX09CSkVDVF9UWVBF
X0NBU1RTKElubGluZVRleHRCb3gsIGlzSW5saW5lVGV4dEJveCgpKQotCi12b2lkIGFsaWduU2Vs
ZWN0aW9uUmVjdFRvRGV2aWNlUGl4ZWxzKEZsb2F0UmVjdCYpOwotCiB9IC8vIG5hbWVzcGFjZSBX
ZWJDb3JlCiAKICNlbmRpZiAvLyBJbmxpbmVUZXh0Qm94X2gKZGlmZiAtLWdpdCBhL0xheW91dFRl
c3RzL0NoYW5nZUxvZyBiL0xheW91dFRlc3RzL0NoYW5nZUxvZwppbmRleCBlNTU4ODhmNmY0NTcw
MzhkNzliODY1OWRlYTU1YWRiYjk2MDY1NTZlLi5lMDczZjgzZGE2NzU3YjVlMGIxNWI4NTkxMGZj
N2M0N2U2ZmY5NDRjIDEwMDY0NAotLS0gYS9MYXlvdXRUZXN0cy9DaGFuZ2VMb2cKKysrIGIvTGF5
b3V0VGVzdHMvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsMTcgQEAKKzIwMTQtMDQtMjQgIFphbGFuIEJ1
anRhcyAgPHphbGFuQGFwcGxlLmNvbT4KKworICAgICAgICBTdWJwaXhlbCByZW5kZXJpbmc6IElu
bGluZSB0ZXh0IHNlbGVjdGlvbiBwYWludGluZyBzaG91bGQgbm90IHNuYXAgdG8gaW50ZWdyYWwg
Q1NTIHBpeGVsIHBvc2l0aW9uLgorICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9zaG93
X2J1Zy5jZ2k/aWQ9MTMyMTY0CisKKyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISku
CisKKyAgICAgICAgSW5saW5lIHRleHQgc2VsZWN0aW9uIHBhaW50aW5nIG5vdyBzbmFwcyB0byBk
ZXZpY2UgcGl4ZWxzLiBJdCB1c2VzIHRoZSBzYW1lIHJvdW5kaW5nIGxvZ2ljIGFzCisgICAgICAg
IG90aGVyIHBhaW50aW5nIGZ1bmN0aW9ucy4KKworICAgICAgICAqIGZhc3QvaW5saW5lL2hpZHBp
LXNlbGVjdC1pbmxpbmUtb24tc3VicGl4ZWwtcG9zaXRpb24tZXhwZWN0ZWQuaHRtbDogQWRkZWQu
CisgICAgICAgICogZmFzdC9pbmxpbmUvaGlkcGktc2VsZWN0LWlubGluZS1vbi1zdWJwaXhlbC1w
b3NpdGlvbi5odG1sOiBBZGRlZC4gMC45IHRyYW5zcGFyZW5jeSBpcyBhZGRlZCBzbyB0aGF0Cisg
ICAgICAgIHRleHQgc2VsZWN0aW9uIGNvZGUgZG9lcyBtb2RpZnkgdGhlIGNvbG9yJ3MgYWxwaGEg
Y2hhbm5lbCBhbmQgSSBjYW4gcHJvcGVybHkgbWF0Y2ggaXQuCisKIDIwMTQtMDQtMjQgIENhcmxv
cyBBbGJlcnRvIExvcGV6IFBlcmV6ICA8Y2xvcGV6QGlnYWxpYS5jb20+CiAKICAgICAgICAgW0dU
S10gVW5yZXZpZXdlZCBHVEsgZ2FyZGVuaW5nLgpkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvZmFz
dC9pbmxpbmUvaGlkcGktc2VsZWN0LWlubGluZS1vbi1zdWJwaXhlbC1wb3NpdGlvbi1leHBlY3Rl
ZC5odG1sIGIvTGF5b3V0VGVzdHMvZmFzdC9pbmxpbmUvaGlkcGktc2VsZWN0LWlubGluZS1vbi1z
dWJwaXhlbC1wb3NpdGlvbi1leHBlY3RlZC5odG1sCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAuLjk0MTQ1NWE3NzIwYjkz
NjkyYTczNTdkNWNjZTc1NDYwNDlmZjllMjEKLS0tIC9kZXYvbnVsbAorKysgYi9MYXlvdXRUZXN0
cy9mYXN0L2lubGluZS9oaWRwaS1zZWxlY3QtaW5saW5lLW9uLXN1YnBpeGVsLXBvc2l0aW9uLWV4
cGVjdGVkLmh0bWwKQEAgLTAsMCArMSwzMiBAQAorPCFET0NUWVBFIGh0bWw+Cis8aHRtbD4KKzxo
ZWFkPgorPHRpdGxlPlRoaXMgdGVzdHMgdGhhdCBpbmxpbmUgdGV4dCBzZWxlY3Rpb24gY2FuIHBh
aW50IHRvIHN1YnBpeGVsIHBvc2l0aW9uLjwvdGl0bGU+Cis8c3R5bGU+CisgIGRpdiB7CisgICAg
Zm9udC1zaXplOiAxNnB4OworICAgIHdpZHRoOiAyMXB4OworICAgIGhlaWdodDogMThweDsKKyAg
ICBwb3NpdGlvbjogZml4ZWQ7CisgICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDAsIDAsIDAuOSk7
CisgIH0KKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJjb250YWluZXIiPjwvcD4K
KzxzY3JpcHQ+CisgIHZhciBjb250YWluZXIgPSBkb2N1bWVudC5nZXRFbGVtZW50QnlJZCgiY29u
dGFpbmVyIik7CisgIGFkanVzdG1lbnQgPSAwLjE7CisgIGZvciAoaSA9IDA7IGkgPCAxMDsgKytp
KSB7CisgICAgYWRqdXN0bWVudCs9MC4xOworICAgIGZvciAoaiA9IDA7IGogPCAxMDsgKytqKSB7
CisgICAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoImRpdiIpOworICAgICAgZS5z
dHlsZS50b3AgPSAoMzAgKiBpICsgaiAqIGFkanVzdG1lbnQpICsgInB4IjsKKyAgICAgIGUuc3R5
bGUubGVmdCA9ICgzMCAqIGogKyBpICogYWRqdXN0bWVudCkgKyAicHgiOworICAgICAgZS5pbm5l
ckhUTUwgPSAiZm9vIjsKKyAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChlKTsKKyAgICB9Cisg
IH0gIAorPC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+CmRpZmYgLS1naXQgYS9MYXlvdXRUZXN0
cy9mYXN0L2lubGluZS9oaWRwaS1zZWxlY3QtaW5saW5lLW9uLXN1YnBpeGVsLXBvc2l0aW9uLmh0
bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9oaWRwaS1zZWxlY3QtaW5saW5lLW9uLXN1YnBp
eGVsLXBvc2l0aW9uLmh0bWwKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAw
MDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMC4uZjQ5N2NjOGNiOWE0MzdkZjk3NWJhM2I3ZTc0
MDA1ZTdlZGIxZWU4YwotLS0gL2Rldi9udWxsCisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW5saW5l
L2hpZHBpLXNlbGVjdC1pbmxpbmUtb24tc3VicGl4ZWwtcG9zaXRpb24uaHRtbApAQCAtMCwwICsx
LDQxIEBACis8IURPQ1RZUEUgaHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGhpcyB0ZXN0
cyB0aGF0IGlubGluZSB0ZXh0IHNlbGVjdGlvbiBjYW4gcGFpbnQgdG8gc3VicGl4ZWwgcG9zaXRp
b24uPC90aXRsZT4KKzxzdHlsZT4KKyAgOjpzZWxlY3Rpb24geworICAgIGJhY2tncm91bmQ6IHJn
YmEoMjU1LCAwLCAwLCAwLjkpOworICB9CisKKyAgZGl2IHsKKyAgICBmb250LXNpemU6IDE2cHg7
CisgICAgaGVpZ2h0OiAxMHB4OworICAgIHdpZHRoOiAxcHg7CisgICAgaGVpZ2h0OiAxcHg7Cisg
ICAgcG9zaXRpb246IGZpeGVkOworICB9CisKKzwvc3R5bGU+Cis8L2hlYWQ+Cis8Ym9keT4KKzxw
IGlkPSJjb250YWluZXIiPjwvcD4KKzxzY3JpcHQ+CisgIHZhciBjb250YWluZXIgPSBkb2N1bWVu
dC5nZXRFbGVtZW50QnlJZCgiY29udGFpbmVyIik7CisgIGFkanVzdG1lbnQgPSAwLjE7CisgIGZv
ciAoaSA9IDA7IGkgPCAxMDsgKytpKSB7CisgICAgYWRqdXN0bWVudCs9MC4xOworICAgIGZvciAo
aiA9IDA7IGogPCAxMDsgKytqKSB7CisgICAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1l
bnQoImRpdiIpOworICAgICAgZS5zdHlsZS50b3AgPSAoMzAgKiBpICsgaiAqIGFkanVzdG1lbnQp
ICsgInB4IjsKKyAgICAgIGUuc3R5bGUubGVmdCA9ICgzMCAqIGogKyBpICogYWRqdXN0bWVudCkg
KyAicHgiOworICAgICAgZS5pbm5lckhUTUwgPSAiZm9vIjsKKyAgICAgIGNvbnRhaW5lci5hcHBl
bmRDaGlsZChlKTsKKyAgICB9CisgIH0KKyAgCisgIHZhciByYW5nZSA9IGRvY3VtZW50LmNyZWF0
ZVJhbmdlKCk7IAorICByYW5nZS5zZWxlY3ROb2RlKGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJj
b250YWluZXIiKSk7IAorICB3aW5kb3cuZ2V0U2VsZWN0aW9uKCkuYWRkUmFuZ2UocmFuZ2UpOwor
PC9zY3JpcHQ+Cis8L2JvZHk+Cis8L2h0bWw+Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>230545</attachid>
            <date>2014-04-30 17:25:56 -0700</date>
            <delta_ts>2014-05-01 06:32:14 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-132164-20140430172533.patch</filename>
            <type>text/plain</type>
            <size>9108</size>
            <attacher name="alan">zalan</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTY4MDU3CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggZWE5ODNjNTg5OGJjMTA0
NWM1Zjc4NGY5MzNjOGFmMzNjZmZlMjNjMC4uNDY2Y2QwMGFjM2Q3M2VmYjhlODE3NTYzMGY4YWU3
N2ExNzcyMjViYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDIyIEBACisyMDE0LTA0LTMwICBaYWxh
biBCdWp0YXMgIDx6YWxhbkBhcHBsZS5jb20+CisKKyAgICAgICAgU3VicGl4ZWwgcmVuZGVyaW5n
OiBJbmxpbmUgdGV4dCBzZWxlY3Rpb24gcGFpbnRpbmcgc2hvdWxkIG5vdCBzbmFwIHRvIGludGVn
cmFsIENTUyBwaXhlbCBwb3NpdGlvbi4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcv
c2hvd19idWcuY2dpP2lkPTEzMjE2NAorCisgICAgICAgIFJldmlld2VkIGJ5IERhcmluIEFkbGVy
LgorCisgICAgICAgIElubGluZSB0ZXh0IHNlbGVjdGlvbiBwYWludGluZyBub3cgc25hcHMgdG8g
ZGV2aWNlIHBpeGVscy4gSXQgdXNlcyB0aGUgc2FtZSByb3VuZGluZyBsb2dpYyBhcworICAgICAg
ICBvdGhlciBwYWludGluZyBmdW5jdGlvbnMuCisKKyAgICAgICAgVGVzdDogZmFzdC9pbmxpbmUv
aGlkcGktc2VsZWN0LWlubGluZS1vbi1zdWJwaXhlbC1wb3NpdGlvbi5odG1sCisKKyAgICAgICAg
KiByZW5kZXJpbmcvRWxsaXBzaXNCb3guY3BwOgorICAgICAgICAoV2ViQ29yZTo6RWxsaXBzaXNC
b3g6OnBhaW50U2VsZWN0aW9uKToKKyAgICAgICAgKiByZW5kZXJpbmcvSW5saW5lVGV4dEJveC5j
cHA6CisgICAgICAgIChXZWJDb3JlOjpJbmxpbmVUZXh0Qm94OjpwYWludFNlbGVjdGlvbik6Cisg
ICAgICAgIChXZWJDb3JlOjphbGlnblNlbGVjdGlvblJlY3RUb0RldmljZVBpeGVscyk6IERlbGV0
ZWQuCisgICAgICAgICogcmVuZGVyaW5nL0lubGluZVRleHRCb3guaDoKKwogMjAxNC0wNC0zMCAg
QWxleCBDaHJpc3RlbnNlbiAgPGFjaHJpc3RlbnNlbkB3ZWJraXQub3JnPgogCiAgICAgICAgIFVw
ZGF0ZWQgQU5HTEUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvRWxsaXBz
aXNCb3guY3BwIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0VsbGlwc2lzQm94LmNwcAppbmRl
eCA2MjNhZWIwZDBlNTZkNWE3ZWViOTRmMGU1NjcwZDVhYmE0YjQ4ZmE4Li44MGEyMTE5OWI1MGRi
OTk3NGM2ODVmNTdlNjc3Y2RmMTZmODdlY2IyIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvRWxsaXBzaXNCb3guY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9F
bGxpcHNpc0JveC5jcHAKQEAgLTEzMSwxMyArMTMxLDEzIEBAIHZvaWQgRWxsaXBzaXNCb3g6OnBh
aW50U2VsZWN0aW9uKEdyYXBoaWNzQ29udGV4dCogY29udGV4dCwgY29uc3QgTGF5b3V0UG9pbnQm
IHBhCiAgICAgY29uc3QgUm9vdElubGluZUJveCYgcm9vdEJveCA9IHJvb3QoKTsKICAgICBMYXlv
dXRVbml0IHRvcCA9IHJvb3RCb3guc2VsZWN0aW9uVG9wKCk7CiAgICAgTGF5b3V0VW5pdCBoID0g
cm9vdEJveC5zZWxlY3Rpb25IZWlnaHQoKTsKLSAgICBGbG9hdFJlY3QgY2xpcFJlY3QoeCgpICsg
cGFpbnRPZmZzZXQueCgpLCB0b3AgKyBwYWludE9mZnNldC55KCksIG1fbG9naWNhbFdpZHRoLCBo
KTsKLSAgICBhbGlnblNlbGVjdGlvblJlY3RUb0RldmljZVBpeGVscyhjbGlwUmVjdCk7CiAKICAg
ICBHcmFwaGljc0NvbnRleHRTdGF0ZVNhdmVyIHN0YXRlU2F2ZXIoKmNvbnRleHQpOwotICAgIGNv
bnRleHQtPmNsaXAoY2xpcFJlY3QpOworICAgIGZsb2F0IGRldmljZVNjYWxlRmFjdG9yID0gcmVu
ZGVyZXIoKS5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCk7CisgICAgY29udGV4dC0+Y2xp
cChwaXhlbFNuYXBwZWRGb3JQYWludGluZyh4KCkgKyBwYWludE9mZnNldC54KCksIHRvcCArIHBh
aW50T2Zmc2V0LnkoKSwgbV9sb2dpY2FsV2lkdGgsIGgsIHJlbmRlcmVyKCkuZG9jdW1lbnQoKS5k
ZXZpY2VTY2FsZUZhY3RvcigpKSk7CiAgICAgLy8gRklYTUU6IFdoeSBpcyB0aGlzIGFsd2F5cyBM
VFI/IEZpeCBieSBwYXNzaW5nIGNvcnJlY3QgdGV4dCBydW4gZmxhZ3MgYmVsb3cuCi0gICAgY29u
dGV4dC0+ZHJhd0hpZ2hsaWdodEZvclRleHQoZm9udCwgUmVuZGVyQmxvY2s6OmNvbnN0cnVjdFRl
eHRSdW4oJmJsb2NrRmxvdygpLCBmb250LCBtX3N0ciwgc3R5bGUsIFRleHRSdW46OkFsbG93VHJh
aWxpbmdFeHBhbnNpb24pLCByb3VuZGVkSW50UG9pbnQoTGF5b3V0UG9pbnQoeCgpICsgcGFpbnRP
ZmZzZXQueCgpLCB5KCkgKyBwYWludE9mZnNldC55KCkgKyB0b3ApKSwgaCwgYywgc3R5bGUuY29s
b3JTcGFjZSgpKTsKKyAgICBGbG9hdFBvaW50IGxvY2FsT3JpZ2luID0gcm91bmRlZEZvclBhaW50
aW5nKExheW91dFBvaW50KHgoKSArIHBhaW50T2Zmc2V0LngoKSwgeSgpICsgcGFpbnRPZmZzZXQu
eSgpICsgdG9wKSwgZGV2aWNlU2NhbGVGYWN0b3IpOworICAgIGNvbnRleHQtPmRyYXdIaWdobGln
aHRGb3JUZXh0KGZvbnQsIFJlbmRlckJsb2NrOjpjb25zdHJ1Y3RUZXh0UnVuKCZibG9ja0Zsb3co
KSwgZm9udCwgbV9zdHIsIHN0eWxlLCBUZXh0UnVuOjpBbGxvd1RyYWlsaW5nRXhwYW5zaW9uKSwg
bG9jYWxPcmlnaW4sIGgsIGMsIHN0eWxlLmNvbG9yU3BhY2UoKSk7CiB9CiAKIGJvb2wgRWxsaXBz
aXNCb3g6Om5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiByZXF1ZXN0LCBIaXRUZXN0
UmVzdWx0JiByZXN1bHQsIGNvbnN0IEhpdFRlc3RMb2NhdGlvbiYgbG9jYXRpb25JbkNvbnRhaW5l
ciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBMYXlvdXRVbml0IGxpbmVU
b3AsIExheW91dFVuaXQgbGluZUJvdHRvbSkKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3Jl
bmRlcmluZy9JbmxpbmVUZXh0Qm94LmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9Jbmxp
bmVUZXh0Qm94LmNwcAppbmRleCBhZmY4NzU2M2YzNjc1M2RmY2QyMGE1NGNiNWFmODc3ODBjYzU5
YjFiLi5iMzI4NDM0MjJlOWVkNTU4MzQxMjUwYTdkMzAzNDI0YWE5NTk2Y2M4IDEwMDY0NAotLS0g
YS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5jcHAKKysrIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guY3BwCkBAIC03MTIsMTMgKzcxMiw2IEBA
IHZvaWQgSW5saW5lVGV4dEJveDo6c2VsZWN0aW9uU3RhcnRFbmQoaW50JiBzUG9zLCBpbnQmIGVQ
b3MpCiAgICAgZVBvcyA9IHN0ZDo6bWluKGVuZFBvcyAtIG1fc3RhcnQsIChpbnQpbV9sZW4pOwog
fQogCi12b2lkIGFsaWduU2VsZWN0aW9uUmVjdFRvRGV2aWNlUGl4ZWxzKEZsb2F0UmVjdCYgcmVj
dCkKLXsKLSAgICBmbG9hdCBtYXhYID0gZmxvb3JmKHJlY3QubWF4WCgpKTsKLSAgICByZWN0LnNl
dFgoZmxvb3JmKHJlY3QueCgpKSk7Ci0gICAgcmVjdC5zZXRXaWR0aChyb3VuZGYobWF4WCAtIHJl
Y3QueCgpKSk7Ci19Ci0KIHZvaWQgSW5saW5lVGV4dEJveDo6cGFpbnRTZWxlY3Rpb24oR3JhcGhp
Y3NDb250ZXh0KiBjb250ZXh0LCBjb25zdCBGbG9hdFBvaW50JiBib3hPcmlnaW4sIGNvbnN0IFJl
bmRlclN0eWxlJiBzdHlsZSwgY29uc3QgRm9udCYgZm9udCwgQ29sb3IgdGV4dENvbG9yKQogewog
I2lmIEVOQUJMRShURVhUX1NFTEVDVElPTikKQEAgLTc2MywxNiArNzU2LDEzIEBAIHZvaWQgSW5s
aW5lVGV4dEJveDo6cGFpbnRTZWxlY3Rpb24oR3JhcGhpY3NDb250ZXh0KiBjb250ZXh0LCBjb25z
dCBGbG9hdFBvaW50JiBiCiAgICAgTGF5b3V0VW5pdCBzZWxlY3Rpb25Cb3R0b20gPSByb290Qm94
LnNlbGVjdGlvbkJvdHRvbSgpOwogICAgIExheW91dFVuaXQgc2VsZWN0aW9uVG9wID0gcm9vdEJv
eC5zZWxlY3Rpb25Ub3BBZGp1c3RlZEZvclByZWNlZGluZ0Jsb2NrKCk7CiAKLSAgICBpbnQgZGVs
dGFZID0gcm91bmRUb0ludChyZW5kZXJlcigpLnN0eWxlKCkuaXNGbGlwcGVkTGluZXNXcml0aW5n
TW9kZSgpID8gc2VsZWN0aW9uQm90dG9tIC0gbG9naWNhbEJvdHRvbSgpIDogbG9naWNhbFRvcCgp
IC0gc2VsZWN0aW9uVG9wKTsKLSAgICBpbnQgc2VsSGVpZ2h0ID0gc3RkOjptYXgoMCwgcm91bmRU
b0ludChzZWxlY3Rpb25Cb3R0b20gLSBzZWxlY3Rpb25Ub3ApKTsKLQotICAgIEZsb2F0UG9pbnQg
bG9jYWxPcmlnaW4oYm94T3JpZ2luLngoKSwgYm94T3JpZ2luLnkoKSAtIGRlbHRhWSk7Ci0gICAg
RmxvYXRSZWN0IGNsaXBSZWN0KGxvY2FsT3JpZ2luLCBGbG9hdFNpemUobV9sb2dpY2FsV2lkdGgs
IHNlbEhlaWdodCkpOwotICAgIGFsaWduU2VsZWN0aW9uUmVjdFRvRGV2aWNlUGl4ZWxzKGNsaXBS
ZWN0KTsKLQotICAgIGNvbnRleHQtPmNsaXAoY2xpcFJlY3QpOworICAgIExheW91dFVuaXQgZGVs
dGFZID0gcmVuZGVyZXIoKS5zdHlsZSgpLmlzRmxpcHBlZExpbmVzV3JpdGluZ01vZGUoKSA/IHNl
bGVjdGlvbkJvdHRvbSAtIGxvZ2ljYWxCb3R0b20oKSA6IGxvZ2ljYWxUb3AoKSAtIHNlbGVjdGlv
blRvcDsKKyAgICBMYXlvdXRVbml0IHNlbGVjdGlvbkhlaWdodCA9IHN0ZDo6bWF4PExheW91dFVu
aXQ+KDAsIHNlbGVjdGlvbkJvdHRvbSAtIHNlbGVjdGlvblRvcCk7CiAKLSAgICBjb250ZXh0LT5k
cmF3SGlnaGxpZ2h0Rm9yVGV4dChmb250LCB0ZXh0UnVuLCBsb2NhbE9yaWdpbiwgc2VsSGVpZ2h0
LCBjLCBzdHlsZS5jb2xvclNwYWNlKCksIHNQb3MsIGVQb3MpOworICAgIGZsb2F0IGRldmljZVNj
YWxlRmFjdG9yID0gcmVuZGVyZXIoKS5kb2N1bWVudCgpLmRldmljZVNjYWxlRmFjdG9yKCk7Cisg
ICAgRmxvYXRQb2ludCBsb2NhbE9yaWdpbiA9IHJvdW5kZWRGb3JQYWludGluZyhMYXlvdXRQb2lu
dChib3hPcmlnaW4ueCgpLCBib3hPcmlnaW4ueSgpIC0gZGVsdGFZKSwgZGV2aWNlU2NhbGVGYWN0
b3IpOworICAgIGNvbnRleHQtPmNsaXAocGl4ZWxTbmFwcGVkRm9yUGFpbnRpbmcoTGF5b3V0UmVj
dChMYXlvdXRQb2ludChsb2NhbE9yaWdpbiksIExheW91dFNpemUobV9sb2dpY2FsV2lkdGgsIHNl
bGVjdGlvbkhlaWdodCkpLCBkZXZpY2VTY2FsZUZhY3RvcikpOworICAgIGNvbnRleHQtPmRyYXdI
aWdobGlnaHRGb3JUZXh0KGZvbnQsIHRleHRSdW4sIGxvY2FsT3JpZ2luLCBzZWxlY3Rpb25IZWln
aHQsIGMsIHN0eWxlLmNvbG9yU3BhY2UoKSwgc1BvcywgZVBvcyk7CiAjZWxzZQogICAgIFVOVVNF
RF9QQVJBTShjb250ZXh0KTsKICAgICBVTlVTRURfUEFSQU0oYm94T3JpZ2luKTsKZGlmZiAtLWdp
dCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94LmggYi9Tb3VyY2UvV2Vi
Q29yZS9yZW5kZXJpbmcvSW5saW5lVGV4dEJveC5oCmluZGV4IDQwNWE5YmU4Mjk2ZTBjMGZkNGI3
MDY4YWQ2N2EzZDhkYjUxNmI2NjMuLmM0MmI1NGU4ZDJiNzU5NGY4YWI5YTY3ODhmODk3OWRmZTU2
Yjg0YjAgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9JbmxpbmVUZXh0Qm94
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL0lubGluZVRleHRCb3guaApAQCAtMTk3
LDggKzE5Nyw2IEBAIHByaXZhdGU6CiAKIElOTElORV9CT1hfT0JKRUNUX1RZUEVfQ0FTVFMoSW5s
aW5lVGV4dEJveCwgaXNJbmxpbmVUZXh0Qm94KCkpCiAKLXZvaWQgYWxpZ25TZWxlY3Rpb25SZWN0
VG9EZXZpY2VQaXhlbHMoRmxvYXRSZWN0Jik7Ci0KIH0gLy8gbmFtZXNwYWNlIFdlYkNvcmUKIAog
I2VuZGlmIC8vIElubGluZVRleHRCb3hfaApkaWZmIC0tZ2l0IGEvTGF5b3V0VGVzdHMvQ2hhbmdl
TG9nIGIvTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCmluZGV4IDYwZDNhYjI1ZmQzYTg1ZGM0ZmUxNGRk
Yzg3OGViYzE3Y2JkODI0OTAuLmJjNjA0OGNlZjRkNzE4MTk3NmUwYWQ4NDU5OTlkN2UxZTQwMjUy
NGUgMTAwNjQ0Ci0tLSBhL0xheW91dFRlc3RzL0NoYW5nZUxvZworKysgYi9MYXlvdXRUZXN0cy9D
aGFuZ2VMb2cKQEAgLTEsMyArMSwxNiBAQAorMjAxNC0wNC0zMCAgWmFsYW4gQnVqdGFzICA8emFs
YW5AYXBwbGUuY29tPgorCisgICAgICAgIFN1YnBpeGVsIHJlbmRlcmluZzogSW5saW5lIHRleHQg
c2VsZWN0aW9uIHBhaW50aW5nIHNob3VsZCBub3Qgc25hcCB0byBpbnRlZ3JhbCBDU1MgcGl4ZWwg
cG9zaXRpb24uCisgICAgICAgIGh0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9p
ZD0xMzIxNjQKKworICAgICAgICBSZXZpZXdlZCBieSBEYXJpbiBBZGxlci4KKworICAgICAgICBJ
bmxpbmUgdGV4dCBzZWxlY3Rpb24gcGFpbnRpbmcgbm93IHNuYXBzIHRvIGRldmljZSBwaXhlbHMu
IEl0IHVzZXMgdGhlIHNhbWUgcm91bmRpbmcgbG9naWMgYXMKKyAgICAgICAgb3RoZXIgcGFpbnRp
bmcgZnVuY3Rpb25zLgorCisgICAgICAgICogZmFzdC9pbmxpbmUvaGlkcGktc2VsZWN0LWlubGlu
ZS1vbi1zdWJwaXhlbC1wb3NpdGlvbi1leHBlY3RlZC5odG1sOiBBZGRlZC4KKyAgICAgICAgKiBm
YXN0L2lubGluZS9oaWRwaS1zZWxlY3QtaW5saW5lLW9uLXN1YnBpeGVsLXBvc2l0aW9uLmh0bWw6
IEFkZGVkLgorCiAyMDE0LTA0LTMwICBSb2dlciBGb25nICA8cm9nZXJfZm9uZ0BhcHBsZS5jb20+
CiAKICAgICAgICAgRW5hYmxlIHNuYXBzaG90IHRlc3RzIG9uIG1hYyB3azIuCmRpZmYgLS1naXQg
YS9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9oaWRwaS1zZWxlY3QtaW5saW5lLW9uLXN1YnBpeGVs
LXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwgYi9MYXlvdXRUZXN0cy9mYXN0L2lubGluZS9oaWRwaS1z
ZWxlY3QtaW5saW5lLW9uLXN1YnBpeGVsLXBvc2l0aW9uLWV4cGVjdGVkLmh0bWwKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAw
MC4uOTQxNDU1YTc3MjBiOTM2OTJhNzM1N2Q1Y2NlNzU0NjA0OWZmOWUyMQotLS0gL2Rldi9udWxs
CisrKyBiL0xheW91dFRlc3RzL2Zhc3QvaW5saW5lL2hpZHBpLXNlbGVjdC1pbmxpbmUtb24tc3Vi
cGl4ZWwtcG9zaXRpb24tZXhwZWN0ZWQuaHRtbApAQCAtMCwwICsxLDMyIEBACis8IURPQ1RZUEUg
aHRtbD4KKzxodG1sPgorPGhlYWQ+Cis8dGl0bGU+VGhpcyB0ZXN0cyB0aGF0IGlubGluZSB0ZXh0
IHNlbGVjdGlvbiBjYW4gcGFpbnQgdG8gc3VicGl4ZWwgcG9zaXRpb24uPC90aXRsZT4KKzxzdHls
ZT4KKyAgZGl2IHsKKyAgICBmb250LXNpemU6IDE2cHg7CisgICAgd2lkdGg6IDIxcHg7CisgICAg
aGVpZ2h0OiAxOHB4OworICAgIHBvc2l0aW9uOiBmaXhlZDsKKyAgICBiYWNrZ3JvdW5kOiByZ2Jh
KDI1NSwgMCwgMCwgMC45KTsKKyAgfQorPC9zdHlsZT4KKzwvaGVhZD4KKzxib2R5PgorPHAgaWQ9
ImNvbnRhaW5lciI+PC9wPgorPHNjcmlwdD4KKyAgdmFyIGNvbnRhaW5lciA9IGRvY3VtZW50Lmdl
dEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKKyAgYWRqdXN0bWVudCA9IDAuMTsKKyAgZm9yIChp
ID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICBhZGp1c3RtZW50Kz0wLjE7CisgICAgZm9yIChqID0g
MDsgaiA8IDEwOyArK2opIHsKKyAgICAgIHZhciBlID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgi
ZGl2Iik7CisgICAgICBlLnN0eWxlLnRvcCA9ICgzMCAqIGkgKyBqICogYWRqdXN0bWVudCkgKyAi
cHgiOworICAgICAgZS5zdHlsZS5sZWZ0ID0gKDMwICogaiArIGkgKiBhZGp1c3RtZW50KSArICJw
eCI7CisgICAgICBlLmlubmVySFRNTCA9ICJmb28iOworICAgICAgY29udGFpbmVyLmFwcGVuZENo
aWxkKGUpOworICAgIH0KKyAgfSAgCis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4KZGlmZiAt
LWdpdCBhL0xheW91dFRlc3RzL2Zhc3QvaW5saW5lL2hpZHBpLXNlbGVjdC1pbmxpbmUtb24tc3Vi
cGl4ZWwtcG9zaXRpb24uaHRtbCBiL0xheW91dFRlc3RzL2Zhc3QvaW5saW5lL2hpZHBpLXNlbGVj
dC1pbmxpbmUtb24tc3VicGl4ZWwtcG9zaXRpb24uaHRtbApuZXcgZmlsZSBtb2RlIDEwMDY0NApp
bmRleCAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwLi5mNDk3Y2M4Y2I5
YTQzN2RmOTc1YmEzYjdlNzQwMDVlN2VkYjFlZThjCi0tLSAvZGV2L251bGwKKysrIGIvTGF5b3V0
VGVzdHMvZmFzdC9pbmxpbmUvaGlkcGktc2VsZWN0LWlubGluZS1vbi1zdWJwaXhlbC1wb3NpdGlv
bi5odG1sCkBAIC0wLDAgKzEsNDEgQEAKKzwhRE9DVFlQRSBodG1sPgorPGh0bWw+Cis8aGVhZD4K
Kzx0aXRsZT5UaGlzIHRlc3RzIHRoYXQgaW5saW5lIHRleHQgc2VsZWN0aW9uIGNhbiBwYWludCB0
byBzdWJwaXhlbCBwb3NpdGlvbi48L3RpdGxlPgorPHN0eWxlPgorICA6OnNlbGVjdGlvbiB7Cisg
ICAgYmFja2dyb3VuZDogcmdiYSgyNTUsIDAsIDAsIDAuOSk7CisgIH0KKworICBkaXYgeworICAg
IGZvbnQtc2l6ZTogMTZweDsKKyAgICBoZWlnaHQ6IDEwcHg7CisgICAgd2lkdGg6IDFweDsKKyAg
ICBoZWlnaHQ6IDFweDsKKyAgICBwb3NpdGlvbjogZml4ZWQ7CisgIH0KKworPC9zdHlsZT4KKzwv
aGVhZD4KKzxib2R5PgorPHAgaWQ9ImNvbnRhaW5lciI+PC9wPgorPHNjcmlwdD4KKyAgdmFyIGNv
bnRhaW5lciA9IGRvY3VtZW50LmdldEVsZW1lbnRCeUlkKCJjb250YWluZXIiKTsKKyAgYWRqdXN0
bWVudCA9IDAuMTsKKyAgZm9yIChpID0gMDsgaSA8IDEwOyArK2kpIHsKKyAgICBhZGp1c3RtZW50
Kz0wLjE7CisgICAgZm9yIChqID0gMDsgaiA8IDEwOyArK2opIHsKKyAgICAgIHZhciBlID0gZG9j
dW1lbnQuY3JlYXRlRWxlbWVudCgiZGl2Iik7CisgICAgICBlLnN0eWxlLnRvcCA9ICgzMCAqIGkg
KyBqICogYWRqdXN0bWVudCkgKyAicHgiOworICAgICAgZS5zdHlsZS5sZWZ0ID0gKDMwICogaiAr
IGkgKiBhZGp1c3RtZW50KSArICJweCI7CisgICAgICBlLmlubmVySFRNTCA9ICJmb28iOworICAg
ICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGUpOworICAgIH0KKyAgfQorICAKKyAgdmFyIHJhbmdl
ID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKTsgCisgIHJhbmdlLnNlbGVjdE5vZGUoZG9jdW1lbnQu
Z2V0RWxlbWVudEJ5SWQoImNvbnRhaW5lciIpKTsgCisgIHdpbmRvdy5nZXRTZWxlY3Rpb24oKS5h
ZGRSYW5nZShyYW5nZSk7Cis8L3NjcmlwdD4KKzwvYm9keT4KKzwvaHRtbD4K
</data>

          </attachment>
      

    </bug>

</bugzilla>