<?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>154336</bug_id>
          
          <creation_ts>2016-02-17 05:39:53 -0800</creation_ts>
          <short_desc>[css-grid] Avoid duplicated calls to resolution code</short_desc>
          <delta_ts>2016-02-23 10:17:16 -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>Layout and Rendering</component>
          <version>WebKit 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>
          
          <blocked>153488</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Manuel Rego Casasnovas">rego</reporter>
          <assigned_to name="Manuel Rego Casasnovas">rego</assigned_to>
          <cc>commit-queue</cc>
    
    <cc>esprehn+autocc</cc>
    
    <cc>glenn</cc>
    
    <cc>jfernandez</cc>
    
    <cc>kondapallykalyan</cc>
    
    <cc>rego</cc>
    
    <cc>simon.fraser</cc>
    
    <cc>svillar</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1165563</commentid>
    <comment_count>0</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-02-17 05:39:53 -0800</bug_when>
    <thetext>We&apos;re calling several times per item to the same methods in order to resolve the grid positions over an over.

Now that GridSpan doesn&apos;t have pointers anymore, we could just call the resolution code once and store it in the GridCoordinates cache.

This is a port from Blink of https://codereview.chromium.org/1465153004/</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1165564</commentid>
    <comment_count>1</comment_count>
      <attachid>271550</attachid>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-02-17 05:46:51 -0800</bug_when>
    <thetext>Created attachment 271550
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167410</commentid>
    <comment_count>2</comment_count>
      <attachid>271550</attachid>
    <who name="Sergio Villar Senin">svillar</who>
    <bug_when>2016-02-23 08:58:25 -0800</bug_when>
    <thetext>Comment on attachment 271550
Patch

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

Nice change

