<?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>71056</bug_id>
          
          <creation_ts>2011-10-27 13:04:50 -0700</creation_ts>
          <short_desc>RenderTableSection::recalcCells should not free its grid</short_desc>
          <delta_ts>2011-10-28 11:04:34 -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>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>darin</cc>
    
    <cc>webkit.review.bot</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>491851</commentid>
    <comment_count>0</comment_count>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-27 13:04:50 -0700</bug_when>
    <thetext>Following bug 70570, recalcCells is now free&apos;ing and reallocating the row vector (m_grid) when it used just to reuse it.

It is wasteful so let&apos;s try to get the previous behavior back.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492195</commentid>
    <comment_count>1</comment_count>
      <attachid>112806</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-27 19:12:20 -0700</bug_when>
    <thetext>Created attachment 112806
Avoid free&apos;ing the m_grid vector, refactored |row| to be part of RowStruct and made the &apos;reset&apos; logic more apparent.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492203</commentid>
    <comment_count>2</comment_count>
      <attachid>112806</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2011-10-27 19:47:37 -0700</bug_when>
    <thetext>Comment on attachment 112806
Avoid free&apos;ing the m_grid vector, refactored |row| to be part of RowStruct and made the &apos;reset&apos; logic more apparent.

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

Patch does not apply. I am going to say review+ but not sure about that aspect of things.

&gt; Source/WebCore/rendering/RenderTableSection.cpp:77
&gt;  RenderTableSection::~RenderTableSection()
&gt;  {
&gt; -    clearGrid();
&gt; +    m_grid.clear();
&gt;  }

This is not needed in a destructor. The Vector will be destroyed automatically, so no need to clear it. You can just remove the call to clearGrid entirely and not replace it with anything.

&gt; Source/WebCore/rendering/RenderTableSection.cpp:1159
&gt; +        m_grid[row].row.clear();
&gt; +        m_grid[row].row.resize(effectiveColumnCount);

If we do need to clear and then re-allocate, we can at least factor out one unnecessary branch by using grow instead of resize.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492491</commentid>
    <comment_count>3</comment_count>
      <attachid>112806</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-28 09:35:33 -0700</bug_when>
    <thetext>Comment on attachment 112806
Avoid free&apos;ing the m_grid vector, refactored |row| to be part of RowStruct and made the &apos;reset&apos; logic more apparent.

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

&gt; Patch does not apply. I am going to say review+ but not sure about that aspect of things.

Good catch, that&apos;s my fault as I did not rebaseline after yesterday landings. I will submit a new patch for EWS analysis to make sure I don&apos;t break anything.

&gt;&gt; Source/WebCore/rendering/RenderTableSection.cpp:77
&gt;&gt;  }
&gt; 
&gt; This is not needed in a destructor. The Vector will be destroyed automatically, so no need to clear it. You can just remove the call to clearGrid entirely and not replace it with anything.

Will be removed.

&gt;&gt; Source/WebCore/rendering/RenderTableSection.cpp:1159
&gt;&gt; +        m_grid[row].row.resize(effectiveColumnCount);
&gt; 
&gt; If we do need to clear and then re-allocate, we can at least factor out one unnecessary branch by using grow instead of resize.

We don&apos;t strictly need the whole re-allocation to per the comment above. We could get away with individually resetting each CellStruct. I am not sure the added complexity is worth the effort for now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492499</commentid>
    <comment_count>4</comment_count>
      <attachid>112879</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-28 09:43:26 -0700</bug_when>
    <thetext>Created attachment 112879
Patch for EWS analysis.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492510</commentid>
    <comment_count>5</comment_count>
      <attachid>112879</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-28 10:23:36 -0700</bug_when>
    <thetext>Comment on attachment 112879
Patch for EWS analysis.

Let&apos;s see if the cq will pick this up.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492512</commentid>
    <comment_count>6</comment_count>
      <attachid>112879</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 10:28:55 -0700</bug_when>
    <thetext>Comment on attachment 112879
Patch for EWS analysis.

Rejecting attachment 112879 from commit-queue.

