porffor 0.2.0-f2bbe1f → 0.2.0-fde989a

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/tmp.c ADDED
@@ -0,0 +1,661 @@
1
+ typedef unsigned char i8;
2
+ typedef unsigned short i16;
3
+ typedef long i32;
4
+ typedef unsigned long u32;
5
+ typedef long long i64;
6
+ typedef unsigned long long u64;
7
+ typedef float f32;
8
+ typedef double f64;
9
+
10
+ f64 NAN = 0e+0/0e+0;
11
+
12
+ struct ReturnValue {
13
+ f64 value;
14
+ i32 type;
15
+ };
16
+
17
+ #ifdef _WIN32
18
+ #include <windows.h>
19
+ #else
20
+ #include <time.h>
21
+ #endif
22
+
23
+ #include <string.h>
24
+ #include <stdlib.h>
25
+ #include <stdio.h>
26
+
27
+ char _memory[393216];
28
+
29
+ void i32_store(i32 align, i32 offset, i32 pointer, i32 value) {
30
+ memcpy(_memory + offset + pointer, &value, sizeof(value));
31
+ }
32
+
33
+ i32 i32_load(i32 align, i32 offset, i32 pointer) {
34
+ i32 out;
35
+ memcpy(&out, _memory + offset + pointer, sizeof(out));
36
+ return out;
37
+ }
38
+
39
+ void f64_store(i32 align, i32 offset, i32 pointer, f64 value) {
40
+ memcpy(_memory + offset + pointer, &value, sizeof(value));
41
+ }
42
+
43
+ i32 i32_load8_u(i32 align, i32 offset, i32 pointer) {
44
+ i8 out;
45
+ memcpy(&out, _memory + offset + pointer, sizeof(out));
46
+ return out;
47
+ }
48
+
49
+ f64 f64_load(i32 align, i32 offset, i32 pointer) {
50
+ f64 out;
51
+ memcpy(&out, _memory + offset + pointer, sizeof(out));
52
+ return out;
53
+ }
54
+
55
+ void i32_store8(i32 align, i32 offset, i32 pointer, i8 value) {
56
+ memcpy(_memory + offset + pointer, &value, sizeof(value));
57
+ }
58
+
59
+
60
+ f64 t = 0;
61
+ i32 tdtype = 0;
62
+
63
+ struct ReturnValue interpret(f64 str, i32 strdtype) {
64
+ f64 ptr = 0;
65
+ i32 ptrdtype = 0;
66
+ f64 memory = 0;
67
+ i32 memorydtype = 0;
68
+ i32 __proto_length_cache = 0;
69
+ i32 __proto_pointer_cache = 0;
70
+ f64 __fill_tmp = 0;
71
+ i32 dlast_type = 0;
72
+ i32 dtypeswitch_tmp = 0;
73
+ f64 starts = 0;
74
+ i32 startsdtype = 0;
75
+ f64 i = 0;
76
+ i32 idtype = 0;
77
+ f64 c = 0;
78
+ i32 cdtype = 0;
79
+ i32 __charCodeAt_tmp = 0;
80
+ f64 __tmpop_left = 0;
81
+ f64 __tmpop_right = 0;
82
+ i32 compare_left_pointer = 0;
83
+ i32 compare_left_length = 0;
84
+ i32 compare_right_pointer = 0;
85
+ i32 compare_right_length = 0;
86
+ i32 compare_index = 0;
87
+ i32 compare_index_end = 0;
88
+ f64 __member_setter_val_tmp = 0;
89
+ i32 __member_setter_ptr_tmp = 0;
90
+ f64 elogicinner_tmp = 0;
91
+ f64 depth = 0;
92
+ i32 depthdtype = 0;
93
+ f64 c2 = 0;
94
+ i32 c2dtype = 0;
95
+
96
+ ptr = 0e+0;
97
+ ptrdtype = 0;
98
+ i32_store(1, 0, 0, 8000);
99
+ memory = 0e+0;
100
+ memorydtype = 16;
101
+ __proto_pointer_cache = (u32)memory;
102
+ __proto_length_cache = i32_load(1, 0, __proto_pointer_cache);
103
+ dtypeswitch_tmp = memorydtype;
104
+ // block f64
105
+ f64 _r0;
106
+ // if
107
+ if (dtypeswitch_tmp == 16) {
108
+ // block f64
109
+ f64 _r2;
110
+ __fill_tmp = 0e+0;
111
+ __proto_length_cache = (__proto_length_cache - 1) * 8;
112
+ // if
113
+ if (__proto_length_cache < 0) {
114
+ _r2 = (f64)__proto_pointer_cache;
115
+ goto j2;
116
+ }
117
+ // end
118
+ j3:;
119
+ // loop
120
+ j4:;
121
+ f64_store(2, 4, __proto_length_cache + __proto_pointer_cache, __fill_tmp);
122
+ __proto_length_cache = __proto_length_cache - 8;
123
+ if (__proto_length_cache >= 0) {
124
+ goto j4;
125
+ }
126
+ // end
127
+ dlast_type = 16;
128
+ _r2 = (f64)__proto_pointer_cache;
129
+ // end
130
+ j2:;
131
+ _r0 = _r2;
132
+ goto j0;
133
+ }
134
+ // end
135
+ j1:;
136
+ printf("Uncaught TypeError: 'fill' proto func tried to be called on a type without an impl\n");
137
+ exit(1);
138
+ // end
139
+ j0:;
140
+ i32_store(1, 131072, 0, 0);
141
+ starts = 1.31072e+5;
142
+ startsdtype = 16;
143
+ i = 0e+0;
144
+ idtype = 0;
145
+ // loop
146
+ j5:;
147
+ // if
148
+ if (i < (f64)(i32_load(1, 0, (u32)str))) {
149
+ // block
150
+ __proto_pointer_cache = (u32)str;
151
+ __proto_length_cache = i32_load(1, 0, __proto_pointer_cache);
152
+ dtypeswitch_tmp = strdtype;
153
+ // block f64
154
+ f64 _r8;
155
+ // if
156
+ if (dtypeswitch_tmp == 18) {
157
+ // block f64
158
+ f64 _r10;
159
+ __charCodeAt_tmp = (i32)i;
160
+ // if
161
+ if (((__charCodeAt_tmp < 0) | (__charCodeAt_tmp >= __proto_length_cache)) != 0) {
162
+ _r10 = NAN;
163
+ goto j10;
164
+ }
165
+ // end
166
+ j11:;
167
+ dlast_type = 0;
168
+ _r10 = (f64)i32_load8_u(0, 4, __charCodeAt_tmp + __proto_pointer_cache);
169
+ // end
170
+ j10:;
171
+ _r8 = _r10;
172
+ goto j8;
173
+ }
174
+ // end
175
+ j9:;
176
+ printf("Uncaught TypeError: 'charCodeAt' proto func tried to be called on a type without an impl\n");
177
+ exit(1);
178
+ // end
179
+ j8:;
180
+ c = _r8;
181
+ cdtype = 0;
182
+ // if
183
+ if (c == 6.2e+1) {
184
+ ptr = ptr + 1e+0;
185
+ }
186
+ // end
187
+ j12:;
188
+ // if
189
+ if (c == 6e+1) {
190
+ ptr = ptr - 1e+0;
191
+ }
192
+ // end
193
+ j13:;
194
+ // if
195
+ if (c == 4.3e+1) {
196
+ dtypeswitch_tmp = memorydtype;
197
+ // block
198
+ // if
199
+ if (dtypeswitch_tmp == 16) {
200
+ __member_setter_ptr_tmp = (u32)(ptr) * 8;
201
+ __member_setter_val_tmp = f64_load(2, 4, __member_setter_ptr_tmp) + 1e+0;
202
+ f64_store(2, 4, __member_setter_ptr_tmp, __member_setter_val_tmp);
203
+ goto j15;
204
+ }
205
+ // end
206
+ j16:;
207
+ printf("Uncaught TypeError: Cannot assign member with non-array\n");
208
+ exit(1);
209
+ // end
210
+ j15:;
211
+ }
212
+ // end
213
+ j14:;
214
+ // if
215
+ if (c == 4.5e+1) {
216
+ dtypeswitch_tmp = memorydtype;
217
+ // block
218
+ // if
219
+ if (dtypeswitch_tmp == 16) {
220
+ __member_setter_ptr_tmp = (u32)(ptr) * 8;
221
+ __member_setter_val_tmp = f64_load(2, 4, __member_setter_ptr_tmp) - 1e+0;
222
+ f64_store(2, 4, __member_setter_ptr_tmp, __member_setter_val_tmp);
223
+ goto j18;
224
+ }
225
+ // end
226
+ j19:;
227
+ printf("Uncaught TypeError: Cannot assign member with non-array\n");
228
+ exit(1);
229
+ // end
230
+ j18:;
231
+ }
232
+ // end
233
+ j17:;
234
+ // if
235
+ if (c == 4.6e+1) {
236
+ dtypeswitch_tmp = memorydtype;
237
+ // block f64
238
+ f64 _r21;
239
+ // if
240
+ if (dtypeswitch_tmp == 16) {
241
+ dlast_type = 0;
242
+ _r21 = f64_load(2, 4, (u32)(ptr) * 8);
243
+ goto j21;
244
+ }
245
+ // end
246
+ j22:;
247
+ // if
248
+ if (dtypeswitch_tmp == 18) {
249
+ i32_store8(0, 3, 0, i32_load8_u(0, 4, (u32)ptr));
250
+ dlast_type = 18;
251
+ _r21 = -1e+0;
252
+ goto j21;
253
+ }
254
+ // end
255
+ j23:;
256
+ printf("Uncaught TypeError: Member expression is not supported for non-string non-array yet\n");
257
+ exit(1);
258
+ // end
259
+ j21:;
260
+ printf("%c", (int)(_r21));
261
+ }
262
+ // end
263
+ j20:;
264
+ // if
265
+ if (c == 9.1e+1) {
266
+ __proto_pointer_cache = (u32)starts;
267
+ __proto_length_cache = i32_load(1, 0, __proto_pointer_cache);
268
+ dtypeswitch_tmp = startsdtype;
269
+ // block
270
+ // if
271
+ if (dtypeswitch_tmp == 16) {
272
+ f64_store(2, 4, (__proto_length_cache * 8) + __proto_pointer_cache, i);
273
+ i32_store(1, 0, __proto_pointer_cache, __proto_length_cache + 1);
274
+ dlast_type = 0;
275
+ goto j25;
276
+ }
277
+ // end
278
+ j26:;
279
+ printf("Uncaught TypeError: 'push' proto func tried to be called on a type without an impl\n");
280
+ exit(1);
281
+ // end
282
+ j25:;
283
+ dtypeswitch_tmp = memorydtype;
284
+ // block f64
285
+ f64 _r27;
286
+ // if
287
+ if (dtypeswitch_tmp == 16) {
288
+ dlast_type = 0;
289
+ _r27 = f64_load(2, 4, (u32)(ptr) * 8);
290
+ goto j27;
291
+ }
292
+ // end
293
+ j28:;
294
+ // if
295
+ if (dtypeswitch_tmp == 18) {
296
+ i32_store8(0, 3, 0, i32_load8_u(0, 4, (u32)ptr));
297
+ dlast_type = 18;
298
+ _r27 = -1e+0;
299
+ goto j27;
300
+ }
301
+ // end
302
+ j29:;
303
+ printf("Uncaught TypeError: Member expression is not supported for non-string non-array yet\n");
304
+ exit(1);
305
+ // end
306
+ j27:;
307
+ elogicinner_tmp = _r27;
308
+ dtypeswitch_tmp = dlast_type;
309
+ // block f64
310
+ f64 _r30;
311
+ // if
312
+ if (dtypeswitch_tmp == 16) {
313
+ _r30 = 0e+0;
314
+ goto j30;
315
+ }
316
+ // end
317
+ j31:;
318
+ // if
319
+ if (dtypeswitch_tmp == 18) {
320
+ _r30 = (f64)(i32_load(1, 0, (u32)elogicinner_tmp)) == 0;
321
+ goto j30;
322
+ }
323
+ // end
324
+ j32:;
325
+ _r30 = (f64)elogicinner_tmp == 0e+0;
326
+ // end
327
+ j30:;
328
+ elogicinner_tmp = _r30;
329
+ // if
330
+ if (((u32)elogicinner_tmp) != 0) {
331
+ depth = 1e+0;
332
+ depthdtype = 0;
333
+ // loop
334
+ j34:;
335
+ // if
336
+ if (depth != 0e+0) {
337
+ __proto_pointer_cache = (u32)str;
338
+ __proto_length_cache = i32_load(1, 0, __proto_pointer_cache);
339
+ dtypeswitch_tmp = strdtype;
340
+ // block f64
341
+ f64 _r36;
342
+ // if
343
+ if (dtypeswitch_tmp == 18) {
344
+ // block f64
345
+ f64 _r38;
346
+ i = i + 1e+0;
347
+ __charCodeAt_tmp = (i32)i;
348
+ // if
349
+ if (((__charCodeAt_tmp < 0) | (__charCodeAt_tmp >= __proto_length_cache)) != 0) {
350
+ _r38 = NAN;
351
+ goto j38;
352
+ }
353
+ // end
354
+ j39:;
355
+ dlast_type = 0;
356
+ _r38 = (f64)i32_load8_u(0, 4, __charCodeAt_tmp + __proto_pointer_cache);
357
+ // end
358
+ j38:;
359
+ _r36 = _r38;
360
+ goto j36;
361
+ }
362
+ // end
363
+ j37:;
364
+ printf("Uncaught TypeError: 'charCodeAt' proto func tried to be called on a type without an impl\n");
365
+ exit(1);
366
+ // end
367
+ j36:;
368
+ c2 = _r36;
369
+ c2dtype = 0;
370
+ // if
371
+ if (c2 == 9.1e+1) {
372
+ depth = depth + 1e+0;
373
+ }
374
+ // end
375
+ j40:;
376
+ // if
377
+ if (c2 == 9.3e+1) {
378
+ depth = depth - 1e+0;
379
+ }
380
+ // end
381
+ j41:;
382
+ goto j34;
383
+ }
384
+ // end
385
+ j35:;
386
+ // end
387
+ i = i - 1e+0;
388
+ goto j7;
389
+ }
390
+ // end
391
+ j33:;
392
+ }
393
+ // end
394
+ j24:;
395
+ // if
396
+ if (c == 9.3e+1) {
397
+ dtypeswitch_tmp = memorydtype;
398
+ // block f64
399
+ f64 _r43;
400
+ // if
401
+ if (dtypeswitch_tmp == 16) {
402
+ dlast_type = 0;
403
+ _r43 = f64_load(2, 4, (u32)(ptr) * 8);
404
+ goto j43;
405
+ }
406
+ // end
407
+ j44:;
408
+ // if
409
+ if (dtypeswitch_tmp == 18) {
410
+ i32_store8(0, 3, 0, i32_load8_u(0, 4, (u32)ptr));
411
+ dlast_type = 18;
412
+ _r43 = -1e+0;
413
+ goto j43;
414
+ }
415
+ // end
416
+ j45:;
417
+ printf("Uncaught TypeError: Member expression is not supported for non-string non-array yet\n");
418
+ exit(1);
419
+ // end
420
+ j43:;
421
+ elogicinner_tmp = _r43;
422
+ dtypeswitch_tmp = dlast_type;
423
+ // block f64
424
+ f64 _r46;
425
+ // if
426
+ if (dtypeswitch_tmp == 16) {
427
+ _r46 = 0e+0;
428
+ goto j46;
429
+ }
430
+ // end
431
+ j47:;
432
+ // if
433
+ if (dtypeswitch_tmp == 18) {
434
+ _r46 = (f64)(i32_load(1, 0, (u32)elogicinner_tmp)) == 0;
435
+ goto j46;
436
+ }
437
+ // end
438
+ j48:;
439
+ _r46 = (f64)elogicinner_tmp == 0e+0;
440
+ // end
441
+ j46:;
442
+ elogicinner_tmp = _r46;
443
+ // if
444
+ if (((u32)elogicinner_tmp) != 0) {
445
+ __proto_pointer_cache = (u32)starts;
446
+ __proto_length_cache = i32_load(1, 0, __proto_pointer_cache);
447
+ dtypeswitch_tmp = startsdtype;
448
+ // block
449
+ // if
450
+ if (dtypeswitch_tmp == 16) {
451
+ // block
452
+ // if
453
+ if ((__proto_length_cache) == 0) {
454
+ goto j52;
455
+ }
456
+ // end
457
+ j53:;
458
+ i32_store(1, 0, __proto_pointer_cache, __proto_length_cache - 1);
459
+ dlast_type = 0;
460
+ // end
461
+ j52:;
462
+ goto j50;
463
+ }
464
+ // end
465
+ j51:;
466
+ printf("Uncaught TypeError: 'pop' proto func tried to be called on a type without an impl\n");
467
+ exit(1);
468
+ // end
469
+ j50:;
470
+ goto j7;
471
+ }
472
+ // end
473
+ j49:;
474
+ dtypeswitch_tmp = startsdtype;
475
+ // block f64
476
+ f64 _r54;
477
+ // if
478
+ if (dtypeswitch_tmp == 16) {
479
+ dlast_type = 0;
480
+ _r54 = f64_load(2, 131076, (u32)(((f64)(i32_load(1, 131072, 0)) - 1e+0)) * 8);
481
+ goto j54;
482
+ }
483
+ // end
484
+ j55:;
485
+ // if
486
+ if (dtypeswitch_tmp == 18) {
487
+ i32_store8(0, 3, 0, i32_load8_u(0, 131076, (u32)((f64)(i32_load(1, 131072, 0)) - 1e+0)));
488
+ dlast_type = 18;
489
+ _r54 = -1e+0;
490
+ goto j54;
491
+ }
492
+ // end
493
+ j56:;
494
+ printf("Uncaught TypeError: Member expression is not supported for non-string non-array yet\n");
495
+ exit(1);
496
+ // end
497
+ j54:;
498
+ i = _r54;
499
+ idtype = dlast_type;
500
+ }
501
+ // end
502
+ j42:;
503
+ // end
504
+ j7:;
505
+ i = i + 1e+0;
506
+ goto j5;
507
+ }
508
+ // end
509
+ j6:;
510
+ // end
511
+ return (struct ReturnValue){ 3, 0e+0 };
512
+ }
513
+
514
+ f64 inline __performance_now() {
515
+ double _time_out;
516
+ #ifdef _WIN32
517
+ LARGE_INTEGER _time_freq, _time_t;
518
+ QueryPerformanceFrequency(&_time_freq);
519
+ QueryPerformanceCounter(&_time_t);
520
+ _time_out = ((double)_time_t.QuadPart / _time_freq.QuadPart) * 1000.;
521
+ #else
522
+ struct timespec _time;
523
+ clock_gettime(CLOCK_MONOTONIC, &_time);
524
+ _time_out = _time.tv_nsec / 1000000. + _time.tv_sec * 1000.;
525
+ #endif
526
+ return _time_out;
527
+ }
528
+
529
+ void inline __console_log(f64 x, i32 y) {
530
+ i32 a = 0;
531
+ i32 b = 0;
532
+ i32 dtypeswitch_tmp = 0;
533
+
534
+ dtypeswitch_tmp = y;
535
+ // block
536
+ // if
537
+ if (dtypeswitch_tmp == 0) {
538
+ printf("%g\n", x);
539
+ goto j57;
540
+ }
541
+ // end
542
+ j58:;
543
+ // if
544
+ if (dtypeswitch_tmp == 1) {
545
+ // if
546
+ if (((u32)x) != 0) {
547
+ printf("%c", (int)(1.16e+2));
548
+ printf("%c", (int)(1.14e+2));
549
+ printf("%c", (int)(1.17e+2));
550
+ printf("%c", (int)(1.01e+2));
551
+ } else {
552
+ printf("%c", (int)(1.02e+2));
553
+ printf("%c", (int)(9.7e+1));
554
+ printf("%c", (int)(1.08e+2));
555
+ printf("%c", (int)(1.15e+2));
556
+ printf("%c", (int)(1.01e+2));
557
+ }
558
+ // end
559
+ j60:;
560
+ goto j57;
561
+ }
562
+ // end
563
+ j59:;
564
+ // if
565
+ if (dtypeswitch_tmp == 3) {
566
+ printf("%c", (int)(1.17e+2));
567
+ printf("%c", (int)(1.1e+2));
568
+ printf("%c", (int)(1e+2));
569
+ printf("%c", (int)(1.01e+2));
570
+ printf("%c", (int)(1.02e+2));
571
+ printf("%c", (int)(1.05e+2));
572
+ printf("%c", (int)(1.1e+2));
573
+ printf("%c", (int)(1.01e+2));
574
+ printf("%c", (int)(1e+2));
575
+ goto j57;
576
+ }
577
+ // end
578
+ j61:;
579
+ // if
580
+ if (dtypeswitch_tmp == 4) {
581
+ // if
582
+ if (((u32)x) != 0) {
583
+ printf("%c", (int)(1.23e+2));
584
+ printf("%c", (int)(1.25e+2));
585
+ } else {
586
+ printf("%c", (int)(1.1e+2));
587
+ printf("%c", (int)(1.17e+2));
588
+ printf("%c", (int)(1.08e+2));
589
+ printf("%c", (int)(1.08e+2));
590
+ }
591
+ // end
592
+ j63:;
593
+ goto j57;
594
+ }
595
+ // end
596
+ j62:;
597
+ // if
598
+ if (dtypeswitch_tmp == 5) {
599
+ printf("%c", (int)(1.02e+2));
600
+ printf("%c", (int)(1.17e+2));
601
+ printf("%c", (int)(1.1e+2));
602
+ printf("%c", (int)(9.9e+1));
603
+ printf("%c", (int)(1.16e+2));
604
+ printf("%c", (int)(1.05e+2));
605
+ printf("%c", (int)(1.11e+2));
606
+ printf("%c", (int)(1.1e+2));
607
+ printf("%c", (int)(3.2e+1));
608
+ printf("%c", (int)(4e+1));
609
+ printf("%c", (int)(4.1e+1));
610
+ printf("%c", (int)(3.2e+1));
611
+ printf("%c", (int)(1.23e+2));
612
+ printf("%c", (int)(1.25e+2));
613
+ goto j57;
614
+ }
615
+ // end
616
+ j64:;
617
+ // if
618
+ if (dtypeswitch_tmp == 16) {
619
+ printf("%c", (int)(9.1e+1));
620
+ printf("%c", (int)(3.2e+1));
621
+ a = (u32)x;
622
+ b = (i32_load(1, 0, a) * 8) + a;
623
+ // loop
624
+ j66:;
625
+ printf("%g\n", f64_load(0, 4, a));
626
+ a = a + 8;
627
+ // if
628
+ if (a != b) {
629
+ printf("%c", (int)(4.4e+1));
630
+ printf("%c", (int)(3.2e+1));
631
+ goto j66;
632
+ }
633
+ // end
634
+ j67:;
635
+ // end
636
+ printf("%c", (int)(3.2e+1));
637
+ printf("%c", (int)(9.3e+1));
638
+ goto j57;
639
+ }
640
+ // end
641
+ j65:;
642
+ printf("%g\n", x);
643
+ // end
644
+ j57:;
645
+ printf("%c", (int)(1e+1));
646
+ }
647
+
648
+ int main() {
649
+ memcpy(_memory + 0, (char[]){0,0,0,0}, 4);
650
+ memcpy(_memory + 262144, (char[]){187,217,0,0,43,43,43,43,43,43,43,43,43,43,43,43,43,91,45,62,43,43,62,62,62,43,43,43,43,43,62,43,43,62,43,60,60,60,60,60,60,93,62,62,62,62,62,43,43,43,43,43,43,62,45,45,45,62,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,43,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,62,62,62,62,62,62,62,91,45,93,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,91,45,93,43,60,60,60,60,60,60,60,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,62,62,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,91,62,62,62,62,62,62,91,62,62,62,62,62,62,62,91,45,93,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,91,45,93,43,60,60,60,60,60,60,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,62,43,60,60,60,60,60,60,43,43,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,91,45,93,62,62,62,62,62,62,91,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,60,60,60,60,60,91,45,62,62,62,62,62,62,43,60,60,43,60,60,60,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,43,60,60,60,43,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,43,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,43,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,60,91,45,62,62,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,62,62,43,60,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,93,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,91,45,60,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,60,91,45,62,62,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,62,43,60,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,60,93,62,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,91,45,60,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,91,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,45,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,43,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,91,45,60,60,60,45,62,62,62,93,43,60,60,60,91,45,62,62,62,45,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,43,60,60,60,60,91,45,62,62,62,62,45,60,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,91,45,62,43,62,62,62,45,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,91,45,93,60,60,93,62,62,91,60,60,60,60,60,60,60,43,60,91,45,60,43,62,62,62,62,43,60,60,91,45,93,93,62,91,45,60,60,91,45,62,43,62,62,62,45,60,60,60,60,93,62,62,62,93,62,62,62,62,62,62,62,62,62,62,62,62,62,91,62,62,91,45,93,62,91,45,93,62,91,45,93,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,62,62,62,62,62,62,91,62,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,91,45,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,43,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,60,91,45,62,62,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,62,43,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,93,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,91,45,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,93,60,60,91,45,62,62,43,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,60,91,45,62,62,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,62,62,43,60,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,93,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,91,45,60,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,91,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,91,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,45,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,60,60,60,60,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,91,45,93,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,43,62,91,45,60,45,60,60,60,60,43,62,62,62,62,62,93,62,91,45,60,60,60,60,60,60,91,45,62,62,62,62,62,43,60,43,43,60,60,60,60,93,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,45,62,43,62,93,60,91,45,62,43,60,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,93,62,62,62,62,62,62,91,45,93,60,60,60,60,60,60,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,43,60,60,60,60,91,45,62,62,62,62,45,62,62,62,62,62,91,62,62,91,45,60,60,45,62,62,93,43,60,60,91,45,62,62,45,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,62,91,45,60,60,60,45,62,62,62,93,43,60,60,60,91,45,62,62,62,45,60,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,62,62,62,62,62,91,62,43,62,62,91,45,60,60,45,62,62,93,60,60,91,45,62,62,43,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,43,60,91,62,91,45,62,62,62,62,62,43,60,60,60,60,91,45,62,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,91,45,62,62,62,43,60,60,60,93,60,93,62,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,60,93,62,91,45,62,62,62,62,43,60,60,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,93,62,91,45,62,62,62,43,60,60,60,93,60,60,60,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,60,60,60,60,93,62,62,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,62,62,62,62,62,62,91,62,43,62,91,45,60,45,62,93,60,91,45,62,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,43,60,91,62,91,45,62,62,62,62,62,43,60,60,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,91,45,62,62,62,62,43,60,60,60,60,93,62,93,60,91,45,62,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,93,60,93,62,62,91,45,62,62,62,43,60,60,60,60,91,45,62,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,93,62,93,60,91,45,62,62,62,62,43,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,43,60,60,60,60,60,60,93,93,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,62,43,60,60,60,60,91,45,62,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,91,45,62,62,62,43,60,60,60,93,60,93,62,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,60,93,62,91,45,62,62,62,62,43,60,60,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,93,62,91,45,62,62,62,43,60,60,60,93,60,60,60,60,60,60,60,60,60,60,60,60,93,93,62,91,45,93,62,62,91,45,93,62,91,45,93,62,62,62,62,62,91,62,62,91,45,93,62,91,45,93,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,43,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,60,91,45,62,62,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,62,43,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,93,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,91,45,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,93,60,60,91,45,62,62,43,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,91,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,91,45,93,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,45,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,62,62,91,45,60,60,60,45,62,62,62,93,43,60,60,60,91,45,62,62,62,45,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,43,60,60,60,60,91,45,62,62,62,62,45,60,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,62,62,62,62,62,62,91,62,43,62,62,62,91,45,60,60,60,45,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,43,60,91,62,91,45,62,43,62,91,45,60,45,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,91,45,60,60,43,62,62,93,60,93,62,91,45,60,60,45,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,93,60,60,60,93,62,62,91,45,60,43,62,62,91,45,60,60,45,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,93,60,93,62,91,45,60,60,43,62,62,93,60,60,60,60,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,62,62,62,62,62,91,62,43,62,62,91,45,60,60,45,62,62,93,60,60,91,45,62,62,43,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,43,60,91,62,91,45,62,43,62,62,91,45,60,60,45,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,91,45,60,43,62,93,62,93,60,91,45,60,45,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,60,93,62,62,62,91,45,60,60,43,62,91,45,60,45,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,62,93,60,91,45,60,43,62,93,60,60,60,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,43,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,91,45,93,62,91,45,93,62,91,45,93,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,62,91,45,93,62,62,62,62,62,91,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,60,60,60,60,60,91,45,62,62,62,62,62,62,43,60,60,60,60,43,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,43,62,91,45,60,45,60,60,60,60,43,62,62,62,62,62,93,62,62,91,45,60,60,60,60,60,60,60,91,45,62,62,62,62,62,43,60,43,43,60,60,60,60,93,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,45,62,43,62,62,93,60,60,91,45,62,62,43,60,60,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,93,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,43,60,60,60,60,91,45,62,62,62,62,45,62,62,62,62,62,91,62,62,62,91,45,60,60,60,45,62,62,62,93,43,60,60,60,91,45,62,62,62,45,60,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,91,45,60,60,45,62,62,93,43,60,60,91,45,62,62,45,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,62,62,62,62,62,62,91,62,43,62,91,45,60,45,62,93,60,91,45,62,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,43,60,91,62,91,45,62,62,62,62,43,60,60,91,45,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,91,45,62,62,62,43,60,60,60,93,62,93,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,93,60,93,62,62,91,45,62,62,43,60,60,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,93,62,93,60,91,45,62,62,62,43,60,60,60,93,60,60,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,91,45,93,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,43,60,60,60,60,60,93,93,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,62,62,62,62,62,91,62,43,62,62,91,45,60,60,45,62,62,93,60,60,91,45,62,62,43,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,43,60,91,62,91,45,62,62,62,62,43,60,60,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,91,45,62,62,43,60,60,93,60,93,62,91,45,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,60,93,62,91,45,62,62,62,43,60,60,91,45,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,93,62,91,45,62,62,43,60,60,93,60,60,60,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,91,45,93,60,60,60,60,93,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,62,91,45,93,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,43,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,43,60,60,60,91,45,62,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,91,45,62,62,43,60,60,93,60,93,62,91,45,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,60,93,62,91,45,62,62,62,43,60,60,91,45,62,62,45,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,93,60,93,62,91,45,62,62,43,60,60,93,60,60,60,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,91,45,93,62,91,45,93,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,62,91,45,93,62,62,62,62,62,91,62,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,43,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,43,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,60,91,45,62,62,91,45,60,60,43,62,62,93,60,60,91,45,62,62,43,62,62,43,60,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,93,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,91,45,60,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,45,62,62,62,62,62,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,60,91,45,62,62,62,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,62,43,60,60,60,60,93,43,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,60,60,60,60,60,60,60,60,60,93,62,62,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,60,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,91,45,60,60,60,60,43,62,91,60,45,62,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,91,45,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,43,43,43,43,43,43,43,43,43,43,43,43,43,43,43,91,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,45,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,45,93,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,43,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,91,45,60,60,60,45,62,62,62,93,43,60,60,60,91,45,62,62,62,45,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,43,60,60,60,60,91,45,62,62,62,62,45,60,91,45,60,60,60,43,62,62,62,93,60,60,60,91,45,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,45,62,62,91,45,60,60,60,60,43,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,91,45,93,60,60,93,62,62,93,60,60,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,43,60,60,60,60,91,45,62,62,62,62,45,60,60,60,60,60,60,46,62,62,93,62,62,62,62,91,45,60,60,60,60,60,60,60,46,62,62,62,62,62,62,62,93,60,60,60,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,62,62,91,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,91,45,93,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,91,45,93,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,43,43,43,43,43,43,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,43,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,91,45,93,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,60,60,60,60,60,91,45,62,62,62,62,62,62,43,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,91,45,93,43,62,62,62,93,60,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,62,62,91,62,43,62,62,62,62,91,45,60,60,60,60,45,62,62,62,62,93,60,60,60,60,91,45,62,62,62,62,43,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,43,60,60,60,60,60,60,60,91,62,62,62,62,62,91,45,62,62,43,60,60,93,60,60,60,60,60,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,91,60,45,62,45,60,60,60,43,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,62,62,62,93,60,60,60,60,60,60,91,45,62,62,62,62,62,62,43,60,60,60,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,45,60,60,60,60,91,45,93,43,60,60,60,93,43,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,45,62,62,62,62,62,62,62,93,43,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,45,62,62,91,62,62,62,62,62,91,45,62,62,43,60,60,93,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,91,60,45,62,45,60,60,60,43,62,62,62,93,60,91,45,62,43,60,93,62,62,62,62,62,62,62,93,60,60,60,60,60,60,91,45,62,62,62,62,62,62,43,60,60,60,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,43,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,91,45,60,60,60,60,60,45,62,62,62,62,62,93,43,60,60,60,60,60,91,45,62,62,62,62,62,45,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,45,62,62,62,62,62,62,62,93,43,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,45,60,60,91,45,60,60,60,60,60,43,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,60,60,60,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,45,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,93,60,60,60,60,46,62,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,91,45,93,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,43,43,43,43,43,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,43,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,62,43,91,45,93,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,91,45,93,43,62,62,93,60,60,60,60,60,60,60,60,60,60,93,93,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,62,43,62,91,62,43,62,62,62,62,62,91,45,60,60,60,60,60,45,62,62,62,62,62,93,60,60,60,60,60,91,45,62,62,62,62,62,43,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,43,60,60,60,60,60,60,60,60,91,62,62,62,62,62,62,91,45,62,62,43,60,60,93,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,60,43,62,91,60,45,62,45,60,60,43,62,62,93,60,91,45,62,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,45,60,60,60,60,60,91,45,93,43,60,60,60,93,43,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,60,45,62,62,62,62,62,62,62,62,93,43,60,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,62,45,62,91,62,62,62,62,62,62,91,45,62,62,43,60,60,93,62,62,62,93,60,60,60,60,60,60,60,60,60,91,62,91,45,93,60,45,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,60,43,62,91,60,45,62,45,60,60,43,62,62,93,60,91,45,62,43,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,93,60,43,60,60,60,60,60,60,60,60,60,93,62,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,43,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,91,62,62,62,62,62,62,91,45,60,60,60,60,60,60,45,62,62,62,62,62,62,93,43,60,60,60,60,60,60,91,45,62,62,62,62,62,62,45,62,62,91,45,60,60,60,60,60,60,60,60,43,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,43,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,43,60,93,93,43,62,62,62,62,62,62,62,62,91,45,60,60,60,60,60,60,60,60,45,62,62,62,62,62,62,62,62,93,43,60,60,60,60,60,60,60,60,91,45,62,62,62,62,62,62,62,62,45,60,60,91,45,60,60,60,60,60,60,43,62,62,62,62,62,62,93,60,60,60,60,60,60,91,45,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,91,45,93,43,62,62,62,62,62,62,91,62,62,62,62,62,62,62,62,62,93,62,91,45,93,43,60,93,93,43,62,91,45,60,91,62,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,93,60,60,60,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,62,62,62,62,91,45,93,60,60,60,43,43,43,43,43,91,45,91,45,62,62,62,62,62,62,62,62,62,43,60,60,60,60,60,60,60,60,60,93,62,62,62,62,62,62,62,62,62,93,62,62,62,62,62,45,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,62,45,60,60,60,60,60,60,91,60,60,60,60,60,60,60,60,60,93,93,62,62,62,93}, 11455);
651
+
652
+ i32 dlast_type = 0;
653
+
654
+ t = __performance_now();
655
+ tdtype = 0;
656
+ const struct ReturnValue _ = interpret(2.62144e+5, 18);
657
+ printf("%c", (int)(1e+1));
658
+ __console_log(__performance_now() - t, 0);
659
+
660
+ return 0;
661
+ }