<?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>142538</bug_id>
          
          <creation_ts>2015-03-10 12:12:54 -0700</creation_ts>
          <short_desc>Eden collections should trigger sweep of MarkedBlocks containing new objects.</short_desc>
          <delta_ts>2015-03-11 09:54:29 -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>cdumez</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
    
    <cc>kling</cc>
    
    <cc>mhahnenb</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1076022</commentid>
    <comment_count>0</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-10 12:12:54 -0700</bug_when>
    <thetext>Currently, only full collections trigger the IncrementalSweeper.
This means that while Eden collections do find garbage, it doesn&apos;t actually run destructors.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076024</commentid>
    <comment_count>1</comment_count>
      <attachid>248344</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-10 12:14:20 -0700</bug_when>
    <thetext>Created attachment 248344
Proposed patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076039</commentid>
    <comment_count>2</comment_count>
      <attachid>248344</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-10 12:42:33 -0700</bug_when>
    <thetext>Comment on attachment 248344
Proposed patch

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

&gt; Source/JavaScriptCore/ChangeLog:12
&gt; +        Eden collections, instead of delaying their teardown until the next full collection.

...or the next allocation cycle for their block.

&gt; Source/JavaScriptCore/ChangeLog:22
&gt; +        (JSC::Heap::notifyIncrementalSweeper): For Eden collections, tell the IncrementalSweeper
&gt; +        to append block snapshot (taken earlier) to its existing set of blocks instead of replacing
&gt; +        it entirely. This allows Eden collections and incremental sweeping to occur interleaved with

An eden allocation cycle may reuse a block that contains old objects. If so, we will duplicate a block in the list. Duplicates are OK, since they will no-op when they pop. But what if the list goes infinite?

Some options:

(1) Use a hash table instead of a vector inside the incremental sweeper.

(2) After appending to the vector, shrink(std::unique(std::sort(begin(), end())) - begin()).

I&apos;m OK with either. Please do one of these before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076048</commentid>
    <comment_count>3</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-10 13:16:31 -0700</bug_when>
    <thetext>(In reply to comment #2)
&gt; Comment on attachment 248344 [details]
&gt; Proposed patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=248344&amp;action=review
&gt; 
&gt; &gt; Source/JavaScriptCore/ChangeLog:12
&gt; &gt; +        Eden collections, instead of delaying their teardown until the next full collection.
&gt; 
&gt; ...or the next allocation cycle for their block.

Oh yeah, I&apos;ll add that.

&gt; &gt; Source/JavaScriptCore/ChangeLog:22
&gt; &gt; +        (JSC::Heap::notifyIncrementalSweeper): For Eden collections, tell the IncrementalSweeper
&gt; &gt; +        to append block snapshot (taken earlier) to its existing set of blocks instead of replacing
&gt; &gt; +        it entirely. This allows Eden collections and incremental sweeping to occur interleaved with
&gt; 
&gt; An eden allocation cycle may reuse a block that contains old objects. If so,
&gt; we will duplicate a block in the list. Duplicates are OK, since they will
&gt; no-op when they pop. But what if the list goes infinite?
&gt; 
&gt; Some options:
&gt; 
&gt; (1) Use a hash table instead of a vector inside the incremental sweeper.
&gt; 
&gt; (2) After appending to the vector, shrink(std::unique(std::sort(begin(),
&gt; end())) - begin()).
&gt; 
&gt; I&apos;m OK with either. Please do one of these before landing.

Neither of those are very good, since they would break the incremental iteration I&apos;ve got going on. I need to append only blocks that are not already in the vector. I&apos;ll fix that up before landing.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076049</commentid>
    <comment_count>4</comment_count>
    <who name="Mark Hahnenberg">mhahnenb</who>
    <bug_when>2015-03-10 13:17:56 -0700</bug_when>
    <thetext>Benchmark results would be good here :-)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076054</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-10 13:27:30 -0700</bug_when>
    <thetext>I think you could fix the iteration thing by just popping from the end of the vector (or taking from the begin of the hash table) rather than keeping an index.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076055</commentid>
    <comment_count>6</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-10 13:29:47 -0700</bug_when>
    <thetext>(In reply to comment #4)
&gt; Benchmark results would be good here :-)

Right you are, Mark!

Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on megalol (MacBookPro10,1).

VMs tested:
&quot;ToT&quot; at /Users/kling/Source/Safari/ToT-Clean/WebKitBuild/Release/jsc
&quot;Hacks&quot; at /Users/kling/Source/Safari/OpenSource/WebKitBuild/Release/jsc

Collected 4 samples per benchmark/VM, with 4 VM invocations per benchmark. Emitted a call to gc() between sample measurements.
Used 1 benchmark iteration per VM invocation for warm-up. Used the jsc-specific preciseTime() function to get microsecond-level
timing. Reporting benchmark execution times with 95% confidence intervals in milliseconds.

                                                           ToT                      Hacks                                       
SunSpider:
   3d-cube                                            5.0227+-0.1568     ?      5.1343+-0.2032        ? might be 1.0222x slower
   3d-morph                                           5.8276+-0.1666     ?      7.4655+-4.4834        ? might be 1.2811x slower
   3d-raytrace                                        6.8243+-0.2974            6.7673+-0.5574        
   access-binary-trees                                2.3129+-0.1936     ?      2.4325+-0.3755        ? might be 1.0517x slower
   access-fannkuch                                    6.2584+-0.0850     ?      6.3947+-0.2289        ? might be 1.0218x slower
   access-nbody                                       3.1290+-0.1531            3.0460+-0.1461          might be 1.0273x faster
   access-nsieve                                      3.2718+-0.1751     ?      3.2945+-0.1350        ?
   bitops-3bit-bits-in-byte                           1.6743+-0.0684     ?      1.8830+-0.4810        ? might be 1.1246x slower
   bitops-bits-in-byte                                3.6782+-0.0726     ?      3.7292+-0.2249        ? might be 1.0139x slower
   bitops-bitwise-and                                 2.2247+-0.0602            2.1876+-0.0663          might be 1.0170x faster
   bitops-nsieve-bits                                 3.7102+-0.0855     ?      3.8096+-0.1172        ? might be 1.0268x slower
   controlflow-recursive                              2.4891+-0.3222            2.3681+-0.1260          might be 1.0511x faster
   crypto-aes                                         4.4968+-0.2764     ?      4.6211+-0.6064        ? might be 1.0276x slower
   crypto-md5                                         2.5995+-0.0926     ?      2.6373+-0.3645        ? might be 1.0145x slower
   crypto-sha1                                        2.7497+-0.4404     ?      2.9496+-0.3944        ? might be 1.0727x slower
   date-format-tofte                                  9.9317+-0.2287     ?     10.1125+-0.4774        ? might be 1.0182x slower
   date-format-xparb                                  5.8161+-0.2065     ?      6.0576+-1.0670        ? might be 1.0415x slower
   math-cordic                                        3.2423+-0.0561     !      3.5037+-0.1875        ! definitely 1.0806x slower
   math-partial-sums                                  5.2776+-0.2334     ?      5.4941+-0.3979        ? might be 1.0410x slower
   math-spectral-norm                                 2.1711+-0.3607     ?      2.3260+-0.9669        ? might be 1.0713x slower
   regexp-dna                                         7.3120+-0.1101     ?      7.3944+-0.1024        ? might be 1.0113x slower
   string-base64                                      4.9386+-0.5520            4.8554+-0.3036          might be 1.0171x faster
   string-fasta                                      10.2974+-10.9895           6.9692+-0.6713          might be 1.4776x faster
   string-tagcloud                                   10.0241+-0.4544     ?     13.3126+-9.4526        ? might be 1.3281x slower
   string-unpack-code                                20.8025+-0.5958     ?     21.6596+-0.6307        ? might be 1.0412x slower
   string-validate-input                              5.4365+-0.5631            5.3923+-0.6264        

   &lt;arithmetic&gt; *                                     5.4430+-0.3553     ?      5.6076+-0.5374        ? might be 1.0302x slower
   &lt;geometric&gt;                                        4.4956+-0.0937     ?      4.6134+-0.1824        ? might be 1.0262x slower
   &lt;harmonic&gt;                                         3.8629+-0.0524     ?      3.9603+-0.0584        ? might be 1.0252x slower

                                                           ToT                      Hacks                                       
LongSpider:
   3d-cube                                          875.6902+-5.0413     ?    956.0899+-252.8502      ? might be 1.0918x slower
   3d-morph                                        1575.9394+-7.1249         1574.4586+-7.8786        
   3d-raytrace                                      775.7401+-12.3777    ?    786.5368+-4.6848        ? might be 1.0139x slower
   access-binary-trees                              996.4917+-25.5586         987.8693+-4.6862        
   access-fannkuch                                  344.9982+-15.4222    ?    348.4637+-9.9834        ? might be 1.0100x slower
   access-nbody                                     634.3019+-13.7387    ?    715.0403+-257.8254      ? might be 1.1273x slower
   access-nsieve                                    886.8135+-47.1008         878.2208+-18.8868       
   bitops-3bit-bits-in-byte                          49.2423+-0.4600     ?     50.2198+-5.0998        ? might be 1.0199x slower
   bitops-bits-in-byte                              100.5408+-15.9213          97.1362+-3.9179          might be 1.0350x faster
   bitops-nsieve-bits                               891.1489+-435.4684        819.4395+-147.4782        might be 1.0875x faster
   controlflow-recursive                            571.1123+-257.6265        495.8044+-30.6832         might be 1.1519x faster
   crypto-aes                                       831.4380+-401.5165        704.2182+-5.3452          might be 1.1807x faster
   crypto-md5                                       564.2598+-19.5381    ?    633.4430+-198.3881      ? might be 1.1226x slower
   crypto-sha1                                      626.5330+-10.5387    ?    628.7540+-7.7566        ?
   date-format-tofte                                797.6385+-27.5004    ?    798.0350+-11.1475       ?
   date-format-xparb                                843.0157+-327.8723        745.6133+-92.2562         might be 1.1306x faster
   math-cordic                                      607.1604+-1.2431     ?    607.8583+-3.6236        ?
   math-partial-sums                                519.6808+-2.2160          519.4349+-2.4417        
   math-spectral-norm                               580.0079+-1.0523     ?    581.5323+-3.0401        ?
   string-base64                                    351.8905+-1.2260     ?    353.1910+-4.3497        ?
   string-fasta                                     417.9220+-9.7733     ?    451.4916+-85.9309       ? might be 1.0803x slower
   string-tagcloud                                  218.0093+-1.8889     ?    221.2766+-4.5580        ? might be 1.0150x slower

   &lt;arithmetic&gt;                                     639.0716+-21.9116         634.2785+-23.0337         might be 1.0076x faster
   &lt;geometric&gt; *                                    519.0631+-14.9268         518.0779+-13.5620         might be 1.0019x faster
   &lt;harmonic&gt;                                       337.1559+-7.8859     ?    338.2144+-9.7666        ? might be 1.0031x slower

                                                           ToT                      Hacks                                       
V8Spider:
   crypto                                            60.0059+-1.3594           59.0397+-3.6403          might be 1.0164x faster
   deltablue                                         95.3129+-8.0535     ?     96.5853+-8.3344        ? might be 1.0133x slower
   earley-boyer                                      45.6835+-3.7217           45.4551+-2.2442        
   raytrace                                          45.9974+-23.4832          38.4816+-1.7254          might be 1.1953x faster
   regexp                                            69.5165+-2.9073     ?     70.3349+-0.5304        ? might be 1.0118x slower
   richards                                          82.2705+-3.7452     ?     82.8399+-3.4341        ?
   splay                                             43.7175+-1.9232           39.6756+-2.3064          might be 1.1019x faster

   &lt;arithmetic&gt;                                      63.2149+-5.2721           61.7731+-0.8567          might be 1.0233x faster
   &lt;geometric&gt; *                                     60.3717+-5.5618           58.3382+-1.2205          might be 1.0349x faster
   &lt;harmonic&gt;                                        57.6989+-5.7878           55.1843+-1.5230          might be 1.0456x faster

                                                           ToT                      Hacks                                       
