<?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>20718</bug_id>
          
          <creation_ts>2008-09-08 04:05:34 -0700</creation_ts>
          <short_desc>Cache the code generated for eval to speed up SunSpider and web sites</short_desc>
          <delta_ts>2008-09-08 09:46:00 -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>WebCore JavaScript</component>
          <version>528+ (Nightly build)</version>
          <rep_platform>Mac</rep_platform>
          <op_sys>OS X 10.5</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="Maciej Stachowiak">mjs</reporter>
          <assigned_to name="Maciej Stachowiak">mjs</assigned_to>
          <cc>eric</cc>
    
    <cc>oliver</cc>
    
    <cc>zwarich</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>90497</commentid>
    <comment_count>0</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-09-08 04:05:34 -0700</bug_when>
    <thetext>The date-format-tofte test could benefit from an eval code cache, whereby code for the same string eval&apos;d in the same context is retained so that repeated evals can skip parsing and compilation. Bleeding-edge V8 includes a similar idea.

It turns out that real sites benefit from this as well. Google spreadsheets, GMail, Slate and Digg all get hits on this cache, between 2 and 100 depending on the site. I also tested that in the miss case there is no measurable slowdown.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90499</commentid>
    <comment_count>1</comment_count>
      <attachid>23247</attachid>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-09-08 04:17:10 -0700</bug_when>
    <thetext>Created attachment 23247
add an eval code cache</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90500</commentid>
    <comment_count>2</comment_count>
    <who name="Maciej Stachowiak">mjs</who>
    <bug_when>2008-09-08 04:19:13 -0700</bug_when>
    <thetext>The attached patch is a 1.052x speedup on SunSpider relative to trunk.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90501</commentid>
    <comment_count>3</comment_count>
      <attachid>23247</attachid>
    <who name="Anders Carlsson">andersca</who>
    <bug_when>2008-09-08 04:28:57 -0700</bug_when>
    <thetext>Comment on attachment 23247
add an eval code cache

&gt;\ No newline at end of file

Should add a newline here.

r=me</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>90548</commentid>
    <comment_count>4</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2008-09-08 09:46:00 -0700</bug_when>
    <thetext>Why not make the cache per global object? That would save memory in the case of a lot of functions doing similar evals.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>23247</attachid>
            <date>2008-09-08 04:17:10 -0700</date>
            <delta_ts>2008-09-08 04:28:57 -0700</delta_ts>
            <desc>add an eval code cache</desc>
            <filename>eval-code-cache.patch.txt</filename>
            <type>text/plain</type>
            <size>10445</size>
            <attacher name="Maciej Stachowiak">mjs</attacher>
            
              <data encoding="base64">SW5kZXg6IEphdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0
