BCD

Tezos Contract Explorer
Search Networks Deploy
  • Home
  • /
  • Mainnet
  • /
  • Youves uDEFI engine address
operations (21.6K)Storage Code Interact Tokens Fork Statistics Details
Latest
​x
958
1881
 
1
parameter (or
2
            (or
3
              (or (or (nat %bailout) (nat %burn))
4
                  (or (bool %create_vault)
5
                      (or (nat %deposit) (lambda %execute unit (list operation)))))
6
              (or
7
                (or (nat %internal_bailout)
8
                    (or (nat %internal_burn)
9
                        (pair %internal_liquidate (address %vault_owner)
10
                                                  (nat %token_amount))))
11
                (or (nat %internal_mint)
12
                    (or
13
                      (pair %internal_settle_with_vault (address %vault_owner)
14
                                                        (pair (nat %token_amount)
15
                                                              (address %recipient)))
16
                      (list %internal_touch address)))))
17
            (or
18
              (or
19
                (or (nat %internal_withdraw)
20
                    (or (pair %liquidate (address %vault_owner) (nat %token_amount))
21
                        (nat %mint)))
22
                (or
23
                  (pair %remove_administrator (address %administrator_to_remove)
24
                                              (nat %token_id))
25
                  (or
26
                    (pair %set_administrator (address %administrator_to_set)
27
                                             (nat %token_id))
28
                    (pair %set_contracts
29
                      (pair (address %governance_token_contract)
30
                            (address %options_contract))
31
                      (pair (address %reward_pool_contract)
32
                            (pair (address %savings_pool_contract)
33
                                  (address %target_price_oracle)))))))
34
              (or
35
                (or (nat %set_reference_interest_rate)
36
                    (or (nat %set_target_price)
37
                        (pair %settle_with_vault (address %vault_owner)
38
                                                 (pair (nat %token_amount)
39
                                                       (address %recipient)))))
40
                (or (list %touch address) (or (unit %update) (nat %withdraw))))));
41
storage (pair
42
          (pair
43
            (pair
44
              (pair (timestamp %accrual_update_timestamp)
45
                    (big_map %administrators (pair (address %owner) (nat %token_id))
46
                                             unit))
47
              (pair (address %collateral_token_contract) (nat %collateral_token_id)))
48
            (pair
49
              (pair (nat %compound_interest_rate) (address %governance_token_contract))
50
              (pair (address %options_contract) (nat %reference_interest_rate))))
51
          (pair
52
            (pair
53
              (pair (address %reward_pool_contract) (address %savings_pool_contract))
54
              (pair (address %sender) (nat %target_price)))
55
            (pair (pair (address %target_price_oracle) (address %token_contract))
56
                  (pair (nat %token_id)
57
                        (pair (nat %total_supply)
58
                              (big_map %vault_contexts address
59
                                                       (pair
60
                                                         (pair (bool %allows_settlement)
61
                                                               (nat %balance))
62
                                                         (pair
63
                                                           (bool %is_being_liquidated)
64
                                                           (nat %minted)))))))));