&gt; Source/WebCore/rendering/RenderGrid.cpp:1184
&gt; +    for (RenderBox* child = m_orderIterator.first(); child; child = m_orderIterator.next()) {

Perhaps not for this patch but we should make OrderIterator a stl iterator-like class so that instead of first() and next() we have begin() and end() and we could do things like

for (auto child : m_orderIterator)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167423</commentid>
    <comment_count>3</comment_count>
    <who name="Manuel Rego Casasnovas">rego</who>
    <bug_when>2016-02-23 09:30:03 -0800</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 271550 [details]
&gt; Patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=271550&amp;action=review
&gt; 
&gt; Nice change

Thanks for the review!

&gt; &gt; Source/WebCore/rendering/RenderGrid.cpp:1184
&gt; &gt; +    for (RenderBox* child = m_orderIterator.first(); child; child = m_orderIterator.next()) {
&gt; 
&gt; Perhaps not for this patch but we should make OrderIterator a stl
&gt; iterator-like class so that instead of first() and next() we have begin()
&gt; and end() and we could do things like
&gt; 
&gt; for (auto child : m_orderIterator)

Note down in bug #154590.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167449</commentid>
    <comment_count>4</comment_count>
      <attachid>271550</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-23 10:17:12 -0800</bug_when>
    <thetext>Comment on attachment 271550
Patch

Clearing flags on attachment: 271550

Committed r196983: &lt;http://trac.webkit.org/changeset/196983&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1167450</commentid>
    <comment_count>5</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2016-02-23 10:17:16 -0800</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>271550</attachid>
            <date>2016-02-17 05:46:51 -0800</date>
            <delta_ts>2016-02-23 10:17:12 -0800</delta_ts>
            <desc>Patch</desc>
            <filename>bug-154336-20160217144630.patch</filename>
            <type>text/plain</type>
            <size>10237</size>
            <attacher name="Manuel Rego Casasnovas">rego</attacher>
            
              <data encoding="base64">U3VidmVyc2lvbiBSZXZpc2lvbjogMTk2NjkxCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9D
aGFuZ2VMb2cgYi9Tb3VyY2UvV2ViQ29yZS9DaGFuZ2VMb2cKaW5kZXggMmRhYzVmNjE4OThjNGFj
YTIzZDVjMjc2ZjkzMGRlZTAzMzgxMDJiOS4uMDU4OTVlNDk5YTBhODhjZDNmOTNhMmI5YjMyOTU4
NGY1YjUxYzZjZCAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUvQ2hhbmdlTG9nCisrKyBiL1Nv
dXJjZS9XZWJDb3JlL0NoYW5nZUxvZwpAQCAtMSw1ICsxLDMzIEBACiAyMDE2LTAyLTE3ICBNYW51
ZWwgUmVnbyBDYXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgogCisgICAgICAgIFtjc3MtZ3Jp
ZF0gQXZvaWQgZHVwbGljYXRlZCBjYWxscyB0byByZXNvbHV0aW9uIGNvZGUKKyAgICAgICAgaHR0
cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1NDMzNgorCisgICAgICAgIFJl
dmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFdlIHdlcmUgY2FsbGluZyBHcmlk
UmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoKQorICAgICAg
ICBzZXZlcmFsIHRpbWVzIHBlciBpdGVtLgorCisgICAgICAgIFdlIGNhbiBzdG9yZSB0aGUgR3Jp
ZENvb3JkaW5hdGVzIGluCisgICAgICAgIFJlbmRlckdyaWQ6OnBvcHVsYXRlRXhwbGljaXRHcmlk
QW5kT3JkZXJJdGVyYXRvcigpCisgICAgICAgIGFuZCByZXVzZSB0aGVtIGluIHRoZSBwbGFjZW1l
bnQgY29kZS4KKyAgICAgICAgT25jZSBSZW5kZXJHcmlkOjpwbGFjZUl0ZW1zT25HcmlkKCkgaXMg
b3ZlciwKKyAgICAgICAgYWxsIHRoZSBpdGVtcyB3aWxsIGhhdmUgYSBkZWZpbml0ZSBwb3NpdGlv
biBpbiBib3RoIGF4aXMuCisKKyAgICAgICAgTm8gbmV3IHRlc3RzLCBubyBjaGFuZ2Ugb2YgYmVo
YXZpb3IuCisKKyAgICAgICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHA6CisgICAgICAgIChX
ZWJDb3JlOjpSZW5kZXJHcmlkOjppbnNlcnRJdGVtSW50b0dyaWQpOgorICAgICAgICAoV2ViQ29y
ZTo6UmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZCk6CisgICAgICAgIChXZWJDb3JlOjpSZW5k
ZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IpOgorICAgICAgICAo
V2ViQ29yZTo6UmVuZGVyR3JpZDo6cGxhY2VTcGVjaWZpZWRNYWpvckF4aXNJdGVtc09uR3JpZCk6
CisgICAgICAgIChXZWJDb3JlOjpSZW5kZXJHcmlkOjpwbGFjZUF1dG9NYWpvckF4aXNJdGVtT25H
cmlkKToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNhY2hlZEdyaWRDb29yZGluYXRl
KToKKyAgICAgICAgKFdlYkNvcmU6OlJlbmRlckdyaWQ6OmNhY2hlZEdyaWRTcGFuKToKKyAgICAg
ICAgKiByZW5kZXJpbmcvUmVuZGVyR3JpZC5oOgorCisyMDE2LTAyLTE3ICBNYW51ZWwgUmVnbyBD
YXNhc25vdmFzICA8cmVnb0BpZ2FsaWEuY29tPgorCiAgICAgICAgIFtjc3MtZ3JpZF0gR3JpZFNw
YW4gcmVmYWN0b3JpbmcKICAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcu
Y2dpP2lkPTE1Mzg2OAogCmRpZmYgLS1naXQgYS9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVu
ZGVyR3JpZC5jcHAgYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5jcHAKaW5k
ZXggMmE0YzM1OTRhNjU0YjA5MGZkOTcwNmExMWNiM2FjYWNiOGYxNGRjMS4uYmU3Mzg5Mzc5Y2Q4
OTZjZWFmMmM1MWFhOWRjYjE2ODllZTc2MmJlYyAxMDA2NDQKLS0tIGEvU291cmNlL1dlYkNvcmUv
cmVuZGVyaW5nL1JlbmRlckdyaWQuY3BwCisrKyBiL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmluZy9S
ZW5kZXJHcmlkLmNwcApAQCAtMTEzOCwxMyArMTEzOCwxMyBAQCB2b2lkIFJlbmRlckdyaWQ6OmVu
c3VyZUdyaWRTaXplKHVuc2lnbmVkIG1heGltdW1Sb3dTaXplLCB1bnNpZ25lZCBtYXhpbXVtQ29s
dW1uUwogCiB2b2lkIFJlbmRlckdyaWQ6Omluc2VydEl0ZW1JbnRvR3JpZChSZW5kZXJCb3gmIGNo
aWxkLCBjb25zdCBHcmlkQ29vcmRpbmF0ZSYgY29vcmRpbmF0ZSkKIHsKKyAgICBBU1NFUlQoY29v
cmRpbmF0ZS5yb3dzLmlzRGVmaW5pdGUoKSAmJiBjb29yZGluYXRlLmNvbHVtbnMuaXNEZWZpbml0
ZSgpKTsKICAgICBlbnN1cmVHcmlkU2l6ZShjb29yZGluYXRlLnJvd3MucmVzb2x2ZWRGaW5hbFBv
c2l0aW9uKCkudG9JbnQoKSwgY29vcmRpbmF0ZS5jb2x1bW5zLnJlc29sdmVkRmluYWxQb3NpdGlv
bigpLnRvSW50KCkpOwogCiAgICAgZm9yIChhdXRvJiByb3cgOiBjb29yZGluYXRlLnJvd3MpIHsK
ICAgICAgICAgZm9yIChhdXRvJiBjb2x1bW4gOiBjb29yZGluYXRlLmNvbHVtbnMpCiAgICAgICAg
ICAgICBtX2dyaWRbcm93LnRvSW50KCldW2NvbHVtbi50b0ludCgpXS5hcHBlbmQoJmNoaWxkKTsK
ICAgICB9Ci0gICAgbV9ncmlkSXRlbUNvb3JkaW5hdGUuc2V0KCZjaGlsZCwgY29vcmRpbmF0ZSk7
CiB9CiAKIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZCgpCkBAIC0xMTYwLDE5ICsx
MTYwLDE4IEBAIHZvaWQgUmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZCgpCiAgICAgICAgIGlm
IChjaGlsZC0+aXNPdXRPZkZsb3dQb3NpdGlvbmVkKCkpCiAgICAgICAgICAgICBjb250aW51ZTsK
IAotICAgICAgICBHcmlkU3BhbiByb3dQb3NpdGlvbnMgPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgKmNoaWxkLCBGb3JSb3dzKTsK
LSAgICAgICAgR3JpZFNwYW4gY29sdW1uUG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246
OnJlc29sdmVHcmlkUG9zaXRpb25zRnJvbVN0eWxlKHN0eWxlKCksICpjaGlsZCwgRm9yQ29sdW1u
cyk7CisgICAgICAgIEdyaWRDb29yZGluYXRlIGNvb3JkaW5hdGUgPSBjYWNoZWRHcmlkQ29vcmRp
bmF0ZSgqY2hpbGQpOwogCi0gICAgICAgIGlmICghcm93UG9zaXRpb25zLmlzRGVmaW5pdGUoKSB8
fCAhY29sdW1uUG9zaXRpb25zLmlzRGVmaW5pdGUoKSkgeworICAgICAgICBpZiAoIWNvb3JkaW5h
dGUucm93cy5pc0RlZmluaXRlKCkgfHwgIWNvb3JkaW5hdGUuY29sdW1ucy5pc0RlZmluaXRlKCkp
IHsKICAgICAgICAgICAgIGJvb2wgbWFqb3JBeGlzRGlyZWN0aW9uSXNGb3JDb2x1bW5zID0gYXV0
b1BsYWNlbWVudE1ham9yQXhpc0RpcmVjdGlvbigpID09IEZvckNvbHVtbnM7Ci0gICAgICAgICAg
ICBpZiAoKG1ham9yQXhpc0RpcmVjdGlvbklzRm9yQ29sdW1ucyAmJiAhY29sdW1uUG9zaXRpb25z
LmlzRGVmaW5pdGUoKSkKLSAgICAgICAgICAgICAgICB8fCAoIW1ham9yQXhpc0RpcmVjdGlvbklz
Rm9yQ29sdW1ucyAmJiAhcm93UG9zaXRpb25zLmlzRGVmaW5pdGUoKSkpCisgICAgICAgICAgICBp
ZiAoKG1ham9yQXhpc0RpcmVjdGlvbklzRm9yQ29sdW1ucyAmJiAhY29vcmRpbmF0ZS5jb2x1bW5z
LmlzRGVmaW5pdGUoKSkKKyAgICAgICAgICAgICAgICB8fCAoIW1ham9yQXhpc0RpcmVjdGlvbklz
Rm9yQ29sdW1ucyAmJiAhY29vcmRpbmF0ZS5yb3dzLmlzRGVmaW5pdGUoKSkpCiAgICAgICAgICAg
ICAgICAgYXV0b01ham9yQXhpc0F1dG9HcmlkSXRlbXMuYXBwZW5kKGNoaWxkKTsKICAgICAgICAg
ICAgIGVsc2UKICAgICAgICAgICAgICAgICBzcGVjaWZpZWRNYWpvckF4aXNBdXRvR3JpZEl0ZW1z
LmFwcGVuZChjaGlsZCk7CiAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgfQotICAgICAg
ICBpbnNlcnRJdGVtSW50b0dyaWQoKmNoaWxkLCBHcmlkQ29vcmRpbmF0ZShyb3dQb3NpdGlvbnMs
IGNvbHVtblBvc2l0aW9ucykpOworICAgICAgICBpbnNlcnRJdGVtSW50b0dyaWQoKmNoaWxkLCBH
cmlkQ29vcmRpbmF0ZShjb29yZGluYXRlLnJvd3MsIGNvb3JkaW5hdGUuY29sdW1ucykpOwogICAg
IH0KIAogICAgIEFTU0VSVChncmlkUm93Q291bnQoKSA+PSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6
ZXhwbGljaXRHcmlkUm93Q291bnQoc3R5bGUoKSkpOwpAQCAtMTE4MCw2ICsxMTc5LDE2IEBAIHZv
aWQgUmVuZGVyR3JpZDo6cGxhY2VJdGVtc09uR3JpZCgpCiAKICAgICBwbGFjZVNwZWNpZmllZE1h
am9yQXhpc0l0ZW1zT25HcmlkKHNwZWNpZmllZE1ham9yQXhpc0F1dG9HcmlkSXRlbXMpOwogICAg
IHBsYWNlQXV0b01ham9yQXhpc0l0ZW1zT25HcmlkKGF1dG9NYWpvckF4aXNBdXRvR3JpZEl0ZW1z
KTsKKworI2lmIEVOQUJMRShBU1NFUlQpCisgICAgZm9yIChSZW5kZXJCb3gqIGNoaWxkID0gbV9v
cmRlckl0ZXJhdG9yLmZpcnN0KCk7IGNoaWxkOyBjaGlsZCA9IG1fb3JkZXJJdGVyYXRvci5uZXh0
KCkpIHsKKyAgICAgICAgaWYgKGNoaWxkLT5pc091dE9mRmxvd1Bvc2l0aW9uZWQoKSkKKyAgICAg
ICAgICAgIGNvbnRpbnVlOworCisgICAgICAgIEdyaWRDb29yZGluYXRlIGNvb3JkaW5hdGUgPSBj
YWNoZWRHcmlkQ29vcmRpbmF0ZSgqY2hpbGQpOworICAgICAgICBBU1NFUlQoY29vcmRpbmF0ZS5y
b3dzLmlzRGVmaW5pdGUoKSAmJiBjb29yZGluYXRlLmNvbHVtbnMuaXNEZWZpbml0ZSgpKTsKKyAg
ICB9CisjZW5kaWYKIH0KIAogdm9pZCBSZW5kZXJHcmlkOjpwb3B1bGF0ZUV4cGxpY2l0R3JpZEFu
ZE9yZGVySXRlcmF0b3IoKQpAQCAtMTIxMSw2ICsxMjIwLDggQEAgdm9pZCBSZW5kZXJHcmlkOjpw
b3B1bGF0ZUV4cGxpY2l0R3JpZEFuZE9yZGVySXRlcmF0b3IoKQogICAgICAgICAgICAgR3JpZFNw
YW4gcG9zaXRpb25zID0gR3JpZFJlc29sdmVkUG9zaXRpb246OnJlc29sdmVHcmlkUG9zaXRpb25z
RnJvbUF1dG9QbGFjZW1lbnRQb3NpdGlvbihzdHlsZSgpLCAqY2hpbGQsIEZvckNvbHVtbnMsIEdy
aWRSZXNvbHZlZFBvc2l0aW9uKDApKTsKICAgICAgICAgICAgIG1heGltdW1Db2x1bW5JbmRleCA9
IHN0ZDo6bWF4KG1heGltdW1Db2x1bW5JbmRleCwgcG9zaXRpb25zLnJlc29sdmVkRmluYWxQb3Np
dGlvbigpLnRvSW50KCkpOwogICAgICAgICB9CisKKyAgICAgICAgbV9ncmlkSXRlbUNvb3JkaW5h
dGUuc2V0KGNoaWxkLCBHcmlkQ29vcmRpbmF0ZShyb3dQb3NpdGlvbnMsIGNvbHVtblBvc2l0aW9u
cykpOwogICAgIH0KIAogICAgIG1fZ3JpZC5ncm93KG1heGltdW1Sb3dJbmRleCk7CkBAIC0xMjM3
LDggKzEyNDgsOSBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JBeGlzSXRl
bXNPbkdyaWQoY29uc3QgVmVjdG9yPFJlbmRlckJveCo+JiBhdQogICAgIEhhc2hNYXA8dW5zaWdu
ZWQsIHVuc2lnbmVkLCBEZWZhdWx0SGFzaDx1bnNpZ25lZD46Okhhc2gsIFdURjo6VW5zaWduZWRX
aXRoWmVyb0tleUhhc2hUcmFpdHM8dW5zaWduZWQ+PiBtaW5vckF4aXNDdXJzb3JzOwogCiAgICAg
Zm9yIChhdXRvJiBhdXRvR3JpZEl0ZW0gOiBhdXRvR3JpZEl0ZW1zKSB7Ci0gICAgICAgIEdyaWRT
cGFuIG1ham9yQXhpc1Bvc2l0aW9ucyA9IEdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNvbHZlR3Jp
ZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCAqYXV0b0dyaWRJdGVtLCBhdXRvUGxhY2VtZW50
TWFqb3JBeGlzRGlyZWN0aW9uKCkpOworICAgICAgICBHcmlkU3BhbiBtYWpvckF4aXNQb3NpdGlv
bnMgPSBjYWNoZWRHcmlkU3BhbigqYXV0b0dyaWRJdGVtLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlz
RGlyZWN0aW9uKCkpOwogICAgICAgICBBU1NFUlQobWFqb3JBeGlzUG9zaXRpb25zLmlzRGVmaW5p
dGUoKSk7CisgICAgICAgIEFTU0VSVCghY2FjaGVkR3JpZFNwYW4oKmF1dG9HcmlkSXRlbSwgYXV0
b1BsYWNlbWVudE1pbm9yQXhpc0RpcmVjdGlvbigpKS5pc0RlZmluaXRlKCkpOwogICAgICAgICBH
cmlkU3BhbiBtaW5vckF4aXNQb3NpdGlvbnMgPSBHcmlkUmVzb2x2ZWRQb3NpdGlvbjo6cmVzb2x2
ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9uKHN0eWxlKCksICphdXRvR3Jp
ZEl0ZW0sIGF1dG9QbGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSwgR3JpZFJlc29sdmVkUG9z
aXRpb24oMCkpOwogICAgICAgICB1bnNpZ25lZCBtYWpvckF4aXNJbml0aWFsUG9zaXRpb24gPSBt
YWpvckF4aXNQb3NpdGlvbnMucmVzb2x2ZWRJbml0aWFsUG9zaXRpb24oKS50b0ludCgpOwogCkBA
IC0xMjQ2LDYgKzEyNTgsOCBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlU3BlY2lmaWVkTWFqb3JB
eGlzSXRlbXNPbkdyaWQoY29uc3QgVmVjdG9yPFJlbmRlckJveCo+JiBhdQogICAgICAgICBzdGQ6
OnVuaXF1ZV9wdHI8R3JpZENvb3JkaW5hdGU+IGVtcHR5R3JpZEFyZWEgPSBpdGVyYXRvci5uZXh0
RW1wdHlHcmlkQXJlYShtYWpvckF4aXNQb3NpdGlvbnMuaW50ZWdlclNwYW4oKSwgbWlub3JBeGlz
UG9zaXRpb25zLmludGVnZXJTcGFuKCkpOwogICAgICAgICBpZiAoIWVtcHR5R3JpZEFyZWEpCiAg
ICAgICAgICAgICBlbXB0eUdyaWRBcmVhID0gY3JlYXRlRW1wdHlHcmlkQXJlYUF0U3BlY2lmaWVk
UG9zaXRpb25zT3V0c2lkZUdyaWQoKmF1dG9HcmlkSXRlbSwgYXV0b1BsYWNlbWVudE1ham9yQXhp
c0RpcmVjdGlvbigpLCBtYWpvckF4aXNQb3NpdGlvbnMpOworCisgICAgICAgIG1fZ3JpZEl0ZW1D
b29yZGluYXRlLnNldChhdXRvR3JpZEl0ZW0sICplbXB0eUdyaWRBcmVhKTsKICAgICAgICAgaW5z
ZXJ0SXRlbUludG9HcmlkKCphdXRvR3JpZEl0ZW0sICplbXB0eUdyaWRBcmVhKTsKIAogICAgICAg
ICBpZiAoIWlzR3JpZEF1dG9GbG93RGVuc2UpCkBAIC0xMjcwLDcgKzEyODQsNyBAQCB2b2lkIFJl
bmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1zT25HcmlkKGNvbnN0IFZlY3RvcjxSZW5k
ZXJCb3gqPiYgYXV0b0dyaQogCiB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0
ZW1PbkdyaWQoUmVuZGVyQm94JiBncmlkSXRlbSwgQXV0b1BsYWNlbWVudEN1cnNvciYgYXV0b1Bs
YWNlbWVudEN1cnNvcikKIHsKLSAgICBBU1NFUlQoIUdyaWRSZXNvbHZlZFBvc2l0aW9uOjpyZXNv
bHZlR3JpZFBvc2l0aW9uc0Zyb21TdHlsZShzdHlsZSgpLCBncmlkSXRlbSwgYXV0b1BsYWNlbWVu
dE1ham9yQXhpc0RpcmVjdGlvbigpKS5pc0RlZmluaXRlKCkpOworICAgIEFTU0VSVCghY2FjaGVk
R3JpZFNwYW4oZ3JpZEl0ZW0sIGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSkuaXNE
ZWZpbml0ZSgpKTsKICAgICBHcmlkU3BhbiBtYWpvckF4aXNQb3NpdGlvbnMgPSBHcmlkUmVzb2x2
ZWRQb3NpdGlvbjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tQXV0b1BsYWNlbWVudFBvc2l0aW9u
KHN0eWxlKCksIGdyaWRJdGVtLCBhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCksIEdy
aWRSZXNvbHZlZFBvc2l0aW9uKDApKTsKIAogICAgIGNvbnN0IHVuc2lnbmVkIGVuZE9mTWFqb3JB
eGlzID0gKGF1dG9QbGFjZW1lbnRNYWpvckF4aXNEaXJlY3Rpb24oKSA9PSBGb3JDb2x1bW5zKSA/
IGdyaWRDb2x1bW5Db3VudCgpIDogZ3JpZFJvd0NvdW50KCk7CkBAIC0xMjc4LDcgKzEyOTIsNyBA
QCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1PbkdyaWQoUmVuZGVyQm94
JiBncmlkSXRlbSwgQXV0b1BsYWNlbWVudAogICAgIHVuc2lnbmVkIG1pbm9yQXhpc0F1dG9QbGFj
ZW1lbnRDdXJzb3IgPSBhdXRvUGxhY2VtZW50TWFqb3JBeGlzRGlyZWN0aW9uKCkgPT0gRm9yQ29s
dW1ucyA/IGF1dG9QbGFjZW1lbnRDdXJzb3IuZmlyc3QgOiBhdXRvUGxhY2VtZW50Q3Vyc29yLnNl
Y29uZDsKIAogICAgIHN0ZDo6dW5pcXVlX3B0cjxHcmlkQ29vcmRpbmF0ZT4gZW1wdHlHcmlkQXJl
YTsKLSAgICBHcmlkU3BhbiBtaW5vckF4aXNQb3NpdGlvbnMgPSBHcmlkUmVzb2x2ZWRQb3NpdGlv
bjo6cmVzb2x2ZUdyaWRQb3NpdGlvbnNGcm9tU3R5bGUoc3R5bGUoKSwgZ3JpZEl0ZW0sIGF1dG9Q
bGFjZW1lbnRNaW5vckF4aXNEaXJlY3Rpb24oKSk7CisgICAgR3JpZFNwYW4gbWlub3JBeGlzUG9z
aXRpb25zID0gY2FjaGVkR3JpZFNwYW4oZ3JpZEl0ZW0sIGF1dG9QbGFjZW1lbnRNaW5vckF4aXNE
aXJlY3Rpb24oKSk7CiAgICAgaWYgKG1pbm9yQXhpc1Bvc2l0aW9ucy5pc0RlZmluaXRlKCkpIHsK
ICAgICAgICAgLy8gTW92ZSB0byB0aGUgbmV4dCB0cmFjayBpbiBtYWpvciBheGlzIGlmIGluaXRp
YWwgcG9zaXRpb24gaW4gbWlub3IgYXhpcyBpcyBiZWZvcmUgYXV0by1wbGFjZW1lbnQgY3Vyc29y
LgogICAgICAgICBpZiAobWlub3JBeGlzUG9zaXRpb25zLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9u
KCkudG9JbnQoKSA8IG1pbm9yQXhpc0F1dG9QbGFjZW1lbnRDdXJzb3IpCkBAIC0xMzE4LDYgKzEz
MzIsNyBAQCB2b2lkIFJlbmRlckdyaWQ6OnBsYWNlQXV0b01ham9yQXhpc0l0ZW1PbkdyaWQoUmVu
ZGVyQm94JiBncmlkSXRlbSwgQXV0b1BsYWNlbWVudAogICAgICAgICAgICAgZW1wdHlHcmlkQXJl
YSA9IGNyZWF0ZUVtcHR5R3JpZEFyZWFBdFNwZWNpZmllZFBvc2l0aW9uc091dHNpZGVHcmlkKGdy
aWRJdGVtLCBhdXRvUGxhY2VtZW50TWlub3JBeGlzRGlyZWN0aW9uKCksIG1pbm9yQXhpc1Bvc2l0
aW9ucyk7CiAgICAgfQogCisgICAgbV9ncmlkSXRlbUNvb3JkaW5hdGUuc2V0KCZncmlkSXRlbSwg
KmVtcHR5R3JpZEFyZWEpOwogICAgIGluc2VydEl0ZW1JbnRvR3JpZChncmlkSXRlbSwgKmVtcHR5
R3JpZEFyZWEpOwogICAgIGF1dG9QbGFjZW1lbnRDdXJzb3IuZmlyc3QgPSBlbXB0eUdyaWRBcmVh
LT5yb3dzLnJlc29sdmVkSW5pdGlhbFBvc2l0aW9uKCkudG9JbnQoKTsKICAgICBhdXRvUGxhY2Vt
ZW50Q3Vyc29yLnNlY29uZCA9IGVtcHR5R3JpZEFyZWEtPmNvbHVtbnMucmVzb2x2ZWRJbml0aWFs
UG9zaXRpb24oKS50b0ludCgpOwpAQCAtMTUwNiwxMCArMTUyMSwxNSBAQCB2b2lkIFJlbmRlckdy
aWQ6Om9mZnNldEFuZEJyZWFkdGhGb3JQb3NpdGlvbmVkQ2hpbGQoY29uc3QgUmVuZGVyQm94JiBj
aGlsZCwgR3JpZAogICAgIH0KIH0KIAotR3JpZFNwYW4gUmVuZGVyR3JpZDo6Y2FjaGVkR3JpZFNw
YW4oY29uc3QgUmVuZGVyQm94JiBncmlkSXRlbSwgR3JpZFRyYWNrU2l6aW5nRGlyZWN0aW9uIGRp
cmVjdGlvbikgY29uc3QKK0dyaWRDb29yZGluYXRlIFJlbmRlckdyaWQ6OmNhY2hlZEdyaWRDb29y
ZGluYXRlKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0pIGNvbnN0CiB7CiAgICAgQVNTRVJUKG1f
Z3JpZEl0ZW1Db29yZGluYXRlLmNvbnRhaW5zKCZncmlkSXRlbSkpOwotICAgIEdyaWRDb29yZGlu
YXRlIGNvb3JkaW5hdGUgPSBtX2dyaWRJdGVtQ29vcmRpbmF0ZS5nZXQoJmdyaWRJdGVtKTsKKyAg
ICByZXR1cm4gbV9ncmlkSXRlbUNvb3JkaW5hdGUuZ2V0KCZncmlkSXRlbSk7Cit9CisKK0dyaWRT
cGFuIFJlbmRlckdyaWQ6OmNhY2hlZEdyaWRTcGFuKGNvbnN0IFJlbmRlckJveCYgZ3JpZEl0ZW0s
IEdyaWRUcmFja1NpemluZ0RpcmVjdGlvbiBkaXJlY3Rpb24pIGNvbnN0Cit7CisgICAgR3JpZENv
b3JkaW5hdGUgY29vcmRpbmF0ZSA9IGNhY2hlZEdyaWRDb29yZGluYXRlKGdyaWRJdGVtKTsKICAg
ICByZXR1cm4gZGlyZWN0aW9uID09IEZvckNvbHVtbnMgPyBjb29yZGluYXRlLmNvbHVtbnMgOiBj
b29yZGluYXRlLnJvd3M7CiB9CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9XZWJDb3JlL3JlbmRlcmlu
Zy9SZW5kZXJHcmlkLmggYi9Tb3VyY2UvV2ViQ29yZS9yZW5kZXJpbmcvUmVuZGVyR3JpZC5oCmlu
ZGV4IDQ1YjYzYzdjYTc5ZTljNzEyNDMwODFmMjIzNGQ5MGQ0N2UxNzIyM2UuLmY0ZjRkMzhlZjc1
ZWMxOGYyYTllMWIzODY4OWI4NGVlZWE1ZjFkN2MgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9XZWJDb3Jl
L3JlbmRlcmluZy9SZW5kZXJHcmlkLmgKKysrIGIvU291cmNlL1dlYkNvcmUvcmVuZGVyaW5nL1Jl
bmRlckdyaWQuaApAQCAtMTQwLDYgKzE0MCw3IEBAIHByaXZhdGU6CiAgICAgTGF5b3V0VW5pdCBy
b3dBeGlzT2Zmc2V0Rm9yQ2hpbGQoY29uc3QgUmVuZGVyQm94JikgY29uc3Q7CiAgICAgQ29udGVu
dEFsaWdubWVudERhdGEgY29tcHV0ZUNvbnRlbnRQb3NpdGlvbkFuZERpc3RyaWJ1dGlvbk9mZnNl
dChHcmlkVHJhY2tTaXppbmdEaXJlY3Rpb24sIGNvbnN0IExheW91dFVuaXQmIGF2YWlsYWJsZUZy
ZWVTcGFjZSwgdW5zaWduZWQgbnVtYmVyT2ZHcmlkVHJhY2tzKSBjb25zdDsKICAgICBMYXlvdXRQ
b2ludCBmaW5kQ2hpbGRMb2dpY2FsUG9zaXRpb24oY29uc3QgUmVuZGVyQm94JikgY29uc3Q7Cisg
ICAgR3JpZENvb3JkaW5hdGUgY2FjaGVkR3JpZENvb3JkaW5hdGUoY29uc3QgUmVuZGVyQm94Jikg
Y29uc3Q7CiAgICAgR3JpZFNwYW4gY2FjaGVkR3JpZFNwYW4oY29uc3QgUmVuZGVyQm94JiwgR3Jp
ZFRyYWNrU2l6aW5nRGlyZWN0aW9uKSBjb25zdDsKIAogCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>