Octane:
   encrypt                                           0.26685+-0.10623          0.23760+-0.00740         might be 1.1231x faster
   decrypt                                           4.02712+-0.09501          4.01533+-0.02092       
   deltablue                                x2       0.20801+-0.00575    ?     0.23996+-0.09594       ? might be 1.1536x slower
   earley                                            0.68119+-0.01021    ?     0.73091+-0.14440       ? might be 1.0730x slower
   boyer                                             5.84445+-0.03232          5.84068+-0.02299       
   navier-stokes                            x2       5.69212+-0.80555          5.45369+-0.32171         might be 1.0437x faster
   raytrace                                 x2       1.30340+-0.11963          1.27168+-0.01296         might be 1.0249x faster
   richards                                 x2       0.12710+-0.01311          0.12112+-0.00453         might be 1.0494x faster
   splay                                    x2       0.40399+-0.00253    ?     0.41421+-0.02825       ? might be 1.0253x slower
   regexp                                   x2      42.42159+-21.87504        35.56092+-0.93589         might be 1.1929x faster
   pdfjs                                    x2      49.43383+-10.50379        46.21714+-0.49600         might be 1.0696x faster
   mandreel                                 x2      56.42224+-4.77427         54.44616+-0.13031         might be 1.0363x faster
   gbemu                                    x2      40.93990+-0.10755    ?    41.00050+-0.09257       ?
   closure                                           0.57502+-0.00284    ?     0.63973+-0.21457       ? might be 1.1125x slower
   jquery                                            8.53374+-3.43643          7.80676+-1.28773         might be 1.0931x faster
   box2d                                    x2      17.76795+-13.74024        13.41528+-0.20761         might be 1.3245x faster
   zlib                                     x2     519.62602+-217.64958      446.59176+-90.25406        might be 1.1635x faster
   typescript                               x2     880.55591+-22.67713       875.01758+-25.35861      

   &lt;arithmetic&gt;                                    108.32442+-14.66497       101.95903+-6.96306         might be 1.0624x faster
   &lt;geometric&gt; *                                     7.45095+-0.08672          7.18155+-0.20924         might be 1.0375x faster
   &lt;harmonic&gt;                                        0.74678+-0.03078    ?     0.75012+-0.05128       ? might be 1.0045x slower

                                                           ToT                      Hacks                                       
Kraken:
   ai-astar                                          273.613+-4.827            273.360+-2.951         
   audio-beat-detection                              115.720+-1.031      ?     116.017+-0.927         ?
   audio-dft                                         225.779+-56.095           218.783+-4.039           might be 1.0320x faster
   audio-fft                                          88.865+-0.707      ?      92.162+-11.413        ? might be 1.0371x slower
   audio-oscillator                                  257.018+-140.366          249.581+-124.638         might be 1.0298x faster
   imaging-darkroom                                  107.187+-0.394      ?     107.241+-0.598         ?
   imaging-desaturate                                 74.399+-26.863            65.119+-1.111           might be 1.1425x faster
   imaging-gaussian-blur                             113.434+-2.111      ?     113.536+-0.348         ?
   json-parse-financial                               48.276+-1.499             46.993+-0.987           might be 1.0273x faster
   json-stringify-tinderbox                           57.810+-2.658      ?      59.048+-2.562         ? might be 1.0214x slower
   stanford-crypto-aes                                65.272+-0.673      ?      67.768+-15.927        ? might be 1.0382x slower
   stanford-crypto-ccm                                54.698+-7.564      ?      54.820+-6.615         ?
   stanford-crypto-pbkdf2                            172.398+-1.226      ?     172.930+-1.407         ?
   stanford-crypto-sha256-iterative                   58.018+-5.036      ?      67.770+-33.574        ? might be 1.1681x slower

   &lt;arithmetic&gt; *                                    122.321+-8.382            121.795+-7.467           might be 1.0043x faster
   &lt;geometric&gt;                                       102.316+-2.903      ?     102.531+-1.601         ? might be 1.0021x slower
   &lt;harmonic&gt;                                         88.032+-1.698      ?      88.395+-1.920         ? might be 1.0041x slower

                                                           ToT                      Hacks                                       
