BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • XTZ/CTez Plenty Network Stable Swap
Delegatable
operations (764K)Storage Code Interact Tokens Fork Views Statistics Details
Latest
​x
1004
 
1
{ parameter (or
2
              (or
3
                (or (address %ChangeAdmin)
4
                    (or (option %ChangeBakerAddress key_hash) (unit %ChangeLockState)))
5
                (or (unit %ChangeState)
6
                    (or (address %ChangeSystem)
7
                        (pair %add_liquidity (nat %maxCashDeposited)
8
                                             (pair (nat %minLqtMinted) (address %owner))))))
9
              (or
10
                (or
11
                  (pair %ctez_to_tez (nat %cashSold)
12
                                     (pair (nat %minTezBought) (address %recipient)))
13
                  (or (nat %ctez_to_tez_callback) (unit %default)))
14
                (or
15
                  (or (pair %forwardFee (nat %epoch) (address %feeDistributor))
16
                      (pair %remove_liquidity (nat %lqtBurned)
17
                                              (pair (nat %minCashWithdrawn)
18
                                                    (nat %minTezWithdrawn))))
19
                  (or (pair %tez_to_ctez (nat %minCashBought) (address %recipient))
20
                      (nat %tez_to_ctez_callback))))) ;
21
  storage (pair
22
            (pair
23
              (pair (pair (bool %Locked) (address %admin))
24
                    (pair (address %ctezAddress) (nat %ctezFee)))
25
              (pair (pair (nat %ctezPool) (address %ctez_admin))
26
                    (pair (nat %lpFee) (pair (address %lqtAddress) (nat %lqtTotal)))))
27
            (pair
28
              (pair (pair (option %minAmount nat) (bool %paused))
29
                    (pair (option %recipient address) (option %sender address)))
30
              (pair (pair (bool %state) (nat %tezPool))
31
                    (pair (option %tradeAmount nat)
32
                          (pair (option %voterContract address) (nat %xtzFee)))))) ;
33
  code { LAMBDA
34
           nat
35
           nat
36
           { DUP ;
37
             PUSH nat 0 ;
38
             SWAP ;
39
             COMPARE ;
40
             GE ;
41
             IF {} { PUSH string "FlatSwap_Negative_Value" ; FAILWITH } ;
42
             DUP ;
43
             DUP ;
44
             DUG 2 ;
45
             SWAP ;
46
             DUP ;
47
             DUP ;
48
             DUG 3 ;
49
             MUL ;
50
             COMPARE ;
51
             GT ;
52
             LOOP { PUSH nat 2 ;
53
                    SWAP ;
54
                    DUP ;
55
                    DUP 4 ;
56
                    EDIV ;
57
                    IF_NONE { PUSH int 128 ; FAILWITH } { CAR } ;
58
                    ADD ;
59
                    EDIV ;
60
                    IF_NONE { PUSH int 128 ; FAILWITH } { CAR } ;
61
                    SWAP ;
62
                    DUP ;
63
                    DUG 2 ;
64
                    SWAP ;
65
                    DUP ;
66
                    DUP ;
67
                    DUG 3 ;
68
                    MUL ;
69
                    COMPARE ;
70
                    GT } ;
71
             SWAP ;
72
             DUP ;
73
             DUG 2 ;
74
             SWAP ;
75
             DUP ;
76
             DUP ;
77
             DUG 3 ;
78
             MUL ;
79
             COMPARE ;
80
             LE ;
81
             IF
82
               { DUP ; PUSH nat 1 ; ADD ; PUSH nat 1 ; DUP 3 ; ADD ; MUL ; DIG 2 ; COMPARE ; LT }
83
               { SWAP ; DROP ; PUSH bool False } ;
84
             IF
85
               {}
86
               { PUSH string "WrongCondition: ((y.value * y.value) <= _x0) & (_x0 < ((y.value + 1) * (y.value + 1)))" ;
87
                 FAILWITH } } ;
88
         SWAP ;
89
         UNPAIR ;
90
         IF_LEFT
91
           { IF_LEFT
92
               { IF_LEFT
93
                   { DIG 2 ;
94
                     DROP ;
95
                     SWAP ;
96
                     DUP ;
97
                     DUG 2 ;
98
                     CAR ;
99
                     CAR ;
100
                     CAR ;
101
                     CDR ;
102
                     SENDER ;
103
                     COMPARE ;
104
                     EQ ;
105
                     IF {} { PUSH string "FlatSwap_Not_Admin" ; FAILWITH } ;
106
                     SWAP ;
107
                     UNPAIR ;
108
                     UNPAIR ;
109
                     UNPAIR ;
110
                     CAR ;
111
                     DIG 4 ;
112
                     SWAP ;
113
                     PAIR ;
114
                     PAIR ;
115
                     PAIR ;
116
                     PAIR ;
117
                     NIL operation }
118
                   { IF_LEFT
119
                       { DIG 2 ;
120
                         DROP ;
121
                         SWAP ;
122
                         DUP ;
123
                         DUG 2 ;
124
                         CAR ;
125
                         CAR ;
126
                         CAR ;
127
                         CDR ;
128
                         SENDER ;
129
                         COMPARE ;
130
                         EQ ;
131
                         IF {} { PUSH string "FlatSwap_Not_Admin" ; FAILWITH } ;
132
                         SET_DELEGATE ;
133
                         NIL operation ;
134
                         SWAP ;
135
                         CONS }
136
                       { DROP ;
137
                         SWAP ;
138
                         DROP ;
139
                         DUP ;
140
                         CAR ;
141
                         CAR ;
142
                         CAR ;
143
                         CDR ;
144
                         SENDER ;
145
                         COMPARE ;
146
                         EQ ;
147
                         IF {} { PUSH string "FlatSwap_Not_Admin" ; FAILWITH } ;
148
                         DUP ;
149
                         UNPAIR ;
150
                         UNPAIR ;
151
                         UNPAIR ;
152
                         CDR ;
153
                         DIG 4 ;
154
                         CAR ;
155
                         CAR ;
156
                         CAR ;
157
                         CAR ;
158
                         NOT ;
159
                         PAIR ;
160
                         PAIR ;
161
                         PAIR ;
162
                         PAIR ;
163
                         NIL operation } } }
164
               { IF_LEFT
165
                   { DROP ;
166
                     SWAP ;
167
                     DROP ;
168
                     DUP ;
169
                     CAR ;
170
                     CAR ;
171
                     CAR ;
172
                     CDR ;
173
                     SENDER ;
174
                     COMPARE ;
175
                     EQ ;
176
                     IF {} { PUSH string "FlatSwap_Not_Admin" ; FAILWITH } ;
177
                     DUP ;
178
                     UNPAIR ;
179
                     SWAP ;
180
                     UNPAIR ;
181
                     UNPAIR ;
182
                     CAR ;
183
                     DIG 4 ;
184
                     GET 3 ;
185
                     CAR ;
186
                     CDR ;
187
                     NOT ;
188
                     SWAP ;
189
                     PAIR ;
190
                     PAIR ;
191
                     PAIR ;
192
                     SWAP ;
193
                     PAIR ;
194
                     NIL operation }
195
                   { IF_LEFT
196
                       { DIG 2 ;
197
                         DROP ;
198
                         SWAP ;
199
                         DUP ;
200
                         DUG 2 ;
201
                         CAR ;
202
                         CAR ;
203
                         CAR ;
204
                         CDR ;
205
                         SENDER ;
206
                         COMPARE ;
207
                         EQ ;
208
                         IF {} { PUSH string "FlatSwap_Not_Admin" ; FAILWITH } ;
209
                         SWAP ;
210
                         UNPAIR ;
211
                         SWAP ;
212
                         UNPAIR ;
213
                         SWAP ;
214
                         UNPAIR ;
215
                         CDR ;
216
                         PUSH bool True ;
217
                         PAIR ;
218
                         PAIR ;
219
                         SWAP ;
220
                         PAIR ;
221
                         SWAP ;
222
                         PAIR ;
223
                         SWAP ;
224
                         SOME ;
225
                         UPDATE 9 ;
226
                         NIL operation }
227
                       { PUSH nat 0 ;
228
                         PUSH nat 0 ;
229
                         PUSH nat 0 ;
230
                         PUSH nat 0 ;
231
                         DUP 6 ;
232
                         CAR ;
233
                         GET 8 ;
234
                         COMPARE ;
235
                         NEQ ;
236
                         IF
237
                           { DIG 2 ;
238
                             DROP 3 ;
239
                             DIG 2 ;
240
                             DROP ;
241
                             PUSH mutez 1 ;
242
                             AMOUNT ;
243
                             EDIV ;
244
                             IF_NONE { UNIT ; FAILWITH } {} ;
245
                             CAR ;
246
                             DIG 2 ;
247
                             DUP ;
248
                             GET 5 ;
249
                             CDR ;
250
                             SWAP ;
251
                             DUP ;
252
                             DUG 4 ;
253
                             CAR ;
254
                             GET 8 ;
255
                             DUP 3 ;
256
                             MUL ;
257
                             EDIV ;
258
                             IF_NONE { PUSH int 161 ; FAILWITH } {} ;
259
                             CAR ;
260
                             DIG 3 ;
261
                             DUP ;
262
                             GET 5 ;
263
                             CDR ;
264
                             SWAP ;
265
                             DUP ;
266
                             DUG 5 ;
267
                             CAR ;
268
                             GET 3 ;
269
                             CAR ;
270
                             DUP 4 ;
271
                             MUL ;
272
                             EDIV ;
273
                             IF_NONE { PUSH int 162 ; FAILWITH } { CAR } ;
274
                             SWAP ;
275
                             PUSH nat 0 ;
276
                             DUP 4 ;
277
                             COMPARE ;
278
                             GT ;
279
                             IF
280
                               {}
281
                               { PUSH string "FlatSwap_Invalid_LP_Ratio" ; FAILWITH } ;
282
                             PUSH nat 0 ;
283
                             DUP 3 ;
284
                             COMPARE ;
285
                             GT ;
286
                             IF
287
                               {}
288
                               { PUSH string "FlatSwap_Invalid_LP_Ratio" ; FAILWITH } }
289
                           { DROP 3 ;
290
                             PUSH nat 1000 ;
291
                             DIG 3 ;
292
                             DUP 3 ;
293
                             CAR ;
294
                             PUSH mutez 1 ;
295
                             AMOUNT ;
296
                             EDIV ;
297
                             IF_NONE { UNIT ; FAILWITH } {} ;
298
                             CAR ;
299
                             MUL ;
300
                             EXEC ;
301
                             PUSH nat 2 ;
302
                             MUL ;
303
                             SUB ;
304
                             ISNAT ;
305
                             IF_NONE { PUSH int 166 ; FAILWITH } {} ;
306
                             DIG 2 ;
307
                             UNPAIR ;
308
                             UNPAIR ;
309
                             SWAP ;
310
                             UNPAIR ;
311
                             SWAP ;
312
                             UNPAIR ;
313
                             SWAP ;
314
                             UNPAIR ;
315
                             SWAP ;
316
                             PUSH nat 1000 ;
317
                             ADD ;
318
                             SWAP ;
319
                             PAIR ;
320
                             SWAP ;
321
                             PAIR ;
322
                             SWAP ;
323
                             PAIR ;
324
                             SWAP ;
325
                             PAIR ;
326
                             PAIR ;
327
                             DUG 2 ;
328
                             PUSH mutez 1 ;
329
                             AMOUNT ;
330
                             EDIV ;
331
                             IF_NONE { UNIT ; FAILWITH } {} ;
332
                             CAR ;
333
                             SWAP ;
334
                             DUP 3 ;
335
                             CAR ;
336
                             SWAP } ;
337
                         DUP ;
338
                         PUSH nat 0 ;
339
                         COMPARE ;
340
                         LT ;
341
                         IF
342
                           {}
343
                           { PUSH string "WrongCondition: lqtMinted.value > 0" ;
344
                             FAILWITH } ;
345
                         DUP 4 ;
346
                         CAR ;
347
                         DUP 3 ;
348
                         COMPARE ;
349
                         LE ;
350
                         IF {} { PUSH string "FlatSwap_Max_Cash_Error" ; FAILWITH } ;
351
                         DUP 4 ;
352
                         GET 3 ;
353
                         SWAP ;
354
                         DUP ;
355
                         DUG 2 ;
356
                         COMPARE ;
357
                         GE ;
358
                         IF
359
                           {}
360
                           { PUSH string "FlatSwap_Min_Lqt_Minted_Error" ; FAILWITH } ;
361
                         DIG 4 ;
362
                         UNPAIR ;
363
                         SWAP ;
364
                         UNPAIR ;
365
                         SWAP ;
366
                         UNPAIR ;
367
                         UNPAIR ;
368
                         SWAP ;
369
                         DIG 7 ;
370
                         ADD ;
371
                         SWAP ;
372
                         PAIR ;
373
                         PAIR ;
374
                         SWAP ;
375
                         PAIR ;
376
                         SWAP ;
377
                         UNPAIR ;
378
                         SWAP ;
379
                         UNPAIR ;
380
                         UNPAIR ;
381
                         DUP 7 ;
382
                         ADD ;
383
                         PAIR ;
384
                         PAIR ;
385
                         SWAP ;
386
                         PAIR ;
387
                         PAIR ;
388
                         DUG 3 ;
389
                         NIL operation ;
390
                         DUP 5 ;
391
                         CAR ;
392
                         CAR ;
393
                         GET 3 ;
394
                         CONTRACT %transfer (pair (address %from)
395
                                                  (pair (address %to) (nat %value))) ;
396
                         IF_NONE { PUSH int 65 ; FAILWITH } {} ;
397
                         PUSH mutez 0 ;
398
                         DIG 4 ;
399
                         SELF_ADDRESS ;
400
                         SENDER ;
401
                         PAIR 3 ;
402
                         TRANSFER_TOKENS ;
403
                         CONS ;
404
                         DUP 4 ;
405
                         CAR ;
406
                         GET 7 ;
407
                         CONTRACT %mint (pair (address %address) (nat %value)) ;
408
                         IF_NONE { PUSH int 73 ; FAILWITH } {} ;
409
                         PUSH mutez 0 ;
410
                         DUP 4 ;
411
                         DIG 5 ;
412
                         GET 4 ;
413
                         PAIR ;
414
                         TRANSFER_TOKENS ;
415
                         CONS ;
416
                         DIG 2 ;
417
                         UNPAIR ;
418
                         UNPAIR ;
419
                         SWAP ;
420
                         UNPAIR ;
421
                         SWAP ;
422
                         UNPAIR ;
423
                         SWAP ;
424
                         UNPAIR ;
425
                         SWAP ;
426
                         DIG 7 ;
427
                         ADD ;
428
                         SWAP ;
429
                         PAIR ;
430
                         SWAP ;
431
                         PAIR ;
432
                         SWAP ;
433
                         PAIR ;
434
                         SWAP ;
435
                         PAIR ;
436
                         PAIR ;
437
                         SWAP } } } }
438
           { IF_LEFT
439
               { IF_LEFT
440
                   { DIG 2 ;
441
                     DROP ;
442
                     DUP ;
443
                     CAR ;
444
                     PUSH nat 0 ;
445
                     COMPARE ;
446
                     LT ;
447
                     IF {} { PUSH string "FlatSwap_Zero_Amount_Transfer" ; FAILWITH } ;
448
                     SWAP ;
449
                     DUP ;
450
                     DUG 2 ;
451
                     GET 3 ;
452
                     CAR ;
453
                     CDR ;
454
                     IF { PUSH string "FlatSwap_Paused_State" ; FAILWITH } {} ;
455
                     SWAP ;
456
                     UNPAIR ;
457
                     SWAP ;
458
                     UNPAIR ;
459
                     CAR ;
460
                     DUP 4 ;
461
                     GET 4 ;
462
                     SOME ;
463
                     SENDER ;
464
                     SOME ;
465
                     SWAP ;
466
                     PAIR ;
467
                     SWAP ;
468
                     CDR ;
469
                     DUP 5 ;
470
                     GET 3 ;
471
                     SOME ;
472
                     PAIR ;
473
                     PAIR ;
474
                     PAIR ;
475
                     SWAP ;
476
                     PAIR ;
477
                     SWAP ;
478
                     CAR ;
479
                     SOME ;
480
                     UPDATE 7 ;
481
                     DUP ;
482
                     UNPAIR ;
483
                     UNPAIR ;
484
                     UNPAIR ;
485
                     CDR ;
486
                     DIG 4 ;
487
                     CAR ;
488
                     CAR ;
489
                     CAR ;
490
                     CAR ;
491
                     NOT ;
492
                     PAIR ;
493
                     PAIR ;
494
                     PAIR ;
495
                     PAIR ;
496
                     DUP ;
497
                     CAR ;
498
                     GET 3 ;
499
                     CDR ;
500
                     CONTRACT %get_target (contract nat) ;
501
                     IF_NONE { PUSH int 291 ; FAILWITH } {} ;
502
                     NIL operation ;
503
                     SWAP ;
504
                     PUSH mutez 0 ;
505
                     SELF %ctez_to_tez_callback ;
506
                     TRANSFER_TOKENS ;
507
                     CONS }
508
                   { IF_LEFT
509
                       { SWAP ;
510
                         DUP ;
511
                         DUG 2 ;
512
                         CAR ;
513
                         CAR ;
514
                         CAR ;
515
                         CAR ;
516
                         IF
517
                           {}
518
                           { PUSH string "WrongCondition: self.data.Locked" ; FAILWITH } ;
519
                         SWAP ;
520
                         DUP ;
521
                         DUG 2 ;
522
                         GET 3 ;
523
                         GET 3 ;
524
                         IF_NONE
525
                           { PUSH string "WrongCondition: self.data.recipient.is_some()" ;
526
                             FAILWITH }
527
                           { DROP } ;
528
                         SWAP ;
529
                         DUP ;
530
                         DUG 2 ;
531
                         GET 7 ;
532
                         IF_NONE
533
                           { PUSH string "WrongCondition: self.data.tradeAmount.is_some()" ;
534
                             FAILWITH }
535
                           { DROP } ;
536
                         SWAP ;
537
                         DUP ;
538
                         DUG 2 ;
539
                         GET 3 ;
540
                         CAR ;
541
                         CAR ;
542
                         IF_NONE
543
                           { PUSH string "WrongCondition: self.data.minAmount.is_some()" ;
544
                             FAILWITH }
545
                           { DROP } ;
546
                         PUSH int 5 ;
547
                         PUSH nat 0 ;
548
                         DUP ;
549
                         PUSH nat 48 ;
550
                         DUP 6 ;
551
                         GET 5 ;
552
                         CDR ;
553
                         LSL ;
554
                         SUB ;
555
                         ABS ;
556
                         DUP 5 ;
557
                         GET 7 ;
558
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
559
                         DUP 5 ;
560
                         MUL ;
561
                         DUP 6 ;
562
                         CAR ;
563
                         GET 3 ;
564
                         CAR ;
565
                         DUP 6 ;
566
                         MUL ;
567
                         ADD ;
568
                         ADD ;
569
                         SWAP ;
570
                         DUP ;
571
                         DUG 2 ;
572
                         PUSH nat 48 ;
573
                         DUP 7 ;
574
                         GET 5 ;
575
                         CDR ;
576
                         LSL ;
577
                         SUB ;
578
                         ABS ;
579
                         DUP 6 ;
580
                         GET 7 ;
581
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
582
                         DUP 6 ;
583
                         MUL ;
584
                         DUP 7 ;
585
                         CAR ;
586
                         GET 3 ;
587
                         CAR ;
588
                         DUP 7 ;
589
                         MUL ;
590
                         ADD ;
591
                         ADD ;
592
                         DUP 3 ;
593
                         PUSH nat 48 ;
594
                         DUP 8 ;
595
                         GET 5 ;
596
                         CDR ;
597
                         LSL ;
598
                         SUB ;
599
                         ABS ;
600
                         DUP 7 ;
601
                         GET 7 ;
602
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
603
                         DUP 7 ;
604
                         MUL ;
605
                         DUP 8 ;
606
                         CAR ;
607
                         GET 3 ;
608
                         CAR ;
609
                         DUP 8 ;
610
                         MUL ;
611
                         ADD ;
612
                         ADD ;
613
                         MUL ;
614
                         DUP 3 ;
615
                         PUSH nat 48 ;
616
                         DUP 8 ;
617
                         GET 5 ;
618
                         CDR ;
619
                         LSL ;
620
                         SUB ;
621
                         ABS ;
622
                         DUP 7 ;
623
                         GET 7 ;
624
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
625
                         DUP 7 ;
626
                         MUL ;
627
                         DUP 8 ;
628
                         CAR ;
629
                         GET 3 ;
630
                         CAR ;
631
                         DUP 8 ;
632
                         MUL ;
633
                         ADD ;
634
                         ADD ;
635
                         DUP 4 ;
636
                         PUSH nat 48 ;
637
                         DUP 9 ;
638
                         GET 5 ;
639
                         CDR ;
640
                         LSL ;
641
                         SUB ;
642
                         ABS ;
643
                         DUP 8 ;
644
                         GET 7 ;
645
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
646
                         DUP 8 ;
647
                         MUL ;
648
                         DUP 9 ;
649
                         CAR ;
650
                         GET 3 ;
651
                         CAR ;
652
                         DUP 9 ;
653
                         MUL ;
654
                         ADD ;
655
                         ADD ;
656
                         MUL ;
657
                         DUP 4 ;
658
                         PUSH nat 48 ;
659
                         DUP 9 ;
660
                         GET 5 ;
661
                         CDR ;
662
                         LSL ;
663
                         SUB ;
664
                         ABS ;
665
                         DUP 8 ;
666
                         GET 7 ;
667
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
668
                         DUP 8 ;
669
                         MUL ;
670
                         DUP 9 ;
671
                         CAR ;
672
                         GET 3 ;
673
                         CAR ;
674
                         DUP 9 ;
675
                         MUL ;
676
                         ADD ;
677
                         ADD ;
678
                         DUP 5 ;
679
                         PUSH nat 48 ;
680
                         DUP 10 ;
681
                         GET 5 ;
682
                         CDR ;
683
                         LSL ;
684
                         SUB ;
685
                         ABS ;
686
                         DUP 9 ;
687
                         GET 7 ;
688
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
689
                         DUP 9 ;
690
                         MUL ;
691
                         DUP 10 ;
692
                         CAR ;
693
                         GET 3 ;
694
                         CAR ;
695
                         DUP 10 ;
696
                         MUL ;
697
                         ADD ;
698
                         ADD ;
699
                         MUL ;
700
                         MUL ;
701
                         MUL ;
702
                         MUL ;
703
                         INT ;
704
                         SWAP ;
705
                         DUP ;
706
                         DUG 2 ;
707
                         PUSH nat 48 ;
708
                         DUP 7 ;
709
                         GET 5 ;
710
                         CDR ;
711
                         LSL ;
712
                         SUB ;
713
                         ABS ;
714
                         DUP 6 ;
715
                         GET 7 ;
716
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
717
                         DUP 6 ;
718
                         MUL ;
719
                         DUP 7 ;
720
                         CAR ;
721
                         GET 3 ;
722
                         CAR ;
723
                         DUP 7 ;
724
                         MUL ;
725
                         ADD ;
726
                         SUB ;
727
                         DUP 3 ;
728
                         PUSH nat 48 ;
729
                         DUP 8 ;
730
                         GET 5 ;
731
                         CDR ;
732
                         LSL ;
733
                         SUB ;
734
                         ABS ;
735
                         DUP 7 ;
736
                         GET 7 ;
737
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
738
                         DUP 7 ;
739
                         MUL ;
740
                         DUP 8 ;
741
                         CAR ;
742
                         GET 3 ;
743
                         CAR ;
744
                         DUP 8 ;
745
                         MUL ;
746
                         ADD ;
747
                         SUB ;
748
                         DUP 4 ;
749
                         PUSH nat 48 ;
750
                         DUP 9 ;
751
                         GET 5 ;
752
                         CDR ;
753
                         LSL ;
754
                         SUB ;
755
                         ABS ;
756
                         DUP 8 ;
757
                         GET 7 ;
758
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
759
                         DUP 8 ;
760
                         MUL ;
761
                         DUP 9 ;
762
                         CAR ;
763
                         GET 3 ;
764
                         CAR ;
765
                         DUP 9 ;
766
                         MUL ;
767
                         ADD ;
768
                         SUB ;
769
                         MUL ;
770
                         DUP 4 ;
771
                         PUSH nat 48 ;
772
                         DUP 9 ;
773
                         GET 5 ;
774
                         CDR ;
775
                         LSL ;
776
                         SUB ;
777
                         ABS ;
778
                         DUP 8 ;
779
                         GET 7 ;
780
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
781
                         DUP 8 ;
782
                         MUL ;
783
                         DUP 9 ;
784
                         CAR ;
785
                         GET 3 ;
786
                         CAR ;
787
                         DUP 9 ;
788
                         MUL ;
789
                         ADD ;
790
                         SUB ;
791
                         DUP 5 ;
792
                         PUSH nat 48 ;
793
                         DUP 10 ;
794
                         GET 5 ;
795
                         CDR ;
796
                         LSL ;
797
                         SUB ;
798
                         ABS ;
799
                         DUP 9 ;
800
                         GET 7 ;
801
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
802
                         DUP 9 ;
803
                         MUL ;
804
                         DUP 10 ;
805
                         CAR ;
806
                         GET 3 ;
807
                         CAR ;
808
                         DUP 10 ;
809
                         MUL ;
810
                         ADD ;
811
                         SUB ;
812
                         MUL ;
813
                         DUP 5 ;
814
                         PUSH nat 48 ;
815
                         DUP 10 ;
816
                         GET 5 ;
817
                         CDR ;
818
                         LSL ;
819
                         SUB ;
820
                         ABS ;
821
                         DUP 9 ;
822
                         GET 7 ;
823
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
824
                         DUP 9 ;
825
                         MUL ;
826
                         DUP 10 ;
827
                         CAR ;
828
                         GET 3 ;
829
                         CAR ;
830
                         DUP 10 ;
831
                         MUL ;
832
                         ADD ;
833
                         SUB ;
834
                         DUP 6 ;
835
                         PUSH nat 48 ;
836
                         DUP 11 ;
837
                         GET 5 ;
838
                         CDR ;
839
                         LSL ;
840
                         SUB ;
841
                         ABS ;
842
                         DUP 10 ;
843
                         GET 7 ;
844
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
845
                         DUP 10 ;
846
                         MUL ;
847
                         DUP 11 ;
848
                         CAR ;
849
                         GET 3 ;
850
                         CAR ;
851
                         DUP 11 ;
852
                         MUL ;
853
                         ADD ;
854
                         SUB ;
855
                         MUL ;
856
                         MUL ;
857
                         MUL ;
858
                         MUL ;
859
                         ADD ;
860
                         ABS ;
861
                         PUSH nat 8 ;
862
                         MUL ;
863
                         SWAP ;
864
                         DUP ;
865
                         DUG 2 ;
866
                         PUSH nat 48 ;
867
                         DUP 7 ;
868
                         GET 5 ;
869
                         CDR ;
870
                         LSL ;
871
                         SUB ;
872
                         ABS ;
873
                         DUP 6 ;
874
                         GET 7 ;
875
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
876
                         DUP 6 ;
877
                         MUL ;
878
                         DUP 7 ;
879
                         CAR ;
880
                         GET 3 ;
881
                         CAR ;
882
                         DUP 7 ;
883
                         MUL ;
884
                         ADD ;
885
                         SUB ;
886
                         DUP 3 ;
887
                         PUSH nat 48 ;
888
                         DUP 8 ;
889
                         GET 5 ;
890
                         CDR ;
891
                         LSL ;
892
                         SUB ;
893
                         ABS ;
894
                         DUP 7 ;
895
                         GET 7 ;
896
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
897
                         DUP 7 ;
898
                         MUL ;
899
                         DUP 8 ;
900
                         CAR ;
901
                         GET 3 ;
902
                         CAR ;
903
                         DUP 8 ;
904
                         MUL ;
905
                         ADD ;
906
                         SUB ;
907
                         MUL ;
908
                         DUP 3 ;
909
                         PUSH nat 48 ;
910
                         DUP 8 ;
911
                         GET 5 ;
912
                         CDR ;
913
                         LSL ;
914
                         SUB ;
915
                         ABS ;
916
                         DUP 7 ;
917
                         GET 7 ;
918
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
919
                         DUP 7 ;
920
                         MUL ;
921
                         DUP 8 ;
922
                         CAR ;
923
                         GET 3 ;
924
                         CAR ;
925
                         DUP 8 ;
926
                         MUL ;
927
                         ADD ;
928
                         SUB ;
929
                         DUP 4 ;
930
                         PUSH nat 48 ;
931
                         DUP 9 ;
932
                         GET 5 ;
933
                         CDR ;
934
                         LSL ;
935
                         SUB ;
936
                         ABS ;
937
                         DUP 8 ;
938
                         GET 7 ;
939
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
940
                         DUP 8 ;
941
                         MUL ;
942
                         DUP 9 ;
943
                         CAR ;
944
                         GET 3 ;
945
                         CAR ;
946
                         DUP 9 ;
947
                         MUL ;
948
                         ADD ;
949
                         SUB ;
950
                         MUL ;
951
                         MUL ;
952
                         DUP 3 ;
953
                         PUSH nat 48 ;
954
                         DUP 8 ;
955
                         GET 5 ;
956
                         CDR ;
957
                         LSL ;
958
                         SUB ;
959
                         ABS ;
960
                         DUP 7 ;
961
                         GET 7 ;
962
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
963
                         DUP 7 ;
964
                         MUL ;
965
                         DUP 8 ;
966
                         CAR ;
967
                         GET 3 ;
968
                         CAR ;
969
                         DUP 8 ;
970
                         MUL ;
971
                         ADD ;
972
                         SUB ;
973
                         DUP 4 ;
974
                         PUSH nat 48 ;
975
                         DUP 9 ;
976
                         GET 5 ;
977
                         CDR ;
978
                         LSL ;
979
                         SUB ;
980
                         ABS ;
981
                         DUP 8 ;
982
                         GET 7 ;
983
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
984
                         DUP 8 ;
985
                         MUL ;
986
                         DUP 9 ;
987
                         CAR ;
988
                         GET 3 ;
989
                         CAR ;
990
                         DUP 9 ;
991
                         MUL ;
992
                         ADD ;
993
                         SUB ;
994
                         MUL ;
995
                         DUP 4 ;
996
                         PUSH nat 48 ;
997
                         DUP 9 ;
998
                         GET 5 ;
999
                         CDR ;
1000
                         LSL ;
1001
                         SUB ;
1002
                         ABS ;
1003
                         DUP 8 ;
1004
                         GET 7 ;
1005
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1006
                         DUP 8 ;
1007
                         MUL ;
1008
                         DUP 9 ;
1009
                         CAR ;
1010
                         GET 3 ;
1011
                         CAR ;
1012
                         DUP 9 ;
1013
                         MUL ;
1014
                         ADD ;
1015
                         SUB ;
1016
                         DUP 5 ;
1017
                         PUSH nat 48 ;
1018
                         DUP 10 ;
1019
                         GET 5 ;
1020
                         CDR ;
1021
                         LSL ;
1022
                         SUB ;
1023
                         ABS ;
1024
                         DUP 9 ;
1025
                         GET 7 ;
1026
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1027
                         DUP 9 ;
1028
                         MUL ;
1029
                         DUP 10 ;
1030
                         CAR ;
1031
                         GET 3 ;
1032
                         CAR ;
1033
                         DUP 10 ;
1034
                         MUL ;
1035
                         ADD ;
1036
                         SUB ;
1037
                         MUL ;
1038
                         MUL ;
1039
                         MUL ;
1040
                         DUP 3 ;
1041
                         PUSH nat 48 ;
1042
                         DUP 8 ;
1043
                         GET 5 ;
1044
                         CDR ;
1045
                         LSL ;
1046
                         SUB ;
1047
                         ABS ;
1048
                         DUP 7 ;
1049
                         GET 7 ;
1050
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1051
                         DUP 7 ;
1052
                         MUL ;
1053
                         DUP 8 ;
1054
                         CAR ;
1055
                         GET 3 ;
1056
                         CAR ;
1057
                         DUP 8 ;
1058
                         MUL ;
1059
                         ADD ;
1060
                         ADD ;
1061
                         DUP 4 ;
1062
                         PUSH nat 48 ;
1063
                         DUP 9 ;
1064
                         GET 5 ;
1065
                         CDR ;
1066
                         LSL ;
1067
                         SUB ;
1068
                         ABS ;
1069
                         DUP 8 ;
1070
                         GET 7 ;
1071
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1072
                         DUP 8 ;
1073
                         MUL ;
1074
                         DUP 9 ;
1075
                         CAR ;
1076
                         GET 3 ;
1077
                         CAR ;
1078
                         DUP 9 ;
1079
                         MUL ;
1080
                         ADD ;
1081
                         ADD ;
1082
                         MUL ;
1083
                         DUP 4 ;
1084
                         PUSH nat 48 ;
1085
                         DUP 9 ;
1086
                         GET 5 ;
1087
                         CDR ;
1088
                         LSL ;
1089
                         SUB ;
1090
                         ABS ;
1091
                         DUP 8 ;
1092
                         GET 7 ;
1093
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1094
                         DUP 8 ;
1095
                         MUL ;
1096
                         DUP 9 ;
1097
                         CAR ;
1098
                         GET 3 ;
1099
                         CAR ;
1100
                         DUP 9 ;
1101
                         MUL ;
1102
                         ADD ;
1103
                         ADD ;
1104
                         DUP 5 ;
1105
                         PUSH nat 48 ;
1106
                         DUP 10 ;
1107
                         GET 5 ;
1108
                         CDR ;
1109
                         LSL ;
1110
                         SUB ;
1111
                         ABS ;
1112
                         DUP 9 ;
1113
                         GET 7 ;
1114
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1115
                         DUP 9 ;
1116
                         MUL ;
1117
                         DUP 10 ;
1118
                         CAR ;
1119
                         GET 3 ;
1120
                         CAR ;
1121
                         DUP 10 ;
1122
                         MUL ;
1123
                         ADD ;
1124
                         ADD ;
1125
                         MUL ;
1126
                         MUL ;
1127
                         DUP 4 ;
1128
                         PUSH nat 48 ;
1129
                         DUP 9 ;
1130
                         GET 5 ;
1131
                         CDR ;
1132
                         LSL ;
1133
                         SUB ;
1134
                         ABS ;
1135
                         DUP 8 ;
1136
                         GET 7 ;
1137
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1138
                         DUP 8 ;
1139
                         MUL ;
1140
                         DUP 9 ;
1141
                         CAR ;
1142
                         GET 3 ;
1143
                         CAR ;
1144
                         DUP 9 ;
1145
                         MUL ;
1146
                         ADD ;
1147
                         ADD ;
1148
                         DUP 5 ;
1149
                         PUSH nat 48 ;
1150
                         DUP 10 ;
1151
                         GET 5 ;
1152
                         CDR ;
1153
                         LSL ;
1154
                         SUB ;
1155
                         ABS ;
1156
                         DUP 9 ;
1157
                         GET 7 ;
1158
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1159
                         DUP 9 ;
1160
                         MUL ;
1161
                         DUP 10 ;
1162
                         CAR ;
1163
                         GET 3 ;
1164
                         CAR ;
1165
                         DUP 10 ;
1166
                         MUL ;
1167
                         ADD ;
1168
                         ADD ;
1169
                         MUL ;
1170
                         DUP 5 ;
1171
                         PUSH nat 48 ;
1172
                         DUP 10 ;
1173
                         GET 5 ;
1174
                         CDR ;
1175
                         LSL ;
1176
                         SUB ;
1177
                         ABS ;
1178
                         DUP 9 ;
1179
                         GET 7 ;
1180
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1181
                         DUP 9 ;
1182
                         MUL ;
1183
                         DUP 10 ;
1184
                         CAR ;
1185
                         GET 3 ;
1186
                         CAR ;
1187
                         DUP 10 ;
1188
                         MUL ;
1189
                         ADD ;
1190
                         ADD ;
1191
                         DUP 6 ;
1192
                         PUSH nat 48 ;
1193
                         DUP 11 ;
1194
                         GET 5 ;
1195
                         CDR ;
1196
                         LSL ;
1197
                         SUB ;
1198
                         ABS ;
1199
                         DUP 10 ;
1200
                         GET 7 ;
1201
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1202
                         DUP 10 ;
1203
                         MUL ;
1204
                         DUP 11 ;
1205
                         CAR ;
1206
                         GET 3 ;
1207
                         CAR ;
1208
                         DUP 11 ;
1209
                         MUL ;
1210
                         ADD ;
1211
                         ADD ;
1212
                         MUL ;
1213
                         MUL ;
1214
                         MUL ;
1215
                         INT ;
1216
                         SUB ;
1217
                         ABS ;
1218
                         PAIR ;
1219
                         DUP ;
1220
                         CAR ;
1221
                         SWAP ;
1222
                         DUP ;
1223
                         DUG 2 ;
1224
                         CDR ;
1225
                         PUSH int 0 ;
1226
                         DUP 6 ;
1227
                         COMPARE ;
1228
                         NEQ ;
1229
                         LOOP { DIG 2 ;
1230
                                DROP 3 ;
1231
                                DUP ;
1232
                                PUSH nat 48 ;
1233
                                DUP 6 ;
1234
                                GET 5 ;
1235
                                CDR ;
1236
                                LSL ;
1237
                                SUB ;
1238
                                ABS ;
1239
                                DUP 5 ;
1240
                                GET 7 ;
1241
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1242
                                DUP 5 ;
1243
                                MUL ;
1244
                                DUP 6 ;
1245
                                CAR ;
1246
                                GET 3 ;
1247
                                CAR ;
1248
                                DUP 6 ;
1249
                                MUL ;
1250
                                ADD ;
1251
                                ADD ;
1252
                                SWAP ;
1253
                                DUP ;
1254
                                DUG 2 ;
1255
                                PUSH nat 48 ;
1256
                                DUP 7 ;
1257
                                GET 5 ;
1258
                                CDR ;
1259
                                LSL ;
1260
                                SUB ;
1261
                                ABS ;
1262
                                DUP 6 ;
1263
                                GET 7 ;
1264
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1265
                                DUP 6 ;
1266
                                MUL ;
1267
                                DUP 7 ;
1268
                                CAR ;
1269
                                GET 3 ;
1270
                                CAR ;
1271
                                DUP 7 ;
1272
                                MUL ;
1273
                                ADD ;
1274
                                ADD ;
1275
                                DUP 3 ;
1276
                                PUSH nat 48 ;
1277
                                DUP 8 ;
1278
                                GET 5 ;
1279
                                CDR ;
1280
                                LSL ;
1281
                                SUB ;
1282
                                ABS ;
1283
                                DUP 7 ;
1284
                                GET 7 ;
1285
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1286
                                DUP 7 ;
1287
                                MUL ;
1288
                                DUP 8 ;
1289
                                CAR ;
1290
                                GET 3 ;
1291
                                CAR ;
1292
                                DUP 8 ;
1293
                                MUL ;
1294
                                ADD ;
1295
                                ADD ;
1296
                                MUL ;
1297
                                DUP 3 ;
1298
                                PUSH nat 48 ;
1299
                                DUP 8 ;
1300
                                GET 5 ;
1301
                                CDR ;
1302
                                LSL ;
1303
                                SUB ;
1304
                                ABS ;
1305
                                DUP 7 ;
1306
                                GET 7 ;
1307
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1308
                                DUP 7 ;
1309
                                MUL ;
1310
                                DUP 8 ;
1311
                                CAR ;
1312
                                GET 3 ;
1313
                                CAR ;
1314
                                DUP 8 ;
1315
                                MUL ;
1316
                                ADD ;
1317
                                ADD ;
1318
                                DUP 4 ;
1319
                                PUSH nat 48 ;
1320
                                DUP 9 ;
1321
                                GET 5 ;
1322
                                CDR ;
1323
                                LSL ;
1324
                                SUB ;
1325
                                ABS ;
1326
                                DUP 8 ;
1327
                                GET 7 ;
1328
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1329
                                DUP 8 ;
1330
                                MUL ;
1331
                                DUP 9 ;
1332
                                CAR ;
1333
                                GET 3 ;
1334
                                CAR ;
1335
                                DUP 9 ;
1336
                                MUL ;
1337
                                ADD ;
1338
                                ADD ;
1339
                                MUL ;
1340
                                DUP 4 ;
1341
                                PUSH nat 48 ;
1342
                                DUP 9 ;
1343
                                GET 5 ;
1344
                                CDR ;
1345
                                LSL ;
1346
                                SUB ;
1347
                                ABS ;
1348
                                DUP 8 ;
1349
                                GET 7 ;
1350
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1351
                                DUP 8 ;
1352
                                MUL ;
1353
                                DUP 9 ;
1354
                                CAR ;
1355
                                GET 3 ;
1356
                                CAR ;
1357
                                DUP 9 ;
1358
                                MUL ;
1359
                                ADD ;
1360
                                ADD ;
1361
                                DUP 5 ;
1362
                                PUSH nat 48 ;
1363
                                DUP 10 ;
1364
                                GET 5 ;
1365
                                CDR ;
1366
                                LSL ;
1367
                                SUB ;
1368
                                ABS ;
1369
                                DUP 9 ;
1370
                                GET 7 ;
1371
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1372
                                DUP 9 ;
1373
                                MUL ;
1374
                                DUP 10 ;
1375
                                CAR ;
1376
                                GET 3 ;
1377
                                CAR ;
1378
                                DUP 10 ;
1379
                                MUL ;
1380
                                ADD ;
1381
                                ADD ;
1382
                                MUL ;
1383
                                MUL ;
1384
                                MUL ;
1385
                                MUL ;
1386
                                INT ;
1387
                                SWAP ;
1388
                                DUP ;
1389
                                DUG 2 ;
1390
                                PUSH nat 48 ;
1391
                                DUP 7 ;
1392
                                GET 5 ;
1393
                                CDR ;
1394
                                LSL ;
1395
                                SUB ;
1396
                                ABS ;
1397
                                DUP 6 ;
1398
                                GET 7 ;
1399
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1400
                                DUP 6 ;
1401
                                MUL ;
1402
                                DUP 7 ;
1403
                                CAR ;
1404
                                GET 3 ;
1405
                                CAR ;
1406
                                DUP 7 ;
1407
                                MUL ;
1408
                                ADD ;
1409
                                SUB ;
1410
                                DUP 3 ;
1411
                                PUSH nat 48 ;
1412
                                DUP 8 ;
1413
                                GET 5 ;
1414
                                CDR ;
1415
                                LSL ;
1416
                                SUB ;
1417
                                ABS ;
1418
                                DUP 7 ;
1419
                                GET 7 ;
1420
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1421
                                DUP 7 ;
1422
                                MUL ;
1423
                                DUP 8 ;
1424
                                CAR ;
1425
                                GET 3 ;
1426
                                CAR ;
1427
                                DUP 8 ;
1428
                                MUL ;
1429
                                ADD ;
1430
                                SUB ;
1431
                                DUP 4 ;
1432
                                PUSH nat 48 ;
1433
                                DUP 9 ;
1434
                                GET 5 ;
1435
                                CDR ;
1436
                                LSL ;
1437
                                SUB ;
1438
                                ABS ;
1439
                                DUP 8 ;
1440
                                GET 7 ;
1441
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1442
                                DUP 8 ;
1443
                                MUL ;
1444
                                DUP 9 ;
1445
                                CAR ;
1446
                                GET 3 ;
1447
                                CAR ;
1448
                                DUP 9 ;
1449
                                MUL ;
1450
                                ADD ;
1451
                                SUB ;
1452
                                MUL ;
1453
                                DUP 4 ;
1454
                                PUSH nat 48 ;
1455
                                DUP 9 ;
1456
                                GET 5 ;
1457
                                CDR ;
1458
                                LSL ;
1459
                                SUB ;
1460
                                ABS ;
1461
                                DUP 8 ;
1462
                                GET 7 ;
1463
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1464
                                DUP 8 ;
1465
                                MUL ;
1466
                                DUP 9 ;
1467
                                CAR ;
1468
                                GET 3 ;
1469
                                CAR ;
1470
                                DUP 9 ;
1471
                                MUL ;
1472
                                ADD ;
1473
                                SUB ;
1474
                                DUP 5 ;
1475
                                PUSH nat 48 ;
1476
                                DUP 10 ;
1477
                                GET 5 ;
1478
                                CDR ;
1479
                                LSL ;
1480
                                SUB ;
1481
                                ABS ;
1482
                                DUP 9 ;
1483
                                GET 7 ;
1484
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1485
                                DUP 9 ;
1486
                                MUL ;
1487
                                DUP 10 ;
1488
                                CAR ;
1489
                                GET 3 ;
1490
                                CAR ;
1491
                                DUP 10 ;
1492
                                MUL ;
1493
                                ADD ;
1494
                                SUB ;
1495
                                MUL ;
1496
                                DUP 5 ;
1497
                                PUSH nat 48 ;
1498
                                DUP 10 ;
1499
                                GET 5 ;
1500
                                CDR ;
1501
                                LSL ;
1502
                                SUB ;
1503
                                ABS ;
1504
                                DUP 9 ;
1505
                                GET 7 ;
1506
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1507
                                DUP 9 ;
1508
                                MUL ;
1509
                                DUP 10 ;
1510
                                CAR ;
1511
                                GET 3 ;
1512
                                CAR ;
1513
                                DUP 10 ;
1514
                                MUL ;
1515
                                ADD ;
1516
                                SUB ;
1517
                                DUP 6 ;
1518
                                PUSH nat 48 ;
1519
                                DUP 11 ;
1520
                                GET 5 ;
1521
                                CDR ;
1522
                                LSL ;
1523
                                SUB ;
1524
                                ABS ;
1525
                                DUP 10 ;
1526
                                GET 7 ;
1527
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1528
                                DUP 10 ;
1529
                                MUL ;
1530
                                DUP 11 ;
1531
                                CAR ;
1532
                                GET 3 ;
1533
                                CAR ;
1534
                                DUP 11 ;
1535
                                MUL ;
1536
                                ADD ;
1537
                                SUB ;
1538
                                MUL ;
1539
                                MUL ;
1540
                                MUL ;
1541
                                MUL ;
1542
                                ADD ;
1543
                                ABS ;
1544
                                PUSH nat 8 ;
1545
                                MUL ;
1546
                                SWAP ;
1547
                                DUP ;
1548
                                DUG 2 ;
1549
                                PUSH nat 48 ;
1550
                                DUP 7 ;
1551
                                GET 5 ;
1552
                                CDR ;
1553
                                LSL ;
1554
                                SUB ;
1555
                                ABS ;
1556
                                DUP 6 ;
1557
                                GET 7 ;
1558
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1559
                                DUP 6 ;
1560
                                MUL ;
1561
                                DUP 7 ;
1562
                                CAR ;
1563
                                GET 3 ;
1564
                                CAR ;
1565
                                DUP 7 ;
1566
                                MUL ;
1567
                                ADD ;
1568
                                SUB ;
1569
                                DUP 3 ;
1570
                                PUSH nat 48 ;
1571
                                DUP 8 ;
1572
                                GET 5 ;
1573
                                CDR ;
1574
                                LSL ;
1575
                                SUB ;
1576
                                ABS ;
1577
                                DUP 7 ;
1578
                                GET 7 ;
1579
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1580
                                DUP 7 ;
1581
                                MUL ;
1582
                                DUP 8 ;
1583
                                CAR ;
1584
                                GET 3 ;
1585
                                CAR ;
1586
                                DUP 8 ;
1587
                                MUL ;
1588
                                ADD ;
1589
                                SUB ;
1590
                                MUL ;
1591
                                DUP 3 ;
1592
                                PUSH nat 48 ;
1593
                                DUP 8 ;
1594
                                GET 5 ;
1595
                                CDR ;
1596
                                LSL ;
1597
                                SUB ;
1598
                                ABS ;
1599
                                DUP 7 ;
1600
                                GET 7 ;
1601
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1602
                                DUP 7 ;
1603
                                MUL ;
1604
                                DUP 8 ;
1605
                                CAR ;
1606
                                GET 3 ;
1607
                                CAR ;
1608
                                DUP 8 ;
1609
                                MUL ;
1610
                                ADD ;
1611
                                SUB ;
1612
                                DUP 4 ;
1613
                                PUSH nat 48 ;
1614
                                DUP 9 ;
1615
                                GET 5 ;
1616
                                CDR ;
1617
                                LSL ;
1618
                                SUB ;
1619
                                ABS ;
1620
                                DUP 8 ;
1621
                                GET 7 ;
1622
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1623
                                DUP 8 ;
1624
                                MUL ;
1625
                                DUP 9 ;
1626
                                CAR ;
1627
                                GET 3 ;
1628
                                CAR ;
1629
                                DUP 9 ;
1630
                                MUL ;
1631
                                ADD ;
1632
                                SUB ;
1633
                                MUL ;
1634
                                MUL ;
1635
                                DUP 3 ;
1636
                                PUSH nat 48 ;
1637
                                DUP 8 ;
1638
                                GET 5 ;
1639
                                CDR ;
1640
                                LSL ;
1641
                                SUB ;
1642
                                ABS ;
1643
                                DUP 7 ;
1644
                                GET 7 ;
1645
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1646
                                DUP 7 ;
1647
                                MUL ;
1648
                                DUP 8 ;
1649
                                CAR ;
1650
                                GET 3 ;
1651
                                CAR ;
1652
                                DUP 8 ;
1653
                                MUL ;
1654
                                ADD ;
1655
                                SUB ;
1656
                                DUP 4 ;
1657
                                PUSH nat 48 ;
1658
                                DUP 9 ;
1659
                                GET 5 ;
1660
                                CDR ;
1661
                                LSL ;
1662
                                SUB ;
1663
                                ABS ;
1664
                                DUP 8 ;
1665
                                GET 7 ;
1666
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1667
                                DUP 8 ;
1668
                                MUL ;
1669
                                DUP 9 ;
1670
                                CAR ;
1671
                                GET 3 ;
1672
                                CAR ;
1673
                                DUP 9 ;
1674
                                MUL ;
1675
                                ADD ;
1676
                                SUB ;
1677
                                MUL ;
1678
                                DUP 4 ;
1679
                                PUSH nat 48 ;
1680
                                DUP 9 ;
1681
                                GET 5 ;
1682
                                CDR ;
1683
                                LSL ;
1684
                                SUB ;
1685
                                ABS ;
1686
                                DUP 8 ;
1687
                                GET 7 ;
1688
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1689
                                DUP 8 ;
1690
                                MUL ;
1691
                                DUP 9 ;
1692
                                CAR ;
1693
                                GET 3 ;
1694
                                CAR ;
1695
                                DUP 9 ;
1696
                                MUL ;
1697
                                ADD ;
1698
                                SUB ;
1699
                                DUP 5 ;
1700
                                PUSH nat 48 ;
1701
                                DUP 10 ;
1702
                                GET 5 ;
1703
                                CDR ;
1704
                                LSL ;
1705
                                SUB ;
1706
                                ABS ;
1707
                                DUP 9 ;
1708
                                GET 7 ;
1709
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1710
                                DUP 9 ;
1711
                                MUL ;
1712
                                DUP 10 ;
1713
                                CAR ;
1714
                                GET 3 ;
1715
                                CAR ;
1716
                                DUP 10 ;
1717
                                MUL ;
1718
                                ADD ;
1719
                                SUB ;
1720
                                MUL ;
1721
                                MUL ;
1722
                                MUL ;
1723
                                DUP 3 ;
1724
                                PUSH nat 48 ;
1725
                                DUP 8 ;
1726
                                GET 5 ;
1727
                                CDR ;
1728
                                LSL ;
1729
                                SUB ;
1730
                                ABS ;
1731
                                DUP 7 ;
1732
                                GET 7 ;
1733
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1734
                                DUP 7 ;
1735
                                MUL ;
1736
                                DUP 8 ;
1737
                                CAR ;
1738
                                GET 3 ;
1739
                                CAR ;
1740
                                DUP 8 ;
1741
                                MUL ;
1742
                                ADD ;
1743
                                ADD ;
1744
                                DUP 4 ;
1745
                                PUSH nat 48 ;
1746
                                DUP 9 ;
1747
                                GET 5 ;
1748
                                CDR ;
1749
                                LSL ;
1750
                                SUB ;
1751
                                ABS ;
1752
                                DUP 8 ;
1753
                                GET 7 ;
1754
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1755
                                DUP 8 ;
1756
                                MUL ;
1757
                                DUP 9 ;
1758
                                CAR ;
1759
                                GET 3 ;
1760
                                CAR ;
1761
                                DUP 9 ;
1762
                                MUL ;
1763
                                ADD ;
1764
                                ADD ;
1765
                                MUL ;
1766
                                DUP 4 ;
1767
                                PUSH nat 48 ;
1768
                                DUP 9 ;
1769
                                GET 5 ;
1770
                                CDR ;
1771
                                LSL ;
1772
                                SUB ;
1773
                                ABS ;
1774
                                DUP 8 ;
1775
                                GET 7 ;
1776
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1777
                                DUP 8 ;
1778
                                MUL ;
1779
                                DUP 9 ;
1780
                                CAR ;
1781
                                GET 3 ;
1782
                                CAR ;
1783
                                DUP 9 ;
1784
                                MUL ;
1785
                                ADD ;
1786
                                ADD ;
1787
                                DUP 5 ;
1788
                                PUSH nat 48 ;
1789
                                DUP 10 ;
1790
                                GET 5 ;
1791
                                CDR ;
1792
                                LSL ;
1793
                                SUB ;
1794
                                ABS ;
1795
                                DUP 9 ;
1796
                                GET 7 ;
1797
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1798
                                DUP 9 ;
1799
                                MUL ;
1800
                                DUP 10 ;
1801
                                CAR ;
1802
                                GET 3 ;
1803
                                CAR ;
1804
                                DUP 10 ;
1805
                                MUL ;
1806
                                ADD ;
1807
                                ADD ;
1808
                                MUL ;
1809
                                MUL ;
1810
                                DUP 4 ;
1811
                                PUSH nat 48 ;
1812
                                DUP 9 ;
1813
                                GET 5 ;
1814
                                CDR ;
1815
                                LSL ;
1816
                                SUB ;
1817
                                ABS ;
1818
                                DUP 8 ;
1819
                                GET 7 ;
1820
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1821
                                DUP 8 ;
1822
                                MUL ;
1823
                                DUP 9 ;
1824
                                CAR ;
1825
                                GET 3 ;
1826
                                CAR ;
1827
                                DUP 9 ;
1828
                                MUL ;
1829
                                ADD ;
1830
                                ADD ;
1831
                                DUP 5 ;
1832
                                PUSH nat 48 ;
1833
                                DUP 10 ;
1834
                                GET 5 ;
1835
                                CDR ;
1836
                                LSL ;
1837
                                SUB ;
1838
                                ABS ;
1839
                                DUP 9 ;
1840
                                GET 7 ;
1841
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1842
                                DUP 9 ;
1843
                                MUL ;
1844
                                DUP 10 ;
1845
                                CAR ;
1846
                                GET 3 ;
1847
                                CAR ;
1848
                                DUP 10 ;
1849
                                MUL ;
1850
                                ADD ;
1851
                                ADD ;
1852
                                MUL ;
1853
                                DUP 5 ;
1854
                                PUSH nat 48 ;
1855
                                DUP 10 ;
1856
                                GET 5 ;
1857
                                CDR ;
1858
                                LSL ;
1859
                                SUB ;
1860
                                ABS ;
1861
                                DUP 9 ;
1862
                                GET 7 ;
1863
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1864
                                DUP 9 ;
1865
                                MUL ;
1866
                                DUP 10 ;
1867
                                CAR ;
1868
                                GET 3 ;
1869
                                CAR ;
1870
                                DUP 10 ;
1871
                                MUL ;
1872
                                ADD ;
1873
                                ADD ;
1874
                                DUP 6 ;
1875
                                PUSH nat 48 ;
1876
                                DUP 11 ;
1877
                                GET 5 ;
1878
                                CDR ;
1879
                                LSL ;
1880
                                SUB ;
1881
                                ABS ;
1882
                                DUP 10 ;
1883
                                GET 7 ;
1884
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
1885
                                DUP 10 ;
1886
                                MUL ;
1887
                                DUP 11 ;
1888
                                CAR ;
1889
                                GET 3 ;
1890
                                CAR ;
1891
                                DUP 11 ;
1892
                                MUL ;
1893
                                ADD ;
1894
                                ADD ;
1895
                                MUL ;
1896
                                MUL ;
1897
                                MUL ;
1898
                                INT ;
1899
                                SUB ;
1900
                                ABS ;
1901
                                PAIR ;
1902
                                DUP ;
1903
                                CAR ;
1904
                                SWAP ;
1905
                                DUP ;
1906
                                DUG 2 ;
1907
                                CDR ;
1908
                                DUP ;
1909
                                PUSH nat 48 ;
1910
                                DUP 9 ;
1911
                                GET 5 ;
1912
                                CDR ;
1913
                                LSL ;
1914
                                DUP 9 ;
1915
                                CAR ;
1916
                                GET 3 ;
1917
                                CAR ;
1918
                                DUP 9 ;
1919
                                MUL ;
1920
                                SUB ;
1921
                                PUSH nat 48 ;
1922
                                DUP 10 ;
1923
                                GET 5 ;
1924
                                CDR ;
1925
                                LSL ;
1926
                                DUP 10 ;
1927
                                CAR ;
1928
                                GET 3 ;
1929
                                CAR ;
1930
                                DUP 10 ;
1931
                                MUL ;
1932
                                SUB ;
1933
                                MUL ;
1934
                                PUSH nat 48 ;
1935
                                DUP 10 ;
1936
                                GET 5 ;
1937
                                CDR ;
1938
                                LSL ;
1939
                                DUP 10 ;
1940
                                CAR ;
1941
                                GET 3 ;
1942
                                CAR ;
1943
                                DUP 10 ;
1944
                                MUL ;
1945
                                SUB ;
1946
                                PUSH nat 48 ;
1947
                                DUP 11 ;
1948
                                GET 5 ;
1949
                                CDR ;
1950
                                LSL ;
1951
                                DUP 11 ;
1952
                                CAR ;
1953
                                GET 3 ;
1954
                                CAR ;
1955
                                DUP 11 ;
1956
                                MUL ;
1957
                                SUB ;
1958
                                MUL ;
1959
                                MUL ;
1960
                                PUSH nat 48 ;
1961
                                DUP 10 ;
1962
                                GET 5 ;
1963
                                CDR ;
1964
                                LSL ;
1965
                                DUP 10 ;
1966
                                CAR ;
1967
                                GET 3 ;
1968
                                CAR ;
1969
                                DUP 10 ;
1970
                                MUL ;
1971
                                SUB ;
1972
                                PUSH nat 48 ;
1973
                                DUP 11 ;
1974
                                GET 5 ;
1975
                                CDR ;
1976
                                LSL ;
1977
                                DUP 11 ;
1978
                                CAR ;
1979
                                GET 3 ;
1980
                                CAR ;
1981
                                DUP 11 ;
1982
                                MUL ;
1983
                                SUB ;
1984
                                MUL ;
1985
                                PUSH nat 48 ;
1986
                                DUP 11 ;
1987
                                GET 5 ;
1988
                                CDR ;
1989
                                LSL ;
1990
                                DUP 11 ;
1991
                                CAR ;
1992
                                GET 3 ;
1993
                                CAR ;
1994
                                DUP 11 ;
1995
                                MUL ;
1996
                                SUB ;
1997
                                PUSH nat 48 ;
1998
                                DUP 12 ;
1999
                                GET 5 ;
2000
                                CDR ;
2001
                                LSL ;
2002
                                DUP 12 ;
2003
                                CAR ;
2004
                                GET 3 ;
2005
                                CAR ;
2006
                                DUP 12 ;
2007
                                MUL ;
2008
                                SUB ;
2009
                                MUL ;
2010
                                MUL ;
2011
                                MUL ;
2012
                                PUSH nat 48 ;
2013
                                DUP 10 ;
2014
                                GET 5 ;
2015
                                CDR ;
2016
                                LSL ;
2017
                                DUP 10 ;
2018
                                CAR ;
2019
                                GET 3 ;
2020
                                CAR ;
2021
                                DUP 10 ;
2022
                                MUL ;
2023
                                ADD ;
2024
                                PUSH nat 48 ;
2025
                                DUP 11 ;
2026
                                GET 5 ;
2027
                                CDR ;
2028
                                LSL ;
2029
                                DUP 11 ;
2030
                                CAR ;
2031
                                GET 3 ;
2032
                                CAR ;
2033
                                DUP 11 ;
2034
                                MUL ;
2035
                                ADD ;
2036
                                MUL ;
2037
                                PUSH nat 48 ;
2038
                                DUP 11 ;
2039
                                GET 5 ;
2040
                                CDR ;
2041
                                LSL ;
2042
                                DUP 11 ;
2043
                                CAR ;
2044
                                GET 3 ;
2045
                                CAR ;
2046
                                DUP 11 ;
2047
                                MUL ;
2048
                                ADD ;
2049
                                PUSH nat 48 ;
2050
                                DUP 12 ;
2051
                                GET 5 ;
2052
                                CDR ;
2053
                                LSL ;
2054
                                DUP 12 ;
2055
                                CAR ;
2056
                                GET 3 ;
2057
                                CAR ;
2058
                                DUP 12 ;
2059
                                MUL ;
2060
                                ADD ;
2061
                                MUL ;
2062
                                MUL ;
2063
                                PUSH nat 48 ;
2064
                                DUP 11 ;
2065
                                GET 5 ;
2066
                                CDR ;
2067
                                LSL ;
2068
                                DUP 11 ;
2069
                                CAR ;
2070
                                GET 3 ;
2071
                                CAR ;
2072
                                DUP 11 ;
2073
                                MUL ;
2074
                                ADD ;
2075
                                PUSH nat 48 ;
2076
                                DUP 12 ;
2077
                                GET 5 ;
2078
                                CDR ;
2079
                                LSL ;
2080
                                DUP 12 ;
2081
                                CAR ;
2082
                                GET 3 ;
2083
                                CAR ;
2084
                                DUP 12 ;
2085
                                MUL ;
2086
                                ADD ;
2087
                                MUL ;
2088
                                PUSH nat 48 ;
2089
                                DUP 12 ;
2090
                                GET 5 ;
2091
                                CDR ;
2092
                                LSL ;
2093
                                DUP 12 ;
2094
                                CAR ;
2095
                                GET 3 ;
2096
                                CAR ;
2097
                                DUP 12 ;
2098
                                MUL ;
2099
                                ADD ;
2100
                                PUSH nat 48 ;
2101
                                DUP 13 ;
2102
                                GET 5 ;
2103
                                CDR ;
2104
                                LSL ;
2105
                                DUP 13 ;
2106
                                CAR ;
2107
                                GET 3 ;
2108
                                CAR ;
2109
                                DUP 13 ;
2110
                                MUL ;
2111
                                ADD ;
2112
                                MUL ;
2113
                                MUL ;
2114
                                MUL ;
2115
                                INT ;
2116
                                SUB ;
2117
                                ABS ;
2118
                                DUP 4 ;
2119
                                SUB ;
2120
                                ABS ;
2121
                                EDIV ;
2122
                                IF_NONE { PUSH int 101 ; FAILWITH } { CAR } ;
2123
                                DIG 4 ;
2124
                                ADD ;
2125
                                DUG 3 ;
2126
                                PUSH int 1 ;
2127
                                DIG 5 ;
2128
                                SUB ;
2129
                                DUG 4 ;
2130
                                PUSH int 0 ;
2131
                                DUP 6 ;
2132
                                COMPARE ;
2133
                                NEQ } ;
2134
                         DROP 3 ;
2135
                         SWAP ;
2136
                         DROP ;
2137
                         SWAP ;
2138
                         DROP ;
2139
                         DIG 2 ;
2140
                         DROP ;
2141
                         SWAP ;
2142
                         DUP ;
2143
                         DUG 2 ;
2144
                         CAR ;
2145
                         GET 5 ;
2146
                         PUSH nat 48 ;
2147
                         DUP 3 ;
2148
                         LSR ;
2149
                         EDIV ;
2150
                         IF_NONE { PUSH int 309 ; FAILWITH } { CAR } ;
2151
                         DUP 3 ;
2152
                         GET 3 ;
2153
                         CAR ;
2154
                         CAR ;
2155
                         IF_NONE { PUSH int 311 ; FAILWITH } {} ;
2156
                         SWAP ;
2157
                         DUP ;
2158
                         DUG 2 ;
2159
                         PUSH nat 48 ;
2160
                         DUP 5 ;
2161
                         LSR ;
2162
                         SUB ;
2163
                         ABS ;
2164
                         COMPARE ;
2165
                         GE ;
2166
                         IF {} { PUSH string "FlatSwap_Min_Tez_Error" ; FAILWITH } ;
2167
                         DUP 3 ;
2168
                         GET 5 ;
2169
                         CDR ;
2170
                         SWAP ;
2171
                         DUP ;
2172
                         DUG 2 ;
2173
                         PUSH nat 48 ;
2174
                         DUP 5 ;
2175
                         LSR ;
2176
                         SUB ;
2177
                         ABS ;
2178
                         COMPARE ;
2179
                         LT ;
2180
                         IF
2181
                           {}
2182
                           { PUSH string "FlatSwap_Tez_Bought_Exceeds_Pool" ; FAILWITH } ;
2183
                         DUP 3 ;
2184
                         UNPAIR ;
2185
                         UNPAIR ;
2186
                         SWAP ;
2187
                         UNPAIR ;
2188
                         UNPAIR ;
2189
                         DIG 7 ;
2190
                         GET 7 ;
2191
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
2192
                         ADD ;
2193
                         PAIR ;
2194
                         PAIR ;
2195
                         SWAP ;
2196
                         PAIR ;
2197
                         PAIR ;
2198
                         DUP ;
2199
                         DUG 3 ;
2200
                         GET 5 ;
2201
                         CAR ;
2202
                         IF
2203
                           { DUP 3 ;
2204
                             UNPAIR ;
2205
                             SWAP ;
2206
                             UNPAIR ;
2207
                             SWAP ;
2208
                             UNPAIR ;
2209
                             CAR ;
2210
                             PUSH nat 48 ;
2211
                             DUP 7 ;
2212
                             LSR ;
2213
                             DIG 7 ;
2214
                             GET 5 ;
2215
                             CDR ;
2216
                             SUB ;
2217
                             ISNAT ;
2218
                             IF_NONE { PUSH int 318 ; FAILWITH } {} ;
2219
                             SWAP ;
2220
                             PAIR ;
2221
                             PAIR ;
2222
                             SWAP ;
2223
                             PAIR ;
2224
                             SWAP ;
2225
                             PAIR ;
2226
                             DUP ;
2227
                             GET 10 ;
2228
                             DUP 3 ;
2229
                             ADD ;
2230
                             UPDATE 10 ;
2231
                             DUG 2 }
2232
                           { DUP 3 ;
2233
                             UNPAIR ;
2234
                             SWAP ;
2235
                             UNPAIR ;
2236
                             SWAP ;
2237
                             UNPAIR ;
2238
                             CAR ;
2239
                             DUP 5 ;
2240
                             PUSH nat 48 ;
2241
                             DUP 8 ;
2242
                             LSR ;
2243
                             SUB ;
2244
                             ABS ;
2245
                             DIG 7 ;
2246
                             GET 5 ;
2247
                             CDR ;
2248
                             SUB ;
2249
                             ISNAT ;
2250
                             IF_NONE { PUSH int 324 ; FAILWITH } {} ;
2251
                             SWAP ;
2252
                             PAIR ;
2253
                             PAIR ;
2254
                             SWAP ;
2255
                             PAIR ;
2256
                             SWAP ;
2257
                             PAIR ;
2258
                             DUG 2 } ;
2259
                         NIL operation ;
2260
                         DUP 4 ;
2261
                         CAR ;
2262
                         CAR ;
2263
                         GET 3 ;
2264
                         CONTRACT %transfer (pair (address %from)
2265
                                                  (pair (address %to) (nat %value))) ;
2266
                         IF_NONE { PUSH int 65 ; FAILWITH } {} ;
2267
                         PUSH mutez 0 ;
2268
                         DUP 6 ;
2269
                         GET 7 ;
2270
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
2271
                         SELF_ADDRESS ;
2272
                         DUP 8 ;
2273
                         GET 3 ;
2274
                         GET 4 ;
2275
                         IF_NONE { PUSH int 326 ; FAILWITH } {} ;
2276
                         PAIR 3 ;
2277
                         TRANSFER_TOKENS ;
2278
                         CONS ;
2279
                         DUP 4 ;
2280
                         GET 3 ;
2281
                         GET 3 ;
2282
                         IF_NONE { PUSH int 328 ; FAILWITH } {} ;
2283
                         CONTRACT unit ;
2284
                         IF_NONE { PUSH int 62 ; FAILWITH } {} ;
2285
                         PUSH mutez 1 ;
2286
                         DIG 3 ;
2287
                         PUSH nat 48 ;
2288
                         DIG 5 ;
2289
                         LSR ;
2290
                         SUB ;
2291
                         ABS ;
2292
                         MUL ;
2293
                         UNIT ;
2294
                         TRANSFER_TOKENS ;
2295
                         CONS ;
2296
                         SWAP ;
2297
                         UNPAIR ;
2298
                         SWAP ;
2299
                         UNPAIR ;
2300
                         CAR ;
2301
                         NONE address ;
2302
                         NONE address ;
2303
                         SWAP ;
2304
                         PAIR ;
2305
                         SWAP ;
2306
                         CDR ;
2307
                         NONE nat ;
2308
                         PAIR ;
2309
                         PAIR ;
2310
                         PAIR ;
2311
                         SWAP ;
2312
                         PAIR ;
2313
                         NONE nat ;
2314
                         UPDATE 7 ;
2315
                         DUP ;
2316
                         DUG 2 ;
2317
                         UNPAIR ;
2318
                         UNPAIR ;
2319
                         UNPAIR ;
2320
                         CDR ;
2321
                         DIG 5 ;
2322
                         CAR ;
2323
                         CAR ;
2324
                         CAR ;
2325
                         CAR ;
2326
                         NOT ;
2327
                         PAIR ;
2328
                         PAIR ;
2329
                         PAIR ;
2330
                         PAIR ;
2331
                         SWAP }
2332
                       { DROP ;
2333
                         SWAP ;
2334
                         DROP ;
2335
                         DUP ;
2336
                         GET 5 ;
2337
                         CAR ;
2338
                         IF
2339
                           { DUP ;
2340
                             GET 10 ;
2341
                             PUSH mutez 1 ;
2342
                             AMOUNT ;
2343
                             EDIV ;
2344
                             IF_NONE { UNIT ; FAILWITH } {} ;
2345
                             CAR ;
2346
                             ADD ;
2347
                             UPDATE 10 ;
2348
                             NIL operation }
2349
                           { DUP ;
2350
                             CAR ;
2351
                             CAR ;
2352
                             CAR ;
2353
                             CDR ;
2354
                             CONTRACT unit ;
2355
                             IF_NONE { PUSH int 144 ; FAILWITH } {} ;
2356
                             NIL operation ;
2357
                             SWAP ;
2358
                             AMOUNT ;
2359
                             UNIT ;
2360
                             TRANSFER_TOKENS ;
2361
                             CONS } } } }
2362
               { IF_LEFT
2363
                   { IF_LEFT
2364
                       { DIG 2 ;
2365
                         DROP ;
2366
                         SWAP ;
2367
                         DUP ;
2368
                         DUG 2 ;
2369
                         GET 5 ;
2370
                         CAR ;
2371
                         IF {} { PUSH string "FlatSwap_Invalid_State" ; FAILWITH } ;
2372
                         SWAP ;
2373
                         DUP ;
2374
                         DUG 2 ;
2375
                         GET 9 ;
2376
                         IF_NONE { PUSH int 385 ; FAILWITH } {} ;
2377
                         SENDER ;
2378
                         COMPARE ;
2379
                         EQ ;
2380
                         IF {} { PUSH string "FlatSwap_Not_Voter" ; FAILWITH } ;
2381
                         PUSH nat 0 ;
2382
                         DUP 3 ;
2383
                         GET 10 ;
2384
                         COMPARE ;
2385
                         NEQ ;
2386
                         IF
2387
                           { DUP ;
2388
                             CDR ;
2389
                             CONTRACT unit ;
2390
                             IF_NONE { PUSH int 62 ; FAILWITH } {} ;
2391
                             NIL operation ;
2392
                             SWAP ;
2393
                             PUSH mutez 1 ;
2394
                             DUP 5 ;
2395
                             GET 10 ;
2396
                             MUL ;
2397
                             UNIT ;
2398
                             TRANSFER_TOKENS ;
2399
                             CONS }
2400
                           { NIL operation } ;
2401
                         PUSH nat 0 ;
2402
                         DUP 4 ;
2403
                         CAR ;
2404
                         CAR ;
2405
                         GET 4 ;
2406
                         COMPARE ;
2407
                         NEQ ;
2408
                         IF
2409
                           { DUP 3 ;
2410
                             CAR ;
2411
                             CAR ;
2412
                             GET 3 ;
2413
                             CONTRACT %transfer (pair (address %from)
2414
                                                      (pair (address %to) (nat %value))) ;
2415
                             IF_NONE { PUSH int 65 ; FAILWITH } {} ;
2416
                             PUSH mutez 0 ;
2417
                             DUP 5 ;
2418
                             CAR ;
2419
                             CAR ;
2420
                             GET 4 ;
2421
                             DUP 5 ;
2422
                             CDR ;
2423
                             SELF_ADDRESS ;
2424
                             PAIR 3 ;
2425
                             TRANSFER_TOKENS ;
2426
                             CONS }
2427
                           {} ;
2428
                         SWAP ;
2429
                         DUP ;
2430
                         DUG 2 ;
2431
                         CDR ;
2432
                         CONTRACT %add_fees (pair (nat %epoch)
2433
                                                  (map %fees
2434
                                                    (or (address %fa12)
2435
                                                        (or (pair %fa2 address nat)
2436
                                                            (unit %tez)))
2437
                                                    nat)) ;
2438
                         IF_NONE { PUSH int 409 ; FAILWITH } {} ;
2439
                         PUSH mutez 0 ;
2440
                         EMPTY_MAP (or address (or (pair address nat) unit)) nat ;
2441
                         DUP 6 ;
2442
                         GET 10 ;
2443
                         SOME ;
2444
                         PUSH (or address (or (pair address nat) unit)) (Right (Right Unit)) ;
2445
                         UPDATE ;
2446
                         DUP 6 ;
2447
                         CAR ;
2448
                         CAR ;
2449
                         GET 4 ;
2450
                         SOME ;
2451
                         DUP 7 ;
2452
                         CAR ;
2453
                         CAR ;
2454
                         GET 3 ;
2455
                         LEFT (or (pair address nat) unit) ;
2456
                         UPDATE ;
2457
                         DIG 4 ;
2458
                         CAR ;
2459
                         PAIR ;
2460
                         TRANSFER_TOKENS ;
2461
                         CONS ;
2462
                         SWAP ;
2463
                         PUSH nat 0 ;
2464
                         UPDATE 10 ;
2465
                         UNPAIR ;
2466
                         UNPAIR ;
2467
                         UNPAIR ;
2468
                         SWAP ;
2469
                         CAR ;
2470
                         PUSH nat 0 ;
2471
                         SWAP ;
2472
                         PAIR ;
2473
                         SWAP ;
2474
                         PAIR ;
2475
                         PAIR ;
2476
                         PAIR ;
2477
                         SWAP }
2478
                       { DIG 2 ;
2479
                         DROP ;
2480
                         SWAP ;
2481
                         DUP ;
2482
                         CAR ;
2483
                         GET 8 ;
2484
                         SWAP ;
2485
                         DUP ;
2486
                         DUG 3 ;
2487
                         GET 5 ;
2488
                         CDR ;
2489
                         DUP 3 ;
2490
                         CAR ;
2491
                         MUL ;
2492
                         EDIV ;
2493
                         IF_NONE { PUSH int 192 ; FAILWITH } { CAR } ;
2494
                         DIG 2 ;
2495
                         DUP ;
2496
                         CAR ;
2497
                         GET 8 ;
2498
                         SWAP ;
2499
                         DUP ;
2500
                         DUG 4 ;
2501
                         CAR ;
2502
                         GET 3 ;
2503
                         CAR ;
2504
                         DUP 4 ;
2505
                         CAR ;
2506
                         MUL ;
2507
                         EDIV ;
2508
                         IF_NONE { PUSH int 193 ; FAILWITH } { CAR } ;
2509
                         DUP 3 ;
2510
                         GET 4 ;
2511
                         DUP 3 ;
2512
                         COMPARE ;
2513
                         GE ;
2514
                         IF {} { PUSH string "FlatSwap_Min_Tez_Error" ; FAILWITH } ;
2515
                         DUP 3 ;
2516
                         GET 3 ;
2517
                         SWAP ;
2518
                         DUP ;
2519
                         DUG 2 ;
2520
                         COMPARE ;
2521
                         GE ;
2522
                         IF {} { PUSH string "FlatSwap_Min_Cash_Error" ; FAILWITH } ;
2523
                         DUP 4 ;
2524
                         CAR ;
2525
                         GET 8 ;
2526
                         DUP 4 ;
2527
                         CAR ;
2528
                         COMPARE ;
2529
                         LT ;
2530
                         IF {} { PUSH string "FlatSwap_Lqt_Burned_Error" ; FAILWITH } ;
2531
                         DUP 4 ;
2532
                         GET 5 ;
2533
                         CDR ;
2534
                         DUP 3 ;
2535
                         COMPARE ;
2536
                         LT ;
2537
                         IF
2538
                           {}
2539
                           { PUSH string "FlatSwap_Tez_Bought_Exceeds_Pool" ; FAILWITH } ;
2540
                         DUP 4 ;
2541
                         CAR ;
2542
                         GET 3 ;
2543
                         CAR ;
2544
                         SWAP ;
2545
                         DUP ;
2546
                         DUG 2 ;
2547
                         COMPARE ;
2548
                         LT ;
2549
                         IF
2550
                           {}
2551
                           { PUSH string "FlatSwap_Cash_Bought_Exceeds_Pool" ; FAILWITH } ;
2552
                         DUP 4 ;
2553
                         UNPAIR ;
2554
                         SWAP ;
2555
                         UNPAIR ;
2556
                         SWAP ;
2557
                         UNPAIR ;
2558
                         CAR ;
2559
                         DUP 6 ;
2560
                         DIG 8 ;
2561
                         GET 5 ;
2562
                         CDR ;
2563
                         SUB ;
2564
                         ABS ;
2565
                         SWAP ;
2566
                         PAIR ;
2567
                         PAIR ;
2568
                         SWAP ;
2569
                         PAIR ;
2570
                         SWAP ;
2571
                         PAIR ;
2572
                         DUP ;
2573
                         DUG 4 ;
2574
                         UNPAIR ;
2575
                         UNPAIR ;
2576
                         SWAP ;
2577
                         UNPAIR ;
2578
                         CDR ;
2579
                         DUP 5 ;
2580
                         DIG 8 ;
2581
                         CAR ;
2582
                         GET 3 ;
2583
                         CAR ;
2584
                         SUB ;
2585
                         ABS ;
2586
                         PAIR ;
2587
                         PAIR ;
2588
                         SWAP ;
2589
                         PAIR ;
2590
                         PAIR ;
2591
                         DUP ;
2592
                         DUG 4 ;
2593
                         UNPAIR ;
2594
                         UNPAIR ;
2595
                         SWAP ;
2596
                         UNPAIR ;
2597
                         SWAP ;
2598
                         UNPAIR ;
2599
                         SWAP ;
2600
                         CAR ;
2601
                         DUP 8 ;
2602
                         CAR ;
2603
                         DIG 9 ;
2604
                         CAR ;
2605
                         GET 8 ;
2606
                         SUB ;
2607
                         ABS ;
2608
                         SWAP ;
2609
                         PAIR ;
2610
                         SWAP ;
2611
                         PAIR ;
2612
                         SWAP ;
2613
                         PAIR ;
2614
                         SWAP ;
2615
                         PAIR ;
2616
                         PAIR ;
2617
                         DUG 3 ;
2618
                         NIL operation ;
2619
                         DUP 5 ;
2620
                         CAR ;
2621
                         GET 7 ;
2622
                         CONTRACT %burn (pair (address %address) (nat %value)) ;
2623
                         IF_NONE { PUSH int 69 ; FAILWITH } {} ;
2624
                         PUSH mutez 0 ;
2625
                         DIG 5 ;
2626
                         CAR ;
2627
                         SENDER ;
2628
                         PAIR ;
2629
                         TRANSFER_TOKENS ;
2630
                         CONS ;
2631
                         DUP 4 ;
2632
                         CAR ;
2633
                         CAR ;
2634
                         GET 3 ;
2635
                         CONTRACT %transfer (pair (address %from)
2636
                                                  (pair (address %to) (nat %value))) ;
2637
                         IF_NONE { PUSH int 65 ; FAILWITH } {} ;
2638
                         PUSH mutez 0 ;
2639
                         DIG 3 ;
2640
                         SENDER ;
2641
                         SELF_ADDRESS ;
2642
                         PAIR 3 ;
2643
                         TRANSFER_TOKENS ;
2644
                         CONS ;
2645
                         SENDER ;
2646
                         CONTRACT unit ;
2647
                         IF_NONE { PUSH int 62 ; FAILWITH } {} ;
2648
                         PUSH mutez 1 ;
2649
                         DIG 3 ;
2650
                         MUL ;
2651
                         UNIT ;
2652
                         TRANSFER_TOKENS ;
2653
                         CONS } }
2654
                   { IF_LEFT
2655
                       { DIG 2 ;
2656
                         DROP ;
2657
                         SWAP ;
2658
                         DUP ;
2659
                         DUG 2 ;
2660
                         GET 3 ;
2661
                         CAR ;
2662
                         CDR ;
2663
                         IF { PUSH string "FlatSwap_Paused_State" ; FAILWITH } {} ;
2664
                         PUSH mutez 0 ;
2665
                         AMOUNT ;
2666
                         COMPARE ;
2667
                         GT ;
2668
                         IF
2669
                           {}
2670
                           { PUSH string "FlatSwap_Zero_Amount_Transfer" ; FAILWITH } ;
2671
                         SWAP ;
2672
                         UNPAIR ;
2673
                         SWAP ;
2674
                         UNPAIR ;
2675
                         UNPAIR ;
2676
                         SWAP ;
2677
                         CDR ;
2678
                         DUP 5 ;
2679
                         CDR ;
2680
                         SOME ;
2681
                         PAIR ;
2682
                         SWAP ;
2683
                         CDR ;
2684
                         DIG 4 ;
2685
                         CAR ;
2686
                         SOME ;
2687
                         PAIR ;
2688
                         PAIR ;
2689
                         PAIR ;
2690
                         SWAP ;
2691
                         PAIR ;
2692
                         PUSH mutez 1 ;
2693
                         AMOUNT ;
2694
                         EDIV ;
2695
                         IF_NONE { UNIT ; FAILWITH } {} ;
2696
                         CAR ;
2697
                         SOME ;
2698
                         UPDATE 7 ;
2699
                         DUP ;
2700
                         UNPAIR ;
2701
                         UNPAIR ;
2702
                         UNPAIR ;
2703
                         CDR ;
2704
                         DIG 4 ;
2705
                         CAR ;
2706
                         CAR ;
2707
                         CAR ;
2708
                         CAR ;
2709
                         NOT ;
2710
                         PAIR ;
2711
                         PAIR ;
2712
                         PAIR ;
2713
                         PAIR ;
2714
                         DUP ;
2715
                         CAR ;
2716
                         GET 3 ;
2717
                         CDR ;
2718
                         CONTRACT %get_target (contract nat) ;
2719
                         IF_NONE { PUSH int 225 ; FAILWITH } {} ;
2720
                         NIL operation ;
2721
                         SWAP ;
2722
                         PUSH mutez 0 ;
2723
                         SELF %tez_to_ctez_callback ;
2724
                         TRANSFER_TOKENS ;
2725
                         CONS }
2726
                       { SWAP ;
2727
                         DUP ;
2728
                         DUG 2 ;
2729
                         CAR ;
2730
                         CAR ;
2731
                         CAR ;
2732
                         CAR ;
2733
                         IF
2734
                           {}
2735
                           { PUSH string "WrongCondition: self.data.Locked" ; FAILWITH } ;
2736
                         SWAP ;
2737
                         DUP ;
2738
                         DUG 2 ;
2739
                         GET 3 ;
2740
                         GET 3 ;
2741
                         IF_NONE
2742
                           { PUSH string "WrongCondition: self.data.recipient.is_some()" ;
2743
                             FAILWITH }
2744
                           { DROP } ;
2745
                         SWAP ;
2746
                         DUP ;
2747
                         DUG 2 ;
2748
                         GET 7 ;
2749
                         IF_NONE
2750
                           { PUSH string "WrongCondition: self.data.tradeAmount.is_some()" ;
2751
                             FAILWITH }
2752
                           { DROP } ;
2753
                         SWAP ;
2754
                         DUP ;
2755
                         DUG 2 ;
2756
                         GET 3 ;
2757
                         CAR ;
2758
                         CAR ;
2759
                         IF_NONE
2760
                           { PUSH string "WrongCondition: self.data.minAmount.is_some()" ;
2761
                             FAILWITH }
2762
                           { DROP } ;
2763
                         PUSH int 5 ;
2764
                         PUSH nat 0 ;
2765
                         DUP ;
2766
                         DUP 5 ;
2767
                         CAR ;
2768
                         GET 3 ;
2769
                         CAR ;
2770
                         DUP 5 ;
2771
                         MUL ;
2772
                         SUB ;
2773
                         ABS ;
2774
                         PUSH nat 48 ;
2775
                         DUP 6 ;
2776
                         GET 7 ;
2777
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
2778
                         LSL ;
2779
                         PUSH nat 48 ;
2780
                         DUP 7 ;
2781
                         GET 5 ;
2782
                         CDR ;
2783
                         LSL ;
2784
                         ADD ;
2785
                         ADD ;
2786
                         SWAP ;
2787
                         DUP ;
2788
                         DUG 2 ;
2789
                         DUP 6 ;
2790
                         CAR ;
2791
                         GET 3 ;
2792
                         CAR ;
2793
                         DUP 6 ;
2794
                         MUL ;
2795
                         SUB ;
2796
                         ABS ;
2797
                         PUSH nat 48 ;
2798
                         DUP 7 ;
2799
                         GET 7 ;
2800
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
2801
                         LSL ;
2802
                         PUSH nat 48 ;
2803
                         DUP 8 ;
2804
                         GET 5 ;
2805
                         CDR ;
2806
                         LSL ;
2807
                         ADD ;
2808
                         ADD ;
2809
                         DUP 3 ;
2810
                         DUP 7 ;
2811
                         CAR ;
2812
                         GET 3 ;
2813
                         CAR ;
2814
                         DUP 7 ;
2815
                         MUL ;
2816
                         SUB ;
2817
                         ABS ;
2818
                         PUSH nat 48 ;
2819
                         DUP 8 ;
2820
                         GET 7 ;
2821
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
2822
                         LSL ;
2823
                         PUSH nat 48 ;
2824
                         DUP 9 ;
2825
                         GET 5 ;
2826
                         CDR ;
2827
                         LSL ;
2828
                         ADD ;
2829
                         ADD ;
2830
                         MUL ;
2831
                         DUP 3 ;
2832
                         DUP 7 ;
2833
                         CAR ;
2834
                         GET 3 ;
2835
                         CAR ;
2836
                         DUP 7 ;
2837
                         MUL ;
2838
                         SUB ;
2839
                         ABS ;
2840
                         PUSH nat 48 ;
2841
                         DUP 8 ;
2842
                         GET 7 ;
2843
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
2844
                         LSL ;
2845
                         PUSH nat 48 ;
2846
                         DUP 9 ;
2847
                         GET 5 ;
2848
                         CDR ;
2849
                         LSL ;
2850
                         ADD ;
2851
                         ADD ;
2852
                         DUP 4 ;
2853
                         DUP 8 ;
2854
                         CAR ;
2855
                         GET 3 ;
2856
                         CAR ;
2857
                         DUP 8 ;
2858
                         MUL ;
2859
                         SUB ;
2860
                         ABS ;
2861
                         PUSH nat 48 ;
2862
                         DUP 9 ;
2863
                         GET 7 ;
2864
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
2865
                         LSL ;
2866
                         PUSH nat 48 ;
2867
                         DUP 10 ;
2868
                         GET 5 ;
2869
                         CDR ;
2870
                         LSL ;
2871
                         ADD ;
2872
                         ADD ;
2873
                         MUL ;
2874
                         DUP 4 ;
2875
                         DUP 8 ;
2876
                         CAR ;
2877
                         GET 3 ;
2878
                         CAR ;
2879
                         DUP 8 ;
2880
                         MUL ;
2881
                         SUB ;
2882
                         ABS ;
2883
                         PUSH nat 48 ;
2884
                         DUP 9 ;
2885
                         GET 7 ;
2886
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
2887
                         LSL ;
2888
                         PUSH nat 48 ;
2889
                         DUP 10 ;
2890
                         GET 5 ;
2891
                         CDR ;
2892
                         LSL ;
2893
                         ADD ;
2894
                         ADD ;
2895
                         DUP 5 ;
2896
                         DUP 9 ;
2897
                         CAR ;
2898
                         GET 3 ;
2899
                         CAR ;
2900
                         DUP 9 ;
2901
                         MUL ;
2902
                         SUB ;
2903
                         ABS ;
2904
                         PUSH nat 48 ;
2905
                         DUP 10 ;
2906
                         GET 7 ;
2907
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
2908
                         LSL ;
2909
                         PUSH nat 48 ;
2910
                         DUP 11 ;
2911
                         GET 5 ;
2912
                         CDR ;
2913
                         LSL ;
2914
                         ADD ;
2915
                         ADD ;
2916
                         MUL ;
2917
                         MUL ;
2918
                         MUL ;
2919
                         MUL ;
2920
                         INT ;
2921
                         SWAP ;
2922
                         DUP ;
2923
                         DUG 2 ;
2924
                         DUP 6 ;
2925
                         CAR ;
2926
                         GET 3 ;
2927
                         CAR ;
2928
                         DUP 6 ;
2929
                         MUL ;
2930
                         SUB ;
2931
                         ABS ;
2932
                         PUSH nat 48 ;
2933
                         DUP 7 ;
2934
                         GET 7 ;
2935
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
2936
                         LSL ;
2937
                         PUSH nat 48 ;
2938
                         DUP 8 ;
2939
                         GET 5 ;
2940
                         CDR ;
2941
                         LSL ;
2942
                         ADD ;
2943
                         SUB ;
2944
                         DUP 3 ;
2945
                         DUP 7 ;
2946
                         CAR ;
2947
                         GET 3 ;
2948
                         CAR ;
2949
                         DUP 7 ;
2950
                         MUL ;
2951
                         SUB ;
2952
                         ABS ;
2953
                         PUSH nat 48 ;
2954
                         DUP 8 ;
2955
                         GET 7 ;
2956
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
2957
                         LSL ;
2958
                         PUSH nat 48 ;
2959
                         DUP 9 ;
2960
                         GET 5 ;
2961
                         CDR ;
2962
                         LSL ;
2963
                         ADD ;
2964
                         SUB ;
2965
                         DUP 4 ;
2966
                         DUP 8 ;
2967
                         CAR ;
2968
                         GET 3 ;
2969
                         CAR ;
2970
                         DUP 8 ;
2971
                         MUL ;
2972
                         SUB ;
2973
                         ABS ;
2974
                         PUSH nat 48 ;
2975
                         DUP 9 ;
2976
                         GET 7 ;
2977
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
2978
                         LSL ;
2979
                         PUSH nat 48 ;
2980
                         DUP 10 ;
2981
                         GET 5 ;
2982
                         CDR ;
2983
                         LSL ;
2984
                         ADD ;
2985
                         SUB ;
2986
                         MUL ;
2987
                         DUP 4 ;
2988
                         DUP 8 ;
2989
                         CAR ;
2990
                         GET 3 ;
2991
                         CAR ;
2992
                         DUP 8 ;
2993
                         MUL ;
2994
                         SUB ;
2995
                         ABS ;
2996
                         PUSH nat 48 ;
2997
                         DUP 9 ;
2998
                         GET 7 ;
2999
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3000
                         LSL ;
3001
                         PUSH nat 48 ;
3002
                         DUP 10 ;
3003
                         GET 5 ;
3004
                         CDR ;
3005
                         LSL ;
3006
                         ADD ;
3007
                         SUB ;
3008
                         DUP 5 ;
3009
                         DUP 9 ;
3010
                         CAR ;
3011
                         GET 3 ;
3012
                         CAR ;
3013
                         DUP 9 ;
3014
                         MUL ;
3015
                         SUB ;
3016
                         ABS ;
3017
                         PUSH nat 48 ;
3018
                         DUP 10 ;
3019
                         GET 7 ;
3020
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3021
                         LSL ;
3022
                         PUSH nat 48 ;
3023
                         DUP 11 ;
3024
                         GET 5 ;
3025
                         CDR ;
3026
                         LSL ;
3027
                         ADD ;
3028
                         SUB ;
3029
                         MUL ;
3030
                         DUP 5 ;
3031
                         DUP 9 ;
3032
                         CAR ;
3033
                         GET 3 ;
3034
                         CAR ;
3035
                         DUP 9 ;
3036
                         MUL ;
3037
                         SUB ;
3038
                         ABS ;
3039
                         PUSH nat 48 ;
3040
                         DUP 10 ;
3041
                         GET 7 ;
3042
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3043
                         LSL ;
3044
                         PUSH nat 48 ;
3045
                         DUP 11 ;
3046
                         GET 5 ;
3047
                         CDR ;
3048
                         LSL ;
3049
                         ADD ;
3050
                         SUB ;
3051
                         DUP 6 ;
3052
                         DUP 10 ;
3053
                         CAR ;
3054
                         GET 3 ;
3055
                         CAR ;
3056
                         DUP 10 ;
3057
                         MUL ;
3058
                         SUB ;
3059
                         ABS ;
3060
                         PUSH nat 48 ;
3061
                         DUP 11 ;
3062
                         GET 7 ;
3063
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3064
                         LSL ;
3065
                         PUSH nat 48 ;
3066
                         DUP 12 ;
3067
                         GET 5 ;
3068
                         CDR ;
3069
                         LSL ;
3070
                         ADD ;
3071
                         SUB ;
3072
                         MUL ;
3073
                         MUL ;
3074
                         MUL ;
3075
                         MUL ;
3076
                         ADD ;
3077
                         ABS ;
3078
                         PUSH nat 8 ;
3079
                         MUL ;
3080
                         SWAP ;
3081
                         DUP ;
3082
                         DUG 2 ;
3083
                         DUP 6 ;
3084
                         CAR ;
3085
                         GET 3 ;
3086
                         CAR ;
3087
                         DUP 6 ;
3088
                         MUL ;
3089
                         SUB ;
3090
                         ABS ;
3091
                         PUSH nat 48 ;
3092
                         DUP 7 ;
3093
                         GET 7 ;
3094
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3095
                         LSL ;
3096
                         PUSH nat 48 ;
3097
                         DUP 8 ;
3098
                         GET 5 ;
3099
                         CDR ;
3100
                         LSL ;
3101
                         ADD ;
3102
                         SUB ;
3103
                         DUP 3 ;
3104
                         DUP 7 ;
3105
                         CAR ;
3106
                         GET 3 ;
3107
                         CAR ;
3108
                         DUP 7 ;
3109
                         MUL ;
3110
                         SUB ;
3111
                         ABS ;
3112
                         PUSH nat 48 ;
3113
                         DUP 8 ;
3114
                         GET 7 ;
3115
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3116
                         LSL ;
3117
                         PUSH nat 48 ;
3118
                         DUP 9 ;
3119
                         GET 5 ;
3120
                         CDR ;
3121
                         LSL ;
3122
                         ADD ;
3123
                         SUB ;
3124
                         MUL ;
3125
                         DUP 3 ;
3126
                         DUP 7 ;
3127
                         CAR ;
3128
                         GET 3 ;
3129
                         CAR ;
3130
                         DUP 7 ;
3131
                         MUL ;
3132
                         SUB ;
3133
                         ABS ;
3134
                         PUSH nat 48 ;
3135
                         DUP 8 ;
3136
                         GET 7 ;
3137
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3138
                         LSL ;
3139
                         PUSH nat 48 ;
3140
                         DUP 9 ;
3141
                         GET 5 ;
3142
                         CDR ;
3143
                         LSL ;
3144
                         ADD ;
3145
                         SUB ;
3146
                         DUP 4 ;
3147
                         DUP 8 ;
3148
                         CAR ;
3149
                         GET 3 ;
3150
                         CAR ;
3151
                         DUP 8 ;
3152
                         MUL ;
3153
                         SUB ;
3154
                         ABS ;
3155
                         PUSH nat 48 ;
3156
                         DUP 9 ;
3157
                         GET 7 ;
3158
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3159
                         LSL ;
3160
                         PUSH nat 48 ;
3161
                         DUP 10 ;
3162
                         GET 5 ;
3163
                         CDR ;
3164
                         LSL ;
3165
                         ADD ;
3166
                         SUB ;
3167
                         MUL ;
3168
                         MUL ;
3169
                         DUP 3 ;
3170
                         DUP 7 ;
3171
                         CAR ;
3172
                         GET 3 ;
3173
                         CAR ;
3174
                         DUP 7 ;
3175
                         MUL ;
3176
                         SUB ;
3177
                         ABS ;
3178
                         PUSH nat 48 ;
3179
                         DUP 8 ;
3180
                         GET 7 ;
3181
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3182
                         LSL ;
3183
                         PUSH nat 48 ;
3184
                         DUP 9 ;
3185
                         GET 5 ;
3186
                         CDR ;
3187
                         LSL ;
3188
                         ADD ;
3189
                         SUB ;
3190
                         DUP 4 ;
3191
                         DUP 8 ;
3192
                         CAR ;
3193
                         GET 3 ;
3194
                         CAR ;
3195
                         DUP 8 ;
3196
                         MUL ;
3197
                         SUB ;
3198
                         ABS ;
3199
                         PUSH nat 48 ;
3200
                         DUP 9 ;
3201
                         GET 7 ;
3202
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3203
                         LSL ;
3204
                         PUSH nat 48 ;
3205
                         DUP 10 ;
3206
                         GET 5 ;
3207
                         CDR ;
3208
                         LSL ;
3209
                         ADD ;
3210
                         SUB ;
3211
                         MUL ;
3212
                         DUP 4 ;
3213
                         DUP 8 ;
3214
                         CAR ;
3215
                         GET 3 ;
3216
                         CAR ;
3217
                         DUP 8 ;
3218
                         MUL ;
3219
                         SUB ;
3220
                         ABS ;
3221
                         PUSH nat 48 ;
3222
                         DUP 9 ;
3223
                         GET 7 ;
3224
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3225
                         LSL ;
3226
                         PUSH nat 48 ;
3227
                         DUP 10 ;
3228
                         GET 5 ;
3229
                         CDR ;
3230
                         LSL ;
3231
                         ADD ;
3232
                         SUB ;
3233
                         DUP 5 ;
3234
                         DUP 9 ;
3235
                         CAR ;
3236
                         GET 3 ;
3237
                         CAR ;
3238
                         DUP 9 ;
3239
                         MUL ;
3240
                         SUB ;
3241
                         ABS ;
3242
                         PUSH nat 48 ;
3243
                         DUP 10 ;
3244
                         GET 7 ;
3245
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3246
                         LSL ;
3247
                         PUSH nat 48 ;
3248
                         DUP 11 ;
3249
                         GET 5 ;
3250
                         CDR ;
3251
                         LSL ;
3252
                         ADD ;
3253
                         SUB ;
3254
                         MUL ;
3255
                         MUL ;
3256
                         MUL ;
3257
                         DUP 3 ;
3258
                         DUP 7 ;
3259
                         CAR ;
3260
                         GET 3 ;
3261
                         CAR ;
3262
                         DUP 7 ;
3263
                         MUL ;
3264
                         SUB ;
3265
                         ABS ;
3266
                         PUSH nat 48 ;
3267
                         DUP 8 ;
3268
                         GET 7 ;
3269
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3270
                         LSL ;
3271
                         PUSH nat 48 ;
3272
                         DUP 9 ;
3273
                         GET 5 ;
3274
                         CDR ;
3275
                         LSL ;
3276
                         ADD ;
3277
                         ADD ;
3278
                         DUP 4 ;
3279
                         DUP 8 ;
3280
                         CAR ;
3281
                         GET 3 ;
3282
                         CAR ;
3283
                         DUP 8 ;
3284
                         MUL ;
3285
                         SUB ;
3286
                         ABS ;
3287
                         PUSH nat 48 ;
3288
                         DUP 9 ;
3289
                         GET 7 ;
3290
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3291
                         LSL ;
3292
                         PUSH nat 48 ;
3293
                         DUP 10 ;
3294
                         GET 5 ;
3295
                         CDR ;
3296
                         LSL ;
3297
                         ADD ;
3298
                         ADD ;
3299
                         MUL ;
3300
                         DUP 4 ;
3301
                         DUP 8 ;
3302
                         CAR ;
3303
                         GET 3 ;
3304
                         CAR ;
3305
                         DUP 8 ;
3306
                         MUL ;
3307
                         SUB ;
3308
                         ABS ;
3309
                         PUSH nat 48 ;
3310
                         DUP 9 ;
3311
                         GET 7 ;
3312
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3313
                         LSL ;
3314
                         PUSH nat 48 ;
3315
                         DUP 10 ;
3316
                         GET 5 ;
3317
                         CDR ;
3318
                         LSL ;
3319
                         ADD ;
3320
                         ADD ;
3321
                         DUP 5 ;
3322
                         DUP 9 ;
3323
                         CAR ;
3324
                         GET 3 ;
3325
                         CAR ;
3326
                         DUP 9 ;
3327
                         MUL ;
3328
                         SUB ;
3329
                         ABS ;
3330
                         PUSH nat 48 ;
3331
                         DUP 10 ;
3332
                         GET 7 ;
3333
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3334
                         LSL ;
3335
                         PUSH nat 48 ;
3336
                         DUP 11 ;
3337
                         GET 5 ;
3338
                         CDR ;
3339
                         LSL ;
3340
                         ADD ;
3341
                         ADD ;
3342
                         MUL ;
3343
                         MUL ;
3344
                         DUP 4 ;
3345
                         DUP 8 ;
3346
                         CAR ;
3347
                         GET 3 ;
3348
                         CAR ;
3349
                         DUP 8 ;
3350
                         MUL ;
3351
                         SUB ;
3352
                         ABS ;
3353
                         PUSH nat 48 ;
3354
                         DUP 9 ;
3355
                         GET 7 ;
3356
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3357
                         LSL ;
3358
                         PUSH nat 48 ;
3359
                         DUP 10 ;
3360
                         GET 5 ;
3361
                         CDR ;
3362
                         LSL ;
3363
                         ADD ;
3364
                         ADD ;
3365
                         DUP 5 ;
3366
                         DUP 9 ;
3367
                         CAR ;
3368
                         GET 3 ;
3369
                         CAR ;
3370
                         DUP 9 ;
3371
                         MUL ;
3372
                         SUB ;
3373
                         ABS ;
3374
                         PUSH nat 48 ;
3375
                         DUP 10 ;
3376
                         GET 7 ;
3377
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3378
                         LSL ;
3379
                         PUSH nat 48 ;
3380
                         DUP 11 ;
3381
                         GET 5 ;
3382
                         CDR ;
3383
                         LSL ;
3384
                         ADD ;
3385
                         ADD ;
3386
                         MUL ;
3387
                         DUP 5 ;
3388
                         DUP 9 ;
3389
                         CAR ;
3390
                         GET 3 ;
3391
                         CAR ;
3392
                         DUP 9 ;
3393
                         MUL ;
3394
                         SUB ;
3395
                         ABS ;
3396
                         PUSH nat 48 ;
3397
                         DUP 10 ;
3398
                         GET 7 ;
3399
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3400
                         LSL ;
3401
                         PUSH nat 48 ;
3402
                         DUP 11 ;
3403
                         GET 5 ;
3404
                         CDR ;
3405
                         LSL ;
3406
                         ADD ;
3407
                         ADD ;
3408
                         DUP 6 ;
3409
                         DUP 10 ;
3410
                         CAR ;
3411
                         GET 3 ;
3412
                         CAR ;
3413
                         DUP 10 ;
3414
                         MUL ;
3415
                         SUB ;
3416
                         ABS ;
3417
                         PUSH nat 48 ;
3418
                         DUP 11 ;
3419
                         GET 7 ;
3420
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3421
                         LSL ;
3422
                         PUSH nat 48 ;
3423
                         DUP 12 ;
3424
                         GET 5 ;
3425
                         CDR ;
3426
                         LSL ;
3427
                         ADD ;
3428
                         ADD ;
3429
                         MUL ;
3430
                         MUL ;
3431
                         MUL ;
3432
                         INT ;
3433
                         SUB ;
3434
                         ABS ;
3435
                         PAIR ;
3436
                         DUP ;
3437
                         CAR ;
3438
                         SWAP ;
3439
                         DUP ;
3440
                         DUG 2 ;
3441
                         CDR ;
3442
                         PUSH int 0 ;
3443
                         DUP 6 ;
3444
                         COMPARE ;
3445
                         NEQ ;
3446
                         LOOP { DIG 2 ;
3447
                                DROP 3 ;
3448
                                DUP ;
3449
                                DUP 5 ;
3450
                                CAR ;
3451
                                GET 3 ;
3452
                                CAR ;
3453
                                DUP 5 ;
3454
                                MUL ;
3455
                                SUB ;
3456
                                ABS ;
3457
                                PUSH nat 48 ;
3458
                                DUP 6 ;
3459
                                GET 7 ;
3460
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3461
                                LSL ;
3462
                                PUSH nat 48 ;
3463
                                DUP 7 ;
3464
                                GET 5 ;
3465
                                CDR ;
3466
                                LSL ;
3467
                                ADD ;
3468
                                ADD ;
3469
                                SWAP ;
3470
                                DUP ;
3471
                                DUG 2 ;
3472
                                DUP 6 ;
3473
                                CAR ;
3474
                                GET 3 ;
3475
                                CAR ;
3476
                                DUP 6 ;
3477
                                MUL ;
3478
                                SUB ;
3479
                                ABS ;
3480
                                PUSH nat 48 ;
3481
                                DUP 7 ;
3482
                                GET 7 ;
3483
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3484
                                LSL ;
3485
                                PUSH nat 48 ;
3486
                                DUP 8 ;
3487
                                GET 5 ;
3488
                                CDR ;
3489
                                LSL ;
3490
                                ADD ;
3491
                                ADD ;
3492
                                DUP 3 ;
3493
                                DUP 7 ;
3494
                                CAR ;
3495
                                GET 3 ;
3496
                                CAR ;
3497
                                DUP 7 ;
3498
                                MUL ;
3499
                                SUB ;
3500
                                ABS ;
3501
                                PUSH nat 48 ;
3502
                                DUP 8 ;
3503
                                GET 7 ;
3504
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3505
                                LSL ;
3506
                                PUSH nat 48 ;
3507
                                DUP 9 ;
3508
                                GET 5 ;
3509
                                CDR ;
3510
                                LSL ;
3511
                                ADD ;
3512
                                ADD ;
3513
                                MUL ;
3514
                                DUP 3 ;
3515
                                DUP 7 ;
3516
                                CAR ;
3517
                                GET 3 ;
3518
                                CAR ;
3519
                                DUP 7 ;
3520
                                MUL ;
3521
                                SUB ;
3522
                                ABS ;
3523
                                PUSH nat 48 ;
3524
                                DUP 8 ;
3525
                                GET 7 ;
3526
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3527
                                LSL ;
3528
                                PUSH nat 48 ;
3529
                                DUP 9 ;
3530
                                GET 5 ;
3531
                                CDR ;
3532
                                LSL ;
3533
                                ADD ;
3534
                                ADD ;
3535
                                DUP 4 ;
3536
                                DUP 8 ;
3537
                                CAR ;
3538
                                GET 3 ;
3539
                                CAR ;
3540
                                DUP 8 ;
3541
                                MUL ;
3542
                                SUB ;
3543
                                ABS ;
3544
                                PUSH nat 48 ;
3545
                                DUP 9 ;
3546
                                GET 7 ;
3547
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3548
                                LSL ;
3549
                                PUSH nat 48 ;
3550
                                DUP 10 ;
3551
                                GET 5 ;
3552
                                CDR ;
3553
                                LSL ;
3554
                                ADD ;
3555
                                ADD ;
3556
                                MUL ;
3557
                                DUP 4 ;
3558
                                DUP 8 ;
3559
                                CAR ;
3560
                                GET 3 ;
3561
                                CAR ;
3562
                                DUP 8 ;
3563
                                MUL ;
3564
                                SUB ;
3565
                                ABS ;
3566
                                PUSH nat 48 ;
3567
                                DUP 9 ;
3568
                                GET 7 ;
3569
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3570
                                LSL ;
3571
                                PUSH nat 48 ;
3572
                                DUP 10 ;
3573
                                GET 5 ;
3574
                                CDR ;
3575
                                LSL ;
3576
                                ADD ;
3577
                                ADD ;
3578
                                DUP 5 ;
3579
                                DUP 9 ;
3580
                                CAR ;
3581
                                GET 3 ;
3582
                                CAR ;
3583
                                DUP 9 ;
3584
                                MUL ;
3585
                                SUB ;
3586
                                ABS ;
3587
                                PUSH nat 48 ;
3588
                                DUP 10 ;
3589
                                GET 7 ;
3590
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3591
                                LSL ;
3592
                                PUSH nat 48 ;
3593
                                DUP 11 ;
3594
                                GET 5 ;
3595
                                CDR ;
3596
                                LSL ;
3597
                                ADD ;
3598
                                ADD ;
3599
                                MUL ;
3600
                                MUL ;
3601
                                MUL ;
3602
                                MUL ;
3603
                                INT ;
3604
                                SWAP ;
3605
                                DUP ;
3606
                                DUG 2 ;
3607
                                DUP 6 ;
3608
                                CAR ;
3609
                                GET 3 ;
3610
                                CAR ;
3611
                                DUP 6 ;
3612
                                MUL ;
3613
                                SUB ;
3614
                                ABS ;
3615
                                PUSH nat 48 ;
3616
                                DUP 7 ;
3617
                                GET 7 ;
3618
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3619
                                LSL ;
3620
                                PUSH nat 48 ;
3621
                                DUP 8 ;
3622
                                GET 5 ;
3623
                                CDR ;
3624
                                LSL ;
3625
                                ADD ;
3626
                                SUB ;
3627
                                DUP 3 ;
3628
                                DUP 7 ;
3629
                                CAR ;
3630
                                GET 3 ;
3631
                                CAR ;
3632
                                DUP 7 ;
3633
                                MUL ;
3634
                                SUB ;
3635
                                ABS ;
3636
                                PUSH nat 48 ;
3637
                                DUP 8 ;
3638
                                GET 7 ;
3639
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3640
                                LSL ;
3641
                                PUSH nat 48 ;
3642
                                DUP 9 ;
3643
                                GET 5 ;
3644
                                CDR ;
3645
                                LSL ;
3646
                                ADD ;
3647
                                SUB ;
3648
                                DUP 4 ;
3649
                                DUP 8 ;
3650
                                CAR ;
3651
                                GET 3 ;
3652
                                CAR ;
3653
                                DUP 8 ;
3654
                                MUL ;
3655
                                SUB ;
3656
                                ABS ;
3657
                                PUSH nat 48 ;
3658
                                DUP 9 ;
3659
                                GET 7 ;
3660
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3661
                                LSL ;
3662
                                PUSH nat 48 ;
3663
                                DUP 10 ;
3664
                                GET 5 ;
3665
                                CDR ;
3666
                                LSL ;
3667
                                ADD ;
3668
                                SUB ;
3669
                                MUL ;
3670
                                DUP 4 ;
3671
                                DUP 8 ;
3672
                                CAR ;
3673
                                GET 3 ;
3674
                                CAR ;
3675
                                DUP 8 ;
3676
                                MUL ;
3677
                                SUB ;
3678
                                ABS ;
3679
                                PUSH nat 48 ;
3680
                                DUP 9 ;
3681
                                GET 7 ;
3682
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3683
                                LSL ;
3684
                                PUSH nat 48 ;
3685
                                DUP 10 ;
3686
                                GET 5 ;
3687
                                CDR ;
3688
                                LSL ;
3689
                                ADD ;
3690
                                SUB ;
3691
                                DUP 5 ;
3692
                                DUP 9 ;
3693
                                CAR ;
3694
                                GET 3 ;
3695
                                CAR ;
3696
                                DUP 9 ;
3697
                                MUL ;
3698
                                SUB ;
3699
                                ABS ;
3700
                                PUSH nat 48 ;
3701
                                DUP 10 ;
3702
                                GET 7 ;
3703
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3704
                                LSL ;
3705
                                PUSH nat 48 ;
3706
                                DUP 11 ;
3707
                                GET 5 ;
3708
                                CDR ;
3709
                                LSL ;
3710
                                ADD ;
3711
                                SUB ;
3712
                                MUL ;
3713
                                DUP 5 ;
3714
                                DUP 9 ;
3715
                                CAR ;
3716
                                GET 3 ;
3717
                                CAR ;
3718
                                DUP 9 ;
3719
                                MUL ;
3720
                                SUB ;
3721
                                ABS ;
3722
                                PUSH nat 48 ;
3723
                                DUP 10 ;
3724
                                GET 7 ;
3725
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3726
                                LSL ;
3727
                                PUSH nat 48 ;
3728
                                DUP 11 ;
3729
                                GET 5 ;
3730
                                CDR ;
3731
                                LSL ;
3732
                                ADD ;
3733
                                SUB ;
3734
                                DUP 6 ;
3735
                                DUP 10 ;
3736
                                CAR ;
3737
                                GET 3 ;
3738
                                CAR ;
3739
                                DUP 10 ;
3740
                                MUL ;
3741
                                SUB ;
3742
                                ABS ;
3743
                                PUSH nat 48 ;
3744
                                DUP 11 ;
3745
                                GET 7 ;
3746
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3747
                                LSL ;
3748
                                PUSH nat 48 ;
3749
                                DUP 12 ;
3750
                                GET 5 ;
3751
                                CDR ;
3752
                                LSL ;
3753
                                ADD ;
3754
                                SUB ;
3755
                                MUL ;
3756
                                MUL ;
3757
                                MUL ;
3758
                                MUL ;
3759
                                ADD ;
3760
                                ABS ;
3761
                                PUSH nat 8 ;
3762
                                MUL ;
3763
                                SWAP ;
3764
                                DUP ;
3765
                                DUG 2 ;
3766
                                DUP 6 ;
3767
                                CAR ;
3768
                                GET 3 ;
3769
                                CAR ;
3770
                                DUP 6 ;
3771
                                MUL ;
3772
                                SUB ;
3773
                                ABS ;
3774
                                PUSH nat 48 ;
3775
                                DUP 7 ;
3776
                                GET 7 ;
3777
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3778
                                LSL ;
3779
                                PUSH nat 48 ;
3780
                                DUP 8 ;
3781
                                GET 5 ;
3782
                                CDR ;
3783
                                LSL ;
3784
                                ADD ;
3785
                                SUB ;
3786
                                DUP 3 ;
3787
                                DUP 7 ;
3788
                                CAR ;
3789
                                GET 3 ;
3790
                                CAR ;
3791
                                DUP 7 ;
3792
                                MUL ;
3793
                                SUB ;
3794
                                ABS ;
3795
                                PUSH nat 48 ;
3796
                                DUP 8 ;
3797
                                GET 7 ;
3798
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3799
                                LSL ;
3800
                                PUSH nat 48 ;
3801
                                DUP 9 ;
3802
                                GET 5 ;
3803
                                CDR ;
3804
                                LSL ;
3805
                                ADD ;
3806
                                SUB ;
3807
                                MUL ;
3808
                                DUP 3 ;
3809
                                DUP 7 ;
3810
                                CAR ;
3811
                                GET 3 ;
3812
                                CAR ;
3813
                                DUP 7 ;
3814
                                MUL ;
3815
                                SUB ;
3816
                                ABS ;
3817
                                PUSH nat 48 ;
3818
                                DUP 8 ;
3819
                                GET 7 ;
3820
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3821
                                LSL ;
3822
                                PUSH nat 48 ;
3823
                                DUP 9 ;
3824
                                GET 5 ;
3825
                                CDR ;
3826
                                LSL ;
3827
                                ADD ;
3828
                                SUB ;
3829
                                DUP 4 ;
3830
                                DUP 8 ;
3831
                                CAR ;
3832
                                GET 3 ;
3833
                                CAR ;
3834
                                DUP 8 ;
3835
                                MUL ;
3836
                                SUB ;
3837
                                ABS ;
3838
                                PUSH nat 48 ;
3839
                                DUP 9 ;
3840
                                GET 7 ;
3841
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3842
                                LSL ;
3843
                                PUSH nat 48 ;
3844
                                DUP 10 ;
3845
                                GET 5 ;
3846
                                CDR ;
3847
                                LSL ;
3848
                                ADD ;
3849
                                SUB ;
3850
                                MUL ;
3851
                                MUL ;
3852
                                DUP 3 ;
3853
                                DUP 7 ;
3854
                                CAR ;
3855
                                GET 3 ;
3856
                                CAR ;
3857
                                DUP 7 ;
3858
                                MUL ;
3859
                                SUB ;
3860
                                ABS ;
3861
                                PUSH nat 48 ;
3862
                                DUP 8 ;
3863
                                GET 7 ;
3864
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3865
                                LSL ;
3866
                                PUSH nat 48 ;
3867
                                DUP 9 ;
3868
                                GET 5 ;
3869
                                CDR ;
3870
                                LSL ;
3871
                                ADD ;
3872
                                SUB ;
3873
                                DUP 4 ;
3874
                                DUP 8 ;
3875
                                CAR ;
3876
                                GET 3 ;
3877
                                CAR ;
3878
                                DUP 8 ;
3879
                                MUL ;
3880
                                SUB ;
3881
                                ABS ;
3882
                                PUSH nat 48 ;
3883
                                DUP 9 ;
3884
                                GET 7 ;
3885
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3886
                                LSL ;
3887
                                PUSH nat 48 ;
3888
                                DUP 10 ;
3889
                                GET 5 ;
3890
                                CDR ;
3891
                                LSL ;
3892
                                ADD ;
3893
                                SUB ;
3894
                                MUL ;
3895
                                DUP 4 ;
3896
                                DUP 8 ;
3897
                                CAR ;
3898
                                GET 3 ;
3899
                                CAR ;
3900
                                DUP 8 ;
3901
                                MUL ;
3902
                                SUB ;
3903
                                ABS ;
3904
                                PUSH nat 48 ;
3905
                                DUP 9 ;
3906
                                GET 7 ;
3907
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3908
                                LSL ;
3909
                                PUSH nat 48 ;
3910
                                DUP 10 ;
3911
                                GET 5 ;
3912
                                CDR ;
3913
                                LSL ;
3914
                                ADD ;
3915
                                SUB ;
3916
                                DUP 5 ;
3917
                                DUP 9 ;
3918
                                CAR ;
3919
                                GET 3 ;
3920
                                CAR ;
3921
                                DUP 9 ;
3922
                                MUL ;
3923
                                SUB ;
3924
                                ABS ;
3925
                                PUSH nat 48 ;
3926
                                DUP 10 ;
3927
                                GET 7 ;
3928
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3929
                                LSL ;
3930
                                PUSH nat 48 ;
3931
                                DUP 11 ;
3932
                                GET 5 ;
3933
                                CDR ;
3934
                                LSL ;
3935
                                ADD ;
3936
                                SUB ;
3937
                                MUL ;
3938
                                MUL ;
3939
                                MUL ;
3940
                                DUP 3 ;
3941
                                DUP 7 ;
3942
                                CAR ;
3943
                                GET 3 ;
3944
                                CAR ;
3945
                                DUP 7 ;
3946
                                MUL ;
3947
                                SUB ;
3948
                                ABS ;
3949
                                PUSH nat 48 ;
3950
                                DUP 8 ;
3951
                                GET 7 ;
3952
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3953
                                LSL ;
3954
                                PUSH nat 48 ;
3955
                                DUP 9 ;
3956
                                GET 5 ;
3957
                                CDR ;
3958
                                LSL ;
3959
                                ADD ;
3960
                                ADD ;
3961
                                DUP 4 ;
3962
                                DUP 8 ;
3963
                                CAR ;
3964
                                GET 3 ;
3965
                                CAR ;
3966
                                DUP 8 ;
3967
                                MUL ;
3968
                                SUB ;
3969
                                ABS ;
3970
                                PUSH nat 48 ;
3971
                                DUP 9 ;
3972
                                GET 7 ;
3973
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3974
                                LSL ;
3975
                                PUSH nat 48 ;
3976
                                DUP 10 ;
3977
                                GET 5 ;
3978
                                CDR ;
3979
                                LSL ;
3980
                                ADD ;
3981
                                ADD ;
3982
                                MUL ;
3983
                                DUP 4 ;
3984
                                DUP 8 ;
3985
                                CAR ;
3986
                                GET 3 ;
3987
                                CAR ;
3988
                                DUP 8 ;
3989
                                MUL ;
3990
                                SUB ;
3991
                                ABS ;
3992
                                PUSH nat 48 ;
3993
                                DUP 9 ;
3994
                                GET 7 ;
3995
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
3996
                                LSL ;
3997
                                PUSH nat 48 ;
3998
                                DUP 10 ;
3999
                                GET 5 ;
4000
                                CDR ;
4001
                                LSL ;
4002
                                ADD ;
4003
                                ADD ;
4004
                                DUP 5 ;
4005
                                DUP 9 ;
4006
                                CAR ;
4007
                                GET 3 ;
4008
                                CAR ;
4009
                                DUP 9 ;
4010
                                MUL ;
4011
                                SUB ;
4012
                                ABS ;
4013
                                PUSH nat 48 ;
4014
                                DUP 10 ;
4015
                                GET 7 ;
4016
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
4017
                                LSL ;
4018
                                PUSH nat 48 ;
4019
                                DUP 11 ;
4020
                                GET 5 ;
4021
                                CDR ;
4022
                                LSL ;
4023
                                ADD ;
4024
                                ADD ;
4025
                                MUL ;
4026
                                MUL ;
4027
                                DUP 4 ;
4028
                                DUP 8 ;
4029
                                CAR ;
4030
                                GET 3 ;
4031
                                CAR ;
4032
                                DUP 8 ;
4033
                                MUL ;
4034
                                SUB ;
4035
                                ABS ;
4036
                                PUSH nat 48 ;
4037
                                DUP 9 ;
4038
                                GET 7 ;
4039
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
4040
                                LSL ;
4041
                                PUSH nat 48 ;
4042
                                DUP 10 ;
4043
                                GET 5 ;
4044
                                CDR ;
4045
                                LSL ;
4046
                                ADD ;
4047
                                ADD ;
4048
                                DUP 5 ;
4049
                                DUP 9 ;
4050
                                CAR ;
4051
                                GET 3 ;
4052
                                CAR ;
4053
                                DUP 9 ;
4054
                                MUL ;
4055
                                SUB ;
4056
                                ABS ;
4057
                                PUSH nat 48 ;
4058
                                DUP 10 ;
4059
                                GET 7 ;
4060
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
4061
                                LSL ;
4062
                                PUSH nat 48 ;
4063
                                DUP 11 ;
4064
                                GET 5 ;
4065
                                CDR ;
4066
                                LSL ;
4067
                                ADD ;
4068
                                ADD ;
4069
                                MUL ;
4070
                                DUP 5 ;
4071
                                DUP 9 ;
4072
                                CAR ;
4073
                                GET 3 ;
4074
                                CAR ;
4075
                                DUP 9 ;
4076
                                MUL ;
4077
                                SUB ;
4078
                                ABS ;
4079
                                PUSH nat 48 ;
4080
                                DUP 10 ;
4081
                                GET 7 ;
4082
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
4083
                                LSL ;
4084
                                PUSH nat 48 ;
4085
                                DUP 11 ;
4086
                                GET 5 ;
4087
                                CDR ;
4088
                                LSL ;
4089
                                ADD ;
4090
                                ADD ;
4091
                                DUP 6 ;
4092
                                DUP 10 ;
4093
                                CAR ;
4094
                                GET 3 ;
4095
                                CAR ;
4096
                                DUP 10 ;
4097
                                MUL ;
4098
                                SUB ;
4099
                                ABS ;
4100
                                PUSH nat 48 ;
4101
                                DUP 11 ;
4102
                                GET 7 ;
4103
                                IF_NONE { PUSH int 120 ; FAILWITH } {} ;
4104
                                LSL ;
4105
                                PUSH nat 48 ;
4106
                                DUP 12 ;
4107
                                GET 5 ;
4108
                                CDR ;
4109
                                LSL ;
4110
                                ADD ;
4111
                                ADD ;
4112
                                MUL ;
4113
                                MUL ;
4114
                                MUL ;
4115
                                INT ;
4116
                                SUB ;
4117
                                ABS ;
4118
                                PAIR ;
4119
                                DUP ;
4120
                                CAR ;
4121
                                SWAP ;
4122
                                DUP ;
4123
                                DUG 2 ;
4124
                                CDR ;
4125
                                DUP ;
4126
                                DUP 8 ;
4127
                                CAR ;
4128
                                GET 3 ;
4129
                                CAR ;
4130
                                DUP 8 ;
4131
                                MUL ;
4132
                                PUSH nat 48 ;
4133
                                DUP 10 ;
4134
                                GET 5 ;
4135
                                CDR ;
4136
                                LSL ;
4137
                                SUB ;
4138
                                DUP 9 ;
4139
                                CAR ;
4140
                                GET 3 ;
4141
                                CAR ;
4142
                                DUP 9 ;
4143
                                MUL ;
4144
                                PUSH nat 48 ;
4145
                                DUP 11 ;
4146
                                GET 5 ;
4147
                                CDR ;
4148
                                LSL ;
4149
                                SUB ;
4150
                                MUL ;
4151
                                DUP 9 ;
4152
                                CAR ;
4153
                                GET 3 ;
4154
                                CAR ;
4155
                                DUP 9 ;
4156
                                MUL ;
4157
                                PUSH nat 48 ;
4158
                                DUP 11 ;
4159
                                GET 5 ;
4160
                                CDR ;
4161
                                LSL ;
4162
                                SUB ;
4163
                                DUP 10 ;
4164
                                CAR ;
4165
                                GET 3 ;
4166
                                CAR ;
4167
                                DUP 10 ;
4168
                                MUL ;
4169
                                PUSH nat 48 ;
4170
                                DUP 12 ;
4171
                                GET 5 ;
4172
                                CDR ;
4173
                                LSL ;
4174
                                SUB ;
4175
                                MUL ;
4176
                                MUL ;
4177
                                DUP 9 ;
4178
                                CAR ;
4179
                                GET 3 ;
4180
                                CAR ;
4181
                                DUP 9 ;
4182
                                MUL ;
4183
                                PUSH nat 48 ;
4184
                                DUP 11 ;
4185
                                GET 5 ;
4186
                                CDR ;
4187
                                LSL ;
4188
                                SUB ;
4189
                                DUP 10 ;
4190
                                CAR ;
4191
                                GET 3 ;
4192
                                CAR ;
4193
                                DUP 10 ;
4194
                                MUL ;
4195
                                PUSH nat 48 ;
4196
                                DUP 12 ;
4197
                                GET 5 ;
4198
                                CDR ;
4199
                                LSL ;
4200
                                SUB ;
4201
                                MUL ;
4202
                                DUP 10 ;
4203
                                CAR ;
4204
                                GET 3 ;
4205
                                CAR ;
4206
                                DUP 10 ;
4207
                                MUL ;
4208
                                PUSH nat 48 ;
4209
                                DUP 12 ;
4210
                                GET 5 ;
4211
                                CDR ;
4212
                                LSL ;
4213
                                SUB ;
4214
                                DUP 11 ;
4215
                                CAR ;
4216
                                GET 3 ;
4217
                                CAR ;
4218
                                DUP 11 ;
4219
                                MUL ;
4220
                                PUSH nat 48 ;
4221
                                DUP 13 ;
4222
                                GET 5 ;
4223
                                CDR ;
4224
                                LSL ;
4225
                                SUB ;
4226
                                MUL ;
4227
                                MUL ;
4228
                                MUL ;
4229
                                DUP 9 ;
4230
                                CAR ;
4231
                                GET 3 ;
4232
                                CAR ;
4233
                                DUP 9 ;
4234
                                MUL ;
4235
                                PUSH nat 48 ;
4236
                                DUP 11 ;
4237
                                GET 5 ;
4238
                                CDR ;
4239
                                LSL ;
4240
                                ADD ;
4241
                                DUP 10 ;
4242
                                CAR ;
4243
                                GET 3 ;
4244
                                CAR ;
4245
                                DUP 10 ;
4246
                                MUL ;
4247
                                PUSH nat 48 ;
4248
                                DUP 12 ;
4249
                                GET 5 ;
4250
                                CDR ;
4251
                                LSL ;
4252
                                ADD ;
4253
                                MUL ;
4254
                                DUP 10 ;
4255
                                CAR ;
4256
                                GET 3 ;
4257
                                CAR ;
4258
                                DUP 10 ;
4259
                                MUL ;
4260
                                PUSH nat 48 ;
4261
                                DUP 12 ;
4262
                                GET 5 ;
4263
                                CDR ;
4264
                                LSL ;
4265
                                ADD ;
4266
                                DUP 11 ;
4267
                                CAR ;
4268
                                GET 3 ;
4269
                                CAR ;
4270
                                DUP 11 ;
4271
                                MUL ;
4272
                                PUSH nat 48 ;
4273
                                DUP 13 ;
4274
                                GET 5 ;
4275
                                CDR ;
4276
                                LSL ;
4277
                                ADD ;
4278
                                MUL ;
4279
                                MUL ;
4280
                                DUP 10 ;
4281
                                CAR ;
4282
                                GET 3 ;
4283
                                CAR ;
4284
                                DUP 10 ;
4285
                                MUL ;
4286
                                PUSH nat 48 ;
4287
                                DUP 12 ;
4288
                                GET 5 ;
4289
                                CDR ;
4290
                                LSL ;
4291
                                ADD ;
4292
                                DUP 11 ;
4293
                                CAR ;
4294
                                GET 3 ;
4295
                                CAR ;
4296
                                DUP 11 ;
4297
                                MUL ;
4298
                                PUSH nat 48 ;
4299
                                DUP 13 ;
4300
                                GET 5 ;
4301
                                CDR ;
4302
                                LSL ;
4303
                                ADD ;
4304
                                MUL ;
4305
                                DUP 11 ;
4306
                                CAR ;
4307
                                GET 3 ;
4308
                                CAR ;
4309
                                DUP 11 ;
4310
                                MUL ;
4311
                                PUSH nat 48 ;
4312
                                DUP 13 ;
4313
                                GET 5 ;
4314
                                CDR ;
4315
                                LSL ;
4316
                                ADD ;
4317
                                DUP 12 ;
4318
                                CAR ;
4319
                                GET 3 ;
4320
                                CAR ;
4321
                                DUP 12 ;
4322
                                MUL ;
4323
                                PUSH nat 48 ;
4324
                                DUP 14 ;
4325
                                GET 5 ;
4326
                                CDR ;
4327
                                LSL ;
4328
                                ADD ;
4329
                                MUL ;
4330
                                MUL ;
4331
                                MUL ;
4332
                                INT ;
4333
                                SUB ;
4334
                                ABS ;
4335
                                DUP 4 ;
4336
                                SUB ;
4337
                                ABS ;
4338
                                EDIV ;
4339
                                IF_NONE { PUSH int 101 ; FAILWITH } { CAR } ;
4340
                                DIG 4 ;
4341
                                ADD ;
4342
                                DUG 3 ;
4343
                                PUSH int 1 ;
4344
                                DIG 5 ;
4345
                                SUB ;
4346
                                DUG 4 ;
4347
                                PUSH int 0 ;
4348
                                DUP 6 ;
4349
                                COMPARE ;
4350
                                NEQ } ;
4351
                         DROP 3 ;
4352
                         SWAP ;
4353
                         DROP ;
4354
                         DIG 3 ;
4355
                         DROP ;
4356
                         EDIV ;
4357
                         IF_NONE { PUSH int 115 ; FAILWITH } { CAR } ;
4358
                         SWAP ;
4359
                         DUP ;
4360
                         DUG 2 ;
4361
                         CAR ;
4362
                         GET 5 ;
4363
                         SWAP ;
4364
                         DUP ;
4365
                         DUG 2 ;
4366
                         EDIV ;
4367
                         IF_NONE { PUSH int 243 ; FAILWITH } { CAR } ;
4368
                         DUP 3 ;
4369
                         GET 3 ;
4370
                         CAR ;
4371
                         CAR ;
4372
                         IF_NONE { PUSH int 311 ; FAILWITH } {} ;
4373
                         SWAP ;
4374
                         DUP ;
4375
                         DUG 2 ;
4376
                         DUP 4 ;
4377
                         SUB ;
4378
                         ABS ;
4379
                         COMPARE ;
4380
                         GE ;
4381
                         IF {} { PUSH string "FlatSwap_Min_Cash_Error" ; FAILWITH } ;
4382
                         DUP 3 ;
4383
                         CAR ;
4384
                         GET 3 ;
4385
                         CAR ;
4386
                         SWAP ;
4387
                         DUP ;
4388
                         DUG 2 ;
4389
                         DUP 4 ;
4390
                         SUB ;
4391
                         ABS ;
4392
                         COMPARE ;
4393
                         LT ;
4394
                         IF
4395
                           {}
4396
                           { PUSH string "FlatSwap_Cash_Bought_Exceeds_Pool" ; FAILWITH } ;
4397
                         DUP 3 ;
4398
                         UNPAIR ;
4399
                         SWAP ;
4400
                         UNPAIR ;
4401
                         SWAP ;
4402
                         UNPAIR ;
4403
                         UNPAIR ;
4404
                         SWAP ;
4405
                         DIG 7 ;
4406
                         GET 7 ;
4407
                         IF_NONE { PUSH int 120 ; FAILWITH } {} ;
4408
                         ADD ;
4409
                         SWAP ;
4410
                         PAIR ;
4411
                         PAIR ;
4412
                         SWAP ;
4413
                         PAIR ;
4414
                         SWAP ;
4415
                         PAIR ;
4416
                         DUP ;
4417
                         DUG 3 ;
4418
                         GET 5 ;
4419
                         CAR ;
4420
                         IF
4421
                           { DUP 3 ;
4422
                             UNPAIR ;
4423
                             UNPAIR ;
4424
                             SWAP ;
4425
                             UNPAIR ;
4426
                             CDR ;
4427
                             DUP 6 ;
4428
                             DIG 7 ;
4429
                             CAR ;
4430
                             GET 3 ;
4431
                             CAR ;
4432
                             SUB ;
4433
                             ISNAT ;
4434
                             IF_NONE { PUSH int 253 ; FAILWITH } {} ;
4435
                             PAIR ;
4436
                             PAIR ;
4437
                             SWAP ;
4438
                             UNPAIR ;
4439
                             SWAP ;
4440
                             UNPAIR ;
4441
                             SWAP ;
4442
                             DUP 6 ;
4443
                             ADD ;
4444
                             SWAP ;
4445
                             PAIR ;
4446
                             SWAP ;
4447
                             PAIR ;
4448
                             PAIR ;
4449
                             PAIR ;
4450
                             DUG 2 }
4451
                           { DUP 3 ;
4452
                             UNPAIR ;
4453
                             UNPAIR ;
4454
                             SWAP ;
4455
                             UNPAIR ;
4456
                             CDR ;
4457
                             DUP 5 ;
4458
                             DUP 7 ;
4459
                             SUB ;
4460
                             ABS ;
4461
                             DIG 7 ;
4462
                             CAR ;
4463
                             GET 3 ;
4464
                             CAR ;
4465
                             SUB ;
4466
                             ISNAT ;
4467
                             IF_NONE { PUSH int 259 ; FAILWITH } {} ;
4468
                             PAIR ;
4469
                             PAIR ;
4470
                             SWAP ;
4471
                             PAIR ;
4472
                             PAIR ;
4473
                             DUG 2 } ;
4474
                         NIL operation ;
4475
                         DUP 4 ;
4476
                         CAR ;
4477
                         CAR ;
4478
                         GET 3 ;
4479
                         CONTRACT %transfer (pair (address %from)
4480
                                                  (pair (address %to) (nat %value))) ;
4481
                         IF_NONE { PUSH int 65 ; FAILWITH } {} ;
4482
                         PUSH mutez 0 ;
4483
                         DIG 3 ;
4484
                         DIG 4 ;
4485
                         SUB ;
4486
                         ABS ;
4487
                         DUP 5 ;
4488
                         GET 3 ;
4489
                         GET 3 ;
4490
                         IF_NONE { PUSH int 328 ; FAILWITH } {} ;
4491
                         SELF_ADDRESS ;
4492
                         PAIR 3 ;
4493
                         TRANSFER_TOKENS ;
4494
                         CONS ;
4495
                         SWAP ;
4496
                         UNPAIR ;
4497
                         SWAP ;
4498
                         UNPAIR ;
4499
                         UNPAIR ;
4500
                         SWAP ;
4501
                         CDR ;
4502
                         NONE address ;
4503
                         PAIR ;
4504
                         SWAP ;
4505
                         CDR ;
4506
                         NONE nat ;
4507
                         PAIR ;
4508
                         PAIR ;
4509
                         PAIR ;
4510
                         SWAP ;
4511
                         PAIR ;
4512
                         NONE nat ;
4513
                         UPDATE 7 ;
4514
                         DUP ;
4515
                         DUG 2 ;
4516
                         UNPAIR ;
4517
                         UNPAIR ;
4518
                         UNPAIR ;
4519
                         CDR ;
4520
                         DIG 5 ;
4521
                         CAR ;
4522
                         CAR ;
4523
                         CAR ;
4524
                         CAR ;
4525
                         NOT ;
4526
                         PAIR ;
4527
                         PAIR ;
4528
                         PAIR ;
4529
                         PAIR ;
4530
                         SWAP } } } } ;
4531
         NIL operation ;
4532
         SWAP ;
4533
         ITER { CONS } ;
4534
         PAIR } ;
4535
  view "getReserveBalance" unit (pair (nat %ctezPool) (nat %tezPool))
4536
        { CDR ; DUP ; GET 5 ; CDR ; SWAP ; CAR ; GET 3 ; CAR ; PAIR } }