<?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>80671</bug_id>
          
          <creation_ts>2012-03-08 19:37:49 -0800</creation_ts>
          <short_desc>Split the extra logical height distribution logic out of RenderTableSection::layoutRows</short_desc>
          <delta_ts>2012-03-09 14:58:26 -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>Tables</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Julien Chaffraix">jchaffraix</reporter>
          <assigned_to name="Julien Chaffraix">jchaffraix</assigned_to>
          <cc>eric</cc>
    
    <cc>rniwa</cc>
    
    <cc>robert</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>574511</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-08 19:37:49 -0800</bug_when>
    <thetext>Currently it&apos;s this logic is inlined in the function which makes it longer than it should be.

Also the naming doesn&apos;t help understanding what is going on in the function at the moment.

Patch forthcoming.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>574513</commentid>
    <comment_count>1</comment_count>
      <attachid>130956</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-08 19:43:53 -0800</bug_when>
    <thetext>Created attachment 130956
Proposed refactoring.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575029</commentid>
    <comment_count>2</comment_count>
      <attachid>130956</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-09 11:34:05 -0800</bug_when>
    <thetext>Comment on attachment 130956
Proposed refactoring.

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

In terms of correctness, this looks fine to me.

&gt; Source/WebCore/rendering/RenderTableSection.cpp:475
&gt; +    if (extraLogicalHeight &gt; 0 &amp;&amp; m_rowPos[totalRows]) {

nit: maybe make this an early out for extra clarity.

&gt; Source/WebCore/rendering/RenderTableSection.cpp:479
&gt; +        int tot = m_rowPos[totalRows];
&gt; +        int add = 0;
&gt; +        int prev = m_rowPos[0];

style nit: I realize you&apos;re just moving this code, but don&apos;t use abbreviations like &quot;tot&quot; and &quot;prev&quot;.

&gt; Source/WebCore/rendering/RenderTableSection.cpp:499
&gt; +    if (m_rowPos[totalRows] || !nextSibling()) {

nit: maybe an early return here too.

&gt; Source/WebCore/rendering/RenderTableSection.cpp:511
&gt; +        remainingExtraLogicalHeight = distributeExtraLogicalHeightToPercentRows(remainingExtraLogicalHeight, totalPercent);
&gt; +        remainingExtraLogicalHeight = distributeExtraLogicalHeightToAutoRows(remainingExtraLogicalHeight, autoRowsCount);

The previous code had checks for totalPercent == 0 and autoRowsCount == 0, which avoided a needless iteration through all of the rows.  Is that worth keeping?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575040</commentid>
    <comment_count>3</comment_count>
      <attachid>130956</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-09 11:49:21 -0800</bug_when>
    <thetext>Comment on attachment 130956
Proposed refactoring.

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

&gt;&gt; Source/WebCore/rendering/RenderTableSection.cpp:511
&gt;&gt; +        remainingExtraLogicalHeight = distributeExtraLogicalHeightToAutoRows(remainingExtraLogicalHeight, autoRowsCount);
&gt; 
&gt; The previous code had checks for totalPercent == 0 and autoRowsCount == 0, which avoided a needless iteration through all of the rows.  Is that worth keeping?

Yes, autoRowsCount == 0 is handled inside distributeExtraLogicalHeightToAutoRows, however I forgot to keep the totalPercent check while cleaning the code. As a side note, a table usually doesn&apos;t have a lot of sections AFAICT but it&apos;s better not to slow down in case it does.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575058</commentid>
    <comment_count>4</comment_count>
      <attachid>131069</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2012-03-09 12:09:18 -0800</bug_when>
    <thetext>Created attachment 131069
Same change, nits removed.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575061</commentid>
    <comment_count>5</comment_count>
      <attachid>131069</attachid>
    <who name="Adrienne Walker">enne</who>
    <bug_when>2012-03-09 12:10:54 -0800</bug_when>
    <thetext>Comment on attachment 131069
Same change, nits removed.

Looks good to me!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575268</commentid>
    <comment_count>6</comment_count>
      <attachid>131069</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 14:58:22 -0800</bug_when>
    <thetext>Comment on attachment 131069
Same change, nits removed.

Clearing flags on attachment: 131069

Committed r110336: &lt;http://trac.webkit.org/changeset/110336&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>575269</commentid>
    <comment_count>7</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2012-03-09 14:58:26 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>130956</attachid>
            <date>2012-03-08 19:43:53 -0800</date>
            <delta_ts>2012-03-09 12:09:14 -0800</delta_ts>
            <desc>Proposed refactoring.</desc>
            <filename>bug-80671-20120308194352.patch</filename>
            <type>text/plain</type>
            <size>9474</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzAwNzU5ODhjZmNmNmYw
ZGUzM2MyNmE5YzMxZThkMTQ1NTBkYmVjMi4uNmMyMjJjNmM4ZTI3ODY4ZmVmNDViMzQ2NTJhNDZm
YjIwOTc3ZmM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAzLTA4ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFNwbGl0IHRo
ZSBleHRyYSBsb2dpY2FsIGhlaWdodCBkaXN0cmlidXRpb24gbG9naWMgb3V0IG9mIFJlbmRlclRh
YmxlU2VjdGlvbjo6bGF5b3V0Um93cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODA2NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvcmluZyBvbmx5LCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IgZXhw
ZWN0ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6bGF5b3V0Um93cyk6CisgICAgICAg
IFNwbGl0IHRoZSBsb2dpYyBmcm9tIGhlcmUuLi4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGFibGVTZWN0aW9uOjpkaXN0cmlidXRlRXh0cmFMb2dpY2FsSGVpZ2h0VG9QZXJjZW50Um93cyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmRpc3RyaWJ1dGVFeHRyYUxv
Z2ljYWxIZWlnaHRUb0F1dG9Sb3dzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2Vj
dGlvbjo6ZGlzdHJpYnV0ZVJlbWFpbmluZ0V4dHJhTG9naWNhbEhlaWdodCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmRpc3RyaWJ1dGVFeHRyYUxvZ2ljYWxIZWlnaHRU
b1Jvd3MpOgorICAgICAgICAuLi4gdG8gdGhvc2UgZnVuY3Rpb25zLiBDbGVhbmVkIHVwIHRoZSB2
YXJpYWJsZSBuYW1pbmcgd2hpbGUgYXQgaXQgYW5kCisgICAgICAgIG1hZGUgdGhlbSBmb2xsb3cg
dGhlIHNhbWUgc2lnbmF0dXJlIGFzIHRoaXMgbWF5IGJlIHVzZWZ1bCB0byBmaXggYW5vdGhlcgor
ICAgICAgICBidWcgSSBoYXZlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlU2Vj
dGlvbi5oOgorICAgICAgICAoUmVuZGVyVGFibGVTZWN0aW9uKToKKyAgICAgICAgQWRkZWQgdGhl
IHByZXZpb3VzIDQgbmV3IGZ1bmN0aW9ucy4KKwogMjAxMi0wMy0wOCAgRGFuIEJlcm5zdGVpbiAg
PG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDk4MTE3Mz4gRGFz
aGJvYXJkIHJlZ2lvbnMgc2hvdWxkIG5vdCBiZSBpbiBkZXZpY2Ugc3BhY2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKaW5kZXggYjAxMTE4YzFj
ZmE3NGE3MmUwMTYxMmM5MTVjODZmZDc0NjlkMjBkMy4uMWMyNzQ4MzMyNzFkOWMzMjI2NjA1YTdi
ZThhNjJhYWU2ZWZiN2I1OCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlU2VjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlU2VjdGlvbi5jcHAKQEAgLTQyNCw3ICs0MjQsOTkgQEAgdm9pZCBSZW5kZXJUYWJsZVNl
Y3Rpb246OmxheW91dCgpCiAgICAgc2V0TmVlZHNMYXlvdXQoZmFsc2UpOwogfQogCi1pbnQgUmVu
ZGVyVGFibGVTZWN0aW9uOjpsYXlvdXRSb3dzKGludCB0b0FkZCkKK2ludCBSZW5kZXJUYWJsZVNl
Y3Rpb246OmRpc3RyaWJ1dGVFeHRyYUxvZ2ljYWxIZWlnaHRUb1BlcmNlbnRSb3dzKGludCBleHRy
YUxvZ2ljYWxIZWlnaHQsIGludCB0b3RhbFBlcmNlbnQpCit7CisgICAgdW5zaWduZWQgdG90YWxS
b3dzID0gbV9ncmlkLnNpemUoKTsKKyAgICBpbnQgdG90YWxIZWlnaHQgPSBtX3Jvd1Bvc1t0b3Rh
bFJvd3NdICsgZXh0cmFMb2dpY2FsSGVpZ2h0OworICAgIGludCBhZGQgPSAwOworICAgIHRvdGFs
UGVyY2VudCA9IG1pbih0b3RhbFBlcmNlbnQsIDEwMCk7CisgICAgaW50IHJoID0gbV9yb3dQb3Nb
MV0gLSBtX3Jvd1Bvc1swXTsKKyAgICBmb3IgKHVuc2lnbmVkIHIgPSAwOyByIDwgdG90YWxSb3dz
OyArK3IpIHsKKyAgICAgICAgaWYgKHRvdGFsUGVyY2VudCA+IDAgJiYgbV9ncmlkW3JdLmxvZ2lj
YWxIZWlnaHQuaXNQZXJjZW50KCkpIHsKKyAgICAgICAgICAgIGludCB0b0FkZCA9IG1pbjxpbnQ+
KGV4dHJhTG9naWNhbEhlaWdodCwgKHRvdGFsSGVpZ2h0ICogbV9ncmlkW3JdLmxvZ2ljYWxIZWln
aHQucGVyY2VudCgpIC8gMTAwKSAtIHJoKTsKKyAgICAgICAgICAgIC8vIElmIHRvQWRkIGlzIG5l
Z2F0aXZlLCB0aGVuIHdlIGRvbid0IHdhbnQgdG8gc2hyaW5rIHRoZSByb3cgKHRoaXMgYnVnCisg
ICAgICAgICAgICAvLyBhZmZlY3RlZCBPdXRsb29rIFdlYiBBY2Nlc3MpLgorICAgICAgICAgICAg
dG9BZGQgPSBtYXgoMCwgdG9BZGQpOworICAgICAgICAgICAgYWRkICs9IHRvQWRkOworICAgICAg
ICAgICAgZXh0cmFMb2dpY2FsSGVpZ2h0IC09IHRvQWRkOworICAgICAgICAgICAgdG90YWxQZXJj
ZW50IC09IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKTsKKyAgICAgICAgfQorICAg
ICAgICBBU1NFUlQodG90YWxSb3dzID49IDEpOworICAgICAgICBpZiAociA8IHRvdGFsUm93cyAt
IDEpCisgICAgICAgICAgICByaCA9IG1fcm93UG9zW3IgKyAyXSAtIG1fcm93UG9zW3IgKyAxXTsK
KyAgICAgICAgbV9yb3dQb3NbciArIDFdICs9IGFkZDsKKyAgICB9CisgICAgcmV0dXJuIGV4dHJh
TG9naWNhbEhlaWdodDsKK30KKworaW50IFJlbmRlclRhYmxlU2VjdGlvbjo6ZGlzdHJpYnV0ZUV4
dHJhTG9naWNhbEhlaWdodFRvQXV0b1Jvd3MoaW50IGV4dHJhTG9naWNhbEhlaWdodCwgdW5zaWdu
ZWQgYXV0b1Jvd3NDb3VudCkKK3sKKyAgICBpZiAoIWF1dG9Sb3dzQ291bnQpCisgICAgICAgIHJl
dHVybiBleHRyYUxvZ2ljYWxIZWlnaHQ7CisKKyAgICBpbnQgYWRkID0gMDsKKyAgICBmb3IgKHVu
c2lnbmVkIHIgPSAwOyByIDwgbV9ncmlkLnNpemUoKTsgKytyKSB7CisgICAgICAgIGlmIChhdXRv
Um93c0NvdW50ID4gMCAmJiBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc0F1dG8oKSkgeworICAg
ICAgICAgICAgLy8gUmVjb21wdXRpbmcgfGV4dHJhTG9naWNhbEhlaWdodEZvclJvd3wgZ3VhcmFu
dGVlcyB0aGF0IHdlIHByb3Blcmx5IGRpdHJpYnV0ZSByb3VuZCB8ZXh0cmFMb2dpY2FsSGVpZ2h0
fC4KKyAgICAgICAgICAgIGludCBleHRyYUxvZ2ljYWxIZWlnaHRGb3JSb3cgPSBleHRyYUxvZ2lj
YWxIZWlnaHQgLyBhdXRvUm93c0NvdW50OworICAgICAgICAgICAgYWRkICs9IGV4dHJhTG9naWNh
bEhlaWdodEZvclJvdzsKKyAgICAgICAgICAgIGV4dHJhTG9naWNhbEhlaWdodCAtPSBleHRyYUxv
Z2ljYWxIZWlnaHRGb3JSb3c7CisgICAgICAgICAgICAtLWF1dG9Sb3dzQ291bnQ7CisgICAgICAg
IH0KKyAgICAgICAgbV9yb3dQb3NbciArIDFdICs9IGFkZDsKKyAgICB9CisgICAgcmV0dXJuIGV4
dHJhTG9naWNhbEhlaWdodDsKK30KKworaW50IFJlbmRlclRhYmxlU2VjdGlvbjo6ZGlzdHJpYnV0
ZVJlbWFpbmluZ0V4dHJhTG9naWNhbEhlaWdodChpbnQgZXh0cmFMb2dpY2FsSGVpZ2h0KQorewor
ICAgIHVuc2lnbmVkIHRvdGFsUm93cyA9IG1fZ3JpZC5zaXplKCk7CisKKyAgICBpZiAoZXh0cmFM
b2dpY2FsSGVpZ2h0ID4gMCAmJiBtX3Jvd1Bvc1t0b3RhbFJvd3NdKSB7CisgICAgICAgIC8vIGlm
IHNvbWUgbGVmdCBvdmVycywgZGlzdHJpYnV0ZSBlcXVhbGx5LgorICAgICAgICBpbnQgdG90ID0g
bV9yb3dQb3NbdG90YWxSb3dzXTsKKyAgICAgICAgaW50IGFkZCA9IDA7CisgICAgICAgIGludCBw
cmV2ID0gbV9yb3dQb3NbMF07CisgICAgICAgIGZvciAodW5zaWduZWQgciA9IDA7IHIgPCB0b3Rh
bFJvd3M7IHIrKykgeworICAgICAgICAgICAgLy8gd2VpZ2h0IHdpdGggdGhlIG9yaWdpbmFsIGhl
aWdodAorICAgICAgICAgICAgYWRkICs9IGV4dHJhTG9naWNhbEhlaWdodCAqIChtX3Jvd1Bvc1ty
ICsgMV0gLSBwcmV2KSAvIHRvdDsKKyAgICAgICAgICAgIHByZXYgPSBtX3Jvd1Bvc1tyICsgMV07
CisgICAgICAgICAgICBtX3Jvd1Bvc1tyICsgMV0gKz0gYWRkOworICAgICAgICB9CisgICAgfQor
ICAgIHJldHVybiBleHRyYUxvZ2ljYWxIZWlnaHQ7Cit9CisKK2ludCBSZW5kZXJUYWJsZVNlY3Rp
b246OmRpc3RyaWJ1dGVFeHRyYUxvZ2ljYWxIZWlnaHRUb1Jvd3MoaW50IGV4dHJhTG9naWNhbEhl
aWdodCkKK3sKKyAgICBpZiAoIWV4dHJhTG9naWNhbEhlaWdodCkKKyAgICAgICAgcmV0dXJuIGV4
dHJhTG9naWNhbEhlaWdodDsKKworICAgIHVuc2lnbmVkIHRvdGFsUm93cyA9IG1fZ3JpZC5zaXpl
KCk7CisgICAgaWYgKCF0b3RhbFJvd3MpCisgICAgICAgIHJldHVybiBleHRyYUxvZ2ljYWxIZWln
aHQ7CisKKyAgICBpZiAobV9yb3dQb3NbdG90YWxSb3dzXSB8fCAhbmV4dFNpYmxpbmcoKSkgewor
ICAgICAgICB1bnNpZ25lZCBhdXRvUm93c0NvdW50ID0gMDsKKyAgICAgICAgaW50IHRvdGFsUGVy
Y2VudCA9IDA7CisgICAgICAgIGZvciAodW5zaWduZWQgciA9IDA7IHIgPCB0b3RhbFJvd3M7IHIr
KykgeworICAgICAgICAgICAgaWYgKG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LmlzQXV0bygpKQor
ICAgICAgICAgICAgICAgICsrYXV0b1Jvd3NDb3VudDsKKyAgICAgICAgICAgIGVsc2UgaWYgKG1f
Z3JpZFtyXS5sb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpKQorICAgICAgICAgICAgICAgIHRvdGFs
UGVyY2VudCArPSBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5wZXJjZW50KCk7CisgICAgICAgIH0K
KworICAgICAgICBpbnQgcmVtYWluaW5nRXh0cmFMb2dpY2FsSGVpZ2h0ID0gZXh0cmFMb2dpY2Fs
SGVpZ2h0OworICAgICAgICByZW1haW5pbmdFeHRyYUxvZ2ljYWxIZWlnaHQgPSBkaXN0cmlidXRl
RXh0cmFMb2dpY2FsSGVpZ2h0VG9QZXJjZW50Um93cyhyZW1haW5pbmdFeHRyYUxvZ2ljYWxIZWln
aHQsIHRvdGFsUGVyY2VudCk7CisgICAgICAgIHJlbWFpbmluZ0V4dHJhTG9naWNhbEhlaWdodCA9
IGRpc3RyaWJ1dGVFeHRyYUxvZ2ljYWxIZWlnaHRUb0F1dG9Sb3dzKHJlbWFpbmluZ0V4dHJhTG9n
aWNhbEhlaWdodCwgYXV0b1Jvd3NDb3VudCk7CisgICAgICAgIHJlbWFpbmluZ0V4dHJhTG9naWNh
bEhlaWdodCA9IGRpc3RyaWJ1dGVSZW1haW5pbmdFeHRyYUxvZ2ljYWxIZWlnaHQocmVtYWluaW5n
RXh0cmFMb2dpY2FsSGVpZ2h0KTsKKyAgICAgICAgcmV0dXJuIHJlbWFpbmluZ0V4dHJhTG9naWNh
bEhlaWdodDsKKyAgICB9CisKKyAgICByZXR1cm4gZXh0cmFMb2dpY2FsSGVpZ2h0OworfQorCitp
bnQgUmVuZGVyVGFibGVTZWN0aW9uOjpsYXlvdXRSb3dzKGludCBleHRyYUxvZ2ljYWxIZWlnaHQp
CiB7CiAjaWZuZGVmIE5ERUJVRwogICAgIHNldE5lZWRzTGF5b3V0SXNGb3JiaWRkZW4odHJ1ZSk7
CkBAIC00NDIsNjUgKzUzNCw3IEBAIGludCBSZW5kZXJUYWJsZVNlY3Rpb246OmxheW91dFJvd3Mo
aW50IHRvQWRkKQogICAgIG1fb3ZlcmZsb3dpbmdDZWxscy5jbGVhcigpOwogICAgIG1fZm9yY2VT
bG93UGFpbnRQYXRoV2l0aE92ZXJmbG93aW5nQ2VsbCA9IGZhbHNlOwogCi0gICAgaWYgKHRvQWRk
ICYmIHRvdGFsUm93cyAmJiAobV9yb3dQb3NbdG90YWxSb3dzXSB8fCAhbmV4dFNpYmxpbmcoKSkp
IHsKLSAgICAgICAgaW50IHRvdGFsSGVpZ2h0ID0gbV9yb3dQb3NbdG90YWxSb3dzXSArIHRvQWRk
OwotCi0gICAgICAgIGludCBkaCA9IHRvQWRkOwotICAgICAgICBpbnQgdG90YWxQZXJjZW50ID0g
MDsKLSAgICAgICAgaW50IG51bUF1dG8gPSAwOwotICAgICAgICBmb3IgKHVuc2lnbmVkIHIgPSAw
OyByIDwgdG90YWxSb3dzOyByKyspIHsKLSAgICAgICAgICAgIGlmIChtX2dyaWRbcl0ubG9naWNh
bEhlaWdodC5pc0F1dG8oKSkKLSAgICAgICAgICAgICAgICBudW1BdXRvKys7Ci0gICAgICAgICAg
ICBlbHNlIGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkKLSAgICAgICAg
ICAgICAgICB0b3RhbFBlcmNlbnQgKz0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgp
OwotICAgICAgICB9Ci0gICAgICAgIGlmICh0b3RhbFBlcmNlbnQpIHsKLSAgICAgICAgICAgIC8v
IHRyeSB0byBzYXRpc2Z5IHBlcmNlbnQKLSAgICAgICAgICAgIGludCBhZGQgPSAwOwotICAgICAg
ICAgICAgdG90YWxQZXJjZW50ID0gbWluKHRvdGFsUGVyY2VudCwgMTAwKTsKLSAgICAgICAgICAg
IGludCByaCA9IG1fcm93UG9zWzFdIC0gbV9yb3dQb3NbMF07Ci0gICAgICAgICAgICBmb3IgKHVu
c2lnbmVkIHIgPSAwOyByIDwgdG90YWxSb3dzOyByKyspIHsKLSAgICAgICAgICAgICAgICBpZiAo
dG90YWxQZXJjZW50ID4gMCAmJiBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkg
ewotICAgICAgICAgICAgICAgICAgICBpbnQgdG9BZGQgPSBtaW48aW50PihkaCwgKHRvdGFsSGVp
Z2h0ICogbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpIC8gMTAwKSAtIHJoKTsKLSAg
ICAgICAgICAgICAgICAgICAgLy8gSWYgdG9BZGQgaXMgbmVnYXRpdmUsIHRoZW4gd2UgZG9uJ3Qg
d2FudCB0byBzaHJpbmsgdGhlIHJvdyAodGhpcyBidWcKLSAgICAgICAgICAgICAgICAgICAgLy8g
YWZmZWN0ZWQgT3V0bG9vayBXZWIgQWNjZXNzKS4KLSAgICAgICAgICAgICAgICAgICAgdG9BZGQg
PSBtYXgoMCwgdG9BZGQpOwotICAgICAgICAgICAgICAgICAgICBhZGQgKz0gdG9BZGQ7Ci0gICAg
ICAgICAgICAgICAgICAgIGRoIC09IHRvQWRkOwotICAgICAgICAgICAgICAgICAgICB0b3RhbFBl
cmNlbnQgLT0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2VudCgpOwotICAgICAgICAgICAg
ICAgIH0KLSAgICAgICAgICAgICAgICBBU1NFUlQodG90YWxSb3dzID49IDEpOwotICAgICAgICAg
ICAgICAgIGlmIChyIDwgdG90YWxSb3dzIC0gMSkKLSAgICAgICAgICAgICAgICAgICAgcmggPSBt
X3Jvd1Bvc1tyICsgMl0gLSBtX3Jvd1Bvc1tyICsgMV07Ci0gICAgICAgICAgICAgICAgbV9yb3dQ
b3NbciArIDFdICs9IGFkZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAo
bnVtQXV0bykgewotICAgICAgICAgICAgLy8gZGlzdHJpYnV0ZSBvdmVyIHZhcmlhYmxlIGNvbHMK
LSAgICAgICAgICAgIGludCBhZGQgPSAwOwotICAgICAgICAgICAgZm9yICh1bnNpZ25lZCByID0g
MDsgciA8IHRvdGFsUm93czsgcisrKSB7Ci0gICAgICAgICAgICAgICAgaWYgKG51bUF1dG8gPiAw
ICYmIG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LmlzQXV0bygpKSB7Ci0gICAgICAgICAgICAgICAg
ICAgIGludCB0b0FkZCA9IGRoIC8gbnVtQXV0bzsKLSAgICAgICAgICAgICAgICAgICAgYWRkICs9
IHRvQWRkOwotICAgICAgICAgICAgICAgICAgICBkaCAtPSB0b0FkZDsKLSAgICAgICAgICAgICAg
ICAgICAgbnVtQXV0by0tOwotICAgICAgICAgICAgICAgIH0KLSAgICAgICAgICAgICAgICBtX3Jv
d1Bvc1tyICsgMV0gKz0gYWRkOwotICAgICAgICAgICAgfQotICAgICAgICB9Ci0gICAgICAgIGlm
IChkaCA+IDAgJiYgbV9yb3dQb3NbdG90YWxSb3dzXSkgewotICAgICAgICAgICAgLy8gaWYgc29t
ZSBsZWZ0IG92ZXJzLCBkaXN0cmlidXRlIGVxdWFsbHkuCi0gICAgICAgICAgICBpbnQgdG90ID0g
bV9yb3dQb3NbdG90YWxSb3dzXTsKLSAgICAgICAgICAgIGludCBhZGQgPSAwOwotICAgICAgICAg
ICAgaW50IHByZXYgPSBtX3Jvd1Bvc1swXTsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgciA9
IDA7IHIgPCB0b3RhbFJvd3M7IHIrKykgewotICAgICAgICAgICAgICAgIC8vIHdlaWdodCB3aXRo
IHRoZSBvcmlnaW5hbCBoZWlnaHQKLSAgICAgICAgICAgICAgICBhZGQgKz0gZGggKiAobV9yb3dQ
b3NbciArIDFdIC0gcHJldikgLyB0b3Q7Ci0gICAgICAgICAgICAgICAgcHJldiA9IG1fcm93UG9z
W3IgKyAxXTsKLSAgICAgICAgICAgICAgICBtX3Jvd1Bvc1tyICsgMV0gKz0gYWRkOwotICAgICAg
ICAgICAgfQotICAgICAgICB9Ci0gICAgfQorICAgIGV4dHJhTG9naWNhbEhlaWdodCA9IGRpc3Ry
aWJ1dGVFeHRyYUxvZ2ljYWxIZWlnaHRUb1Jvd3MoZXh0cmFMb2dpY2FsSGVpZ2h0KTsKIAogICAg
IGludCBoc3BhY2luZyA9IHRhYmxlKCktPmhCb3JkZXJTcGFjaW5nKCk7CiAgICAgaW50IHZzcGFj
aW5nID0gdGFibGUoKS0+dkJvcmRlclNwYWNpbmcoKTsKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRl
cmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAppbmRleCA4NGU4NGViM2I3NWVkMTVkNzY5MjgyNDJj
ZmVmMjMyMTM4ZmM1MWQ1Li44ZGY3NGYwNmZkNmIyZWQ2ODU2Y2JjMWM4Yjg4Zjk3ZGNmMTdhYzM0
IDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9u
LmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCkBA
IC0xODUsNiArMTg1LDEzIEBAIHByaXZhdGU6CiAKICAgICB2b2lkIGVuc3VyZVJvd3ModW5zaWdu
ZWQpOwogCisgICAgLy8gVGhvc2UgbWV0aG9kcyByZXR1cm4gdGhlIHJlbWFpbmluZyBleHRyYSBs
b2dpY2FsIGhlaWdodC4KKyAgICAvLyBGSVhNRTogV2UgbWF5IHdhbnQgdG8gaW50cm9kdWNlIGEg
c3RydWN0dXJlIGhvbGRpbmcgdGhlIGluLWZsdXggbGF5b3V0IGluZm9ybWF0aW9uLgorICAgIGlu
dCBkaXN0cmlidXRlRXh0cmFMb2dpY2FsSGVpZ2h0VG9Sb3dzKGludCBleHRyYUxvZ2ljYWxIZWln
aHQpOworICAgIGludCBkaXN0cmlidXRlRXh0cmFMb2dpY2FsSGVpZ2h0VG9QZXJjZW50Um93cyhp
bnQgZXh0cmFMb2dpY2FsSGVpZ2h0LCBpbnQgdG90YWxQZXJjZW50KTsKKyAgICBpbnQgZGlzdHJp
YnV0ZUV4dHJhTG9naWNhbEhlaWdodFRvQXV0b1Jvd3MoaW50IGV4dHJhTG9naWNhbEhlaWdodCwg
dW5zaWduZWQgYXV0b1Jvd3NDb3VudCk7CisgICAgaW50IGRpc3RyaWJ1dGVSZW1haW5pbmdFeHRy
YUxvZ2ljYWxIZWlnaHQoaW50IGV4dHJhTG9naWNhbEhlaWdodCk7CisKICAgICBib29sIGhhc092
ZXJmbG93aW5nQ2VsbCgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3dpbmdDZWxscy5zaXplKCkg
fHwgbV9mb3JjZVNsb3dQYWludFBhdGhXaXRoT3ZlcmZsb3dpbmdDZWxsOyB9CiAKICAgICBDZWxs
U3BhbiBmdWxsVGFibGVSb3dTcGFuKCkgY29uc3QgeyByZXR1cm4gQ2VsbFNwYW4oMCwgbV9ncmlk
LnNpemUoKSk7IH0K
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>131069</attachid>
            <date>2012-03-09 12:09:18 -0800</date>
            <delta_ts>2012-03-09 14:58:22 -0800</delta_ts>
            <desc>Same change, nits removed.</desc>
            <filename>bug-80671-20120309120917.patch</filename>
            <type>text/plain</type>
            <size>9583</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTEwMTk2CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggYzAwNzU5ODhjZmNmNmYw
ZGUzM2MyNmE5YzMxZThkMTQ1NTBkYmVjMi4uNmMyMjJjNmM4ZTI3ODY4ZmVmNDViMzQ2NTJhNDZm
YjIwOTc3ZmM1YiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDEyLTAzLTA4ICBKdWxp
ZW4gQ2hhZmZyYWl4ICA8amNoYWZmcmFpeEB3ZWJraXQub3JnPgorCisgICAgICAgIFNwbGl0IHRo
ZSBleHRyYSBsb2dpY2FsIGhlaWdodCBkaXN0cmlidXRpb24gbG9naWMgb3V0IG9mIFJlbmRlclRh
YmxlU2VjdGlvbjo6bGF5b3V0Um93cworICAgICAgICBodHRwczovL2J1Z3Mud2Via2l0Lm9yZy9z
aG93X2J1Zy5jZ2k/aWQ9ODA2NzEKKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkgKE9PUFMh
KS4KKworICAgICAgICBSZWZhY3RvcmluZyBvbmx5LCBubyBjaGFuZ2UgaW4gYmVoYXZpb3IgZXhw
ZWN0ZWQuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcDoKKyAg
ICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6bGF5b3V0Um93cyk6CisgICAgICAg
IFNwbGl0IHRoZSBsb2dpYyBmcm9tIGhlcmUuLi4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGFibGVTZWN0aW9uOjpkaXN0cmlidXRlRXh0cmFMb2dpY2FsSGVpZ2h0VG9QZXJjZW50Um93cyk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmRpc3RyaWJ1dGVFeHRyYUxv
Z2ljYWxIZWlnaHRUb0F1dG9Sb3dzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2Vj
dGlvbjo6ZGlzdHJpYnV0ZVJlbWFpbmluZ0V4dHJhTG9naWNhbEhlaWdodCk6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246OmRpc3RyaWJ1dGVFeHRyYUxvZ2ljYWxIZWlnaHRU
b1Jvd3MpOgorICAgICAgICAuLi4gdG8gdGhvc2UgZnVuY3Rpb25zLiBDbGVhbmVkIHVwIHRoZSB2
YXJpYWJsZSBuYW1pbmcgd2hpbGUgYXQgaXQgYW5kCisgICAgICAgIG1hZGUgdGhlbSBmb2xsb3cg
dGhlIHNhbWUgc2lnbmF0dXJlIGFzIHRoaXMgbWF5IGJlIHVzZWZ1bCB0byBmaXggYW5vdGhlcgor
ICAgICAgICBidWcgSSBoYXZlLgorCisgICAgICAgICogcmVuZGVyaW5nL1JlbmRlclRhYmxlU2Vj
dGlvbi5oOgorICAgICAgICAoUmVuZGVyVGFibGVTZWN0aW9uKToKKyAgICAgICAgQWRkZWQgdGhl
IHByZXZpb3VzIDQgbmV3IGZ1bmN0aW9ucy4KKwogMjAxMi0wMy0wOCAgRGFuIEJlcm5zdGVpbiAg
PG1pdHpAYXBwbGUuY29tPgogCiAgICAgICAgIDxyZGFyOi8vcHJvYmxlbS8xMDk4MTE3Mz4gRGFz
aGJvYXJkIHJlZ2lvbnMgc2hvdWxkIG5vdCBiZSBpbiBkZXZpY2Ugc3BhY2UKZGlmZiAtLWdpdCBh
L1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwIGIvU291cmNl
L1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAKaW5kZXggYjAxMTE4YzFj
ZmE3NGE3MmUwMTYxMmM5MTVjODZmZDc0NjlkMjBkMy4uMDhhOGM5YjdkZmNhYjg1NDc0ZWI4ZDJj
NmVhMjE0ZjllMmIxMTFjYiAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlU2VjdGlvbi5jcHAKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRl
clRhYmxlU2VjdGlvbi5jcHAKQEAgLTQyNCw3ICs0MjQsMTAzIEBAIHZvaWQgUmVuZGVyVGFibGVT
ZWN0aW9uOjpsYXlvdXQoKQogICAgIHNldE5lZWRzTGF5b3V0KGZhbHNlKTsKIH0KIAotaW50IFJl
bmRlclRhYmxlU2VjdGlvbjo6bGF5b3V0Um93cyhpbnQgdG9BZGQpCitpbnQgUmVuZGVyVGFibGVT
ZWN0aW9uOjpkaXN0cmlidXRlRXh0cmFMb2dpY2FsSGVpZ2h0VG9QZXJjZW50Um93cyhpbnQgZXh0
cmFMb2dpY2FsSGVpZ2h0LCBpbnQgdG90YWxQZXJjZW50KQoreworICAgIGlmICghdG90YWxQZXJj
ZW50KQorICAgICAgICByZXR1cm4gZXh0cmFMb2dpY2FsSGVpZ2h0OworCisgICAgdW5zaWduZWQg
dG90YWxSb3dzID0gbV9ncmlkLnNpemUoKTsKKyAgICBpbnQgdG90YWxIZWlnaHQgPSBtX3Jvd1Bv
c1t0b3RhbFJvd3NdICsgZXh0cmFMb2dpY2FsSGVpZ2h0OworICAgIGludCBhZGQgPSAwOworICAg
IHRvdGFsUGVyY2VudCA9IG1pbih0b3RhbFBlcmNlbnQsIDEwMCk7CisgICAgaW50IHJvd0hlaWdo
dCA9IG1fcm93UG9zWzFdIC0gbV9yb3dQb3NbMF07CisgICAgZm9yICh1bnNpZ25lZCByID0gMDsg
ciA8IHRvdGFsUm93czsgKytyKSB7CisgICAgICAgIGlmICh0b3RhbFBlcmNlbnQgPiAwICYmIG1f
Z3JpZFtyXS5sb2dpY2FsSGVpZ2h0LmlzUGVyY2VudCgpKSB7CisgICAgICAgICAgICBpbnQgdG9B
ZGQgPSBtaW48aW50PihleHRyYUxvZ2ljYWxIZWlnaHQsICh0b3RhbEhlaWdodCAqIG1fZ3JpZFty
XS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSAvIDEwMCkgLSByb3dIZWlnaHQpOworICAgICAgICAg
ICAgLy8gSWYgdG9BZGQgaXMgbmVnYXRpdmUsIHRoZW4gd2UgZG9uJ3Qgd2FudCB0byBzaHJpbmsg
dGhlIHJvdyAodGhpcyBidWcKKyAgICAgICAgICAgIC8vIGFmZmVjdGVkIE91dGxvb2sgV2ViIEFj
Y2VzcykuCisgICAgICAgICAgICB0b0FkZCA9IG1heCgwLCB0b0FkZCk7CisgICAgICAgICAgICBh
ZGQgKz0gdG9BZGQ7CisgICAgICAgICAgICBleHRyYUxvZ2ljYWxIZWlnaHQgLT0gdG9BZGQ7Cisg
ICAgICAgICAgICB0b3RhbFBlcmNlbnQgLT0gbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQucGVyY2Vu
dCgpOworICAgICAgICB9CisgICAgICAgIEFTU0VSVCh0b3RhbFJvd3MgPj0gMSk7CisgICAgICAg
IGlmIChyIDwgdG90YWxSb3dzIC0gMSkKKyAgICAgICAgICAgIHJvd0hlaWdodCA9IG1fcm93UG9z
W3IgKyAyXSAtIG1fcm93UG9zW3IgKyAxXTsKKyAgICAgICAgbV9yb3dQb3NbciArIDFdICs9IGFk
ZDsKKyAgICB9CisgICAgcmV0dXJuIGV4dHJhTG9naWNhbEhlaWdodDsKK30KKworaW50IFJlbmRl
clRhYmxlU2VjdGlvbjo6ZGlzdHJpYnV0ZUV4dHJhTG9naWNhbEhlaWdodFRvQXV0b1Jvd3MoaW50
IGV4dHJhTG9naWNhbEhlaWdodCwgdW5zaWduZWQgYXV0b1Jvd3NDb3VudCkKK3sKKyAgICBpZiAo
IWF1dG9Sb3dzQ291bnQpCisgICAgICAgIHJldHVybiBleHRyYUxvZ2ljYWxIZWlnaHQ7CisKKyAg
ICBpbnQgYWRkID0gMDsKKyAgICBmb3IgKHVuc2lnbmVkIHIgPSAwOyByIDwgbV9ncmlkLnNpemUo
KTsgKytyKSB7CisgICAgICAgIGlmIChhdXRvUm93c0NvdW50ID4gMCAmJiBtX2dyaWRbcl0ubG9n
aWNhbEhlaWdodC5pc0F1dG8oKSkgeworICAgICAgICAgICAgLy8gUmVjb21wdXRpbmcgfGV4dHJh
TG9naWNhbEhlaWdodEZvclJvd3wgZ3VhcmFudGVlcyB0aGF0IHdlIHByb3Blcmx5IGRpdHJpYnV0
ZSByb3VuZCB8ZXh0cmFMb2dpY2FsSGVpZ2h0fC4KKyAgICAgICAgICAgIGludCBleHRyYUxvZ2lj
YWxIZWlnaHRGb3JSb3cgPSBleHRyYUxvZ2ljYWxIZWlnaHQgLyBhdXRvUm93c0NvdW50OworICAg
ICAgICAgICAgYWRkICs9IGV4dHJhTG9naWNhbEhlaWdodEZvclJvdzsKKyAgICAgICAgICAgIGV4
dHJhTG9naWNhbEhlaWdodCAtPSBleHRyYUxvZ2ljYWxIZWlnaHRGb3JSb3c7CisgICAgICAgICAg
ICAtLWF1dG9Sb3dzQ291bnQ7CisgICAgICAgIH0KKyAgICAgICAgbV9yb3dQb3NbciArIDFdICs9
IGFkZDsKKyAgICB9CisgICAgcmV0dXJuIGV4dHJhTG9naWNhbEhlaWdodDsKK30KKworaW50IFJl
bmRlclRhYmxlU2VjdGlvbjo6ZGlzdHJpYnV0ZVJlbWFpbmluZ0V4dHJhTG9naWNhbEhlaWdodChp
bnQgZXh0cmFMb2dpY2FsSGVpZ2h0KQoreworICAgIHVuc2lnbmVkIHRvdGFsUm93cyA9IG1fZ3Jp
ZC5zaXplKCk7CisKKyAgICBpZiAoZXh0cmFMb2dpY2FsSGVpZ2h0IDw9IDAgfHwgIW1fcm93UG9z
W3RvdGFsUm93c10pCisgICAgICAgIHJldHVybiBleHRyYUxvZ2ljYWxIZWlnaHQ7CisKKyAgICAv
LyBGSVhNRTogbV9yb3dQb3NbdG90YWxSb3dzXSAtIG1fcm93UG9zWzBdIGlzIHRoZSB0b3RhbCBy
b3dzJyBzaXplLgorICAgIGludCB0b3RhbFJvd1NpemUgPSBtX3Jvd1Bvc1t0b3RhbFJvd3NdOwor
ICAgIGludCBhZGQgPSAwOworICAgIGludCBwcmV2aW91c1Jvd1Bvc2l0aW9uID0gbV9yb3dQb3Nb
MF07CisgICAgZm9yICh1bnNpZ25lZCByID0gMDsgciA8IHRvdGFsUm93czsgcisrKSB7CisgICAg
ICAgIC8vIHdlaWdodCB3aXRoIHRoZSBvcmlnaW5hbCBoZWlnaHQKKyAgICAgICAgYWRkICs9IGV4
dHJhTG9naWNhbEhlaWdodCAqIChtX3Jvd1Bvc1tyICsgMV0gLSBwcmV2aW91c1Jvd1Bvc2l0aW9u
KSAvIHRvdGFsUm93U2l6ZTsKKyAgICAgICAgcHJldmlvdXNSb3dQb3NpdGlvbiA9IG1fcm93UG9z
W3IgKyAxXTsKKyAgICAgICAgbV9yb3dQb3NbciArIDFdICs9IGFkZDsKKyAgICB9CisKKyAgICBy
ZXR1cm4gZXh0cmFMb2dpY2FsSGVpZ2h0OworfQorCitpbnQgUmVuZGVyVGFibGVTZWN0aW9uOjpk
aXN0cmlidXRlRXh0cmFMb2dpY2FsSGVpZ2h0VG9Sb3dzKGludCBleHRyYUxvZ2ljYWxIZWlnaHQp
Cit7CisgICAgaWYgKCFleHRyYUxvZ2ljYWxIZWlnaHQpCisgICAgICAgIHJldHVybiBleHRyYUxv
Z2ljYWxIZWlnaHQ7CisKKyAgICB1bnNpZ25lZCB0b3RhbFJvd3MgPSBtX2dyaWQuc2l6ZSgpOwor
ICAgIGlmICghdG90YWxSb3dzKQorICAgICAgICByZXR1cm4gZXh0cmFMb2dpY2FsSGVpZ2h0Owor
CisgICAgaWYgKCFtX3Jvd1Bvc1t0b3RhbFJvd3NdICYmIG5leHRTaWJsaW5nKCkpCisgICAgICAg
IHJldHVybiBleHRyYUxvZ2ljYWxIZWlnaHQ7CisKKyAgICB1bnNpZ25lZCBhdXRvUm93c0NvdW50
ID0gMDsKKyAgICBpbnQgdG90YWxQZXJjZW50ID0gMDsKKyAgICBmb3IgKHVuc2lnbmVkIHIgPSAw
OyByIDwgdG90YWxSb3dzOyByKyspIHsKKyAgICAgICAgaWYgKG1fZ3JpZFtyXS5sb2dpY2FsSGVp
Z2h0LmlzQXV0bygpKQorICAgICAgICAgICAgKythdXRvUm93c0NvdW50OworICAgICAgICBlbHNl
IGlmIChtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc1BlcmNlbnQoKSkKKyAgICAgICAgICAgIHRv
dGFsUGVyY2VudCArPSBtX2dyaWRbcl0ubG9naWNhbEhlaWdodC5wZXJjZW50KCk7CisgICAgfQor
CisgICAgaW50IHJlbWFpbmluZ0V4dHJhTG9naWNhbEhlaWdodCA9IGV4dHJhTG9naWNhbEhlaWdo
dDsKKyAgICByZW1haW5pbmdFeHRyYUxvZ2ljYWxIZWlnaHQgPSBkaXN0cmlidXRlRXh0cmFMb2dp
Y2FsSGVpZ2h0VG9QZXJjZW50Um93cyhyZW1haW5pbmdFeHRyYUxvZ2ljYWxIZWlnaHQsIHRvdGFs
UGVyY2VudCk7CisgICAgcmVtYWluaW5nRXh0cmFMb2dpY2FsSGVpZ2h0ID0gZGlzdHJpYnV0ZUV4
dHJhTG9naWNhbEhlaWdodFRvQXV0b1Jvd3MocmVtYWluaW5nRXh0cmFMb2dpY2FsSGVpZ2h0LCBh
dXRvUm93c0NvdW50KTsKKyAgICByZW1haW5pbmdFeHRyYUxvZ2ljYWxIZWlnaHQgPSBkaXN0cmli
dXRlUmVtYWluaW5nRXh0cmFMb2dpY2FsSGVpZ2h0KHJlbWFpbmluZ0V4dHJhTG9naWNhbEhlaWdo
dCk7CisgICAgcmV0dXJuIHJlbWFpbmluZ0V4dHJhTG9naWNhbEhlaWdodDsKK30KKworaW50IFJl
bmRlclRhYmxlU2VjdGlvbjo6bGF5b3V0Um93cyhpbnQgZXh0cmFMb2dpY2FsSGVpZ2h0KQogewog
I2lmbmRlZiBOREVCVUcKICAgICBzZXROZWVkc0xheW91dElzRm9yYmlkZGVuKHRydWUpOwpAQCAt
NDQyLDY1ICs1MzgsNyBAQCBpbnQgUmVuZGVyVGFibGVTZWN0aW9uOjpsYXlvdXRSb3dzKGludCB0
b0FkZCkKICAgICBtX292ZXJmbG93aW5nQ2VsbHMuY2xlYXIoKTsKICAgICBtX2ZvcmNlU2xvd1Bh
aW50UGF0aFdpdGhPdmVyZmxvd2luZ0NlbGwgPSBmYWxzZTsKIAotICAgIGlmICh0b0FkZCAmJiB0
b3RhbFJvd3MgJiYgKG1fcm93UG9zW3RvdGFsUm93c10gfHwgIW5leHRTaWJsaW5nKCkpKSB7Ci0g
ICAgICAgIGludCB0b3RhbEhlaWdodCA9IG1fcm93UG9zW3RvdGFsUm93c10gKyB0b0FkZDsKLQot
ICAgICAgICBpbnQgZGggPSB0b0FkZDsKLSAgICAgICAgaW50IHRvdGFsUGVyY2VudCA9IDA7Ci0g
ICAgICAgIGludCBudW1BdXRvID0gMDsKLSAgICAgICAgZm9yICh1bnNpZ25lZCByID0gMDsgciA8
IHRvdGFsUm93czsgcisrKSB7Ci0gICAgICAgICAgICBpZiAobV9ncmlkW3JdLmxvZ2ljYWxIZWln
aHQuaXNBdXRvKCkpCi0gICAgICAgICAgICAgICAgbnVtQXV0bysrOwotICAgICAgICAgICAgZWxz
ZSBpZiAobV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQuaXNQZXJjZW50KCkpCi0gICAgICAgICAgICAg
ICAgdG90YWxQZXJjZW50ICs9IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKTsKLSAg
ICAgICAgfQotICAgICAgICBpZiAodG90YWxQZXJjZW50KSB7Ci0gICAgICAgICAgICAvLyB0cnkg
dG8gc2F0aXNmeSBwZXJjZW50Ci0gICAgICAgICAgICBpbnQgYWRkID0gMDsKLSAgICAgICAgICAg
IHRvdGFsUGVyY2VudCA9IG1pbih0b3RhbFBlcmNlbnQsIDEwMCk7Ci0gICAgICAgICAgICBpbnQg
cmggPSBtX3Jvd1Bvc1sxXSAtIG1fcm93UG9zWzBdOwotICAgICAgICAgICAgZm9yICh1bnNpZ25l
ZCByID0gMDsgciA8IHRvdGFsUm93czsgcisrKSB7Ci0gICAgICAgICAgICAgICAgaWYgKHRvdGFs
UGVyY2VudCA+IDAgJiYgbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQuaXNQZXJjZW50KCkpIHsKLSAg
ICAgICAgICAgICAgICAgICAgaW50IHRvQWRkID0gbWluPGludD4oZGgsICh0b3RhbEhlaWdodCAq
IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKSAvIDEwMCkgLSByaCk7Ci0gICAgICAg
ICAgICAgICAgICAgIC8vIElmIHRvQWRkIGlzIG5lZ2F0aXZlLCB0aGVuIHdlIGRvbid0IHdhbnQg
dG8gc2hyaW5rIHRoZSByb3cgKHRoaXMgYnVnCi0gICAgICAgICAgICAgICAgICAgIC8vIGFmZmVj
dGVkIE91dGxvb2sgV2ViIEFjY2VzcykuCi0gICAgICAgICAgICAgICAgICAgIHRvQWRkID0gbWF4
KDAsIHRvQWRkKTsKLSAgICAgICAgICAgICAgICAgICAgYWRkICs9IHRvQWRkOwotICAgICAgICAg
ICAgICAgICAgICBkaCAtPSB0b0FkZDsKLSAgICAgICAgICAgICAgICAgICAgdG90YWxQZXJjZW50
IC09IG1fZ3JpZFtyXS5sb2dpY2FsSGVpZ2h0LnBlcmNlbnQoKTsKLSAgICAgICAgICAgICAgICB9
Ci0gICAgICAgICAgICAgICAgQVNTRVJUKHRvdGFsUm93cyA+PSAxKTsKLSAgICAgICAgICAgICAg
ICBpZiAociA8IHRvdGFsUm93cyAtIDEpCi0gICAgICAgICAgICAgICAgICAgIHJoID0gbV9yb3dQ
b3NbciArIDJdIC0gbV9yb3dQb3NbciArIDFdOwotICAgICAgICAgICAgICAgIG1fcm93UG9zW3Ig
KyAxXSArPSBhZGQ7Ci0gICAgICAgICAgICB9Ci0gICAgICAgIH0KLSAgICAgICAgaWYgKG51bUF1
dG8pIHsKLSAgICAgICAgICAgIC8vIGRpc3RyaWJ1dGUgb3ZlciB2YXJpYWJsZSBjb2xzCi0gICAg
ICAgICAgICBpbnQgYWRkID0gMDsKLSAgICAgICAgICAgIGZvciAodW5zaWduZWQgciA9IDA7IHIg
PCB0b3RhbFJvd3M7IHIrKykgewotICAgICAgICAgICAgICAgIGlmIChudW1BdXRvID4gMCAmJiBt
X2dyaWRbcl0ubG9naWNhbEhlaWdodC5pc0F1dG8oKSkgewotICAgICAgICAgICAgICAgICAgICBp
bnQgdG9BZGQgPSBkaCAvIG51bUF1dG87Ci0gICAgICAgICAgICAgICAgICAgIGFkZCArPSB0b0Fk
ZDsKLSAgICAgICAgICAgICAgICAgICAgZGggLT0gdG9BZGQ7Ci0gICAgICAgICAgICAgICAgICAg
IG51bUF1dG8tLTsKLSAgICAgICAgICAgICAgICB9Ci0gICAgICAgICAgICAgICAgbV9yb3dQb3Nb
ciArIDFdICs9IGFkZDsKLSAgICAgICAgICAgIH0KLSAgICAgICAgfQotICAgICAgICBpZiAoZGgg
PiAwICYmIG1fcm93UG9zW3RvdGFsUm93c10pIHsKLSAgICAgICAgICAgIC8vIGlmIHNvbWUgbGVm
dCBvdmVycywgZGlzdHJpYnV0ZSBlcXVhbGx5LgotICAgICAgICAgICAgaW50IHRvdCA9IG1fcm93
UG9zW3RvdGFsUm93c107Ci0gICAgICAgICAgICBpbnQgYWRkID0gMDsKLSAgICAgICAgICAgIGlu
dCBwcmV2ID0gbV9yb3dQb3NbMF07Ci0gICAgICAgICAgICBmb3IgKHVuc2lnbmVkIHIgPSAwOyBy
IDwgdG90YWxSb3dzOyByKyspIHsKLSAgICAgICAgICAgICAgICAvLyB3ZWlnaHQgd2l0aCB0aGUg
b3JpZ2luYWwgaGVpZ2h0Ci0gICAgICAgICAgICAgICAgYWRkICs9IGRoICogKG1fcm93UG9zW3Ig
KyAxXSAtIHByZXYpIC8gdG90OwotICAgICAgICAgICAgICAgIHByZXYgPSBtX3Jvd1Bvc1tyICsg
MV07Ci0gICAgICAgICAgICAgICAgbV9yb3dQb3NbciArIDFdICs9IGFkZDsKLSAgICAgICAgICAg
IH0KLSAgICAgICAgfQotICAgIH0KKyAgICBleHRyYUxvZ2ljYWxIZWlnaHQgPSBkaXN0cmlidXRl
RXh0cmFMb2dpY2FsSGVpZ2h0VG9Sb3dzKGV4dHJhTG9naWNhbEhlaWdodCk7CiAKICAgICBpbnQg
aHNwYWNpbmcgPSB0YWJsZSgpLT5oQm9yZGVyU3BhY2luZygpOwogICAgIGludCB2c3BhY2luZyA9
IHRhYmxlKCktPnZCb3JkZXJTcGFjaW5nKCk7CmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9y
ZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVTZWN0aW9uLmgKaW5kZXggODRlODRlYjNiNzVlZDE1ZDc2OTI4MjQyY2ZlZjIz
MjEzOGZjNTFkNS4uOGRmNzRmMDZmZDZiMmVkNjg1NmNiYzFjOGI4OGY5N2RjZjE3YWMzNCAxMDA2
NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCisr
KyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaApAQCAtMTg1
LDYgKzE4NSwxMyBAQCBwcml2YXRlOgogCiAgICAgdm9pZCBlbnN1cmVSb3dzKHVuc2lnbmVkKTsK
IAorICAgIC8vIFRob3NlIG1ldGhvZHMgcmV0dXJuIHRoZSByZW1haW5pbmcgZXh0cmEgbG9naWNh
bCBoZWlnaHQuCisgICAgLy8gRklYTUU6IFdlIG1heSB3YW50IHRvIGludHJvZHVjZSBhIHN0cnVj
dHVyZSBob2xkaW5nIHRoZSBpbi1mbHV4IGxheW91dCBpbmZvcm1hdGlvbi4KKyAgICBpbnQgZGlz
dHJpYnV0ZUV4dHJhTG9naWNhbEhlaWdodFRvUm93cyhpbnQgZXh0cmFMb2dpY2FsSGVpZ2h0KTsK
KyAgICBpbnQgZGlzdHJpYnV0ZUV4dHJhTG9naWNhbEhlaWdodFRvUGVyY2VudFJvd3MoaW50IGV4
dHJhTG9naWNhbEhlaWdodCwgaW50IHRvdGFsUGVyY2VudCk7CisgICAgaW50IGRpc3RyaWJ1dGVF
eHRyYUxvZ2ljYWxIZWlnaHRUb0F1dG9Sb3dzKGludCBleHRyYUxvZ2ljYWxIZWlnaHQsIHVuc2ln
bmVkIGF1dG9Sb3dzQ291bnQpOworICAgIGludCBkaXN0cmlidXRlUmVtYWluaW5nRXh0cmFMb2dp
Y2FsSGVpZ2h0KGludCBleHRyYUxvZ2ljYWxIZWlnaHQpOworCiAgICAgYm9vbCBoYXNPdmVyZmxv
d2luZ0NlbGwoKSBjb25zdCB7IHJldHVybiBtX292ZXJmbG93aW5nQ2VsbHMuc2l6ZSgpIHx8IG1f
Zm9yY2VTbG93UGFpbnRQYXRoV2l0aE92ZXJmbG93aW5nQ2VsbDsgfQogCiAgICAgQ2VsbFNwYW4g
ZnVsbFRhYmxlUm93U3BhbigpIGNvbnN0IHsgcmV0dXJuIENlbGxTcGFuKDAsIG1fZ3JpZC5zaXpl
KCkpOyB9Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>