JSRegress:
   abs-boolean                                        2.9402+-0.4946            2.7501+-0.0418          might be 1.0692x faster
   adapt-to-double-divide                            17.4622+-0.8684     ?     17.7192+-0.9686        ? might be 1.0147x slower
   aliased-arguments-getbyval                         0.9160+-0.0416     ?      0.9202+-0.0242        ?
   allocate-big-object                                2.7718+-0.1234     ?      3.6013+-2.5722        ? might be 1.2993x slower
   arguments-out-of-bounds                           17.1752+-0.5124     !     17.8851+-0.1965        ! definitely 1.0413x slower
   arity-mismatch-inlining                            0.9073+-0.0184            0.8901+-0.0263          might be 1.0193x faster
   array-access-polymorphic-structure                 6.8949+-0.2011     ?      7.0181+-0.4039        ? might be 1.0179x slower
   array-nonarray-polymorhpic-access                 36.0461+-0.8429     ?     36.3563+-1.3873        ?
   array-prototype-every                             86.5782+-1.0926     ?     88.2010+-1.0856        ? might be 1.0187x slower
   array-prototype-forEach                           95.0938+-36.0816          86.0455+-2.3554          might be 1.1052x faster
   array-prototype-map                               98.9042+-2.4589           95.6878+-1.5116          might be 1.0336x faster
   array-prototype-some                              85.9435+-0.9340     ?     87.8643+-1.2779        ? might be 1.0224x slower
   array-splice-contiguous                           42.4274+-1.5510     ?     43.2228+-1.0899        ? might be 1.0187x slower
   array-with-double-add                              4.4008+-0.3567            4.2877+-0.1340          might be 1.0264x faster
   array-with-double-increment                        3.4000+-0.1141            3.3555+-0.0800          might be 1.0132x faster
   array-with-double-mul-add                          5.1879+-0.1007            5.1865+-0.0941        
   array-with-double-sum                              3.5482+-0.0514     ?      3.6000+-0.1899        ? might be 1.0146x slower
   array-with-int32-add-sub                           7.1686+-0.3800            7.1140+-0.2468        
   array-with-int32-or-double-sum                     3.5607+-0.1591     ?      3.6387+-0.0753        ? might be 1.0219x slower
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     34.8604+-2.1594           34.7838+-1.6063        
   ArrayBuffer-DataView-alloc-long-lived             14.6573+-1.0314     ?     14.8121+-1.0336        ? might be 1.0106x slower
   ArrayBuffer-Int32Array-byteOffset                  3.7125+-0.4037            3.6255+-0.0754          might be 1.0240x faster
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     34.3126+-1.1682     ?     34.3680+-0.5810        ?
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     23.1235+-0.3246     ?     24.6575+-2.1405        ? might be 1.0663x slower
   ArrayBuffer-Int8Array-alloc-long-lived            14.5825+-1.7162           14.3036+-0.9539          might be 1.0195x faster
   ArrayBuffer-Int8Array-alloc                       11.1372+-0.9890     ?     11.8291+-1.5989        ? might be 1.0621x slower
   asmjs_bool_bug                                     8.1535+-0.8602            8.0448+-0.4440          might be 1.0135x faster
   assign-custom-setter-polymorphic                   3.2313+-0.0894     ?      3.4298+-0.3705        ? might be 1.0614x slower
   assign-custom-setter                               4.5085+-0.1032     ?      4.5238+-0.0733        ?
   basic-set                                         12.4333+-8.2550            9.6153+-1.1808          might be 1.2931x faster
   big-int-mul                                        4.1548+-0.0488     ?      4.6425+-1.5892        ? might be 1.1174x slower
   boolean-test                                       3.1711+-0.0723     ?      3.1765+-0.0921        ?
   branch-fold                                        3.8040+-0.0238     ?      4.6123+-2.2091        ? might be 1.2125x slower
   by-val-generic                                     8.3258+-0.3468     ?      8.3751+-0.1343        ?
   call-spread-apply                                 17.3604+-1.6379           17.2896+-0.8813        
   call-spread-call                                   6.1602+-0.2068            6.0884+-0.1196          might be 1.0118x faster
   captured-assignments                               0.4746+-0.0175     ?      0.5438+-0.1253        ? might be 1.1457x slower
   cast-int-to-double                                 5.6211+-0.3222            5.5168+-0.2188          might be 1.0189x faster
   cell-argument                                      8.9863+-0.7522            8.6850+-0.3114          might be 1.0347x faster
   cfg-simplify                                       2.9268+-0.0370     ?      2.9628+-0.1425        ? might be 1.0123x slower
   chain-getter-access                               10.0649+-0.4881     ?     10.1271+-0.1547        ?
   cmpeq-obj-to-obj-other                            12.5037+-1.3582           12.0078+-1.9516          might be 1.0413x faster
   constant-test                                      5.3172+-0.7202            5.1116+-0.0284          might be 1.0402x faster
   DataView-custom-properties                        40.5800+-3.0355           40.4291+-0.9521        
   delay-tear-off-arguments-strictmode               21.3125+-0.5434           21.0367+-1.7151          might be 1.0131x faster
   deltablue-varargs                                187.8212+-2.5789     ?    188.5448+-1.0412        ?
   destructuring-arguments                            5.3878+-0.0469     ?      5.4775+-0.3087        ? might be 1.0167x slower
   destructuring-swap                                 5.3214+-0.2608            5.2442+-0.1317          might be 1.0147x faster
   direct-arguments-getbyval                          0.9551+-0.0596     ?      0.9982+-0.1516        ? might be 1.0451x slower
   div-boolean-double                                 5.3908+-0.0527            5.3630+-0.0286        
   div-boolean                                        8.1176+-0.1859     ?      8.1368+-0.3269        ?
   double-get-by-val-out-of-bounds                    4.6877+-0.4735            4.5493+-0.0340          might be 1.0304x faster
   double-pollution-getbyval                          9.2460+-0.3725            9.2216+-0.8765        
   double-pollution-putbyoffset                       4.3815+-0.1026            4.1921+-0.1383          might be 1.0452x faster
   double-to-int32-typed-array-no-inline              2.6275+-0.4253            2.4595+-0.2628          might be 1.0683x faster
   double-to-int32-typed-array                        2.0803+-0.0250     ?      2.0867+-0.0551        ?
   double-to-uint32-typed-array-no-inline             2.3766+-0.0580     ?      2.4772+-0.1494        ? might be 1.0423x slower
   double-to-uint32-typed-array                       2.3418+-0.3162     ?      2.3929+-0.4309        ? might be 1.0218x slower
   elidable-new-object-dag                           44.4836+-1.1779           43.1807+-1.8279          might be 1.0302x faster
   elidable-new-object-roflcopter                    51.8097+-1.4716     ?     52.3661+-2.1987        ? might be 1.0107x slower
   elidable-new-object-then-call                     40.0747+-3.6658     ?     40.7442+-2.3126        ? might be 1.0167x slower
   elidable-new-object-tree                          50.8717+-16.7923          46.3438+-2.4246          might be 1.0977x faster
   empty-string-plus-int                              5.4940+-0.1681     ?      5.6838+-0.5986        ? might be 1.0345x slower
   emscripten-cube2hash                              44.4507+-9.2018           40.6329+-2.4453          might be 1.0940x faster
   exit-length-on-plain-object                       14.9831+-1.0879           14.8979+-0.9164        
   external-arguments-getbyval                        1.4645+-0.0416     ?      1.5491+-0.1304        ? might be 1.0577x slower
   external-arguments-putbyval                        2.4545+-0.4443     ?      2.8650+-1.5529        ? might be 1.1673x slower
   fixed-typed-array-storage-var-index                1.3787+-0.1560            1.3741+-0.2100        
   fixed-typed-array-storage                          0.9543+-0.0330            0.9260+-0.0645          might be 1.0306x faster
   Float32Array-matrix-mult                           4.9673+-0.8198            4.4774+-0.0522          might be 1.1094x faster
   Float32Array-to-Float64Array-set                  60.4835+-3.4936           56.6195+-0.5956          might be 1.0682x faster
   Float64Array-alloc-long-lived                     73.9269+-1.9966     ?     79.9254+-13.3350       ? might be 1.0811x slower
   Float64Array-to-Int16Array-set                    69.3349+-1.6905     ?     70.3605+-2.2667        ? might be 1.0148x slower
   fold-double-to-int                                16.2001+-0.5853           16.1589+-0.5779        
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     11.5045+-2.9370           10.4316+-0.7351          might be 1.1028x faster
   fold-get-by-id-to-multi-get-by-offset              9.4610+-0.9187            9.2103+-1.1670          might be 1.0272x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                      9.1996+-1.9641            8.7515+-3.0911          might be 1.0512x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      8.3567+-1.0618     ?      8.4680+-0.8838        ? might be 1.0133x slower
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                      7.8547+-1.4587            7.8038+-1.1611        
   fold-multi-put-by-offset-to-put-by-offset   
                                                      4.8894+-1.0231            4.0012+-0.7829          might be 1.2220x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                      9.6228+-1.3087            9.4282+-0.7484          might be 1.0206x faster
   fold-put-by-id-to-multi-put-by-offset              8.3786+-0.3268     ?      8.5383+-1.0795        ? might be 1.0191x slower
   fold-put-structure                                 5.3860+-0.0629            4.8452+-1.0622          might be 1.1116x faster
   for-of-iterate-array-entries                       6.8935+-5.8409            5.0598+-0.8331          might be 1.3624x faster
   for-of-iterate-array-keys                          4.0573+-0.3191     ?      4.1765+-0.4480        ? might be 1.0294x slower
   for-of-iterate-array-values                        3.8613+-0.1815            3.8589+-0.2217        
   fround                                            20.8989+-0.3667           20.4143+-1.6359          might be 1.0237x faster
   ftl-library-inlining-dataview                     85.1153+-6.6026           81.6358+-2.0309          might be 1.0426x faster
   ftl-library-inlining                              69.3516+-1.8922     ?     69.5249+-1.5483        ?
   function-dot-apply                                 1.8285+-0.3959            1.6993+-0.3628          might be 1.0760x faster
   function-test                                      3.5164+-0.1847     ?      3.5438+-0.2889        ?
   function-with-eval                               127.6105+-1.0332     ^    124.8522+-1.6755        ^ definitely 1.0221x faster
   gcse-poly-get-less-obvious                        20.5300+-0.6870           20.1382+-1.2168          might be 1.0195x faster
   gcse-poly-get                                     21.7755+-2.0228           21.2375+-1.1431          might be 1.0253x faster
   gcse                                               4.4929+-0.1660     ?      5.8807+-4.2387        ? might be 1.3089x slower
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.8834+-0.1298            2.8052+-0.0238          might be 1.0279x faster
   get-by-id-bimorphic-check-structure-elimination   
                                                      6.2795+-0.1555            6.2502+-0.0597        
   get-by-id-chain-from-try-block                     8.3743+-0.8027     ?      8.4890+-0.4538        ? might be 1.0137x slower
   get-by-id-check-structure-elimination              5.3287+-0.1702     ?      5.4596+-0.1924        ? might be 1.0246x slower
   get-by-id-proto-or-self                           23.0943+-13.6879          18.8479+-0.6202          might be 1.2253x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      3.0485+-0.0413     ?      3.0668+-0.0512        ?
   get-by-id-self-or-proto                           18.9680+-1.4196     ?     22.7599+-9.8966        ? might be 1.1999x slower
   get-by-val-out-of-bounds                           5.0949+-1.9945            4.4470+-0.0839          might be 1.1457x faster
   get_callee_monomorphic                             3.9332+-0.6120            3.9037+-0.7412        
   get_callee_polymorphic                             4.0648+-0.6634     ?      4.1895+-0.7702        ? might be 1.0307x slower
   getter-no-activation                               4.6595+-0.4606            4.5861+-0.2385          might be 1.0160x faster
   getter-richards                                  142.4003+-40.5476         137.1973+-34.8600         might be 1.0379x faster
   getter                                             5.4066+-0.3349            5.2409+-0.0102          might be 1.0316x faster
   global-var-const-infer-fire-from-opt               0.8960+-0.0241     ?      0.9991+-0.1864        ? might be 1.1151x slower
   global-var-const-infer                             0.7853+-0.0661     ?      0.8475+-0.1301        ? might be 1.0791x slower
   HashMap-put-get-iterate-keys                      28.6086+-1.8562           28.2195+-1.1392          might be 1.0138x faster
   HashMap-put-get-iterate                           29.3016+-0.8837           28.8254+-2.5278          might be 1.0165x faster
   HashMap-string-put-get-iterate                    30.0687+-3.1354           28.3559+-1.4015          might be 1.0604x faster
   hoist-make-rope                                   13.2688+-2.8251           13.0786+-1.5836          might be 1.0145x faster
   hoist-poly-check-structure-effectful-loop   
                                                      6.4613+-3.6877            5.3961+-0.5167          might be 1.1974x faster
   hoist-poly-check-structure                         3.9782+-0.2881     ?      4.1473+-0.4929        ? might be 1.0425x slower
   imul-double-only                                   8.1439+-1.2800     ?      8.3878+-1.1383        ? might be 1.0299x slower
   imul-int-only                                     10.0684+-0.8119            9.8715+-0.7153          might be 1.0199x faster
   imul-mixed                                         8.1287+-0.3238            8.1168+-0.4943        
   in-four-cases                                     21.4681+-2.3353     ?     22.3010+-0.3504        ? might be 1.0388x slower
   in-one-case-false                                 11.3798+-1.5427     ?     11.5118+-0.8706        ? might be 1.0116x slower
   in-one-case-true                                  11.2091+-1.2788     ?     12.2377+-2.8207        ? might be 1.0918x slower
   in-two-cases                                      12.1878+-1.2168           11.7430+-0.5547          might be 1.0379x faster
   indexed-properties-in-objects                      3.0750+-0.0312     ?      3.7662+-1.9878        ? might be 1.2248x slower
   infer-closure-const-then-mov-no-inline             3.9373+-0.2485            3.8351+-0.0469          might be 1.0266x faster
   infer-closure-const-then-mov                      18.8322+-1.1267     ?     19.0942+-0.7187        ? might be 1.0139x slower
   infer-closure-const-then-put-to-scope-no-inline   
                                                     12.0641+-0.4475           11.9933+-0.5256        
   infer-closure-const-then-put-to-scope             22.7166+-0.6692           22.5123+-1.1201        
   infer-closure-const-then-reenter-no-inline   
                                                     53.0160+-10.4975          50.0029+-0.9682          might be 1.0603x faster
   infer-closure-const-then-reenter                  22.5861+-0.9959     ?     22.8840+-0.7430        ? might be 1.0132x slower
   infer-constant-global-property                    31.1142+-0.9875     ?     34.1115+-5.4883        ? might be 1.0963x slower
   infer-constant-property                            2.8477+-0.0829     ?      2.9055+-0.1309        ? might be 1.0203x slower
   infer-one-time-closure-ten-vars                   12.5960+-0.5002           12.3811+-0.2261          might be 1.0174x faster
   infer-one-time-closure-two-vars                   11.8397+-0.2693           11.8096+-0.3954        
   infer-one-time-closure                            12.0240+-0.4175           11.8898+-0.3060          might be 1.0113x faster
   infer-one-time-deep-closure                       21.4402+-1.1520     ?     23.0994+-6.2063        ? might be 1.0774x slower
   inline-arguments-access                            1.7617+-0.1341     ?      1.9816+-0.9851        ? might be 1.1248x slower
   inline-arguments-aliased-access                    1.8036+-0.0515     ?      1.8180+-0.1104        ?
   inline-arguments-local-escape                     13.1672+-1.2788     ?     13.9139+-1.9750        ? might be 1.0567x slower
   inline-get-scoped-var                              4.6738+-0.1015     ?      4.6813+-0.0874        ?
   inlined-put-by-id-transition                      11.4435+-1.4754     ?     11.9360+-1.7028        ? might be 1.0430x slower
   int-or-other-abs-then-get-by-val                   5.2607+-0.2687            5.2395+-0.1780        
   int-or-other-abs-zero-then-get-by-val             17.3315+-0.4339     ?     17.4791+-0.4121        ?
   int-or-other-add-then-get-by-val                   4.5183+-0.1107     ?      4.6783+-0.5593        ? might be 1.0354x slower
   int-or-other-add                                   5.4868+-0.0418     ?      5.8296+-1.1269        ? might be 1.0625x slower
   int-or-other-div-then-get-by-val                   4.3678+-0.0235     ?      4.4367+-0.1897        ? might be 1.0158x slower
   int-or-other-max-then-get-by-val                   4.5966+-0.1297     ?      4.6733+-0.4175        ? might be 1.0167x slower
   int-or-other-min-then-get-by-val                   4.5869+-0.0101     ?      4.7737+-0.2519        ? might be 1.0407x slower
   int-or-other-mod-then-get-by-val                   4.1273+-0.0437     ?      4.1932+-0.5087        ? might be 1.0160x slower
   int-or-other-mul-then-get-by-val                   4.2175+-0.0492     ?      4.2223+-0.0989        ?
   int-or-other-neg-then-get-by-val                   5.1698+-1.1049            4.8188+-0.0926          might be 1.0728x faster
   int-or-other-neg-zero-then-get-by-val             17.3817+-0.2833           17.2560+-0.5134        
   int-or-other-sub-then-get-by-val                   4.5385+-0.0774            4.5103+-0.0658        
   int-or-other-sub                                   3.8653+-0.4091            3.6663+-0.0519          might be 1.0543x faster
   int-overflow-local                                 4.4630+-0.0346     ?      4.4650+-0.0332        ?
   Int16Array-alloc-long-lived                       53.1999+-3.1194           52.9849+-2.7226        
   Int16Array-bubble-sort-with-byteLength            21.8243+-1.4463     ?     27.9911+-20.2868       ? might be 1.2826x slower
   Int16Array-bubble-sort                            24.0441+-3.5690     ?     25.8372+-3.6176        ? might be 1.0746x slower
   Int16Array-load-int-mul                            1.6815+-0.3223            1.6786+-0.2217        
   Int16Array-to-Int32Array-set                      58.5590+-2.2487     ^     53.2502+-0.7785        ^ definitely 1.0997x faster
   Int32Array-alloc-large                            27.4357+-2.0950           26.6560+-1.1670          might be 1.0292x faster
   Int32Array-alloc-long-lived                       59.8198+-1.5557           57.8986+-2.3138          might be 1.0332x faster
   Int32Array-alloc                                   3.7778+-0.9731            3.5713+-0.2866          might be 1.0578x faster
   Int32Array-Int8Array-view-alloc                    7.0903+-0.3096     ?      7.6689+-1.6629        ? might be 1.0816x slower
   int52-spill                                        7.0353+-0.0680     ?      7.2649+-0.2990        ? might be 1.0326x slower
   Int8Array-alloc-long-lived                        46.5105+-1.6188     ?     48.5087+-1.7380        ? might be 1.0430x slower
   Int8Array-load-with-byteLength                     3.7578+-0.4348            3.5244+-0.0913          might be 1.0662x faster
   Int8Array-load                                     3.5300+-0.0948     ?      3.5379+-0.1838        ?
   integer-divide                                    11.5372+-0.0837     ?     11.8232+-0.8415        ? might be 1.0248x slower
   integer-modulo                                     2.1820+-0.2257     ?      2.2710+-0.1259        ? might be 1.0408x slower
   large-int-captured                                 6.8662+-0.3578     ?      7.2142+-1.2084        ? might be 1.0507x slower
   large-int-neg                                     17.4271+-0.6014     ?     17.7895+-0.7378        ? might be 1.0208x slower
   large-int                                         16.4434+-1.9359           15.9778+-0.4099          might be 1.0291x faster
   logical-not                                        4.6864+-0.1173     ?      4.7880+-0.2977        ? might be 1.0217x slower
   lots-of-fields                                    13.8085+-0.8407     ?     14.4512+-1.8846        ? might be 1.0465x slower
   make-indexed-storage                               3.2803+-0.3587     ?      3.4992+-0.7018        ? might be 1.0667x slower
   make-rope-cse                                      4.7732+-0.1692     ?      4.8723+-0.8439        ? might be 1.0208x slower
   marsaglia-larger-ints                             40.3967+-1.1097     ?     40.6455+-1.3003        ?
   marsaglia-osr-entry                               24.7384+-1.3537           23.3072+-0.6811          might be 1.0614x faster
   max-boolean                                        2.6213+-0.0352     ?      2.6898+-0.2890        ? might be 1.0261x slower
   method-on-number                                  17.5098+-0.3376     ?     22.4109+-14.0126       ? might be 1.2799x slower
   min-boolean                                        2.8070+-0.4702            2.5903+-0.0325          might be 1.0836x faster
   minus-boolean-double                               3.3106+-0.0719            3.3094+-0.0677        
   minus-boolean                                      2.8934+-1.2166            2.4418+-0.0213          might be 1.1850x faster
   misc-strict-eq                                    38.2019+-0.7176     ?     39.9557+-5.6055        ? might be 1.0459x slower
   mod-boolean-double                                11.1942+-0.1016     ?     11.3937+-0.3026        ? might be 1.0178x slower
   mod-boolean                                        8.4171+-0.9810            8.3821+-0.9729        
   mul-boolean-double                                 3.9478+-0.1531            3.8480+-0.0888          might be 1.0259x faster
   mul-boolean                                        3.2902+-0.5882            3.0135+-0.0323          might be 1.0918x faster
   neg-boolean                                        3.3673+-0.1663            3.3660+-0.1113        
   negative-zero-divide                               0.3599+-0.0118            0.3590+-0.0435        
   negative-zero-modulo                               0.5098+-0.2041            0.4619+-0.2687          might be 1.1037x faster
   negative-zero-negate                               0.3439+-0.0301            0.3254+-0.0194          might be 1.0566x faster
   nested-function-parsing                           22.4792+-0.0951           22.3723+-0.2100        
   new-array-buffer-dead                              2.9282+-0.1486            2.9133+-0.0427        
   new-array-buffer-push                              6.8019+-0.1567            6.7240+-0.1963          might be 1.0116x faster
   new-array-dead                                    12.9388+-0.3516           12.5674+-0.1952          might be 1.0296x faster
   new-array-push                                     5.1696+-3.7687            4.1108+-0.4632          might be 1.2576x faster
   number-test                                        3.1060+-0.0325     ?      3.1353+-0.0847        ?
   object-closure-call                                6.3005+-1.1714            5.9045+-0.2945          might be 1.0671x faster
   object-test                                        3.2305+-0.0341     ?      3.2360+-0.0394        ?
   obvious-sink-pathology-taken                     140.4150+-1.2704     ?    140.9290+-0.3972        ?
   obvious-sink-pathology                           135.0107+-1.4988     ?    147.4377+-34.5552       ? might be 1.0920x slower
   obviously-elidable-new-object                     36.5054+-2.3460           35.5518+-1.6774          might be 1.0268x faster
   plus-boolean-arith                                 2.7604+-0.2210            2.7435+-0.3513        
   plus-boolean-double                                3.3502+-0.1848     ?      3.3851+-0.1743        ? might be 1.0104x slower
   plus-boolean                                       2.5173+-0.1290     ?      2.6835+-0.2942        ? might be 1.0660x slower
   poly-chain-access-different-prototypes-simple   
                                                      3.4348+-0.0391     ?      3.4893+-0.1397        ? might be 1.0159x slower
   poly-chain-access-different-prototypes             2.8760+-0.2031     ?      2.9122+-0.2678        ? might be 1.0126x slower
   poly-chain-access-simpler                          3.8694+-1.4612            3.4565+-0.0635          might be 1.1195x faster
   poly-chain-access                                  2.8790+-0.2934     ?      2.9852+-0.3411        ? might be 1.0369x slower
   poly-stricteq                                     59.9619+-1.4524           58.9685+-1.8195          might be 1.0168x faster
   polymorphic-array-call                             1.5725+-0.5264            1.3868+-0.3115          might be 1.1339x faster
   polymorphic-get-by-id                              3.2655+-0.0758     ?      3.8260+-1.7670        ? might be 1.1716x slower
   polymorphic-put-by-id                             28.9439+-2.7264     ?     30.6002+-3.4385        ? might be 1.0572x slower
   polymorphic-structure                             15.3046+-0.4961     ?     15.6932+-0.5003        ? might be 1.0254x slower
   polyvariant-monomorphic-get-by-id                  9.1883+-1.0448            8.9286+-0.2914          might be 1.0291x faster
   proto-getter-access                               10.3055+-0.3461           10.1285+-0.2223          might be 1.0175x faster
   put-by-id-replace-and-transition                  10.1279+-1.1886            9.5262+-1.7196          might be 1.0632x faster
   put-by-id-slightly-polymorphic                     2.9514+-0.0343     ?      3.0458+-0.1614        ? might be 1.0320x slower
   put-by-id                                         14.3270+-1.6635           13.9602+-1.7966          might be 1.0263x faster
   put-by-val-direct                                  0.5931+-0.0086     ?      0.7197+-0.4376        ? might be 1.2135x slower
   put-by-val-large-index-blank-indexing-type   
                                                      5.9366+-0.1925     ?      6.2490+-0.1904        ? might be 1.0526x slower
   put-by-val-machine-int                             2.6714+-0.0896     ?      2.6782+-0.0438        ?
   rare-osr-exit-on-local                            15.5684+-0.5559           15.5327+-0.1784        
   register-pressure-from-osr                        22.3459+-0.4009     ?     22.4062+-0.3140        ?
   setter                                             5.4556+-0.1695            5.3942+-0.1466          might be 1.0114x faster
   simple-activation-demo                            28.4766+-0.1222     !     29.4709+-0.1253        ! definitely 1.0349x slower
   simple-getter-access                              13.3254+-1.6219     ?     14.6175+-4.6889        ? might be 1.0970x slower
   simple-poly-call-nested                            9.2507+-0.5871     ?      9.6475+-0.7426        ? might be 1.0429x slower
   simple-poly-call                                   1.4470+-0.1036            1.4467+-0.1793        
   sin-boolean                                       22.9891+-2.0147     ?     23.6413+-0.8697        ? might be 1.0284x slower
   sinkable-new-object-dag                           72.4993+-3.3452     ?     73.8640+-2.0511        ? might be 1.0188x slower
   sinkable-new-object-taken                         53.1371+-0.9178           52.0226+-3.4174          might be 1.0214x faster
   sinkable-new-object                               41.0032+-3.2646           40.4557+-3.6931          might be 1.0135x faster
   slow-array-profile-convergence                     2.9385+-0.0911     ?      3.0474+-0.4819        ? might be 1.0370x slower
   slow-convergence                                   5.1564+-3.2090            3.4407+-0.2040          might be 1.4987x faster
   sparse-conditional                                 1.7697+-1.6104            1.2757+-0.1095          might be 1.3872x faster
   splice-to-remove                                  16.9042+-0.6033     ?     17.5367+-0.9272        ? might be 1.0374x slower
   string-char-code-at                               18.4998+-0.4409           18.3556+-0.1475        
   string-concat-object                               2.7486+-0.3118            2.6556+-0.2396          might be 1.0350x faster
   string-concat-pair-object                          2.5237+-0.0460            2.5089+-0.0252        
   string-concat-pair-simple                         13.4117+-1.5577           13.1990+-1.6201          might be 1.0161x faster
   string-concat-simple                              12.4724+-1.5736           12.4150+-1.3737        
   string-cons-repeat                                 8.2840+-1.5469     ?      9.8802+-0.6525        ? might be 1.1927x slower
   string-cons-tower                                  8.1694+-0.5148     ?      9.0427+-1.6033        ? might be 1.1069x slower
   string-equality                                   17.7189+-0.2321     ?     18.0007+-0.5274        ? might be 1.0159x slower
   string-get-by-val-big-char                         7.4280+-0.4092     ?      8.3806+-2.8309        ? might be 1.1282x slower
   string-get-by-val-out-of-bounds-insane             3.9048+-0.2231     ?      3.9883+-0.1867        ? might be 1.0214x slower
   string-get-by-val-out-of-bounds                    5.9940+-1.9280            5.7580+-1.1536          might be 1.0410x faster
   string-get-by-val                                  3.5812+-0.6738            3.3987+-0.0568          might be 1.0537x faster
   string-hash                                        2.2836+-0.1582            2.2501+-0.0137          might be 1.0149x faster
   string-long-ident-equality                        14.6225+-0.2690     ?     15.0852+-0.9357        ? might be 1.0316x slower
   string-out-of-bounds                              15.3398+-0.8328     ?     15.3955+-1.0120        ?
   string-repeat-arith                               32.8624+-1.2783           32.3467+-0.9611          might be 1.0159x faster
   string-sub                                        65.2892+-1.8509           64.2690+-1.9304          might be 1.0159x faster
   string-test                                        3.0943+-0.1310            3.0653+-0.0655        
   string-var-equality                               31.9423+-1.3715           31.4468+-1.1211          might be 1.0158x faster
   structure-hoist-over-transitions                   2.6403+-0.0507     ?      2.6973+-0.2046        ? might be 1.0216x slower
   substring-concat-weird                            46.2995+-20.6763          39.9791+-1.9881          might be 1.1581x faster
   substring-concat                                  52.2427+-32.9617          41.8105+-1.8474          might be 1.2495x faster
   substring                                         48.6210+-6.8250     ?     57.3079+-33.7171       ? might be 1.1787x slower
   switch-char-constant                               2.7711+-0.0338     ?      2.7995+-0.0391        ? might be 1.0103x slower
   switch-char                                        7.6321+-0.5567     ?      8.8349+-1.8201        ? might be 1.1576x slower
   switch-constant                                    8.3331+-0.3295     ?      8.4852+-0.7510        ? might be 1.0183x slower
   switch-string-basic-big-var                       15.6416+-0.5043     ?     15.7679+-0.8306        ?
   switch-string-basic-big                           14.5283+-0.5544           14.3853+-0.4371        
   switch-string-basic-var                           20.0953+-15.5536          14.7420+-0.3433          might be 1.3631x faster
   switch-string-basic                               14.0074+-0.6675           13.7230+-0.4588          might be 1.0207x faster
   switch-string-big-length-tower-var                20.7465+-0.6393           20.4052+-0.3625          might be 1.0167x faster
   switch-string-length-tower-var                    15.1265+-0.4033     ?     15.3610+-0.4541        ? might be 1.0155x slower
   switch-string-length-tower                        13.3100+-0.7230           13.3057+-0.3814        
   switch-string-short                               13.2535+-0.4878           13.2094+-0.4428        
   switch                                            12.4083+-0.5648     ?     13.3530+-0.7820        ? might be 1.0761x slower
   tear-off-arguments-simple                          2.0284+-0.0892     ?      2.0570+-0.1971        ? might be 1.0141x slower
   tear-off-arguments                                 2.8776+-0.0397     ?      2.9191+-0.1037        ? might be 1.0144x slower
   temporal-structure                                15.7438+-9.1255           14.8119+-7.2794          might be 1.0629x faster
   to-int32-boolean                                  14.4197+-0.3638           13.9302+-0.2048          might be 1.0351x faster
   undefined-property-access                        389.0835+-0.6218     !    390.7419+-0.2234        ! definitely 1.0043x slower
   undefined-test                                     3.1800+-0.1835     ?      3.2465+-0.3102        ? might be 1.0209x slower
   unprofiled-licm                                   23.4426+-0.4655     ?     26.6584+-11.2336       ? might be 1.1372x slower
   weird-inlining-const-prop                          2.3352+-0.1929     ?      2.7089+-0.4512        ? might be 1.1600x slower

   &lt;arithmetic&gt;                                      18.6309+-0.2709           18.5855+-0.4050          might be 1.0024x faster
   &lt;geometric&gt; *                                      8.6761+-0.0775            8.6757+-0.0767          might be 1.0000x faster
   &lt;harmonic&gt;                                         4.4263+-0.1143     ?      4.4279+-0.0812        ? might be 1.0004x slower

                                                           ToT                      Hacks                                       
