<?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>194566</bug_id>
          
          <creation_ts>2019-02-12 16:31:19 -0800</creation_ts>
          <short_desc>Create a randomized free list for new StructureIDs on StructureIDTable resize.</short_desc>
          <delta_ts>2019-02-13 12:35:06 -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>JavaScriptCore</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>InRadar</keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Mark Lam">mark.lam</reporter>
          <assigned_to name="Mark Lam">mark.lam</assigned_to>
          <cc>fpizlo</cc>
    
    <cc>keith_miller</cc>
    
    <cc>msaboff</cc>
    
    <cc>rmorisset</cc>
    
    <cc>saam</cc>
    
    <cc>tzagallo</cc>
    
    <cc>webkit-bug-importer</cc>
    
    <cc>ysuzuki</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1505487</commentid>
    <comment_count>0</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-12 16:31:19 -0800</bug_when>
    <thetext>&lt;rdar://problem/47975502&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505488</commentid>
    <comment_count>1</comment_count>
      <attachid>361863</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-12 16:34:01 -0800</bug_when>
    <thetext>Created attachment 361863
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505592</commentid>
    <comment_count>2</comment_count>
      <attachid>361863</attachid>
    <who name="Saam Barati">saam</who>
    <bug_when>2019-02-12 20:50:16 -0800</bug_when>
    <thetext>Comment on attachment 361863
proposed patch.

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

&gt; Source/JavaScriptCore/runtime/StructureIDTable.cpp:71
&gt; +                table()[pick].offset = m_firstFreeOffset;

Why not just assign to zero?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505593</commentid>
    <comment_count>3</comment_count>
      <attachid>361863</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-12 20:52:09 -0800</bug_when>
    <thetext>Comment on attachment 361863
proposed patch.

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

&gt;&gt; Source/JavaScriptCore/runtime/StructureIDTable.cpp:71
&gt;&gt; +                table()[pick].offset = m_firstFreeOffset;
&gt; 
&gt; Why not just assign to zero?

Oops.  This is a bug.  It should be:
    table()[pick].offset = head;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505594</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-12 20:53:24 -0800</bug_when>
    <thetext>Looks like I should fix the 32-bit issues too.  Probably something trivial.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505626</commentid>
    <comment_count>5</comment_count>
      <attachid>361899</attachid>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-12 22:55:51 -0800</bug_when>
    <thetext>Created attachment 361899
proposed patch.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505761</commentid>
    <comment_count>6</comment_count>
      <attachid>361899</attachid>
    <who name="Michael Saboff">msaboff</who>
    <bug_when>2019-02-13 10:35:30 -0800</bug_when>
    <thetext>Comment on attachment 361899
proposed patch.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505810</commentid>
    <comment_count>7</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-13 12:33:23 -0800</bug_when>
    <thetext>Thanks for the review.  I re-tested the fixed patch with the CLI JetStream2, and perf appears to be neutral.  Will land now.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1505813</commentid>
    <comment_count>8</comment_count>
    <who name="Mark Lam">mark.lam</who>
    <bug_when>2019-02-13 12:35:06 -0800</bug_when>
    <thetext>Landed in r241449: &lt;http://trac.webkit.org/r241449&gt;.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361863</attachid>
            <date>2019-02-12 16:34:01 -0800</date>
            <delta_ts>2019-02-12 22:55:51 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-194566.patch</filename>
            <type>text/plain</type>
            <size>4945</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQxMzI2KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDIwIEBA
CisyMDE5LTAyLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
cmVhdGUgYSByYW5kb21pemVkIGZyZWUgbGlzdCBmb3IgbmV3IFN0cnVjdHVyZUlEcyBvbiBTdHJ1
Y3R1cmVJRFRhYmxlIHJlc2l6ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NDU2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc5NzU1MDI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgVGhpcyBwYXRj
aCBhcHBlYXJzIHRvIGJlIHBlcmYgbmV1dHJhbCBvbiBKZXRTdHJlYW0yIChhcyBydW4gZnJvbSB0
aGUgY29tbWFuZCBsaW5lKS4KKworICAgICAgICAqIHJ1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5j
cHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZUlEVGFibGU6OlN0cnVjdHVyZUlEVGFibGUpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVJRFRhYmxlOjptYWtlRnJlZUxpc3RGcm9tUmFuZ2UpOgor
ICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVJRFRhYmxlOjpyZXNpemUpOgorICAgICAgICAoSlNDOjpT
dHJ1Y3R1cmVJRFRhYmxlOjphbGxvY2F0ZUlEKToKKyAgICAgICAgKiBydW50aW1lL1N0cnVjdHVy
ZUlEVGFibGUuaDoKKwogMjAxOS0wMi0xMiAgTWljaGFlbCBDYXRhbnphcm8gIDxtY2F0YW56YXJv
QGlnYWxpYS5jb20+CiAKICAgICAgICAgVW5yZXZpZXdlZCwgZml4IC1XaW1wbGljaXQtZmFsbHRo
cm91Z2ggd2FybmluZyBhZnRlciByMjQxMTQwCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9TdHJ1Y3R1cmVJRFRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJRFRhYmxlLmNwcAkocmV2aXNpb24gMjQxMzE2KQor
KysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTMzLDEyICszMyw2NyBAQCBuYW1lc3BhY2UgSlNDIHsKIAogU3RydWN0
dXJlSURUYWJsZTo6U3RydWN0dXJlSURUYWJsZSgpCiAgICAgOiBtX3RhYmxlKG1ha2VVbmlxdWVB
cnJheTxTdHJ1Y3R1cmVPck9mZnNldD4oc19pbml0aWFsU2l6ZSkpCi0gICAgLCBtX3NpemUoMCkK
KyAgICAsIG1fc2l6ZSgxKQogICAgICwgbV9jYXBhY2l0eShzX2luaXRpYWxTaXplKQogewogICAg
IC8vIFdlIHByZS1hbGxvY2F0ZSB0aGUgZmlyc3Qgb2Zmc2V0IHNvIHRoYXQgdGhlIG51bGwgU3Ry
dWN0dXJlCiAgICAgLy8gY2FuIHN0aWxsIGJlIHJlcHJlc2VudGVkIGFzIHRoZSBTdHJ1Y3R1cmVJ
RCAnMCcuCi0gICAgYWxsb2NhdGVJRCgwKTsKKyAgICB0YWJsZSgpWzBdLnN0cnVjdHVyZSA9IG51
bGxwdHI7CisKKyAgICBtYWtlRnJlZUxpc3RGcm9tUmFuZ2UobV9zaXplLCBtX2NhcGFjaXR5IC0g
MSk7Cit9CisKK3ZvaWQgU3RydWN0dXJlSURUYWJsZTo6bWFrZUZyZWVMaXN0RnJvbVJhbmdlKHVp
bnQzMl90IGZpcnN0LCB1aW50MzJfdCBsYXN0KQoreworICAgIEFTU0VSVCghbV9maXJzdEZyZWVP
ZmZzZXQpOworICAgIEFTU0VSVCghbV9sYXN0RnJlZU9mZnNldCk7CisKKyAgICAvLyBQdXQgYWxs
IHRoZSBuZXcgSURzIG9uIHRoZSBmcmVlIGxpc3Qgc2VxdWVudGlhbGx5LgorICAgIHVpbnQzMl90
IGhlYWQgPSBmaXJzdDsKKyAgICB1aW50MzJfdCB0YWlsID0gbGFzdDsKKyAgICBmb3IgKHVpbnQz
Ml90IGkgPSBmaXJzdDsgaSA8IGxhc3Q7ICsraSkKKyAgICAgICAgdGFibGUoKVtpXS5vZmZzZXQg
PSBpICsgMTsKKyAgICB0YWJsZSgpW2xhc3RdLm9mZnNldCA9IDA7CisKKyAgICAvLyBSYW5kb21p
emUgdGhlIGZyZWUgbGlzdC4KKyAgICB1aW50MzJfdCBzaXplID0gbGFzdCAtIGZpcnN0ICsgMTsK
KyAgICB1aW50MzJfdCBtYXhJdGVyYXRpb25zID0gKHNpemUgKiAyKSAvIDM7CisgICAgZm9yICh1
aW50MzJfdCBjb3VudCA9IDA7IGNvdW50IDwgbWF4SXRlcmF0aW9uczsgKytjb3VudCkgeworICAg
ICAgICAvLyBNb3ZlIGEgcmFuZG9tIHBpY2sgZWl0aGVyIHRvIHRoZSBoZWFkIG9yIHRoZSB0YWls
IG9mIHRoZSBmcmVlIGxpc3QuCisgICAgICAgIHVpbnQzMl90IHJhbmRvbSA9IG1fd2Vha1JhbmRv
bS5nZXRVaW50MzIoKTsKKyAgICAgICAgdWludDMyX3Qgbm9kZUJlZm9yZSA9IGZpcnN0ICsgKHJh
bmRvbSAlIHNpemUpOworICAgICAgICB1aW50MzJfdCBwaWNrID0gdGFibGUoKVtub2RlQmVmb3Jl
XS5vZmZzZXQ7CisgICAgICAgIGlmIChwaWNrKSB7CisgICAgICAgICAgICB1aW50MzJfdCBub2Rl
QWZ0ZXIgPSB0YWJsZSgpW3BpY2tdLm9mZnNldDsKKyAgICAgICAgICAgIHRhYmxlKClbbm9kZUJl
Zm9yZV0ub2Zmc2V0ID0gbm9kZUFmdGVyOworICAgICAgICAgICAgaWYgKChyYW5kb20gJiAxKSB8
fCAhbm9kZUFmdGVyKSB7CisgICAgICAgICAgICAgICAgLy8gTW92ZSB0byB0aGUgaGVhZC4KKyAg
ICAgICAgICAgICAgICB0YWJsZSgpW3BpY2tdLm9mZnNldCA9IG1fZmlyc3RGcmVlT2Zmc2V0Owor
ICAgICAgICAgICAgICAgIGhlYWQgPSBwaWNrOworICAgICAgICAgICAgICAgIGlmICghbm9kZUFm
dGVyKQorICAgICAgICAgICAgICAgICAgICB0YWlsID0gbm9kZUJlZm9yZTsKKyAgICAgICAgICAg
IH0gZWxzZSB7CisgICAgICAgICAgICAgICAgLy8gTW92ZSB0byB0aGUgdGFpbC4KKyAgICAgICAg
ICAgICAgICB0YWJsZSgpW3BpY2tdLm9mZnNldCA9IDA7CisgICAgICAgICAgICAgICAgdGFibGUo
KVt0YWlsXS5vZmZzZXQgPSBwaWNrOworICAgICAgICAgICAgICAgIHRhaWwgPSBwaWNrOworICAg
ICAgICAgICAgfQorICAgICAgICB9CisgICAgfQorCisgICAgLy8gQ3V0IGxpc3QgaW4gaGFsZiBh
bmQgc3dhcCBoYWx2ZXMuCisgICAgdWludDMyX3QgY3V0ID0gZmlyc3QgKyAobV93ZWFrUmFuZG9t
LmdldFVpbnQzMigpICUgc2l6ZSk7CisgICAgdWludDMyX3QgYWZ0ZXJDdXQgPSB0YWJsZSgpW2N1
dF0ub2Zmc2V0OworICAgIGlmIChhZnRlckN1dCkgeworICAgICAgICB0YWJsZSgpW3RhaWxdLm9m
ZnNldCA9IGhlYWQ7CisgICAgICAgIHRhaWwgPSBjdXQ7CisgICAgICAgIGhlYWQgPSBhZnRlckN1
dDsKKyAgICAgICAgdGFibGUoKVtjdXRdLm9mZnNldCA9IDA7CisgICAgfQorCisgICAgbV9maXJz
dEZyZWVPZmZzZXQgPSBoZWFkOworICAgIG1fbGFzdEZyZWVPZmZzZXQgPSB0YWlsOworICAgIG1f
c2l6ZSA9IG1fY2FwYWNpdHk7CiB9CiAKIHZvaWQgU3RydWN0dXJlSURUYWJsZTo6cmVzaXplKHNp
emVfdCBuZXdDYXBhY2l0eSkKQEAgLTYwLDYgKzExNSw4IEBAIHZvaWQgU3RydWN0dXJlSURUYWJs
ZTo6cmVzaXplKHNpemVfdCBuZXcKIAogICAgIC8vIFVwZGF0ZSB0aGUgY2FwYWNpdHkuCiAgICAg
bV9jYXBhY2l0eSA9IG5ld0NhcGFjaXR5OworCisgICAgbWFrZUZyZWVMaXN0RnJvbVJhbmdlKG1f
c2l6ZSwgbV9jYXBhY2l0eSAtIDEpOwogfQogCiB2b2lkIFN0cnVjdHVyZUlEVGFibGU6OmZsdXNo
T2xkVGFibGVzKCkKQEAgLTc0LDIxICsxMzEsOCBAQCBTdHJ1Y3R1cmVJRCBTdHJ1Y3R1cmVJRFRh
YmxlOjphbGxvY2F0ZUlECiAgICAgICAgIFJFTEVBU0VfQVNTRVJUKG1fY2FwYWNpdHkgPD0gVUlO
VF9NQVgpOwogICAgICAgICBpZiAobV9zaXplID09IG1fY2FwYWNpdHkpCiAgICAgICAgICAgICBy
ZXNpemUobV9jYXBhY2l0eSAqIDIpOwotICAgICAgICBBU1NFUlQobV9zaXplIDwgbV9jYXBhY2l0
eSk7Ci0KLSAgICAgICAgU3RydWN0dXJlT3JPZmZzZXQgbmV3RW50cnk7Ci0gICAgICAgIG5ld0Vu
dHJ5LnN0cnVjdHVyZSA9IHN0cnVjdHVyZTsKLQotICAgICAgICBpZiAobV9zaXplID09IHNfdW51
c2VkSUQpIHsKLSAgICAgICAgICAgIG1fc2l6ZSsrOwotICAgICAgICAgICAgcmV0dXJuIGFsbG9j
YXRlSUQoc3RydWN0dXJlKTsKLSAgICAgICAgfQotCi0gICAgICAgIFN0cnVjdHVyZUlEIHJlc3Vs
dCA9IG1fc2l6ZTsKLSAgICAgICAgdGFibGUoKVtyZXN1bHRdID0gbmV3RW50cnk7Ci0gICAgICAg
IG1fc2l6ZSsrOwotICAgICAgICBBU1NFUlQoIWlzTnVrZWQocmVzdWx0KSk7Ci0gICAgICAgIHJl
dHVybiByZXN1bHQ7CisgICAgICAgIEFTU0VSVChtX3NpemUgPT0gbV9jYXBhY2l0eSk7CisgICAg
ICAgIEFTU0VSVChtX2ZpcnN0RnJlZU9mZnNldCk7CiAgICAgfQogCiAgICAgQVNTRVJUKG1fZmly
c3RGcmVlT2Zmc2V0ICE9IHNfdW51c2VkSUQpOwpJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaAkocmV2aXNpb24gMjQxMzE2KQorKysg
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5oCSh3b3JraW5n
IGNvcHkpCkBAIC05Nyw2ICs5Nyw3IEBAIHB1YmxpYzoKIAogcHJpdmF0ZToKICAgICB2b2lkIHJl
c2l6ZShzaXplX3QgbmV3Q2FwYWNpdHkpOworICAgIHZvaWQgbWFrZUZyZWVMaXN0RnJvbVJhbmdl
KHVpbnQzMl90IGZpcnN0LCB1aW50MzJfdCBsYXN0KTsKIAogICAgIHVuaW9uIFN0cnVjdHVyZU9y
T2Zmc2V0IHsKICAgICAgICAgV1RGX01BS0VfRkFTVF9BTExPQ0FURUQ7Cg==
</data>

          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>361899</attachid>
            <date>2019-02-12 22:55:51 -0800</date>
            <delta_ts>2019-02-13 10:35:30 -0800</delta_ts>
            <desc>proposed patch.</desc>
            <filename>bug-194566.patch</filename>
            <type>text/plain</type>
            <size>7871</size>
            <attacher name="Mark Lam">mark.lam</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMjQxMzQ3KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDI4IEBA
