@croptop/core-v6 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -0
  3. package/SKILLS.md +88 -0
  4. package/deployments/croptop-core-v5/arbitrum/CTDeployer.json +1896 -0
  5. package/deployments/croptop-core-v5/arbitrum/CTProjectOwner.json +186 -0
  6. package/deployments/croptop-core-v5/arbitrum/CTPublisher.json +738 -0
  7. package/deployments/croptop-core-v5/arbitrum_sepolia/CTDeployer.json +1883 -0
  8. package/deployments/croptop-core-v5/arbitrum_sepolia/CTProjectOwner.json +186 -0
  9. package/deployments/croptop-core-v5/arbitrum_sepolia/CTPublisher.json +738 -0
  10. package/deployments/croptop-core-v5/base/CTDeployer.json +1908 -0
  11. package/deployments/croptop-core-v5/base/CTProjectOwner.json +190 -0
  12. package/deployments/croptop-core-v5/base/CTPublisher.json +741 -0
  13. package/deployments/croptop-core-v5/base_sepolia/CTDeployer.json +1894 -0
  14. package/deployments/croptop-core-v5/base_sepolia/CTProjectOwner.json +190 -0
  15. package/deployments/croptop-core-v5/base_sepolia/CTPublisher.json +741 -0
  16. package/deployments/croptop-core-v5/ethereum/CTDeployer.json +1894 -0
  17. package/deployments/croptop-core-v5/ethereum/CTProjectOwner.json +190 -0
  18. package/deployments/croptop-core-v5/ethereum/CTPublisher.json +741 -0
  19. package/deployments/croptop-core-v5/optimism/CTDeployer.json +1894 -0
  20. package/deployments/croptop-core-v5/optimism/CTProjectOwner.json +190 -0
  21. package/deployments/croptop-core-v5/optimism/CTPublisher.json +741 -0
  22. package/deployments/croptop-core-v5/optimism_sepolia/CTDeployer.json +1894 -0
  23. package/deployments/croptop-core-v5/optimism_sepolia/CTProjectOwner.json +190 -0
  24. package/deployments/croptop-core-v5/optimism_sepolia/CTPublisher.json +741 -0
  25. package/deployments/croptop-core-v5/sepolia/CTDeployer.json +1894 -0
  26. package/deployments/croptop-core-v5/sepolia/CTProjectOwner.json +190 -0
  27. package/deployments/croptop-core-v5/sepolia/CTPublisher.json +741 -0
  28. package/foundry.toml +25 -0
  29. package/package.json +31 -0
  30. package/remappings.txt +2 -0
  31. package/script/ConfigureFeeProject.s.sol +386 -0
  32. package/script/Deploy.s.sol +138 -0
  33. package/script/helpers/CroptopDeploymentLib.sol +75 -0
  34. package/slither-ci.config.json +10 -0
  35. package/sphinx.lock +507 -0
  36. package/src/CTDeployer.sol +425 -0
  37. package/src/CTProjectOwner.sol +78 -0
  38. package/src/CTPublisher.sol +540 -0
  39. package/src/interfaces/ICTDeployer.sol +56 -0
  40. package/src/interfaces/ICTProjectOwner.sol +24 -0
  41. package/src/interfaces/ICTPublisher.sol +91 -0
  42. package/src/structs/CTAllowedPost.sol +22 -0
  43. package/src/structs/CTDeployerAllowedPost.sol +20 -0
  44. package/src/structs/CTPost.sol +22 -0
  45. package/src/structs/CTProjectConfig.sol +22 -0
  46. package/src/structs/CTSuckerDeploymentConfig.sol +11 -0
  47. package/test/CTPublisher.t.sol +672 -0
  48. package/test/CroptopAttacks.t.sol +439 -0
  49. package/test/Fork.t.sol +114 -0
  50. package/test/Test_MetadataGeneration.t.sol +70 -0
