<?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>130357</bug_id>
          
          <creation_ts>2014-03-17 13:56:21 -0700</creation_ts>
          <short_desc>Add one-deep cache to opaque roots hashset.</short_desc>
          <delta_ts>2014-03-17 20:28:50 -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>JavaScriptCore</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Unspecified</rep_platform>
          <op_sys>Unspecified</op_sys>
          <bug_status>RESOLVED</bug_status>
          <resolution>FIXED</resolution>
          
          
          <bug_file_loc></bug_file_loc>
          <status_whiteboard></status_whiteboard>
          <keywords></keywords>
          <priority>P2</priority>
          <bug_severity>Normal</bug_severity>
          <target_milestone>---</target_milestone>
          
          
          <everconfirmed>1</everconfirmed>
          <reporter name="Andreas Kling">kling</reporter>
          <assigned_to name="Andreas Kling">kling</assigned_to>
          <cc>barraclough</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>mhahnenberg</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>991376</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-17 13:56:21 -0700</bug_when>
    <thetext>For WebCore JS wrappers, we&apos;re almost always root()&apos;ed at the Document, which means that we&apos;re querying the SlotVisitor&apos;s opaque roots set for the same Document* over and over.
On DoYouEvenBench, we&apos;re spending ~1.5% of time in JSNodeOwner::isReachableFromOpaqueRoots(). This optimization attempts to alleviate some of that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991378</commentid>
    <comment_count>1</comment_count>
      <attachid>226958</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2014-03-17 13:58:17 -0700</bug_when>
    <thetext>Created attachment 226958
Patch idea</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991442</commentid>
    <comment_count>2</comment_count>
      <attachid>226958</attachid>
    <who name="Mark Hahnenberg">mhahnenberg</who>
    <bug_when>2014-03-17 16:12:13 -0700</bug_when>
    <thetext>Comment on attachment 226958
Patch idea

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991529</commentid>
    <comment_count>3</comment_count>
      <attachid>226958</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-17 20:28:47 -0700</bug_when>
    <thetext>Comment on attachment 226958
Patch idea

Clearing flags on attachment: 226958

Committed r165796: &lt;http://trac.webkit.org/changeset/165796&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>991530</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2014-03-17 20:28:50 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>226958</attachid>
            <date>2014-03-17 13:58:17 -0700</date>
            <delta_ts>2014-03-17 20:28:47 -0700</delta_ts>
            <desc>Patch idea</desc>
            <filename>bug-130357.diff</filename>
            <type>text/plain</type>
            <size>8676</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IGQ3YjZjNTguLmRlODdkM2EgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDI4IEBACisyMDE0LTAzLTE3ICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBBZGQgb25lLWRlZXAgY2FjaGUgdG8gb3Bh
