<?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>145131</bug_id>
          
          <creation_ts>2015-05-18 10:17:06 -0700</creation_ts>
          <short_desc>Give JSString a StringView getter and start using it.</short_desc>
          <delta_ts>2015-05-19 10:06:41 -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>Performance</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>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>darin</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1095631</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-18 10:17:06 -0700</bug_when>
    <thetext>JSString should have a StringView getter so that we don&apos;t always have to reify JSStrings that are secretly substrings internally.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095632</commentid>
    <comment_count>1</comment_count>
      <attachid>253330</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-05-18 10:19:29 -0700</bug_when>
    <thetext>Created attachment 253330
Patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095961</commentid>
    <comment_count>2</comment_count>
      <attachid>253330</attachid>
    <who name="Darin Adler">darin</who>
    <bug_when>2015-05-19 09:20:49 -0700</bug_when>
    <thetext>Comment on attachment 253330
Patch

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

&gt; Source/JavaScriptCore/runtime/JSString.h:712
&gt; +    return StringView(m_value);

Surprised this requires an explicit conversion. Would just returning m_value work?

&gt; Source/JavaScriptCore/runtime/JSString.h:719
&gt; +    return StringView(m_value);

Surprised this requires an explicit conversion. Would just returning m_value work?</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095975</commentid>
    <comment_count>3</comment_count>
      <attachid>253330</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-19 10:06:33 -0700</bug_when>
    <thetext>Comment on attachment 253330
Patch

Clearing flags on attachment: 253330

Committed r184575: &lt;http://trac.webkit.org/changeset/184575&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1095976</commentid>
    <comment_count>4</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-05-19 10:06:41 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>253330</attachid>
            <date>2015-05-18 10:19:29 -0700</date>
            <delta_ts>2015-05-19 10:06:33 -0700</delta_ts>
            <desc>Patch</desc>
            <filename>bug-145131.diff</filename>
            <type>text/plain</type>
            <size>11011</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDZlNjMxNjkuLjczYTQ4ZjggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE1LTA1LTE4ICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBHaXZlIEpTU3RyaW5nIGEgU3RyaW5nVmll
