<?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>150750</bug_id>
          
          <creation_ts>2015-10-30 19:21:50 -0700</creation_ts>
          <short_desc>B3 should be able to compile a Patchpoint</short_desc>
          <delta_ts>2015-11-02 14:57:19 -0800</delta_ts>
          <reporter_accessible>1</reporter_accessible>
          <cclist_accessible>1</cclist_accessible>
          <classification_id>1</classification_id>
          <classification>Unclassified</classification>
          <product>WebKit</product>
          <component>JavaScriptCore</component>
          <version>WebKit Nightly Build</version>
          <rep_platform>All</rep_platform>
          <op_sys>All</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>
          <dependson>150511</dependson>
          <blocked>150279</blocked>
          <everconfirmed>1</everconfirmed>
          <reporter name="Filip Pizlo">fpizlo</reporter>
          <assigned_to name="Filip Pizlo">fpizlo</assigned_to>
          <cc>benjamin</cc>
    
    <cc>commit-queue</cc>
    
    <cc>ggaren</cc>
          

      

      

      

          <comment_sort_order>oldest_to_newest</comment_sort_order>  
          <long_desc isprivate="0" >
    <commentid>1138100</commentid>
    <comment_count>0</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-10-30 19:21:50 -0700</bug_when>
    <thetext>Yay!</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138682</commentid>
    <comment_count>1</comment_count>
      <attachid>264624</attachid>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-02 13:53:32 -0800</bug_when>
    <thetext>Created attachment 264624
the patch</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138684</commentid>
    <comment_count>2</comment_count>
    <who name="WebKit Commit Bot">commit-queue</who>
    <bug_when>2015-11-02 13:54:46 -0800</bug_when>
    <thetext>Attachment 264624 did not pass style-queue:


ERROR: Source/JavaScriptCore/b3/testb3.cpp:1218:  Place brace on its own line for function definitions.  [whitespace/braces] [4]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:1219:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
ERROR: Source/JavaScriptCore/b3/testb3.cpp:1228:  Consider using CHECK_EQ instead of CHECK(a == b)  [readability/check] [2]
Total errors found: 3 in 13 files


If any of these errors are false positives, please file a bug against check-webkit-style.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138692</commentid>
    <comment_count>3</comment_count>
      <attachid>264624</attachid>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-11-02 14:09:43 -0800</bug_when>
    <thetext>Comment on attachment 264624
the patch

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

r=me

&gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:744
&gt; +        for (unsigned i = 0; i &lt; patchpointValue-&gt;numChildren(); ++i) {
&gt; +            ValueRep rep;
&gt; +            if (i &lt; patchpointValue-&gt;stackmap.reps().size())

I think you assert below that this condition is true. Is that right? 

If so, there&apos;s no need for this test, since Vector asserts already. (And I think the code would read more clearly without it, since the current code seems to try to handle the difference, until you look really closely.)</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138693</commentid>
    <comment_count>4</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-02 14:14:52 -0800</bug_when>
    <thetext>(In reply to comment #3)
&gt; Comment on attachment 264624 [details]
&gt; the patch
&gt; 
&gt; View in context:
&gt; https://bugs.webkit.org/attachment.cgi?id=264624&amp;action=review
&gt; 
&gt; r=me
&gt; 
&gt; &gt; Source/JavaScriptCore/b3/B3LowerToAir.cpp:744
&gt; &gt; +        for (unsigned i = 0; i &lt; patchpointValue-&gt;numChildren(); ++i) {
&gt; &gt; +            ValueRep rep;
&gt; &gt; +            if (i &lt; patchpointValue-&gt;stackmap.reps().size())
&gt; 
&gt; I think you assert below that this condition is true. Is that right? 

I don&apos;t believe that I do.  The Stackmap::reps() can be left blank, and doing so means that for any child value whose index is beyond bounds of reps(), we assume ValueRep::Any.  The idea is that our OSR exit stackmaps will pretty much universally do this, and it saves us some small amount of memory since we don&apos;t have to carry around N copies of ValueRep::Any.

Hence why this if statement leaves the rep uninitialized if we&apos;re out of bounds.  The default constructor of ValueRep is ValueRep::Any.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138699</commentid>
    <comment_count>5</comment_count>
    <who name="Geoffrey Garen">ggaren</who>
    <bug_when>2015-11-02 14:29:15 -0800</bug_when>
    <thetext>&gt; The default constructor of ValueRep is ValueRep::Any.

Aha! I missed that.</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138713</commentid>
    <comment_count>6</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-02 14:52:32 -0800</bug_when>
    <thetext>I tested performance because I changed BlockInsertionSet.  It&apos;s fine.


Benchmark report for SunSpider, LongSpider, V8Spider, Octane, Kraken, JSRegress, AsmBench, and CompressionBench on shakezilla (MacBookPro11,3).

VMs tested:
&quot;TipOfTree&quot; at /Volumes/Data/secondary/OpenSource/WebKitBuild/Release/jsc (r191908)
&quot;Patchpoint&quot; at /Volumes/Data/primary/OpenSource/WebKitBuild/Release/jsc (r191908)

Collected 6 samples per benchmark/VM, with 6 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.

                                                        TipOfTree                 Patchpoint                                    
SunSpider:
   3d-cube                                            4.6664+-0.1060     ?      4.7774+-0.3676        ? might be 1.0238x slower
   3d-morph                                           5.2342+-0.1878            5.1181+-0.0579          might be 1.0227x faster
   3d-raytrace                                        5.3138+-0.1263     ?      5.3606+-0.1234        ?
   access-binary-trees                                2.2983+-0.3792            2.2324+-0.1103          might be 1.0295x faster
   access-fannkuch                                    5.7808+-0.1836     ?      5.8585+-0.2134        ? might be 1.0135x slower
   access-nbody                                       2.5413+-0.0403     ?      2.5634+-0.0886        ?
   access-nsieve                                      3.0801+-0.0592     ?      3.2312+-0.3625        ? might be 1.0491x slower
   bitops-3bit-bits-in-byte                           1.2864+-0.2166            1.1496+-0.0241          might be 1.1190x faster
   bitops-bits-in-byte                                3.2105+-0.0600     ?      3.2904+-0.2491        ? might be 1.0249x slower
   bitops-bitwise-and                                 2.2404+-0.4866            2.0818+-0.2139          might be 1.0762x faster
   bitops-nsieve-bits                                 3.0389+-0.1155     ?      3.1216+-0.1874        ? might be 1.0272x slower
   controlflow-recursive                              2.5248+-0.2573            2.4569+-0.0822          might be 1.0276x faster
   crypto-aes                                         4.1996+-0.5461     ?      4.2559+-0.4897        ? might be 1.0134x slower
   crypto-md5                                         2.5295+-0.1316            2.5131+-0.0351        
   crypto-sha1                                        2.6700+-0.5175            2.6600+-0.3465        
   date-format-tofte                                  6.8769+-0.5946            6.6881+-0.2249          might be 1.0282x faster
   date-format-xparb                                  4.9242+-0.3802            4.7921+-0.4132          might be 1.0276x faster
   math-cordic                                        2.8380+-0.1609     ?      2.9093+-0.1838        ? might be 1.0251x slower
   math-partial-sums                                  4.8545+-0.0927            4.8081+-0.1583        
   math-spectral-norm                                 2.0599+-0.3863     ?      2.0766+-0.2391        ?
   regexp-dna                                         6.3150+-0.2064            6.2432+-0.1745          might be 1.0115x faster
   string-base64                                      4.3840+-0.2205            4.3821+-0.1703        
   string-fasta                                       5.8546+-0.1596     ?      6.2567+-0.5323        ? might be 1.0687x slower
   string-tagcloud                                    8.0673+-0.3108     ?      8.3215+-0.6514        ? might be 1.0315x slower
   string-unpack-code                                19.0909+-1.4245           19.0205+-1.2091        
   string-validate-input                              4.4605+-0.1331     ?      4.5785+-0.1848        ? might be 1.0264x slower

   &lt;arithmetic&gt;                                       4.6285+-0.0943     ?      4.6441+-0.0877        ? might be 1.0034x slower

                                                        TipOfTree                 Patchpoint                                    
LongSpider:
   3d-cube                                          796.6695+-5.8853     ?    799.2611+-3.1955        ?
   3d-morph                                        1492.8435+-5.8818         1491.1365+-6.6928        
   3d-raytrace                                      602.4497+-3.2692          597.9617+-3.8993        
   access-binary-trees                              797.4349+-4.5993          794.4458+-4.8693        
   access-fannkuch                                  291.2711+-6.4831     ?    297.4408+-3.6207        ? might be 1.0212x slower
   access-nbody                                     512.1506+-1.4635     ?    512.8748+-1.5770        ?
   access-nsieve                                    377.2794+-10.0266    ?    387.7958+-14.0753       ? might be 1.0279x slower
   bitops-3bit-bits-in-byte                          35.9484+-1.9290           34.0252+-0.9349          might be 1.0565x faster
   bitops-bits-in-byte                               84.8417+-8.9962           75.8621+-0.4586          might be 1.1184x faster
   bitops-nsieve-bits                               404.7881+-5.2420          401.4864+-2.6856        
   controlflow-recursive                            431.1915+-0.4495     ?    432.6188+-2.4281        ?
   crypto-aes                                       548.6018+-12.7697    ?    555.5884+-2.1708        ? might be 1.0127x slower
   crypto-md5                                       481.9193+-39.5275    ?    521.3770+-5.6949        ? might be 1.0819x slower
   crypto-sha1                                      661.4811+-5.8879     ?    663.0192+-16.6064       ?
   date-format-tofte                                508.9740+-10.1147         506.3620+-10.7602       
   date-format-xparb                                684.1122+-81.0227         652.5448+-3.9169          might be 1.0484x faster
   hash-map                                         149.6751+-2.9510          149.1528+-1.7442        
   math-cordic                                      487.1285+-6.7011          482.9140+-0.8476        
   math-partial-sums                                459.3738+-1.0154          458.0676+-1.1225        
   math-spectral-norm                               549.2832+-2.2756          549.1062+-3.0232        
   string-base64                                    363.5120+-21.9186    ?    375.0457+-4.4407        ? might be 1.0317x slower
   string-fasta                                     353.7400+-3.2671     ?    354.7234+-2.8136        ?
   string-tagcloud                                  175.6710+-1.7626     ?    176.3029+-2.4506        ?

   &lt;geometric&gt;                                      391.4116+-4.7865          390.4791+-1.6490          might be 1.0024x faster

                                                        TipOfTree                 Patchpoint                                    
V8Spider:
   crypto                                            50.7238+-1.1436           49.8092+-1.2497          might be 1.0184x faster
   deltablue                                         75.3816+-2.6854     ?     80.5200+-4.9873        ? might be 1.0682x slower
   earley-boyer                                      43.4520+-1.8504           41.3682+-1.8129          might be 1.0504x faster
   raytrace                                          29.2585+-0.6828     ?     30.0750+-2.2505        ? might be 1.0279x slower
   regexp                                            61.7715+-1.1013     ?     63.3427+-1.0683        ? might be 1.0254x slower
   richards                                          53.3081+-0.9143           53.1174+-1.0728        
   splay                                             38.4242+-2.0817           37.1762+-1.9050          might be 1.0336x faster

   &lt;geometric&gt;                                       48.3038+-0.6444     ?     48.3845+-0.5404        ? might be 1.0017x slower

                                                        TipOfTree                 Patchpoint                                    
Octane:
   encrypt                                           0.15588+-0.00376    ?     0.15617+-0.00300       ?
   decrypt                                           2.89361+-0.01914          2.88797+-0.02983       
   deltablue                                x2       0.13513+-0.00348          0.13438+-0.00363       
   earley                                            0.28413+-0.00407          0.28345+-0.00291       
   boyer                                             4.27284+-0.02838    ?     4.33412+-0.07946       ? might be 1.0143x slower
   navier-stokes                            x2       4.81460+-0.00831    ?     4.87434+-0.11591       ? might be 1.0124x slower
   raytrace                                 x2       0.84834+-0.00502    ?     0.85196+-0.00371       ?
   richards                                 x2       0.08663+-0.00124          0.08605+-0.00079       
   splay                                    x2       0.34442+-0.00435    ?     0.34765+-0.00451       ?
   regexp                                   x2      24.24326+-0.35898    ?    24.87817+-0.37447       ? might be 1.0262x slower
   pdfjs                                    x2      37.20639+-0.37699    ?    37.43573+-0.43754       ?
   mandreel                                 x2      42.58851+-0.26719    ?    42.76791+-0.59450       ?
   gbemu                                    x2      29.57808+-0.28562    ?    30.87325+-2.51305       ? might be 1.0438x slower
   closure                                           0.58834+-0.00355          0.58593+-0.01197       
   jquery                                            7.47679+-0.07565          7.41323+-0.03238       
   box2d                                    x2       9.30642+-0.03449    ?     9.31964+-0.06339       ?
   zlib                                     x2     389.87720+-3.66678        385.92372+-19.96750        might be 1.0102x faster
   typescript                               x2     670.61271+-7.02671    ?   671.10620+-12.88269      ?

   &lt;geometric&gt;                                       5.28757+-0.01741    ?     5.31600+-0.01648       ? might be 1.0054x slower

                                                        TipOfTree                 Patchpoint                                    
Kraken:
   ai-astar                                          128.077+-1.285      ?     128.327+-2.360         ?
   audio-beat-detection                               48.230+-0.150      ?      48.269+-0.406         ?
   audio-dft                                          95.835+-0.947      ?      98.299+-1.805         ? might be 1.0257x slower
   audio-fft                                          37.020+-2.009             34.914+-0.484           might be 1.0603x faster
   audio-oscillator                                   58.036+-1.303             57.624+-0.920         
   imaging-darkroom                                   60.263+-1.428      ?      60.479+-1.960         ?
   imaging-desaturate                                 48.780+-1.120      ?      49.169+-1.003         ?
   imaging-gaussian-blur                              87.571+-0.503             87.446+-0.755         
   json-parse-financial                               44.621+-16.514            38.500+-0.886           might be 1.1590x faster
   json-stringify-tinderbox                           23.299+-1.238             23.127+-1.160         
   stanford-crypto-aes                                41.848+-0.893      ?      43.346+-2.102         ? might be 1.0358x slower
   stanford-crypto-ccm                                37.462+-2.204             36.972+-1.923           might be 1.0133x faster
   stanford-crypto-pbkdf2                             96.064+-0.781      ?      96.634+-2.093         ?
   stanford-crypto-sha256-iterative                   36.463+-0.571      ?      37.167+-1.202         ? might be 1.0193x slower

   &lt;arithmetic&gt;                                       60.255+-1.027             60.020+-0.211           might be 1.0039x faster

                                                        TipOfTree                 Patchpoint                                    
JSRegress:
   abc-forward-loop-equal                            30.2798+-0.9545           30.0716+-0.9630        
   abc-postfix-backward-loop                         30.6968+-1.0587     ?     31.0806+-2.1152        ? might be 1.0125x slower
   abc-simple-backward-loop                          29.2849+-0.6721     ?     29.9820+-1.0585        ? might be 1.0238x slower
   abc-simple-forward-loop                           30.0102+-1.0835           29.6306+-1.1052          might be 1.0128x faster
   abc-skippy-loop                                   21.6175+-0.2864           21.4808+-0.6164        
   abs-boolean                                        2.5180+-0.1073     ?      2.5649+-0.1486        ? might be 1.0186x slower
   adapt-to-double-divide                            16.6871+-1.0063           16.6588+-0.7539        
   aliased-arguments-getbyval                         1.3950+-0.4392            1.2090+-0.0789          might be 1.1538x faster
   allocate-big-object                                2.5664+-0.1041            2.5551+-0.1269        
   arguments-named-and-reflective                    10.6411+-0.5123     ?     10.7261+-0.2504        ?
   arguments-out-of-bounds                            9.7341+-0.7896            9.3046+-0.3325          might be 1.0462x faster
   arguments-strict-mode                              9.6617+-0.6435            9.6160+-0.3979        
   arguments                                          8.2840+-0.2696     ?      8.3291+-0.2139        ?
   arity-mismatch-inlining                            0.8756+-0.0173     ?      0.9315+-0.0788        ? might be 1.0638x slower
   array-access-polymorphic-structure                 7.3465+-0.2807            7.2098+-0.2486          might be 1.0190x faster
   array-nonarray-polymorhpic-access                 24.6072+-0.7525     ?     24.8260+-0.5419        ?
   array-prototype-every                             77.2719+-2.4550     ?     78.2349+-3.2616        ? might be 1.0125x slower
   array-prototype-forEach                           77.9512+-2.0497     ?     84.2809+-25.4015       ? might be 1.0812x slower
   array-prototype-map                               82.0643+-1.1486     ?     82.0951+-1.3356        ?
   array-prototype-reduce                            72.6243+-1.9076           72.0482+-0.9755        
   array-prototype-reduceRight                       84.5295+-29.4392          75.5300+-5.3608          might be 1.1192x faster
   array-prototype-some                              78.3950+-2.6557           78.0869+-3.3306        
   array-splice-contiguous                           23.9288+-0.9617           23.7514+-1.6205        
   array-with-double-add                              3.5888+-0.0777     ?      3.7055+-0.1565        ? might be 1.0325x slower
   array-with-double-increment                        3.1833+-0.1025            3.1517+-0.0233          might be 1.0101x faster
   array-with-double-mul-add                          4.4684+-0.0546     ?      4.6447+-0.2625        ? might be 1.0394x slower
   array-with-double-sum                              3.3417+-0.2716            3.2287+-0.0802          might be 1.0350x faster
   array-with-int32-add-sub                           6.1862+-0.3022     ?      6.3807+-0.3976        ? might be 1.0314x slower
   array-with-int32-or-double-sum                     3.2929+-0.0818            3.2702+-0.0312        
   ArrayBuffer-DataView-alloc-large-long-lived   
                                                     27.6743+-1.5149           26.2963+-1.4817          might be 1.0524x faster
   ArrayBuffer-DataView-alloc-long-lived             12.7003+-1.4322           11.9641+-0.2401          might be 1.0615x faster
   ArrayBuffer-Int32Array-byteOffset                  3.5346+-0.0225     ?      3.7122+-0.2480        ? might be 1.0502x slower
   ArrayBuffer-Int8Array-alloc-large-long-lived   
                                                     26.7909+-1.5145           26.1204+-0.4592          might be 1.0257x faster
   ArrayBuffer-Int8Array-alloc-long-lived-buffer   
                                                     20.5479+-1.9865           19.1921+-0.4985          might be 1.0706x faster
   ArrayBuffer-Int8Array-alloc-long-lived            11.4813+-0.5542           11.4250+-0.5279        
   ArrayBuffer-Int8Array-alloc                        9.8318+-0.9313            9.4812+-0.4413          might be 1.0370x faster
   arrowfunction-call                                11.3534+-0.5863           11.0468+-0.1962          might be 1.0278x faster
   asmjs_bool_bug                                     8.2561+-0.3628            8.2043+-0.2874        
   assign-custom-setter-polymorphic                   2.4384+-0.0223            2.4017+-0.0550          might be 1.0152x faster
   assign-custom-setter                               3.3984+-0.0461            3.3954+-0.1300        
   basic-set                                          7.7866+-0.4412            7.7314+-0.5894        
   big-int-mul                                        3.6635+-0.4273            3.5792+-0.3352          might be 1.0235x faster
   boolean-test                                       3.2406+-0.2935            3.0835+-0.0732          might be 1.0509x faster
   branch-fold                                        3.8090+-0.4476            3.6683+-0.1002          might be 1.0384x faster
   branch-on-string-as-boolean                       17.6831+-0.5237           16.9892+-1.6338          might be 1.0408x faster
   by-val-generic                                     2.3990+-0.1203     ?      2.5260+-0.2718        ? might be 1.0529x slower
   call-spread-apply                                 28.4200+-2.3857           27.4289+-0.5801          might be 1.0361x faster
   call-spread-call                                  22.3009+-0.9107           22.2610+-1.2123        
   captured-assignments                               0.4303+-0.0111     ?      0.4419+-0.0138        ? might be 1.0270x slower
   cast-int-to-double                                 5.0813+-0.1033            5.0618+-0.1184        
   cell-argument                                      5.7686+-0.2395     !      6.5749+-0.5542        ! definitely 1.1398x slower
   cfg-simplify                                       2.9414+-0.0619            2.8899+-0.0543          might be 1.0179x faster
   chain-getter-access                                8.4934+-0.4148            8.2233+-0.2403          might be 1.0328x faster
   cmpeq-obj-to-obj-other                            12.7395+-1.0519           11.6607+-1.2113          might be 1.0925x faster
   constant-test                                      5.0162+-0.5373            4.7767+-0.1586          might be 1.0501x faster
   create-lots-of-functions                           9.3073+-0.4916     ?      9.7818+-1.1146        ? might be 1.0510x slower
   cse-new-array-buffer                               2.4248+-0.2955            2.3516+-0.1636          might be 1.0311x faster
   cse-new-array                                      2.4983+-0.2864            2.4515+-0.2140          might be 1.0191x faster
   custom-setter-getter-as-put-get-by-id              0.5348+-0.0497            0.5085+-0.0180          might be 1.0517x faster
   DataView-custom-properties                        30.7759+-0.7731     ?     30.8816+-0.8890        ?
   delay-tear-off-arguments-strictmode               12.7978+-0.6355     ?     13.1747+-0.3159        ? might be 1.0295x slower
   deltablue-varargs                                161.0717+-2.2819     ?    165.2043+-5.1128        ? might be 1.0257x slower
   destructuring-arguments                          164.9314+-6.1243     ?    171.3755+-24.4768       ? might be 1.0391x slower
   destructuring-parameters-overridden-by-function   
                                                      0.4786+-0.0460            0.4599+-0.0160          might be 1.0405x faster
   destructuring-swap                                 4.7795+-0.0561     ?      4.7855+-0.1238        ?
   direct-arguments-getbyval                          1.1841+-0.0548     ?      1.3700+-0.2833        ? might be 1.1570x slower
   div-boolean-double                                 5.4414+-0.1710            5.3363+-0.2395          might be 1.0197x faster
   div-boolean                                        8.0946+-0.0826     ?      8.2322+-0.0990        ? might be 1.0170x slower
   double-get-by-val-out-of-bounds                    4.3646+-0.1233     ?      4.5294+-0.2281        ? might be 1.0378x slower
   double-pollution-getbyval                          8.4834+-0.1767            8.4556+-0.1670        
   double-pollution-putbyoffset                       3.7566+-0.2972     ?      3.8818+-0.4537        ? might be 1.0334x slower
   double-real-use                                   24.9121+-1.8060     ?     25.8394+-2.4569        ? might be 1.0372x slower
   double-to-int32-typed-array-no-inline              2.2456+-0.0790            2.1636+-0.0501          might be 1.0379x faster
   double-to-int32-typed-array                        2.1156+-0.0688            2.0625+-0.0285          might be 1.0257x faster
   double-to-uint32-typed-array-no-inline             2.3191+-0.0981            2.2699+-0.0716          might be 1.0217x faster
   double-to-uint32-typed-array                       2.1423+-0.0608     ?      2.1515+-0.1092        ?
   elidable-new-object-dag                           34.7532+-1.2168           34.5687+-1.1571        
   elidable-new-object-roflcopter                    32.5332+-2.2449     ?     33.9349+-1.6139        ? might be 1.0431x slower
   elidable-new-object-then-call                     32.0546+-1.1533     ?     32.0994+-1.4330        ?
   elidable-new-object-tree                          37.0185+-1.0805     ?     37.9886+-1.5161        ? might be 1.0262x slower
   empty-string-plus-int                              4.7217+-0.0457            4.6713+-0.1371          might be 1.0108x faster
   emscripten-cube2hash                              28.8177+-1.6309           28.1368+-1.9975          might be 1.0242x faster
   exit-length-on-plain-object                       16.1369+-1.4048           15.7916+-0.6716          might be 1.0219x faster
   external-arguments-getbyval                        1.2897+-0.1344            1.2333+-0.1118          might be 1.0457x faster
   external-arguments-putbyval                        2.4555+-0.3915            2.2508+-0.0643          might be 1.0909x faster
   fixed-typed-array-storage-var-index                1.2555+-0.0610            1.2328+-0.0399          might be 1.0184x faster
   fixed-typed-array-storage                          0.9778+-0.0479            0.9530+-0.0564          might be 1.0260x faster
   Float32Array-matrix-mult                           4.2994+-0.1695     ?      4.3068+-0.2027        ?
   Float32Array-to-Float64Array-set                  48.6423+-0.9129           48.3839+-0.4708        
   Float64Array-alloc-long-lived                     67.3180+-13.4256          60.3144+-1.7927          might be 1.1161x faster
   Float64Array-to-Int16Array-set                    59.7370+-1.3984           59.5059+-1.4374        
   fold-double-to-int                                12.8439+-0.9662           12.6471+-0.8317          might be 1.0156x faster
   fold-get-by-id-to-multi-get-by-offset-rare-int   
                                                     11.6381+-1.4089     ?     11.8573+-1.7480        ? might be 1.0188x slower
   fold-get-by-id-to-multi-get-by-offset             10.0979+-0.6652            9.7350+-0.2362          might be 1.0373x faster
   fold-multi-get-by-offset-to-get-by-offset   
                                                      8.9408+-1.9366            8.6942+-1.4726          might be 1.0284x faster
   fold-multi-get-by-offset-to-poly-get-by-offset   
                                                      9.0907+-1.0692            8.8854+-0.9625          might be 1.0231x faster
   fold-multi-put-by-offset-to-poly-put-by-offset   
                                                     10.3328+-1.0673     ?     10.6828+-1.0147        ? might be 1.0339x slower
   fold-multi-put-by-offset-to-put-by-offset   
                                                     11.0420+-0.5728           10.3849+-0.7755          might be 1.0633x faster
   fold-multi-put-by-offset-to-replace-or-transition-put-by-offset   
                                                     10.5480+-0.9446            9.9188+-0.8996          might be 1.0634x faster
   fold-put-by-id-to-multi-put-by-offset             11.6187+-1.4907           11.3736+-1.1619          might be 1.0215x faster
   fold-put-by-val-with-string-to-multi-put-by-offset   
                                                     11.5065+-1.2910           10.9512+-0.9867          might be 1.0507x faster
   fold-put-by-val-with-symbol-to-multi-put-by-offset   
                                                     11.6887+-1.2708     ?     11.9443+-1.3180        ? might be 1.0219x slower
   fold-put-structure                                 7.1498+-1.1523     ?      7.9219+-1.1940        ? might be 1.1080x slower
   for-of-iterate-array-entries                      11.0326+-0.3613           10.9589+-0.4199        
   for-of-iterate-array-keys                          3.6025+-0.1866     ?      3.7816+-0.3264        ? might be 1.0497x slower
   for-of-iterate-array-values                        3.4648+-0.2290     ?      3.5882+-0.1946        ? might be 1.0356x slower
   fround                                            18.5129+-0.6214           18.3401+-1.0147        
   ftl-library-inlining-dataview                     59.7749+-2.4182           58.2527+-1.2256          might be 1.0261x faster
   ftl-library-inlining                             102.2798+-1.7529          101.6275+-0.8033        
   ftl-object-sub                                   314.7557+-3.0570          314.7105+-5.5243        
   function-call                                     11.2377+-0.2146     ?     11.2451+-0.2745        ?
   function-dot-apply                                 2.0790+-0.1949     ?      2.1490+-0.1677        ? might be 1.0337x slower
   function-test                                      2.8148+-0.2219     ?      2.8730+-0.1286        ? might be 1.0207x slower
   function-with-eval                                83.0162+-2.2574           80.9758+-0.7701          might be 1.0252x faster
   gcse-poly-get-less-obvious                        24.7875+-2.9674           23.3556+-2.0450          might be 1.0613x faster
   gcse-poly-get                                     23.3918+-3.2521           22.1328+-2.6202          might be 1.0569x faster
   gcse                                               3.4930+-0.1691            3.4544+-0.1136          might be 1.0112x faster
   get-by-id-bimorphic-check-structure-elimination-simple   
                                                      2.6015+-0.0758     ?      2.6926+-0.1214        ? might be 1.0350x slower
   get-by-id-bimorphic-check-structure-elimination   
                                                      4.8891+-0.3889     ?      5.0537+-0.4777        ? might be 1.0337x slower
   get-by-id-chain-from-try-block                     2.4782+-0.0490     ^      2.4050+-0.0226        ^ definitely 1.0305x faster
   get-by-id-check-structure-elimination              3.9931+-0.2235            3.9030+-0.0679          might be 1.0231x faster
   get-by-id-proto-or-self                           17.1403+-2.1356           16.4069+-1.3480          might be 1.0447x faster
   get-by-id-quadmorphic-check-structure-elimination-simple   
                                                      2.9517+-0.1303     ?      3.0262+-0.3776        ? might be 1.0252x slower
   get-by-id-self-or-proto                           16.9617+-1.4000           16.0555+-0.4387          might be 1.0564x faster
   get-by-val-out-of-bounds                           4.2226+-0.1282     ?      4.3223+-0.3011        ? might be 1.0236x slower
   get-by-val-with-string-bimorphic-check-structure-elimination-simple   
                                                      2.7132+-0.0276     ?      2.7226+-0.0868        ?
   get-by-val-with-string-bimorphic-check-structure-elimination   
                                                      6.2554+-0.4441            6.2204+-0.4199        
   get-by-val-with-string-chain-from-try-block   
                                                      2.5120+-0.1598            2.4350+-0.0477          might be 1.0316x faster
   get-by-val-with-string-check-structure-elimination   
                                                      5.5891+-0.0923     ?      5.6071+-0.2306        ?
   get-by-val-with-string-proto-or-self              16.5486+-0.7130     ?     17.4126+-0.9660        ? might be 1.0522x slower
   get-by-val-with-string-quadmorphic-check-structure-elimination-simple   
                                                      3.1499+-0.1117            3.0682+-0.0210          might be 1.0266x faster
   get-by-val-with-string-self-or-proto              17.4089+-1.1301           16.0440+-0.8145          might be 1.0851x faster
   get-by-val-with-symbol-bimorphic-check-structure-elimination-simple   
                                                      2.9576+-0.0526            2.9478+-0.0904        
   get-by-val-with-symbol-bimorphic-check-structure-elimination   
                                                     12.7303+-0.3872           12.3945+-0.1090          might be 1.0271x faster
   get-by-val-with-symbol-chain-from-try-block   
                                                      2.4927+-0.0680            2.4338+-0.0315          might be 1.0242x faster
   get-by-val-with-symbol-check-structure-elimination   
                                                     11.4034+-0.1114     ?     11.4629+-0.0835        ?
   get-by-val-with-symbol-proto-or-self              17.5801+-1.2220           17.3419+-1.2000          might be 1.0137x faster
   get-by-val-with-symbol-quadmorphic-check-structure-elimination-simple   
                                                      3.6995+-0.0469     ?      3.8007+-0.2621        ? might be 1.0274x slower
   get-by-val-with-symbol-self-or-proto              18.0291+-2.0759           16.3915+-1.2056          might be 1.0999x faster
   get_callee_monomorphic                             2.4500+-0.2327     ?      2.5365+-0.2863        ? might be 1.0353x slower
   get_callee_polymorphic                             3.3482+-0.0823            3.3463+-0.1141        
   getter-no-activation                               4.8518+-0.2803            4.8431+-0.2290        
   getter-prototype                                   7.9742+-0.1743     ?      8.1890+-0.3753        ? might be 1.0269x slower
   getter-richards-try-catch                        992.2469+-17.8839         989.7159+-24.3696       
   getter-richards                                  114.3208+-5.0662          112.7671+-3.8323          might be 1.0138x faster
   getter                                             5.2922+-0.3317     ?      5.7412+-0.7625        ? might be 1.0848x slower
   global-object-access-with-mutating-structure   
                                                      5.7423+-0.2550            5.6763+-0.0831          might be 1.0116x faster
   global-var-const-infer-fire-from-opt               0.7125+-0.0099     ?      0.7493+-0.0689        ? might be 1.0516x slower
   global-var-const-infer                             0.6462+-0.0388     ?      0.6514+-0.0259        ?
   hard-overflow-check-equal                         27.0044+-0.6696     ?     27.1971+-0.4242        ?
   hard-overflow-check                               26.7156+-0.6398     ?     27.0133+-1.9937        ? might be 1.0111x slower
   HashMap-put-get-iterate-keys                      26.1259+-0.9188     ?     27.0500+-1.3345        ? might be 1.0354x slower
   HashMap-put-get-iterate                           27.6844+-0.7470           27.3763+-0.7467          might be 1.0113x faster
   HashMap-string-put-get-iterate                    24.8449+-0.8290           24.1434+-1.6810          might be 1.0291x faster
   hoist-make-rope                                    8.9869+-1.0762     ?      9.0576+-1.4303        ?
   hoist-poly-check-structure-effectful-loop   
                                                      3.6361+-0.0956     ?      3.8219+-0.4844        ? might be 1.0511x slower
   hoist-poly-check-structure                         3.1528+-0.1952            3.0614+-0.0818          might be 1.0299x faster
   imul-double-only                                   7.9493+-0.1039            7.7256+-0.2457          might be 1.0290x faster
   imul-int-only                                      8.4161+-0.9557     ?      8.5007+-1.1351        ? might be 1.0100x slower
   imul-mixed                                         7.1902+-0.4166            6.6196+-0.5287          might be 1.0862x faster
   in-four-cases                                     18.7268+-0.4237     ?     18.7333+-0.5803        ?
   in-one-case-false                                 10.0035+-0.0794     ?     10.4289+-0.6706        ? might be 1.0425x slower
   in-one-case-true                                  10.4502+-0.6757     ?     10.6634+-0.4824        ? might be 1.0204x slower
   in-two-cases                                      10.7206+-0.4016           10.4366+-0.2437          might be 1.0272x faster
   indexed-properties-in-objects                      2.8525+-0.1941     ?      2.8959+-0.2790        ? might be 1.0152x slower
   infer-closure-const-then-mov-no-inline             3.7146+-0.0681            3.5978+-0.0529          might be 1.0325x faster
   infer-closure-const-then-mov                      16.8314+-0.7987           16.5265+-0.8249          might be 1.0185x faster
   infer-closure-const-then-put-to-scope-no-inline   
                                                     10.9253+-0.1885     ?     11.0076+-0.1299        ?
   infer-closure-const-then-put-to-scope             23.7557+-1.5969           23.0549+-0.6866          might be 1.0304x faster
   infer-closure-const-then-reenter-no-inline   
                                                     47.8492+-0.8561     ?     47.8977+-0.5265        ?
   infer-closure-const-then-reenter                  23.1790+-0.4780           22.6844+-0.8440          might be 1.0218x faster
   infer-constant-global-property                     3.4941+-0.1040     ?      3.5185+-0.2057        ?
   infer-constant-property                            2.6804+-0.2020            2.6450+-0.0999          might be 1.0134x faster
   infer-one-time-closure-ten-vars                    7.8347+-0.2776     ?      8.5290+-0.5423        ? might be 1.0886x slower
   infer-one-time-closure-two-vars                    7.4823+-0.3695     ?      7.5246+-0.4313        ?
   infer-one-time-closure                             7.5323+-0.5505     ?      7.5575+-0.5285        ?
   infer-one-time-deep-closure                       10.6247+-0.2082     ?     11.0968+-0.4836        ? might be 1.0444x slower
   inline-arguments-access                            3.6121+-0.0987     ?      3.7535+-0.2929        ? might be 1.0392x slower
   inline-arguments-aliased-access                    3.5670+-0.0840     ?      3.6329+-0.0815        ? might be 1.0185x slower
   inline-arguments-local-escape                      3.6064+-0.0470     ?      3.6567+-0.1655        ? might be 1.0139x slower
   inline-get-scoped-var                              4.6259+-0.1712     ?      4.7251+-0.2824        ? might be 1.0214x slower
   inlined-put-by-id-transition                       9.5621+-0.7130     ?      9.6443+-1.1630        ?
   inlined-put-by-val-with-string-transition   
                                                     43.3023+-2.9489     ?     47.4663+-15.7550       ? might be 1.0962x slower
   inlined-put-by-val-with-symbol-transition   
                                                     41.5254+-1.5554     ?     42.6574+-1.3287        ? might be 1.0273x slower
   int-or-other-abs-then-get-by-val                   4.7694+-0.5616            4.6190+-0.1997          might be 1.0326x faster
   int-or-other-abs-zero-then-get-by-val             15.7430+-0.2741     ?     15.8925+-0.7614        ?
   int-or-other-add-then-get-by-val                   4.2144+-0.0661     ?      4.3309+-0.2491        ? might be 1.0276x slower
   int-or-other-add                                   4.9073+-0.0828     ?      5.0313+-0.3076        ? might be 1.0253x slower
   int-or-other-div-then-get-by-val                   3.8572+-0.0928            3.8147+-0.0269          might be 1.0111x faster
   int-or-other-max-then-get-by-val                   4.1745+-0.4573            4.0798+-0.5080          might be 1.0232x faster
   int-or-other-min-then-get-by-val                   3.8584+-0.1076     ?      4.0433+-0.3375        ? might be 1.0479x slower
   int-or-other-mod-then-get-by-val                   3.6506+-0.0699            3.6364+-0.0232        
   int-or-other-mul-then-get-by-val                   3.6525+-0.1388     ?      3.6658+-0.1438        ?
   int-or-other-neg-then-get-by-val                   4.1351+-0.0873     ?      4.1818+-0.0980        ? might be 1.0113x slower
   int-or-other-neg-zero-then-get-by-val             15.4727+-0.3366     ?     15.7974+-0.6241        ? might be 1.0210x slower
   int-or-other-sub-then-get-by-val                   4.1172+-0.0673     ?      4.3185+-0.1891        ? might be 1.0489x slower
   int-or-other-sub                                   3.5353+-0.1141            3.4762+-0.0531          might be 1.0170x faster
   int-overflow-local                                 4.1777+-0.2667     ?      4.3246+-0.4552        ? might be 1.0352x slower
   Int16Array-alloc-long-lived                       43.5731+-1.4691     ?     43.9144+-1.3153        ?
   Int16Array-bubble-sort-with-byteLength            22.4212+-0.8709     ?     23.9801+-5.4648        ? might be 1.0695x slower
   Int16Array-bubble-sort                            21.5911+-0.7198           21.5369+-0.3535        
   Int16Array-load-int-mul                            1.5219+-0.0730            1.4872+-0.0374          might be 1.0234x faster
   Int16Array-to-Int32Array-set                      45.7779+-0.6313     ?     46.0685+-0.8076        ?
   Int32Array-alloc-large                            12.0636+-0.6769     ?     12.2046+-1.1434        ? might be 1.0117x slower
   Int32Array-alloc-long-lived                       49.4492+-1.4804     ?     50.7437+-1.5380        ? might be 1.0262x slower
   Int32Array-alloc                                   2.9229+-0.2442     ?      3.0450+-0.2616        ? might be 1.0418x slower
   Int32Array-Int8Array-view-alloc                    5.9052+-0.0704            5.8915+-0.1517        
   int52-spill                                        4.8610+-0.4339            4.5727+-0.1759          might be 1.0631x faster
   Int8Array-alloc-long-lived                        37.9245+-0.2823     ?     38.5492+-1.2350        ? might be 1.0165x slower
   Int8Array-load-with-byteLength                     3.6527+-0.4648            3.4192+-0.0428          might be 1.0683x faster
   Int8Array-load                                     3.4730+-0.1206     ?      3.5313+-0.2418        ? might be 1.0168x slower
   integer-divide                                    10.5080+-0.3795           10.3693+-0.1432          might be 1.0134x faster
   integer-modulo                                     1.6492+-0.0525     ?      1.8240+-0.3933        ? might be 1.1060x slower
   is-boolean-fold-tricky                             3.8799+-0.1539            3.8463+-0.1648        
   is-boolean-fold                                    2.6475+-0.0452            2.6300+-0.0220        
   is-function-fold-tricky-internal-function   
                                                      9.9021+-0.3628            9.4273+-0.2512          might be 1.0504x faster
   is-function-fold-tricky                            4.0706+-0.1041            4.0565+-0.0797        
   is-function-fold                                   2.8994+-0.5133            2.8090+-0.3209          might be 1.0322x faster
   is-number-fold-tricky                              3.9866+-0.0762     ?      3.9995+-0.1078        ?
   is-number-fold                                     2.6803+-0.0480            2.6644+-0.1218        
   is-object-or-null-fold-functions                   2.7116+-0.0625     ?      2.7192+-0.0724        ?
   is-object-or-null-fold-less-tricky                 4.1951+-0.2982            3.9867+-0.0540          might be 1.0523x faster
   is-object-or-null-fold-tricky                      5.2388+-0.7797            4.8488+-0.1024          might be 1.0804x faster
   is-object-or-null-fold                             2.6936+-0.0905     ?      2.7148+-0.0522        ?
   is-object-or-null-trickier-function                4.0489+-0.0721     ?      4.1682+-0.2829        ? might be 1.0295x slower
   is-object-or-null-trickier-internal-function   
                                                      9.7134+-0.0971     ?      9.8366+-0.2060        ? might be 1.0127x slower
   is-object-or-null-tricky-function                  4.0730+-0.1033            4.0649+-0.0858        
   is-object-or-null-tricky-internal-function   
                                                      7.4137+-0.1937            7.2728+-0.1484          might be 1.0194x faster
   is-string-fold-tricky                              4.0621+-0.3496            4.0523+-0.2518        
   is-string-fold                                     2.6580+-0.0383            2.6364+-0.0494        
   is-undefined-fold-tricky                           3.3634+-0.1152     ?      3.3697+-0.0619        ?
   is-undefined-fold                                  2.6910+-0.1324     ?      2.6954+-0.0873        ?
   JSONP-negative-0                                   0.2756+-0.0174            0.2647+-0.0054          might be 1.0412x faster
   large-int-captured                                 4.1814+-0.2495            4.0319+-0.1776          might be 1.0371x faster
   large-int-neg                                     14.1085+-0.3250     ?     14.9878+-1.4136        ? might be 1.0623x slower
   large-int                                         13.4507+-0.8218           13.2659+-0.2233          might be 1.0139x faster
   load-varargs-elimination                          20.3016+-0.5468     ?     21.2434+-0.8063        ? might be 1.0464x slower
   logical-not-weird-types                            3.0656+-0.0579            3.0435+-0.0613        
   logical-not                                        4.3690+-0.1328     ?      4.3774+-0.2353        ?
   lots-of-fields                                     9.5934+-0.4425            9.5250+-0.6234        
   make-indexed-storage                               2.8415+-0.3087     ?      2.9469+-0.1669        ? might be 1.0371x slower
   make-rope-cse                                      3.7548+-0.3916            3.4975+-0.1277          might be 1.0736x faster
   marsaglia-larger-ints                             31.8505+-0.9480     ?     32.7982+-1.2057        ? might be 1.0298x slower
   marsaglia-osr-entry                               21.4339+-0.3995     ?     21.4510+-0.5916        ?
   math-with-out-of-bounds-array-values              22.1076+-0.9542           22.0234+-0.9321        
   max-boolean                                        2.7097+-0.0738            2.6685+-0.0648          might be 1.0154x faster
   method-on-number                                  17.2561+-1.1779           16.8372+-1.3527          might be 1.0249x faster
   min-boolean                                        2.7345+-0.1109     ?      2.7536+-0.0791        ?
   minus-boolean-double                               3.1309+-0.0894            3.1263+-0.0789        
   minus-boolean                                      2.3357+-0.0263            2.3070+-0.0619          might be 1.0124x faster
   misc-strict-eq                                    30.2793+-1.1279     ^     28.5693+-0.4396        ^ definitely 1.0599x faster
   mod-boolean-double                                11.4148+-0.6342           11.1002+-0.1813          might be 1.0283x faster
   mod-boolean                                        8.2839+-0.0788            8.2472+-0.0455        
   mul-boolean-double                                 3.6955+-0.1716            3.5982+-0.0266          might be 1.0270x faster
   mul-boolean                                        2.8411+-0.0543     ?      2.8570+-0.1163        ?
   neg-boolean                                        3.1420+-0.0348     ?      3.1998+-0.1551        ? might be 1.0184x slower
   negative-zero-divide                               0.3616+-0.0119            0.3565+-0.0103          might be 1.0142x faster
   negative-zero-modulo                               0.3541+-0.0169            0.3477+-0.0105          might be 1.0186x faster
   negative-zero-negate                               0.3334+-0.0100     ?      0.3416+-0.0134        ? might be 1.0248x slower
   nested-function-parsing                           44.6721+-0.4076     ?     45.0717+-0.6056        ?
   new-array-buffer-dead                             86.7560+-1.3601           86.3947+-0.5490        
   new-array-buffer-push                              6.2936+-0.5068     ?      6.3666+-0.2417        ? might be 1.0116x slower
   new-array-dead                                    15.1168+-0.9438           14.6733+-0.9155          might be 1.0302x faster
   new-array-push                                     3.5480+-0.0836            3.5244+-0.1120        
   no-inline-constructor                             30.9625+-1.2490           30.3776+-0.1785          might be 1.0193x faster
   number-test                                        3.4056+-0.4365            3.1340+-0.0761          might be 1.0867x faster
   object-closure-call                                4.8175+-0.0563     ?      4.8339+-0.0955        ?
   object-get-own-property-symbols-on-large-array   
                                                      4.1458+-0.2692     ?      4.2408+-0.2830        ? might be 1.0229x slower
   object-test                                        2.7145+-0.0492     ?      2.9077+-0.3850        ? might be 1.0712x slower
   obvious-sink-pathology-taken                      96.4007+-0.9961     ?     97.1385+-0.8524        ?
   obvious-sink-pathology                            30.2012+-0.9369           30.1433+-1.1717        
   obviously-elidable-new-object                     28.8854+-0.8483     ?     29.0655+-1.2003        ?
   plus-boolean-arith                                 2.4213+-0.1620            2.4117+-0.0661        
   plus-boolean-double                                3.1104+-0.0329     ?      3.1256+-0.0502        ?
   plus-boolean                                       2.5789+-0.0768     ?      2.6488+-0.1345        ? might be 1.0271x slower
   poly-chain-access-different-prototypes-simple   
                                                      2.6345+-0.0761     ?      2.6584+-0.0863        ?
   poly-chain-access-different-prototypes             2.6367+-0.1326            2.5815+-0.0977          might be 1.0214x faster
   poly-chain-access-simpler                          2.6792+-0.1427            2.6215+-0.1142          might be 1.0220x faster
   poly-chain-access                                  2.5844+-0.0941     ?      2.6459+-0.2927        ? might be 1.0238x slower
   poly-stricteq                                     53.7946+-0.8923     ?     54.3681+-0.8125        ? might be 1.0107x slower
   polymorphic-array-call                             1.4781+-0.3155            1.2837+-0.0557          might be 1.1515x faster
   polymorphic-get-by-id                              2.8632+-0.0215     ?      2.9152+-0.0520        ? might be 1.0181x slower
   polymorphic-put-by-id                             27.7195+-0.4308     ?     28.2552+-0.8034        ? might be 1.0193x slower
   polymorphic-put-by-val-with-string                28.8660+-1.8096     ?     29.2983+-0.6312        ? might be 1.0150x slower
   polymorphic-put-by-val-with-symbol                29.6827+-2.0543           28.0397+-0.3258          might be 1.0586x faster
   polymorphic-structure                             12.6744+-0.4618           12.6055+-0.2448        
   polyvariant-monomorphic-get-by-id                  7.0853+-1.3413     ?      7.1197+-1.8220        ?
   proto-getter-access                                8.3726+-0.2101     ?      8.3914+-0.1717        ?
   prototype-access-with-mutating-prototype           5.7178+-0.3468            5.4822+-0.1367          might be 1.0430x faster
   put-by-id-replace-and-transition                   8.5201+-1.8367            8.2189+-0.3629          might be 1.0367x faster
   put-by-id-slightly-polymorphic                     2.6771+-0.0349     ?      2.7996+-0.1511        ? might be 1.0458x slower
   put-by-id                                         10.0948+-1.5486     ?     10.2428+-0.7569        ? might be 1.0147x slower
   put-by-val-direct                                  0.3529+-0.0074     ?      0.3684+-0.0433        ? might be 1.0439x slower
   put-by-val-large-index-blank-indexing-type   
                                                      5.4127+-0.1788            5.2415+-0.1822          might be 1.0327x faster
   put-by-val-machine-int                             2.6034+-0.1754     ?      2.6678+-0.1764        ? might be 1.0248x slower
   put-by-val-with-string-replace-and-transition   
                                                     10.2867+-0.4601           10.2622+-0.4731        
   put-by-val-with-string-slightly-polymorphic   
                                                      3.0412+-0.1832     ?      3.3206+-0.8750        ? might be 1.0919x slower
   put-by-val-with-string                            10.9400+-0.3127           10.5199+-0.6875          might be 1.0399x faster
   put-by-val-with-symbol-replace-and-transition   
                                                     11.6315+-0.3829           11.5382+-0.4680        
   put-by-val-with-symbol-slightly-polymorphic   
                                                      3.5355+-0.6871            3.2450+-0.1207          might be 1.0895x faster
   put-by-val-with-symbol                            10.2690+-0.6487     ?     10.5463+-0.4704        ? might be 1.0270x slower
   rare-osr-exit-on-local                            13.9283+-0.1656           13.8270+-0.1268        
   raytrace-with-empty-try-catch                      5.3329+-0.1904     ?      5.3843+-0.2623        ?
   raytrace-with-try-catch                           10.0304+-0.4009     ?     10.1191+-0.3848        ?
   register-pressure-from-osr                        16.8070+-0.3171     ?     17.0745+-0.8485        ? might be 1.0159x slower
   repeat-multi-get-by-offset                        22.6027+-1.4974           22.4389+-0.9864        
   richards-empty-try-catch                          73.4150+-2.2883           71.1573+-1.2506          might be 1.0317x faster
   richards-try-catch                               237.5256+-1.5609     ?    240.8975+-3.8819        ? might be 1.0142x slower
   setter-prototype                                   7.7187+-0.1917            7.6365+-0.1393          might be 1.0108x faster
   setter                                             6.2158+-0.8271     ?      6.3247+-0.7865        ? might be 1.0175x slower
   simple-activation-demo                            24.2491+-0.4216     ?     26.7122+-5.4034        ? might be 1.1016x slower
   simple-getter-access                              10.7299+-0.2599     ?     10.8372+-0.1283        ?
   simple-poly-call-nested                            8.7808+-0.6740     ?      9.0293+-0.5283        ? might be 1.0283x slower
   simple-poly-call                                   1.2922+-0.0281            1.2902+-0.0358        
   sin-boolean                                       19.5660+-1.9790     ?     19.7818+-2.4539        ? might be 1.0110x slower
   singleton-scope                                   61.9324+-1.6189           61.8673+-1.3044        
   sink-function                                     10.1371+-0.7973            9.8235+-1.0813          might be 1.0319x faster
   sink-huge-activation                              16.0336+-1.2124     ?     16.1568+-0.7405        ?
   sinkable-new-object-dag                           52.6047+-1.3604           52.1295+-1.7608        
   sinkable-new-object-taken                         42.4712+-2.1132           41.6712+-2.7732          might be 1.0192x faster
   sinkable-new-object                               30.5697+-1.1447           29.5802+-1.2292          might be 1.0335x faster
   slow-array-profile-convergence                     2.5537+-0.1026     ?      2.5663+-0.1110        ?
   slow-convergence                                   2.7290+-0.2337     ?      2.7949+-0.5768        ? might be 1.0241x slower
   slow-ternaries                                    17.6570+-0.2618     ?     18.2763+-0.5686        ? might be 1.0351x slower
   sorting-benchmark                                 17.4625+-0.2868     ?     17.5240+-0.5545        ?
   sparse-conditional                                 1.1904+-0.0786     ?      1.2079+-0.0528        ? might be 1.0147x slower
   splice-to-remove                                  12.7225+-1.3718           12.3035+-0.4273          might be 1.0341x faster
   string-char-code-at                               13.2873+-0.3278           13.1202+-0.1826          might be 1.0127x faster
   string-concat-object                               2.1801+-0.1513     ?      2.2085+-0.0977        ? might be 1.0130x slower
   string-concat-pair-object                          2.3807+-0.2624            2.1144+-0.0383          might be 1.1260x faster
   string-concat-pair-simple                          9.1793+-0.5030     ?      9.6307+-0.5379        ? might be 1.0492x slower
   string-concat-simple                               9.4191+-0.5811     ?      9.6840+-0.7785        ? might be 1.0281x slower
   string-cons-repeat                                 6.5921+-0.3595     ?      6.6791+-0.4005        ? might be 1.0132x slower
   string-cons-tower                                  6.5711+-0.1495     ?      6.9149+-0.5575        ? might be 1.0523x slower
   string-equality                                   18.9204+-0.7361           18.4046+-0.4696          might be 1.0280x faster
   string-get-by-val-big-char                         6.6513+-0.5931            6.4809+-0.2203          might be 1.0263x faster
   string-get-by-val-out-of-bounds-insane             3.2717+-0.0687            3.2105+-0.1381          might be 1.0190x faster
   string-get-by-val-out-of-bounds                    3.9913+-0.0799     ?      4.0664+-0.3155        ? might be 1.0188x slower
   string-get-by-val                                  2.8069+-0.0457     ?      2.8101+-0.0567        ?
   string-hash                                        1.9224+-0.0245     ?      1.9630+-0.1027        ? might be 1.0211x slower
   string-long-ident-equality                        15.0299+-0.3769     ?     15.3127+-0.5459        ? might be 1.0188x slower
   string-out-of-bounds                              11.2240+-2.3358           10.2799+-0.5589          might be 1.0918x faster
   string-repeat-arith                               26.5463+-0.6155           26.2805+-1.1458          might be 1.0101x faster
   string-sub                                        31.7520+-0.8287     ?     32.5715+-0.8792        ? might be 1.0258x slower
   string-test                                        3.1079+-0.4937            2.9633+-0.1837          might be 1.0488x faster
   string-var-equality                               27.5721+-0.7017     ?     27.9966+-1.8237        ? might be 1.0154x slower
   structure-hoist-over-transitions                   2.4117+-0.0602            2.4017+-0.0435        
   substring-concat-weird                            35.5654+-1.2057     ?     36.0560+-1.5224        ? might be 1.0138x slower
   substring-concat                                  41.4503+-2.4168           38.9315+-1.7044          might be 1.0647x faster
   substring                                         45.8837+-2.3006     ?     45.9598+-1.7762        ?
   switch-char-constant                               2.7047+-0.0775     ?      2.7201+-0.0378        ?
   switch-char                                        6.2586+-1.0680            6.0146+-0.8438          might be 1.0406x faster
   switch-constant                                    8.4726+-0.9803            8.0171+-1.0438          might be 1.0568x faster
   switch-string-basic-big-var                       15.3800+-1.0930           15.2506+-1.1133        
   switch-string-basic-big                           15.4868+-1.0724           14.8041+-0.2319          might be 1.0461x faster
   switch-string-basic-var                           13.7838+-0.4016     ?     14.3522+-1.1534        ? might be 1.0412x slower
   switch-string-basic                               13.4538+-0.6838           13.0891+-0.4346          might be 1.0279x faster
   switch-string-big-length-tower-var                18.0792+-0.4327           17.9799+-0.3245        
   switch-string-length-tower-var                    13.7451+-0.3590           13.3143+-0.1999          might be 1.0324x faster
   switch-string-length-tower                        12.2855+-0.2678           12.1054+-0.1099          might be 1.0149x faster
   switch-string-short                               12.5740+-1.0416           11.9863+-0.2026          might be 1.0490x faster
   switch                                            11.1355+-0.5935           10.6740+-0.5711          might be 1.0432x faster
   tear-off-arguments-simple                          3.1411+-0.2603            3.0157+-0.1680          might be 1.0416x faster
   tear-off-arguments                                 4.0963+-0.0608            4.0220+-0.0969          might be 1.0185x faster
   temporal-structure                                12.2018+-0.4167           11.8792+-0.2962          might be 1.0272x faster
   to-int32-boolean                                  12.6721+-0.3009     ?     12.6767+-0.3666        ?
   try-catch-get-by-val-cloned-arguments              9.8670+-0.8314            9.3944+-0.3841          might be 1.0503x faster
   try-catch-get-by-val-direct-arguments              2.0912+-0.1002     ?      2.2338+-0.2378        ? might be 1.0682x slower
   try-catch-get-by-val-scoped-arguments              4.5262+-0.1546     ?      4.7880+-0.3328        ? might be 1.0578x slower
   typed-array-get-set-by-val-profiling              27.8134+-1.3005           27.7819+-0.8732        
   undefined-property-access                        216.4810+-1.9338     ^    213.6247+-0.2936        ^ definitely 1.0134x faster
   undefined-test                                     3.1304+-0.1126            3.0500+-0.0910          might be 1.0263x faster
   unprofiled-licm                                    9.2273+-0.3252     ?      9.5894+-0.8327        ? might be 1.0392x slower
   v8-raytrace-with-empty-try-catch                  24.3864+-0.9029     ?     24.7992+-1.0360        ? might be 1.0169x slower
   v8-raytrace-with-try-catch                        63.4818+-2.6633           61.9440+-1.8196          might be 1.0248x faster
   varargs-call                                      13.5135+-0.8221           13.0395+-0.2424          might be 1.0364x faster
   varargs-construct-inline                          22.0350+-0.8873     ?     22.1688+-1.1744        ?
   varargs-construct                                 19.5343+-0.8159     ?     20.3085+-1.0970        ? might be 1.0396x slower
   varargs-inline                                     8.8037+-0.2741            8.7619+-0.1341        
   varargs-strict-mode                               10.2693+-0.5648           10.0180+-0.1201          might be 1.0251x faster
   varargs                                            9.9485+-0.2936            9.8361+-0.0763          might be 1.0114x faster
   weird-inlining-const-prop                          2.2792+-0.1933     ?      2.7899+-1.6909        ? might be 1.2241x slower

   &lt;geometric&gt;                                        8.1963+-0.0279            8.1725+-0.0267          might be 1.0029x faster

                                                        TipOfTree                 Patchpoint                                    
AsmBench:
   bigfib.cpp                                       457.3500+-6.9412          452.6627+-7.8465          might be 1.0104x faster
   cray.c                                           396.7235+-10.7325         395.0938+-6.0486        
   dry.c                                            424.7350+-8.2320          422.3521+-7.6583        
   FloatMM.c                                        685.9280+-8.5258          682.1678+-1.0129        
   gcc-loops.cpp                                   3432.0515+-38.9187        3416.4431+-10.1190       
   n-body.c                                         822.9277+-1.5585     ?    823.5717+-1.3128        ?
   Quicksort.c                                      407.4182+-4.5528     ?    409.2783+-2.0040        ?
   stepanov_container.cpp                          3552.9872+-19.7718        3540.6007+-40.8250       
   Towers.c                                         232.2906+-2.0776          231.2610+-1.0805        

   &lt;geometric&gt;                                      717.1377+-2.0344          714.5637+-3.0730          might be 1.0036x faster

                                                        TipOfTree                 Patchpoint                                    
CompressionBench:
   huffman                                           60.7003+-0.6780     ?     61.1153+-1.5349        ?
   arithmetic-simple                                276.3653+-2.0667     ?    277.7556+-2.5249        ?
   arithmetic-precise                               253.6226+-2.7555     ?    254.5802+-2.4935        ?
   arithmetic-complex-precise                       254.0474+-3.0485          253.0382+-2.8452        
   arithmetic-precise-order-0                       289.4985+-6.0938     ?    290.3918+-1.6722        ?
   arithmetic-precise-order-1                       306.2070+-2.7014     ?    307.2265+-2.1918        ?
   arithmetic-precise-order-2                       353.8211+-4.5602          352.8964+-1.3581        
   arithmetic-simple-order-1                        323.9351+-3.1263          323.4999+-2.2979        
   arithmetic-simple-order-2                        376.1422+-7.0493     ?    376.1993+-6.1151        ?
   lz-string                                        314.8303+-3.1381     ?    329.0540+-42.1678       ? might be 1.0452x slower

   &lt;geometric&gt;                                      257.8626+-1.4074     ?    259.2496+-3.7336        ? might be 1.0054x slower

                                                        TipOfTree                 Patchpoint                                    
Geomean of preferred means:
   &lt;scaled-result&gt;                                   50.4917+-0.2337     ?     50.5111+-0.1565        ? might be 1.0004x slower</thetext>
  </long_desc><long_desc isprivate="0" >
    <commentid>1138716</commentid>
    <comment_count>7</comment_count>
    <who name="Filip Pizlo">fpizlo</who>
    <bug_when>2015-11-02 14:57:19 -0800</bug_when>
    <thetext>Landed in http://trac.webkit.org/changeset/191913</thetext>
  </long_desc>
      
          <attachment
              isobsolete="0"
              ispatch="1"
              isprivate="0"
          >
            <attachid>264624</attachid>
            <date>2015-11-02 13:53:32 -0800</date>
            <delta_ts>2015-11-02 14:09:43 -0800</delta_ts>
            <desc>the patch</desc>
            <filename>blah.patch</filename>
            <type>text/plain</type>
            <size>18963</size>
            <attacher name="Filip Pizlo">fpizlo</attacher>
            
              <data encoding="base64">SW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9DaGFuZ2VMb2cKPT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291
cmNlL0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkocmV2aXNpb24gMTkxOTA4KQorKysgU291cmNl
L0phdmFTY3JpcHRDb3JlL0NoYW5nZUxvZwkod29ya2luZyBjb3B5KQpAQCAtMSwzICsxLDg2IEBA
CisyMDE1LTExLTAyICBGaWxpcCBQaXpsbyAgPGZwaXpsb0BhcHBsZS5jb20+CisKKyAgICAgICAg
QjMgc2hvdWxkIGJlIGFibGUgdG8gY29tcGlsZSBhIFBhdGNocG9pbnQKKyAgICAgICAgaHR0cHM6
Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dpP2lkPTE1MDc1MAorCisgICAgICAgIFJldmll
d2VkIGJ5IE5PQk9EWSAoT09QUyEpLgorCisgICAgICAgIFRoaXMgYWRkcyB0aGUgZ2x1ZSBpbiBC
Mzo6TG93ZXJUb0FpciB0aGF0IHR1cm5zIGEgQjM6OlBhdGNocG9pbnRWYWx1ZSBpbnRvIGFuIEFp
cjo6UGF0Y2gKKyAgICAgICAgd2l0aCBhIEIzOjpQYXRjaHBvaW50U3BlY2lhbC4KKworICAgICAg
ICBBbG9uZyB0aGUgd2F5LCBJIGZvdW5kIHNvbWUgYnVncy4gRm9yIHN0YXJ0ZXJzLCBpdCBiZWNh
bWUgY2xlYXIgdGhhdCBJIHdhbnRlZCB0byBiZSBhYmxlCisgICAgICAgIHRvIGFwcGVuZCBjb25z
dHJhaW50cyB0byBhIFN0YWNrbWFwLCBhbmQgSSB3YW50ZWQgdG8gaGF2ZSBtb3JlIGZsZXhpYmls
aXR5IGluIGhvdyBJCisgICAgICAgIGNyZWF0ZWQgYSBQYXRjaHBvaW50VmFsdWUuIEkgYWxzbyB3
YW50ZWQgbW9yZSBoZWxwZXIgbWV0aG9kcyBpbiBWYWx1ZVJlcCwgc2luY2UKKyAgICAgICAgb3Ro
ZXJ3aXNlIEkgd291bGQgaGF2ZSBoYWQgdG8gd3JpdGUgYSBsb3Qgb2YgYm9pbGVycGxhdGUuCisK
KyAgICAgICAgSSBkaXNjb3ZlcmVkLCBhbmQgZml4ZWQsIGEgbWlub3IgZ29vZiBpbiBBaXI6OkNv
ZGUgZHVtcGluZyB3aGVuIHRoZXJlIGFyZSBzcGVjaWFscy4KKworICAgICAgICBUaGVyZSB3ZXJl
IGEgdG9uIG9mIGluZGV4aW5nIGJ1Z3MgaW4gQjNTdGFja21hcFNwZWNpYWwuCisKKyAgICAgICAg
VGhlIHNwaWxsZXIgd2FzIGJyb2tlbiBpbiBjYXNlIHRoZSBEZWYgd2FzIG5vdCB0aGUgbGFzdCBB
cmcsIHNpbmNlIGl0IHdhcyBhZGRpbmcgdGhpbmdzCisgICAgICAgIHRvIHRoZSBpbnNlcnRpb24g
c2V0IGJvdGggYXQgaW5zdEluZGV4IGFuZCBpbnN0SW5kZXggKyAxLCBhbmQgdGhlIHR3byB0eXBl
cyBvZiBhZGRpdGlvbnMKKyAgICAgICAgY291bGQgb2NjdXIgaW4gdGhlIHdyb25nIChpLmUuIHRo
ZSArMSBjYXNlIGZpcnN0KSBvcmRlciB3aXRoIGFuIGVhcmx5IERlZi4gV2Ugb2Z0ZW4gaGF2ZQor
ICAgICAgICBidWdzIGxpa2UgdGhpcy4gSW4gdGhlIERGRywgd2Ugd2VyZSBwYXJhbm9pZCBhYm91
dCBwZXJmb3JtYW5jZSBzbyB3ZSBvbmx5IGFkbWl0IG91dC1vZi0KKyAgICAgICAgb3JkZXIgaW5z
ZXJ0aW9ucyBhcyBhIHJhcmUgY2FzZS4gSSB0aGluayB0aGF0IHdlIGRvbid0IHJlYWxseSBuZWVk
IHRvIGJlIHNvIHBhcmFub2lkLgorICAgICAgICBTbywgSSBtYWRlIHRoZSBuZXcgaW5zZXJ0aW9u
IHNldHMgdXNlIGEgc3RhYmxlX3NvcnQgdG8gZW5zdXJlIHRoYXQgZXZlcnl0aGluZyBoYXBwZW5z
IGluCisgICAgICAgIHRoZSByaWdodCBvcmRlci4gSSBjaGFuZ2VkIERGRzo6QmxvY2tJbnNlcnRp
b25TZXQgdG8gYWxzbyB1c2Ugc3RhYmxlX3NvcnQ7IGl0IHByZXZpb3VzbHkKKyAgICAgICAgdXNl
ZCBzb3J0LCB3aGljaCBpcyBzbGlnaHRseSB3cm9uZy4KKworICAgICAgICBUaGlzIGFkZHMgYSBu
ZXcgdGVzdCB0aGF0IHVzZXMgUGF0Y2hwb2ludCB0byBpbXBsZW1lbnQgYSAzMi1iaXQgYWRkLiBJ
dCB3b3JrcyEKKworICAgICAgICAqIGIzL0IzSW5zZXJ0aW9uU2V0LmNwcDoKKyAgICAgICAgKEpT
Qzo6QjM6Okluc2VydGlvblNldDo6ZXhlY3V0ZSk6CisgICAgICAgICogYjMvQjNMb3dlclRvQWly
LmNwcDoKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6dHJ5QXBwZW5kU3RvcmVC
aW5PcCk6CisgICAgICAgIChKU0M6OkIzOjpBaXI6Okxvd2VyVG9BaXI6OmFwcGVuZFN0b3JlKToK
KyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6bW92ZUZvclR5cGUpOgorICAgICAg
ICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjphcHBlbmQpOgorICAgICAgICAoSlNDOjpCMzo6
QWlyOjpMb3dlclRvQWlyOjplbnN1cmVTcGVjaWFsKToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6
TG93ZXJUb0Fpcjo6dHJ5U3RvcmUpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWly
Ojp0cnlTdGFja1Nsb3QpOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpMb3dlclRvQWlyOjp0cnlQ
YXRjaHBvaW50KToKKyAgICAgICAgKEpTQzo6QjM6OkFpcjo6TG93ZXJUb0Fpcjo6dHJ5VXBzaWxv
bik6CisgICAgICAgICogYjMvQjNMb3dlcmluZ01hdGNoZXIucGF0dGVybnM6CisgICAgICAgICog
YjMvQjNQYXRjaHBvaW50VmFsdWUuaDoKKyAgICAgICAgKEpTQzo6QjM6OlBhdGNocG9pbnRWYWx1
ZTo6YWNjZXB0cyk6IERlbGV0ZWQuCisgICAgICAgIChKU0M6OkIzOjpQYXRjaHBvaW50VmFsdWU6
OlBhdGNocG9pbnRWYWx1ZSk6IERlbGV0ZWQuCisgICAgICAgICogYjMvQjNTdGFja21hcC5oOgor
ICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXA6OmNvbnN0cmFpbik6CisgICAgICAgIChKU0M6OkIz
OjpTdGFja21hcDo6YXBwZW5kQ29uc3RyYWludCk6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21h
cDo6cmVwcyk6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcDo6Y2xvYmJlcik6CisgICAgICAg
ICogYjMvQjNTdGFja21hcFNwZWNpYWwuY3BwOgorICAgICAgICAoSlNDOjpCMzo6U3RhY2ttYXBT
cGVjaWFsOjpmb3JFYWNoQXJnSW1wbCk6CisgICAgICAgIChKU0M6OkIzOjpTdGFja21hcFNwZWNp
YWw6OmlzVmFsaWRJbXBsKToKKyAgICAgICAgKiBiMy9CM1ZhbHVlLmg6CisgICAgICAgICogYjMv
QjNWYWx1ZVJlcC5oOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWVSZXA6OlZhbHVlUmVwKToKKyAg
ICAgICAgKEpTQzo6QjM6OlZhbHVlUmVwOjpyZWcpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWVS
ZXA6Om9wZXJhdG9yIGJvb2wpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWVSZXA6OmlzQW55KToK
KyAgICAgICAgKEpTQzo6QjM6OlZhbHVlUmVwOjppc1NvbWVSZWdpc3Rlcik6CisgICAgICAgIChK
U0M6OkIzOjpWYWx1ZVJlcDo6aXNSZWcpOgorICAgICAgICAoSlNDOjpCMzo6VmFsdWVSZXA6Omlz
R1BSKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlUmVwOjppc0ZQUik6CisgICAgICAgIChKU0M6
OkIzOjpWYWx1ZVJlcDo6Z3ByKToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlUmVwOjpmcHIpOgor
ICAgICAgICAoSlNDOjpCMzo6VmFsdWVSZXA6OmlzU3RhY2spOgorICAgICAgICAoSlNDOjpCMzo6
VmFsdWVSZXA6Om9mZnNldEZyb21GUCk6CisgICAgICAgIChKU0M6OkIzOjpWYWx1ZVJlcDo6aXNT
dGFja0FyZ3VtZW50KToKKyAgICAgICAgKEpTQzo6QjM6OlZhbHVlUmVwOjpvZmZzZXRGcm9tU1Ap
OgorICAgICAgICAoSlNDOjpCMzo6VmFsdWVSZXA6OmlzQ29uc3RhbnQpOgorICAgICAgICAoSlND
OjpCMzo6VmFsdWVSZXA6OnZhbHVlKToKKyAgICAgICAgKiBiMy9haXIvQWlyQ29kZS5jcHA6Cisg
ICAgICAgIChKU0M6OkIzOjpBaXI6OkNvZGU6OmR1bXApOgorICAgICAgICAqIGIzL2Fpci9BaXJJ
bnNlcnRpb25TZXQuY3BwOgorICAgICAgICAoSlNDOjpCMzo6QWlyOjpJbnNlcnRpb25TZXQ6OmV4
ZWN1dGUpOgorICAgICAgICAqIGIzL3Rlc3RiMy5jcHA6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0
Q29tcGxleCk6CisgICAgICAgIChKU0M6OkIzOjp0ZXN0U2ltcGxlUGF0Y2hwb2ludCk6CisgICAg
ICAgIChKU0M6OkIzOjpydW4pOgorICAgICAgICAqIGRmZy9ERkdCbG9ja0luc2VydGlvblNldC5j
cHA6CisgICAgICAgIChKU0M6OkRGRzo6QmxvY2tJbnNlcnRpb25TZXQ6OmV4ZWN1dGUpOgorCiAy
MDE1LTExLTAyICBNYXJrIExhbSAgPG1hcmsubGFtQGFwcGxlLmNvbT4KIAogICAgICAgICBTbmlw
cGVmeSBvcF9hZGQgZm9yIHRoZSBiYXNlbGluZSBKSVQuCkluZGV4OiBTb3VyY2UvSmF2YVNjcmlw
dENvcmUvYjMvQjNJbnNlcnRpb25TZXQuY3BwCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2Ny
aXB0Q29yZS9iMy9CM0luc2VydGlvblNldC5jcHAJKHJldmlzaW9uIDE5MTkwOCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0luc2VydGlvblNldC5jcHAJKHdvcmtpbmcgY29weSkKQEAg
LTM0LDYgKzM0LDcgQEAgbmFtZXNwYWNlIEpTQyB7IG5hbWVzcGFjZSBCMyB7CiAKIHZvaWQgSW5z
ZXJ0aW9uU2V0OjpleGVjdXRlKEJhc2ljQmxvY2sqIGJsb2NrKQogeworICAgIHN0ZDo6c3RhYmxl
X3NvcnQobV9pbnNlcnRpb25zLmJlZ2luKCksIG1faW5zZXJ0aW9ucy5lbmQoKSk7CiAgICAgZXhl
Y3V0ZUluc2VydGlvbnMoYmxvY2stPm1fdmFsdWVzLCBtX2luc2VydGlvbnMpOwogfQogCkluZGV4
OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAo9PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0t
LSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNMb3dlclRvQWlyLmNwcAkocmV2aXNpb24gMTkx
OTA4KQorKysgU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJUb0Fpci5jcHAJKHdvcmtp
bmcgY29weSkKQEAgLTQwLDYgKzQwLDggQEAKICNpbmNsdWRlICJCM0luZGV4U2V0LmgiCiAjaW5j
bHVkZSAiQjNMb3dlcmluZ01hdGNoZXIuaCIKICNpbmNsdWRlICJCM01lbW9yeVZhbHVlLmgiCisj
aW5jbHVkZSAiQjNQYXRjaHBvaW50U3BlY2lhbC5oIgorI2luY2x1ZGUgIkIzUGF0Y2hwb2ludFZh
bHVlLmgiCiAjaW5jbHVkZSAiQjNQaGFzZVNjb3BlLmgiCiAjaW5jbHVkZSAiQjNQcm9jZWR1cmUu
aCIKICNpbmNsdWRlICJCM1N0YWNrU2xvdFZhbHVlLmgiCkBAIC0zMzYsNiArMzM4LDE4IEBAIHB1
YmxpYzoKICAgICAgICAgcmV0dXJuIHRydWU7CiAgICAgfQogCisgICAgdm9pZCBhcHBlbmRTdG9y
ZShWYWx1ZSogdmFsdWUsIGNvbnN0IEFyZyYgZGVzdCkKKyAgICB7CisgICAgICAgIEFpcjo6T3Bj
b2RlIG1vdmUgPSBtb3ZlRm9yVHlwZSh2YWx1ZS0+dHlwZSgpKTsKKworICAgICAgICBpZiAoaW1t
KHZhbHVlKSAmJiBpc1ZhbGlkRm9ybShtb3ZlLCBBcmc6OkltbSwgZGVzdC5raW5kKCkpKSB7Cisg
ICAgICAgICAgICBhcHBlbmQobW92ZSwgaW1tKHZhbHVlKSwgZGVzdCk7CisgICAgICAgICAgICBy
ZXR1cm47CisgICAgICAgIH0KKworICAgICAgICBhcHBlbmQobW92ZSwgdG1wKHZhbHVlKSwgZGVz
dCk7CisgICAgfQorCiAgICAgQWlyOjpPcGNvZGUgbW92ZUZvclR5cGUoVHlwZSB0eXBlKQogICAg
IHsKICAgICAgICAgc3dpdGNoICh0eXBlKSB7CkBAIC0zNjksNiArMzgzLDEzIEBAIHB1YmxpYzoK
ICAgICB7CiAgICAgICAgIGluc3RzLmxhc3QoKS5hcHBlbmQoSW5zdChvcGNvZGUsIGN1cnJlbnRW
YWx1ZSwgc3RkOjpmb3J3YXJkPEFyZ3VtZW50cz4oYXJndW1lbnRzKS4uLikpOwogICAgIH0KKwor
ICAgIHRlbXBsYXRlPHR5cGVuYW1lIFQ+CisgICAgdm9pZCBlbnN1cmVTcGVjaWFsKFQqJiBmaWVs
ZCkKKyAgICB7CisgICAgICAgIGlmICghZmllbGQpCisgICAgICAgICAgICBmaWVsZCA9IHN0YXRp
Y19jYXN0PFQqPihjb2RlLmFkZFNwZWNpYWwoc3RkOjptYWtlX3VuaXF1ZTxUPigpKSk7CisgICAg
fQogICAgIAogICAgIEluZGV4U2V0PFZhbHVlPiBsb2NrZWQ7IC8vIFRoZXNlIGFyZSB2YWx1ZXMg
dGhhdCB3aWxsIGhhdmUgbm8gVG1wIGluIEFpci4KICAgICBJbmRleE1hcDxWYWx1ZSwgVG1wPiB2
YWx1ZVRvVG1wOyAvLyBUaGVzZSBhcmUgdmFsdWVzIHRoYXQgbXVzdCBoYXZlIGEgVG1wIGluIEFp
ci4gV2Ugc2F5IHRoYXQgYSBWYWx1ZSogd2l0aCBhIG5vbi1udWxsIFRtcCBpcyAicGlubmVkIi4K
QEAgLTM4NCw2ICs0MDUsOCBAQCBwdWJsaWM6CiAgICAgdW5zaWduZWQgY3VycmVudEluZGV4Owog
ICAgIFZhbHVlKiBjdXJyZW50VmFsdWU7CiAKKyAgICBQYXRjaHBvaW50U3BlY2lhbCogcGF0Y2hw
b2ludFNwZWNpYWwgeyAwIH07CisKICAgICAvLyBUaGUgYWRkcmVzcyBzZWxlY3RvciB3aWxsIG1h
dGNoIGFueSBwYXR0ZXJuIHdoZXJlIHRoZSBpbnB1dCBvcGVyYW5kcyBhcmUgYXZhaWxhYmxlIGFz
IFRtcHMuCiAgICAgLy8gSXQgZG9lc24ndCBjYXJlIGFib3V0IHNoYXJpbmcuIEl0IHdpbGwgaGFw
cGlseSBlbWl0IHRoZSBzYW1lIGFkZHJlc3MgZXhwcmVzc2lvbiBvdmVyIGFuZCBvdmVyCiAgICAg
Ly8gYWdhaW4gcmVnYXJkbGVzcyBvZiB0aGUgZXhwcmVzc2lvbidzIGNvbXBsZXhpdHkuIFRoaXMg
d29ya3Mgb3V0IGZpbmUsIHNpbmNlIGF0IHRoZSBtYWNoaW5lCkBAIC02MzcsMTUgKzY2MCw3IEBA
IHB1YmxpYzoKICAgICAKICAgICBib29sIHRyeVN0b3JlKFZhbHVlKiB2YWx1ZSwgVmFsdWUqIGFk
ZHJlc3MpCiAgICAgewotICAgICAgICBBaXI6Ok9wY29kZSBtb3ZlID0gbW92ZUZvclR5cGUodmFs
dWUtPnR5cGUoKSk7Ci0gICAgICAgIEFyZyBkZXN0aW5hdGlvbiA9IGVmZmVjdGl2ZUFkZHIoYWRk
cmVzcyk7Ci0KLSAgICAgICAgaWYgKGltbSh2YWx1ZSkgJiYgaXNWYWxpZEZvcm0obW92ZSwgQXJn
OjpJbW0sIGRlc3RpbmF0aW9uLmtpbmQoKSkpIHsKLSAgICAgICAgICAgIGFwcGVuZChtb3ZlRm9y
VHlwZSh2YWx1ZS0+dHlwZSgpKSwgaW1tKHZhbHVlKSwgZWZmZWN0aXZlQWRkcihhZGRyZXNzLCBj
dXJyZW50VmFsdWUpKTsKLSAgICAgICAgICAgIHJldHVybiB0cnVlOwotICAgICAgICB9Ci0gICAg
ICAgIAotICAgICAgICBhcHBlbmQobW92ZUZvclR5cGUodmFsdWUtPnR5cGUoKSksIHRtcCh2YWx1
ZSksIGVmZmVjdGl2ZUFkZHIoYWRkcmVzcywgY3VycmVudFZhbHVlKSk7CisgICAgICAgIGFwcGVu
ZFN0b3JlKHZhbHVlLCBlZmZlY3RpdmVBZGRyKGFkZHJlc3MsIGN1cnJlbnRWYWx1ZSkpOwogICAg
ICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKQEAgLTcxNCw2ICs3MjksNDggQEAgcHVibGljOgog
ICAgICAgICByZXR1cm4gdHJ1ZTsKICAgICB9CiAKKyAgICBib29sIHRyeVBhdGNocG9pbnQoKQor
ICAgIHsKKyAgICAgICAgUGF0Y2hwb2ludFZhbHVlKiBwYXRjaHBvaW50VmFsdWUgPSBjdXJyZW50
VmFsdWUtPmFzPFBhdGNocG9pbnRWYWx1ZT4oKTsKKyAgICAgICAgZW5zdXJlU3BlY2lhbChwYXRj
aHBvaW50U3BlY2lhbCk7CisKKyAgICAgICAgSW5zdCBpbnN0KFBhdGNoLCBwYXRjaHBvaW50VmFs
dWUsIEFyZzo6c3BlY2lhbChwYXRjaHBvaW50U3BlY2lhbCkpOworCisgICAgICAgIGlmIChwYXRj
aHBvaW50VmFsdWUtPnR5cGUoKSAhPSBWb2lkKQorICAgICAgICAgICAgaW5zdC5hcmdzLmFwcGVu
ZCh0bXAocGF0Y2hwb2ludFZhbHVlKSk7CisKKyAgICAgICAgZm9yICh1bnNpZ25lZCBpID0gMDsg
aSA8IHBhdGNocG9pbnRWYWx1ZS0+bnVtQ2hpbGRyZW4oKTsgKytpKSB7CisgICAgICAgICAgICBW
YWx1ZVJlcCByZXA7CisgICAgICAgICAgICBpZiAoaSA8IHBhdGNocG9pbnRWYWx1ZS0+c3RhY2tt
YXAucmVwcygpLnNpemUoKSkKKyAgICAgICAgICAgICAgICByZXAgPSBwYXRjaHBvaW50VmFsdWUt
PnN0YWNrbWFwLnJlcHMoKVtpXTsKKworICAgICAgICAgICAgQXJnIGFyZzsKKyAgICAgICAgICAg
IHN3aXRjaCAocmVwLmtpbmQoKSkgeworICAgICAgICAgICAgY2FzZSBWYWx1ZVJlcDo6QW55Ogor
ICAgICAgICAgICAgICAgIGFyZyA9IGltbU9yVG1wKHBhdGNocG9pbnRWYWx1ZS0+Y2hpbGQoaSkp
OworICAgICAgICAgICAgICAgIGJyZWFrOworICAgICAgICAgICAgY2FzZSBWYWx1ZVJlcDo6U29t
ZVJlZ2lzdGVyOgorICAgICAgICAgICAgICAgIGFyZyA9IHRtcChwYXRjaHBvaW50VmFsdWUtPmNo
aWxkKGkpKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVmFsdWVS
ZXA6OlJlZ2lzdGVyOgorICAgICAgICAgICAgICAgIGFyZyA9IFRtcChyZXAucmVnKCkpOworICAg
ICAgICAgICAgICAgIGFwcGVuZChNb3ZlLCBpbW1PclRtcChwYXRjaHBvaW50VmFsdWUtPmNoaWxk
KGkpKSwgYXJnKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIGNhc2UgVmFs
dWVSZXA6OlN0YWNrQXJndW1lbnQ6CisgICAgICAgICAgICAgICAgYXJnID0gQXJnOjpjYWxsQXJn
KHJlcC5vZmZzZXRGcm9tU1AoKSk7CisgICAgICAgICAgICAgICAgYXBwZW5kU3RvcmUocGF0Y2hw
b2ludFZhbHVlLT5jaGlsZChpKSwgYXJnKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAg
ICAgICAgIGRlZmF1bHQ6CisgICAgICAgICAgICAgICAgUkVMRUFTRV9BU1NFUlRfTk9UX1JFQUNI
RUQoKTsKKyAgICAgICAgICAgICAgICBicmVhazsKKyAgICAgICAgICAgIH0KKyAgICAgICAgICAg
IGluc3QuYXJncy5hcHBlbmQoYXJnKTsKKyAgICAgICAgfQorICAgICAgICAKKyAgICAgICAgaW5z
dHMubGFzdCgpLmFwcGVuZChXVEY6Om1vdmUoaW5zdCkpOworICAgICAgICByZXR1cm4gdHJ1ZTsK
KyAgICB9CisKICAgICBib29sIHRyeVVwc2lsb24oVmFsdWUqIHZhbHVlKQogICAgIHsKICAgICAg
ICAgYXBwZW5kKApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzTG93ZXJpbmdNYXRj
aGVyLnBhdHRlcm5zCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM0xv
d2VyaW5nTWF0Y2hlci5wYXR0ZXJucwkocmV2aXNpb24gMTkxOTA4KQorKysgU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL0IzTG93ZXJpbmdNYXRjaGVyLnBhdHRlcm5zCSh3b3JraW5nIGNvcHkpCkBA
IC01NCw2ICs1NCw4IEBAIENvbnN0NjQgPSBDb25zdDY0KCkKIFN0YWNrU2xvdCA9IFN0YWNrU2xv
dCgpCiBGcmFtZVBvaW50ZXIgPSBGcmFtZVBvaW50ZXIoKQogCitQYXRjaHBvaW50ID0gUGF0Y2hw
b2ludCgpCisKIFVwc2lsb24gPSBVcHNpbG9uKHZhbHVlKQogUGhpID0gUGhpKCkKIApJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFZhbHVlLmgKPT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQot
LS0gU291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzUGF0Y2hwb2ludFZhbHVlLmgJKHJldmlzaW9u
IDE5MTkwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1BhdGNocG9pbnRWYWx1ZS5o
CSh3b3JraW5nIGNvcHkpCkBAIC0zMyw3ICszMyw3IEBACiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1l
c3BhY2UgQjMgewogCi1jbGFzcyBQYXRjaHBvaW50VmFsdWUgOiBwdWJsaWMgVmFsdWUgeworY2xh
c3MgSlNfRVhQT1JUX1BSSVZBVEUgUGF0Y2hwb2ludFZhbHVlIDogcHVibGljIFZhbHVlIHsKIHB1
YmxpYzoKICAgICBzdGF0aWMgYm9vbCBhY2NlcHRzKE9wY29kZSBvcGNvZGUpIHsgcmV0dXJuIG9w
Y29kZSA9PSBQYXRjaHBvaW50OyB9CiAKQEAgLTQ3LDggKzQ3LDE2IEBAIHByb3RlY3RlZDoKIHBy
aXZhdGU6CiAgICAgZnJpZW5kIGNsYXNzIFByb2NlZHVyZTsKIAotICAgIFBhdGNocG9pbnRWYWx1
ZSh1bnNpZ25lZCBpbmRleCwgVHlwZSB0eXBlLCBPcmlnaW4gb3JpZ2luLCBjb25zdCBBZGphY2Vu
Y3lMaXN0JiBjaGlsZHJlbikKLSAgICAgICAgOiBWYWx1ZShpbmRleCwgUGF0Y2hwb2ludCwgdHlw
ZSwgb3JpZ2luLCBjaGlsZHJlbikKKyAgICB0ZW1wbGF0ZTx0eXBlbmFtZSBMaXN0VHlwZT4KKyAg
ICBQYXRjaHBvaW50VmFsdWUodW5zaWduZWQgaW5kZXgsIFR5cGUgdHlwZSwgT3JpZ2luIG9yaWdp
biwgTGlzdFR5cGUmJiBjaGlsZHJlbikKKyAgICAgICAgOiBWYWx1ZShpbmRleCwgUGF0Y2hwb2lu
dCwgdHlwZSwgb3JpZ2luLCBzdGQ6OmZvcndhcmQ8TGlzdFR5cGU+KGNoaWxkcmVuKSkKKyAgICB7
CisgICAgfQorCisgICAgLy8gSXQncyB0b3RhbGx5IGZpbmUgdG8gY3JlYXRlIGEgUGF0Y2hwb2lu
dFZhbHVlIHdpdGhvdXQgYW55IGNoaWxkcmVuLCBhbmQgdGhlbiBhcHBlbmQgdGhlCisgICAgLy8g
Y2hpbGRyZW4gYXMgeW91IGJ1aWxkIHVwIHRoZSBzdGFja21hcC4KKyAgICBQYXRjaHBvaW50VmFs
dWUodW5zaWduZWQgaW5kZXgsIFR5cGUgdHlwZSwgT3JpZ2luIG9yaWdpbikKKyAgICAgICAgOiBW
YWx1ZShpbmRleCwgUGF0Y2hwb2ludCwgdHlwZSwgb3JpZ2luLCBBZGphY2VuY3lMaXN0KCkpCiAg
ICAgewogICAgIH0KIH07CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21h
cC5oCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFwLmgJ
KHJldmlzaW9uIDE5MTkwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9CM1N0YWNrbWFw
LmgJKHdvcmtpbmcgY29weSkKQEAgLTU4LDcgKzU4LDcgQEAgcHVibGljOgogICAgIHR5cGVkZWYg
dm9pZCBHZW5lcmF0b3JGdW5jdGlvbihDQ2FsbEhlbHBlcnMmLCBjb25zdCBHZW5lcmF0aW9uUGFy
YW1zJik7CiAgICAgdHlwZWRlZiBTaGFyZWRUYXNrPEdlbmVyYXRvckZ1bmN0aW9uPiBHZW5lcmF0
b3I7CiAgICAgCi0gICAgU3RhY2ttYXAoKTsKKyAgICBKU19FWFBPUlRfUFJJVkFURSBTdGFja21h
cCgpOwogICAgIH5TdGFja21hcCgpOwogCiAgICAgLy8gQ29uc3RyYWluIGFuIGFyZ3VtZW50IHRv
IHRoZSBWYWx1ZSB0aGF0IHVzZXMgdGhpcyBTdGFja21hcC4gSW4gY2FzZSBvZiBhIFBhdGNocG9p
bnQgdGhhdApAQCAtNzQsNiArNzQsMTEgQEAgcHVibGljOgogICAgICAgICBtX3JlcHNbaW5kZXhd
ID0gcmVwOwogICAgIH0KIAorICAgIHZvaWQgYXBwZW5kQ29uc3RyYWludChjb25zdCBWYWx1ZVJl
cCYgcmVwKQorICAgIHsKKyAgICAgICAgbV9yZXBzLmFwcGVuZChyZXApOworICAgIH0KKwogICAg
IGNvbnN0IFZlY3RvcjxWYWx1ZVJlcD4mIHJlcHMoKSBjb25zdCB7IHJldHVybiBtX3JlcHM7IH0K
IAogICAgIHZvaWQgY2xvYmJlcihjb25zdCBSZWdpc3RlclNldCYgc2V0KQpJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL0IzU3RhY2ttYXBTcGVjaWFsLmNwcAo9PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFNwZWNpYWwuY3BwCShyZXZpc2lvbiAx
OTE5MDgpCisrKyBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNTdGFja21hcFNwZWNpYWwuY3Bw
CSh3b3JraW5nIGNvcHkpCkBAIC03NCw5ICs3NCw5IEBAIHZvaWQgU3RhY2ttYXBTcGVjaWFsOjpm
b3JFYWNoQXJnSW1wbCgKICAgICBBU1NFUlQodmFsdWUtPmNoaWxkcmVuKCkuc2l6ZSgpID49IG51
bUlnbm9yZWRCM0FyZ3MpOwogICAgIEFTU0VSVChpbnN0LmFyZ3Muc2l6ZSgpIC0gbnVtSWdub3Jl
ZEFpckFyZ3MgPT0gdmFsdWUtPmNoaWxkcmVuKCkuc2l6ZSgpIC0gbnVtSWdub3JlZEIzQXJncyk7
CiAgICAgCi0gICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGluc3QuYXJncy5zaXplKCkgLSBu
dW1JZ25vcmVkQjNBcmdzOyArK2kpIHsKLSAgICAgICAgQXJnJiBhcmcgPSBpbnN0LmFyZ3NbaSAr
IG51bUlnbm9yZWRCM0FyZ3NdOwotICAgICAgICBWYWx1ZSogY2hpbGQgPSB2YWx1ZS0+Y2hpbGQo
aSArIG51bUlnbm9yZWRBaXJBcmdzKTsKKyAgICBmb3IgKHVuc2lnbmVkIGkgPSAwOyBpIDwgaW5z
dC5hcmdzLnNpemUoKSAtIG51bUlnbm9yZWRBaXJBcmdzOyArK2kpIHsKKyAgICAgICAgQXJnJiBh
cmcgPSBpbnN0LmFyZ3NbaSArIG51bUlnbm9yZWRBaXJBcmdzXTsKKyAgICAgICAgVmFsdWUqIGNo
aWxkID0gdmFsdWUtPmNoaWxkKGkgKyBudW1JZ25vcmVkQjNBcmdzKTsKIAogICAgICAgICBjYWxs
YmFjayhhcmcsIEFyZzo6VXNlLCBBcmc6OnR5cGVGb3JCM1R5cGUoY2hpbGQtPnR5cGUoKSkpOwog
ICAgIH0KQEAgLTEwMyw3ICsxMDMsNyBAQCBib29sIFN0YWNrbWFwU3BlY2lhbDo6aXNWYWxpZElt
cGwoCiAgICAgLy8gUmVnYXJkbGVzcyBvZiBjb25zdHJhaW50cywgc3RhY2ttYXBzIGhhdmUgc29t
ZSBiYXNpYyByZXF1aXJlbWVudHMgZm9yIHRoZWlyIGFyZ3VtZW50cy4gRm9yCiAgICAgLy8gZXhh
bXBsZSwgeW91IGNhbid0IGhhdmUgYSBub24tRlAtb2Zmc2V0IGFkZHJlc3MuIFRoaXMgdmVyaWZp
ZXMgdGhvc2UgY29uZGl0aW9ucyBhcyB3ZWxsIGFzIHRoZQogICAgIC8vIGFyZ3VtZW50IHR5cGVz
LgotICAgIGZvciAodW5zaWduZWQgaSA9IDA7IGkgPCBpbnN0LmFyZ3Muc2l6ZSgpIC0gbnVtSWdu
b3JlZEIzQXJnczsgKytpKSB7CisgICAgZm9yICh1bnNpZ25lZCBpID0gMDsgaSA8IGluc3QuYXJn
cy5zaXplKCkgLSBudW1JZ25vcmVkQWlyQXJnczsgKytpKSB7CiAgICAgICAgIFZhbHVlKiBjaGls
ZCA9IHZhbHVlLT5jaGlsZChpICsgbnVtSWdub3JlZEIzQXJncyk7CiAgICAgICAgIEFyZyYgYXJn
ID0gaW5zdC5hcmdzW2kgKyBudW1JZ25vcmVkQWlyQXJnc107CiAgICAgICAgIApJbmRleDogU291
cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWUuaAo9PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCShyZXZpc2lvbiAxOTE5MDgpCisrKyBTb3VyY2UvSmF2
YVNjcmlwdENvcmUvYjMvQjNWYWx1ZS5oCSh3b3JraW5nIGNvcHkpCkBAIC0yMTAsNiArMjEwLDE0
IEBAIHByb3RlY3RlZDoKICAgICAgICAgLCBtX2NoaWxkcmVuKGNoaWxkcmVuKQogICAgIHsKICAg
ICB9CisgICAgZXhwbGljaXQgVmFsdWUodW5zaWduZWQgaW5kZXgsIE9wY29kZSBvcGNvZGUsIFR5
cGUgdHlwZSwgT3JpZ2luIG9yaWdpbiwgQWRqYWNlbmN5TGlzdCYmIGNoaWxkcmVuKQorICAgICAg
ICA6IG1faW5kZXgoaW5kZXgpCisgICAgICAgICwgbV9vcGNvZGUob3Bjb2RlKQorICAgICAgICAs
IG1fdHlwZSh0eXBlKQorICAgICAgICAsIG1fb3JpZ2luKG9yaWdpbikKKyAgICAgICAgLCBtX2No
aWxkcmVuKFdURjo6bW92ZShjaGlsZHJlbikpCisgICAgeworICAgIH0KIAogcHJpdmF0ZToKICAg
ICBzdGF0aWMgVHlwZSB0eXBlRm9yKE9wY29kZSwgVmFsdWUqIGZpcnN0Q2hpbGQpOwpJbmRleDog
U291cmNlL0phdmFTY3JpcHRDb3JlL2IzL0IzVmFsdWVSZXAuaAo9PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09Ci0tLSBTb3Vy
Y2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCShyZXZpc2lvbiAxOTE5MDgpCisrKyBT
b3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvQjNWYWx1ZVJlcC5oCSh3b3JraW5nIGNvcHkpCkBAIC0y
OCw2ICsyOCw4IEBACiAKICNpZiBFTkFCTEUoQjNfSklUKQogCisjaW5jbHVkZSAiRlBSSW5mby5o
IgorI2luY2x1ZGUgIkdQUkluZm8uaCIKICNpbmNsdWRlICJSZWcuaCIKICNpbmNsdWRlIDx3dGYv
UHJpbnRTdHJlYW0uaD4KIApAQCAtNzcsNiArNzksMTIgQEAgcHVibGljOgogICAgICAgICB1LnJl
ZyA9IHJlZzsKICAgICB9CiAKKyAgICBWYWx1ZVJlcChLaW5kIGtpbmQpCisgICAgICAgIDogbV9r
aW5kKGtpbmQpCisgICAgeworICAgICAgICBBU1NFUlQoa2luZCA9PSBBbnkgfHwga2luZCA9PSBT
b21lUmVnaXN0ZXIpOworICAgIH0KKwogICAgIHN0YXRpYyBWYWx1ZVJlcCByZWcoUmVnIHJlZykK
ICAgICB7CiAgICAgICAgIHJldHVybiBWYWx1ZVJlcChyZWcpOwpAQCAtMTE1LDI3ICsxMjMsNDUg
QEAgcHVibGljOgogCiAgICAgZXhwbGljaXQgb3BlcmF0b3IgYm9vbCgpIGNvbnN0IHsgcmV0dXJu
IGtpbmQoKSAhPSBBbnk7IH0KIAorICAgIGJvb2wgaXNBbnkoKSBjb25zdCB7IHJldHVybiBraW5k
KCkgPT0gQW55OyB9CisKKyAgICBib29sIGlzU29tZVJlZ2lzdGVyKCkgY29uc3QgeyByZXR1cm4g
a2luZCgpID09IFNvbWVSZWdpc3RlcjsgfQorICAgIAorICAgIGJvb2wgaXNSZWcoKSBjb25zdCB7
IHJldHVybiBraW5kKCkgPT0gUmVnaXN0ZXI7IH0KKyAgICAKICAgICBSZWcgcmVnKCkgY29uc3QK
ICAgICB7Ci0gICAgICAgIEFTU0VSVChraW5kKCkgPT0gUmVnaXN0ZXIpOworICAgICAgICBBU1NF
UlQoaXNSZWcoKSk7CiAgICAgICAgIHJldHVybiB1LnJlZzsKICAgICB9CiAKKyAgICBib29sIGlz
R1BSKCkgY29uc3QgeyByZXR1cm4gaXNSZWcoKSAmJiByZWcoKS5pc0dQUigpOyB9CisgICAgYm9v
bCBpc0ZQUigpIGNvbnN0IHsgcmV0dXJuIGlzUmVnKCkgJiYgcmVnKCkuaXNGUFIoKTsgfQorCisg
ICAgR1BSUmVnIGdwcigpIGNvbnN0IHsgcmV0dXJuIHJlZygpLmdwcigpOyB9CisgICAgRlBSUmVn
IGZwcigpIGNvbnN0IHsgcmV0dXJuIHJlZygpLmZwcigpOyB9CisKKyAgICBib29sIGlzU3RhY2so
KSBjb25zdCB7IHJldHVybiBraW5kKCkgPT0gU3RhY2s7IH0KKwogICAgIGludHB0cl90IG9mZnNl
dEZyb21GUCgpIGNvbnN0CiAgICAgewotICAgICAgICBBU1NFUlQoa2luZCgpID09IFN0YWNrKTsK
KyAgICAgICAgQVNTRVJUKGlzU3RhY2soKSk7CiAgICAgICAgIHJldHVybiB1Lm9mZnNldEZyb21G
UDsKICAgICB9CiAKKyAgICBib29sIGlzU3RhY2tBcmd1bWVudCgpIGNvbnN0IHsgcmV0dXJuIGtp
bmQoKSA9PSBTdGFja0FyZ3VtZW50OyB9CisKICAgICBpbnRwdHJfdCBvZmZzZXRGcm9tU1AoKSBj
b25zdAogICAgIHsKLSAgICAgICAgQVNTRVJUKGtpbmQoKSA9PSBTdGFja0FyZ3VtZW50KTsKKyAg
ICAgICAgQVNTRVJUKGlzU3RhY2tBcmd1bWVudCgpKTsKICAgICAgICAgcmV0dXJuIHUub2Zmc2V0
RnJvbVNQOwogICAgIH0KIAorICAgIGJvb2wgaXNDb25zdGFudCgpIGNvbnN0IHsgcmV0dXJuIGtp
bmQoKSA9PSBDb25zdGFudDsgfQorCiAgICAgaW50NjRfdCB2YWx1ZSgpIGNvbnN0CiAgICAgewot
ICAgICAgICBBU1NFUlQoa2luZCgpID09IENvbnN0YW50KTsKKyAgICAgICAgQVNTRVJUKGlzQ29u
c3RhbnQoKSk7CiAgICAgICAgIHJldHVybiB1LnZhbHVlOwogICAgIH0KIApJbmRleDogU291cmNl
L0phdmFTY3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFT
Y3JpcHRDb3JlL2IzL3Rlc3RiMy5jcHAJKHJldmlzaW9uIDE5MTkwOCkKKysrIFNvdXJjZS9KYXZh
U2NyaXB0Q29yZS9iMy90ZXN0YjMuY3BwCSh3b3JraW5nIGNvcHkpCkBAIC0xMjAxLDYgKzEyMDEs
MzMgQEAgdm9pZCB0ZXN0Q29tcGxleCh1bnNpZ25lZCBudW1WYXJzLCB1bnNpZwogICAgIGRhdGFM
b2coIiAgICBUaGF0IHRvb2sgIiwgYWZ0ZXIgLSBiZWZvcmUsICIgbXMuXG4iKTsKIH0KIAordm9p
ZCB0ZXN0U2ltcGxlUGF0Y2hwb2ludCgpCit7CisgICAgUHJvY2VkdXJlIHByb2M7CisgICAgQmFz
aWNCbG9jayogcm9vdCA9IHByb2MuYWRkQmxvY2soKTsKKyAgICBWYWx1ZSogYXJnMSA9IHJvb3Qt
PmFwcGVuZE5ldzxBcmd1bWVudFJlZ1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJn
dW1lbnRHUFIwKTsKKyAgICBWYWx1ZSogYXJnMiA9IHJvb3QtPmFwcGVuZE5ldzxBcmd1bWVudFJl
Z1ZhbHVlPihwcm9jLCBPcmlnaW4oKSwgR1BSSW5mbzo6YXJndW1lbnRHUFIxKTsKKyAgICBWYWx1
ZTo6QWRqYWNlbmN5TGlzdCBjaGlsZHJlbjsKKyAgICBjaGlsZHJlbi5hcHBlbmQoYXJnMSk7Cisg
ICAgY2hpbGRyZW4uYXBwZW5kKGFyZzIpOworICAgIFBhdGNocG9pbnRWYWx1ZSogcGF0Y2hwb2lu
dCA9IHJvb3QtPmFwcGVuZE5ldzxQYXRjaHBvaW50VmFsdWU+KAorICAgICAgICBwcm9jLCBJbnQz
MiwgT3JpZ2luKCksIFdURjo6bW92ZShjaGlsZHJlbikpOworICAgIHBhdGNocG9pbnQtPnN0YWNr
bWFwLmFwcGVuZENvbnN0cmFpbnQoVmFsdWVSZXA6OlNvbWVSZWdpc3Rlcik7CisgICAgcGF0Y2hw
b2ludC0+c3RhY2ttYXAuYXBwZW5kQ29uc3RyYWludChWYWx1ZVJlcDo6U29tZVJlZ2lzdGVyKTsK
KyAgICBwYXRjaHBvaW50LT5zdGFja21hcC5zZXRHZW5lcmF0b3IoCisgICAgICAgIFsmXSAoQ0Nh
bGxIZWxwZXJzJiBqaXQsIGNvbnN0IFN0YWNrbWFwOjpHZW5lcmF0aW9uUGFyYW1zJiBwYXJhbXMp
IHsKKyAgICAgICAgICAgIENIRUNLKHBhcmFtcy5yZXBzLnNpemUoKSA9PSAzKTsKKyAgICAgICAg
ICAgIENIRUNLKHBhcmFtcy5yZXBzWzBdLmlzR1BSKCkpOworICAgICAgICAgICAgQ0hFQ0socGFy
YW1zLnJlcHNbMV0uaXNHUFIoKSk7CisgICAgICAgICAgICBDSEVDSyhwYXJhbXMucmVwc1syXS5p
c0dQUigpKTsKKyAgICAgICAgICAgIGppdC5tb3ZlKHBhcmFtcy5yZXBzWzFdLmdwcigpLCBwYXJh
bXMucmVwc1swXS5ncHIoKSk7CisgICAgICAgICAgICBqaXQuYWRkMzIocGFyYW1zLnJlcHNbMl0u
Z3ByKCksIHBhcmFtcy5yZXBzWzBdLmdwcigpKTsKKyAgICAgICAgfSk7CisgICAgcm9vdC0+YXBw
ZW5kTmV3PENvbnRyb2xWYWx1ZT4ocHJvYywgUmV0dXJuLCBPcmlnaW4oKSwgcGF0Y2hwb2ludCk7
CisKKyAgICBDSEVDSyhjb21waWxlQW5kUnVuPGludD4ocHJvYywgMSwgMikgPT0gMyk7Cit9CisK
ICNkZWZpbmUgUlVOKHRlc3QpIGRvIHsgICAgICAgICAgICAgICAgICAgICAgICAgIFwKICAgICAg
ICAgaWYgKCFzaG91bGRSdW4oI3Rlc3QpKSAgICAgICAgICAgICAgICAgIFwKICAgICAgICAgICAg
IGJyZWFrOyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFwKQEAgLTEzMTAsNiArMTMzNyw4
IEBAIHZvaWQgcnVuKGNvbnN0IGNoYXIqIGZpbHRlcikKICAgICBSVU4odGVzdENvbXBsZXgoNCwg
MjU2KSk7CiAgICAgUlVOKHRlc3RDb21wbGV4KDQsIDM4NCkpOwogCisgICAgUlVOKHRlc3RTaW1w
bGVQYXRjaHBvaW50KCkpOworCiAgICAgaWYgKCFkaWRSdW4pCiAgICAgICAgIHVzYWdlKCk7CiB9
CkluZGV4OiBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0FpckNvZGUuY3BwCj09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT0KLS0tIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAJKHJldmlzaW9u
IDE5MTkwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlyQ29kZS5jcHAJKHdv
cmtpbmcgY29weSkKQEAgLTEwMiw3ICsxMDIsNyBAQCB2b2lkIENvZGU6OmR1bXAoUHJpbnRTdHJl
YW0mIG91dCkgY29uc3QKICAgICBpZiAoc3BlY2lhbHMoKS5zaXplKCkpIHsKICAgICAgICAgb3V0
LnByaW50KCJTcGVjaWFsczpcbiIpOwogICAgICAgICBmb3IgKFNwZWNpYWwqIHNwZWNpYWwgOiBz
cGVjaWFscygpKQotICAgICAgICAgICAgb3V0LnByaW50KCIgICAgIiwgcG9pbnRlckR1bXAoc3Bl
Y2lhbCksICI6ICIsIGRlZXBEdW1wKHNwZWNpYWwpLCAiXG4iKTsKKyAgICAgICAgICAgIG91dC5w
cmludCgiICAgICIsIGRlZXBEdW1wKHNwZWNpYWwpLCAiXG4iKTsKICAgICB9CiAgICAgaWYgKG1f
ZnJhbWVTaXplKQogICAgICAgICBvdXQucHJpbnQoIkZyYW1lIHNpemU6ICIsIG1fZnJhbWVTaXpl
LCAiXG4iKTsKSW5kZXg6IFNvdXJjZS9KYXZhU2NyaXB0Q29yZS9iMy9haXIvQWlySW5zZXJ0aW9u
U2V0LmNwcAo9PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09Ci0tLSBTb3VyY2UvSmF2YVNjcmlwdENvcmUvYjMvYWlyL0Fpcklu
c2VydGlvblNldC5jcHAJKHJldmlzaW9uIDE5MTkwOCkKKysrIFNvdXJjZS9KYXZhU2NyaXB0Q29y
ZS9iMy9haXIvQWlySW5zZXJ0aW9uU2V0LmNwcAkod29ya2luZyBjb3B5KQpAQCAtMjksMTEgKzI5
LDEzIEBACiAjaWYgRU5BQkxFKEIzX0pJVCkKIAogI2luY2x1ZGUgIkFpckJhc2ljQmxvY2suaCIK
KyNpbmNsdWRlIDxhbGdvcml0aG0+CiAKIG5hbWVzcGFjZSBKU0MgeyBuYW1lc3BhY2UgQjMgeyBu
YW1lc3BhY2UgQWlyIHsKIAogdm9pZCBJbnNlcnRpb25TZXQ6OmV4ZWN1dGUoQmFzaWNCbG9jayog
YmxvY2spCiB7CisgICAgc3RkOjpzdGFibGVfc29ydChtX2luc2VydGlvbnMuYmVnaW4oKSwgbV9p
bnNlcnRpb25zLmVuZCgpKTsKICAgICBleGVjdXRlSW5zZXJ0aW9ucyhibG9jay0+bV9pbnN0cywg
bV9pbnNlcnRpb25zKTsKIH0KIApJbmRleDogU291cmNlL0phdmFTY3JpcHRDb3JlL2RmZy9ERkdC
bG9ja0luc2VydGlvblNldC5jcHAKPT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09
PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PQotLS0gU291cmNlL0phdmFTY3JpcHRDb3Jl
L2RmZy9ERkdCbG9ja0luc2VydGlvblNldC5jcHAJKHJldmlzaW9uIDE5MTkwOCkKKysrIFNvdXJj
ZS9KYXZhU2NyaXB0Q29yZS9kZmcvREZHQmxvY2tJbnNlcnRpb25TZXQuY3BwCSh3b3JraW5nIGNv
cHkpCkBAIC03Myw3ICs3Myw3IEBAIGJvb2wgQmxvY2tJbnNlcnRpb25TZXQ6OmV4ZWN1dGUoKQog
ICAgIAogICAgIC8vIFdlIGFsbG93IGluc2VydGlvbnMgdG8gYmUgZ2l2ZW4gdG8gdXMgaW4gYW55
IG9yZGVyLiBTbywgd2UgbmVlZCB0bwogICAgIC8vIHNvcnQgdGhlbSBiZWZvcmUgcnVubmluZyBX
VEY6OmV4ZWN1dGVJbnNlcnRpb25zLgotICAgIHN0ZDo6c29ydChtX2luc2VydGlvbnMuYmVnaW4o
KSwgbV9pbnNlcnRpb25zLmVuZCgpKTsKKyAgICBzdGQ6OnN0YWJsZV9zb3J0KG1faW5zZXJ0aW9u
cy5iZWdpbigpLCBtX2luc2VydGlvbnMuZW5kKCkpOwogCiAgICAgZXhlY3V0ZUluc2VydGlvbnMo
bV9ncmFwaC5tX2Jsb2NrcywgbV9pbnNlcnRpb25zKTsKICAgICAK
</data>
<flag name="review"
          id="289719"
          type_id="1"
          status="+"
          setter="ggaren"
    />
          </attachment>
      

    </bug>

</bugzilla>