@@ -0,0 +1,738 @@
1
+ {
2
+ "format": "sphinx-sol-ct-artifact-1",
3
+ "merkleRoot": "0x33d2471a0370caa05f65fde765167626782c40a5b61ccf6c304681eb8584d6b9",
4
+ "address": "0x03ef9ea1467df70d4b1e1d619aa9a2a2f820ee24",
5
+ "sourceName": "src/CTPublisher.sol",
6
+ "contractName": "CTPublisher",
7
+ "chainId": "0x66eee",
8
+ "abi": [
9
+ {
10
+ "inputs": [
11
+ {
12
+ "internalType": "contract IJBDirectory",
13
+ "name": "directory",
14
+ "type": "address"
15
+ },
16
+ {
17
+ "internalType": "contract IJBPermissions",
18
+ "name": "permissions",
19
+ "type": "address"
20
+ },
21
+ {
22
+ "internalType": "uint256",
23
+ "name": "feeProjectId",
24
+ "type": "uint256"
25
+ },
26
+ {
27
+ "internalType": "address",
28
+ "name": "trustedForwarder",
29
+ "type": "address"
30
+ }
31
+ ],
32
+ "stateMutability": "nonpayable",
33
+ "type": "constructor"
34
+ },
35
+ {
36
+ "inputs": [],
37
+ "name": "DIRECTORY",
38
+ "outputs": [
39
+ {
40
+ "internalType": "contract IJBDirectory",
41
+ "name": "",
42
+ "type": "address"
43
+ }
44
+ ],
45
+ "stateMutability": "view",
46
+ "type": "function"
47
+ },
48
+ {
49
+ "inputs": [],
50
+ "name": "FEE_DIVISOR",
51
+ "outputs": [
52
+ {
53
+ "internalType": "uint256",
54
+ "name": "",
55
+ "type": "uint256"
56
+ }
57
+ ],
58
+ "stateMutability": "view",
59
+ "type": "function"
60
+ },
61
+ {
62
+ "inputs": [],
63
+ "name": "FEE_PROJECT_ID",
64
+ "outputs": [
65
+ {
66
+ "internalType": "uint256",
67
+ "name": "",
68
+ "type": "uint256"
69
+ }
70
+ ],
71
+ "stateMutability": "view",
72
+ "type": "function"
73
+ },
74
+ {
75
+ "inputs": [],
76
+ "name": "PERMISSIONS",
77
+ "outputs": [
78
+ {
79
+ "internalType": "contract IJBPermissions",
80
+ "name": "",
81
+ "type": "address"
82
+ }
83
+ ],
84
+ "stateMutability": "view",
85
+ "type": "function"
86
+ },
87
+ {
88
+ "inputs": [
89
+ {
90
+ "internalType": "address",
91
+ "name": "hook",
92
+ "type": "address"
93
+ },
94
+ {
95
+ "internalType": "uint256",
96
+ "name": "category",
97
+ "type": "uint256"
98
+ }
99
+ ],
100
+ "name": "allowanceFor",
101
+ "outputs": [
102
+ {
103
+ "internalType": "uint256",
104
+ "name": "minimumPrice",
105
+ "type": "uint256"
106
+ },
107
+ {
108
+ "internalType": "uint256",
109
+ "name": "minimumTotalSupply",
110
+ "type": "uint256"
111
+ },
112
+ {
113
+ "internalType": "uint256",
114
+ "name": "maximumTotalSupply",
115
+ "type": "uint256"
116
+ },
117
+ {
118
+ "internalType": "address[]",
119
+ "name": "allowedAddresses",
120
+ "type": "address[]"
121
+ }
122
+ ],
123
+ "stateMutability": "view",
124
+ "type": "function"
125
+ },
126
+ {
127
+ "inputs": [
128
+ {
129
+ "components": [
130
+ {
131
+ "internalType": "address",
132
+ "name": "hook",
133
+ "type": "address"
134
+ },
135
+ {
136
+ "internalType": "uint24",
137
+ "name": "category",
138
+ "type": "uint24"
139
+ },
140
+ {
141
+ "internalType": "uint104",
142
+ "name": "minimumPrice",
143
+ "type": "uint104"
144
+ },
145
+ {
146
+ "internalType": "uint32",
147
+ "name": "minimumTotalSupply",
148
+ "type": "uint32"
149
+ },
150
+ {
151
+ "internalType": "uint32",
152
+ "name": "maximumTotalSupply",
153
+ "type": "uint32"
154
+ },
155
+ {
156
+ "internalType": "address[]",
157
+ "name": "allowedAddresses",
158
+ "type": "address[]"
159
+ }
160
+ ],
161
+ "internalType": "struct CTAllowedPost[]",
162
+ "name": "allowedPosts",
163
+ "type": "tuple[]"
164
+ }
165
+ ],
166
+ "name": "configurePostingCriteriaFor",
167
+ "outputs": [],
168
+ "stateMutability": "nonpayable",
169
+ "type": "function"
170
+ },
171
+ {
172
+ "inputs": [
173
+ {
174
+ "internalType": "address",
175
+ "name": "forwarder",
176
+ "type": "address"
177
+ }
178
+ ],
179
+ "name": "isTrustedForwarder",
180
+ "outputs": [
181
+ {
182
+ "internalType": "bool",
183
+ "name": "",
184
+ "type": "bool"
185
+ }
186
+ ],
187
+ "stateMutability": "view",
188
+ "type": "function"
189
+ },
190
+ {
191
+ "inputs": [
192
+ {
193
+ "internalType": "contract IJB721TiersHook",
194
+ "name": "hook",
195
+ "type": "address"
196
+ },
197
+ {
198
+ "components": [
199
+ {
200
+ "internalType": "bytes32",
201
+ "name": "encodedIPFSUri",
202
+ "type": "bytes32"
203
+ },
204
+ {
205
+ "internalType": "uint32",
206
+ "name": "totalSupply",
207
+ "type": "uint32"
208
+ },
209
+ {
210
+ "internalType": "uint104",
211
+ "name": "price",
212
+ "type": "uint104"
213
+ },
214
+ {
215
+ "internalType": "uint24",
216
+ "name": "category",
217
+ "type": "uint24"
218
+ }
219
+ ],
220
+ "internalType": "struct CTPost[]",
221
+ "name": "posts",
222
+ "type": "tuple[]"
223
+ },
224
+ {
225
+ "internalType": "address",
226
+ "name": "nftBeneficiary",
227
+ "type": "address"
228
+ },
229
+ {
230
+ "internalType": "address",
231
+ "name": "feeBeneficiary",
232
+ "type": "address"
233
+ },
234
+ {
235
+ "internalType": "bytes",
236
+ "name": "additionalPayMetadata",
237
+ "type": "bytes"
238
+ },
239
+ {
240
+ "internalType": "bytes",
241
+ "name": "feeMetadata",
242
+ "type": "bytes"
243
+ }
244
+ ],
245
+ "name": "mintFrom",
246
+ "outputs": [],
247
+ "stateMutability": "payable",
248
+ "type": "function"
249
+ },
250
+ {
251
+ "inputs": [
252
+ {
253
+ "internalType": "address",
254
+ "name": "hook",
255
+ "type": "address"
256
+ },
257
+ {
258
+ "internalType": "bytes32",
259
+ "name": "encodedIPFSUri",
260
+ "type": "bytes32"
261
+ }
262
+ ],
263
+ "name": "tierIdForEncodedIPFSUriOf",
264
+ "outputs": [
265
+ {
266
+ "internalType": "uint256",
267
+ "name": "",
268
+ "type": "uint256"
269
+ }
270
+ ],
271
+ "stateMutability": "view",
272
+ "type": "function"
273
+ },
274
+ {
275
+ "inputs": [
276
+ {
277
+ "internalType": "address",
278
+ "name": "hook",
279
+ "type": "address"
280
+ },
281
+ {
282
+ "internalType": "bytes32[]",
283
+ "name": "encodedIPFSUris",
284
+ "type": "bytes32[]"
285
+ }
286
+ ],
287
+ "name": "tiersFor",
288
+ "outputs": [
289
+ {
290
+ "components": [
291
+ {
292
+ "internalType": "uint32",
293
+ "name": "id",
294
+ "type": "uint32"
295
+ },
296
+ {
297
+ "internalType": "uint104",
298
+ "name": "price",
299
+ "type": "uint104"
300
+ },
301
+ {
302
+ "internalType": "uint32",
303
+ "name": "remainingSupply",
304
+ "type": "uint32"
305
+ },
306
+ {
307
+ "internalType": "uint32",
308
+ "name": "initialSupply",
309
+ "type": "uint32"
310
+ },
311
+ {
312
+ "internalType": "uint104",
313
+ "name": "votingUnits",
314
+ "type": "uint104"
315
+ },
316
+ {
317
+ "internalType": "uint16",
318
+ "name": "reserveFrequency",
319
+ "type": "uint16"
320
+ },
321
+ {
322
+ "internalType": "address",
323
+ "name": "reserveBeneficiary",
324
+ "type": "address"
325
+ },
326
+ {
327
+ "internalType": "bytes32",
328
+ "name": "encodedIPFSUri",
329
+ "type": "bytes32"
330
+ },
331
+ {
332
+ "internalType": "uint24",
333
+ "name": "category",
334
+ "type": "uint24"
335
+ },
336
+ {
337
+ "internalType": "uint8",
338
+ "name": "discountPercent",
339
+ "type": "uint8"
340
+ },
341
+ {
342
+ "internalType": "bool",
343
+ "name": "allowOwnerMint",
344
+ "type": "bool"
345
+ },
346
+ {
347
+ "internalType": "bool",
348
+ "name": "transfersPausable",
349
+ "type": "bool"
350
+ },
351
+ {
352
+ "internalType": "bool",
353
+ "name": "cannotBeRemoved",
354
+ "type": "bool"
355
+ },
356
+ {
357
+ "internalType": "bool",
358
+ "name": "cannotIncreaseDiscountPercent",
359
+ "type": "bool"
360
+ },
361
+ {
362
+ "internalType": "string",
363
+ "name": "resolvedUri",
364
+ "type": "string"
365
+ }
366
+ ],
367
+ "internalType": "struct JB721Tier[]",
368
+ "name": "tiers",
369
+ "type": "tuple[]"
370
+ }
371
+ ],
372
+ "stateMutability": "view",
373
+ "type": "function"
374
+ },
375
+ {
376
+ "inputs": [],
377
+ "name": "trustedForwarder",
378
+ "outputs": [
379
+ {
380
+ "internalType": "address",
381
+ "name": "",
382
+ "type": "address"
383
+ }
384
+ ],
385
+ "stateMutability": "view",
386
+ "type": "function"
387
+ },
388
+ {
389
+ "anonymous": false,
390
+ "inputs": [
391
+ {
392
+ "indexed": true,
393
+ "internalType": "address",
394
+ "name": "hook",
395
+ "type": "address"
396
+ },
397
+ {
398
+ "components": [
399
+ {
400
+ "internalType": "address",
401
+ "name": "hook",
402
+ "type": "address"
403
+ },
404
+ {
405
+ "internalType": "uint24",
406
+ "name": "category",
407
+ "type": "uint24"
408
+ },
409
+ {
410
+ "internalType": "uint104",
411
+ "name": "minimumPrice",
412
+ "type": "uint104"
413
+ },
414
+ {
415
+ "internalType": "uint32",
416
+ "name": "minimumTotalSupply",
417
+ "type": "uint32"
418
+ },
419
+ {
420
+ "internalType": "uint32",
421
+ "name": "maximumTotalSupply",
422
+ "type": "uint32"
423
+ },
424
+ {
425
+ "internalType": "address[]",
426
+ "name": "allowedAddresses",
427
+ "type": "address[]"
428
+ }
429
+ ],
430
+ "indexed": false,
431
+ "internalType": "struct CTAllowedPost",
432
+ "name": "allowedPost",
433
+ "type": "tuple"
434
+ },
435
+ {
436
+ "indexed": false,
437
+ "internalType": "address",
438
+ "name": "caller",
439
+ "type": "address"
440
+ }
441
+ ],
442
+ "name": "ConfigurePostingCriteria",
443
+ "type": "event"
444
+ },
445
+ {
446
+ "anonymous": false,
447
+ "inputs": [
448
+ {
449
+ "indexed": true,
450
+ "internalType": "uint256",
451
+ "name": "projectId",
452
+ "type": "uint256"
453
+ },
454
+ {
455
+ "indexed": true,
456
+ "internalType": "contract IJB721TiersHook",
457
+ "name": "hook",
458
+ "type": "address"
459
+ },
460
+ {
461
+ "indexed": true,
462
+ "internalType": "address",
463
+ "name": "nftBeneficiary",
464
+ "type": "address"
465
+ },
466
+ {
467
+ "indexed": false,
468
+ "internalType": "address",
469
+ "name": "feeBeneficiary",
470
+ "type": "address"
471
+ },
472
+ {
473
+ "components": [
474
+ {
475
+ "internalType": "bytes32",
476
+ "name": "encodedIPFSUri",
477
+ "type": "bytes32"
478
+ },
479
+ {
480
+ "internalType": "uint32",
481
+ "name": "totalSupply",
482
+ "type": "uint32"
483
+ },
484
+ {
485
+ "internalType": "uint104",
486
+ "name": "price",
487
+ "type": "uint104"
488
+ },
489
+ {
490
+ "internalType": "uint24",
491
+ "name": "category",
492
+ "type": "uint24"
493
+ }
494
+ ],
495
+ "indexed": false,
496
+ "internalType": "struct CTPost[]",
497
+ "name": "posts",
498
+ "type": "tuple[]"
499
+ },
500
+ {
501
+ "indexed": false,
502
+ "internalType": "uint256",
503
+ "name": "postValue",
504
+ "type": "uint256"
505
+ },
506
+ {
507
+ "indexed": false,
508
+ "internalType": "uint256",
509
+ "name": "txValue",
510
+ "type": "uint256"
511
+ },
512
+ {
513
+ "indexed": false,
514
+ "internalType": "address",
515
+ "name": "caller",
516
+ "type": "address"
517
+ }
518
+ ],
519
+ "name": "Mint",
520
+ "type": "event"
521
+ },
522
+ {
523
+ "inputs": [],
524
+ "name": "CTPublisher_EmptyEncodedIPFSUri",
525
+ "type": "error"
526
+ },
527
+ {
528
+ "inputs": [
529
+ {
530
+ "internalType": "uint256",
531
+ "name": "expected",
532
+ "type": "uint256"
533
+ },
534
+ {
535
+ "internalType": "uint256",
536
+ "name": "sent",
537
+ "type": "uint256"
538
+ }
539
+ ],
540
+ "name": "CTPublisher_InsufficientEthSent",
541
+ "type": "error"
542
+ },
543
+ {
544
+ "inputs": [
545
+ {
546
+ "internalType": "uint256",
547
+ "name": "min",
548
+ "type": "uint256"
549
+ },
550
+ {
551
+ "internalType": "uint256",
552
+ "name": "max",
553
+ "type": "uint256"
554
+ }
555
+ ],
556
+ "name": "CTPublisher_MaxTotalSupplyLessThanMin",
557
+ "type": "error"
558
+ },
559
+ {
560
+ "inputs": [
561
+ {
562
+ "internalType": "address",
563
+ "name": "addr",
564
+ "type": "address"
565
+ },
566
+ {
567
+ "internalType": "address[]",
568
+ "name": "allowedAddresses",
569
+ "type": "address[]"
570
+ }
571
+ ],
572
+ "name": "CTPublisher_NotInAllowList",
573
+ "type": "error"
574
+ },
575
+ {
576
+ "inputs": [
577
+ {
578
+ "internalType": "uint256",
579
+ "name": "price",
580
+ "type": "uint256"
581
+ },
582
+ {
583
+ "internalType": "uint256",
584
+ "name": "minimumPrice",
585
+ "type": "uint256"
586
+ }
587
+ ],
588
+ "name": "CTPublisher_PriceTooSmall",
589
+ "type": "error"
590
+ },
591
+ {
592
+ "inputs": [
593
+ {
594
+ "internalType": "uint256",
595
+ "name": "totalSupply",
596
+ "type": "uint256"
597
+ },
598
+ {
599
+ "internalType": "uint256",
600
+ "name": "maximumTotalSupply",
601
+ "type": "uint256"
602
+ }
603
+ ],
604
+ "name": "CTPublisher_TotalSupplyTooBig",
605
+ "type": "error"
606
+ },
607
+ {
608
+ "inputs": [
609
+ {
610
+ "internalType": "uint256",
611
+ "name": "totalSupply",
612
+ "type": "uint256"
613
+ },
614
+ {
615
+ "internalType": "uint256",
616
+ "name": "minimumTotalSupply",
617
+ "type": "uint256"
618
+ }
619
+ ],
620
+ "name": "CTPublisher_TotalSupplyTooSmall",
621
+ "type": "error"
622
+ },
623
+ {
624
+ "inputs": [],
625
+ "name": "CTPublisher_UnauthorizedToPostInCategory",
626
+ "type": "error"
627
+ },
628
+ {
629
+ "inputs": [],
630
+ "name": "CTPublisher_ZeroTotalSupply",
631
+ "type": "error"
632
+ },
633
+ {
634
+ "inputs": [],
635
+ "name": "JBMetadataResolver_DataNotPadded",
636
+ "type": "error"
637
+ },
638
+ {
639
+ "inputs": [],
640
+ "name": "JBMetadataResolver_MetadataTooShort",
641
+ "type": "error"
642
+ },
643
+ {
644
+ "inputs": [
645
+ {
646
+ "internalType": "address",
647
+ "name": "account",
648
+ "type": "address"
649
+ },
650
+ {
651
+ "internalType": "address",
652
+ "name": "sender",
653
+ "type": "address"
654
+ },
655
+ {
656
+ "internalType": "uint256",
657
+ "name": "projectId",
658
+ "type": "uint256"
659
+ },
660
+ {
661
+ "internalType": "uint256",
662
+ "name": "permissionId",
663
+ "type": "uint256"
664
+ }
665
+ ],
666
+ "name": "JBPermissioned_Unauthorized",
667
+ "type": "error"
668
+ }
669
+ ],
670
+ "args": [],
671
+ "solcInputHash": "bf5f7052eef84483d06caae61e3bb050",
672
+ "receipt": {
673
+ "type": "0x2",
674
+ "status": "0x1",
675
+ "cumulativeGasUsed": "0x31cb35",
676
+ "logs": [
677
+ {
678
+ "address": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
679
+ "topics": [
680
+ "0x572f161235911da04685a68c06adf558fc7e4a36909dca394650e0adc19cc93d",
681
+ "0x000000000000000000000000755ff2f75a0a586ecfa2b9a3c959cb662458a105",
682
+ "0x0000000000000000000000005f7afebb1015d92e874f0d30985e1dc55a43aabf",
683
+ "0x2a0226598f68cc17885a37f2d1bf916aec337cdd1b95cebf0edb4ea030c00463"
684
+ ],
685
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000000",
686
+ "blockHash": "0xed464d40a88a68dc5db7a4208ed00ab2486a5541cb93ad7ffc8c542739e56022",
687
+ "blockNumber": "0xb83fa4a",
688
+ "transactionHash": "0x7a39cf51832a2683aa4dcd8c1ef5c199290c99f6034de71384068dc738872140",
689
+ "transactionIndex": "0x4",
690
+ "logIndex": "0x9",
691
+ "removed": false
692
+ },
693
+ {
694
+ "address": "0x240dc2085caef779f428dcd103cfd2fb510ede82",
695
+ "topics": [
696
+ "0x6895c13664aa4f67288b25d7a21d7aaa34916e355fb9b6fae0a139a9085becb8",
697
+ "0x0000000000000000000000005f7afebb1015d92e874f0d30985e1dc55a43aabf"
698
+ ],
699
+ "data": "0x",
700
+ "blockHash": "0xed464d40a88a68dc5db7a4208ed00ab2486a5541cb93ad7ffc8c542739e56022",
701
+ "blockNumber": "0xb83fa4a",
702
+ "transactionHash": "0x7a39cf51832a2683aa4dcd8c1ef5c199290c99f6034de71384068dc738872140",
703
+ "transactionIndex": "0x4",
704
+ "logIndex": "0xa",
705
+ "removed": false
706
+ },
707
+ {
708
+ "address": "0x5f7afebb1015d92e874f0d30985e1dc55a43aabf",
709
+ "topics": [
710
+ "0xa65fb05c5808f5f389d72edeaf719ce38f4cc55c1f69ca3cbfb31c21501caa07",
711
+ "0x33d2471a0370caa05f65fde765167626782c40a5b61ccf6c304681eb8584d6b9"
712
+ ],
713
+ "data": "0x0000000000000000000000000000000000000000000000000000000000000002",
714
+ "blockHash": "0xed464d40a88a68dc5db7a4208ed00ab2486a5541cb93ad7ffc8c542739e56022",
715
+ "blockNumber": "0xb83fa4a",
716
+ "transactionHash": "0x7a39cf51832a2683aa4dcd8c1ef5c199290c99f6034de71384068dc738872140",
717
+ "transactionIndex": "0x4",
718
+ "logIndex": "0xb",
719
+ "removed": false
720
+ }
721
+ ],
722
+ "logsBloom": "0x00000000000010000000000040080000000000000000000000000000000040000000000000000000000000000040000000000000000000000000000000000000000000000001200000000000008004000000000000000000000000000000000000000000010000000000000000400000000000010000000000000000000000000800000000000000000104000000000000100000000000000000000000000000004000040000000020000000000000002200000000000000000000800004000000000002000000000000000000000008000000000000000000000000000000000010000000000000000008000400000200000000000080000000000000000000",
723
+ "transactionHash": "0x7a39cf51832a2683aa4dcd8c1ef5c199290c99f6034de71384068dc738872140",
724
+ "transactionIndex": "0x4",
725
+ "blockHash": "0xed464d40a88a68dc5db7a4208ed00ab2486a5541cb93ad7ffc8c542739e56022",
726
+ "blockNumber": "0xb83fa4a",
727
+ "gasUsed": "0x2cd6ad",
728
+ "effectiveGasPrice": "0x5f5e100",
729
+ "from": "0x755ff2f75a0a586ecfa2b9a3c959cb662458a105",
730
+ "to": "0xa2ea7657440875bf916cbfc0cfa88f13e38ad463",
731
+ "contractAddress": null
732
+ },
733
+ "bytecode": "0x61010060405234801562000011575f80fd5b50604051620032113803806200321183398101604081905262000034916200006d565b6001600160a01b03928316608052821660a052911660c05260e052620000c6565b6001600160a01b03811681146200006a575f80fd5b50565b5f805f806080858703121562000081575f80fd5b84516200008e8162000055565b6020860151909450620000a18162000055565b604086015160608701519194509250620000bb8162000055565b939692955090935050565b60805160a05160c05160e0516130d8620001395f395f818161018f01528181610b1a01528181610d3d01528181610f3c015261100b01525f818161022301528181610e050152610f6c01525f8181610131015281816101cd0152611d3f01525f81816102dc015261115f01526130d85ff3fe6080604052600436106100b8575f3560e01c806388bc2ef311610071578063df56a0031161004c578063df56a00314610285578063e16577a614610298578063f434c914146102cb575f80fd5b806388bc2ef3146102125780639e93ad8e14610245578063b6e4a32514610259575f80fd5b8063572b6c05116100a1578063572b6c05146101155780636f4115a91461017e5780637da0a877146101bf575f80fd5b80630c710104146100bc578063441e4d34146100f4575b5f80fd5b3480156100c7575f80fd5b506100db6100d6366004611ec6565b6102fe565b6040516100eb9493929190611f40565b60405180910390f35b3480156100ff575f80fd5b5061011361010e366004612115565b6103d7565b005b348015610120575f80fd5b5061016e61012f36600461226d565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff90811691161490565b60405190151581526020016100eb565b348015610189575f80fd5b506101b17f000000000000000000000000000000000000000000000000000000000000000081565b6040519081526020016100eb565b3480156101ca575f80fd5b507f00000000000000000000000000000000000000000000000000000000000000005b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100eb565b34801561021d575f80fd5b506101ed7f000000000000000000000000000000000000000000000000000000000000000081565b348015610250575f80fd5b506101b1601481565b348015610264575f80fd5b50610278610273366004612288565b61079b565b6040516100eb9190612394565b610113610293366004612546565b610a3e565b3480156102a3575f80fd5b506101b16102b2366004611ec6565b5f60208181529281526040808220909352908152205481565b3480156102d6575f80fd5b506101ed7f000000000000000000000000000000000000000000000000000000000000000081565b73ffffffffffffffffffffffffffffffffffffffff82165f8181526002602090815260408083208584528252808320549383526001825280832085845282529182902080548351818402810184019094528084526cffffffffffffffffffffffffff85169463ffffffff606882901c811695608883901c909116946060949293919291908301828280156103c657602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161039b575b505050505091505092959194509250565b80515f5b81811015610796575f8382815181106103f6576103f6612639565b60200260200101519050805f015173ffffffffffffffffffffffffffffffffffffffff167fe7bb8b356a924b6910d72d86bf46a8151ab352a9a3bf8848ff7a24e8ed8b4912826104446110a6565b604051610452929190612666565b60405180910390a2610544815f015173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104cd9190612751565b825f015173ffffffffffffffffffffffffffffffffffffffff166356539f396040518163ffffffff1660e01b8152600401602060405180830381865afa158015610519573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053d919061276c565b60146110b4565b806060015163ffffffff165f03610587576040517ff06d69c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806080015163ffffffff16816060015163ffffffff1611156105f457606081015160808201516040517fd279819100000000000000000000000000000000000000000000000000000000815263ffffffff9283166004820152911660248201526044015b60405180910390fd5b60408181015160608301516080840151845173ffffffffffffffffffffffffffffffffffffffff9081165f90815260026020908152868220818901805162ffffff90811685529183528884206cffffffffffffffffffffffffff90981660689790971b70ffffffff00000000000000000000000000169690961760889590951b74ffffffff000000000000000000000000000000000016949094179586905560a088015151885190931682526001815286822094519093168152929091529281209192916106c191611e5f565b801561078b575f5b8181101561078957835173ffffffffffffffffffffffffffffffffffffffff165f9081526001602090815260408083208288015162ffffff168452909152902060a085015180518390811061072057610720612639565b6020908102919091018101518254600180820185555f9485529290932090920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff90931692909217909155016106c9565b505b5050506001016103db565b505050565b80516060908067ffffffffffffffff8111156107b9576107b9611f6e565b60405190808252806020026020018201604052801561087f57816020015b604080516101e0810182525f808252602080830182905292820181905260608083018290526080830182905260a0830182905260c0830182905260e08301829052610100830182905261012083018290526101408301829052610160830182905261018083018290526101a08301919091526101c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816107d75790505b5091505f5b81811015610a365773ffffffffffffffffffffffffffffffffffffffff85165f908152602081905260408120855182908790859081106108c6576108c6612639565b602002602001015181526020019081526020015f20549050805f14610a2d578573ffffffffffffffffffffffffffffffffffffffff1663507f14656040518163ffffffff1660e01b8152600401602060405180830381865afa15801561092e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109529190612751565b6040517f64faa15900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018490525f604483015291909116906364faa159906064015f60405180830381865afa1580156109ca573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a0f919081019061285b565b848381518110610a2157610a21612639565b60200260200101819052505b50600101610884565b505092915050565b5f34905060605f8b73ffffffffffffffffffffffffffffffffffffffff166356539f396040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab2919061276c565b90505f805f610b128f8f8f808060200260200160405190810160405280939291908181526020015f905b82821015610b0857610af9608083028601368190038101906129b5565b81526020019060010190610adc565b5050505050611235565b9250925092507f00000000000000000000000000000000000000000000000000000000000000008414610b5757610b4a601482612a89565b610b549087612a9c565b95505b85811115610b9a576040517f8779de49000000000000000000000000000000000000000000000000000000008152600481018290523460248201526044016105eb565b73ffffffffffffffffffffffffffffffffffffffff8f1663d102134c845f604051908082528060200260200182016040528015610be1578160200160208202803683370190505b506040518363ffffffff1660e01b8152600401610bff929190612ade565b5f604051808303815f87803b158015610c16575f80fd5b505af1158015610c28573d5f803e3d5ffd5b505050505f8f73ffffffffffffffffffffffffffffffffffffffff1663edab09b96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9a9190612751565b9050610d3b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505060408051808201909152600381527f70617900000000000000000000000000000000000000000000000000000000006020820152610d13925090508461188c565b600186604051602001610d27929190612c06565b6040516020818303038152906040526118a0565b7f000000000000000000000000000000000000000000000000000000000000000060208201529550505073ffffffffffffffffffffffffffffffffffffffff8b811692508e169050827f7f21f174aed2789ea575c7450af33687c76d078875770db0c6ada6c411b865968b8f8f8934610db26110a6565b604051610dc496959493929190612c20565b60405180910390a46040517f862026500000000000000000000000000000000000000000000000000000000081526004810182905261eeee60248201525f907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638620265090604401602060405180830381865afa158015610e5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e839190612751565b90508073ffffffffffffffffffffffffffffffffffffffff1663fef43257858461eeee888f5f8a6040518863ffffffff1660e01b8152600401610ecb96959493929190612cf7565b60206040518083038185885af1158015610ee7573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f0c919061276c565b50504715611098576040517f862026500000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000000600482015261eeee60248201525f907f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1690638620265090604401602060405180830381865afa158015610fc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fea9190612751565b90508073ffffffffffffffffffffffffffffffffffffffff1663fef43257477f000000000000000000000000000000000000000000000000000000000000000061eeee478e5f8d8d6040518963ffffffff1660e01b81526004016110549796959493929190612d84565b60206040518083038185885af1158015611070573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611095919061276c565b50505b505050505050505050505050565b5f6110af611d23565b905090565b5f6110bd6110a6565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156111ca57506040517f348b684e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f0000000000000000000000000000000000000000000000000000000000000000169063348b684e9060c401602060405180830381865afa1580156111a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c89190612e1e565b155b1561122f576040517f264deeaa00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80861660048301528216602482015260448101849052606481018390526084016105eb565b50505050565b6060805f835167ffffffffffffffff81111561125357611253611f6e565b60405190808252806020026020018201604052801561130f57816020015b604080516101c0810182525f8082526020808301829052928201819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816112715790505b509250835167ffffffffffffffff81111561132c5761132c611f6e565b604051908082528060200260200182016040528015611355578160200160208202803683370190505b5091505f8573ffffffffffffffffffffffffffffffffffffffff1663507f14656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c69190612751565b6040517ff1bea54f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152919091169063f1bea54f90602401602060405180830381865afa158015611432573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611456919061276c565b611461906001612e37565b90505f805b8651811015611876575f87828151811061148257611482612639565b602090810291909101015180519091506114c8576040517fae012ae400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff89165f9081526020818152604080832084518452909152902054801561151d578087848151811061151057611510612639565b6020026020010181815250505b5085828151811061153057611530612639565b60200260200101515f0361184d575f805f806115558d866060015162ffffff166102fe565b9350935093509350825f03611596576040517f447d03be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8385604001516cffffffffffffffffffffffffff1610156116015760408086015190517f588fdcf40000000000000000000000000000000000000000000000000000000081526cffffffffffffffffffffffffff9091166004820152602481018590526044016105eb565b82856020015163ffffffff16101561165a5760208501516040517f0dd7b13a00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602481018490526044016105eb565b81856020015163ffffffff1611156116b35760208501516040517fabf8780d00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602481018390526044016105eb565b8051158015906116d157506116cf6116c96110a6565b82611da3565b155b15611713576116de6110a6565b816040517f143fa7740000000000000000000000000000000000000000000000000000000081526004016105eb929190612e4a565b5050604080516101c081018252848201516cffffffffffffffffffffffffff16815260208086015163ffffffff16908201525f918101829052606080820183905260808201839052855160a083015285015162ffffff1660c082015260e08101829052610100810182905261012081018290526101408101829052600161016082015261018081018290526101a08101919091528951909250899150859081106117bf576117bf612639565b602002602001018190525082806117d590612e78565b93506117e19085612e37565b8683815181106117f3576117f3612639565b60200260200101818152505085828151811061181157611811612639565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff8b165f90815280835260408082208551835290935291909120555b604081015161186b906cffffffffffffffffffffffffff1686612e37565b945050600101611466565b5085518114611883578085525b50509250925092565b81516020830120606082901b185b92915050565b60606020845111611949576118b484612eaf565b6040517fffffffff00000000000000000000000000000000000000000000000000000000851660208201527f0200000000000000000000000000000000000000000000000000000000000000602482015260250160405160208183030381529060405261192090612eaf565b8360405160200161193393929190612ef4565b6040516020818303038152906040529050611d1c565b61195560046020612e37565b611960906001612e37565b8451101561199a576040517f75b1d27b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020825110156119d6576040517fc4292a0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f846119e460046020612e37565b815181106119f4576119f4612639565b016020015160f81c90505f611a0a600183612a9c565b90505f80806001611a1c602087612f20565b611a269190612a9c565b90505b6001611a36602086612f20565b611a409190612a9c565b811115611bbc57888181518110611a5957611a59612639565b01602001517fff000000000000000000000000000000000000000000000000000000000000001615611baa57888181518110611a9757611a97612639565b0160209081015160f81c93508190611aaf8186612f20565b8b51611abb9190612a9c565b611ac59190612a89565b9250611adc8a5f611ad7846001612e37565b611e1a565b9650611ae9602087612f20565b611af4600584612e37565b10611ba4575f611b0660046020612e37565b90505b611b14826001612e37565b811015611b95578a8181518110611b2d57611b2d612639565b0160200151611b409060f81c6001612f37565b60f81b888281518110611b5557611b55612639565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350611b8e600582612e37565b9050611b09565b5083611ba081612e78565b9450505b50611bbc565b80611bb481612f50565b915050611a29565b508487611bc98385612e37565b60f81b604051602001611bde93929190612f84565b60405160208183030381529060405294505f60208651611bfe9190612ff4565b15611c2c576020808751611c129190612a89565b611c1d906001612e37565b611c279190612f20565b611c2f565b85515b808752905085611c4b8a611c44602089612f20565b8c51611e1a565b604051602001611c5c929190613007565b604051602081830303815290604052955060208651611c7b9190612ff4565b15611ca9576020808751611c8f9190612a89565b611c9a906001612e37565b611ca49190612f20565b611cac565b85515b90508086528587604051602001611cc4929190613007565b604051602081830303815290604052955060208651611ce39190612ff4565b15611d11576020808751611cf79190612a89565b611d02906001612e37565b611d0c9190612f20565b611d14565b85515b865250505050505b9392505050565b5f3660143373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000000000000000000000000000000000000000000016148015611d6c5750808210155b15611d9b575f36611d7d8385612a9c565b611d88928290613035565b611d919161305c565b60601c9250505090565b339250505090565b80515f90815b81811015611e1057838181518110611dc357611dc3612639565b602002602001015173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611e085760019250505061189a565b600101611da9565b505f949350505050565b6060828203604051915060208183010160405280825250826020850101602082015f5b84811015611e55578281015182820152602001611e3d565b5050509392505050565b5080545f8255905f5260205f2090810190611e7a9190611e7d565b50565b5b80821115611e91575f8155600101611e7e565b5090565b73ffffffffffffffffffffffffffffffffffffffff81168114611e7a575f80fd5b8035611ec181611e95565b919050565b5f8060408385031215611ed7575f80fd5b8235611ee281611e95565b946020939093013593505050565b5f815180845260208085019450602084015f5b83811015611f3557815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101611f03565b509495945050505050565b848152836020820152826040820152608060608201525f611f646080830184611ef0565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160c0810167ffffffffffffffff81118282101715611fbe57611fbe611f6e565b60405290565b6040516101e0810167ffffffffffffffff81118282101715611fbe57611fbe611f6e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561202f5761202f611f6e565b604052919050565b5f67ffffffffffffffff82111561205057612050611f6e565b5060051b60200190565b62ffffff81168114611e7a575f80fd5b6cffffffffffffffffffffffffff81168114611e7a575f80fd5b63ffffffff81168114611e7a575f80fd5b8035611ec181612084565b5f82601f8301126120af575f80fd5b813560206120c46120bf83612037565b611fe8565b8083825260208201915060208460051b8701019350868411156120e5575f80fd5b602086015b8481101561210a5780356120fd81611e95565b83529183019183016120ea565b509695505050505050565b5f6020808385031215612126575f80fd5b823567ffffffffffffffff8082111561213d575f80fd5b818501915085601f830112612150575f80fd5b813561215e6120bf82612037565b81815260059190911b8301840190848101908883111561217c575f80fd5b8585015b8381101561226057803585811115612196575f80fd5b860160c0818c037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018113156121ca575f80fd5b6121d2611f9b565b898301356121df81611e95565b81526040838101356121f08161205a565b828c01526060848101356122038161206a565b80838501525060809150612218828601612095565b9083015260a0612229858201612095565b8383015292840135928984111561223e575f80fd5b61224c8f8d868801016120a0565b908301525085525050918601918601612180565b5098975050505050505050565b5f6020828403121561227d575f80fd5b8135611d1c81611e95565b5f8060408385031215612299575f80fd5b82356122a481611e95565b915060208381013567ffffffffffffffff8111156122c0575f80fd5b8401601f810186136122d0575f80fd5b80356122de6120bf82612037565b81815260059190911b820183019083810190888311156122fc575f80fd5b928401925b8284101561231a57833582529284019290840190612301565b80955050505050509250929050565b5f5b8381101561234357818101518382015260200161232b565b50505f910152565b5f8151808452612362816020860160208601612329565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156124f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08984030185528151805163ffffffff9081168552888201516cffffffffffffffffffffffffff9081168a87015288830151821689870152606080840151909216918601919091526080808301519091169085015260a08082015161ffff169085015260c08082015173ffffffffffffffffffffffffffffffffffffffff169085015260e080820151908501526101008082015162ffffff16908501526101208082015160ff16908501526101408082015115159085015261016080820151151590850152610180808201511515908501526101a0808201511515908501526101c0908101516101e0918501829052906124df8186018361234b565b9689019694505050908601906001016123bb565b509098975050505050505050565b5f8083601f840112612511575f80fd5b50813567ffffffffffffffff811115612528575f80fd5b60208301915083602082850101111561253f575f80fd5b9250929050565b5f805f805f805f805f60c08a8c03121561255e575f80fd5b893561256981611e95565b985060208a013567ffffffffffffffff80821115612585575f80fd5b818c0191508c601f830112612598575f80fd5b8135818111156125a6575f80fd5b8d60208260071b85010111156125ba575f80fd5b602083019a5098506125ce60408d01611eb6565b97506125dc60608d01611eb6565b965060808c01359150808211156125f1575f80fd5b6125fd8d838e01612501565b909650945060a08c0135915080821115612615575f80fd5b506126228c828d01612501565b915080935050809150509295985092959850929598565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b604081525f610100820173ffffffffffffffffffffffffffffffffffffffff808651166040850152602062ffffff60208801511660608601526cffffffffffffffffffffffffff6040880151166080860152606087015163ffffffff80821660a08801528060808a01511660c0880152505060a087015160c060e0870152838151808652610120880191506020830195505f92505b8083101561271d578551851682529483019460019290920191908301906126fb565b5073ffffffffffffffffffffffffffffffffffffffff881660208801529450611d1c9350505050565b8051611ec181611e95565b5f60208284031215612761575f80fd5b8151611d1c81611e95565b5f6020828403121561277c575f80fd5b5051919050565b8051611ec181612084565b8051611ec18161206a565b805161ffff81168114611ec1575f80fd5b8051611ec18161205a565b805160ff81168114611ec1575f80fd5b80518015158114611ec1575f80fd5b5f82601f8301126127e3575f80fd5b815167ffffffffffffffff8111156127fd576127fd611f6e565b61282e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611fe8565b818152846020838601011115612842575f80fd5b612853826020830160208701612329565b949350505050565b5f6020828403121561286b575f80fd5b815167ffffffffffffffff80821115612882575f80fd5b908301906101e08286031215612896575f80fd5b61289e611fc4565b6128a783612783565b81526128b56020840161278e565b60208201526128c660408401612783565b60408201526128d760608401612783565b60608201526128e86080840161278e565b60808201526128f960a08401612799565b60a082015261290a60c08401612746565b60c082015260e083015160e08201526101006129278185016127aa565b908201526101206129398482016127b5565b9082015261014061294b8482016127c5565b9082015261016061295d8482016127c5565b9082015261018061296f8482016127c5565b908201526101a06129818482016127c5565b908201526101c08381015183811115612998575f80fd5b6129a4888287016127d4565b918301919091525095945050505050565b5f608082840312156129c5575f80fd5b6040516080810181811067ffffffffffffffff821117156129e8576129e8611f6e565b6040528235815260208301356129fd81612084565b60208201526040830135612a108161206a565b60408201526060830135612a238161205a565b60608201529392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f82612a9757612a97612a2f565b500490565b8181038181111561189a5761189a612a5c565b5f815180845260208085019450602084015f5b83811015611f3557815187529582019590820190600101612ac2565b604080825283518282018190525f9190606090818501906020808901865b83811015612be557815180516cffffffffffffffffffffffffff1686528381015163ffffffff908116858801528882015116888701528681015161ffff168787015260808082015173ffffffffffffffffffffffffffffffffffffffff169087015260a0808201519087015260c08082015162ffffff169087015260e08082015160ff169087015261010080820151151590870152610120808201511515908701526101408082015115159087015261016080820151151590870152610180808201511515908701526101a0908101511515908601526101c09094019390820190600101612afc565b505050508481036020860152612bfb8187612aaf565b979650505050505050565b8215158152604060208201525f6128536040830184612aaf565b73ffffffffffffffffffffffffffffffffffffffff8716815260a060208083018290529082018690525f90879060c08401835b89811015612cc2578335825282840135612c6c81612084565b63ffffffff1682840152604084810135612c858161206a565b6cffffffffffffffffffffffffff1690830152606084810135612ca78161205a565b62ffffff169083015260809384019390910190600101612c53565b50809350505050846040830152836060830152612bfb608083018473ffffffffffffffffffffffffffffffffffffffff169052565b8681525f73ffffffffffffffffffffffffffffffffffffffff808816602084015286604084015280861660608401525083608083015260e060a0830152601360e08301527f4d696e7465642066726f6d2043726f70746f70000000000000000000000000006101008301526101208060c0840152612d778184018561234b565b9998505050505050505050565b8781525f73ffffffffffffffffffffffffffffffffffffffff808916602084015287604084015280871660608401525084608083015260e060a08301525f60e08301526101008060c08401528381840152506101208385828501375f838501820152601f9093017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101909101979650505050505050565b5f60208284031215612e2e575f80fd5b611d1c826127c5565b8082018082111561189a5761189a612a5c565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f6128536040830184611ef0565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ea857612ea8612a5c565b5060010190565b80516020808301519190811015612eee577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b8381528260208201525f8251612f11816040850160208701612329565b91909101604001949350505050565b808202811582820484141761189a5761189a612a5c565b60ff818116838216019081111561189a5761189a612a5c565b5f81612f5e57612f5e612a5c565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b5f8451612f95818460208901612329565b7fffffffff0000000000000000000000000000000000000000000000000000000094909416919093019081527fff0000000000000000000000000000000000000000000000000000000000000091909116600482015260050192915050565b5f8261300257613002612a2f565b500690565b5f8351613018818460208801612329565b83519083019061302c818360208801612329565b01949350505050565b5f8085851115613043575f80fd5b8386111561304f575f80fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015610a365760149490940360031b84901b169092169291505056fea264697066735822122057b3117a342c8d7c3c5e8bfef03ff3b00660bc65586668cffcc5291e5d0b013764736f6c63430008170033",
734
+ "deployedBytecode": "0x6080604052600436106100b8575f3560e01c806388bc2ef311610071578063df56a0031161004c578063df56a00314610285578063e16577a614610298578063f434c914146102cb575f80fd5b806388bc2ef3146102125780639e93ad8e14610245578063b6e4a32514610259575f80fd5b8063572b6c05116100a1578063572b6c05146101155780636f4115a91461017e5780637da0a877146101bf575f80fd5b80630c710104146100bc578063441e4d34146100f4575b5f80fd5b3480156100c7575f80fd5b506100db6100d6366004611ec6565b6102fe565b6040516100eb9493929190611f40565b60405180910390f35b3480156100ff575f80fd5b5061011361010e366004612115565b6103d7565b005b348015610120575f80fd5b5061016e61012f36600461226d565b7f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb56673ffffffffffffffffffffffffffffffffffffffff90811691161490565b60405190151581526020016100eb565b348015610189575f80fd5b506101b17f000000000000000000000000000000000000000000000000000000000000000281565b6040519081526020016100eb565b3480156101ca575f80fd5b507f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb5665b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020016100eb565b34801561021d575f80fd5b506101ed7f0000000000000000000000000061e516886a0540f63157f112c0588ee0651dcf81565b348015610250575f80fd5b506101b1601481565b348015610264575f80fd5b50610278610273366004612288565b61079b565b6040516100eb9190612394565b610113610293366004612546565b610a3e565b3480156102a3575f80fd5b506101b16102b2366004611ec6565b5f60208181529281526040808220909352908152205481565b3480156102d6575f80fd5b506101ed7f00000000000000000000000004fd6913d6c32d8c216e153a43c04b1857a7793d81565b73ffffffffffffffffffffffffffffffffffffffff82165f8181526002602090815260408083208584528252808320549383526001825280832085845282529182902080548351818402810184019094528084526cffffffffffffffffffffffffff85169463ffffffff606882901c811695608883901c909116946060949293919291908301828280156103c657602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161039b575b505050505091505092959194509250565b80515f5b81811015610796575f8382815181106103f6576103f6612639565b60200260200101519050805f015173ffffffffffffffffffffffffffffffffffffffff167fe7bb8b356a924b6910d72d86bf46a8151ab352a9a3bf8848ff7a24e8ed8b4912826104446110a6565b604051610452929190612666565b60405180910390a2610544815f015173ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156104a9573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104cd9190612751565b825f015173ffffffffffffffffffffffffffffffffffffffff166356539f396040518163ffffffff1660e01b8152600401602060405180830381865afa158015610519573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061053d919061276c565b60146110b4565b806060015163ffffffff165f03610587576040517ff06d69c400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806080015163ffffffff16816060015163ffffffff1611156105f457606081015160808201516040517fd279819100000000000000000000000000000000000000000000000000000000815263ffffffff9283166004820152911660248201526044015b60405180910390fd5b60408181015160608301516080840151845173ffffffffffffffffffffffffffffffffffffffff9081165f90815260026020908152868220818901805162ffffff90811685529183528884206cffffffffffffffffffffffffff90981660689790971b70ffffffff00000000000000000000000000169690961760889590951b74ffffffff000000000000000000000000000000000016949094179586905560a088015151885190931682526001815286822094519093168152929091529281209192916106c191611e5f565b801561078b575f5b8181101561078957835173ffffffffffffffffffffffffffffffffffffffff165f9081526001602090815260408083208288015162ffffff168452909152902060a085015180518390811061072057610720612639565b6020908102919091018101518254600180820185555f9485529290932090920180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff90931692909217909155016106c9565b505b5050506001016103db565b505050565b80516060908067ffffffffffffffff8111156107b9576107b9611f6e565b60405190808252806020026020018201604052801561087f57816020015b604080516101e0810182525f808252602080830182905292820181905260608083018290526080830182905260a0830182905260c0830182905260e08301829052610100830182905261012083018290526101408301829052610160830182905261018083018290526101a08301919091526101c082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816107d75790505b5091505f5b81811015610a365773ffffffffffffffffffffffffffffffffffffffff85165f908152602081905260408120855182908790859081106108c6576108c6612639565b602002602001015181526020019081526020015f20549050805f14610a2d578573ffffffffffffffffffffffffffffffffffffffff1663507f14656040518163ffffffff1660e01b8152600401602060405180830381865afa15801561092e573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109529190612751565b6040517f64faa15900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152602482018490525f604483015291909116906364faa159906064015f60405180830381865afa1580156109ca573d5f803e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610a0f919081019061285b565b848381518110610a2157610a21612639565b60200260200101819052505b50600101610884565b505092915050565b5f34905060605f8b73ffffffffffffffffffffffffffffffffffffffff166356539f396040518163ffffffff1660e01b8152600401602060405180830381865afa158015610a8e573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ab2919061276c565b90505f805f610b128f8f8f808060200260200160405190810160405280939291908181526020015f905b82821015610b0857610af9608083028601368190038101906129b5565b81526020019060010190610adc565b5050505050611235565b9250925092507f00000000000000000000000000000000000000000000000000000000000000028414610b5757610b4a601482612a89565b610b549087612a9c565b95505b85811115610b9a576040517f8779de49000000000000000000000000000000000000000000000000000000008152600481018290523460248201526044016105eb565b73ffffffffffffffffffffffffffffffffffffffff8f1663d102134c845f604051908082528060200260200182016040528015610be1578160200160208202803683370190505b506040518363ffffffff1660e01b8152600401610bff929190612ade565b5f604051808303815f87803b158015610c16575f80fd5b505af1158015610c28573d5f803e3d5ffd5b505050505f8f73ffffffffffffffffffffffffffffffffffffffff1663edab09b96040518163ffffffff1660e01b8152600401602060405180830381865afa158015610c76573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610c9a9190612751565b9050610d3b8b8b8080601f0160208091040260200160405190810160405280939291908181526020018383808284375f920191909152505060408051808201909152600381527f70617900000000000000000000000000000000000000000000000000000000006020820152610d13925090508461188c565b600186604051602001610d27929190612c06565b6040516020818303038152906040526118a0565b7f000000000000000000000000000000000000000000000000000000000000000260208201529550505073ffffffffffffffffffffffffffffffffffffffff8b811692508e169050827f7f21f174aed2789ea575c7450af33687c76d078875770db0c6ada6c411b865968b8f8f8934610db26110a6565b604051610dc496959493929190612c20565b60405180910390a46040517f862026500000000000000000000000000000000000000000000000000000000081526004810182905261eeee60248201525f907f0000000000000000000000000061e516886a0540f63157f112c0588ee0651dcf73ffffffffffffffffffffffffffffffffffffffff1690638620265090604401602060405180830381865afa158015610e5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e839190612751565b90508073ffffffffffffffffffffffffffffffffffffffff1663fef43257858461eeee888f5f8a6040518863ffffffff1660e01b8152600401610ecb96959493929190612cf7565b60206040518083038185885af1158015610ee7573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190610f0c919061276c565b50504715611098576040517f862026500000000000000000000000000000000000000000000000000000000081527f0000000000000000000000000000000000000000000000000000000000000002600482015261eeee60248201525f907f0000000000000000000000000061e516886a0540f63157f112c0588ee0651dcf73ffffffffffffffffffffffffffffffffffffffff1690638620265090604401602060405180830381865afa158015610fc6573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fea9190612751565b90508073ffffffffffffffffffffffffffffffffffffffff1663fef43257477f000000000000000000000000000000000000000000000000000000000000000261eeee478e5f8d8d6040518963ffffffff1660e01b81526004016110549796959493929190612d84565b60206040518083038185885af1158015611070573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190611095919061276c565b50505b505050505050505050505050565b5f6110af611d23565b905090565b5f6110bd6110a6565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141580156111ca57506040517f348b684e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff82811660048301528581166024830152604482018590526064820184905260016084830181905260a48301527f00000000000000000000000004fd6913d6c32d8c216e153a43c04b1857a7793d169063348b684e9060c401602060405180830381865afa1580156111a4573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111c89190612e1e565b155b1561122f576040517f264deeaa00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff80861660048301528216602482015260448101849052606481018390526084016105eb565b50505050565b6060805f835167ffffffffffffffff81111561125357611253611f6e565b60405190808252806020026020018201604052801561130f57816020015b604080516101c0810182525f8082526020808301829052928201819052606082018190526080820181905260a0820181905260c0820181905260e08201819052610100820181905261012082018190526101408201819052610160820181905261018082018190526101a082015282527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9092019101816112715790505b509250835167ffffffffffffffff81111561132c5761132c611f6e565b604051908082528060200260200182016040528015611355578160200160208202803683370190505b5091505f8573ffffffffffffffffffffffffffffffffffffffff1663507f14656040518163ffffffff1660e01b8152600401602060405180830381865afa1580156113a2573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906113c69190612751565b6040517ff1bea54f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8881166004830152919091169063f1bea54f90602401602060405180830381865afa158015611432573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611456919061276c565b611461906001612e37565b90505f805b8651811015611876575f87828151811061148257611482612639565b602090810291909101015180519091506114c8576040517fae012ae400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b73ffffffffffffffffffffffffffffffffffffffff89165f9081526020818152604080832084518452909152902054801561151d578087848151811061151057611510612639565b6020026020010181815250505b5085828151811061153057611530612639565b60200260200101515f0361184d575f805f806115558d866060015162ffffff166102fe565b9350935093509350825f03611596576040517f447d03be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8385604001516cffffffffffffffffffffffffff1610156116015760408086015190517f588fdcf40000000000000000000000000000000000000000000000000000000081526cffffffffffffffffffffffffff9091166004820152602481018590526044016105eb565b82856020015163ffffffff16101561165a5760208501516040517f0dd7b13a00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602481018490526044016105eb565b81856020015163ffffffff1611156116b35760208501516040517fabf8780d00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602481018390526044016105eb565b8051158015906116d157506116cf6116c96110a6565b82611da3565b155b15611713576116de6110a6565b816040517f143fa7740000000000000000000000000000000000000000000000000000000081526004016105eb929190612e4a565b5050604080516101c081018252848201516cffffffffffffffffffffffffff16815260208086015163ffffffff16908201525f918101829052606080820183905260808201839052855160a083015285015162ffffff1660c082015260e08101829052610100810182905261012081018290526101408101829052600161016082015261018081018290526101a08101919091528951909250899150859081106117bf576117bf612639565b602002602001018190525082806117d590612e78565b93506117e19085612e37565b8683815181106117f3576117f3612639565b60200260200101818152505085828151811061181157611811612639565b60209081029190910181015173ffffffffffffffffffffffffffffffffffffffff8b165f90815280835260408082208551835290935291909120555b604081015161186b906cffffffffffffffffffffffffff1686612e37565b945050600101611466565b5085518114611883578085525b50509250925092565b81516020830120606082901b185b92915050565b60606020845111611949576118b484612eaf565b6040517fffffffff00000000000000000000000000000000000000000000000000000000851660208201527f0200000000000000000000000000000000000000000000000000000000000000602482015260250160405160208183030381529060405261192090612eaf565b8360405160200161193393929190612ef4565b6040516020818303038152906040529050611d1c565b61195560046020612e37565b611960906001612e37565b8451101561199a576040517f75b1d27b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6020825110156119d6576040517fc4292a0800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f846119e460046020612e37565b815181106119f4576119f4612639565b016020015160f81c90505f611a0a600183612a9c565b90505f80806001611a1c602087612f20565b611a269190612a9c565b90505b6001611a36602086612f20565b611a409190612a9c565b811115611bbc57888181518110611a5957611a59612639565b01602001517fff000000000000000000000000000000000000000000000000000000000000001615611baa57888181518110611a9757611a97612639565b0160209081015160f81c93508190611aaf8186612f20565b8b51611abb9190612a9c565b611ac59190612a89565b9250611adc8a5f611ad7846001612e37565b611e1a565b9650611ae9602087612f20565b611af4600584612e37565b10611ba4575f611b0660046020612e37565b90505b611b14826001612e37565b811015611b95578a8181518110611b2d57611b2d612639565b0160200151611b409060f81c6001612f37565b60f81b888281518110611b5557611b55612639565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a905350611b8e600582612e37565b9050611b09565b5083611ba081612e78565b9450505b50611bbc565b80611bb481612f50565b915050611a29565b508487611bc98385612e37565b60f81b604051602001611bde93929190612f84565b60405160208183030381529060405294505f60208651611bfe9190612ff4565b15611c2c576020808751611c129190612a89565b611c1d906001612e37565b611c279190612f20565b611c2f565b85515b808752905085611c4b8a611c44602089612f20565b8c51611e1a565b604051602001611c5c929190613007565b604051602081830303815290604052955060208651611c7b9190612ff4565b15611ca9576020808751611c8f9190612a89565b611c9a906001612e37565b611ca49190612f20565b611cac565b85515b90508086528587604051602001611cc4929190613007565b604051602081830303815290604052955060208651611ce39190612ff4565b15611d11576020808751611cf79190612a89565b611d02906001612e37565b611d0c9190612f20565b611d14565b85515b865250505050505b9392505050565b5f3660143373ffffffffffffffffffffffffffffffffffffffff7f000000000000000000000000c29d6995ab3b0df4650ad643adeac55e7acbb56616148015611d6c5750808210155b15611d9b575f36611d7d8385612a9c565b611d88928290613035565b611d919161305c565b60601c9250505090565b339250505090565b80515f90815b81811015611e1057838181518110611dc357611dc3612639565b602002602001015173ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603611e085760019250505061189a565b600101611da9565b505f949350505050565b6060828203604051915060208183010160405280825250826020850101602082015f5b84811015611e55578281015182820152602001611e3d565b5050509392505050565b5080545f8255905f5260205f2090810190611e7a9190611e7d565b50565b5b80821115611e91575f8155600101611e7e565b5090565b73ffffffffffffffffffffffffffffffffffffffff81168114611e7a575f80fd5b8035611ec181611e95565b919050565b5f8060408385031215611ed7575f80fd5b8235611ee281611e95565b946020939093013593505050565b5f815180845260208085019450602084015f5b83811015611f3557815173ffffffffffffffffffffffffffffffffffffffff1687529582019590820190600101611f03565b509495945050505050565b848152836020820152826040820152608060608201525f611f646080830184611ef0565b9695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160c0810167ffffffffffffffff81118282101715611fbe57611fbe611f6e565b60405290565b6040516101e0810167ffffffffffffffff81118282101715611fbe57611fbe611f6e565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff8111828210171561202f5761202f611f6e565b604052919050565b5f67ffffffffffffffff82111561205057612050611f6e565b5060051b60200190565b62ffffff81168114611e7a575f80fd5b6cffffffffffffffffffffffffff81168114611e7a575f80fd5b63ffffffff81168114611e7a575f80fd5b8035611ec181612084565b5f82601f8301126120af575f80fd5b813560206120c46120bf83612037565b611fe8565b8083825260208201915060208460051b8701019350868411156120e5575f80fd5b602086015b8481101561210a5780356120fd81611e95565b83529183019183016120ea565b509695505050505050565b5f6020808385031215612126575f80fd5b823567ffffffffffffffff8082111561213d575f80fd5b818501915085601f830112612150575f80fd5b813561215e6120bf82612037565b81815260059190911b8301840190848101908883111561217c575f80fd5b8585015b8381101561226057803585811115612196575f80fd5b860160c0818c037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018113156121ca575f80fd5b6121d2611f9b565b898301356121df81611e95565b81526040838101356121f08161205a565b828c01526060848101356122038161206a565b80838501525060809150612218828601612095565b9083015260a0612229858201612095565b8383015292840135928984111561223e575f80fd5b61224c8f8d868801016120a0565b908301525085525050918601918601612180565b5098975050505050505050565b5f6020828403121561227d575f80fd5b8135611d1c81611e95565b5f8060408385031215612299575f80fd5b82356122a481611e95565b915060208381013567ffffffffffffffff8111156122c0575f80fd5b8401601f810186136122d0575f80fd5b80356122de6120bf82612037565b81815260059190911b820183019083810190888311156122fc575f80fd5b928401925b8284101561231a57833582529284019290840190612301565b80955050505050509250929050565b5f5b8381101561234357818101518382015260200161232b565b50505f910152565b5f8151808452612362816020860160208601612329565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b838110156124f3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08984030185528151805163ffffffff9081168552888201516cffffffffffffffffffffffffff9081168a87015288830151821689870152606080840151909216918601919091526080808301519091169085015260a08082015161ffff169085015260c08082015173ffffffffffffffffffffffffffffffffffffffff169085015260e080820151908501526101008082015162ffffff16908501526101208082015160ff16908501526101408082015115159085015261016080820151151590850152610180808201511515908501526101a0808201511515908501526101c0908101516101e0918501829052906124df8186018361234b565b9689019694505050908601906001016123bb565b509098975050505050505050565b5f8083601f840112612511575f80fd5b50813567ffffffffffffffff811115612528575f80fd5b60208301915083602082850101111561253f575f80fd5b9250929050565b5f805f805f805f805f60c08a8c03121561255e575f80fd5b893561256981611e95565b985060208a013567ffffffffffffffff80821115612585575f80fd5b818c0191508c601f830112612598575f80fd5b8135818111156125a6575f80fd5b8d60208260071b85010111156125ba575f80fd5b602083019a5098506125ce60408d01611eb6565b97506125dc60608d01611eb6565b965060808c01359150808211156125f1575f80fd5b6125fd8d838e01612501565b909650945060a08c0135915080821115612615575f80fd5b506126228c828d01612501565b915080935050809150509295985092959850929598565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b604081525f610100820173ffffffffffffffffffffffffffffffffffffffff808651166040850152602062ffffff60208801511660608601526cffffffffffffffffffffffffff6040880151166080860152606087015163ffffffff80821660a08801528060808a01511660c0880152505060a087015160c060e0870152838151808652610120880191506020830195505f92505b8083101561271d578551851682529483019460019290920191908301906126fb565b5073ffffffffffffffffffffffffffffffffffffffff881660208801529450611d1c9350505050565b8051611ec181611e95565b5f60208284031215612761575f80fd5b8151611d1c81611e95565b5f6020828403121561277c575f80fd5b5051919050565b8051611ec181612084565b8051611ec18161206a565b805161ffff81168114611ec1575f80fd5b8051611ec18161205a565b805160ff81168114611ec1575f80fd5b80518015158114611ec1575f80fd5b5f82601f8301126127e3575f80fd5b815167ffffffffffffffff8111156127fd576127fd611f6e565b61282e60207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601611fe8565b818152846020838601011115612842575f80fd5b612853826020830160208701612329565b949350505050565b5f6020828403121561286b575f80fd5b815167ffffffffffffffff80821115612882575f80fd5b908301906101e08286031215612896575f80fd5b61289e611fc4565b6128a783612783565b81526128b56020840161278e565b60208201526128c660408401612783565b60408201526128d760608401612783565b60608201526128e86080840161278e565b60808201526128f960a08401612799565b60a082015261290a60c08401612746565b60c082015260e083015160e08201526101006129278185016127aa565b908201526101206129398482016127b5565b9082015261014061294b8482016127c5565b9082015261016061295d8482016127c5565b9082015261018061296f8482016127c5565b908201526101a06129818482016127c5565b908201526101c08381015183811115612998575f80fd5b6129a4888287016127d4565b918301919091525095945050505050565b5f608082840312156129c5575f80fd5b6040516080810181811067ffffffffffffffff821117156129e8576129e8611f6e565b6040528235815260208301356129fd81612084565b60208201526040830135612a108161206a565b60408201526060830135612a238161205a565b60608201529392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f82612a9757612a97612a2f565b500490565b8181038181111561189a5761189a612a5c565b5f815180845260208085019450602084015f5b83811015611f3557815187529582019590820190600101612ac2565b604080825283518282018190525f9190606090818501906020808901865b83811015612be557815180516cffffffffffffffffffffffffff1686528381015163ffffffff908116858801528882015116888701528681015161ffff168787015260808082015173ffffffffffffffffffffffffffffffffffffffff169087015260a0808201519087015260c08082015162ffffff169087015260e08082015160ff169087015261010080820151151590870152610120808201511515908701526101408082015115159087015261016080820151151590870152610180808201511515908701526101a0908101511515908601526101c09094019390820190600101612afc565b505050508481036020860152612bfb8187612aaf565b979650505050505050565b8215158152604060208201525f6128536040830184612aaf565b73ffffffffffffffffffffffffffffffffffffffff8716815260a060208083018290529082018690525f90879060c08401835b89811015612cc2578335825282840135612c6c81612084565b63ffffffff1682840152604084810135612c858161206a565b6cffffffffffffffffffffffffff1690830152606084810135612ca78161205a565b62ffffff169083015260809384019390910190600101612c53565b50809350505050846040830152836060830152612bfb608083018473ffffffffffffffffffffffffffffffffffffffff169052565b8681525f73ffffffffffffffffffffffffffffffffffffffff808816602084015286604084015280861660608401525083608083015260e060a0830152601360e08301527f4d696e7465642066726f6d2043726f70746f70000000000000000000000000006101008301526101208060c0840152612d778184018561234b565b9998505050505050505050565b8781525f73ffffffffffffffffffffffffffffffffffffffff808916602084015287604084015280871660608401525084608083015260e060a08301525f60e08301526101008060c08401528381840152506101208385828501375f838501820152601f9093017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016909101909101979650505050505050565b5f60208284031215612e2e575f80fd5b611d1c826127c5565b8082018082111561189a5761189a612a5c565b73ffffffffffffffffffffffffffffffffffffffff83168152604060208201525f6128536040830184611ef0565b5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612ea857612ea8612a5c565b5060010190565b80516020808301519190811015612eee577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160200360031b1b821691505b50919050565b8381528260208201525f8251612f11816040850160208701612329565b91909101604001949350505050565b808202811582820484141761189a5761189a612a5c565b60ff818116838216019081111561189a5761189a612a5c565b5f81612f5e57612f5e612a5c565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b5f8451612f95818460208901612329565b7fffffffff0000000000000000000000000000000000000000000000000000000094909416919093019081527fff0000000000000000000000000000000000000000000000000000000000000091909116600482015260050192915050565b5f8261300257613002612a2f565b500690565b5f8351613018818460208801612329565b83519083019061302c818360208801612329565b01949350505050565b5f8085851115613043575f80fd5b8386111561304f575f80fd5b5050820193919092039150565b7fffffffffffffffffffffffffffffffffffffffff0000000000000000000000008135818116916014851015610a365760149490940360031b84901b169092169291505056fea264697066735822122057b3117a342c8d7c3c5e8bfef03ff3b00660bc65586668cffcc5291e5d0b013764736f6c63430008170033",
735
+ "metadata": "{\"compiler\":{\"version\":\"0.8.23+commit.f704f362\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"directory\",\"type\":\"address\"},{\"internalType\":\"contract IJBPermissions\",\"name\":\"permissions\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"feeProjectId\",\"type\":\"uint256\"},{\"internalType\":\"address\",\"name\":\"trustedForwarder\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"CTPublisher_EmptyEncodedIPFSUri\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"expected\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"sent\",\"type\":\"uint256\"}],\"name\":\"CTPublisher_InsufficientEthSent\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"min\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"max\",\"type\":\"uint256\"}],\"name\":\"CTPublisher_MaxTotalSupplyLessThanMin\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"address[]\",\"name\":\"allowedAddresses\",\"type\":\"address[]\"}],\"name\":\"CTPublisher_NotInAllowList\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"price\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumPrice\",\"type\":\"uint256\"}],\"name\":\"CTPublisher_PriceTooSmall\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumTotalSupply\",\"type\":\"uint256\"}],\"name\":\"CTPublisher_TotalSupplyTooBig\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"totalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumTotalSupply\",\"type\":\"uint256\"}],\"name\":\"CTPublisher_TotalSupplyTooSmall\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CTPublisher_UnauthorizedToPostInCategory\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"CTPublisher_ZeroTotalSupply\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"JBMetadataResolver_DataNotPadded\",\"type\":\"error\"},{\"inputs\":[],\"name\":\"JBMetadataResolver_MetadataTooShort\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"sender\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"permissionId\",\"type\":\"uint256\"}],\"name\":\"JBPermissioned_Unauthorized\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint104\",\"name\":\"minimumPrice\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"minimumTotalSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maximumTotalSupply\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"allowedAddresses\",\"type\":\"address[]\"}],\"indexed\":false,\"internalType\":\"struct CTAllowedPost\",\"name\":\"allowedPost\",\"type\":\"tuple\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"ConfigurePostingCriteria\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"projectId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"nftBeneficiary\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"feeBeneficiary\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"totalSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"}],\"indexed\":false,\"internalType\":\"struct CTPost[]\",\"name\":\"posts\",\"type\":\"tuple[]\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"postValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"txValue\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"caller\",\"type\":\"address\"}],\"name\":\"Mint\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"DIRECTORY\",\"outputs\":[{\"internalType\":\"contract IJBDirectory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FEE_DIVISOR\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"FEE_PROJECT_ID\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"PERMISSIONS\",\"outputs\":[{\"internalType\":\"contract IJBPermissions\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"category\",\"type\":\"uint256\"}],\"name\":\"allowanceFor\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"minimumPrice\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"minimumTotalSupply\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"maximumTotalSupply\",\"type\":\"uint256\"},{\"internalType\":\"address[]\",\"name\":\"allowedAddresses\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint104\",\"name\":\"minimumPrice\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"minimumTotalSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"maximumTotalSupply\",\"type\":\"uint32\"},{\"internalType\":\"address[]\",\"name\":\"allowedAddresses\",\"type\":\"address[]\"}],\"internalType\":\"struct CTAllowedPost[]\",\"name\":\"allowedPosts\",\"type\":\"tuple[]\"}],\"name\":\"configurePostingCriteriaFor\",\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"forwarder\",\"type\":\"address\"}],\"name\":\"isTrustedForwarder\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IJB721TiersHook\",\"name\":\"hook\",\"type\":\"address\"},{\"components\":[{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"totalSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"}],\"internalType\":\"struct CTPost[]\",\"name\":\"posts\",\"type\":\"tuple[]\"},{\"internalType\":\"address\",\"name\":\"nftBeneficiary\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"feeBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes\",\"name\":\"additionalPayMetadata\",\"type\":\"bytes\"},{\"internalType\":\"bytes\",\"name\":\"feeMetadata\",\"type\":\"bytes\"}],\"name\":\"mintFrom\",\"stateMutability\":\"payable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"}],\"name\":\"tierIdForEncodedIPFSUriOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"hook\",\"type\":\"address\"},{\"internalType\":\"bytes32[]\",\"name\":\"encodedIPFSUris\",\"type\":\"bytes32[]\"}],\"name\":\"tiersFor\",\"outputs\":[{\"components\":[{\"internalType\":\"uint32\",\"name\":\"id\",\"type\":\"uint32\"},{\"internalType\":\"uint104\",\"name\":\"price\",\"type\":\"uint104\"},{\"internalType\":\"uint32\",\"name\":\"remainingSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint32\",\"name\":\"initialSupply\",\"type\":\"uint32\"},{\"internalType\":\"uint104\",\"name\":\"votingUnits\",\"type\":\"uint104\"},{\"internalType\":\"uint16\",\"name\":\"reserveFrequency\",\"type\":\"uint16\"},{\"internalType\":\"address\",\"name\":\"reserveBeneficiary\",\"type\":\"address\"},{\"internalType\":\"bytes32\",\"name\":\"encodedIPFSUri\",\"type\":\"bytes32\"},{\"internalType\":\"uint24\",\"name\":\"category\",\"type\":\"uint24\"},{\"internalType\":\"uint8\",\"name\":\"discountPercent\",\"type\":\"uint8\"},{\"internalType\":\"bool\",\"name\":\"allowOwnerMint\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"transfersPausable\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotBeRemoved\",\"type\":\"bool\"},{\"internalType\":\"bool\",\"name\":\"cannotIncreaseDiscountPercent\",\"type\":\"bool\"},{\"internalType\":\"string\",\"name\":\"resolvedUri\",\"type\":\"string\"}],\"internalType\":\"struct JB721Tier[]\",\"name\":\"tiers\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"trustedForwarder\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"allowanceFor(address,uint256)\":{\"params\":{\"category\":\"The category for which this allowance applies.\",\"hook\":\"The hook contract for which this allowance applies.\"},\"returns\":{\"allowedAddresses\":\"The addresses allowed to post. Returns empty if all addresses are allowed.\",\"maximumTotalSupply\":\"The max total supply of NFTs that can be made available when minting. Leave as 0 for max.\",\"minimumPrice\":\"The minimum price that a poster must pay to record a new NFT.\",\"minimumTotalSupply\":\"The minimum total number of available tokens that a minter must set to record a new NFT.\"}},\"configurePostingCriteriaFor((address,uint24,uint104,uint32,uint32,address[])[])\":{\"params\":{\"allowedPosts\":\"An array of criteria for allowed posts.\"}},\"constructor\":{\"params\":{\"directory\":\"The directory that contains the projects being posted to.\",\"feeProjectId\":\"The ID of the project to which fees will be routed.\",\"permissions\":\"A contract storing permissions.\",\"trustedForwarder\":\"The trusted forwarder for the ERC2771Context.\"}},\"isTrustedForwarder(address)\":{\"details\":\"Indicates whether any particular address is the trusted forwarder.\"},\"mintFrom(address,(bytes32,uint32,uint104,uint24)[],address,address,bytes,bytes)\":{\"details\":\"A fee is taken into the appropriate treasury.\",\"params\":{\"additionalPayMetadata\":\"Metadata bytes that should be included in the pay function's metadata. This prepends the payload needed for NFT creation.\",\"feeBeneficiary\":\"The beneficiary of the fee project's token.\",\"feeMetadata\":\"The metadata to send alongside the fee payment.\",\"hook\":\"The hook to mint from.\",\"nftBeneficiary\":\"The beneficiary of the NFT mints.\",\"posts\":\"An array of posts that should be published as NFTs to the specified project.\"}},\"tiersFor(address,bytes32[])\":{\"params\":{\"encodedIPFSUris\":\"The URIs to get tiers of.\",\"hook\":\"The hook from which to get tiers.\"},\"returns\":{\"tiers\":\"The tiers that correspond to the provided encoded IPFS URIs. If there's no tier yet, an empty tier is returned.\"}},\"trustedForwarder()\":{\"details\":\"Returns the address of the trusted forwarder.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"DIRECTORY()\":{\"notice\":\"The directory that contains the projects being posted to.\"},\"FEE_DIVISOR()\":{\"notice\":\"The divisor that describes the fee that should be taken.\"},\"FEE_PROJECT_ID()\":{\"notice\":\"The ID of the project to which fees will be routed.\"},\"PERMISSIONS()\":{\"notice\":\"A contract storing permissions.\"},\"allowanceFor(address,uint256)\":{\"notice\":\"Post allowances for a particular category on a particular hook.\"},\"configurePostingCriteriaFor((address,uint24,uint104,uint32,uint32,address[])[])\":{\"notice\":\"Collection owners can set the allowed criteria for publishing a new NFT to their project.\"},\"mintFrom(address,(bytes32,uint32,uint104,uint24)[],address,address,bytes,bytes)\":{\"notice\":\"Publish an NFT to become mintable, and mint a first copy.\"},\"tierIdForEncodedIPFSUriOf(address,bytes32)\":{\"notice\":\"The ID of the tier that an IPFS metadata has been saved to.\"},\"tiersFor(address,bytes32[])\":{\"notice\":\"Get the tiers for the provided encoded IPFS URIs.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"src/CTPublisher.sol\":\"CTPublisher\"},\"evmVersion\":\"shanghai\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":100000000},\"remappings\":[\"@arbitrum/=node_modules/@arbitrum/\",\"@bananapus/=node_modules/@bananapus/\",\"@chainlink/=node_modules/@chainlink/\",\"@croptop/core/=/\",\"@eth-optimism/=node_modules/@eth-optimism/\",\"@exhausted-pigeon/=node_modules/@exhausted-pigeon/\",\"@offchainlabs/=node_modules/@offchainlabs/\",\"@openzeppelin/=node_modules/@openzeppelin/\",\"@prb/=node_modules/@prb/\",\"@scroll-tech/=node_modules/@scroll-tech/\",\"@sphinx-labs/contracts/=node_modules/@sphinx-labs/contracts/contracts/foundry/\",\"@uniswap/=node_modules/@uniswap/\",\"@zksync/=node_modules/@zksync/\",\"base64-sol/=node_modules/base64-sol/\",\"ds-test/=lib/forge-std/lib/ds-test/src/\",\"forge-std/=lib/forge-std/src/\",\"hardhat/=node_modules/hardhat/\",\"solady/=node_modules/solady/\",\"solmate/=node_modules/solmate/\",\"sphinx/=lib/sphinx/packages/contracts/contracts/forge-std/src/\"]},\"sources\":{\"node_modules/@bananapus/721-hook-v5/src/interfaces/IJB721Hook.sol\":{\"keccak256\":\"0x1e7b684c86c0f44b0b680c7aba9e511c89892bc0638424722920368911a087f2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://96995e70a8f15d5600b509ad689c8f2ea6f8116cc7cce9c529b7a41c12c854dc\",\"dweb:/ipfs/QmaAARj3BDSQNsPwkFxauDpWBNgb4kYdzo19tUNdBbc6cX\"]},\"node_modules/@bananapus/721-hook-v5/src/interfaces/IJB721TiersHook.sol\":{\"keccak256\":\"0x107f91c5a0674717684d75e0c71106dd1d2937c0089366c7bb555be7fffdd6b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3ce29d75e454845d0636e671c60c7a691e4a77d1c88fe17dbc435945890465b1\",\"dweb:/ipfs/QmewJn8HeiqKggWA8scLUbwv1TMiit8Va8A5A3K7N9Euss\"]},\"node_modules/@bananapus/721-hook-v5/src/interfaces/IJB721TiersHookStore.sol\":{\"keccak256\":\"0x01d419bf6b9dce2ab162f8aac82f0e4a6d948f53819a42ed023e8f23e358c9c2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e0b14b2ae2032bd256614522078cf0f831c35d1f64d1ea2050227117d08c060\",\"dweb:/ipfs/QmP1xbw5597GDvNVgT5Te6w8LBqeXHq4x6HeXYmqLqw2RC\"]},\"node_modules/@bananapus/721-hook-v5/src/interfaces/IJB721TokenUriResolver.sol\":{\"keccak256\":\"0xfa599167098f4459320ec4141a98a17b2dfffbce422baa27d8b4e4530f61ece1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b758b161f4c7b520b2c34b4d91e585e961b8f4ca278eebb91d791f7f2f45140\",\"dweb:/ipfs/QmcD9DF7NJ9QykQpT4KPzm4bs3fkjzukdAUWwdU6Atfw85\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721InitTiersConfig.sol\":{\"keccak256\":\"0xfe7147d09467fd8f9b755d2a1485f22bb4a8797acd0e97623258498ddac2e441\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9ee21464af9e6c78f580c6920757017cdfbd276728773338a67660fedfea0fd2\",\"dweb:/ipfs/QmVYviC7uQ7rEvdpzD6U4BN19P5f8uMuC7jWffzQWvuFcu\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721Tier.sol\":{\"keccak256\":\"0x99232aa73d5715977332dc7c93b03552a93259e59ae00e86b4ddc200f06adaf1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://721c0cf10a29fa11677718faafb3a2ecfcb4fbe4e1c09e70a7fac681c80fcc94\",\"dweb:/ipfs/QmSUR77E9PqnpB5kBcKNz2CGBjG9XL9FH57RWVYu3Q7GMR\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721TierConfig.sol\":{\"keccak256\":\"0x86e54a0de4deab9d105bf276586aebe256188b193e83eb7a6f6f93e4a29ae9c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04bfcc07d452c26dfc50d3a5eb62df4b3b81e063defd752e0aa5ed049a78eef4\",\"dweb:/ipfs/QmWd5nJHUvZPHxJXkrYCboXaqdtiWWkQG26sNM6qkJuAgD\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721TiersHookFlags.sol\":{\"keccak256\":\"0x283d8429f31bd58875c056515aa42abd09c95362bd929e85cfc44a0d92585766\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9a580b89fe99d9f8e930c58a4d0d63a5ff7c01c79d210af01373d066c9e72ed6\",\"dweb:/ipfs/QmdY1eSGSoTjv4KSdsG4Tm5CzJN6iqk3qTRga5ZWNbejRz\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721TiersMintReservesConfig.sol\":{\"keccak256\":\"0x86fe586a05e6d4bc6fab9b68996a7f4b74c5362ca6f24b9d8057ed7e4cd1c5ac\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0915f17d1f958ab1fe6b214d99ed62f1f858684898c803f1a8a6a557472dd140\",\"dweb:/ipfs/QmUhdnSV8UzkgvbtkYEKHrpyDEmc2aJxW5HQ1gucuxxu5A\"]},\"node_modules/@bananapus/721-hook-v5/src/structs/JB721TiersSetDiscountPercentConfig.sol\":{\"keccak256\":\"0x4672eacb6b0cda5e6f5f72ddb91463c52fb90b4df421053e3b40024f19a59954\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9d8e3a0b35d6b2a6ec66527594263400189b6c766bfd6943c83704380a989aec\",\"dweb:/ipfs/QmUE7NhFWsxjFRzTuRyHJ7oRx3JXD9CnG83t29PjGAhwPR\"]},\"node_modules/@bananapus/core-v5/src/abstract/JBPermissioned.sol\":{\"keccak256\":\"0xbaaa61c6aa043522617d3c1a86960c23b9978ee2a6c9d593b00beeeb6ce64423\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09beed8608e02ce9dbf28814309aaf62c9eec67e0701a26113bdbb4cbae56c42\",\"dweb:/ipfs/QmZrHFnpjX9uBzbFrSjqQgQBkvpJ1ZyvjtT9RfneNGv32S\"]},\"node_modules/@bananapus/core-v5/src/enums/JBApprovalStatus.sol\":{\"keccak256\":\"0x61c69b6bac7d24b566d87cda23a77e4ca9cdb87200b106aba8534cb9a0973e33\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a9ca7249de76f77a8252eefe6bd1b63d47952f25a2acfa2c8db967cdff4470c\",\"dweb:/ipfs/QmaxSxptRQNj8bNy96EreENmrnRWdKmhyihBcxyWzBX5BN\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBCashOutHook.sol\":{\"keccak256\":\"0x6c516b030f55065eb169d666d11dbd82c4a0b8cea7782ebc5e79433cade38670\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa0659eb08477176f130ccaf387d4bde71f0ecca2b24f61124d225f2f50397a3\",\"dweb:/ipfs/QmRNBRGhdGpLQLkC4wK4VrgNEw4EdSiJ4ZZJfiJU4aNt2L\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBDirectory.sol\":{\"keccak256\":\"0xcb97db460d2948a7f51c660fe0d1b1749047a419027711c476b86ad3573534c5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a909c7a3d471054537894dca827e6e018e92ac25299b43026e5b1e335ec4de68\",\"dweb:/ipfs/QmU1GT3F8PNMjSiPPP5cSLLofefHYFJXnywMCdqqM9xUeh\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPayHook.sol\":{\"keccak256\":\"0x9438866782c652c2942f4d114e35f393cd3c8b0334abce8387eed90bca35e8b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cfd99daf57213f92325aad7d7d16e98476d38e870470e95ba01e3ae3cdecc95d\",\"dweb:/ipfs/QmUKKAVGf7ki8BHksr99tFcRW8APveeB5tNH63ctTbbCW8\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPermissioned.sol\":{\"keccak256\":\"0x5b038d4dee116584e88b230920e56d48e135053e3f7e5642eaea14a775c1dad7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://19e43102f349fd4a1da1c0943ffb8f2950007fe4bb4bb7e8f74fc142575d091b\",\"dweb:/ipfs/QmXHAt4KzDTdDZgDDefEXH2WKi7NcfkJb9R7nxW5uDqsNp\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPermissions.sol\":{\"keccak256\":\"0x49d2b91a866004af098a6770b28040071885b048b4b50744b12a1e5b212c5e5e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://089b4dda50be91412ffe1fbe333f78cc894f073c1a7afe469f10a2cee12fbf9e\",\"dweb:/ipfs/QmYPPBZ6HwBa1RNkNGqGcR2xgj4fnWBzrPHHoJG3kZA6AN\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPriceFeed.sol\":{\"keccak256\":\"0x4bd84c0f1a5d4729ed709bcddd43f4c50ec4a165ece79780af8dce482ed07d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://62bac4bfb6982fb002f620c77e5c445e62d50241a5aa64a07e51d929f5a42180\",\"dweb:/ipfs/QmWgJUDreVY2BuMX38a1iUUR5kNbMwGnKG3VvurB7oZtuM\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBPrices.sol\":{\"keccak256\":\"0xb4d5244daa52aafab0c9b8806b7f973afa6a3b298add5966d586d27b78424cfb\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a819f74455aaa4f679ded378424702f3992608a640d7f943b19938eb4ff711da\",\"dweb:/ipfs/QmSMGvVTsMW3L5YSUyXTKoEsgNpGEutnq4frEZHuDdeDvz\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBProjects.sol\":{\"keccak256\":\"0x4ae42a9cc29b517b26d2b9b635deb82c16696b777deeca92dfcad33b0f81c0a0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1dcbd860e7d7f05232d90c5e9cfd3d01e2ce986ffcdb053473d8a4d387b1a48a\",\"dweb:/ipfs/QmWKWoSJJbVWDumbnzXJBJyXmAacgC97bxMtchh8te41bn\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBRulesetApprovalHook.sol\":{\"keccak256\":\"0x5f0dc5968277b572ba5dc74518906dfb33a9684b7a199c7843f4e66af1c11fb9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://323ce3731aebdf5bf8055b8550055e856feed700d293af8beaf8a750625a0975\",\"dweb:/ipfs/QmU2ErV2uzvXnsJt1qBKm73H2qWcEqYtQGHtZEpx93DaWJ\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBRulesetDataHook.sol\":{\"keccak256\":\"0x45a88aa9f26512f7fc3deff6d00be9a292fc07a76c8311f175249400e83d1837\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1e88b996c3a05f87f7391ebcb9cd6d46c6ce8768083945f26a98c4ac4509e64c\",\"dweb:/ipfs/QmbpuYi6mYV8K8qrh8syWvbPc34pFrXG6QeC23m4MsX3r9\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBRulesets.sol\":{\"keccak256\":\"0xf287c7a4a162cd58084ed10ee5f9f31c992addff0ce2f2ac7e810cc393546f30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c851b72de52c3ceb73c6b1849ad0cc7c0832fd126ee52cc838a163ab6d3055b8\",\"dweb:/ipfs/Qmbv6k6pSeNMwZoTUKzDNb18DMGR8DboRMrYQBydATuVZw\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBTerminal.sol\":{\"keccak256\":\"0x5a4c0ef6c8fd10069a408cc42a862909f7b47aba46327da5003203508d8f17d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09d8854151c21046b6b939189ad2139c669888e6baf47034a0cb754104d1efe6\",\"dweb:/ipfs/QmaMrxnf6K6znvDBwdAqsw5x6yuR4SY1BdNtyz226siAt5\"]},\"node_modules/@bananapus/core-v5/src/interfaces/IJBTokenUriResolver.sol\":{\"keccak256\":\"0xfa5cb00dcd6085d1ef912d071fe73c63f9478a2cd0f9d8bddaf659b6af2d0967\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://282e4e7c342d65f77cde0e9a08fcaf20ef5cf379c7a48b639842c0ffd0b2afb8\",\"dweb:/ipfs/QmbnN3PEQeZaXdPLT75V1J79kMg7KqSMru37RHrL3z8Yf2\"]},\"node_modules/@bananapus/core-v5/src/libraries/JBConstants.sol\":{\"keccak256\":\"0x4dd0f809f1f10cf961e85632e5f3ea5e49716b104a0e8bc4d8ccc2081e9d007a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09432ec01de81f7c295579fa3176610776cb186fba4c50d799108a18f14e5cc6\",\"dweb:/ipfs/QmS52c525xJui5u1xoY76PTq2n1pvnUzThBK38A1fsWdLp\"]},\"node_modules/@bananapus/core-v5/src/libraries/JBMetadataResolver.sol\":{\"keccak256\":\"0x52402cc945b1a23d0560a2a9c93a11271ce0ab18e592a4d78fc449a8b417526d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://912b5056f5768b14f26e4e2a754b90ce631a1f4898af6883f6d1e4a1f4ce87c8\",\"dweb:/ipfs/QmdnGcjTQtxscD1QDTERN2xqVA6iJnLCkfq1vWSUmDYYtX\"]},\"node_modules/@bananapus/core-v5/src/structs/JBAccountingContext.sol\":{\"keccak256\":\"0x9c47e048a719f784f601df69a583505432217b9868a0244876d277f84dd1ebdf\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8565f194b87914da9a02af2e760ae2ed2a9d185c6f11229f7035140776d2fec9\",\"dweb:/ipfs/QmPs2fic8W3F5e5zNRwmGmJFjb3JWGPWJ3YUe5o82nQgEn\"]},\"node_modules/@bananapus/core-v5/src/structs/JBAfterCashOutRecordedContext.sol\":{\"keccak256\":\"0xa1acdb1a5670f66f730e71f8eff120766b6f5c934e6cd699c7f1a7cc93adf658\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9c7655c9c42b30132688b395251748c809c334370ee584cb9bac46e1fb8f162\",\"dweb:/ipfs/QmbMV1wg1Fm236HaA6nnMSvRkzeYCKPRhMYDbqkAxieY7x\"]},\"node_modules/@bananapus/core-v5/src/structs/JBAfterPayRecordedContext.sol\":{\"keccak256\":\"0x3bfc01ae9944a0ff5c41125e18ebb8efca58d7aa4e471d2ffa6d8588afb689ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://beb21399142d9b89539cfc8aa94119bc106bd1ea847b922d4c78f3f8804a5cba\",\"dweb:/ipfs/QmXDwJXrzCb6zh1KYwVdN2PEY86uK62MTfYF1M2MBtbEP7\"]},\"node_modules/@bananapus/core-v5/src/structs/JBBeforeCashOutRecordedContext.sol\":{\"keccak256\":\"0x7b2119f3e0725becc552ed5dcfa51683960a8772550c95ac5e2f75240ced367c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://03369dd07a9126ce453d83ac409919326f0aaa48ff9eac5c703092b3824d79c9\",\"dweb:/ipfs/Qmc1QKw6FfmeBD372RnDyeW27QyzEUjMX5up5rk8SHRYGa\"]},\"node_modules/@bananapus/core-v5/src/structs/JBBeforePayRecordedContext.sol\":{\"keccak256\":\"0xbc98b968d84be2f0ddbb24240723c7179ec9c5e02e5fbd5843dd0e76623a3ea5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1310e522696a9fc6f7f96b04c293fab3b4cf1e722bdbb7aa1eec7b3ecc25402f\",\"dweb:/ipfs/QmTYiijDJRuQcMhLrmpbHzHAQFPq6jurPP5HjyYtnzbpnK\"]},\"node_modules/@bananapus/core-v5/src/structs/JBCashOutHookSpecification.sol\":{\"keccak256\":\"0x67a6e781019979e626eaa81d84a800b2656603c23ae455e15d0fa1a6f03c1736\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://b43ce54447dda62d449a1e3575a9e4cb9c5a2adb41b45423dcefeb7d9afe8336\",\"dweb:/ipfs/QmW77REnQcvsfv4gwTLj2CyynmaGC3a6om7zCFWmERhrPY\"]},\"node_modules/@bananapus/core-v5/src/structs/JBPayHookSpecification.sol\":{\"keccak256\":\"0x955f0bfca97300b9e5927dc181753830ee362f83fa9ca32a90daade32aa0cfd5\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f517af1597c7c40f8d3da53f7a6684a3e162950a16559d6bf6ea3b727bb11546\",\"dweb:/ipfs/QmRWo2ZTYXmVZTzNJDYhsJNsEaHphjpUfx9eNz2cciyz86\"]},\"node_modules/@bananapus/core-v5/src/structs/JBPermissionsData.sol\":{\"keccak256\":\"0x65e26b78a1f00d81a21abd255c9670b600efca60cf36a993b8f48ecb268464a4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d108c721c4281b13de34641befd2a1e9fac73a70195ef5ca957abda6fca9acca\",\"dweb:/ipfs/QmWoJo7wzSKY3z4YCpFvR8DoCUTKviiuFEj2tBkcgKUqW1\"]},\"node_modules/@bananapus/core-v5/src/structs/JBRuleset.sol\":{\"keccak256\":\"0x2d1f0a8457e94addae51a8222b1837e372847624fde96bb3178e7aee52ab2b24\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bbb1478e8f5d1c20f981e5a0d5e526d002add1e05ddced87ccd45543ed00c9e4\",\"dweb:/ipfs/QmZkgaYdwkbnvW2MGwVe9FeHjac8XyZTP1YZcWUApiGZgE\"]},\"node_modules/@bananapus/core-v5/src/structs/JBTokenAmount.sol\":{\"keccak256\":\"0xc61593d33d5ec30e695d382948a1b944d01e29a8f2bfd29f75ecebcdbc7816de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8992c1e5fca0c2342ecc0e734dfba6a2a752e4c29184784931d0971e44305051\",\"dweb:/ipfs/QmYNcaW3qeCkgAExUaFTq238fgfJuoYCTwjCn7jm94U4dJ\"]},\"node_modules/@bananapus/ownable-v5/src/JBOwnable.sol\":{\"keccak256\":\"0xad1f9fcc7cfa404a6c20b0eafbc71a2c90a4a3f9aebeaa4b2cab63355892ed30\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd0ef227f070c6c68c998c711e70e61850eabe789a026e34f11e8e0d506739a6\",\"dweb:/ipfs/QmPeZXX7Lq8Q3jHSMvQR5W6UprCy5z5BPY8tz6KXEt4a5S\"]},\"node_modules/@bananapus/ownable-v5/src/JBOwnableOverrides.sol\":{\"keccak256\":\"0x3ccb51dfe5ea52398b63013dba97552f5b1a443bc6df8713458ee5ce75230bd0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://cd2985c7e5783482a64b774d3be8bcf6736c5e754ffd4c0baa3647fb0ff53b69\",\"dweb:/ipfs/QmfEYE8EXGPbvNcWZj4H4DX2HLxscYcFSckpAGwttt4SRS\"]},\"node_modules/@bananapus/ownable-v5/src/interfaces/IJBOwnable.sol\":{\"keccak256\":\"0xa94807eab5362c523d403a10902db431753b9b1e4b73259d4d7e217fc6cdf766\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d5cd284927df617997d055dfaa5f17b9c22c5ce678b9c87b627d14aaa87fa8d2\",\"dweb:/ipfs/Qma1M9MV1FFsaPF5oAMDL7KdidFzCjZ6EZ8mdLo9MXkgxa\"]},\"node_modules/@bananapus/ownable-v5/src/structs/JBOwner.sol\":{\"keccak256\":\"0x535d669344addf9ce4a62320960699ae8c47b4a615327a1cb32590b4e046c069\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://64e228cc198dafde001eb65092eebf6e99f91420b993deb9c5dc8204cf2469ce\",\"dweb:/ipfs/QmWpKRsMt3SwToaVyNjF6ZJZaL3Kz2QDfee8BBN2FExV3i\"]},\"node_modules/@bananapus/permission-ids-v5/src/JBPermissionIds.sol\":{\"keccak256\":\"0x03d598c570091f294bebe9c7b59bfc2d907d5b70a3193c3bdb9ddec67edae1e0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://afb1aefda01e53fa79441bab1fa9cb46154e0db9d16bec8f9b7fa80d200916db\",\"dweb:/ipfs/Qmbkt9HgWmz5rgehRttkzFqW9SkwRYvXYqtHmuxHVxz8ZD\"]},\"node_modules/@openzeppelin/contracts/metatx/ERC2771Context.sol\":{\"keccak256\":\"0x0b030a33274bde015419d99e54c9164f876a7d10eb590317b79b1d5e4ab23d99\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://68e5f96988198e8efd25ddef0d89750b4daebb7fd1204fa7f5eaccdfcb3398c8\",\"dweb:/ipfs/QmaM6nNkf9UmEtQraopuZamEWCdTWp7GvuN3pjMQrNCHxm\"]},\"node_modules/@openzeppelin/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0x5dc63d1c6a12fe1b17793e1745877b2fcbe1964c3edfd0a482fac21ca8f18261\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6b7f97c5960a50fd1822cb298551ffc908e37b7893a68d6d08bce18a11cb0f11\",\"dweb:/ipfs/QmQQvxBytoY1eBt3pRQDmvH2hZ2yjhs12YqVfzGm7KSURq\"]},\"node_modules/@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0x493033a8d1b176a037b2cc6a04dad01a5c157722049bbecf632ca876224dd4b2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6a708e8a5bdb1011c2c381c9a5cfd8a9a956d7d0a9dc1bd8bcdaf52f76ef2f12\",\"dweb:/ipfs/Qmax9WHBnVsZP46ZxEMNRQpLQnrdE4dK8LehML1Py8FowF\"]},\"node_modules/@openzeppelin/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0x79796192ec90263f21b464d5bc90b777a525971d3de8232be80d9c4f9fb353b8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f6fda447a62815e8064f47eff0dd1cf58d9207ad69b5d32280f8d7ed1d1e4621\",\"dweb:/ipfs/QmfDRc7pxfaXB2Dh9np5Uf29Na3pQ7tafRS684wd3GLjVL\"]},\"src/CTPublisher.sol\":{\"keccak256\":\"0x98449aa904f6b6fdc1d94bd1f206ed95098022a75b709f7a0ee64400ffe2b1fc\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d368af60cf40ac00753f230913398c65c3e726a64860785ed4491dabaa94163a\",\"dweb:/ipfs/Qmd3zb7F6XLvKFuwjpJo9Hjr97EeA183S3bV19WrV7AY63\"]},\"src/interfaces/ICTPublisher.sol\":{\"keccak256\":\"0xdd28ee56853d7e1525d63a2f37d94516e4102e1602353a0bbeedce8011b8ef94\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d2f2f88d2abe341270caf2fa3dec572de33bd178a603b5f4cf647c482918e51d\",\"dweb:/ipfs/QmeZLmsat4gK62Lhh1f225z2uWj6Zf3oyg6d8umA1g9vLf\"]},\"src/structs/CTAllowedPost.sol\":{\"keccak256\":\"0x1cab9579ed19fea4d490b1de827fd123a8cc7ababd73ed5421351a6f7142a371\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://00695b12ade810d017427a7cf20856dc326bbedcf4548ed28e81a33f09b28ad8\",\"dweb:/ipfs/QmP3UPM4xyiSUnBhkThyVp1Ww8QfqfN7rk3fPx4Gu5Whsm\"]},\"src/structs/CTPost.sol\":{\"keccak256\":\"0xc4d67fc9a0323a2a923521f2fb3042bde046cb8c78fc69d928804ab8f3987038\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fb4d0a02ada8e751cbd7061f8d7b48705a9442339510232f51595ada0e73612d\",\"dweb:/ipfs/QmbFd4CeMhcY86Ze4izYYdK2xB7tQuwdHxdP7aB5zxy8ka\"]}},\"version\":1}",
736
+ "gitCommit": "30d838fa83206fc183a15ace3842c997a2cc2735",
737
+ "history": []
738
+ }