AsmBench:
   bigfib.cpp                                       606.0417+-281.8439        516.6020+-2.6077          might be 1.1731x faster
   cray.c                                           497.8179+-159.1497        445.2653+-3.3715          might be 1.1180x faster
   dry.c                                            512.9238+-2.9695          505.0775+-19.3583         might be 1.0155x faster
   FloatMM.c                                        803.8627+-17.7236         800.1218+-6.1871        
   gcc-loops.cpp                                   4267.2762+-20.9748        4266.8130+-7.5286        
   n-body.c                                        1014.9383+-4.0234         1011.7133+-2.6030        
   Quicksort.c                                      453.8568+-9.6806          452.4697+-9.9614        
   stepanov_container.cpp                          4709.1663+-2788.8796      3806.6075+-9.2931          might be 1.2371x faster
   Towers.c                                         270.3608+-1.0263     ?    272.9795+-7.5764        ?

   &lt;arithmetic&gt;                                    1459.5827+-335.4788       1341.9611+-2.0783          might be 1.0876x faster
   &lt;geometric&gt; *                                    871.4501+-88.7739         830.8186+-6.4264          might be 1.0489x faster
   &lt;harmonic&gt;                                       628.0399+-33.7528         609.2786+-7.5879          might be 1.0308x faster

                                                           ToT                      Hacks                                       
