BCD

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