CisyMDE5LTAyLTEyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KKworICAgICAgICBD
cmVhdGUgYSByYW5kb21pemVkIGZyZWUgbGlzdCBmb3IgbmV3IFN0cnVjdHVyZUlEcyBvbiBTdHJ1
Y3R1cmVJRFRhYmxlIHJlc2l6ZS4KKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hv
d19idWcuY2dpP2lkPTE5NDU2NgorICAgICAgICA8cmRhcjovL3Byb2JsZW0vNDc5NzU1MDI+CisK
KyAgICAgICAgUmV2aWV3ZWQgYnkgTk9CT0RZIChPT1BTISkuCisKKyAgICAgICAgQWxzbyBpc29s
YXRlIDMyLWJpdCBpbXBsZW1lbnRhdGlvbiBvZiBTdHJ1Y3R1cmVJRFRhYmxlIG91dCBtb3JlIHNv
IHRoZSA2NC1iaXQKKyAgICAgICAgaW1wbGVtZW50YXRpb24gaXMgYSBsaXR0bGUgZWFzaWVyIHRv
IHJlYWQuCisKKyAgICAgICAgVGhpcyBwYXRjaCBhcHBlYXJzIHRvIGJlIHBlcmYgbmV1dHJhbCBv
biBKZXRTdHJlYW0yIChhcyBydW4gZnJvbSB0aGUgY29tbWFuZCBsaW5lKS4KKworICAgICAgICAq
IHJ1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5jcHA6CisgICAgICAgIChKU0M6OlN0cnVjdHVyZUlE
VGFibGU6OlN0cnVjdHVyZUlEVGFibGUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVJRFRhYmxl
OjptYWtlRnJlZUxpc3RGcm9tUmFuZ2UpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVJRFRhYmxl
OjpyZXNpemUpOgorICAgICAgICAoSlNDOjpTdHJ1Y3R1cmVJRFRhYmxlOjphbGxvY2F0ZUlEKToK
KyAgICAgICAgKEpTQzo6U3RydWN0dXJlSURUYWJsZTo6ZGVhbGxvY2F0ZUlEKToKKyAgICAgICAg
KiBydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaDoKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlSURU
YWJsZTo6Z2V0KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlSURUYWJsZTo6ZGVhbGxvY2F0ZUlE
KToKKyAgICAgICAgKEpTQzo6U3RydWN0dXJlSURUYWJsZTo6YWxsb2NhdGVJRCk6CisgICAgICAg
IChKU0M6OlN0cnVjdHVyZUlEVGFibGU6OmZsdXNoT2xkVGFibGVzKToKKwogMjAxOS0wMi0xMiAg
U2FhbSBiYXJhdGkgIDxzYmFyYXRpQGFwcGxlLmNvbT4KIAogICAgICAgICBKU1NjcmlwdCBuZWVk
cyB0byByZXRhaW4gaXRzIGNhY2hlIHBhdGggTlNVUkwqCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJRFRhYmxlLmNwcAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2Uv
SmF2YVNjcmlwdENvcmUvcnVudGltZS9TdHJ1Y3R1cmVJRFRhYmxlLmNwcAkocmV2aXNpb24gMjQx
MzM5KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvU3RydWN0dXJlSURUYWJsZS5j
cHAJKHdvcmtpbmcgY29weSkKQEAgLTMxLDE0ICszMSw3MSBAQAogCiBuYW1lc3BhY2UgSlNDIHsK
IAorI2lmIFVTRShKU1ZBTFVFNjQpCisKIFN0cnVjdHVyZUlEVGFibGU6OlN0cnVjdHVyZUlEVGFi
bGUoKQogICAgIDogbV90YWJsZShtYWtlVW5pcXVlQXJyYXk8U3RydWN0dXJlT3JPZmZzZXQ+KHNf
aW5pdGlhbFNpemUpKQotICAgICwgbV9zaXplKDApCiAgICAgLCBtX2NhcGFjaXR5KHNfaW5pdGlh
bFNpemUpCiB7CiAgICAgLy8gV2UgcHJlLWFsbG9jYXRlIHRoZSBmaXJzdCBvZmZzZXQgc28gdGhh
dCB0aGUgbnVsbCBTdHJ1Y3R1cmUKICAgICAvLyBjYW4gc3RpbGwgYmUgcmVwcmVzZW50ZWQgYXMg
dGhlIFN0cnVjdHVyZUlEICcwJy4KLSAgICBhbGxvY2F0ZUlEKDApOworICAgIHRhYmxlKClbMF0u
c3RydWN0dXJlID0gbnVsbHB0cjsKKworICAgIG1ha2VGcmVlTGlzdEZyb21SYW5nZSgxLCBtX2Nh
cGFjaXR5IC0gMSk7CisgICAgQVNTRVJUKG1fc2l6ZSA9PSBtX2NhcGFjaXR5KTsKK30KKwordm9p
ZCBTdHJ1Y3R1cmVJRFRhYmxlOjptYWtlRnJlZUxpc3RGcm9tUmFuZ2UodWludDMyX3QgZmlyc3Qs
IHVpbnQzMl90IGxhc3QpCit7CisgICAgQVNTRVJUKCFtX2ZpcnN0RnJlZU9mZnNldCk7CisgICAg
QVNTRVJUKCFtX2xhc3RGcmVlT2Zmc2V0KTsKKworICAgIC8vIFB1dCBhbGwgdGhlIG5ldyBJRHMg
b24gdGhlIGZyZWUgbGlzdCBzZXF1ZW50aWFsbHkuCisgICAgdWludDMyX3QgaGVhZCA9IGZpcnN0
OworICAgIHVpbnQzMl90IHRhaWwgPSBsYXN0OworICAgIGZvciAodWludDMyX3QgaSA9IGZpcnN0
OyBpIDwgbGFzdDsgKytpKQorICAgICAgICB0YWJsZSgpW2ldLm9mZnNldCA9IGkgKyAxOworICAg
IHRhYmxlKClbbGFzdF0ub2Zmc2V0ID0gMDsKKworICAgIC8vIFJhbmRvbWl6ZSB0aGUgZnJlZSBs
aXN0LgorICAgIHVpbnQzMl90IHNpemUgPSBsYXN0IC0gZmlyc3QgKyAxOworICAgIHVpbnQzMl90
IG1heEl0ZXJhdGlvbnMgPSAoc2l6ZSAqIDIpIC8gMzsKKyAgICBmb3IgKHVpbnQzMl90IGNvdW50
ID0gMDsgY291bnQgPCBtYXhJdGVyYXRpb25zOyArK2NvdW50KSB7CisgICAgICAgIC8vIE1vdmUg
YSByYW5kb20gcGljayBlaXRoZXIgdG8gdGhlIGhlYWQgb3IgdGhlIHRhaWwgb2YgdGhlIGZyZWUg
bGlzdC4KKyAgICAgICAgdWludDMyX3QgcmFuZG9tID0gbV93ZWFrUmFuZG9tLmdldFVpbnQzMigp
OworICAgICAgICB1aW50MzJfdCBub2RlQmVmb3JlID0gZmlyc3QgKyAocmFuZG9tICUgc2l6ZSk7
CisgICAgICAgIHVpbnQzMl90IHBpY2sgPSB0YWJsZSgpW25vZGVCZWZvcmVdLm9mZnNldDsKKyAg
ICAgICAgaWYgKHBpY2spIHsKKyAgICAgICAgICAgIHVpbnQzMl90IG5vZGVBZnRlciA9IHRhYmxl
KClbcGlja10ub2Zmc2V0OworICAgICAgICAgICAgdGFibGUoKVtub2RlQmVmb3JlXS5vZmZzZXQg
PSBub2RlQWZ0ZXI7CisgICAgICAgICAgICBpZiAoKHJhbmRvbSAmIDEpIHx8ICFub2RlQWZ0ZXIp
IHsKKyAgICAgICAgICAgICAgICAvLyBNb3ZlIHRvIHRoZSBoZWFkLgorICAgICAgICAgICAgICAg
IHRhYmxlKClbcGlja10ub2Zmc2V0ID0gaGVhZDsKKyAgICAgICAgICAgICAgICBoZWFkID0gcGlj
azsKKyAgICAgICAgICAgICAgICBpZiAoIW5vZGVBZnRlcikKKyAgICAgICAgICAgICAgICAgICAg
dGFpbCA9IG5vZGVCZWZvcmU7CisgICAgICAgICAgICB9IGVsc2UgeworICAgICAgICAgICAgICAg
IC8vIE1vdmUgdG8gdGhlIHRhaWwuCisgICAgICAgICAgICAgICAgdGFibGUoKVtwaWNrXS5vZmZz
ZXQgPSAwOworICAgICAgICAgICAgICAgIHRhYmxlKClbdGFpbF0ub2Zmc2V0ID0gcGljazsKKyAg
ICAgICAgICAgICAgICB0YWlsID0gcGljazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgfQorICAg
IH0KKworICAgIC8vIEN1dCBsaXN0IGluIGhhbGYgYW5kIHN3YXAgaGFsdmVzLgorICAgIHVpbnQz
Ml90IGN1dCA9IGZpcnN0ICsgKG1fd2Vha1JhbmRvbS5nZXRVaW50MzIoKSAlIHNpemUpOworICAg
IHVpbnQzMl90IGFmdGVyQ3V0ID0gdGFibGUoKVtjdXRdLm9mZnNldDsKKyAgICBpZiAoYWZ0ZXJD
dXQpIHsKKyAgICAgICAgdGFibGUoKVt0YWlsXS5vZmZzZXQgPSBoZWFkOworICAgICAgICB0YWls
ID0gY3V0OworICAgICAgICBoZWFkID0gYWZ0ZXJDdXQ7CisgICAgICAgIHRhYmxlKClbY3V0XS5v
ZmZzZXQgPSAwOworICAgIH0KKworICAgIG1fZmlyc3RGcmVlT2Zmc2V0ID0gaGVhZDsKKyAgICBt
X2xhc3RGcmVlT2Zmc2V0ID0gdGFpbDsKKyAgICBtX3NpemUgPSBtX2NhcGFjaXR5OwogfQogCiB2
b2lkIFN0cnVjdHVyZUlEVGFibGU6OnJlc2l6ZShzaXplX3QgbmV3Q2FwYWNpdHkpCkBAIC02MCw2
ICsxMTcsOCBAQCB2b2lkIFN0cnVjdHVyZUlEVGFibGU6OnJlc2l6ZShzaXplX3QgbmV3CiAKICAg
ICAvLyBVcGRhdGUgdGhlIGNhcGFjaXR5LgogICAgIG1fY2FwYWNpdHkgPSBuZXdDYXBhY2l0eTsK
KworICAgIG1ha2VGcmVlTGlzdEZyb21SYW5nZShtX3NpemUsIG1fY2FwYWNpdHkgLSAxKTsKIH0K
IAogdm9pZCBTdHJ1Y3R1cmVJRFRhYmxlOjpmbHVzaE9sZFRhYmxlcygpCkBAIC02OSwyNiArMTI4
LDEyIEBAIHZvaWQgU3RydWN0dXJlSURUYWJsZTo6Zmx1c2hPbGRUYWJsZXMoKQogCiBTdHJ1Y3R1
cmVJRCBTdHJ1Y3R1cmVJRFRhYmxlOjphbGxvY2F0ZUlEKFN0cnVjdHVyZSogc3RydWN0dXJlKQog
ewotI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgaWYgKCFtX2ZpcnN0RnJlZU9mZnNldCkgewogICAg
ICAgICBSRUxFQVNFX0FTU0VSVChtX2NhcGFjaXR5IDw9IFVJTlRfTUFYKTsKICAgICAgICAgaWYg
KG1fc2l6ZSA9PSBtX2NhcGFjaXR5KQogICAgICAgICAgICAgcmVzaXplKG1fY2FwYWNpdHkgKiAy
KTsKLSAgICAgICAgQVNTRVJUKG1fc2l6ZSA8IG1fY2FwYWNpdHkpOwotCi0gICAgICAgIFN0cnVj
dHVyZU9yT2Zmc2V0IG5ld0VudHJ5OwotICAgICAgICBuZXdFbnRyeS5zdHJ1Y3R1cmUgPSBzdHJ1
Y3R1cmU7Ci0KLSAgICAgICAgaWYgKG1fc2l6ZSA9PSBzX3VudXNlZElEKSB7Ci0gICAgICAgICAg
ICBtX3NpemUrKzsKLSAgICAgICAgICAgIHJldHVybiBhbGxvY2F0ZUlEKHN0cnVjdHVyZSk7Ci0g
ICAgICAgIH0KLQotICAgICAgICBTdHJ1Y3R1cmVJRCByZXN1bHQgPSBtX3NpemU7Ci0gICAgICAg
IHRhYmxlKClbcmVzdWx0XSA9IG5ld0VudHJ5OwotICAgICAgICBtX3NpemUrKzsKLSAgICAgICAg
QVNTRVJUKCFpc051a2VkKHJlc3VsdCkpOwotICAgICAgICByZXR1cm4gcmVzdWx0OworICAgICAg
ICBBU1NFUlQobV9zaXplID09IG1fY2FwYWNpdHkpOworICAgICAgICBBU1NFUlQobV9maXJzdEZy
ZWVPZmZzZXQpOwogICAgIH0KIAogICAgIEFTU0VSVChtX2ZpcnN0RnJlZU9mZnNldCAhPSBzX3Vu
dXNlZElEKTsKQEAgLTEwMSwxNSArMTQ2LDEwIEBAIFN0cnVjdHVyZUlEIFN0cnVjdHVyZUlEVGFi
bGU6OmFsbG9jYXRlSUQKICAgICB0YWJsZSgpW3Jlc3VsdF0uc3RydWN0dXJlID0gc3RydWN0dXJl
OwogICAgIEFTU0VSVCghaXNOdWtlZChyZXN1bHQpKTsKICAgICByZXR1cm4gcmVzdWx0OwotI2Vs
c2UKLSAgICBBU1NFUlQoIWlzTnVrZWQoc3RydWN0dXJlKSk7Ci0gICAgcmV0dXJuIHN0cnVjdHVy
ZTsKLSNlbmRpZgogfQogCiB2b2lkIFN0cnVjdHVyZUlEVGFibGU6OmRlYWxsb2NhdGVJRChTdHJ1
Y3R1cmUqIHN0cnVjdHVyZSwgU3RydWN0dXJlSUQgc3RydWN0dXJlSUQpCiB7Ci0jaWYgVVNFKEpT
VkFMVUU2NCkKICAgICBBU1NFUlQoc3RydWN0dXJlSUQgIT0gc191bnVzZWRJRCk7CiAgICAgUkVM
RUFTRV9BU1NFUlQodGFibGUoKVtzdHJ1Y3R1cmVJRF0uc3RydWN0dXJlID09IHN0cnVjdHVyZSk7
CiAKQEAgLTEyOSwxMCArMTY5LDggQEAgdm9pZCBTdHJ1Y3R1cmVJRFRhYmxlOjpkZWFsbG9jYXRl
SUQoU3RydQogICAgICAgICB0YWJsZSgpW21fbGFzdEZyZWVPZmZzZXRdLm9mZnNldCA9IHN0cnVj
dHVyZUlEOwogICAgICAgICBtX2xhc3RGcmVlT2Zmc2V0ID0gc3RydWN0dXJlSUQ7CiAgICAgfQot
I2Vsc2UKLSAgICBVTlVTRURfUEFSQU0oc3RydWN0dXJlKTsKLSAgICBVTlVTRURfUEFSQU0oc3Ry
dWN0dXJlSUQpOwotI2VuZGlmCiB9CiAKKyNlbmRpZiAvLyBVU0UoSlNWQUxVRTY0KQorCiB9IC8v
IG5hbWVzcGFjZSBKU0MKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL1N0cnVj
dHVyZUlEVGFibGUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGlt
ZS9TdHJ1Y3R1cmVJRFRhYmxlLmgJKHJldmlzaW9uIDI0MTMzOSkKKysrIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL1N0cnVjdHVyZUlEVGFibGUuaAkod29ya2luZyBjb3B5KQpAQCAtNTYs
NyArNTYsNyBAQCBpbmxpbmUgU3RydWN0dXJlSUQgZGVjb250YW1pbmF0ZShTdHJ1Y3R1CiB7CiAg
ICAgcmV0dXJuIGlkICYgfm51a2VkU3RydWN0dXJlSURCaXQoKTsKIH0KLSNlbHNlCisjZWxzZSAv
LyBub3QgVVNFKEpTVkFMVUU2NCkKIHR5cGVkZWYgU3RydWN0dXJlKiBTdHJ1Y3R1cmVJRDsKIAog
aW5saW5lIFN0cnVjdHVyZUlEIG51a2VkU3RydWN0dXJlSURCaXQoKQpAQCAtNzgsNyArNzgsOSBA
QCBpbmxpbmUgU3RydWN0dXJlSUQgZGVjb250YW1pbmF0ZShTdHJ1Y3R1CiB7CiAgICAgcmV0dXJu
IGJpdHdpc2VfY2FzdDxTdHJ1Y3R1cmVJRD4oYml0d2lzZV9jYXN0PHVpbnRwdHJfdD4oaWQpICYg
fmJpdHdpc2VfY2FzdDx1aW50cHRyX3Q+KG51a2VkU3RydWN0dXJlSURCaXQoKSkpOwogfQotI2Vu
ZGlmCisjZW5kaWYgLy8gbm90IFVTRShKU1ZBTFVFNjQpCisKKyNpZiBVU0UoSlNWQUxVRTY0KQog
CiBjbGFzcyBTdHJ1Y3R1cmVJRFRhYmxlIHsKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRz
RXh0cmFjdG9yOwpAQCAtOTcsNiArOTksNyBAQCBwdWJsaWM6CiAKIHByaXZhdGU6CiAgICAgdm9p
ZCByZXNpemUoc2l6ZV90IG5ld0NhcGFjaXR5KTsKKyAgICB2b2lkIG1ha2VGcmVlTGlzdEZyb21S
YW5nZSh1aW50MzJfdCBmaXJzdCwgdWludDMyX3QgbGFzdCk7CiAKICAgICB1bmlvbiBTdHJ1Y3R1
cmVPck9mZnNldCB7CiAgICAgICAgIFdURl9NQUtFX0ZBU1RfQUxMT0NBVEVEOwpAQCAtMTE1LDI2
ICsxMTgsNDAgQEAgcHJpdmF0ZToKICAgICB1aW50MzJfdCBtX2xhc3RGcmVlT2Zmc2V0IHsgMCB9
OwogICAgIFVuaXF1ZUFycmF5PFN0cnVjdHVyZU9yT2Zmc2V0PiBtX3RhYmxlOwogCi0gICAgc2l6
ZV90IG1fc2l6ZTsKKyAgICBzaXplX3QgbV9zaXplIHsgMCB9OwogICAgIHNpemVfdCBtX2NhcGFj
aXR5OwogCiAgICAgV2Vha1JhbmRvbSBtX3dlYWtSYW5kb207CiAKLSNpZiBVU0UoSlNWQUxVRTY0
KQogICAgIHN0YXRpYyBjb25zdCBTdHJ1Y3R1cmVJRCBzX3VudXNlZElEID0gdW51c2VkUG9pbnRl
cjsKLSNlbmRpZgogfTsKIAogaW5saW5lIFN0cnVjdHVyZSogU3RydWN0dXJlSURUYWJsZTo6Z2V0
KFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEKQogewotI2lmIFVTRShKU1ZBTFVFNjQpCiAgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oc3RydWN0dXJlSUQpOwogICAgIEFTU0VSVF9X
SVRIX1NFQ1VSSVRZX0lNUExJQ0FUSU9OKCFpc051a2VkKHN0cnVjdHVyZUlEKSk7CiAgICAgQVNT
RVJUX1dJVEhfU0VDVVJJVFlfSU1QTElDQVRJT04oc3RydWN0dXJlSUQgPCBtX2NhcGFjaXR5KTsK
ICAgICByZXR1cm4gdGFibGUoKVtzdHJ1Y3R1cmVJRF0uc3RydWN0dXJlOwotI2Vsc2UKLSAgICBy
ZXR1cm4gc3RydWN0dXJlSUQ7Ci0jZW5kaWYKIH0KIAorI2Vsc2UgLy8gbm90IFVTRShKU1ZBTFVF
NjQpCisKK2NsYXNzIFN0cnVjdHVyZUlEVGFibGUgeworICAgIGZyaWVuZCBjbGFzcyBMTEludE9m
ZnNldHNFeHRyYWN0b3I7CitwdWJsaWM6CisgICAgU3RydWN0dXJlSURUYWJsZSgpID0gZGVmYXVs
dDsKKworICAgIFN0cnVjdHVyZSogZ2V0KFN0cnVjdHVyZUlEIHN0cnVjdHVyZUlEKSB7IHJldHVy
biBzdHJ1Y3R1cmVJRDsgfQorICAgIHZvaWQgZGVhbGxvY2F0ZUlEKFN0cnVjdHVyZSosIFN0cnVj
dHVyZUlEKSB7IH0KKyAgICBTdHJ1Y3R1cmVJRCBhbGxvY2F0ZUlEKFN0cnVjdHVyZSogc3RydWN0
dXJlKQorICAgIHsKKyAgICAgICAgQVNTRVJUKCFpc051a2VkKHN0cnVjdHVyZSkpOworICAgICAg
ICByZXR1cm4gc3RydWN0dXJlOworICAgIH07CisKKyAgICB2b2lkIGZsdXNoT2xkVGFibGVzKCkg
eyB9Cit9OworCisjZW5kaWYgLy8gbm90IFVTRShKU1ZBTFVFNjQpCisKIH0gLy8gbmFtZXNwYWNl
IEpTQwo=
</data>
<flag name="review"
          id="378539"
          type_id="1"
          status="+"
          setter="msaboff"
    />
          </attachment>
      

    </bug>

</bugzilla>