CompressionBench:
   huffman                                          390.5515+-0.6049     ^    371.9929+-0.1569        ^ definitely 1.0499x faster
   arithmetic-simple                                415.8035+-4.5546          415.7178+-2.0462        
   arithmetic-precise                               309.1473+-2.9329     ?    310.0253+-1.4251        ?
   arithmetic-complex-precise                       309.6459+-1.1425     ?    309.9286+-3.5670        ?
   arithmetic-precise-order-0                       442.9757+-8.1130     ?    497.5246+-153.7694      ? might be 1.1231x slower
   arithmetic-precise-order-1                       349.3610+-1.0678     ?    354.2745+-18.5754       ? might be 1.0141x slower
   arithmetic-precise-order-2                       390.0105+-3.1114     ?    390.8430+-1.9035        ?
   arithmetic-simple-order-1                        443.7272+-2.2876     ?    444.3480+-2.2648        ?
   arithmetic-simple-order-2                        508.1744+-43.9206         493.5859+-3.3171          might be 1.0296x faster
   lz-string                                        350.5391+-4.7639     ?    351.3465+-10.5778       ?

   &lt;arithmetic&gt;                                     390.9936+-4.1851     ?    393.9587+-14.9502       ? might be 1.0076x slower
   &lt;geometric&gt; *                                    386.3414+-2.9811     ?    388.3015+-10.7084       ? might be 1.0051x slower
   &lt;harmonic&gt;                                       381.7915+-2.0297     ?    383.0137+-7.4881        ? might be 1.0032x slower

                                                           ToT                      Hacks                                       
All benchmarks:
   &lt;arithmetic&gt;                                     104.7648+-8.0148          101.3865+-1.5294          might be 1.0333x faster
   &lt;geometric&gt;                                       14.1584+-0.1005           14.1208+-0.0911          might be 1.0027x faster
   &lt;harmonic&gt;                                         3.6025+-0.0177     ?      3.6143+-0.1008        ? might be 1.0033x slower

                                                           ToT                      Hacks                                       
Geomean of preferred means:
   &lt;scaled-result&gt;                                   67.9138+-1.7434           67.1632+-0.8812          might be 1.0112x faster</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076056</commentid>
    <comment_count>7</comment_count>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-10 13:31:02 -0700</bug_when>
    <thetext>(In reply to comment #5)
&gt; I think you could fix the iteration thing by just popping from the end of
&gt; the vector (or taking from the begin of the hash table) rather than keeping
&gt; an index.

Yeah, that&apos;ll be very nice. Thanks for the suggestion :)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076074</commentid>
    <comment_count>8</comment_count>
      <attachid>248356</attachid>
    <who name="Andreas Kling">kling</who>
    <bug_when>2015-03-10 14:08:46 -0700</bug_when>
    <thetext>Created attachment 248356
Patch for landing</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076119</commentid>
    <comment_count>9</comment_count>
      <attachid>248356</attachid>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-10 15:59:39 -0700</bug_when>
    <thetext>Comment on attachment 248356
Patch for landing

Clearing flags on attachment: 248356

Committed r181350: &lt;http://trac.webkit.org/changeset/181350&gt;</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076120</commentid>
    <comment_count>10</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-03-10 15:59:43 -0700</bug_when>
    <thetext>All reviewed patches have been landed.  Closing bug.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076336</commentid>
    <comment_count>11</comment_count>
    <who name="Chris Dumez">cdumez</who>
    <bug_when>2015-03-11 09:11:12 -0700</bug_when>
    <thetext>http://jsfiddle.net/fvyw4ba0/3/ still gets killed after this change.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1076348</commentid>
    <comment_count>12</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-03-11 09:54:29 -0700</bug_when>
    <thetext>Yes, I think the remaining bug -- and the reason that your two jsfiddle still crash -- is that the high rate of eden GC promotes objects into old space, and then we forget how big they are, so we never GC old space.

I&apos;m working on a patch to remember the size of these canvases once in old space, like we do for some other objects. That should fix the jsfiddles.</thetext>
  </long_desc>
      
          <attachment
              isobsolete="1"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248344</attachid>
            <date>2015-03-10 12:14:20 -0700</date>
            <delta_ts>2015-03-10 14:08:46 -0700</delta_ts>
            <desc>Proposed patch</desc>
            <filename>bug-142538.diff</filename>
            <type>text/plain</type>
            <size>6193</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDUyNjg2Y2EuLjAwODFjZTEgMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQyIEBACisyMDE1LTAzLTEwICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBFZGVuIGNvbGxlY3Rpb25zIHNob3VsZCB0