cXVlIHJvb3RzIGhhc2hzZXQuCisgICAgICAgIDxodHRwczovL3dlYmtpdC5vcmcvYi8xMzAzNTc+
CisKKyAgICAgICAgVGhlIHZhc3QgbWFqb3JpdHkgb2YgV2ViQ29yZSBKUyB3cmFwcGVycyB3aWxs
IGhhdmUgdGhlaXIgRG9jdW1lbnQqCisgICAgICAgIGFzIHRoZSByb290KCkuIFRoaXMgY2hhbmdl
IGFkZHMgYSBzaW1wbGUgb3B0aW1pemF0aW9uIHdoZXJlIHdlIGNhY2hlCisgICAgICAgIHRoZSBs
YXN0IGxvb2t1cCBhbmQgYXZvaWQgZ29pbmcgdG8gdGhlIGhhc2hzZXQgZm9yIHJlcGVhdGVkIHF1
ZXJpZXMuCisKKyAgICAgICAgTG9va3MgbGlrZSAwLjQlIHByb2dyZXNzaW9uIG9uIERZRUIgb24g
bXkgTUJQLgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAg
ICogSmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvajoKKyAgICAgICAgKiBo
ZWFwL09wYXF1ZVJvb3RTZXQuaDogQWRkZWQuCisgICAgICAgIChKU0M6Ok9wYXF1ZVJvb3RTZXQ6
Ok9wYXF1ZVJvb3RTZXQpOgorICAgICAgICAoSlNDOjpPcGFxdWVSb290U2V0Ojpjb250YWlucyk6
CisgICAgICAgIChKU0M6Ok9wYXF1ZVJvb3RTZXQ6OmlzRW1wdHkpOgorICAgICAgICAoSlNDOjpP
cGFxdWVSb290U2V0OjpjbGVhcik6CisgICAgICAgIChKU0M6Ok9wYXF1ZVJvb3RTZXQ6OmFkZCk6
CisgICAgICAgIChKU0M6Ok9wYXF1ZVJvb3RTZXQ6OnNpemUpOgorICAgICAgICAoSlNDOjpPcGFx
dWVSb290U2V0OjpiZWdpbik6CisgICAgICAgIChKU0M6Ok9wYXF1ZVJvb3RTZXQ6OmVuZCk6Cisg
ICAgICAgICogaGVhcC9TbG90VmlzaXRvci5oOgorCiAyMDE0LTAzLTE3ICBac29sdCBCb3JiZWx5
ICA8Ym9yYmV6c0BpbmYudS1zemVnZWQuaHU+CiAKICAgICAgICAgRml4IHRoZSAhRU5BQkxFKFBS
T01JU0VTKSBidWlsZApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL0phdmFTY3Jp
cHRDb3JlLnhjb2RlcHJvai9wcm9qZWN0LnBieHByb2ogYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
SmF2YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagppbmRleCBhNGRiNjJiLi4x
MWZiZmMwIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2YVNjcmlwdENvcmUu
eGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvSmF2
YVNjcmlwdENvcmUueGNvZGVwcm9qL3Byb2plY3QucGJ4cHJvagpAQCAtMTI4MCw2ICsxMjgwLDcg
QEAKIAkJQTdGQjYxMDAxMDQwQzM4QjAwMTdBMjg2IC8qIFByb3BlcnR5RGVzY3JpcHRvci5oIGlu
IEhlYWRlcnMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVmID0gQTdGQjYwNEIxMDNG
NUVBQjAwMTdBMjg2IC8qIFByb3BlcnR5RGVzY3JpcHRvci5oICovOyBzZXR0aW5ncyA9IHtBVFRS
SUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE3RkNDMjZEMTdBMEI2QUEwMDc4NkQxQSAv
KiBGVExTd2l0Y2hDYXNlLmggaW4gSGVhZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZp
bGVSZWYgPSBBN0ZDQzI2QzE3QTBCNkFBMDA3ODZEMUEgLyogRlRMU3dpdGNoQ2FzZS5oICovOyBz
ZXR0aW5ncyA9IHtBVFRSSUJVVEVTID0gKFByaXZhdGUsICk7IH07IH07CiAJCUE4QTQ3NDhFMTUx
QTgzMDYwMDQxMjNGRiAvKiBsaWJXVEYuYSBpbiBGcmFtZXdvcmtzICovID0ge2lzYSA9IFBCWEJ1
aWxkRmlsZTsgZmlsZVJlZiA9IEE4QTQ3NDhEMTUxQTgzMDYwMDQxMjNGRiAvKiBsaWJXVEYuYSAq
LzsgfTsKKwkJQUREQjFGNjMxOEQ3N0RCRTAwOUI1OEE4IC8qIE9wYXF1ZVJvb3RTZXQuaCBpbiBI
ZWFkZXJzICovID0ge2lzYSA9IFBCWEJ1aWxkRmlsZTsgZmlsZVJlZiA9IEFEREIxRjYyMThENzdE
QjcwMDlCNThBOCAvKiBPcGFxdWVSb290U2V0LmggKi87IHNldHRpbmdzID0ge0FUVFJJQlVURVMg
PSAoUHJpdmF0ZSwgKTsgfTsgfTsKIAkJQURFMzlGRkYxNkREMTQ0QjAwMDNDRDRBIC8qIFByb3Bl
cnR5VGFibGUuY3BwIGluIFNvdXJjZXMgKi8gPSB7aXNhID0gUEJYQnVpbGRGaWxlOyBmaWxlUmVm
ID0gQUQxQ0YwNjgxNkRDQUIyRDAwQjk3MTIzIC8qIFByb3BlcnR5VGFibGUuY3BwICovOyB9Owog
CQlCNTlGODkzOTE4OTFGMjlGMDBENUNDREMgLyogVW5saW5rZWRJbnN0cnVjdGlvblN0cmVhbS5j
cHAgaW4gU291cmNlcyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCNTlGODkz
ODE4OTFBREI1MDBENUNDREMgLyogVW5saW5rZWRJbnN0cnVjdGlvblN0cmVhbS5jcHAgKi87IH07
CiAJCUJDMDJFOTBEMEUxODM5REIwMDBGOTI5NyAvKiBFcnJvckNvbnN0cnVjdG9yLmggaW4gSGVh
ZGVycyAqLyA9IHtpc2EgPSBQQlhCdWlsZEZpbGU7IGZpbGVSZWYgPSBCQzAyRTkwNTBFMTgzOURC
MDAwRjkyOTcgLyogRXJyb3JDb25zdHJ1Y3Rvci5oICovOyB9OwpAQCAtMjgzNCw2ICsyODM1LDcg
QEAKIAkJQThFODk0MzEwQ0QwNjAyNDAwMzY3MTc5IC8qIEpTQ2FsbGJhY2tPYmplY3RGdW5jdGlv
bnMuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0
S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRoID0gSlNDYWxsYmFja09iamVjdEZ1
bmN0aW9ucy5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9OwogCQlBOEU4OTQzMzBDRDA2MDNG
MDAzNjcxNzkgLyogSlNHbG9iYWxPYmplY3QuaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNl
OyBmaWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBw
YXRoID0gSlNHbG9iYWxPYmplY3QuaDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQUQx
Q0YwNjgxNkRDQUIyRDAwQjk3MTIzIC8qIFByb3BlcnR5VGFibGUuY3BwICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gc291
cmNlY29kZS5jcHAuY3BwOyBwYXRoID0gUHJvcGVydHlUYWJsZS5jcHA7IHNvdXJjZVRyZWUgPSAi
PGdyb3VwPiI7IH07CisJCUFEREIxRjYyMThENzdEQjcwMDlCNThBOCAvKiBPcGFxdWVSb290U2V0
LmggKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFzdEtu
b3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmMuaDsgcGF0aCA9IE9wYXF1ZVJvb3RTZXQuaDsgc291
cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQjU5Rjg5MzcxODkxQUQzMzAwRDVDQ0RDIC8qIFVu
bGlua2VkSW5zdHJ1Y3Rpb25TdHJlYW0uaCAqLyA9IHtpc2EgPSBQQlhGaWxlUmVmZXJlbmNlOyBm
aWxlRW5jb2RpbmcgPSA0OyBsYXN0S25vd25GaWxlVHlwZSA9IHNvdXJjZWNvZGUuYy5oOyBwYXRo
ID0gVW5saW5rZWRJbnN0cnVjdGlvblN0cmVhbS5oOyBzb3VyY2VUcmVlID0gIjxncm91cD4iOyB9
OwogCQlCNTlGODkzODE4OTFBREI1MDBENUNDREMgLyogVW5saW5rZWRJbnN0cnVjdGlvblN0cmVh
bS5jcHAgKi8gPSB7aXNhID0gUEJYRmlsZVJlZmVyZW5jZTsgZmlsZUVuY29kaW5nID0gNDsgbGFz
dEtub3duRmlsZVR5cGUgPSBzb3VyY2Vjb2RlLmNwcC5jcHA7IHBhdGggPSBVbmxpbmtlZEluc3Ry
dWN0aW9uU3RyZWFtLmNwcDsgc291cmNlVHJlZSA9ICI8Z3JvdXA+IjsgfTsKIAkJQkMwMjFCRjIx
MzY5MDBDMzAwRkM1NDY3IC8qIFRvb2xFeGVjdXRhYmxlLnhjY29uZmlnICovID0ge2lzYSA9IFBC
WEZpbGVSZWZlcmVuY2U7IGZpbGVFbmNvZGluZyA9IDQ7IGxhc3RLbm93bkZpbGVUeXBlID0gdGV4
dC54Y2NvbmZpZzsgcGF0aCA9IFRvb2xFeGVjdXRhYmxlLnhjY29uZmlnOyBzb3VyY2VUcmVlID0g
Ijxncm91cD4iOyB9OwpAQCAtMzUwNSw2ICszNTA3LDcgQEAKIAkJMTQyRTMxMkExMzRGRjBBNjAw
QUZBREI1IC8qIGhlYXAgKi8gPSB7CiAJCQlpc2EgPSBQQlhHcm91cDsKIAkJCWNoaWxkcmVuID0g
KAorCQkJCUFEREIxRjYyMThENzdEQjcwMDlCNThBOCAvKiBPcGFxdWVSb290U2V0LmggKi8sCiAJ
CQkJMkFBQ0U2M0ExOENBNUEwMzAwRUQwMTkxIC8qIEdDQWN0aXZpdHlDYWxsYmFjay5jcHAgKi8s
CiAJCQkJMkFBQ0U2M0IxOENBNUEwMzAwRUQwMTkxIC8qIEdDQWN0aXZpdHlDYWxsYmFjay5oICov
LAogCQkJCTE0ODE2RTE5MTU0Q0M1NkMwMEI4MDU0QyAvKiBCbG9ja0FsbG9jYXRvci5jcHAgKi8s
CkBAIC01MzMxLDYgKzUzMzQsNyBAQAogCQkJCUZFRjY4MzVGMTc0MzQzQ0MwMEEzMkUyNSAvKiBK
SVRTdHVic0FSTXY3LmggaW4gSGVhZGVycyAqLywKIAkJCQlGRUY2ODM2MTE3NDM0M0NDMDBBMzJF
MjUgLyogSklUU3R1YnNYODYuaCBpbiBIZWFkZXJzICovLAogCQkJCUZFRjY4MzYwMTc0MzQzQ0Mw
MEEzMkUyNSAvKiBKSVRTdHVic1g4Nl82NC5oIGluIEhlYWRlcnMgKi8sCisJCQkJQUREQjFGNjMx
OEQ3N0RCRTAwOUI1OEE4IC8qIE9wYXF1ZVJvb3RTZXQuaCBpbiBIZWFkZXJzICovLAogCQkJCUE3
QTRBRTEwMTc5NzNCNEQwMDU2MTJCMSAvKiBKSVRTdHVic1g4NkNvbW1vbi5oIGluIEhlYWRlcnMg
Ki8sCiAJCQkJMEY1RUY5MUYxNjg3OEY3RDAwM0U1QzI1IC8qIEpJVFRodW5rcy5oIGluIEhlYWRl
cnMgKi8sCiAJCQkJMEZDNzEyRTMxN0NEODc5MzAwOENDOTNDIC8qIEpJVFRvREZHRGVmZXJyZWRD
b21waWxhdGlvbkNhbGxiYWNrLmggaW4gSGVhZGVycyAqLywKZGlmZiAtLWdpdCBhL1NvdXJjZS9K
YXZhU2NyaXB0Q29yZS9oZWFwL09wYXF1ZVJvb3RTZXQuaCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9oZWFwL09wYXF1ZVJvb3RTZXQuaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAw
Li5hMDhiZGVjCi0tLSAvZGV2L251bGwKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAv
T3BhcXVlUm9vdFNldC5oCkBAIC0wLDAgKzEsOTQgQEAKKy8qCisgKiBDb3B5cmlnaHQgKEMpIDIw
MTQgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLgorICoKKyAqIFJlZGlzdHJpYnV0aW9u
IGFuZCB1c2UgaW4gc291cmNlIGFuZCBiaW5hcnkgZm9ybXMsIHdpdGggb3Igd2l0aG91dAorICog
bW9kaWZpY2F0aW9uLCBhcmUgcGVybWl0dGVkIHByb3ZpZGVkIHRoYXQgdGhlIGZvbGxvd2luZyBj
b25kaXRpb25zCisgKiBhcmUgbWV0OgorICogMS4gUmVkaXN0cmlidXRpb25zIG9mIHNvdXJjZSBj
b2RlIG11c3QgcmV0YWluIHRoZSBhYm92ZSBjb3B5cmlnaHQKKyAqICAgIG5vdGljZSwgdGhpcyBs
aXN0IG9mIGNvbmRpdGlvbnMgYW5kIHRoZSBmb2xsb3dpbmcgZGlzY2xhaW1lci4KKyAqIDIuIFJl
ZGlzdHJpYnV0aW9ucyBpbiBiaW5hcnkgZm9ybSBtdXN0IHJlcHJvZHVjZSB0aGUgYWJvdmUgY29w
eXJpZ2h0CisgKiAgICBub3RpY2UsIHRoaXMgbGlzdCBvZiBjb25kaXRpb25zIGFuZCB0aGUgZm9s
bG93aW5nIGRpc2NsYWltZXIgaW4gdGhlCisgKiAgICBkb2N1bWVudGF0aW9uIGFuZC9vciBvdGhl
ciBtYXRlcmlhbHMgcHJvdmlkZWQgd2l0aCB0aGUgZGlzdHJpYnV0aW9uLgorICoKKyAqIFRISVMg
U09GVFdBUkUgSVMgUFJPVklERUQgQlkgQVBQTEUgSU5DLiBBTkQgSVRTIENPTlRSSUJVVE9SUyBg
YEFTIElTJycKKyAqIEFORCBBTlkgRVhQUkVTUyBPUiBJTVBMSUVEIFdBUlJBTlRJRVMsIElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLAorICogVEhFIElNUExJRUQgV0FSUkFOVElFUyBPRiBN
RVJDSEFOVEFCSUxJVFkgQU5EIEZJVE5FU1MgRk9SIEEgUEFSVElDVUxBUgorICogUFVSUE9TRSBB
UkUgRElTQ0xBSU1FRC4gSU4gTk8gRVZFTlQgU0hBTEwgQVBQTEUgSU5DLiBPUiBJVFMgQ09OVFJJ
QlVUT1JTCisgKiBCRSBMSUFCTEUgRk9SIEFOWSBESVJFQ1QsIElORElSRUNULCBJTkNJREVOVEFM
LCBTUEVDSUFMLCBFWEVNUExBUlksIE9SCisgKiBDT05TRVFVRU5USUFMIERBTUFHRVMgKElOQ0xV
RElORywgQlVUIE5PVCBMSU1JVEVEIFRPLCBQUk9DVVJFTUVOVCBPRgorICogU1VCU1RJVFVURSBH
T09EUyBPUiBTRVJWSUNFUzsgTE9TUyBPRiBVU0UsIERBVEEsIE9SIFBST0ZJVFM7IE9SIEJVU0lO
RVNTCisgKiBJTlRFUlJVUFRJT04pIEhPV0VWRVIgQ0FVU0VEIEFORCBPTiBBTlkgVEhFT1JZIE9G
IExJQUJJTElUWSwgV0hFVEhFUiBJTgorICogQ09OVFJBQ1QsIFNUUklDVCBMSUFCSUxJVFksIE9S
IFRPUlQgKElOQ0xVRElORyBORUdMSUdFTkNFIE9SIE9USEVSV0lTRSkKKyAqIEFSSVNJTkcgSU4g
QU5ZIFdBWSBPVVQgT0YgVEhFIFVTRSBPRiBUSElTIFNPRlRXQVJFLCBFVkVOIElGIEFEVklTRUQg
T0YKKyAqIFRIRSBQT1NTSUJJTElUWSBPRiBTVUNIIERBTUFHRS4KKyAqLworCisjaWZuZGVmIE9w
YXF1ZVJvb3RTZXRfaAorI2RlZmluZSBPcGFxdWVSb290U2V0X2gKKworI2luY2x1ZGUgPHd0Zi9I
YXNoU2V0Lmg+CisKK25hbWVzcGFjZSBKU0MgeworCitjbGFzcyBPcGFxdWVSb290U2V0IHsKKyAg
ICBXVEZfTUFLRV9OT05DT1BZQUJMRShPcGFxdWVSb290U2V0KTsKK3B1YmxpYzoKKyAgICBPcGFx
dWVSb290U2V0KCkKKyAgICAgICAgOiBtX2xhc3RRdWVyaWVkUm9vdChudWxscHRyKQorICAgICAg
ICAsIG1fY29udGFpbnNMYXN0UXVlcmllZFJvb3QoZmFsc2UpCisgICAgeworICAgIH0KKworICAg
IGJvb2wgY29udGFpbnModm9pZCogcm9vdCkgY29uc3QKKyAgICB7CisgICAgICAgIGlmIChyb290
ICE9IG1fbGFzdFF1ZXJpZWRSb290KSB7CisgICAgICAgICAgICBtX2xhc3RRdWVyaWVkUm9vdCA9
IHJvb3Q7CisgICAgICAgICAgICBtX2NvbnRhaW5zTGFzdFF1ZXJpZWRSb290ID0gbV9yb290cy5j
b250YWlucyhyb290KTsKKyAgICAgICAgfQorICAgICAgICByZXR1cm4gbV9jb250YWluc0xhc3RR
dWVyaWVkUm9vdDsKKyAgICB9CisKKyAgICBib29sIGlzRW1wdHkoKSBjb25zdAorICAgIHsKKyAg
ICAgICAgcmV0dXJuIG1fcm9vdHMuaXNFbXB0eSgpOworICAgIH0KKworICAgIHZvaWQgY2xlYXIo
KQorICAgIHsKKyAgICAgICAgbV9yb290cy5jbGVhcigpOworICAgICAgICBtX2xhc3RRdWVyaWVk
Um9vdCA9IG51bGxwdHI7CisgICAgICAgIG1fY29udGFpbnNMYXN0UXVlcmllZFJvb3QgPSBmYWxz
ZTsKKyAgICB9CisKKyAgICB2b2lkIGFkZCh2b2lkKiByb290KQorICAgIHsKKyAgICAgICAgaWYg
KHJvb3QgPT0gbV9sYXN0UXVlcmllZFJvb3QpCisgICAgICAgICAgICBtX2NvbnRhaW5zTGFzdFF1
ZXJpZWRSb290ID0gdHJ1ZTsKKyAgICAgICAgbV9yb290cy5hZGQocm9vdCk7CisgICAgfQorCisg
ICAgaW50IHNpemUoKSBjb25zdAorICAgIHsKKyAgICAgICAgcmV0dXJuIG1fcm9vdHMuc2l6ZSgp
OworICAgIH0KKworICAgIEhhc2hTZXQ8dm9pZCo+Ojpjb25zdF9pdGVyYXRvciBiZWdpbigpIGNv
bnN0CisgICAgeworICAgICAgICByZXR1cm4gbV9yb290cy5iZWdpbigpOworICAgIH0KKworICAg
IEhhc2hTZXQ8dm9pZCo+Ojpjb25zdF9pdGVyYXRvciBlbmQoKSBjb25zdAorICAgIHsKKyAgICAg
ICAgcmV0dXJuIG1fcm9vdHMuZW5kKCk7CisgICAgfQorCisKK3ByaXZhdGU6CisgICAgSGFzaFNl
dDx2b2lkKj4gbV9yb290czsKKyAgICBtdXRhYmxlIHZvaWQqIG1fbGFzdFF1ZXJpZWRSb290Owor
ICAgIG11dGFibGUgYm9vbCBtX2NvbnRhaW5zTGFzdFF1ZXJpZWRSb290OworfTsKKworfSAvLyBu
YW1lc3BhY2UgSlNDCisKKyNlbmRpZiAvLyBPcGFxdWVSb290U2V0X2gKZGlmZiAtLWdpdCBhL1Nv
dXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmggYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9TbG90VmlzaXRvci5oCmluZGV4IDYzNzg5NjEuLjhlMjM4YWQgMTAwNjQ0Ci0t
LSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL1Nsb3RWaXNpdG9yLmgKKysrIGIvU291cmNl
L0phdmFTY3JpcHRDb3JlL2hlYXAvU2xvdFZpc2l0b3IuaApAQCAtMjksNiArMjksNyBAQAogI2lu
Y2x1ZGUgIkNvcHlUb2tlbi5oIgogI2luY2x1ZGUgIkhhbmRsZVR5cGVzLmgiCiAjaW5jbHVkZSAi
TWFya1N0YWNrLmgiCisjaW5jbHVkZSAiT3BhcXVlUm9vdFNldC5oIgogCiAjaW5jbHVkZSA8d3Rm
L0hhc2hTZXQuaD4KICNpbmNsdWRlIDx3dGYvdGV4dC9TdHJpbmdIYXNoLmg+CkBAIC0xMzQsNyAr
MTM1LDcgQEAgcHJpdmF0ZToKICAgICB2b2lkIGRvbmF0ZUtub3duUGFyYWxsZWwoKTsKIAogICAg
IE1hcmtTdGFja0FycmF5IG1fc3RhY2s7Ci0gICAgSGFzaFNldDx2b2lkKj4gbV9vcGFxdWVSb290
czsgLy8gSGFuZGxlLW93bmluZyBkYXRhIHN0cnVjdHVyZXMgbm90IHZpc2libGUgdG8gdGhlIGdh
cmJhZ2UgY29sbGVjdG9yLgorICAgIE9wYXF1ZVJvb3RTZXQgbV9vcGFxdWVSb290czsgLy8gSGFu
ZGxlLW93bmluZyBkYXRhIHN0cnVjdHVyZXMgbm90IHZpc2libGUgdG8gdGhlIGdhcmJhZ2UgY29s
bGVjdG9yLgogICAgIAogICAgIHNpemVfdCBtX2J5dGVzVmlzaXRlZDsKICAgICBzaXplX3QgbV9i
eXRlc0NvcGllZDsK
</data>

          </attachment>
      

    </bug>

</bugzilla>