Failed to run &quot;[&apos;/mnt/git/webkit-commit-queue/Tools/Scripts/webkit-patch&apos;, &apos;--status-host=queues.webkit.org&apos;, &apos;-...&quot; exit_code: 1

NOBODY (OOPS!) found in /mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog does not appear to be a valid reviewer according to committers.py.
ERROR: /mnt/git/webkit-commit-queue/Source/WebCore/ChangeLog neither lists a valid reviewer nor contains the string &quot;Unreviewed&quot; or &quot;Rubber stamp&quot; (case insensitive).

Full output: http://queues.webkit.org/results/10240090</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492519</commentid>
    <comment_count>7</comment_count>
      <attachid>112881</attachid>
    <who name="Julien Chaffraix">jchaffraix</who>
    <bug_when>2011-10-28 10:40:10 -0700</bug_when>
    <thetext>Created attachment 112881
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492536</commentid>
    <comment_count>8</comment_count>
      <attachid>112881</attachid>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 11:04:29 -0700</bug_when>
    <thetext>Comment on attachment 112881
Patch for landing

Clearing flags on attachment: 112881

Committed r98738: &lt;http://trac.webkit.org/changeset/98738&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>492537</commentid>
    <comment_count>9</comment_count>
    <who name="WebKit Review Bot">webkit.review.bot</who>
    <bug_when>2011-10-28 11:04:34 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112806</attachid>
            <date>2011-10-27 19:12:20 -0700</date>
            <delta_ts>2011-10-28 09:43:23 -0700</delta_ts>
            <desc>Avoid free&apos;ing the m_grid vector, refactored |row| to be part of RowStruct and made the &apos;reset&apos; logic more apparent.</desc>
            <filename>bug-71056-20111027191219.patch</filename>
            <type>text/plain</type>
            <size>10572</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg2MjYKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCA1NTU1MzUwNjcxMmVlMTZk
MGZiNTg5NTE0ZTg2MTI2ODYyY2JiODBkLi5lMGMwNzdhZWE5MDk5ZDdlNDQ4MTNkN2JmZTc0Y2Ji
MWViYTE3OTVlIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMTAtMjcgIEp1bGll
biBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuZGVyVGFi
bGVTZWN0aW9uOjpyZWNhbGNDZWxscyBzaG91bGQgbm90IGZyZWUgaXRzIGdyaWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDU2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmcgb25seSwg
bm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgIHI5ODYxNCBoYWQgdGhlIGJhZCBzaWRl
IGVmZmVjdCBvZiBjbGVhcmluZyB0aGUgcm93IHZlY3RvciAobV9ncmlkKSBvbgorICAgICAgICB0
aGUgUmVuZGVyVGFibGVTZWN0aW9uIHdoZW4gZG9pbmcgYSByZWNhbGNDZWxscy4gVGhpcyBjaGFu
Z2UgcmVtb3ZlcyB0aGUKKyAgICAgICAgdW5uZWVkZWQgZnJlZSBhbmQgaW5saW5lIHRoZSB8cm93
fCBmaWVsZCBpbnRvIHRoZSBSb3dTdHJ1Y3QgYXMgaXQgbWFkZQorICAgICAgICBubyBzZW5zZSB0
byBoYXZlIGl0IGFzIGEgcG9pbnRlci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJs
ZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0Um93TG9naWNhbEhlaWdodFRvUm93
U3R5bGVMb2dpY2FsSGVpZ2h0SWZOb3RSZWxhdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZVNlY3Rpb246OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxl
U2VjdGlvbjo6c2V0Q2VsbExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGFibGVTZWN0aW9uOjpjYWxjUm93TG9naWNhbEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUYWJsZVNlY3Rpb246OmZpcnN0TGluZUJveEJhc2VsaW5lKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6YXBwZW5kQ29sdW1uKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRhYmxlU2VjdGlvbjo6c3BsaXRDb2x1bW4pOgorICAgICAgICBNZWNoYW5pY2FsIGNo
YW5nZXMgbm93IHRoYXQgfHJvd3wgaXMgYSBtZW1iZXIgb2YgUm93U3RydWN0LgorCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246On5SZW5kZXJUYWJsZVNlY3Rpb24pOiBDbGVh
ciBvdXIgcm93IHZlY3Rvci4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9u
OjplbnN1cmVSb3dzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6cmVj
YWxjQ2VsbHMpOgorICAgICAgICBUaG9zZSAyIGZ1bmN0aW9ucyB3ZXJlIHJlZmFjdG9yZWQgdG8g
dXNlIGZpbGxSb3dzV2l0aERlZmF1bHRTdGFydGluZ0F0UG9zaXRpb24uCisKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6ZmlsbFJvd3NXaXRoRGVmYXVsdFN0YXJ0aW5nQXRQ
b3NpdGlvbik6CisgICAgICAgIEZhY3RvcmVkIHRoZSBjb2RlIHRvIGZpbGwgdGhlIFJvd1N0cnVj
dCBzdHJ1Y3R1cmUgd2l0aCBkZWZhdWx0IHZhbHVlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUYWJsZVNlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlv
bjo6Y2VsbEF0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6cHJpbWFy
eUNlbGxBdCk6CisgICAgICAgIE1vcmUgbWVjaGFuaWNhbCBjaGFuZ2UgYWZ0ZXIgdGhlIHxyb3d8
IGZpZWxkIGNoYW5nZS4KKwogMjAxMS0xMC0yNyAgQXJ0aHVyIEhzdSAgPGFydGh1cmhzdUBjaHJv
bWl1bS5vcmc+CiAKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTcwMzkwCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVTZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rp
b24uY3BwCmluZGV4IDA3NWY4N2RmZDc3YmVhNWM2NGFhYmNlNTRlNWFjNDY0YWVkNTg2M2YuLmE1
NGE4YTIzMzM2MGRiMjUzYWQ0MDljNWVmYzA1MTA4ZjdlZDExNDcgMTAwNjQ0Ci0tLSBhL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCisrKyBiL1NvdXJjZS9X
ZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCkBAIC00OCwxMiArNDgsMTIg
QEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHN0YXRpYyB1bnNpZ25lZCBnTWluVGFibGVT
aXplVG9Vc2VGYXN0UGFpbnRQYXRoV2l0aE92ZXJmbG93aW5nQ2VsbCA9IDc1ICogNzU7CiBzdGF0
aWMgZmxvYXQgZ01heEFsbG93ZWRPdmVyZmxvd2luZ0NlbGxSYXRpb0ZvckZhc3RQYWludFBhdGgg
PSAwLjFmOwogCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0Um93TG9naWNhbEhlaWdodFRvUm93U3R5
bGVMb2dpY2FsSGVpZ2h0SWZOb3RSZWxhdGl2ZShSZW5kZXJUYWJsZVNlY3Rpb246OlJvd1N0cnVj
dCogcm93KQorc3RhdGljIGlubGluZSB2b2lkIHNldFJvd0xvZ2ljYWxIZWlnaHRUb1Jvd1N0eWxl
TG9naWNhbEhlaWdodElmTm90UmVsYXRpdmUoUmVuZGVyVGFibGVTZWN0aW9uOjpSb3dTdHJ1Y3Qm
IHJvdykKIHsKLSAgICBBU1NFUlQocm93ICYmIHJvdy0+cm93UmVuZGVyZXIpOwotICAgIHJvdy0+
bG9naWNhbEhlaWdodCA9IHJvdy0+cm93UmVuZGVyZXItPnN0eWxlKCktPmxvZ2ljYWxIZWlnaHQo
KTsKLSAgICBpZiAocm93LT5sb2dpY2FsSGVpZ2h0LmlzUmVsYXRpdmUoKSkKLSAgICAgICAgcm93
LT5sb2dpY2FsSGVpZ2h0ID0gTGVuZ3RoKCk7CisgICAgQVNTRVJUKHJvdy5yb3dSZW5kZXJlcik7
CisgICAgcm93LmxvZ2ljYWxIZWlnaHQgPSByb3cucm93UmVuZGVyZXItPnN0eWxlKCktPmxvZ2lj
YWxIZWlnaHQoKTsKKyAgICBpZiAocm93LmxvZ2ljYWxIZWlnaHQuaXNSZWxhdGl2ZSgpKQorICAg
ICAgICByb3cubG9naWNhbEhlaWdodCA9IExlbmd0aCgpOwogfQogCiBSZW5kZXJUYWJsZVNlY3Rp
b246OlJlbmRlclRhYmxlU2VjdGlvbihOb2RlKiBub2RlKQpAQCAtNzMsNyArNzMsNyBAQCBSZW5k
ZXJUYWJsZVNlY3Rpb246OlJlbmRlclRhYmxlU2VjdGlvbihOb2RlKiBub2RlKQogCiBSZW5kZXJU
YWJsZVNlY3Rpb246On5SZW5kZXJUYWJsZVNlY3Rpb24oKQogewotICAgIGNsZWFyR3JpZCgpOwor
ICAgIG1fZ3JpZC5jbGVhcigpOwogfQogCiB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6c3R5bGVE
aWRDaGFuZ2UoU3R5bGVEaWZmZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHls
ZSkKQEAgLTE1Nyw3ICsxNTcsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6YWRkQ2hpbGQo
UmVuZGVyT2JqZWN0KiBjaGlsZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZAogICAgIG1fZ3Jp
ZFttX2NSb3ddLnJvd1JlbmRlcmVyID0gdG9SZW5kZXJUYWJsZVJvdyhjaGlsZCk7CiAKICAgICBp
ZiAoIWJlZm9yZUNoaWxkKQotICAgICAgICBzZXRSb3dMb2dpY2FsSGVpZ2h0VG9Sb3dTdHlsZUxv
Z2ljYWxIZWlnaHRJZk5vdFJlbGF0aXZlKCZtX2dyaWRbbV9jUm93XSk7CisgICAgICAgIHNldFJv
d0xvZ2ljYWxIZWlnaHRUb1Jvd1N0eWxlTG9naWNhbEhlaWdodElmTm90UmVsYXRpdmUobV9ncmlk
W21fY1Jvd10pOwogCiAgICAgLy8gSWYgdGhlIG5leHQgcmVuZGVyZXIgaXMgYWN0dWFsbHkgd3Jh
cHBlZCBpbiBhbiBhbm9ueW1vdXMgdGFibGUgcm93LCB3ZSBuZWVkIHRvIGdvIHVwIGFuZCBmaW5k
IHRoYXQuCiAgICAgd2hpbGUgKGJlZm9yZUNoaWxkICYmIGJlZm9yZUNoaWxkLT5wYXJlbnQoKSAh
PSB0aGlzKQpAQCAtMTgzLDE0ICsxODMsNyBAQCBib29sIFJlbmRlclRhYmxlU2VjdGlvbjo6ZW5z
dXJlUm93cyhpbnQgbnVtUm93cykKIAogICAgICAgICB1bnNpZ25lZCBvbGRTaXplID0gbV9ncmlk
LnNpemUoKTsKICAgICAgICAgbV9ncmlkLmdyb3cobnVtUm93cyk7Ci0KLSAgICAgICAgaW50IG5D
b2xzID0gbWF4KDEsIHRhYmxlKCktPm51bUVmZkNvbHMoKSk7Ci0gICAgICAgIGZvciAoaW50IHIg
PSBvbGRTaXplOyByIDwgbnVtUm93czsgcisrKSB7Ci0gICAgICAgICAgICBtX2dyaWRbcl0ucm93
ID0gbmV3IFJvdyhuQ29scyk7Ci0gICAgICAgICAgICBtX2dyaWRbcl0ucm93UmVuZGVyZXIgPSAw
OwotICAgICAgICAgICAgbV9ncmlkW3JdLmJhc2VsaW5lID0gMDsKLSAgICAgICAgICAgIG1fZ3Jp
ZFtyXS5sb2dpY2FsSGVpZ2h0ID0gTGVuZ3RoKCk7Ci0gICAgICAgIH0KKyAgICAgICAgZmlsbFJv
d3NXaXRoRGVmYXVsdFN0YXJ0aW5nQXRQb3NpdGlvbihvbGRTaXplKTsKICAgICB9CiAKICAgICBy
ZXR1cm4gdHJ1ZTsKQEAgLTI3OSw3ICsyNzIsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6
c2V0Q2VsbExvZ2ljYWxXaWR0aHMoKQogICAgIExheW91dFN0YXRlTWFpbnRhaW5lciBzdGF0ZVB1
c2hlcih2aWV3KCkpOwogCiAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IG1fZ3JpZC5zaXpl
KCk7IGkrKykgewotICAgICAgICBSb3cmIHJvdyA9ICptX2dyaWRbaV0ucm93OworICAgICAgICBS
b3cmIHJvdyA9IG1fZ3JpZFtpXS5yb3c7CiAgICAgICAgIGludCBjb2xzID0gcm93LnNpemUoKTsK
ICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjb2xzOyBqKyspIHsKICAgICAgICAgICAgIENl
bGxTdHJ1Y3QmIGN1cnJlbnQgPSByb3dbal07CkBAIC0zNDAsOCArMzMzLDggQEAgTGF5b3V0VW5p
dCBSZW5kZXJUYWJsZVNlY3Rpb246OmNhbGNSb3dMb2dpY2FsSGVpZ2h0KCkKIAogICAgICAgICBt
X3Jvd1Bvc1tyICsgMV0gPSBtYXgobV9yb3dQb3NbciArIDFdLCBwb3MpOwogCi0gICAgICAgIFJv
dyogcm93ID0gbV9ncmlkW3JdLnJvdzsKLSAgICAgICAgaW50IHRvdGFsQ29scyA9IHJvdy0+c2l6
ZSgpOworICAgICAgICBSb3cmIHJvdyA9IG1fZ3JpZFtyXS5yb3c7CisgICAgICAgIGludCB0b3Rh
bENvbHMgPSByb3cuc2l6ZSgpOwogCiAgICAgICAgIGZvciAoaW50IGMgPSAwOyBjIDwgdG90YWxD
b2xzOyBjKyspIHsKICAgICAgICAgICAgIENlbGxTdHJ1Y3QmIGN1cnJlbnQgPSBjZWxsQXQociwg
Yyk7CkBAIC05MTUsMTAgKzkwOCwxMCBAQCBMYXlvdXRVbml0IFJlbmRlclRhYmxlU2VjdGlvbjo6
Zmlyc3RMaW5lQm94QmFzZWxpbmUoKSBjb25zdAogICAgICAgICByZXR1cm4gZmlyc3RMaW5lQmFz
ZWxpbmUgKyBtX3Jvd1Bvc1swXTsKIAogICAgIGZpcnN0TGluZUJhc2VsaW5lID0gLTE7Ci0gICAg
Um93KiBmaXJzdFJvdyA9IG1fZ3JpZFswXS5yb3c7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkg
PCBmaXJzdFJvdy0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQ2VsbFN0cnVjdCYgY3MgPSBmaXJz
dFJvdy0+YXQoaSk7Ci0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCogY2VsbCA9IGNzLnByaW1hcnlD
ZWxsKCk7CisgICAgY29uc3QgUm93JiBmaXJzdFJvdyA9IG1fZ3JpZFswXS5yb3c7CisgICAgZm9y
IChzaXplX3QgaSA9IDA7IGkgPCBmaXJzdFJvdy5zaXplKCk7ICsraSkgeworICAgICAgICBjb25z
dCBDZWxsU3RydWN0JiBjcyA9IGZpcnN0Um93LmF0KGkpOworICAgICAgICBjb25zdCBSZW5kZXJU
YWJsZUNlbGwqIGNlbGwgPSBjcy5wcmltYXJ5Q2VsbCgpOwogICAgICAgICBpZiAoY2VsbCkKICAg
ICAgICAgICAgIGZpcnN0TGluZUJhc2VsaW5lID0gbWF4KGZpcnN0TGluZUJhc2VsaW5lLCBjZWxs
LT5sb2dpY2FsVG9wKCkgKyBjZWxsLT5wYWRkaW5nQmVmb3JlKCkgKyBjZWxsLT5ib3JkZXJCZWZv
cmUoKSArIGNlbGwtPmNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkpOwogICAgIH0KQEAgLTExMjMsMTIg
KzExMTYsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6cmVjYWxjQ2VsbHMoKQogewogICAg
IG1fY0NvbCA9IDA7CiAgICAgbV9jUm93ID0gLTE7Ci0gICAgdW5zaWduZWQgY2FwYWNpdHkgPSBt
X2dyaWQuc2l6ZSgpOwotICAgIGNsZWFyR3JpZCgpOwotICAgIC8vIEFsdGhvdWdoIGl0IGlzIHBv
c3NpYmxlIGZvciBvdXIgcm93IGNvdW50IHRvIHNocmluayAoZHVlIHRvIHJlbW92ZUNoaWxkIGJl
aW5nIGNhbGxlZCksCi0gICAgLy8gaXQgaXMgbW9yZSBjb21tb24gZm9yIHRoZSBjb3VudCB0byBz
dGF5IHRoZSBzYW1lLiBMZXQncyBqdXN0IHJlYWxsb2NhdGUgdGhlIG9sZAotICAgIC8vIGNhcGFj
aXR5IHVwZnJvbnQgdG8gYXZvaWQgcmUtZXhwYW5kaW5nIGl0IG9uZSByb3cgYXQgYSB0aW1lLgot
ICAgIG1fZ3JpZC5yZXNlcnZlQ2FwYWNpdHkoY2FwYWNpdHkpOworICAgIGZpbGxSb3dzV2l0aERl
ZmF1bHRTdGFydGluZ0F0UG9zaXRpb24oMCk7CiAKICAgICBmb3IgKFJlbmRlck9iamVjdCogcm93
ID0gZmlyc3RDaGlsZCgpOyByb3c7IHJvdyA9IHJvdy0+bmV4dFNpYmxpbmcoKSkgewogICAgICAg
ICBpZiAocm93LT5pc1RhYmxlUm93KCkpIHsKQEAgLTExMzksNyArMTEyNyw3IEBAIHZvaWQgUmVu
ZGVyVGFibGVTZWN0aW9uOjpyZWNhbGNDZWxscygpCiAgICAgICAgICAgICAKICAgICAgICAgICAg
IFJlbmRlclRhYmxlUm93KiB0YWJsZVJvdyA9IHRvUmVuZGVyVGFibGVSb3cocm93KTsKICAgICAg
ICAgICAgIG1fZ3JpZFttX2NSb3ddLnJvd1JlbmRlcmVyID0gdGFibGVSb3c7Ci0gICAgICAgICAg
ICBzZXRSb3dMb2dpY2FsSGVpZ2h0VG9Sb3dTdHlsZUxvZ2ljYWxIZWlnaHRJZk5vdFJlbGF0aXZl
KCZtX2dyaWRbbV9jUm93XSk7CisgICAgICAgICAgICBzZXRSb3dMb2dpY2FsSGVpZ2h0VG9Sb3dT
dHlsZUxvZ2ljYWxIZWlnaHRJZk5vdFJlbGF0aXZlKG1fZ3JpZFttX2NSb3ddKTsKIAogICAgICAg
ICAgICAgZm9yIChSZW5kZXJPYmplY3QqIGNlbGwgPSByb3ctPmZpcnN0Q2hpbGQoKTsgY2VsbDsg
Y2VsbCA9IGNlbGwtPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgICAgICAgICBpZiAoY2VsbC0+
aXNUYWJsZUNlbGwoKSkKQEAgLTExNDcsNiArMTEzNSw4IEBAIHZvaWQgUmVuZGVyVGFibGVTZWN0
aW9uOjpyZWNhbGNDZWxscygpCiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CisKKyAg
ICBtX2dyaWQuc2hyaW5rVG9GaXQoKTsKICAgICBtX25lZWRzQ2VsbFJlY2FsYyA9IGZhbHNlOwog
ICAgIHNldE5lZWRzTGF5b3V0KHRydWUpOwogfQpAQCAtMTE1OCwxMiArMTE0OCwxOSBAQCB2b2lk
IFJlbmRlclRhYmxlU2VjdGlvbjo6c2V0TmVlZHNDZWxsUmVjYWxjKCkKICAgICAgICAgdC0+c2V0
TmVlZHNTZWN0aW9uUmVjYWxjKCk7CiB9CiAKLXZvaWQgUmVuZGVyVGFibGVTZWN0aW9uOjpjbGVh
ckdyaWQoKQordm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246OmZpbGxSb3dzV2l0aERlZmF1bHRTdGFy
dGluZ0F0UG9zaXRpb24odW5zaWduZWQgc3RhcnRpbmdSb3cpCiB7Ci0gICAgZm9yICh1bnNpZ25l
ZCByb3cgPSAwOyByb3cgPCBtX2dyaWQuc2l6ZSgpOyArK3JvdykKLSAgICAgICAgZGVsZXRlIG1f
Z3JpZFtyb3ddLnJvdzsKLQotICAgIG1fZ3JpZC5jbGVhcigpOworICAgIGludCBlZmZlY3RpdmVD
b2x1bW5Db3VudCA9IG1heCgxLCB0YWJsZSgpLT5udW1FZmZDb2xzKCkpOworICAgIGZvciAodW5z
aWduZWQgcm93ID0gc3RhcnRpbmdSb3c7IHJvdyA8IG1fZ3JpZC5zaXplKCk7ICsrcm93KSB7Cisg
ICAgICAgIC8vIEl0IG1heSBiZSBtb3JlIGVmZmljaWVudCB0byByZXNldCB0aGUgQ2VsbFN0cnVj
dCBpbmRpdmlkdWFsbHkgaW5zdGVhZCBvZiByZWFsbG9jYXRpbmcKKyAgICAgICAgLy8gdGhlIHdo
b2xlIGJ1ZmZlciBpbiBlYWNoIFJvdywgZm9yIG5vdyB0aGlzIGlzIGdvb2QgZW5vdWdoIGFuZCB3
aWxsIHByb3Blcmx5IHNocmluaworICAgICAgICAvLyB0aGUgcm93cyBpZiBlZmZlY3RpdmVDb2x1
bW5Db3VudCB3YXMgZGVjcmVhc2VkLgorICAgICAgICBtX2dyaWRbcm93XS5yb3cuY2xlYXIoKTsK
KyAgICAgICAgbV9ncmlkW3Jvd10ucm93LnJlc2l6ZShlZmZlY3RpdmVDb2x1bW5Db3VudCk7Cisg
ICAgICAgIG1fZ3JpZFtyb3ddLnJvd1JlbmRlcmVyID0gMDsKKyAgICAgICAgbV9ncmlkW3Jvd10u
YmFzZWxpbmUgPSAwOworICAgICAgICBtX2dyaWRbcm93XS5sb2dpY2FsSGVpZ2h0ID0gTGVuZ3Ro
KCk7CisgICAgfQogfQogCiBpbnQgUmVuZGVyVGFibGVTZWN0aW9uOjpudW1Db2x1bW5zKCkgY29u
c3QKQEAgLTExODQsNyArMTE4MSw3IEBAIGludCBSZW5kZXJUYWJsZVNlY3Rpb246Om51bUNvbHVt
bnMoKSBjb25zdAogdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246OmFwcGVuZENvbHVtbihpbnQgcG9z
KQogewogICAgIGZvciAodW5zaWduZWQgcm93ID0gMDsgcm93IDwgbV9ncmlkLnNpemUoKTsgKyty
b3cpCi0gICAgICAgIG1fZ3JpZFtyb3ddLnJvdy0+cmVzaXplKHBvcyArIDEpOworICAgICAgICBt
X2dyaWRbcm93XS5yb3cucmVzaXplKHBvcyArIDEpOwogfQogCiB2b2lkIFJlbmRlclRhYmxlU2Vj
dGlvbjo6c3BsaXRDb2x1bW4oaW50IHBvcywgaW50IGZpcnN0KQpAQCAtMTE5NCw3ICsxMTkxLDcg
QEAgdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246OnNwbGl0Q29sdW1uKGludCBwb3MsIGludCBmaXJz
dCkKICAgICBpZiAobV9jQ29sID4gcG9zKQogICAgICAgICBtX2NDb2wrKzsKICAgICBmb3IgKHVu
c2lnbmVkIHJvdyA9IDA7IHJvdyA8IG1fZ3JpZC5zaXplKCk7ICsrcm93KSB7Ci0gICAgICAgIFJv
dyYgciA9ICptX2dyaWRbcm93XS5yb3c7CisgICAgICAgIFJvdyYgciA9IG1fZ3JpZFtyb3ddLnJv
dzsKICAgICAgICAgci5pbnNlcnQocG9zICsgMSwgQ2VsbFN0cnVjdCgpKTsKICAgICAgICAgaWYg
KHJbcG9zXS5oYXNDZWxscygpKSB7CiAgICAgICAgICAgICByW3BvcyArIDFdLmNlbGxzLmFwcGVu
ZChyW3Bvc10uY2VsbHMpOwpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlclRhYmxlU2VjdGlvbi5oIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxl
U2VjdGlvbi5oCmluZGV4IDQyNjFjYWViODY2ZDUxYTlhMGEzZTlmOTQ1NzUxYTk0ZmUzYjBmMzQu
LmY1ZTFmMTk2YWFlMTQ2ZTI5OTFlMTgxNDAxMGI2M2RkYzRjNTI3ZDMgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAorKysgYi9Tb3VyY2Uv
V2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKQEAgLTc2LDE4ICs3NiwxNyBA
QCBwdWJsaWM6CiAgICAgdHlwZWRlZiBWZWN0b3I8Q2VsbFN0cnVjdD4gUm93OwogCiAgICAgc3Ry
dWN0IFJvd1N0cnVjdCB7Ci0gICAgICAgIC8vIEZJWE1FOiBUaGlzIGZpZWxkIHNob3VsZCBiZSBh
biBPd25QdHIuCi0gICAgICAgIFJvdyogcm93OworICAgICAgICBSb3cgcm93OwogICAgICAgICBS
ZW5kZXJUYWJsZVJvdyogcm93UmVuZGVyZXI7CiAgICAgICAgIExheW91dFVuaXQgYmFzZWxpbmU7
CiAgICAgICAgIExlbmd0aCBsb2dpY2FsSGVpZ2h0OwogICAgIH07CiAKLSAgICBDZWxsU3RydWN0
JiBjZWxsQXQoaW50IHJvdywgIGludCBjb2wpIHsgcmV0dXJuICgqbV9ncmlkW3Jvd10ucm93KVtj
b2xdOyB9Ci0gICAgY29uc3QgQ2VsbFN0cnVjdCYgY2VsbEF0KGludCByb3csIGludCBjb2wpIGNv
bnN0IHsgcmV0dXJuICgqbV9ncmlkW3Jvd10ucm93KVtjb2xdOyB9CisgICAgQ2VsbFN0cnVjdCYg
Y2VsbEF0KGludCByb3csICBpbnQgY29sKSB7IHJldHVybiBtX2dyaWRbcm93XS5yb3dbY29sXTsg
fQorICAgIGNvbnN0IENlbGxTdHJ1Y3QmIGNlbGxBdChpbnQgcm93LCBpbnQgY29sKSBjb25zdCB7
IHJldHVybiBtX2dyaWRbcm93XS5yb3dbY29sXTsgfQogICAgIFJlbmRlclRhYmxlQ2VsbCogcHJp
bWFyeUNlbGxBdChpbnQgcm93LCBpbnQgY29sKQogICAgIHsKLSAgICAgICAgQ2VsbFN0cnVjdCYg
YyA9ICgqbV9ncmlkW3Jvd10ucm93KVtjb2xdOworICAgICAgICBDZWxsU3RydWN0JiBjID0gbV9n
cmlkW3Jvd10ucm93W2NvbF07CiAgICAgICAgIHJldHVybiBjLnByaW1hcnlDZWxsKCk7CiAgICAg
fQogCkBAIC0xNDUsNyArMTQ0LDcgQEAgcHJpdmF0ZToKICAgICB2aXJ0dWFsIGJvb2wgbm9kZUF0
UG9pbnQoY29uc3QgSGl0VGVzdFJlcXVlc3QmLCBIaXRUZXN0UmVzdWx0JiwgY29uc3QgTGF5b3V0
UG9pbnQmIHBvaW50SW5Db250YWluZXIsIGNvbnN0IExheW91dFBvaW50JiBhY2N1bXVsYXRlZE9m
ZnNldCwgSGl0VGVzdEFjdGlvbik7CiAKICAgICBib29sIGVuc3VyZVJvd3MoaW50KTsKLSAgICB2
b2lkIGNsZWFyR3JpZCgpOworICAgIHZvaWQgZmlsbFJvd3NXaXRoRGVmYXVsdFN0YXJ0aW5nQXRQ
b3NpdGlvbih1bnNpZ25lZCk7CiAKICAgICBib29sIGhhc092ZXJmbG93aW5nQ2VsbCgpIGNvbnN0
IHsgcmV0dXJuIG1fb3ZlcmZsb3dpbmdDZWxscy5zaXplKCkgfHwgbV9mb3JjZVNsb3dQYWludFBh
dGhXaXRoT3ZlcmZsb3dpbmdDZWxsOyB9CiAK
</data>

          </attachment>
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112879</attachid>
            <date>2011-10-28 09:43:26 -0700</date>
            <delta_ts>2011-10-28 10:40:07 -0700</delta_ts>
            <desc>Patch for EWS analysis.</desc>
            <filename>bug-71056-20111028094325.patch</filename>
            <type>text/plain</type>
            <size>10672</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3MjgKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCAzNGM0ODQ0MDExNWZiNTFk
MWNhZDM1YmQwODYyY2ExYTQxMzFlMTZhLi4yZWI4MDM1ZDFiZmRlYWM0OTczNjNhNDk0NzhkODE5
YWY1Y2JhYzE0IDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMTAtMjggIEp1bGll
biBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuZGVyVGFi
bGVTZWN0aW9uOjpyZWNhbGNDZWxscyBzaG91bGQgbm90IGZyZWUgaXRzIGdyaWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDU2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgUmVmYWN0b3Jpbmcgb25seSwg
bm8gY2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgIHI5ODYxNCBoYWQgdGhlIGJhZCBzaWRl
IGVmZmVjdCBvZiBjbGVhcmluZyB0aGUgcm93IHZlY3RvciAobV9ncmlkKSBvbgorICAgICAgICB0
aGUgUmVuZGVyVGFibGVTZWN0aW9uIHdoZW4gZG9pbmcgYSByZWNhbGNDZWxscy4gVGhpcyBjaGFu
Z2UgcmVtb3ZlcyB0aGUKKyAgICAgICAgdW5uZWVkZWQgZnJlZSBhbmQgaW5saW5lIHRoZSB8cm93
fCBmaWVsZCBpbnRvIHRoZSBSb3dTdHJ1Y3QgYXMgaXQgbWFkZQorICAgICAgICBubyBzZW5zZSB0
byBoYXZlIGl0IGFzIGEgcG9pbnRlci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJs
ZVNlY3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0Um93TG9naWNhbEhlaWdodFRvUm93
U3R5bGVMb2dpY2FsSGVpZ2h0SWZOb3RSZWxhdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZVNlY3Rpb246OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxl
U2VjdGlvbjo6c2V0Q2VsbExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVy
VGFibGVTZWN0aW9uOjpjYWxjUm93TG9naWNhbEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpS
ZW5kZXJUYWJsZVNlY3Rpb246OmZpcnN0TGluZUJveEJhc2VsaW5lKToKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6YXBwZW5kQ29sdW1uKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRhYmxlU2VjdGlvbjo6c3BsaXRDb2x1bW4pOgorICAgICAgICBNZWNoYW5pY2FsIGNo
YW5nZXMgbm93IHRoYXQgfHJvd3wgaXMgYSBtZW1iZXIgb2YgUm93U3RydWN0LgorCisgICAgICAg
IChXZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246On5SZW5kZXJUYWJsZVNlY3Rpb24pOiBDbGVh
ciBvdXIgcm93IHZlY3Rvci4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9u
OjplbnN1cmVSb3dzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6cmVj
YWxjQ2VsbHMpOgorICAgICAgICBUaG9zZSAyIGZ1bmN0aW9ucyB3ZXJlIHJlZmFjdG9yZWQgdG8g
dXNlIGZpbGxSb3dzV2l0aERlZmF1bHRTdGFydGluZ0F0UG9zaXRpb24uCisKKyAgICAgICAgKFdl
YkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6ZmlsbFJvd3NXaXRoRGVmYXVsdFN0YXJ0aW5nQXRQ
b3NpdGlvbik6CisgICAgICAgIEZhY3RvcmVkIHRoZSBjb2RlIHRvIGZpbGwgdGhlIFJvd1N0cnVj
dCBzdHJ1Y3R1cmUgd2l0aCBkZWZhdWx0IHZhbHVlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9S
ZW5kZXJUYWJsZVNlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlv
bjo6Y2VsbEF0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6cHJpbWFy
eUNlbGxBdCk6CisgICAgICAgIE1vcmUgbWVjaGFuaWNhbCBjaGFuZ2UgYWZ0ZXIgdGhlIHxyb3d8
IGZpZWxkIGNoYW5nZS4KKwogMjAxMS0xMC0yOCAgUGF2ZWwgRmVsZG1hbiAgPHBmZWxkbWFuQGdv
b2dsZS5jb20+CiAKICAgICAgICAgUmVzZXQgbGluZSBudW1iZXJzIGZvciBzY3JpcHRzIGdlbmVy
YXRlZCB3aXRoIGRvY3VtZW50LndyaXRlLgpkaWZmIC0tZ2l0IGEvU291cmNlL1dlYkNvcmUvcmVu
ZGVyaW5nL1JlbmRlclRhYmxlU2VjdGlvbi5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcv
UmVuZGVyVGFibGVTZWN0aW9uLmNwcAppbmRleCAwZjg0MzRlYzE1NWE5MTI1MjQxYjRjY2Q4NDhl
N2MzYTBmMDY3YmYyLi41NTU2ODdjNTFlYTM0MTJmZmUzYzg0Y2RmYTljNTU3NmJmZDc2MzZhIDEw
MDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNw
cAorKysgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmNwcApA
QCAtNDgsMTIgKzQ4LDEyIEBAIHVzaW5nIG5hbWVzcGFjZSBIVE1MTmFtZXM7CiBzdGF0aWMgdW5z
aWduZWQgZ01pblRhYmxlU2l6ZVRvVXNlRmFzdFBhaW50UGF0aFdpdGhPdmVyZmxvd2luZ0NlbGwg
PSA3NSAqIDc1Owogc3RhdGljIGZsb2F0IGdNYXhBbGxvd2VkT3ZlcmZsb3dpbmdDZWxsUmF0aW9G
b3JGYXN0UGFpbnRQYXRoID0gMC4xZjsKIAotc3RhdGljIGlubGluZSB2b2lkIHNldFJvd0xvZ2lj
YWxIZWlnaHRUb1Jvd1N0eWxlTG9naWNhbEhlaWdodElmTm90UmVsYXRpdmUoUmVuZGVyVGFibGVT
ZWN0aW9uOjpSb3dTdHJ1Y3QqIHJvdykKK3N0YXRpYyBpbmxpbmUgdm9pZCBzZXRSb3dMb2dpY2Fs
SGVpZ2h0VG9Sb3dTdHlsZUxvZ2ljYWxIZWlnaHRJZk5vdFJlbGF0aXZlKFJlbmRlclRhYmxlU2Vj
dGlvbjo6Um93U3RydWN0JiByb3cpCiB7Ci0gICAgQVNTRVJUKHJvdyAmJiByb3ctPnJvd1JlbmRl
cmVyKTsKLSAgICByb3ctPmxvZ2ljYWxIZWlnaHQgPSByb3ctPnJvd1JlbmRlcmVyLT5zdHlsZSgp
LT5sb2dpY2FsSGVpZ2h0KCk7Ci0gICAgaWYgKHJvdy0+bG9naWNhbEhlaWdodC5pc1JlbGF0aXZl
KCkpCi0gICAgICAgIHJvdy0+bG9naWNhbEhlaWdodCA9IExlbmd0aCgpOworICAgIEFTU0VSVChy
b3cucm93UmVuZGVyZXIpOworICAgIHJvdy5sb2dpY2FsSGVpZ2h0ID0gcm93LnJvd1JlbmRlcmVy
LT5zdHlsZSgpLT5sb2dpY2FsSGVpZ2h0KCk7CisgICAgaWYgKHJvdy5sb2dpY2FsSGVpZ2h0Lmlz
UmVsYXRpdmUoKSkKKyAgICAgICAgcm93LmxvZ2ljYWxIZWlnaHQgPSBMZW5ndGgoKTsKIH0KIAog
UmVuZGVyVGFibGVTZWN0aW9uOjpSZW5kZXJUYWJsZVNlY3Rpb24oTm9kZSogbm9kZSkKQEAgLTcz
LDcgKzczLDYgQEAgUmVuZGVyVGFibGVTZWN0aW9uOjpSZW5kZXJUYWJsZVNlY3Rpb24oTm9kZSog
bm9kZSkKIAogUmVuZGVyVGFibGVTZWN0aW9uOjp+UmVuZGVyVGFibGVTZWN0aW9uKCkKIHsKLSAg
ICBjbGVhckdyaWQoKTsKIH0KIAogdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246OnN0eWxlRGlkQ2hh
bmdlKFN0eWxlRGlmZmVyZW5jZSBkaWZmLCBjb25zdCBSZW5kZXJTdHlsZSogb2xkU3R5bGUpCkBA
IC0xNTgsNyArMTU3LDcgQEAgdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246OmFkZENoaWxkKFJlbmRl
ck9iamVjdCogY2hpbGQsIFJlbmRlck9iamVjdCogYmVmb3JlQ2hpbGQKICAgICBtX2dyaWRbaW5z
ZXJ0aW9uUm93XS5yb3dSZW5kZXJlciA9IHRvUmVuZGVyVGFibGVSb3coY2hpbGQpOwogCiAgICAg
aWYgKCFiZWZvcmVDaGlsZCkKLSAgICAgICAgc2V0Um93TG9naWNhbEhlaWdodFRvUm93U3R5bGVM
b2dpY2FsSGVpZ2h0SWZOb3RSZWxhdGl2ZSgmbV9ncmlkW2luc2VydGlvblJvd10pOworICAgICAg
ICBzZXRSb3dMb2dpY2FsSGVpZ2h0VG9Sb3dTdHlsZUxvZ2ljYWxIZWlnaHRJZk5vdFJlbGF0aXZl
KG1fZ3JpZFtpbnNlcnRpb25Sb3ddKTsKIAogICAgIC8vIElmIHRoZSBuZXh0IHJlbmRlcmVyIGlz
IGFjdHVhbGx5IHdyYXBwZWQgaW4gYW4gYW5vbnltb3VzIHRhYmxlIHJvdywgd2UgbmVlZCB0byBn
byB1cCBhbmQgZmluZCB0aGF0LgogICAgIHdoaWxlIChiZWZvcmVDaGlsZCAmJiBiZWZvcmVDaGls
ZC0+cGFyZW50KCkgIT0gdGhpcykKQEAgLTE4NCwxNCArMTgzLDcgQEAgYm9vbCBSZW5kZXJUYWJs
ZVNlY3Rpb246OmVuc3VyZVJvd3ModW5zaWduZWQgbnVtUm93cykKIAogICAgICAgICB1bnNpZ25l
ZCBvbGRTaXplID0gbV9ncmlkLnNpemUoKTsKICAgICAgICAgbV9ncmlkLmdyb3cobnVtUm93cyk7
Ci0KLSAgICAgICAgdW5zaWduZWQgbkNvbHMgPSBtYXgoMXUsIHRhYmxlKCktPm51bUVmZkNvbHMo
KSk7Ci0gICAgICAgIGZvciAodW5zaWduZWQgciA9IG9sZFNpemU7IHIgPCBudW1Sb3dzOyByKysp
IHsKLSAgICAgICAgICAgIG1fZ3JpZFtyXS5yb3cgPSBuZXcgUm93KG5Db2xzKTsKLSAgICAgICAg
ICAgIG1fZ3JpZFtyXS5yb3dSZW5kZXJlciA9IDA7Ci0gICAgICAgICAgICBtX2dyaWRbcl0uYmFz
ZWxpbmUgPSAwOwotICAgICAgICAgICAgbV9ncmlkW3JdLmxvZ2ljYWxIZWlnaHQgPSBMZW5ndGgo
KTsKLSAgICAgICAgfQorICAgICAgICBmaWxsUm93c1dpdGhEZWZhdWx0U3RhcnRpbmdBdFBvc2l0
aW9uKG9sZFNpemUpOwogICAgIH0KIAogICAgIHJldHVybiB0cnVlOwpAQCAtMjgzLDcgKzI3NSw3
IEBAIHZvaWQgUmVuZGVyVGFibGVTZWN0aW9uOjpzZXRDZWxsTG9naWNhbFdpZHRocygpCiAgICAg
TGF5b3V0U3RhdGVNYWludGFpbmVyIHN0YXRlUHVzaGVyKHZpZXcoKSk7CiAKICAgICBmb3IgKHVu
c2lnbmVkIGkgPSAwOyBpIDwgbV9ncmlkLnNpemUoKTsgaSsrKSB7Ci0gICAgICAgIFJvdyYgcm93
ID0gKm1fZ3JpZFtpXS5yb3c7CisgICAgICAgIFJvdyYgcm93ID0gbV9ncmlkW2ldLnJvdzsKICAg
ICAgICAgdW5zaWduZWQgY29scyA9IHJvdy5zaXplKCk7CiAgICAgICAgIGZvciAodW5zaWduZWQg
aiA9IDA7IGogPCBjb2xzOyBqKyspIHsKICAgICAgICAgICAgIENlbGxTdHJ1Y3QmIGN1cnJlbnQg
PSByb3dbal07CkBAIC0zNDQsOCArMzM2LDggQEAgTGF5b3V0VW5pdCBSZW5kZXJUYWJsZVNlY3Rp
b246OmNhbGNSb3dMb2dpY2FsSGVpZ2h0KCkKIAogICAgICAgICBtX3Jvd1Bvc1tyICsgMV0gPSBt
YXgobV9yb3dQb3NbciArIDFdLCBwb3MpOwogCi0gICAgICAgIFJvdyogcm93ID0gbV9ncmlkW3Jd
LnJvdzsKLSAgICAgICAgdW5zaWduZWQgdG90YWxDb2xzID0gcm93LT5zaXplKCk7CisgICAgICAg
IFJvdyYgcm93ID0gbV9ncmlkW3JdLnJvdzsKKyAgICAgICAgdW5zaWduZWQgdG90YWxDb2xzID0g
cm93LnNpemUoKTsKIAogICAgICAgICBmb3IgKHVuc2lnbmVkIGMgPSAwOyBjIDwgdG90YWxDb2xz
OyBjKyspIHsKICAgICAgICAgICAgIENlbGxTdHJ1Y3QmIGN1cnJlbnQgPSBjZWxsQXQociwgYyk7
CkBAIC05MjAsMTAgKzkxMiwxMCBAQCBMYXlvdXRVbml0IFJlbmRlclRhYmxlU2VjdGlvbjo6Zmly
c3RMaW5lQm94QmFzZWxpbmUoKSBjb25zdAogICAgICAgICByZXR1cm4gZmlyc3RMaW5lQmFzZWxp
bmUgKyBtX3Jvd1Bvc1swXTsKIAogICAgIGZpcnN0TGluZUJhc2VsaW5lID0gLTE7Ci0gICAgUm93
KiBmaXJzdFJvdyA9IG1fZ3JpZFswXS5yb3c7Ci0gICAgZm9yIChzaXplX3QgaSA9IDA7IGkgPCBm
aXJzdFJvdy0+c2l6ZSgpOyArK2kpIHsKLSAgICAgICAgQ2VsbFN0cnVjdCYgY3MgPSBmaXJzdFJv
dy0+YXQoaSk7Ci0gICAgICAgIFJlbmRlclRhYmxlQ2VsbCogY2VsbCA9IGNzLnByaW1hcnlDZWxs
KCk7CisgICAgY29uc3QgUm93JiBmaXJzdFJvdyA9IG1fZ3JpZFswXS5yb3c7CisgICAgZm9yIChz
aXplX3QgaSA9IDA7IGkgPCBmaXJzdFJvdy5zaXplKCk7ICsraSkgeworICAgICAgICBjb25zdCBD
ZWxsU3RydWN0JiBjcyA9IGZpcnN0Um93LmF0KGkpOworICAgICAgICBjb25zdCBSZW5kZXJUYWJs
ZUNlbGwqIGNlbGwgPSBjcy5wcmltYXJ5Q2VsbCgpOwogICAgICAgICBpZiAoY2VsbCkKICAgICAg
ICAgICAgIGZpcnN0TGluZUJhc2VsaW5lID0gbWF4KGZpcnN0TGluZUJhc2VsaW5lLCBjZWxsLT5s
b2dpY2FsVG9wKCkgKyBjZWxsLT5wYWRkaW5nQmVmb3JlKCkgKyBjZWxsLT5ib3JkZXJCZWZvcmUo
KSArIGNlbGwtPmNvbnRlbnRMb2dpY2FsSGVpZ2h0KCkpOwogICAgIH0KQEAgLTExMjgsMTIgKzEx
MjAsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6cmVjYWxjQ2VsbHMoKQogewogICAgIG1f
Y0NvbCA9IDA7CiAgICAgbV9jUm93ID0gMDsKLSAgICB1bnNpZ25lZCBjYXBhY2l0eSA9IG1fZ3Jp
ZC5zaXplKCk7Ci0gICAgY2xlYXJHcmlkKCk7Ci0gICAgLy8gQWx0aG91Z2ggaXQgaXMgcG9zc2li
bGUgZm9yIG91ciByb3cgY291bnQgdG8gc2hyaW5rIChkdWUgdG8gcmVtb3ZlQ2hpbGQgYmVpbmcg
Y2FsbGVkKSwKLSAgICAvLyBpdCBpcyBtb3JlIGNvbW1vbiBmb3IgdGhlIGNvdW50IHRvIHN0YXkg
dGhlIHNhbWUuIExldCdzIGp1c3QgcmVhbGxvY2F0ZSB0aGUgb2xkCi0gICAgLy8gY2FwYWNpdHkg
dXBmcm9udCB0byBhdm9pZCByZS1leHBhbmRpbmcgaXQgb25lIHJvdyBhdCBhIHRpbWUuCi0gICAg
bV9ncmlkLnJlc2VydmVDYXBhY2l0eShjYXBhY2l0eSk7CisgICAgZmlsbFJvd3NXaXRoRGVmYXVs
dFN0YXJ0aW5nQXRQb3NpdGlvbigwKTsKIAogICAgIGZvciAoUmVuZGVyT2JqZWN0KiByb3cgPSBm
aXJzdENoaWxkKCk7IHJvdzsgcm93ID0gcm93LT5uZXh0U2libGluZygpKSB7CiAgICAgICAgIGlm
IChyb3ctPmlzVGFibGVSb3coKSkgewpAQCAtMTE0NSw3ICsxMTMyLDcgQEAgdm9pZCBSZW5kZXJU
YWJsZVNlY3Rpb246OnJlY2FsY0NlbGxzKCkKICAgICAgICAgICAgIAogICAgICAgICAgICAgUmVu
ZGVyVGFibGVSb3cqIHRhYmxlUm93ID0gdG9SZW5kZXJUYWJsZVJvdyhyb3cpOwogICAgICAgICAg
ICAgbV9ncmlkW2luc2VydGlvblJvd10ucm93UmVuZGVyZXIgPSB0YWJsZVJvdzsKLSAgICAgICAg
ICAgIHNldFJvd0xvZ2ljYWxIZWlnaHRUb1Jvd1N0eWxlTG9naWNhbEhlaWdodElmTm90UmVsYXRp
dmUoJm1fZ3JpZFtpbnNlcnRpb25Sb3ddKTsKKyAgICAgICAgICAgIHNldFJvd0xvZ2ljYWxIZWln
aHRUb1Jvd1N0eWxlTG9naWNhbEhlaWdodElmTm90UmVsYXRpdmUobV9ncmlkW2luc2VydGlvblJv
d10pOwogCiAgICAgICAgICAgICBmb3IgKFJlbmRlck9iamVjdCogY2VsbCA9IHJvdy0+Zmlyc3RD
aGlsZCgpOyBjZWxsOyBjZWxsID0gY2VsbC0+bmV4dFNpYmxpbmcoKSkgewogICAgICAgICAgICAg
ICAgIGlmIChjZWxsLT5pc1RhYmxlQ2VsbCgpKQpAQCAtMTE1Myw2ICsxMTQwLDggQEAgdm9pZCBS
ZW5kZXJUYWJsZVNlY3Rpb246OnJlY2FsY0NlbGxzKCkKICAgICAgICAgICAgIH0KICAgICAgICAg
fQogICAgIH0KKworICAgIG1fZ3JpZC5zaHJpbmtUb0ZpdCgpOwogICAgIG1fbmVlZHNDZWxsUmVj
YWxjID0gZmFsc2U7CiAgICAgc2V0TmVlZHNMYXlvdXQodHJ1ZSk7CiB9CkBAIC0xMTY0LDEyICsx
MTUzLDE5IEBAIHZvaWQgUmVuZGVyVGFibGVTZWN0aW9uOjpzZXROZWVkc0NlbGxSZWNhbGMoKQog
ICAgICAgICB0LT5zZXROZWVkc1NlY3Rpb25SZWNhbGMoKTsKIH0KIAotdm9pZCBSZW5kZXJUYWJs
ZVNlY3Rpb246OmNsZWFyR3JpZCgpCit2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6ZmlsbFJvd3NX
aXRoRGVmYXVsdFN0YXJ0aW5nQXRQb3NpdGlvbih1bnNpZ25lZCBzdGFydGluZ1JvdykKIHsKLSAg
ICBmb3IgKHVuc2lnbmVkIHJvdyA9IDA7IHJvdyA8IG1fZ3JpZC5zaXplKCk7ICsrcm93KQotICAg
ICAgICBkZWxldGUgbV9ncmlkW3Jvd10ucm93OwotCi0gICAgbV9ncmlkLmNsZWFyKCk7CisgICAg
dW5zaWduZWQgZWZmZWN0aXZlQ29sdW1uQ291bnQgPSBtYXgoMXUsIHRhYmxlKCktPm51bUVmZkNv
bHMoKSk7CisgICAgZm9yICh1bnNpZ25lZCByb3cgPSBzdGFydGluZ1Jvdzsgcm93IDwgbV9ncmlk
LnNpemUoKTsgKytyb3cpIHsKKyAgICAgICAgLy8gSXQgbWF5IGJlIG1vcmUgZWZmaWNpZW50IHRv
IHJlc2V0IHRoZSBDZWxsU3RydWN0IGluZGl2aWR1YWxseSBpbnN0ZWFkIG9mIHJlYWxsb2NhdGlu
ZworICAgICAgICAvLyB0aGUgd2hvbGUgYnVmZmVyIGluIGVhY2ggUm93LCBmb3Igbm93IHRoaXMg
aXMgZ29vZCBlbm91Z2ggYW5kIHdpbGwgcHJvcGVybHkgc2hyaW5rCisgICAgICAgIC8vIHRoZSBy
b3dzIGlmIGVmZmVjdGl2ZUNvbHVtbkNvdW50IHdhcyBkZWNyZWFzZWQuCisgICAgICAgIG1fZ3Jp
ZFtyb3ddLnJvdy5jbGVhcigpOworICAgICAgICBtX2dyaWRbcm93XS5yb3cuZ3JvdyhlZmZlY3Rp
dmVDb2x1bW5Db3VudCk7CisgICAgICAgIG1fZ3JpZFtyb3ddLnJvd1JlbmRlcmVyID0gMDsKKyAg
ICAgICAgbV9ncmlkW3Jvd10uYmFzZWxpbmUgPSAwOworICAgICAgICBtX2dyaWRbcm93XS5sb2dp
Y2FsSGVpZ2h0ID0gTGVuZ3RoKCk7CisgICAgfQogfQogCiB1bnNpZ25lZCBSZW5kZXJUYWJsZVNl
Y3Rpb246Om51bUNvbHVtbnMoKSBjb25zdApAQCAtMTE5MCw3ICsxMTg2LDcgQEAgdW5zaWduZWQg
UmVuZGVyVGFibGVTZWN0aW9uOjpudW1Db2x1bW5zKCkgY29uc3QKIHZvaWQgUmVuZGVyVGFibGVT
ZWN0aW9uOjphcHBlbmRDb2x1bW4oaW50IHBvcykKIHsKICAgICBmb3IgKHVuc2lnbmVkIHJvdyA9
IDA7IHJvdyA8IG1fZ3JpZC5zaXplKCk7ICsrcm93KQotICAgICAgICBtX2dyaWRbcm93XS5yb3ct
PnJlc2l6ZShwb3MgKyAxKTsKKyAgICAgICAgbV9ncmlkW3Jvd10ucm93LnJlc2l6ZShwb3MgKyAx
KTsKIH0KIAogdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246OnNwbGl0Q29sdW1uKHVuc2lnbmVkIHBv
cywgaW50IGZpcnN0KQpAQCAtMTIwMCw3ICsxMTk2LDcgQEAgdm9pZCBSZW5kZXJUYWJsZVNlY3Rp
b246OnNwbGl0Q29sdW1uKHVuc2lnbmVkIHBvcywgaW50IGZpcnN0KQogICAgIGlmIChtX2NDb2wg
PiBwb3MpCiAgICAgICAgIG1fY0NvbCsrOwogICAgIGZvciAodW5zaWduZWQgcm93ID0gMDsgcm93
IDwgbV9ncmlkLnNpemUoKTsgKytyb3cpIHsKLSAgICAgICAgUm93JiByID0gKm1fZ3JpZFtyb3dd
LnJvdzsKKyAgICAgICAgUm93JiByID0gbV9ncmlkW3Jvd10ucm93OwogICAgICAgICByLmluc2Vy
dChwb3MgKyAxLCBDZWxsU3RydWN0KCkpOwogICAgICAgICBpZiAocltwb3NdLmhhc0NlbGxzKCkp
IHsKICAgICAgICAgICAgIHJbcG9zICsgMV0uY2VsbHMuYXBwZW5kKHJbcG9zXS5jZWxscyk7CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgg
Yi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFibGVTZWN0aW9uLmgKaW5kZXggMWY1
NDNmYTA3Y2RmMmZkZWI3ZTZjMzMzZjFiOWMzMWY4N2ExNWRhOC4uZjlmYTQ2N2ZkZTBkNGZmNjA1
NGZjMmFlYTc1NTNlZGIzYzEyNGM2MCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvcmVuZGVy
aW5nL1JlbmRlclRhYmxlU2VjdGlvbi5oCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJUYWJsZVNlY3Rpb24uaApAQCAtNzYsMTggKzc2LDE3IEBAIHB1YmxpYzoKICAgICB0eXBl
ZGVmIFZlY3RvcjxDZWxsU3RydWN0PiBSb3c7CiAKICAgICBzdHJ1Y3QgUm93U3RydWN0IHsKLSAg
ICAgICAgLy8gRklYTUU6IFRoaXMgZmllbGQgc2hvdWxkIGJlIGFuIE93blB0ci4KLSAgICAgICAg
Um93KiByb3c7CisgICAgICAgIFJvdyByb3c7CiAgICAgICAgIFJlbmRlclRhYmxlUm93KiByb3dS
ZW5kZXJlcjsKICAgICAgICAgTGF5b3V0VW5pdCBiYXNlbGluZTsKICAgICAgICAgTGVuZ3RoIGxv
Z2ljYWxIZWlnaHQ7CiAgICAgfTsKIAotICAgIENlbGxTdHJ1Y3QmIGNlbGxBdChpbnQgcm93LCAg
aW50IGNvbCkgeyByZXR1cm4gKCptX2dyaWRbcm93XS5yb3cpW2NvbF07IH0KLSAgICBjb25zdCBD
ZWxsU3RydWN0JiBjZWxsQXQoaW50IHJvdywgaW50IGNvbCkgY29uc3QgeyByZXR1cm4gKCptX2dy
aWRbcm93XS5yb3cpW2NvbF07IH0KKyAgICBDZWxsU3RydWN0JiBjZWxsQXQoaW50IHJvdywgIGlu
dCBjb2wpIHsgcmV0dXJuIG1fZ3JpZFtyb3ddLnJvd1tjb2xdOyB9CisgICAgY29uc3QgQ2VsbFN0
cnVjdCYgY2VsbEF0KGludCByb3csIGludCBjb2wpIGNvbnN0IHsgcmV0dXJuIG1fZ3JpZFtyb3dd
LnJvd1tjb2xdOyB9CiAgICAgUmVuZGVyVGFibGVDZWxsKiBwcmltYXJ5Q2VsbEF0KGludCByb3cs
IGludCBjb2wpCiAgICAgewotICAgICAgICBDZWxsU3RydWN0JiBjID0gKCptX2dyaWRbcm93XS5y
b3cpW2NvbF07CisgICAgICAgIENlbGxTdHJ1Y3QmIGMgPSBtX2dyaWRbcm93XS5yb3dbY29sXTsK
ICAgICAgICAgcmV0dXJuIGMucHJpbWFyeUNlbGwoKTsKICAgICB9CiAKQEAgLTE0NSw3ICsxNDQs
NyBAQCBwcml2YXRlOgogICAgIHZpcnR1YWwgYm9vbCBub2RlQXRQb2ludChjb25zdCBIaXRUZXN0
UmVxdWVzdCYsIEhpdFRlc3RSZXN1bHQmLCBjb25zdCBMYXlvdXRQb2ludCYgcG9pbnRJbkNvbnRh
aW5lciwgY29uc3QgTGF5b3V0UG9pbnQmIGFjY3VtdWxhdGVkT2Zmc2V0LCBIaXRUZXN0QWN0aW9u
KTsKIAogICAgIGJvb2wgZW5zdXJlUm93cyh1bnNpZ25lZCk7Ci0gICAgdm9pZCBjbGVhckdyaWQo
KTsKKyAgICB2b2lkIGZpbGxSb3dzV2l0aERlZmF1bHRTdGFydGluZ0F0UG9zaXRpb24odW5zaWdu
ZWQpOwogCiAgICAgYm9vbCBoYXNPdmVyZmxvd2luZ0NlbGwoKSBjb25zdCB7IHJldHVybiBtX292
ZXJmbG93aW5nQ2VsbHMuc2l6ZSgpIHx8IG1fZm9yY2VTbG93UGFpbnRQYXRoV2l0aE92ZXJmbG93
aW5nQ2VsbDsgfQogCg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>112881</attachid>
            <date>2011-10-28 10:40:10 -0700</date>
            <delta_ts>2011-10-28 11:04:29 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>bug-71056-20111028104009.patch</filename>
            <type>text/plain</type>
            <size>10659</size>
            <attacher name="Julien Chaffraix">jchaffraix</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogOTg3MzIKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL0No
YW5nZUxvZyBiL1NvdXJjZS9XZWJDb3JlL0NoYW5nZUxvZwppbmRleCBhYjhkYzA0ZDdiNTg1YjU5
MDMyMmIyMWI5ZTg4ZDg1NWI4OGU1Y2Q3Li40OThkNGQ0MDg3YWY5ZGZmMGU5OGNiM2UzZWM0ZTM1
ZWViN2Q0NWQwIDEwMDc1NQotLS0gYS9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKKysrIGIvU291
cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCkBAIC0xLDMgKzEsNDEgQEAKKzIwMTEtMTAtMjggIEp1bGll
biBDaGFmZnJhaXggIDxqY2hhZmZyYWl4QHdlYmtpdC5vcmc+CisKKyAgICAgICAgUmVuZGVyVGFi
bGVTZWN0aW9uOjpyZWNhbGNDZWxscyBzaG91bGQgbm90IGZyZWUgaXRzIGdyaWQKKyAgICAgICAg
aHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTcxMDU2CisKKyAgICAgICAg
UmV2aWV3ZWQgYnkgRGFyaW4gQWRsZXIuCisKKyAgICAgICAgUmVmYWN0b3Jpbmcgb25seSwgbm8g
Y2hhbmdlIGluIGJlaGF2aW9yLgorCisgICAgICAgIHI5ODYxNCBoYWQgdGhlIGJhZCBzaWRlIGVm
ZmVjdCBvZiBjbGVhcmluZyB0aGUgcm93IHZlY3RvciAobV9ncmlkKSBvbgorICAgICAgICB0aGUg
UmVuZGVyVGFibGVTZWN0aW9uIHdoZW4gZG9pbmcgYSByZWNhbGNDZWxscy4gVGhpcyBjaGFuZ2Ug
cmVtb3ZlcyB0aGUKKyAgICAgICAgdW5uZWVkZWQgZnJlZSBhbmQgaW5saW5lIHRoZSB8cm93fCBm
aWVsZCBpbnRvIHRoZSBSb3dTdHJ1Y3QgYXMgaXQgbWFkZQorICAgICAgICBubyBzZW5zZSB0byBo
YXZlIGl0IGFzIGEgcG9pbnRlci4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5kZXJUYWJsZVNl
Y3Rpb24uY3BwOgorICAgICAgICAoV2ViQ29yZTo6c2V0Um93TG9naWNhbEhlaWdodFRvUm93U3R5
bGVMb2dpY2FsSGVpZ2h0SWZOb3RSZWxhdGl2ZSk6CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJU
YWJsZVNlY3Rpb246OmFkZENoaWxkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2Vj
dGlvbjo6c2V0Q2VsbExvZ2ljYWxXaWR0aHMpOgorICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFi
bGVTZWN0aW9uOjpjYWxjUm93TG9naWNhbEhlaWdodCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJUYWJsZVNlY3Rpb246OmZpcnN0TGluZUJveEJhc2VsaW5lKToKKyAgICAgICAgKFdlYkNvcmU6
OlJlbmRlclRhYmxlU2VjdGlvbjo6YXBwZW5kQ29sdW1uKToKKyAgICAgICAgKFdlYkNvcmU6OlJl
bmRlclRhYmxlU2VjdGlvbjo6c3BsaXRDb2x1bW4pOgorICAgICAgICBNZWNoYW5pY2FsIGNoYW5n
ZXMgbm93IHRoYXQgfHJvd3wgaXMgYSBtZW1iZXIgb2YgUm93U3RydWN0LgorCisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJUYWJsZVNlY3Rpb246On5SZW5kZXJUYWJsZVNlY3Rpb24pOiBDbGVhciBv
dXIgcm93IHZlY3Rvci4KKworICAgICAgICAoV2ViQ29yZTo6UmVuZGVyVGFibGVTZWN0aW9uOjpl
bnN1cmVSb3dzKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6cmVjYWxj
Q2VsbHMpOgorICAgICAgICBUaG9zZSAyIGZ1bmN0aW9ucyB3ZXJlIHJlZmFjdG9yZWQgdG8gdXNl
IGZpbGxSb3dzV2l0aERlZmF1bHRTdGFydGluZ0F0UG9zaXRpb24uCisKKyAgICAgICAgKFdlYkNv
cmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6ZmlsbFJvd3NXaXRoRGVmYXVsdFN0YXJ0aW5nQXRQb3Np
dGlvbik6CisgICAgICAgIEZhY3RvcmVkIHRoZSBjb2RlIHRvIGZpbGwgdGhlIFJvd1N0cnVjdCBz
dHJ1Y3R1cmUgd2l0aCBkZWZhdWx0IHZhbHVlcy4KKworICAgICAgICAqIHJlbmRlcmluZy9SZW5k
ZXJUYWJsZVNlY3Rpb24uaDoKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6
Y2VsbEF0KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlclRhYmxlU2VjdGlvbjo6cHJpbWFyeUNl
bGxBdCk6CisgICAgICAgIE1vcmUgbWVjaGFuaWNhbCBjaGFuZ2UgYWZ0ZXIgdGhlIHxyb3d8IGZp
ZWxkIGNoYW5nZS4KKwogMjAxMS0xMC0yMiAgUGhpbGlwcGUgTm9ybWFuZCAgPHBub3JtYW5kQGln
YWxpYS5jb20+CiAKICAgICAgICAgW0dUS10gQnVpbGQgZml4ZXMgZm9yIGdsaWIgMi4zMSAoY3Vy
cmVudCBtYXN0ZXIpCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVy
VGFibGVTZWN0aW9uLmNwcCBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNl
Y3Rpb24uY3BwCmluZGV4IDBmODQzNGVjMTU1YTkxMjUyNDFiNGNjZDg0OGU3YzNhMGYwNjdiZjIu
LjU1NTY4N2M1MWVhMzQxMmZmZTNjODRjZGZhOWM1NTc2YmZkNzYzNmEgMTAwNjQ0Ci0tLSBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCisrKyBiL1NvdXJj
ZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uY3BwCkBAIC00OCwxMiArNDgs
MTIgQEAgdXNpbmcgbmFtZXNwYWNlIEhUTUxOYW1lczsKIHN0YXRpYyB1bnNpZ25lZCBnTWluVGFi
bGVTaXplVG9Vc2VGYXN0UGFpbnRQYXRoV2l0aE92ZXJmbG93aW5nQ2VsbCA9IDc1ICogNzU7CiBz
dGF0aWMgZmxvYXQgZ01heEFsbG93ZWRPdmVyZmxvd2luZ0NlbGxSYXRpb0ZvckZhc3RQYWludFBh
dGggPSAwLjFmOwogCi1zdGF0aWMgaW5saW5lIHZvaWQgc2V0Um93TG9naWNhbEhlaWdodFRvUm93
U3R5bGVMb2dpY2FsSGVpZ2h0SWZOb3RSZWxhdGl2ZShSZW5kZXJUYWJsZVNlY3Rpb246OlJvd1N0
cnVjdCogcm93KQorc3RhdGljIGlubGluZSB2b2lkIHNldFJvd0xvZ2ljYWxIZWlnaHRUb1Jvd1N0
eWxlTG9naWNhbEhlaWdodElmTm90UmVsYXRpdmUoUmVuZGVyVGFibGVTZWN0aW9uOjpSb3dTdHJ1
Y3QmIHJvdykKIHsKLSAgICBBU1NFUlQocm93ICYmIHJvdy0+cm93UmVuZGVyZXIpOwotICAgIHJv
dy0+bG9naWNhbEhlaWdodCA9IHJvdy0+cm93UmVuZGVyZXItPnN0eWxlKCktPmxvZ2ljYWxIZWln
aHQoKTsKLSAgICBpZiAocm93LT5sb2dpY2FsSGVpZ2h0LmlzUmVsYXRpdmUoKSkKLSAgICAgICAg
cm93LT5sb2dpY2FsSGVpZ2h0ID0gTGVuZ3RoKCk7CisgICAgQVNTRVJUKHJvdy5yb3dSZW5kZXJl
cik7CisgICAgcm93LmxvZ2ljYWxIZWlnaHQgPSByb3cucm93UmVuZGVyZXItPnN0eWxlKCktPmxv
Z2ljYWxIZWlnaHQoKTsKKyAgICBpZiAocm93LmxvZ2ljYWxIZWlnaHQuaXNSZWxhdGl2ZSgpKQor
ICAgICAgICByb3cubG9naWNhbEhlaWdodCA9IExlbmd0aCgpOwogfQogCiBSZW5kZXJUYWJsZVNl
Y3Rpb246OlJlbmRlclRhYmxlU2VjdGlvbihOb2RlKiBub2RlKQpAQCAtNzMsNyArNzMsNiBAQCBS
ZW5kZXJUYWJsZVNlY3Rpb246OlJlbmRlclRhYmxlU2VjdGlvbihOb2RlKiBub2RlKQogCiBSZW5k
ZXJUYWJsZVNlY3Rpb246On5SZW5kZXJUYWJsZVNlY3Rpb24oKQogewotICAgIGNsZWFyR3JpZCgp
OwogfQogCiB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6c3R5bGVEaWRDaGFuZ2UoU3R5bGVEaWZm
ZXJlbmNlIGRpZmYsIGNvbnN0IFJlbmRlclN0eWxlKiBvbGRTdHlsZSkKQEAgLTE1OCw3ICsxNTcs
NyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6YWRkQ2hpbGQoUmVuZGVyT2JqZWN0KiBjaGls
ZCwgUmVuZGVyT2JqZWN0KiBiZWZvcmVDaGlsZAogICAgIG1fZ3JpZFtpbnNlcnRpb25Sb3ddLnJv
d1JlbmRlcmVyID0gdG9SZW5kZXJUYWJsZVJvdyhjaGlsZCk7CiAKICAgICBpZiAoIWJlZm9yZUNo
aWxkKQotICAgICAgICBzZXRSb3dMb2dpY2FsSGVpZ2h0VG9Sb3dTdHlsZUxvZ2ljYWxIZWlnaHRJ
Zk5vdFJlbGF0aXZlKCZtX2dyaWRbaW5zZXJ0aW9uUm93XSk7CisgICAgICAgIHNldFJvd0xvZ2lj
YWxIZWlnaHRUb1Jvd1N0eWxlTG9naWNhbEhlaWdodElmTm90UmVsYXRpdmUobV9ncmlkW2luc2Vy
dGlvblJvd10pOwogCiAgICAgLy8gSWYgdGhlIG5leHQgcmVuZGVyZXIgaXMgYWN0dWFsbHkgd3Jh
cHBlZCBpbiBhbiBhbm9ueW1vdXMgdGFibGUgcm93LCB3ZSBuZWVkIHRvIGdvIHVwIGFuZCBmaW5k
IHRoYXQuCiAgICAgd2hpbGUgKGJlZm9yZUNoaWxkICYmIGJlZm9yZUNoaWxkLT5wYXJlbnQoKSAh
PSB0aGlzKQpAQCAtMTg0LDE0ICsxODMsNyBAQCBib29sIFJlbmRlclRhYmxlU2VjdGlvbjo6ZW5z
dXJlUm93cyh1bnNpZ25lZCBudW1Sb3dzKQogCiAgICAgICAgIHVuc2lnbmVkIG9sZFNpemUgPSBt
X2dyaWQuc2l6ZSgpOwogICAgICAgICBtX2dyaWQuZ3JvdyhudW1Sb3dzKTsKLQotICAgICAgICB1
bnNpZ25lZCBuQ29scyA9IG1heCgxdSwgdGFibGUoKS0+bnVtRWZmQ29scygpKTsKLSAgICAgICAg
Zm9yICh1bnNpZ25lZCByID0gb2xkU2l6ZTsgciA8IG51bVJvd3M7IHIrKykgewotICAgICAgICAg
ICAgbV9ncmlkW3JdLnJvdyA9IG5ldyBSb3cobkNvbHMpOwotICAgICAgICAgICAgbV9ncmlkW3Jd
LnJvd1JlbmRlcmVyID0gMDsKLSAgICAgICAgICAgIG1fZ3JpZFtyXS5iYXNlbGluZSA9IDA7Ci0g
ICAgICAgICAgICBtX2dyaWRbcl0ubG9naWNhbEhlaWdodCA9IExlbmd0aCgpOwotICAgICAgICB9
CisgICAgICAgIGZpbGxSb3dzV2l0aERlZmF1bHRTdGFydGluZ0F0UG9zaXRpb24ob2xkU2l6ZSk7
CiAgICAgfQogCiAgICAgcmV0dXJuIHRydWU7CkBAIC0yODMsNyArMjc1LDcgQEAgdm9pZCBSZW5k
ZXJUYWJsZVNlY3Rpb246OnNldENlbGxMb2dpY2FsV2lkdGhzKCkKICAgICBMYXlvdXRTdGF0ZU1h
aW50YWluZXIgc3RhdGVQdXNoZXIodmlldygpKTsKIAogICAgIGZvciAodW5zaWduZWQgaSA9IDA7
IGkgPCBtX2dyaWQuc2l6ZSgpOyBpKyspIHsKLSAgICAgICAgUm93JiByb3cgPSAqbV9ncmlkW2ld
LnJvdzsKKyAgICAgICAgUm93JiByb3cgPSBtX2dyaWRbaV0ucm93OwogICAgICAgICB1bnNpZ25l
ZCBjb2xzID0gcm93LnNpemUoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBqID0gMDsgaiA8IGNv
bHM7IGorKykgewogICAgICAgICAgICAgQ2VsbFN0cnVjdCYgY3VycmVudCA9IHJvd1tqXTsKQEAg
LTM0NCw4ICszMzYsOCBAQCBMYXlvdXRVbml0IFJlbmRlclRhYmxlU2VjdGlvbjo6Y2FsY1Jvd0xv
Z2ljYWxIZWlnaHQoKQogCiAgICAgICAgIG1fcm93UG9zW3IgKyAxXSA9IG1heChtX3Jvd1Bvc1ty
ICsgMV0sIHBvcyk7CiAKLSAgICAgICAgUm93KiByb3cgPSBtX2dyaWRbcl0ucm93OwotICAgICAg
ICB1bnNpZ25lZCB0b3RhbENvbHMgPSByb3ctPnNpemUoKTsKKyAgICAgICAgUm93JiByb3cgPSBt
X2dyaWRbcl0ucm93OworICAgICAgICB1bnNpZ25lZCB0b3RhbENvbHMgPSByb3cuc2l6ZSgpOwog
CiAgICAgICAgIGZvciAodW5zaWduZWQgYyA9IDA7IGMgPCB0b3RhbENvbHM7IGMrKykgewogICAg
ICAgICAgICAgQ2VsbFN0cnVjdCYgY3VycmVudCA9IGNlbGxBdChyLCBjKTsKQEAgLTkyMCwxMCAr
OTEyLDEwIEBAIExheW91dFVuaXQgUmVuZGVyVGFibGVTZWN0aW9uOjpmaXJzdExpbmVCb3hCYXNl
bGluZSgpIGNvbnN0CiAgICAgICAgIHJldHVybiBmaXJzdExpbmVCYXNlbGluZSArIG1fcm93UG9z
WzBdOwogCiAgICAgZmlyc3RMaW5lQmFzZWxpbmUgPSAtMTsKLSAgICBSb3cqIGZpcnN0Um93ID0g
bV9ncmlkWzBdLnJvdzsKLSAgICBmb3IgKHNpemVfdCBpID0gMDsgaSA8IGZpcnN0Um93LT5zaXpl
KCk7ICsraSkgewotICAgICAgICBDZWxsU3RydWN0JiBjcyA9IGZpcnN0Um93LT5hdChpKTsKLSAg
ICAgICAgUmVuZGVyVGFibGVDZWxsKiBjZWxsID0gY3MucHJpbWFyeUNlbGwoKTsKKyAgICBjb25z
dCBSb3cmIGZpcnN0Um93ID0gbV9ncmlkWzBdLnJvdzsKKyAgICBmb3IgKHNpemVfdCBpID0gMDsg
aSA8IGZpcnN0Um93LnNpemUoKTsgKytpKSB7CisgICAgICAgIGNvbnN0IENlbGxTdHJ1Y3QmIGNz
ID0gZmlyc3RSb3cuYXQoaSk7CisgICAgICAgIGNvbnN0IFJlbmRlclRhYmxlQ2VsbCogY2VsbCA9
IGNzLnByaW1hcnlDZWxsKCk7CiAgICAgICAgIGlmIChjZWxsKQogICAgICAgICAgICAgZmlyc3RM
aW5lQmFzZWxpbmUgPSBtYXgoZmlyc3RMaW5lQmFzZWxpbmUsIGNlbGwtPmxvZ2ljYWxUb3AoKSAr
IGNlbGwtPnBhZGRpbmdCZWZvcmUoKSArIGNlbGwtPmJvcmRlckJlZm9yZSgpICsgY2VsbC0+Y29u
dGVudExvZ2ljYWxIZWlnaHQoKSk7CiAgICAgfQpAQCAtMTEyOCwxMiArMTEyMCw3IEBAIHZvaWQg
UmVuZGVyVGFibGVTZWN0aW9uOjpyZWNhbGNDZWxscygpCiB7CiAgICAgbV9jQ29sID0gMDsKICAg
ICBtX2NSb3cgPSAwOwotICAgIHVuc2lnbmVkIGNhcGFjaXR5ID0gbV9ncmlkLnNpemUoKTsKLSAg
ICBjbGVhckdyaWQoKTsKLSAgICAvLyBBbHRob3VnaCBpdCBpcyBwb3NzaWJsZSBmb3Igb3VyIHJv
dyBjb3VudCB0byBzaHJpbmsgKGR1ZSB0byByZW1vdmVDaGlsZCBiZWluZyBjYWxsZWQpLAotICAg
IC8vIGl0IGlzIG1vcmUgY29tbW9uIGZvciB0aGUgY291bnQgdG8gc3RheSB0aGUgc2FtZS4gTGV0
J3MganVzdCByZWFsbG9jYXRlIHRoZSBvbGQKLSAgICAvLyBjYXBhY2l0eSB1cGZyb250IHRvIGF2
b2lkIHJlLWV4cGFuZGluZyBpdCBvbmUgcm93IGF0IGEgdGltZS4KLSAgICBtX2dyaWQucmVzZXJ2
ZUNhcGFjaXR5KGNhcGFjaXR5KTsKKyAgICBmaWxsUm93c1dpdGhEZWZhdWx0U3RhcnRpbmdBdFBv
c2l0aW9uKDApOwogCiAgICAgZm9yIChSZW5kZXJPYmplY3QqIHJvdyA9IGZpcnN0Q2hpbGQoKTsg
cm93OyByb3cgPSByb3ctPm5leHRTaWJsaW5nKCkpIHsKICAgICAgICAgaWYgKHJvdy0+aXNUYWJs
ZVJvdygpKSB7CkBAIC0xMTQ1LDcgKzExMzIsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6
cmVjYWxjQ2VsbHMoKQogICAgICAgICAgICAgCiAgICAgICAgICAgICBSZW5kZXJUYWJsZVJvdyog
dGFibGVSb3cgPSB0b1JlbmRlclRhYmxlUm93KHJvdyk7CiAgICAgICAgICAgICBtX2dyaWRbaW5z
ZXJ0aW9uUm93XS5yb3dSZW5kZXJlciA9IHRhYmxlUm93OwotICAgICAgICAgICAgc2V0Um93TG9n
aWNhbEhlaWdodFRvUm93U3R5bGVMb2dpY2FsSGVpZ2h0SWZOb3RSZWxhdGl2ZSgmbV9ncmlkW2lu
c2VydGlvblJvd10pOworICAgICAgICAgICAgc2V0Um93TG9naWNhbEhlaWdodFRvUm93U3R5bGVM
b2dpY2FsSGVpZ2h0SWZOb3RSZWxhdGl2ZShtX2dyaWRbaW5zZXJ0aW9uUm93XSk7CiAKICAgICAg
ICAgICAgIGZvciAoUmVuZGVyT2JqZWN0KiBjZWxsID0gcm93LT5maXJzdENoaWxkKCk7IGNlbGw7
IGNlbGwgPSBjZWxsLT5uZXh0U2libGluZygpKSB7CiAgICAgICAgICAgICAgICAgaWYgKGNlbGwt
PmlzVGFibGVDZWxsKCkpCkBAIC0xMTUzLDYgKzExNDAsOCBAQCB2b2lkIFJlbmRlclRhYmxlU2Vj
dGlvbjo6cmVjYWxjQ2VsbHMoKQogICAgICAgICAgICAgfQogICAgICAgICB9CiAgICAgfQorCisg
ICAgbV9ncmlkLnNocmlua1RvRml0KCk7CiAgICAgbV9uZWVkc0NlbGxSZWNhbGMgPSBmYWxzZTsK
ICAgICBzZXROZWVkc0xheW91dCh0cnVlKTsKIH0KQEAgLTExNjQsMTIgKzExNTMsMTkgQEAgdm9p
ZCBSZW5kZXJUYWJsZVNlY3Rpb246OnNldE5lZWRzQ2VsbFJlY2FsYygpCiAgICAgICAgIHQtPnNl
dE5lZWRzU2VjdGlvblJlY2FsYygpOwogfQogCi12b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6Y2xl
YXJHcmlkKCkKK3ZvaWQgUmVuZGVyVGFibGVTZWN0aW9uOjpmaWxsUm93c1dpdGhEZWZhdWx0U3Rh
cnRpbmdBdFBvc2l0aW9uKHVuc2lnbmVkIHN0YXJ0aW5nUm93KQogewotICAgIGZvciAodW5zaWdu
ZWQgcm93ID0gMDsgcm93IDwgbV9ncmlkLnNpemUoKTsgKytyb3cpCi0gICAgICAgIGRlbGV0ZSBt
X2dyaWRbcm93XS5yb3c7Ci0KLSAgICBtX2dyaWQuY2xlYXIoKTsKKyAgICB1bnNpZ25lZCBlZmZl
Y3RpdmVDb2x1bW5Db3VudCA9IG1heCgxdSwgdGFibGUoKS0+bnVtRWZmQ29scygpKTsKKyAgICBm
b3IgKHVuc2lnbmVkIHJvdyA9IHN0YXJ0aW5nUm93OyByb3cgPCBtX2dyaWQuc2l6ZSgpOyArK3Jv
dykgeworICAgICAgICAvLyBJdCBtYXkgYmUgbW9yZSBlZmZpY2llbnQgdG8gcmVzZXQgdGhlIENl
bGxTdHJ1Y3QgaW5kaXZpZHVhbGx5IGluc3RlYWQgb2YgcmVhbGxvY2F0aW5nCisgICAgICAgIC8v
IHRoZSB3aG9sZSBidWZmZXIgaW4gZWFjaCBSb3csIGZvciBub3cgdGhpcyBpcyBnb29kIGVub3Vn
aCBhbmQgd2lsbCBwcm9wZXJseSBzaHJpbmsKKyAgICAgICAgLy8gdGhlIHJvd3MgaWYgZWZmZWN0
aXZlQ29sdW1uQ291bnQgd2FzIGRlY3JlYXNlZC4KKyAgICAgICAgbV9ncmlkW3Jvd10ucm93LmNs
ZWFyKCk7CisgICAgICAgIG1fZ3JpZFtyb3ddLnJvdy5ncm93KGVmZmVjdGl2ZUNvbHVtbkNvdW50
KTsKKyAgICAgICAgbV9ncmlkW3Jvd10ucm93UmVuZGVyZXIgPSAwOworICAgICAgICBtX2dyaWRb
cm93XS5iYXNlbGluZSA9IDA7CisgICAgICAgIG1fZ3JpZFtyb3ddLmxvZ2ljYWxIZWlnaHQgPSBM
ZW5ndGgoKTsKKyAgICB9CiB9CiAKIHVuc2lnbmVkIFJlbmRlclRhYmxlU2VjdGlvbjo6bnVtQ29s
dW1ucygpIGNvbnN0CkBAIC0xMTkwLDcgKzExODYsNyBAQCB1bnNpZ25lZCBSZW5kZXJUYWJsZVNl
Y3Rpb246Om51bUNvbHVtbnMoKSBjb25zdAogdm9pZCBSZW5kZXJUYWJsZVNlY3Rpb246OmFwcGVu
ZENvbHVtbihpbnQgcG9zKQogewogICAgIGZvciAodW5zaWduZWQgcm93ID0gMDsgcm93IDwgbV9n
cmlkLnNpemUoKTsgKytyb3cpCi0gICAgICAgIG1fZ3JpZFtyb3ddLnJvdy0+cmVzaXplKHBvcyAr
IDEpOworICAgICAgICBtX2dyaWRbcm93XS5yb3cucmVzaXplKHBvcyArIDEpOwogfQogCiB2b2lk
IFJlbmRlclRhYmxlU2VjdGlvbjo6c3BsaXRDb2x1bW4odW5zaWduZWQgcG9zLCBpbnQgZmlyc3Qp
CkBAIC0xMjAwLDcgKzExOTYsNyBAQCB2b2lkIFJlbmRlclRhYmxlU2VjdGlvbjo6c3BsaXRDb2x1
bW4odW5zaWduZWQgcG9zLCBpbnQgZmlyc3QpCiAgICAgaWYgKG1fY0NvbCA+IHBvcykKICAgICAg
ICAgbV9jQ29sKys7CiAgICAgZm9yICh1bnNpZ25lZCByb3cgPSAwOyByb3cgPCBtX2dyaWQuc2l6
ZSgpOyArK3JvdykgewotICAgICAgICBSb3cmIHIgPSAqbV9ncmlkW3Jvd10ucm93OworICAgICAg
ICBSb3cmIHIgPSBtX2dyaWRbcm93XS5yb3c7CiAgICAgICAgIHIuaW5zZXJ0KHBvcyArIDEsIENl
bGxTdHJ1Y3QoKSk7CiAgICAgICAgIGlmIChyW3Bvc10uaGFzQ2VsbHMoKSkgewogICAgICAgICAg
ICAgcltwb3MgKyAxXS5jZWxscy5hcHBlbmQocltwb3NdLmNlbGxzKTsKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9XZWJDb3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaCBiL1NvdXJjZS9XZWJD
b3JlL3JlbmRlcmluZy9SZW5kZXJUYWJsZVNlY3Rpb24uaAppbmRleCAxZjU0M2ZhMDdjZGYyZmRl
YjdlNmMzMzNmMWI5YzMxZjg3YTE1ZGE4Li5mOWZhNDY3ZmRlMGQ0ZmY2MDU0ZmMyYWVhNzU1M2Vk
YjNjMTI0YzYwIDEwMDY0NAotLS0gYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyVGFi
bGVTZWN0aW9uLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1JlbmRlclRhYmxlU2Vj
dGlvbi5oCkBAIC03NiwxOCArNzYsMTcgQEAgcHVibGljOgogICAgIHR5cGVkZWYgVmVjdG9yPENl
bGxTdHJ1Y3Q+IFJvdzsKIAogICAgIHN0cnVjdCBSb3dTdHJ1Y3QgewotICAgICAgICAvLyBGSVhN
RTogVGhpcyBmaWVsZCBzaG91bGQgYmUgYW4gT3duUHRyLgotICAgICAgICBSb3cqIHJvdzsKKyAg
ICAgICAgUm93IHJvdzsKICAgICAgICAgUmVuZGVyVGFibGVSb3cqIHJvd1JlbmRlcmVyOwogICAg
ICAgICBMYXlvdXRVbml0IGJhc2VsaW5lOwogICAgICAgICBMZW5ndGggbG9naWNhbEhlaWdodDsK
ICAgICB9OwogCi0gICAgQ2VsbFN0cnVjdCYgY2VsbEF0KGludCByb3csICBpbnQgY29sKSB7IHJl
dHVybiAoKm1fZ3JpZFtyb3ddLnJvdylbY29sXTsgfQotICAgIGNvbnN0IENlbGxTdHJ1Y3QmIGNl
bGxBdChpbnQgcm93LCBpbnQgY29sKSBjb25zdCB7IHJldHVybiAoKm1fZ3JpZFtyb3ddLnJvdylb
Y29sXTsgfQorICAgIENlbGxTdHJ1Y3QmIGNlbGxBdChpbnQgcm93LCAgaW50IGNvbCkgeyByZXR1
cm4gbV9ncmlkW3Jvd10ucm93W2NvbF07IH0KKyAgICBjb25zdCBDZWxsU3RydWN0JiBjZWxsQXQo
aW50IHJvdywgaW50IGNvbCkgY29uc3QgeyByZXR1cm4gbV9ncmlkW3Jvd10ucm93W2NvbF07IH0K
ICAgICBSZW5kZXJUYWJsZUNlbGwqIHByaW1hcnlDZWxsQXQoaW50IHJvdywgaW50IGNvbCkKICAg
ICB7Ci0gICAgICAgIENlbGxTdHJ1Y3QmIGMgPSAoKm1fZ3JpZFtyb3ddLnJvdylbY29sXTsKKyAg
ICAgICAgQ2VsbFN0cnVjdCYgYyA9IG1fZ3JpZFtyb3ddLnJvd1tjb2xdOwogICAgICAgICByZXR1
cm4gYy5wcmltYXJ5Q2VsbCgpOwogICAgIH0KIApAQCAtMTQ1LDcgKzE0NCw3IEBAIHByaXZhdGU6
CiAgICAgdmlydHVhbCBib29sIG5vZGVBdFBvaW50KGNvbnN0IEhpdFRlc3RSZXF1ZXN0JiwgSGl0
VGVzdFJlc3VsdCYsIGNvbnN0IExheW91dFBvaW50JiBwb2ludEluQ29udGFpbmVyLCBjb25zdCBM
YXlvdXRQb2ludCYgYWNjdW11bGF0ZWRPZmZzZXQsIEhpdFRlc3RBY3Rpb24pOwogCiAgICAgYm9v
bCBlbnN1cmVSb3dzKHVuc2lnbmVkKTsKLSAgICB2b2lkIGNsZWFyR3JpZCgpOworICAgIHZvaWQg
ZmlsbFJvd3NXaXRoRGVmYXVsdFN0YXJ0aW5nQXRQb3NpdGlvbih1bnNpZ25lZCk7CiAKICAgICBi
b29sIGhhc092ZXJmbG93aW5nQ2VsbCgpIGNvbnN0IHsgcmV0dXJuIG1fb3ZlcmZsb3dpbmdDZWxs
cy5zaXplKCkgfHwgbV9mb3JjZVNsb3dQYWludFBhdGhXaXRoT3ZlcmZsb3dpbmdDZWxsOyB9CiAK
</data>

          </attachment>
      

    </bug>

</bugzilla>