blob: 9ad8ea7b1b39e0e09c01074f4af6d2f4c5949625 [file] [log] [blame]
jeffhao5d1ac922011-09-29 17:41:15 -07001/*
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
17import java.util.concurrent.*;
Yevgeny Rouband3a2dfa2014-03-18 15:55:16 +070018import java.util.concurrent.atomic.AtomicLong;
jeffhao5d1ac922011-09-29 17:41:15 -070019
20/**
21 * Test for Jit regressions.
22 */
23public class Main {
buzbeee62076c2012-03-21 14:26:16 -070024 public static int const0x1234() {
25 return 0x1234;
26 }
27
28 public static long const0x123443211234() {
29 return 0x123443211234L;
30 }
31
jeffhao5d1ac922011-09-29 17:41:15 -070032 public static void main(String args[]) throws Exception {
buzbeeb504d2f2014-09-26 15:09:06 -070033 b17630605();
buzbee98216e52014-09-12 10:40:47 -070034 b17411468();
jeffhao5d1ac922011-09-29 17:41:15 -070035 b2296099Test();
36 b2302318Test();
37 b2487514Test();
buzbee9ab05de2012-01-18 15:43:48 -080038 b5884080Test();
Brian Carlstromb20d24d2014-03-27 16:54:27 -070039 b13679511Test();
Vladimir Markof418f322014-07-09 14:45:36 +010040 b16177324TestWrapper();
Vladimir Marko0a810d22014-07-11 14:44:36 +010041 b16230771TestWrapper();
Vladimir Marko7cd01f52014-10-13 18:29:44 +010042 b17969907TestWrapper();
buzbee4922ef92012-02-24 14:32:20 -080043 largeFrameTest();
Ian Rogers513c64a2012-02-26 15:16:23 -080044 largeFrameTestFloat();
Alexei Zavjalovc17ebe82014-02-26 10:38:23 +070045 mulBy1Test();
Alexei Zavjalov9d894662014-04-21 20:45:24 +070046 constantPropagationTest();
buzbeee62076c2012-03-21 14:26:16 -070047 getterSetterTest();
48 identityTest();
49 wideGetterSetterTest();
50 wideIdentityTest();
51 returnConstantTest();
Vladimir Markoe1fced12014-04-04 14:52:53 +010052 setterTestWithReturnArgIgnoreReturn();
53 setterTestWithReturnArgUseReturn();
54 wideSetterTestWithReturnArgIgnoreReturn();
55 wideSetterTestWithReturnArgUseReturn();
Vladimir Markodb406322014-02-19 14:11:19 +000056 LVNTests.testNPE1();
57 LVNTests.testNPE2();
Elliott Hughes5a8e3d52012-07-11 11:16:24 -070058 ZeroTests.longDivTest();
59 ZeroTests.longModTest();
Vladimir Markoa1a70742014-03-03 10:28:05 +000060 MirOpSelectTests.testIfCcz();
buzbee40bbb392014-03-19 12:28:16 -070061 ManyFloatArgs();
Yevgeny Rouband3a2dfa2014-03-18 15:55:16 +070062 atomicLong();
Chao-ying Fu3d325c62014-03-27 14:17:28 -070063 LiveFlags.test();
Alexei Zavjalov54659e32014-07-30 19:31:04 +070064 minDoubleWith3ConstsTest();
65 }
66
buzbeeb504d2f2014-09-26 15:09:06 -070067 public static void b17630605() {
68 // b/17630605 - failure to properly handle min long immediates.
69 long a1 = 40455547223404749L;
70 long a2 = Long.MIN_VALUE;
71 long answer = a1 + a2;
72 if (answer == -9182916489631371059L) {
73 System.out.println("b17630605 passes");
74 } else {
75 System.out.println("b17630605 fails: " + answer);
76 }
77 }
78
buzbee98216e52014-09-12 10:40:47 -070079 public static void b17411468() {
80 // b/17411468 - inline Math.round failure.
81 double d1 = 1.0;
82 double d2 = Math.round(d1);
83 if (d1 == d2) {
84 System.out.println("b17411468 passes");
85 } else {
86 System.out.println("b17411468 fails: Math.round(" + d1 + ") returned " + d2);
87 }
88 }
89
Alexei Zavjalov54659e32014-07-30 19:31:04 +070090 public static double minDouble(double a, double b, double c) {
91 return Math.min(Math.min(a, b), c);
92 }
93
94 public static void minDoubleWith3ConstsTest() {
95 double result = minDouble(1.2, 2.5, Double.NaN);
96 if (Double.isNaN(result)) {
97 System.out.println("minDoubleWith3ConstsTest passes");
98 } else {
99 System.out.println("minDoubleWith3ConstsTest fails: " + result +
100 " (expecting NaN)");
101 }
Yevgeny Rouband3a2dfa2014-03-18 15:55:16 +0700102 }
103
104 public static void atomicLong() {
105 AtomicLong atomicLong = new AtomicLong();
106 atomicLong.addAndGet(3);
107 atomicLong.addAndGet(2);
108 atomicLong.addAndGet(1);
109 long result = atomicLong.get();
110 System.out.println(result == 6L ? "atomicLong passes" :
111 ("atomicLong failes: returns " + result + ", expected 6")
112 );
buzbeee62076c2012-03-21 14:26:16 -0700113 }
114
115 public static void returnConstantTest() {
116 long res = const0x1234();
117 res += const0x123443211234();
118 Foo foo = new Foo();
119 res += foo.iConst0x1234();
120 res += foo.iConst0x123443211234();
121 if (res == 40031347689680L) {
122 System.out.println("returnConstantTest passes");
123 }
124 else {
125 System.out.println("returnConstantTest fails: " + res +
126 " (expecting 40031347689680)");
127 }
128 }
129
130 static void wideIdentityTest() {
131 Foo foo = new Foo();
Ian Rogers116848d2014-02-07 21:10:37 -0800132 long i = 0x200000001L;
buzbeee62076c2012-03-21 14:26:16 -0700133 i += foo.wideIdent0(i);
134 i += foo.wideIdent1(0,i);
135 i += foo.wideIdent2(0,0,i);
136 i += foo.wideIdent3(0,0,0,i);
137 i += foo.wideIdent4(0,0,0,0,i);
138 i += foo.wideIdent5(0,0,0,0,0,i);
Ian Rogers116848d2014-02-07 21:10:37 -0800139 if (i == 0x8000000040L) {
buzbeee62076c2012-03-21 14:26:16 -0700140 System.out.println("wideIdentityTest passes");
141 }
142 else {
Ian Rogers116848d2014-02-07 21:10:37 -0800143 System.out.println("wideIdentityTest fails: 0x" + Long.toHexString(i) +
144 " (expecting 0x8000000040)");
buzbeee62076c2012-03-21 14:26:16 -0700145 }
146 }
147
148 static void wideGetterSetterTest() {
149 Foo foo = new Foo();
150 long sum = foo.wideGetBar0();
151 sum += foo.wideGetBar1(1);
152 foo.wideSetBar1(sum);
153 sum += foo.wideGetBar2(1,2);
154 foo.wideSetBar2(0,sum);
155 sum += foo.wideGetBar3(1,2,3);
156 foo.wideSetBar3(0,0,sum);
157 sum += foo.wideGetBar4(1,2,3,4);
158 foo.wideSetBar4(0,0,0,sum);
159 sum += foo.wideGetBar5(1,2,3,4,5);
160 foo.wideSetBar5(0,0,0,0,sum);
Vladimir Marko8017ef82014-02-10 09:59:43 +0000161 long result1 = foo.wideGetBar0();
162 long expected1 = 1234L << 5;
163 sum += foo.wideGetBar0();
164 foo.wideSetBar2i(0,sum);
165 sum += foo.wideGetBar0();
166 foo.wideSetBar3i(0,0,sum);
167 sum += foo.wideGetBar0();
168 foo.wideSetBar4i(0,0,0,sum);
169 sum += foo.wideGetBar0();
170 foo.wideSetBar5i(0,0,0,0,sum);
171 long result2 = foo.wideGetBar0();
172 long expected2 = 1234L << 9;
173 if (result1 == expected1 && result2 == expected2) {
buzbeee62076c2012-03-21 14:26:16 -0700174 System.out.println("wideGetterSetterTest passes");
175 }
176 else {
177 System.out.println("wideGetterSetterTest fails: " +
Vladimir Marko8017ef82014-02-10 09:59:43 +0000178 "result1: " + result1 + " (expecting " + expected1 + "), " +
179 "result2: " + result2 + " (expecting " + expected2 + ")");
buzbeee62076c2012-03-21 14:26:16 -0700180 }
181 }
182
183 static void identityTest() {
184 Foo foo = new Foo();
185 int i = 1;
186 i += foo.ident0(i);
187 i += foo.ident1(0,i);
188 i += foo.ident2(0,0,i);
189 i += foo.ident3(0,0,0,i);
190 i += foo.ident4(0,0,0,0,i);
191 i += foo.ident5(0,0,0,0,0,i);
192 if (i == 64) {
193 System.out.println("identityTest passes");
194 }
195 else {
196 System.out.println("identityTest fails: " + i +
197 " (expecting 64)");
198 }
199 }
200
201 static void getterSetterTest() {
202 Foo foo = new Foo();
203 int sum = foo.getBar0();
204 sum += foo.getBar1(1);
205 foo.setBar1(sum);
206 sum += foo.getBar2(1,2);
207 foo.setBar2(0,sum);
208 sum += foo.getBar3(1,2,3);
209 foo.setBar3(0,0,sum);
210 sum += foo.getBar4(1,2,3,4);
211 foo.setBar4(0,0,0,sum);
212 sum += foo.getBar5(1,2,3,4,5);
213 foo.setBar5(0,0,0,0,sum);
buzbee97df07f2012-03-27 16:13:20 -0700214 Foo nullFoo = null;
215 try {
216 sum += Foo.barBar(nullFoo);
217 } catch(NullPointerException npe) {
218 sum += 404;
219 }
220 foo.setBar1(sum);
221 if (foo.getBar0() == 39892) {
buzbeee62076c2012-03-21 14:26:16 -0700222 System.out.println("getterSetterTest passes");
223 }
224 else {
225 System.out.println("getterSetterTest fails: " + foo.getBar0() +
buzbee97df07f2012-03-27 16:13:20 -0700226 " (expecting 39892)");
buzbeee62076c2012-03-21 14:26:16 -0700227 }
jeffhao5d1ac922011-09-29 17:41:15 -0700228 }
229
Vladimir Markoe1fced12014-04-04 14:52:53 +0100230 static void setterTestWithReturnArgIgnoreReturn() {
231 Foo foo = new Foo();
232 int sum = foo.getBar0();
233 sum += foo.getBar0();
234 foo.setBar1ReturnThis(sum);
235 sum += foo.getBar0();
236 foo.setBar2ReturnThis(1,sum);
237 sum += foo.getBar0();
238 foo.setBar3ReturnThis(1,2,sum);
239 sum += foo.getBar0();
240 foo.setBar4ReturnThis(1,2,3,sum);
241 sum += foo.getBar0();
242 foo.setBar5ReturnThis(1,2,3,4,sum);
243 sum += foo.getBar0();
244 foo.setBar1ReturnBarArg(sum);
245 sum += foo.getBar0();
246 foo.setBar2ReturnBarArg(1,sum);
247 sum += foo.getBar0();
248 foo.setBar3ReturnBarArg(1,2,sum);
249 sum += foo.getBar0();
250 foo.setBar4ReturnBarArg(1,2,3,sum);
251 sum += foo.getBar0();
252 foo.setBar5ReturnBarArg(1,2,3,4,sum);
253 sum += foo.getBar0();
254 foo.setBar2ReturnDummyArg1(1,sum);
255 sum += foo.getBar0();
256 foo.setBar3ReturnDummyArg2(1,2,sum);
257 sum += foo.getBar0();
258 foo.setBar4ReturnDummyArg3(1,2,3,sum);
259 sum += foo.getBar0();
260 foo.setBar5ReturnDummyArg4(1,2,3,4,sum);
261 sum += foo.getBar0();
262 Foo nullFoo = Foo.getNullFoo();
263 try {
264 nullFoo.setBar1ReturnThis(sum);
265 } catch(NullPointerException npe) {
266 sum += 404;
267 }
268 try {
269 nullFoo.setBar2ReturnThis(1, sum);
270 } catch(NullPointerException npe) {
271 sum += 2 * 404;
272 }
273 try {
274 nullFoo.setBar3ReturnThis(1, 2, sum);
275 } catch(NullPointerException npe) {
276 sum += 3 * 404;
277 }
278 try {
279 nullFoo.setBar4ReturnThis(1, 2, 3, sum);
280 } catch(NullPointerException npe) {
281 sum += 4 * 404;
282 }
283 try {
284 nullFoo.setBar5ReturnThis(1, 2, 3, 4, sum);
285 } catch(NullPointerException npe) {
286 sum += 5 * 404;
287 }
288 try {
289 nullFoo.setBar1ReturnBarArg(sum);
290 } catch(NullPointerException npe) {
291 sum += 6 * 404;
292 }
293 try {
294 nullFoo.setBar2ReturnBarArg(1, sum);
295 } catch(NullPointerException npe) {
296 sum += 7 * 404;
297 }
298 try {
299 nullFoo.setBar3ReturnBarArg(1, 2, sum);
300 } catch(NullPointerException npe) {
301 sum += 8 * 404;
302 }
303 try {
304 nullFoo.setBar4ReturnBarArg(1, 2, 3, sum);
305 } catch(NullPointerException npe) {
306 sum += 9 * 404;
307 }
308 try {
309 nullFoo.setBar5ReturnBarArg(1, 2, 3, 4, sum);
310 } catch(NullPointerException npe) {
311 sum += 10 * 404;
312 }
313 try {
314 nullFoo.setBar2ReturnDummyArg1(1, sum);
315 } catch(NullPointerException npe) {
316 sum += 11 * 404;
317 }
318 try {
319 nullFoo.setBar3ReturnDummyArg2(1, 2, sum);
320 } catch(NullPointerException npe) {
321 sum += 12 * 404;
322 }
323 try {
324 nullFoo.setBar4ReturnDummyArg3(1, 2, 3, sum);
325 } catch(NullPointerException npe) {
326 sum += 13 * 404;
327 }
328 try {
329 nullFoo.setBar5ReturnDummyArg4(1, 2, 3, 4, sum);
330 } catch(NullPointerException npe) {
331 sum += 14 * 404;
332 }
333 int expected = (1234 << 15) + 404 * (15 * 14 / 2);
334 if (sum == expected) {
335 System.out.println("setterTestWithReturnArgIgnoreReturn passes");
336 }
337 else {
338 System.out.println("setterTestWithReturnArgIgnoreReturn fails: " + sum +
339 " (expecting " + expected + ")");
340 }
341 }
342
343 static void setterTestWithReturnArgUseReturn() {
344 Foo foo = new Foo();
345 int sum = foo.getBar0();
346 int sumDummy = 0;
347 sum += foo.getBar0();
348 Foo foo2 = foo.setBar1ReturnThis(sum);
349 sum += foo2.getBar0();
350 foo = foo2.setBar2ReturnThis(1,sum);
351 sum += foo.getBar0();
352 foo2 = foo.setBar3ReturnThis(1,2,sum);
353 sum += foo2.getBar0();
354 foo = foo2.setBar4ReturnThis(1,2,3,sum);
355 sum += foo.getBar0();
356 foo = foo.setBar5ReturnThis(1,2,3,4,sum);
357 sum += foo.getBar0();
358 sum += foo.setBar1ReturnBarArg(sum);
359 sum += foo.getBar0();
360 sum += foo.setBar2ReturnBarArg(1,sum);
361 sum += foo.getBar0();
362 sum += foo.setBar3ReturnBarArg(1,2,sum);
363 sum += foo.getBar0();
364 sum += foo.setBar4ReturnBarArg(1,2,3,sum);
365 sum += foo.getBar0();
366 sum += foo.setBar5ReturnBarArg(1,2,3,4,sum);
367 sum += foo.getBar0();
368 sumDummy += foo.setBar2ReturnDummyArg1(1,sum);
369 sum += foo.getBar0();
370 sumDummy += foo.setBar3ReturnDummyArg2(1,2,sum);
371 sum += foo.getBar0();
372 sumDummy += foo.setBar4ReturnDummyArg3(1,2,3,sum);
373 sum += foo.getBar0();
374 sumDummy += foo.setBar5ReturnDummyArg4(1,2,3,4,sum);
375 sum += foo.getBar0();
376 Foo nullFoo = Foo.getNullFoo();
377 try {
378 foo = nullFoo.setBar1ReturnThis(sum);
379 } catch(NullPointerException npe) {
380 sum += 404;
381 }
382 try {
383 foo = nullFoo.setBar2ReturnThis(1, sum);
384 } catch(NullPointerException npe) {
385 sum += 2 * 404;
386 }
387 try {
388 foo = nullFoo.setBar3ReturnThis(1, 2, sum);
389 } catch(NullPointerException npe) {
390 sum += 3 * 404;
391 }
392 try {
393 foo = nullFoo.setBar4ReturnThis(1, 2, 3, sum);
394 } catch(NullPointerException npe) {
395 sum += 4 * 404;
396 }
397 try {
398 foo = nullFoo.setBar5ReturnThis(1, 2, 3, 4, sum);
399 } catch(NullPointerException npe) {
400 sum += 5 * 404;
401 }
402 try {
403 sum += nullFoo.setBar1ReturnBarArg(sum);
404 } catch(NullPointerException npe) {
405 sum += 6 * 404;
406 }
407 try {
408 sum += nullFoo.setBar2ReturnBarArg(1, sum);
409 } catch(NullPointerException npe) {
410 sum += 7 * 404;
411 }
412 try {
413 sum += nullFoo.setBar3ReturnBarArg(1, 2, sum);
414 } catch(NullPointerException npe) {
415 sum += 8 * 404;
416 }
417 try {
418 sum += nullFoo.setBar4ReturnBarArg(1, 2, 3, sum);
419 } catch(NullPointerException npe) {
420 sum += 9 * 404;
421 }
422 try {
423 sum += nullFoo.setBar5ReturnBarArg(1, 2, 3, 4, sum);
424 } catch(NullPointerException npe) {
425 sum += 10 * 404;
426 }
427 try {
428 sumDummy += nullFoo.setBar2ReturnDummyArg1(1, sum);
429 } catch(NullPointerException npe) {
430 sum += 11 * 404;
431 }
432 try {
433 sumDummy += nullFoo.setBar3ReturnDummyArg2(1, 2, sum);
434 } catch(NullPointerException npe) {
435 sum += 12 * 404;
436 }
437 try {
438 sumDummy += nullFoo.setBar4ReturnDummyArg3(1, 2, 3, sum);
439 } catch(NullPointerException npe) {
440 sum += 13 * 404;
441 }
442 try {
443 sumDummy += nullFoo.setBar5ReturnDummyArg4(1, 2, 3, 4, sum);
444 } catch(NullPointerException npe) {
445 sum += 14 * 404;
446 }
447 int expected = (1234 << 10) * 3 * 3 * 3 * 3 * 3 + 404 * (15 * 14 / 2);
448 int expectedDummy = 5 * 4 / 2;
449 if (sum == expected && sumDummy == expectedDummy) {
450 System.out.println("setterTestWithReturnArgUseReturn passes");
451 }
452 else {
453 System.out.println("setterTestWithReturnArgUseReturn fails: " + sum +
454 " (expecting " + expected + "), sumDummy = " + sumDummy +
455 "(expecting " + expectedDummy + ")");
456 }
457 }
458
459 static void wideSetterTestWithReturnArgIgnoreReturn() {
460 Foo foo = new Foo();
461 long sum = foo.wideGetBar0();
462 sum += foo.wideGetBar0();
463 foo.wideSetBar1ReturnThis(sum);
464 sum += foo.wideGetBar0();
465 foo.wideSetBar2ReturnThis(1,sum);
466 sum += foo.wideGetBar0();
467 foo.wideSetBar3ReturnThis(1,2,sum);
468 sum += foo.wideGetBar0();
469 foo.wideSetBar4ReturnThis(1,2,3,sum);
470 sum += foo.wideGetBar0();
471 foo.wideSetBar5ReturnThis(1,2,3,4,sum);
472 sum += foo.wideGetBar0();
473 foo.wideSetBar1ReturnBarArg(sum);
474 sum += foo.wideGetBar0();
475 foo.wideSetBar2ReturnBarArg(1,sum);
476 sum += foo.wideGetBar0();
477 foo.wideSetBar3ReturnBarArg(1,2,sum);
478 sum += foo.wideGetBar0();
479 foo.wideSetBar4ReturnBarArg(1,2,3,sum);
480 sum += foo.wideGetBar0();
481 foo.wideSetBar5ReturnBarArg(1,2,3,4,sum);
482 sum += foo.wideGetBar0();
483 foo.wideSetBar2iReturnBarArg(1,sum);
484 sum += foo.wideGetBar0();
485 foo.wideSetBar3iReturnBarArg(1,2,sum);
486 sum += foo.wideGetBar0();
487 foo.wideSetBar4iReturnBarArg(1,2,3,sum);
488 sum += foo.wideGetBar0();
489 foo.wideSetBar5iReturnBarArg(1,2,3,4,sum);
490 sum += foo.wideGetBar0();
491 foo.wideSetBar2ReturnDummyArg1(1,sum);
492 sum += foo.wideGetBar0();
493 foo.wideSetBar3ReturnDummyArg2(1,2,sum);
494 sum += foo.wideGetBar0();
495 foo.wideSetBar4ReturnDummyArg3(1,2,3,sum);
496 sum += foo.wideGetBar0();
497 foo.wideSetBar5ReturnDummyArg4(1,2,3,4,sum);
498 sum += foo.wideGetBar0();
499 foo.wideSetBar2iReturnDummyArg1(1,sum);
500 sum += foo.wideGetBar0();
501 foo.wideSetBar3iReturnDummyArg2(1,2,sum);
502 sum += foo.wideGetBar0();
503 foo.wideSetBar4iReturnDummyArg3(1,2,3,sum);
504 sum += foo.wideGetBar0();
505 foo.wideSetBar5iReturnDummyArg4(1,2,3,4,sum);
506 sum += foo.wideGetBar0();
507 Foo nullFoo = Foo.getNullFoo();
508 try {
509 nullFoo.wideSetBar1ReturnThis(sum);
510 } catch(NullPointerException npe) {
511 sum += 404;
512 }
513 try {
514 nullFoo.wideSetBar2ReturnThis(1, sum);
515 } catch(NullPointerException npe) {
516 sum += 2 * 404;
517 }
518 try {
519 nullFoo.wideSetBar3ReturnThis(1, 2, sum);
520 } catch(NullPointerException npe) {
521 sum += 3 * 404;
522 }
523 try {
524 nullFoo.wideSetBar4ReturnThis(1, 2, 3, sum);
525 } catch(NullPointerException npe) {
526 sum += 4 * 404;
527 }
528 try {
529 nullFoo.wideSetBar5ReturnThis(1, 2, 3, 4, sum);
530 } catch(NullPointerException npe) {
531 sum += 5 * 404;
532 }
533 try {
534 nullFoo.wideSetBar1ReturnBarArg(sum);
535 } catch(NullPointerException npe) {
536 sum += 6 * 404;
537 }
538 try {
539 nullFoo.wideSetBar2ReturnBarArg(1, sum);
540 } catch(NullPointerException npe) {
541 sum += 7 * 404;
542 }
543 try {
544 nullFoo.wideSetBar3ReturnBarArg(1, 2, sum);
545 } catch(NullPointerException npe) {
546 sum += 8 * 404;
547 }
548 try {
549 nullFoo.wideSetBar4ReturnBarArg(1, 2, 3, sum);
550 } catch(NullPointerException npe) {
551 sum += 9 * 404;
552 }
553 try {
554 nullFoo.wideSetBar5ReturnBarArg(1, 2, 3, 4, sum);
555 } catch(NullPointerException npe) {
556 sum += 10 * 404;
557 }
558 try {
559 nullFoo.wideSetBar2iReturnBarArg(1, sum);
560 } catch(NullPointerException npe) {
561 sum += 11 * 404;
562 }
563 try {
564 nullFoo.wideSetBar3iReturnBarArg(1, 2, sum);
565 } catch(NullPointerException npe) {
566 sum += 12 * 404;
567 }
568 try {
569 nullFoo.wideSetBar4iReturnBarArg(1, 2, 3, sum);
570 } catch(NullPointerException npe) {
571 sum += 13 * 404;
572 }
573 try {
574 nullFoo.wideSetBar5iReturnBarArg(1, 2, 3, 4, sum);
575 } catch(NullPointerException npe) {
576 sum += 14 * 404;
577 }
578 try {
579 nullFoo.wideSetBar2ReturnDummyArg1(1, sum);
580 } catch(NullPointerException npe) {
581 sum += 15 * 404;
582 }
583 try {
584 nullFoo.wideSetBar3ReturnDummyArg2(1, 2, sum);
585 } catch(NullPointerException npe) {
586 sum += 16 * 404;
587 }
588 try {
589 nullFoo.wideSetBar4ReturnDummyArg3(1, 2, 3, sum);
590 } catch(NullPointerException npe) {
591 sum += 17 * 404;
592 }
593 try {
594 nullFoo.wideSetBar5ReturnDummyArg4(1, 2, 3, 4, sum);
595 } catch(NullPointerException npe) {
596 sum += 18 * 404;
597 }
598 try {
599 nullFoo.wideSetBar2iReturnDummyArg1(1, sum);
600 } catch(NullPointerException npe) {
601 sum += 19 * 404;
602 }
603 try {
604 nullFoo.wideSetBar3iReturnDummyArg2(1, 2, sum);
605 } catch(NullPointerException npe) {
606 sum += 20 * 404;
607 }
608 try {
609 nullFoo.wideSetBar4iReturnDummyArg3(1, 2, 3, sum);
610 } catch(NullPointerException npe) {
611 sum += 21 * 404;
612 }
613 try {
614 nullFoo.wideSetBar5iReturnDummyArg4(1, 2, 3, 4, sum);
615 } catch(NullPointerException npe) {
616 sum += 22 * 404;
617 }
618 long expected = (1234L << 23) + 404 * (23 * 22 / 2);
619 if (sum == expected) {
620 System.out.println("wideSetterTestWithReturnArgIgnoreReturn passes");
621 }
622 else {
623 System.out.println("wideSetterTestWithReturnArgIgnoreReturn fails: " + sum +
624 " (expecting " + expected + ")");
625 }
626 }
627
628 static void wideSetterTestWithReturnArgUseReturn() {
629 Foo foo = new Foo();
630 long sum = foo.wideGetBar0();
631 long sumDummy = 0;
632 sum += foo.wideGetBar0();
633 Foo foo2 = foo.wideSetBar1ReturnThis(sum);
634 sum += foo2.wideGetBar0();
635 foo = foo2.wideSetBar2ReturnThis(1,sum);
636 sum += foo.wideGetBar0();
637 foo2 = foo.wideSetBar3ReturnThis(1,2,sum);
638 sum += foo2.wideGetBar0();
639 foo = foo2.wideSetBar4ReturnThis(1,2,3,sum);
640 sum += foo.wideGetBar0();
641 foo = foo.wideSetBar5ReturnThis(1,2,3,4,sum);
642 sum += foo.wideGetBar0();
643 sum += foo.wideSetBar1ReturnBarArg(sum);
644 sum += foo.wideGetBar0();
645 sum += foo.wideSetBar2ReturnBarArg(1,sum);
646 sum += foo.wideGetBar0();
647 sum += foo.wideSetBar3ReturnBarArg(1,2,sum);
648 sum += foo.wideGetBar0();
649 sum += foo.wideSetBar4ReturnBarArg(1,2,3,sum);
650 sum += foo.wideGetBar0();
651 sum += foo.wideSetBar5ReturnBarArg(1,2,3,4,sum);
652 sum += foo.wideGetBar0();
653 sum += foo.wideSetBar2iReturnBarArg(1,sum);
654 sum += foo.wideGetBar0();
655 sum += foo.wideSetBar3iReturnBarArg(1,2,sum);
656 sum += foo.wideGetBar0();
657 sum += foo.wideSetBar4iReturnBarArg(1,2,3,sum);
658 sum += foo.wideGetBar0();
659 sum += foo.wideSetBar5iReturnBarArg(1,2,3,4,sum);
660 sum += foo.wideGetBar0();
661 sumDummy += foo.wideSetBar2ReturnDummyArg1(1,sum);
662 sum += foo.wideGetBar0();
663 sumDummy += foo.wideSetBar3ReturnDummyArg2(1,2,sum);
664 sum += foo.wideGetBar0();
665 sumDummy += foo.wideSetBar4ReturnDummyArg3(1,2,3,sum);
666 sum += foo.wideGetBar0();
667 sumDummy += foo.wideSetBar5ReturnDummyArg4(1,2,3,4,sum);
668 sum += foo.wideGetBar0();
669 sumDummy += foo.wideSetBar2iReturnDummyArg1(1,sum);
670 sum += foo.wideGetBar0();
671 sumDummy += foo.wideSetBar3iReturnDummyArg2(1,2,sum);
672 sum += foo.wideGetBar0();
673 sumDummy += foo.wideSetBar4iReturnDummyArg3(1,2,3,sum);
674 sum += foo.wideGetBar0();
675 sumDummy += foo.wideSetBar5iReturnDummyArg4(1,2,3,4,sum);
676 sum += foo.wideGetBar0();
677 Foo nullFoo = Foo.getNullFoo();
678 try {
679 foo = nullFoo.wideSetBar1ReturnThis(sum);
680 } catch(NullPointerException npe) {
681 sum += 404;
682 }
683 try {
684 foo = nullFoo.wideSetBar2ReturnThis(1, sum);
685 } catch(NullPointerException npe) {
686 sum += 2 * 404;
687 }
688 try {
689 foo = nullFoo.wideSetBar3ReturnThis(1, 2, sum);
690 } catch(NullPointerException npe) {
691 sum += 3 * 404;
692 }
693 try {
694 foo = nullFoo.wideSetBar4ReturnThis(1, 2, 3, sum);
695 } catch(NullPointerException npe) {
696 sum += 4 * 404;
697 }
698 try {
699 foo = nullFoo.wideSetBar5ReturnThis(1, 2, 3, 4, sum);
700 } catch(NullPointerException npe) {
701 sum += 5 * 404;
702 }
703 try {
704 sum += nullFoo.wideSetBar1ReturnBarArg(sum);
705 } catch(NullPointerException npe) {
706 sum += 6 * 404;
707 }
708 try {
709 sum += nullFoo.wideSetBar2ReturnBarArg(1, sum);
710 } catch(NullPointerException npe) {
711 sum += 7 * 404;
712 }
713 try {
714 sum += nullFoo.wideSetBar3ReturnBarArg(1, 2, sum);
715 } catch(NullPointerException npe) {
716 sum += 8 * 404;
717 }
718 try {
719 sum += nullFoo.wideSetBar4ReturnBarArg(1, 2, 3, sum);
720 } catch(NullPointerException npe) {
721 sum += 9 * 404;
722 }
723 try {
724 sum += nullFoo.wideSetBar5ReturnBarArg(1, 2, 3, 4, sum);
725 } catch(NullPointerException npe) {
726 sum += 10 * 404;
727 }
728 try {
729 sum += nullFoo.wideSetBar2iReturnBarArg(1, sum);
730 } catch(NullPointerException npe) {
731 sum += 11 * 404;
732 }
733 try {
734 sum += nullFoo.wideSetBar3iReturnBarArg(1, 2, sum);
735 } catch(NullPointerException npe) {
736 sum += 12 * 404;
737 }
738 try {
739 sum += nullFoo.wideSetBar4iReturnBarArg(1, 2, 3, sum);
740 } catch(NullPointerException npe) {
741 sum += 13 * 404;
742 }
743 try {
744 sum += nullFoo.wideSetBar5iReturnBarArg(1, 2, 3, 4, sum);
745 } catch(NullPointerException npe) {
746 sum += 14 * 404;
747 }
748 try {
749 sumDummy += nullFoo.wideSetBar2ReturnDummyArg1(1, sum);
750 } catch(NullPointerException npe) {
751 sum += 15 * 404;
752 }
753 try {
754 sumDummy += nullFoo.wideSetBar3ReturnDummyArg2(1, 2, sum);
755 } catch(NullPointerException npe) {
756 sum += 16 * 404;
757 }
758 try {
759 sumDummy += nullFoo.wideSetBar4ReturnDummyArg3(1, 2, 3, sum);
760 } catch(NullPointerException npe) {
761 sum += 17 * 404;
762 }
763 try {
764 sumDummy += nullFoo.wideSetBar5ReturnDummyArg4(1, 2, 3, 4, sum);
765 } catch(NullPointerException npe) {
766 sum += 18 * 404;
767 }
768 try {
769 sumDummy += nullFoo.wideSetBar2iReturnDummyArg1(1, sum);
770 } catch(NullPointerException npe) {
771 sum += 19 * 404;
772 }
773 try {
774 sumDummy += nullFoo.wideSetBar3iReturnDummyArg2(1, 2, sum);
775 } catch(NullPointerException npe) {
776 sum += 20 * 404;
777 }
778 try {
779 sumDummy += nullFoo.wideSetBar4iReturnDummyArg3(1, 2, 3, sum);
780 } catch(NullPointerException npe) {
781 sum += 21 * 404;
782 }
783 try {
784 sumDummy += nullFoo.wideSetBar5iReturnDummyArg4(1, 2, 3, 4, sum);
785 } catch(NullPointerException npe) {
786 sum += 22 * 404;
787 }
788 long expected = (1234L << 14) * 3 * 3 * 3 * 3 * 3 * 3 * 3 * 3 * 3 + 404 * (23 * 22 / 2);
789 long expectedDummy = 2 * (5 * 4 / 2);
790 if (sum == expected && sumDummy == expectedDummy) {
791 System.out.println("wideSetterTestWithReturnArgUseReturn passes");
792 }
793 else {
794 System.out.println("wideSetterTestWithReturnArgUseReturn fails: " + sum +
795 " (expecting " + expected + "), sumDummy = " + sumDummy +
796 "(expecting " + expectedDummy + ")");
797 }
798 }
799
Alexei Zavjalovc17ebe82014-02-26 10:38:23 +0700800 static void mulBy1Test() {
801 long res;
802 long j = 1;
803 res = 1 * j + j;
804 if (res == 2L) {
805 System.out.println("mulBy1Test passes");
806 }
807 else {
808 System.out.println("mulBy1Test fails: " + res +
809 " (expecting 2)");
810 }
811 }
812
Alexei Zavjalov9d894662014-04-21 20:45:24 +0700813 static void constantPropagationTest() {
814 int i = 1;
815 int t = 1;
816 float z = 1F;
817 long h = 1L;
818 int g[] = new int[1];
819 int w = 1;
820 long f = 0;
821
822 for (int a = 1; a < 100; a++) {
823 try {
824 i = (int)(z);
825 h >>= (0 % t);
826 }
827 finally {
828 w = (int)(2 * (f * 6));
829 }
830 }
831
832 if (w == 0 && h == 1 && g[0] == 0) {
833 System.out.println("constantPropagationTest passes");
834 } else {
835 System.out.println("constantPropagationTest fails");
836 }
837 }
838
jeffhao5d1ac922011-09-29 17:41:15 -0700839 static void b2296099Test() throws Exception {
840 int x = -1190771042;
841 int dist = 360530809;
842 int xl = -1190771042;
843 int distl = 360530809;
844
845 for (int i = 0; i < 100000; i++) {
846 int b = rotateLeft(x, dist);
847 if (b != 1030884493)
848 throw new RuntimeException("Unexpected value: " + b
849 + " after " + i + " iterations");
850 }
851 for (int i = 0; i < 100000; i++) {
852 long bl = rotateLeft(xl, distl);
853 if (bl != 1030884493)
854 throw new RuntimeException("Unexpected value: " + bl
855 + " after " + i + " iterations");
856 }
857 System.out.println("b2296099 passes");
858 }
859
860 static int rotateLeft(int i, int distance) {
861 return ((i << distance) | (i >>> (-distance)));
862 }
863
864 static void b2302318Test() {
Mathieu Chartier7befd0e2014-02-03 17:48:41 -0800865 Runtime.getRuntime().gc();
jeffhao5d1ac922011-09-29 17:41:15 -0700866
867 SpinThread slow = new SpinThread(Thread.MIN_PRIORITY);
868 SpinThread fast1 = new SpinThread(Thread.NORM_PRIORITY);
869 SpinThread fast2 = new SpinThread(Thread.MAX_PRIORITY);
870
871 slow.setDaemon(true);
872 fast1.setDaemon(true);
873 fast2.setDaemon(true);
874
875 fast2.start();
876 slow.start();
877 fast1.start();
878 try {
879 Thread.sleep(3000);
880 } catch (InterruptedException ie) {/*ignore */}
Mathieu Chartier7befd0e2014-02-03 17:48:41 -0800881 Runtime.getRuntime().gc();
jeffhao5d1ac922011-09-29 17:41:15 -0700882
883 System.out.println("b2302318 passes");
884 }
885
886 static void b2487514Test() {
887 PriorityBlockingQueue q = new PriorityBlockingQueue(10);
888 int catchCount = 0;
889
890 q.offer(new Integer(0));
891 /*
892 * Warm up the code cache to have toArray() compiled. The key here is
893 * to pass a compatible type so that there are no exceptions when
894 * executing the method body (ie the APUT_OBJECT bytecode).
895 */
896 for (int i = 0; i < 1000; i++) {
897 Integer[] ints = (Integer[]) q.toArray(new Integer[5]);
898 }
899
900 /* Now pass an incompatible type which is guaranteed to throw */
901 for (int i = 0; i < 1000; i++) {
902 try {
903 Object[] obj = q.toArray(new String[5]);
904 }
905 catch (ArrayStoreException success) {
906 catchCount++;
907 }
908 }
909
910 if (catchCount == 1000) {
911 System.out.println("b2487514 passes");
912 }
913 else {
914 System.out.println("b2487514 fails: catchCount is " + catchCount +
915 " (expecting 1000)");
916 }
917 }
buzbee9ab05de2012-01-18 15:43:48 -0800918
919 static void b5884080Test() {
920 int vA = 1;
921
922 int l = 0;
923 do
924 {
925 int k = 0;
926 do
927 vA += 1;
Elliott Hughesb25c3f62012-03-26 16:35:06 -0700928 while (++k < 100);
929 } while (++l < 1000);
buzbee9ab05de2012-01-18 15:43:48 -0800930 if (vA == 100001) {
931 System.out.println("b5884080 passes");
932 }
933 else {
934 System.out.println("b5884080 fails: vA is " + vA +
935 " (expecting 100001)");
936 }
937 }
buzbee4922ef92012-02-24 14:32:20 -0800938
Brian Carlstromb20d24d2014-03-27 16:54:27 -0700939 static void b13679511Test() {
940 System.out.println("b13679511Test starting");
941 int[] nn = { 1, 2, 3, 4 };
942 for (int i : nn) {
943 System.out.println(i);
944 }
945 int len = nn.length;
946 System.out.println(nn.length);
947 System.out.println(nn.length % 3);
948 System.out.println(len % 3);
949 System.out.println(4 % 3);
950 System.out.println((nn.length % 3) != 1);
951 System.out.println("b13679511Test finishing");
952 }
953
Vladimir Markof418f322014-07-09 14:45:36 +0100954 static void b16177324TestWrapper() {
955 try {
956 b16177324Test();
957 } catch (NullPointerException expected) {
958 System.out.println("b16177324TestWrapper caught NPE as expected.");
959 }
960 }
961
962 static void b16177324Test() {
963 // We need this to be a single BasicBlock. Putting it into a try block would cause it to
964 // be split at each insn that can throw. So we do the try-catch in a wrapper function.
965 int v1 = B16177324Values.values[0]; // Null-check on array element access.
966 int v2 = B16177324ValuesKiller.values[0]; // clinit<>() sets B16177324Values.values to null.
967 int v3 = B16177324Values.values[0]; // Should throw NPE.
968 // If the null-check for v3 was eliminated we should fail with SIGSEGV.
969 System.out.println("Unexpectedly retrieved all values: " + v1 + ", " + v2 + ", " + v3);
970 }
971
Vladimir Marko0a810d22014-07-11 14:44:36 +0100972 static void b16230771TestWrapper() {
973 try {
974 b16230771Test();
975 } catch (NullPointerException expected) {
976 System.out.println("b16230771TestWrapper caught NPE as expected.");
977 }
978 }
979
980 static void b16230771Test() {
981 Integer[] array = { null };
982 for (Integer i : array) {
983 try {
984 int value = i; // Null check on unboxing should fail.
985 System.out.println("Unexpectedly retrieved value " + value);
986 } catch (NullPointerException e) {
987 int value = i; // Null check on unboxing should fail.
988 // The bug was a missing null check, so this would actually cause SIGSEGV.
989 System.out.println("Unexpectedly retrieved value " + value + " in NPE catch handler");
990 }
991 }
992 }
993
Vladimir Marko7cd01f52014-10-13 18:29:44 +0100994 static void b17969907TestWrapper() {
995 try {
996 b17969907Test();
997 System.out.println("b17969907Test unexpectedly didn't throw NPE.");
998 } catch (NullPointerException expected) {
999 System.out.println("b17969907TestWrapper caught NPE as expected.");
1000 }
1001 }
1002
1003 public static void b17969907Test() {
1004 Integer i = new Integer(1);
1005 int sum = 0;
1006 while (sum < 100) {
1007 sum += i;
1008 i = null;
1009 }
1010 }
1011
buzbee40bbb392014-03-19 12:28:16 -07001012 static double TooManyArgs(
1013 long l00,
1014 long l01,
1015 long l02,
1016 long l03,
1017 long l04,
1018 long l05,
1019 long l06,
1020 long l07,
1021 long l08,
1022 long l09,
1023 long l10,
1024 long l11,
1025 long l12,
1026 long l13,
1027 long l14,
1028 long l15,
1029 long l16,
1030 long l17,
1031 long l18,
1032 long l19,
1033 long l20,
1034 long l21,
1035 long l22,
1036 long l23,
1037 long l24,
1038 long l25,
1039 long l26,
1040 long l27,
1041 long l28,
1042 long l29,
1043 long l30,
1044 long l31,
1045 long l32,
1046 long l33,
1047 long l34,
1048 long l35,
1049 long l36,
1050 long l37,
1051 long l38,
1052 long l39,
1053 long l40,
1054 long l41,
1055 long l42,
1056 long l43,
1057 long l44,
1058 long l45,
1059 long l46,
1060 long l47,
1061 long l48,
1062 long l49,
1063 long ll00,
1064 long ll01,
1065 long ll02,
1066 long ll03,
1067 long ll04,
1068 long ll05,
1069 long ll06,
1070 long ll07,
1071 long ll08,
1072 long ll09,
1073 long ll10,
1074 long ll11,
1075 long ll12,
1076 long ll13,
1077 long ll14,
1078 long ll15,
1079 long ll16,
1080 long ll17,
1081 long ll18,
1082 long ll19,
1083 double d01,
1084 double d02,
1085 double d03,
1086 double d04,
1087 double d05,
1088 double d06,
1089 double d07,
1090 double d08,
1091 double d09,
1092 double d10,
1093 double d11,
1094 double d12,
1095 double d13,
1096 double d14,
1097 double d15,
1098 double d16,
1099 double d17,
1100 double d18,
1101 double d19,
1102 double d20,
1103 double d21,
1104 double d22,
1105 double d23,
1106 double d24,
1107 double d25,
1108 double d26,
1109 double d27,
1110 double d28,
1111 double d29,
1112 double d30,
1113 double d31,
1114 double d32,
1115 double d33,
1116 double d34,
1117 double d35,
1118 double d36,
1119 double d37,
1120 double d38,
1121 double d39,
1122 double d40,
1123 double d41,
1124 double d42,
1125 double d43,
1126 double d44,
1127 double d45,
1128 double d46,
1129 double d47,
1130 double d48,
1131 double d49) {
1132 double res = 0.0;
1133 double t01 = d49;
1134 double t02 = 02.0 + t01;
1135 double t03 = 03.0 + t02;
1136 double t04 = 04.0 + t03;
1137 double t05 = 05.0 + t04;
1138 double t06 = 06.0 + t05;
1139 double t07 = 07.0 + t06;
1140 double t08 = 08.0 + t07;
1141 double t09 = 09.0 + t08;
1142 double t10 = 10.0 + t09;
1143 double t11 = 11.0 + t10;
1144 double t12 = 12.0 + t11;
1145 double t13 = 13.0 + t12;
1146 double t14 = 14.0 + t13;
1147 double t15 = 15.0 + t14;
1148 double t16 = 16.0 + t15;
1149 double t17 = 17.0 + t16;
1150 double t18 = 18.0 + t17;
1151 double t19 = 19.0 + t18;
1152 double t20 = 20.0 + t19;
1153 double t21 = 21.0 + t20;
1154 double t22 = 22.0 + t21;
1155 double t23 = 23.0 + t22;
1156 double t24 = 24.0 + t23;
1157 double t25 = 25.0 + t24;
1158 double t26 = 26.0 + t25;
1159 double t27 = 27.0 + t26;
1160 double t28 = 28.0 + t27;
1161 double t29 = 29.0 + t28;
1162 double t30 = 30.0 + t29;
1163 double t31 = 31.0 + t30;
1164 double t32 = 32.0 + t31;
1165 double t33 = 33.0 + t32;
1166 double t34 = 34.0 + t33;
1167 double t35 = 35.0 + t34;
1168 double t36 = 36.0 + t35;
1169 double t37 = 37.0 + t36;
1170 double t38 = 38.0 + t37;
1171 double t39 = 39.0 + t38;
1172 double t40 = 40.0 + t39;
1173 double tt02 = 02.0 + t40;
1174 double tt03 = 03.0 + tt02;
1175 double tt04 = 04.0 + tt03;
1176 double tt05 = 05.0 + tt04;
1177 double tt06 = 06.0 + tt05;
1178 double tt07 = 07.0 + tt06;
1179 double tt08 = 08.0 + tt07;
1180 double tt09 = 09.0 + tt08;
1181 double tt10 = 10.0 + tt09;
1182 double tt11 = 11.0 + tt10;
1183 double tt12 = 12.0 + tt11;
1184 double tt13 = 13.0 + tt12;
1185 double tt14 = 14.0 + tt13;
1186 double tt15 = 15.0 + tt14;
1187 double tt16 = 16.0 + tt15;
1188 double tt17 = 17.0 + tt16;
1189 double tt18 = 18.0 + tt17;
1190 double tt19 = 19.0 + tt18;
1191 double tt20 = 20.0 + tt19;
1192 double tt21 = 21.0 + tt20;
1193 double tt22 = 22.0 + tt21;
1194 double tt23 = 23.0 + tt22;
1195 double tt24 = 24.0 + tt23;
1196 double tt25 = 25.0 + tt24;
1197 double tt26 = 26.0 + tt25;
1198 double tt27 = 27.0 + tt26;
1199 double tt28 = 28.0 + tt27;
1200 double tt29 = 29.0 + tt28;
1201 double tt30 = 30.0 + tt29;
1202 double tt31 = 31.0 + tt30;
1203 double tt32 = 32.0 + tt31;
1204 double tt33 = 33.0 + tt32;
1205 double tt34 = 34.0 + tt33;
1206 double tt35 = 35.0 + tt34;
1207 double tt36 = 36.0 + tt35;
1208 double tt37 = 37.0 + tt36;
1209 double tt38 = 38.0 + tt37;
1210 double tt39 = 39.0 + tt38;
1211 double tt40 = 40.0 + tt39;
1212 double ttt02 = 02.0 + tt40;
1213 double ttt03 = 03.0 + ttt02;
1214 double ttt04 = 04.0 + ttt03;
1215 double ttt05 = 05.0 + ttt04;
1216 double ttt06 = 06.0 + ttt05;
1217 double ttt07 = 07.0 + ttt06;
1218 double ttt08 = 08.0 + ttt07;
1219 double ttt09 = 09.0 + ttt08;
1220 double ttt10 = 10.0 + ttt09;
1221 double ttt11 = 11.0 + ttt10;
1222 double ttt12 = 12.0 + ttt11;
1223 double ttt13 = 13.0 + ttt12;
1224 double ttt14 = 14.0 + ttt13;
1225 double ttt15 = 15.0 + ttt14;
1226 double ttt16 = 16.0 + ttt15;
1227 double ttt17 = 17.0 + ttt16;
1228 double ttt18 = 18.0 + ttt17;
1229 double ttt19 = 19.0 + ttt18;
1230 double ttt20 = 20.0 + ttt19;
1231 double ttt21 = 21.0 + ttt20;
1232 double ttt22 = 22.0 + ttt21;
1233 double ttt23 = 23.0 + ttt22;
1234 double ttt24 = 24.0 + ttt23;
1235 double ttt25 = 25.0 + ttt24;
1236 double ttt26 = 26.0 + ttt25;
1237 double ttt27 = 27.0 + ttt26;
1238 double ttt28 = 28.0 + ttt27;
1239 double ttt29 = 29.0 + ttt28;
1240 double ttt30 = 30.0 + ttt29;
1241 double ttt31 = 31.0 + ttt30;
1242 // Repeatedly use some doubles from the middle of the pack to trigger promotion from frame-passed args.
1243 for (int i = 0; i < 100; i++) {
1244 res += d40;
1245 res += d41;
1246 res += d42;
1247 res += d43;
1248 res += d44;
1249 res += d45;
1250 res += d46;
1251 res += d47;
1252 res += d48;
1253 }
1254 for (int i = 0; i < 100; i++) {
1255 res += d40;
1256 res += d41;
1257 res += d42;
1258 res += d43;
1259 res += d44;
1260 res += d45;
1261 res += d46;
1262 res += d47;
1263 res += d48;
1264 }
1265 for (int i = 0; i < 100; i++) {
1266 res += d40;
1267 res += d41;
1268 res += d42;
1269 res += d43;
1270 res += d44;
1271 res += d45;
1272 res += d46;
1273 res += d47;
1274 res += d48;
1275 }
1276 for (int i = 0; i < 100; i++) {
1277 res += d40;
1278 res += d41;
1279 res += d42;
1280 res += d43;
1281 res += d44;
1282 res += d45;
1283 res += d46;
1284 res += d47;
1285 res += d48;
1286 }
1287 return res + tt40;
1288 }
1289
1290 public static void ManyFloatArgs() {
1291 double res = TooManyArgs(
1292 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1293 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1294 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1295 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1296 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1297 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1298 1, 2, 3, 4, 5, 6, 7, 8, 9, 10,
1299 1.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0, 10.0, 11.0, 12.0,
1300 13.0, 14.0, 15.0, 16.0, 17.0, 18.0, 19.0, 20.0, 21.0, 22.0, 23.0,
1301 24.0, 25.0, 26.0, 27.0, 28.0, 29.0, 30.0, 31.0, 32.0, 33.0, 34.0,
1302 35.0, 36.0, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49);
1303 if ((long)res == 160087) {
1304 System.out.println("ManyFloatArgs passes");
1305 } else {
buzbee6a8958d2014-03-20 07:07:53 -07001306 System.out.println("ManyFloatArgs fails, expected 160087, got: " + res);
buzbee40bbb392014-03-19 12:28:16 -07001307 }
1308 }
buzbee4922ef92012-02-24 14:32:20 -08001309 static long largeFrame() {
1310 int i0 = 0;
1311 long l0 = 0;
1312 int i1 = 1;
1313 long l1 = 1;
1314 int i2 = 2;
1315 long l2 = 2;
1316 int i3 = 3;
1317 long l3 = 3;
1318 int i4 = 4;
1319 long l4 = 4;
1320 int i5 = 5;
1321 long l5 = 5;
1322 int i6 = 6;
1323 long l6 = 6;
1324 int i7 = 7;
1325 long l7 = 7;
1326 int i8 = 8;
1327 long l8 = 8;
1328 int i9 = 9;
1329 long l9 = 9;
1330 int i10 = 10;
1331 long l10 = 10;
1332 int i11 = 11;
1333 long l11 = 11;
1334 int i12 = 12;
1335 long l12 = 12;
1336 int i13 = 13;
1337 long l13 = 13;
1338 int i14 = 14;
1339 long l14 = 14;
1340 int i15 = 15;
1341 long l15 = 15;
1342 int i16 = 16;
1343 long l16 = 16;
1344 int i17 = 17;
1345 long l17 = 17;
1346 int i18 = 18;
1347 long l18 = 18;
1348 int i19 = 19;
1349 long l19 = 19;
1350 int i20 = 20;
1351 long l20 = 20;
1352 int i21 = 21;
1353 long l21 = 21;
1354 int i22 = 22;
1355 long l22 = 22;
1356 int i23 = 23;
1357 long l23 = 23;
1358 int i24 = 24;
1359 long l24 = 24;
1360 int i25 = 25;
1361 long l25 = 25;
1362 int i26 = 26;
1363 long l26 = 26;
1364 int i27 = 27;
1365 long l27 = 27;
1366 int i28 = 28;
1367 long l28 = 28;
1368 int i29 = 29;
1369 long l29 = 29;
1370 int i30 = 30;
1371 long l30 = 30;
1372 int i31 = 31;
1373 long l31 = 31;
1374 int i32 = 32;
1375 long l32 = 32;
1376 int i33 = 33;
1377 long l33 = 33;
1378 int i34 = 34;
1379 long l34 = 34;
1380 int i35 = 35;
1381 long l35 = 35;
1382 int i36 = 36;
1383 long l36 = 36;
1384 int i37 = 37;
1385 long l37 = 37;
1386 int i38 = 38;
1387 long l38 = 38;
1388 int i39 = 39;
1389 long l39 = 39;
1390 int i40 = 40;
1391 long l40 = 40;
1392 int i41 = 41;
1393 long l41 = 41;
1394 int i42 = 42;
1395 long l42 = 42;
1396 int i43 = 43;
1397 long l43 = 43;
1398 int i44 = 44;
1399 long l44 = 44;
1400 int i45 = 45;
1401 long l45 = 45;
1402 int i46 = 46;
1403 long l46 = 46;
1404 int i47 = 47;
1405 long l47 = 47;
1406 int i48 = 48;
1407 long l48 = 48;
1408 int i49 = 49;
1409 long l49 = 49;
1410 int i50 = 50;
1411 long l50 = 50;
1412 int i51 = 51;
1413 long l51 = 51;
1414 int i52 = 52;
1415 long l52 = 52;
1416 int i53 = 53;
1417 long l53 = 53;
1418 int i54 = 54;
1419 long l54 = 54;
1420 int i55 = 55;
1421 long l55 = 55;
1422 int i56 = 56;
1423 long l56 = 56;
1424 int i57 = 57;
1425 long l57 = 57;
1426 int i58 = 58;
1427 long l58 = 58;
1428 int i59 = 59;
1429 long l59 = 59;
1430 int i60 = 60;
1431 long l60 = 60;
1432 int i61 = 61;
1433 long l61 = 61;
1434 int i62 = 62;
1435 long l62 = 62;
1436 int i63 = 63;
1437 long l63 = 63;
1438 int i64 = 64;
1439 long l64 = 64;
1440 int i65 = 65;
1441 long l65 = 65;
1442 int i66 = 66;
1443 long l66 = 66;
1444 int i67 = 67;
1445 long l67 = 67;
1446 int i68 = 68;
1447 long l68 = 68;
1448 int i69 = 69;
1449 long l69 = 69;
1450 int i70 = 70;
1451 long l70 = 70;
1452 int i71 = 71;
1453 long l71 = 71;
1454 int i72 = 72;
1455 long l72 = 72;
1456 int i73 = 73;
1457 long l73 = 73;
1458 int i74 = 74;
1459 long l74 = 74;
1460 int i75 = 75;
1461 long l75 = 75;
1462 int i76 = 76;
1463 long l76 = 76;
1464 int i77 = 77;
1465 long l77 = 77;
1466 int i78 = 78;
1467 long l78 = 78;
1468 int i79 = 79;
1469 long l79 = 79;
1470 int i80 = 80;
1471 long l80 = 80;
1472 int i81 = 81;
1473 long l81 = 81;
1474 int i82 = 82;
1475 long l82 = 82;
1476 int i83 = 83;
1477 long l83 = 83;
1478 int i84 = 84;
1479 long l84 = 84;
1480 int i85 = 85;
1481 long l85 = 85;
1482 int i86 = 86;
1483 long l86 = 86;
1484 int i87 = 87;
1485 long l87 = 87;
1486 int i88 = 88;
1487 long l88 = 88;
1488 int i89 = 89;
1489 long l89 = 89;
1490 int i90 = 90;
1491 long l90 = 90;
1492 int i91 = 91;
1493 long l91 = 91;
1494 int i92 = 92;
1495 long l92 = 92;
1496 int i93 = 93;
1497 long l93 = 93;
1498 int i94 = 94;
1499 long l94 = 94;
1500 int i95 = 95;
1501 long l95 = 95;
1502 int i96 = 96;
1503 long l96 = 96;
1504 int i97 = 97;
1505 long l97 = 97;
1506 int i98 = 98;
1507 long l98 = 98;
1508 int i99 = 99;
1509 long l99 = 99;
1510 int i100 = 100;
1511 long l100 = 100;
1512 int i101 = 101;
1513 long l101 = 101;
1514 int i102 = 102;
1515 long l102 = 102;
1516 int i103 = 103;
1517 long l103 = 103;
1518 int i104 = 104;
1519 long l104 = 104;
1520 int i105 = 105;
1521 long l105 = 105;
1522 int i106 = 106;
1523 long l106 = 106;
1524 int i107 = 107;
1525 long l107 = 107;
1526 int i108 = 108;
1527 long l108 = 108;
1528 int i109 = 109;
1529 long l109 = 109;
1530 int i110 = 110;
1531 long l110 = 110;
1532 int i111 = 111;
1533 long l111 = 111;
1534 int i112 = 112;
1535 long l112 = 112;
1536 int i113 = 113;
1537 long l113 = 113;
1538 int i114 = 114;
1539 long l114 = 114;
1540 int i115 = 115;
1541 long l115 = 115;
1542 int i116 = 116;
1543 long l116 = 116;
1544 int i117 = 117;
1545 long l117 = 117;
1546 int i118 = 118;
1547 long l118 = 118;
1548 int i119 = 119;
1549 long l119 = 119;
1550 int i120 = 120;
1551 long l120 = 120;
1552 int i121 = 121;
1553 long l121 = 121;
1554 int i122 = 122;
1555 long l122 = 122;
1556 int i123 = 123;
1557 long l123 = 123;
1558 int i124 = 124;
1559 long l124 = 124;
1560 int i125 = 125;
1561 long l125 = 125;
1562 int i126 = 126;
1563 long l126 = 126;
1564 int i127 = 127;
1565 long l127 = 127;
1566 int i128 = 128;
1567 long l128 = 128;
1568 int i129 = 129;
1569 long l129 = 129;
1570 int i130 = 130;
1571 long l130 = 130;
1572 int i131 = 131;
1573 long l131 = 131;
1574 int i132 = 132;
1575 long l132 = 132;
1576 int i133 = 133;
1577 long l133 = 133;
1578 int i134 = 134;
1579 long l134 = 134;
1580 int i135 = 135;
1581 long l135 = 135;
1582 int i136 = 136;
1583 long l136 = 136;
1584 int i137 = 137;
1585 long l137 = 137;
1586 int i138 = 138;
1587 long l138 = 138;
1588 int i139 = 139;
1589 long l139 = 139;
1590 int i140 = 140;
1591 long l140 = 140;
1592 int i141 = 141;
1593 long l141 = 141;
1594 int i142 = 142;
1595 long l142 = 142;
1596 int i143 = 143;
1597 long l143 = 143;
1598 int i144 = 144;
1599 long l144 = 144;
1600 int i145 = 145;
1601 long l145 = 145;
1602 int i146 = 146;
1603 long l146 = 146;
1604 int i147 = 147;
1605 long l147 = 147;
1606 int i148 = 148;
1607 long l148 = 148;
1608 int i149 = 149;
1609 long l149 = 149;
1610 int i150 = 150;
1611 long l150 = 150;
1612 int i151 = 151;
1613 long l151 = 151;
1614 int i152 = 152;
1615 long l152 = 152;
1616 int i153 = 153;
1617 long l153 = 153;
1618 int i154 = 154;
1619 long l154 = 154;
1620 int i155 = 155;
1621 long l155 = 155;
1622 int i156 = 156;
1623 long l156 = 156;
1624 int i157 = 157;
1625 long l157 = 157;
1626 int i158 = 158;
1627 long l158 = 158;
1628 int i159 = 159;
1629 long l159 = 159;
1630 int i160 = 160;
1631 long l160 = 160;
1632 int i161 = 161;
1633 long l161 = 161;
1634 int i162 = 162;
1635 long l162 = 162;
1636 int i163 = 163;
1637 long l163 = 163;
1638 int i164 = 164;
1639 long l164 = 164;
1640 int i165 = 165;
1641 long l165 = 165;
1642 int i166 = 166;
1643 long l166 = 166;
1644 int i167 = 167;
1645 long l167 = 167;
1646 int i168 = 168;
1647 long l168 = 168;
1648 int i169 = 169;
1649 long l169 = 169;
1650 int i170 = 170;
1651 long l170 = 170;
1652 int i171 = 171;
1653 long l171 = 171;
1654 int i172 = 172;
1655 long l172 = 172;
1656 int i173 = 173;
1657 long l173 = 173;
1658 int i174 = 174;
1659 long l174 = 174;
1660 int i175 = 175;
1661 long l175 = 175;
1662 int i176 = 176;
1663 long l176 = 176;
1664 int i177 = 177;
1665 long l177 = 177;
1666 int i178 = 178;
1667 long l178 = 178;
1668 int i179 = 179;
1669 long l179 = 179;
1670 int i180 = 180;
1671 long l180 = 180;
1672 int i181 = 181;
1673 long l181 = 181;
1674 int i182 = 182;
1675 long l182 = 182;
1676 int i183 = 183;
1677 long l183 = 183;
1678 int i184 = 184;
1679 long l184 = 184;
1680 int i185 = 185;
1681 long l185 = 185;
1682 int i186 = 186;
1683 long l186 = 186;
1684 int i187 = 187;
1685 long l187 = 187;
1686 int i188 = 188;
1687 long l188 = 188;
1688 int i189 = 189;
1689 long l189 = 189;
1690 int i190 = 190;
1691 long l190 = 190;
1692 int i191 = 191;
1693 long l191 = 191;
1694 int i192 = 192;
1695 long l192 = 192;
1696 int i193 = 193;
1697 long l193 = 193;
1698 int i194 = 194;
1699 long l194 = 194;
1700 int i195 = 195;
1701 long l195 = 195;
1702 int i196 = 196;
1703 long l196 = 196;
1704 int i197 = 197;
1705 long l197 = 197;
1706 int i198 = 198;
1707 long l198 = 198;
1708 int i199 = 199;
1709 long l199 = 199;
1710 int i200 = 200;
1711 long l200 = 200;
1712 int i201 = 201;
1713 long l201 = 201;
1714 int i202 = 202;
1715 long l202 = 202;
1716 int i203 = 203;
1717 long l203 = 203;
1718 int i204 = 204;
1719 long l204 = 204;
1720 int i205 = 205;
1721 long l205 = 205;
1722 int i206 = 206;
1723 long l206 = 206;
1724 int i207 = 207;
1725 long l207 = 207;
1726 int i208 = 208;
1727 long l208 = 208;
1728 int i209 = 209;
1729 long l209 = 209;
1730 int i210 = 210;
1731 long l210 = 210;
1732 int i211 = 211;
1733 long l211 = 211;
1734 int i212 = 212;
1735 long l212 = 212;
1736 int i213 = 213;
1737 long l213 = 213;
1738 int i214 = 214;
1739 long l214 = 214;
1740 int i215 = 215;
1741 long l215 = 215;
1742 int i216 = 216;
1743 long l216 = 216;
1744 int i217 = 217;
1745 long l217 = 217;
1746 int i218 = 218;
1747 long l218 = 218;
1748 int i219 = 219;
1749 long l219 = 219;
1750 int i220 = 220;
1751 long l220 = 220;
1752 int i221 = 221;
1753 long l221 = 221;
1754 int i222 = 222;
1755 long l222 = 222;
1756 int i223 = 223;
1757 long l223 = 223;
1758 int i224 = 224;
1759 long l224 = 224;
1760 int i225 = 225;
1761 long l225 = 225;
1762 int i226 = 226;
1763 long l226 = 226;
1764 int i227 = 227;
1765 long l227 = 227;
1766 int i228 = 228;
1767 long l228 = 228;
1768 int i229 = 229;
1769 long l229 = 229;
1770 int i230 = 230;
1771 long l230 = 230;
1772 int i231 = 231;
1773 long l231 = 231;
1774 int i232 = 232;
1775 long l232 = 232;
1776 int i233 = 233;
1777 long l233 = 233;
1778 int i234 = 234;
1779 long l234 = 234;
1780 int i235 = 235;
1781 long l235 = 235;
1782 int i236 = 236;
1783 long l236 = 236;
1784 int i237 = 237;
1785 long l237 = 237;
1786 int i238 = 238;
1787 long l238 = 238;
1788 int i239 = 239;
1789 long l239 = 239;
1790 int i240 = 240;
1791 long l240 = 240;
1792 int i241 = 241;
1793 long l241 = 241;
1794 int i242 = 242;
1795 long l242 = 242;
1796 int i243 = 243;
1797 long l243 = 243;
1798 int i244 = 244;
1799 long l244 = 244;
1800 int i245 = 245;
1801 long l245 = 245;
1802 int i246 = 246;
1803 long l246 = 246;
1804 int i247 = 247;
1805 long l247 = 247;
1806 int i248 = 248;
1807 long l248 = 248;
1808 int i249 = 249;
1809 long l249 = 249;
1810 int i250 = 250;
1811 long l250 = 250;
1812 int i251 = 251;
1813 long l251 = 251;
1814 int i252 = 252;
1815 long l252 = 252;
1816 int i253 = 253;
1817 long l253 = 253;
1818 int i254 = 254;
1819 long l254 = 254;
1820 int i255 = 255;
1821 long l255 = 255;
1822 int i256 = 256;
1823 long l256 = 256;
1824 int i257 = 257;
1825 long l257 = 257;
1826 int i258 = 258;
1827 long l258 = 258;
1828 int i259 = 259;
1829 long l259 = 259;
1830 int i260 = 260;
1831 long l260 = 260;
1832 int i261 = 261;
1833 long l261 = 261;
1834 int i262 = 262;
1835 long l262 = 262;
1836 int i263 = 263;
1837 long l263 = 263;
1838 int i264 = 264;
1839 long l264 = 264;
1840 int i265 = 265;
1841 long l265 = 265;
1842 int i266 = 266;
1843 long l266 = 266;
1844 int i267 = 267;
1845 long l267 = 267;
1846 int i268 = 268;
1847 long l268 = 268;
1848 int i269 = 269;
1849 long l269 = 269;
1850 int i270 = 270;
1851 long l270 = 270;
1852 int i271 = 271;
1853 long l271 = 271;
1854 int i272 = 272;
1855 long l272 = 272;
1856 int i273 = 273;
1857 long l273 = 273;
1858 int i274 = 274;
1859 long l274 = 274;
1860 int i275 = 275;
1861 long l275 = 275;
1862 int i276 = 276;
1863 long l276 = 276;
1864 int i277 = 277;
1865 long l277 = 277;
1866 int i278 = 278;
1867 long l278 = 278;
1868 int i279 = 279;
1869 long l279 = 279;
1870 int i280 = 280;
1871 long l280 = 280;
1872 int i281 = 281;
1873 long l281 = 281;
1874 int i282 = 282;
1875 long l282 = 282;
1876 int i283 = 283;
1877 long l283 = 283;
1878 int i284 = 284;
1879 long l284 = 284;
1880 int i285 = 285;
1881 long l285 = 285;
1882 int i286 = 286;
1883 long l286 = 286;
1884 int i287 = 287;
1885 long l287 = 287;
1886 int i288 = 288;
1887 long l288 = 288;
1888 int i289 = 289;
1889 long l289 = 289;
1890 int i290 = 290;
1891 long l290 = 290;
1892 int i291 = 291;
1893 long l291 = 291;
1894 int i292 = 292;
1895 long l292 = 292;
1896 int i293 = 293;
1897 long l293 = 293;
1898 int i294 = 294;
1899 long l294 = 294;
1900 int i295 = 295;
1901 long l295 = 295;
1902 int i296 = 296;
1903 long l296 = 296;
1904 int i297 = 297;
1905 long l297 = 297;
1906 int i298 = 298;
1907 long l298 = 298;
1908 int i299 = 299;
1909 long l299 = 299;
1910 int i300 = 300;
1911 long l300 = 300;
1912 int i301 = 301;
1913 long l301 = 301;
1914 int i302 = 302;
1915 long l302 = 302;
1916 int i303 = 303;
1917 long l303 = 303;
1918 int i304 = 304;
1919 long l304 = 304;
1920 int i305 = 305;
1921 long l305 = 305;
1922 int i306 = 306;
1923 long l306 = 306;
1924 int i307 = 307;
1925 long l307 = 307;
1926 int i308 = 308;
1927 long l308 = 308;
1928 int i309 = 309;
1929 long l309 = 309;
1930 int i310 = 310;
1931 long l310 = 310;
1932 int i311 = 311;
1933 long l311 = 311;
1934 int i312 = 312;
1935 long l312 = 312;
1936 int i313 = 313;
1937 long l313 = 313;
1938 int i314 = 314;
1939 long l314 = 314;
1940 int i315 = 315;
1941 long l315 = 315;
1942 int i316 = 316;
1943 long l316 = 316;
1944 int i317 = 317;
1945 long l317 = 317;
1946 int i318 = 318;
1947 long l318 = 318;
1948 int i319 = 319;
1949 long l319 = 319;
1950 int i320 = 320;
1951 long l320 = 320;
1952 int i321 = 321;
1953 long l321 = 321;
1954 int i322 = 322;
1955 long l322 = 322;
1956 int i323 = 323;
1957 long l323 = 323;
1958 int i324 = 324;
1959 long l324 = 324;
1960 int i325 = 325;
1961 long l325 = 325;
1962 int i326 = 326;
1963 long l326 = 326;
1964 int i327 = 327;
1965 long l327 = 327;
1966 int i328 = 328;
1967 long l328 = 328;
1968 int i329 = 329;
1969 long l329 = 329;
1970 int i330 = 330;
1971 long l330 = 330;
1972 int i331 = 331;
1973 long l331 = 331;
1974 int i332 = 332;
1975 long l332 = 332;
1976 int i333 = 333;
1977 long l333 = 333;
1978 int i334 = 334;
1979 long l334 = 334;
1980 int i335 = 335;
1981 long l335 = 335;
1982 int i336 = 336;
1983 long l336 = 336;
1984 int i337 = 337;
1985 long l337 = 337;
1986 int i338 = 338;
1987 long l338 = 338;
1988 int i339 = 339;
1989 long l339 = 339;
1990 int i340 = 340;
1991 long l340 = 340;
1992 int i341 = 341;
1993 long l341 = 341;
1994 int i342 = 342;
1995 long l342 = 342;
1996 int i343 = 343;
1997 long l343 = 343;
1998 int i344 = 344;
1999 long l344 = 344;
2000 int i345 = 345;
2001 long l345 = 345;
2002 int i346 = 346;
2003 long l346 = 346;
2004 int i347 = 347;
2005 long l347 = 347;
2006 int i348 = 348;
2007 long l348 = 348;
2008 int i349 = 349;
2009 long l349 = 349;
2010 int i350 = 350;
2011 long l350 = 350;
2012 int i351 = 351;
2013 long l351 = 351;
2014 int i352 = 352;
2015 long l352 = 352;
2016 int i353 = 353;
2017 long l353 = 353;
2018 int i354 = 354;
2019 long l354 = 354;
2020 int i355 = 355;
2021 long l355 = 355;
2022 int i356 = 356;
2023 long l356 = 356;
2024 int i357 = 357;
2025 long l357 = 357;
2026 int i358 = 358;
2027 long l358 = 358;
2028 int i359 = 359;
2029 long l359 = 359;
2030 int i360 = 360;
2031 long l360 = 360;
2032 int i361 = 361;
2033 long l361 = 361;
2034 int i362 = 362;
2035 long l362 = 362;
2036 int i363 = 363;
2037 long l363 = 363;
2038 int i364 = 364;
2039 long l364 = 364;
2040 int i365 = 365;
2041 long l365 = 365;
2042 int i366 = 366;
2043 long l366 = 366;
2044 int i367 = 367;
2045 long l367 = 367;
2046 int i368 = 368;
2047 long l368 = 368;
2048 int i369 = 369;
2049 long l369 = 369;
2050 int i370 = 370;
2051 long l370 = 370;
2052 int i371 = 371;
2053 long l371 = 371;
2054 int i372 = 372;
2055 long l372 = 372;
2056 int i373 = 373;
2057 long l373 = 373;
2058 int i374 = 374;
2059 long l374 = 374;
2060 int i375 = 375;
2061 long l375 = 375;
2062 int i376 = 376;
2063 long l376 = 376;
2064 int i377 = 377;
2065 long l377 = 377;
2066 int i378 = 378;
2067 long l378 = 378;
2068 int i379 = 379;
2069 long l379 = 379;
2070 int i380 = 380;
2071 long l380 = 380;
2072 int i381 = 381;
2073 long l381 = 381;
2074 int i382 = 382;
2075 long l382 = 382;
2076 int i383 = 383;
2077 long l383 = 383;
2078 int i384 = 384;
2079 long l384 = 384;
2080 int i385 = 385;
2081 long l385 = 385;
2082 int i386 = 386;
2083 long l386 = 386;
2084 int i387 = 387;
2085 long l387 = 387;
2086 int i388 = 388;
2087 long l388 = 388;
2088 int i389 = 389;
2089 long l389 = 389;
2090 int i390 = 390;
2091 long l390 = 390;
2092 int i391 = 391;
2093 long l391 = 391;
2094 int i392 = 392;
2095 long l392 = 392;
2096 int i393 = 393;
2097 long l393 = 393;
2098 int i394 = 394;
2099 long l394 = 394;
2100 int i395 = 395;
2101 long l395 = 395;
2102 int i396 = 396;
2103 long l396 = 396;
2104 int i397 = 397;
2105 long l397 = 397;
2106 int i398 = 398;
2107 long l398 = 398;
2108 int i399 = 399;
2109 long l399 = 399;
2110 int i400 = 400;
2111 long l400 = 400;
2112 int i401 = 401;
2113 long l401 = 401;
2114 int i402 = 402;
2115 long l402 = 402;
2116 int i403 = 403;
2117 long l403 = 403;
2118 int i404 = 404;
2119 long l404 = 404;
2120 int i405 = 405;
2121 long l405 = 405;
2122 int i406 = 406;
2123 long l406 = 406;
2124 int i407 = 407;
2125 long l407 = 407;
2126 int i408 = 408;
2127 long l408 = 408;
2128 int i409 = 409;
2129 long l409 = 409;
2130 int i410 = 410;
2131 long l410 = 410;
2132 int i411 = 411;
2133 long l411 = 411;
2134 int i412 = 412;
2135 long l412 = 412;
2136 int i413 = 413;
2137 long l413 = 413;
2138 int i414 = 414;
2139 long l414 = 414;
2140 int i415 = 415;
2141 long l415 = 415;
2142 int i416 = 416;
2143 long l416 = 416;
2144 int i417 = 417;
2145 long l417 = 417;
2146 int i418 = 418;
2147 long l418 = 418;
2148 int i419 = 419;
2149 long l419 = 419;
2150 int i420 = 420;
2151 long l420 = 420;
2152 int i421 = 421;
2153 long l421 = 421;
2154 int i422 = 422;
2155 long l422 = 422;
2156 int i423 = 423;
2157 long l423 = 423;
2158 int i424 = 424;
2159 long l424 = 424;
2160 int i425 = 425;
2161 long l425 = 425;
2162 int i426 = 426;
2163 long l426 = 426;
2164 int i427 = 427;
2165 long l427 = 427;
2166 int i428 = 428;
2167 long l428 = 428;
2168 int i429 = 429;
2169 long l429 = 429;
2170 int i430 = 430;
2171 long l430 = 430;
2172 int i431 = 431;
2173 long l431 = 431;
2174 int i432 = 432;
2175 long l432 = 432;
2176 int i433 = 433;
2177 long l433 = 433;
2178 int i434 = 434;
2179 long l434 = 434;
2180 int i435 = 435;
2181 long l435 = 435;
2182 int i436 = 436;
2183 long l436 = 436;
2184 int i437 = 437;
2185 long l437 = 437;
2186 int i438 = 438;
2187 long l438 = 438;
2188 int i439 = 439;
2189 long l439 = 439;
2190 int i440 = 440;
2191 long l440 = 440;
2192 int i441 = 441;
2193 long l441 = 441;
2194 int i442 = 442;
2195 long l442 = 442;
2196 int i443 = 443;
2197 long l443 = 443;
2198 int i444 = 444;
2199 long l444 = 444;
2200 int i445 = 445;
2201 long l445 = 445;
2202 int i446 = 446;
2203 long l446 = 446;
2204 int i447 = 447;
2205 long l447 = 447;
2206 int i448 = 448;
2207 long l448 = 448;
2208 int i449 = 449;
2209 long l449 = 449;
2210 int i450 = 450;
2211 long l450 = 450;
2212 int i451 = 451;
2213 long l451 = 451;
2214 int i452 = 452;
2215 long l452 = 452;
2216 int i453 = 453;
2217 long l453 = 453;
2218 int i454 = 454;
2219 long l454 = 454;
2220 int i455 = 455;
2221 long l455 = 455;
2222 int i456 = 456;
2223 long l456 = 456;
2224 int i457 = 457;
2225 long l457 = 457;
2226 int i458 = 458;
2227 long l458 = 458;
2228 int i459 = 459;
2229 long l459 = 459;
2230 int i460 = 460;
2231 long l460 = 460;
2232 int i461 = 461;
2233 long l461 = 461;
2234 int i462 = 462;
2235 long l462 = 462;
2236 int i463 = 463;
2237 long l463 = 463;
2238 int i464 = 464;
2239 long l464 = 464;
2240 int i465 = 465;
2241 long l465 = 465;
2242 int i466 = 466;
2243 long l466 = 466;
2244 int i467 = 467;
2245 long l467 = 467;
2246 int i468 = 468;
2247 long l468 = 468;
2248 int i469 = 469;
2249 long l469 = 469;
2250 int i470 = 470;
2251 long l470 = 470;
2252 int i471 = 471;
2253 long l471 = 471;
2254 int i472 = 472;
2255 long l472 = 472;
2256 int i473 = 473;
2257 long l473 = 473;
2258 int i474 = 474;
2259 long l474 = 474;
2260 int i475 = 475;
2261 long l475 = 475;
2262 int i476 = 476;
2263 long l476 = 476;
2264 int i477 = 477;
2265 long l477 = 477;
2266 int i478 = 478;
2267 long l478 = 478;
2268 int i479 = 479;
2269 long l479 = 479;
2270 int i480 = 480;
2271 long l480 = 480;
2272 int i481 = 481;
2273 long l481 = 481;
2274 int i482 = 482;
2275 long l482 = 482;
2276 int i483 = 483;
2277 long l483 = 483;
2278 int i484 = 484;
2279 long l484 = 484;
2280 int i485 = 485;
2281 long l485 = 485;
2282 int i486 = 486;
2283 long l486 = 486;
2284 int i487 = 487;
2285 long l487 = 487;
2286 int i488 = 488;
2287 long l488 = 488;
2288 int i489 = 489;
2289 long l489 = 489;
2290 int i490 = 490;
2291 long l490 = 490;
2292 int i491 = 491;
2293 long l491 = 491;
2294 int i492 = 492;
2295 long l492 = 492;
2296 int i493 = 493;
2297 long l493 = 493;
2298 int i494 = 494;
2299 long l494 = 494;
2300 int i495 = 495;
2301 long l495 = 495;
2302 int i496 = 496;
2303 long l496 = 496;
2304 int i497 = 497;
2305 long l497 = 497;
2306 int i498 = 498;
2307 long l498 = 498;
2308 int i499 = 499;
2309 long l499 = 499;
2310 int i500 = 500;
2311 long l500 = 500;
2312 int i501 = 501;
2313 long l501 = 501;
2314 int i502 = 502;
2315 long l502 = 502;
2316 int i503 = 503;
2317 long l503 = 503;
2318 int i504 = 504;
2319 long l504 = 504;
2320 int i505 = 505;
2321 long l505 = 505;
2322 int i506 = 506;
2323 long l506 = 506;
2324 int i507 = 507;
2325 long l507 = 507;
2326 int i508 = 508;
2327 long l508 = 508;
2328 int i509 = 509;
2329 long l509 = 509;
2330 int i510 = 510;
2331 long l510 = 510;
2332 int i511 = 511;
2333 long l511 = 511;
2334 int i512 = 512;
2335 long l512 = 512;
2336 int i513 = 513;
2337 long l513 = 513;
2338 int i514 = 514;
2339 long l514 = 514;
2340 int i515 = 515;
2341 long l515 = 515;
2342 int i516 = 516;
2343 long l516 = 516;
2344 int i517 = 517;
2345 long l517 = 517;
2346 int i518 = 518;
2347 long l518 = 518;
2348 int i519 = 519;
2349 long l519 = 519;
2350 int i520 = 520;
2351 long l520 = 520;
2352 int i521 = 521;
2353 long l521 = 521;
2354 int i522 = 522;
2355 long l522 = 522;
2356 int i523 = 523;
2357 long l523 = 523;
2358 int i524 = 524;
2359 long l524 = 524;
2360 int i525 = 525;
2361 long l525 = 525;
2362 int i526 = 526;
2363 long l526 = 526;
2364 int i527 = 527;
2365 long l527 = 527;
2366 int i528 = 528;
2367 long l528 = 528;
2368 int i529 = 529;
2369 long l529 = 529;
2370 int i530 = 530;
2371 long l530 = 530;
2372 int i531 = 531;
2373 long l531 = 531;
2374 int i532 = 532;
2375 long l532 = 532;
2376 int i533 = 533;
2377 long l533 = 533;
2378 int i534 = 534;
2379 long l534 = 534;
2380 int i535 = 535;
2381 long l535 = 535;
2382 int i536 = 536;
2383 long l536 = 536;
2384 int i537 = 537;
2385 long l537 = 537;
2386 int i538 = 538;
2387 long l538 = 538;
2388 int i539 = 539;
2389 long l539 = 539;
2390 int i540 = 540;
2391 long l540 = 540;
2392 int i541 = 541;
2393 long l541 = 541;
2394 int i542 = 542;
2395 long l542 = 542;
2396 int i543 = 543;
2397 long l543 = 543;
2398 int i544 = 544;
2399 long l544 = 544;
2400 int i545 = 545;
2401 long l545 = 545;
2402 int i546 = 546;
2403 long l546 = 546;
2404 int i547 = 547;
2405 long l547 = 547;
2406 int i548 = 548;
2407 long l548 = 548;
2408 int i549 = 549;
2409 long l549 = 549;
2410 int i550 = 550;
2411 long l550 = 550;
2412 int i551 = 551;
2413 long l551 = 551;
2414 int i552 = 552;
2415 long l552 = 552;
2416 int i553 = 553;
2417 long l553 = 553;
2418 int i554 = 554;
2419 long l554 = 554;
2420 int i555 = 555;
2421 long l555 = 555;
2422 int i556 = 556;
2423 long l556 = 556;
2424 int i557 = 557;
2425 long l557 = 557;
2426 int i558 = 558;
2427 long l558 = 558;
2428 int i559 = 559;
2429 long l559 = 559;
2430 int i560 = 560;
2431 long l560 = 560;
2432 int i561 = 561;
2433 long l561 = 561;
2434 int i562 = 562;
2435 long l562 = 562;
2436 int i563 = 563;
2437 long l563 = 563;
2438 int i564 = 564;
2439 long l564 = 564;
2440 int i565 = 565;
2441 long l565 = 565;
2442 int i566 = 566;
2443 long l566 = 566;
2444 int i567 = 567;
2445 long l567 = 567;
2446 int i568 = 568;
2447 long l568 = 568;
2448 int i569 = 569;
2449 long l569 = 569;
2450 int i570 = 570;
2451 long l570 = 570;
2452 int i571 = 571;
2453 long l571 = 571;
2454 int i572 = 572;
2455 long l572 = 572;
2456 int i573 = 573;
2457 long l573 = 573;
2458 int i574 = 574;
2459 long l574 = 574;
2460 int i575 = 575;
2461 long l575 = 575;
2462 int i576 = 576;
2463 long l576 = 576;
2464 int i577 = 577;
2465 long l577 = 577;
2466 int i578 = 578;
2467 long l578 = 578;
2468 int i579 = 579;
2469 long l579 = 579;
2470 int i580 = 580;
2471 long l580 = 580;
2472 int i581 = 581;
2473 long l581 = 581;
2474 int i582 = 582;
2475 long l582 = 582;
2476 int i583 = 583;
2477 long l583 = 583;
2478 int i584 = 584;
2479 long l584 = 584;
2480 int i585 = 585;
2481 long l585 = 585;
2482 int i586 = 586;
2483 long l586 = 586;
2484 int i587 = 587;
2485 long l587 = 587;
2486 int i588 = 588;
2487 long l588 = 588;
2488 int i589 = 589;
2489 long l589 = 589;
2490 int i590 = 590;
2491 long l590 = 590;
2492 int i591 = 591;
2493 long l591 = 591;
2494 int i592 = 592;
2495 long l592 = 592;
2496 int i593 = 593;
2497 long l593 = 593;
2498 int i594 = 594;
2499 long l594 = 594;
2500 int i595 = 595;
2501 long l595 = 595;
2502 int i596 = 596;
2503 long l596 = 596;
2504 int i597 = 597;
2505 long l597 = 597;
2506 int i598 = 598;
2507 long l598 = 598;
2508 int i599 = 599;
2509 long l599 = 599;
2510 int i600 = 600;
2511 long l600 = 600;
2512 int i601 = 601;
2513 long l601 = 601;
2514 int i602 = 602;
2515 long l602 = 602;
2516 int i603 = 603;
2517 long l603 = 603;
2518 int i604 = 604;
2519 long l604 = 604;
2520 int i605 = 605;
2521 long l605 = 605;
2522 int i606 = 606;
2523 long l606 = 606;
2524 int i607 = 607;
2525 long l607 = 607;
2526 int i608 = 608;
2527 long l608 = 608;
2528 int i609 = 609;
2529 long l609 = 609;
2530 int i610 = 610;
2531 long l610 = 610;
2532 int i611 = 611;
2533 long l611 = 611;
2534 int i612 = 612;
2535 long l612 = 612;
2536 int i613 = 613;
2537 long l613 = 613;
2538 int i614 = 614;
2539 long l614 = 614;
2540 int i615 = 615;
2541 long l615 = 615;
2542 int i616 = 616;
2543 long l616 = 616;
2544 int i617 = 617;
2545 long l617 = 617;
2546 int i618 = 618;
2547 long l618 = 618;
2548 int i619 = 619;
2549 long l619 = 619;
2550 int i620 = 620;
2551 long l620 = 620;
2552 int i621 = 621;
2553 long l621 = 621;
2554 int i622 = 622;
2555 long l622 = 622;
2556 int i623 = 623;
2557 long l623 = 623;
2558 int i624 = 624;
2559 long l624 = 624;
2560 int i625 = 625;
2561 long l625 = 625;
2562 int i626 = 626;
2563 long l626 = 626;
2564 int i627 = 627;
2565 long l627 = 627;
2566 int i628 = 628;
2567 long l628 = 628;
2568 int i629 = 629;
2569 long l629 = 629;
2570 int i630 = 630;
2571 long l630 = 630;
2572 int i631 = 631;
2573 long l631 = 631;
2574 int i632 = 632;
2575 long l632 = 632;
2576 int i633 = 633;
2577 long l633 = 633;
2578 int i634 = 634;
2579 long l634 = 634;
2580 int i635 = 635;
2581 long l635 = 635;
2582 int i636 = 636;
2583 long l636 = 636;
2584 int i637 = 637;
2585 long l637 = 637;
2586 int i638 = 638;
2587 long l638 = 638;
2588 int i639 = 639;
2589 long l639 = 639;
2590 int i640 = 640;
2591 long l640 = 640;
2592 int i641 = 641;
2593 long l641 = 641;
2594 int i642 = 642;
2595 long l642 = 642;
2596 int i643 = 643;
2597 long l643 = 643;
2598 int i644 = 644;
2599 long l644 = 644;
2600 int i645 = 645;
2601 long l645 = 645;
2602 int i646 = 646;
2603 long l646 = 646;
2604 int i647 = 647;
2605 long l647 = 647;
2606 int i648 = 648;
2607 long l648 = 648;
2608 int i649 = 649;
2609 long l649 = 649;
2610 int i650 = 650;
2611 long l650 = 650;
2612 int i651 = 651;
2613 long l651 = 651;
2614 int i652 = 652;
2615 long l652 = 652;
2616 int i653 = 653;
2617 long l653 = 653;
2618 int i654 = 654;
2619 long l654 = 654;
2620 int i655 = 655;
2621 long l655 = 655;
2622 int i656 = 656;
2623 long l656 = 656;
2624 int i657 = 657;
2625 long l657 = 657;
2626 int i658 = 658;
2627 long l658 = 658;
2628 int i659 = 659;
2629 long l659 = 659;
2630 int i660 = 660;
2631 long l660 = 660;
2632 int i661 = 661;
2633 long l661 = 661;
2634 int i662 = 662;
2635 long l662 = 662;
2636 int i663 = 663;
2637 long l663 = 663;
2638 int i664 = 664;
2639 long l664 = 664;
2640 int i665 = 665;
2641 long l665 = 665;
2642 int i666 = 666;
2643 long l666 = 666;
2644 int i667 = 667;
2645 long l667 = 667;
2646 int i668 = 668;
2647 long l668 = 668;
2648 int i669 = 669;
2649 long l669 = 669;
2650 int i670 = 670;
2651 long l670 = 670;
2652 int i671 = 671;
2653 long l671 = 671;
2654 int i672 = 672;
2655 long l672 = 672;
2656 int i673 = 673;
2657 long l673 = 673;
2658 int i674 = 674;
2659 long l674 = 674;
2660 int i675 = 675;
2661 long l675 = 675;
2662 int i676 = 676;
2663 long l676 = 676;
2664 int i677 = 677;
2665 long l677 = 677;
2666 int i678 = 678;
2667 long l678 = 678;
2668 int i679 = 679;
2669 long l679 = 679;
2670 int i680 = 680;
2671 long l680 = 680;
2672 int i681 = 681;
2673 long l681 = 681;
2674 int i682 = 682;
2675 long l682 = 682;
2676 int i683 = 683;
2677 long l683 = 683;
2678 int i684 = 684;
2679 long l684 = 684;
2680 int i685 = 685;
2681 long l685 = 685;
2682 int i686 = 686;
2683 long l686 = 686;
2684 int i687 = 687;
2685 long l687 = 687;
2686 int i688 = 688;
2687 long l688 = 688;
2688 int i689 = 689;
2689 long l689 = 689;
2690 int i690 = 690;
2691 long l690 = 690;
2692 int i691 = 691;
2693 long l691 = 691;
2694 int i692 = 692;
2695 long l692 = 692;
2696 int i693 = 693;
2697 long l693 = 693;
2698 int i694 = 694;
2699 long l694 = 694;
2700 int i695 = 695;
2701 long l695 = 695;
2702 int i696 = 696;
2703 long l696 = 696;
2704 int i697 = 697;
2705 long l697 = 697;
2706 int i698 = 698;
2707 long l698 = 698;
2708 int i699 = 699;
2709 long l699 = 699;
2710 int i700 = 700;
2711 long l700 = 700;
2712 int i701 = 701;
2713 long l701 = 701;
2714 int i702 = 702;
2715 long l702 = 702;
2716 int i703 = 703;
2717 long l703 = 703;
2718 int i704 = 704;
2719 long l704 = 704;
2720 int i705 = 705;
2721 long l705 = 705;
2722 int i706 = 706;
2723 long l706 = 706;
2724 int i707 = 707;
2725 long l707 = 707;
2726 int i708 = 708;
2727 long l708 = 708;
2728 int i709 = 709;
2729 long l709 = 709;
2730 int i710 = 710;
2731 long l710 = 710;
2732 int i711 = 711;
2733 long l711 = 711;
2734 int i712 = 712;
2735 long l712 = 712;
2736 int i713 = 713;
2737 long l713 = 713;
2738 int i714 = 714;
2739 long l714 = 714;
2740 int i715 = 715;
2741 long l715 = 715;
2742 int i716 = 716;
2743 long l716 = 716;
2744 int i717 = 717;
2745 long l717 = 717;
2746 int i718 = 718;
2747 long l718 = 718;
2748 int i719 = 719;
2749 long l719 = 719;
2750 int i720 = 720;
2751 long l720 = 720;
2752 int i721 = 721;
2753 long l721 = 721;
2754 int i722 = 722;
2755 long l722 = 722;
2756 int i723 = 723;
2757 long l723 = 723;
2758 int i724 = 724;
2759 long l724 = 724;
2760 int i725 = 725;
2761 long l725 = 725;
2762 int i726 = 726;
2763 long l726 = 726;
2764 int i727 = 727;
2765 long l727 = 727;
2766 int i728 = 728;
2767 long l728 = 728;
2768 int i729 = 729;
2769 long l729 = 729;
2770 int i730 = 730;
2771 long l730 = 730;
2772 int i731 = 731;
2773 long l731 = 731;
2774 int i732 = 732;
2775 long l732 = 732;
2776 int i733 = 733;
2777 long l733 = 733;
2778 int i734 = 734;
2779 long l734 = 734;
2780 int i735 = 735;
2781 long l735 = 735;
2782 int i736 = 736;
2783 long l736 = 736;
2784 int i737 = 737;
2785 long l737 = 737;
2786 int i738 = 738;
2787 long l738 = 738;
2788 int i739 = 739;
2789 long l739 = 739;
2790 int i740 = 740;
2791 long l740 = 740;
2792 int i741 = 741;
2793 long l741 = 741;
2794 int i742 = 742;
2795 long l742 = 742;
2796 int i743 = 743;
2797 long l743 = 743;
2798 int i744 = 744;
2799 long l744 = 744;
2800 int i745 = 745;
2801 long l745 = 745;
2802 int i746 = 746;
2803 long l746 = 746;
2804 int i747 = 747;
2805 long l747 = 747;
2806 int i748 = 748;
2807 long l748 = 748;
2808 int i749 = 749;
2809 long l749 = 749;
2810 int i750 = 750;
2811 long l750 = 750;
2812 int i751 = 751;
2813 long l751 = 751;
2814 int i752 = 752;
2815 long l752 = 752;
2816 int i753 = 753;
2817 long l753 = 753;
2818 int i754 = 754;
2819 long l754 = 754;
2820 int i755 = 755;
2821 long l755 = 755;
2822 int i756 = 756;
2823 long l756 = 756;
2824 int i757 = 757;
2825 long l757 = 757;
2826 int i758 = 758;
2827 long l758 = 758;
2828 int i759 = 759;
2829 long l759 = 759;
2830 int i760 = 760;
2831 long l760 = 760;
2832 int i761 = 761;
2833 long l761 = 761;
2834 int i762 = 762;
2835 long l762 = 762;
2836 int i763 = 763;
2837 long l763 = 763;
2838 int i764 = 764;
2839 long l764 = 764;
2840 int i765 = 765;
2841 long l765 = 765;
2842 int i766 = 766;
2843 long l766 = 766;
2844 int i767 = 767;
2845 long l767 = 767;
2846 int i768 = 768;
2847 long l768 = 768;
2848 int i769 = 769;
2849 long l769 = 769;
2850 int i770 = 770;
2851 long l770 = 770;
2852 int i771 = 771;
2853 long l771 = 771;
2854 int i772 = 772;
2855 long l772 = 772;
2856 int i773 = 773;
2857 long l773 = 773;
2858 int i774 = 774;
2859 long l774 = 774;
2860 int i775 = 775;
2861 long l775 = 775;
2862 int i776 = 776;
2863 long l776 = 776;
2864 int i777 = 777;
2865 long l777 = 777;
2866 int i778 = 778;
2867 long l778 = 778;
2868 int i779 = 779;
2869 long l779 = 779;
2870 int i780 = 780;
2871 long l780 = 780;
2872 int i781 = 781;
2873 long l781 = 781;
2874 int i782 = 782;
2875 long l782 = 782;
2876 int i783 = 783;
2877 long l783 = 783;
2878 int i784 = 784;
2879 long l784 = 784;
2880 int i785 = 785;
2881 long l785 = 785;
2882 int i786 = 786;
2883 long l786 = 786;
2884 int i787 = 787;
2885 long l787 = 787;
2886 int i788 = 788;
2887 long l788 = 788;
2888 int i789 = 789;
2889 long l789 = 789;
2890 int i790 = 790;
2891 long l790 = 790;
2892 int i791 = 791;
2893 long l791 = 791;
2894 int i792 = 792;
2895 long l792 = 792;
2896 int i793 = 793;
2897 long l793 = 793;
2898 int i794 = 794;
2899 long l794 = 794;
2900 int i795 = 795;
2901 long l795 = 795;
2902 int i796 = 796;
2903 long l796 = 796;
2904 int i797 = 797;
2905 long l797 = 797;
2906 int i798 = 798;
2907 long l798 = 798;
2908 int i799 = 799;
2909 long l799 = 799;
2910 int i800 = 800;
2911 long l800 = 800;
2912 int i801 = 801;
2913 long l801 = 801;
2914 int i802 = 802;
2915 long l802 = 802;
2916 int i803 = 803;
2917 long l803 = 803;
2918 int i804 = 804;
2919 long l804 = 804;
2920 int i805 = 805;
2921 long l805 = 805;
2922 int i806 = 806;
2923 long l806 = 806;
2924 int i807 = 807;
2925 long l807 = 807;
2926 int i808 = 808;
2927 long l808 = 808;
2928 int i809 = 809;
2929 long l809 = 809;
2930 int i810 = 810;
2931 long l810 = 810;
2932 int i811 = 811;
2933 long l811 = 811;
2934 int i812 = 812;
2935 long l812 = 812;
2936 int i813 = 813;
2937 long l813 = 813;
2938 int i814 = 814;
2939 long l814 = 814;
2940 int i815 = 815;
2941 long l815 = 815;
2942 int i816 = 816;
2943 long l816 = 816;
2944 int i817 = 817;
2945 long l817 = 817;
2946 int i818 = 818;
2947 long l818 = 818;
2948 int i819 = 819;
2949 long l819 = 819;
2950 int i820 = 820;
2951 long l820 = 820;
2952 int i821 = 821;
2953 long l821 = 821;
2954 int i822 = 822;
2955 long l822 = 822;
2956 int i823 = 823;
2957 long l823 = 823;
2958 int i824 = 824;
2959 long l824 = 824;
2960 int i825 = 825;
2961 long l825 = 825;
2962 int i826 = 826;
2963 long l826 = 826;
2964 int i827 = 827;
2965 long l827 = 827;
2966 int i828 = 828;
2967 long l828 = 828;
2968 int i829 = 829;
2969 long l829 = 829;
2970 int i830 = 830;
2971 long l830 = 830;
2972 int i831 = 831;
2973 long l831 = 831;
2974 int i832 = 832;
2975 long l832 = 832;
2976 int i833 = 833;
2977 long l833 = 833;
2978 int i834 = 834;
2979 long l834 = 834;
2980 int i835 = 835;
2981 long l835 = 835;
2982 int i836 = 836;
2983 long l836 = 836;
2984 int i837 = 837;
2985 long l837 = 837;
2986 int i838 = 838;
2987 long l838 = 838;
2988 int i839 = 839;
2989 long l839 = 839;
2990 int i840 = 840;
2991 long l840 = 840;
2992 int i841 = 841;
2993 long l841 = 841;
2994 int i842 = 842;
2995 long l842 = 842;
2996 int i843 = 843;
2997 long l843 = 843;
2998 int i844 = 844;
2999 long l844 = 844;
3000 int i845 = 845;
3001 long l845 = 845;
3002 int i846 = 846;
3003 long l846 = 846;
3004 int i847 = 847;
3005 long l847 = 847;
3006 int i848 = 848;
3007 long l848 = 848;
3008 int i849 = 849;
3009 long l849 = 849;
3010 int i850 = 850;
3011 long l850 = 850;
3012 int i851 = 851;
3013 long l851 = 851;
3014 int i852 = 852;
3015 long l852 = 852;
3016 int i853 = 853;
3017 long l853 = 853;
3018 int i854 = 854;
3019 long l854 = 854;
3020 int i855 = 855;
3021 long l855 = 855;
3022 int i856 = 856;
3023 long l856 = 856;
3024 int i857 = 857;
3025 long l857 = 857;
3026 int i858 = 858;
3027 long l858 = 858;
3028 int i859 = 859;
3029 long l859 = 859;
3030 int i860 = 860;
3031 long l860 = 860;
3032 int i861 = 861;
3033 long l861 = 861;
3034 int i862 = 862;
3035 long l862 = 862;
3036 int i863 = 863;
3037 long l863 = 863;
3038 int i864 = 864;
3039 long l864 = 864;
3040 int i865 = 865;
3041 long l865 = 865;
3042 int i866 = 866;
3043 long l866 = 866;
3044 int i867 = 867;
3045 long l867 = 867;
3046 int i868 = 868;
3047 long l868 = 868;
3048 int i869 = 869;
3049 long l869 = 869;
3050 int i870 = 870;
3051 long l870 = 870;
3052 int i871 = 871;
3053 long l871 = 871;
3054 int i872 = 872;
3055 long l872 = 872;
3056 int i873 = 873;
3057 long l873 = 873;
3058 int i874 = 874;
3059 long l874 = 874;
3060 int i875 = 875;
3061 long l875 = 875;
3062 int i876 = 876;
3063 long l876 = 876;
3064 int i877 = 877;
3065 long l877 = 877;
3066 int i878 = 878;
3067 long l878 = 878;
3068 int i879 = 879;
3069 long l879 = 879;
3070 int i880 = 880;
3071 long l880 = 880;
3072 int i881 = 881;
3073 long l881 = 881;
3074 int i882 = 882;
3075 long l882 = 882;
3076 int i883 = 883;
3077 long l883 = 883;
3078 int i884 = 884;
3079 long l884 = 884;
3080 int i885 = 885;
3081 long l885 = 885;
3082 int i886 = 886;
3083 long l886 = 886;
3084 int i887 = 887;
3085 long l887 = 887;
3086 int i888 = 888;
3087 long l888 = 888;
3088 int i889 = 889;
3089 long l889 = 889;
3090 int i890 = 890;
3091 long l890 = 890;
3092 int i891 = 891;
3093 long l891 = 891;
3094 int i892 = 892;
3095 long l892 = 892;
3096 int i893 = 893;
3097 long l893 = 893;
3098 int i894 = 894;
3099 long l894 = 894;
3100 int i895 = 895;
3101 long l895 = 895;
3102 int i896 = 896;
3103 long l896 = 896;
3104 int i897 = 897;
3105 long l897 = 897;
3106 int i898 = 898;
3107 long l898 = 898;
3108 int i899 = 899;
3109 long l899 = 899;
3110 int i900 = 900;
3111 long l900 = 900;
3112 int i901 = 901;
3113 long l901 = 901;
3114 int i902 = 902;
3115 long l902 = 902;
3116 int i903 = 903;
3117 long l903 = 903;
3118 int i904 = 904;
3119 long l904 = 904;
3120 int i905 = 905;
3121 long l905 = 905;
3122 int i906 = 906;
3123 long l906 = 906;
3124 int i907 = 907;
3125 long l907 = 907;
3126 int i908 = 908;
3127 long l908 = 908;
3128 int i909 = 909;
3129 long l909 = 909;
3130 int i910 = 910;
3131 long l910 = 910;
3132 int i911 = 911;
3133 long l911 = 911;
3134 int i912 = 912;
3135 long l912 = 912;
3136 int i913 = 913;
3137 long l913 = 913;
3138 int i914 = 914;
3139 long l914 = 914;
3140 int i915 = 915;
3141 long l915 = 915;
3142 int i916 = 916;
3143 long l916 = 916;
3144 int i917 = 917;
3145 long l917 = 917;
3146 int i918 = 918;
3147 long l918 = 918;
3148 int i919 = 919;
3149 long l919 = 919;
3150 int i920 = 920;
3151 long l920 = 920;
3152 int i921 = 921;
3153 long l921 = 921;
3154 int i922 = 922;
3155 long l922 = 922;
3156 int i923 = 923;
3157 long l923 = 923;
3158 int i924 = 924;
3159 long l924 = 924;
3160 int i925 = 925;
3161 long l925 = 925;
3162 int i926 = 926;
3163 long l926 = 926;
3164 int i927 = 927;
3165 long l927 = 927;
3166 int i928 = 928;
3167 long l928 = 928;
3168 int i929 = 929;
3169 long l929 = 929;
3170 int i930 = 930;
3171 long l930 = 930;
3172 int i931 = 931;
3173 long l931 = 931;
3174 int i932 = 932;
3175 long l932 = 932;
3176 int i933 = 933;
3177 long l933 = 933;
3178 int i934 = 934;
3179 long l934 = 934;
3180 int i935 = 935;
3181 long l935 = 935;
3182 int i936 = 936;
3183 long l936 = 936;
3184 int i937 = 937;
3185 long l937 = 937;
3186 int i938 = 938;
3187 long l938 = 938;
3188 int i939 = 939;
3189 long l939 = 939;
3190 int i940 = 940;
3191 long l940 = 940;
3192 int i941 = 941;
3193 long l941 = 941;
3194 int i942 = 942;
3195 long l942 = 942;
3196 int i943 = 943;
3197 long l943 = 943;
3198 int i944 = 944;
3199 long l944 = 944;
3200 int i945 = 945;
3201 long l945 = 945;
3202 int i946 = 946;
3203 long l946 = 946;
3204 int i947 = 947;
3205 long l947 = 947;
3206 int i948 = 948;
3207 long l948 = 948;
3208 int i949 = 949;
3209 long l949 = 949;
3210 int i950 = 950;
3211 long l950 = 950;
3212 int i951 = 951;
3213 long l951 = 951;
3214 int i952 = 952;
3215 long l952 = 952;
3216 int i953 = 953;
3217 long l953 = 953;
3218 int i954 = 954;
3219 long l954 = 954;
3220 int i955 = 955;
3221 long l955 = 955;
3222 int i956 = 956;
3223 long l956 = 956;
3224 int i957 = 957;
3225 long l957 = 957;
3226 int i958 = 958;
3227 long l958 = 958;
3228 int i959 = 959;
3229 long l959 = 959;
3230 int i960 = 960;
3231 long l960 = 960;
3232 int i961 = 961;
3233 long l961 = 961;
3234 int i962 = 962;
3235 long l962 = 962;
3236 int i963 = 963;
3237 long l963 = 963;
3238 int i964 = 964;
3239 long l964 = 964;
3240 int i965 = 965;
3241 long l965 = 965;
3242 int i966 = 966;
3243 long l966 = 966;
3244 int i967 = 967;
3245 long l967 = 967;
3246 int i968 = 968;
3247 long l968 = 968;
3248 int i969 = 969;
3249 long l969 = 969;
3250 int i970 = 970;
3251 long l970 = 970;
3252 int i971 = 971;
3253 long l971 = 971;
3254 int i972 = 972;
3255 long l972 = 972;
3256 int i973 = 973;
3257 long l973 = 973;
3258 int i974 = 974;
3259 long l974 = 974;
3260 int i975 = 975;
3261 long l975 = 975;
3262 int i976 = 976;
3263 long l976 = 976;
3264 int i977 = 977;
3265 long l977 = 977;
3266 int i978 = 978;
3267 long l978 = 978;
3268 int i979 = 979;
3269 long l979 = 979;
3270 int i980 = 980;
3271 long l980 = 980;
3272 int i981 = 981;
3273 long l981 = 981;
3274 int i982 = 982;
3275 long l982 = 982;
3276 int i983 = 983;
3277 long l983 = 983;
3278 int i984 = 984;
3279 long l984 = 984;
3280 int i985 = 985;
3281 long l985 = 985;
3282 int i986 = 986;
3283 long l986 = 986;
3284 int i987 = 987;
3285 long l987 = 987;
3286 int i988 = 988;
3287 long l988 = 988;
3288 int i989 = 989;
3289 long l989 = 989;
3290 int i990 = 990;
3291 long l990 = 990;
3292 int i991 = 991;
3293 long l991 = 991;
3294 int i992 = 992;
3295 long l992 = 992;
3296 int i993 = 993;
3297 long l993 = 993;
3298 int i994 = 994;
3299 long l994 = 994;
3300 int i995 = 995;
3301 long l995 = 995;
3302 int i996 = 996;
3303 long l996 = 996;
3304 int i997 = 997;
3305 long l997 = 997;
3306 int i998 = 998;
3307 long l998 = 998;
3308 int i999 = 999;
3309 long l999 = 999;
3310 i1 += i0;
3311 l1 = l0;
3312 i2 += i1;
3313 l2 = l1;
3314 i3 += i2;
3315 l3 = l2;
3316 i4 += i3;
3317 l4 = l3;
3318 i5 += i4;
3319 l5 = l4;
3320 i6 += i5;
3321 l6 = l5;
3322 i7 += i6;
3323 l7 = l6;
3324 i8 += i7;
3325 l8 = l7;
3326 i9 += i8;
3327 l9 = l8;
3328 i10 += i9;
3329 l10 = l9;
3330 i11 += i10;
3331 l11 = l10;
3332 i12 += i11;
3333 l12 = l11;
3334 i13 += i12;
3335 l13 = l12;
3336 i14 += i13;
3337 l14 = l13;
3338 i15 += i14;
3339 l15 = l14;
3340 i16 += i15;
3341 l16 = l15;
3342 i17 += i16;
3343 l17 = l16;
3344 i18 += i17;
3345 l18 = l17;
3346 i19 += i18;
3347 l19 = l18;
3348 i20 += i19;
3349 l20 = l19;
3350 i21 += i20;
3351 l21 = l20;
3352 i22 += i21;
3353 l22 = l21;
3354 i23 += i22;
3355 l23 = l22;
3356 i24 += i23;
3357 l24 = l23;
3358 i25 += i24;
3359 l25 = l24;
3360 i26 += i25;
3361 l26 = l25;
3362 i27 += i26;
3363 l27 = l26;
3364 i28 += i27;
3365 l28 = l27;
3366 i29 += i28;
3367 l29 = l28;
3368 i30 += i29;
3369 l30 = l29;
3370 i31 += i30;
3371 l31 = l30;
3372 i32 += i31;
3373 l32 = l31;
3374 i33 += i32;
3375 l33 = l32;
3376 i34 += i33;
3377 l34 = l33;
3378 i35 += i34;
3379 l35 = l34;
3380 i36 += i35;
3381 l36 = l35;
3382 i37 += i36;
3383 l37 = l36;
3384 i38 += i37;
3385 l38 = l37;
3386 i39 += i38;
3387 l39 = l38;
3388 i40 += i39;
3389 l40 = l39;
3390 i41 += i40;
3391 l41 = l40;
3392 i42 += i41;
3393 l42 = l41;
3394 i43 += i42;
3395 l43 = l42;
3396 i44 += i43;
3397 l44 = l43;
3398 i45 += i44;
3399 l45 = l44;
3400 i46 += i45;
3401 l46 = l45;
3402 i47 += i46;
3403 l47 = l46;
3404 i48 += i47;
3405 l48 = l47;
3406 i49 += i48;
3407 l49 = l48;
3408 i50 += i49;
3409 l50 = l49;
3410 i51 += i50;
3411 l51 = l50;
3412 i52 += i51;
3413 l52 = l51;
3414 i53 += i52;
3415 l53 = l52;
3416 i54 += i53;
3417 l54 = l53;
3418 i55 += i54;
3419 l55 = l54;
3420 i56 += i55;
3421 l56 = l55;
3422 i57 += i56;
3423 l57 = l56;
3424 i58 += i57;
3425 l58 = l57;
3426 i59 += i58;
3427 l59 = l58;
3428 i60 += i59;
3429 l60 = l59;
3430 i61 += i60;
3431 l61 = l60;
3432 i62 += i61;
3433 l62 = l61;
3434 i63 += i62;
3435 l63 = l62;
3436 i64 += i63;
3437 l64 = l63;
3438 i65 += i64;
3439 l65 = l64;
3440 i66 += i65;
3441 l66 = l65;
3442 i67 += i66;
3443 l67 = l66;
3444 i68 += i67;
3445 l68 = l67;
3446 i69 += i68;
3447 l69 = l68;
3448 i70 += i69;
3449 l70 = l69;
3450 i71 += i70;
3451 l71 = l70;
3452 i72 += i71;
3453 l72 = l71;
3454 i73 += i72;
3455 l73 = l72;
3456 i74 += i73;
3457 l74 = l73;
3458 i75 += i74;
3459 l75 = l74;
3460 i76 += i75;
3461 l76 = l75;
3462 i77 += i76;
3463 l77 = l76;
3464 i78 += i77;
3465 l78 = l77;
3466 i79 += i78;
3467 l79 = l78;
3468 i80 += i79;
3469 l80 = l79;
3470 i81 += i80;
3471 l81 = l80;
3472 i82 += i81;
3473 l82 = l81;
3474 i83 += i82;
3475 l83 = l82;
3476 i84 += i83;
3477 l84 = l83;
3478 i85 += i84;
3479 l85 = l84;
3480 i86 += i85;
3481 l86 = l85;
3482 i87 += i86;
3483 l87 = l86;
3484 i88 += i87;
3485 l88 = l87;
3486 i89 += i88;
3487 l89 = l88;
3488 i90 += i89;
3489 l90 = l89;
3490 i91 += i90;
3491 l91 = l90;
3492 i92 += i91;
3493 l92 = l91;
3494 i93 += i92;
3495 l93 = l92;
3496 i94 += i93;
3497 l94 = l93;
3498 i95 += i94;
3499 l95 = l94;
3500 i96 += i95;
3501 l96 = l95;
3502 i97 += i96;
3503 l97 = l96;
3504 i98 += i97;
3505 l98 = l97;
3506 i99 += i98;
3507 l99 = l98;
3508 i100 += i99;
3509 l100 = l99;
3510 i101 += i100;
3511 l101 = l100;
3512 i102 += i101;
3513 l102 = l101;
3514 i103 += i102;
3515 l103 = l102;
3516 i104 += i103;
3517 l104 = l103;
3518 i105 += i104;
3519 l105 = l104;
3520 i106 += i105;
3521 l106 = l105;
3522 i107 += i106;
3523 l107 = l106;
3524 i108 += i107;
3525 l108 = l107;
3526 i109 += i108;
3527 l109 = l108;
3528 i110 += i109;
3529 l110 = l109;
3530 i111 += i110;
3531 l111 = l110;
3532 i112 += i111;
3533 l112 = l111;
3534 i113 += i112;
3535 l113 = l112;
3536 i114 += i113;
3537 l114 = l113;
3538 i115 += i114;
3539 l115 = l114;
3540 i116 += i115;
3541 l116 = l115;
3542 i117 += i116;
3543 l117 = l116;
3544 i118 += i117;
3545 l118 = l117;
3546 i119 += i118;
3547 l119 = l118;
3548 i120 += i119;
3549 l120 = l119;
3550 i121 += i120;
3551 l121 = l120;
3552 i122 += i121;
3553 l122 = l121;
3554 i123 += i122;
3555 l123 = l122;
3556 i124 += i123;
3557 l124 = l123;
3558 i125 += i124;
3559 l125 = l124;
3560 i126 += i125;
3561 l126 = l125;
3562 i127 += i126;
3563 l127 = l126;
3564 i128 += i127;
3565 l128 = l127;
3566 i129 += i128;
3567 l129 = l128;
3568 i130 += i129;
3569 l130 = l129;
3570 i131 += i130;
3571 l131 = l130;
3572 i132 += i131;
3573 l132 = l131;
3574 i133 += i132;
3575 l133 = l132;
3576 i134 += i133;
3577 l134 = l133;
3578 i135 += i134;
3579 l135 = l134;
3580 i136 += i135;
3581 l136 = l135;
3582 i137 += i136;
3583 l137 = l136;
3584 i138 += i137;
3585 l138 = l137;
3586 i139 += i138;
3587 l139 = l138;
3588 i140 += i139;
3589 l140 = l139;
3590 i141 += i140;
3591 l141 = l140;
3592 i142 += i141;
3593 l142 = l141;
3594 i143 += i142;
3595 l143 = l142;
3596 i144 += i143;
3597 l144 = l143;
3598 i145 += i144;
3599 l145 = l144;
3600 i146 += i145;
3601 l146 = l145;
3602 i147 += i146;
3603 l147 = l146;
3604 i148 += i147;
3605 l148 = l147;
3606 i149 += i148;
3607 l149 = l148;
3608 i150 += i149;
3609 l150 = l149;
3610 i151 += i150;
3611 l151 = l150;
3612 i152 += i151;
3613 l152 = l151;
3614 i153 += i152;
3615 l153 = l152;
3616 i154 += i153;
3617 l154 = l153;
3618 i155 += i154;
3619 l155 = l154;
3620 i156 += i155;
3621 l156 = l155;
3622 i157 += i156;
3623 l157 = l156;
3624 i158 += i157;
3625 l158 = l157;
3626 i159 += i158;
3627 l159 = l158;
3628 i160 += i159;
3629 l160 = l159;
3630 i161 += i160;
3631 l161 = l160;
3632 i162 += i161;
3633 l162 = l161;
3634 i163 += i162;
3635 l163 = l162;
3636 i164 += i163;
3637 l164 = l163;
3638 i165 += i164;
3639 l165 = l164;
3640 i166 += i165;
3641 l166 = l165;
3642 i167 += i166;
3643 l167 = l166;
3644 i168 += i167;
3645 l168 = l167;
3646 i169 += i168;
3647 l169 = l168;
3648 i170 += i169;
3649 l170 = l169;
3650 i171 += i170;
3651 l171 = l170;
3652 i172 += i171;
3653 l172 = l171;
3654 i173 += i172;
3655 l173 = l172;
3656 i174 += i173;
3657 l174 = l173;
3658 i175 += i174;
3659 l175 = l174;
3660 i176 += i175;
3661 l176 = l175;
3662 i177 += i176;
3663 l177 = l176;
3664 i178 += i177;
3665 l178 = l177;
3666 i179 += i178;
3667 l179 = l178;
3668 i180 += i179;
3669 l180 = l179;
3670 i181 += i180;
3671 l181 = l180;
3672 i182 += i181;
3673 l182 = l181;
3674 i183 += i182;
3675 l183 = l182;
3676 i184 += i183;
3677 l184 = l183;
3678 i185 += i184;
3679 l185 = l184;
3680 i186 += i185;
3681 l186 = l185;
3682 i187 += i186;
3683 l187 = l186;
3684 i188 += i187;
3685 l188 = l187;
3686 i189 += i188;
3687 l189 = l188;
3688 i190 += i189;
3689 l190 = l189;
3690 i191 += i190;
3691 l191 = l190;
3692 i192 += i191;
3693 l192 = l191;
3694 i193 += i192;
3695 l193 = l192;
3696 i194 += i193;
3697 l194 = l193;
3698 i195 += i194;
3699 l195 = l194;
3700 i196 += i195;
3701 l196 = l195;
3702 i197 += i196;
3703 l197 = l196;
3704 i198 += i197;
3705 l198 = l197;
3706 i199 += i198;
3707 l199 = l198;
3708 i200 += i199;
3709 l200 = l199;
3710 i201 += i200;
3711 l201 = l200;
3712 i202 += i201;
3713 l202 = l201;
3714 i203 += i202;
3715 l203 = l202;
3716 i204 += i203;
3717 l204 = l203;
3718 i205 += i204;
3719 l205 = l204;
3720 i206 += i205;
3721 l206 = l205;
3722 i207 += i206;
3723 l207 = l206;
3724 i208 += i207;
3725 l208 = l207;
3726 i209 += i208;
3727 l209 = l208;
3728 i210 += i209;
3729 l210 = l209;
3730 i211 += i210;
3731 l211 = l210;
3732 i212 += i211;
3733 l212 = l211;
3734 i213 += i212;
3735 l213 = l212;
3736 i214 += i213;
3737 l214 = l213;
3738 i215 += i214;
3739 l215 = l214;
3740 i216 += i215;
3741 l216 = l215;
3742 i217 += i216;
3743 l217 = l216;
3744 i218 += i217;
3745 l218 = l217;
3746 i219 += i218;
3747 l219 = l218;
3748 i220 += i219;
3749 l220 = l219;
3750 i221 += i220;
3751 l221 = l220;
3752 i222 += i221;
3753 l222 = l221;
3754 i223 += i222;
3755 l223 = l222;
3756 i224 += i223;
3757 l224 = l223;
3758 i225 += i224;
3759 l225 = l224;
3760 i226 += i225;
3761 l226 = l225;
3762 i227 += i226;
3763 l227 = l226;
3764 i228 += i227;
3765 l228 = l227;
3766 i229 += i228;
3767 l229 = l228;
3768 i230 += i229;
3769 l230 = l229;
3770 i231 += i230;
3771 l231 = l230;
3772 i232 += i231;
3773 l232 = l231;
3774 i233 += i232;
3775 l233 = l232;
3776 i234 += i233;
3777 l234 = l233;
3778 i235 += i234;
3779 l235 = l234;
3780 i236 += i235;
3781 l236 = l235;
3782 i237 += i236;
3783 l237 = l236;
3784 i238 += i237;
3785 l238 = l237;
3786 i239 += i238;
3787 l239 = l238;
3788 i240 += i239;
3789 l240 = l239;
3790 i241 += i240;
3791 l241 = l240;
3792 i242 += i241;
3793 l242 = l241;
3794 i243 += i242;
3795 l243 = l242;
3796 i244 += i243;
3797 l244 = l243;
3798 i245 += i244;
3799 l245 = l244;
3800 i246 += i245;
3801 l246 = l245;
3802 i247 += i246;
3803 l247 = l246;
3804 i248 += i247;
3805 l248 = l247;
3806 i249 += i248;
3807 l249 = l248;
3808 i250 += i249;
3809 l250 = l249;
3810 i251 += i250;
3811 l251 = l250;
3812 i252 += i251;
3813 l252 = l251;
3814 i253 += i252;
3815 l253 = l252;
3816 i254 += i253;
3817 l254 = l253;
3818 i255 += i254;
3819 l255 = l254;
3820 i256 += i255;
3821 l256 = l255;
3822 i257 += i256;
3823 l257 = l256;
3824 i258 += i257;
3825 l258 = l257;
3826 i259 += i258;
3827 l259 = l258;
3828 i260 += i259;
3829 l260 = l259;
3830 i261 += i260;
3831 l261 = l260;
3832 i262 += i261;
3833 l262 = l261;
3834 i263 += i262;
3835 l263 = l262;
3836 i264 += i263;
3837 l264 = l263;
3838 i265 += i264;
3839 l265 = l264;
3840 i266 += i265;
3841 l266 = l265;
3842 i267 += i266;
3843 l267 = l266;
3844 i268 += i267;
3845 l268 = l267;
3846 i269 += i268;
3847 l269 = l268;
3848 i270 += i269;
3849 l270 = l269;
3850 i271 += i270;
3851 l271 = l270;
3852 i272 += i271;
3853 l272 = l271;
3854 i273 += i272;
3855 l273 = l272;
3856 i274 += i273;
3857 l274 = l273;
3858 i275 += i274;
3859 l275 = l274;
3860 i276 += i275;
3861 l276 = l275;
3862 i277 += i276;
3863 l277 = l276;
3864 i278 += i277;
3865 l278 = l277;
3866 i279 += i278;
3867 l279 = l278;
3868 i280 += i279;
3869 l280 = l279;
3870 i281 += i280;
3871 l281 = l280;
3872 i282 += i281;
3873 l282 = l281;
3874 i283 += i282;
3875 l283 = l282;
3876 i284 += i283;
3877 l284 = l283;
3878 i285 += i284;
3879 l285 = l284;
3880 i286 += i285;
3881 l286 = l285;
3882 i287 += i286;
3883 l287 = l286;
3884 i288 += i287;
3885 l288 = l287;
3886 i289 += i288;
3887 l289 = l288;
3888 i290 += i289;
3889 l290 = l289;
3890 i291 += i290;
3891 l291 = l290;
3892 i292 += i291;
3893 l292 = l291;
3894 i293 += i292;
3895 l293 = l292;
3896 i294 += i293;
3897 l294 = l293;
3898 i295 += i294;
3899 l295 = l294;
3900 i296 += i295;
3901 l296 = l295;
3902 i297 += i296;
3903 l297 = l296;
3904 i298 += i297;
3905 l298 = l297;
3906 i299 += i298;
3907 l299 = l298;
3908 i300 += i299;
3909 l300 = l299;
3910 i301 += i300;
3911 l301 = l300;
3912 i302 += i301;
3913 l302 = l301;
3914 i303 += i302;
3915 l303 = l302;
3916 i304 += i303;
3917 l304 = l303;
3918 i305 += i304;
3919 l305 = l304;
3920 i306 += i305;
3921 l306 = l305;
3922 i307 += i306;
3923 l307 = l306;
3924 i308 += i307;
3925 l308 = l307;
3926 i309 += i308;
3927 l309 = l308;
3928 i310 += i309;
3929 l310 = l309;
3930 i311 += i310;
3931 l311 = l310;
3932 i312 += i311;
3933 l312 = l311;
3934 i313 += i312;
3935 l313 = l312;
3936 i314 += i313;
3937 l314 = l313;
3938 i315 += i314;
3939 l315 = l314;
3940 i316 += i315;
3941 l316 = l315;
3942 i317 += i316;
3943 l317 = l316;
3944 i318 += i317;
3945 l318 = l317;
3946 i319 += i318;
3947 l319 = l318;
3948 i320 += i319;
3949 l320 = l319;
3950 i321 += i320;
3951 l321 = l320;
3952 i322 += i321;
3953 l322 = l321;
3954 i323 += i322;
3955 l323 = l322;
3956 i324 += i323;
3957 l324 = l323;
3958 i325 += i324;
3959 l325 = l324;
3960 i326 += i325;
3961 l326 = l325;
3962 i327 += i326;
3963 l327 = l326;
3964 i328 += i327;
3965 l328 = l327;
3966 i329 += i328;
3967 l329 = l328;
3968 i330 += i329;
3969 l330 = l329;
3970 i331 += i330;
3971 l331 = l330;
3972 i332 += i331;
3973 l332 = l331;
3974 i333 += i332;
3975 l333 = l332;
3976 i334 += i333;
3977 l334 = l333;
3978 i335 += i334;
3979 l335 = l334;
3980 i336 += i335;
3981 l336 = l335;
3982 i337 += i336;
3983 l337 = l336;
3984 i338 += i337;
3985 l338 = l337;
3986 i339 += i338;
3987 l339 = l338;
3988 i340 += i339;
3989 l340 = l339;
3990 i341 += i340;
3991 l341 = l340;
3992 i342 += i341;
3993 l342 = l341;
3994 i343 += i342;
3995 l343 = l342;
3996 i344 += i343;
3997 l344 = l343;
3998 i345 += i344;
3999 l345 = l344;
4000 i346 += i345;
4001 l346 = l345;
4002 i347 += i346;
4003 l347 = l346;
4004 i348 += i347;
4005 l348 = l347;
4006 i349 += i348;
4007 l349 = l348;
4008 i350 += i349;
4009 l350 = l349;
4010 i351 += i350;
4011 l351 = l350;
4012 i352 += i351;
4013 l352 = l351;
4014 i353 += i352;
4015 l353 = l352;
4016 i354 += i353;
4017 l354 = l353;
4018 i355 += i354;
4019 l355 = l354;
4020 i356 += i355;
4021 l356 = l355;
4022 i357 += i356;
4023 l357 = l356;
4024 i358 += i357;
4025 l358 = l357;
4026 i359 += i358;
4027 l359 = l358;
4028 i360 += i359;
4029 l360 = l359;
4030 i361 += i360;
4031 l361 = l360;
4032 i362 += i361;
4033 l362 = l361;
4034 i363 += i362;
4035 l363 = l362;
4036 i364 += i363;
4037 l364 = l363;
4038 i365 += i364;
4039 l365 = l364;
4040 i366 += i365;
4041 l366 = l365;
4042 i367 += i366;
4043 l367 = l366;
4044 i368 += i367;
4045 l368 = l367;
4046 i369 += i368;
4047 l369 = l368;
4048 i370 += i369;
4049 l370 = l369;
4050 i371 += i370;
4051 l371 = l370;
4052 i372 += i371;
4053 l372 = l371;
4054 i373 += i372;
4055 l373 = l372;
4056 i374 += i373;
4057 l374 = l373;
4058 i375 += i374;
4059 l375 = l374;
4060 i376 += i375;
4061 l376 = l375;
4062 i377 += i376;
4063 l377 = l376;
4064 i378 += i377;
4065 l378 = l377;
4066 i379 += i378;
4067 l379 = l378;
4068 i380 += i379;
4069 l380 = l379;
4070 i381 += i380;
4071 l381 = l380;
4072 i382 += i381;
4073 l382 = l381;
4074 i383 += i382;
4075 l383 = l382;
4076 i384 += i383;
4077 l384 = l383;
4078 i385 += i384;
4079 l385 = l384;
4080 i386 += i385;
4081 l386 = l385;
4082 i387 += i386;
4083 l387 = l386;
4084 i388 += i387;
4085 l388 = l387;
4086 i389 += i388;
4087 l389 = l388;
4088 i390 += i389;
4089 l390 = l389;
4090 i391 += i390;
4091 l391 = l390;
4092 i392 += i391;
4093 l392 = l391;
4094 i393 += i392;
4095 l393 = l392;
4096 i394 += i393;
4097 l394 = l393;
4098 i395 += i394;
4099 l395 = l394;
4100 i396 += i395;
4101 l396 = l395;
4102 i397 += i396;
4103 l397 = l396;
4104 i398 += i397;
4105 l398 = l397;
4106 i399 += i398;
4107 l399 = l398;
4108 i400 += i399;
4109 l400 = l399;
4110 i401 += i400;
4111 l401 = l400;
4112 i402 += i401;
4113 l402 = l401;
4114 i403 += i402;
4115 l403 = l402;
4116 i404 += i403;
4117 l404 = l403;
4118 i405 += i404;
4119 l405 = l404;
4120 i406 += i405;
4121 l406 = l405;
4122 i407 += i406;
4123 l407 = l406;
4124 i408 += i407;
4125 l408 = l407;
4126 i409 += i408;
4127 l409 = l408;
4128 i410 += i409;
4129 l410 = l409;
4130 i411 += i410;
4131 l411 = l410;
4132 i412 += i411;
4133 l412 = l411;
4134 i413 += i412;
4135 l413 = l412;
4136 i414 += i413;
4137 l414 = l413;
4138 i415 += i414;
4139 l415 = l414;
4140 i416 += i415;
4141 l416 = l415;
4142 i417 += i416;
4143 l417 = l416;
4144 i418 += i417;
4145 l418 = l417;
4146 i419 += i418;
4147 l419 = l418;
4148 i420 += i419;
4149 l420 = l419;
4150 i421 += i420;
4151 l421 = l420;
4152 i422 += i421;
4153 l422 = l421;
4154 i423 += i422;
4155 l423 = l422;
4156 i424 += i423;
4157 l424 = l423;
4158 i425 += i424;
4159 l425 = l424;
4160 i426 += i425;
4161 l426 = l425;
4162 i427 += i426;
4163 l427 = l426;
4164 i428 += i427;
4165 l428 = l427;
4166 i429 += i428;
4167 l429 = l428;
4168 i430 += i429;
4169 l430 = l429;
4170 i431 += i430;
4171 l431 = l430;
4172 i432 += i431;
4173 l432 = l431;
4174 i433 += i432;
4175 l433 = l432;
4176 i434 += i433;
4177 l434 = l433;
4178 i435 += i434;
4179 l435 = l434;
4180 i436 += i435;
4181 l436 = l435;
4182 i437 += i436;
4183 l437 = l436;
4184 i438 += i437;
4185 l438 = l437;
4186 i439 += i438;
4187 l439 = l438;
4188 i440 += i439;
4189 l440 = l439;
4190 i441 += i440;
4191 l441 = l440;
4192 i442 += i441;
4193 l442 = l441;
4194 i443 += i442;
4195 l443 = l442;
4196 i444 += i443;
4197 l444 = l443;
4198 i445 += i444;
4199 l445 = l444;
4200 i446 += i445;
4201 l446 = l445;
4202 i447 += i446;
4203 l447 = l446;
4204 i448 += i447;
4205 l448 = l447;
4206 i449 += i448;
4207 l449 = l448;
4208 i450 += i449;
4209 l450 = l449;
4210 i451 += i450;
4211 l451 = l450;
4212 i452 += i451;
4213 l452 = l451;
4214 i453 += i452;
4215 l453 = l452;
4216 i454 += i453;
4217 l454 = l453;
4218 i455 += i454;
4219 l455 = l454;
4220 i456 += i455;
4221 l456 = l455;
4222 i457 += i456;
4223 l457 = l456;
4224 i458 += i457;
4225 l458 = l457;
4226 i459 += i458;
4227 l459 = l458;
4228 i460 += i459;
4229 l460 = l459;
4230 i461 += i460;
4231 l461 = l460;
4232 i462 += i461;
4233 l462 = l461;
4234 i463 += i462;
4235 l463 = l462;
4236 i464 += i463;
4237 l464 = l463;
4238 i465 += i464;
4239 l465 = l464;
4240 i466 += i465;
4241 l466 = l465;
4242 i467 += i466;
4243 l467 = l466;
4244 i468 += i467;
4245 l468 = l467;
4246 i469 += i468;
4247 l469 = l468;
4248 i470 += i469;
4249 l470 = l469;
4250 i471 += i470;
4251 l471 = l470;
4252 i472 += i471;
4253 l472 = l471;
4254 i473 += i472;
4255 l473 = l472;
4256 i474 += i473;
4257 l474 = l473;
4258 i475 += i474;
4259 l475 = l474;
4260 i476 += i475;
4261 l476 = l475;
4262 i477 += i476;
4263 l477 = l476;
4264 i478 += i477;
4265 l478 = l477;
4266 i479 += i478;
4267 l479 = l478;
4268 i480 += i479;
4269 l480 = l479;
4270 i481 += i480;
4271 l481 = l480;
4272 i482 += i481;
4273 l482 = l481;
4274 i483 += i482;
4275 l483 = l482;
4276 i484 += i483;
4277 l484 = l483;
4278 i485 += i484;
4279 l485 = l484;
4280 i486 += i485;
4281 l486 = l485;
4282 i487 += i486;
4283 l487 = l486;
4284 i488 += i487;
4285 l488 = l487;
4286 i489 += i488;
4287 l489 = l488;
4288 i490 += i489;
4289 l490 = l489;
4290 i491 += i490;
4291 l491 = l490;
4292 i492 += i491;
4293 l492 = l491;
4294 i493 += i492;
4295 l493 = l492;
4296 i494 += i493;
4297 l494 = l493;
4298 i495 += i494;
4299 l495 = l494;
4300 i496 += i495;
4301 l496 = l495;
4302 i497 += i496;
4303 l497 = l496;
4304 i498 += i497;
4305 l498 = l497;
4306 i499 += i498;
4307 l499 = l498;
4308 i500 += i499;
4309 l500 = l499;
4310 i501 += i500;
4311 l501 = l500;
4312 i502 += i501;
4313 l502 = l501;
4314 i503 += i502;
4315 l503 = l502;
4316 i504 += i503;
4317 l504 = l503;
4318 i505 += i504;
4319 l505 = l504;
4320 i506 += i505;
4321 l506 = l505;
4322 i507 += i506;
4323 l507 = l506;
4324 i508 += i507;
4325 l508 = l507;
4326 i509 += i508;
4327 l509 = l508;
4328 i510 += i509;
4329 l510 = l509;
4330 i511 += i510;
4331 l511 = l510;
4332 i512 += i511;
4333 l512 = l511;
4334 i513 += i512;
4335 l513 = l512;
4336 i514 += i513;
4337 l514 = l513;
4338 i515 += i514;
4339 l515 = l514;
4340 i516 += i515;
4341 l516 = l515;
4342 i517 += i516;
4343 l517 = l516;
4344 i518 += i517;
4345 l518 = l517;
4346 i519 += i518;
4347 l519 = l518;
4348 i520 += i519;
4349 l520 = l519;
4350 i521 += i520;
4351 l521 = l520;
4352 i522 += i521;
4353 l522 = l521;
4354 i523 += i522;
4355 l523 = l522;
4356 i524 += i523;
4357 l524 = l523;
4358 i525 += i524;
4359 l525 = l524;
4360 i526 += i525;
4361 l526 = l525;
4362 i527 += i526;
4363 l527 = l526;
4364 i528 += i527;
4365 l528 = l527;
4366 i529 += i528;
4367 l529 = l528;
4368 i530 += i529;
4369 l530 = l529;
4370 i531 += i530;
4371 l531 = l530;
4372 i532 += i531;
4373 l532 = l531;
4374 i533 += i532;
4375 l533 = l532;
4376 i534 += i533;
4377 l534 = l533;
4378 i535 += i534;
4379 l535 = l534;
4380 i536 += i535;
4381 l536 = l535;
4382 i537 += i536;
4383 l537 = l536;
4384 i538 += i537;
4385 l538 = l537;
4386 i539 += i538;
4387 l539 = l538;
4388 i540 += i539;
4389 l540 = l539;
4390 i541 += i540;
4391 l541 = l540;
4392 i542 += i541;
4393 l542 = l541;
4394 i543 += i542;
4395 l543 = l542;
4396 i544 += i543;
4397 l544 = l543;
4398 i545 += i544;
4399 l545 = l544;
4400 i546 += i545;
4401 l546 = l545;
4402 i547 += i546;
4403 l547 = l546;
4404 i548 += i547;
4405 l548 = l547;
4406 i549 += i548;
4407 l549 = l548;
4408 i550 += i549;
4409 l550 = l549;
4410 i551 += i550;
4411 l551 = l550;
4412 i552 += i551;
4413 l552 = l551;
4414 i553 += i552;
4415 l553 = l552;
4416 i554 += i553;
4417 l554 = l553;
4418 i555 += i554;
4419 l555 = l554;
4420 i556 += i555;
4421 l556 = l555;
4422 i557 += i556;
4423 l557 = l556;
4424 i558 += i557;
4425 l558 = l557;
4426 i559 += i558;
4427 l559 = l558;
4428 i560 += i559;
4429 l560 = l559;
4430 i561 += i560;
4431 l561 = l560;
4432 i562 += i561;
4433 l562 = l561;
4434 i563 += i562;
4435 l563 = l562;
4436 i564 += i563;
4437 l564 = l563;
4438 i565 += i564;
4439 l565 = l564;
4440 i566 += i565;
4441 l566 = l565;
4442 i567 += i566;
4443 l567 = l566;
4444 i568 += i567;
4445 l568 = l567;
4446 i569 += i568;
4447 l569 = l568;
4448 i570 += i569;
4449 l570 = l569;
4450 i571 += i570;
4451 l571 = l570;
4452 i572 += i571;
4453 l572 = l571;
4454 i573 += i572;
4455 l573 = l572;
4456 i574 += i573;
4457 l574 = l573;
4458 i575 += i574;
4459 l575 = l574;
4460 i576 += i575;
4461 l576 = l575;
4462 i577 += i576;
4463 l577 = l576;
4464 i578 += i577;
4465 l578 = l577;
4466 i579 += i578;
4467 l579 = l578;
4468 i580 += i579;
4469 l580 = l579;
4470 i581 += i580;
4471 l581 = l580;
4472 i582 += i581;
4473 l582 = l581;
4474 i583 += i582;
4475 l583 = l582;
4476 i584 += i583;
4477 l584 = l583;
4478 i585 += i584;
4479 l585 = l584;
4480 i586 += i585;
4481 l586 = l585;
4482 i587 += i586;
4483 l587 = l586;
4484 i588 += i587;
4485 l588 = l587;
4486 i589 += i588;
4487 l589 = l588;
4488 i590 += i589;
4489 l590 = l589;
4490 i591 += i590;
4491 l591 = l590;
4492 i592 += i591;
4493 l592 = l591;
4494 i593 += i592;
4495 l593 = l592;
4496 i594 += i593;
4497 l594 = l593;
4498 i595 += i594;
4499 l595 = l594;
4500 i596 += i595;
4501 l596 = l595;
4502 i597 += i596;
4503 l597 = l596;
4504 i598 += i597;
4505 l598 = l597;
4506 i599 += i598;
4507 l599 = l598;
4508 i600 += i599;
4509 l600 = l599;
4510 i601 += i600;
4511 l601 = l600;
4512 i602 += i601;
4513 l602 = l601;
4514 i603 += i602;
4515 l603 = l602;
4516 i604 += i603;
4517 l604 = l603;
4518 i605 += i604;
4519 l605 = l604;
4520 i606 += i605;
4521 l606 = l605;
4522 i607 += i606;
4523 l607 = l606;
4524 i608 += i607;
4525 l608 = l607;
4526 i609 += i608;
4527 l609 = l608;
4528 i610 += i609;
4529 l610 = l609;
4530 i611 += i610;
4531 l611 = l610;
4532 i612 += i611;
4533 l612 = l611;
4534 i613 += i612;
4535 l613 = l612;
4536 i614 += i613;
4537 l614 = l613;
4538 i615 += i614;
4539 l615 = l614;
4540 i616 += i615;
4541 l616 = l615;
4542 i617 += i616;
4543 l617 = l616;
4544 i618 += i617;
4545 l618 = l617;
4546 i619 += i618;
4547 l619 = l618;
4548 i620 += i619;
4549 l620 = l619;
4550 i621 += i620;
4551 l621 = l620;
4552 i622 += i621;
4553 l622 = l621;
4554 i623 += i622;
4555 l623 = l622;
4556 i624 += i623;
4557 l624 = l623;
4558 i625 += i624;
4559 l625 = l624;
4560 i626 += i625;
4561 l626 = l625;
4562 i627 += i626;
4563 l627 = l626;
4564 i628 += i627;
4565 l628 = l627;
4566 i629 += i628;
4567 l629 = l628;
4568 i630 += i629;
4569 l630 = l629;
4570 i631 += i630;
4571 l631 = l630;
4572 i632 += i631;
4573 l632 = l631;
4574 i633 += i632;
4575 l633 = l632;
4576 i634 += i633;
4577 l634 = l633;
4578 i635 += i634;
4579 l635 = l634;
4580 i636 += i635;
4581 l636 = l635;
4582 i637 += i636;
4583 l637 = l636;
4584 i638 += i637;
4585 l638 = l637;
4586 i639 += i638;
4587 l639 = l638;
4588 i640 += i639;
4589 l640 = l639;
4590 i641 += i640;
4591 l641 = l640;
4592 i642 += i641;
4593 l642 = l641;
4594 i643 += i642;
4595 l643 = l642;
4596 i644 += i643;
4597 l644 = l643;
4598 i645 += i644;
4599 l645 = l644;
4600 i646 += i645;
4601 l646 = l645;
4602 i647 += i646;
4603 l647 = l646;
4604 i648 += i647;
4605 l648 = l647;
4606 i649 += i648;
4607 l649 = l648;
4608 i650 += i649;
4609 l650 = l649;
4610 i651 += i650;
4611 l651 = l650;
4612 i652 += i651;
4613 l652 = l651;
4614 i653 += i652;
4615 l653 = l652;
4616 i654 += i653;
4617 l654 = l653;
4618 i655 += i654;
4619 l655 = l654;
4620 i656 += i655;
4621 l656 = l655;
4622 i657 += i656;
4623 l657 = l656;
4624 i658 += i657;
4625 l658 = l657;
4626 i659 += i658;
4627 l659 = l658;
4628 i660 += i659;
4629 l660 = l659;
4630 i661 += i660;
4631 l661 = l660;
4632 i662 += i661;
4633 l662 = l661;
4634 i663 += i662;
4635 l663 = l662;
4636 i664 += i663;
4637 l664 = l663;
4638 i665 += i664;
4639 l665 = l664;
4640 i666 += i665;
4641 l666 = l665;
4642 i667 += i666;
4643 l667 = l666;
4644 i668 += i667;
4645 l668 = l667;
4646 i669 += i668;
4647 l669 = l668;
4648 i670 += i669;
4649 l670 = l669;
4650 i671 += i670;
4651 l671 = l670;
4652 i672 += i671;
4653 l672 = l671;
4654 i673 += i672;
4655 l673 = l672;
4656 i674 += i673;
4657 l674 = l673;
4658 i675 += i674;
4659 l675 = l674;
4660 i676 += i675;
4661 l676 = l675;
4662 i677 += i676;
4663 l677 = l676;
4664 i678 += i677;
4665 l678 = l677;
4666 i679 += i678;
4667 l679 = l678;
4668 i680 += i679;
4669 l680 = l679;
4670 i681 += i680;
4671 l681 = l680;
4672 i682 += i681;
4673 l682 = l681;
4674 i683 += i682;
4675 l683 = l682;
4676 i684 += i683;
4677 l684 = l683;
4678 i685 += i684;
4679 l685 = l684;
4680 i686 += i685;
4681 l686 = l685;
4682 i687 += i686;
4683 l687 = l686;
4684 i688 += i687;
4685 l688 = l687;
4686 i689 += i688;
4687 l689 = l688;
4688 i690 += i689;
4689 l690 = l689;
4690 i691 += i690;
4691 l691 = l690;
4692 i692 += i691;
4693 l692 = l691;
4694 i693 += i692;
4695 l693 = l692;
4696 i694 += i693;
4697 l694 = l693;
4698 i695 += i694;
4699 l695 = l694;
4700 i696 += i695;
4701 l696 = l695;
4702 i697 += i696;
4703 l697 = l696;
4704 i698 += i697;
4705 l698 = l697;
4706 i699 += i698;
4707 l699 = l698;
4708 i700 += i699;
4709 l700 = l699;
4710 i701 += i700;
4711 l701 = l700;
4712 i702 += i701;
4713 l702 = l701;
4714 i703 += i702;
4715 l703 = l702;
4716 i704 += i703;
4717 l704 = l703;
4718 i705 += i704;
4719 l705 = l704;
4720 i706 += i705;
4721 l706 = l705;
4722 i707 += i706;
4723 l707 = l706;
4724 i708 += i707;
4725 l708 = l707;
4726 i709 += i708;
4727 l709 = l708;
4728 i710 += i709;
4729 l710 = l709;
4730 i711 += i710;
4731 l711 = l710;
4732 i712 += i711;
4733 l712 = l711;
4734 i713 += i712;
4735 l713 = l712;
4736 i714 += i713;
4737 l714 = l713;
4738 i715 += i714;
4739 l715 = l714;
4740 i716 += i715;
4741 l716 = l715;
4742 i717 += i716;
4743 l717 = l716;
4744 i718 += i717;
4745 l718 = l717;
4746 i719 += i718;
4747 l719 = l718;
4748 i720 += i719;
4749 l720 = l719;
4750 i721 += i720;
4751 l721 = l720;
4752 i722 += i721;
4753 l722 = l721;
4754 i723 += i722;
4755 l723 = l722;
4756 i724 += i723;
4757 l724 = l723;
4758 i725 += i724;
4759 l725 = l724;
4760 i726 += i725;
4761 l726 = l725;
4762 i727 += i726;
4763 l727 = l726;
4764 i728 += i727;
4765 l728 = l727;
4766 i729 += i728;
4767 l729 = l728;
4768 i730 += i729;
4769 l730 = l729;
4770 i731 += i730;
4771 l731 = l730;
4772 i732 += i731;
4773 l732 = l731;
4774 i733 += i732;
4775 l733 = l732;
4776 i734 += i733;
4777 l734 = l733;
4778 i735 += i734;
4779 l735 = l734;
4780 i736 += i735;
4781 l736 = l735;
4782 i737 += i736;
4783 l737 = l736;
4784 i738 += i737;
4785 l738 = l737;
4786 i739 += i738;
4787 l739 = l738;
4788 i740 += i739;
4789 l740 = l739;
4790 i741 += i740;
4791 l741 = l740;
4792 i742 += i741;
4793 l742 = l741;
4794 i743 += i742;
4795 l743 = l742;
4796 i744 += i743;
4797 l744 = l743;
4798 i745 += i744;
4799 l745 = l744;
4800 i746 += i745;
4801 l746 = l745;
4802 i747 += i746;
4803 l747 = l746;
4804 i748 += i747;
4805 l748 = l747;
4806 i749 += i748;
4807 l749 = l748;
4808 i750 += i749;
4809 l750 = l749;
4810 i751 += i750;
4811 l751 = l750;
4812 i752 += i751;
4813 l752 = l751;
4814 i753 += i752;
4815 l753 = l752;
4816 i754 += i753;
4817 l754 = l753;
4818 i755 += i754;
4819 l755 = l754;
4820 i756 += i755;
4821 l756 = l755;
4822 i757 += i756;
4823 l757 = l756;
4824 i758 += i757;
4825 l758 = l757;
4826 i759 += i758;
4827 l759 = l758;
4828 i760 += i759;
4829 l760 = l759;
4830 i761 += i760;
4831 l761 = l760;
4832 i762 += i761;
4833 l762 = l761;
4834 i763 += i762;
4835 l763 = l762;
4836 i764 += i763;
4837 l764 = l763;
4838 i765 += i764;
4839 l765 = l764;
4840 i766 += i765;
4841 l766 = l765;
4842 i767 += i766;
4843 l767 = l766;
4844 i768 += i767;
4845 l768 = l767;
4846 i769 += i768;
4847 l769 = l768;
4848 i770 += i769;
4849 l770 = l769;
4850 i771 += i770;
4851 l771 = l770;
4852 i772 += i771;
4853 l772 = l771;
4854 i773 += i772;
4855 l773 = l772;
4856 i774 += i773;
4857 l774 = l773;
4858 i775 += i774;
4859 l775 = l774;
4860 i776 += i775;
4861 l776 = l775;
4862 i777 += i776;
4863 l777 = l776;
4864 i778 += i777;
4865 l778 = l777;
4866 i779 += i778;
4867 l779 = l778;
4868 i780 += i779;
4869 l780 = l779;
4870 i781 += i780;
4871 l781 = l780;
4872 i782 += i781;
4873 l782 = l781;
4874 i783 += i782;
4875 l783 = l782;
4876 i784 += i783;
4877 l784 = l783;
4878 i785 += i784;
4879 l785 = l784;
4880 i786 += i785;
4881 l786 = l785;
4882 i787 += i786;
4883 l787 = l786;
4884 i788 += i787;
4885 l788 = l787;
4886 i789 += i788;
4887 l789 = l788;
4888 i790 += i789;
4889 l790 = l789;
4890 i791 += i790;
4891 l791 = l790;
4892 i792 += i791;
4893 l792 = l791;
4894 i793 += i792;
4895 l793 = l792;
4896 i794 += i793;
4897 l794 = l793;
4898 i795 += i794;
4899 l795 = l794;
4900 i796 += i795;
4901 l796 = l795;
4902 i797 += i796;
4903 l797 = l796;
4904 i798 += i797;
4905 l798 = l797;
4906 i799 += i798;
4907 l799 = l798;
4908 i800 += i799;
4909 l800 = l799;
4910 i801 += i800;
4911 l801 = l800;
4912 i802 += i801;
4913 l802 = l801;
4914 i803 += i802;
4915 l803 = l802;
4916 i804 += i803;
4917 l804 = l803;
4918 i805 += i804;
4919 l805 = l804;
4920 i806 += i805;
4921 l806 = l805;
4922 i807 += i806;
4923 l807 = l806;
4924 i808 += i807;
4925 l808 = l807;
4926 i809 += i808;
4927 l809 = l808;
4928 i810 += i809;
4929 l810 = l809;
4930 i811 += i810;
4931 l811 = l810;
4932 i812 += i811;
4933 l812 = l811;
4934 i813 += i812;
4935 l813 = l812;
4936 i814 += i813;
4937 l814 = l813;
4938 i815 += i814;
4939 l815 = l814;
4940 i816 += i815;
4941 l816 = l815;
4942 i817 += i816;
4943 l817 = l816;
4944 i818 += i817;
4945 l818 = l817;
4946 i819 += i818;
4947 l819 = l818;
4948 i820 += i819;
4949 l820 = l819;
4950 i821 += i820;
4951 l821 = l820;
4952 i822 += i821;
4953 l822 = l821;
4954 i823 += i822;
4955 l823 = l822;
4956 i824 += i823;
4957 l824 = l823;
4958 i825 += i824;
4959 l825 = l824;
4960 i826 += i825;
4961 l826 = l825;
4962 i827 += i826;
4963 l827 = l826;
4964 i828 += i827;
4965 l828 = l827;
4966 i829 += i828;
4967 l829 = l828;
4968 i830 += i829;
4969 l830 = l829;
4970 i831 += i830;
4971 l831 = l830;
4972 i832 += i831;
4973 l832 = l831;
4974 i833 += i832;
4975 l833 = l832;
4976 i834 += i833;
4977 l834 = l833;
4978 i835 += i834;
4979 l835 = l834;
4980 i836 += i835;
4981 l836 = l835;
4982 i837 += i836;
4983 l837 = l836;
4984 i838 += i837;
4985 l838 = l837;
4986 i839 += i838;
4987 l839 = l838;
4988 i840 += i839;
4989 l840 = l839;
4990 i841 += i840;
4991 l841 = l840;
4992 i842 += i841;
4993 l842 = l841;
4994 i843 += i842;
4995 l843 = l842;
4996 i844 += i843;
4997 l844 = l843;
4998 i845 += i844;
4999 l845 = l844;
5000 i846 += i845;
5001 l846 = l845;
5002 i847 += i846;
5003 l847 = l846;
5004 i848 += i847;
5005 l848 = l847;
5006 i849 += i848;
5007 l849 = l848;
5008 i850 += i849;
5009 l850 = l849;
5010 i851 += i850;
5011 l851 = l850;
5012 i852 += i851;
5013 l852 = l851;
5014 i853 += i852;
5015 l853 = l852;
5016 i854 += i853;
5017 l854 = l853;
5018 i855 += i854;
5019 l855 = l854;
5020 i856 += i855;
5021 l856 = l855;
5022 i857 += i856;
5023 l857 = l856;
5024 i858 += i857;
5025 l858 = l857;
5026 i859 += i858;
5027 l859 = l858;
5028 i860 += i859;
5029 l860 = l859;
5030 i861 += i860;
5031 l861 = l860;
5032 i862 += i861;
5033 l862 = l861;
5034 i863 += i862;
5035 l863 = l862;
5036 i864 += i863;
5037 l864 = l863;
5038 i865 += i864;
5039 l865 = l864;
5040 i866 += i865;
5041 l866 = l865;
5042 i867 += i866;
5043 l867 = l866;
5044 i868 += i867;
5045 l868 = l867;
5046 i869 += i868;
5047 l869 = l868;
5048 i870 += i869;
5049 l870 = l869;
5050 i871 += i870;
5051 l871 = l870;
5052 i872 += i871;
5053 l872 = l871;
5054 i873 += i872;
5055 l873 = l872;
5056 i874 += i873;
5057 l874 = l873;
5058 i875 += i874;
5059 l875 = l874;
5060 i876 += i875;
5061 l876 = l875;
5062 i877 += i876;
5063 l877 = l876;
5064 i878 += i877;
5065 l878 = l877;
5066 i879 += i878;
5067 l879 = l878;
5068 i880 += i879;
5069 l880 = l879;
5070 i881 += i880;
5071 l881 = l880;
5072 i882 += i881;
5073 l882 = l881;
5074 i883 += i882;
5075 l883 = l882;
5076 i884 += i883;
5077 l884 = l883;
5078 i885 += i884;
5079 l885 = l884;
5080 i886 += i885;
5081 l886 = l885;
5082 i887 += i886;
5083 l887 = l886;
5084 i888 += i887;
5085 l888 = l887;
5086 i889 += i888;
5087 l889 = l888;
5088 i890 += i889;
5089 l890 = l889;
5090 i891 += i890;
5091 l891 = l890;
5092 i892 += i891;
5093 l892 = l891;
5094 i893 += i892;
5095 l893 = l892;
5096 i894 += i893;
5097 l894 = l893;
5098 i895 += i894;
5099 l895 = l894;
5100 i896 += i895;
5101 l896 = l895;
5102 i897 += i896;
5103 l897 = l896;
5104 i898 += i897;
5105 l898 = l897;
5106 i899 += i898;
5107 l899 = l898;
5108 i900 += i899;
5109 l900 = l899;
5110 i901 += i900;
5111 l901 = l900;
5112 i902 += i901;
5113 l902 = l901;
5114 i903 += i902;
5115 l903 = l902;
5116 i904 += i903;
5117 l904 = l903;
5118 i905 += i904;
5119 l905 = l904;
5120 i906 += i905;
5121 l906 = l905;
5122 i907 += i906;
5123 l907 = l906;
5124 i908 += i907;
5125 l908 = l907;
5126 i909 += i908;
5127 l909 = l908;
5128 i910 += i909;
5129 l910 = l909;
5130 i911 += i910;
5131 l911 = l910;
5132 i912 += i911;
5133 l912 = l911;
5134 i913 += i912;
5135 l913 = l912;
5136 i914 += i913;
5137 l914 = l913;
5138 i915 += i914;
5139 l915 = l914;
5140 i916 += i915;
5141 l916 = l915;
5142 i917 += i916;
5143 l917 = l916;
5144 i918 += i917;
5145 l918 = l917;
5146 i919 += i918;
5147 l919 = l918;
5148 i920 += i919;
5149 l920 = l919;
5150 i921 += i920;
5151 l921 = l920;
5152 i922 += i921;
5153 l922 = l921;
5154 i923 += i922;
5155 l923 = l922;
5156 i924 += i923;
5157 l924 = l923;
5158 i925 += i924;
5159 l925 = l924;
5160 i926 += i925;
5161 l926 = l925;
5162 i927 += i926;
5163 l927 = l926;
5164 i928 += i927;
5165 l928 = l927;
5166 i929 += i928;
5167 l929 = l928;
5168 i930 += i929;
5169 l930 = l929;
5170 i931 += i930;
5171 l931 = l930;
5172 i932 += i931;
5173 l932 = l931;
5174 i933 += i932;
5175 l933 = l932;
5176 i934 += i933;
5177 l934 = l933;
5178 i935 += i934;
5179 l935 = l934;
5180 i936 += i935;
5181 l936 = l935;
5182 i937 += i936;
5183 l937 = l936;
5184 i938 += i937;
5185 l938 = l937;
5186 i939 += i938;
5187 l939 = l938;
5188 i940 += i939;
5189 l940 = l939;
5190 i941 += i940;
5191 l941 = l940;
5192 i942 += i941;
5193 l942 = l941;
5194 i943 += i942;
5195 l943 = l942;
5196 i944 += i943;
5197 l944 = l943;
5198 i945 += i944;
5199 l945 = l944;
5200 i946 += i945;
5201 l946 = l945;
5202 i947 += i946;
5203 l947 = l946;
5204 i948 += i947;
5205 l948 = l947;
5206 i949 += i948;
5207 l949 = l948;
5208 i950 += i949;
5209 l950 = l949;
5210 i951 += i950;
5211 l951 = l950;
5212 i952 += i951;
5213 l952 = l951;
5214 i953 += i952;
5215 l953 = l952;
5216 i954 += i953;
5217 l954 = l953;
5218 i955 += i954;
5219 l955 = l954;
5220 i956 += i955;
5221 l956 = l955;
5222 i957 += i956;
5223 l957 = l956;
5224 i958 += i957;
5225 l958 = l957;
5226 i959 += i958;
5227 l959 = l958;
5228 i960 += i959;
5229 l960 = l959;
5230 i961 += i960;
5231 l961 = l960;
5232 i962 += i961;
5233 l962 = l961;
5234 i963 += i962;
5235 l963 = l962;
5236 i964 += i963;
5237 l964 = l963;
5238 i965 += i964;
5239 l965 = l964;
5240 i966 += i965;
5241 l966 = l965;
5242 i967 += i966;
5243 l967 = l966;
5244 i968 += i967;
5245 l968 = l967;
5246 i969 += i968;
5247 l969 = l968;
5248 i970 += i969;
5249 l970 = l969;
5250 i971 += i970;
5251 l971 = l970;
5252 i972 += i971;
5253 l972 = l971;
5254 i973 += i972;
5255 l973 = l972;
5256 i974 += i973;
5257 l974 = l973;
5258 i975 += i974;
5259 l975 = l974;
5260 i976 += i975;
5261 l976 = l975;
5262 i977 += i976;
5263 l977 = l976;
5264 i978 += i977;
5265 l978 = l977;
5266 i979 += i978;
5267 l979 = l978;
5268 i980 += i979;
5269 l980 = l979;
5270 i981 += i980;
5271 l981 = l980;
5272 i982 += i981;
5273 l982 = l981;
5274 i983 += i982;
5275 l983 = l982;
5276 i984 += i983;
5277 l984 = l983;
5278 i985 += i984;
5279 l985 = l984;
5280 i986 += i985;
5281 l986 = l985;
5282 i987 += i986;
5283 l987 = l986;
5284 i988 += i987;
5285 l988 = l987;
5286 i989 += i988;
5287 l989 = l988;
5288 i990 += i989;
5289 l990 = l989;
5290 i991 += i990;
5291 l991 = l990;
5292 i992 += i991;
5293 l992 = l991;
5294 i993 += i992;
5295 l993 = l992;
5296 i994 += i993;
5297 l994 = l993;
5298 i995 += i994;
5299 l995 = l994;
5300 i996 += i995;
5301 l996 = l995;
5302 i997 += i996;
5303 l997 = l996;
5304 i998 += i997;
5305 l998 = l997;
5306 i999 += i998;
5307 l999 = l998;
5308 return i999 + l999;
5309 }
5310
Ian Rogers513c64a2012-02-26 15:16:23 -08005311 static double largeFrameFloat() {
5312 float f0 = 0;
5313 double d0 = 0;
5314 float f1 = 1;
5315 double d1 = 1;
5316 float f2 = 2;
5317 double d2 = 2;
5318 float f3 = 3;
5319 double d3 = 3;
5320 float f4 = 4;
5321 double d4 = 4;
5322 float f5 = 5;
5323 double d5 = 5;
5324 float f6 = 6;
5325 double d6 = 6;
5326 float f7 = 7;
5327 double d7 = 7;
5328 float f8 = 8;
5329 double d8 = 8;
5330 float f9 = 9;
5331 double d9 = 9;
5332 float f10 = 10;
5333 double d10 = 10;
5334 float f11 = 11;
5335 double d11 = 11;
5336 float f12 = 12;
5337 double d12 = 12;
5338 float f13 = 13;
5339 double d13 = 13;
5340 float f14 = 14;
5341 double d14 = 14;
5342 float f15 = 15;
5343 double d15 = 15;
5344 float f16 = 16;
5345 double d16 = 16;
5346 float f17 = 17;
5347 double d17 = 17;
5348 float f18 = 18;
5349 double d18 = 18;
5350 float f19 = 19;
5351 double d19 = 19;
5352 float f20 = 20;
5353 double d20 = 20;
5354 float f21 = 21;
5355 double d21 = 21;
5356 float f22 = 22;
5357 double d22 = 22;
5358 float f23 = 23;
5359 double d23 = 23;
5360 float f24 = 24;
5361 double d24 = 24;
5362 float f25 = 25;
5363 double d25 = 25;
5364 float f26 = 26;
5365 double d26 = 26;
5366 float f27 = 27;
5367 double d27 = 27;
5368 float f28 = 28;
5369 double d28 = 28;
5370 float f29 = 29;
5371 double d29 = 29;
5372 float f30 = 30;
5373 double d30 = 30;
5374 float f31 = 31;
5375 double d31 = 31;
5376 float f32 = 32;
5377 double d32 = 32;
5378 float f33 = 33;
5379 double d33 = 33;
5380 float f34 = 34;
5381 double d34 = 34;
5382 float f35 = 35;
5383 double d35 = 35;
5384 float f36 = 36;
5385 double d36 = 36;
5386 float f37 = 37;
5387 double d37 = 37;
5388 float f38 = 38;
5389 double d38 = 38;
5390 float f39 = 39;
5391 double d39 = 39;
5392 float f40 = 40;
5393 double d40 = 40;
5394 float f41 = 41;
5395 double d41 = 41;
5396 float f42 = 42;
5397 double d42 = 42;
5398 float f43 = 43;
5399 double d43 = 43;
5400 float f44 = 44;
5401 double d44 = 44;
5402 float f45 = 45;
5403 double d45 = 45;
5404 float f46 = 46;
5405 double d46 = 46;
5406 float f47 = 47;
5407 double d47 = 47;
5408 float f48 = 48;
5409 double d48 = 48;
5410 float f49 = 49;
5411 double d49 = 49;
5412 float f50 = 50;
5413 double d50 = 50;
5414 float f51 = 51;
5415 double d51 = 51;
5416 float f52 = 52;
5417 double d52 = 52;
5418 float f53 = 53;
5419 double d53 = 53;
5420 float f54 = 54;
5421 double d54 = 54;
5422 float f55 = 55;
5423 double d55 = 55;
5424 float f56 = 56;
5425 double d56 = 56;
5426 float f57 = 57;
5427 double d57 = 57;
5428 float f58 = 58;
5429 double d58 = 58;
5430 float f59 = 59;
5431 double d59 = 59;
5432 float f60 = 60;
5433 double d60 = 60;
5434 float f61 = 61;
5435 double d61 = 61;
5436 float f62 = 62;
5437 double d62 = 62;
5438 float f63 = 63;
5439 double d63 = 63;
5440 float f64 = 64;
5441 double d64 = 64;
5442 float f65 = 65;
5443 double d65 = 65;
5444 float f66 = 66;
5445 double d66 = 66;
5446 float f67 = 67;
5447 double d67 = 67;
5448 float f68 = 68;
5449 double d68 = 68;
5450 float f69 = 69;
5451 double d69 = 69;
5452 float f70 = 70;
5453 double d70 = 70;
5454 float f71 = 71;
5455 double d71 = 71;
5456 float f72 = 72;
5457 double d72 = 72;
5458 float f73 = 73;
5459 double d73 = 73;
5460 float f74 = 74;
5461 double d74 = 74;
5462 float f75 = 75;
5463 double d75 = 75;
5464 float f76 = 76;
5465 double d76 = 76;
5466 float f77 = 77;
5467 double d77 = 77;
5468 float f78 = 78;
5469 double d78 = 78;
5470 float f79 = 79;
5471 double d79 = 79;
5472 float f80 = 80;
5473 double d80 = 80;
5474 float f81 = 81;
5475 double d81 = 81;
5476 float f82 = 82;
5477 double d82 = 82;
5478 float f83 = 83;
5479 double d83 = 83;
5480 float f84 = 84;
5481 double d84 = 84;
5482 float f85 = 85;
5483 double d85 = 85;
5484 float f86 = 86;
5485 double d86 = 86;
5486 float f87 = 87;
5487 double d87 = 87;
5488 float f88 = 88;
5489 double d88 = 88;
5490 float f89 = 89;
5491 double d89 = 89;
5492 float f90 = 90;
5493 double d90 = 90;
5494 float f91 = 91;
5495 double d91 = 91;
5496 float f92 = 92;
5497 double d92 = 92;
5498 float f93 = 93;
5499 double d93 = 93;
5500 float f94 = 94;
5501 double d94 = 94;
5502 float f95 = 95;
5503 double d95 = 95;
5504 float f96 = 96;
5505 double d96 = 96;
5506 float f97 = 97;
5507 double d97 = 97;
5508 float f98 = 98;
5509 double d98 = 98;
5510 float f99 = 99;
5511 double d99 = 99;
5512 float f100 = 100;
5513 double d100 = 100;
5514 float f101 = 101;
5515 double d101 = 101;
5516 float f102 = 102;
5517 double d102 = 102;
5518 float f103 = 103;
5519 double d103 = 103;
5520 float f104 = 104;
5521 double d104 = 104;
5522 float f105 = 105;
5523 double d105 = 105;
5524 float f106 = 106;
5525 double d106 = 106;
5526 float f107 = 107;
5527 double d107 = 107;
5528 float f108 = 108;
5529 double d108 = 108;
5530 float f109 = 109;
5531 double d109 = 109;
5532 float f110 = 110;
5533 double d110 = 110;
5534 float f111 = 111;
5535 double d111 = 111;
5536 float f112 = 112;
5537 double d112 = 112;
5538 float f113 = 113;
5539 double d113 = 113;
5540 float f114 = 114;
5541 double d114 = 114;
5542 float f115 = 115;
5543 double d115 = 115;
5544 float f116 = 116;
5545 double d116 = 116;
5546 float f117 = 117;
5547 double d117 = 117;
5548 float f118 = 118;
5549 double d118 = 118;
5550 float f119 = 119;
5551 double d119 = 119;
5552 float f120 = 120;
5553 double d120 = 120;
5554 float f121 = 121;
5555 double d121 = 121;
5556 float f122 = 122;
5557 double d122 = 122;
5558 float f123 = 123;
5559 double d123 = 123;
5560 float f124 = 124;
5561 double d124 = 124;
5562 float f125 = 125;
5563 double d125 = 125;
5564 float f126 = 126;
5565 double d126 = 126;
5566 float f127 = 127;
5567 double d127 = 127;
5568 float f128 = 128;
5569 double d128 = 128;
5570 float f129 = 129;
5571 double d129 = 129;
5572 float f130 = 130;
5573 double d130 = 130;
5574 float f131 = 131;
5575 double d131 = 131;
5576 float f132 = 132;
5577 double d132 = 132;
5578 float f133 = 133;
5579 double d133 = 133;
5580 float f134 = 134;
5581 double d134 = 134;
5582 float f135 = 135;
5583 double d135 = 135;
5584 float f136 = 136;
5585 double d136 = 136;
5586 float f137 = 137;
5587 double d137 = 137;
5588 float f138 = 138;
5589 double d138 = 138;
5590 float f139 = 139;
5591 double d139 = 139;
5592 float f140 = 140;
5593 double d140 = 140;
5594 float f141 = 141;
5595 double d141 = 141;
5596 float f142 = 142;
5597 double d142 = 142;
5598 float f143 = 143;
5599 double d143 = 143;
5600 float f144 = 144;
5601 double d144 = 144;
5602 float f145 = 145;
5603 double d145 = 145;
5604 float f146 = 146;
5605 double d146 = 146;
5606 float f147 = 147;
5607 double d147 = 147;
5608 float f148 = 148;
5609 double d148 = 148;
5610 float f149 = 149;
5611 double d149 = 149;
5612 float f150 = 150;
5613 double d150 = 150;
5614 float f151 = 151;
5615 double d151 = 151;
5616 float f152 = 152;
5617 double d152 = 152;
5618 float f153 = 153;
5619 double d153 = 153;
5620 float f154 = 154;
5621 double d154 = 154;
5622 float f155 = 155;
5623 double d155 = 155;
5624 float f156 = 156;
5625 double d156 = 156;
5626 float f157 = 157;
5627 double d157 = 157;
5628 float f158 = 158;
5629 double d158 = 158;
5630 float f159 = 159;
5631 double d159 = 159;
5632 float f160 = 160;
5633 double d160 = 160;
5634 float f161 = 161;
5635 double d161 = 161;
5636 float f162 = 162;
5637 double d162 = 162;
5638 float f163 = 163;
5639 double d163 = 163;
5640 float f164 = 164;
5641 double d164 = 164;
5642 float f165 = 165;
5643 double d165 = 165;
5644 float f166 = 166;
5645 double d166 = 166;
5646 float f167 = 167;
5647 double d167 = 167;
5648 float f168 = 168;
5649 double d168 = 168;
5650 float f169 = 169;
5651 double d169 = 169;
5652 float f170 = 170;
5653 double d170 = 170;
5654 float f171 = 171;
5655 double d171 = 171;
5656 float f172 = 172;
5657 double d172 = 172;
5658 float f173 = 173;
5659 double d173 = 173;
5660 float f174 = 174;
5661 double d174 = 174;
5662 float f175 = 175;
5663 double d175 = 175;
5664 float f176 = 176;
5665 double d176 = 176;
5666 float f177 = 177;
5667 double d177 = 177;
5668 float f178 = 178;
5669 double d178 = 178;
5670 float f179 = 179;
5671 double d179 = 179;
5672 float f180 = 180;
5673 double d180 = 180;
5674 float f181 = 181;
5675 double d181 = 181;
5676 float f182 = 182;
5677 double d182 = 182;
5678 float f183 = 183;
5679 double d183 = 183;
5680 float f184 = 184;
5681 double d184 = 184;
5682 float f185 = 185;
5683 double d185 = 185;
5684 float f186 = 186;
5685 double d186 = 186;
5686 float f187 = 187;
5687 double d187 = 187;
5688 float f188 = 188;
5689 double d188 = 188;
5690 float f189 = 189;
5691 double d189 = 189;
5692 float f190 = 190;
5693 double d190 = 190;
5694 float f191 = 191;
5695 double d191 = 191;
5696 float f192 = 192;
5697 double d192 = 192;
5698 float f193 = 193;
5699 double d193 = 193;
5700 float f194 = 194;
5701 double d194 = 194;
5702 float f195 = 195;
5703 double d195 = 195;
5704 float f196 = 196;
5705 double d196 = 196;
5706 float f197 = 197;
5707 double d197 = 197;
5708 float f198 = 198;
5709 double d198 = 198;
5710 float f199 = 199;
5711 double d199 = 199;
5712 float f200 = 200;
5713 double d200 = 200;
5714 float f201 = 201;
5715 double d201 = 201;
5716 float f202 = 202;
5717 double d202 = 202;
5718 float f203 = 203;
5719 double d203 = 203;
5720 float f204 = 204;
5721 double d204 = 204;
5722 float f205 = 205;
5723 double d205 = 205;
5724 float f206 = 206;
5725 double d206 = 206;
5726 float f207 = 207;
5727 double d207 = 207;
5728 float f208 = 208;
5729 double d208 = 208;
5730 float f209 = 209;
5731 double d209 = 209;
5732 float f210 = 210;
5733 double d210 = 210;
5734 float f211 = 211;
5735 double d211 = 211;
5736 float f212 = 212;
5737 double d212 = 212;
5738 float f213 = 213;
5739 double d213 = 213;
5740 float f214 = 214;
5741 double d214 = 214;
5742 float f215 = 215;
5743 double d215 = 215;
5744 float f216 = 216;
5745 double d216 = 216;
5746 float f217 = 217;
5747 double d217 = 217;
5748 float f218 = 218;
5749 double d218 = 218;
5750 float f219 = 219;
5751 double d219 = 219;
5752 float f220 = 220;
5753 double d220 = 220;
5754 float f221 = 221;
5755 double d221 = 221;
5756 float f222 = 222;
5757 double d222 = 222;
5758 float f223 = 223;
5759 double d223 = 223;
5760 float f224 = 224;
5761 double d224 = 224;
5762 float f225 = 225;
5763 double d225 = 225;
5764 float f226 = 226;
5765 double d226 = 226;
5766 float f227 = 227;
5767 double d227 = 227;
5768 float f228 = 228;
5769 double d228 = 228;
5770 float f229 = 229;
5771 double d229 = 229;
5772 float f230 = 230;
5773 double d230 = 230;
5774 float f231 = 231;
5775 double d231 = 231;
5776 float f232 = 232;
5777 double d232 = 232;
5778 float f233 = 233;
5779 double d233 = 233;
5780 float f234 = 234;
5781 double d234 = 234;
5782 float f235 = 235;
5783 double d235 = 235;
5784 float f236 = 236;
5785 double d236 = 236;
5786 float f237 = 237;
5787 double d237 = 237;
5788 float f238 = 238;
5789 double d238 = 238;
5790 float f239 = 239;
5791 double d239 = 239;
5792 float f240 = 240;
5793 double d240 = 240;
5794 float f241 = 241;
5795 double d241 = 241;
5796 float f242 = 242;
5797 double d242 = 242;
5798 float f243 = 243;
5799 double d243 = 243;
5800 float f244 = 244;
5801 double d244 = 244;
5802 float f245 = 245;
5803 double d245 = 245;
5804 float f246 = 246;
5805 double d246 = 246;
5806 float f247 = 247;
5807 double d247 = 247;
5808 float f248 = 248;
5809 double d248 = 248;
5810 float f249 = 249;
5811 double d249 = 249;
5812 float f250 = 250;
5813 double d250 = 250;
5814 float f251 = 251;
5815 double d251 = 251;
5816 float f252 = 252;
5817 double d252 = 252;
5818 float f253 = 253;
5819 double d253 = 253;
5820 float f254 = 254;
5821 double d254 = 254;
5822 float f255 = 255;
5823 double d255 = 255;
5824 float f256 = 256;
5825 double d256 = 256;
5826 float f257 = 257;
5827 double d257 = 257;
5828 float f258 = 258;
5829 double d258 = 258;
5830 float f259 = 259;
5831 double d259 = 259;
5832 float f260 = 260;
5833 double d260 = 260;
5834 float f261 = 261;
5835 double d261 = 261;
5836 float f262 = 262;
5837 double d262 = 262;
5838 float f263 = 263;
5839 double d263 = 263;
5840 float f264 = 264;
5841 double d264 = 264;
5842 float f265 = 265;
5843 double d265 = 265;
5844 float f266 = 266;
5845 double d266 = 266;
5846 float f267 = 267;
5847 double d267 = 267;
5848 float f268 = 268;
5849 double d268 = 268;
5850 float f269 = 269;
5851 double d269 = 269;
5852 float f270 = 270;
5853 double d270 = 270;
5854 float f271 = 271;
5855 double d271 = 271;
5856 float f272 = 272;
5857 double d272 = 272;
5858 float f273 = 273;
5859 double d273 = 273;
5860 float f274 = 274;
5861 double d274 = 274;
5862 float f275 = 275;
5863 double d275 = 275;
5864 float f276 = 276;
5865 double d276 = 276;
5866 float f277 = 277;
5867 double d277 = 277;
5868 float f278 = 278;
5869 double d278 = 278;
5870 float f279 = 279;
5871 double d279 = 279;
5872 float f280 = 280;
5873 double d280 = 280;
5874 float f281 = 281;
5875 double d281 = 281;
5876 float f282 = 282;
5877 double d282 = 282;
5878 float f283 = 283;
5879 double d283 = 283;
5880 float f284 = 284;
5881 double d284 = 284;
5882 float f285 = 285;
5883 double d285 = 285;
5884 float f286 = 286;
5885 double d286 = 286;
5886 float f287 = 287;
5887 double d287 = 287;
5888 float f288 = 288;
5889 double d288 = 288;
5890 float f289 = 289;
5891 double d289 = 289;
5892 float f290 = 290;
5893 double d290 = 290;
5894 float f291 = 291;
5895 double d291 = 291;
5896 float f292 = 292;
5897 double d292 = 292;
5898 float f293 = 293;
5899 double d293 = 293;
5900 float f294 = 294;
5901 double d294 = 294;
5902 float f295 = 295;
5903 double d295 = 295;
5904 float f296 = 296;
5905 double d296 = 296;
5906 float f297 = 297;
5907 double d297 = 297;
5908 float f298 = 298;
5909 double d298 = 298;
5910 float f299 = 299;
5911 double d299 = 299;
5912 float f300 = 300;
5913 double d300 = 300;
5914 float f301 = 301;
5915 double d301 = 301;
5916 float f302 = 302;
5917 double d302 = 302;
5918 float f303 = 303;
5919 double d303 = 303;
5920 float f304 = 304;
5921 double d304 = 304;
5922 float f305 = 305;
5923 double d305 = 305;
5924 float f306 = 306;
5925 double d306 = 306;
5926 float f307 = 307;
5927 double d307 = 307;
5928 float f308 = 308;
5929 double d308 = 308;
5930 float f309 = 309;
5931 double d309 = 309;
5932 float f310 = 310;
5933 double d310 = 310;
5934 float f311 = 311;
5935 double d311 = 311;
5936 float f312 = 312;
5937 double d312 = 312;
5938 float f313 = 313;
5939 double d313 = 313;
5940 float f314 = 314;
5941 double d314 = 314;
5942 float f315 = 315;
5943 double d315 = 315;
5944 float f316 = 316;
5945 double d316 = 316;
5946 float f317 = 317;
5947 double d317 = 317;
5948 float f318 = 318;
5949 double d318 = 318;
5950 float f319 = 319;
5951 double d319 = 319;
5952 float f320 = 320;
5953 double d320 = 320;
5954 float f321 = 321;
5955 double d321 = 321;
5956 float f322 = 322;
5957 double d322 = 322;
5958 float f323 = 323;
5959 double d323 = 323;
5960 float f324 = 324;
5961 double d324 = 324;
5962 float f325 = 325;
5963 double d325 = 325;
5964 float f326 = 326;
5965 double d326 = 326;
5966 float f327 = 327;
5967 double d327 = 327;
5968 float f328 = 328;
5969 double d328 = 328;
5970 float f329 = 329;
5971 double d329 = 329;
5972 float f330 = 330;
5973 double d330 = 330;
5974 float f331 = 331;
5975 double d331 = 331;
5976 float f332 = 332;
5977 double d332 = 332;
5978 float f333 = 333;
5979 double d333 = 333;
5980 float f334 = 334;
5981 double d334 = 334;
5982 float f335 = 335;
5983 double d335 = 335;
5984 float f336 = 336;
5985 double d336 = 336;
5986 float f337 = 337;
5987 double d337 = 337;
5988 float f338 = 338;
5989 double d338 = 338;
5990 float f339 = 339;
5991 double d339 = 339;
5992 float f340 = 340;
5993 double d340 = 340;
5994 float f341 = 341;
5995 double d341 = 341;
5996 float f342 = 342;
5997 double d342 = 342;
5998 float f343 = 343;
5999 double d343 = 343;
6000 float f344 = 344;
6001 double d344 = 344;
6002 float f345 = 345;
6003 double d345 = 345;
6004 float f346 = 346;
6005 double d346 = 346;
6006 float f347 = 347;
6007 double d347 = 347;
6008 float f348 = 348;
6009 double d348 = 348;
6010 float f349 = 349;
6011 double d349 = 349;
6012 float f350 = 350;
6013 double d350 = 350;
6014 float f351 = 351;
6015 double d351 = 351;
6016 float f352 = 352;
6017 double d352 = 352;
6018 float f353 = 353;
6019 double d353 = 353;
6020 float f354 = 354;
6021 double d354 = 354;
6022 float f355 = 355;
6023 double d355 = 355;
6024 float f356 = 356;
6025 double d356 = 356;
6026 float f357 = 357;
6027 double d357 = 357;
6028 float f358 = 358;
6029 double d358 = 358;
6030 float f359 = 359;
6031 double d359 = 359;
6032 float f360 = 360;
6033 double d360 = 360;
6034 float f361 = 361;
6035 double d361 = 361;
6036 float f362 = 362;
6037 double d362 = 362;
6038 float f363 = 363;
6039 double d363 = 363;
6040 float f364 = 364;
6041 double d364 = 364;
6042 float f365 = 365;
6043 double d365 = 365;
6044 float f366 = 366;
6045 double d366 = 366;
6046 float f367 = 367;
6047 double d367 = 367;
6048 float f368 = 368;
6049 double d368 = 368;
6050 float f369 = 369;
6051 double d369 = 369;
6052 float f370 = 370;
6053 double d370 = 370;
6054 float f371 = 371;
6055 double d371 = 371;
6056 float f372 = 372;
6057 double d372 = 372;
6058 float f373 = 373;
6059 double d373 = 373;
6060 float f374 = 374;
6061 double d374 = 374;
6062 float f375 = 375;
6063 double d375 = 375;
6064 float f376 = 376;
6065 double d376 = 376;
6066 float f377 = 377;
6067 double d377 = 377;
6068 float f378 = 378;
6069 double d378 = 378;
6070 float f379 = 379;
6071 double d379 = 379;
6072 float f380 = 380;
6073 double d380 = 380;
6074 float f381 = 381;
6075 double d381 = 381;
6076 float f382 = 382;
6077 double d382 = 382;
6078 float f383 = 383;
6079 double d383 = 383;
6080 float f384 = 384;
6081 double d384 = 384;
6082 float f385 = 385;
6083 double d385 = 385;
6084 float f386 = 386;
6085 double d386 = 386;
6086 float f387 = 387;
6087 double d387 = 387;
6088 float f388 = 388;
6089 double d388 = 388;
6090 float f389 = 389;
6091 double d389 = 389;
6092 float f390 = 390;
6093 double d390 = 390;
6094 float f391 = 391;
6095 double d391 = 391;
6096 float f392 = 392;
6097 double d392 = 392;
6098 float f393 = 393;
6099 double d393 = 393;
6100 float f394 = 394;
6101 double d394 = 394;
6102 float f395 = 395;
6103 double d395 = 395;
6104 float f396 = 396;
6105 double d396 = 396;
6106 float f397 = 397;
6107 double d397 = 397;
6108 float f398 = 398;
6109 double d398 = 398;
6110 float f399 = 399;
6111 double d399 = 399;
6112 float f400 = 400;
6113 double d400 = 400;
6114 float f401 = 401;
6115 double d401 = 401;
6116 float f402 = 402;
6117 double d402 = 402;
6118 float f403 = 403;
6119 double d403 = 403;
6120 float f404 = 404;
6121 double d404 = 404;
6122 float f405 = 405;
6123 double d405 = 405;
6124 float f406 = 406;
6125 double d406 = 406;
6126 float f407 = 407;
6127 double d407 = 407;
6128 float f408 = 408;
6129 double d408 = 408;
6130 float f409 = 409;
6131 double d409 = 409;
6132 float f410 = 410;
6133 double d410 = 410;
6134 float f411 = 411;
6135 double d411 = 411;
6136 float f412 = 412;
6137 double d412 = 412;
6138 float f413 = 413;
6139 double d413 = 413;
6140 float f414 = 414;
6141 double d414 = 414;
6142 float f415 = 415;
6143 double d415 = 415;
6144 float f416 = 416;
6145 double d416 = 416;
6146 float f417 = 417;
6147 double d417 = 417;
6148 float f418 = 418;
6149 double d418 = 418;
6150 float f419 = 419;
6151 double d419 = 419;
6152 float f420 = 420;
6153 double d420 = 420;
6154 float f421 = 421;
6155 double d421 = 421;
6156 float f422 = 422;
6157 double d422 = 422;
6158 float f423 = 423;
6159 double d423 = 423;
6160 float f424 = 424;
6161 double d424 = 424;
6162 float f425 = 425;
6163 double d425 = 425;
6164 float f426 = 426;
6165 double d426 = 426;
6166 float f427 = 427;
6167 double d427 = 427;
6168 float f428 = 428;
6169 double d428 = 428;
6170 float f429 = 429;
6171 double d429 = 429;
6172 float f430 = 430;
6173 double d430 = 430;
6174 float f431 = 431;
6175 double d431 = 431;
6176 float f432 = 432;
6177 double d432 = 432;
6178 float f433 = 433;
6179 double d433 = 433;
6180 float f434 = 434;
6181 double d434 = 434;
6182 float f435 = 435;
6183 double d435 = 435;
6184 float f436 = 436;
6185 double d436 = 436;
6186 float f437 = 437;
6187 double d437 = 437;
6188 float f438 = 438;
6189 double d438 = 438;
6190 float f439 = 439;
6191 double d439 = 439;
6192 float f440 = 440;
6193 double d440 = 440;
6194 float f441 = 441;
6195 double d441 = 441;
6196 float f442 = 442;
6197 double d442 = 442;
6198 float f443 = 443;
6199 double d443 = 443;
6200 float f444 = 444;
6201 double d444 = 444;
6202 float f445 = 445;
6203 double d445 = 445;
6204 float f446 = 446;
6205 double d446 = 446;
6206 float f447 = 447;
6207 double d447 = 447;
6208 float f448 = 448;
6209 double d448 = 448;
6210 float f449 = 449;
6211 double d449 = 449;
6212 float f450 = 450;
6213 double d450 = 450;
6214 float f451 = 451;
6215 double d451 = 451;
6216 float f452 = 452;
6217 double d452 = 452;
6218 float f453 = 453;
6219 double d453 = 453;
6220 float f454 = 454;
6221 double d454 = 454;
6222 float f455 = 455;
6223 double d455 = 455;
6224 float f456 = 456;
6225 double d456 = 456;
6226 float f457 = 457;
6227 double d457 = 457;
6228 float f458 = 458;
6229 double d458 = 458;
6230 float f459 = 459;
6231 double d459 = 459;
6232 float f460 = 460;
6233 double d460 = 460;
6234 float f461 = 461;
6235 double d461 = 461;
6236 float f462 = 462;
6237 double d462 = 462;
6238 float f463 = 463;
6239 double d463 = 463;
6240 float f464 = 464;
6241 double d464 = 464;
6242 float f465 = 465;
6243 double d465 = 465;
6244 float f466 = 466;
6245 double d466 = 466;
6246 float f467 = 467;
6247 double d467 = 467;
6248 float f468 = 468;
6249 double d468 = 468;
6250 float f469 = 469;
6251 double d469 = 469;
6252 float f470 = 470;
6253 double d470 = 470;
6254 float f471 = 471;
6255 double d471 = 471;
6256 float f472 = 472;
6257 double d472 = 472;
6258 float f473 = 473;
6259 double d473 = 473;
6260 float f474 = 474;
6261 double d474 = 474;
6262 float f475 = 475;
6263 double d475 = 475;
6264 float f476 = 476;
6265 double d476 = 476;
6266 float f477 = 477;
6267 double d477 = 477;
6268 float f478 = 478;
6269 double d478 = 478;
6270 float f479 = 479;
6271 double d479 = 479;
6272 float f480 = 480;
6273 double d480 = 480;
6274 float f481 = 481;
6275 double d481 = 481;
6276 float f482 = 482;
6277 double d482 = 482;
6278 float f483 = 483;
6279 double d483 = 483;
6280 float f484 = 484;
6281 double d484 = 484;
6282 float f485 = 485;
6283 double d485 = 485;
6284 float f486 = 486;
6285 double d486 = 486;
6286 float f487 = 487;
6287 double d487 = 487;
6288 float f488 = 488;
6289 double d488 = 488;
6290 float f489 = 489;
6291 double d489 = 489;
6292 float f490 = 490;
6293 double d490 = 490;
6294 float f491 = 491;
6295 double d491 = 491;
6296 float f492 = 492;
6297 double d492 = 492;
6298 float f493 = 493;
6299 double d493 = 493;
6300 float f494 = 494;
6301 double d494 = 494;
6302 float f495 = 495;
6303 double d495 = 495;
6304 float f496 = 496;
6305 double d496 = 496;
6306 float f497 = 497;
6307 double d497 = 497;
6308 float f498 = 498;
6309 double d498 = 498;
6310 float f499 = 499;
6311 double d499 = 499;
6312 float f500 = 500;
6313 double d500 = 500;
6314 float f501 = 501;
6315 double d501 = 501;
6316 float f502 = 502;
6317 double d502 = 502;
6318 float f503 = 503;
6319 double d503 = 503;
6320 float f504 = 504;
6321 double d504 = 504;
6322 float f505 = 505;
6323 double d505 = 505;
6324 float f506 = 506;
6325 double d506 = 506;
6326 float f507 = 507;
6327 double d507 = 507;
6328 float f508 = 508;
6329 double d508 = 508;
6330 float f509 = 509;
6331 double d509 = 509;
6332 float f510 = 510;
6333 double d510 = 510;
6334 float f511 = 511;
6335 double d511 = 511;
6336 float f512 = 512;
6337 double d512 = 512;
6338 float f513 = 513;
6339 double d513 = 513;
6340 float f514 = 514;
6341 double d514 = 514;
6342 float f515 = 515;
6343 double d515 = 515;
6344 float f516 = 516;
6345 double d516 = 516;
6346 float f517 = 517;
6347 double d517 = 517;
6348 float f518 = 518;
6349 double d518 = 518;
6350 float f519 = 519;
6351 double d519 = 519;
6352 float f520 = 520;
6353 double d520 = 520;
6354 float f521 = 521;
6355 double d521 = 521;
6356 float f522 = 522;
6357 double d522 = 522;
6358 float f523 = 523;
6359 double d523 = 523;
6360 float f524 = 524;
6361 double d524 = 524;
6362 float f525 = 525;
6363 double d525 = 525;
6364 float f526 = 526;
6365 double d526 = 526;
6366 float f527 = 527;
6367 double d527 = 527;
6368 float f528 = 528;
6369 double d528 = 528;
6370 float f529 = 529;
6371 double d529 = 529;
6372 float f530 = 530;
6373 double d530 = 530;
6374 float f531 = 531;
6375 double d531 = 531;
6376 float f532 = 532;
6377 double d532 = 532;
6378 float f533 = 533;
6379 double d533 = 533;
6380 float f534 = 534;
6381 double d534 = 534;
6382 float f535 = 535;
6383 double d535 = 535;
6384 float f536 = 536;
6385 double d536 = 536;
6386 float f537 = 537;
6387 double d537 = 537;
6388 float f538 = 538;
6389 double d538 = 538;
6390 float f539 = 539;
6391 double d539 = 539;
6392 float f540 = 540;
6393 double d540 = 540;
6394 float f541 = 541;
6395 double d541 = 541;
6396 float f542 = 542;
6397 double d542 = 542;
6398 float f543 = 543;
6399 double d543 = 543;
6400 float f544 = 544;
6401 double d544 = 544;
6402 float f545 = 545;
6403 double d545 = 545;
6404 float f546 = 546;
6405 double d546 = 546;
6406 float f547 = 547;
6407 double d547 = 547;
6408 float f548 = 548;
6409 double d548 = 548;
6410 float f549 = 549;
6411 double d549 = 549;
6412 float f550 = 550;
6413 double d550 = 550;
6414 float f551 = 551;
6415 double d551 = 551;
6416 float f552 = 552;
6417 double d552 = 552;
6418 float f553 = 553;
6419 double d553 = 553;
6420 float f554 = 554;
6421 double d554 = 554;
6422 float f555 = 555;
6423 double d555 = 555;
6424 float f556 = 556;
6425 double d556 = 556;
6426 float f557 = 557;
6427 double d557 = 557;
6428 float f558 = 558;
6429 double d558 = 558;
6430 float f559 = 559;
6431 double d559 = 559;
6432 float f560 = 560;
6433 double d560 = 560;
6434 float f561 = 561;
6435 double d561 = 561;
6436 float f562 = 562;
6437 double d562 = 562;
6438 float f563 = 563;
6439 double d563 = 563;
6440 float f564 = 564;
6441 double d564 = 564;
6442 float f565 = 565;
6443 double d565 = 565;
6444 float f566 = 566;
6445 double d566 = 566;
6446 float f567 = 567;
6447 double d567 = 567;
6448 float f568 = 568;
6449 double d568 = 568;
6450 float f569 = 569;
6451 double d569 = 569;
6452 float f570 = 570;
6453 double d570 = 570;
6454 float f571 = 571;
6455 double d571 = 571;
6456 float f572 = 572;
6457 double d572 = 572;
6458 float f573 = 573;
6459 double d573 = 573;
6460 float f574 = 574;
6461 double d574 = 574;
6462 float f575 = 575;
6463 double d575 = 575;
6464 float f576 = 576;
6465 double d576 = 576;
6466 float f577 = 577;
6467 double d577 = 577;
6468 float f578 = 578;
6469 double d578 = 578;
6470 float f579 = 579;
6471 double d579 = 579;
6472 float f580 = 580;
6473 double d580 = 580;
6474 float f581 = 581;
6475 double d581 = 581;
6476 float f582 = 582;
6477 double d582 = 582;
6478 float f583 = 583;
6479 double d583 = 583;
6480 float f584 = 584;
6481 double d584 = 584;
6482 float f585 = 585;
6483 double d585 = 585;
6484 float f586 = 586;
6485 double d586 = 586;
6486 float f587 = 587;
6487 double d587 = 587;
6488 float f588 = 588;
6489 double d588 = 588;
6490 float f589 = 589;
6491 double d589 = 589;
6492 float f590 = 590;
6493 double d590 = 590;
6494 float f591 = 591;
6495 double d591 = 591;
6496 float f592 = 592;
6497 double d592 = 592;
6498 float f593 = 593;
6499 double d593 = 593;
6500 float f594 = 594;
6501 double d594 = 594;
6502 float f595 = 595;
6503 double d595 = 595;
6504 float f596 = 596;
6505 double d596 = 596;
6506 float f597 = 597;
6507 double d597 = 597;
6508 float f598 = 598;
6509 double d598 = 598;
6510 float f599 = 599;
6511 double d599 = 599;
6512 float f600 = 600;
6513 double d600 = 600;
6514 float f601 = 601;
6515 double d601 = 601;
6516 float f602 = 602;
6517 double d602 = 602;
6518 float f603 = 603;
6519 double d603 = 603;
6520 float f604 = 604;
6521 double d604 = 604;
6522 float f605 = 605;
6523 double d605 = 605;
6524 float f606 = 606;
6525 double d606 = 606;
6526 float f607 = 607;
6527 double d607 = 607;
6528 float f608 = 608;
6529 double d608 = 608;
6530 float f609 = 609;
6531 double d609 = 609;
6532 float f610 = 610;
6533 double d610 = 610;
6534 float f611 = 611;
6535 double d611 = 611;
6536 float f612 = 612;
6537 double d612 = 612;
6538 float f613 = 613;
6539 double d613 = 613;
6540 float f614 = 614;
6541 double d614 = 614;
6542 float f615 = 615;
6543 double d615 = 615;
6544 float f616 = 616;
6545 double d616 = 616;
6546 float f617 = 617;
6547 double d617 = 617;
6548 float f618 = 618;
6549 double d618 = 618;
6550 float f619 = 619;
6551 double d619 = 619;
6552 float f620 = 620;
6553 double d620 = 620;
6554 float f621 = 621;
6555 double d621 = 621;
6556 float f622 = 622;
6557 double d622 = 622;
6558 float f623 = 623;
6559 double d623 = 623;
6560 float f624 = 624;
6561 double d624 = 624;
6562 float f625 = 625;
6563 double d625 = 625;
6564 float f626 = 626;
6565 double d626 = 626;
6566 float f627 = 627;
6567 double d627 = 627;
6568 float f628 = 628;
6569 double d628 = 628;
6570 float f629 = 629;
6571 double d629 = 629;
6572 float f630 = 630;
6573 double d630 = 630;
6574 float f631 = 631;
6575 double d631 = 631;
6576 float f632 = 632;
6577 double d632 = 632;
6578 float f633 = 633;
6579 double d633 = 633;
6580 float f634 = 634;
6581 double d634 = 634;
6582 float f635 = 635;
6583 double d635 = 635;
6584 float f636 = 636;
6585 double d636 = 636;
6586 float f637 = 637;
6587 double d637 = 637;
6588 float f638 = 638;
6589 double d638 = 638;
6590 float f639 = 639;
6591 double d639 = 639;
6592 float f640 = 640;
6593 double d640 = 640;
6594 float f641 = 641;
6595 double d641 = 641;
6596 float f642 = 642;
6597 double d642 = 642;
6598 float f643 = 643;
6599 double d643 = 643;
6600 float f644 = 644;
6601 double d644 = 644;
6602 float f645 = 645;
6603 double d645 = 645;
6604 float f646 = 646;
6605 double d646 = 646;
6606 float f647 = 647;
6607 double d647 = 647;
6608 float f648 = 648;
6609 double d648 = 648;
6610 float f649 = 649;
6611 double d649 = 649;
6612 float f650 = 650;
6613 double d650 = 650;
6614 float f651 = 651;
6615 double d651 = 651;
6616 float f652 = 652;
6617 double d652 = 652;
6618 float f653 = 653;
6619 double d653 = 653;
6620 float f654 = 654;
6621 double d654 = 654;
6622 float f655 = 655;
6623 double d655 = 655;
6624 float f656 = 656;
6625 double d656 = 656;
6626 float f657 = 657;
6627 double d657 = 657;
6628 float f658 = 658;
6629 double d658 = 658;
6630 float f659 = 659;
6631 double d659 = 659;
6632 float f660 = 660;
6633 double d660 = 660;
6634 float f661 = 661;
6635 double d661 = 661;
6636 float f662 = 662;
6637 double d662 = 662;
6638 float f663 = 663;
6639 double d663 = 663;
6640 float f664 = 664;
6641 double d664 = 664;
6642 float f665 = 665;
6643 double d665 = 665;
6644 float f666 = 666;
6645 double d666 = 666;
6646 float f667 = 667;
6647 double d667 = 667;
6648 float f668 = 668;
6649 double d668 = 668;
6650 float f669 = 669;
6651 double d669 = 669;
6652 float f670 = 670;
6653 double d670 = 670;
6654 float f671 = 671;
6655 double d671 = 671;
6656 float f672 = 672;
6657 double d672 = 672;
6658 float f673 = 673;
6659 double d673 = 673;
6660 float f674 = 674;
6661 double d674 = 674;
6662 float f675 = 675;
6663 double d675 = 675;
6664 float f676 = 676;
6665 double d676 = 676;
6666 float f677 = 677;
6667 double d677 = 677;
6668 float f678 = 678;
6669 double d678 = 678;
6670 float f679 = 679;
6671 double d679 = 679;
6672 float f680 = 680;
6673 double d680 = 680;
6674 float f681 = 681;
6675 double d681 = 681;
6676 float f682 = 682;
6677 double d682 = 682;
6678 float f683 = 683;
6679 double d683 = 683;
6680 float f684 = 684;
6681 double d684 = 684;
6682 float f685 = 685;
6683 double d685 = 685;
6684 float f686 = 686;
6685 double d686 = 686;
6686 float f687 = 687;
6687 double d687 = 687;
6688 float f688 = 688;
6689 double d688 = 688;
6690 float f689 = 689;
6691 double d689 = 689;
6692 float f690 = 690;
6693 double d690 = 690;
6694 float f691 = 691;
6695 double d691 = 691;
6696 float f692 = 692;
6697 double d692 = 692;
6698 float f693 = 693;
6699 double d693 = 693;
6700 float f694 = 694;
6701 double d694 = 694;
6702 float f695 = 695;
6703 double d695 = 695;
6704 float f696 = 696;
6705 double d696 = 696;
6706 float f697 = 697;
6707 double d697 = 697;
6708 float f698 = 698;
6709 double d698 = 698;
6710 float f699 = 699;
6711 double d699 = 699;
6712 float f700 = 700;
6713 double d700 = 700;
6714 float f701 = 701;
6715 double d701 = 701;
6716 float f702 = 702;
6717 double d702 = 702;
6718 float f703 = 703;
6719 double d703 = 703;
6720 float f704 = 704;
6721 double d704 = 704;
6722 float f705 = 705;
6723 double d705 = 705;
6724 float f706 = 706;
6725 double d706 = 706;
6726 float f707 = 707;
6727 double d707 = 707;
6728 float f708 = 708;
6729 double d708 = 708;
6730 float f709 = 709;
6731 double d709 = 709;
6732 float f710 = 710;
6733 double d710 = 710;
6734 float f711 = 711;
6735 double d711 = 711;
6736 float f712 = 712;
6737 double d712 = 712;
6738 float f713 = 713;
6739 double d713 = 713;
6740 float f714 = 714;
6741 double d714 = 714;
6742 float f715 = 715;
6743 double d715 = 715;
6744 float f716 = 716;
6745 double d716 = 716;
6746 float f717 = 717;
6747 double d717 = 717;
6748 float f718 = 718;
6749 double d718 = 718;
6750 float f719 = 719;
6751 double d719 = 719;
6752 float f720 = 720;
6753 double d720 = 720;
6754 float f721 = 721;
6755 double d721 = 721;
6756 float f722 = 722;
6757 double d722 = 722;
6758 float f723 = 723;
6759 double d723 = 723;
6760 float f724 = 724;
6761 double d724 = 724;
6762 float f725 = 725;
6763 double d725 = 725;
6764 float f726 = 726;
6765 double d726 = 726;
6766 float f727 = 727;
6767 double d727 = 727;
6768 float f728 = 728;
6769 double d728 = 728;
6770 float f729 = 729;
6771 double d729 = 729;
6772 float f730 = 730;
6773 double d730 = 730;
6774 float f731 = 731;
6775 double d731 = 731;
6776 float f732 = 732;
6777 double d732 = 732;
6778 float f733 = 733;
6779 double d733 = 733;
6780 float f734 = 734;
6781 double d734 = 734;
6782 float f735 = 735;
6783 double d735 = 735;
6784 float f736 = 736;
6785 double d736 = 736;
6786 float f737 = 737;
6787 double d737 = 737;
6788 float f738 = 738;
6789 double d738 = 738;
6790 float f739 = 739;
6791 double d739 = 739;
6792 float f740 = 740;
6793 double d740 = 740;
6794 float f741 = 741;
6795 double d741 = 741;
6796 float f742 = 742;
6797 double d742 = 742;
6798 float f743 = 743;
6799 double d743 = 743;
6800 float f744 = 744;
6801 double d744 = 744;
6802 float f745 = 745;
6803 double d745 = 745;
6804 float f746 = 746;
6805 double d746 = 746;
6806 float f747 = 747;
6807 double d747 = 747;
6808 float f748 = 748;
6809 double d748 = 748;
6810 float f749 = 749;
6811 double d749 = 749;
6812 float f750 = 750;
6813 double d750 = 750;
6814 float f751 = 751;
6815 double d751 = 751;
6816 float f752 = 752;
6817 double d752 = 752;
6818 float f753 = 753;
6819 double d753 = 753;
6820 float f754 = 754;
6821 double d754 = 754;
6822 float f755 = 755;
6823 double d755 = 755;
6824 float f756 = 756;
6825 double d756 = 756;
6826 float f757 = 757;
6827 double d757 = 757;
6828 float f758 = 758;
6829 double d758 = 758;
6830 float f759 = 759;
6831 double d759 = 759;
6832 float f760 = 760;
6833 double d760 = 760;
6834 float f761 = 761;
6835 double d761 = 761;
6836 float f762 = 762;
6837 double d762 = 762;
6838 float f763 = 763;
6839 double d763 = 763;
6840 float f764 = 764;
6841 double d764 = 764;
6842 float f765 = 765;
6843 double d765 = 765;
6844 float f766 = 766;
6845 double d766 = 766;
6846 float f767 = 767;
6847 double d767 = 767;
6848 float f768 = 768;
6849 double d768 = 768;
6850 float f769 = 769;
6851 double d769 = 769;
6852 float f770 = 770;
6853 double d770 = 770;
6854 float f771 = 771;
6855 double d771 = 771;
6856 float f772 = 772;
6857 double d772 = 772;
6858 float f773 = 773;
6859 double d773 = 773;
6860 float f774 = 774;
6861 double d774 = 774;
6862 float f775 = 775;
6863 double d775 = 775;
6864 float f776 = 776;
6865 double d776 = 776;
6866 float f777 = 777;
6867 double d777 = 777;
6868 float f778 = 778;
6869 double d778 = 778;
6870 float f779 = 779;
6871 double d779 = 779;
6872 float f780 = 780;
6873 double d780 = 780;
6874 float f781 = 781;
6875 double d781 = 781;
6876 float f782 = 782;
6877 double d782 = 782;
6878 float f783 = 783;
6879 double d783 = 783;
6880 float f784 = 784;
6881 double d784 = 784;
6882 float f785 = 785;
6883 double d785 = 785;
6884 float f786 = 786;
6885 double d786 = 786;
6886 float f787 = 787;
6887 double d787 = 787;
6888 float f788 = 788;
6889 double d788 = 788;
6890 float f789 = 789;
6891 double d789 = 789;
6892 float f790 = 790;
6893 double d790 = 790;
6894 float f791 = 791;
6895 double d791 = 791;
6896 float f792 = 792;
6897 double d792 = 792;
6898 float f793 = 793;
6899 double d793 = 793;
6900 float f794 = 794;
6901 double d794 = 794;
6902 float f795 = 795;
6903 double d795 = 795;
6904 float f796 = 796;
6905 double d796 = 796;
6906 float f797 = 797;
6907 double d797 = 797;
6908 float f798 = 798;
6909 double d798 = 798;
6910 float f799 = 799;
6911 double d799 = 799;
6912 float f800 = 800;
6913 double d800 = 800;
6914 float f801 = 801;
6915 double d801 = 801;
6916 float f802 = 802;
6917 double d802 = 802;
6918 float f803 = 803;
6919 double d803 = 803;
6920 float f804 = 804;
6921 double d804 = 804;
6922 float f805 = 805;
6923 double d805 = 805;
6924 float f806 = 806;
6925 double d806 = 806;
6926 float f807 = 807;
6927 double d807 = 807;
6928 float f808 = 808;
6929 double d808 = 808;
6930 float f809 = 809;
6931 double d809 = 809;
6932 float f810 = 810;
6933 double d810 = 810;
6934 float f811 = 811;
6935 double d811 = 811;
6936 float f812 = 812;
6937 double d812 = 812;
6938 float f813 = 813;
6939 double d813 = 813;
6940 float f814 = 814;
6941 double d814 = 814;
6942 float f815 = 815;
6943 double d815 = 815;
6944 float f816 = 816;
6945 double d816 = 816;
6946 float f817 = 817;
6947 double d817 = 817;
6948 float f818 = 818;
6949 double d818 = 818;
6950 float f819 = 819;
6951 double d819 = 819;
6952 float f820 = 820;
6953 double d820 = 820;
6954 float f821 = 821;
6955 double d821 = 821;
6956 float f822 = 822;
6957 double d822 = 822;
6958 float f823 = 823;
6959 double d823 = 823;
6960 float f824 = 824;
6961 double d824 = 824;
6962 float f825 = 825;
6963 double d825 = 825;
6964 float f826 = 826;
6965 double d826 = 826;
6966 float f827 = 827;
6967 double d827 = 827;
6968 float f828 = 828;
6969 double d828 = 828;
6970 float f829 = 829;
6971 double d829 = 829;
6972 float f830 = 830;
6973 double d830 = 830;
6974 float f831 = 831;
6975 double d831 = 831;
6976 float f832 = 832;
6977 double d832 = 832;
6978 float f833 = 833;
6979 double d833 = 833;
6980 float f834 = 834;
6981 double d834 = 834;
6982 float f835 = 835;
6983 double d835 = 835;
6984 float f836 = 836;
6985 double d836 = 836;
6986 float f837 = 837;
6987 double d837 = 837;
6988 float f838 = 838;
6989 double d838 = 838;
6990 float f839 = 839;
6991 double d839 = 839;
6992 float f840 = 840;
6993 double d840 = 840;
6994 float f841 = 841;
6995 double d841 = 841;
6996 float f842 = 842;
6997 double d842 = 842;
6998 float f843 = 843;
6999 double d843 = 843;
7000 float f844 = 844;
7001 double d844 = 844;
7002 float f845 = 845;
7003 double d845 = 845;
7004 float f846 = 846;
7005 double d846 = 846;
7006 float f847 = 847;
7007 double d847 = 847;
7008 float f848 = 848;
7009 double d848 = 848;
7010 float f849 = 849;
7011 double d849 = 849;
7012 float f850 = 850;
7013 double d850 = 850;
7014 float f851 = 851;
7015 double d851 = 851;
7016 float f852 = 852;
7017 double d852 = 852;
7018 float f853 = 853;
7019 double d853 = 853;
7020 float f854 = 854;
7021 double d854 = 854;
7022 float f855 = 855;
7023 double d855 = 855;
7024 float f856 = 856;
7025 double d856 = 856;
7026 float f857 = 857;
7027 double d857 = 857;
7028 float f858 = 858;
7029 double d858 = 858;
7030 float f859 = 859;
7031 double d859 = 859;
7032 float f860 = 860;
7033 double d860 = 860;
7034 float f861 = 861;
7035 double d861 = 861;
7036 float f862 = 862;
7037 double d862 = 862;
7038 float f863 = 863;
7039 double d863 = 863;
7040 float f864 = 864;
7041 double d864 = 864;
7042 float f865 = 865;
7043 double d865 = 865;
7044 float f866 = 866;
7045 double d866 = 866;
7046 float f867 = 867;
7047 double d867 = 867;
7048 float f868 = 868;
7049 double d868 = 868;
7050 float f869 = 869;
7051 double d869 = 869;
7052 float f870 = 870;
7053 double d870 = 870;
7054 float f871 = 871;
7055 double d871 = 871;
7056 float f872 = 872;
7057 double d872 = 872;
7058 float f873 = 873;
7059 double d873 = 873;
7060 float f874 = 874;
7061 double d874 = 874;
7062 float f875 = 875;
7063 double d875 = 875;
7064 float f876 = 876;
7065 double d876 = 876;
7066 float f877 = 877;
7067 double d877 = 877;
7068 float f878 = 878;
7069 double d878 = 878;
7070 float f879 = 879;
7071 double d879 = 879;
7072 float f880 = 880;
7073 double d880 = 880;
7074 float f881 = 881;
7075 double d881 = 881;
7076 float f882 = 882;
7077 double d882 = 882;
7078 float f883 = 883;
7079 double d883 = 883;
7080 float f884 = 884;
7081 double d884 = 884;
7082 float f885 = 885;
7083 double d885 = 885;
7084 float f886 = 886;
7085 double d886 = 886;
7086 float f887 = 887;
7087 double d887 = 887;
7088 float f888 = 888;
7089 double d888 = 888;
7090 float f889 = 889;
7091 double d889 = 889;
7092 float f890 = 890;
7093 double d890 = 890;
7094 float f891 = 891;
7095 double d891 = 891;
7096 float f892 = 892;
7097 double d892 = 892;
7098 float f893 = 893;
7099 double d893 = 893;
7100 float f894 = 894;
7101 double d894 = 894;
7102 float f895 = 895;
7103 double d895 = 895;
7104 float f896 = 896;
7105 double d896 = 896;
7106 float f897 = 897;
7107 double d897 = 897;
7108 float f898 = 898;
7109 double d898 = 898;
7110 float f899 = 899;
7111 double d899 = 899;
7112 float f900 = 900;
7113 double d900 = 900;
7114 float f901 = 901;
7115 double d901 = 901;
7116 float f902 = 902;
7117 double d902 = 902;
7118 float f903 = 903;
7119 double d903 = 903;
7120 float f904 = 904;
7121 double d904 = 904;
7122 float f905 = 905;
7123 double d905 = 905;
7124 float f906 = 906;
7125 double d906 = 906;
7126 float f907 = 907;
7127 double d907 = 907;
7128 float f908 = 908;
7129 double d908 = 908;
7130 float f909 = 909;
7131 double d909 = 909;
7132 float f910 = 910;
7133 double d910 = 910;
7134 float f911 = 911;
7135 double d911 = 911;
7136 float f912 = 912;
7137 double d912 = 912;
7138 float f913 = 913;
7139 double d913 = 913;
7140 float f914 = 914;
7141 double d914 = 914;
7142 float f915 = 915;
7143 double d915 = 915;
7144 float f916 = 916;
7145 double d916 = 916;
7146 float f917 = 917;
7147 double d917 = 917;
7148 float f918 = 918;
7149 double d918 = 918;
7150 float f919 = 919;
7151 double d919 = 919;
7152 float f920 = 920;
7153 double d920 = 920;
7154 float f921 = 921;
7155 double d921 = 921;
7156 float f922 = 922;
7157 double d922 = 922;
7158 float f923 = 923;
7159 double d923 = 923;
7160 float f924 = 924;
7161 double d924 = 924;
7162 float f925 = 925;
7163 double d925 = 925;
7164 float f926 = 926;
7165 double d926 = 926;
7166 float f927 = 927;
7167 double d927 = 927;
7168 float f928 = 928;
7169 double d928 = 928;
7170 float f929 = 929;
7171 double d929 = 929;
7172 float f930 = 930;
7173 double d930 = 930;
7174 float f931 = 931;
7175 double d931 = 931;
7176 float f932 = 932;
7177 double d932 = 932;
7178 float f933 = 933;
7179 double d933 = 933;
7180 float f934 = 934;
7181 double d934 = 934;
7182 float f935 = 935;
7183 double d935 = 935;
7184 float f936 = 936;
7185 double d936 = 936;
7186 float f937 = 937;
7187 double d937 = 937;
7188 float f938 = 938;
7189 double d938 = 938;
7190 float f939 = 939;
7191 double d939 = 939;
7192 float f940 = 940;
7193 double d940 = 940;
7194 float f941 = 941;
7195 double d941 = 941;
7196 float f942 = 942;
7197 double d942 = 942;
7198 float f943 = 943;
7199 double d943 = 943;
7200 float f944 = 944;
7201 double d944 = 944;
7202 float f945 = 945;
7203 double d945 = 945;
7204 float f946 = 946;
7205 double d946 = 946;
7206 float f947 = 947;
7207 double d947 = 947;
7208 float f948 = 948;
7209 double d948 = 948;
7210 float f949 = 949;
7211 double d949 = 949;
7212 float f950 = 950;
7213 double d950 = 950;
7214 float f951 = 951;
7215 double d951 = 951;
7216 float f952 = 952;
7217 double d952 = 952;
7218 float f953 = 953;
7219 double d953 = 953;
7220 float f954 = 954;
7221 double d954 = 954;
7222 float f955 = 955;
7223 double d955 = 955;
7224 float f956 = 956;
7225 double d956 = 956;
7226 float f957 = 957;
7227 double d957 = 957;
7228 float f958 = 958;
7229 double d958 = 958;
7230 float f959 = 959;
7231 double d959 = 959;
7232 float f960 = 960;
7233 double d960 = 960;
7234 float f961 = 961;
7235 double d961 = 961;
7236 float f962 = 962;
7237 double d962 = 962;
7238 float f963 = 963;
7239 double d963 = 963;
7240 float f964 = 964;
7241 double d964 = 964;
7242 float f965 = 965;
7243 double d965 = 965;
7244 float f966 = 966;
7245 double d966 = 966;
7246 float f967 = 967;
7247 double d967 = 967;
7248 float f968 = 968;
7249 double d968 = 968;
7250 float f969 = 969;
7251 double d969 = 969;
7252 float f970 = 970;
7253 double d970 = 970;
7254 float f971 = 971;
7255 double d971 = 971;
7256 float f972 = 972;
7257 double d972 = 972;
7258 float f973 = 973;
7259 double d973 = 973;
7260 float f974 = 974;
7261 double d974 = 974;
7262 float f975 = 975;
7263 double d975 = 975;
7264 float f976 = 976;
7265 double d976 = 976;
7266 float f977 = 977;
7267 double d977 = 977;
7268 float f978 = 978;
7269 double d978 = 978;
7270 float f979 = 979;
7271 double d979 = 979;
7272 float f980 = 980;
7273 double d980 = 980;
7274 float f981 = 981;
7275 double d981 = 981;
7276 float f982 = 982;
7277 double d982 = 982;
7278 float f983 = 983;
7279 double d983 = 983;
7280 float f984 = 984;
7281 double d984 = 984;
7282 float f985 = 985;
7283 double d985 = 985;
7284 float f986 = 986;
7285 double d986 = 986;
7286 float f987 = 987;
7287 double d987 = 987;
7288 float f988 = 988;
7289 double d988 = 988;
7290 float f989 = 989;
7291 double d989 = 989;
7292 float f990 = 990;
7293 double d990 = 990;
7294 float f991 = 991;
7295 double d991 = 991;
7296 float f992 = 992;
7297 double d992 = 992;
7298 float f993 = 993;
7299 double d993 = 993;
7300 float f994 = 994;
7301 double d994 = 994;
7302 float f995 = 995;
7303 double d995 = 995;
7304 float f996 = 996;
7305 double d996 = 996;
7306 float f997 = 997;
7307 double d997 = 997;
7308 float f998 = 998;
7309 double d998 = 998;
7310 float f999 = 999;
7311 double d999 = 999;
7312 f1 += f0;
7313 d1 = d0;
7314 f2 += f1;
7315 d2 = d1;
7316 f3 += f2;
7317 d3 = d2;
7318 f4 += f3;
7319 d4 = d3;
7320 f5 += f4;
7321 d5 = d4;
7322 f6 += f5;
7323 d6 = d5;
7324 f7 += f6;
7325 d7 = d6;
7326 f8 += f7;
7327 d8 = d7;
7328 f9 += f8;
7329 d9 = d8;
7330 f10 += f9;
7331 d10 = d9;
7332 f11 += f10;
7333 d11 = d10;
7334 f12 += f11;
7335 d12 = d11;
7336 f13 += f12;
7337 d13 = d12;
7338 f14 += f13;
7339 d14 = d13;
7340 f15 += f14;
7341 d15 = d14;
7342 f16 += f15;
7343 d16 = d15;
7344 f17 += f16;
7345 d17 = d16;
7346 f18 += f17;
7347 d18 = d17;
7348 f19 += f18;
7349 d19 = d18;
7350 f20 += f19;
7351 d20 = d19;
7352 f21 += f20;
7353 d21 = d20;
7354 f22 += f21;
7355 d22 = d21;
7356 f23 += f22;
7357 d23 = d22;
7358 f24 += f23;
7359 d24 = d23;
7360 f25 += f24;
7361 d25 = d24;
7362 f26 += f25;
7363 d26 = d25;
7364 f27 += f26;
7365 d27 = d26;
7366 f28 += f27;
7367 d28 = d27;
7368 f29 += f28;
7369 d29 = d28;
7370 f30 += f29;
7371 d30 = d29;
7372 f31 += f30;
7373 d31 = d30;
7374 f32 += f31;
7375 d32 = d31;
7376 f33 += f32;
7377 d33 = d32;
7378 f34 += f33;
7379 d34 = d33;
7380 f35 += f34;
7381 d35 = d34;
7382 f36 += f35;
7383 d36 = d35;
7384 f37 += f36;
7385 d37 = d36;
7386 f38 += f37;
7387 d38 = d37;
7388 f39 += f38;
7389 d39 = d38;
7390 f40 += f39;
7391 d40 = d39;
7392 f41 += f40;
7393 d41 = d40;
7394 f42 += f41;
7395 d42 = d41;
7396 f43 += f42;
7397 d43 = d42;
7398 f44 += f43;
7399 d44 = d43;
7400 f45 += f44;
7401 d45 = d44;
7402 f46 += f45;
7403 d46 = d45;
7404 f47 += f46;
7405 d47 = d46;
7406 f48 += f47;
7407 d48 = d47;
7408 f49 += f48;
7409 d49 = d48;
7410 f50 += f49;
7411 d50 = d49;
7412 f51 += f50;
7413 d51 = d50;
7414 f52 += f51;
7415 d52 = d51;
7416 f53 += f52;
7417 d53 = d52;
7418 f54 += f53;
7419 d54 = d53;
7420 f55 += f54;
7421 d55 = d54;
7422 f56 += f55;
7423 d56 = d55;
7424 f57 += f56;
7425 d57 = d56;
7426 f58 += f57;
7427 d58 = d57;
7428 f59 += f58;
7429 d59 = d58;
7430 f60 += f59;
7431 d60 = d59;
7432 f61 += f60;
7433 d61 = d60;
7434 f62 += f61;
7435 d62 = d61;
7436 f63 += f62;
7437 d63 = d62;
7438 f64 += f63;
7439 d64 = d63;
7440 f65 += f64;
7441 d65 = d64;
7442 f66 += f65;
7443 d66 = d65;
7444 f67 += f66;
7445 d67 = d66;
7446 f68 += f67;
7447 d68 = d67;
7448 f69 += f68;
7449 d69 = d68;
7450 f70 += f69;
7451 d70 = d69;
7452 f71 += f70;
7453 d71 = d70;
7454 f72 += f71;
7455 d72 = d71;
7456 f73 += f72;
7457 d73 = d72;
7458 f74 += f73;
7459 d74 = d73;
7460 f75 += f74;
7461 d75 = d74;
7462 f76 += f75;
7463 d76 = d75;
7464 f77 += f76;
7465 d77 = d76;
7466 f78 += f77;
7467 d78 = d77;
7468 f79 += f78;
7469 d79 = d78;
7470 f80 += f79;
7471 d80 = d79;
7472 f81 += f80;
7473 d81 = d80;
7474 f82 += f81;
7475 d82 = d81;
7476 f83 += f82;
7477 d83 = d82;
7478 f84 += f83;
7479 d84 = d83;
7480 f85 += f84;
7481 d85 = d84;
7482 f86 += f85;
7483 d86 = d85;
7484 f87 += f86;
7485 d87 = d86;
7486 f88 += f87;
7487 d88 = d87;
7488 f89 += f88;
7489 d89 = d88;
7490 f90 += f89;
7491 d90 = d89;
7492 f91 += f90;
7493 d91 = d90;
7494 f92 += f91;
7495 d92 = d91;
7496 f93 += f92;
7497 d93 = d92;
7498 f94 += f93;
7499 d94 = d93;
7500 f95 += f94;
7501 d95 = d94;
7502 f96 += f95;
7503 d96 = d95;
7504 f97 += f96;
7505 d97 = d96;
7506 f98 += f97;
7507 d98 = d97;
7508 f99 += f98;
7509 d99 = d98;
7510 f100 += f99;
7511 d100 = d99;
7512 f101 += f100;
7513 d101 = d100;
7514 f102 += f101;
7515 d102 = d101;
7516 f103 += f102;
7517 d103 = d102;
7518 f104 += f103;
7519 d104 = d103;
7520 f105 += f104;
7521 d105 = d104;
7522 f106 += f105;
7523 d106 = d105;
7524 f107 += f106;
7525 d107 = d106;
7526 f108 += f107;
7527 d108 = d107;
7528 f109 += f108;
7529 d109 = d108;
7530 f110 += f109;
7531 d110 = d109;
7532 f111 += f110;
7533 d111 = d110;
7534 f112 += f111;
7535 d112 = d111;
7536 f113 += f112;
7537 d113 = d112;
7538 f114 += f113;
7539 d114 = d113;
7540 f115 += f114;
7541 d115 = d114;
7542 f116 += f115;
7543 d116 = d115;
7544 f117 += f116;
7545 d117 = d116;
7546 f118 += f117;
7547 d118 = d117;
7548 f119 += f118;
7549 d119 = d118;
7550 f120 += f119;
7551 d120 = d119;
7552 f121 += f120;
7553 d121 = d120;
7554 f122 += f121;
7555 d122 = d121;
7556 f123 += f122;
7557 d123 = d122;
7558 f124 += f123;
7559 d124 = d123;
7560 f125 += f124;
7561 d125 = d124;
7562 f126 += f125;
7563 d126 = d125;
7564 f127 += f126;
7565 d127 = d126;
7566 f128 += f127;
7567 d128 = d127;
7568 f129 += f128;
7569 d129 = d128;
7570 f130 += f129;
7571 d130 = d129;
7572 f131 += f130;
7573 d131 = d130;
7574 f132 += f131;
7575 d132 = d131;
7576 f133 += f132;
7577 d133 = d132;
7578 f134 += f133;
7579 d134 = d133;
7580 f135 += f134;
7581 d135 = d134;
7582 f136 += f135;
7583 d136 = d135;
7584 f137 += f136;
7585 d137 = d136;
7586 f138 += f137;
7587 d138 = d137;
7588 f139 += f138;
7589 d139 = d138;
7590 f140 += f139;
7591 d140 = d139;
7592 f141 += f140;
7593 d141 = d140;
7594 f142 += f141;
7595 d142 = d141;
7596 f143 += f142;
7597 d143 = d142;
7598 f144 += f143;
7599 d144 = d143;
7600 f145 += f144;
7601 d145 = d144;
7602 f146 += f145;
7603 d146 = d145;
7604 f147 += f146;
7605 d147 = d146;
7606 f148 += f147;
7607 d148 = d147;
7608 f149 += f148;
7609 d149 = d148;
7610 f150 += f149;
7611 d150 = d149;
7612 f151 += f150;
7613 d151 = d150;
7614 f152 += f151;
7615 d152 = d151;
7616 f153 += f152;
7617 d153 = d152;
7618 f154 += f153;
7619 d154 = d153;
7620 f155 += f154;
7621 d155 = d154;
7622 f156 += f155;
7623 d156 = d155;
7624 f157 += f156;
7625 d157 = d156;
7626 f158 += f157;
7627 d158 = d157;
7628 f159 += f158;
7629 d159 = d158;
7630 f160 += f159;
7631 d160 = d159;
7632 f161 += f160;
7633 d161 = d160;
7634 f162 += f161;
7635 d162 = d161;
7636 f163 += f162;
7637 d163 = d162;
7638 f164 += f163;
7639 d164 = d163;
7640 f165 += f164;
7641 d165 = d164;
7642 f166 += f165;
7643 d166 = d165;
7644 f167 += f166;
7645 d167 = d166;
7646 f168 += f167;
7647 d168 = d167;
7648 f169 += f168;
7649 d169 = d168;
7650 f170 += f169;
7651 d170 = d169;
7652 f171 += f170;
7653 d171 = d170;
7654 f172 += f171;
7655 d172 = d171;
7656 f173 += f172;
7657 d173 = d172;
7658 f174 += f173;
7659 d174 = d173;
7660 f175 += f174;
7661 d175 = d174;
7662 f176 += f175;
7663 d176 = d175;
7664 f177 += f176;
7665 d177 = d176;
7666 f178 += f177;
7667 d178 = d177;
7668 f179 += f178;
7669 d179 = d178;
7670 f180 += f179;
7671 d180 = d179;
7672 f181 += f180;
7673 d181 = d180;
7674 f182 += f181;
7675 d182 = d181;
7676 f183 += f182;
7677 d183 = d182;
7678 f184 += f183;
7679 d184 = d183;
7680 f185 += f184;
7681 d185 = d184;
7682 f186 += f185;
7683 d186 = d185;
7684 f187 += f186;
7685 d187 = d186;
7686 f188 += f187;
7687 d188 = d187;
7688 f189 += f188;
7689 d189 = d188;
7690 f190 += f189;
7691 d190 = d189;
7692 f191 += f190;
7693 d191 = d190;
7694 f192 += f191;
7695 d192 = d191;
7696 f193 += f192;
7697 d193 = d192;
7698 f194 += f193;
7699 d194 = d193;
7700 f195 += f194;
7701 d195 = d194;
7702 f196 += f195;
7703 d196 = d195;
7704 f197 += f196;
7705 d197 = d196;
7706 f198 += f197;
7707 d198 = d197;
7708 f199 += f198;
7709 d199 = d198;
7710 f200 += f199;
7711 d200 = d199;
7712 f201 += f200;
7713 d201 = d200;
7714 f202 += f201;
7715 d202 = d201;
7716 f203 += f202;
7717 d203 = d202;
7718 f204 += f203;
7719 d204 = d203;
7720 f205 += f204;
7721 d205 = d204;
7722 f206 += f205;
7723 d206 = d205;
7724 f207 += f206;
7725 d207 = d206;
7726 f208 += f207;
7727 d208 = d207;
7728 f209 += f208;
7729 d209 = d208;
7730 f210 += f209;
7731 d210 = d209;
7732 f211 += f210;
7733 d211 = d210;
7734 f212 += f211;
7735 d212 = d211;
7736 f213 += f212;
7737 d213 = d212;
7738 f214 += f213;
7739 d214 = d213;
7740 f215 += f214;
7741 d215 = d214;
7742 f216 += f215;
7743 d216 = d215;
7744 f217 += f216;
7745 d217 = d216;
7746 f218 += f217;
7747 d218 = d217;
7748 f219 += f218;
7749 d219 = d218;
7750 f220 += f219;
7751 d220 = d219;
7752 f221 += f220;
7753 d221 = d220;
7754 f222 += f221;
7755 d222 = d221;
7756 f223 += f222;
7757 d223 = d222;
7758 f224 += f223;
7759 d224 = d223;
7760 f225 += f224;
7761 d225 = d224;
7762 f226 += f225;
7763 d226 = d225;
7764 f227 += f226;
7765 d227 = d226;
7766 f228 += f227;
7767 d228 = d227;
7768 f229 += f228;
7769 d229 = d228;
7770 f230 += f229;
7771 d230 = d229;
7772 f231 += f230;
7773 d231 = d230;
7774 f232 += f231;
7775 d232 = d231;
7776 f233 += f232;
7777 d233 = d232;
7778 f234 += f233;
7779 d234 = d233;
7780 f235 += f234;
7781 d235 = d234;
7782 f236 += f235;
7783 d236 = d235;
7784 f237 += f236;
7785 d237 = d236;
7786 f238 += f237;
7787 d238 = d237;
7788 f239 += f238;
7789 d239 = d238;
7790 f240 += f239;
7791 d240 = d239;
7792 f241 += f240;
7793 d241 = d240;
7794 f242 += f241;
7795 d242 = d241;
7796 f243 += f242;
7797 d243 = d242;
7798 f244 += f243;
7799 d244 = d243;
7800 f245 += f244;
7801 d245 = d244;
7802 f246 += f245;
7803 d246 = d245;
7804 f247 += f246;
7805 d247 = d246;
7806 f248 += f247;
7807 d248 = d247;
7808 f249 += f248;
7809 d249 = d248;
7810 f250 += f249;
7811 d250 = d249;
7812 f251 += f250;
7813 d251 = d250;
7814 f252 += f251;
7815 d252 = d251;
7816 f253 += f252;
7817 d253 = d252;
7818 f254 += f253;
7819 d254 = d253;
7820 f255 += f254;
7821 d255 = d254;
7822 f256 += f255;
7823 d256 = d255;
7824 f257 += f256;
7825 d257 = d256;
7826 f258 += f257;
7827 d258 = d257;
7828 f259 += f258;
7829 d259 = d258;
7830 f260 += f259;
7831 d260 = d259;
7832 f261 += f260;
7833 d261 = d260;
7834 f262 += f261;
7835 d262 = d261;
7836 f263 += f262;
7837 d263 = d262;
7838 f264 += f263;
7839 d264 = d263;
7840 f265 += f264;
7841 d265 = d264;
7842 f266 += f265;
7843 d266 = d265;
7844 f267 += f266;
7845 d267 = d266;
7846 f268 += f267;
7847 d268 = d267;
7848 f269 += f268;
7849 d269 = d268;
7850 f270 += f269;
7851 d270 = d269;
7852 f271 += f270;
7853 d271 = d270;
7854 f272 += f271;
7855 d272 = d271;
7856 f273 += f272;
7857 d273 = d272;
7858 f274 += f273;
7859 d274 = d273;
7860 f275 += f274;
7861 d275 = d274;
7862 f276 += f275;
7863 d276 = d275;
7864 f277 += f276;
7865 d277 = d276;
7866 f278 += f277;
7867 d278 = d277;
7868 f279 += f278;
7869 d279 = d278;
7870 f280 += f279;
7871 d280 = d279;
7872 f281 += f280;
7873 d281 = d280;
7874 f282 += f281;
7875 d282 = d281;
7876 f283 += f282;
7877 d283 = d282;
7878 f284 += f283;
7879 d284 = d283;
7880 f285 += f284;
7881 d285 = d284;
7882 f286 += f285;
7883 d286 = d285;
7884 f287 += f286;
7885 d287 = d286;
7886 f288 += f287;
7887 d288 = d287;
7888 f289 += f288;
7889 d289 = d288;
7890 f290 += f289;
7891 d290 = d289;
7892 f291 += f290;
7893 d291 = d290;
7894 f292 += f291;
7895 d292 = d291;
7896 f293 += f292;
7897 d293 = d292;
7898 f294 += f293;
7899 d294 = d293;
7900 f295 += f294;
7901 d295 = d294;
7902 f296 += f295;
7903 d296 = d295;
7904 f297 += f296;
7905 d297 = d296;
7906 f298 += f297;
7907 d298 = d297;
7908 f299 += f298;
7909 d299 = d298;
7910 f300 += f299;
7911 d300 = d299;
7912 f301 += f300;
7913 d301 = d300;
7914 f302 += f301;
7915 d302 = d301;
7916 f303 += f302;
7917 d303 = d302;
7918 f304 += f303;
7919 d304 = d303;
7920 f305 += f304;
7921 d305 = d304;
7922 f306 += f305;
7923 d306 = d305;
7924 f307 += f306;
7925 d307 = d306;
7926 f308 += f307;
7927 d308 = d307;
7928 f309 += f308;
7929 d309 = d308;
7930 f310 += f309;
7931 d310 = d309;
7932 f311 += f310;
7933 d311 = d310;
7934 f312 += f311;
7935 d312 = d311;
7936 f313 += f312;
7937 d313 = d312;
7938 f314 += f313;
7939 d314 = d313;
7940 f315 += f314;
7941 d315 = d314;
7942 f316 += f315;
7943 d316 = d315;
7944 f317 += f316;
7945 d317 = d316;
7946 f318 += f317;
7947 d318 = d317;
7948 f319 += f318;
7949 d319 = d318;
7950 f320 += f319;
7951 d320 = d319;
7952 f321 += f320;
7953 d321 = d320;
7954 f322 += f321;
7955 d322 = d321;
7956 f323 += f322;
7957 d323 = d322;
7958 f324 += f323;
7959 d324 = d323;
7960 f325 += f324;
7961 d325 = d324;
7962 f326 += f325;
7963 d326 = d325;
7964 f327 += f326;
7965 d327 = d326;
7966 f328 += f327;
7967 d328 = d327;
7968 f329 += f328;
7969 d329 = d328;
7970 f330 += f329;
7971 d330 = d329;
7972 f331 += f330;
7973 d331 = d330;
7974 f332 += f331;
7975 d332 = d331;
7976 f333 += f332;
7977 d333 = d332;
7978 f334 += f333;
7979 d334 = d333;
7980 f335 += f334;
7981 d335 = d334;
7982 f336 += f335;
7983 d336 = d335;
7984 f337 += f336;
7985 d337 = d336;
7986 f338 += f337;
7987 d338 = d337;
7988 f339 += f338;
7989 d339 = d338;
7990 f340 += f339;
7991 d340 = d339;
7992 f341 += f340;
7993 d341 = d340;
7994 f342 += f341;
7995 d342 = d341;
7996 f343 += f342;
7997 d343 = d342;
7998 f344 += f343;
7999 d344 = d343;
8000 f345 += f344;
8001 d345 = d344;
8002 f346 += f345;
8003 d346 = d345;
8004 f347 += f346;
8005 d347 = d346;
8006 f348 += f347;
8007 d348 = d347;
8008 f349 += f348;
8009 d349 = d348;
8010 f350 += f349;
8011 d350 = d349;
8012 f351 += f350;
8013 d351 = d350;
8014 f352 += f351;
8015 d352 = d351;
8016 f353 += f352;
8017 d353 = d352;
8018 f354 += f353;
8019 d354 = d353;
8020 f355 += f354;
8021 d355 = d354;
8022 f356 += f355;
8023 d356 = d355;
8024 f357 += f356;
8025 d357 = d356;
8026 f358 += f357;
8027 d358 = d357;
8028 f359 += f358;
8029 d359 = d358;
8030 f360 += f359;
8031 d360 = d359;
8032 f361 += f360;
8033 d361 = d360;
8034 f362 += f361;
8035 d362 = d361;
8036 f363 += f362;
8037 d363 = d362;
8038 f364 += f363;
8039 d364 = d363;
8040 f365 += f364;
8041 d365 = d364;
8042 f366 += f365;
8043 d366 = d365;
8044 f367 += f366;
8045 d367 = d366;
8046 f368 += f367;
8047 d368 = d367;
8048 f369 += f368;
8049 d369 = d368;
8050 f370 += f369;
8051 d370 = d369;
8052 f371 += f370;
8053 d371 = d370;
8054 f372 += f371;
8055 d372 = d371;
8056 f373 += f372;
8057 d373 = d372;
8058 f374 += f373;
8059 d374 = d373;
8060 f375 += f374;
8061 d375 = d374;
8062 f376 += f375;
8063 d376 = d375;
8064 f377 += f376;
8065 d377 = d376;
8066 f378 += f377;
8067 d378 = d377;
8068 f379 += f378;
8069 d379 = d378;
8070 f380 += f379;
8071 d380 = d379;
8072 f381 += f380;
8073 d381 = d380;
8074 f382 += f381;
8075 d382 = d381;
8076 f383 += f382;
8077 d383 = d382;
8078 f384 += f383;
8079 d384 = d383;
8080 f385 += f384;
8081 d385 = d384;
8082 f386 += f385;
8083 d386 = d385;
8084 f387 += f386;
8085 d387 = d386;
8086 f388 += f387;
8087 d388 = d387;
8088 f389 += f388;
8089 d389 = d388;
8090 f390 += f389;
8091 d390 = d389;
8092 f391 += f390;
8093 d391 = d390;
8094 f392 += f391;
8095 d392 = d391;
8096 f393 += f392;
8097 d393 = d392;
8098 f394 += f393;
8099 d394 = d393;
8100 f395 += f394;
8101 d395 = d394;
8102 f396 += f395;
8103 d396 = d395;
8104 f397 += f396;
8105 d397 = d396;
8106 f398 += f397;
8107 d398 = d397;
8108 f399 += f398;
8109 d399 = d398;
8110 f400 += f399;
8111 d400 = d399;
8112 f401 += f400;
8113 d401 = d400;
8114 f402 += f401;
8115 d402 = d401;
8116 f403 += f402;
8117 d403 = d402;
8118 f404 += f403;
8119 d404 = d403;
8120 f405 += f404;
8121 d405 = d404;
8122 f406 += f405;
8123 d406 = d405;
8124 f407 += f406;
8125 d407 = d406;
8126 f408 += f407;
8127 d408 = d407;
8128 f409 += f408;
8129 d409 = d408;
8130 f410 += f409;
8131 d410 = d409;
8132 f411 += f410;
8133 d411 = d410;
8134 f412 += f411;
8135 d412 = d411;
8136 f413 += f412;
8137 d413 = d412;
8138 f414 += f413;
8139 d414 = d413;
8140 f415 += f414;
8141 d415 = d414;
8142 f416 += f415;
8143 d416 = d415;
8144 f417 += f416;
8145 d417 = d416;
8146 f418 += f417;
8147 d418 = d417;
8148 f419 += f418;
8149 d419 = d418;
8150 f420 += f419;
8151 d420 = d419;
8152 f421 += f420;
8153 d421 = d420;
8154 f422 += f421;
8155 d422 = d421;
8156 f423 += f422;
8157 d423 = d422;
8158 f424 += f423;
8159 d424 = d423;
8160 f425 += f424;
8161 d425 = d424;
8162 f426 += f425;
8163 d426 = d425;
8164 f427 += f426;
8165 d427 = d426;
8166 f428 += f427;
8167 d428 = d427;
8168 f429 += f428;
8169 d429 = d428;
8170 f430 += f429;
8171 d430 = d429;
8172 f431 += f430;
8173 d431 = d430;
8174 f432 += f431;
8175 d432 = d431;
8176 f433 += f432;
8177 d433 = d432;
8178 f434 += f433;
8179 d434 = d433;
8180 f435 += f434;
8181 d435 = d434;
8182 f436 += f435;
8183 d436 = d435;
8184 f437 += f436;
8185 d437 = d436;
8186 f438 += f437;
8187 d438 = d437;
8188 f439 += f438;
8189 d439 = d438;
8190 f440 += f439;
8191 d440 = d439;
8192 f441 += f440;
8193 d441 = d440;
8194 f442 += f441;
8195 d442 = d441;
8196 f443 += f442;
8197 d443 = d442;
8198 f444 += f443;
8199 d444 = d443;
8200 f445 += f444;
8201 d445 = d444;
8202 f446 += f445;
8203 d446 = d445;
8204 f447 += f446;
8205 d447 = d446;
8206 f448 += f447;
8207 d448 = d447;
8208 f449 += f448;
8209 d449 = d448;
8210 f450 += f449;
8211 d450 = d449;
8212 f451 += f450;
8213 d451 = d450;
8214 f452 += f451;
8215 d452 = d451;
8216 f453 += f452;
8217 d453 = d452;
8218 f454 += f453;
8219 d454 = d453;
8220 f455 += f454;
8221 d455 = d454;
8222 f456 += f455;
8223 d456 = d455;
8224 f457 += f456;
8225 d457 = d456;
8226 f458 += f457;
8227 d458 = d457;
8228 f459 += f458;
8229 d459 = d458;
8230 f460 += f459;
8231 d460 = d459;
8232 f461 += f460;
8233 d461 = d460;
8234 f462 += f461;
8235 d462 = d461;
8236 f463 += f462;
8237 d463 = d462;
8238 f464 += f463;
8239 d464 = d463;
8240 f465 += f464;
8241 d465 = d464;
8242 f466 += f465;
8243 d466 = d465;
8244 f467 += f466;
8245 d467 = d466;
8246 f468 += f467;
8247 d468 = d467;
8248 f469 += f468;
8249 d469 = d468;
8250 f470 += f469;
8251 d470 = d469;
8252 f471 += f470;
8253 d471 = d470;
8254 f472 += f471;
8255 d472 = d471;
8256 f473 += f472;
8257 d473 = d472;
8258 f474 += f473;
8259 d474 = d473;
8260 f475 += f474;
8261 d475 = d474;
8262 f476 += f475;
8263 d476 = d475;
8264 f477 += f476;
8265 d477 = d476;
8266 f478 += f477;
8267 d478 = d477;
8268 f479 += f478;
8269 d479 = d478;
8270 f480 += f479;
8271 d480 = d479;
8272 f481 += f480;
8273 d481 = d480;
8274 f482 += f481;
8275 d482 = d481;
8276 f483 += f482;
8277 d483 = d482;
8278 f484 += f483;
8279 d484 = d483;
8280 f485 += f484;
8281 d485 = d484;
8282 f486 += f485;
8283 d486 = d485;
8284 f487 += f486;
8285 d487 = d486;
8286 f488 += f487;
8287 d488 = d487;
8288 f489 += f488;
8289 d489 = d488;
8290 f490 += f489;
8291 d490 = d489;
8292 f491 += f490;
8293 d491 = d490;
8294 f492 += f491;
8295 d492 = d491;
8296 f493 += f492;
8297 d493 = d492;
8298 f494 += f493;
8299 d494 = d493;
8300 f495 += f494;
8301 d495 = d494;
8302 f496 += f495;
8303 d496 = d495;
8304 f497 += f496;
8305 d497 = d496;
8306 f498 += f497;
8307 d498 = d497;
8308 f499 += f498;
8309 d499 = d498;
8310 f500 += f499;
8311 d500 = d499;
8312 f501 += f500;
8313 d501 = d500;
8314 f502 += f501;
8315 d502 = d501;
8316 f503 += f502;
8317 d503 = d502;
8318 f504 += f503;
8319 d504 = d503;
8320 f505 += f504;
8321 d505 = d504;
8322 f506 += f505;
8323 d506 = d505;
8324 f507 += f506;
8325 d507 = d506;
8326 f508 += f507;
8327 d508 = d507;
8328 f509 += f508;
8329 d509 = d508;
8330 f510 += f509;
8331 d510 = d509;
8332 f511 += f510;
8333 d511 = d510;
8334 f512 += f511;
8335 d512 = d511;
8336 f513 += f512;
8337 d513 = d512;
8338 f514 += f513;
8339 d514 = d513;
8340 f515 += f514;
8341 d515 = d514;
8342 f516 += f515;
8343 d516 = d515;
8344 f517 += f516;
8345 d517 = d516;
8346 f518 += f517;
8347 d518 = d517;
8348 f519 += f518;
8349 d519 = d518;
8350 f520 += f519;
8351 d520 = d519;
8352 f521 += f520;
8353 d521 = d520;
8354 f522 += f521;
8355 d522 = d521;
8356 f523 += f522;
8357 d523 = d522;
8358 f524 += f523;
8359 d524 = d523;
8360 f525 += f524;
8361 d525 = d524;
8362 f526 += f525;
8363 d526 = d525;
8364 f527 += f526;
8365 d527 = d526;
8366 f528 += f527;
8367 d528 = d527;
8368 f529 += f528;
8369 d529 = d528;
8370 f530 += f529;
8371 d530 = d529;
8372 f531 += f530;
8373 d531 = d530;
8374 f532 += f531;
8375 d532 = d531;
8376 f533 += f532;
8377 d533 = d532;
8378 f534 += f533;
8379 d534 = d533;
8380 f535 += f534;
8381 d535 = d534;
8382 f536 += f535;
8383 d536 = d535;
8384 f537 += f536;
8385 d537 = d536;
8386 f538 += f537;
8387 d538 = d537;
8388 f539 += f538;
8389 d539 = d538;
8390 f540 += f539;
8391 d540 = d539;
8392 f541 += f540;
8393 d541 = d540;
8394 f542 += f541;
8395 d542 = d541;
8396 f543 += f542;
8397 d543 = d542;
8398 f544 += f543;
8399 d544 = d543;
8400 f545 += f544;
8401 d545 = d544;
8402 f546 += f545;
8403 d546 = d545;
8404 f547 += f546;
8405 d547 = d546;
8406 f548 += f547;
8407 d548 = d547;
8408 f549 += f548;
8409 d549 = d548;
8410 f550 += f549;
8411 d550 = d549;
8412 f551 += f550;
8413 d551 = d550;
8414 f552 += f551;
8415 d552 = d551;
8416 f553 += f552;
8417 d553 = d552;
8418 f554 += f553;
8419 d554 = d553;
8420 f555 += f554;
8421 d555 = d554;
8422 f556 += f555;
8423 d556 = d555;
8424 f557 += f556;
8425 d557 = d556;
8426 f558 += f557;
8427 d558 = d557;
8428 f559 += f558;
8429 d559 = d558;
8430 f560 += f559;
8431 d560 = d559;
8432 f561 += f560;
8433 d561 = d560;
8434 f562 += f561;
8435 d562 = d561;
8436 f563 += f562;
8437 d563 = d562;
8438 f564 += f563;
8439 d564 = d563;
8440 f565 += f564;
8441 d565 = d564;
8442 f566 += f565;
8443 d566 = d565;
8444 f567 += f566;
8445 d567 = d566;
8446 f568 += f567;
8447 d568 = d567;
8448 f569 += f568;
8449 d569 = d568;
8450 f570 += f569;
8451 d570 = d569;
8452 f571 += f570;
8453 d571 = d570;
8454 f572 += f571;
8455 d572 = d571;
8456 f573 += f572;
8457 d573 = d572;
8458 f574 += f573;
8459 d574 = d573;
8460 f575 += f574;
8461 d575 = d574;
8462 f576 += f575;
8463 d576 = d575;
8464 f577 += f576;
8465 d577 = d576;
8466 f578 += f577;
8467 d578 = d577;
8468 f579 += f578;
8469 d579 = d578;
8470 f580 += f579;
8471 d580 = d579;
8472 f581 += f580;
8473 d581 = d580;
8474 f582 += f581;
8475 d582 = d581;
8476 f583 += f582;
8477 d583 = d582;
8478 f584 += f583;
8479 d584 = d583;
8480 f585 += f584;
8481 d585 = d584;
8482 f586 += f585;
8483 d586 = d585;
8484 f587 += f586;
8485 d587 = d586;
8486 f588 += f587;
8487 d588 = d587;
8488 f589 += f588;
8489 d589 = d588;
8490 f590 += f589;
8491 d590 = d589;
8492 f591 += f590;
8493 d591 = d590;
8494 f592 += f591;
8495 d592 = d591;
8496 f593 += f592;
8497 d593 = d592;
8498 f594 += f593;
8499 d594 = d593;
8500 f595 += f594;
8501 d595 = d594;
8502 f596 += f595;
8503 d596 = d595;
8504 f597 += f596;
8505 d597 = d596;
8506 f598 += f597;
8507 d598 = d597;
8508 f599 += f598;
8509 d599 = d598;
8510 f600 += f599;
8511 d600 = d599;
8512 f601 += f600;
8513 d601 = d600;
8514 f602 += f601;
8515 d602 = d601;
8516 f603 += f602;
8517 d603 = d602;
8518 f604 += f603;
8519 d604 = d603;
8520 f605 += f604;
8521 d605 = d604;
8522 f606 += f605;
8523 d606 = d605;
8524 f607 += f606;
8525 d607 = d606;
8526 f608 += f607;
8527 d608 = d607;
8528 f609 += f608;
8529 d609 = d608;
8530 f610 += f609;
8531 d610 = d609;
8532 f611 += f610;
8533 d611 = d610;
8534 f612 += f611;
8535 d612 = d611;
8536 f613 += f612;
8537 d613 = d612;
8538 f614 += f613;
8539 d614 = d613;
8540 f615 += f614;
8541 d615 = d614;
8542 f616 += f615;
8543 d616 = d615;
8544 f617 += f616;
8545 d617 = d616;
8546 f618 += f617;
8547 d618 = d617;
8548 f619 += f618;
8549 d619 = d618;
8550 f620 += f619;
8551 d620 = d619;
8552 f621 += f620;
8553 d621 = d620;
8554 f622 += f621;
8555 d622 = d621;
8556 f623 += f622;
8557 d623 = d622;
8558 f624 += f623;
8559 d624 = d623;
8560 f625 += f624;
8561 d625 = d624;
8562 f626 += f625;
8563 d626 = d625;
8564 f627 += f626;
8565 d627 = d626;
8566 f628 += f627;
8567 d628 = d627;
8568 f629 += f628;
8569 d629 = d628;
8570 f630 += f629;
8571 d630 = d629;
8572 f631 += f630;
8573 d631 = d630;
8574 f632 += f631;
8575 d632 = d631;
8576 f633 += f632;
8577 d633 = d632;
8578 f634 += f633;
8579 d634 = d633;
8580 f635 += f634;
8581 d635 = d634;
8582 f636 += f635;
8583 d636 = d635;
8584 f637 += f636;
8585 d637 = d636;
8586 f638 += f637;
8587 d638 = d637;
8588 f639 += f638;
8589 d639 = d638;
8590 f640 += f639;
8591 d640 = d639;
8592 f641 += f640;
8593 d641 = d640;
8594 f642 += f641;
8595 d642 = d641;
8596 f643 += f642;
8597 d643 = d642;
8598 f644 += f643;
8599 d644 = d643;
8600 f645 += f644;
8601 d645 = d644;
8602 f646 += f645;
8603 d646 = d645;
8604 f647 += f646;
8605 d647 = d646;
8606 f648 += f647;
8607 d648 = d647;
8608 f649 += f648;
8609 d649 = d648;
8610 f650 += f649;
8611 d650 = d649;
8612 f651 += f650;
8613 d651 = d650;
8614 f652 += f651;
8615 d652 = d651;
8616 f653 += f652;
8617 d653 = d652;
8618 f654 += f653;
8619 d654 = d653;
8620 f655 += f654;
8621 d655 = d654;
8622 f656 += f655;
8623 d656 = d655;
8624 f657 += f656;
8625 d657 = d656;
8626 f658 += f657;
8627 d658 = d657;
8628 f659 += f658;
8629 d659 = d658;
8630 f660 += f659;
8631 d660 = d659;
8632 f661 += f660;
8633 d661 = d660;
8634 f662 += f661;
8635 d662 = d661;
8636 f663 += f662;
8637 d663 = d662;
8638 f664 += f663;
8639 d664 = d663;
8640 f665 += f664;
8641 d665 = d664;
8642 f666 += f665;
8643 d666 = d665;
8644 f667 += f666;
8645 d667 = d666;
8646 f668 += f667;
8647 d668 = d667;
8648 f669 += f668;
8649 d669 = d668;
8650 f670 += f669;
8651 d670 = d669;
8652 f671 += f670;
8653 d671 = d670;
8654 f672 += f671;
8655 d672 = d671;
8656 f673 += f672;
8657 d673 = d672;
8658 f674 += f673;
8659 d674 = d673;
8660 f675 += f674;
8661 d675 = d674;
8662 f676 += f675;
8663 d676 = d675;
8664 f677 += f676;
8665 d677 = d676;
8666 f678 += f677;
8667 d678 = d677;
8668 f679 += f678;
8669 d679 = d678;
8670 f680 += f679;
8671 d680 = d679;
8672 f681 += f680;
8673 d681 = d680;
8674 f682 += f681;
8675 d682 = d681;
8676 f683 += f682;
8677 d683 = d682;
8678 f684 += f683;
8679 d684 = d683;
8680 f685 += f684;
8681 d685 = d684;
8682 f686 += f685;
8683 d686 = d685;
8684 f687 += f686;
8685 d687 = d686;
8686 f688 += f687;
8687 d688 = d687;
8688 f689 += f688;
8689 d689 = d688;
8690 f690 += f689;
8691 d690 = d689;
8692 f691 += f690;
8693 d691 = d690;
8694 f692 += f691;
8695 d692 = d691;
8696 f693 += f692;
8697 d693 = d692;
8698 f694 += f693;
8699 d694 = d693;
8700 f695 += f694;
8701 d695 = d694;
8702 f696 += f695;
8703 d696 = d695;
8704 f697 += f696;
8705 d697 = d696;
8706 f698 += f697;
8707 d698 = d697;
8708 f699 += f698;
8709 d699 = d698;
8710 f700 += f699;
8711 d700 = d699;
8712 f701 += f700;
8713 d701 = d700;
8714 f702 += f701;
8715 d702 = d701;
8716 f703 += f702;
8717 d703 = d702;
8718 f704 += f703;
8719 d704 = d703;
8720 f705 += f704;
8721 d705 = d704;
8722 f706 += f705;
8723 d706 = d705;
8724 f707 += f706;
8725 d707 = d706;
8726 f708 += f707;
8727 d708 = d707;
8728 f709 += f708;
8729 d709 = d708;
8730 f710 += f709;
8731 d710 = d709;
8732 f711 += f710;
8733 d711 = d710;
8734 f712 += f711;
8735 d712 = d711;
8736 f713 += f712;
8737 d713 = d712;
8738 f714 += f713;
8739 d714 = d713;
8740 f715 += f714;
8741 d715 = d714;
8742 f716 += f715;
8743 d716 = d715;
8744 f717 += f716;
8745 d717 = d716;
8746 f718 += f717;
8747 d718 = d717;
8748 f719 += f718;
8749 d719 = d718;
8750 f720 += f719;
8751 d720 = d719;
8752 f721 += f720;
8753 d721 = d720;
8754 f722 += f721;
8755 d722 = d721;
8756 f723 += f722;
8757 d723 = d722;
8758 f724 += f723;
8759 d724 = d723;
8760 f725 += f724;
8761 d725 = d724;
8762 f726 += f725;
8763 d726 = d725;
8764 f727 += f726;
8765 d727 = d726;
8766 f728 += f727;
8767 d728 = d727;
8768 f729 += f728;
8769 d729 = d728;
8770 f730 += f729;
8771 d730 = d729;
8772 f731 += f730;
8773 d731 = d730;
8774 f732 += f731;
8775 d732 = d731;
8776 f733 += f732;
8777 d733 = d732;
8778 f734 += f733;
8779 d734 = d733;
8780 f735 += f734;
8781 d735 = d734;
8782 f736 += f735;
8783 d736 = d735;
8784 f737 += f736;
8785 d737 = d736;
8786 f738 += f737;
8787 d738 = d737;
8788 f739 += f738;
8789 d739 = d738;
8790 f740 += f739;
8791 d740 = d739;
8792 f741 += f740;
8793 d741 = d740;
8794 f742 += f741;
8795 d742 = d741;
8796 f743 += f742;
8797 d743 = d742;
8798 f744 += f743;
8799 d744 = d743;
8800 f745 += f744;
8801 d745 = d744;
8802 f746 += f745;
8803 d746 = d745;
8804 f747 += f746;
8805 d747 = d746;
8806 f748 += f747;
8807 d748 = d747;
8808 f749 += f748;
8809 d749 = d748;
8810 f750 += f749;
8811 d750 = d749;
8812 f751 += f750;
8813 d751 = d750;
8814 f752 += f751;
8815 d752 = d751;
8816 f753 += f752;
8817 d753 = d752;
8818 f754 += f753;
8819 d754 = d753;
8820 f755 += f754;
8821 d755 = d754;
8822 f756 += f755;
8823 d756 = d755;
8824 f757 += f756;
8825 d757 = d756;
8826 f758 += f757;
8827 d758 = d757;
8828 f759 += f758;
8829 d759 = d758;
8830 f760 += f759;
8831 d760 = d759;
8832 f761 += f760;
8833 d761 = d760;
8834 f762 += f761;
8835 d762 = d761;
8836 f763 += f762;
8837 d763 = d762;
8838 f764 += f763;
8839 d764 = d763;
8840 f765 += f764;
8841 d765 = d764;
8842 f766 += f765;
8843 d766 = d765;
8844 f767 += f766;
8845 d767 = d766;
8846 f768 += f767;
8847 d768 = d767;
8848 f769 += f768;
8849 d769 = d768;
8850 f770 += f769;
8851 d770 = d769;
8852 f771 += f770;
8853 d771 = d770;
8854 f772 += f771;
8855 d772 = d771;
8856 f773 += f772;
8857 d773 = d772;
8858 f774 += f773;
8859 d774 = d773;
8860 f775 += f774;
8861 d775 = d774;
8862 f776 += f775;
8863 d776 = d775;
8864 f777 += f776;
8865 d777 = d776;
8866 f778 += f777;
8867 d778 = d777;
8868 f779 += f778;
8869 d779 = d778;
8870 f780 += f779;
8871 d780 = d779;
8872 f781 += f780;
8873 d781 = d780;
8874 f782 += f781;
8875 d782 = d781;
8876 f783 += f782;
8877 d783 = d782;
8878 f784 += f783;
8879 d784 = d783;
8880 f785 += f784;
8881 d785 = d784;
8882 f786 += f785;
8883 d786 = d785;
8884 f787 += f786;
8885 d787 = d786;
8886 f788 += f787;
8887 d788 = d787;
8888 f789 += f788;
8889 d789 = d788;
8890 f790 += f789;
8891 d790 = d789;
8892 f791 += f790;
8893 d791 = d790;
8894 f792 += f791;
8895 d792 = d791;
8896 f793 += f792;
8897 d793 = d792;
8898 f794 += f793;
8899 d794 = d793;
8900 f795 += f794;
8901 d795 = d794;
8902 f796 += f795;
8903 d796 = d795;
8904 f797 += f796;
8905 d797 = d796;
8906 f798 += f797;
8907 d798 = d797;
8908 f799 += f798;
8909 d799 = d798;
8910 f800 += f799;
8911 d800 = d799;
8912 f801 += f800;
8913 d801 = d800;
8914 f802 += f801;
8915 d802 = d801;
8916 f803 += f802;
8917 d803 = d802;
8918 f804 += f803;
8919 d804 = d803;
8920 f805 += f804;
8921 d805 = d804;
8922 f806 += f805;
8923 d806 = d805;
8924 f807 += f806;
8925 d807 = d806;
8926 f808 += f807;
8927 d808 = d807;
8928 f809 += f808;
8929 d809 = d808;
8930 f810 += f809;
8931 d810 = d809;
8932 f811 += f810;
8933 d811 = d810;
8934 f812 += f811;
8935 d812 = d811;
8936 f813 += f812;
8937 d813 = d812;
8938 f814 += f813;
8939 d814 = d813;
8940 f815 += f814;
8941 d815 = d814;
8942 f816 += f815;
8943 d816 = d815;
8944 f817 += f816;
8945 d817 = d816;
8946 f818 += f817;
8947 d818 = d817;
8948 f819 += f818;
8949 d819 = d818;
8950 f820 += f819;
8951 d820 = d819;
8952 f821 += f820;
8953 d821 = d820;
8954 f822 += f821;
8955 d822 = d821;
8956 f823 += f822;
8957 d823 = d822;
8958 f824 += f823;
8959 d824 = d823;
8960 f825 += f824;
8961 d825 = d824;
8962 f826 += f825;
8963 d826 = d825;
8964 f827 += f826;
8965 d827 = d826;
8966 f828 += f827;
8967 d828 = d827;
8968 f829 += f828;
8969 d829 = d828;
8970 f830 += f829;
8971 d830 = d829;
8972 f831 += f830;
8973 d831 = d830;
8974 f832 += f831;
8975 d832 = d831;
8976 f833 += f832;
8977 d833 = d832;
8978 f834 += f833;
8979 d834 = d833;
8980 f835 += f834;
8981 d835 = d834;
8982 f836 += f835;
8983 d836 = d835;
8984 f837 += f836;
8985 d837 = d836;
8986 f838 += f837;
8987 d838 = d837;
8988 f839 += f838;
8989 d839 = d838;
8990 f840 += f839;
8991 d840 = d839;
8992 f841 += f840;
8993 d841 = d840;
8994 f842 += f841;
8995 d842 = d841;
8996 f843 += f842;
8997 d843 = d842;
8998 f844 += f843;
8999 d844 = d843;
9000 f845 += f844;
9001 d845 = d844;
9002 f846 += f845;
9003 d846 = d845;
9004 f847 += f846;
9005 d847 = d846;
9006 f848 += f847;
9007 d848 = d847;
9008 f849 += f848;
9009 d849 = d848;
9010 f850 += f849;
9011 d850 = d849;
9012 f851 += f850;
9013 d851 = d850;
9014 f852 += f851;
9015 d852 = d851;
9016 f853 += f852;
9017 d853 = d852;
9018 f854 += f853;
9019 d854 = d853;
9020 f855 += f854;
9021 d855 = d854;
9022 f856 += f855;
9023 d856 = d855;
9024 f857 += f856;
9025 d857 = d856;
9026 f858 += f857;
9027 d858 = d857;
9028 f859 += f858;
9029 d859 = d858;
9030 f860 += f859;
9031 d860 = d859;
9032 f861 += f860;
9033 d861 = d860;
9034 f862 += f861;
9035 d862 = d861;
9036 f863 += f862;
9037 d863 = d862;
9038 f864 += f863;
9039 d864 = d863;
9040 f865 += f864;
9041 d865 = d864;
9042 f866 += f865;
9043 d866 = d865;
9044 f867 += f866;
9045 d867 = d866;
9046 f868 += f867;
9047 d868 = d867;
9048 f869 += f868;
9049 d869 = d868;
9050 f870 += f869;
9051 d870 = d869;
9052 f871 += f870;
9053 d871 = d870;
9054 f872 += f871;
9055 d872 = d871;
9056 f873 += f872;
9057 d873 = d872;
9058 f874 += f873;
9059 d874 = d873;
9060 f875 += f874;
9061 d875 = d874;
9062 f876 += f875;
9063 d876 = d875;
9064 f877 += f876;
9065 d877 = d876;
9066 f878 += f877;
9067 d878 = d877;
9068 f879 += f878;
9069 d879 = d878;
9070 f880 += f879;
9071 d880 = d879;
9072 f881 += f880;
9073 d881 = d880;
9074 f882 += f881;
9075 d882 = d881;
9076 f883 += f882;
9077 d883 = d882;
9078 f884 += f883;
9079 d884 = d883;
9080 f885 += f884;
9081 d885 = d884;
9082 f886 += f885;
9083 d886 = d885;
9084 f887 += f886;
9085 d887 = d886;
9086 f888 += f887;
9087 d888 = d887;
9088 f889 += f888;
9089 d889 = d888;
9090 f890 += f889;
9091 d890 = d889;
9092 f891 += f890;
9093 d891 = d890;
9094 f892 += f891;
9095 d892 = d891;
9096 f893 += f892;
9097 d893 = d892;
9098 f894 += f893;
9099 d894 = d893;
9100 f895 += f894;
9101 d895 = d894;
9102 f896 += f895;
9103 d896 = d895;
9104 f897 += f896;
9105 d897 = d896;
9106 f898 += f897;
9107 d898 = d897;
9108 f899 += f898;
9109 d899 = d898;
9110 f900 += f899;
9111 d900 = d899;
9112 f901 += f900;
9113 d901 = d900;
9114 f902 += f901;
9115 d902 = d901;
9116 f903 += f902;
9117 d903 = d902;
9118 f904 += f903;
9119 d904 = d903;
9120 f905 += f904;
9121 d905 = d904;
9122 f906 += f905;
9123 d906 = d905;
9124 f907 += f906;
9125 d907 = d906;
9126 f908 += f907;
9127 d908 = d907;
9128 f909 += f908;
9129 d909 = d908;
9130 f910 += f909;
9131 d910 = d909;
9132 f911 += f910;
9133 d911 = d910;
9134 f912 += f911;
9135 d912 = d911;
9136 f913 += f912;
9137 d913 = d912;
9138 f914 += f913;
9139 d914 = d913;
9140 f915 += f914;
9141 d915 = d914;
9142 f916 += f915;
9143 d916 = d915;
9144 f917 += f916;
9145 d917 = d916;
9146 f918 += f917;
9147 d918 = d917;
9148 f919 += f918;
9149 d919 = d918;
9150 f920 += f919;
9151 d920 = d919;
9152 f921 += f920;
9153 d921 = d920;
9154 f922 += f921;
9155 d922 = d921;
9156 f923 += f922;
9157 d923 = d922;
9158 f924 += f923;
9159 d924 = d923;
9160 f925 += f924;
9161 d925 = d924;
9162 f926 += f925;
9163 d926 = d925;
9164 f927 += f926;
9165 d927 = d926;
9166 f928 += f927;
9167 d928 = d927;
9168 f929 += f928;
9169 d929 = d928;
9170 f930 += f929;
9171 d930 = d929;
9172 f931 += f930;
9173 d931 = d930;
9174 f932 += f931;
9175 d932 = d931;
9176 f933 += f932;
9177 d933 = d932;
9178 f934 += f933;
9179 d934 = d933;
9180 f935 += f934;
9181 d935 = d934;
9182 f936 += f935;
9183 d936 = d935;
9184 f937 += f936;
9185 d937 = d936;
9186 f938 += f937;
9187 d938 = d937;
9188 f939 += f938;
9189 d939 = d938;
9190 f940 += f939;
9191 d940 = d939;
9192 f941 += f940;
9193 d941 = d940;
9194 f942 += f941;
9195 d942 = d941;
9196 f943 += f942;
9197 d943 = d942;
9198 f944 += f943;
9199 d944 = d943;
9200 f945 += f944;
9201 d945 = d944;
9202 f946 += f945;
9203 d946 = d945;
9204 f947 += f946;
9205 d947 = d946;
9206 f948 += f947;
9207 d948 = d947;
9208 f949 += f948;
9209 d949 = d948;
9210 f950 += f949;
9211 d950 = d949;
9212 f951 += f950;
9213 d951 = d950;
9214 f952 += f951;
9215 d952 = d951;
9216 f953 += f952;
9217 d953 = d952;
9218 f954 += f953;
9219 d954 = d953;
9220 f955 += f954;
9221 d955 = d954;
9222 f956 += f955;
9223 d956 = d955;
9224 f957 += f956;
9225 d957 = d956;
9226 f958 += f957;
9227 d958 = d957;
9228 f959 += f958;
9229 d959 = d958;
9230 f960 += f959;
9231 d960 = d959;
9232 f961 += f960;
9233 d961 = d960;
9234 f962 += f961;
9235 d962 = d961;
9236 f963 += f962;
9237 d963 = d962;
9238 f964 += f963;
9239 d964 = d963;
9240 f965 += f964;
9241 d965 = d964;
9242 f966 += f965;
9243 d966 = d965;
9244 f967 += f966;
9245 d967 = d966;
9246 f968 += f967;
9247 d968 = d967;
9248 f969 += f968;
9249 d969 = d968;
9250 f970 += f969;
9251 d970 = d969;
9252 f971 += f970;
9253 d971 = d970;
9254 f972 += f971;
9255 d972 = d971;
9256 f973 += f972;
9257 d973 = d972;
9258 f974 += f973;
9259 d974 = d973;
9260 f975 += f974;
9261 d975 = d974;
9262 f976 += f975;
9263 d976 = d975;
9264 f977 += f976;
9265 d977 = d976;
9266 f978 += f977;
9267 d978 = d977;
9268 f979 += f978;
9269 d979 = d978;
9270 f980 += f979;
9271 d980 = d979;
9272 f981 += f980;
9273 d981 = d980;
9274 f982 += f981;
9275 d982 = d981;
9276 f983 += f982;
9277 d983 = d982;
9278 f984 += f983;
9279 d984 = d983;
9280 f985 += f984;
9281 d985 = d984;
9282 f986 += f985;
9283 d986 = d985;
9284 f987 += f986;
9285 d987 = d986;
9286 f988 += f987;
9287 d988 = d987;
9288 f989 += f988;
9289 d989 = d988;
9290 f990 += f989;
9291 d990 = d989;
9292 f991 += f990;
9293 d991 = d990;
9294 f992 += f991;
9295 d992 = d991;
9296 f993 += f992;
9297 d993 = d992;
9298 f994 += f993;
9299 d994 = d993;
9300 f995 += f994;
9301 d995 = d994;
9302 f996 += f995;
9303 d996 = d995;
9304 f997 += f996;
9305 d997 = d996;
9306 f998 += f997;
9307 d998 = d997;
9308 f999 += f998;
9309 d999 = d998;
9310 return f999 + d999;
9311 }
9312
buzbee4922ef92012-02-24 14:32:20 -08009313 static void largeFrameTest() {
9314 long res = largeFrame();
9315 if (res == 499500) {
9316 System.out.println("largeFrame passes");
9317 } else {
9318 System.out.println("largeFrame fails: expected 49950, got " + res);
9319 }
9320 }
Ian Rogers513c64a2012-02-26 15:16:23 -08009321
9322 static void largeFrameTestFloat() {
9323 double res = largeFrameFloat();
9324 if (res == 499500.0) {
9325 System.out.println("largeFrameFloat passes");
9326 } else {
9327 System.out.println("largeFrameFloat fails: expected 49950, got " + res);
9328 }
9329 }
jeffhao5d1ac922011-09-29 17:41:15 -07009330}
9331
9332class SpinThread extends Thread {
9333 int mPriority;
9334
9335 SpinThread(int prio) {
9336 super("Spin prio=" + prio);
9337 mPriority = prio;
9338 }
9339
9340 public void run() {
9341 setPriority(mPriority);
9342 while (true) {}
9343 }
9344}
buzbeee62076c2012-03-21 14:26:16 -07009345
9346class Foo {
9347 private int bar = 1234;
9348 private long lbar = 1234;
9349
Vladimir Markoe1fced12014-04-04 14:52:53 +01009350 public static Foo getNullFoo() {
9351 // Make this a bit complicated so that it's not inlined.
9352 Foo foo = new Foo();
9353 return (barBar(foo) != 0) ? null : foo;
9354 }
9355
buzbee97df07f2012-03-27 16:13:20 -07009356 // Looks similar to a direct method, make sure we're null checking
9357 static int barBar(Foo foo) {
9358 return foo.bar;
9359 }
9360
buzbeee62076c2012-03-21 14:26:16 -07009361 public int iConst0x1234() {
9362 return 0x1234;
9363 }
9364
9365 public long iConst0x123443211234() {
9366 return 0x123443211234L;
9367 }
9368
9369 public void setBar1(int a1) {
9370 bar = a1;
9371 }
9372 public void setBar2(int a1, int a2) {
9373 bar = a2;
9374 }
9375 public void setBar3(int a1, int a2, int a3) {
9376 bar = a3;
9377 }
9378 public void setBar4(int a1, int a2, int a3, int a4) {
9379 bar = a4;
9380 }
9381 public void setBar5(int a1, int a2, int a3, int a4, int a5) {
9382 bar = a5;
9383 }
9384 public int getBar0() {
9385 return bar;
9386 }
9387 public int getBar1(int a1) {
9388 return bar;
9389 }
9390 public int getBar2(int a1, int a2) {
9391 return bar;
9392 }
9393 public int getBar3(int a1, int a2, int a3) {
9394 return bar;
9395 }
9396 public int getBar4(int a1, int a2, int a3, int a4) {
9397 return bar;
9398 }
9399 public int getBar5(int a1, int a2, int a3, int a4, int a5) {
9400 return bar;
9401 }
9402
9403 public int ident0(int a1) {
9404 return a1;
9405 }
9406
9407 public int ident1(int a2, int a1) {
9408 return a1;
9409 }
9410
9411 public int ident2(int a3, int a2, int a1) {
9412 return a1;
9413 }
9414
9415 public int ident3(int a4, int a3, int a2, int a1) {
9416 return a1;
9417 }
9418
9419 public int ident4(int a5, int a4, int a3, int a2, int a1) {
9420 return a1;
9421 }
9422
9423 public int ident5(int a6, int a5, int a4, int a3, int a2, int a1) {
9424 return a1;
9425 }
9426
9427
9428 public void wideSetBar1(long a1) {
9429 lbar = a1;
9430 }
9431 public void wideSetBar2(long a1, long a2) {
9432 lbar = a2;
9433 }
9434 public void wideSetBar3(long a1, long a2, long a3) {
9435 lbar = a3;
9436 }
9437 public void wideSetBar4(long a1, long a2, long a3, long a4) {
9438 lbar = a4;
9439 }
9440 public void wideSetBar5(long a1, long a2, long a3, long a4, long a5) {
9441 lbar = a5;
9442 }
Vladimir Marko8017ef82014-02-10 09:59:43 +00009443 public void wideSetBar2i(int a1, long a2) {
9444 lbar = a2;
9445 }
9446 public void wideSetBar3i(int a1, int a2, long a3) {
9447 lbar = a3;
9448 }
9449 public void wideSetBar4i(int a1, int a2, int a3, long a4) {
9450 lbar = a4;
9451 }
9452 public void wideSetBar5i(int a1, int a2, int a3, int a4, long a5) {
9453 lbar = a5;
9454 }
buzbeee62076c2012-03-21 14:26:16 -07009455 public long wideGetBar0() {
9456 return lbar;
9457 }
9458 public long wideGetBar1(long a1) {
9459 return lbar;
9460 }
9461 public long wideGetBar2(long a1, long a2) {
9462 return lbar;
9463 }
9464 public long wideGetBar3(long a1, long a2, long a3) {
9465 return lbar;
9466 }
9467 public long wideGetBar4(long a1, long a2, long a3, long a4) {
9468 return lbar;
9469 }
9470 public long wideGetBar5(long a1, long a2, long a3, long a4, long a5) {
9471 return lbar;
9472 }
9473
9474 public long wideIdent0(long a1) {
9475 return a1;
9476 }
9477
9478 public long wideIdent1(int a2, long a1) {
9479 return a1;
9480 }
9481
9482 public long wideIdent2(int a3, int a2, long a1) {
9483 return a1;
9484 }
9485
9486 public long wideIdent3(int a4, int a3, int a2, long a1) {
9487 return a1;
9488 }
9489
9490 public long wideIdent4(int a5, int a4, int a3, int a2, long a1) {
9491 return a1;
9492 }
9493
9494 public long wideIdent5(int a6, int a5, int a4, int a3, int a2, long a1) {
9495 return a1;
Vladimir Markodb406322014-02-19 14:11:19 +00009496 }
Vladimir Markoe1fced12014-04-04 14:52:53 +01009497 public Foo setBar1ReturnThis(int a1) {
9498 bar = a1;
9499 return this;
9500 }
9501 public Foo setBar2ReturnThis(int a1, int a2) {
9502 bar = a2;
9503 return this;
9504 }
9505 public Foo setBar3ReturnThis(int a1, int a2, int a3) {
9506 bar = a3;
9507 return this;
9508 }
9509 public Foo setBar4ReturnThis(int a1, int a2, int a3, int a4) {
9510 bar = a4;
9511 return this;
9512 }
9513 public Foo setBar5ReturnThis(int a1, int a2, int a3, int a4, int a5) {
9514 bar = a5;
9515 return this;
9516 }
9517 public Foo wideSetBar1ReturnThis(long a1) {
9518 lbar = a1;
9519 return this;
9520 }
9521 public Foo wideSetBar2ReturnThis(long a1, long a2) {
9522 lbar = a2;
9523 return this;
9524 }
9525 public Foo wideSetBar3ReturnThis(long a1, long a2, long a3) {
9526 lbar = a3;
9527 return this;
9528 }
9529 public Foo wideSetBar4ReturnThis(long a1, long a2, long a3, long a4) {
9530 lbar = a4;
9531 return this;
9532 }
9533 public Foo wideSetBar5ReturnThis(long a1, long a2, long a3, long a4, long a5) {
9534 lbar = a5;
9535 return this;
9536 }
9537 public Foo wideSetBar2iReturnThis(int a1, long a2) {
9538 lbar = a2;
9539 return this;
9540 }
9541 public Foo wideSetBar3iReturnThis(int a1, int a2, long a3) {
9542 lbar = a3;
9543 return this;
9544 }
9545 public Foo wideSetBar4iReturnThis(int a1, int a2, int a3, long a4) {
9546 lbar = a4;
9547 return this;
9548 }
9549 public Foo wideSetBar5iReturnThis(int a1, int a2, int a3, int a4, long a5) {
9550 lbar = a5;
9551 return this;
9552 }
9553 public int setBar1ReturnBarArg(int a1) {
9554 bar = a1;
9555 return a1;
9556 }
9557 public int setBar2ReturnBarArg(int a1, int a2) {
9558 bar = a2;
9559 return a2;
9560 }
9561 public int setBar3ReturnBarArg(int a1, int a2, int a3) {
9562 bar = a3;
9563 return a3;
9564 }
9565 public int setBar4ReturnBarArg(int a1, int a2, int a3, int a4) {
9566 bar = a4;
9567 return a4;
9568 }
9569 public int setBar5ReturnBarArg(int a1, int a2, int a3, int a4, int a5) {
9570 bar = a5;
9571 return a5;
9572 }
9573 public long wideSetBar1ReturnBarArg(long a1) {
9574 lbar = a1;
9575 return a1;
9576 }
9577 public long wideSetBar2ReturnBarArg(long a1, long a2) {
9578 lbar = a2;
9579 return a2;
9580 }
9581 public long wideSetBar3ReturnBarArg(long a1, long a2, long a3) {
9582 lbar = a3;
9583 return a3;
9584 }
9585 public long wideSetBar4ReturnBarArg(long a1, long a2, long a3, long a4) {
9586 lbar = a4;
9587 return a4;
9588 }
9589 public long wideSetBar5ReturnBarArg(long a1, long a2, long a3, long a4, long a5) {
9590 lbar = a5;
9591 return a5;
9592 }
9593 public long wideSetBar2iReturnBarArg(int a1, long a2) {
9594 lbar = a2;
9595 return a2;
9596 }
9597 public long wideSetBar3iReturnBarArg(int a1, int a2, long a3) {
9598 lbar = a3;
9599 return a3;
9600 }
9601 public long wideSetBar4iReturnBarArg(int a1, int a2, int a3, long a4) {
9602 lbar = a4;
9603 return a4;
9604 }
9605 public long wideSetBar5iReturnBarArg(int a1, int a2, int a3, int a4, long a5) {
9606 lbar = a5;
9607 return a5;
9608 }
9609 public int setBar2ReturnDummyArg1(int a1, int a2) {
9610 bar = a2;
9611 return a1;
9612 }
9613 public int setBar3ReturnDummyArg2(int a1, int a2, int a3) {
9614 bar = a3;
9615 return a2;
9616 }
9617 public int setBar4ReturnDummyArg3(int a1, int a2, int a3, int a4) {
9618 bar = a4;
9619 return a3;
9620 }
9621 public int setBar5ReturnDummyArg4(int a1, int a2, int a3, int a4, int a5) {
9622 bar = a5;
9623 return a4;
9624 }
9625 public long wideSetBar2ReturnDummyArg1(long a1, long a2) {
9626 lbar = a2;
9627 return a1;
9628 }
9629 public long wideSetBar3ReturnDummyArg2(long a1, long a2, long a3) {
9630 lbar = a3;
9631 return a2;
9632 }
9633 public long wideSetBar4ReturnDummyArg3(long a1, long a2, long a3, long a4) {
9634 lbar = a4;
9635 return a3;
9636 }
9637 public long wideSetBar5ReturnDummyArg4(long a1, long a2, long a3, long a4, long a5) {
9638 lbar = a5;
9639 return a4;
9640 }
9641 public int wideSetBar2iReturnDummyArg1(int a1, long a2) {
9642 lbar = a2;
9643 return a1;
9644 }
9645 public int wideSetBar3iReturnDummyArg2(int a1, int a2, long a3) {
9646 lbar = a3;
9647 return a2;
9648 }
9649 public int wideSetBar4iReturnDummyArg3(int a1, int a2, int a3, long a4) {
9650 lbar = a4;
9651 return a3;
9652 }
9653 public int wideSetBar5iReturnDummyArg4(int a1, int a2, int a3, int a4, long a5) {
9654 lbar = a5;
9655 return a4;
9656 }
Vladimir Markodb406322014-02-19 14:11:19 +00009657}
buzbeee62076c2012-03-21 14:26:16 -07009658
Vladimir Markodb406322014-02-19 14:11:19 +00009659class LVNTests {
9660 private LVNTests link = null;
9661 private int value = 0;
9662
9663 private void setLink(LVNTests l) {
9664 link = l;
9665 }
9666
9667 private static void causeNPE1(LVNTests lhs, LVNTests rhs) {
9668 LVNTests link1 = lhs.link;
9669 rhs.link = null;
9670 LVNTests link2 = lhs.link;
9671 int value1 = link1.value;
9672 int value2 = link2.value;
9673 System.out.println("LVNTests.testNPE1 fails with " + value1 + " and " + value2);
9674 }
9675
9676 public static void testNPE1() {
9677 LVNTests t = new LVNTests();
9678 t.link = new LVNTests();
9679 try {
9680 causeNPE1(t, t);
9681 } catch (NullPointerException e) {
9682 System.out.println("LVNTests.testNPE1 passes");
9683 }
9684 }
9685
9686 private static void causeNPE2(LVNTests lhs, LVNTests rhs) {
9687 LVNTests link1 = lhs.link;
9688 rhs.setLink(null);
9689 LVNTests link2 = lhs.link;
9690 int value1 = link1.value;
9691 int value2 = link2.value;
9692 System.out.println("LVNTests.testNPE2 fails with " + value1 + " and " + value2);
9693 }
9694
9695 public static void testNPE2() {
9696 LVNTests t = new LVNTests();
9697 t.link = new LVNTests();
9698 try {
9699 causeNPE2(t, t);
9700 } catch (NullPointerException e) {
9701 System.out.println("LVNTests.testNPE2 passes");
9702 }
9703 }
buzbeee62076c2012-03-21 14:26:16 -07009704}
Vladimir Markoa1a70742014-03-03 10:28:05 +00009705
9706class MirOpSelectTests {
9707 private static int ifEqzThen0Else1(int i) { return (i == 0) ? 0 : 1; }
9708 private static int ifEqzThen0Else8(int i) { return (i == 0) ? 0 : 8; }
9709 private static int ifEqzThen1Else5(int i) { return (i == 0) ? 1 : 5; }
9710 private static int ifEqzThenMinus1Else3(int i) { return (i == 0) ? -1 : 3; }
9711 private static int ifEqzThen11Else23(int i) { return (i == 0) ? 11 : 23; }
9712 private static int ifEqzThen54321Else87654321(int i) { return (i == 0) ? 54321 : 87654321; }
9713 private static int ifNezThen0Else1(int i) { return (i != 0) ? 0 : 1; }
9714 private static int ifNezThen0Else8(int i) { return (i != 0) ? 0 : 8; }
9715 private static int ifNezThen1Else5(int i) { return (i != 0) ? 1 : 5; }
9716 private static int ifNezThenMinus1Else3(int i) { return (i != 0) ? -1 : 3; }
9717 private static int ifNezThen11Else23(int i) { return (i != 0) ? 11 : 23; }
9718 private static int ifNezThen54321Else87654321(int i) { return (i != 0) ? 54321 : 87654321; }
9719 private static int ifLtzThen3Else5(int i) { return (i < 0) ? 3 : 5; }
9720 private static int ifGezThen7Else4(int i) { return (i >= 0) ? 7 : 4; }
9721 private static int ifGtzThen2Else9(int i) { return (i > 0) ? 2 : 9; }
9722 private static int ifLezThen8Else0(int i) { return (i <= 0) ? 8 : 0; }
Andreas Gampe39c8a992014-07-12 04:26:03 -07009723 private static int ifGtzThen8Else9(int i) { return (i > 0) ? 8 : 9; }
Vladimir Markoa1a70742014-03-03 10:28:05 +00009724
9725 private static int ifEqz(int src, int thn, int els) { return (src == 0) ? thn : els; }
9726 private static int ifNez(int src, int thn, int els) { return (src != 0) ? thn : els; }
9727 private static int ifLtz(int src, int thn, int els) { return (src < 0) ? thn : els; }
9728 private static int ifGez(int src, int thn, int els) { return (src >= 0) ? thn : els; }
9729 private static int ifGtz(int src, int thn, int els) { return (src > 0) ? thn : els; }
9730 private static int ifLez(int src, int thn, int els) { return (src <= 0) ? thn : els; }
9731
9732 public static void testIfCcz() {
9733 int[] results = new int[] {
9734 ifEqzThen0Else1(-1), 1,
9735 ifEqzThen0Else1(0), 0,
9736 ifEqzThen0Else1(1), 1,
9737 ifEqzThen0Else8(-1), 8,
9738 ifEqzThen0Else8(0), 0,
9739 ifEqzThen0Else8(1), 8,
9740 ifEqzThen1Else5(-1), 5,
9741 ifEqzThen1Else5(0), 1,
9742 ifEqzThen1Else5(1), 5,
9743 ifEqzThenMinus1Else3(-1), 3,
9744 ifEqzThenMinus1Else3(0), -1,
9745 ifEqzThenMinus1Else3(1), 3,
9746 ifEqzThen11Else23(-1), 23,
9747 ifEqzThen11Else23(0), 11,
9748 ifEqzThen11Else23(1), 23,
9749 ifEqzThen54321Else87654321(-1), 87654321,
9750 ifEqzThen54321Else87654321(0), 54321,
9751 ifEqzThen54321Else87654321(1), 87654321,
9752 ifNezThen0Else1(-1), 0,
9753 ifNezThen0Else1(0), 1,
9754 ifNezThen0Else1(1), 0,
9755 ifNezThen0Else8(-1), 0,
9756 ifNezThen0Else8(0), 8,
9757 ifNezThen0Else8(1), 0,
9758 ifNezThen1Else5(-1), 1,
9759 ifNezThen1Else5(0), 5,
9760 ifNezThen1Else5(1), 1,
9761 ifNezThenMinus1Else3(-1), -1,
9762 ifNezThenMinus1Else3(0), 3,
9763 ifNezThenMinus1Else3(1), -1,
9764 ifNezThen11Else23(-1), 11,
9765 ifNezThen11Else23(0), 23,
9766 ifNezThen11Else23(1), 11,
9767 ifNezThen54321Else87654321(-1), 54321,
9768 ifNezThen54321Else87654321(0), 87654321,
9769 ifNezThen54321Else87654321(1), 54321,
9770 ifLtzThen3Else5(-1), 3,
9771 ifLtzThen3Else5(0), 5,
9772 ifLtzThen3Else5(1), 5,
9773 ifGezThen7Else4(-1), 4,
9774 ifGezThen7Else4(0), 7,
9775 ifGezThen7Else4(1), 7,
9776 ifGtzThen2Else9(-1), 9,
9777 ifGtzThen2Else9(0), 9,
9778 ifGtzThen2Else9(1), 2,
9779 ifLezThen8Else0(-1), 8,
9780 ifLezThen8Else0(0), 8,
9781 ifLezThen8Else0(1), 0,
9782 ifEqz(-1, 101, 201), 201,
9783 ifEqz(0, 102, 202), 102,
9784 ifEqz(1, 103, 203), 203,
9785 ifNez(-1, 104, 204), 104,
9786 ifNez(0, 105, 205), 205,
9787 ifNez(1, 106, 206), 106,
9788 ifLtz(-1, 107, 207), 107,
9789 ifLtz(0, 108, 208), 208,
9790 ifLtz(1, 109, 209), 209,
9791 ifGez(-1, 110, 210), 210,
9792 ifGez(0, 111, 211), 111,
9793 ifGez(1, 112, 212), 112,
9794 ifGtz(-1, 113, 213), 213,
9795 ifGtz(0, 114, 214), 214,
9796 ifGtz(1, 115, 215), 115,
9797 ifLez(-1, 116, 216), 116,
9798 ifLez(0, 117, 217), 117,
9799 ifLez(1, 118, 218), 218,
Andreas Gampe39c8a992014-07-12 04:26:03 -07009800 ifGtzThen8Else9(0), 9,
9801 ifGtzThen8Else9(1), 8
Vladimir Markoa1a70742014-03-03 10:28:05 +00009802 };
9803
9804 boolean success = true;
9805 StringBuilder fails = new StringBuilder();
9806 for (int i = 0; i != results.length; i += 2) {
9807 if (results[i] != results[i + 1]) {
9808 success = false;
9809 fails.append("\n #" + (i / 2) + ": " + results[i] + " != " + results[i + 1]);
9810 }
9811 }
9812 if (success) {
9813 System.out.println("testIfCcz passes");
9814 } else {
9815 System.out.println("testIfCcz fails for" + fails.toString());
9816 }
9817 }
9818}
Chao-ying Fu3d325c62014-03-27 14:17:28 -07009819
9820class LiveFlags {
9821 private static void show_results(double a[], double b[], int trip) {
9822 if ((a[0]+a[1]+b[0]+b[1]) == 0) {
9823 System.out.println("LiveFlags passes trip " + trip);
9824 } else {
9825 System.out.println("LiveFlags fails trip " + trip);
9826 System.out.println("a[0] = " + a[0] + " a[1] = " + a[1]);
9827 System.out.println("b[0] = " + b[0] + " b[1] = " + b[1]);
9828 }
9829 }
9830 static void test()
9831 {
9832 final double A[] = new double[2];
9833 final double B[] = new double[2];
9834 final double C[] = new double[2];
9835 B[0] = B[1] = 0.0;
9836 A[0] = A[1] = 0.0;
9837 C[0] = C[1] = 0.0;
9838 for (int i = 3; i >= 1; i--) {
9839 if ( (i & 1) == 0) {
9840 continue;
9841 }
9842 if ( (i & 2) != 0 ) {
9843 B[1] = -B[1];
9844 }
9845 show_results(A, B, i);
9846 A[0] = C[0]; A[1] = C[1];
9847 }
9848 }
9849}
Vladimir Markof418f322014-07-09 14:45:36 +01009850
9851class B16177324Values {
9852 public static int values[] = { 42 };
9853}
9854
9855class B16177324ValuesKiller {
9856 public static int values[] = { 1234 };
9857 static {
9858 B16177324Values.values = null;
9859 }
9860}