cmlnZ2VyIHN3ZWVwIG9mIE1hcmtlZEJsb2NrcyBjb250YWluaW5nIG5ldyBvYmplY3RzLgorICAg
ICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQyNTM4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRha2UgYSBzbmFwc2hvdCBvZiBhbGwgTWFya2Vk
QmxvY2tzIHdpdGggbmV3IG9iamVjdHMgYXMgcGFydCBvZiBFZGVuIGNvbGxlY3Rpb25zLAorICAg
ICAgICBhbmQgYXBwZW5kIHRoYXQgdG8gdGhlIEluY3JlbWVudGFsU3dlZXBlcidzIHdvcmtpbmcg
c2V0LgorCisgICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0IHdlIHJ1biBkZXN0cnVjdG9ycyBmb3Ig
b2JqZWN0cyB0aGF0IHdlcmUgZGlzY292ZXJlZCB0byBiZSBnYXJiYWdlIGR1cmluZworICAgICAg
ICBFZGVuIGNvbGxlY3Rpb25zLCBpbnN0ZWFkIG9mIGRlbGF5aW5nIHRoZWlyIHRlYXJkb3duIHVu
dGlsIHRoZSBuZXh0IGZ1bGwgY29sbGVjdGlvbi4KKworICAgICAgICAqIGhlYXAvSGVhcC5jcHA6
CisgICAgICAgIChKU0M6OkhlYXA6OnNuYXBzaG90TWFya2VkU3BhY2UpOiBGb3IgRWRlbiBjb2xs
ZWN0aW9ucywgc25hcHNob3QgdGhlIGxpc3Qgb2YgTWFya2VkQmxvY2tzCisgICAgICAgIHRoYXQg
Y29udGFpbiBuZXcgb2JqZWN0cywgc2luY2UgdGhvc2UgYXJlIHRoZSBvbmx5IG9uZXMgd2UncmUg
aW50ZXJlc3RlZCBpbi4KKyAgICAgICAgQWxzbyB1c2UgVmVjdG9yOjpyZXNpemVUb0ZpdCgpIHRv
IGFsbG9jYXRlIHRoZSBzbmFwc2hvdCBmb3IgZnVsbCBjb2xsZWN0aW9ucywgc2luY2Ugd2Uga25v
dworICAgICAgICB0aGUgZmluYWwgc2l6ZSB3ZSBuZWVkIHVwIGZyb250LgorCisgICAgICAgIChK
U0M6OkhlYXA6Om5vdGlmeUluY3JlbWVudGFsU3dlZXBlcik6IEZvciBFZGVuIGNvbGxlY3Rpb25z
LCB0ZWxsIHRoZSBJbmNyZW1lbnRhbFN3ZWVwZXIKKyAgICAgICAgdG8gYXBwZW5kIGJsb2NrIHNu
YXBzaG90ICh0YWtlbiBlYXJsaWVyKSB0byBpdHMgZXhpc3Rpbmcgc2V0IG9mIGJsb2NrcyBpbnN0
ZWFkIG9mIHJlcGxhY2luZworICAgICAgICBpdCBlbnRpcmVseS4gVGhpcyBhbGxvd3MgRWRlbiBj
b2xsZWN0aW9ucyBhbmQgaW5jcmVtZW50YWwgc3dlZXBpbmcgdG8gb2NjdXIgaW50ZXJsZWF2ZWQg
d2l0aAorICAgICAgICBlYWNoIG90aGVyIHdpdGhvdXQgbWlzc2luZyBkZXN0cnVjdGlvbiBvcHBv
cnR1bml0aWVzLgorCisgICAgICAgICogaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaDoKKyAgICAg
ICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHA6CisgICAgICAgIChKU0M6OkluY3JlbWVu
dGFsU3dlZXBlcjo6ZG9Td2VlcCk6IFJlc2V0IHRoZSBjdXJyZW50LWJsb2NrLXRvLXN3ZWVwIGlu
ZGV4IHdoZW4gcmVhY2hpbmcKKyAgICAgICAgdGhlIGVuZCBvZiB0aGUgd29yayBsaXN0LiBUaGlz
IGFsbG93cyB1cyB0byBhcHBlbmQgYmxvY2tzIHdoaWxlIHRoZSBzd2VlcGVyIGlzIHJ1bm5pbmcu
CisKKyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVyOjpzdGFydFN3ZWVwaW5nKTogTWFr
ZSB0aGlzIHRha2UgYSBWZWN0b3I8TWFya2VkQmxvY2s+JiYgc28gd2UgY2FuCisgICAgICAgIHBh
c3Mgb3duZXJzaGlwIG9mIHRoaXMgVmVjdG9yIGVmZmljaWVudGx5IGZyb20gSGVhcCB0byBJbmNy
ZW1lbnRhbFN3ZWVwZXIuCisKKyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVyOjphcHBl
bmRCbG9ja3NBbmRDb250aW51ZVN3ZWVwaW5nKTogQWRkZWQuIFRoaXMgaXMgdXNlZCBieSBFZGVu
CisgICAgICAgIGNvbGxlY3Rpb25zIHRvIGFwcGVuZCBhIHNldCBvZiBNYXJrZWRCbG9ja3Mgd2l0
aCBuZXcgb2JqZWN0cyB0byB0aGUgc3dlZXBlcidzIGV4aXN0aW5nCisgICAgICAgIHdvcmtpbmcg
c2V0IGFuZCBraWNrIHRoZSB0aW1lci4KKworICAgICAgICAqIGhlYXAvTWFya2VkU3BhY2UuaDoK
KyAgICAgICAgKEpTQzo6TWFya2VkU3BhY2U6OmJsb2Nrc1dpdGhOZXdPYmplY3RzKTogRXhwb3Nl
IHRoZSBsaXN0IG9mIE1hcmtlZEJsb2NrcyB3aXRoIG5ldyBvYmplY3RzLgorCiAyMDE1LTAzLTA5
ICBBbmRyZWFzIEtsaW5nICA8YWtsaW5nQGFwcGxlLmNvbT4KIAogICAgICAgICBTdGFsZSBlbnRy
aWVzIGluIFdlYWtHQ01hcHMgYXJlIGtlZXBpbmcgdG9ucyBvZiBXZWFrQmxvY2tzIGFsaXZlIHVu
bmVjZXNzYXJpbHkuCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9IZWFw
LmNwcCBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCmluZGV4IGU0MDVkZDIu
LmE3NjZlMmUgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3Bw
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwCkBAIC0xMjEwLDEyICsx
MjEwLDE0IEBAIHN0cnVjdCBNYXJrZWRCbG9ja1NuYXBzaG90RnVuY3RvciA6IHB1YmxpYyBNYXJr
ZWRCbG9jazo6Vm9pZEZ1bmN0b3Igewogdm9pZCBIZWFwOjpzbmFwc2hvdE1hcmtlZFNwYWNlKCkK
IHsKICAgICBHQ1BIQVNFKFNuYXBzaG90TWFya2VkU3BhY2UpOwotICAgIGlmIChtX29wZXJhdGlv
bkluUHJvZ3Jlc3MgIT0gRnVsbENvbGxlY3Rpb24pCi0gICAgICAgIHJldHVybjsKIAotICAgIG1f
YmxvY2tTbmFwc2hvdC5yZXNpemUobV9vYmplY3RTcGFjZS5ibG9ja3MoKS5zZXQoKS5zaXplKCkp
OwotICAgIE1hcmtlZEJsb2NrU25hcHNob3RGdW5jdG9yIGZ1bmN0b3IobV9ibG9ja1NuYXBzaG90
KTsKLSAgICBtX29iamVjdFNwYWNlLmZvckVhY2hCbG9jayhmdW5jdG9yKTsKKyAgICBpZiAobV9v
cGVyYXRpb25JblByb2dyZXNzID09IEVkZW5Db2xsZWN0aW9uKQorICAgICAgICBtX2Jsb2NrU25h
cHNob3QgPSBtX29iamVjdFNwYWNlLmJsb2Nrc1dpdGhOZXdPYmplY3RzKCk7CisgICAgZWxzZSB7
CisgICAgICAgIG1fYmxvY2tTbmFwc2hvdC5yZXNpemVUb0ZpdChtX29iamVjdFNwYWNlLmJsb2Nr
cygpLnNldCgpLnNpemUoKSk7CisgICAgICAgIE1hcmtlZEJsb2NrU25hcHNob3RGdW5jdG9yIGZ1
bmN0b3IobV9ibG9ja1NuYXBzaG90KTsKKyAgICAgICAgbV9vYmplY3RTcGFjZS5mb3JFYWNoQmxv
Y2soZnVuY3Rvcik7CisgICAgfQogfQogCiB2b2lkIEhlYXA6OmRlbGV0ZVNvdXJjZVByb3ZpZGVy
Q2FjaGVzKCkKQEAgLTEyMjcsOSArMTIyOSwxMCBAQCB2b2lkIEhlYXA6OmRlbGV0ZVNvdXJjZVBy
b3ZpZGVyQ2FjaGVzKCkKIHZvaWQgSGVhcDo6bm90aWZ5SW5jcmVtZW50YWxTd2VlcGVyKCkKIHsK
ICAgICBHQ1BIQVNFKE5vdGlmeUluY3JlbWVudGFsU3dlZXBlcik7Ci0gICAgaWYgKG1fb3BlcmF0
aW9uSW5Qcm9ncmVzcyAhPSBGdWxsQ29sbGVjdGlvbikKLSAgICAgICAgcmV0dXJuOwotICAgIG1f
c3dlZXBlci0+c3RhcnRTd2VlcGluZyhtX2Jsb2NrU25hcHNob3QpOworICAgIGlmIChtX29wZXJh
dGlvbkluUHJvZ3Jlc3MgPT0gRnVsbENvbGxlY3Rpb24pCisgICAgICAgIG1fc3dlZXBlci0+c3Rh
cnRTd2VlcGluZyhXVEY6Om1vdmUobV9ibG9ja1NuYXBzaG90KSk7CisgICAgZWxzZQorICAgICAg
ICBtX3N3ZWVwZXItPmFwcGVuZEJsb2Nrc0FuZENvbnRpbnVlU3dlZXBpbmcoV1RGOjptb3ZlKG1f
YmxvY2tTbmFwc2hvdCkpOwogfQogCiB2b2lkIEhlYXA6OnJlbWVtYmVyQ3VycmVudGx5RXhlY3V0
aW5nQ29kZUJsb2NrcygpCmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9J
bmNyZW1lbnRhbFN3ZWVwZXIuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVt
ZW50YWxTd2VlcGVyLmNwcAppbmRleCBkYTE1MTM3Li5kZTQwZTY2IDEwMDY0NAotLS0gYS9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCisrKyBiL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAKQEAgLTc4LDYgKzc4
LDcgQEAgdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvU3dlZXAoZG91YmxlIHN3ZWVwQmVnaW5U
aW1lKQogICAgICAgICByZXR1cm47CiAgICAgfQogCisgICAgbV9jdXJyZW50QmxvY2tUb1N3ZWVw
SW5kZXggPSAwOwogICAgIG1fYmxvY2tzVG9Td2VlcC5jbGVhcigpOwogICAgIGNhbmNlbFRpbWVy
KCk7CiB9CkBAIC05NiwxMyArOTcsMjAgQEAgdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OnN3ZWVw
TmV4dEJsb2NrKCkKICAgICB9CiB9CiAKLXZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpzdGFydFN3
ZWVwaW5nKFZlY3RvcjxNYXJrZWRCbG9jayo+JiBibG9ja1NuYXBzaG90KQordm9pZCBJbmNyZW1l
bnRhbFN3ZWVwZXI6OnN0YXJ0U3dlZXBpbmcoVmVjdG9yPE1hcmtlZEJsb2NrKj4mJiBibG9ja1Nu
YXBzaG90KQogewotICAgIG1fYmxvY2tzVG9Td2VlcCA9IGJsb2NrU25hcHNob3Q7CisgICAgbV9i
bG9ja3NUb1N3ZWVwID0gV1RGOjptb3ZlKGJsb2NrU25hcHNob3QpOwogICAgIG1fY3VycmVudEJs
b2NrVG9Td2VlcEluZGV4ID0gMDsKICAgICBzY2hlZHVsZVRpbWVyKCk7CiB9CiAKK3ZvaWQgSW5j
cmVtZW50YWxTd2VlcGVyOjphcHBlbmRCbG9ja3NBbmRDb250aW51ZVN3ZWVwaW5nKFZlY3RvcjxN
YXJrZWRCbG9jayo+JiYgYmxvY2tTbmFwc2hvdCkKK3sKKyAgICBWZWN0b3I8TWFya2VkQmxvY2sq
PiBibG9ja3MgPSBXVEY6Om1vdmUoYmxvY2tTbmFwc2hvdCk7CisgICAgbV9ibG9ja3NUb1N3ZWVw
LmFwcGVuZFZlY3RvcihibG9ja3MpOworICAgIHNjaGVkdWxlVGltZXIoKTsKK30KKwogdm9pZCBJ
bmNyZW1lbnRhbFN3ZWVwZXI6OndpbGxGaW5pc2hTd2VlcGluZygpCiB7CiAgICAgbV9jdXJyZW50
QmxvY2tUb1N3ZWVwSW5kZXggPSAwOwpkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3Jl
L2hlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9J
bmNyZW1lbnRhbFN3ZWVwZXIuaAppbmRleCBhZjgyNmM0Li4yY2NkODQzIDEwMDY0NAotLS0gYS9T
b3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaAorKysgYi9Tb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaApAQCAtNDIsNyArNDIs
OSBAQCBwdWJsaWM6CiAgICAgZXhwbGljaXQgSW5jcmVtZW50YWxTd2VlcGVyKFZNKik7CiAjZW5k
aWYKIAotICAgIHZvaWQgc3RhcnRTd2VlcGluZyhWZWN0b3I8TWFya2VkQmxvY2sqPiYpOworICAg
IHZvaWQgc3RhcnRTd2VlcGluZyhWZWN0b3I8TWFya2VkQmxvY2sqPiYmKTsKKyAgICB2b2lkIGFw
cGVuZEJsb2Nrc0FuZENvbnRpbnVlU3dlZXBpbmcoVmVjdG9yPE1hcmtlZEJsb2NrKj4mJik7CisK
ICAgICBKU19FWFBPUlRfUFJJVkFURSB2aXJ0dWFsIHZvaWQgZG9Xb3JrKCkgb3ZlcnJpZGU7CiAg
ICAgdm9pZCBzd2VlcE5leHRCbG9jaygpOwogICAgIHZvaWQgd2lsbEZpbmlzaFN3ZWVwaW5nKCk7
CmRpZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oIGIv
U291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaAppbmRleCBiYzFhZjNkLi4x
ODMzZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFj
ZS5oCisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKQEAgLTE2
MCw2ICsxNjAsOCBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCByZWxl
YXNlU29vbihSZXRhaW5QdHI8VD4mJik7CiAjZW5kaWYKIAorICAgIGNvbnN0IFZlY3RvcjxNYXJr
ZWRCbG9jayo+JiBibG9ja3NXaXRoTmV3T2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fYmxvY2tz
V2l0aE5ld09iamVjdHM7IH0KKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZz
ZXRzRXh0cmFjdG9yOwogICAgIGZyaWVuZCBjbGFzcyBKSVQ7Cg==
</data>
<flag name="review"
          id="273239"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>248356</attachid>
            <date>2015-03-10 14:08:46 -0700</date>
            <delta_ts>2015-03-10 15:59:39 -0700</delta_ts>
            <desc>Patch for landing</desc>
            <filename>land-142538.diff</filename>
            <type>text/plain</type>
            <size>7957</size>
            <attacher name="Andreas Kling">kling</attacher>
            
              <data encoding="base64">ZGlmZiAtLWdpdCBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvQ2hhbmdlTG9nCmluZGV4IDUyNjg2Y2EuLjBmODRhNzggMTAwNjQ0Ci0tLSBh