Q29yZS9DaGFuZ2VMb2cJKHJldmlzaW9uIDM2MjY1KQorKysgSmF2YVNjcmlwdENvcmUvQ2hhbmdl
TG9nCSh3b3JraW5nIGNvcHkpCkBAIC0xLDMgKzEsMjUgQEAKKzIwMDgtMDktMDggIE1hY2llaiBT
dGFjaG93aWFrICA8bWpzQGFwcGxlLmNvbT4KKworICAgICAgICBSZXZpZXdlZCBieSBOT0JPRFkg
KE9PUFMhKS4KKyAgICAgICAgCisgICAgICAgIC0gQ2FjaGUgdGhlIGNvZGUgZ2VuZXJhdGVkIGZv
ciBldmFsIHRvIHNwZWVkIHVwIFN1blNwaWRlciBhbmQgd2ViIHNpdGVzCisgICAgICAgIGh0dHBz
Oi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0yMDcxOAorICAgICAgICAKKyAgICAg
ICAgMS4wNTJ4IG9uIFN1blNwaWRlcgorICAgICAgICAyLjI5eCBvbiBkYXRlLWZvcm1hdC10b2Z0
ZQorICAgICAgICAKKyAgICAgICAgTG90cyBvZiByZWFsIHNpdGVzIHNlZW0gdG8gZ2V0IG1hbnkg
aGl0cyBvbiB0aGlzIGNhY2hlIGFzIHdlbGwsCisgICAgICAgIGluY2x1ZGluZyBHTWFpbCwgR29v
Z2xlIFNwcmVhZHNoZWV0cywgU2xhdGUgYW5kIERpZ2cgKHRoZSBsYXN0IG9mCisgICAgICAgIHRo
ZXNlIGdldHMgb3ZlciAxMDAgaGl0cyBvbiBpbml0aWFsIHBhZ2UgbG9hZCkuCisKKyAgICAgICAg
KiBWTS9Db2RlQmxvY2suaDoKKyAgICAgICAgKEpTQzo6RXZhbENvZGVDYWNoZTo6Z2V0KToKKyAg
ICAgICAgKiBWTS9NYWNoaW5lLmNwcDoKKyAgICAgICAgKEpTQzo6TWFjaGluZTo6Y2FsbEV2YWwp
OgorICAgICAgICAoSlNDOjpNYWNoaW5lOjpwcml2YXRlRXhlY3V0ZSk6CisgICAgICAgIChKU0M6
Ok1hY2hpbmU6OmN0aV9vcF9jYWxsX2V2YWwpOgorICAgICAgICAqIFZNL01hY2hpbmUuaDoKKwog
MjAwOC0wOS0wNyAgQ2FtZXJvbiBad2FyaWNoICA8Y3d6d2FyaWNoQHV3YXRlcmxvby5jYT4KIAog
ICAgICAgICBSZXZpZXdlZCBieSBPbGl2ZXIgSHVudC4KSW5kZXg6IEphdmFTY3JpcHRDb3JlL1ZN
L0NvZGVCbG9jay5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIEphdmFTY3JpcHRDb3JlL1ZNL0NvZGVCbG9jay5o
CShyZXZpc2lvbiAzNjI2MykKKysrIEphdmFTY3JpcHRDb3JlL1ZNL0NvZGVCbG9jay5oCSh3b3Jr
aW5nIGNvcHkpCkBAIC0zMyw2ICszMyw3IEBACiAjaW5jbHVkZSAiSW5zdHJ1Y3Rpb24uaCIKICNp
bmNsdWRlICJKU0dsb2JhbE9iamVjdC5oIgogI2luY2x1ZGUgIm5vZGVzLmgiCisjaW5jbHVkZSAi
UGFyc2VyLmgiCiAjaW5jbHVkZSAiU291cmNlUmFuZ2UuaCIKICNpbmNsdWRlICJ1c3RyaW5nLmgi
CiAjaW5jbHVkZSA8d3RmL1JlZlB0ci5oPgpAQCAtMTI5LDYgKzEzMCw0MCBAQCBuYW1lc3BhY2Ug
SlNDIHsKICNlbmRpZgogICAgIH07CiAKKyAgICBjbGFzcyBFdmFsQ29kZUNhY2hlIHsKKyAgICBw
dWJsaWM6CisgICAgICAgIFBhc3NSZWZQdHI8RXZhbE5vZGU+IGdldChFeGVjU3RhdGUqIGV4ZWMs
IGNvbnN0IFVTdHJpbmcmIGV2YWxTb3VyY2UsIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluLCBK
U1ZhbHVlKiYgZXhjZXB0aW9uVmFsdWUpCisgICAgICAgIHsKKyAgICAgICAgICAgIFJlZlB0cjxF
dmFsTm9kZT4gZXZhbE5vZGU7CisKKyAgICAgICAgICAgIGlmIChldmFsU291cmNlLnNpemUoKSA8
IG1heENhY2hlYWJsZVNvdXJjZUxlbmd0aCAmJiAoKnNjb3BlQ2hhaW4tPmJlZ2luKCkpLT5pc1Zh
cmlhYmxlT2JqZWN0KCkpCisgICAgICAgICAgICAgICAgZXZhbE5vZGUgPSBjYWNoZU1hcC5nZXQo
ZXZhbFNvdXJjZS5yZXAoKSk7CisKKyAgICAgICAgICAgIGlmICghZXZhbE5vZGUpIHsKKyAgICAg
ICAgICAgICAgICBpbnQgc291cmNlSWQ7CisgICAgICAgICAgICAgICAgaW50IGVyckxpbmU7Cisg
ICAgICAgICAgICAgICAgVVN0cmluZyBlcnJNc2c7CisgICAgICAgICAgICAgICAgCisgICAgICAg
ICAgICAgICAgZXZhbE5vZGUgPSBleGVjLT5wYXJzZXIoKS0+cGFyc2U8RXZhbE5vZGU+KGV4ZWMs
IFVTdHJpbmcoKSwgMSwgVVN0cmluZ1NvdXJjZVByb3ZpZGVyOjpjcmVhdGUoZXZhbFNvdXJjZSks
ICZzb3VyY2VJZCwgJmVyckxpbmUsICZlcnJNc2cpOworICAgICAgICAgICAgICAgIGlmIChldmFs
Tm9kZSkgeworICAgICAgICAgICAgICAgICAgICBpZiAoZXZhbFNvdXJjZS5zaXplKCkgPCBtYXhD
YWNoZWFibGVTb3VyY2VMZW5ndGggJiYgKCpzY29wZUNoYWluLT5iZWdpbigpKS0+aXNWYXJpYWJs
ZU9iamVjdCgpICYmIGNhY2hlTWFwLnNpemUoKSA8IG1heENhY2hlRW50cmllcykKKyAgICAgICAg
ICAgICAgICAgICAgICAgIGNhY2hlTWFwLnNldChldmFsU291cmNlLnJlcCgpLCBldmFsTm9kZSk7
CisgICAgICAgICAgICAgICAgfSBlbHNlIHsKKyAgICAgICAgICAgICAgICAgICAgZXhjZXB0aW9u
VmFsdWUgPSBFcnJvcjo6Y3JlYXRlKGV4ZWMsIFN5bnRheEVycm9yLCBlcnJNc2csIGVyckxpbmUs
IHNvdXJjZUlkLCBOVUxMKTsKKyAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDA7CisgICAgICAg
ICAgICAgICAgfQorICAgICAgICAgICAgfQorCisgICAgICAgICAgICByZXR1cm4gZXZhbE5vZGUu
cmVsZWFzZSgpOworICAgICAgICB9CisKKyAgICBwcml2YXRlOgorICAgICAgICBzdGF0aWMgY29u
c3QgaW50IG1heENhY2hlYWJsZVNvdXJjZUxlbmd0aCA9IDI1NjsKKyAgICAgICAgc3RhdGljIGNv
bnN0IGludCBtYXhDYWNoZUVudHJpZXMgPSA2NDsKKworICAgICAgICBIYXNoTWFwPFJlZlB0cjxV
U3RyaW5nOjpSZXA+LCBSZWZQdHI8RXZhbE5vZGU+ID4gY2FjaGVNYXA7CisgICAgfTsKKwogICAg
IHN0cnVjdCBDb2RlQmxvY2sgewogICAgICAgICBDb2RlQmxvY2soU2NvcGVOb2RlKiBvd25lck5v
ZGVfLCBDb2RlVHlwZSBjb2RlVHlwZV8sIFBhc3NSZWZQdHI8U291cmNlUHJvdmlkZXI+IHNvdXJj
ZV8sIHVuc2lnbmVkIHNvdXJjZU9mZnNldF8pCiAgICAgICAgICAgICA6IG93bmVyTm9kZShvd25l
ck5vZGVfKQpAQCAtMjA3LDEwICsyNDIsMTMgQEAgbmFtZXNwYWNlIEpTQyB7CiAgICAgICAgIEhh
c2hNYXA8dm9pZCosIHVuc2lnbmVkPiBjdGlSZXR1cm5BZGRyZXNzVlBDTWFwOwogI2VuZGlmCiAK
KyAgICAgICAgRXZhbENvZGVDYWNoZSBldmFsQ29kZUNhY2hlOworCiAgICAgcHJpdmF0ZToKICNp
ZiAhZGVmaW5lZChOREVCVUcpIHx8IEVOQUJMRShTQU1QTElOR19UT09MKQogICAgICAgICB2b2lk
IGR1bXAoRXhlY1N0YXRlKiwgY29uc3QgVmVjdG9yPEluc3RydWN0aW9uPjo6Y29uc3RfaXRlcmF0
b3ImIGJlZ2luLCBWZWN0b3I8SW5zdHJ1Y3Rpb24+Ojpjb25zdF9pdGVyYXRvciYpIGNvbnN0Owog
I2VuZGlmCisKICAgICB9OwogCiAgICAgLy8gUHJvZ3JhbSBjb2RlIGlzIG5vdCBtYXJrZWQgYnkg
YW55IGZ1bmN0aW9uLCBzbyB3ZSBtYWtlIHRoZSBnbG9iYWwgb2JqZWN0CkluZGV4OiBKYXZhU2Ny
aXB0Q29yZS9WTS9NYWNoaW5lLmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2NyaXB0Q29yZS9WTS9N
YWNoaW5lLmNwcAkocmV2aXNpb24gMzYyNjMpCisrKyBKYXZhU2NyaXB0Q29yZS9WTS9NYWNoaW5l
LmNwcAkod29ya2luZyBjb3B5KQpAQCAtNDkzLDcgKzQ5Myw3IEBAIHN0YXRpYyBORVZFUl9JTkxJ
TkUgYm9vbCBpc05vdE9iamVjdChFeGUKICAgICByZXR1cm4gdHJ1ZTsKIH0KIAotTkVWRVJfSU5M
SU5FIEpTVmFsdWUqIE1hY2hpbmU6OmNhbGxFdmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3Qq
IHRoaXNPYmosIFNjb3BlQ2hhaW5Ob2RlKiBzY29wZUNoYWluLCBSZWdpc3RlckZpbGUqIHJlZ2lz
dGVyRmlsZSwgUmVnaXN0ZXIqIHIsIGludCBhcmd2LCBpbnQgYXJnYywgSlNWYWx1ZSomIGV4Y2Vw
dGlvblZhbHVlKQorTkVWRVJfSU5MSU5FIEpTVmFsdWUqIE1hY2hpbmU6OmNhbGxFdmFsKEV4ZWNT
dGF0ZSogZXhlYywgQ29kZUJsb2NrKiBjYWxsaW5nQ29kZUJsb2NrLCBKU09iamVjdCogdGhpc09i
aiwgU2NvcGVDaGFpbk5vZGUqIHNjb3BlQ2hhaW4sIFJlZ2lzdGVyRmlsZSogcmVnaXN0ZXJGaWxl
LCBSZWdpc3RlciogciwgaW50IGFyZ3YsIGludCBhcmdjLCBKU1ZhbHVlKiYgZXhjZXB0aW9uVmFs
dWUpCiB7CiAgICAgaWYgKGFyZ2MgPCAyKQogICAgICAgICByZXR1cm4ganNVbmRlZmluZWQoKTsK
QEAgLTUwNywxOSArNTA3LDEzIEBAIE5FVkVSX0lOTElORSBKU1ZhbHVlKiBNYWNoaW5lOjpjYWxs
RXZhbCgKICAgICBpZiAoKnByb2ZpbGVyKQogICAgICAgICAoKnByb2ZpbGVyKS0+d2lsbEV4ZWN1
dGUoZXhlYywgc2NvcGVDaGFpbi0+Z2xvYmFsT2JqZWN0KCktPmV2YWxGdW5jdGlvbigpKTsKIAot
ICAgIGludCBzb3VyY2VJZDsKLSAgICBpbnQgZXJyTGluZTsKLSAgICBVU3RyaW5nIGVyck1zZzsK
LSAgICBSZWZQdHI8RXZhbE5vZGU+IGV2YWxOb2RlID0gZXhlYy0+cGFyc2VyKCktPnBhcnNlPEV2
YWxOb2RlPihleGVjLCBVU3RyaW5nKCksIDEsIFVTdHJpbmdTb3VyY2VQcm92aWRlcjo6Y3JlYXRl
KHN0YXRpY19jYXN0PEpTU3RyaW5nKj4ocHJvZ3JhbSktPnZhbHVlKCkpLCAmc291cmNlSWQsICZl
cnJMaW5lLCAmZXJyTXNnKTsKLQotICAgIGlmICghZXZhbE5vZGUpIHsKLSAgICAgICAgZXhjZXB0
aW9uVmFsdWUgPSBFcnJvcjo6Y3JlYXRlKGV4ZWMsIFN5bnRheEVycm9yLCBlcnJNc2csIGVyckxp
bmUsIHNvdXJjZUlkLCBOVUxMKTsKLSAgICAgICAgaWYgKCpwcm9maWxlcikKLSAgICAgICAgICAg
ICgqcHJvZmlsZXIpLT5kaWRFeGVjdXRlKGV4ZWMsIHNjb3BlQ2hhaW4tPmdsb2JhbE9iamVjdCgp
LT5ldmFsRnVuY3Rpb24oKSk7Ci0gICAgICAgIHJldHVybiAwOwotICAgIH0KKyAgICBVU3RyaW5n
IHByb2dyYW1Tb3VyY2UgPSBzdGF0aWNfY2FzdDxKU1N0cmluZyo+KHByb2dyYW0pLT52YWx1ZSgp
OworCisgICAgUmVmUHRyPEV2YWxOb2RlPiBldmFsTm9kZSA9IGNhbGxpbmdDb2RlQmxvY2stPmV2
YWxDb2RlQ2FjaGUuZ2V0KGV4ZWMsIHByb2dyYW1Tb3VyY2UsIHNjb3BlQ2hhaW4sIGV4Y2VwdGlv
blZhbHVlKTsKIAotICAgIEpTVmFsdWUqIHJlc3VsdCA9IGV4ZWMtPmdsb2JhbERhdGEoKS5tYWNo
aW5lLT5leGVjdXRlKGV2YWxOb2RlLmdldCgpLCBleGVjLCB0aGlzT2JqLCByIC0gcmVnaXN0ZXJG
aWxlLT5iYXNlKCkgKyBhcmd2ICsgYXJnYywgc2NvcGVDaGFpbiwgJmV4Y2VwdGlvblZhbHVlKTsK
KyAgICBKU1ZhbHVlKiByZXN1bHQgPSAwOworICAgIGlmIChldmFsTm9kZSkKKyAgICAgICAgcmVz
dWx0ID0gZXhlYy0+Z2xvYmFsRGF0YSgpLm1hY2hpbmUtPmV4ZWN1dGUoZXZhbE5vZGUuZ2V0KCks
IGV4ZWMsIHRoaXNPYmosIHIgLSByZWdpc3RlckZpbGUtPmJhc2UoKSArIGFyZ3YgKyBhcmdjLCBz
Y29wZUNoYWluLCAmZXhjZXB0aW9uVmFsdWUpOwogCiAgICAgaWYgKCpwcm9maWxlcikKICAgICAg
ICAgKCpwcm9maWxlciktPmRpZEV4ZWN1dGUoZXhlYywgc2NvcGVDaGFpbi0+Z2xvYmFsT2JqZWN0
KCktPmV2YWxGdW5jdGlvbigpKTsKQEAgLTI4ODAsNyArMjg3NCw3IEBAIEpTVmFsdWUqIE1hY2hp
bmU6OnByaXZhdGVFeGVjdXRlKEV4ZWN1dGkKIAogICAgICAgICBpZiAoYmFzZVZhbCA9PSBzY29w
ZUNoYWluLT5nbG9iYWxPYmplY3QoKSAmJiBmdW5jVmFsID09IHNjb3BlQ2hhaW4tPmdsb2JhbE9i
amVjdCgpLT5ldmFsRnVuY3Rpb24oKSkgewogICAgICAgICAgICAgSlNPYmplY3QqIHRoaXNPYmpl
Y3QgPSBzdGF0aWNfY2FzdDxKU09iamVjdCo+KHJbY29kZUJsb2NrLT50aGlzUmVnaXN0ZXJdLmpz
VmFsdWUoZXhlYykpOwotICAgICAgICAgICAgSlNWYWx1ZSogcmVzdWx0ID0gY2FsbEV2YWwoZXhl
YywgdGhpc09iamVjdCwgc2NvcGVDaGFpbiwgcmVnaXN0ZXJGaWxlLCByLCBmaXJzdEFyZywgYXJn
Q291bnQsIGV4Y2VwdGlvblZhbHVlKTsKKyAgICAgICAgICAgIEpTVmFsdWUqIHJlc3VsdCA9IGNh
bGxFdmFsKGV4ZWMsIGNvZGVCbG9jaywgdGhpc09iamVjdCwgc2NvcGVDaGFpbiwgcmVnaXN0ZXJG
aWxlLCByLCBmaXJzdEFyZywgYXJnQ291bnQsIGV4Y2VwdGlvblZhbHVlKTsKICAgICAgICAgICAg
IGlmIChleGNlcHRpb25WYWx1ZSkKICAgICAgICAgICAgICAgICBnb3RvIHZtX3Rocm93OwogCkBA
IC00NzgxLDcgKzQ3NzUsNyBAQCBKU1ZhbHVlKiBNYWNoaW5lOjpjdGlfb3BfY2FsbF9ldmFsKENU
SV9BCiAKICAgICBpZiAoYmFzZVZhbCA9PSBzY29wZUNoYWluLT5nbG9iYWxPYmplY3QoKSAmJiBm
dW5jVmFsID09IHNjb3BlQ2hhaW4tPmdsb2JhbE9iamVjdCgpLT5ldmFsRnVuY3Rpb24oKSkgewog
ICAgICAgICBKU09iamVjdCogdGhpc09iamVjdCA9IHN0YXRpY19jYXN0PEpTT2JqZWN0Kj4ocltj
b2RlQmxvY2stPnRoaXNSZWdpc3Rlcl0uanNWYWx1ZShleGVjKSk7Ci0gICAgICAgIEpTVmFsdWUq
IHJlc3VsdCA9IG1hY2hpbmUtPmNhbGxFdmFsKGV4ZWMsIHRoaXNPYmplY3QsIHNjb3BlQ2hhaW4s
IHJlZ2lzdGVyRmlsZSwgIHIsIGZpcnN0QXJnLCBhcmdDb3VudCwgZXhjZXB0aW9uVmFsdWUpOwor
ICAgICAgICBKU1ZhbHVlKiByZXN1bHQgPSBtYWNoaW5lLT5jYWxsRXZhbChleGVjLCBjb2RlQmxv
Y2ssIHRoaXNPYmplY3QsIHNjb3BlQ2hhaW4sIHJlZ2lzdGVyRmlsZSwgIHIsIGZpcnN0QXJnLCBh
cmdDb3VudCwgZXhjZXB0aW9uVmFsdWUpOwogICAgICAgICBKU1ZBTFVFX1ZNX0NIRUNLX0VYQ0VQ
VElPTl9BUkcoZXhjZXB0aW9uVmFsdWUpOwogICAgICAgICByZXR1cm4gcmVzdWx0OwogICAgIH0K
SW5kZXg6IEphdmFTY3JpcHRDb3JlL1ZNL01hY2hpbmUuaAo9PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBKYXZhU2Ny
aXB0Q29yZS9WTS9NYWNoaW5lLmgJKHJldmlzaW9uIDM2MjYzKQorKysgSmF2YVNjcmlwdENvcmUv
Vk0vTWFjaGluZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMjksNyArMjI5LDcgQEAgbmFtZXNwYWNl
IEpTQyB7CiAgICAgcHJpdmF0ZToKICAgICAgICAgZW51bSBFeGVjdXRpb25GbGFnIHsgTm9ybWFs
LCBJbml0aWFsaXplQW5kUmV0dXJuIH07CiAKLSAgICAgICAgTkVWRVJfSU5MSU5FIEpTVmFsdWUq
IGNhbGxFdmFsKEV4ZWNTdGF0ZSogZXhlYywgSlNPYmplY3QqIHRoaXNPYmosIFNjb3BlQ2hhaW5O
b2RlKiBzY29wZUNoYWluLCBSZWdpc3RlckZpbGUqLCBSZWdpc3RlciogciwgaW50IGFyZ3YsIGlu
dCBhcmdjLCBKU1ZhbHVlKiYgZXhjZXB0aW9uVmFsdWUpOworICAgICAgICBORVZFUl9JTkxJTkUg
SlNWYWx1ZSogY2FsbEV2YWwoRXhlY1N0YXRlKiBleGVjLCBDb2RlQmxvY2sqIGNhbGxpbmdDb2Rl
QmxvY2ssIEpTT2JqZWN0KiB0aGlzT2JqLCBTY29wZUNoYWluTm9kZSogc2NvcGVDaGFpbiwgUmVn
aXN0ZXJGaWxlKiwgUmVnaXN0ZXIqIHIsIGludCBhcmd2LCBpbnQgYXJnYywgSlNWYWx1ZSomIGV4
Y2VwdGlvblZhbHVlKTsKICAgICAgICAgSlNWYWx1ZSogZXhlY3V0ZShFdmFsTm9kZSosIEV4ZWNT
dGF0ZSosIEpTT2JqZWN0KiB0aGlzT2JqLCBpbnQgcmVnaXN0ZXJPZmZzZXQsIFNjb3BlQ2hhaW5O
b2RlKiwgSlNWYWx1ZSoqIGV4Y2VwdGlvbik7CiAKICAgICAgICAgQUxXQVlTX0lOTElORSB2b2lk
IGluaXRpYWxpemVDYWxsRnJhbWUoUmVnaXN0ZXIqIGNhbGxGcmFtZSwgQ29kZUJsb2NrKiwgSW5z
dHJ1Y3Rpb24qLCBTY29wZUNoYWluTm9kZSosIFJlZ2lzdGVyKiByLCBpbnQgcmV0dXJuVmFsdWVS
ZWdpc3RlciwgaW50IGFyZ3YsIGludCBhcmdjLCBpbnQgY2FsbGVkQXNDb25zdHJ1Y3RvciwgSlNW
YWx1ZSogZnVuY3Rpb24pOwpJbmRleDogTGF5b3V0VGVzdHMvQ2hhbmdlTG9nCj09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0K
LS0tIExheW91dFRlc3RzL0NoYW5nZUxvZwkocmV2aXNpb24gMzYyNjUpCisrKyBMYXlvdXRUZXN0
cy9DaGFuZ2VMb2cJKHdvcmtpbmcgY29weSkKQEAgLTEsMyArMSwxNCBAQAorMjAwOC0wOS0wOCAg
TWFjaWVqIFN0YWNob3dpYWsgIDxtanNAYXBwbGUuY29tPgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIC0gVGVzdCBmb3IgcG90ZW50aWFsIGJ1ZyBmb3Vu
ZCB3aGlsZSBmaXhpbmcgIkNhY2hlIHRoZSBjb2RlIGdlbmVyYXRlZCBmb3IgZXZhbCB0byBzcGVl
ZCB1cCBTdW5TcGlkZXIgYW5kIHdlYiBzaXRlcyIKKyAgICAgICAgaHR0cHM6Ly9idWdzLndlYmtp
dC5vcmcvc2hvd19idWcuY2dpP2lkPTIwNzE4CisKKyAgICAgICAgKiBmYXN0L2pzL2V2YWwtY2Fj
aGUtY3Jhc2gtZXhwZWN0ZWQudHh0OiBBZGRlZC4KKyAgICAgICAgKiBmYXN0L2pzL2V2YWwtY2Fj
aGUtY3Jhc2guaHRtbDogQWRkZWQuCisgICAgICAgICogZmFzdC9qcy9yZXNvdXJjZXMvZXZhbC1j
YWNoZS1jcmFzaC5qczogQWRkZWQuCisKIDIwMDgtMDktMDcgIEFkYW0gQmFydGggIDxhYmFydGhA
d2Via2l0Lm9yZz4KIAogICAgICAgICBSZXZpZXdlZCBieSBTYW0gV2VpbmlnLgpJbmRleDogTGF5
b3V0VGVzdHMvZmFzdC9qcy9ldmFsLWNhY2hlLWNyYXNoLWV4cGVjdGVkLnR4dAo9PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
Ci0tLSBMYXlvdXRUZXN0cy9mYXN0L2pzL2V2YWwtY2FjaGUtY3Jhc2gtZXhwZWN0ZWQudHh0CShy
ZXZpc2lvbiAwKQorKysgTGF5b3V0VGVzdHMvZmFzdC9qcy9ldmFsLWNhY2hlLWNyYXNoLWV4cGVj
dGVkLnR4dAkocmV2aXNpb24gMCkKQEAgLTAsMCArMSwxMSBAQAorVGVzdCB0byBtYWtlIHN1cmUg
dGhlIGV2YWwgY29kZSBjYWNoZSBkb2Vzbid0IGNyYXNoIG9yIGdpdmUgd3JvbmcgcmVzdWx0cyBp
biBvZGQgc2l0dWF0aW9ucy4KKworT24gc3VjY2VzcywgeW91IHdpbGwgc2VlIGEgc2VyaWVzIG9m
ICJQQVNTIiBtZXNzYWdlcywgZm9sbG93ZWQgYnkgIlRFU1QgQ09NUExFVEUiLgorCisKK1BBU1Mg
Zmlyc3QgaXMgJ2ZpcnN0JworUEFTUyBzZWNvbmQgaXMgJ3NlY29uZCcKK1BBU1Mgc3VjY2Vzc2Z1
bGx5UGFyc2VkIGlzIHRydWUKKworVEVTVCBDT01QTEVURQorCkluZGV4OiBMYXlvdXRUZXN0cy9m
YXN0L2pzL2V2YWwtY2FjaGUtY3Jhc2guaHRtbAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2pzL2V2YWwtY2FjaGUtY3Jhc2guaHRtbAkocmV2aXNpb24gMCkKKysrIExheW91dFRlc3Rz
L2Zhc3QvanMvZXZhbC1jYWNoZS1jcmFzaC5odG1sCShyZXZpc2lvbiAwKQpAQCAtMCwwICsxLDEz
IEBACis8IURPQ1RZUEUgSFRNTCBQVUJMSUMgIi0vL0lFVEYvL0RURCBIVE1MLy9FTiI+Cis8aHRt
bD4KKzxoZWFkPgorPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJyZXNvdXJjZXMvanMtdGVz
dC1zdHlsZS5jc3MiPgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXByZS5qcyI+PC9z
Y3JpcHQ+Cis8L2hlYWQ+Cis8Ym9keT4KKzxwIGlkPSJkZXNjcmlwdGlvbiI+PC9wPgorPGRpdiBp
ZD0iY29uc29sZSI+PC9kaXY+Cis8c2NyaXB0IHNyYz0icmVzb3VyY2VzL2V2YWwtY2FjaGUtY3Jh
c2guanMiPjwvc2NyaXB0PgorPHNjcmlwdCBzcmM9InJlc291cmNlcy9qcy10ZXN0LXBvc3QuanMi
Pjwvc2NyaXB0PgorPC9ib2R5PgorPC9odG1sPgpJbmRleDogTGF5b3V0VGVzdHMvZmFzdC9qcy9y
ZXNvdXJjZXMvZXZhbC1jYWNoZS1jcmFzaC5qcwo9PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBMYXlvdXRUZXN0cy9m
YXN0L2pzL3Jlc291cmNlcy9ldmFsLWNhY2hlLWNyYXNoLmpzCShyZXZpc2lvbiAwKQorKysgTGF5
b3V0VGVzdHMvZmFzdC9qcy9yZXNvdXJjZXMvZXZhbC1jYWNoZS1jcmFzaC5qcwkocmV2aXNpb24g
MCkKQEAgLTAsMCArMSwxNyBAQAorZGVzY3JpcHRpb24oCisiVGVzdCB0byBtYWtlIHN1cmUgdGhl
IGV2YWwgY29kZSBjYWNoZSBkb2Vzbid0IGNyYXNoIG9yIGdpdmUgd3JvbmcgcmVzdWx0cyBpbiBv
ZGQgc2l0dWF0aW9ucy4iCispOworCisKK3ZhciBzdHIgPSAiKGZ1bmN0aW9uICgpIHsgcmV0dXJu
IGE7IH0pIjsKK3ZhciBhID0gImZpcnN0IjsKK3ZhciBmaXJzdCA9IGV2YWwoc3RyKSgpOworc2hv
dWxkQmUoImZpcnN0IiwgIidmaXJzdCciKTsKKword2l0aCAoe2EgOiAic2Vjb25kIn0pIHsKKyAg
ICB2YXIgc2Vjb25kID0gZXZhbChzdHIpKCk7Cit9CisKK3Nob3VsZEJlKCJzZWNvbmQiLCAiJ3Nl
Y29uZCciKTsKKwordmFyIHN1Y2Nlc3NmdWxseVBhcnNlZCA9IHRydWU7ClwgTm8gbmV3bGluZSBh
dCBlbmQgb2YgZmlsZQo=
</data>
<flag name="review"
          id="10355"
          type_id="1"
          status="+"
          setter="andersca"
    />
          </attachment>
      

    </bug>

</bugzilla>