-
Notifications
You must be signed in to change notification settings - Fork 16
Expand file tree
/
Copy pathnonnish-grafters.clar
More file actions
630 lines (584 loc) · 33.1 KB
/
nonnish-grafters.clar
File metadata and controls
630 lines (584 loc) · 33.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
;; nonnish-grafters
(impl-trait 'SP2PABAF9FTAJYNFZH93XENAJ8FVY99RRM50D2JG9.nft-trait.nft-trait)
(define-non-fungible-token nonnish-grafters uint)
;; Constants
(define-constant DEPLOYER tx-sender)
(define-constant COMM u1000)
(define-constant COMM-ADDR 'SPNWZ5V2TPWGQGVDR6T7B6RQ4XMGZ4PXTEE0VQ0S)
(define-constant ERR-NO-MORE-NFTS u100)
(define-constant ERR-NOT-ENOUGH-PASSES u101)
(define-constant ERR-PUBLIC-SALE-DISABLED u102)
(define-constant ERR-CONTRACT-INITIALIZED u103)
(define-constant ERR-NOT-AUTHORIZED u104)
(define-constant ERR-INVALID-USER u105)
(define-constant ERR-LISTING u106)
(define-constant ERR-WRONG-COMMISSION u107)
(define-constant ERR-NOT-FOUND u108)
(define-constant ERR-PAUSED u109)
(define-constant ERR-MINT-LIMIT u110)
(define-constant ERR-METADATA-FROZEN u111)
(define-constant ERR-AIRDROP-CALLED u112)
(define-constant ERR-NO-MORE-MINTS u113)
;; Internal variables
(define-data-var mint-limit uint u2000)
(define-data-var last-id uint u1)
(define-data-var total-price uint u0000000)
(define-data-var artist-address principal 'SP305TZHTGMGEDYETNBTN7XBFH11VG81XGG7R9K5C)
(define-data-var ipfs-root (string-ascii 80) "ipfs://ipfs/QmUZz9EwnsF8ivonUpb78LUdP1u1Si4dsSVEfE8k9vVifQ/json/")
(define-data-var mint-paused bool false)
(define-data-var premint-enabled bool false)
(define-data-var sale-enabled bool false)
(define-data-var metadata-frozen bool false)
(define-data-var airdrop-called bool false)
(define-data-var mint-cap uint u0)
(define-map mints-per-user principal uint)
(define-map mint-passes principal uint)
(define-public (claim)
(mint (list true)))
(define-public (claim-five) (mint (list true true true true true)))
;; Mintpass Minting
(define-private (mint (orders (list 25 bool)))
(let
(
(passes (get-passes tx-sender))
)
(if (var-get premint-enabled)
(begin
(asserts! (>= passes (len orders)) (err ERR-NOT-ENOUGH-PASSES))
(map-set mint-passes tx-sender (- passes (len orders)))
(mint-many orders)
)
(begin
(asserts! (var-get sale-enabled) (err ERR-PUBLIC-SALE-DISABLED))
(mint-many orders)
)
)))
(define-private (mint-many (orders (list 25 bool )))
(let
(
(last-nft-id (var-get last-id))
(enabled (asserts! (<= last-nft-id (var-get mint-limit)) (err ERR-NO-MORE-NFTS)))
(art-addr (var-get artist-address))
(id-reached (fold mint-many-iter orders last-nft-id))
(price (* (var-get total-price) (- id-reached last-nft-id)))
(total-commission (/ (* price COMM) u10000))
(current-balance (get-balance tx-sender))
(total-artist (- price total-commission))
(capped (> (var-get mint-cap) u0))
(user-mints (get-mints tx-sender))
)
(asserts! (or (is-eq false (var-get mint-paused)) (is-eq tx-sender DEPLOYER)) (err ERR-PAUSED))
(asserts! (or (not capped) (is-eq tx-sender DEPLOYER) (is-eq tx-sender art-addr) (>= (var-get mint-cap) (+ (len orders) user-mints))) (err ERR-NO-MORE-MINTS))
(map-set mints-per-user tx-sender (+ (len orders) user-mints))
(if (or (is-eq tx-sender art-addr) (is-eq tx-sender DEPLOYER) (is-eq (var-get total-price) u0000000))
(begin
(var-set last-id id-reached)
(map-set token-count tx-sender (+ current-balance (- id-reached last-nft-id)))
)
(begin
(var-set last-id id-reached)
(map-set token-count tx-sender (+ current-balance (- id-reached last-nft-id)))
(try! (stx-transfer? total-artist tx-sender (var-get artist-address)))
(try! (stx-transfer? total-commission tx-sender COMM-ADDR))
)
)
(ok id-reached)))
(define-private (mint-many-iter (ignore bool) (next-id uint))
(if (<= next-id (var-get mint-limit))
(begin
(unwrap! (nft-mint? nonnish-grafters next-id tx-sender) next-id)
(+ next-id u1)
)
next-id))
(define-public (set-artist-address (address principal))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(ok (var-set artist-address address))))
(define-public (set-price (price uint))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(ok (var-set total-price price))))
(define-public (toggle-pause)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(ok (var-set mint-paused (not (var-get mint-paused))))))
(define-public (set-mint-limit (limit uint))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-INVALID-USER))
(asserts! (< limit (var-get mint-limit)) (err ERR-MINT-LIMIT))
(ok (var-set mint-limit limit))))
(define-public (burn (token-id uint))
(begin
(asserts! (is-owner token-id tx-sender) (err ERR-NOT-AUTHORIZED))
(nft-burn? nonnish-grafters token-id tx-sender)))
(define-private (is-owner (token-id uint) (user principal))
(is-eq user (unwrap! (nft-get-owner? nonnish-grafters token-id) false)))
(define-public (set-base-uri (new-base-uri (string-ascii 80)))
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(asserts! (not (var-get metadata-frozen)) (err ERR-METADATA-FROZEN))
(var-set ipfs-root new-base-uri)
(ok true)))
(define-public (freeze-metadata)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(var-set metadata-frozen true)
(ok true)))
;; Non-custodial SIP-009 transfer function
(define-public (transfer (id uint) (sender principal) (recipient principal))
(begin
(asserts! (is-eq tx-sender sender) (err ERR-NOT-AUTHORIZED))
(asserts! (is-none (map-get? market id)) (err ERR-LISTING))
(trnsfr id sender recipient)))
;; read-only functions
(define-read-only (get-owner (token-id uint))
(ok (nft-get-owner? nonnish-grafters token-id)))
(define-read-only (get-last-token-id)
(ok (- (var-get last-id) u1)))
(define-read-only (get-token-uri (token-id uint))
(ok (some (concat (concat (var-get ipfs-root) "{id}") ".json"))))
(define-read-only (get-paused)
(ok (var-get mint-paused)))
(define-read-only (get-price)
(ok (var-get total-price)))
(define-read-only (get-mints (caller principal))
(default-to u0 (map-get? mints-per-user caller)))
(define-read-only (get-mint-limit)
(ok (var-get mint-limit)))
;; Non-custodial marketplace extras
(use-trait commission-trait 'SP3D6PV2ACBPEKYJTCMH7HEN02KP87QSP8KTEH335.commission-trait.commission)
(define-map token-count principal uint)
(define-map market uint {price: uint, commission: principal})
(define-read-only (get-balance (account principal))
(default-to u0
(map-get? token-count account)))
(define-private (trnsfr (id uint) (sender principal) (recipient principal))
(match (nft-transfer? nonnish-grafters id sender recipient)
success
(let
((sender-balance (get-balance sender))
(recipient-balance (get-balance recipient)))
(map-set token-count
sender
(- sender-balance u1))
(map-set token-count
recipient
(+ recipient-balance u1))
(ok success))
error (err error)))
(define-private (is-sender-owner (id uint))
(let ((owner (unwrap! (nft-get-owner? nonnish-grafters id) false)))
(or (is-eq tx-sender owner) (is-eq contract-caller owner))))
(define-read-only (get-listing-in-ustx (id uint))
(map-get? market id))
(define-public (list-in-ustx (id uint) (price uint) (comm-trait <commission-trait>))
(let ((listing {price: price, commission: (contract-of comm-trait)}))
(asserts! (is-sender-owner id) (err ERR-NOT-AUTHORIZED))
(map-set market id listing)
(print (merge listing {a: "list-in-ustx", id: id}))
(ok true)))
(define-public (unlist-in-ustx (id uint))
(begin
(asserts! (is-sender-owner id) (err ERR-NOT-AUTHORIZED))
(map-delete market id)
(print {a: "unlist-in-ustx", id: id})
(ok true)))
(define-public (buy-in-ustx (id uint) (comm-trait <commission-trait>))
(let ((owner (unwrap! (nft-get-owner? nonnish-grafters id) (err ERR-NOT-FOUND)))
(listing (unwrap! (map-get? market id) (err ERR-LISTING)))
(price (get price listing)))
(asserts! (is-eq (contract-of comm-trait) (get commission listing)) (err ERR-WRONG-COMMISSION))
(try! (stx-transfer? price tx-sender owner))
(try! (pay-royalty price))
(try! (contract-call? comm-trait pay id price))
(try! (trnsfr id owner tx-sender))
(map-delete market id)
(print {a: "buy-in-ustx", id: id})
(ok true)))
(define-data-var royalty-percent uint u500)
(define-read-only (get-royalty-percent)
(ok (var-get royalty-percent)))
(define-private (pay-royalty (price uint))
(let (
(royalty (/ (* price (var-get royalty-percent)) u10000))
)
(if (> (var-get royalty-percent) u0)
(try! (stx-transfer? royalty tx-sender (var-get artist-address)))
(print false)
)
(ok true)))
;; Extra functionality required for mintpass
(define-public (toggle-sale-state)
(let
(
;; (premint (not (var-get premint-enabled)))
(sale (not (var-get sale-enabled)))
)
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(var-set premint-enabled false)
(var-set sale-enabled sale)
(print { sale: sale })
(ok true)))
(define-public (enable-premint)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(ok (var-set premint-enabled true))))
(define-public (disable-premint)
(begin
(asserts! (or (is-eq tx-sender (var-get artist-address)) (is-eq tx-sender DEPLOYER)) (err ERR-NOT-AUTHORIZED))
(ok (var-set premint-enabled false))))
(define-read-only (get-passes (caller principal))
(default-to u0 (map-get? mint-passes caller)))
(define-read-only (get-premint-enabled)
(ok (var-get premint-enabled)))
(define-read-only (get-sale-enabled)
(ok (var-get sale-enabled)))
(map-set mint-passes 'SPVCMKZTGYMKYJEHFN4FABNFBBYMM02HNF66A6N6 u70)
(map-set mint-passes 'SP31WTJ415SNJM9H6202S3WK9AFQXQZMT48PESBQE u61)
(map-set mint-passes 'SP2PBW5WPNJ88BZVNDVP4KCTN9HJGNNR1BQA6G1W6 u56)
(map-set mint-passes 'SP329G766AV8Z01X9EEAHPDQ4WDJXT2A0XB383MGP u45)
(map-set mint-passes 'SP1TQZS5G1Y47KXWQE8WG2Q606664A7MFMPVCKHRZ u44)
(map-set mint-passes 'SPM1Q7YG18378H6W254YN8PABEVRPT38ZCY01SJD u43)
(map-set mint-passes 'SP1F9156MENFJTEWE6WJPMVWFAHNGKGC7YJX6HK72 u35)
(map-set mint-passes 'SP1XGVC95Z0HPG50YPEV5XZB5YA08DC29B0XZWBWN u35)
(map-set mint-passes 'SPS2FZ3K6N2CZPBM4BSQCEQV23V2334E7MJ4CHZT u35)
(map-set mint-passes 'SPQ2HN9TYF8ZYY9D3G45NGYA9GHA6QZHQ8AXF5QM u35)
(map-set mint-passes 'SPQY88E87FNMP1NTY2YQ7X5DPTVY810PS8T6D2Y3 u33)
(map-set mint-passes 'SP2NDK60R7JKQ3SJ98CEHV2CMNDVTFBR541C4KV5Y u31)
(map-set mint-passes 'SP3C5W9RSSYG3SVP192DCQY4Z2WQWPJ9YEERKTPSY u31)
(map-set mint-passes 'SPJ52DQFJVJACKHY0QX5DRE559MBCXWTSGNBN76V u31)
(map-set mint-passes 'SP197GMEG6WGBRDTCTGGWMRA1G77E65TRXWYKGCT7 u31)
(map-set mint-passes 'SP3AQSW210PFW6K3FB1JW62ZHTH11FSVR0SH5AZ6P u30)
(map-set mint-passes 'SP3J482MM84FYA0XC0EVEGJFMR3MSM3E5VWZNC62W u30)
(map-set mint-passes 'SP2KSK3WJ1TJWMBWWEAA5043ARA21ZNFCARTHT8EZ u31)
(map-set mint-passes 'SP3EPS563XJNK170J902C78ZPDPNXVZFWWCN7DGWH u29)
(map-set mint-passes 'SP16PPSNDG265N42ZG7GPDADAAAMQCDY9MT6TN4XY u24)
(map-set mint-passes 'SP12BEEDG31J0AH68DFDJJYZ36D002PKDZCP1DZQE u22)
(map-set mint-passes 'SP3Z7511VWR5WG9J3MAKER3NRZYKWT83K2XTP36EV u21)
(map-set mint-passes 'SP3AFTJ38PSZQBXZGNCDGM05GR0SFY7HBPZD2ACR2 u20)
(map-set mint-passes 'SP1FR2M102H4DE4DH96R4D29RC8AGQZG5D5Y4S7CH u21)
(map-set mint-passes 'SPP5HXFRZVANS3TGERYQKXHANA7TZZGZYJHBFN13 u19)
(map-set mint-passes 'SP4QA0NHP03T3T9GJKR5KEA7VQ2KNSXRK5JC74NG u17)
(map-set mint-passes 'SP2F18PH7FP22EHS0J0X3A6EFZ9PAW0EZJRET0GXZ u18)
(map-set mint-passes 'SP364J7EDJXRE1FPDZDABP9M58HPY4G88BFCP2HD0 u17)
(map-set mint-passes 'SP3GG2XRSX2APJ1JFWV2A3KFEJPAJ5X8JGDXTSF1N u15)
(map-set mint-passes 'SP18WRH4SF7F1M5QZZ2BQDZZYBCJWT9VWQMDSTFY5 u15)
(map-set mint-passes 'SP342MMZRDFSC556F193N76D87SCTYX7SSHD8H3XD u15)
(map-set mint-passes 'SP19WSDJWTH4CW3YG554XS5CAXJJGAN83P8CFZ4K1 u15)
(map-set mint-passes 'SP2Z9V78QMVNM7EK65XSBCMH9M6X6DESXRN5MCXV5 u15)
(map-set mint-passes 'SP9J6BTSPCXGQ5HC066NRYQPK43S48V7K299PTQX u15)
(map-set mint-passes 'SP32CF0E78JNPK0HYDTH3CCZ8FN76PFX5W0FYBN20 u16)
(map-set mint-passes 'SP1XAR0A0J2AFWXQXCJ07SPV3TSZV2BCQQAQ6H5B5 u16)
(map-set mint-passes 'SP71N7X6G8KYGQPHZW7TB4PD1JZ6ND9AESF9JPZ8 u15)
(map-set mint-passes 'SPK70AN512VN2VRD52D0928MA05JVJ7DY2H5F3CF u15)
(map-set mint-passes 'SPDXC0NM3YQDHV1HN3V9P5Y4P26QWY709NB86EYB u12)
(map-set mint-passes 'SP2W0KJMJB2601KK53Y7F8W9FV5YJ1QVCT0GBJHTA u13)
(map-set mint-passes 'SP14814KM6CBCJZMD15JJ58Q3E2S3NCB6SDXM8C79 u14)
(map-set mint-passes 'SPN9JGFGXFJZD7AM5VF2S7BRATNCQYVHVWG3087B u10)
(map-set mint-passes 'SP79JMAGQVWMVWRXG2AE5GF8Z27VF1W4KZ3J03WG u10)
(map-set mint-passes 'SP33N5R751MG99QAM4CN6HQ3MDTYBR71SB4NXVGT1 u10)
(map-set mint-passes 'SP3ST6K5W36V2MTSNYYXE56SCXR7DGTW9N4NMZHYV u10)
(map-set mint-passes 'SP2VS41C9A89KXKS23J7B3SZ46H8SY1595KJHS6W3 u10)
(map-set mint-passes 'SP28RZ1QXMXJXVKRRCR3D7GR5D48XY0NNA9MZWHJB u10)
(map-set mint-passes 'SP1XZ7KEMJT5V8ATRYZB0XWJ20KMGM37JXJZG9D6S u10)
(map-set mint-passes 'SP36MCQHXPP0DZ2KPC1KEY6ERC8GKB6QVCAK0PQYG u10)
(map-set mint-passes 'SP3K22XKPT9WJFCE957J94J6XXVZHP7747YNPDTFD u10)
(map-set mint-passes 'SP32QTYYGG6SWTP198FST4SPM85J0A3JPNB9S2BEA u11)
(map-set mint-passes 'SP3SKH6YB515J76KVDHDHBTE2GQ4CV6QJHC5GJKRF u8)
(map-set mint-passes 'SP356400A5XM1ZKNXCQ7BJRE8PXXG1EJHV3954Z27 u8)
(map-set mint-passes 'SP38CJGXS4JPJ14G1VJ0JYBHCER3HJB6TWE04ZE7Z u8)
(map-set mint-passes 'SP2F40S465JTD7AMZ2X9SMN229617HZ9YB0HHY98A u7)
(map-set mint-passes 'SP3JPR7XNR60AMBBEZAGF1YHRSFY1JCKE14HBKGTY u6)
(map-set mint-passes 'SPTETNN57BDV0X796ZVW41B5VVN99JQRDH68Z5W6 u7)
(map-set mint-passes 'SP3QJ41PARX6F6B4H56JZ272ANK0TRJ9J2VFBVY1D u7)
(map-set mint-passes 'SP2E03GHWY145XMFDTHX4Z913EADP4RMZ0P0DCTE9 u6)
(map-set mint-passes 'SP606Y9VBE29GX2PGFR41NTE86DDXPW3C7DX7T8H u6)
(map-set mint-passes 'SPHWCHVHRY2Q4884XNNSV8B3J1T41PBN0GQE16A9 u6)
(map-set mint-passes 'SP3GNAE8V8KZ24T31JC10TT184F6NQ4YDYHGVFZ10 u5)
(map-set mint-passes 'SPXZ0GWQTMGQ860MGG86PNMFJNHJ2NWJSWJWGM0K u5)
(map-set mint-passes 'SP1T07GK9H4M0WP4N1DSSA7NJ7GNTQZ0GBZM0GAR2 u5)
(map-set mint-passes 'SP2TW1D8YF5CE0NDP5VCR5NMTPHQ4PQR1KBB4NQ5Q u5)
(map-set mint-passes 'SPS2RBYAXSCXMVPYXSG724CFY4W2WA2NPG44V191 u5)
(map-set mint-passes 'SP32DFA3HXYZ2BV3P8H6XQM8EN94D2212QM71BRYG u5)
(map-set mint-passes 'SP3EYCZ3EW2Q69GWBYADH9J008YQJ4HPKEBY08N7E u5)
(map-set mint-passes 'SP26SB34D9THJ8BMSPT6EJHW9JDGBHWMX74PVDFEN u5)
(map-set mint-passes 'SP1HHSDYJ0SGAM6K2W01ZF5K7AJFKWMJNH365ZWS9 u5)
(map-set mint-passes 'SPRA6FK6C5N1Z7G61N77YWTN2C13GEX9NXQ23MX9 u5)
(map-set mint-passes 'SP10GJCQ6SX1GN33Y925GE0SQPHQYJAFM7M1CC61P u5)
(map-set mint-passes 'SP2HK9TYP0662DZMM6FSC2T18BG18YXE0N037JT08 u5)
(map-set mint-passes 'SP265G22G807XH0ZWK09V4E92SJ6BF98C60M4MMEX u5)
(map-set mint-passes 'SP2ZD78CEHCFPJ71SB8R0EK0ZMVAGB3NTHK947F06 u5)
(map-set mint-passes 'SP1JCPNPAMAQJ364AFHPTW3HY7X0HYZ3TJ0ZDGWZH u5)
(map-set mint-passes 'SP3G9BMCJ0858Y68MM35R6HA0WAZDNYXWZBN4RYK1 u5)
(map-set mint-passes 'SP2EV31SMG1FTAB89CVRXXZEWWE0M9AXB9ZP8S4NB u5)
(map-set mint-passes 'SP32M78XH97ZJDJF95E7RGXKXH2QCMQ6JFDF1XZ7F u5)
(map-set mint-passes 'SPXHBSENFDVDRQGA57R9C633DR4FE93V7VSYGK15 u5)
(map-set mint-passes 'SPYAX2RNZA18KQA8Y0S5G393QBE8SWPNZ6R08XNH u5)
(map-set mint-passes 'SPN9SQPATME5FN0JGHHGP9MW1WVW26663D5YN2SS u5)
(map-set mint-passes 'SP1VMNBYM92RSPMYXSZE4N2SHHW0N38T0XA4ZJM8E u5)
(map-set mint-passes 'SP3Q1VW36FD1HF4J0EFRF2E486QGYNYJASB9PKDKF u5)
(map-set mint-passes 'SP14E544B2FY8BSKTV5V7W8NCRYX2B7NXRQ7B7NJ9 u5)
(map-set mint-passes 'SP1MHYF45ZRE9QCG4SRHB72W65K89Q48FSQR4PDNK u5)
(map-set mint-passes 'SP3T7WAB5DMJ3JSRMCQF6SC7CG50DYYJVS4C303CN u5)
(map-set mint-passes 'SP247RS63PWW7ZQZ9EYYA9CXKKPWEP71M14W8N294 u5)
(map-set mint-passes 'SP3M16X85R7ED2RR70ANNB3X0HXPHGSAXBEGGZKK0 u5)
(map-set mint-passes 'SP3GXRSVBWTVS7DNK466APX88XZKAB8FT52ZQ8WG4 u5)
(map-set mint-passes 'SPFK6E20DN1PFBY02956QN23TCWSPHMY76KYWGEZ u5)
(map-set mint-passes 'SP2791RKSYJJ39MVHC09J8NARWBMK5G9C79EJB0RV u5)
(map-set mint-passes 'SP3BRAY8T6S1K7WDCPM9CEEA00XMZD33PE9V4JT8C u5)
(map-set mint-passes 'SPYMQGWH0SXVZQY2R46CYWVX1CEVHHV34H76DC49 u5)
(map-set mint-passes 'SP1J5W1FN3P80XV1YK14BKC6A912WWFGJSW9M92HA u5)
(map-set mint-passes 'SP3WXWMD8NC947EASJCMCVT11YDDMBHPXT8WE9WMF u4)
(map-set mint-passes 'SP23X8JVMHN2A9N1PWSGNW83Q0VV5T7NF2N6PJW9J u4)
(map-set mint-passes 'SP9XKY1WP621NESM1RZV75E6K3WVVKKQ1Z7YFCFZ u4)
(map-set mint-passes 'SPV00QHST52GD7D0SEWV3R5N04RD4Q1PMA3TE2MP u4)
(map-set mint-passes 'SP24ZBZ8ZE6F48JE9G3F3HRTG9FK7E2H6K2QZ3Q1K u4)
(map-set mint-passes 'SP2891F1DM9QJ14F711C62NQS3RQG4VFV6ZTEEN60 u4)
(map-set mint-passes 'SP6VV2AFXM7ZMT5V3ZAE8M6JXK9EA5N1GPFHJC4M u3)
(map-set mint-passes 'SPE6KAAKXSC0QSGG17SWYPX5R2KP3Q56V9KD88TP u3)
(map-set mint-passes 'SP39MP76SSQK9H94BD4CS92788HG41CQTP2T3D34R u3)
(map-set mint-passes 'SPV5GYRXDQRYQKZW7FFAZDNRRNVFS41P3YZWXFGD u3)
(map-set mint-passes 'SP1FW0F2ZYZHXT1BVV8HX8ZXG3MRM0ZVH73QE9VSV u3)
(map-set mint-passes 'SP19SM9Z06A40WBEQZTN9MA5N2TB64HXHY8Y3ANT4 u3)
(map-set mint-passes 'SP310K1Y0QQHE5MAEKQBX60W4BDQWQ61JBW3X2TXW u3)
(map-set mint-passes 'SP3BJ4GDXYMBRS42NJNVE271YPAPYTF28T9722GHJ u3)
(map-set mint-passes 'SP3JJC9CVH2251JC0B4QTPS661H6JNTA2P9E6HA6N u4)
(map-set mint-passes 'SP3EHXKH36BKE33ZY1VVER4A35ZQD9Z552XQ38AFS u3)
(map-set mint-passes 'SP2NBCT6WVMD8PX46VTNRT4ENTQBZZ8ZYYYZY65RB u3)
(map-set mint-passes 'SP1VK3F98YMR1JFMZNJJ5MXCH2RGBAP5G2DZ6MZ13 u3)
(map-set mint-passes 'SP2RQXNR5Z9W4TW0TH9Y0FJEY19F61G1SD726AV9H u3)
(map-set mint-passes 'SP3356JJ54Q0YB2Q7EN3ZPV7DAY8E2NAS9P8E2WZ0 u3)
(map-set mint-passes 'SPJCSG2ZJD95JR4QG9Z0EP786WN7T3CAF7GKBD01 u3)
(map-set mint-passes 'SP3ZY51K23M753B7S2CG823Y47EE80RC3ZMYJ78X u3)
(map-set mint-passes 'SP3R5TCK97NMBS1V1MARCK0YTDFWG1FKJ94EFQTF4 u3)
(map-set mint-passes 'SP1EF64D5ZWF4HEBHSPJPX68M9DA5XYH6V97RBXCH u3)
(map-set mint-passes 'SP25KJH4N4YNKTVXSWSHDPVCWDFAN2BA4H2VQVN0G u3)
(map-set mint-passes 'SPQ60DRKYNQKDDEH85547FXJ8C4Q1JC0EXNA53PE u3)
(map-set mint-passes 'SP3M1X036A4KCD49JZC4M941S4ZDH140ZDVZEHVBA u3)
(map-set mint-passes 'SP17YP1HGWK7DP5Q69GRG14W34E078S4D78YM1FA5 u3)
(map-set mint-passes 'SP1XPG9QFX5M95G36SGN9R8YJ4KJ0JB7ZXNH892N6 u3)
(map-set mint-passes 'SP1GNB1KSWAB2SK9GWZ9A1R8HSYKWKBBQ40QP240F u3)
(map-set mint-passes 'SP2QDMH88MEZ8FFAYHW4B0BTXJRTHX8XBD54FE7HJ u3)
(map-set mint-passes 'SPHWY482ANTWNTW2618HYHQSDY1WCW7P20BW5F7Y u3)
(map-set mint-passes 'SP2Q1SZSETS27AZ9FE0BH6C6B7MVC25E4N6C2VE7D u3)
(map-set mint-passes 'SPPXR0ZST3SCX24BZ9V2SVWJ1MM032TZ6V7WYCD5 u3)
(map-set mint-passes 'SP21MD5TMPX5C3E1HD2SGNNQGKSSXSSE7YTQE62V2 u2)
(map-set mint-passes 'SP2QZAGHGGMJFQEFQGMP3RY5JZ08C2XYBD99ZQM1W u2)
(map-set mint-passes 'SP42P1FYPB1G7FR9HV5W0AVP56R0SYMTFG7N1MX7 u2)
(map-set mint-passes 'SP3PZGB6ZXH1G9K158H56A6TF26X7K1GGMAGMW0M3 u2)
(map-set mint-passes 'SPXQS1T1T2BKGSHH8H75PVFEY0R1X39F0B3MQWTJ u2)
(map-set mint-passes 'SP6YAN6MV4SS2YJRMA3HQ2PYVQGVHV4W08D8HZ3V u2)
(map-set mint-passes 'SP3J0Z8YSJD20TGEBE6M992CWFDG18VB0PR599VY9 u2)
(map-set mint-passes 'SPCGYWGKWZ9P21Y31H3GC1BYDEFQ1MJJYM3G34EK u2)
(map-set mint-passes 'SP2KD44XNHAXEPY4WXDQDCM596DNM68N29EGWJJ52 u2)
(map-set mint-passes 'SP271TM5PHT540MJFHM4KM1DV0EE15X5BQPGVFXG5 u2)
(map-set mint-passes 'SPMR3PQK63ME9T99M2X4DVP1XD4WY6NFSJ4QTBWT u2)
(map-set mint-passes 'SP11BW3Q3D6HZP20NWP8BD7CSA31TCRHT25TWQHT0 u2)
(map-set mint-passes 'SP25RG52CQVD5CG29K5J0B1CRMSX53YQC5J0PXWD2 u2)
(map-set mint-passes 'SPKHZXV6K1C8F43GA469QYB7R12C6W1NKNX6R5YS u2)
(map-set mint-passes 'SP7029Y4KYZQ0A0VPR4MQ6Z6HG6SZ727F0G3WXMF u2)
(map-set mint-passes 'SP265DNHNK1NHX7FE9MZKCCA4G1VS7TT3BMES5TR u2)
(map-set mint-passes 'SP3CXP82SP2M920C5XX42RMAJ3Y6FS0KS5ZK1N1BC u2)
(map-set mint-passes 'SP13NK68ADVWYDZM2GZCNF0ZCFMCYAYGCTK22YE6T u2)
(map-set mint-passes 'SP3QBRHQF4BN8HNNGFHCJMQZDB8V20BMGF2VS3MJ2 u2)
(map-set mint-passes 'SPCP6QYQG399SWCF2TVAFHVHN302TB3ABRTWHPEH u2)
(map-set mint-passes 'SP1P637C9NB6GSK9TY8AT8SN3QKH1WSV5ZVCZZSKS u3)
(map-set mint-passes 'SP2J9D90H65JCFY5Y0ZEJMG6WMFPA007BBT6XR1WC u2)
(map-set mint-passes 'SP3FZ4JRWEA8WT63Q47HFDJCS3CC68MABF0FM6JHE u2)
(map-set mint-passes 'SP37XZWB0DWXNKMT0172HHMWCK35VBBEK19DN2YYT u2)
(map-set mint-passes 'SP3TF26QFS3YMYHC9N3ZZTZQKCM4AFYMVW1WMFRTT u2)
(map-set mint-passes 'SP2X5KYYXWFCCH30FHQSAP1XVVAVXFT8P8FS44VRY u2)
(map-set mint-passes 'SP216YJTD76S81ZXKVHEBTJT77PSVR33AZ57548V3 u2)
(map-set mint-passes 'SP1H6SQ5825ZP4EYGA9Q79DYSZB46SB7T7CRMB4Q0 u2)
(map-set mint-passes 'SP3ZMEFW7VH796ZQAH1JMAJT4WC4VPEZZFB6W5CAD u3)
(map-set mint-passes 'SPFERFF3QKF0Q6WBC4Y2Y6RQWEGN3DTDD5Y7S0NY u2)
(map-set mint-passes 'SP3EX1P4ZSKN69V89FX0M7TM4EGTE632QXCMGR2KM u2)
(map-set mint-passes 'SP3X2EPRYEWSKAPP48PG2M7TDA8KYCB8D6701BENA u2)
(map-set mint-passes 'SP30AGJWYXQZQKVA62PKQYGTGQZWJ9X6ZAW5NJF4G u2)
(map-set mint-passes 'SP4TH5RH19FSBNC54JA8S1V5N9G1GRNPCX39HK5P u2)
(map-set mint-passes 'SP158378PVRA077MC9851WTVSF7G3MES99HPJ26DW u2)
(map-set mint-passes 'SPX6GQ1CMNRH5VSZ146Z6Y0Z4HF3MQX166FQEM08 u2)
(map-set mint-passes 'SP3GKD03CY339NVCVG0PKKRRC4CAGCECYXNXGQ69 u2)
(map-set mint-passes 'SP1CG8MHZB2QZ0GAKZ5P9BXWWRTG74D1PZE097667 u2)
(map-set mint-passes 'SP3P8M5J25457Q73MKS8EGD5Z19Z57RKYSPNEAK85 u2)
(map-set mint-passes 'SP1PCEAP62X5BZSMH257ZHAPGAPSX3BDT3TDVCN4M u2)
(map-set mint-passes 'SP3B9R6SPYP6E693ZTYVB1AS81HTJPQ081EZBB3S2 u2)
(map-set mint-passes 'SP301YB8MT9AW8P7RJ2GFN2BXVDHRJYJXTT5905SW u2)
(map-set mint-passes 'SPKXXNKCA75KSQKSZW7G441XD3XMB4PC1FWY1PTC u2)
(map-set mint-passes 'SP1N4YMXJ23X5BEA7BQB4H9TTDDVSZBQWM2HRX6BX u2)
(map-set mint-passes 'SP3C5JYPB8YE5H9WC2SM196RVJ0JXN2GHCWXJWSES u2)
(map-set mint-passes 'SP2X1GD24FA3TGGV6T4TRPKT8MVZ8F02RZESYWEH5 u2)
(map-set mint-passes 'SP3QKAQS3J0YS3ZAZPSZM5ZSZZRYRYV72N6A9ZPZT u2)
(map-set mint-passes 'SP1A9NAK7RCXN0E47D95X5E0VY0HPAAA0VVC2M322 u2)
(map-set mint-passes 'SP3E1NPCV8QE4DXPC618VFW3ZFA8QPBD8HCS22KF2 u2)
(map-set mint-passes 'SP1CMFJW9J8WN7R2XJ26AC90AARGW68R1CWNYDANC u2)
(map-set mint-passes 'SP2C8P3MM137K1A48D1SRENG67KHEVPZV4K36G3JY u2)
(map-set mint-passes 'SP3X351FTBG68WPF207K8F7XMXS2B3TJK8QJ1HPG1 u2)
(map-set mint-passes 'SP2ANN103WZY48J8EYWVWEA6V4PEH5RFPRHPW6BS4 u2)
(map-set mint-passes 'SP2TZE09GHARKG0B8NTT9X77QXBTQPQ2J1579T0D8 u2)
(map-set mint-passes 'SP3BWAHYMTHQZHSB8N49AXQNTYWBACQBAN8Z4QFRD u2)
(map-set mint-passes 'SPCGY4K9AN72MBEX51DYX72R7RMV9NQ3X59MNSZQ u2)
(map-set mint-passes 'SP2HV9HYWZRAPTCC10VXCK72P3W4F9NDB8E1HBEZH u2)
(map-set mint-passes 'SP1DY2QDFZAR8VK5S9DMYW2AW0WXQ16NNRG3PJDTX u2)
(map-set mint-passes 'SP9XYATQP23ZS5SQ1PMX8K676TW9N95CRJ2T30ZC u2)
(map-set mint-passes 'SP1V50HFY8CRC7N65HFH6S778CJEW5GQRBH3YW7BK u2)
(map-set mint-passes 'SPR0ERQGYW544QPS4Q97A2SVDG2JBBCBJJ71MA6C u2)
(map-set mint-passes 'SP16HT3ASAWD7339TBATGQSEVDS0SHEFPAYNK2P34 u2)
(map-set mint-passes 'SPSS7WAYA17Y8Z5Q6GJTMH4FH4MRJ7HZZ6JPGAGR u2)
(map-set mint-passes 'SP2MC6PBPNPSEHA6G87DDMN6WX3HGMTANXZBYKCNF u2)
(map-set mint-passes 'SP14DXQ7A1PVVGPBQCJQVP0T4CH6FTZZ312FSE724 u2)
(map-set mint-passes 'SP2JJ9YESBE5BY4CPH713EYFBVCAVQA00N2H0H80T u2)
(map-set mint-passes 'SP9D6VCZVVWFQMQ6JKMJKV7X6SHXP8NB1F2YPX10 u2)
(map-set mint-passes 'SP1CE3NQXDKCJ2KEFFGCVFA5C196S9F0RRX93HY87 u2)
(map-set mint-passes 'SPFCWC7RPNDBNYH9XSKPEA2SBFC7VM5F7PXQ8W36 u1)
(map-set mint-passes 'SP1C4P84D6AJYPQMZT1K5RRY5S5XG3Z3TEKZX5BXH u1)
(map-set mint-passes 'SP3KMGHQ0AZY23G1RABGD8VT0BY8P2C91J604AA8G u1)
(map-set mint-passes 'SP3VYCKS11684SPB5M73AVS692B1GR35XBQPSYS2Z u1)
(map-set mint-passes 'SP246G187J3B0KSWZK5H1YNS2HMC9QJ3VQ57PQ9ZA u1)
(map-set mint-passes 'SPF4FR0X9Q4PAF6KENDD3NVAGQTM8A830A4F96YG u1)
(map-set mint-passes 'SP3R7Q3QMTYC4QR0RFDR9HZBWNBNBNDA7S549CR6Y u1)
(map-set mint-passes 'SP06QC626XTXDQ2D6X6SV2E5SVMNKHNRHYSAMN4M u2)
(map-set mint-passes 'SP1NBCK2JP3KNCHGGM8FGWPT7VFWSCBAXGMJ1WMZB u1)
(map-set mint-passes 'SP2QAG09GBM8Y9HK05MSC30X0A09VW11T23ES27GX u1)
(map-set mint-passes 'SP2H94BXVGSH92VD407JX18VZ7S2ZFW2CFT5TJKKZ u1)
(map-set mint-passes 'SP1S3KEQHR5MZEW0KVR0PE039V1RJ0WC8XRPZK56Z u1)
(map-set mint-passes 'SP7MAP8XJCMRZ9901ETFA3EKVVPJ4X51AWQ2VG4F u1)
(map-set mint-passes 'SP21TA8GMAH56PSNZ8EJPPY6HSN5DDV0S3GQ2XDQP u1)
(map-set mint-passes 'SP1SB5JJSYM2XF51VJSK0VA8063FDJ0W222DSN6HN u1)
(map-set mint-passes 'SP1G9PZMQSFRQ7Q98XP7JMNE2C22RXK1W61RXTNKP u1)
(map-set mint-passes 'SP3JP1QHR31X0HRX1VM0SEMRAMCEAHC5BR626QX16 u1)
(map-set mint-passes 'SP17PTWQQTAYMRPXGBPASYH0EJGX158BR6G7HQBVN u1)
(map-set mint-passes 'SP26GZCVY8FYHNZ6C73W68TCFJHS8F8C9E772XX7X u1)
(map-set mint-passes 'SPHK8A7P61C6ASWKYDX1PCDX9YA54DKVJN49EXGJ u1)
(map-set mint-passes 'SP36TDQZTXVFGP3H1PQX7VJCSRQW6F9QDM5APHMQC u1)
(map-set mint-passes 'SPFZJAWND9GDB2QC54524J73DGBQ07XJ6JM1E3GN u1)
(map-set mint-passes 'SP2GNB2DGJKV66NTNC2K45SSHXGBKGDEPWB2ACE6V u1)
(map-set mint-passes 'SPD406CPAW2K2RDJSSVY3C83PWP0S848WEYAXTZG u1)
(map-set mint-passes 'SP28317JGN1WCMYE4TKH06CVDXAGFRG1TK98VRHZH u2)
(map-set mint-passes 'SP30D8D7JEZEB5QKYQKT5HBQ9XJEA6ZC3X38GEMQZ u1)
(map-set mint-passes 'SP1MCT54R5W04CJP04T3A79A2EB7K5D7RB3PT1YJ2 u1)
(map-set mint-passes 'SP18Y0P28W6PBSCM7Y1DS3FW6W7DHJMR34GJYDG4D u1)
(map-set mint-passes 'SP36J28W8MANZAP3457TZ7ZEPQJ3CHDFZQP13CNAX u1)
(map-set mint-passes 'SPKPYMWSJXX4KNAQYZKS0T7BRMESXGQEME4J2WJN u1)
(map-set mint-passes 'SP1PKK6KJPM826D0X6AMCJ63KEH2M456M4T22WAPQ u1)
(map-set mint-passes 'SP1QRFVDS76WFV5XCDHAR7FQYTSNM4M1P4TGFZRK1 u1)
(map-set mint-passes 'SP2NR2625HB0YFFRFBD9VHVYESNY83VTMKZXMV6H0 u1)
(map-set mint-passes 'SP31PS877Y1B78QR7NQ1BCHS7EG0798WC52ZY6MD9 u1)
(map-set mint-passes 'SP1RQZCECRGR5W7J9PBX6TGF7Q0JN923E47W22KN7 u1)
(map-set mint-passes 'SPJRW4D4JACQQQQ5DK09P1K7M2TE8PGZJ638HCW1 u1)
(map-set mint-passes 'SP1GCY8C8TAFTWK2CF1MFGN85W3FSJCN9N2VRFZF7 u1)
(map-set mint-passes 'SP2DG03SMAV8Q8JTDHF9F32Y7B3523ZJYM0Q3MK3Y u1)
(map-set mint-passes 'SP2CZ9HX0D766VBDFQJEZS3G291PPKSHKS7VFAGAJ u1)
(map-set mint-passes 'SP3ET97MF1079J77YKDEXA9JEPT26PGN09VXV3V3N u1)
(map-set mint-passes 'SP37C6HQRQ4GYP1EMEK7KW31HG7G5JNZ5ZPFQMP57 u2)
(map-set mint-passes 'SP1ZQSWQ9QNNW388VFG45HYX1H592147V2FZZJY8V u1)
(map-set mint-passes 'SP17XZQC08H8ASTGNYJ651YGCM5497G9TX8V061SX u1)
(map-set mint-passes 'SP2R8S7X39D1M6CP568WH51MC0G5CF4KFB3WGRSND u1)
(map-set mint-passes 'SPMDGP7AP5JQTDYY83V0Q7JD3CM7YQRXQYWW3E54 u1)
(map-set mint-passes 'SP30HDQ1WGZRD1YTBRPPPYZHKQJ7E8CVYZCTHXKVX u1)
(map-set mint-passes 'SP2KJC2WBNJPGVRB0GG30666PQW96MAKH7YWGPWB0 u1)
(map-set mint-passes 'SPR35JC5BGKTN20GJAKRZJDM1P8J81NZSHZ40AV7 u1)
(map-set mint-passes 'SP1MQ7SNBKZDKPE1A8HHVWKRN6PPESH48WNQVJKBY u1)
(map-set mint-passes 'SP23H2CGE75B251C6BR28FS5K5Z57HR0EPRKHBTXV u1)
(map-set mint-passes 'SP3VCX5NFQ8VCHFS9M6N40ZJNVTRT4HZ62WFH5C4Q u1)
(map-set mint-passes 'SP18KN2HDVMD2J7VDYPGGPFDWJFRKPQ7N1CN6VXXC u1)
(map-set mint-passes 'SP1QZT85MFT8HBAG3XEK7K6QY4GGP3MSG5C3H9PQ1 u1)
(map-set mint-passes 'SP33SCE1F3J9N6D4ZFY9AA3GR05GS3112GS1VZDFC u1)
(map-set mint-passes 'SP32V5EAKRWZ66VVA67XGDK18VYMZM5NT7NP98M9 u1)
(map-set mint-passes 'SP3DW5P0EPZX7KB4N381QTWGDYTJN98M80PFR0X62 u1)
(map-set mint-passes 'SP21M4GV6XA7MKK9Q06GPN6TWVMR27C604AB81FFE u1)
(map-set mint-passes 'SP1QVY5ZFXHK66K5YJG166X9VV7W6DDWVC7V2NWD1 u1)
(map-set mint-passes 'SPS6543QSVCWM0B1CQYD67RV4QP3MGFPJEHG4FHS u1)
(map-set mint-passes 'SP1TAS8DAT68SRNCKP2N0DBTQA8SHMAW4D5P50XHV u1)
(map-set mint-passes 'SP1AYRC3ZNVJ3GVFF08CB93EN3WA3Q1XKDJBYDPD6 u1)
(map-set mint-passes 'SP2GPGW7D5MVPVJ0SAWKEKDM5GZBP618DPKNYFDV9 u1)
(map-set mint-passes 'SP6YY4ZTWFGC09FQW0DW4SY8M2VK5YYHRQEPFR7Q u1)
(map-set mint-passes 'SP1KBMRDJCD1T95B4Y04QAE8ZM1NDPFRXD4DJ4B3X u1)
(map-set mint-passes 'SPY25R3C2BRCYJDAXDRPQTTR1QY0CNZ7PGCJRWR7 u1)
(map-set mint-passes 'SP1SBTRXDJP4N825PY69B1MKTQ4MSPB0DW9JCQHKE u1)
(map-set mint-passes 'SPQCAMFRAXV93WNZHWXSDHSZGZ72G9RJPHXQ8CXN u1)
(map-set mint-passes 'SP9XD6041FFN5BW6ZR9J3FSESR4S442JPYZJVXBW u1)
(map-set mint-passes 'SP1FZKAJ5V0QSV19RB5T2DG1PJQ6R6MKSB5ZJF5A5 u1)
(map-set mint-passes 'SP3TZ3BCB16A0W0PPFYMGTTWTT3DVWTQEP8DFRAG1 u1)
(map-set mint-passes 'SPPMGZTRGMBVCFW3RMEVQJEF26MW9G6EKT51EMD8 u1)
(map-set mint-passes 'SP1CSHTKVHMMQJ7PRQRFYW6SB4QAW6SR3XY2F81PA u1)
(map-set mint-passes 'SP1QJDCZ0J9NRPPPZ9186GGBFQZEZM86VKCE19D4T u1)
(map-set mint-passes 'SP2KZ24AM4X9HGTG8314MS4VSY1CVAFH0G1KBZZ1D u1)
(map-set mint-passes 'SP240F75PTECZ9RZB6P2H0RRYEHW455V5N42Q2NC6 u1)
(map-set mint-passes 'SP29VWA66ZWAR1XQWYNDX9TJTYKFX1ER5MYEF4H4K u1)
(map-set mint-passes 'SP3BRRCHKMPBR60V8ES9J5YF40VXWMABWXK4SEB9G u1)
(map-set mint-passes 'SPAFJKGDVS11C9P9DY0ZTNFQ9774R568W9XYZDJV u1)
(map-set mint-passes 'SPP3HM2E4JXGT26G1QRWQ2YTR5WT040S5NKXZYFC u1)
(map-set mint-passes 'SP35K3WCA9GCJV2XC7X021MR2D9D2PKF855CVCKB0 u1)
(map-set mint-passes 'SPP1XFREP00CJXC65955T7HATAS4ZMVQFQ7ZWD7R u1)
(map-set mint-passes 'SP3NH76GQ6M070SEMXE1PHM1GW9A5GKTJME2S8Y4H u1)
(map-set mint-passes 'SP1HNNHM897NC14ZPC5XC0ME197QNJDYQNNVV1JTC u1)
(map-set mint-passes 'SP2F8TG6YBFWH8MPB04DYRB8MQ5CAAZ1VT7THPHRT u1)
(map-set mint-passes 'SP6HYDNWHSSTZFS0HAR4FDRPXK3EK603S0BYJHFJ u1)
(map-set mint-passes 'SP2ERT3QFK9Y53R65RBSA9SXY6MDM1K44999XCS71 u1)
(map-set mint-passes 'SP249AVXAABB31ZKDEDSF4S22DD6X2208PXYC6GPP u1)
(map-set mint-passes 'SP2M5YGRBM1WD9PNFCS0SX2S15PAVEGN9B8VAAR0J u1)
(map-set mint-passes 'SP2R3CHRAP1HE4M64X1NZXHZT41JG3XGNHJW4HX2W u1)
(map-set mint-passes 'SP3EDYAHCDGHRKAFCD5SFDB7NJQH43ZC69BSKSH32 u1)
(map-set mint-passes 'SPZ5DJGRVZHXEEEYYGWEX84KQB8P69GC715ZRNW1 u1)
(map-set mint-passes 'SPS46Q8P75FGWDX11JNVER71R90VD5MV45XA5X1B u1)
(map-set mint-passes 'SP109XZ34VRKXJDMZD0PZFWFCSCTBM8NY27DJH7JB u1)
(map-set mint-passes 'SP27E3TDKYNH3C11RBDFPD5WGR6FV0VN08RKX4D2N u1)
(map-set mint-passes 'SP2VG7S0R4Z8PYNYCAQ04HCBX1MH75VT11VXCWQ6G u1)
(map-set mint-passes 'SP34XEPDJJFJKFPT87CCZQCPGXR4PJ8ERFVQETKZ4 u1)
(map-set mint-passes 'SP2B7C4BWS0X4YCWP1FTYT9CMSZXKYJTWTQHMWTPR u1)
(map-set mint-passes 'SP37XVGVDMC85DBMZSBVHDASS37FAW2QDYSH144VM u1)
(map-set mint-passes 'SP1BFAYGH3G7AK91A5ZZHKD4E9N1RDV5Q483S9S2Y u1)
(map-set mint-passes 'SP23Y32HDGWGX4FRFD8NJEGDR1ZZ1STXTYYDG2148 u1)
(map-set mint-passes 'SPKXBNQS87AH49H125Y1YPG1GSXZ2KANYDYHFK8E u1)
(map-set mint-passes 'SPQE3J7XMMK0DN0BWJZHGE6B05VDYQRXRMDV734D u1)
(map-set mint-passes 'SP8N846PR1492HB2A08R5G96RYNKWRHDJDTBM227 u1)
(map-set mint-passes 'SP344BK6TQKTTCFWCXMVWYD70XAG1EH6XV0DKRYE u1)
(map-set mint-passes 'SP10NKB1NRK1G1Y9RDWZ5GNGSD5MNZNGRF1Z7ET3W u1)
(map-set mint-passes 'SP7GE9NFJK5VMED3JVXRHVR9W1G0F0M9VHD624ZE u1)
(map-set mint-passes 'SPSGP0XHF7VFJQ5193N2SV9MY87EWGVJXAZK35K2 u1)
(map-set mint-passes 'SPS0TB5ZXDEE7D8H2J6C8SNYBV3ZNYQGM1BDKP2H u2)
(map-set mint-passes 'SP23FMJXH1MBKW7H4GTZZTPWHZR21NZACYQE5DEN1 u1)
(map-set mint-passes 'SP31SJ2X5683KDX8P58HWRA2DXY3ED4WZ6Z3DM0A9 u1)
(map-set mint-passes 'SP3XVFQ1AB7DD5N19GS0412CG4JG7XWSBYAG98PVW u1)
(map-set mint-passes 'SP1NFRJJFQAA5AB4R8RDA3F0WEBZHK0HQSKW1PPNY u1)
(map-set mint-passes 'SP2NHZDAMMEEASE4DKHYYCVAG8RF8PA7YHPPW40BX u1)
(map-set mint-passes 'SP2Z0DE9N41R5C5YEXVF6JV5Z13DFKVYWDMJ5PH46 u1)
(map-set mint-passes 'SPQV5QCYKBGYG8AHB2ZPT5RJCWXNWSGMJKXYG5JK u1)
(map-set mint-passes 'SP1FEJ73MSQH7GE5H748979SY7CF8FQ6P4WTWQ0CZ u1)
(map-set mint-passes 'SPDAV1G8FQ0TMEWKVE0A9WS8RNDJ7K808X2MY22E u1)
(map-set mint-passes 'SP1FXY0FASRSJ00BC71YS569RG9JFFG0J51EW42GD u1)
(map-set mint-passes 'SP3JCJYVVZVY7Y64JYJ57JFS6FM7ASHX6QDTKFXGY u1)
(map-set mint-passes 'SP3QFME3CANQFQNR86TYVKQYCFT7QX4PRXN0JJ4B8 u1)
(map-set mint-passes 'SP3TTE9TNNDK1DFP2CHGSQ21P3TQVQNCVWEMSWN21 u1)
(map-set mint-passes 'SP2AGZCJKRQYJP2BE5QP44HJ166NQD28A3BJZ258N u1)
(map-set mint-passes 'SP3HXZSBYYAE8PJR8P0VVX4HV128NBYB2T6XJ89N8 u1)
(map-set mint-passes 'SPSEBFRZZEZSHGRKRR1Z55RX5AWHER3CYM0H9BMW u1)
(map-set mint-passes 'SP3S8FAWKQ7NCKMJ6729B8KJJ6JYRE2EY5YVK4R55 u1)
(map-set mint-passes 'SPYQ829C0KWNEVETW09C93CCBHV3AGM60AKS66AJ u1)
(map-set mint-passes 'SP1VCG4HXMG02BMJCSAZDBS1WR4N2YG3RPHMNP9WR u1)
(map-set mint-passes 'SP1P94TYSJZ25849PHEBR5Y4J9BCW8MJMZCE0TD4K u1)
(map-set mint-passes 'SPJSCH3DDEJ8GQPGYZBHSB4F3HX5Q222CG89PSAB u1)
(map-set mint-passes 'SPYF9PC72BSWS0DGA33FR24GCG81MG1Z96463H68 u2)
(map-set mint-passes 'SP3273YEPG4QZWX0ENQ98FBT1N2Y06XW820STP7NN u1)
(map-set mint-passes 'SP18V7NZHXPQKRNBYAF5WGBV79PDY6XMDNHMZSW4R u1)
(map-set mint-passes 'SP7NP018KZ3Z3TS11ZV9NTAE2Z2FWHE7K5NXPQQZ u1)
(map-set mint-passes 'SP1XPCCJE4NR82X6D8PX32NF1KAYYM36B5T83J6GP u1)
(map-set mint-passes 'SPNNXMY01SNT92EEK9DRRG2QW1FA256MCNBPPSRX u1)
(map-set mint-passes 'SP2M8KYSACMQBJBTVNCVMBKDN927TT04MMC4GXM0C u1)
(map-set mint-passes 'SP60NM5KTMV734EZZWRCHA0403Z4JWEDJ1JJSKPS u1)
(map-set mint-passes 'SP3F2QCGP5QZFM19VWXNA1T32T9XCGCMXMMSMT5VH u1)
(map-set mint-passes 'SP2BEFSB43KR4M6C9117SA2A6T4SA6H0X1XDZF716 u1)
(map-set mint-passes 'SP2MA0FYKVBX85EHSGC0PF6AEWH5VF062GRTS68R5 u1)
(map-set mint-passes 'SP36NC0KX6RZGPQXR73AMW8R0CXXHS06DRM487A5G u1)
(map-set mint-passes 'SP2HVP68NY5BD2RDFX0JNXSYRS8AA6R7S30N08NJZ u1)
(map-set mint-passes 'SP1WT3HRTQHMPAR1YRMG40JRA9G08C9Q1V0K0VKG6 u1)
(map-set mint-passes 'SP3J1W2FS54ZEB5W64S0DFFPS86AGYGFB4VM0CFC2 u1)
(map-set mint-passes 'SP3A09H1JEB4F85FZ6XEXRSZA210SC6RB7Q7V7DAF u1)
(map-set mint-passes 'SP349J1ZTEE71M1J5D4YS0BPQCCFJ3YSNM1P8BJY4 u1)
(map-set mint-passes 'SP3TMGZ7WTT658PA632A3BA4B1GRXBNNEN8XPZQ5X u1)
(map-set mint-passes 'SP3TZF64TY080GVMZRT4Z87E383Q8EAKZ5W67FCNY u1)
(map-set mint-passes 'SPR1VKVKCHEJP7B17GZ22BE4NVWJ1NKHMCVFXY7V u1)
(map-set mint-passes 'SP2BZQ48MADDN62X044NNJCNXF5BA33C3BFQ3TZJW u1)
(map-set mint-passes 'SP1JF9VSNJBP4YZVC7AJ9CE6CXBD2ZV0W67T0E4T0 u2)
(map-set mint-passes 'SPGR0ZRYE9P63PXGEE0KH1888JHNBEXDFRCVG0HC u1)