L1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKKysrIGIvU291cmNlL0phdmFTY3JpcHRD
b3JlL0NoYW5nZUxvZwpAQCAtMSwzICsxLDQ1IEBACisyMDE1LTAzLTEwICBBbmRyZWFzIEtsaW5n
ICA8YWtsaW5nQGFwcGxlLmNvbT4KKworICAgICAgICBFZGVuIGNvbGxlY3Rpb25zIHNob3VsZCB0
cmlnZ2VyIHN3ZWVwIG9mIE1hcmtlZEJsb2NrcyBjb250YWluaW5nIG5ldyBvYmplY3RzLgorICAg
ICAgICA8aHR0cHM6Ly93ZWJraXQub3JnL2IvMTQyNTM4PgorCisgICAgICAgIFJldmlld2VkIGJ5
IEdlb2ZmcmV5IEdhcmVuLgorCisgICAgICAgIFRha2UgYSBzbmFwc2hvdCBvZiBhbGwgTWFya2Vk
QmxvY2tzIHdpdGggbmV3IG9iamVjdHMgYXMgcGFydCBvZiBFZGVuIGNvbGxlY3Rpb25zLAorICAg
ICAgICBhbmQgYXBwZW5kIHRoYXQgdG8gdGhlIEluY3JlbWVudGFsU3dlZXBlcidzIHdvcmtpbmcg
c2V0LgorCisgICAgICAgIFRoaXMgZW5zdXJlcyB0aGF0IHdlIHJ1biBkZXN0cnVjdG9ycyBmb3Ig
b2JqZWN0cyB0aGF0IHdlcmUgZGlzY292ZXJlZCB0byBiZSBnYXJiYWdlIGR1cmluZworICAgICAg
ICBFZGVuIGNvbGxlY3Rpb25zLCBpbnN0ZWFkIG9mIGRlbGF5aW5nIHRoZWlyIHRlYXJkb3duIHVu
dGlsIHRoZSBuZXh0IGZ1bGwgY29sbGVjdGlvbiwKKyAgICAgICAgb3IgdGhlIG5leHQgYWxsb2Nh
dGlvbiBjeWNsZSBmb3IgdGhlaXIgYmxvY2suCisKKyAgICAgICAgKiBoZWFwL0hlYXAuY3BwOgor
ICAgICAgICAoSlNDOjpIZWFwOjpzbmFwc2hvdE1hcmtlZFNwYWNlKTogRm9yIEVkZW4gY29sbGVj
dGlvbnMsIHNuYXBzaG90IHRoZSBsaXN0IG9mIE1hcmtlZEJsb2NrcworICAgICAgICB0aGF0IGNv
bnRhaW4gbmV3IG9iamVjdHMsIHNpbmNlIHRob3NlIGFyZSB0aGUgb25seSBvbmVzIHdlJ3JlIGlu
dGVyZXN0ZWQgaW4uCisgICAgICAgIEFsc28gdXNlIFZlY3Rvcjo6cmVzaXplVG9GaXQoKSB0byBh
bGxvY2F0ZSB0aGUgc25hcHNob3QgZm9yIGZ1bGwgY29sbGVjdGlvbnMsIHNpbmNlIHdlIGtub3cK
KyAgICAgICAgdGhlIGZpbmFsIHNpemUgd2UgbmVlZCB1cCBmcm9udC4KKworICAgICAgICAoSlND
OjpIZWFwOjpub3RpZnlJbmNyZW1lbnRhbFN3ZWVwZXIpOiBGb3IgRWRlbiBjb2xsZWN0aW9ucywg
dGVsbCB0aGUgSW5jcmVtZW50YWxTd2VlcGVyCisgICAgICAgIHRvIGFkZCB0aGUgYmxvY2sgc25h
cHNob3QgKHRha2VuIGVhcmxpZXIpIHRvIGl0cyBleGlzdGluZyBzZXQgb2YgYmxvY2tzIGluc3Rl
YWQgb2YgcmVwbGFjaW5nCisgICAgICAgIGl0IGVudGlyZWx5LiBUaGlzIGFsbG93cyBFZGVuIGNv
bGxlY3Rpb25zIGFuZCBpbmNyZW1lbnRhbCBzd2VlcGluZyB0byBvY2N1ciBpbnRlcmxlYXZlZCB3
aXRoCisgICAgICAgIGVhY2ggb3RoZXIgd2l0aG91dCBtaXNzaW5nIGRlc3RydWN0aW9uIG9wcG9y
dHVuaXRpZXMuCisKKyAgICAgICAgKiBoZWFwL0luY3JlbWVudGFsU3dlZXBlci5oOgorICAgICAg
ICAqIGhlYXAvSW5jcmVtZW50YWxTd2VlcGVyLmNwcDoKKyAgICAgICAgKEpTQzo6SW5jcmVtZW50
YWxTd2VlcGVyOjpkb1N3ZWVwKToKKyAgICAgICAgKEpTQzo6SW5jcmVtZW50YWxTd2VlcGVyOjpz
d2VlcE5leHRCbG9jayk6IENoYW5nZSB0aGUgd2F5IHdlIGl0ZXJhdGUgb3ZlciB0aGUgc3dlZXBl
cidzCisgICAgICAgIHdvcmsgbGlzdDogaW5zdGVhZCBvZiBrZWVwaW5nIGFuIGluZGV4IGZvciB0
aGUgbmV4dCBibG9jaywganVzdCBwb3AgZnJvbSB0aGUgZW5kIG9mIHRoZSBsaXN0LgorICAgICAg
ICBUaGlzIGFsbG93cyB1cyB0byBhZGQgbmV3IGJsb2NrcyBhbmQgZGVkdXBsaWNhdGUgdGhlIGxp
c3Qgd2l0aG91dCBkaXN0dXJiaW5nIGl0ZXJhdGlvbi4KKworICAgICAgICAoSlNDOjpJbmNyZW1l
bnRhbFN3ZWVwZXI6OnN0YXJ0U3dlZXBpbmcpOiBNYWtlIHRoaXMgdGFrZSBhIFZlY3RvcjxNYXJr
ZWRCbG9jaz4mJiBzbyB3ZSBjYW4KKyAgICAgICAgcGFzcyBvd25lcnNoaXAgb2YgdGhpcyBWZWN0
b3IgZWZmaWNpZW50bHkgZnJvbSBIZWFwIHRvIEluY3JlbWVudGFsU3dlZXBlci4KKworICAgICAg
ICAoSlNDOjpJbmNyZW1lbnRhbFN3ZWVwZXI6OmFkZEJsb2Nrc0FuZENvbnRpbnVlU3dlZXBpbmcp
OiBBZGRlZC4gVGhpcyBpcyB1c2VkIGJ5IEVkZW4KKyAgICAgICAgY29sbGVjdGlvbnMgdG8gYWRk
IGEgc2V0IG9mIE1hcmtlZEJsb2NrcyB3aXRoIG5ldyBvYmplY3RzIHRvIHRoZSBzd2VlcGVyJ3Mg
ZXhpc3RpbmcKKyAgICAgICAgd29ya2luZyBzZXQgYW5kIGtpY2sgdGhlIHRpbWVyLgorCisgICAg
ICAgICogaGVhcC9NYXJrZWRTcGFjZS5oOgorICAgICAgICAoSlNDOjpNYXJrZWRTcGFjZTo6Ymxv
Y2tzV2l0aE5ld09iamVjdHMpOiBFeHBvc2UgdGhlIGxpc3Qgb2YgTWFya2VkQmxvY2tzIHdpdGgg
bmV3IG9iamVjdHMuCisKIDIwMTUtMDMtMDkgIEFuZHJlYXMgS2xpbmcgIDxha2xpbmdAYXBwbGUu
Y29tPgogCiAgICAgICAgIFN0YWxlIGVudHJpZXMgaW4gV2Vha0dDTWFwcyBhcmUga2VlcGluZyB0
b25zIG9mIFdlYWtCbG9ja3MgYWxpdmUgdW5uZWNlc3NhcmlseS4KZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0hlYXAuY3BwIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5jcHAKaW5kZXggZTQwNWRkMi4uMzZkYTZmOCAxMDA2NDQKLS0tIGEvU291cmNlL0ph
dmFTY3JpcHRDb3JlL2hlYXAvSGVhcC5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hl
YXAvSGVhcC5jcHAKQEAgLTEyMTAsMTIgKzEyMTAsMTQgQEAgc3RydWN0IE1hcmtlZEJsb2NrU25h
cHNob3RGdW5jdG9yIDogcHVibGljIE1hcmtlZEJsb2NrOjpWb2lkRnVuY3RvciB7CiB2b2lkIEhl
YXA6OnNuYXBzaG90TWFya2VkU3BhY2UoKQogewogICAgIEdDUEhBU0UoU25hcHNob3RNYXJrZWRT
cGFjZSk7Ci0gICAgaWYgKG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyAhPSBGdWxsQ29sbGVjdGlvbikK
LSAgICAgICAgcmV0dXJuOwogCi0gICAgbV9ibG9ja1NuYXBzaG90LnJlc2l6ZShtX29iamVjdFNw
YWNlLmJsb2NrcygpLnNldCgpLnNpemUoKSk7Ci0gICAgTWFya2VkQmxvY2tTbmFwc2hvdEZ1bmN0
b3IgZnVuY3RvcihtX2Jsb2NrU25hcHNob3QpOwotICAgIG1fb2JqZWN0U3BhY2UuZm9yRWFjaEJs
b2NrKGZ1bmN0b3IpOworICAgIGlmIChtX29wZXJhdGlvbkluUHJvZ3Jlc3MgPT0gRWRlbkNvbGxl
Y3Rpb24pCisgICAgICAgIG1fYmxvY2tTbmFwc2hvdCA9IG1fb2JqZWN0U3BhY2UuYmxvY2tzV2l0
aE5ld09iamVjdHMoKTsKKyAgICBlbHNlIHsKKyAgICAgICAgbV9ibG9ja1NuYXBzaG90LnJlc2l6
ZVRvRml0KG1fb2JqZWN0U3BhY2UuYmxvY2tzKCkuc2V0KCkuc2l6ZSgpKTsKKyAgICAgICAgTWFy
a2VkQmxvY2tTbmFwc2hvdEZ1bmN0b3IgZnVuY3RvcihtX2Jsb2NrU25hcHNob3QpOworICAgICAg
ICBtX29iamVjdFNwYWNlLmZvckVhY2hCbG9jayhmdW5jdG9yKTsKKyAgICB9CiB9CiAKIHZvaWQg
SGVhcDo6ZGVsZXRlU291cmNlUHJvdmlkZXJDYWNoZXMoKQpAQCAtMTIyNyw5ICsxMjI5LDEwIEBA
IHZvaWQgSGVhcDo6ZGVsZXRlU291cmNlUHJvdmlkZXJDYWNoZXMoKQogdm9pZCBIZWFwOjpub3Rp
ZnlJbmNyZW1lbnRhbFN3ZWVwZXIoKQogewogICAgIEdDUEhBU0UoTm90aWZ5SW5jcmVtZW50YWxT
d2VlcGVyKTsKLSAgICBpZiAobV9vcGVyYXRpb25JblByb2dyZXNzICE9IEZ1bGxDb2xsZWN0aW9u
KQotICAgICAgICByZXR1cm47Ci0gICAgbV9zd2VlcGVyLT5zdGFydFN3ZWVwaW5nKG1fYmxvY2tT
bmFwc2hvdCk7CisgICAgaWYgKG1fb3BlcmF0aW9uSW5Qcm9ncmVzcyA9PSBFZGVuQ29sbGVjdGlv
bikKKyAgICAgICAgbV9zd2VlcGVyLT5hZGRCbG9ja3NBbmRDb250aW51ZVN3ZWVwaW5nKFdURjo6
bW92ZShtX2Jsb2NrU25hcHNob3QpKTsKKyAgICBlbHNlCisgICAgICAgIG1fc3dlZXBlci0+c3Rh
cnRTd2VlcGluZyhXVEY6Om1vdmUobV9ibG9ja1NuYXBzaG90KSk7CiB9CiAKIHZvaWQgSGVhcDo6
cmVtZW1iZXJDdXJyZW50bHlFeGVjdXRpbmdDb2RlQmxvY2tzKCkKZGlmZiAtLWdpdCBhL1NvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFsU3dlZXBlci5jcHAgYi9Tb3VyY2UvSmF2
YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuY3BwCmluZGV4IGRhMTUxMzcuLmRh
MTUxMmIgMTAwNjQ0Ci0tLSBhL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL0luY3JlbWVudGFs
U3dlZXBlci5jcHAKKysrIGIvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVtZW50YWxT
d2VlcGVyLmNwcApAQCAtNDUsNyArNDUsNiBAQCBzdGF0aWMgY29uc3QgZG91YmxlIHN3ZWVwVGlt
ZU11bHRpcGxpZXIgPSAxLjAgLyBzd2VlcFRpbWVUb3RhbDsKIAogSW5jcmVtZW50YWxTd2VlcGVy
OjpJbmNyZW1lbnRhbFN3ZWVwZXIoSGVhcCogaGVhcCwgQ0ZSdW5Mb29wUmVmIHJ1bkxvb3ApCiAg
ICAgOiBIZWFwVGltZXIoaGVhcC0+dm0oKSwgcnVuTG9vcCkKLSAgICAsIG1fY3VycmVudEJsb2Nr
VG9Td2VlcEluZGV4KDApCiAgICAgLCBtX2Jsb2Nrc1RvU3dlZXAoaGVhcC0+bV9ibG9ja1NuYXBz
aG90KQogewogfQpAQCAtNjcsNyArNjYsNyBAQCB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6ZG9X
b3JrKCkKIAogdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OmRvU3dlZXAoZG91YmxlIHN3ZWVwQmVn
aW5UaW1lKQogewotICAgIHdoaWxlIChtX2N1cnJlbnRCbG9ja1RvU3dlZXBJbmRleCA8IG1fYmxv
Y2tzVG9Td2VlcC5zaXplKCkpIHsKKyAgICB3aGlsZSAoIW1fYmxvY2tzVG9Td2VlcC5pc0VtcHR5
KCkpIHsKICAgICAgICAgc3dlZXBOZXh0QmxvY2soKTsKIAogICAgICAgICBkb3VibGUgZWxhcHNl
ZFRpbWUgPSBXVEY6Om1vbm90b25pY2FsbHlJbmNyZWFzaW5nVGltZSgpIC0gc3dlZXBCZWdpblRp
bWU7CkBAIC04NCw4ICs4Myw4IEBAIHZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjpkb1N3ZWVwKGRv
dWJsZSBzd2VlcEJlZ2luVGltZSkKIAogdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OnN3ZWVwTmV4
dEJsb2NrKCkKIHsKLSAgICB3aGlsZSAobV9jdXJyZW50QmxvY2tUb1N3ZWVwSW5kZXggPCBtX2Js
b2Nrc1RvU3dlZXAuc2l6ZSgpKSB7Ci0gICAgICAgIE1hcmtlZEJsb2NrKiBibG9jayA9IG1fYmxv
Y2tzVG9Td2VlcFttX2N1cnJlbnRCbG9ja1RvU3dlZXBJbmRleCsrXTsKKyAgICB3aGlsZSAoIW1f
YmxvY2tzVG9Td2VlcC5pc0VtcHR5KCkpIHsKKyAgICAgICAgTWFya2VkQmxvY2sqIGJsb2NrID0g
bV9ibG9ja3NUb1N3ZWVwLnRha2VMYXN0KCk7CiAKICAgICAgICAgaWYgKCFibG9jay0+bmVlZHNT
d2VlcGluZygpKQogICAgICAgICAgICAgY29udGludWU7CkBAIC05NiwxNiArOTUsMjMgQEAgdm9p
ZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OnN3ZWVwTmV4dEJsb2NrKCkKICAgICB9CiB9CiAKLXZvaWQg
SW5jcmVtZW50YWxTd2VlcGVyOjpzdGFydFN3ZWVwaW5nKFZlY3RvcjxNYXJrZWRCbG9jayo+JiBi
bG9ja1NuYXBzaG90KQordm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OnN0YXJ0U3dlZXBpbmcoVmVj
dG9yPE1hcmtlZEJsb2NrKj4mJiBibG9ja1NuYXBzaG90KQogewotICAgIG1fYmxvY2tzVG9Td2Vl
cCA9IGJsb2NrU25hcHNob3Q7Ci0gICAgbV9jdXJyZW50QmxvY2tUb1N3ZWVwSW5kZXggPSAwOwor
ICAgIG1fYmxvY2tzVG9Td2VlcCA9IFdURjo6bW92ZShibG9ja1NuYXBzaG90KTsKKyAgICBzY2hl
ZHVsZVRpbWVyKCk7Cit9CisKK3ZvaWQgSW5jcmVtZW50YWxTd2VlcGVyOjphZGRCbG9ja3NBbmRD
b250aW51ZVN3ZWVwaW5nKFZlY3RvcjxNYXJrZWRCbG9jayo+JiYgYmxvY2tTbmFwc2hvdCkKK3sK
KyAgICBWZWN0b3I8TWFya2VkQmxvY2sqPiBibG9ja3MgPSBXVEY6Om1vdmUoYmxvY2tTbmFwc2hv
dCk7CisgICAgbV9ibG9ja3NUb1N3ZWVwLmFwcGVuZFZlY3RvcihibG9ja3MpOworICAgIHN0ZDo6
c29ydChtX2Jsb2Nrc1RvU3dlZXAuYmVnaW4oKSwgbV9ibG9ja3NUb1N3ZWVwLmVuZCgpKTsKKyAg
ICBtX2Jsb2Nrc1RvU3dlZXAuc2hyaW5rKHN0ZDo6dW5pcXVlKG1fYmxvY2tzVG9Td2VlcC5iZWdp
bigpLCBtX2Jsb2Nrc1RvU3dlZXAuZW5kKCkpIC0gbV9ibG9ja3NUb1N3ZWVwLmJlZ2luKCkpOwog
ICAgIHNjaGVkdWxlVGltZXIoKTsKIH0KIAogdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OndpbGxG
aW5pc2hTd2VlcGluZygpCiB7Ci0gICAgbV9jdXJyZW50QmxvY2tUb1N3ZWVwSW5kZXggPSAwOwog
ICAgIG1fYmxvY2tzVG9Td2VlcC5jbGVhcigpOwogICAgIGlmIChtX3ZtKQogICAgICAgICBjYW5j
ZWxUaW1lcigpOwpAQCAtMTIyLDcgKzEyOCwxMSBAQCB2b2lkIEluY3JlbWVudGFsU3dlZXBlcjo6
ZG9Xb3JrKCkKIHsKIH0KIAotdm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OnN0YXJ0U3dlZXBpbmco
VmVjdG9yPE1hcmtlZEJsb2NrKj4mKQordm9pZCBJbmNyZW1lbnRhbFN3ZWVwZXI6OnN0YXJ0U3dl
ZXBpbmcoVmVjdG9yPE1hcmtlZEJsb2NrKj4mJikKK3sKK30KKwordm9pZCBJbmNyZW1lbnRhbFN3
ZWVwZXI6OmFkZEJsb2Nrc0FuZENvbnRpbnVlU3dlZXBpbmcoVmVjdG9yPE1hcmtlZEJsb2NrKj4m
JikKIHsKIH0KIApkaWZmIC0tZ2l0IGEvU291cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvSW5jcmVt
ZW50YWxTd2VlcGVyLmggYi9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3
ZWVwZXIuaAppbmRleCBhZjgyNmM0Li5kNmMzNzhkIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNj
cmlwdENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaAorKysgYi9Tb3VyY2UvSmF2YVNjcmlw
dENvcmUvaGVhcC9JbmNyZW1lbnRhbFN3ZWVwZXIuaApAQCAtNDIsNyArNDIsOSBAQCBwdWJsaWM6
CiAgICAgZXhwbGljaXQgSW5jcmVtZW50YWxTd2VlcGVyKFZNKik7CiAjZW5kaWYKIAotICAgIHZv
aWQgc3RhcnRTd2VlcGluZyhWZWN0b3I8TWFya2VkQmxvY2sqPiYpOworICAgIHZvaWQgc3RhcnRT
d2VlcGluZyhWZWN0b3I8TWFya2VkQmxvY2sqPiYmKTsKKyAgICB2b2lkIGFkZEJsb2Nrc0FuZENv
bnRpbnVlU3dlZXBpbmcoVmVjdG9yPE1hcmtlZEJsb2NrKj4mJik7CisKICAgICBKU19FWFBPUlRf
UFJJVkFURSB2aXJ0dWFsIHZvaWQgZG9Xb3JrKCkgb3ZlcnJpZGU7CiAgICAgdm9pZCBzd2VlcE5l
eHRCbG9jaygpOwogICAgIHZvaWQgd2lsbEZpbmlzaFN3ZWVwaW5nKCk7CkBAIC01Myw3ICs1NSw2
IEBAIHByaXZhdGU6CiAgICAgdm9pZCBzY2hlZHVsZVRpbWVyKCk7CiAgICAgdm9pZCBjYW5jZWxU
aW1lcigpOwogICAgIAotICAgIHVuc2lnbmVkIG1fY3VycmVudEJsb2NrVG9Td2VlcEluZGV4Owog
ICAgIFZlY3RvcjxNYXJrZWRCbG9jayo+JiBtX2Jsb2Nrc1RvU3dlZXA7CiAjZW5kaWYKIH07CmRp
ZmYgLS1naXQgYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5oIGIvU291
cmNlL0phdmFTY3JpcHRDb3JlL2hlYXAvTWFya2VkU3BhY2UuaAppbmRleCBiYzFhZjNkLi4xODMz
ZjliIDEwMDY0NAotLS0gYS9Tb3VyY2UvSmF2YVNjcmlwdENvcmUvaGVhcC9NYXJrZWRTcGFjZS5o
CisrKyBiL1NvdXJjZS9KYXZhU2NyaXB0Q29yZS9oZWFwL01hcmtlZFNwYWNlLmgKQEAgLTE2MCw2
ICsxNjAsOCBAQCBwdWJsaWM6CiAgICAgdGVtcGxhdGU8dHlwZW5hbWUgVD4gdm9pZCByZWxlYXNl
U29vbihSZXRhaW5QdHI8VD4mJik7CiAjZW5kaWYKIAorICAgIGNvbnN0IFZlY3RvcjxNYXJrZWRC
bG9jayo+JiBibG9ja3NXaXRoTmV3T2JqZWN0cygpIGNvbnN0IHsgcmV0dXJuIG1fYmxvY2tzV2l0
aE5ld09iamVjdHM7IH0KKwogcHJpdmF0ZToKICAgICBmcmllbmQgY2xhc3MgTExJbnRPZmZzZXRz
RXh0cmFjdG9yOwogICAgIGZyaWVuZCBjbGFzcyBKSVQ7Cg==
</data>

          </attachment>
      

    </bug>

</bugzilla>