dyBnZXR0ZXIgYW5kIHN0YXJ0IHVzaW5nIGl0LgorICAgICAgICA8aHR0cHM6Ly93ZWJraXQub3Jn
L2IvMTQ1MTMxPgorCisgICAgICAgIFJldmlld2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAg
ICAgIFdoZW4gSlNTdHJpbmcgaXMgYSBzdWJzdHJpbmcgaW50ZXJuYWxseSwgY2FsbGluZyB2YWx1
ZShFeGVjU3RhdGUqKSBvbiBpdAorICAgICAgICB3aWxsIHJlaWZ5IHRoZSBiYXNlU3RyaW5nL3N0
YXJ0L2xlbmd0aCB0dXBsZSBpbnRvIGEgbmV3IFN0cmluZ0ltcGwuCisKKyAgICAgICAgRm9yIGNs
aWVudHMgdGhhdCBvbmx5IHdhbnQgdG8gbG9vayBhdCB0aGUgY2hhcmFjdGVycyBvZiBhIEpTU3Ry
aW5nLCBidXQKKyAgICAgICAgZG9uJ3QgYWN0dWFsbHkgbmVlZCBhIHJlZmZhYmxlIFN0cmluZ0lt
cGwsIGFkZGluZyBhIGxpZ2h0LXdlaWdodCBTdHJpbmdWaWV3CisgICAgICAgIGdldHRlciBsZXRz
IHRoZW0gYXZvaWQgY29uc3RydWN0aW5nIGFueXRoaW5nLgorCisgICAgICAgIFRoaXMgcGF0Y2gg
YWRkcyBKU1N0cmluZzo6dmlldyhFeGVjU3RhdGUqKSBhbmQgdXNlcyBpdCBpbiBhIGZldyBwbGFj
ZXMuCisgICAgICAgIFRoZXJlIGFyZSBtYW55IG1vcmUgb3Bwb3J0dW5pdGllcyB0byB1c2UgdGhp
cyBBUEksIGJ1dCBsZXQncyBkbyBhIGZldyB0aGluZ3MKKyAgICAgICAgYXQgYSB0aW1lLgorCisg
ICAgICAgICogcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcDoKKyAgICAgICAgKEpTQzo6
Y29uc3RydWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2spOgorICAgICAgICAqIHJ1
bnRpbWUvSlNHbG9iYWxPYmplY3RGdW5jdGlvbnMuY3BwOgorICAgICAgICAoSlNDOjpkZWNvZGUp
OgorICAgICAgICAoSlNDOjpwYXJzZUludCk6CisgICAgICAgIChKU0M6OmpzVG9OdW1iZXIpOgor
ICAgICAgICAoSlNDOjpwYXJzZUZsb2F0KToKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1BhcnNl
SW50KToKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1BhcnNlRmxvYXQpOgorICAgICAgICAoSlND
OjpnbG9iYWxGdW5jRXNjYXBlKToKKyAgICAgICAgKEpTQzo6Z2xvYmFsRnVuY1VuZXNjYXBlKToK
KyAgICAgICAgKiBydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmg6CisgICAgICAgICog
cnVudGltZS9KU09OT2JqZWN0LmNwcDoKKyAgICAgICAgKEpTQzo6SlNPTlByb3RvRnVuY1BhcnNl
KToKKyAgICAgICAgKiBydW50aW1lL0pTU3RyaW5nLmNwcDoKKyAgICAgICAgKEpTQzo6SlNTdHJp
bmc6OmdldFByaW1pdGl2ZU51bWJlcik6CisgICAgICAgIChKU0M6OkpTU3RyaW5nOjp0b051bWJl
cik6CisgICAgICAgICogcnVudGltZS9KU1N0cmluZy5oOgorICAgICAgICAoSlNDOjpKU1JvcGVT
dHJpbmc6OnZpZXcpOgorICAgICAgICAoSlNDOjpKU1N0cmluZzo6dmlldyk6CisKIDIwMTUtMDUt
MTYgIENvbW1pdCBRdWV1ZSAgPGNvbW1pdC1xdWV1ZUB3ZWJraXQub3JnPgogCiAgICAgICAgIFVu
cmV2aWV3ZWQsIHJvbGxpbmcgb3V0IHIxODQ0MTUuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9GdW5jdGlvbkNvbnN0cnVjdG9yLmNwcCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9uQ29uc3RydWN0b3IuY3BwCmluZGV4IDQ0NDhkNmYuLmRi
ZTQyZmEgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0aW9u
Q29uc3RydWN0b3IuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0Z1bmN0
aW9uQ29uc3RydWN0b3IuY3BwCkBAIC0xMDMsMTMgKzEwMywxMyBAQCBKU09iamVjdCogY29uc3Ry
dWN0RnVuY3Rpb25Ta2lwcGluZ0V2YWxFbmFibGVkQ2hlY2soCiAgICAgICAgIGJ1aWxkZXIuYXBw
ZW5kTGl0ZXJhbCgie2Z1bmN0aW9uICIpOwogICAgICAgICBidWlsZGVyLmFwcGVuZChmdW5jdGlv
bk5hbWUuc3RyaW5nKCkpOwogICAgICAgICBidWlsZGVyLmFwcGVuZCgnKCcpOwotICAgICAgICBi
dWlsZGVyLmFwcGVuZChhcmdzLmF0KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7Cisg
ICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFyZ3MuYXQoMCkudG9TdHJpbmcoZXhlYyktPnZpZXcoZXhl
YykpOwogICAgICAgICBmb3IgKHNpemVfdCBpID0gMTsgaSA8IGFyZ3Muc2l6ZSgpIC0gMTsgaSsr
KSB7CiAgICAgICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIiwgIik7Ci0gICAgICAgICAg
ICBidWlsZGVyLmFwcGVuZChhcmdzLmF0KGkpLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKSk7
CisgICAgICAgICAgICBidWlsZGVyLmFwcGVuZChhcmdzLmF0KGkpLnRvU3RyaW5nKGV4ZWMpLT52
aWV3KGV4ZWMpKTsKICAgICAgICAgfQogICAgICAgICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIikg
e1xuIik7Ci0gICAgICAgIGJ1aWxkZXIuYXBwZW5kKGFyZ3MuYXQoYXJncy5zaXplKCkgLSAxKS50
b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpOworICAgICAgICBidWlsZGVyLmFwcGVuZChhcmdz
LmF0KGFyZ3Muc2l6ZSgpIC0gMSkudG9TdHJpbmcoZXhlYyktPnZpZXcoZXhlYykpOwogICAgICAg
ICBidWlsZGVyLmFwcGVuZExpdGVyYWwoIlxufX0iKTsKICAgICAgICAgcHJvZ3JhbSA9IGJ1aWxk
ZXIudG9TdHJpbmcoKTsKICAgICB9CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUv
cnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAgYi9Tb3VyY2UvSmF2YVNjcmlwdENv
cmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5jcHAKaW5kZXggOTlkODRkNC4uYzQ5
YjJhOCAxMDA2NDQKLS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxP
YmplY3RGdW5jdGlvbnMuY3BwCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pT
R2xvYmFsT2JqZWN0RnVuY3Rpb25zLmNwcApAQCAtMTQxLDcgKzE0MSw3IEBAIHN0YXRpYyBKU1Zh
bHVlIGRlY29kZShFeGVjU3RhdGUqIGV4ZWMsIGNvbnN0IENoYXJUeXBlKiBjaGFyYWN0ZXJzLCBp
bnQgbGVuZ3RoLCBjCiAKIHN0YXRpYyBKU1ZhbHVlIGRlY29kZShFeGVjU3RhdGUqIGV4ZWMsIGNv
bnN0IGNoYXIqIGRvTm90VW5lc2NhcGUsIGJvb2wgc3RyaWN0KQogewotICAgIFN0cmluZyBzdHIg
PSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYyk7CisgICAgU3Ry
aW5nVmlldyBzdHIgPSBleGVjLT5hcmd1bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmlldyhleGVj
KTsKICAgICAKICAgICBpZiAoc3RyLmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gZGVjb2RlKGV4
ZWMsIHN0ci5jaGFyYWN0ZXJzOCgpLCBzdHIubGVuZ3RoKCksIGRvTm90VW5lc2NhcGUsIHN0cmlj
dCk7CkBAIC0yMzksNyArMjM5LDcgQEAgc3RhdGljIGRvdWJsZSBwYXJzZUludE92ZXJmbG93KFN0
cmluZ1ZpZXcgc3RyaW5nLCBpbnQgcmFkaXgpCiAvLyBFUzUuMSAxNS4xLjIuMgogdGVtcGxhdGUg
PHR5cGVuYW1lIENoYXJUeXBlPgogQUxXQVlTX0lOTElORQotc3RhdGljIGRvdWJsZSBwYXJzZUlu
dChjb25zdCBTdHJpbmcmIHMsIGNvbnN0IENoYXJUeXBlKiBkYXRhLCBpbnQgcmFkaXgpCitzdGF0
aWMgZG91YmxlIHBhcnNlSW50KFN0cmluZ1ZpZXcgcywgY29uc3QgQ2hhclR5cGUqIGRhdGEsIGlu
dCByYWRpeCkKIHsKICAgICAvLyAxLiBMZXQgaW5wdXRTdHJpbmcgYmUgVG9TdHJpbmcoc3RyaW5n
KS4KICAgICAvLyAyLiBMZXQgUyBiZSBhIG5ld2x5IGNyZWF0ZWQgc3Vic3RyaW5nIG9mIGlucHV0
U3RyaW5nIGNvbnNpc3Rpbmcgb2YgdGhlIGZpcnN0IGNoYXJhY3RlciB0aGF0IGlzIG5vdCBhCkBA
IC0zMTEsMTYgKzMxMSwxNiBAQCBzdGF0aWMgZG91YmxlIHBhcnNlSW50KGNvbnN0IFN0cmluZyYg
cywgY29uc3QgQ2hhclR5cGUqIGRhdGEsIGludCByYWRpeCkKICAgICBpZiAobnVtYmVyID49IG1h
bnRpc3NhT3ZlcmZsb3dMb3dlckJvdW5kKSB7CiAgICAgICAgIGlmIChyYWRpeCA9PSAxMCkgewog
ICAgICAgICAgICAgc2l6ZV90IHBhcnNlZExlbmd0aDsKLSAgICAgICAgICAgIG51bWJlciA9IHBh
cnNlRG91YmxlKFN0cmluZ1ZpZXcocykuc3Vic3RyaW5nKGZpcnN0RGlnaXRQb3NpdGlvbiwgcCAt
IGZpcnN0RGlnaXRQb3NpdGlvbiksIHBhcnNlZExlbmd0aCk7CisgICAgICAgICAgICBudW1iZXIg
PSBwYXJzZURvdWJsZShzLnN1YnN0cmluZyhmaXJzdERpZ2l0UG9zaXRpb24sIHAgLSBmaXJzdERp
Z2l0UG9zaXRpb24pLCBwYXJzZWRMZW5ndGgpOwogICAgICAgICB9IGVsc2UgaWYgKHJhZGl4ID09
IDIgfHwgcmFkaXggPT0gNCB8fCByYWRpeCA9PSA4IHx8IHJhZGl4ID09IDE2IHx8IHJhZGl4ID09
IDMyKQotICAgICAgICAgICAgbnVtYmVyID0gcGFyc2VJbnRPdmVyZmxvdyhTdHJpbmdWaWV3KHMp
LnN1YnN0cmluZyhmaXJzdERpZ2l0UG9zaXRpb24sIHAgLSBmaXJzdERpZ2l0UG9zaXRpb24pLCBy
YWRpeCk7CisgICAgICAgICAgICBudW1iZXIgPSBwYXJzZUludE92ZXJmbG93KHMuc3Vic3RyaW5n
KGZpcnN0RGlnaXRQb3NpdGlvbiwgcCAtIGZpcnN0RGlnaXRQb3NpdGlvbiksIHJhZGl4KTsKICAg
ICB9CiAKICAgICAvLyAxNS4gUmV0dXJuIHNpZ24geCBudW1iZXIuCiAgICAgcmV0dXJuIHNpZ24g
KiBudW1iZXI7CiB9CiAKLXN0YXRpYyBkb3VibGUgcGFyc2VJbnQoY29uc3QgU3RyaW5nJiBzLCBp
bnQgcmFkaXgpCitzdGF0aWMgZG91YmxlIHBhcnNlSW50KFN0cmluZ1ZpZXcgcywgaW50IHJhZGl4
KQogewogICAgIGlmIChzLmlzOEJpdCgpKQogICAgICAgICByZXR1cm4gcGFyc2VJbnQocywgcy5j
aGFyYWN0ZXJzOCgpLCByYWRpeCk7CkBAIC00OTAsNyArNDkwLDcgQEAgc3RhdGljIGRvdWJsZSB0
b0RvdWJsZShjb25zdCBDaGFyVHlwZSogY2hhcmFjdGVycywgdW5zaWduZWQgc2l6ZSkKIH0KIAog
Ly8gU2VlIGVjbWEtMjYyIDZ0aCAxMS44LjMKLWRvdWJsZSBqc1RvTnVtYmVyKGNvbnN0IFN0cmlu
ZyYgcykKK2RvdWJsZSBqc1RvTnVtYmVyKFN0cmluZ1ZpZXcgcykKIHsKICAgICB1bnNpZ25lZCBz
aXplID0gcy5sZW5ndGgoKTsKIApAQCAtNTA4LDcgKzUwOCw3IEBAIGRvdWJsZSBqc1RvTnVtYmVy
KGNvbnN0IFN0cmluZyYgcykKICAgICByZXR1cm4gdG9Eb3VibGUocy5jaGFyYWN0ZXJzMTYoKSwg
c2l6ZSk7CiB9CiAKLXN0YXRpYyBkb3VibGUgcGFyc2VGbG9hdChjb25zdCBTdHJpbmcmIHMpCitz
dGF0aWMgZG91YmxlIHBhcnNlRmxvYXQoU3RyaW5nVmlldyBzKQogewogICAgIHVuc2lnbmVkIHNp
emUgPSBzLmxlbmd0aCgpOwogCkBAIC02MDEsNyArNjAxLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlND
X0hPU1RfQ0FMTCBnbG9iYWxGdW5jUGFyc2VJbnQoRXhlY1N0YXRlKiBleGVjKQogICAgIH0KIAog
ICAgIC8vIElmIFRvU3RyaW5nIHRocm93cywgd2Ugc2hvdWxkbid0IGNhbGwgVG9JbnQzMi4KLSAg
ICBTdHJpbmcgcyA9IHZhbHVlLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBTdHJp
bmdWaWV3IHMgPSB2YWx1ZS50b1N0cmluZyhleGVjKS0+dmlldyhleGVjKTsKICAgICBpZiAoZXhl
Yy0+aGFkRXhjZXB0aW9uKCkpCiAgICAgICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNVbmRl
ZmluZWQoKSk7CiAKQEAgLTYxMCw3ICs2MTAsNyBAQCBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9D
QUxMIGdsb2JhbEZ1bmNQYXJzZUludChFeGVjU3RhdGUqIGV4ZWMpCiAKIEVuY29kZWRKU1ZhbHVl
IEpTQ19IT1NUX0NBTEwgZ2xvYmFsRnVuY1BhcnNlRmxvYXQoRXhlY1N0YXRlKiBleGVjKQogewot
ICAgIHJldHVybiBKU1ZhbHVlOjplbmNvZGUoanNOdW1iZXIocGFyc2VGbG9hdChleGVjLT5hcmd1
bWVudCgwKS50b1N0cmluZyhleGVjKS0+dmFsdWUoZXhlYykpKSk7CisgICAgcmV0dXJuIEpTVmFs
dWU6OmVuY29kZShqc051bWJlcihwYXJzZUZsb2F0KGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5n
KGV4ZWMpLT52aWV3KGV4ZWMpKSkpOwogfQogCiBFbmNvZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxM
IGdsb2JhbEZ1bmNJc05hTihFeGVjU3RhdGUqIGV4ZWMpCkBAIC02NjgsNyArNjY4LDcgQEAgRW5j
b2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jRXNjYXBlKEV4ZWNTdGF0ZSogZXhl
YykKICAgICAgICAgIiorLS4vQF8iOwogCiAgICAgSlNTdHJpbmdCdWlsZGVyIGJ1aWxkZXI7Ci0g
ICAgU3RyaW5nIHN0ciA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShl
eGVjKTsKKyAgICBTdHJpbmdWaWV3IHN0ciA9IGV4ZWMtPmFyZ3VtZW50KDApLnRvU3RyaW5nKGV4
ZWMpLT52aWV3KGV4ZWMpOwogICAgIGlmIChzdHIuaXM4Qml0KCkpIHsKICAgICAgICAgY29uc3Qg
TENoYXIqIGMgPSBzdHIuY2hhcmFjdGVyczgoKTsKICAgICAgICAgZm9yICh1bnNpZ25lZCBrID0g
MDsgayA8IHN0ci5sZW5ndGgoKTsgaysrLCBjKyspIHsKQEAgLTcwNiw3ICs3MDYsNyBAQCBFbmNv
ZGVkSlNWYWx1ZSBKU0NfSE9TVF9DQUxMIGdsb2JhbEZ1bmNFc2NhcGUoRXhlY1N0YXRlKiBleGVj
KQogRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxGdW5jVW5lc2NhcGUoRXhlY1N0
YXRlKiBleGVjKQogewogICAgIFN0cmluZ0J1aWxkZXIgYnVpbGRlcjsKLSAgICBTdHJpbmcgc3Ry
ID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZhbHVlKGV4ZWMpOworICAgIFN0
cmluZ1ZpZXcgc3RyID0gZXhlYy0+YXJndW1lbnQoMCkudG9TdHJpbmcoZXhlYyktPnZpZXcoZXhl
Yyk7CiAgICAgaW50IGsgPSAwOwogICAgIGludCBsZW4gPSBzdHIubGVuZ3RoKCk7CiAgICAgCmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1
bmN0aW9ucy5oIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNHbG9iYWxPYmplY3RG
dW5jdGlvbnMuaAppbmRleCA2OTkwMmRmLi44ZDBkMmQxIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvcnVudGltZS9KU0dsb2JhbE9iamVjdEZ1bmN0aW9ucy5oCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTR2xvYmFsT2JqZWN0RnVuY3Rpb25zLmgKQEAgLTYw
LDcgKzYwLDcgQEAgRW5jb2RlZEpTVmFsdWUgSlNDX0hPU1RfQ0FMTCBnbG9iYWxQcml2YXRlRnVu
Y0Zsb29yKEV4ZWNTdGF0ZSopOwogc3RhdGljIGNvbnN0IGRvdWJsZSBtYW50aXNzYU92ZXJmbG93
TG93ZXJCb3VuZCA9IDkwMDcxOTkyNTQ3NDA5OTIuMDsKIGRvdWJsZSBwYXJzZUludE92ZXJmbG93
KGNvbnN0IExDaGFyKiwgdW5zaWduZWQgbGVuZ3RoLCBpbnQgcmFkaXgpOwogYm9vbCBpc1N0cldo
aXRlU3BhY2UoVUNoYXIpOwotZG91YmxlIGpzVG9OdW1iZXIoY29uc3QgV1RGOjpTdHJpbmcmKTsK
K2RvdWJsZSBqc1RvTnVtYmVyKFN0cmluZ1ZpZXcpOwogCiB9IC8vIG5hbWVzcGFjZSBKU0MKIApk
aWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNPTk9iamVjdC5jcHAg
Yi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2JqZWN0LmNwcAppbmRleCA4YzY5
ZWU5Li42MWRjMDQ2IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9K
U09OT2JqZWN0LmNwcAorKysgYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU09OT2Jq
ZWN0LmNwcApAQCAtNzE5LDcgKzcxOSw3IEBAIEVuY29kZWRKU1ZhbHVlIEpTQ19IT1NUX0NBTEwg
SlNPTlByb3RvRnVuY1BhcnNlKEV4ZWNTdGF0ZSogZXhlYykKIHsKICAgICBpZiAoIWV4ZWMtPmFy
Z3VtZW50Q291bnQoKSkKICAgICAgICAgcmV0dXJuIHRocm93Vk1FcnJvcihleGVjLCBjcmVhdGVF
cnJvcihleGVjLCBBU0NJSUxpdGVyYWwoIkpTT04ucGFyc2UgcmVxdWlyZXMgYXQgbGVhc3Qgb25l
IHBhcmFtZXRlciIpKSk7Ci0gICAgU3RyaW5nIHNvdXJjZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3Vt
ZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52YWx1ZShleGVjKTsKKyAgICBTdHJpbmdWaWV3IHNvdXJj
ZSA9IGV4ZWMtPnVuY2hlY2tlZEFyZ3VtZW50KDApLnRvU3RyaW5nKGV4ZWMpLT52aWV3KGV4ZWMp
OwogICAgIGlmIChleGVjLT5oYWRFeGNlcHRpb24oKSkKICAgICAgICAgcmV0dXJuIEpTVmFsdWU6
OmVuY29kZShqc051bGwoKSk7CiAKZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9y
dW50aW1lL0pTU3RyaW5nLmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9ydW50aW1lL0pTU3Ry
aW5nLmNwcAppbmRleCAxM2I5MGVmLi4xNTc4MGE0IDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3Jl
L3J1bnRpbWUvSlNTdHJpbmcuY3BwCkBAIC0zODUsNyArMzg1LDcgQEAgSlNWYWx1ZSBKU1N0cmlu
Zzo6dG9QcmltaXRpdmUoRXhlY1N0YXRlKiwgUHJlZmVycmVkUHJpbWl0aXZlVHlwZSkgY29uc3QK
IGJvb2wgSlNTdHJpbmc6OmdldFByaW1pdGl2ZU51bWJlcihFeGVjU3RhdGUqIGV4ZWMsIGRvdWJs
ZSYgbnVtYmVyLCBKU1ZhbHVlJiByZXN1bHQpIGNvbnN0CiB7CiAgICAgcmVzdWx0ID0gdGhpczsK
LSAgICBudW1iZXIgPSBqc1RvTnVtYmVyKHZhbHVlKGV4ZWMpKTsKKyAgICBudW1iZXIgPSBqc1Rv
TnVtYmVyKHZpZXcoZXhlYykpOwogICAgIHJldHVybiBmYWxzZTsKIH0KIApAQCAtMzk2LDcgKzM5
Niw3IEBAIGJvb2wgSlNTdHJpbmc6OnRvQm9vbGVhbigpIGNvbnN0CiAKIGRvdWJsZSBKU1N0cmlu
Zzo6dG9OdW1iZXIoRXhlY1N0YXRlKiBleGVjKSBjb25zdAogewotICAgIHJldHVybiBqc1RvTnVt
YmVyKHZhbHVlKGV4ZWMpKTsKKyAgICByZXR1cm4ganNUb051bWJlcih2aWV3KGV4ZWMpKTsKIH0K
IAogaW5saW5lIFN0cmluZ09iamVjdCogU3RyaW5nT2JqZWN0OjpjcmVhdGUoVk0mIHZtLCBKU0ds
b2JhbE9iamVjdCogZ2xvYmFsT2JqZWN0LCBKU1N0cmluZyogc3RyaW5nKQpkaWZmIC0tZ2l0IGEv
U291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaCBiL1NvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9ydW50aW1lL0pTU3RyaW5nLmgKaW5kZXggYTIyZTZmYi4uZTQ4ZDA1YSAxMDA2NDQK
LS0tIGEvU291cmNlL0phdmFTY3JpcHRDb3JlL3J1bnRpbWUvSlNTdHJpbmcuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvcnVudGltZS9KU1N0cmluZy5oCkBAIC0zMCw2ICszMCw3IEBACiAj
aW5jbHVkZSAiUHJvcGVydHlTbG90LmgiCiAjaW5jbHVkZSAiU3RydWN0dXJlLmgiCiAjaW5jbHVk
ZSA8YXJyYXk+CisjaW5jbHVkZSA8d3RmL3RleHQvU3RyaW5nVmlldy5oPgogCiBuYW1lc3BhY2Ug
SlNDIHsKIApAQCAtMTQzLDYgKzE0NCw3IEBAIHB1YmxpYzoKICAgICBJZGVudGlmaWVyIHRvSWRl
bnRpZmllcihFeGVjU3RhdGUqKSBjb25zdDsKICAgICBBdG9taWNTdHJpbmcgdG9BdG9taWNTdHJp
bmcoRXhlY1N0YXRlKikgY29uc3Q7CiAgICAgQXRvbWljU3RyaW5nSW1wbCogdG9FeGlzdGluZ0F0
b21pY1N0cmluZyhFeGVjU3RhdGUqKSBjb25zdDsKKyAgICBTdHJpbmdWaWV3IHZpZXcoRXhlY1N0
YXRlKikgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5nJiB2YWx1ZShFeGVjU3RhdGUqKSBjb25zdDsK
ICAgICBjb25zdCBTdHJpbmcmIHRyeUdldFZhbHVlKCkgY29uc3Q7CiAgICAgY29uc3QgU3RyaW5n
SW1wbCogdHJ5R2V0VmFsdWVJbXBsKCkgY29uc3Q7CkBAIC0zNjksNiArMzcxLDcgQEAgcHJpdmF0
ZToKICAgICB2b2lkIHJlc29sdmVSb3BlSW50ZXJuYWwxNihVQ2hhciopIGNvbnN0OwogICAgIHZv
aWQgcmVzb2x2ZVJvcGVJbnRlcm5hbDE2Tm9TdWJzdHJpbmcoVUNoYXIqKSBjb25zdDsKICAgICB2
b2lkIGNsZWFyRmliZXJzKCkgY29uc3Q7CisgICAgU3RyaW5nVmlldyB2aWV3KEV4ZWNTdGF0ZSop
IGNvbnN0OwogCiAgICAgSlNfRVhQT1JUX1BSSVZBVEUgSlNTdHJpbmcqIGdldEluZGV4U2xvd0Nh
c2UoRXhlY1N0YXRlKiwgdW5zaWduZWQpOwogCkBAIC02OTgsNiArNzAxLDI0IEBAIEFMV0FZU19J
TkxJTkUgU3RyaW5nIEpTVmFsdWU6OnRvV1RGU3RyaW5nSW5saW5lKEV4ZWNTdGF0ZSogZXhlYykg
Y29uc3QKICAgICByZXR1cm4gaW5saW5lSlNWYWx1ZU5vdFN0cmluZ3RvU3RyaW5nKCp0aGlzLCBl
eGVjKTsKIH0KIAorQUxXQVlTX0lOTElORSBTdHJpbmdWaWV3IEpTUm9wZVN0cmluZzo6dmlldyhF
eGVjU3RhdGUqIGV4ZWMpIGNvbnN0Cit7CisgICAgaWYgKGlzU3Vic3RyaW5nKCkpIHsKKyAgICAg
ICAgaWYgKGlzOEJpdCgpKQorICAgICAgICAgICAgcmV0dXJuIFN0cmluZ1ZpZXcoc3Vic3RyaW5n
QmFzZSgpLT5tX3ZhbHVlLmNoYXJhY3RlcnM4KCkgKyBzdWJzdHJpbmdPZmZzZXQoKSwgbV9sZW5n
dGgpOworICAgICAgICByZXR1cm4gU3RyaW5nVmlldyhzdWJzdHJpbmdCYXNlKCktPm1fdmFsdWUu
Y2hhcmFjdGVyczE2KCkgKyBzdWJzdHJpbmdPZmZzZXQoKSwgbV9sZW5ndGgpOworICAgIH0KKyAg
ICByZXNvbHZlUm9wZShleGVjKTsKKyAgICByZXR1cm4gU3RyaW5nVmlldyhtX3ZhbHVlKTsKK30K
KworQUxXQVlTX0lOTElORSBTdHJpbmdWaWV3IEpTU3RyaW5nOjp2aWV3KEV4ZWNTdGF0ZSogZXhl
YykgY29uc3QKK3sKKyAgICBpZiAoaXNSb3BlKCkpCisgICAgICAgIHJldHVybiBzdGF0aWNfY2Fz
dDxjb25zdCBKU1JvcGVTdHJpbmcqPih0aGlzKS0+dmlldyhleGVjKTsKKyAgICByZXR1cm4gU3Ry
aW5nVmlldyhtX3ZhbHVlKTsKK30KKwogfSAvLyBuYW1lc3BhY2UgSlNDCiAKICNlbmRpZiAvLyBK
U1N0cmluZ19oCg==
</data>

          </attachment>
      

    </bug>

</bugzilla>