65
code { LAMBDA
66
         (pair unit
67
               (pair
68
                 (pair
69
                   (pair (pair timestamp (big_map (pair address nat) unit))
70
                         (pair address nat))
71
                   (pair (pair nat address) (pair address nat)))
72
                 (pair (pair (pair address address) (pair address nat))
73
                       (pair (pair address address)
74
                             (pair nat
75
                                   (pair nat
76
                                         (big_map address
77
                                                  (pair (pair bool nat) (pair bool nat)))))))))
78
         (pair (list operation)
79
               (pair unit
80
                     (pair
81
                       (pair
82
                         (pair (pair timestamp (big_map (pair address nat) unit))
83
                               (pair address nat))
84
                         (pair (pair nat address) (pair address nat)))
85
                       (pair (pair (pair address address) (pair address nat))
86
                             (pair (pair address address)
87
                                   (pair nat
88
                                         (pair nat
89
                                               (big_map address
90
                                                        (pair (pair bool nat)
91
                                                              (pair bool nat))))))))))
92
         { NIL operation ;
93
           SWAP ;
94
           CDR ;
95
           DUP ;
96
           DUG 2 ;
97
           GET 5 ;
98
           CAR ;
99
           CONTRACT %get_price (contract nat) ;
100
           IF_NONE { PUSH int 50 ; FAILWITH } {} ;
101
           PUSH mutez 0 ;
102
           SELF_ADDRESS ;
103
           CONTRACT %set_target_price nat ;
104
           IF_NONE { PUSH int 52 ; FAILWITH } {} ;
105
           TRANSFER_TOKENS ;
106
           CONS ;
107
           SWAP ;
108
           UNIT ;
109
           DIG 2 ;
110
           PAIR 3 } ;
111
       SWAP ;
112
       LAMBDA
113
         (pair unit
114
               (pair
115
                 (pair
116
                   (pair (pair timestamp (big_map (pair address nat) unit))
117
                         (pair address nat))
118
                   (pair (pair nat address) (pair address nat)))
119
                 (pair (pair (pair address address) (pair address nat))
120
                       (pair (pair address address)
121
                             (pair nat
122
                                   (pair nat
123
                                         (big_map address
124
                                                  (pair (pair bool nat) (pair bool nat)))))))))
125
         (pair (list operation)
126
               (pair unit
127
                     (pair
128
                       (pair
129
                         (pair (pair timestamp (big_map (pair address nat) unit))
130
                               (pair address nat))
131
                         (pair (pair nat address) (pair address nat)))
132
                       (pair (pair (pair address address) (pair address nat))
133
                             (pair (pair address address)
134
                                   (pair nat
135
                                         (pair nat
136
                                               (big_map address
137
                                                        (pair (pair bool nat)
138
                                                              (pair bool nat))))))))))
139
         { NIL operation ;
140
           SWAP ;
141
           DUP ;
142
           DUG 2 ;
143
           CDR ;
144
           DUP ;
145
           CAR ;
146
           CAR ;
147
           CAR ;
148
           CAR ;
149
           NOW ;
150
           SUB ;
151
           ISNAT ;
152
           IF_NONE { PUSH int 136 ; FAILWITH } {} ;
153
           DUP ;
154
           PUSH nat 0 ;
155
           COMPARE ;
156
           LT ;
157
           IF
158
             { DIG 3 ;
159
               DROP ;
160
               PUSH nat 1000000000000 ;
161
               DUP 3 ;
162
               GET 9 ;
163
               DUP 3 ;
164
               DUP 5 ;
165
               CAR ;
166
               GET 6 ;
167
               MUL ;
168
               MUL ;
169
               EDIV ;
170
               IF_NONE { PUSH int 139 ; FAILWITH } { CAR } ;
171
               PUSH nat 1000000000000 ;
172
               DUP 4 ;
173
               GET 9 ;
174
               DUP 4 ;
175
               PUSH nat 316 ;
176
               MUL ;
177
               MUL ;
178
               EDIV ;
179
               IF_NONE { PUSH int 141 ; FAILWITH } { CAR } ;
180
               DUP 4 ;
181
               UNPAIR ;
182
               UNPAIR ;
183
               SWAP ;
184
               UNPAIR ;
185
               CDR ;
186
               PUSH nat 1000000000000 ;
187
               DIG 7 ;
188
               PUSH nat 316 ;
189
               DUP 10 ;
190
               CAR ;
191
               GET 6 ;
192
               ADD ;
193
               MUL ;
194
               PUSH nat 1000000000000 ;
195
               ADD ;
196
               DIG 8 ;
197
               CAR ;
198
               GET 3 ;
199
               CAR ;
200
               MUL ;
201
               EDIV ;
202
               IF_NONE { PUSH int 145 ; FAILWITH } { CAR } ;
203
               PAIR ;
204
               PAIR ;
205
               SWAP ;
206
               PAIR ;
207
               PAIR ;
208
               DUG 2 ;
209
               DIG 3 ;
210
               DUP 4 ;
211
               GET 5 ;
212
               CDR ;
213
               CONTRACT %mint (pair address (pair nat nat)) ;
214
               IF_NONE { PUSH int 101 ; FAILWITH } {} ;
215
               PUSH mutez 0 ;
216
               DUP 5 ;
217
               DIG 6 ;
218
               DUP ;
219
               GET 7 ;
220
               SWAP ;
221
               DUP ;
222
               DUG 8 ;
223
               GET 3 ;
224
               CAR ;
225
               CDR ;
226
               PAIR 3 ;
227
               TRANSFER_TOKENS ;
228
               CONS ;
229
               DUP 4 ;
230
               GET 5 ;
231
               CDR ;
232
               CONTRACT %mint (pair address (pair nat nat)) ;
233
               IF_NONE { PUSH int 101 ; FAILWITH } {} ;
234
               PUSH mutez 0 ;
235
               DUP 4 ;
236
               DIG 6 ;
237
               DUP ;
238
               GET 7 ;
239
               SWAP ;
240
               DUP ;
241
               DUG 8 ;
242
               GET 3 ;
243
               CAR ;
244
               CAR ;
245
               PAIR 3 ;
246
               TRANSFER_TOKENS ;
247
               CONS ;
248
               DUG 3 ;
249
               DIG 2 ;
250
               DUP ;
251
               GET 9 ;
252
               DIG 2 ;
253
               DIG 3 ;
254
               ADD ;
255
               ADD ;
256
               UPDATE 9 ;
257
               UNPAIR ;
258
               UNPAIR ;
259
               UNPAIR ;
260
               CDR ;
261
               NOW ;
262
               PAIR ;
263
               PAIR ;
264
               PAIR ;
265
               PAIR }
266
             { DROP ; DIG 2 ; DROP } ;
267
           UNIT ;
268
           DIG 2 ;
269
           PAIR 3 } ;
270
       SWAP ;
271
       LAMBDA
272
         (pair (pair address nat)
273
               (pair
274
                 (pair
275
                   (pair (pair timestamp (big_map (pair address nat) unit))
276
                         (pair address nat))
277
                   (pair (pair nat address) (pair address nat)))
278
                 (pair (pair (pair address address) (pair address nat))
279
                       (pair (pair address address)
280
                             (pair nat
281
                                   (pair nat
282
                                         (big_map address
283
                                                  (pair (pair bool nat) (pair bool nat)))))))))
284
         (pair (list operation)
285
               (pair unit
286
                     (pair
287
                       (pair
288
                         (pair (pair timestamp (big_map (pair address nat) unit))
289
                               (pair address nat))
290
                         (pair (pair nat address) (pair address nat)))
291
                       (pair (pair (pair address address) (pair address nat))
292
                             (pair (pair address address)
293
                                   (pair nat
294
                                         (pair nat
295
                                               (big_map address
296
                                                        (pair (pair bool nat)
297
                                                              (pair bool nat))))))))))
298
         { NIL operation ;
299
           SWAP ;
300
           DUP ;
301
           DUG 2 ;
302
           CDR ;
303
           DUP ;
304
           DUG 2 ;
305
           CAR ;
306
           GET 3 ;
307
           CDR ;
308
           CONTRACT %update_stake (pair address nat) ;
309
           IF_NONE { PUSH int 164 ; FAILWITH } {} ;
310
           PUSH mutez 0 ;
311
           DIG 4 ;
312
           CAR ;
313
           TRANSFER_TOKENS ;
314
           CONS ;
315
           SWAP ;
316
           UNIT ;
317
           DIG 2 ;
318
           PAIR 3 } ;
319
       SWAP ;
320
       LAMBDA
321
         (pair unit
322
               (pair
323
                 (pair
324
                   (pair (pair timestamp (big_map (pair address nat) unit))
325
                         (pair address nat))
326
                   (pair (pair nat address) (pair address nat)))
327
                 (pair (pair (pair address address) (pair address nat))
328
                       (pair (pair address address)
329
                             (pair nat
330
                                   (pair nat
331
                                         (big_map address
332
                                                  (pair (pair bool nat) (pair bool nat)))))))))
333
         (pair (list operation)
334
               (pair unit
335
                     (pair
336
                       (pair
337
                         (pair (pair timestamp (big_map (pair address nat) unit))
338
                               (pair address nat))
339
                         (pair (pair nat address) (pair address nat)))
340
                       (pair (pair (pair address address) (pair address nat))
341
                             (pair (pair address address)
342
                                   (pair nat
343
                                         (pair nat
344
                                               (big_map address
345
                                                        (pair (pair bool nat)
346
                                                              (pair bool nat))))))))))
347
         { NIL operation ;
348
           SWAP ;
349
           CDR ;
350
           SELF_ADDRESS ;
351
           SENDER ;
352
           COMPARE ;
353
           EQ ;
354
           IF {} { PUSH int 400 ; FAILWITH } ;
355
           UNIT ;
356
           DIG 2 ;
357
           PAIR 3 } ;
358
       SWAP ;
359
       LAMBDA
360
         (pair nat
361
               (pair
362
                 (pair
363
                   (pair (pair timestamp (big_map (pair address nat) unit))
364
                         (pair address nat))
365
                   (pair (pair nat address) (pair address nat)))
366
                 (pair (pair (pair address address) (pair address nat))
367
                       (pair (pair address address)
368
                             (pair nat
369
                                   (pair nat
370
                                         (big_map address
371
                                                  (pair (pair bool nat) (pair bool nat)))))))))
372
         (pair (list operation)
373
               (pair unit
374
                     (pair
375
                       (pair
376
                         (pair (pair timestamp (big_map (pair address nat) unit))
377
                               (pair address nat))
378
                         (pair (pair nat address) (pair address nat)))
379
                       (pair (pair (pair address address) (pair address nat))
380
                             (pair (pair address address)
381
                                   (pair nat
382
                                         (pair nat
383
                                               (big_map address
384
                                                        (pair (pair bool nat)
385
                                                              (pair bool nat))))))))))
386
         { NIL operation ;
387
           SWAP ;
388
           DUP ;
389
           DUG 2 ;
390
           CDR ;
391
           DUP ;
392
           CAR ;
393
           CAR ;
394
           CAR ;
395
           CDR ;
396
           DIG 3 ;
397
           CAR ;
398
           SENDER ;
399
           PAIR ;
400
           MEM ;
401
           IF {} { PUSH int 401 ; FAILWITH } ;
402
           UNIT ;
403
           DIG 2 ;
404
           PAIR 3 } ;
405
       SWAP ;
406
       UNPAIR ;
407
       IF_LEFT
408
         { IF_LEFT
409
             { IF_LEFT
410
                 { IF_LEFT
411
                     { DUP 7 ;
412
                       DIG 2 ;
413
                       UNIT ;
414
                       PAIR ;
415
                       EXEC ;
416
                       DUP ;
417
                       GET 4 ;
418
                       DUG 2 ;
419
                       DUP ;
420
                       CAR ;
421
                       DUP 8 ;
422
                       DIG 4 ;
423
                       UNIT ;
424
                       PAIR ;
425
                       EXEC ;
426
                       DUP ;
427
                       GET 4 ;
428
                       DUG 4 ;
429
                       DUP ;
430
                       CAR ;
431
                       NIL operation ;
432
                       SWAP ;
433
                       ITER { CONS } ;
434
                       ITER { DIG 2 ; SWAP ; CONS ; SWAP } ;
435
                       DROP ;
436
                       SWAP ;
437
                       DROP ;
438
                       DIG 3 ;
439
                       DROP ;
440
                       DIG 3 ;
441
                       DROP ;
442
                       DIG 3 ;
443
                       DROP ;
444
                       DIG 3 ;
445
                       DROP ;
446
                       DIG 3 ;
447
                       DROP ;
448
                       DIG 2 ;
449
                       UNPAIR ;
450
                       SWAP ;
451
                       UNPAIR ;
452
                       UNPAIR ;
453
                       SWAP ;
454
                       CDR ;
455
                       SENDER ;
456
                       PAIR ;
457
                       SWAP ;
458
                       PAIR ;
459
                       PAIR ;
460
                       SWAP ;
461
                       PAIR ;
462
                       DUP ;
463
                       DUG 3 ;
464
                       GET 3 ;
465
                       CAR ;
466
                       CDR ;
467
                       CONTRACT %bailout nat ;
468
                       IF_NONE { PUSH int 570 ; FAILWITH } {} ;
469
                       PUSH mutez 0 ;
470
                       DUP 4 ;
471
                       TRANSFER_TOKENS ;
472
                       CONS ;
473
                       SELF %internal_bailout ;
474
                       PUSH mutez 0 ;
475
                       DIG 3 ;
476
                       TRANSFER_TOKENS ;
477
                       CONS }
478
                     { DUP 7 ;
479
                       DIG 2 ;
480
                       UNIT ;
481
                       PAIR ;
482
                       EXEC ;
483
                       DUP ;
484
                       GET 4 ;
485
                       DUG 2 ;
486
                       DUP ;
487
                       CAR ;
488
                       DUP 8 ;
489
                       DIG 4 ;
490
                       UNIT ;
491
                       PAIR ;
492
                       EXEC ;
493
                       DUP ;
494
                       GET 4 ;
495
                       DUG 4 ;
496
                       DUP ;
497
                       CAR ;
498
                       NIL operation ;
499
                       SWAP ;
500
                       ITER { CONS } ;
501
                       ITER { DIG 2 ; SWAP ; CONS ; SWAP } ;
502
                       DROP ;
503
                       SWAP ;
504
                       DROP ;
505
                       DIG 3 ;
506
                       DROP ;
507
                       DIG 3 ;
508
                       DROP ;
509
                       DIG 3 ;
510
                       DROP ;
511
                       DIG 3 ;
512
                       DROP ;
513
                       DIG 3 ;
514
                       DROP ;
515
                       DIG 2 ;
516
                       UNPAIR ;
517
                       SWAP ;
518
                       UNPAIR ;
519
                       UNPAIR ;
520
                       SWAP ;
521
                       CDR ;
522
                       SENDER ;
523
                       PAIR ;
524
                       SWAP ;
525
                       PAIR ;
526
                       PAIR ;
527
                       SWAP ;
528
                       PAIR ;
529
                       DUG 2 ;
530
                       SELF %internal_burn ;
531
                       PUSH mutez 0 ;
532
                       DIG 3 ;
533
                       TRANSFER_TOKENS ;
534
                       CONS } }
535
                 { DIG 3 ;
536
                   DROP ;
537
                   DIG 3 ;
538
                   DROP ;
539
                   DIG 3 ;
540
                   DROP ;
541
                   DIG 3 ;
542
                   DROP ;
543
                   IF_LEFT
544
                     { DIG 2 ;
545
                       DROP ;
546
                       SWAP ;
547
                       DUP ;
548
                       DUG 2 ;
549
                       GET 10 ;
550
                       SENDER ;
551
                       MEM ;
552
                       IF
553
                         { DROP }
554
                         { SWAP ;
555
                           DUP ;
556
                           GET 10 ;
557
                           PUSH (pair bool nat) (Pair False 0) ;
558
                           PUSH nat 0 ;
559
                           DIG 4 ;
560
                           PAIR ;
561
                           PAIR ;
562
                           SOME ;
563
                           SENDER ;
564
                           UPDATE ;
565
                           UPDATE 10 } ;
566
                       NIL operation }
567
                     { IF_LEFT
568
                         { DIG 2 ;
569
                           DROP ;
570
                           NIL operation ;
571
                           DUP 3 ;
572
                           CAR ;
573
                           CAR ;
574
                           GET 3 ;
575
                           CONTRACT %transfer (list (pair address
576
                                                         (list (pair address
577
                                                                    (pair nat nat))))) ;
578
                           IF_NONE { PUSH int 35 ; FAILWITH } {} ;
579
                           PUSH mutez 0 ;
580
                           NIL (pair address (list (pair address (pair nat nat)))) ;
581
                           NIL (pair address (pair nat nat)) ;
582
                           DUP 6 ;
583
                           DUP 8 ;
584
                           CAR ;
585
                           CAR ;
586
                           GET 4 ;
587
                           SELF_ADDRESS ;
588
                           PAIR 3 ;
589
                           CONS ;
590
                           SENDER ;
591
                           PAIR ;
592
                           CONS ;
593
                           TRANSFER_TOKENS ;
594
                           CONS ;
595
                           DIG 2 ;
596
                           DUP ;
597
                           GET 10 ;
598
                           DUP ;
599
                           SENDER ;
600
                           DUP ;
601
                           DUG 2 ;
602
                           GET ;
603
                           IF_NONE { PUSH int 430 ; FAILWITH } {} ;
604
                           UNPAIR ;
605
                           UNPAIR ;
606
                           SWAP ;
607
                           DIG 7 ;
608
                           ADD ;
609
                           SWAP ;
610
                           PAIR ;
611
                           PAIR ;
612
                           SOME ;
613
                           SWAP ;
614
                           UPDATE ;
615
                           UPDATE 10 ;
616
                           SWAP }
617
                         { DUG 2 ;
618
                           PUSH nat 0 ;
619
                           PAIR ;
620
                           EXEC ;
621
                           DUP ;
622
                           GET 4 ;
623
                           DUG 2 ;
624
                           CAR ;
625
                           SWAP ;
626
                           UNIT ;
627
                           EXEC ;
628
                           NIL operation ;
629
                           SWAP ;
630
                           ITER { CONS } ;
631
                           ITER { CONS } } } } }
632
             { IF_LEFT
633
                 { IF_LEFT
634
                     { DUP 4 ;
635
                       DIG 2 ;
636
                       UNIT ;
637
                       PAIR ;
638
                       EXEC ;
639
                       DUP ;
640
                       GET 4 ;
641
                       DUG 2 ;
642
                       DUP ;
643
                       CAR ;
644
                       DIG 3 ;
645
                       DUP ;
646
                       GET 10 ;
647
                       SWAP ;
648
                       DUP ;
649
                       DUG 5 ;
650
                       GET 3 ;
651
                       GET 3 ;
652
                       GET ;
653
                       IF_NONE { PUSH int 595 ; FAILWITH } {} ;
654
                       DUP 5 ;
655
                       GET 3 ;
656
                       GET 4 ;
657
                       DUP 5 ;
658
                       MUL ;
659
                       PUSH nat 1000000 ;
660
                       PUSH nat 2 ;
661
                       DUP 3 ;
662
                       LSR ;
663
                       DUP 3 ;
664
                       ADD ;
665
                       EDIV ;
666
                       IF_NONE { PUSH int 599 ; FAILWITH } { CAR } ;
667
                       DUP ;
668
                       PUSH nat 1000000000 ;
669
                       SWAP ;
670
                       COMPARE ;
671
                       GE ;
672
                       IF {} { PUSH int 602 ; FAILWITH } ;
673
                       PUSH nat 1000000000000 ;
674
                       DUP 8 ;
675
                       CAR ;
676
                       GET 3 ;
677
                       CAR ;
678
                       DUP 5 ;
679
                       GET 4 ;
680
                       MUL ;
681
                       EDIV ;
682
                       IF_NONE { PUSH int 603 ; FAILWITH } { CAR } ;
683
                       DIG 3 ;
684
                       DUP 8 ;
685
                       CAR ;
686
                       GET 3 ;
687
                       CAR ;
688
                       PUSH nat 1000000000000 ;
689
                       DUP 9 ;
690
                       DUP 5 ;
691
                       SUB ;
692
                       ISNAT ;
693
                       IF_NONE { PUSH int 604 ; FAILWITH } {} ;
694
                       MUL ;
695
                       EDIV ;
696
                       IF_NONE { PUSH int 604 ; FAILWITH } { CAR } ;
697
                       UPDATE 4 ;
698
                       DUP ;
699
                       DUG 4 ;
700
                       UNPAIR ;
701
                       CAR ;
702
                       DUP 4 ;
703
                       DIG 6 ;
704
                       CAR ;
705
                       CDR ;
706
                       SUB ;
707
                       ISNAT ;
708
                       IF_NONE { PUSH int 605 ; FAILWITH } {} ;
709
                       SWAP ;
710
                       PAIR ;
711
                       PAIR ;
712
                       DUG 3 ;
713
                       DUP 8 ;
714
                       DUP ;
715
                       GET 10 ;
716
                       DUP 6 ;
717
                       SOME ;
718
                       DIG 10 ;
719
                       GET 3 ;
720
                       GET 3 ;
721
                       UPDATE ;
722
                       UPDATE 10 ;
723
                       DUG 7 ;
724
                       DUP 4 ;
725
                       CAR ;
726
                       CAR ;
727
                       IF
728
                         { DUP 11 ;
729
                           DIG 8 ;
730
                           DUP ;
731
                           DUP ;
732
                           DUG 10 ;
733
                           GET 3 ;
734
                           GET 4 ;
735
                           DUP 10 ;
736
                           DUP 5 ;
737
                           SUB ;
738
                           ISNAT ;
739
                           IF_NONE { PUSH int 610 ; FAILWITH } {} ;
740
                           MUL ;
741
                           DIG 10 ;
742
                           GET 3 ;
743
                           GET 3 ;
744
                           PAIR ;
745
                           PAIR ;
746
                           EXEC ;
747
                           DUP ;
748
                           GET 4 ;
749
                           DUG 8 ;
750
                           DUP ;
751
                           CAR ;
752
                           NIL operation ;
753
                           SWAP ;
754
                           ITER { CONS } ;
755
                           ITER { DIG 6 ; SWAP ; CONS ; DUG 5 } ;
756
                           DROP 2 ;
757
                           SWAP ;
758
                           DROP ;
759
                           SWAP ;
760
                           DROP ;
761
                           DIG 2 ;
762
                           DROP ;
763
                           DIG 4 ;
764
                           DROP ;
765
                           DIG 4 ;
766
                           DROP ;
767
                           DIG 4 ;
768
                           DROP ;
769
                           DIG 4 ;
770
                           DROP ;
771
                           DIG 4 ;
772
                           DROP }
773
                         { DROP ;
774
                           SWAP ;
775
                           DROP ;
776
                           SWAP ;
777
                           DROP ;
778
                           DIG 2 ;
779
                           DROP ;
780
                           DIG 4 ;
781
                           DROP ;
782
                           DIG 4 ;
783
                           DROP ;
784
                           DIG 4 ;
785
                           DROP ;
786
                           DIG 4 ;
787
                           DROP ;
788
                           DIG 4 ;
789
                           DROP } ;
790
                       SWAP ;
791
                       DUP 4 ;
792
                       CAR ;
793
                       CAR ;
794
                       GET 3 ;
795
                       CONTRACT %transfer (list (pair address
796
                                                     (list (pair address (pair nat nat))))) ;
797
                       IF_NONE { PUSH int 35 ; FAILWITH } {} ;
798
                       PUSH mutez 0 ;
799
                       NIL (pair address (list (pair address (pair nat nat)))) ;
800
                       NIL (pair address (pair nat nat)) ;
801
                       DIG 5 ;
802
                       DIG 7 ;
803
                       DUP ;
804
                       CAR ;
805
                       CAR ;
806
                       GET 4 ;
807
                       SWAP ;
808
                       DUP ;
809
                       DUG 9 ;
810
                       GET 3 ;
811
                       CAR ;
812
                       CDR ;
813
                       PAIR 3 ;
814
                       CONS ;
815
                       SELF_ADDRESS ;
816
                       PAIR ;
817
                       CONS ;
818
                       TRANSFER_TOKENS ;
819
                       CONS ;
820
                       DUP 3 ;
821
                       GET 5 ;
822
                       CDR ;
823
                       CONTRACT %burn (pair address (pair nat nat)) ;
824
                       IF_NONE { PUSH int 101 ; FAILWITH } {} ;
825
                       PUSH mutez 0 ;
826
                       DUP 4 ;
827
                       DIG 5 ;
828
                       DUP ;
829
                       GET 7 ;
830
                       SWAP ;
831
                       DUP ;
832
                       DUG 7 ;
833
                       GET 3 ;
834
                       CAR ;
835
                       CDR ;
836
                       PAIR 3 ;
837
                       TRANSFER_TOKENS ;
838
                       CONS ;
839
                       DUP 3 ;
840
                       DIG 2 ;
841
                       DIG 3 ;
842
                       GET 9 ;
843
                       SUB ;
844
                       ISNAT ;
845
                       IF_NONE { PUSH int 615 ; FAILWITH } {} ;
846
                       UPDATE 9 ;
847
                       SWAP }
848
                     { IF_LEFT
849
                         { DUP 4 ;
850
                           DIG 2 ;
851
                           UNIT ;
852
                           PAIR ;
853
                           EXEC ;
854
                           DUP ;
855
                           GET 4 ;
856
                           DUG 2 ;
857
                           DUP ;
858
                           CAR ;
859
                           PUSH nat 1000000000 ;
860
                           DUP 4 ;
861
                           COMPARE ;
862
                           GE ;
863
                           IF {} { PUSH int 602 ; FAILWITH } ;
864
                           DIG 3 ;
865
                           DUP ;
866
                           GET 10 ;
867
                           SWAP ;
868
                           DUP ;
869
                           DUG 5 ;
870
                           GET 3 ;
871
                           GET 3 ;
872
                           GET ;
873
                           IF_NONE { PUSH int 320 ; FAILWITH } {} ;
874
                           PUSH nat 1000000000000 ;
875
                           DUP 6 ;
876
                           CAR ;
877
                           GET 3 ;
878
                           CAR ;
879
                           DUP 3 ;
880
                           GET 4 ;
881
                           MUL ;
882
                           EDIV ;
883
                           IF_NONE { PUSH int 322 ; FAILWITH } { CAR } ;
884
                           DUP 6 ;
885
                           GET 3 ;
886
                           GET 4 ;
887
                           DUP 6 ;
888
                           DUP 3 ;
889
                           SUB ;
890
                           ISNAT ;
891
                           IF_NONE { PUSH int 323 ; FAILWITH } {} ;
892
                           MUL ;
893
                           DIG 2 ;
894
                           DUP 7 ;
895
                           CAR ;
896
                           GET 3 ;
897
                           CAR ;
898
                           PUSH nat 1000000000000 ;
899
                           DUP 8 ;
900
                           DUP 6 ;
901
                           SUB ;
902
                           ISNAT ;
903
                           IF_NONE { PUSH int 325 ; FAILWITH } {} ;
904
                           MUL ;
905
                           EDIV ;
906
                           IF_NONE { PUSH int 325 ; FAILWITH } { CAR } ;
907
                           UPDATE 4 ;
908
                           DUG 2 ;
909
                           DUP 7 ;
910
                           DUP ;
911
                           GET 10 ;
912
                           DUP 5 ;
913
                           SOME ;
914
                           DIG 9 ;
915
                           GET 3 ;
916
                           GET 3 ;
917
                           UPDATE ;
918
                           UPDATE 10 ;
919
                           DUG 6 ;
920
                           DIG 3 ;
921
                           DUP 7 ;
922
                           GET 5 ;
923
                           CDR ;
924
                           CONTRACT %burn (pair address (pair nat nat)) ;
925
                           IF_NONE { PUSH int 101 ; FAILWITH } {} ;
926
                           PUSH mutez 0 ;
927
                           DUP 8 ;
928
                           DIG 9 ;
929
                           DUP ;
930
                           GET 7 ;
931
                           SWAP ;
932
                           DUP ;
933
                           DUG 11 ;
934
                           GET 3 ;
935
                           GET 3 ;
936
                           PAIR 3 ;
937
                           TRANSFER_TOKENS ;
938
                           CONS ;
939
                           DUG 3 ;
940
                           DUP 7 ;
941
                           DUP 7 ;
942
                           DIG 8 ;
943
                           GET 9 ;
944
                           SUB ;
945
                           ISNAT ;
946
                           IF_NONE { PUSH int 331 ; FAILWITH } {} ;
947
                           UPDATE 9 ;
948
                           DUG 6 ;
949
                           DUP 3 ;
950
                           CAR ;
951
                           CAR ;
952
                           IF
953
                             { DUP 10 ;
954
                               DUP 8 ;
955
                               DUP 3 ;
956
                               DIG 9 ;
957
                               GET 3 ;
958
                               GET 3 ;
959
                               PAIR ;
960
                               PAIR ;
961
                               EXEC ;
962
                               DUP ;
963
                               GET 4 ;
964
                               DUG 7 ;
965
                               DUP ;
966
                               CAR ;
967
                               NIL operation ;
968
                               SWAP ;
969
                               ITER { CONS } ;
970
                               ITER { DIG 5 ; SWAP ; CONS ; DUG 4 } ;
971
                               DROP 4 ;
972
                               SWAP ;
973
                               DROP ;
974
                               SWAP ;
975
                               DROP ;
976
                               DIG 2 ;
977
                               DROP ;
978
                               DIG 2 ;
979
                               DROP ;
980
                               DIG 2 ;
981
                               DROP ;
982
                               DIG 2 ;
983
                               DROP ;
984
                               DIG 2 ;
985
                               DROP }
986
                             { DROP 3 ;
987
                               SWAP ;
988
                               DROP ;
989
                               SWAP ;
990
                               DROP ;
991
                               DIG 2 ;
992
                               DROP ;
993
                               DIG 2 ;
994
                               DROP ;
995
                               DIG 2 ;
996
                               DROP ;
997
                               DIG 2 ;
998
                               DROP ;
999
                               DIG 2 ;
1000
                               DROP } }
1001
                         { DUP 4 ;
1002
                           DIG 2 ;
1003
                           UNIT ;
1004
                           PAIR ;
1005
                           EXEC ;
1006
                           DUP ;
1007
                           GET 4 ;
1008
                           DUG 2 ;
1009
                           DUP ;
1010
                           CAR ;
1011
                           DUP 4 ;
1012
                           GET 10 ;
1013
                           DUP 4 ;
1014
                           CAR ;
1015
                           GET ;
1016
                           IF_NONE { PUSH int 377 ; FAILWITH } {} ;
1017
                           DUP ;
1018
                           CAR ;
1019
                           CDR ;
1020
                           PUSH nat 2 ;
1021
                           DUP 7 ;
1022
                           GET 3 ;
1023
                           GET 4 ;
1024
                           PUSH nat 1000000000000 ;
1025
                           DUP 9 ;
1026
                           CAR ;
1027
                           GET 3 ;
1028
                           CAR ;
1029
                           DUP 6 ;
1030
                           GET 4 ;
1031
                           MUL ;
1032
                           EDIV ;
1033
                           IF_NONE { PUSH int 380 ; FAILWITH } { CAR } ;
1034
                           MUL ;
1035
                           MUL ;
1036
                           PUSH nat 1000000 ;
1037
                           DUP 3 ;
1038
                           MUL ;
1039
                           COMPARE ;
1040
                           LT ;
1041
                           IF { PUSH bool True } { SWAP ; DUP ; DUG 2 ; GET 3 } ;
1042
                           IF {} { PUSH int 802 ; FAILWITH } ;
1043
                           SWAP ;
1044
                           PUSH bool True ;
1045
                           UPDATE 3 ;
1046
                           SWAP ;
1047
                           PUSH nat 1000000 ;
1048
                           PUSH nat 3 ;
1049
                           DUP 8 ;
1050
                           GET 3 ;
1051
                           GET 4 ;
1052
                           DUP 8 ;
1053
                           CDR ;
1054
                           MUL ;
1055
                           LSR ;
1056
                           DUP 8 ;
1057
                           GET 3 ;
1058
                           GET 4 ;
1059
                           DUP 8 ;
1060
                           CDR ;
1061
                           MUL ;
1062
                           ADD ;
1063
                           EDIV ;
1064
                           IF_NONE { PUSH int 389 ; FAILWITH } { CAR } ;
1065
                           DUP 7 ;
1066
                           GET 3 ;
1067
                           GET 4 ;
1068
                           DUP 7 ;
1069
                           CDR ;
1070
                           PUSH nat 1000000000000 ;
1071
                           DUP 10 ;
1072
                           CAR ;
1073
                           GET 3 ;
1074
                           CAR ;
1075
                           DUP 7 ;
1076
                           GET 4 ;
1077
                           MUL ;
1078
                           EDIV ;
1079
                           IF_NONE { PUSH int 380 ; FAILWITH } { CAR } ;
1080
                           SUB ;
1081
                           ISNAT ;
1082
                           IF_NONE { PUSH int 391 ; FAILWITH } {} ;
1083
                           MUL ;
1084
                           DUP ;
1085
                           PUSH nat 3 ;
1086
                           SWAP ;
1087
                           MUL ;
1088
                           PUSH nat 1000000 ;
1089
                           DUP 4 ;
1090
                           DUP 6 ;
1091
                           SUB ;
1092
                           ISNAT ;
1093
                           IF_NONE { PUSH int 393 ; FAILWITH } {} ;
1094
                           MUL ;
1095
                           COMPARE ;
1096
                           LT ;
1097
                           IF {} { PUSH int 803 ; FAILWITH } ;
1098
                           PUSH nat 1000000000 ;
1099
                           DUP 3 ;
1100
                           COMPARE ;
1101
                           GE ;
1102
                           IF {} { PUSH int 602 ; FAILWITH } ;
1103
                           PUSH nat 100 ;
1104
                           PUSH nat 3 ;
1105
                           DUP 3 ;
1106
                           MUL ;
1107
                           MUL ;
1108
                           PUSH nat 105 ;
1109
                           PUSH nat 1000000 ;
1110
                           DUP 5 ;
1111
                           DUP 7 ;
1112
                           SUB ;
1113
                           ISNAT ;
1114
                           IF_NONE { PUSH int 396 ; FAILWITH } {} ;
1115
                           MUL ;
1116
                           MUL ;
1117
                           COMPARE ;
1118
                           GE ;
1119
                           IF { DIG 3 ; PUSH bool False ; UPDATE 3 ; DUG 3 } {} ;
1120
                           DIG 4 ;
1121
                           DUP 8 ;
1122
                           GET 5 ;
1123
                           CDR ;
1124
                           CONTRACT %burn (pair address (pair nat nat)) ;
1125
                           IF_NONE { PUSH int 101 ; FAILWITH } {} ;
1126
                           PUSH mutez 0 ;
1127
                           DUP 9 ;
1128
                           CDR ;
1129
                           DIG 10 ;
1130
                           DUP ;
1131
                           GET 7 ;
1132
                           SWAP ;
1133
                           DUP ;
1134
                           DUG 12 ;
1135
                           GET 3 ;
1136
                           GET 3 ;
1137
                           PAIR 3 ;
1138
                           TRANSFER_TOKENS ;
1139
                           CONS ;
1140
                           DUG 4 ;
1141
                           DUP 8 ;
1142
                           DUP 8 ;
1143
                           CDR ;
1144
                           DIG 9 ;
1145
                           GET 9 ;
1146
                           SUB ;
1147
                           ISNAT ;
1148
                           IF_NONE { PUSH int 401 ; FAILWITH } {} ;
1149
                           UPDATE 9 ;
1150
                           DUG 7 ;
1151
                           DUP 4 ;
1152
                           DUP 9 ;
1153
                           CAR ;
1154
                           GET 3 ;
1155
                           CAR ;
1156
                           PUSH nat 1000000000000 ;
1157
                           DUP 10 ;
1158
                           CDR ;
1159
                           PUSH nat 1000000000000 ;
1160
                           DUP 13 ;
1161
                           CAR ;
1162
                           GET 3 ;
1163
                           CAR ;
1164
                           DIG 9 ;
1165
                           GET 4 ;
1166
                           MUL ;
1167
                           EDIV ;
1168
                           IF_NONE { PUSH int 380 ; FAILWITH } { CAR } ;
1169
                           SUB ;
1170
                           ISNAT ;
1171
                           IF_NONE { PUSH int 403 ; FAILWITH } {} ;
1172
                           MUL ;
1173
                           EDIV ;
1174
                           IF_NONE { PUSH int 403 ; FAILWITH } { CAR } ;
1175
                           UPDATE 4 ;
1176
                           DUP ;
1177
                           DUG 4 ;
1178
                           UNPAIR ;
1179
                           CAR ;
1180
                           DUP 4 ;
1181
                           DIG 6 ;
1182
                           CAR ;
1183
                           CDR ;
1184
                           SUB ;
1185
                           ISNAT ;
1186
                           IF_NONE { PUSH int 404 ; FAILWITH } {} ;
1187
                           SWAP ;
1188
                           PAIR ;
1189
                           PAIR ;
1190
                           DUG 3 ;
1191
                           DIG 7 ;
1192
                           DUP ;
1193
                           GET 10 ;
1194
                           DUP 6 ;
1195
                           SOME ;
1196
                           DUP 10 ;
1197
                           CAR ;
1198
                           UPDATE ;
1199
                           UPDATE 10 ;
1200
                           DUG 7 ;
1201
                           DUP 4 ;
1202
                           CAR ;
1203
                           CAR ;
1204
                           IF
1205
                             { DUP 11 ;
1206
                               DIG 8 ;
1207
                               DUP 3 ;
1208
                               DUP 10 ;
1209
                               CAR ;
1210
                               PAIR ;
1211
                               PAIR ;
1212
                               EXEC ;
1213
                               DUP ;
1214
                               GET 4 ;
1215
                               DUG 8 ;
1216
                               DUP ;
1217
                               CAR ;
1218
                               NIL operation ;
1219
                               SWAP ;
1220
                               ITER { CONS } ;
1221
                               ITER { DIG 6 ; SWAP ; CONS ; DUG 5 } ;
1222
                               DROP 2 ;
1223
                               SWAP ;
1224
                               DROP ;
1225
                               SWAP ;
1226
                               DROP ;
1227
                               DIG 2 ;
1228
                               DROP ;
1229
                               DIG 2 ;
1230
                               DROP ;
1231
                               DIG 3 ;
1232
                               DROP ;
1233
                               DIG 3 ;
1234
                               DROP ;
1235
                               DIG 3 ;
1236
                               DROP ;
1237
                               DIG 3 ;
1238
                               DROP ;
1239
                               DIG 3 ;
1240
                               DROP }
1241
                             { DROP ;
1242
                               SWAP ;
1243
                               DROP ;
1244
                               SWAP ;
1245
                               DROP ;
1246
                               DIG 2 ;
1247
                               DROP ;
1248
                               DIG 2 ;
1249
                               DROP ;
1250
                               DIG 3 ;
1251
                               DROP ;
1252
                               DIG 3 ;
1253
                               DROP ;
1254
                               DIG 3 ;
1255
                               DROP ;
1256
                               DIG 3 ;
1257
                               DROP ;
1258
                               DIG 3 ;
1259
                               DROP } ;
1260
                           SWAP ;
1261
                           DUP 3 ;
1262
                           CAR ;
1263
                           CAR ;
1264
                           GET 3 ;
1265
                           CONTRACT %transfer (list (pair address
1266
                                                         (list (pair address
1267
                                                                    (pair nat nat))))) ;
1268
                           IF_NONE { PUSH int 35 ; FAILWITH } {} ;
1269
                           PUSH mutez 0 ;
1270
                           NIL (pair address (list (pair address (pair nat nat)))) ;
1271
                           NIL (pair address (pair nat nat)) ;
1272
                           DIG 5 ;
1273
                           DIG 6 ;
1274
                           DUP ;
1275
                           CAR ;
1276
                           CAR ;
1277
                           GET 4 ;
1278
                           SWAP ;
1279
                           DUP ;
1280
                           DUG 8 ;
1281
                           GET 3 ;
1282
                           GET 3 ;
1283
                           PAIR 3 ;
1284
                           CONS ;
1285
                           SELF_ADDRESS ;
1286
                           PAIR ;
1287
                           CONS ;
1288
                           TRANSFER_TOKENS ;
1289
                           CONS } } }
1290
                 { IF_LEFT
1291
                     { DUP 4 ;
1292
                       DIG 2 ;
1293
                       UNIT ;
1294
                       PAIR ;
1295
                       EXEC ;
1296
                       DUP ;
1297
                       GET 4 ;
1298
                       DUG 2 ;
1299
                       DUP ;
1300
                       CAR ;
1301
                       PUSH nat 1000000000 ;
1302
                       DUP 4 ;
1303
                       COMPARE ;
1304
                       GE ;
1305
                       IF {} { PUSH int 602 ; FAILWITH } ;
1306
                       DIG 3 ;
1307
                       DUP ;
1308
                       GET 10 ;
1309
                       SWAP ;
1310
                       DUP ;
1311
                       DUG 5 ;
1312
                       GET 3 ;
1313
                       GET 3 ;
1314
                       GET ;
1315
                       IF_NONE { PUSH int 257 ; FAILWITH } {} ;
1316
                       PUSH nat 1000000000000 ;
1317
                       DUP 6 ;
1318
                       CAR ;
1319
                       GET 3 ;
1320
                       CAR ;
1321
                       DUP 3 ;
1322
                       GET 4 ;
1323
                       MUL ;
1324
                       EDIV ;
1325
                       IF_NONE { PUSH int 260 ; FAILWITH } { CAR } ;
1326
                       DUP 6 ;
1327
                       GET 3 ;
1328
                       GET 4 ;
1329
                       DUP 6 ;
1330
                       DUP 3 ;
1331
                       ADD ;
1332
                       MUL ;
1333
                       DUP ;
1334
                       PUSH nat 3 ;
1335
                       SWAP ;
1336
                       MUL ;
1337
                       PUSH nat 1000000 ;
1338
                       DUP 5 ;
1339
                       CAR ;
1340
                       CDR ;
1341
                       MUL ;
1342
                       COMPARE ;
1343
                       GE ;
1344
                       IF {} { PUSH int 801 ; FAILWITH } ;
1345
                       DIG 2 ;
1346
                       DUP ;
1347
                       GET 4 ;
1348
                       DUP 8 ;
1349
                       CAR ;
1350
                       GET 3 ;
1351
                       CAR ;
1352
                       PUSH nat 1000000000000 ;
1353
                       DUP 9 ;
1354
                       MUL ;
1355
                       EDIV ;
1356
                       IF_NONE { PUSH int 270 ; FAILWITH } { CAR } ;
1357
                       ADD ;
1358
                       UPDATE 4 ;
1359
                       DUG 2 ;
1360
                       DUP 7 ;
1361
                       DUP ;
1362
                       GET 10 ;
1363
                       DUP 5 ;
1364
                       SOME ;
1365
                       DIG 9 ;
1366
                       GET 3 ;
1367
                       GET 3 ;
1368
                       UPDATE ;
1369
                       UPDATE 10 ;
1370
                       DUG 6 ;
1371
                       DIG 3 ;
1372
                       DUP 7 ;
1373
                       GET 5 ;
1374
                       CDR ;
1375
                       CONTRACT %mint (pair address (pair nat nat)) ;
1376
                       IF_NONE { PUSH int 101 ; FAILWITH } {} ;
1377
                       PUSH mutez 0 ;
1378
                       PUSH nat 6 ;
1379
                       DUP 9 ;
1380
                       LSR ;
1381
                       DUP 9 ;
1382
                       SUB ;
1383
                       ISNAT ;
1384
                       IF_NONE { PUSH int 268 ; FAILWITH } {} ;
1385
                       DIG 9 ;
1386
                       DUP ;
1387
                       GET 7 ;
1388
                       SWAP ;
1389
                       DUP ;
1390
                       DUG 11 ;
1391
                       GET 3 ;
1392
                       GET 3 ;
1393
                       PAIR 3 ;
1394
                       TRANSFER_TOKENS ;
1395
                       CONS ;
1396
                       DUP 7 ;
1397
                       GET 5 ;
1398
                       CDR ;
1399
                       CONTRACT %mint (pair address (pair nat nat)) ;
1400
                       IF_NONE { PUSH int 101 ; FAILWITH } {} ;
1401
                       PUSH mutez 0 ;
1402
                       PUSH nat 6 ;
1403
                       DUP 9 ;
1404
                       LSR ;
1405
                       DIG 9 ;
1406
                       DUP ;
1407
                       GET 7 ;
1408
                       SWAP ;
1409
                       DUP ;
1410
                       DUG 11 ;
1411
                       GET 3 ;
1412
                       CAR ;
1413
                       CAR ;
1414
                       PAIR 3 ;
1415
                       TRANSFER_TOKENS ;
1416
                       CONS ;
1417
                       DUG 3 ;
1418
                       DIG 6 ;
1419
                       DUP ;
1420
                       GET 9 ;
1421
                       DUP 8 ;
1422
                       ADD ;
1423
                       UPDATE 9 ;
1424
                       DUG 6 ;
1425
                       DUP 3 ;
1426
                       CAR ;
1427
                       CAR ;
1428
                       IF
1429
                         { DUP 10 ;
1430
                           DUP 8 ;
1431
                           DUP 3 ;
1432
                           DIG 9 ;
1433
                           GET 3 ;
1434
                           GET 3 ;
1435
                           PAIR ;
1436
                           PAIR ;
1437
                           EXEC ;
1438
                           DUP ;
1439
                           GET 4 ;
1440
                           DUG 7 ;
1441
                           DUP ;
1442
                           CAR ;
1443
                           NIL operation ;
1444
                           SWAP ;
1445
                           ITER { CONS } ;
1446
                           ITER { DIG 5 ; SWAP ; CONS ; DUG 4 } ;
1447
                           DROP 4 ;
1448
                           SWAP ;
1449
                           DROP ;
1450
                           SWAP ;
1451
                           DROP ;
1452
                           DIG 2 ;
1453
                           DROP ;
1454
                           DIG 2 ;
1455
                           DROP ;
1456
                           DIG 2 ;
1457
                           DROP ;
1458
                           DIG 2 ;
1459
                           DROP ;
1460
                           DIG 2 ;
1461
                           DROP }
1462
                         { DROP 3 ;
1463
                           SWAP ;
1464
                           DROP ;
1465
                           SWAP ;
1466
                           DROP ;
1467
                           DIG 2 ;
1468
                           DROP ;
1469
                           DIG 2 ;
1470
                           DROP ;
1471
                           DIG 2 ;
1472
                           DROP ;
1473
                           DIG 2 ;
1474
                           DROP ;
1475
                           DIG 2 ;
1476
                           DROP } }
1477
                     { IF_LEFT
1478
                         { DUP 4 ;
1479
                           DIG 2 ;
1480
                           UNIT ;
1481
                           PAIR ;
1482
                           EXEC ;
1483
                           DUP ;
1484
                           GET 4 ;
1485
                           DUG 2 ;
1486
                           DUP ;
1487
                           CAR ;
1488
                           DIG 3 ;
1489
                           DUP ;
1490
                           CAR ;
1491
                           GET 5 ;
1492
                           SWAP ;
1493
                           DUP ;
1494
                           DUG 5 ;
1495
                           GET 3 ;
1496
                           GET 3 ;
1497
                           COMPARE ;
1498
                           EQ ;
1499
                           IF {} { PUSH int 401 ; FAILWITH } ;
1500
                           DUP 4 ;
1501
                           GET 10 ;
1502
                           DUP 4 ;
1503
                           CAR ;
1504
                           GET ;
1505
                           IF_NONE { PUSH int 524 ; FAILWITH } {} ;
1506
                           DUP ;
1507
                           CAR ;
1508
                           CAR ;
1509
                           IF {} { PUSH int 403 ; FAILWITH } ;
1510
                           DUP 5 ;
1511
                           GET 3 ;
1512
                           GET 4 ;
1513
                           DUP 5 ;
1514
                           GET 3 ;
1515
                           MUL ;
1516
                           PUSH nat 1000000 ;
1517
                           PUSH nat 4 ;
1518
                           DUP 3 ;
1519
                           LSR ;
1520
                           DUP 3 ;
1521
                           SUB ;
1522
                           ISNAT ;
1523
                           IF_NONE { PUSH int 531 ; FAILWITH } {} ;
1524
                           EDIV ;
1525
                           IF_NONE { PUSH int 531 ; FAILWITH } { CAR } ;
1526
                           DUP ;
1527
                           PUSH nat 1000000000 ;
1528
                           SWAP ;
1529
                           COMPARE ;
1530
                           GE ;
1531
                           IF {} { PUSH int 602 ; FAILWITH } ;
1532
                           PUSH nat 1000000000000 ;
1533
                           DUP 8 ;
1534
                           CAR ;
1535
                           GET 3 ;
1536
                           CAR ;
1537
                           DUP 5 ;
1538
                           GET 4 ;
1539
                           MUL ;
1540
                           EDIV ;
1541
                           IF_NONE { PUSH int 536 ; FAILWITH } { CAR } ;
1542
                           DIG 3 ;
1543
                           DUP 8 ;
1544
                           CAR ;
1545
                           GET 3 ;
1546
                           CAR ;
1547
                           PUSH nat 1000000000000 ;
1548
                           DUP 9 ;
1549
                           GET 3 ;
1550
                           DUP 5 ;
1551
                           SUB ;
1552
                           ISNAT ;
1553
                           IF_NONE { PUSH int 538 ; FAILWITH } {} ;
1554
                           MUL ;
1555
                           EDIV ;
1556
                           IF_NONE { PUSH int 538 ; FAILWITH } { CAR } ;
1557
                           UPDATE 4 ;
1558
                           DUP ;
1559
                           DUG 4 ;
1560
                           UNPAIR ;
1561
                           CAR ;
1562
                           DUP 4 ;
1563
                           DIG 6 ;
1564
                           CAR ;
1565
                           CDR ;
1566
                           SUB ;
1567
                           ISNAT ;
1568
                           IF_NONE { PUSH int 539 ; FAILWITH } {} ;
1569
                           SWAP ;
1570
                           PAIR ;
1571
                           PAIR ;
1572
                           DUG 3 ;
1573
                           DIG 7 ;
1574
                           DUP ;
1575
                           GET 10 ;
1576
                           DUP 6 ;
1577
                           SOME ;
1578
                           DUP 10 ;
1579
                           CAR ;
1580
                           UPDATE ;
1581
                           UPDATE 10 ;
1582
                           DUG 7 ;
1583
                           DUP 4 ;
1584
                           CAR ;
1585
                           CAR ;
1586
                           IF
1587
                             { DUP 11 ;
1588
                               DIG 8 ;
1589
                               DUP ;
1590
                               GET 3 ;
1591
                               GET 4 ;
1592
                               DUP 10 ;
1593
                               GET 3 ;
1594
                               DUP 5 ;
1595
                               SUB ;
1596
                               ISNAT ;
1597
                               IF_NONE { PUSH int 544 ; FAILWITH } {} ;
1598
                               MUL ;
1599
                               DUP 10 ;
1600
                               CAR ;
1601
                               PAIR ;
1602
                               PAIR ;
1603
                               EXEC ;
1604
                               DUP ;
1605
                               GET 4 ;
1606
                               DUG 8 ;
1607
                               DUP ;
1608
                               CAR ;
1609
                               NIL operation ;
1610
                               SWAP ;
1611
                               ITER { CONS } ;
1612
                               ITER { DIG 6 ; SWAP ; CONS ; DUG 5 } ;
1613
                               DROP 2 ;
1614
                               SWAP ;
1615
                               DROP ;
1616
                               SWAP ;
1617
                               DROP ;
1618
                               DIG 2 ;
1619
                               DROP ;
1620
                               DIG 4 ;
1621
                               DROP ;
1622
                               DIG 4 ;
1623
                               DROP ;
1624
                               DIG 4 ;
1625
                               DROP ;
1626
                               DIG 4 ;
1627
                               DROP ;
1628
                               DIG 4 ;
1629
                               DROP }
1630
                             { DROP ;
1631
                               SWAP ;
1632
                               DROP ;
1633
                               SWAP ;
1634
                               DROP ;
1635
                               DIG 2 ;
1636
                               DROP ;
1637
                               DIG 4 ;
1638
                               DROP ;
1639
                               DIG 4 ;
1640
                               DROP ;
1641
                               DIG 4 ;
1642
                               DROP ;
1643
                               DIG 4 ;
1644
                               DROP ;
1645
                               DIG 4 ;
1646
                               DROP } ;
1647
                           SWAP ;
1648
                           DUP 4 ;
1649
                           CAR ;
1650
                           CAR ;
1651
                           GET 3 ;
1652
                           CONTRACT %transfer (list (pair address
1653
                                                         (list (pair address
1654
                                                                    (pair nat nat))))) ;
1655
                           IF_NONE { PUSH int 35 ; FAILWITH } {} ;
1656
                           PUSH mutez 0 ;
1657
                           NIL (pair address (list (pair address (pair nat nat)))) ;
1658
                           NIL (pair address (pair nat nat)) ;
1659
                           DIG 5 ;
1660
                           DUP 8 ;
1661
                           CAR ;
1662
                           CAR ;
1663
                           GET 4 ;
1664
                           DUP 8 ;
1665
                           GET 4 ;
1666
                           PAIR 3 ;
1667
                           CONS ;
1668
                           SELF_ADDRESS ;
1669
                           PAIR ;
1670
                           CONS ;
1671
                           TRANSFER_TOKENS ;
1672
                           CONS ;
1673
                           DUP 3 ;
1674
                           GET 5 ;
1675
                           CDR ;
1676
                           CONTRACT %burn (pair address (pair nat nat)) ;
1677
                           IF_NONE { PUSH int 101 ; FAILWITH } {} ;
1678
                           PUSH mutez 0 ;
1679
                           DUP 4 ;
1680
                           GET 3 ;
1681
                           DIG 5 ;
1682
                           DUP ;
1683
                           GET 7 ;
1684
                           SWAP ;
1685
                           DUP ;
1686
                           DUG 7 ;
1687
                           GET 3 ;
1688
                           GET 3 ;
1689
                           PAIR 3 ;
1690
                           TRANSFER_TOKENS ;
1691
                           CONS ;
1692
                           DUP 3 ;
1693
                           DIG 2 ;
1694
                           GET 3 ;
1695
                           DIG 3 ;
1696
                           GET 9 ;
1697
                           SUB ;
1698
                           ISNAT ;
1699
                           IF_NONE { PUSH int 549 ; FAILWITH } {} ;
1700
                           UPDATE 9 ;
1701
                           SWAP }
1702
                         { DUP 4 ;
1703
                           DIG 2 ;
1704
                           UNIT ;
1705
                           PAIR ;
1706
                           EXEC ;
1707
                           DUP ;
1708
                           GET 4 ;
1709
                           DUG 2 ;
1710
                           DUP ;
1711
                           CAR ;
1712
                           DUP 3 ;
1713
                           ITER { DUP 5 ;
1714
                                  GET 10 ;
1715
                                  SWAP ;
1716
                                  DUP ;
1717
                                  DUG 2 ;
1718
                                  GET ;
1719
                                  IF_NONE { PUSH int 636 ; FAILWITH } {} ;
1720
                                  CAR ;
1721
                                  CAR ;
1722
                                  IF
1723
                                    { DUP 8 ;
1724
                                      DUP 6 ;
1725
                                      PUSH nat 1000000000000 ;
1726
                                      DIG 7 ;
1727
                                      DUP ;
1728
                                      GET 3 ;
1729
                                      GET 4 ;
1730
                                      SWAP ;
1731
                                      DUP ;
1732
                                      CAR ;
1733
                                      GET 3 ;
1734
                                      CAR ;
1735
                                      SWAP ;
1736
                                      GET 10 ;
1737
                                      DUP 7 ;
1738
                                      GET ;
1739
                                      IF_NONE { PUSH int 637 ; FAILWITH } {} ;
1740
                                      GET 4 ;
1741
                                      MUL ;
1742
                                      MUL ;
1743
                                      EDIV ;
1744
                                      IF_NONE { PUSH int 637 ; FAILWITH } { CAR } ;
1745
                                      DUP 4 ;
1746
                                      PAIR ;
1747
                                      PAIR ;
1748
                                      EXEC ;
1749
                                      DUP ;
1750
                                      GET 4 ;
1751
                                      DUG 5 ;
1752
                                      DUP ;
1753
                                      CAR ;
1754
                                      NIL operation ;
1755
                                      SWAP ;
1756
                                      ITER { CONS } ;
1757
                                      ITER { DIG 3 ; SWAP ; CONS ; DUG 2 } ;
1758
                                      DROP 2 }
1759
                                    { DROP } } ;
1760
                           SWAP ;
1761
                           DROP ;
1762
                           SWAP ;
1763
                           DROP ;
1764
                           DIG 2 ;
1765
                           DROP ;
1766
                           DIG 2 ;
1767
                           DROP ;
1768
                           DIG 2 ;
1769
                           DROP ;
1770
                           DIG 2 ;
1771
                           DROP ;
1772
                           DIG 2 ;
1773
                           DROP } } } } }
1774
         { IF_LEFT
1775
             { IF_LEFT
1776
                 { IF_LEFT
1777
                     { DIG 2 ;
1778
                       DROP ;
1779
                       DIG 3 ;
1780
                       DROP ;
1781
                       DIG 3 ;
1782
                       DROP ;
1783
                       DIG 3 ;
1784
                       DROP ;
1785
                       DUG 2 ;
1786
                       UNIT ;
1787
                       PAIR ;
1788
                       EXEC ;
1789
                       DUP ;
1790
                       GET 4 ;
1791
                       DUG 2 ;
1792
                       CAR ;
1793
                       DIG 2 ;
1794
                       DUP ;
1795
                       GET 10 ;
1796
                       SWAP ;
1797
                       DUP ;
1798
                       DUG 4 ;
1799
                       GET 3 ;
1800
                       GET 3 ;
1801
                       GET ;
1802
                       IF_NONE { PUSH int 468 ; FAILWITH } {} ;
1803
                       PUSH nat 3 ;
1804
                       DIG 4 ;
1805
                       DUP ;
1806
                       GET 3 ;
1807
                       GET 4 ;
1808
                       SWAP ;
1809
                       DUP ;
1810
                       DUG 6 ;
1811
                       CAR ;
1812
                       GET 3 ;
1813
                       CAR ;
1814
                       DUP 4 ;
1815
                       GET 4 ;
1816
                       MUL ;
1817
                       MUL ;
1818
                       MUL ;
1819
                       PUSH nat 1000000 ;
1820
                       PUSH nat 1000000000000 ;
1821
                       DUP 6 ;
1822
                       DUP 5 ;
1823
                       CAR ;
1824
                       CDR ;
1825
                       SUB ;
1826
                       ISNAT ;
1827
                       IF_NONE { PUSH int 470 ; FAILWITH } {} ;
1828
                       MUL ;
1829
                       MUL ;
1830
                       COMPARE ;
1831
                       GE ;
1832
                       IF {} { PUSH int 801 ; FAILWITH } ;
1833
                       DUP ;
1834
                       UNPAIR ;
1835
                       CAR ;
1836
                       DUP 5 ;
1837
                       DIG 3 ;
1838
                       CAR ;
1839
                       CDR ;
1840
                       SUB ;
1841
                       ISNAT ;
1842
                       IF_NONE { PUSH int 470 ; FAILWITH } {} ;
1843
                       SWAP ;
1844
                       PAIR ;
1845
                       PAIR ;
1846
                       DUP 4 ;
1847
                       DUP ;
1848
                       GET 10 ;
1849
                       DIG 2 ;
1850
                       SOME ;
1851
                       DIG 5 ;
1852
                       GET 3 ;
1853
                       GET 3 ;
1854
                       UPDATE ;
1855
                       UPDATE 10 ;
1856
                       DUP ;
1857
                       DUG 3 ;
1858
                       CAR ;
1859
                       CAR ;
1860
                       GET 3 ;
1861
                       CONTRACT %transfer (list (pair address
1862
                                                     (list (pair address (pair nat nat))))) ;
1863
                       IF_NONE { PUSH int 35 ; FAILWITH } {} ;
1864
                       PUSH mutez 0 ;
1865
                       NIL (pair address (list (pair address (pair nat nat)))) ;
1866
                       NIL (pair address (pair nat nat)) ;
1867
                       DIG 5 ;
1868
                       DIG 6 ;
1869
                       DUP ;
1870
                       CAR ;
1871
                       CAR ;
1872
                       GET 4 ;
1873
                       SWAP ;
1874
                       DUP ;
1875
                       DUG 8 ;
1876
                       GET 3 ;
1877
                       GET 3 ;
1878
                       PAIR 3 ;
1879
                       CONS ;
1880
                       SELF_ADDRESS ;
1881
                       PAIR ;
1882
                       CONS ;
1883
                       TRANSFER_TOKENS ;
1884
                       CONS }
1885
                     { IF_LEFT
1886
                         { DUP 7 ;
1887
                           DIG 2 ;
1888
                           UNIT ;
1889
                           PAIR ;
1890
                           EXEC ;
1891
                           DUP ;
1892
                           GET 4 ;
1893
                           DUG 2 ;
1894
                           DUP ;
1895
                           CAR ;
1896
                           DUP 8 ;
1897
                           DIG 4 ;
1898
                           UNIT ;
1899
                           PAIR ;
1900
                           EXEC ;
1901
                           DUP ;
1902
                           GET 4 ;
1903
                           DUG 4 ;
1904
                           DUP ;
1905
                           CAR ;
1906
                           NIL operation ;
1907
                           SWAP ;
1908
                           ITER { CONS } ;
1909
                           ITER { DIG 2 ; SWAP ; CONS ; SWAP } ;
1910
                           DROP ;
1911
                           SWAP ;
1912
                           DROP ;
1913
                           DIG 3 ;
1914
                           DROP ;
1915
                           DIG 3 ;
1916
                           DROP ;
1917
                           DIG 3 ;
1918
                           DROP ;
1919
                           DIG 3 ;
1920
                           DROP ;
1921
                           DIG 3 ;
1922
                           DROP ;
1923
                           DIG 2 ;
1924
                           UNPAIR ;
1925
                           SWAP ;
1926
                           UNPAIR ;
1927
                           UNPAIR ;
1928
                           SWAP ;
1929
                           CDR ;
1930
                           SENDER ;
1931
                           PAIR ;
1932
                           SWAP ;
1933
                           PAIR ;
1934
                           PAIR ;
1935
                           SWAP ;
1936
                           PAIR ;
1937
                           DUG 2 ;
1938
                           SELF %internal_liquidate ;
1939
                           PUSH mutez 0 ;
1940
                           DIG 3 ;
1941
                           TRANSFER_TOKENS ;
1942
                           CONS }
1943
                         { DUP 7 ;
1944
                           DIG 2 ;
1945
                           UNIT ;
1946
                           PAIR ;
1947
                           EXEC ;
1948
                           DUP ;
1949
                           GET 4 ;
1950
                           DUG 2 ;
1951
                           DUP ;
1952
                           CAR ;
1953
                           DUP 8 ;
1954
                           DIG 4 ;
1955
                           UNIT ;
1956
                           PAIR ;
1957
                           EXEC ;
1958
                           DUP ;
1959
                           GET 4 ;
1960
                           DUG 4 ;
1961
                           DUP ;
1962
                           CAR ;
1963
                           NIL operation ;
1964
                           SWAP ;
1965
                           ITER { CONS } ;
1966
                           ITER { DIG 2 ; SWAP ; CONS ; SWAP } ;
1967
                           DROP ;
1968
                           SWAP ;
1969
                           DROP ;
1970
                           DIG 3 ;
1971
                           DROP ;
1972
                           DIG 3 ;
1973
                           DROP ;
1974
                           DIG 3 ;
1975
                           DROP ;
1976
                           DIG 3 ;
1977
                           DROP ;
1978
                           DIG 3 ;
1979
                           DROP ;
1980
                           DIG 2 ;
1981
                           UNPAIR ;
1982
                           SWAP ;
1983
                           UNPAIR ;
1984
                           UNPAIR ;
1985
                           SWAP ;
1986
                           CDR ;
1987
                           SENDER ;
1988
                           PAIR ;
1989
                           SWAP ;
1990
                           PAIR ;
1991
                           PAIR ;
1992
                           SWAP ;
1993
                           PAIR ;
1994
                           DUG 2 ;
1995
                           SELF %internal_mint ;
1996
                           PUSH mutez 0 ;
1997
                           DIG 3 ;
1998
                           TRANSFER_TOKENS ;
1999
                           CONS } } }
2000
                 { DIG 3 ;
2001
                   DROP ;
2002
                   DIG 3 ;
2003
                   DROP ;
2004
                   DIG 3 ;
2005
                   DROP ;
2006
                   DIG 3 ;
2007
                   DROP ;
2008
                   IF_LEFT
2009
                     { DUP ;
2010
                       DUG 3 ;
2011
                       CDR ;
2012
                       PAIR ;
2013
                       EXEC ;
2014
                       DUP ;
2015
                       GET 4 ;
2016
                       DUG 2 ;
2017
                       CAR ;
2018
                       DIG 2 ;
2019
                       UNPAIR ;
2020
                       UNPAIR ;
2021
                       UNPAIR ;
2022
                       UNPAIR ;
2023
                       SWAP ;
2024
                       NONE unit ;
2025
                       DIG 7 ;
2026
                       UPDATE ;
2027
                       SWAP ;
2028
                       PAIR ;
2029
                       PAIR ;
2030
                       PAIR ;
2031
                       PAIR ;
2032
                       SWAP }
2033
                     { IF_LEFT
2034
                         { DUP ;
2035
                           DUG 3 ;
2036
                           CDR ;
2037
                           PAIR ;
2038
                           EXEC ;
2039
                           DUP ;
2040
                           GET 4 ;
2041
                           DUG 2 ;
2042
                           CAR ;
2043
                           DIG 2 ;
2044
                           UNPAIR ;
2045
                           UNPAIR ;
2046
                           UNPAIR ;
2047
                           UNPAIR ;
2048
                           SWAP ;
2049
                           PUSH (option unit) (Some Unit) ;
2050
                           DIG 7 ;
2051
                           UPDATE ;
2052
                           SWAP ;
2053
                           PAIR ;
2054
                           PAIR ;
2055
                           PAIR ;
2056
                           PAIR ;
2057
                           SWAP }
2058
                         { DUG 2 ;
2059
                           PUSH nat 0 ;
2060
                           PAIR ;
2061
                           EXEC ;
2062
                           DUP ;
2063
                           GET 4 ;
2064
                           DUG 2 ;
2065
                           CAR ;
2066
                           DIG 2 ;
2067
                           UNPAIR ;
2068
                           SWAP ;
2069
                           UNPAIR ;
2070
                           SWAP ;
2071
                           UNPAIR ;
2072
                           CDR ;
2073
                           DUP 6 ;
2074
                           GET 6 ;
2075
                           PAIR ;
2076
                           PAIR ;
2077
                           SWAP ;
2078
                           CDR ;
2079
                           DUP 5 ;
2080
                           GET 3 ;
2081
                           DUP 6 ;
2082
                           GET 5 ;
2083
                           SWAP ;
2084
                           PAIR ;
2085
                           PAIR ;
2086
                           PAIR ;
2087
                           SWAP ;
2088
                           UNPAIR ;
2089
                           SWAP ;
2090
                           UNPAIR ;
2091
                           CAR ;
2092
                           DUP 6 ;
2093
                           CAR ;
2094
                           CAR ;
2095
                           SWAP ;
2096
                           PAIR ;
2097
                           SWAP ;
2098
                           CDR ;
2099
                           DIG 5 ;
2100
                           CAR ;
2101
                           CDR ;
2102
                           PAIR ;
2103
                           SWAP ;
2104
                           PAIR ;
2105
                           SWAP ;
2106
                           PAIR ;
2107
                           PAIR ;
2108
                           SWAP } } } }
2109
             { IF_LEFT
2110
                 { IF_LEFT
2111
                     { DUP 3 ;
2112
                       DIG 2 ;
2113
                       PUSH nat 0 ;
2114
                       PAIR ;
2115
                       EXEC ;
2116
                       DUP ;
2117
                       GET 4 ;
2118
                       DUG 2 ;
2119
                       DUP ;
2120
                       CAR ;
2121
                       DUP 8 ;
2122
                       DIG 4 ;
2123
                       UNIT ;
2124
                       PAIR ;
2125
                       EXEC ;
2126
                       DUP ;
2127
                       GET 4 ;
2128
                       DUG 4 ;
2129
                       DUP ;
2130
                       CAR ;
2131
                       NIL operation ;
2132
                       SWAP ;
2133
                       ITER { CONS } ;
2134
                       ITER { DIG 2 ; SWAP ; CONS ; SWAP } ;
2135
                       DROP ;
2136
                       SWAP ;
2137
                       DROP ;
2138
                       DIG 3 ;
2139
                       DROP ;
2140
                       DIG 3 ;
2141
                       DROP ;
2142
                       DIG 3 ;
2143
                       DROP ;
2144
                       DIG 3 ;
2145
                       DROP ;
2146
                       DIG 3 ;
2147
                       DROP ;
2148
                       DIG 2 ;
2149
                       UNPAIR ;
2150
                       UNPAIR ;
2151
                       SWAP ;
2152
                       UNPAIR ;
2153
                       SWAP ;
2154
                       CAR ;
2155
                       DIG 5 ;
2156
                       SWAP ;
2157
                       PAIR ;
2158
                       SWAP ;
2159
                       PAIR ;
2160
                       SWAP ;
2161
                       PAIR ;
2162
                       PAIR ;
2163
                       SWAP }
2164
                     { IF_LEFT
2165
                         { DIG 2 ;
2166
                           DROP ;
2167
                           DIG 2 ;
2168
                           DROP ;
2169
                           DIG 2 ;
2170
                           DROP ;
2171
                           DIG 2 ;
2172
                           DROP ;
2173
                           DIG 2 ;
2174
                           DROP ;
2175
                           SWAP ;
2176
                           DUP ;
2177
                           DUG 2 ;
2178
                           GET 5 ;
2179
                           CAR ;
2180
                           SENDER ;
2181
                           COMPARE ;
2182
                           EQ ;
2183
                           IF
2184
                             {}
2185
                             { PUSH string "WrongCondition: sp.sender == self.data.target_price_oracle" ;
2186
                               FAILWITH } ;
2187
                           SWAP ;
2188
                           UNPAIR ;
2189
                           SWAP ;
2190
                           UNPAIR ;
2191
                           UNPAIR ;
2192
                           SWAP ;
2193
                           CAR ;
2194
                           DIG 4 ;
2195
                           SWAP ;
2196
                           PAIR ;
2197
                           SWAP ;
2198
                           PAIR ;
2199
                           PAIR ;
2200
                           SWAP ;
2201
                           PAIR ;
2202
                           NIL operation }
2203
                         { DUP 7 ;
2204
                           DIG 2 ;
2205
                           UNIT ;
2206
                           PAIR ;
2207
                           EXEC ;
2208
                           DUP ;
2209
                           GET 4 ;
2210
                           DUG 2 ;
2211
                           DUP ;
2212
                           CAR ;
2213
                           DUP 8 ;
2214
                           DIG 4 ;
2215
                           UNIT ;
2216
                           PAIR ;
2217
                           EXEC ;
2218
                           DUP ;
2219
                           GET 4 ;
2220
                           DUG 4 ;
2221
                           DUP ;
2222
                           CAR ;
2223
                           NIL operation ;
2224
                           SWAP ;
2225
                           ITER { CONS } ;
2226
                           ITER { DIG 2 ; SWAP ; CONS ; SWAP } ;
2227
                           DROP ;
2228
                           SWAP ;
2229
                           DROP ;
2230
                           DIG 3 ;
2231
                           DROP ;
2232
                           DIG 3 ;
2233
                           DROP ;
2234
                           DIG 3 ;
2235
                           DROP ;
2236
                           DIG 3 ;
2237
                           DROP ;
2238
                           DIG 3 ;
2239
                           DROP ;
2240
                           DIG 2 ;
2241
                           UNPAIR ;
2242
                           SWAP ;
2243
                           UNPAIR ;
2244
                           UNPAIR ;
2245
                           SWAP ;
2246
                           CDR ;
2247
                           SENDER ;
2248
                           PAIR ;
2249
                           SWAP ;
2250
                           PAIR ;
2251
                           PAIR ;
2252
                           SWAP ;
2253
                           PAIR ;
2254
                           DUG 2 ;
2255
                           SELF %internal_settle_with_vault ;
2256
                           PUSH mutez 0 ;
2257
                           DIG 3 ;
2258
                           TRANSFER_TOKENS ;
2259
                           CONS } } }
2260
                 { IF_LEFT
2261
                     { DUP 7 ;
2262
                       DIG 2 ;
2263
                       UNIT ;
2264
                       PAIR ;
2265
                       EXEC ;
2266
                       DUP ;
2267
                       GET 4 ;
2268
                       DUG 2 ;
2269
                       DUP ;
2270
                       CAR ;
2271
                       DUP 8 ;
2272
                       DIG 4 ;
2273
                       UNIT ;
2274
                       PAIR ;
2275
                       EXEC ;
2276
                       DUP ;
2277
                       GET 4 ;
2278
                       DUG 4 ;
2279
                       DUP ;
2280
                       CAR ;
2281
                       NIL operation ;
2282
                       SWAP ;
2283
                       ITER { CONS } ;
2284
                       ITER { DIG 2 ; SWAP ; CONS ; SWAP } ;
2285
                       DROP ;
2286
                       SWAP ;
2287
                       DROP ;
2288
                       DIG 3 ;
2289
                       DROP ;
2290
                       DIG 3 ;
2291
                       DROP ;
2292
                       DIG 3 ;
2293
                       DROP ;
2294
                       DIG 3 ;
2295
                       DROP ;
2296
                       DIG 3 ;
2297
                       DROP ;
2298
                       SELF %internal_touch ;
2299
                       PUSH mutez 0 ;
2300
                       DIG 3 ;
2301
                       TRANSFER_TOKENS ;
2302
                       CONS }
2303
                     { IF_LEFT
2304
                         { DROP ;
2305
                           SWAP ;
2306
                           DROP ;
2307
                           SWAP ;
2308
                           DROP ;
2309
                           SWAP ;
2310
                           DROP ;
2311
                           DIG 2 ;
2312
                           DROP ;
2313
                           UNIT ;
2314
                           PAIR ;
2315
                           EXEC ;
2316
                           DUP ;
2317
                           GET 4 ;
2318
                           SWAP ;
2319
                           CAR }
2320
                         { DUP 7 ;
2321
                           DIG 2 ;
2322
                           UNIT ;
2323
                           PAIR ;
2324
                           EXEC ;
2325
                           DUP ;
2326
                           GET 4 ;
2327
                           DUG 2 ;
2328
                           DUP ;
2329
                           CAR ;
2330
                           DUP 8 ;
2331
                           DIG 4 ;
2332
                           UNIT ;
2333
                           PAIR ;
2334
                           EXEC ;
2335
                           DUP ;
2336
                           GET 4 ;
2337
                           DUG 4 ;
2338
                           DUP ;
2339
                           CAR ;
2340
                           NIL operation ;
2341
                           SWAP ;
2342
                           ITER { CONS } ;
2343
                           ITER { DIG 2 ; SWAP ; CONS ; SWAP } ;
2344
                           DROP ;
2345
                           SWAP ;
2346
                           DROP ;
2347
                           DIG 3 ;
2348
                           DROP ;
2349
                           DIG 3 ;
2350
                           DROP ;
2351
                           DIG 3 ;
2352
                           DROP ;
2353
                           DIG 3 ;
2354
                           DROP ;
2355
                           DIG 3 ;
2356
                           DROP ;
2357
                           DIG 2 ;
2358
                           UNPAIR ;
2359
                           SWAP ;
2360
                           UNPAIR ;
2361
                           UNPAIR ;
2362
                           SWAP ;
2363
                           CDR ;
2364
                           SENDER ;
2365
                           PAIR ;
2366
                           SWAP ;
2367
                           PAIR ;
2368
                           PAIR ;
2369
                           SWAP ;
2370
                           PAIR ;
2371
                           DUG 2 ;
2372
                           SELF %internal_withdraw ;
2373
                           PUSH mutez 0 ;
2374
                           DIG 3 ;
2375
                           TRANSFER_TOKENS ;
2376
                           CONS } } } } } ;
2377
       NIL operation ;
2378
       SWAP ;
2379
       ITER { CONS } ;
2380
       PAIR }