Home | History | Annotate | Download | only in src
      1 /*
      2  * Copyright (C) 2009 The Android Open Source Project
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
     13  * See the License for the specific language governing permissions and
     14  * limitations under the License.
     15  */
     16 
     17 import java.util.concurrent.*;
     18 import java.util.concurrent.atomic.AtomicLong;
     19 
     20 /**
     21  * Test for Jit regressions.
     22  */
     23 public class Main {
     24     public static int const0x1234() {
     25         return 0x1234;
     26     }
     27 
     28     public static long const0x123443211234() {
     29         return 0x123443211234L;
     30     }
     31 
     32     public static void main(String args[]) throws Exception {
     33         b17325447();
     34         b17630605();
     35         b17411468();
     36         b2296099Test();
     37         b2302318Test();
     38         b2487514Test();
     39         b5884080Test();
     40         b13679511Test();
     41         b16177324TestWrapper();
     42         b16230771TestWrapper();
     43         largeFrameTest();
     44         largeFrameTestFloat();
     45         mulBy1Test();
     46         constantPropagationTest();
     47         getterSetterTest();
     48         identityTest();
     49         wideGetterSetterTest();
     50         wideIdentityTest();
     51         returnConstantTest();
     52         setterTestWithReturnArgIgnoreReturn();
     53         setterTestWithReturnArgUseReturn();
     54         wideSetterTestWithReturnArgIgnoreReturn();
     55         wideSetterTestWithReturnArgUseReturn();
     56         LVNTests.testNPE1();
     57         LVNTests.testNPE2();
     58         ZeroTests.longDivTest();
     59         ZeroTests.longModTest();
     60         MirOpSelectTests.testIfCcz();
     61         ManyFloatArgs();
     62         atomicLong();
     63         LiveFlags.test();
     64         minDoubleWith3ConstsTest();
     65     }
     66 
     67     public static double b17325447_i1(int i1, double f) {
     68       return f;
     69     }
     70 
     71     public static double b17325447_i2(int i1, int i2, double f) {
     72       return f;
     73     }
     74 
     75     public static double b17325447_i3(int i1, int i2, int i3, double f) {
     76       return f;
     77     }
     78 
     79     public static void b17325447() {
     80       // b/17325447 - x86 handling of special identity method w/ double spanning reg/mem.
     81       double d = 0.0;
     82       d += b17325447_i1(123, 1.0);
     83       d += b17325447_i2(123, 456, 2.0);
     84       d += b17325447_i3(123, 456, 789, 3.0);
     85       if (d == 6.0) {
     86         System.out.println("b17325447 passes");
     87       } else {
     88         System.out.println("b17325447 fails: " + d);
     89       }
     90     }
     91 
     92     public static void b17630605() {
     93       // b/17630605 - failure to properly handle min long immediates.
     94       long a1 = 40455547223404749L;
     95       long a2 = Long.MIN_VALUE;
     96       long answer = a1 + a2;
     97       if (answer == -9182916489631371059L) {
     98           System.out.println("b17630605 passes");
     99       } else {
    100           System.out.println("b17630605 fails: " + answer);
    101       }
    102     }
    103 
    104     public static void b17411468() {
    105       // b/17411468 - inline Math.round failure.
    106       double d1 = 1.0;
    107       double d2 = Math.round(d1);
    108       if (d1 == d2) {
    109         System.out.println("b17411468 passes");
    110       } else {
    111         System.out.println("b17411468 fails: Math.round(" + d1 + ") returned " + d2);
    112       }
    113     }
    114 
    115     public static double minDouble(double a, double b, double c) {
    116         return Math.min(Math.min(a, b), c);
    117     }
    118 
    119     public static void minDoubleWith3ConstsTest() {
    120         double result = minDouble(1.2, 2.5, Double.NaN);
    121         if (Double.isNaN(result)) {
    122             System.out.println("minDoubleWith3ConstsTest passes");
    123         } else {
    124             System.out.println("minDoubleWith3ConstsTest fails: " + result +
    125                                " (expecting NaN)");
    126         }
    127     }
    128 
    129     public static void atomicLong() {
    130         AtomicLong atomicLong = new AtomicLong();
    131         atomicLong.addAndGet(3);
    132         atomicLong.addAndGet(2);
    133         atomicLong.addAndGet(1);
    134         long result = atomicLong.get();
    135         System.out.println(result == 6L ? "atomicLong passes" :
    136           ("atomicLong failes: returns " + result + ", expected 6")
    137         );
    138     }
    139 
    140     public static void returnConstantTest() {
    141         long res = const0x1234();
    142         res += const0x123443211234();
    143         Foo foo = new Foo();
    144         res += foo.iConst0x1234();
    145         res += foo.iConst0x123443211234();
    146         if (res == 40031347689680L) {
    147             System.out.println("returnConstantTest passes");
    148         }
    149         else {
    150             System.out.println("returnConstantTest fails: " + res +
    151                                " (expecting 40031347689680)");
    152         }
    153     }
    154 
    155     static void wideIdentityTest() {
    156         Foo foo = new Foo();
    157         long i = 0x200000001L;
    158         i += foo.wideIdent0(i);
    159         i += foo.wideIdent1(0,i);
    160         i += foo.wideIdent2(0,0,i);
    161         i += foo.wideIdent3(0,0,0,i);
    162         i += foo.wideIdent4(0,0,0,0,i);
    163         i += foo.wideIdent5(0,0,0,0,0,i);
    164         if (i == 0x8000000040L) {
    165             System.out.println("wideIdentityTest passes");
    166         }
    167         else {
    168             System.out.println("wideIdentityTest fails: 0x" + Long.toHexString(i) +
    169                                " (expecting 0x8000000040)");
    170         }
    171     }
    172 
    173     static void wideGetterSetterTest() {
    174         Foo foo = new Foo();
    175         long sum = foo.wideGetBar0();
    176         sum += foo.wideGetBar1(1);
    177         foo.wideSetBar1(sum);
    178         sum += foo.wideGetBar2(1,2);
    179         foo.wideSetBar2(0,sum);
    180         sum += foo.wideGetBar3(1,2,3);
    181         foo.wideSetBar3(0,0,sum);
    182         sum += foo.wideGetBar4(1,2,3,4);
    183         foo.wideSetBar4(0,0,0,sum);
    184         sum += foo.wideGetBar5(1,2,3,4,5);
    185         foo.wideSetBar5(0,0,0,0,sum);
    186         long result1 = foo.wideGetBar0();
    187         long expected1 = 1234L << 5;
    188         sum += foo.wideGetBar0();
    189         foo.wideSetBar2i(0,sum);
    190         sum += foo.wideGetBar0();
    191         foo.wideSetBar3i(0,0,sum);
    192         sum += foo.wideGetBar0();
    193         foo.wideSetBar4i(0,0,0,sum);
    194         sum += foo.wideGetBar0();
    195         foo.wideSetBar5i(0,0,0,0,sum);
    196         long result2 = foo.wideGetBar0();
    197         long expected2 = 1234L << 9;
    198         if (result1 == expected1 && result2 == expected2) {
    199             System.out.println("wideGetterSetterTest passes");
    200         }
    201         else {
    202             System.out.println("wideGetterSetterTest fails: " +
    203                                 "result1: " + result1 + " (expecting " + expected1 + "), " +
    204                                 "result2: " + result2 + " (expecting " + expected2 + ")");
    205         }
    206     }
    207 
    208     static void identityTest() {
    209         Foo foo = new Foo();
    210         int i = 1;
    211         i += foo.ident0(i);
    212         i += foo.ident1(0,i);
    213         i += foo.ident2(0,0,i);
    214         i += foo.ident3(0,0,0,i);
    215         i += foo.ident4(0,0,0,0,i);
    216         i += foo.ident5(0,0,0,0,0,i);
    217         if (i == 64) {
    218             System.out.println("identityTest passes");
    219         }
    220         else {
    221             System.out.println("identityTest fails: " + i +
    222                                " (expecting 64)");
    223         }
    224     }
    225 
    226     static void getterSetterTest() {
    227         Foo foo = new Foo();
    228         int sum = foo.getBar0();
    229         sum += foo.getBar1(1);
    230         foo.setBar1(sum);
    231         sum += foo.getBar2(1,2);
    232         foo.setBar2(0,sum);
    233         sum += foo.getBar3(1,2,3);
    234         foo.setBar3(0,0,sum);
    235         sum += foo.getBar4(1,2,3,4);
    236         foo.setBar4(0,0,0,sum);
    237         sum += foo.getBar5(1,2,3,4,5);
    238         foo.setBar5(0,0,0,0,sum);
    239         Foo nullFoo = null;
    240         try {
    241             sum += Foo.barBar(nullFoo);
    242         } catch(NullPointerException npe) {
    243             sum += 404;
    244         }
    245         foo.setBar1(sum);
    246         if (foo.getBar0() == 39892) {
    247             System.out.println("getterSetterTest passes");
    248         }
    249         else {
    250             System.out.println("getterSetterTest fails: " + foo.getBar0() +
    251                                " (expecting 39892)");
    252         }
    253     }
    254 
    255     static void setterTestWithReturnArgIgnoreReturn() {
    256         Foo foo = new Foo();
    257         int sum = foo.getBar0();
    258         sum += foo.getBar0();
    259         foo.setBar1ReturnThis(sum);
    260         sum += foo.getBar0();
    261         foo.setBar2ReturnThis(1,sum);
    262         sum += foo.getBar0();
    263         foo.setBar3ReturnThis(1,2,sum);
    264         sum += foo.getBar0();
    265         foo.setBar4ReturnThis(1,2,3,sum);
    266         sum += foo.getBar0();
    267         foo.setBar5ReturnThis(1,2,3,4,sum);
    268         sum += foo.getBar0();
    269         foo.setBar1ReturnBarArg(sum);
    270         sum += foo.getBar0();
    271         foo.setBar2ReturnBarArg(1,sum);
    272         sum += foo.getBar0();
    273         foo.setBar3ReturnBarArg(1,2,sum);
    274         sum += foo.getBar0();
    275         foo.setBar4ReturnBarArg(1,2,3,sum);
    276         sum += foo.getBar0();
    277         foo.setBar5ReturnBarArg(1,2,3,4,sum);
    278         sum += foo.getBar0();
    279         foo.setBar2ReturnDummyArg1(1,sum);
    280         sum += foo.getBar0();
    281         foo.setBar3ReturnDummyArg2(1,2,sum);
    282         sum += foo.getBar0();
    283         foo.setBar4ReturnDummyArg3(1,2,3,sum);
    284         sum += foo.getBar0();
    285         foo.setBar5ReturnDummyArg4(1,2,3,4,sum);
    286         sum += foo.getBar0();
    287         Foo nullFoo = Foo.getNullFoo();
    288         try {
    289             nullFoo.setBar1ReturnThis(sum);
    290         } catch(NullPointerException npe) {
    291             sum += 404;
    292         }
    293         try {
    294             nullFoo.setBar2ReturnThis(1, sum);
    295         } catch(NullPointerException npe) {
    296             sum += 2 * 404;
    297         }
    298         try {
    299             nullFoo.setBar3ReturnThis(1, 2, sum);
    300         } catch(NullPointerException npe) {
    301             sum += 3 * 404;
    302         }
    303         try {
    304             nullFoo.setBar4ReturnThis(1, 2, 3, sum);
    305         } catch(NullPointerException npe) {
    306             sum += 4 * 404;
    307         }
    308         try {
    309             nullFoo.setBar5ReturnThis(1, 2, 3, 4, sum);
    310         } catch(NullPointerException npe) {
    311             sum += 5 * 404;
    312         }
    313         try {
    314             nullFoo.setBar1ReturnBarArg(sum);
    315         } catch(NullPointerException npe) {
    316             sum += 6 * 404;
    317         }
    318         try {
    319             nullFoo.setBar2ReturnBarArg(1, sum);
    320         } catch(NullPointerException npe) {
    321             sum += 7 * 404;
    322         }
    323         try {
    324             nullFoo.setBar3ReturnBarArg(1, 2, sum);
    325         } catch(NullPointerException npe) {
    326             sum += 8 * 404;
    327         }
    328         try {
    329             nullFoo.setBar4ReturnBarArg(1, 2, 3, sum);
    330         } catch(NullPointerException npe) {
    331             sum += 9 * 404;
    332         }
    333         try {
    334             nullFoo.setBar5ReturnBarArg(1, 2, 3, 4, sum);
    335         } catch(NullPointerException npe) {
    336             sum += 10 * 404;
    337         }
    338         try {
    339             nullFoo.setBar2ReturnDummyArg1(1, sum);
    340         } catch(NullPointerException npe) {
    341             sum += 11 * 404;
    342         }
    343         try {
    344             nullFoo.setBar3ReturnDummyArg2(1, 2, sum);
    345         } catch(NullPointerException npe) {
    346             sum += 12 * 404;
    347         }
    348         try {
    349             nullFoo.setBar4ReturnDummyArg3(1, 2, 3, sum);
    350         } catch(NullPointerException npe) {
    351             sum += 13 * 404;
    352         }
    353         try {
    354             nullFoo.setBar5ReturnDummyArg4(1, 2, 3, 4, sum);
    355         } catch(NullPointerException npe) {
    356             sum += 14 * 404;
    357         }
    358         int expected = (1234 << 15) + 404 * (15 * 14 / 2);
    359         if (sum == expected) {
    360             System.out.println("setterTestWithReturnArgIgnoreReturn passes");
    361         }
    362         else {
    363             System.out.println("setterTestWithReturnArgIgnoreReturn fails: " + sum +
    364                                " (expecting " + expected + ")");
    365         }
    366     }
    367 
    368     static void setterTestWithReturnArgUseReturn() {
    369         Foo foo = new Foo();
    370         int sum = foo.getBar0();
    371         int sumDummy = 0;
    372         sum += foo.getBar0();
    373         Foo foo2 = foo.setBar1ReturnThis(sum);
    374         sum += foo2.getBar0();
    375         foo = foo2.setBar2ReturnThis(1,sum);
    376         sum += foo.getBar0();
    377         foo2 = foo.setBar3ReturnThis(1,2,sum);
    378         sum += foo2.getBar0();
    379         foo = foo2.setBar4ReturnThis(1,2,3,sum);
    380         sum += foo.getBar0();
    381         foo = foo.setBar5ReturnThis(1,2,3,4,sum);
    382         sum += foo.getBar0();
    383         sum += foo.setBar1ReturnBarArg(sum);
    384         sum += foo.getBar0();
    385         sum += foo.setBar2ReturnBarArg(1,sum);
    386         sum += foo.getBar0();
    387         sum += foo.setBar3ReturnBarArg(1,2,sum);
    388         sum += foo.getBar0();
    389         sum += foo.setBar4ReturnBarArg(1,2,3,sum);
    390         sum += foo.getBar0();
    391         sum += foo.setBar5ReturnBarArg(1,2,3,4,sum);
    392         sum += foo.getBar0();
    393         sumDummy += foo.setBar2ReturnDummyArg1(1,sum);
    394         sum += foo.getBar0();
    395         sumDummy += foo.setBar3ReturnDummyArg2(1,2,sum);
    396         sum += foo.getBar0();
    397         sumDummy += foo.setBar4ReturnDummyArg3(1,2,3,sum);
    398         sum += foo.getBar0();
    399         sumDummy += foo.setBar5ReturnDummyArg4(1,2,3,4,sum);
    400         sum += foo.getBar0();
    401         Foo nullFoo = Foo.getNullFoo();
    402         try {
    403             foo = nullFoo.setBar1ReturnThis(sum);
    404         } catch(NullPointerException npe) {
    405             sum += 404;
    406         }
    407         try {
    408             foo = nullFoo.setBar2ReturnThis(1, sum);
    409         } catch(NullPointerException npe) {
    410             sum += 2 * 404;
    411         }
    412         try {
    413             foo = nullFoo.setBar3ReturnThis(1, 2, sum);
    414         } catch(NullPointerException npe) {
    415             sum += 3 * 404;
    416         }
    417         try {
    418             foo = nullFoo.setBar4ReturnThis(1, 2, 3, sum);
    419         } catch(NullPointerException npe) {
    420             sum += 4 * 404;
    421         }
    422         try {
    423             foo = nullFoo.setBar5ReturnThis(1, 2, 3, 4, sum);
    424         } catch(NullPointerException npe) {
    425             sum += 5 * 404;
    426         }
    427         try {
    428             sum += nullFoo.setBar1ReturnBarArg(sum);
    429         } catch(NullPointerException npe) {
    430             sum += 6 * 404;
    431         }
    432         try {
    433             sum += nullFoo.setBar2ReturnBarArg(1, sum);
    434         } catch(NullPointerException npe) {
    435             sum += 7 * 404;
    436         }
    437         try {
    438             sum += nullFoo.setBar3ReturnBarArg(1, 2, sum);
    439         } catch(NullPointerException npe) {
    440             sum += 8 * 404;
    441         }
    442         try {
    443             sum += nullFoo.setBar4ReturnBarArg(1, 2, 3, sum);
    444         } catch(NullPointerException npe) {
    445             sum += 9 * 404;
    446         }
    447         try {
    448             sum += nullFoo.setBar5ReturnBarArg(1, 2, 3, 4, sum);
    449         } catch(NullPointerException npe) {
    450             sum += 10 * 404;
    451         }
    452         try {
    453             sumDummy += nullFoo.setBar2ReturnDummyArg1(1, sum);
    454         } catch(NullPointerException npe) {
    455             sum += 11 * 404;
    456         }
    457         try {
    458             sumDummy += nullFoo.setBar3ReturnDummyArg2(1, 2, sum);
    459         } catch(NullPointerException npe) {
    460             sum += 12 * 404;
    461         }
    462         try {
    463             sumDummy += nullFoo.setBar4ReturnDummyArg3(1, 2, 3, sum);
    464         } catch(NullPointerException npe) {
    465             sum += 13 * 404;
    466         }
    467         try {
    468             sumDummy += nullFoo.setBar5ReturnDummyArg4(1, 2, 3, 4, sum);
    469         } catch(NullPointerException npe) {
    470             sum += 14 * 404;
    471         }
    472         int expected = (1234 << 10) * 3 * 3 * 3 * 3 * 3 + 404 * (15 * 14 / 2);
    473         int expectedDummy = 5 * 4 / 2;
    474         if (sum == expected && sumDummy == expectedDummy) {
    475             System.out.println("setterTestWithReturnArgUseReturn passes");
    476         }
    477         else {
    478             System.out.println("setterTestWithReturnArgUseReturn fails: " + sum +
    479                                " (expecting " + expected + "), sumDummy = " + sumDummy +
    480                                "(expecting " + expectedDummy + ")");
    481         }
    482     }
    483 
    484     static void wideSetterTestWithReturnArgIgnoreReturn() {
    485         Foo foo = new Foo();
    486         long sum = foo.wideGetBar0();
    487         sum += foo.wideGetBar0();
    488         foo.wideSetBar1ReturnThis(sum);
    489         sum += foo.wideGetBar0();
    490         foo.wideSetBar2ReturnThis(1,sum);
    491         sum += foo.wideGetBar0();
    492         foo.wideSetBar3ReturnThis(1,2,sum);
    493         sum += foo.wideGetBar0();
    494         foo.wideSetBar4ReturnThis(1,2,3,sum);
    495         sum += foo.wideGetBar0();
    496         foo.wideSetBar5ReturnThis(1,2,3,4,sum);
    497         sum += foo.wideGetBar0();
    498         foo.wideSetBar1ReturnBarArg(sum);
    499         sum += foo.wideGetBar0();
    500         foo.wideSetBar2ReturnBarArg(1,sum);
    501         sum += foo.wideGetBar0();
    502         foo.wideSetBar3ReturnBarArg(1,2,sum);
    503         sum += foo.wideGetBar0();
    504         foo.wideSetBar4ReturnBarArg(1,2,3,sum);
    505         sum += foo.wideGetBar0();
    506         foo.wideSetBar5ReturnBarArg(1,2,3,4,sum);
    507         sum += foo.wideGetBar0();
    508         foo.wideSetBar2iReturnBarArg(1,sum);
    509         sum += foo.wideGetBar0();
    510         foo.wideSetBar3iReturnBarArg(1,2,sum);
    511         sum += foo.wideGetBar0();
    512         foo.wideSetBar4iReturnBarArg(1,2,3,sum);
    513         sum += foo.wideGetBar0();
    514         foo.wideSetBar5iReturnBarArg(1,2,3,4,sum);
    515         sum += foo.wideGetBar0();
    516         foo.wideSetBar2ReturnDummyArg1(1,sum);
    517         sum += foo.wideGetBar0();
    518         foo.wideSetBar3ReturnDummyArg2(1,2,sum);
    519         sum += foo.wideGetBar0();
    520         foo.wideSetBar4ReturnDummyArg3(1,2,3,sum);
    521         sum += foo.wideGetBar0();
    522         foo.wideSetBar5ReturnDummyArg4(1,2,3,4,sum);
    523         sum += foo.wideGetBar0();
    524         foo.wideSetBar2iReturnDummyArg1(1,sum);
    525         sum += foo.wideGetBar0();
    526         foo.wideSetBar3iReturnDummyArg2(1,2,sum);
    527         sum += foo.wideGetBar0();
    528         foo.wideSetBar4iReturnDummyArg3(1,2,3,sum);
    529         sum += foo.wideGetBar0();
    530         foo.wideSetBar5iReturnDummyArg4(1,2,3,4,sum);
    531         sum += foo.wideGetBar0();
    532         Foo nullFoo = Foo.getNullFoo();
    533         try {
    534             nullFoo.wideSetBar1ReturnThis(sum);
    535         } catch(NullPointerException npe) {
    536             sum += 404;
    537         }
    538         try {
    539             nullFoo.wideSetBar2ReturnThis(1, sum);
    540         } catch(NullPointerException npe) {
    541             sum += 2 * 404;
    542         }
    543         try {
    544             nullFoo.wideSetBar3ReturnThis(1, 2, sum);
    545         } catch(NullPointerException npe) {
    546             sum += 3 * 404;
    547         }
    548         try {
    549             nullFoo.wideSetBar4ReturnThis(1, 2, 3, sum);
    550         } catch(NullPointerException npe) {
    551             sum += 4 * 404;
    552         }
    553         try {
    554             nullFoo.wideSetBar5ReturnThis(1, 2, 3, 4, sum);
    555         } catch(NullPointerException npe) {
    556             sum += 5 * 404;
    557         }
    558         try {
    559             nullFoo.wideSetBar1ReturnBarArg(sum);
    560         } catch(NullPointerException npe) {
    561             sum += 6 * 404;
    562         }
    563         try {
    564             nullFoo.wideSetBar2ReturnBarArg(1, sum);
    565         } catch(NullPointerException npe) {
    566             sum += 7 * 404;
    567         }
    568         try {
    569             nullFoo.wideSetBar3ReturnBarArg(1, 2, sum);
    570         } catch(NullPointerException npe) {
    571             sum += 8 * 404;
    572         }
    573         try {
    574             nullFoo.wideSetBar4ReturnBarArg(1, 2, 3, sum);
    575         } catch(NullPointerException npe) {
    576             sum += 9 * 404;
    577         }
    578         try {
    579             nullFoo.wideSetBar5ReturnBarArg(1, 2, 3, 4, sum);
    580         } catch(NullPointerException npe) {
    581             sum += 10 * 404;
    582         }
    583         try {
    584             nullFoo.wideSetBar2iReturnBarArg(1, sum);
    585         } catch(NullPointerException npe) {
    586             sum += 11 * 404;
    587         }
    588         try {
    589             nullFoo.wideSetBar3iReturnBarArg(1, 2, sum);
    590         } catch(NullPointerException npe) {
    591             sum += 12 * 404;
    592         }
    593         try {
    594             nullFoo.wideSetBar4iReturnBarArg(1, 2, 3, sum);
    595         } catch(NullPointerException npe) {
    596             sum += 13 * 404;
    597         }
    598         try {
    599             nullFoo.wideSetBar5iReturnBarArg(1, 2, 3, 4, sum);
    600         } catch(NullPointerException npe) {
    601             sum += 14 * 404;
    602         }
    603         try {
    604             nullFoo.wideSetBar2ReturnDummyArg1(1, sum);
    605         } catch(NullPointerException npe) {
    606             sum += 15 * 404;
    607         }
    608         try {
    609             nullFoo.wideSetBar3ReturnDummyArg2(1, 2, sum);
    610         } catch(NullPointerException npe) {
    611             sum += 16 * 404;
    612         }
    613         try {
    614             nullFoo.wideSetBar4ReturnDummyArg3(1, 2, 3, sum);
    615         } catch(NullPointerException npe) {
    616             sum += 17 * 404;
    617         }
    618         try {
    619             nullFoo.wideSetBar5ReturnDummyArg4(1, 2, 3, 4, sum);
    620         } catch(NullPointerException npe) {
    621             sum += 18 * 404;
    622         }
    623         try {
    624             nullFoo.wideSetBar2iReturnDummyArg1(1, sum);
    625         } catch(NullPointerException npe) {
    626             sum += 19 * 404;
    627         }
    628         try {
    629             nullFoo.wideSetBar3iReturnDummyArg2(1, 2, sum);
    630         } catch(NullPointerException npe) {
    631             sum += 20 * 404;
    632         }
    633         try {
    634             nullFoo.wideSetBar4iReturnDummyArg3(1, 2, 3, sum);
    635         } catch(NullPointerException npe) {
    636             sum += 21 * 404;
    637         }
    638         try {
    639             nullFoo.wideSetBar5iReturnDummyArg4(1, 2, 3, 4, sum);
    640         } catch(NullPointerException npe) {
    641             sum += 22 * 404;
    642         }
    643         long expected = (1234L << 23) + 404 * (23 * 22 / 2);
    644         if (sum == expected) {
    645             System.out.println("wideSetterTestWithReturnArgIgnoreReturn passes");
    646         }
    647         else {
    648             System.out.println("wideSetterTestWithReturnArgIgnoreReturn fails: " + sum +
    649                                " (expecting " + expected + ")");
    650         }
    651     }
    652 
    653     static void wideSetterTestWithReturnArgUseReturn() {
    654         Foo foo = new Foo();
    655         long sum = foo.wideGetBar0();
    656         long sumDummy = 0;
    657         sum += foo.wideGetBar0();
    658         Foo foo2 = foo.wideSetBar1ReturnThis(sum);
    659         sum += foo2.wideGetBar0();
    660         foo = foo2.wideSetBar2ReturnThis(1,sum);
    661         sum += foo.wideGetBar0();
    662         foo2 = foo.wideSetBar3ReturnThis(1,2,sum);
    663         sum += foo2.wideGetBar0();
    664         foo = foo2.wideSetBar4ReturnThis(1,2,3,sum);
    665         sum += foo.wideGetBar0();
    666         foo = foo.wideSetBar5ReturnThis(1,2,3,4,sum);
    667         sum += foo.wideGetBar0();
    668         sum += foo.wideSetBar1ReturnBarArg(sum);
    669         sum += foo.wideGetBar0();
    670         sum += foo.wideSetBar2ReturnBarArg(1,sum);
    671         sum += foo.wideGetBar0();
    672         sum += foo.wideSetBar3ReturnBarArg(1,2,sum);
    673         sum += foo.wideGetBar0();
    674         sum += foo.wideSetBar4ReturnBarArg(1,2,3,sum);
    675         sum += foo.wideGetBar0();
    676         sum += foo.wideSetBar5ReturnBarArg(1,2,3,4,sum);
    677         sum += foo.wideGetBar0();
    678         sum += foo.wideSetBar2iReturnBarArg(1,sum);
    679         sum += foo.wideGetBar0();
    680         sum += foo.wideSetBar3iReturnBarArg(1,2,sum);
    681         sum += foo.wideGetBar0();
    682         sum += foo.wideSetBar4iReturnBarArg(1,2,3,sum);
    683         sum += foo.wideGetBar0();
    684         sum += foo.wideSetBar5iReturnBarArg(1,2,3,4,sum);
    685         sum += foo.wideGetBar0();
    686         sumDummy += foo.wideSetBar2ReturnDummyArg1(1,sum);
    687         sum += foo.wideGetBar0();
    688         sumDummy += foo.wideSetBar3ReturnDummyArg2(1,2,sum);
    689         sum += foo.wideGetBar0();
    690         sumDummy += foo.wideSetBar4ReturnDummyArg3(1,2,3,sum);
    691         sum += foo.wideGetBar0();
    692         sumDummy += foo.wideSetBar5ReturnDummyArg4(1,2,3,4,sum);
    693         sum += foo.wideGetBar0();
    694         sumDummy += foo.wideSetBar2iReturnDummyArg1(1,sum);
    695         sum += foo.wideGetBar0();
    696         sumDummy += foo.wideSetBar3iReturnDummyArg2(1,2,sum);
    697         sum += foo.wideGetBar0();
    698         sumDummy += foo.wideSetBar4iReturnDummyArg3(1,2,3,sum);
    699         sum += foo.wideGetBar0();
    700         sumDummy += foo.wideSetBar5iReturnDummyArg4(1,2,3,4,sum);
    701         sum += foo.wideGetBar0();
    702         Foo nullFoo = Foo.getNullFoo();
    703         try {
    704             foo = nullFoo.wideSetBar1ReturnThis(sum);
    705         } catch(NullPointerException npe) {
    706             sum += 404;
    707         }
    708         try {
    709             foo = nullFoo.wideSetBar2ReturnThis(1, sum);
    710         } catch(NullPointerException npe) {
    711             sum += 2 * 404;
    712         }
    713         try {
    714             foo = nullFoo.wideSetBar3ReturnThis(1, 2, sum);
    715         } catch(NullPointerException npe) {
    716             sum += 3 * 404;
    717         }
    718         try {
    719             foo = nullFoo.wideSetBar4ReturnThis(1, 2, 3, sum);
    720         } catch(NullPointerException npe) {
    721             sum += 4 * 404;
    722         }
    723         try {
    724             foo = nullFoo.wideSetBar5ReturnThis(1, 2, 3, 4, sum);
    725         } catch(NullPointerException npe) {
    726             sum += 5 * 404;
    727         }
    728         try {
    729             sum += nullFoo.wideSetBar1ReturnBarArg(sum);
    730         } catch(NullPointerException npe) {
    731             sum += 6 * 404;
    732         }
    733         try {
    734             sum += nullFoo.wideSetBar2ReturnBarArg(1, sum);
    735         } catch(NullPointerException npe) {
    736             sum += 7 * 404;
    737         }
    738         try {
    739             sum += nullFoo.wideSetBar3ReturnBarArg(1, 2, sum);
    740         } catch(NullPointerException npe) {
    741             sum += 8 * 404;
    742         }
    743         try {
    744             sum += nullFoo.wideSetBar4ReturnBarArg(1, 2, 3, sum);
    745         } catch(NullPointerException npe) {
    746             sum += 9 * 404;
    747         }
    748         try {
    749             sum += nullFoo.wideSetBar5ReturnBarArg(1, 2, 3, 4, sum);
    750         } catch(NullPointerException npe) {
    751             sum += 10 * 404;
    752         }
    753         try {
    754             sum += nullFoo.wideSetBar2iReturnBarArg(1, sum);
    755         } catch(NullPointerException npe) {
    756             sum += 11 * 404;
    757         }
    758         try {
    759             sum += nullFoo.wideSetBar3iReturnBarArg(1, 2, sum);
    760         } catch(NullPointerException npe) {
    761             sum += 12 * 404;
    762         }
    763         try {
    764             sum += nullFoo.wideSetBar4iReturnBarArg(1, 2, 3, sum);
    765         } catch(NullPointerException npe) {
    766             sum += 13 * 404;
    767         }
    768         try {
    769             sum += nullFoo.wideSetBar5iReturnBarArg(1, 2, 3, 4, sum);
    770         } catch(NullPointerException npe) {
    771             sum += 14 * 404;
    772         }
    773         try {
    774             sumDummy += nullFoo.wideSetBar2ReturnDummyArg1(1, sum);
    775         } catch(NullPointerException npe) {
    776             sum += 15 * 404;
    777         }
    778         try {
    779             sumDummy += nullFoo.wideSetBar3ReturnDummyArg2(1, 2, sum);
    780         } catch(NullPointerException npe) {
    781             sum += 16 * 404;
    782         }
    783         try {
    784             sumDummy += nullFoo.wideSetBar4ReturnDummyArg3(1, 2, 3, sum);
    785         } catch(NullPointerException npe) {
    786             sum += 17 * 404;
    787         }
    788         try {
    789             sumDummy += nullFoo.wideSetBar5ReturnDummyArg4(1, 2, 3, 4, sum);
    790         } catch(NullPointerException npe) {
    791             sum += 18 * 404;
    792         }
    793         try {
    794             sumDummy += nullFoo.wideSetBar2iReturnDummyArg1(1, sum);
    795         } catch(NullPointerException npe) {
    796             sum += 19 * 404;
    797         }
    798         try {
    799             sumDummy += nullFoo.wideSetBar3iReturnDummyArg2(1, 2, sum);
    800         } catch(NullPointerException npe) {
    801             sum += 20 * 404;
    802         }
    803         try {
    804             sumDummy += nullFoo.wideSetBar4iReturnDummyArg3(1, 2, 3, sum);
    805         } catch(NullPointerException npe) {
    806             sum += 21 * 404;
    807         }
    808         try {
    809             sumDummy += nullFoo.wideSetBar5iReturnDummyArg4(1, 2, 3, 4, sum);
    810         } catch(NullPointerException npe) {
    811             sum += 22 * 404;
    812         }
    813         long expected = (1234L << 14) * 3 * 3 * 3 * 3 * 3 * 3 * 3 * 3 * 3  + 404 * (23 * 22 / 2);
    814         long expectedDummy = 2 * (5 * 4 / 2);
    815         if (sum == expected && sumDummy == expectedDummy) {
    816             System.out.println("wideSetterTestWithReturnArgUseReturn passes");
    817         }
    818         else {
    819             System.out.println("wideSetterTestWithReturnArgUseReturn fails: " + sum +
    820                                " (expecting " + expected + "), sumDummy = " + sumDummy +
    821                                "(expecting " + expectedDummy + ")");
    822         }
    823     }
    824 
    825     static void mulBy1Test() {
    826         long res;
    827         long j = 1;
    828         res = 1 * j + j;
    829         if (res == 2L) {
    830             System.out.println("mulBy1Test passes");
    831         }
    832         else {
    833             System.out.println("mulBy1Test fails: " + res +
    834                                " (expecting 2)");
    835         }
    836     }
    837 
    838     static void constantPropagationTest() {
    839         int i = 1;
    840         int t = 1;
    841         float z = 1F;
    842         long h = 1L;
    843         int g[] = new int[1];
    844         int w = 1;
    845         long f = 0;
    846 
    847         for (int a = 1; a < 100; a++) {
    848             try {
    849                 i = (int)(z);
    850                 h >>= (0 % t);
    851             }
    852             finally {
    853                 w = (int)(2 * (f * 6));
    854             }
    855         }
    856 
    857         if (w == 0 && h == 1 && g[0] == 0) {
    858             System.out.println("constantPropagationTest passes");
    859         } else {
    860             System.out.println("constantPropagationTest fails");
    861         }
    862     }
    863 
    864     static void b2296099Test() throws Exception {
    865        int x = -1190771042;
    866        int dist = 360530809;
    867        int xl = -1190771042;
    868        int distl = 360530809;
    869 
    870        for (int i = 0; i < 100000; i++) {
    871            int b = rotateLeft(x, dist);
    872            if (b != 1030884493)
    873                throw new RuntimeException("Unexpected value: " + b
    874                        + " after " + i + " iterations");
    875        }
    876        for (int i = 0; i < 100000; i++) {
    877            long bl = rotateLeft(xl, distl);
    878            if (bl != 1030884493)
    879                throw new RuntimeException("Unexpected value: " + bl
    880                        + " after " + i + " iterations");
    881        }
    882        System.out.println("b2296099 passes");
    883    }
    884 
    885     static int rotateLeft(int i, int distance) {
    886         return ((i << distance) | (i >>> (-distance)));
    887     }
    888 
    889     static void b2302318Test() {
    890         Runtime.getRuntime().gc();
    891 
    892         SpinThread slow = new SpinThread(Thread.MIN_PRIORITY);
    893         SpinThread fast1 = new SpinThread(Thread.NORM_PRIORITY);
    894         SpinThread fast2 = new SpinThread(Thread.MAX_PRIORITY);
    895 
    896         slow.setDaemon(true);
    897         fast1.setDaemon(true);
    898         fast2.setDaemon(true);
    899 
    900         fast2.start();
    901         slow.start();
    902         fast1.start();
    903         try {
    904             Thread.sleep(3000);
    905         } catch (InterruptedException ie) {/*ignore */}
    906         Runtime.getRuntime().gc();
    907 
    908         System.out.println("b2302318 passes");
    909     }
    910 
    911     static void b2487514Test() {
    912         PriorityBlockingQueue q = new PriorityBlockingQueue(10);
    913         int catchCount = 0;
    914 
    915         q.offer(new Integer(0));
    916         /*
    917          * Warm up the code cache to have toArray() compiled. The key here is
    918          * to pass a compatible type so that there are no exceptions when
    919          * executing the method body (ie the APUT_OBJECT bytecode).
    920          */
    921         for (int i = 0; i < 1000; i++) {
    922             Integer[] ints = (Integer[]) q.toArray(new Integer[5]);
    923         }
    924 
    925         /* Now pass an incompatible type which is guaranteed to throw */
    926         for (int i = 0; i < 1000; i++) {
    927             try {
    928                 Object[] obj = q.toArray(new String[5]);
    929             }
    930             catch (ArrayStoreException  success) {
    931                 catchCount++;
    932             }
    933         }
    934 
    935         if (catchCount == 1000) {
    936             System.out.println("b2487514 passes");
    937         }
    938         else {
    939             System.out.println("b2487514 fails: catchCount is " + catchCount +
    940                                " (expecting 1000)");
    941         }
    942     }
    943 
    944     static void b5884080Test() {
    945         int vA = 1;
    946 
    947         int l = 0;
    948         do
    949         {
    950             int k = 0;
    951             do
    952                 vA += 1;
    953             while (++k < 100);
    954         } while (++l < 1000);
    955         if (vA == 100001) {
    956             System.out.println("b5884080 passes");
    957         }
    958         else {
    959             System.out.println("b5884080 fails: vA is " + vA +
    960                                " (expecting 100001)");
    961         }
    962     }
    963 
    964     static void b13679511Test() {
    965        System.out.println("b13679511Test starting");
    966        int[] nn = { 1, 2, 3, 4 };
    967        for (int i : nn) {
    968            System.out.println(i);
    969        }
    970        int len = nn.length;
    971        System.out.println(nn.length);
    972        System.out.println(nn.length % 3);
    973        System.out.println(len % 3);
    974        System.out.println(4 % 3);
    975        System.out.println((nn.length % 3) != 1);
    976        System.out.println("b13679511Test finishing");
    977     }
    978 
    979     static void b16177324TestWrapper() {
    980       try {
    981         b16177324Test();
    982       } catch (NullPointerException expected) {
    983         System.out.println("b16177324TestWrapper caught NPE as expected.");
    984       }
    985     }
    986 
    987     static void b16177324Test() {
    988       // We need this to be a single BasicBlock. Putting it into a try block would cause it to
    989       // be split at each insn that can throw. So we do the try-catch in a wrapper function.
    990       int v1 = B16177324Values.values[0];        // Null-check on array element access.
    991       int v2 = B16177324ValuesKiller.values[0];  // clinit<>() sets B16177324Values.values to null.
    992       int v3 = B16177324Values.values[0];        // Should throw NPE.
    993       // If the null-check for v3 was eliminated we should fail with SIGSEGV.
    994       System.out.println("Unexpectedly retrieved all values: " + v1 + ", " + v2 + ", " + v3);
    995     }
    996 
    997     static void b16230771TestWrapper() {
    998       try {
    999         b16230771Test();
   1000       } catch (NullPointerException expected) {
   1001         System.out.println("b16230771TestWrapper caught NPE as expected.");
   1002       }
   1003     }
   1004 
   1005     static void b16230771Test() {
   1006       Integer[] array = { null };
   1007       for (Integer i : array) {
   1008         try {
   1009           int value = i;  // Null check on unboxing should fail.
   1010           System.out.println("Unexpectedly retrieved value " + value);
   1011         } catch (NullPointerException e) {
   1012           int value = i;  // Null check on unboxing should fail.
   1013           // The bug was a missing null check, so this would actually cause SIGSEGV.
   1014           System.out.println("Unexpectedly retrieved value " + value + " in NPE catch handler");
   1015         }
   1016       }
   1017     }
   1018 
   1019     static double TooManyArgs(
   1020           long l00,
   1021           long l01,
   1022           long l02,
   1023           long l03,
   1024           long l04,
   1025           long l05,
   1026           long l06,
   1027           long l07,
   1028           long l08,
   1029           long l09,
   1030           long l10,
   1031           long l11,
   1032           long l12,
   1033           long l13,
   1034           long l14,
   1035           long l15,
   1036           long l16,
   1037           long l17,
   1038           long l18,
   1039           long l19,
   1040           long l20,
   1041           long l21,
   1042           long l22,
   1043           long l23,
   1044           long l24,
   1045           long l25,
   1046           long l26,
   1047           long l27,
   1048           long l28,
   1049           long l29,
   1050           long l30,
   1051           long l31,
   1052           long l32,
   1053           long l33,
   1054           long l34,
   1055           long l35,
   1056           long l36,
   1057           long l37,
   1058           long l38,
   1059           long l39,
   1060           long l40,
   1061           long l41,
   1062           long l42,
   1063           long l43,
   1064           long l44,
   1065           long l45,
   1066           long l46,
   1067           long l47,
   1068           long l48,
   1069           long l49,
   1070           long ll00,
   1071           long ll01,
   1072           long ll02,
   1073           long ll03,
   1074           long ll04,
   1075           long ll05,
   1076           long ll06,
   1077           long ll07,
   1078           long ll08,
   1079           long ll09,
   1080           long ll10,
   1081           long ll11,
   1082           long ll12,
   1083           long ll13,
   1084           long ll14,
   1085           long ll15,
   1086           long ll16,
   1087           long ll17,
   1088           long ll18,
   1089           long ll19,
   1090           double d01,
   1091           double d02,
   1092           double d03,
   1093           double d04,
   1094           double d05,
   1095           double d06,
   1096           double d07,
   1097           double d08,
   1098           double d09,
   1099           double d10,
   1100           double d11,
   1101           double d12,
   1102           double d13,
   1103           double d14,
   1104           double d15,
   1105           double d16,
   1106           double d17,
   1107           double d18,
   1108           double d19,
   1109           double d20,
   1110           double d21,
   1111           double d22,
   1112           double d23,
   1113           double d24,
   1114           double d25,
   1115           double d26,
   1116           double d27,
   1117           double d28,
   1118           double d29,
   1119           double d30,
   1120           double d31,
   1121           double d32,
   1122           double d33,
   1123           double d34,
   1124           double d35,
   1125           double d36,
   1126           double d37,
   1127           double d38,
   1128           double d39,
   1129           double d40,
   1130           double d41,
   1131           double d42,
   1132           double d43,
   1133           double d44,
   1134           double d45,
   1135           double d46,
   1136           double d47,
   1137           double d48,
   1138           double d49) {
   1139         double res = 0.0;
   1140         double t01 = d49;
   1141         double t02 = 02.0 + t01;
   1142         double t03 = 03.0 + t02;
   1143         double t04 = 04.0 + t03;
   1144         double t05 = 05.0 + t04;
   1145         double t06 = 06.0 + t05;
   1146         double t07 = 07.0 + t06;
   1147         double t08 = 08.0 + t07;
   1148         double t09 = 09.0 + t08;
   1149         double t10 = 10.0 + t09;
   1150         double t11 = 11.0 + t10;
   1151         double t12 = 12.0 + t11;
   1152         double t13 = 13.0 + t12;
   1153         double t14 = 14.0 + t13;
   1154         double t15 = 15.0 + t14;
   1155         double t16 = 16.0 + t15;
   1156         double t17 = 17.0 + t16;
   1157         double t18 = 18.0 + t17;
   1158         double t19 = 19.0 + t18;
   1159         double t20 = 20.0 + t19;
   1160         double t21 = 21.0 + t20;
   1161         double t22 = 22.0 + t21;
   1162         double t23 = 23.0 + t22;
   1163         double t24 = 24.0 + t23;
   1164         double t25 = 25.0 + t24;
   1165         double t26 = 26.0 + t25;
   1166         double t27 = 27.0 + t26;
   1167         double t28 = 28.0 + t27;
   1168         double t29 = 29.0 + t28;
   1169         double t30 = 30.0 + t29;
   1170         double t31 = 31.0 + t30;
   1171         double t32 = 32.0 + t31;
   1172         double t33 = 33.0 + t32;
   1173         double t34 = 34.0 + t33;
   1174         double t35 = 35.0 + t34;
   1175         double t36 = 36.0 + t35;
   1176         double t37 = 37.0 + t36;
   1177         double t38 = 38.0 + t37;
   1178         double t39 = 39.0 + t38;
   1179         double t40 = 40.0 + t39;
   1180         double tt02 = 02.0 + t40;
   1181         double tt03 = 03.0 + tt02;
   1182         double tt04 = 04.0 + tt03;
   1183         double tt05 = 05.0 + tt04;
   1184         double tt06 = 06.0 + tt05;
   1185         double tt07 = 07.0 + tt06;
   1186         double tt08 = 08.0 + tt07;
   1187         double tt09 = 09.0 + tt08;
   1188         double tt10 = 10.0 + tt09;
   1189         double tt11 = 11.0 + tt10;
   1190         double tt12 = 12.0 + tt11;
   1191         double tt13 = 13.0 + tt12;
   1192         double tt14 = 14.0 + tt13;
   1193         double tt15 = 15.0 + tt14;
   1194         double tt16 = 16.0 + tt15;
   1195         double tt17 = 17.0 + tt16;
   1196         double tt18 = 18.0 + tt17;
   1197         double tt19 = 19.0 + tt18;
   1198         double tt20 = 20.0 + tt19;
   1199         double tt21 = 21.0 + tt20;
   1200         double tt22 = 22.0 + tt21;
   1201         double tt23 = 23.0 + tt22;
   1202         double tt24 = 24.0 + tt23;
   1203         double tt25 = 25.0 + tt24;
   1204         double tt26 = 26.0 + tt25;
   1205         double tt27 = 27.0 + tt26;
   1206         double tt28 = 28.0 + tt27;
   1207         double tt29 = 29.0 + tt28;
   1208         double tt30 = 30.0 + tt29;
   1209         double tt31 = 31.0 + tt30;
   1210         double tt32 = 32.0 + tt31;
   1211         double tt33 = 33.0 + tt32;
   1212         double tt34 = 34.0 + tt33;
   1213         double tt35 = 35.0 + tt34;
   1214         double tt36 = 36.0 + tt35;
   1215         double tt37 = 37.0 + tt36;
   1216         double tt38 = 38.0 + tt37;
   1217         double tt39 = 39.0 + tt38;
   1218         double tt40 = 40.0 + tt39;
   1219         double ttt02 = 02.0 + tt40;
   1220         double ttt03 = 03.0 + ttt02;
   1221         double ttt04 = 04.0 + ttt03;
   1222         double ttt05 = 05.0 + ttt04;
   1223         double ttt06 = 06.0 + ttt05;
   1224         double ttt07 = 07.0 + ttt06;
   1225         double ttt08 = 08.0 + ttt07;
   1226         double ttt09 = 09.0 + ttt08;
   1227         double ttt10 = 10.0 + ttt09;
   1228         double ttt11 = 11.0 + ttt10;
   1229         double ttt12 = 12.0 + ttt11;
   1230         double ttt13 = 13.0 + ttt12;
   1231         double ttt14 = 14.0 + ttt13;
   1232         double ttt15 = 15.0 + ttt14;
   1233         double ttt16 = 16.0 + ttt15;
   1234         double ttt17 = 17.0 + ttt16;
   1235         double ttt18 = 18.0 + ttt17;
   1236         double ttt19 = 19.0 + ttt18;
   1237         double ttt20 = 20.0 + ttt19;
   1238         double ttt21 = 21.0 + ttt20;
   1239         double ttt22 = 22.0 + ttt21;
   1240         double ttt23 = 23.0 + ttt22;
   1241         double ttt24 = 24.0 + ttt23;
   1242         double ttt25 = 25.0 + ttt24;
   1243         double ttt26 = 26.0 + ttt25;
   1244         double ttt27 = 27.0 + ttt26;
   1245         double ttt28 = 28.0 + ttt27;
   1246         double ttt29 = 29.0 + ttt28;
   1247         double ttt30 = 30.0 + ttt29;
   1248         double ttt31 = 31.0 + ttt30;
   1249       // Repeatedly use some doubles from the middle of the pack to trigger promotion from frame-passed args.
   1250       for (int i = 0; i < 100; i++) {
   1251          res += d40;
   1252          res += d41;
   1253          res += d42;
   1254          res += d43;
   1255          res += d44;
   1256          res += d45;
   1257          res += d46;
   1258          res += d47;
   1259          res += d48;
   1260       }
   1261       for (int i = 0; i < 100; i++) {
   1262          res += d40;
   1263          res += d41;
   1264          res += d42;
   1265          res += d43;
   1266          res += d44;
   1267          res += d45;
   1268          res += d46;
   1269          res += d47;
   1270          res += d48;
   1271       }
   1272       for (int i = 0; i < 100; i++) {
   1273          res += d40;
   1274          res += d41;
   1275          res += d42;
   1276          res += d43;
   1277          res += d44;
   1278          res += d45;
   1279          res += d46;
   1280          res += d47;
   1281          res += d48;
   1282       }
   1283       for (int i = 0; i < 100; i++) {
   1284          res += d40;
   1285          res += d41;
   1286          res += d42;
   1287          res += d43;
   1288          res += d44;
   1289          res += d45;
   1290          res += d46;
   1291          res += d47;
   1292          res += d48;
   1293       }
   1294       return res + tt40;
   1295    }
   1296 
   1297     public static void ManyFloatArgs() {
   1298         double res = TooManyArgs(
   1299                                  1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
   1300                                  1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
   1301                                  1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
   1302                                  1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
   1303                                  1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
   1304                                  1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
   1305                                  1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
   1306                                  1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
   1307                                  13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0,
   1308                                  24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0,
   1309                                  35.0, 36.0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49);
   1310        if ((long)res == 160087) {
   1311            System.out.println("ManyFloatArgs passes");
   1312        } else {
   1313            System.out.println("ManyFloatArgs fails, expected 160087, got: " + res);
   1314        }
   1315     }
   1316     static long largeFrame() {
   1317         int i0 = 0;
   1318         long l0 = 0;
   1319         int i1 = 1;
   1320         long l1 = 1;
   1321         int i2 = 2;
   1322         long l2 = 2;
   1323         int i3 = 3;
   1324         long l3 = 3;
   1325         int i4 = 4;
   1326         long l4 = 4;
   1327         int i5 = 5;
   1328         long l5 = 5;
   1329         int i6 = 6;
   1330         long l6 = 6;
   1331         int i7 = 7;
   1332         long l7 = 7;
   1333         int i8 = 8;
   1334         long l8 = 8;
   1335         int i9 = 9;
   1336         long l9 = 9;
   1337         int i10 = 10;
   1338         long l10 = 10;
   1339         int i11 = 11;
   1340         long l11 = 11;
   1341         int i12 = 12;
   1342         long l12 = 12;
   1343         int i13 = 13;
   1344         long l13 = 13;
   1345         int i14 = 14;
   1346         long l14 = 14;
   1347         int i15 = 15;
   1348         long l15 = 15;
   1349         int i16 = 16;
   1350         long l16 = 16;
   1351         int i17 = 17;
   1352         long l17 = 17;
   1353         int i18 = 18;
   1354         long l18 = 18;
   1355         int i19 = 19;
   1356         long l19 = 19;
   1357         int i20 = 20;
   1358         long l20 = 20;
   1359         int i21 = 21;
   1360         long l21 = 21;
   1361         int i22 = 22;
   1362         long l22 = 22;
   1363         int i23 = 23;
   1364         long l23 = 23;
   1365         int i24 = 24;
   1366         long l24 = 24;
   1367         int i25 = 25;
   1368         long l25 = 25;
   1369         int i26 = 26;
   1370         long l26 = 26;
   1371         int i27 = 27;
   1372         long l27 = 27;
   1373         int i28 = 28;
   1374         long l28 = 28;
   1375         int i29 = 29;
   1376         long l29 = 29;
   1377         int i30 = 30;
   1378         long l30 = 30;
   1379         int i31 = 31;
   1380         long l31 = 31;
   1381         int i32 = 32;
   1382         long l32 = 32;
   1383         int i33 = 33;
   1384         long l33 = 33;
   1385         int i34 = 34;
   1386         long l34 = 34;
   1387         int i35 = 35;
   1388         long l35 = 35;
   1389         int i36 = 36;
   1390         long l36 = 36;
   1391         int i37 = 37;
   1392         long l37 = 37;
   1393         int i38 = 38;
   1394         long l38 = 38;
   1395         int i39 = 39;
   1396         long l39 = 39;
   1397         int i40 = 40;
   1398         long l40 = 40;
   1399         int i41 = 41;
   1400         long l41 = 41;
   1401         int i42 = 42;
   1402         long l42 = 42;
   1403         int i43 = 43;
   1404         long l43 = 43;
   1405         int i44 = 44;
   1406         long l44 = 44;
   1407         int i45 = 45;
   1408         long l45 = 45;
   1409         int i46 = 46;
   1410         long l46 = 46;
   1411         int i47 = 47;
   1412         long l47 = 47;
   1413         int i48 = 48;
   1414         long l48 = 48;
   1415         int i49 = 49;
   1416         long l49 = 49;
   1417         int i50 = 50;
   1418         long l50 = 50;
   1419         int i51 = 51;
   1420         long l51 = 51;
   1421         int i52 = 52;
   1422         long l52 = 52;
   1423         int i53 = 53;
   1424         long l53 = 53;
   1425         int i54 = 54;
   1426         long l54 = 54;
   1427         int i55 = 55;
   1428         long l55 = 55;
   1429         int i56 = 56;
   1430         long l56 = 56;
   1431         int i57 = 57;
   1432         long l57 = 57;
   1433         int i58 = 58;
   1434         long l58 = 58;
   1435         int i59 = 59;
   1436         long l59 = 59;
   1437         int i60 = 60;
   1438         long l60 = 60;
   1439         int i61 = 61;
   1440         long l61 = 61;
   1441         int i62 = 62;
   1442         long l62 = 62;
   1443         int i63 = 63;
   1444         long l63 = 63;
   1445         int i64 = 64;
   1446         long l64 = 64;
   1447         int i65 = 65;
   1448         long l65 = 65;
   1449         int i66 = 66;
   1450         long l66 = 66;
   1451         int i67 = 67;
   1452         long l67 = 67;
   1453         int i68 = 68;
   1454         long l68 = 68;
   1455         int i69 = 69;
   1456         long l69 = 69;
   1457         int i70 = 70;
   1458         long l70 = 70;
   1459         int i71 = 71;
   1460         long l71 = 71;
   1461         int i72 = 72;
   1462         long l72 = 72;
   1463         int i73 = 73;
   1464         long l73 = 73;
   1465         int i74 = 74;
   1466         long l74 = 74;
   1467         int i75 = 75;
   1468         long l75 = 75;
   1469         int i76 = 76;
   1470         long l76 = 76;
   1471         int i77 = 77;
   1472         long l77 = 77;
   1473         int i78 = 78;
   1474         long l78 = 78;
   1475         int i79 = 79;
   1476         long l79 = 79;
   1477         int i80 = 80;
   1478         long l80 = 80;
   1479         int i81 = 81;
   1480         long l81 = 81;
   1481         int i82 = 82;
   1482         long l82 = 82;
   1483         int i83 = 83;
   1484         long l83 = 83;
   1485         int i84 = 84;
   1486         long l84 = 84;
   1487         int i85 = 85;
   1488         long l85 = 85;
   1489         int i86 = 86;
   1490         long l86 = 86;
   1491         int i87 = 87;
   1492         long l87 = 87;
   1493         int i88 = 88;
   1494         long l88 = 88;
   1495         int i89 = 89;
   1496         long l89 = 89;
   1497         int i90 = 90;
   1498         long l90 = 90;
   1499         int i91 = 91;
   1500         long l91 = 91;
   1501         int i92 = 92;
   1502         long l92 = 92;
   1503         int i93 = 93;
   1504         long l93 = 93;
   1505         int i94 = 94;
   1506         long l94 = 94;
   1507         int i95 = 95;
   1508         long l95 = 95;
   1509         int i96 = 96;
   1510         long l96 = 96;
   1511         int i97 = 97;
   1512         long l97 = 97;
   1513         int i98 = 98;
   1514         long l98 = 98;
   1515         int i99 = 99;
   1516         long l99 = 99;
   1517         int i100 = 100;
   1518         long l100 = 100;
   1519         int i101 = 101;
   1520         long l101 = 101;
   1521         int i102 = 102;
   1522         long l102 = 102;
   1523         int i103 = 103;
   1524         long l103 = 103;
   1525         int i104 = 104;
   1526         long l104 = 104;
   1527         int i105 = 105;
   1528         long l105 = 105;
   1529         int i106 = 106;
   1530         long l106 = 106;
   1531         int i107 = 107;
   1532         long l107 = 107;
   1533         int i108 = 108;
   1534         long l108 = 108;
   1535         int i109 = 109;
   1536         long l109 = 109;
   1537         int i110 = 110;
   1538         long l110 = 110;
   1539         int i111 = 111;
   1540         long l111 = 111;
   1541         int i112 = 112;
   1542         long l112 = 112;
   1543         int i113 = 113;
   1544         long l113 = 113;
   1545         int i114 = 114;
   1546         long l114 = 114;
   1547         int i115 = 115;
   1548         long l115 = 115;
   1549         int i116 = 116;
   1550         long l116 = 116;
   1551         int i117 = 117;
   1552         long l117 = 117;
   1553         int i118 = 118;
   1554         long l118 = 118;
   1555         int i119 = 119;
   1556         long l119 = 119;
   1557         int i120 = 120;
   1558         long l120 = 120;
   1559         int i121 = 121;
   1560         long l121 = 121;
   1561         int i122 = 122;
   1562         long l122 = 122;
   1563         int i123 = 123;
   1564         long l123 = 123;
   1565         int i124 = 124;
   1566         long l124 = 124;
   1567         int i125 = 125;
   1568         long l125 = 125;
   1569         int i126 = 126;
   1570         long l126 = 126;
   1571         int i127 = 127;
   1572         long l127 = 127;
   1573         int i128 = 128;
   1574         long l128 = 128;
   1575         int i129 = 129;
   1576         long l129 = 129;
   1577         int i130 = 130;
   1578         long l130 = 130;
   1579         int i131 = 131;
   1580         long l131 = 131;
   1581         int i132 = 132;
   1582         long l132 = 132;
   1583         int i133 = 133;
   1584         long l133 = 133;
   1585         int i134 = 134;
   1586         long l134 = 134;
   1587         int i135 = 135;
   1588         long l135 = 135;
   1589         int i136 = 136;
   1590         long l136 = 136;
   1591         int i137 = 137;
   1592         long l137 = 137;
   1593         int i138 = 138;
   1594         long l138 = 138;
   1595         int i139 = 139;
   1596         long l139 = 139;
   1597         int i140 = 140;
   1598         long l140 = 140;
   1599         int i141 = 141;
   1600         long l141 = 141;
   1601         int i142 = 142;
   1602         long l142 = 142;
   1603         int i143 = 143;
   1604         long l143 = 143;
   1605         int i144 = 144;
   1606         long l144 = 144;
   1607         int i145 = 145;
   1608         long l145 = 145;
   1609         int i146 = 146;
   1610         long l146 = 146;
   1611         int i147 = 147;
   1612         long l147 = 147;
   1613         int i148 = 148;
   1614         long l148 = 148;
   1615         int i149 = 149;
   1616         long l149 = 149;
   1617         int i150 = 150;
   1618         long l150 = 150;
   1619         int i151 = 151;
   1620         long l151 = 151;
   1621         int i152 = 152;
   1622         long l152 = 152;
   1623         int i153 = 153;
   1624         long l153 = 153;
   1625         int i154 = 154;
   1626         long l154 = 154;
   1627         int i155 = 155;
   1628         long l155 = 155;
   1629         int i156 = 156;
   1630         long l156 = 156;
   1631         int i157 = 157;
   1632         long l157 = 157;
   1633         int i158 = 158;
   1634         long l158 = 158;
   1635         int i159 = 159;
   1636         long l159 = 159;
   1637         int i160 = 160;
   1638         long l160 = 160;
   1639         int i161 = 161;
   1640         long l161 = 161;
   1641         int i162 = 162;
   1642         long l162 = 162;
   1643         int i163 = 163;
   1644         long l163 = 163;
   1645         int i164 = 164;
   1646         long l164 = 164;
   1647         int i165 = 165;
   1648         long l165 = 165;
   1649         int i166 = 166;
   1650         long l166 = 166;
   1651         int i167 = 167;
   1652         long l167 = 167;
   1653         int i168 = 168;
   1654         long l168 = 168;
   1655         int i169 = 169;
   1656         long l169 = 169;
   1657         int i170 = 170;
   1658         long l170 = 170;
   1659         int i171 = 171;
   1660         long l171 = 171;
   1661         int i172 = 172;
   1662         long l172 = 172;
   1663         int i173 = 173;
   1664         long l173 = 173;
   1665         int i174 = 174;
   1666         long l174 = 174;
   1667         int i175 = 175;
   1668         long l175 = 175;
   1669         int i176 = 176;
   1670         long l176 = 176;
   1671         int i177 = 177;
   1672         long l177 = 177;
   1673         int i178 = 178;
   1674         long l178 = 178;
   1675         int i179 = 179;
   1676         long l179 = 179;
   1677         int i180 = 180;
   1678         long l180 = 180;
   1679         int i181 = 181;
   1680         long l181 = 181;
   1681         int i182 = 182;
   1682         long l182 = 182;
   1683         int i183 = 183;
   1684         long l183 = 183;
   1685         int i184 = 184;
   1686         long l184 = 184;
   1687         int i185 = 185;
   1688         long l185 = 185;
   1689         int i186 = 186;
   1690         long l186 = 186;
   1691         int i187 = 187;
   1692         long l187 = 187;
   1693         int i188 = 188;
   1694         long l188 = 188;
   1695         int i189 = 189;
   1696         long l189 = 189;
   1697         int i190 = 190;
   1698         long l190 = 190;
   1699         int i191 = 191;
   1700         long l191 = 191;
   1701         int i192 = 192;
   1702         long l192 = 192;
   1703         int i193 = 193;
   1704         long l193 = 193;
   1705         int i194 = 194;
   1706         long l194 = 194;
   1707         int i195 = 195;
   1708         long l195 = 195;
   1709         int i196 = 196;
   1710         long l196 = 196;
   1711         int i197 = 197;
   1712         long l197 = 197;
   1713         int i198 = 198;
   1714         long l198 = 198;
   1715         int i199 = 199;
   1716         long l199 = 199;
   1717         int i200 = 200;
   1718         long l200 = 200;
   1719         int i201 = 201;
   1720         long l201 = 201;
   1721         int i202 = 202;
   1722         long l202 = 202;
   1723         int i203 = 203;
   1724         long l203 = 203;
   1725         int i204 = 204;
   1726         long l204 = 204;
   1727         int i205 = 205;
   1728         long l205 = 205;
   1729         int i206 = 206;
   1730         long l206 = 206;
   1731         int i207 = 207;
   1732         long l207 = 207;
   1733         int i208 = 208;
   1734         long l208 = 208;
   1735         int i209 = 209;
   1736         long l209 = 209;
   1737         int i210 = 210;
   1738         long l210 = 210;
   1739         int i211 = 211;
   1740         long l211 = 211;
   1741         int i212 = 212;
   1742         long l212 = 212;
   1743         int i213 = 213;
   1744         long l213 = 213;
   1745         int i214 = 214;
   1746         long l214 = 214;
   1747         int i215 = 215;
   1748         long l215 = 215;
   1749         int i216 = 216;
   1750         long l216 = 216;
   1751         int i217 = 217;
   1752         long l217 = 217;
   1753         int i218 = 218;
   1754         long l218 = 218;
   1755         int i219 = 219;
   1756         long l219 = 219;
   1757         int i220 = 220;
   1758         long l220 = 220;
   1759         int i221 = 221;
   1760         long l221 = 221;
   1761         int i222 = 222;
   1762         long l222 = 222;
   1763         int i223 = 223;
   1764         long l223 = 223;
   1765         int i224 = 224;
   1766         long l224 = 224;
   1767         int i225 = 225;
   1768         long l225 = 225;
   1769         int i226 = 226;
   1770         long l226 = 226;
   1771         int i227 = 227;
   1772         long l227 = 227;
   1773         int i228 = 228;
   1774         long l228 = 228;
   1775         int i229 = 229;
   1776         long l229 = 229;
   1777         int i230 = 230;
   1778         long l230 = 230;
   1779         int i231 = 231;
   1780         long l231 = 231;
   1781         int i232 = 232;
   1782         long l232 = 232;
   1783         int i233 = 233;
   1784         long l233 = 233;
   1785         int i234 = 234;
   1786         long l234 = 234;
   1787         int i235 = 235;
   1788         long l235 = 235;
   1789         int i236 = 236;
   1790         long l236 = 236;
   1791         int i237 = 237;
   1792         long l237 = 237;
   1793         int i238 = 238;
   1794         long l238 = 238;
   1795         int i239 = 239;
   1796         long l239 = 239;
   1797         int i240 = 240;
   1798         long l240 = 240;
   1799         int i241 = 241;
   1800         long l241 = 241;
   1801         int i242 = 242;
   1802         long l242 = 242;
   1803         int i243 = 243;
   1804         long l243 = 243;
   1805         int i244 = 244;
   1806         long l244 = 244;
   1807         int i245 = 245;
   1808         long l245 = 245;
   1809         int i246 = 246;
   1810         long l246 = 246;
   1811         int i247 = 247;
   1812         long l247 = 247;
   1813         int i248 = 248;
   1814         long l248 = 248;
   1815         int i249 = 249;
   1816         long l249 = 249;
   1817         int i250 = 250;
   1818         long l250 = 250;
   1819         int i251 = 251;
   1820         long l251 = 251;
   1821         int i252 = 252;
   1822         long l252 = 252;
   1823         int i253 = 253;
   1824         long l253 = 253;
   1825         int i254 = 254;
   1826         long l254 = 254;
   1827         int i255 = 255;
   1828         long l255 = 255;
   1829         int i256 = 256;
   1830         long l256 = 256;
   1831         int i257 = 257;
   1832         long l257 = 257;
   1833         int i258 = 258;
   1834         long l258 = 258;
   1835         int i259 = 259;
   1836         long l259 = 259;
   1837         int i260 = 260;
   1838         long l260 = 260;
   1839         int i261 = 261;
   1840         long l261 = 261;
   1841         int i262 = 262;
   1842         long l262 = 262;
   1843         int i263 = 263;
   1844         long l263 = 263;
   1845         int i264 = 264;
   1846         long l264 = 264;
   1847         int i265 = 265;
   1848         long l265 = 265;
   1849         int i266 = 266;
   1850         long l266 = 266;
   1851         int i267 = 267;
   1852         long l267 = 267;
   1853         int i268 = 268;
   1854         long l268 = 268;
   1855         int i269 = 269;
   1856         long l269 = 269;
   1857         int i270 = 270;
   1858         long l270 = 270;
   1859         int i271 = 271;
   1860         long l271 = 271;
   1861         int i272 = 272;
   1862         long l272 = 272;
   1863         int i273 = 273;
   1864         long l273 = 273;
   1865         int i274 = 274;
   1866         long l274 = 274;
   1867         int i275 = 275;
   1868         long l275 = 275;
   1869         int i276 = 276;
   1870         long l276 = 276;
   1871         int i277 = 277;
   1872         long l277 = 277;
   1873         int i278 = 278;
   1874         long l278 = 278;
   1875         int i279 = 279;
   1876         long l279 = 279;
   1877         int i280 = 280;
   1878         long l280 = 280;
   1879         int i281 = 281;
   1880         long l281 = 281;
   1881         int i282 = 282;
   1882         long l282 = 282;
   1883         int i283 = 283;
   1884         long l283 = 283;
   1885         int i284 = 284;
   1886         long l284 = 284;
   1887         int i285 = 285;
   1888         long l285 = 285;
   1889         int i286 = 286;
   1890         long l286 = 286;
   1891         int i287 = 287;
   1892         long l287 = 287;
   1893         int i288 = 288;
   1894         long l288 = 288;
   1895         int i289 = 289;
   1896         long l289 = 289;
   1897         int i290 = 290;
   1898         long l290 = 290;
   1899         int i291 = 291;
   1900         long l291 = 291;
   1901         int i292 = 292;
   1902         long l292 = 292;
   1903         int i293 = 293;
   1904         long l293 = 293;
   1905         int i294 = 294;
   1906         long l294 = 294;
   1907         int i295 = 295;
   1908         long l295 = 295;
   1909         int i296 = 296;
   1910         long l296 = 296;
   1911         int i297 = 297;
   1912         long l297 = 297;
   1913         int i298 = 298;
   1914         long l298 = 298;
   1915         int i299 = 299;
   1916         long l299 = 299;
   1917         int i300 = 300;
   1918         long l300 = 300;
   1919         int i301 = 301;
   1920         long l301 = 301;
   1921         int i302 = 302;
   1922         long l302 = 302;
   1923         int i303 = 303;
   1924         long l303 = 303;
   1925         int i304 = 304;
   1926         long l304 = 304;
   1927         int i305 = 305;
   1928         long l305 = 305;
   1929         int i306 = 306;
   1930         long l306 = 306;
   1931         int i307 = 307;
   1932         long l307 = 307;
   1933         int i308 = 308;
   1934         long l308 = 308;
   1935         int i309 = 309;
   1936         long l309 = 309;
   1937         int i310 = 310;
   1938         long l310 = 310;
   1939         int i311 = 311;
   1940         long l311 = 311;
   1941         int i312 = 312;
   1942         long l312 = 312;
   1943         int i313 = 313;
   1944         long l313 = 313;
   1945         int i314 = 314;
   1946         long l314 = 314;
   1947         int i315 = 315;
   1948         long l315 = 315;
   1949         int i316 = 316;
   1950         long l316 = 316;
   1951         int i317 = 317;
   1952         long l317 = 317;
   1953         int i318 = 318;
   1954         long l318 = 318;
   1955         int i319 = 319;
   1956         long l319 = 319;
   1957         int i320 = 320;
   1958         long l320 = 320;
   1959         int i321 = 321;
   1960         long l321 = 321;
   1961         int i322 = 322;
   1962         long l322 = 322;
   1963         int i323 = 323;
   1964         long l323 = 323;
   1965         int i324 = 324;
   1966         long l324 = 324;
   1967         int i325 = 325;
   1968         long l325 = 325;
   1969         int i326 = 326;
   1970         long l326 = 326;
   1971         int i327 = 327;
   1972         long l327 = 327;
   1973         int i328 = 328;
   1974         long l328 = 328;
   1975         int i329 = 329;
   1976         long l329 = 329;
   1977         int i330 = 330;
   1978         long l330 = 330;
   1979         int i331 = 331;
   1980         long l331 = 331;
   1981         int i332 = 332;
   1982         long l332 = 332;
   1983         int i333 = 333;
   1984         long l333 = 333;
   1985         int i334 = 334;
   1986         long l334 = 334;
   1987         int i335 = 335;
   1988         long l335 = 335;
   1989         int i336 = 336;
   1990         long l336 = 336;
   1991         int i337 = 337;
   1992         long l337 = 337;
   1993         int i338 = 338;
   1994         long l338 = 338;
   1995         int i339 = 339;
   1996         long l339 = 339;
   1997         int i340 = 340;
   1998         long l340 = 340;
   1999         int i341 = 341;
   2000         long l341 = 341;
   2001         int i342 = 342;
   2002         long l342 = 342;
   2003         int i343 = 343;
   2004         long l343 = 343;
   2005         int i344 = 344;
   2006         long l344 = 344;
   2007         int i345 = 345;
   2008         long l345 = 345;
   2009         int i346 = 346;
   2010         long l346 = 346;
   2011         int i347 = 347;
   2012         long l347 = 347;
   2013         int i348 = 348;
   2014         long l348 = 348;
   2015         int i349 = 349;
   2016         long l349 = 349;
   2017         int i350 = 350;
   2018         long l350 = 350;
   2019         int i351 = 351;
   2020         long l351 = 351;
   2021         int i352 = 352;
   2022         long l352 = 352;
   2023         int i353 = 353;
   2024         long l353 = 353;
   2025         int i354 = 354;
   2026         long l354 = 354;
   2027         int i355 = 355;
   2028         long l355 = 355;
   2029         int i356 = 356;
   2030         long l356 = 356;
   2031         int i357 = 357;
   2032         long l357 = 357;
   2033         int i358 = 358;
   2034         long l358 = 358;
   2035         int i359 = 359;
   2036         long l359 = 359;
   2037         int i360 = 360;
   2038         long l360 = 360;
   2039         int i361 = 361;
   2040         long l361 = 361;
   2041         int i362 = 362;
   2042         long l362 = 362;
   2043         int i363 = 363;
   2044         long l363 = 363;
   2045         int i364 = 364;
   2046         long l364 = 364;
   2047         int i365 = 365;
   2048         long l365 = 365;
   2049         int i366 = 366;
   2050         long l366 = 366;
   2051         int i367 = 367;
   2052         long l367 = 367;
   2053         int i368 = 368;
   2054         long l368 = 368;
   2055         int i369 = 369;
   2056         long l369 = 369;
   2057         int i370 = 370;
   2058         long l370 = 370;
   2059         int i371 = 371;
   2060         long l371 = 371;
   2061         int i372 = 372;
   2062         long l372 = 372;
   2063         int i373 = 373;
   2064         long l373 = 373;
   2065         int i374 = 374;
   2066         long l374 = 374;
   2067         int i375 = 375;
   2068         long l375 = 375;
   2069         int i376 = 376;
   2070         long l376 = 376;
   2071         int i377 = 377;
   2072         long l377 = 377;
   2073         int i378 = 378;
   2074         long l378 = 378;
   2075         int i379 = 379;
   2076         long l379 = 379;
   2077         int i380 = 380;
   2078         long l380 = 380;
   2079         int i381 = 381;
   2080         long l381 = 381;
   2081         int i382 = 382;
   2082         long l382 = 382;
   2083         int i383 = 383;
   2084         long l383 = 383;
   2085         int i384 = 384;
   2086         long l384 = 384;
   2087         int i385 = 385;
   2088         long l385 = 385;
   2089         int i386 = 386;
   2090         long l386 = 386;
   2091         int i387 = 387;
   2092         long l387 = 387;
   2093         int i388 = 388;
   2094         long l388 = 388;
   2095         int i389 = 389;
   2096         long l389 = 389;
   2097         int i390 = 390;
   2098         long l390 = 390;
   2099         int i391 = 391;
   2100         long l391 = 391;
   2101         int i392 = 392;
   2102         long l392 = 392;
   2103         int i393 = 393;
   2104         long l393 = 393;
   2105         int i394 = 394;
   2106         long l394 = 394;
   2107         int i395 = 395;
   2108         long l395 = 395;
   2109         int i396 = 396;
   2110         long l396 = 396;
   2111         int i397 = 397;
   2112         long l397 = 397;
   2113         int i398 = 398;
   2114         long l398 = 398;
   2115         int i399 = 399;
   2116         long l399 = 399;
   2117         int i400 = 400;
   2118         long l400 = 400;
   2119         int i401 = 401;
   2120         long l401 = 401;
   2121         int i402 = 402;
   2122         long l402 = 402;
   2123         int i403 = 403;
   2124         long l403 = 403;
   2125         int i404 = 404;
   2126         long l404 = 404;
   2127         int i405 = 405;
   2128         long l405 = 405;
   2129         int i406 = 406;
   2130         long l406 = 406;
   2131         int i407 = 407;
   2132         long l407 = 407;
   2133         int i408 = 408;
   2134         long l408 = 408;
   2135         int i409 = 409;
   2136         long l409 = 409;
   2137         int i410 = 410;
   2138         long l410 = 410;
   2139         int i411 = 411;
   2140         long l411 = 411;
   2141         int i412 = 412;
   2142         long l412 = 412;
   2143         int i413 = 413;
   2144         long l413 = 413;
   2145         int i414 = 414;
   2146         long l414 = 414;
   2147         int i415 = 415;
   2148         long l415 = 415;
   2149         int i416 = 416;
   2150         long l416 = 416;
   2151         int i417 = 417;
   2152         long l417 = 417;
   2153         int i418 = 418;
   2154         long l418 = 418;
   2155         int i419 = 419;
   2156         long l419 = 419;
   2157         int i420 = 420;
   2158         long l420 = 420;
   2159         int i421 = 421;
   2160         long l421 = 421;
   2161         int i422 = 422;
   2162         long l422 = 422;
   2163         int i423 = 423;
   2164         long l423 = 423;
   2165         int i424 = 424;
   2166         long l424 = 424;
   2167         int i425 = 425;
   2168         long l425 = 425;
   2169         int i426 = 426;
   2170         long l426 = 426;
   2171         int i427 = 427;
   2172         long l427 = 427;
   2173         int i428 = 428;
   2174         long l428 = 428;
   2175         int i429 = 429;
   2176         long l429 = 429;
   2177         int i430 = 430;
   2178         long l430 = 430;
   2179         int i431 = 431;
   2180         long l431 = 431;
   2181         int i432 = 432;
   2182         long l432 = 432;
   2183         int i433 = 433;
   2184         long l433 = 433;
   2185         int i434 = 434;
   2186         long l434 = 434;
   2187         int i435 = 435;
   2188         long l435 = 435;
   2189         int i436 = 436;
   2190         long l436 = 436;
   2191         int i437 = 437;
   2192         long l437 = 437;
   2193         int i438 = 438;
   2194         long l438 = 438;
   2195         int i439 = 439;
   2196         long l439 = 439;
   2197         int i440 = 440;
   2198         long l440 = 440;
   2199         int i441 = 441;
   2200         long l441 = 441;
   2201         int i442 = 442;
   2202         long l442 = 442;
   2203         int i443 = 443;
   2204         long l443 = 443;
   2205         int i444 = 444;
   2206         long l444 = 444;
   2207         int i445 = 445;
   2208         long l445 = 445;
   2209         int i446 = 446;
   2210         long l446 = 446;
   2211         int i447 = 447;
   2212         long l447 = 447;
   2213         int i448 = 448;
   2214         long l448 = 448;
   2215         int i449 = 449;
   2216         long l449 = 449;
   2217         int i450 = 450;
   2218         long l450 = 450;
   2219         int i451 = 451;
   2220         long l451 = 451;
   2221         int i452 = 452;
   2222         long l452 = 452;
   2223         int i453 = 453;
   2224         long l453 = 453;
   2225         int i454 = 454;
   2226         long l454 = 454;
   2227         int i455 = 455;
   2228         long l455 = 455;
   2229         int i456 = 456;
   2230         long l456 = 456;
   2231         int i457 = 457;
   2232         long l457 = 457;
   2233         int i458 = 458;
   2234         long l458 = 458;
   2235         int i459 = 459;
   2236         long l459 = 459;
   2237         int i460 = 460;
   2238         long l460 = 460;
   2239         int i461 = 461;
   2240         long l461 = 461;
   2241         int i462 = 462;
   2242         long l462 = 462;
   2243         int i463 = 463;
   2244         long l463 = 463;
   2245         int i464 = 464;
   2246         long l464 = 464;
   2247         int i465 = 465;
   2248         long l465 = 465;
   2249         int i466 = 466;
   2250         long l466 = 466;
   2251         int i467 = 467;
   2252         long l467 = 467;
   2253         int i468 = 468;
   2254         long l468 = 468;
   2255         int i469 = 469;
   2256         long l469 = 469;
   2257         int i470 = 470;
   2258         long l470 = 470;
   2259         int i471 = 471;
   2260         long l471 = 471;
   2261         int i472 = 472;
   2262         long l472 = 472;
   2263         int i473 = 473;
   2264         long l473 = 473;
   2265         int i474 = 474;
   2266         long l474 = 474;
   2267         int i475 = 475;
   2268         long l475 = 475;
   2269         int i476 = 476;
   2270         long l476 = 476;
   2271         int i477 = 477;
   2272         long l477 = 477;
   2273         int i478 = 478;
   2274         long l478 = 478;
   2275         int i479 = 479;
   2276         long l479 = 479;
   2277         int i480 = 480;
   2278         long l480 = 480;
   2279         int i481 = 481;
   2280         long l481 = 481;
   2281         int i482 = 482;
   2282         long l482 = 482;
   2283         int i483 = 483;
   2284         long l483 = 483;
   2285         int i484 = 484;
   2286         long l484 = 484;
   2287         int i485 = 485;
   2288         long l485 = 485;
   2289         int i486 = 486;
   2290         long l486 = 486;
   2291         int i487 = 487;
   2292         long l487 = 487;
   2293         int i488 = 488;
   2294         long l488 = 488;
   2295         int i489 = 489;
   2296         long l489 = 489;
   2297         int i490 = 490;
   2298         long l490 = 490;
   2299         int i491 = 491;
   2300         long l491 = 491;
   2301         int i492 = 492;
   2302         long l492 = 492;
   2303         int i493 = 493;
   2304         long l493 = 493;
   2305         int i494 = 494;
   2306         long l494 = 494;
   2307         int i495 = 495;
   2308         long l495 = 495;
   2309         int i496 = 496;
   2310         long l496 = 496;
   2311         int i497 = 497;
   2312         long l497 = 497;
   2313         int i498 = 498;
   2314         long l498 = 498;
   2315         int i499 = 499;
   2316         long l499 = 499;
   2317         int i500 = 500;
   2318         long l500 = 500;
   2319         int i501 = 501;
   2320         long l501 = 501;
   2321         int i502 = 502;
   2322         long l502 = 502;
   2323         int i503 = 503;
   2324         long l503 = 503;
   2325         int i504 = 504;
   2326         long l504 = 504;
   2327         int i505 = 505;
   2328         long l505 = 505;
   2329         int i506 = 506;
   2330         long l506 = 506;
   2331         int i507 = 507;
   2332         long l507 = 507;
   2333         int i508 = 508;
   2334         long l508 = 508;
   2335         int i509 = 509;
   2336         long l509 = 509;
   2337         int i510 = 510;
   2338         long l510 = 510;
   2339         int i511 = 511;
   2340         long l511 = 511;
   2341         int i512 = 512;
   2342         long l512 = 512;
   2343         int i513 = 513;
   2344         long l513 = 513;
   2345         int i514 = 514;
   2346         long l514 = 514;
   2347         int i515 = 515;
   2348         long l515 = 515;
   2349         int i516 = 516;
   2350         long l516 = 516;
   2351         int i517 = 517;
   2352         long l517 = 517;
   2353         int i518 = 518;
   2354         long l518 = 518;
   2355         int i519 = 519;
   2356         long l519 = 519;
   2357         int i520 = 520;
   2358         long l520 = 520;
   2359         int i521 = 521;
   2360         long l521 = 521;
   2361         int i522 = 522;
   2362         long l522 = 522;
   2363         int i523 = 523;
   2364         long l523 = 523;
   2365         int i524 = 524;
   2366         long l524 = 524;
   2367         int i525 = 525;
   2368         long l525 = 525;
   2369         int i526 = 526;
   2370         long l526 = 526;
   2371         int i527 = 527;
   2372         long l527 = 527;
   2373         int i528 = 528;
   2374         long l528 = 528;
   2375         int i529 = 529;
   2376         long l529 = 529;
   2377         int i530 = 530;
   2378         long l530 = 530;
   2379         int i531 = 531;
   2380         long l531 = 531;
   2381         int i532 = 532;
   2382         long l532 = 532;
   2383         int i533 = 533;
   2384         long l533 = 533;
   2385         int i534 = 534;
   2386         long l534 = 534;
   2387         int i535 = 535;
   2388         long l535 = 535;
   2389         int i536 = 536;
   2390         long l536 = 536;
   2391         int i537 = 537;
   2392         long l537 = 537;
   2393         int i538 = 538;
   2394         long l538 = 538;
   2395         int i539 = 539;
   2396         long l539 = 539;
   2397         int i540 = 540;
   2398         long l540 = 540;
   2399         int i541 = 541;
   2400         long l541 = 541;
   2401         int i542 = 542;
   2402         long l542 = 542;
   2403         int i543 = 543;
   2404         long l543 = 543;
   2405         int i544 = 544;
   2406         long l544 = 544;
   2407         int i545 = 545;
   2408         long l545 = 545;
   2409         int i546 = 546;
   2410         long l546 = 546;
   2411         int i547 = 547;
   2412         long l547 = 547;
   2413         int i548 = 548;
   2414         long l548 = 548;
   2415         int i549 = 549;
   2416         long l549 = 549;
   2417         int i550 = 550;
   2418         long l550 = 550;
   2419         int i551 = 551;
   2420         long l551 = 551;
   2421         int i552 = 552;
   2422         long l552 = 552;
   2423         int i553 = 553;
   2424         long l553 = 553;
   2425         int i554 = 554;
   2426         long l554 = 554;
   2427         int i555 = 555;
   2428         long l555 = 555;
   2429         int i556 = 556;
   2430         long l556 = 556;
   2431         int i557 = 557;
   2432         long l557 = 557;
   2433         int i558 = 558;
   2434         long l558 = 558;
   2435         int i559 = 559;
   2436         long l559 = 559;
   2437         int i560 = 560;
   2438         long l560 = 560;
   2439         int i561 = 561;
   2440         long l561 = 561;
   2441         int i562 = 562;
   2442         long l562 = 562;
   2443         int i563 = 563;
   2444         long l563 = 563;
   2445         int i564 = 564;
   2446         long l564 = 564;
   2447         int i565 = 565;
   2448         long l565 = 565;
   2449         int i566 = 566;
   2450         long l566 = 566;
   2451         int i567 = 567;
   2452         long l567 = 567;
   2453         int i568 = 568;
   2454         long l568 = 568;
   2455         int i569 = 569;
   2456         long l569 = 569;
   2457         int i570 = 570;
   2458         long l570 = 570;
   2459         int i571 = 571;
   2460         long l571 = 571;
   2461         int i572 = 572;
   2462         long l572 = 572;
   2463         int i573 = 573;
   2464         long l573 = 573;
   2465         int i574 = 574;
   2466         long l574 = 574;
   2467         int i575 = 575;
   2468         long l575 = 575;
   2469         int i576 = 576;
   2470         long l576 = 576;
   2471         int i577 = 577;
   2472         long l577 = 577;
   2473         int i578 = 578;
   2474         long l578 = 578;
   2475         int i579 = 579;
   2476         long l579 = 579;
   2477         int i580 = 580;
   2478         long l580 = 580;
   2479         int i581 = 581;
   2480         long l581 = 581;
   2481         int i582 = 582;
   2482         long l582 = 582;
   2483         int i583 = 583;
   2484         long l583 = 583;
   2485         int i584 = 584;
   2486         long l584 = 584;
   2487         int i585 = 585;
   2488         long l585 = 585;
   2489         int i586 = 586;
   2490         long l586 = 586;
   2491         int i587 = 587;
   2492         long l587 = 587;
   2493         int i588 = 588;
   2494         long l588 = 588;
   2495         int i589 = 589;
   2496         long l589 = 589;
   2497         int i590 = 590;
   2498         long l590 = 590;
   2499         int i591 = 591;
   2500         long l591 = 591;
   2501         int i592 = 592;
   2502         long l592 = 592;
   2503         int i593 = 593;
   2504         long l593 = 593;
   2505         int i594 = 594;
   2506         long l594 = 594;
   2507         int i595 = 595;
   2508         long l595 = 595;
   2509         int i596 = 596;
   2510         long l596 = 596;
   2511         int i597 = 597;
   2512         long l597 = 597;
   2513         int i598 = 598;
   2514         long l598 = 598;
   2515         int i599 = 599;
   2516         long l599 = 599;
   2517         int i600 = 600;
   2518         long l600 = 600;
   2519         int i601 = 601;
   2520         long l601 = 601;
   2521         int i602 = 602;
   2522         long l602 = 602;
   2523         int i603 = 603;
   2524         long l603 = 603;
   2525         int i604 = 604;
   2526         long l604 = 604;
   2527         int i605 = 605;
   2528         long l605 = 605;
   2529         int i606 = 606;
   2530         long l606 = 606;
   2531         int i607 = 607;
   2532         long l607 = 607;
   2533         int i608 = 608;
   2534         long l608 = 608;
   2535         int i609 = 609;
   2536         long l609 = 609;
   2537         int i610 = 610;
   2538         long l610 = 610;
   2539         int i611 = 611;
   2540         long l611 = 611;
   2541         int i612 = 612;
   2542         long l612 = 612;
   2543         int i613 = 613;
   2544         long l613 = 613;
   2545         int i614 = 614;
   2546         long l614 = 614;
   2547         int i615 = 615;
   2548         long l615 = 615;
   2549         int i616 = 616;
   2550         long l616 = 616;
   2551         int i617 = 617;
   2552         long l617 = 617;
   2553         int i618 = 618;
   2554         long l618 = 618;
   2555         int i619 = 619;
   2556         long l619 = 619;
   2557         int i620 = 620;
   2558         long l620 = 620;
   2559         int i621 = 621;
   2560         long l621 = 621;
   2561         int i622 = 622;
   2562         long l622 = 622;
   2563         int i623 = 623;
   2564         long l623 = 623;
   2565         int i624 = 624;
   2566         long l624 = 624;
   2567         int i625 = 625;
   2568         long l625 = 625;
   2569         int i626 = 626;
   2570         long l626 = 626;
   2571         int i627 = 627;
   2572         long l627 = 627;
   2573         int i628 = 628;
   2574         long l628 = 628;
   2575         int i629 = 629;
   2576         long l629 = 629;
   2577         int i630 = 630;
   2578         long l630 = 630;
   2579         int i631 = 631;
   2580         long l631 = 631;
   2581         int i632 = 632;
   2582         long l632 = 632;
   2583         int i633 = 633;
   2584         long l633 = 633;
   2585         int i634 = 634;
   2586         long l634 = 634;
   2587         int i635 = 635;
   2588         long l635 = 635;
   2589         int i636 = 636;
   2590         long l636 = 636;
   2591         int i637 = 637;
   2592         long l637 = 637;
   2593         int i638 = 638;
   2594         long l638 = 638;
   2595         int i639 = 639;
   2596         long l639 = 639;
   2597         int i640 = 640;
   2598         long l640 = 640;
   2599         int i641 = 641;
   2600         long l641 = 641;
   2601         int i642 = 642;
   2602         long l642 = 642;
   2603         int i643 = 643;
   2604         long l643 = 643;
   2605         int i644 = 644;
   2606         long l644 = 644;
   2607         int i645 = 645;
   2608         long l645 = 645;
   2609         int i646 = 646;
   2610         long l646 = 646;
   2611         int i647 = 647;
   2612         long l647 = 647;
   2613         int i648 = 648;
   2614         long l648 = 648;
   2615         int i649 = 649;
   2616         long l649 = 649;
   2617         int i650 = 650;
   2618         long l650 = 650;
   2619         int i651 = 651;
   2620         long l651 = 651;
   2621         int i652 = 652;
   2622         long l652 = 652;
   2623         int i653 = 653;
   2624         long l653 = 653;
   2625         int i654 = 654;
   2626         long l654 = 654;
   2627         int i655 = 655;
   2628         long l655 = 655;
   2629         int i656 = 656;
   2630         long l656 = 656;
   2631         int i657 = 657;
   2632         long l657 = 657;
   2633         int i658 = 658;
   2634         long l658 = 658;
   2635         int i659 = 659;
   2636         long l659 = 659;
   2637         int i660 = 660;
   2638         long l660 = 660;
   2639         int i661 = 661;
   2640         long l661 = 661;
   2641         int i662 = 662;
   2642         long l662 = 662;
   2643         int i663 = 663;
   2644         long l663 = 663;
   2645         int i664 = 664;
   2646         long l664 = 664;
   2647         int i665 = 665;
   2648         long l665 = 665;
   2649         int i666 = 666;
   2650         long l666 = 666;
   2651         int i667 = 667;
   2652         long l667 = 667;
   2653         int i668 = 668;
   2654         long l668 = 668;
   2655         int i669 = 669;
   2656         long l669 = 669;
   2657         int i670 = 670;
   2658         long l670 = 670;
   2659         int i671 = 671;
   2660         long l671 = 671;
   2661         int i672 = 672;
   2662         long l672 = 672;
   2663         int i673 = 673;
   2664         long l673 = 673;
   2665         int i674 = 674;
   2666         long l674 = 674;
   2667         int i675 = 675;
   2668         long l675 = 675;
   2669         int i676 = 676;
   2670         long l676 = 676;
   2671         int i677 = 677;
   2672         long l677 = 677;
   2673         int i678 = 678;
   2674         long l678 = 678;
   2675         int i679 = 679;
   2676         long l679 = 679;
   2677         int i680 = 680;
   2678         long l680 = 680;
   2679         int i681 = 681;
   2680         long l681 = 681;
   2681         int i682 = 682;
   2682         long l682 = 682;
   2683         int i683 = 683;
   2684         long l683 = 683;
   2685         int i684 = 684;
   2686         long l684 = 684;
   2687         int i685 = 685;
   2688         long l685 = 685;
   2689         int i686 = 686;
   2690         long l686 = 686;
   2691         int i687 = 687;
   2692         long l687 = 687;
   2693         int i688 = 688;
   2694         long l688 = 688;
   2695         int i689 = 689;
   2696         long l689 = 689;
   2697         int i690 = 690;
   2698         long l690 = 690;
   2699         int i691 = 691;
   2700         long l691 = 691;
   2701         int i692 = 692;
   2702         long l692 = 692;
   2703         int i693 = 693;
   2704         long l693 = 693;
   2705         int i694 = 694;
   2706         long l694 = 694;
   2707         int i695 = 695;
   2708         long l695 = 695;
   2709         int i696 = 696;
   2710         long l696 = 696;
   2711         int i697 = 697;
   2712         long l697 = 697;
   2713         int i698 = 698;
   2714         long l698 = 698;
   2715         int i699 = 699;
   2716         long l699 = 699;
   2717         int i700 = 700;
   2718         long l700 = 700;
   2719         int i701 = 701;
   2720         long l701 = 701;
   2721         int i702 = 702;
   2722         long l702 = 702;
   2723         int i703 = 703;
   2724         long l703 = 703;
   2725         int i704 = 704;
   2726         long l704 = 704;
   2727         int i705 = 705;
   2728         long l705 = 705;
   2729         int i706 = 706;
   2730         long l706 = 706;
   2731         int i707 = 707;
   2732         long l707 = 707;
   2733         int i708 = 708;
   2734         long l708 = 708;
   2735         int i709 = 709;
   2736         long l709 = 709;
   2737         int i710 = 710;
   2738         long l710 = 710;
   2739         int i711 = 711;
   2740         long l711 = 711;
   2741         int i712 = 712;
   2742         long l712 = 712;
   2743         int i713 = 713;
   2744         long l713 = 713;
   2745         int i714 = 714;
   2746         long l714 = 714;
   2747         int i715 = 715;
   2748         long l715 = 715;
   2749         int i716 = 716;
   2750         long l716 = 716;
   2751         int i717 = 717;
   2752         long l717 = 717;
   2753         int i718 = 718;
   2754         long l718 = 718;
   2755         int i719 = 719;
   2756         long l719 = 719;
   2757         int i720 = 720;
   2758         long l720 = 720;
   2759         int i721 = 721;
   2760         long l721 = 721;
   2761         int i722 = 722;
   2762         long l722 = 722;
   2763         int i723 = 723;
   2764         long l723 = 723;
   2765         int i724 = 724;
   2766         long l724 = 724;
   2767         int i725 = 725;
   2768         long l725 = 725;
   2769         int i726 = 726;
   2770         long l726 = 726;
   2771         int i727 = 727;
   2772         long l727 = 727;
   2773         int i728 = 728;
   2774         long l728 = 728;
   2775         int i729 = 729;
   2776         long l729 = 729;
   2777         int i730 = 730;
   2778         long l730 = 730;
   2779         int i731 = 731;
   2780         long l731 = 731;
   2781         int i732 = 732;
   2782         long l732 = 732;
   2783         int i733 = 733;
   2784         long l733 = 733;
   2785         int i734 = 734;
   2786         long l734 = 734;
   2787         int i735 = 735;
   2788         long l735 = 735;
   2789         int i736 = 736;
   2790         long l736 = 736;
   2791         int i737 = 737;
   2792         long l737 = 737;
   2793         int i738 = 738;
   2794         long l738 = 738;
   2795         int i739 = 739;
   2796         long l739 = 739;
   2797         int i740 = 740;
   2798         long l740 = 740;
   2799         int i741 = 741;
   2800         long l741 = 741;
   2801         int i742 = 742;
   2802         long l742 = 742;
   2803         int i743 = 743;
   2804         long l743 = 743;
   2805         int i744 = 744;
   2806         long l744 = 744;
   2807         int i745 = 745;
   2808         long l745 = 745;
   2809         int i746 = 746;
   2810         long l746 = 746;
   2811         int i747 = 747;
   2812         long l747 = 747;
   2813         int i748 = 748;
   2814         long l748 = 748;
   2815         int i749 = 749;
   2816         long l749 = 749;
   2817         int i750 = 750;
   2818         long l750 = 750;
   2819         int i751 = 751;
   2820         long l751 = 751;
   2821         int i752 = 752;
   2822         long l752 = 752;
   2823         int i753 = 753;
   2824         long l753 = 753;
   2825         int i754 = 754;
   2826         long l754 = 754;
   2827         int i755 = 755;
   2828         long l755 = 755;
   2829         int i756 = 756;
   2830         long l756 = 756;
   2831         int i757 = 757;
   2832         long l757 = 757;
   2833         int i758 = 758;
   2834         long l758 = 758;
   2835         int i759 = 759;
   2836         long l759 = 759;
   2837         int i760 = 760;
   2838         long l760 = 760;
   2839         int i761 = 761;
   2840         long l761 = 761;
   2841         int i762 = 762;
   2842         long l762 = 762;
   2843         int i763 = 763;
   2844         long l763 = 763;
   2845         int i764 = 764;
   2846         long l764 = 764;
   2847         int i765 = 765;
   2848         long l765 = 765;
   2849         int i766 = 766;
   2850         long l766 = 766;
   2851         int i767 = 767;
   2852         long l767 = 767;
   2853         int i768 = 768;
   2854         long l768 = 768;
   2855         int i769 = 769;
   2856         long l769 = 769;
   2857         int i770 = 770;
   2858         long l770 = 770;
   2859         int i771 = 771;
   2860         long l771 = 771;
   2861         int i772 = 772;
   2862         long l772 = 772;
   2863         int i773 = 773;
   2864         long l773 = 773;
   2865         int i774 = 774;
   2866         long l774 = 774;
   2867         int i775 = 775;
   2868         long l775 = 775;
   2869         int i776 = 776;
   2870         long l776 = 776;
   2871         int i777 = 777;
   2872         long l777 = 777;
   2873         int i778 = 778;
   2874         long l778 = 778;
   2875         int i779 = 779;
   2876         long l779 = 779;
   2877         int i780 = 780;
   2878         long l780 = 780;
   2879         int i781 = 781;
   2880         long l781 = 781;
   2881         int i782 = 782;
   2882         long l782 = 782;
   2883         int i783 = 783;
   2884         long l783 = 783;
   2885         int i784 = 784;
   2886         long l784 = 784;
   2887         int i785 = 785;
   2888         long l785 = 785;
   2889         int i786 = 786;
   2890         long l786 = 786;
   2891         int i787 = 787;
   2892         long l787 = 787;
   2893         int i788 = 788;
   2894         long l788 = 788;
   2895         int i789 = 789;
   2896         long l789 = 789;
   2897         int i790 = 790;
   2898         long l790 = 790;
   2899         int i791 = 791;
   2900         long l791 = 791;
   2901         int i792 = 792;
   2902         long l792 = 792;
   2903         int i793 = 793;
   2904         long l793 = 793;
   2905         int i794 = 794;
   2906         long l794 = 794;
   2907         int i795 = 795;
   2908         long l795 = 795;
   2909         int i796 = 796;
   2910         long l796 = 796;
   2911         int i797 = 797;
   2912         long l797 = 797;
   2913         int i798 = 798;
   2914         long l798 = 798;
   2915         int i799 = 799;
   2916         long l799 = 799;
   2917         int i800 = 800;
   2918         long l800 = 800;
   2919         int i801 = 801;
   2920         long l801 = 801;
   2921         int i802 = 802;
   2922         long l802 = 802;
   2923         int i803 = 803;
   2924         long l803 = 803;
   2925         int i804 = 804;
   2926         long l804 = 804;
   2927         int i805 = 805;
   2928         long l805 = 805;
   2929         int i806 = 806;
   2930         long l806 = 806;
   2931         int i807 = 807;
   2932         long l807 = 807;
   2933         int i808 = 808;
   2934         long l808 = 808;
   2935         int i809 = 809;
   2936         long l809 = 809;
   2937         int i810 = 810;
   2938         long l810 = 810;
   2939         int i811 = 811;
   2940         long l811 = 811;
   2941         int i812 = 812;
   2942         long l812 = 812;
   2943         int i813 = 813;
   2944         long l813 = 813;
   2945         int i814 = 814;
   2946         long l814 = 814;
   2947         int i815 = 815;
   2948         long l815 = 815;
   2949         int i816 = 816;
   2950         long l816 = 816;
   2951         int i817 = 817;
   2952         long l817 = 817;
   2953         int i818 = 818;
   2954         long l818 = 818;
   2955         int i819 = 819;
   2956         long l819 = 819;
   2957         int i820 = 820;
   2958         long l820 = 820;
   2959         int i821 = 821;
   2960         long l821 = 821;
   2961         int i822 = 822;
   2962         long l822 = 822;
   2963         int i823 = 823;
   2964         long l823 = 823;
   2965         int i824 = 824;
   2966         long l824 = 824;
   2967         int i825 = 825;
   2968         long l825 = 825;
   2969         int i826 = 826;
   2970         long l826 = 826;
   2971         int i827 = 827;
   2972         long l827 = 827;
   2973         int i828 = 828;
   2974         long l828 = 828;
   2975         int i829 = 829;
   2976         long l829 = 829;
   2977         int i830 = 830;
   2978         long l830 = 830;
   2979         int i831 = 831;
   2980         long l831 = 831;
   2981         int i832 = 832;
   2982         long l832 = 832;
   2983         int i833 = 833;
   2984         long l833 = 833;
   2985         int i834 = 834;
   2986         long l834 = 834;
   2987         int i835 = 835;
   2988         long l835 = 835;
   2989         int i836 = 836;
   2990         long l836 = 836;
   2991         int i837 = 837;
   2992         long l837 = 837;
   2993         int i838 = 838;
   2994         long l838 = 838;
   2995         int i839 = 839;
   2996         long l839 = 839;
   2997         int i840 = 840;
   2998         long l840 = 840;
   2999         int i841 = 841;
   3000         long l841 = 841;
   3001         int i842 = 842;
   3002         long l842 = 842;
   3003         int i843 = 843;
   3004         long l843 = 843;
   3005         int i844 = 844;
   3006         long l844 = 844;
   3007         int i845 = 845;
   3008         long l845 = 845;
   3009         int i846 = 846;
   3010         long l846 = 846;
   3011         int i847 = 847;
   3012         long l847 = 847;
   3013         int i848 = 848;
   3014         long l848 = 848;
   3015         int i849 = 849;
   3016         long l849 = 849;
   3017         int i850 = 850;
   3018         long l850 = 850;
   3019         int i851 = 851;
   3020         long l851 = 851;
   3021         int i852 = 852;
   3022         long l852 = 852;
   3023         int i853 = 853;
   3024         long l853 = 853;
   3025         int i854 = 854;
   3026         long l854 = 854;
   3027         int i855 = 855;
   3028         long l855 = 855;
   3029         int i856 = 856;
   3030         long l856 = 856;
   3031         int i857 = 857;
   3032         long l857 = 857;
   3033         int i858 = 858;
   3034         long l858 = 858;
   3035         int i859 = 859;
   3036         long l859 = 859;
   3037         int i860 = 860;
   3038         long l860 = 860;
   3039         int i861 = 861;
   3040         long l861 = 861;
   3041         int i862 = 862;
   3042         long l862 = 862;
   3043         int i863 = 863;
   3044         long l863 = 863;
   3045         int i864 = 864;
   3046         long l864 = 864;
   3047         int i865 = 865;
   3048         long l865 = 865;
   3049         int i866 = 866;
   3050         long l866 = 866;
   3051         int i867 = 867;
   3052         long l867 = 867;
   3053         int i868 = 868;
   3054         long l868 = 868;
   3055         int i869 = 869;
   3056         long l869 = 869;
   3057         int i870 = 870;
   3058         long l870 = 870;
   3059         int i871 = 871;
   3060         long l871 = 871;
   3061         int i872 = 872;
   3062         long l872 = 872;
   3063         int i873 = 873;
   3064         long l873 = 873;
   3065         int i874 = 874;
   3066         long l874 = 874;
   3067         int i875 = 875;
   3068         long l875 = 875;
   3069         int i876 = 876;
   3070         long l876 = 876;
   3071         int i877 = 877;
   3072         long l877 = 877;
   3073         int i878 = 878;
   3074         long l878 = 878;
   3075         int i879 = 879;
   3076         long l879 = 879;
   3077         int i880 = 880;
   3078         long l880 = 880;
   3079         int i881 = 881;
   3080         long l881 = 881;
   3081         int i882 = 882;
   3082         long l882 = 882;
   3083         int i883 = 883;
   3084         long l883 = 883;
   3085         int i884 = 884;
   3086         long l884 = 884;
   3087         int i885 = 885;
   3088         long l885 = 885;
   3089         int i886 = 886;
   3090         long l886 = 886;
   3091         int i887 = 887;
   3092         long l887 = 887;
   3093         int i888 = 888;
   3094         long l888 = 888;
   3095         int i889 = 889;
   3096         long l889 = 889;
   3097         int i890 = 890;
   3098         long l890 = 890;
   3099         int i891 = 891;
   3100         long l891 = 891;
   3101         int i892 = 892;
   3102         long l892 = 892;
   3103         int i893 = 893;
   3104         long l893 = 893;
   3105         int i894 = 894;
   3106         long l894 = 894;
   3107         int i895 = 895;
   3108         long l895 = 895;
   3109         int i896 = 896;
   3110         long l896 = 896;
   3111         int i897 = 897;
   3112         long l897 = 897;
   3113         int i898 = 898;
   3114         long l898 = 898;
   3115         int i899 = 899;
   3116         long l899 = 899;
   3117         int i900 = 900;
   3118         long l900 = 900;
   3119         int i901 = 901;
   3120         long l901 = 901;
   3121         int i902 = 902;
   3122         long l902 = 902;
   3123         int i903 = 903;
   3124         long l903 = 903;
   3125         int i904 = 904;
   3126         long l904 = 904;
   3127         int i905 = 905;
   3128         long l905 = 905;
   3129         int i906 = 906;
   3130         long l906 = 906;
   3131         int i907 = 907;
   3132         long l907 = 907;
   3133         int i908 = 908;
   3134         long l908 = 908;
   3135         int i909 = 909;
   3136         long l909 = 909;
   3137         int i910 = 910;
   3138         long l910 = 910;
   3139         int i911 = 911;
   3140         long l911 = 911;
   3141         int i912 = 912;
   3142         long l912 = 912;
   3143         int i913 = 913;
   3144         long l913 = 913;
   3145         int i914 = 914;
   3146         long l914 = 914;
   3147         int i915 = 915;
   3148         long l915 = 915;
   3149         int i916 = 916;
   3150         long l916 = 916;
   3151         int i917 = 917;
   3152         long l917 = 917;
   3153         int i918 = 918;
   3154         long l918 = 918;
   3155         int i919 = 919;
   3156         long l919 = 919;
   3157         int i920 = 920;
   3158         long l920 = 920;
   3159         int i921 = 921;
   3160         long l921 = 921;
   3161         int i922 = 922;
   3162         long l922 = 922;
   3163         int i923 = 923;
   3164         long l923 = 923;
   3165         int i924 = 924;
   3166         long l924 = 924;
   3167         int i925 = 925;
   3168         long l925 = 925;
   3169         int i926 = 926;
   3170         long l926 = 926;
   3171         int i927 = 927;
   3172         long l927 = 927;
   3173         int i928 = 928;
   3174         long l928 = 928;
   3175         int i929 = 929;
   3176         long l929 = 929;
   3177         int i930 = 930;
   3178         long l930 = 930;
   3179         int i931 = 931;
   3180         long l931 = 931;
   3181         int i932 = 932;
   3182         long l932 = 932;
   3183         int i933 = 933;
   3184         long l933 = 933;
   3185         int i934 = 934;
   3186         long l934 = 934;
   3187         int i935 = 935;
   3188         long l935 = 935;
   3189         int i936 = 936;
   3190         long l936 = 936;
   3191         int i937 = 937;
   3192         long l937 = 937;
   3193         int i938 = 938;
   3194         long l938 = 938;
   3195         int i939 = 939;
   3196         long l939 = 939;
   3197         int i940 = 940;
   3198         long l940 = 940;
   3199         int i941 = 941;
   3200         long l941 = 941;
   3201         int i942 = 942;
   3202         long l942 = 942;
   3203         int i943 = 943;
   3204         long l943 = 943;
   3205         int i944 = 944;
   3206         long l944 = 944;
   3207         int i945 = 945;
   3208         long l945 = 945;
   3209         int i946 = 946;
   3210         long l946 = 946;
   3211         int i947 = 947;
   3212         long l947 = 947;
   3213         int i948 = 948;
   3214         long l948 = 948;
   3215         int i949 = 949;
   3216         long l949 = 949;
   3217         int i950 = 950;
   3218         long l950 = 950;
   3219         int i951 = 951;
   3220         long l951 = 951;
   3221         int i952 = 952;
   3222         long l952 = 952;
   3223         int i953 = 953;
   3224         long l953 = 953;
   3225         int i954 = 954;
   3226         long l954 = 954;
   3227         int i955 = 955;
   3228         long l955 = 955;
   3229         int i956 = 956;
   3230         long l956 = 956;
   3231         int i957 = 957;
   3232         long l957 = 957;
   3233         int i958 = 958;
   3234         long l958 = 958;
   3235         int i959 = 959;
   3236         long l959 = 959;
   3237         int i960 = 960;
   3238         long l960 = 960;
   3239         int i961 = 961;
   3240         long l961 = 961;
   3241         int i962 = 962;
   3242         long l962 = 962;
   3243         int i963 = 963;
   3244         long l963 = 963;
   3245         int i964 = 964;
   3246         long l964 = 964;
   3247         int i965 = 965;
   3248         long l965 = 965;
   3249         int i966 = 966;
   3250         long l966 = 966;
   3251         int i967 = 967;
   3252         long l967 = 967;
   3253         int i968 = 968;
   3254         long l968 = 968;
   3255         int i969 = 969;
   3256         long l969 = 969;
   3257         int i970 = 970;
   3258         long l970 = 970;
   3259         int i971 = 971;
   3260         long l971 = 971;
   3261         int i972 = 972;
   3262         long l972 = 972;
   3263         int i973 = 973;
   3264         long l973 = 973;
   3265         int i974 = 974;
   3266         long l974 = 974;
   3267         int i975 = 975;
   3268         long l975 = 975;
   3269         int i976 = 976;
   3270         long l976 = 976;
   3271         int i977 = 977;
   3272         long l977 = 977;
   3273         int i978 = 978;
   3274         long l978 = 978;
   3275         int i979 = 979;
   3276         long l979 = 979;
   3277         int i980 = 980;
   3278         long l980 = 980;
   3279         int i981 = 981;
   3280         long l981 = 981;
   3281         int i982 = 982;
   3282         long l982 = 982;
   3283         int i983 = 983;
   3284         long l983 = 983;
   3285         int i984 = 984;
   3286         long l984 = 984;
   3287         int i985 = 985;
   3288         long l985 = 985;
   3289         int i986 = 986;
   3290         long l986 = 986;
   3291         int i987 = 987;
   3292         long l987 = 987;
   3293         int i988 = 988;
   3294         long l988 = 988;
   3295         int i989 = 989;
   3296         long l989 = 989;
   3297         int i990 = 990;
   3298         long l990 = 990;
   3299         int i991 = 991;
   3300         long l991 = 991;
   3301         int i992 = 992;
   3302         long l992 = 992;
   3303         int i993 = 993;
   3304         long l993 = 993;
   3305         int i994 = 994;
   3306         long l994 = 994;
   3307         int i995 = 995;
   3308         long l995 = 995;
   3309         int i996 = 996;
   3310         long l996 = 996;
   3311         int i997 = 997;
   3312         long l997 = 997;
   3313         int i998 = 998;
   3314         long l998 = 998;
   3315         int i999 = 999;
   3316         long l999 = 999;
   3317         i1 += i0;
   3318         l1 = l0;
   3319         i2 += i1;
   3320         l2 = l1;
   3321         i3 += i2;
   3322         l3 = l2;
   3323         i4 += i3;
   3324         l4 = l3;
   3325         i5 += i4;
   3326         l5 = l4;
   3327         i6 += i5;
   3328         l6 = l5;
   3329         i7 += i6;
   3330         l7 = l6;
   3331         i8 += i7;
   3332         l8 = l7;
   3333         i9 += i8;
   3334         l9 = l8;
   3335         i10 += i9;
   3336         l10 = l9;
   3337         i11 += i10;
   3338         l11 = l10;
   3339         i12 += i11;
   3340         l12 = l11;
   3341         i13 += i12;
   3342         l13 = l12;
   3343         i14 += i13;
   3344         l14 = l13;
   3345         i15 += i14;
   3346         l15 = l14;
   3347         i16 += i15;
   3348         l16 = l15;
   3349         i17 += i16;
   3350         l17 = l16;
   3351         i18 += i17;
   3352         l18 = l17;
   3353         i19 += i18;
   3354         l19 = l18;
   3355         i20 += i19;
   3356         l20 = l19;
   3357         i21 += i20;
   3358         l21 = l20;
   3359         i22 += i21;
   3360         l22 = l21;
   3361         i23 += i22;
   3362         l23 = l22;
   3363         i24 += i23;
   3364         l24 = l23;
   3365         i25 += i24;
   3366         l25 = l24;
   3367         i26 += i25;
   3368         l26 = l25;
   3369         i27 += i26;
   3370         l27 = l26;
   3371         i28 += i27;
   3372         l28 = l27;
   3373         i29 += i28;
   3374         l29 = l28;
   3375         i30 += i29;
   3376         l30 = l29;
   3377         i31 += i30;
   3378         l31 = l30;
   3379         i32 += i31;
   3380         l32 = l31;
   3381         i33 += i32;
   3382         l33 = l32;
   3383         i34 += i33;
   3384         l34 = l33;
   3385         i35 += i34;
   3386         l35 = l34;
   3387         i36 += i35;
   3388         l36 = l35;
   3389         i37 += i36;
   3390         l37 = l36;
   3391         i38 += i37;
   3392         l38 = l37;
   3393         i39 += i38;
   3394         l39 = l38;
   3395         i40 += i39;
   3396         l40 = l39;
   3397         i41 += i40;
   3398         l41 = l40;
   3399         i42 += i41;
   3400         l42 = l41;
   3401         i43 += i42;
   3402         l43 = l42;
   3403         i44 += i43;
   3404         l44 = l43;
   3405         i45 += i44;
   3406         l45 = l44;
   3407         i46 += i45;
   3408         l46 = l45;
   3409         i47 += i46;
   3410         l47 = l46;
   3411         i48 += i47;
   3412         l48 = l47;
   3413         i49 += i48;
   3414         l49 = l48;
   3415         i50 += i49;
   3416         l50 = l49;
   3417         i51 += i50;
   3418         l51 = l50;
   3419         i52 += i51;
   3420         l52 = l51;
   3421         i53 += i52;
   3422         l53 = l52;
   3423         i54 += i53;
   3424         l54 = l53;
   3425         i55 += i54;
   3426         l55 = l54;
   3427         i56 += i55;
   3428         l56 = l55;
   3429         i57 += i56;
   3430         l57 = l56;
   3431         i58 += i57;
   3432         l58 = l57;
   3433         i59 += i58;
   3434         l59 = l58;
   3435         i60 += i59;
   3436         l60 = l59;
   3437         i61 += i60;
   3438         l61 = l60;
   3439         i62 += i61;
   3440         l62 = l61;
   3441         i63 += i62;
   3442         l63 = l62;
   3443         i64 += i63;
   3444         l64 = l63;
   3445         i65 += i64;
   3446         l65 = l64;
   3447         i66 += i65;
   3448         l66 = l65;
   3449         i67 += i66;
   3450         l67 = l66;
   3451         i68 += i67;
   3452         l68 = l67;
   3453         i69 += i68;
   3454         l69 = l68;
   3455         i70 += i69;
   3456         l70 = l69;
   3457         i71 += i70;
   3458         l71 = l70;
   3459         i72 += i71;
   3460         l72 = l71;
   3461         i73 += i72;
   3462         l73 = l72;
   3463         i74 += i73;
   3464         l74 = l73;
   3465         i75 += i74;
   3466         l75 = l74;
   3467         i76 += i75;
   3468         l76 = l75;
   3469         i77 += i76;
   3470         l77 = l76;
   3471         i78 += i77;
   3472         l78 = l77;
   3473         i79 += i78;
   3474         l79 = l78;
   3475         i80 += i79;
   3476         l80 = l79;
   3477         i81 += i80;
   3478         l81 = l80;
   3479         i82 += i81;
   3480         l82 = l81;
   3481         i83 += i82;
   3482         l83 = l82;
   3483         i84 += i83;
   3484         l84 = l83;
   3485         i85 += i84;
   3486         l85 = l84;
   3487         i86 += i85;
   3488         l86 = l85;
   3489         i87 += i86;
   3490         l87 = l86;
   3491         i88 += i87;
   3492         l88 = l87;
   3493         i89 += i88;
   3494         l89 = l88;
   3495         i90 += i89;
   3496         l90 = l89;
   3497         i91 += i90;
   3498         l91 = l90;
   3499         i92 += i91;
   3500         l92 = l91;
   3501         i93 += i92;
   3502         l93 = l92;
   3503         i94 += i93;
   3504         l94 = l93;
   3505         i95 += i94;
   3506         l95 = l94;
   3507         i96 += i95;
   3508         l96 = l95;
   3509         i97 += i96;
   3510         l97 = l96;
   3511         i98 += i97;
   3512         l98 = l97;
   3513         i99 += i98;
   3514         l99 = l98;
   3515         i100 += i99;
   3516         l100 = l99;
   3517         i101 += i100;
   3518         l101 = l100;
   3519         i102 += i101;
   3520         l102 = l101;
   3521         i103 += i102;
   3522         l103 = l102;
   3523         i104 += i103;
   3524         l104 = l103;
   3525         i105 += i104;
   3526         l105 = l104;
   3527         i106 += i105;
   3528         l106 = l105;
   3529         i107 += i106;
   3530         l107 = l106;
   3531         i108 += i107;
   3532         l108 = l107;
   3533         i109 += i108;
   3534         l109 = l108;
   3535         i110 += i109;
   3536         l110 = l109;
   3537         i111 += i110;
   3538         l111 = l110;
   3539         i112 += i111;
   3540         l112 = l111;
   3541         i113 += i112;
   3542         l113 = l112;
   3543         i114 += i113;
   3544         l114 = l113;
   3545         i115 += i114;
   3546         l115 = l114;
   3547         i116 += i115;
   3548         l116 = l115;
   3549         i117 += i116;
   3550         l117 = l116;
   3551         i118 += i117;
   3552         l118 = l117;
   3553         i119 += i118;
   3554         l119 = l118;
   3555         i120 += i119;
   3556         l120 = l119;
   3557         i121 += i120;
   3558         l121 = l120;
   3559         i122 += i121;
   3560         l122 = l121;
   3561         i123 += i122;
   3562         l123 = l122;
   3563         i124 += i123;
   3564         l124 = l123;
   3565         i125 += i124;
   3566         l125 = l124;
   3567         i126 += i125;
   3568         l126 = l125;
   3569         i127 += i126;
   3570         l127 = l126;
   3571         i128 += i127;
   3572         l128 = l127;
   3573         i129 += i128;
   3574         l129 = l128;
   3575         i130 += i129;
   3576         l130 = l129;
   3577         i131 += i130;
   3578         l131 = l130;
   3579         i132 += i131;
   3580         l132 = l131;
   3581         i133 += i132;
   3582         l133 = l132;
   3583         i134 += i133;
   3584         l134 = l133;
   3585         i135 += i134;
   3586         l135 = l134;
   3587         i136 += i135;
   3588         l136 = l135;
   3589         i137 += i136;
   3590         l137 = l136;
   3591         i138 += i137;
   3592         l138 = l137;
   3593         i139 += i138;
   3594         l139 = l138;
   3595         i140 += i139;
   3596         l140 = l139;
   3597         i141 += i140;
   3598         l141 = l140;
   3599         i142 += i141;
   3600         l142 = l141;
   3601         i143 += i142;
   3602         l143 = l142;
   3603         i144 += i143;
   3604         l144 = l143;
   3605         i145 += i144;
   3606         l145 = l144;
   3607         i146 += i145;
   3608         l146 = l145;
   3609         i147 += i146;
   3610         l147 = l146;
   3611         i148 += i147;
   3612         l148 = l147;
   3613         i149 += i148;
   3614         l149 = l148;
   3615         i150 += i149;
   3616         l150 = l149;
   3617         i151 += i150;
   3618         l151 = l150;
   3619         i152 += i151;
   3620         l152 = l151;
   3621         i153 += i152;
   3622         l153 = l152;
   3623         i154 += i153;
   3624         l154 = l153;
   3625         i155 += i154;
   3626         l155 = l154;
   3627         i156 += i155;
   3628         l156 = l155;
   3629         i157 += i156;
   3630         l157 = l156;
   3631         i158 += i157;
   3632         l158 = l157;
   3633         i159 += i158;
   3634         l159 = l158;
   3635         i160 += i159;
   3636         l160 = l159;
   3637         i161 += i160;
   3638         l161 = l160;
   3639         i162 += i161;
   3640         l162 = l161;
   3641         i163 += i162;
   3642         l163 = l162;
   3643         i164 += i163;
   3644         l164 = l163;
   3645         i165 += i164;
   3646         l165 = l164;
   3647         i166 += i165;
   3648         l166 = l165;
   3649         i167 += i166;
   3650         l167 = l166;
   3651         i168 += i167;
   3652         l168 = l167;
   3653         i169 += i168;
   3654         l169 = l168;
   3655         i170 += i169;
   3656         l170 = l169;
   3657         i171 += i170;
   3658         l171 = l170;
   3659         i172 += i171;
   3660         l172 = l171;
   3661         i173 += i172;
   3662         l173 = l172;
   3663         i174 += i173;
   3664         l174 = l173;
   3665         i175 += i174;
   3666         l175 = l174;
   3667         i176 += i175;
   3668         l176 = l175;
   3669         i177 += i176;
   3670         l177 = l176;
   3671         i178 += i177;
   3672         l178 = l177;
   3673         i179 += i178;
   3674         l179 = l178;
   3675         i180 += i179;
   3676         l180 = l179;
   3677         i181 += i180;
   3678         l181 = l180;
   3679         i182 += i181;
   3680         l182 = l181;
   3681         i183 += i182;
   3682         l183 = l182;
   3683         i184 += i183;
   3684         l184 = l183;
   3685         i185 += i184;
   3686         l185 = l184;
   3687         i186 += i185;
   3688         l186 = l185;
   3689         i187 += i186;
   3690         l187 = l186;
   3691         i188 += i187;
   3692         l188 = l187;
   3693         i189 += i188;
   3694         l189 = l188;
   3695         i190 += i189;
   3696         l190 = l189;
   3697         i191 += i190;
   3698         l191 = l190;
   3699         i192 += i191;
   3700         l192 = l191;
   3701         i193 += i192;
   3702         l193 = l192;
   3703         i194 += i193;
   3704         l194 = l193;
   3705         i195 += i194;
   3706         l195 = l194;
   3707         i196 += i195;
   3708         l196 = l195;
   3709         i197 += i196;
   3710         l197 = l196;
   3711         i198 += i197;
   3712         l198 = l197;
   3713         i199 += i198;
   3714         l199 = l198;
   3715         i200 += i199;
   3716         l200 = l199;
   3717         i201 += i200;
   3718         l201 = l200;
   3719         i202 += i201;
   3720         l202 = l201;
   3721         i203 += i202;
   3722         l203 = l202;
   3723         i204 += i203;
   3724         l204 = l203;
   3725         i205 += i204;
   3726         l205 = l204;
   3727         i206 += i205;
   3728         l206 = l205;
   3729         i207 += i206;
   3730         l207 = l206;
   3731         i208 += i207;
   3732         l208 = l207;
   3733         i209 += i208;
   3734         l209 = l208;
   3735         i210 += i209;
   3736         l210 = l209;
   3737         i211 += i210;
   3738         l211 = l210;
   3739         i212 += i211;
   3740         l212 = l211;
   3741         i213 += i212;
   3742         l213 = l212;
   3743         i214 += i213;
   3744         l214 = l213;
   3745         i215 += i214;
   3746         l215 = l214;
   3747         i216 += i215;
   3748         l216 = l215;
   3749         i217 += i216;
   3750         l217 = l216;
   3751         i218 += i217;
   3752         l218 = l217;
   3753         i219 += i218;
   3754         l219 = l218;
   3755         i220 += i219;
   3756         l220 = l219;
   3757         i221 += i220;
   3758         l221 = l220;
   3759         i222 += i221;
   3760         l222 = l221;
   3761         i223 += i222;
   3762         l223 = l222;
   3763         i224 += i223;
   3764         l224 = l223;
   3765         i225 += i224;
   3766         l225 = l224;
   3767         i226 += i225;
   3768         l226 = l225;
   3769         i227 += i226;
   3770         l227 = l226;
   3771         i228 += i227;
   3772         l228 = l227;
   3773         i229 += i228;
   3774         l229 = l228;
   3775         i230 += i229;
   3776         l230 = l229;
   3777         i231 += i230;
   3778         l231 = l230;
   3779         i232 += i231;
   3780         l232 = l231;
   3781         i233 += i232;
   3782         l233 = l232;
   3783         i234 += i233;
   3784         l234 = l233;
   3785         i235 += i234;
   3786         l235 = l234;
   3787         i236 += i235;
   3788         l236 = l235;
   3789         i237 += i236;
   3790         l237 = l236;
   3791         i238 += i237;
   3792         l238 = l237;
   3793         i239 += i238;
   3794         l239 = l238;
   3795         i240 += i239;
   3796         l240 = l239;
   3797         i241 += i240;
   3798         l241 = l240;
   3799         i242 += i241;
   3800         l242 = l241;
   3801         i243 += i242;
   3802         l243 = l242;
   3803         i244 += i243;
   3804         l244 = l243;
   3805         i245 += i244;
   3806         l245 = l244;
   3807         i246 += i245;
   3808         l246 = l245;
   3809         i247 += i246;
   3810         l247 = l246;
   3811         i248 += i247;
   3812         l248 = l247;
   3813         i249 += i248;
   3814         l249 = l248;
   3815         i250 += i249;
   3816         l250 = l249;
   3817         i251 += i250;
   3818         l251 = l250;
   3819         i252 += i251;
   3820         l252 = l251;
   3821         i253 += i252;
   3822         l253 = l252;
   3823         i254 += i253;
   3824         l254 = l253;
   3825         i255 += i254;
   3826         l255 = l254;
   3827         i256 += i255;
   3828         l256 = l255;
   3829         i257 += i256;
   3830         l257 = l256;
   3831         i258 += i257;
   3832         l258 = l257;
   3833         i259 += i258;
   3834         l259 = l258;
   3835         i260 += i259;
   3836         l260 = l259;
   3837         i261 += i260;
   3838         l261 = l260;
   3839         i262 += i261;
   3840         l262 = l261;
   3841         i263 += i262;
   3842         l263 = l262;
   3843         i264 += i263;
   3844         l264 = l263;
   3845         i265 += i264;
   3846         l265 = l264;
   3847         i266 += i265;
   3848         l266 = l265;
   3849         i267 += i266;
   3850         l267 = l266;
   3851         i268 += i267;
   3852         l268 = l267;
   3853         i269 += i268;
   3854         l269 = l268;
   3855         i270 += i269;
   3856         l270 = l269;
   3857         i271 += i270;
   3858         l271 = l270;
   3859         i272 += i271;
   3860         l272 = l271;
   3861         i273 += i272;
   3862         l273 = l272;
   3863         i274 += i273;
   3864         l274 = l273;
   3865         i275 += i274;
   3866         l275 = l274;
   3867         i276 += i275;
   3868         l276 = l275;
   3869         i277 += i276;
   3870         l277 = l276;
   3871         i278 += i277;
   3872         l278 = l277;
   3873         i279 += i278;
   3874         l279 = l278;
   3875         i280 += i279;
   3876         l280 = l279;
   3877         i281 += i280;
   3878         l281 = l280;
   3879         i282 += i281;
   3880         l282 = l281;
   3881         i283 += i282;
   3882         l283 = l282;
   3883         i284 += i283;
   3884         l284 = l283;
   3885         i285 += i284;
   3886         l285 = l284;
   3887         i286 += i285;
   3888         l286 = l285;
   3889         i287 += i286;
   3890         l287 = l286;
   3891         i288 += i287;
   3892         l288 = l287;
   3893         i289 += i288;
   3894         l289 = l288;
   3895         i290 += i289;
   3896         l290 = l289;
   3897         i291 += i290;
   3898         l291 = l290;
   3899         i292 += i291;
   3900         l292 = l291;
   3901         i293 += i292;
   3902         l293 = l292;
   3903         i294 += i293;
   3904         l294 = l293;
   3905         i295 += i294;
   3906         l295 = l294;
   3907         i296 += i295;
   3908         l296 = l295;
   3909         i297 += i296;
   3910         l297 = l296;
   3911         i298 += i297;
   3912         l298 = l297;
   3913         i299 += i298;
   3914         l299 = l298;
   3915         i300 += i299;
   3916         l300 = l299;
   3917         i301 += i300;
   3918         l301 = l300;
   3919         i302 += i301;
   3920         l302 = l301;
   3921         i303 += i302;
   3922         l303 = l302;
   3923         i304 += i303;
   3924         l304 = l303;
   3925         i305 += i304;
   3926         l305 = l304;
   3927         i306 += i305;
   3928         l306 = l305;
   3929         i307 += i306;
   3930         l307 = l306;
   3931         i308 += i307;
   3932         l308 = l307;
   3933         i309 += i308;
   3934         l309 = l308;
   3935         i310 += i309;
   3936         l310 = l309;
   3937         i311 += i310;
   3938         l311 = l310;
   3939         i312 += i311;
   3940         l312 = l311;
   3941         i313 += i312;
   3942         l313 = l312;
   3943         i314 += i313;
   3944         l314 = l313;
   3945         i315 += i314;
   3946         l315 = l314;
   3947         i316 += i315;
   3948         l316 = l315;
   3949         i317 += i316;
   3950         l317 = l316;
   3951         i318 += i317;
   3952         l318 = l317;
   3953         i319 += i318;
   3954         l319 = l318;
   3955         i320 += i319;
   3956         l320 = l319;
   3957         i321 += i320;
   3958         l321 = l320;
   3959         i322 += i321;
   3960         l322 = l321;
   3961         i323 += i322;
   3962         l323 = l322;
   3963         i324 += i323;
   3964         l324 = l323;
   3965         i325 += i324;
   3966         l325 = l324;
   3967         i326 += i325;
   3968         l326 = l325;
   3969         i327 += i326;
   3970         l327 = l326;
   3971         i328 += i327;
   3972         l328 = l327;
   3973         i329 += i328;
   3974         l329 = l328;
   3975         i330 += i329;
   3976         l330 = l329;
   3977         i331 += i330;
   3978         l331 = l330;
   3979         i332 += i331;
   3980         l332 = l331;
   3981         i333 += i332;
   3982         l333 = l332;
   3983         i334 += i333;
   3984         l334 = l333;
   3985         i335 += i334;
   3986         l335 = l334;
   3987         i336 += i335;
   3988         l336 = l335;
   3989         i337 += i336;
   3990         l337 = l336;
   3991         i338 += i337;
   3992         l338 = l337;
   3993         i339 += i338;
   3994         l339 = l338;
   3995         i340 += i339;
   3996         l340 = l339;
   3997         i341 += i340;
   3998         l341 = l340;
   3999         i342 += i341;
   4000         l342 = l341;
   4001         i343 += i342;
   4002         l343 = l342;
   4003         i344 += i343;
   4004         l344 = l343;
   4005         i345 += i344;
   4006         l345 = l344;
   4007         i346 += i345;
   4008         l346 = l345;
   4009         i347 += i346;
   4010         l347 = l346;
   4011         i348 += i347;
   4012         l348 = l347;
   4013         i349 += i348;
   4014         l349 = l348;
   4015         i350 += i349;
   4016         l350 = l349;
   4017         i351 += i350;
   4018         l351 = l350;
   4019         i352 += i351;
   4020         l352 = l351;
   4021         i353 += i352;
   4022         l353 = l352;
   4023         i354 += i353;
   4024         l354 = l353;
   4025         i355 += i354;
   4026         l355 = l354;
   4027         i356 += i355;
   4028         l356 = l355;
   4029         i357 += i356;
   4030         l357 = l356;
   4031         i358 += i357;
   4032         l358 = l357;
   4033         i359 += i358;
   4034         l359 = l358;
   4035         i360 += i359;
   4036         l360 = l359;
   4037         i361 += i360;
   4038         l361 = l360;
   4039         i362 += i361;
   4040         l362 = l361;
   4041         i363 += i362;
   4042         l363 = l362;
   4043         i364 += i363;
   4044         l364 = l363;
   4045         i365 += i364;
   4046         l365 = l364;
   4047         i366 += i365;
   4048         l366 = l365;
   4049         i367 += i366;
   4050         l367 = l366;
   4051         i368 += i367;
   4052         l368 = l367;
   4053         i369 += i368;
   4054         l369 = l368;
   4055         i370 += i369;
   4056         l370 = l369;
   4057         i371 += i370;
   4058         l371 = l370;
   4059         i372 += i371;
   4060         l372 = l371;
   4061         i373 += i372;
   4062         l373 = l372;
   4063         i374 += i373;
   4064         l374 = l373;
   4065         i375 += i374;
   4066         l375 = l374;
   4067         i376 += i375;
   4068         l376 = l375;
   4069         i377 += i376;
   4070         l377 = l376;
   4071         i378 += i377;
   4072         l378 = l377;
   4073         i379 += i378;
   4074         l379 = l378;
   4075         i380 += i379;
   4076         l380 = l379;
   4077         i381 += i380;
   4078         l381 = l380;
   4079         i382 += i381;
   4080         l382 = l381;
   4081         i383 += i382;
   4082         l383 = l382;
   4083         i384 += i383;
   4084         l384 = l383;
   4085         i385 += i384;
   4086         l385 = l384;
   4087         i386 += i385;
   4088         l386 = l385;
   4089         i387 += i386;
   4090         l387 = l386;
   4091         i388 += i387;
   4092         l388 = l387;
   4093         i389 += i388;
   4094         l389 = l388;
   4095         i390 += i389;
   4096         l390 = l389;
   4097         i391 += i390;
   4098         l391 = l390;
   4099         i392 += i391;
   4100         l392 = l391;
   4101         i393 += i392;
   4102         l393 = l392;
   4103         i394 += i393;
   4104         l394 = l393;
   4105         i395 += i394;
   4106         l395 = l394;
   4107         i396 += i395;
   4108         l396 = l395;
   4109         i397 += i396;
   4110         l397 = l396;
   4111         i398 += i397;
   4112         l398 = l397;
   4113         i399 += i398;
   4114         l399 = l398;
   4115         i400 += i399;
   4116         l400 = l399;
   4117         i401 += i400;
   4118         l401 = l400;
   4119         i402 += i401;
   4120         l402 = l401;
   4121         i403 += i402;
   4122         l403 = l402;
   4123         i404 += i403;
   4124         l404 = l403;
   4125         i405 += i404;
   4126         l405 = l404;
   4127         i406 += i405;
   4128         l406 = l405;
   4129         i407 += i406;
   4130         l407 = l406;
   4131         i408 += i407;
   4132         l408 = l407;
   4133         i409 += i408;
   4134         l409 = l408;
   4135         i410 += i409;
   4136         l410 = l409;
   4137         i411 += i410;
   4138         l411 = l410;
   4139         i412 += i411;
   4140         l412 = l411;
   4141         i413 += i412;
   4142         l413 = l412;
   4143         i414 += i413;
   4144         l414 = l413;
   4145         i415 += i414;
   4146         l415 = l414;
   4147         i416 += i415;
   4148         l416 = l415;
   4149         i417 += i416;
   4150         l417 = l416;
   4151         i418 += i417;
   4152         l418 = l417;
   4153         i419 += i418;
   4154         l419 = l418;
   4155         i420 += i419;
   4156         l420 = l419;
   4157         i421 += i420;
   4158         l421 = l420;
   4159         i422 += i421;
   4160         l422 = l421;
   4161         i423 += i422;
   4162         l423 = l422;
   4163         i424 += i423;
   4164         l424 = l423;
   4165         i425 += i424;
   4166         l425 = l424;
   4167         i426 += i425;
   4168         l426 = l425;
   4169         i427 += i426;
   4170         l427 = l426;
   4171         i428 += i427;
   4172         l428 = l427;
   4173         i429 += i428;
   4174         l429 = l428;
   4175         i430 += i429;
   4176         l430 = l429;
   4177         i431 += i430;
   4178         l431 = l430;
   4179         i432 += i431;
   4180         l432 = l431;
   4181         i433 += i432;
   4182         l433 = l432;
   4183         i434 += i433;
   4184         l434 = l433;
   4185         i435 += i434;
   4186         l435 = l434;
   4187         i436 += i435;
   4188         l436 = l435;
   4189         i437 += i436;
   4190         l437 = l436;
   4191         i438 += i437;
   4192         l438 = l437;
   4193         i439 += i438;
   4194         l439 = l438;
   4195         i440 += i439;
   4196         l440 = l439;
   4197         i441 += i440;
   4198         l441 = l440;
   4199         i442 += i441;
   4200         l442 = l441;
   4201         i443 += i442;
   4202         l443 = l442;
   4203         i444 += i443;
   4204         l444 = l443;
   4205         i445 += i444;
   4206         l445 = l444;
   4207         i446 += i445;
   4208         l446 = l445;
   4209         i447 += i446;
   4210         l447 = l446;
   4211         i448 += i447;
   4212         l448 = l447;
   4213         i449 += i448;
   4214         l449 = l448;
   4215         i450 += i449;
   4216         l450 = l449;
   4217         i451 += i450;
   4218         l451 = l450;
   4219         i452 += i451;
   4220         l452 = l451;
   4221         i453 += i452;
   4222         l453 = l452;
   4223         i454 += i453;
   4224         l454 = l453;
   4225         i455 += i454;
   4226         l455 = l454;
   4227         i456 +=