@stargatefinance/stg-evm-sdk-v2 2.0.4 → 2.0.5

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.
@@ -0,0 +1,1263 @@
1
+ {
2
+ "_format": "hh-sol-artifact-1",
3
+ "contractName": "CreditMessagingMintableBurnable",
4
+ "sourceName": "src/messaging/CreditMessagingMintableBurnable.sol",
5
+ "abi": [
6
+ {
7
+ "inputs": [
8
+ {
9
+ "internalType": "address",
10
+ "name": "_endpoint",
11
+ "type": "address"
12
+ },
13
+ {
14
+ "internalType": "address",
15
+ "name": "_owner",
16
+ "type": "address"
17
+ }
18
+ ],
19
+ "stateMutability": "nonpayable",
20
+ "type": "constructor"
21
+ },
22
+ {
23
+ "inputs": [],
24
+ "name": "CreditMessagingMintableBurnable_EmptyReason",
25
+ "type": "error"
26
+ },
27
+ {
28
+ "inputs": [],
29
+ "name": "CreditMsgCodec_InvalidMessage",
30
+ "type": "error"
31
+ },
32
+ {
33
+ "inputs": [],
34
+ "name": "InvalidDelegate",
35
+ "type": "error"
36
+ },
37
+ {
38
+ "inputs": [],
39
+ "name": "InvalidEndpointCall",
40
+ "type": "error"
41
+ },
42
+ {
43
+ "inputs": [
44
+ {
45
+ "internalType": "bytes",
46
+ "name": "options",
47
+ "type": "bytes"
48
+ }
49
+ ],
50
+ "name": "InvalidOptions",
51
+ "type": "error"
52
+ },
53
+ {
54
+ "inputs": [],
55
+ "name": "LzTokenUnavailable",
56
+ "type": "error"
57
+ },
58
+ {
59
+ "inputs": [],
60
+ "name": "MessagingOptions_ZeroGasLimit",
61
+ "type": "error"
62
+ },
63
+ {
64
+ "inputs": [],
65
+ "name": "Messaging_InvalidAssetId",
66
+ "type": "error"
67
+ },
68
+ {
69
+ "inputs": [],
70
+ "name": "Messaging_Unauthorized",
71
+ "type": "error"
72
+ },
73
+ {
74
+ "inputs": [],
75
+ "name": "Messaging_Unavailable",
76
+ "type": "error"
77
+ },
78
+ {
79
+ "inputs": [
80
+ {
81
+ "internalType": "uint32",
82
+ "name": "eid",
83
+ "type": "uint32"
84
+ }
85
+ ],
86
+ "name": "NoPeer",
87
+ "type": "error"
88
+ },
89
+ {
90
+ "inputs": [
91
+ {
92
+ "internalType": "uint256",
93
+ "name": "msgValue",
94
+ "type": "uint256"
95
+ }
96
+ ],
97
+ "name": "NotEnoughNative",
98
+ "type": "error"
99
+ },
100
+ {
101
+ "inputs": [
102
+ {
103
+ "internalType": "address",
104
+ "name": "addr",
105
+ "type": "address"
106
+ }
107
+ ],
108
+ "name": "OnlyEndpoint",
109
+ "type": "error"
110
+ },
111
+ {
112
+ "inputs": [
113
+ {
114
+ "internalType": "uint32",
115
+ "name": "eid",
116
+ "type": "uint32"
117
+ },
118
+ {
119
+ "internalType": "bytes32",
120
+ "name": "sender",
121
+ "type": "bytes32"
122
+ }
123
+ ],
124
+ "name": "OnlyPeer",
125
+ "type": "error"
126
+ },
127
+ {
128
+ "inputs": [],
129
+ "name": "OnlySelf",
130
+ "type": "error"
131
+ },
132
+ {
133
+ "inputs": [
134
+ {
135
+ "internalType": "bytes",
136
+ "name": "result",
137
+ "type": "bytes"
138
+ }
139
+ ],
140
+ "name": "SimulationResult",
141
+ "type": "error"
142
+ },
143
+ {
144
+ "anonymous": false,
145
+ "inputs": [
146
+ {
147
+ "indexed": false,
148
+ "internalType": "address",
149
+ "name": "stargateImpl",
150
+ "type": "address"
151
+ },
152
+ {
153
+ "indexed": false,
154
+ "internalType": "uint16",
155
+ "name": "assetId",
156
+ "type": "uint16"
157
+ }
158
+ ],
159
+ "name": "AssetIdSet",
160
+ "type": "event"
161
+ },
162
+ {
163
+ "anonymous": false,
164
+ "inputs": [
165
+ {
166
+ "components": [
167
+ {
168
+ "internalType": "uint16",
169
+ "name": "assetId",
170
+ "type": "uint16"
171
+ },
172
+ {
173
+ "components": [
174
+ {
175
+ "internalType": "uint32",
176
+ "name": "srcEid",
177
+ "type": "uint32"
178
+ },
179
+ {
180
+ "internalType": "uint64",
181
+ "name": "amount",
182
+ "type": "uint64"
183
+ }
184
+ ],
185
+ "internalType": "struct Credit[]",
186
+ "name": "credits",
187
+ "type": "tuple[]"
188
+ }
189
+ ],
190
+ "indexed": false,
191
+ "internalType": "struct CreditBatch[]",
192
+ "name": "batches",
193
+ "type": "tuple[]"
194
+ },
195
+ {
196
+ "indexed": false,
197
+ "internalType": "string",
198
+ "name": "reason",
199
+ "type": "string"
200
+ }
201
+ ],
202
+ "name": "CreditsBurned",
203
+ "type": "event"
204
+ },
205
+ {
206
+ "anonymous": false,
207
+ "inputs": [
208
+ {
209
+ "components": [
210
+ {
211
+ "internalType": "uint16",
212
+ "name": "assetId",
213
+ "type": "uint16"
214
+ },
215
+ {
216
+ "components": [
217
+ {
218
+ "internalType": "uint32",
219
+ "name": "srcEid",
220
+ "type": "uint32"
221
+ },
222
+ {
223
+ "internalType": "uint64",
224
+ "name": "amount",
225
+ "type": "uint64"
226
+ }
227
+ ],
228
+ "internalType": "struct Credit[]",
229
+ "name": "credits",
230
+ "type": "tuple[]"
231
+ }
232
+ ],
233
+ "indexed": false,
234
+ "internalType": "struct CreditBatch[]",
235
+ "name": "batches",
236
+ "type": "tuple[]"
237
+ },
238
+ {
239
+ "indexed": false,
240
+ "internalType": "string",
241
+ "name": "reason",
242
+ "type": "string"
243
+ }
244
+ ],
245
+ "name": "CreditsMinted",
246
+ "type": "event"
247
+ },
248
+ {
249
+ "anonymous": false,
250
+ "inputs": [
251
+ {
252
+ "components": [
253
+ {
254
+ "internalType": "uint32",
255
+ "name": "eid",
256
+ "type": "uint32"
257
+ },
258
+ {
259
+ "internalType": "uint16",
260
+ "name": "msgType",
261
+ "type": "uint16"
262
+ },
263
+ {
264
+ "internalType": "bytes",
265
+ "name": "options",
266
+ "type": "bytes"
267
+ }
268
+ ],
269
+ "indexed": false,
270
+ "internalType": "struct EnforcedOptionParam[]",
271
+ "name": "_enforcedOptions",
272
+ "type": "tuple[]"
273
+ }
274
+ ],
275
+ "name": "EnforcedOptionSet",
276
+ "type": "event"
277
+ },
278
+ {
279
+ "anonymous": false,
280
+ "inputs": [
281
+ {
282
+ "indexed": false,
283
+ "internalType": "uint32",
284
+ "name": "eid",
285
+ "type": "uint32"
286
+ },
287
+ {
288
+ "indexed": false,
289
+ "internalType": "uint128",
290
+ "name": "gasLimit",
291
+ "type": "uint128"
292
+ }
293
+ ],
294
+ "name": "GasLimitSet",
295
+ "type": "event"
296
+ },
297
+ {
298
+ "anonymous": false,
299
+ "inputs": [
300
+ {
301
+ "indexed": false,
302
+ "internalType": "uint16",
303
+ "name": "maxAssetId",
304
+ "type": "uint16"
305
+ }
306
+ ],
307
+ "name": "MaxAssetIdSet",
308
+ "type": "event"
309
+ },
310
+ {
311
+ "anonymous": false,
312
+ "inputs": [
313
+ {
314
+ "indexed": true,
315
+ "internalType": "address",
316
+ "name": "previousOwner",
317
+ "type": "address"
318
+ },
319
+ {
320
+ "indexed": true,
321
+ "internalType": "address",
322
+ "name": "newOwner",
323
+ "type": "address"
324
+ }
325
+ ],
326
+ "name": "OwnershipTransferred",
327
+ "type": "event"
328
+ },
329
+ {
330
+ "anonymous": false,
331
+ "inputs": [
332
+ {
333
+ "indexed": false,
334
+ "internalType": "uint32",
335
+ "name": "eid",
336
+ "type": "uint32"
337
+ },
338
+ {
339
+ "indexed": false,
340
+ "internalType": "bytes32",
341
+ "name": "peer",
342
+ "type": "bytes32"
343
+ }
344
+ ],
345
+ "name": "PeerSet",
346
+ "type": "event"
347
+ },
348
+ {
349
+ "anonymous": false,
350
+ "inputs": [
351
+ {
352
+ "indexed": false,
353
+ "internalType": "address",
354
+ "name": "planner",
355
+ "type": "address"
356
+ }
357
+ ],
358
+ "name": "PlannerSet",
359
+ "type": "event"
360
+ },
361
+ {
362
+ "anonymous": false,
363
+ "inputs": [
364
+ {
365
+ "indexed": false,
366
+ "internalType": "address",
367
+ "name": "preCrimeAddress",
368
+ "type": "address"
369
+ }
370
+ ],
371
+ "name": "PreCrimeSet",
372
+ "type": "event"
373
+ },
374
+ {
375
+ "inputs": [
376
+ {
377
+ "components": [
378
+ {
379
+ "internalType": "uint32",
380
+ "name": "srcEid",
381
+ "type": "uint32"
382
+ },
383
+ {
384
+ "internalType": "bytes32",
385
+ "name": "sender",
386
+ "type": "bytes32"
387
+ },
388
+ {
389
+ "internalType": "uint64",
390
+ "name": "nonce",
391
+ "type": "uint64"
392
+ }
393
+ ],
394
+ "internalType": "struct Origin",
395
+ "name": "origin",
396
+ "type": "tuple"
397
+ }
398
+ ],
399
+ "name": "allowInitializePath",
400
+ "outputs": [
401
+ {
402
+ "internalType": "bool",
403
+ "name": "",
404
+ "type": "bool"
405
+ }
406
+ ],
407
+ "stateMutability": "view",
408
+ "type": "function"
409
+ },
410
+ {
411
+ "inputs": [
412
+ {
413
+ "internalType": "address",
414
+ "name": "stargateImpl",
415
+ "type": "address"
416
+ }
417
+ ],
418
+ "name": "assetIds",
419
+ "outputs": [
420
+ {
421
+ "internalType": "uint16",
422
+ "name": "assetId",
423
+ "type": "uint16"
424
+ }
425
+ ],
426
+ "stateMutability": "view",
427
+ "type": "function"
428
+ },
429
+ {
430
+ "inputs": [
431
+ {
432
+ "components": [
433
+ {
434
+ "internalType": "uint16",
435
+ "name": "assetId",
436
+ "type": "uint16"
437
+ },
438
+ {
439
+ "components": [
440
+ {
441
+ "internalType": "uint32",
442
+ "name": "srcEid",
443
+ "type": "uint32"
444
+ },
445
+ {
446
+ "internalType": "uint64",
447
+ "name": "amount",
448
+ "type": "uint64"
449
+ },
450
+ {
451
+ "internalType": "uint64",
452
+ "name": "minAmount",
453
+ "type": "uint64"
454
+ }
455
+ ],
456
+ "internalType": "struct TargetCredit[]",
457
+ "name": "credits",
458
+ "type": "tuple[]"
459
+ }
460
+ ],
461
+ "internalType": "struct TargetCreditBatch[]",
462
+ "name": "_batches",
463
+ "type": "tuple[]"
464
+ },
465
+ {
466
+ "internalType": "string",
467
+ "name": "_reason",
468
+ "type": "string"
469
+ }
470
+ ],
471
+ "name": "burnCredits",
472
+ "outputs": [],
473
+ "stateMutability": "nonpayable",
474
+ "type": "function"
475
+ },
476
+ {
477
+ "inputs": [
478
+ {
479
+ "internalType": "uint32",
480
+ "name": "_eid",
481
+ "type": "uint32"
482
+ },
483
+ {
484
+ "internalType": "uint16",
485
+ "name": "_msgType",
486
+ "type": "uint16"
487
+ },
488
+ {
489
+ "internalType": "bytes",
490
+ "name": "_extraOptions",
491
+ "type": "bytes"
492
+ }
493
+ ],
494
+ "name": "combineOptions",
495
+ "outputs": [
496
+ {
497
+ "internalType": "bytes",
498
+ "name": "",
499
+ "type": "bytes"
500
+ }
501
+ ],
502
+ "stateMutability": "view",
503
+ "type": "function"
504
+ },
505
+ {
506
+ "inputs": [],
507
+ "name": "endpoint",
508
+ "outputs": [
509
+ {
510
+ "internalType": "contract ILayerZeroEndpointV2",
511
+ "name": "",
512
+ "type": "address"
513
+ }
514
+ ],
515
+ "stateMutability": "view",
516
+ "type": "function"
517
+ },
518
+ {
519
+ "inputs": [
520
+ {
521
+ "internalType": "uint32",
522
+ "name": "eid",
523
+ "type": "uint32"
524
+ },
525
+ {
526
+ "internalType": "uint16",
527
+ "name": "msgType",
528
+ "type": "uint16"
529
+ }
530
+ ],
531
+ "name": "enforcedOptions",
532
+ "outputs": [
533
+ {
534
+ "internalType": "bytes",
535
+ "name": "enforcedOption",
536
+ "type": "bytes"
537
+ }
538
+ ],
539
+ "stateMutability": "view",
540
+ "type": "function"
541
+ },
542
+ {
543
+ "inputs": [
544
+ {
545
+ "internalType": "uint32",
546
+ "name": "eid",
547
+ "type": "uint32"
548
+ }
549
+ ],
550
+ "name": "gasLimits",
551
+ "outputs": [
552
+ {
553
+ "internalType": "uint128",
554
+ "name": "gasLimit",
555
+ "type": "uint128"
556
+ }
557
+ ],
558
+ "stateMutability": "view",
559
+ "type": "function"
560
+ },
561
+ {
562
+ "inputs": [
563
+ {
564
+ "components": [
565
+ {
566
+ "internalType": "uint32",
567
+ "name": "srcEid",
568
+ "type": "uint32"
569
+ },
570
+ {
571
+ "internalType": "bytes32",
572
+ "name": "sender",
573
+ "type": "bytes32"
574
+ },
575
+ {
576
+ "internalType": "uint64",
577
+ "name": "nonce",
578
+ "type": "uint64"
579
+ }
580
+ ],
581
+ "internalType": "struct Origin",
582
+ "name": "",
583
+ "type": "tuple"
584
+ },
585
+ {
586
+ "internalType": "bytes",
587
+ "name": "",
588
+ "type": "bytes"
589
+ },
590
+ {
591
+ "internalType": "address",
592
+ "name": "_sender",
593
+ "type": "address"
594
+ }
595
+ ],
596
+ "name": "isComposeMsgSender",
597
+ "outputs": [
598
+ {
599
+ "internalType": "bool",
600
+ "name": "",
601
+ "type": "bool"
602
+ }
603
+ ],
604
+ "stateMutability": "view",
605
+ "type": "function"
606
+ },
607
+ {
608
+ "inputs": [
609
+ {
610
+ "internalType": "uint32",
611
+ "name": "_eid",
612
+ "type": "uint32"
613
+ },
614
+ {
615
+ "internalType": "bytes32",
616
+ "name": "_peer",
617
+ "type": "bytes32"
618
+ }
619
+ ],
620
+ "name": "isPeer",
621
+ "outputs": [
622
+ {
623
+ "internalType": "bool",
624
+ "name": "",
625
+ "type": "bool"
626
+ }
627
+ ],
628
+ "stateMutability": "view",
629
+ "type": "function"
630
+ },
631
+ {
632
+ "inputs": [
633
+ {
634
+ "components": [
635
+ {
636
+ "internalType": "uint32",
637
+ "name": "srcEid",
638
+ "type": "uint32"
639
+ },
640
+ {
641
+ "internalType": "bytes32",
642
+ "name": "sender",
643
+ "type": "bytes32"
644
+ },
645
+ {
646
+ "internalType": "uint64",
647
+ "name": "nonce",
648
+ "type": "uint64"
649
+ }
650
+ ],
651
+ "internalType": "struct Origin",
652
+ "name": "_origin",
653
+ "type": "tuple"
654
+ },
655
+ {
656
+ "internalType": "bytes32",
657
+ "name": "_guid",
658
+ "type": "bytes32"
659
+ },
660
+ {
661
+ "internalType": "bytes",
662
+ "name": "_message",
663
+ "type": "bytes"
664
+ },
665
+ {
666
+ "internalType": "address",
667
+ "name": "_executor",
668
+ "type": "address"
669
+ },
670
+ {
671
+ "internalType": "bytes",
672
+ "name": "_extraData",
673
+ "type": "bytes"
674
+ }
675
+ ],
676
+ "name": "lzReceive",
677
+ "outputs": [],
678
+ "stateMutability": "payable",
679
+ "type": "function"
680
+ },
681
+ {
682
+ "inputs": [
683
+ {
684
+ "components": [
685
+ {
686
+ "components": [
687
+ {
688
+ "internalType": "uint32",
689
+ "name": "srcEid",
690
+ "type": "uint32"
691
+ },
692
+ {
693
+ "internalType": "bytes32",
694
+ "name": "sender",
695
+ "type": "bytes32"
696
+ },
697
+ {
698
+ "internalType": "uint64",
699
+ "name": "nonce",
700
+ "type": "uint64"
701
+ }
702
+ ],
703
+ "internalType": "struct Origin",
704
+ "name": "origin",
705
+ "type": "tuple"
706
+ },
707
+ {
708
+ "internalType": "uint32",
709
+ "name": "dstEid",
710
+ "type": "uint32"
711
+ },
712
+ {
713
+ "internalType": "address",
714
+ "name": "receiver",
715
+ "type": "address"
716
+ },
717
+ {
718
+ "internalType": "bytes32",
719
+ "name": "guid",
720
+ "type": "bytes32"
721
+ },
722
+ {
723
+ "internalType": "uint256",
724
+ "name": "value",
725
+ "type": "uint256"
726
+ },
727
+ {
728
+ "internalType": "address",
729
+ "name": "executor",
730
+ "type": "address"
731
+ },
732
+ {
733
+ "internalType": "bytes",
734
+ "name": "message",
735
+ "type": "bytes"
736
+ },
737
+ {
738
+ "internalType": "bytes",
739
+ "name": "extraData",
740
+ "type": "bytes"
741
+ }
742
+ ],
743
+ "internalType": "struct InboundPacket[]",
744
+ "name": "_packets",
745
+ "type": "tuple[]"
746
+ }
747
+ ],
748
+ "name": "lzReceiveAndRevert",
749
+ "outputs": [],
750
+ "stateMutability": "payable",
751
+ "type": "function"
752
+ },
753
+ {
754
+ "inputs": [
755
+ {
756
+ "components": [
757
+ {
758
+ "internalType": "uint32",
759
+ "name": "srcEid",
760
+ "type": "uint32"
761
+ },
762
+ {
763
+ "internalType": "bytes32",
764
+ "name": "sender",
765
+ "type": "bytes32"
766
+ },
767
+ {
768
+ "internalType": "uint64",
769
+ "name": "nonce",
770
+ "type": "uint64"
771
+ }
772
+ ],
773
+ "internalType": "struct Origin",
774
+ "name": "_origin",
775
+ "type": "tuple"
776
+ },
777
+ {
778
+ "internalType": "bytes32",
779
+ "name": "_guid",
780
+ "type": "bytes32"
781
+ },
782
+ {
783
+ "internalType": "bytes",
784
+ "name": "_message",
785
+ "type": "bytes"
786
+ },
787
+ {
788
+ "internalType": "address",
789
+ "name": "_executor",
790
+ "type": "address"
791
+ },
792
+ {
793
+ "internalType": "bytes",
794
+ "name": "_extraData",
795
+ "type": "bytes"
796
+ }
797
+ ],
798
+ "name": "lzReceiveSimulate",
799
+ "outputs": [],
800
+ "stateMutability": "payable",
801
+ "type": "function"
802
+ },
803
+ {
804
+ "inputs": [],
805
+ "name": "maxAssetId",
806
+ "outputs": [
807
+ {
808
+ "internalType": "uint16",
809
+ "name": "",
810
+ "type": "uint16"
811
+ }
812
+ ],
813
+ "stateMutability": "view",
814
+ "type": "function"
815
+ },
816
+ {
817
+ "inputs": [
818
+ {
819
+ "components": [
820
+ {
821
+ "internalType": "uint16",
822
+ "name": "assetId",
823
+ "type": "uint16"
824
+ },
825
+ {
826
+ "components": [
827
+ {
828
+ "internalType": "uint32",
829
+ "name": "srcEid",
830
+ "type": "uint32"
831
+ },
832
+ {
833
+ "internalType": "uint64",
834
+ "name": "amount",
835
+ "type": "uint64"
836
+ }
837
+ ],
838
+ "internalType": "struct Credit[]",
839
+ "name": "credits",
840
+ "type": "tuple[]"
841
+ }
842
+ ],
843
+ "internalType": "struct CreditBatch[]",
844
+ "name": "_batches",
845
+ "type": "tuple[]"
846
+ },
847
+ {
848
+ "internalType": "string",
849
+ "name": "_reason",
850
+ "type": "string"
851
+ }
852
+ ],
853
+ "name": "mintCredits",
854
+ "outputs": [],
855
+ "stateMutability": "nonpayable",
856
+ "type": "function"
857
+ },
858
+ {
859
+ "inputs": [
860
+ {
861
+ "internalType": "uint32",
862
+ "name": "",
863
+ "type": "uint32"
864
+ },
865
+ {
866
+ "internalType": "bytes32",
867
+ "name": "",
868
+ "type": "bytes32"
869
+ }
870
+ ],
871
+ "name": "nextNonce",
872
+ "outputs": [
873
+ {
874
+ "internalType": "uint64",
875
+ "name": "nonce",
876
+ "type": "uint64"
877
+ }
878
+ ],
879
+ "stateMutability": "view",
880
+ "type": "function"
881
+ },
882
+ {
883
+ "inputs": [],
884
+ "name": "oApp",
885
+ "outputs": [
886
+ {
887
+ "internalType": "address",
888
+ "name": "",
889
+ "type": "address"
890
+ }
891
+ ],
892
+ "stateMutability": "view",
893
+ "type": "function"
894
+ },
895
+ {
896
+ "inputs": [],
897
+ "name": "oAppVersion",
898
+ "outputs": [
899
+ {
900
+ "internalType": "uint64",
901
+ "name": "senderVersion",
902
+ "type": "uint64"
903
+ },
904
+ {
905
+ "internalType": "uint64",
906
+ "name": "receiverVersion",
907
+ "type": "uint64"
908
+ }
909
+ ],
910
+ "stateMutability": "pure",
911
+ "type": "function"
912
+ },
913
+ {
914
+ "inputs": [],
915
+ "name": "owner",
916
+ "outputs": [
917
+ {
918
+ "internalType": "address",
919
+ "name": "",
920
+ "type": "address"
921
+ }
922
+ ],
923
+ "stateMutability": "view",
924
+ "type": "function"
925
+ },
926
+ {
927
+ "inputs": [
928
+ {
929
+ "internalType": "uint32",
930
+ "name": "eid",
931
+ "type": "uint32"
932
+ }
933
+ ],
934
+ "name": "peers",
935
+ "outputs": [
936
+ {
937
+ "internalType": "bytes32",
938
+ "name": "peer",
939
+ "type": "bytes32"
940
+ }
941
+ ],
942
+ "stateMutability": "view",
943
+ "type": "function"
944
+ },
945
+ {
946
+ "inputs": [],
947
+ "name": "planner",
948
+ "outputs": [
949
+ {
950
+ "internalType": "address",
951
+ "name": "",
952
+ "type": "address"
953
+ }
954
+ ],
955
+ "stateMutability": "view",
956
+ "type": "function"
957
+ },
958
+ {
959
+ "inputs": [],
960
+ "name": "preCrime",
961
+ "outputs": [
962
+ {
963
+ "internalType": "address",
964
+ "name": "",
965
+ "type": "address"
966
+ }
967
+ ],
968
+ "stateMutability": "view",
969
+ "type": "function"
970
+ },
971
+ {
972
+ "inputs": [
973
+ {
974
+ "internalType": "uint32",
975
+ "name": "_dstEid",
976
+ "type": "uint32"
977
+ },
978
+ {
979
+ "components": [
980
+ {
981
+ "internalType": "uint16",
982
+ "name": "assetId",
983
+ "type": "uint16"
984
+ },
985
+ {
986
+ "components": [
987
+ {
988
+ "internalType": "uint32",
989
+ "name": "srcEid",
990
+ "type": "uint32"
991
+ },
992
+ {
993
+ "internalType": "uint64",
994
+ "name": "amount",
995
+ "type": "uint64"
996
+ },
997
+ {
998
+ "internalType": "uint64",
999
+ "name": "minAmount",
1000
+ "type": "uint64"
1001
+ }
1002
+ ],
1003
+ "internalType": "struct TargetCredit[]",
1004
+ "name": "credits",
1005
+ "type": "tuple[]"
1006
+ }
1007
+ ],
1008
+ "internalType": "struct TargetCreditBatch[]",
1009
+ "name": "_creditBatches",
1010
+ "type": "tuple[]"
1011
+ }
1012
+ ],
1013
+ "name": "quoteSendCredits",
1014
+ "outputs": [
1015
+ {
1016
+ "components": [
1017
+ {
1018
+ "internalType": "uint256",
1019
+ "name": "nativeFee",
1020
+ "type": "uint256"
1021
+ },
1022
+ {
1023
+ "internalType": "uint256",
1024
+ "name": "lzTokenFee",
1025
+ "type": "uint256"
1026
+ }
1027
+ ],
1028
+ "internalType": "struct MessagingFee",
1029
+ "name": "fee",
1030
+ "type": "tuple"
1031
+ }
1032
+ ],
1033
+ "stateMutability": "view",
1034
+ "type": "function"
1035
+ },
1036
+ {
1037
+ "inputs": [],
1038
+ "name": "renounceOwnership",
1039
+ "outputs": [],
1040
+ "stateMutability": "nonpayable",
1041
+ "type": "function"
1042
+ },
1043
+ {
1044
+ "inputs": [
1045
+ {
1046
+ "internalType": "uint32",
1047
+ "name": "_dstEid",
1048
+ "type": "uint32"
1049
+ },
1050
+ {
1051
+ "components": [
1052
+ {
1053
+ "internalType": "uint16",
1054
+ "name": "assetId",
1055
+ "type": "uint16"
1056
+ },
1057
+ {
1058
+ "components": [
1059
+ {
1060
+ "internalType": "uint32",
1061
+ "name": "srcEid",
1062
+ "type": "uint32"
1063
+ },
1064
+ {
1065
+ "internalType": "uint64",
1066
+ "name": "amount",
1067
+ "type": "uint64"
1068
+ },
1069
+ {
1070
+ "internalType": "uint64",
1071
+ "name": "minAmount",
1072
+ "type": "uint64"
1073
+ }
1074
+ ],
1075
+ "internalType": "struct TargetCredit[]",
1076
+ "name": "credits",
1077
+ "type": "tuple[]"
1078
+ }
1079
+ ],
1080
+ "internalType": "struct TargetCreditBatch[]",
1081
+ "name": "_creditBatches",
1082
+ "type": "tuple[]"
1083
+ }
1084
+ ],
1085
+ "name": "sendCredits",
1086
+ "outputs": [],
1087
+ "stateMutability": "payable",
1088
+ "type": "function"
1089
+ },
1090
+ {
1091
+ "inputs": [
1092
+ {
1093
+ "internalType": "address",
1094
+ "name": "_stargateImpl",
1095
+ "type": "address"
1096
+ },
1097
+ {
1098
+ "internalType": "uint16",
1099
+ "name": "_assetId",
1100
+ "type": "uint16"
1101
+ }
1102
+ ],
1103
+ "name": "setAssetId",
1104
+ "outputs": [],
1105
+ "stateMutability": "nonpayable",
1106
+ "type": "function"
1107
+ },
1108
+ {
1109
+ "inputs": [
1110
+ {
1111
+ "internalType": "address",
1112
+ "name": "_delegate",
1113
+ "type": "address"
1114
+ }
1115
+ ],
1116
+ "name": "setDelegate",
1117
+ "outputs": [],
1118
+ "stateMutability": "nonpayable",
1119
+ "type": "function"
1120
+ },
1121
+ {
1122
+ "inputs": [
1123
+ {
1124
+ "components": [
1125
+ {
1126
+ "internalType": "uint32",
1127
+ "name": "eid",
1128
+ "type": "uint32"
1129
+ },
1130
+ {
1131
+ "internalType": "uint16",
1132
+ "name": "msgType",
1133
+ "type": "uint16"
1134
+ },
1135
+ {
1136
+ "internalType": "bytes",
1137
+ "name": "options",
1138
+ "type": "bytes"
1139
+ }
1140
+ ],
1141
+ "internalType": "struct EnforcedOptionParam[]",
1142
+ "name": "_enforcedOptions",
1143
+ "type": "tuple[]"
1144
+ }
1145
+ ],
1146
+ "name": "setEnforcedOptions",
1147
+ "outputs": [],
1148
+ "stateMutability": "nonpayable",
1149
+ "type": "function"
1150
+ },
1151
+ {
1152
+ "inputs": [
1153
+ {
1154
+ "internalType": "uint32",
1155
+ "name": "_eid",
1156
+ "type": "uint32"
1157
+ },
1158
+ {
1159
+ "internalType": "uint128",
1160
+ "name": "_gasLimit",
1161
+ "type": "uint128"
1162
+ }
1163
+ ],
1164
+ "name": "setGasLimit",
1165
+ "outputs": [],
1166
+ "stateMutability": "nonpayable",
1167
+ "type": "function"
1168
+ },
1169
+ {
1170
+ "inputs": [
1171
+ {
1172
+ "internalType": "uint16",
1173
+ "name": "_maxAssetId",
1174
+ "type": "uint16"
1175
+ }
1176
+ ],
1177
+ "name": "setMaxAssetId",
1178
+ "outputs": [],
1179
+ "stateMutability": "nonpayable",
1180
+ "type": "function"
1181
+ },
1182
+ {
1183
+ "inputs": [
1184
+ {
1185
+ "internalType": "uint32",
1186
+ "name": "_eid",
1187
+ "type": "uint32"
1188
+ },
1189
+ {
1190
+ "internalType": "bytes32",
1191
+ "name": "_peer",
1192
+ "type": "bytes32"
1193
+ }
1194
+ ],
1195
+ "name": "setPeer",
1196
+ "outputs": [],
1197
+ "stateMutability": "nonpayable",
1198
+ "type": "function"
1199
+ },
1200
+ {
1201
+ "inputs": [
1202
+ {
1203
+ "internalType": "address",
1204
+ "name": "_planner",
1205
+ "type": "address"
1206
+ }
1207
+ ],
1208
+ "name": "setPlanner",
1209
+ "outputs": [],
1210
+ "stateMutability": "nonpayable",
1211
+ "type": "function"
1212
+ },
1213
+ {
1214
+ "inputs": [
1215
+ {
1216
+ "internalType": "address",
1217
+ "name": "_preCrime",
1218
+ "type": "address"
1219
+ }
1220
+ ],
1221
+ "name": "setPreCrime",
1222
+ "outputs": [],
1223
+ "stateMutability": "nonpayable",
1224
+ "type": "function"
1225
+ },
1226
+ {
1227
+ "inputs": [
1228
+ {
1229
+ "internalType": "uint16",
1230
+ "name": "assetId",
1231
+ "type": "uint16"
1232
+ }
1233
+ ],
1234
+ "name": "stargateImpls",
1235
+ "outputs": [
1236
+ {
1237
+ "internalType": "address",
1238
+ "name": "stargateImpl",
1239
+ "type": "address"
1240
+ }
1241
+ ],
1242
+ "stateMutability": "view",
1243
+ "type": "function"
1244
+ },
1245
+ {
1246
+ "inputs": [
1247
+ {
1248
+ "internalType": "address",
1249
+ "name": "newOwner",
1250
+ "type": "address"
1251
+ }
1252
+ ],
1253
+ "name": "transferOwnership",
1254
+ "outputs": [],
1255
+ "stateMutability": "nonpayable",
1256
+ "type": "function"
1257
+ }
1258
+ ],
1259
+ "bytecode": "0x60a06040523480156200001157600080fd5b506040516200409638038062004096833981016040819052620000349162000153565b81818181818181816200004733620000e6565b6001600160a01b0380831660805281166200007557604051632d618d8160e21b815260040160405180910390fd5b60805160405163ca5eb5e160e01b81526001600160a01b0383811660048301529091169063ca5eb5e190602401600060405180830381600087803b158015620000bd57600080fd5b505af1158015620000d2573d6000803e3d6000fd5b50505050505050505050505050506200018b565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200014e57600080fd5b919050565b600080604083850312156200016757600080fd5b620001728362000136565b9150620001826020840162000136565b90509250929050565b608051613ed3620001c36000396000818161037401528181610743015281816118b9015281816120c001526122160152613ed36000f3fe6080604052600436106102195760003560e01c80638da5cb5b1161011d578063bd815db0116100b0578063d8e8dbc71161007f578063f2fde38b11610064578063f2fde38b146106a1578063f8d50da6146106c1578063ff7bd03d1461072157600080fd5b8063d8e8dbc714610650578063e4c572cc1461068157600080fd5b8063bd815db0146105ea578063ca5eb5e1146105fd578063d045a0dc1461061d578063d42438851461063057600080fd5b8063b76cbd7d116100ec578063b76cbd7d14610534578063b98bd0701461056f578063bb0b6a531461058f578063bc70b354146105ca57600080fd5b80638da5cb5b146104905780638f71f7dd146104ae578063917df23b146104ce578063b731ea0a1461051457600080fd5b80635b7de51a116101b0578063704851551161017f5780637d25a05e116101645780637d25a05e1461041457806382413eac14610450578063826f1fb11461047057600080fd5b806370485155146103ec578063715018a6146103ff57600080fd5b80635b7de51a146103425780635e280f11146103625780635f6d9ae41461039657806365b9bacb146103cc57600080fd5b80633400288b116101ec5780633400288b146102b257806352ae2879146102d25780635535d461146102e55780635a0dfe4d1461031257600080fd5b806313137d651461021e57806317442b70146102335780632ff9f29f1461025a57806332e4e3631461027a575b600080fd5b61023161022c366004612b1b565b610741565b005b34801561023f57600080fd5b50604080516001815260026020820152015b60405180910390f35b34801561026657600080fd5b50610231610275366004612bff565b610833565b34801561028657600080fd5b5060055461029a906001600160a01b031681565b6040516001600160a01b039091168152602001610251565b3480156102be57600080fd5b506102316102cd366004612c7d565b610a34565b3480156102de57600080fd5b503061029a565b3480156102f157600080fd5b50610305610300366004612cbb565b610a4a565b6040516102519190612d40565b34801561031e57600080fd5b5061033261032d366004612c7d565b610aef565b6040519015158152602001610251565b34801561034e57600080fd5b5061023161035d366004612bff565b610b0e565b34801561036e57600080fd5b5061029a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103a257600080fd5b5061029a6103b1366004612d53565b6004602052600090815260409020546001600160a01b031681565b3480156103d857600080fd5b506102316103e7366004612d6e565b610c51565b6102316103fa366004612dbc565b610ce8565b34801561040b57600080fd5b50610231610f2e565b34801561042057600080fd5b5061043761042f366004612c7d565b600092915050565b60405167ffffffffffffffff9091168152602001610251565b34801561045c57600080fd5b5061033261046b366004612e11565b610f42565b34801561047c57600080fd5b5061023161048b366004612e77565b610f57565b34801561049c57600080fd5b506000546001600160a01b031661029a565b3480156104ba57600080fd5b506102316104c9366004612e92565b610fcc565b3480156104da57600080fd5b506002546105019074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff9091168152602001610251565b34801561052057600080fd5b5060025461029a906001600160a01b031681565b34801561054057600080fd5b5061055461054f366004612dbc565b611285565b60408051825181526020928301519281019290925201610251565b34801561057b57600080fd5b5061023161058a366004612eae565b611512565b34801561059b57600080fd5b506105bc6105aa366004612ef0565b60016020526000908152604090205481565b604051908152602001610251565b3480156105d657600080fd5b506103056105e5366004612f0d565b61152c565b6102316105f8366004612eae565b6116ed565b34801561060957600080fd5b50610231610618366004612e77565b611879565b61023161062b366004612b1b565b611918565b34801561063c57600080fd5b5061023161064b366004612e77565b611960565b34801561065c57600080fd5b5061050161066b366004612e77565b60036020526000908152604090205461ffff1681565b34801561068d57600080fd5b5061023161069c366004612d53565b6119ce565b3480156106ad57600080fd5b506102316106bc366004612e77565b611a51565b3480156106cd57600080fd5b506107006106dc366004612ef0565b6007602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff9091168152602001610251565b34801561072d57600080fd5b5061033261073c366004612f64565b611afb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107aa576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b602087018035906107c4906107bf908a612ef0565b611b31565b1461081b576107d66020880188612ef0565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602088013560248201526044016107a1565b61082a87878787878787611b86565b50505050505050565b61083b611c55565b6000819003610876576040517fe206573500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008367ffffffffffffffff81111561089157610891612f80565b6040519080825280602002602001820160405280156108d757816020015b6040805180820190915260008152606060208201528152602001906001900390816108af5790505b50905060005b848110156109f157368686838181106108f8576108f8612faf565b905060200281019061090a9190612fde565b60408051808201909152909150806109256020840184612d53565b61ffff1681526020908101906109469061094190850185612d53565b611cc9565b6001600160a01b0316630141e41b6000610963602087018761301c565b6040518463ffffffff1660e01b8152600401610981939291906130f6565b6000604051808303816000875af11580156109a0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109c891908101906131b7565b8152508383815181106109dd576109dd612faf565b6020908102919091010152506001016108dd565b507f3c52e8767811dd74a2a0eab205d40a90397aabb9d4d9ad8b6496a619fb14ec5a818484604051610a25939291906132f1565b60405180910390a15050505050565b610a3c611c55565b610a468282611d22565b5050565b600660209081526000928352604080842090915290825290208054610a6e90613393565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9a90613393565b8015610ae75780601f10610abc57610100808354040283529160200191610ae7565b820191906000526020600020905b815481529060010190602001808311610aca57829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b610b16611c55565b6000819003610b51576040517fe206573500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b83811015610c0d5736858583818110610b6f57610b6f612faf565b9050602002810190610b819190612fde565b9050610b936109416020830183612d53565b6001600160a01b0316639561b12f6000610bb060208501856133e0565b6040518463ffffffff1660e01b8152600401610bce93929190613483565b600060405180830381600087803b158015610be857600080fd5b505af1158015610bfc573d6000803e3d6000fd5b505060019093019250610b54915050565b507f035d4d120053c44158763d9905765be84d00db78311bfc2d2fccdcfeb6d7d79684848484604051610c4394939291906134a3565b60405180910390a150505050565b610c59611c55565b63ffffffff821660008181526007602090815260409182902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f2de2cdf6b9f29bfb9afedda6cf015c5fcb9832c9c0c3dcc06d501d964cf5653791015b60405180910390a15050565b6005546001600160a01b03163314610d2c576040517fc63aab2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff811115610d4757610d47612f80565b604051908082528060200260200182016040528015610d8d57816020015b604080518082019091526000815260606020820152815260200190600190039081610d655790505b50905060008060005b84811015610ec85736868683818110610db157610db1612faf565b9050602002810190610dc39190612fde565b90506000610dd76109416020840184612d53565b6001600160a01b0316630141e41b8a610df3602086018661301c565b6040518463ffffffff1660e01b8152600401610e11939291906130f6565b6000604051808303816000875af1158015610e30573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e5891908101906131b7565b805190915015610ebe576040805180820190915280610e7a6020850185612d53565b61ffff1681526020018290528686610e91816135e8565b975081518110610ea357610ea3612faf565b6020026020010181905250805184610ebb9190613602565b93505b5050600101610d96565b508115610f26578183526000610ef084836fffffffffffffffffffffffffffffffff16611d70565b90506000610efe8884611ee4565b9050610f2288838360405180604001604052803481526020016000815250336120a5565b5050505b505050505050565b610f36611c55565b610f406000612198565b565b6001600160a01b03811630145b949350505050565b610f5f611c55565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5767d79cd17d7554509a4dd59a5a7a9175c7e36466455d7b2fa4788228808579906020015b60405180910390a150565b610fd4611c55565b8061ffff16600003611012576040517fe447547600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025461ffff74010000000000000000000000000000000000000000909104811690821611156110bb57600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c0179060200160405180910390a15b6001600160a01b0380831660009081526003602090815260408083205461ffff8681168552600490935292205491169116811561112c5761ffff8216600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6001600160a01b0381161561117a576001600160a01b038116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690555b6001600160a01b0384166111c65761ffff8316600090815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055611243565b6001600160a01b038416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff891690811790915583526004909152902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790555b604080516001600160a01b038616815261ffff851660208201527fac53470cf8e9e3d673caa7d47cd7db36c0d38cf37fc147c70c92bc0c1c4734f59101610c43565b604080518082019091526000808252602082015260008267ffffffffffffffff8111156112b4576112b4612f80565b6040519080825280602002602001820160405280156112fa57816020015b6040805180820190915260008152606060208201528152602001906001900390816112d25790505b5090506000805b848110156114ca5736600087878481811061131e5761131e612faf565b90506020028101906113309190612fde565b61133e90602081019061301c565b909250905060008167ffffffffffffffff81111561135e5761135e612f80565b6040519080825280602002602001820160405280156113a357816020015b604080518082019091526000808252602082015281526020019060019003908161137c5790505b5090506113b08286613602565b945060005b828110156114575760405180604001604052808585848181106113da576113da612faf565b6113f09260206060909202019081019150612ef0565b63ffffffff16815260200185858481811061140d5761140d612faf565b90506060020160200160208101906114259190613632565b67ffffffffffffffff1681525082828151811061144457611444612faf565b60209081029190910101526001016113b5565b5060405180604001604052808a8a8781811061147557611475612faf565b90506020028101906114879190612fde565b611495906020810190612d53565b61ffff168152602001828152508685815181106114b4576114b4612faf565b6020908102919091010152505050600101611301565b5060006114e983836fffffffffffffffffffffffffffffffff16611d70565b905060006114f78884611ee4565b90506115068883836000612200565b98975050505050505050565b61151a611c55565b610a466115278284613677565b6122e1565b63ffffffff8416600090815260066020908152604080832061ffff8716845290915281208054606092919061156090613393565b80601f016020809104026020016040519081016040528092919081815260200182805461158c90613393565b80156115d95780601f106115ae576101008083540402835291602001916115d9565b820191906000526020600020905b8154815290600101906020018083116115bc57829003601f168201915b5050505050905080516000036116295783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610f4f9350505050565b6000839003611639579050610f4f565b600283106116b75761168084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123e892505050565b8061168e8460028188613783565b6040516020016116a0939291906137ad565b604051602081830303815290604052915050610f4f565b83836040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016107a19291906137d5565b60005b818110156117df573683838381811061170b5761170b612faf565b905060200281019061171d91906137e9565b905061173961172f6020830183612ef0565b6020830135610aef565b61174357506117d7565b3063d045a0dc60c08301358360a081013561176261010083018361381d565b611773610100890160e08a01612e77565b6117816101208a018a61381d565b6040518963ffffffff1660e01b81526004016117a39796959493929190613864565b6000604051808303818588803b1580156117bc57600080fd5b505af11580156117d0573d6000803e3d6000fd5b5050505050505b6001016116f0565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa15801561181e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184691908101906138ed565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016107a19190612d40565b611881611c55565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156118fd57600080fd5b505af1158015611911573d6000803e3d6000fd5b5050505050565b333014611951576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61082a8787878787878761081b565b611968611c55565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610fc1565b6119d6611c55565b600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c01790602001610fc1565b611a59611c55565b6001600160a01b038116611aef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107a1565b611af881612198565b50565b6000602082018035906001908390611b139086612ef0565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff811660009081526001602052604081205480610b08576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff841660048201526024016107a1565b6000611b92868661242d565b805190915060005b81811015611c49576000838281518110611bb657611bb6612faf565b60200260200101519050611bcd8160000151611cc9565b6001600160a01b0316639561b12f611be860208e018e612ef0565b83602001516040518363ffffffff1660e01b8152600401611c0a92919061395b565b600060405180830381600087803b158015611c2457600080fd5b505af1158015611c38573d6000803e3d6000fd5b505060019093019250611b9a915050565b50505050505050505050565b6000546001600160a01b03163314610f40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107a1565b61ffff81166000908152600460205260409020546001600160a01b031680611d1d576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b9101610cdc565b81516060906000611d836008600461397a565b611d909060ff1685613993565b611d9c6002600161397a565b611da99060ff1684613993565b611db49060016139aa565b611dbe91906139aa565b9050611ddd604051806040016040528060608152602001600081525090565b611de781836126ba565b50611dfb611df484612731565b82906127c8565b5060005b83811015611ed9576000878281518110611e1b57611e1b612faf565b60209081029190910101518051909150611e3c90849061ffff166002612831565b50602081015151611e56611e4f82612731565b85906127c8565b5060005b81811015611ece57600083602001518281518110611e7a57611e7a612faf565b60200260200101519050611ea7816000015163ffffffff16600460ff16886128319092919063ffffffff16565b506020810151611ec490879067ffffffffffffffff166008612831565b5050600101611e5a565b505050600101611dff565b505195945050505050565b6060600082611ef2856128a6565b611efc91906139bd565b63ffffffff85166000908152600660209081526040808320600384529091529020805491925090611f2c90613393565b80601f0160208091040260200160405190810160405280929190818152602001828054611f5890613393565b8015611fa55780601f10611f7a57610100808354040283529160200191611fa5565b820191906000526020600020905b815481529060010190602001808311611f8857829003601f168201915b505050505091508151600014611fe5578160016011600184604051602001611fd19594939291906139e9565b604051602081830303815290604052610f4f565b6040517e0300000000000000000000000000000000000000000000000000000000000060208201527f0100000000000000000000000000000000000000000000000000000000000000602282018190527e11000000000000000000000000000000000000000000000000000000000000602383015260258201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608083901b166026820152603601604051602081830303815290604052949350505050565b6120ad612a5b565b60006120bc8460000151612908565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff16815260200161210e8c611b31565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161214a929190613a9a565b60806040518083038185885af1158015612168573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061218d9190613b61565b979650505050505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161226389611b31565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401612298929190613a9a565b6040805180830381865afa1580156122b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d89190613bab565b95945050505050565b60005b81518110156123b85761231382828151811061230257612302612faf565b6020026020010151604001516123e8565b81818151811061232557612325612faf565b6020026020010151604001516006600084848151811061234757612347612faf565b60200260200101516000015163ffffffff1663ffffffff168152602001908152602001600020600084848151811061238157612381612faf565b60200260200101516020015161ffff1661ffff16815260200190815260200160002090816123af9190613c14565b506001016122e4565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610fc19190613cd4565b600281015161ffff8116600314610a4657816040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016107a19190612d40565b606060008383600081811061244457612444612faf565b919091013560f81c915081905067ffffffffffffffff81111561246957612469612f80565b6040519080825280602002602001820160405280156124af57816020015b6040805180820190915260008152606060208201528152602001906001900390816124875790505b509150600160005b8260ff168110156126785760008683876124d26002836139aa565b95506124e19286929190613783565b6124ea91613d7d565b60f01c9050600087878581811061250357612503612faf565b919091013560f81c915061251a90506001856139aa565b935060008160ff1667ffffffffffffffff81111561253a5761253a612f80565b60405190808252806020026020018201604052801561257f57816020015b60408051808201909152600080825260208201528152602001906001900390816125585790505b50905060005b8260ff168110156126365760008a878b6125a06004836139aa565b99506125af928a929190613783565b6125b891613dc3565b60e01c905060008b888c6125cd6008836139aa565b9a506125dc928b929190613783565b6125e591613e09565b60c01c905060405180604001604052808363ffffffff1681526020018267ffffffffffffffff1681525084848151811061262157612621612faf565b60209081029190910101525050600101612585565b5060405180604001604052808461ffff1681526020018281525087858151811061266257612662612faf565b60209081029190910101525050506001016124b7565b508084146126b2576040517fa7272c6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505092915050565b6040805180820190915260608152600060208201526126da602083613e4f565b15612702576126ea602083613e4f565b6126f5906020613e8a565b6126ff90836139aa565b91505b60208084018390526040518085526000815290818401018181101561272657600080fd5b604052509192915050565b600060ff8211156127c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201527f206269747300000000000000000000000000000000000000000000000000000060648201526084016107a1565b5090565b60408051808201909152606081526000602082015282515160006127ed8260016139aa565b90508460200151821061280e5761280e85612809836002613993565b612945565b8451602083820101858153508051821115612827578181525b5093949350505050565b604080518082019091526060815260006020820152835151600061285582856139aa565b905085602001518111156128725761287286612809836002613993565b60006001856101000a039050865182810187831982511617815250805183111561289a578281525b50959695505050505050565b63ffffffff81166000908152600760205260408120546fffffffffffffffffffffffffffffffff1690819003611d1d576040517fc960f36b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008134146127c4576040517f9f7041200000000000000000000000000000000000000000000000000000000081523460048201526024016107a1565b815161295183836126ba565b5061295c8382612962565b50505050565b6040805180820190915260608152600060208201526129838383845161298a565b9392505050565b60408051808201909152606081526000602082015282518211156129ad57600080fd5b83515160006129bc84836139aa565b905085602001518111156129d9576129d986612809836002613993565b8551805183820160200191600091808511156129f3578482525b505050602086015b60208610612a335780518252612a126020836139aa565b9150612a1f6020826139aa565b9050612a2c602087613e8a565b95506129fb565b51815160001960208890036101000a0190811690199190911617905250849150509392505050565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001612a9e604051806040016040528060008152602001600081525090565b905290565b600060608284031215612ab557600080fd5b50919050565b60008083601f840112612acd57600080fd5b50813567ffffffffffffffff811115612ae557600080fd5b602083019150836020828501011115612afd57600080fd5b9250929050565b80356001600160a01b0381168114611d1d57600080fd5b600080600080600080600060e0888a031215612b3657600080fd5b612b408989612aa3565b965060608801359550608088013567ffffffffffffffff80821115612b6457600080fd5b612b708b838c01612abb565b9097509550859150612b8460a08b01612b04565b945060c08a0135915080821115612b9a57600080fd5b50612ba78a828b01612abb565b989b979a50959850939692959293505050565b60008083601f840112612bcc57600080fd5b50813567ffffffffffffffff811115612be457600080fd5b6020830191508360208260051b8501011115612afd57600080fd5b60008060008060408587031215612c1557600080fd5b843567ffffffffffffffff80821115612c2d57600080fd5b612c3988838901612bba565b90965094506020870135915080821115612c5257600080fd5b50612c5f87828801612abb565b95989497509550505050565b63ffffffff81168114611af857600080fd5b60008060408385031215612c9057600080fd5b8235612c9b81612c6b565b946020939093013593505050565b803561ffff81168114611d1d57600080fd5b60008060408385031215612cce57600080fd5b8235612cd981612c6b565b9150612ce760208401612ca9565b90509250929050565b60005b83811015612d0b578181015183820152602001612cf3565b50506000910152565b60008151808452612d2c816020860160208601612cf0565b601f01601f19169290920160200192915050565b6020815260006129836020830184612d14565b600060208284031215612d6557600080fd5b61298382612ca9565b60008060408385031215612d8157600080fd5b8235612d8c81612c6b565b915060208301356fffffffffffffffffffffffffffffffff81168114612db157600080fd5b809150509250929050565b600080600060408486031215612dd157600080fd5b8335612ddc81612c6b565b9250602084013567ffffffffffffffff811115612df857600080fd5b612e0486828701612bba565b9497909650939450505050565b60008060008060a08587031215612e2757600080fd5b612e318686612aa3565b9350606085013567ffffffffffffffff811115612e4d57600080fd5b612e5987828801612abb565b9094509250612e6c905060808601612b04565b905092959194509250565b600060208284031215612e8957600080fd5b61298382612b04565b60008060408385031215612ea557600080fd5b612cd983612b04565b60008060208385031215612ec157600080fd5b823567ffffffffffffffff811115612ed857600080fd5b612ee485828601612bba565b90969095509350505050565b600060208284031215612f0257600080fd5b813561298381612c6b565b60008060008060608587031215612f2357600080fd5b8435612f2e81612c6b565b9350612f3c60208601612ca9565b9250604085013567ffffffffffffffff811115612f5857600080fd5b612c5f87828801612abb565b600060608284031215612f7657600080fd5b6129838383612aa3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261301257600080fd5b9190910192915050565b6000808335601e1984360301811261303357600080fd5b83018035915067ffffffffffffffff82111561304e57600080fd5b6020019150606081023603821315612afd57600080fd5b67ffffffffffffffff81168114611af857600080fd5b8183526000602080850194508260005b858110156130eb57813561309e81612c6b565b63ffffffff168752818301356130b381613065565b67ffffffffffffffff90811688850152604090838201356130d381613065565b1690880152606096870196919091019060010161308b565b509495945050505050565b63ffffffff841681526040602082015260006122d860408301848661307b565b6040805190810167ffffffffffffffff8111828210171561313957613139612f80565b60405290565b6040516060810167ffffffffffffffff8111828210171561313957613139612f80565b604051601f8201601f1916810167ffffffffffffffff8111828210171561318b5761318b612f80565b604052919050565b600067ffffffffffffffff8211156131ad576131ad612f80565b5060051b60200190565b600060208083850312156131ca57600080fd5b825167ffffffffffffffff8111156131e157600080fd5b8301601f810185136131f257600080fd5b805161320561320082613193565b613162565b81815260069190911b8201830190838101908783111561322457600080fd5b928401925b8284101561218d57604084890312156132425760008081fd5b61324a613116565b845161325581612c6b565b81528486015161326481613065565b8187015282526040939093019290840190613229565b60008151808452602080850194506020840160005b838110156130eb578151805163ffffffff16885283015167ffffffffffffffff16838801526040909601959082019060010161328f565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b600060408083016040845280875180835260608601915060608160051b87010192506020808a0160005b8381101561337c578886037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa00185528151805161ffff1687528301518387018890526133698888018261327a565b965050938201939082019060010161331b565b50508684038188015250505061218d8186886132c6565b600181811c908216806133a757607f821691505b602082108103612ab5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000808335601e198436030181126133f757600080fd5b83018035915067ffffffffffffffff82111561341257600080fd5b6020019150600681901b3603821315612afd57600080fd5b8183526000602080850194508260005b858110156130eb57813561344d81612c6b565b63ffffffff1687528183013561346281613065565b67ffffffffffffffff1687840152604096870196919091019060010161343a565b63ffffffff841681526040602082015260006122d860408301848661342a565b60408082528181018590526000906060600587901b8401810190840188845b898110156135a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa087850301835281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18c360301811261352357600080fd5b8b0161ffff61353182612ca9565b168552602080820135601e1983360301811261354c57600080fd5b90910181810191903567ffffffffffffffff81111561356a57600080fd5b8060061b360383131561357c57600080fd5b878288015261358e888801828561342a565b965050938401939290920191506001016134c2565b50505083810360208501526115068186886132c6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060001982036135fb576135fb6135b9565b5060010190565b6fffffffffffffffffffffffffffffffff81811683821601908082111561362b5761362b6135b9565b5092915050565b60006020828403121561364457600080fd5b813561298381613065565b600067ffffffffffffffff82111561366957613669612f80565b50601f01601f191660200190565b600061368561320084613193565b80848252602080830192508560051b8501368111156136a357600080fd5b855b8181101561377757803567ffffffffffffffff808211156136c65760008081fd5b8189019150606082360312156136dc5760008081fd5b6136e461313f565b82356136ef81612c6b565b81526136fc838701612ca9565b86820152604080840135838111156137145760008081fd5b939093019236601f85011261372b57600092508283fd5b8335925061373b6132008461364f565b83815236888587010111156137505760008081fd5b838886018983013760009381018801939093528101919091528652509382019382016136a5565b50919695505050505050565b6000808585111561379357600080fd5b838611156137a057600080fd5b5050820193919092039150565b600084516137bf818460208901612cf0565b8201838582376000930192835250909392505050565b602081526000610f4f6020830184866132c6565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec183360301811261301257600080fd5b6000808335601e1984360301811261383457600080fd5b83018035915067ffffffffffffffff82111561384f57600080fd5b602001915036819003821315612afd57600080fd5b6000883561387181612c6b565b63ffffffff16825260208981013590830152604089013561389181613065565b67ffffffffffffffff811660408401525087606083015260e060808301526138bd60e0830187896132c6565b6001600160a01b03861660a084015282810360c08401526138df8185876132c6565b9a9950505050505050505050565b6000602082840312156138ff57600080fd5b815167ffffffffffffffff81111561391657600080fd5b8201601f8101841361392757600080fd5b80516139356132008261364f565b81815285602083850101111561394a57600080fd5b6122d8826020830160208601612cf0565b63ffffffff83168152604060208201526000610f4f604083018461327a565b60ff8181168382160190811115610b0857610b086135b9565b8082028115828204841417610b0857610b086135b9565b80820180821115610b0857610b086135b9565b6fffffffffffffffffffffffffffffffff8181168382160280821691908281146126b2576126b26135b9565b600086516139fb818460208b01612cf0565b60f896871b7fff000000000000000000000000000000000000000000000000000000000000009081169390910192835260f09590951b7fffff000000000000000000000000000000000000000000000000000000000000166001830152509190931b909116600382015260809190911b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000166004820152601401919050565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a06080840152613ad060e0840182612d14565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a0850152613b0b8282612d14565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b600060408284031215613b4357600080fd5b613b4b613116565b9050815181526020820151602082015292915050565b600060808284031215613b7357600080fd5b613b7b61313f565b825181526020830151613b8d81613065565b6020820152613b9f8460408501613b31565b60408201529392505050565b600060408284031215613bbd57600080fd5b6129838383613b31565b601f821115613c0f576000816000526020600020601f850160051c81016020861015613bf05750805b601f850160051c820191505b81811015610f2657828155600101613bfc565b505050565b815167ffffffffffffffff811115613c2e57613c2e612f80565b613c4281613c3c8454613393565b84613bc7565b602080601f831160018114613c775760008415613c5f5750858301515b600019600386901b1c1916600185901b178555610f26565b600085815260208120601f198616915b82811015613ca657888601518255948401946001909101908401613c87565b5085821015613cc45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613d6f578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052613d5b81860183612d14565b968901969450505090860190600101613cfd565b509098975050505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156126b25760029490940360031b84901b1690921692915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156126b25760049490940360031b84901b1690921692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156126b25760089490940360031b84901b1690921692915050565b600082613e85577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b81810381811115610b0857610b086135b956fea264697066735822122051520a816d2a2f02793cef35cb0a70d4725af327ae80667b38c63c62db77038964736f6c63430008160033",
1260
+ "deployedBytecode": "0x6080604052600436106102195760003560e01c80638da5cb5b1161011d578063bd815db0116100b0578063d8e8dbc71161007f578063f2fde38b11610064578063f2fde38b146106a1578063f8d50da6146106c1578063ff7bd03d1461072157600080fd5b8063d8e8dbc714610650578063e4c572cc1461068157600080fd5b8063bd815db0146105ea578063ca5eb5e1146105fd578063d045a0dc1461061d578063d42438851461063057600080fd5b8063b76cbd7d116100ec578063b76cbd7d14610534578063b98bd0701461056f578063bb0b6a531461058f578063bc70b354146105ca57600080fd5b80638da5cb5b146104905780638f71f7dd146104ae578063917df23b146104ce578063b731ea0a1461051457600080fd5b80635b7de51a116101b0578063704851551161017f5780637d25a05e116101645780637d25a05e1461041457806382413eac14610450578063826f1fb11461047057600080fd5b806370485155146103ec578063715018a6146103ff57600080fd5b80635b7de51a146103425780635e280f11146103625780635f6d9ae41461039657806365b9bacb146103cc57600080fd5b80633400288b116101ec5780633400288b146102b257806352ae2879146102d25780635535d461146102e55780635a0dfe4d1461031257600080fd5b806313137d651461021e57806317442b70146102335780632ff9f29f1461025a57806332e4e3631461027a575b600080fd5b61023161022c366004612b1b565b610741565b005b34801561023f57600080fd5b50604080516001815260026020820152015b60405180910390f35b34801561026657600080fd5b50610231610275366004612bff565b610833565b34801561028657600080fd5b5060055461029a906001600160a01b031681565b6040516001600160a01b039091168152602001610251565b3480156102be57600080fd5b506102316102cd366004612c7d565b610a34565b3480156102de57600080fd5b503061029a565b3480156102f157600080fd5b50610305610300366004612cbb565b610a4a565b6040516102519190612d40565b34801561031e57600080fd5b5061033261032d366004612c7d565b610aef565b6040519015158152602001610251565b34801561034e57600080fd5b5061023161035d366004612bff565b610b0e565b34801561036e57600080fd5b5061029a7f000000000000000000000000000000000000000000000000000000000000000081565b3480156103a257600080fd5b5061029a6103b1366004612d53565b6004602052600090815260409020546001600160a01b031681565b3480156103d857600080fd5b506102316103e7366004612d6e565b610c51565b6102316103fa366004612dbc565b610ce8565b34801561040b57600080fd5b50610231610f2e565b34801561042057600080fd5b5061043761042f366004612c7d565b600092915050565b60405167ffffffffffffffff9091168152602001610251565b34801561045c57600080fd5b5061033261046b366004612e11565b610f42565b34801561047c57600080fd5b5061023161048b366004612e77565b610f57565b34801561049c57600080fd5b506000546001600160a01b031661029a565b3480156104ba57600080fd5b506102316104c9366004612e92565b610fcc565b3480156104da57600080fd5b506002546105019074010000000000000000000000000000000000000000900461ffff1681565b60405161ffff9091168152602001610251565b34801561052057600080fd5b5060025461029a906001600160a01b031681565b34801561054057600080fd5b5061055461054f366004612dbc565b611285565b60408051825181526020928301519281019290925201610251565b34801561057b57600080fd5b5061023161058a366004612eae565b611512565b34801561059b57600080fd5b506105bc6105aa366004612ef0565b60016020526000908152604090205481565b604051908152602001610251565b3480156105d657600080fd5b506103056105e5366004612f0d565b61152c565b6102316105f8366004612eae565b6116ed565b34801561060957600080fd5b50610231610618366004612e77565b611879565b61023161062b366004612b1b565b611918565b34801561063c57600080fd5b5061023161064b366004612e77565b611960565b34801561065c57600080fd5b5061050161066b366004612e77565b60036020526000908152604090205461ffff1681565b34801561068d57600080fd5b5061023161069c366004612d53565b6119ce565b3480156106ad57600080fd5b506102316106bc366004612e77565b611a51565b3480156106cd57600080fd5b506107006106dc366004612ef0565b6007602052600090815260409020546fffffffffffffffffffffffffffffffff1681565b6040516fffffffffffffffffffffffffffffffff9091168152602001610251565b34801561072d57600080fd5b5061033261073c366004612f64565b611afb565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633146107aa576040517f91ac5e4f0000000000000000000000000000000000000000000000000000000081523360048201526024015b60405180910390fd5b602087018035906107c4906107bf908a612ef0565b611b31565b1461081b576107d66020880188612ef0565b6040517fc26bebcc00000000000000000000000000000000000000000000000000000000815263ffffffff9091166004820152602088013560248201526044016107a1565b61082a87878787878787611b86565b50505050505050565b61083b611c55565b6000819003610876576040517fe206573500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008367ffffffffffffffff81111561089157610891612f80565b6040519080825280602002602001820160405280156108d757816020015b6040805180820190915260008152606060208201528152602001906001900390816108af5790505b50905060005b848110156109f157368686838181106108f8576108f8612faf565b905060200281019061090a9190612fde565b60408051808201909152909150806109256020840184612d53565b61ffff1681526020908101906109469061094190850185612d53565b611cc9565b6001600160a01b0316630141e41b6000610963602087018761301c565b6040518463ffffffff1660e01b8152600401610981939291906130f6565b6000604051808303816000875af11580156109a0573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526109c891908101906131b7565b8152508383815181106109dd576109dd612faf565b6020908102919091010152506001016108dd565b507f3c52e8767811dd74a2a0eab205d40a90397aabb9d4d9ad8b6496a619fb14ec5a818484604051610a25939291906132f1565b60405180910390a15050505050565b610a3c611c55565b610a468282611d22565b5050565b600660209081526000928352604080842090915290825290208054610a6e90613393565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9a90613393565b8015610ae75780601f10610abc57610100808354040283529160200191610ae7565b820191906000526020600020905b815481529060010190602001808311610aca57829003601f168201915b505050505081565b63ffffffff821660009081526001602052604090205481145b92915050565b610b16611c55565b6000819003610b51576040517fe206573500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b83811015610c0d5736858583818110610b6f57610b6f612faf565b9050602002810190610b819190612fde565b9050610b936109416020830183612d53565b6001600160a01b0316639561b12f6000610bb060208501856133e0565b6040518463ffffffff1660e01b8152600401610bce93929190613483565b600060405180830381600087803b158015610be857600080fd5b505af1158015610bfc573d6000803e3d6000fd5b505060019093019250610b54915050565b507f035d4d120053c44158763d9905765be84d00db78311bfc2d2fccdcfeb6d7d79684848484604051610c4394939291906134a3565b60405180910390a150505050565b610c59611c55565b63ffffffff821660008181526007602090815260409182902080547fffffffffffffffffffffffffffffffff00000000000000000000000000000000166fffffffffffffffffffffffffffffffff86169081179091558251938452908301527f2de2cdf6b9f29bfb9afedda6cf015c5fcb9832c9c0c3dcc06d501d964cf5653791015b60405180910390a15050565b6005546001600160a01b03163314610d2c576040517fc63aab2c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008167ffffffffffffffff811115610d4757610d47612f80565b604051908082528060200260200182016040528015610d8d57816020015b604080518082019091526000815260606020820152815260200190600190039081610d655790505b50905060008060005b84811015610ec85736868683818110610db157610db1612faf565b9050602002810190610dc39190612fde565b90506000610dd76109416020840184612d53565b6001600160a01b0316630141e41b8a610df3602086018661301c565b6040518463ffffffff1660e01b8152600401610e11939291906130f6565b6000604051808303816000875af1158015610e30573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610e5891908101906131b7565b805190915015610ebe576040805180820190915280610e7a6020850185612d53565b61ffff1681526020018290528686610e91816135e8565b975081518110610ea357610ea3612faf565b6020026020010181905250805184610ebb9190613602565b93505b5050600101610d96565b508115610f26578183526000610ef084836fffffffffffffffffffffffffffffffff16611d70565b90506000610efe8884611ee4565b9050610f2288838360405180604001604052803481526020016000815250336120a5565b5050505b505050505050565b610f36611c55565b610f406000612198565b565b6001600160a01b03811630145b949350505050565b610f5f611c55565b600580547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527f5767d79cd17d7554509a4dd59a5a7a9175c7e36466455d7b2fa4788228808579906020015b60405180910390a150565b610fd4611c55565b8061ffff16600003611012576040517fe447547600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60025461ffff74010000000000000000000000000000000000000000909104811690821611156110bb57600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c0179060200160405180910390a15b6001600160a01b0380831660009081526003602090815260408083205461ffff8681168552600490935292205491169116811561112c5761ffff8216600090815260046020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555b6001600160a01b0381161561117a576001600160a01b038116600090815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001690555b6001600160a01b0384166111c65761ffff8316600090815260046020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055611243565b6001600160a01b038416600081815260036020908152604080832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001661ffff891690811790915583526004909152902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690911790555b604080516001600160a01b038616815261ffff851660208201527fac53470cf8e9e3d673caa7d47cd7db36c0d38cf37fc147c70c92bc0c1c4734f59101610c43565b604080518082019091526000808252602082015260008267ffffffffffffffff8111156112b4576112b4612f80565b6040519080825280602002602001820160405280156112fa57816020015b6040805180820190915260008152606060208201528152602001906001900390816112d25790505b5090506000805b848110156114ca5736600087878481811061131e5761131e612faf565b90506020028101906113309190612fde565b61133e90602081019061301c565b909250905060008167ffffffffffffffff81111561135e5761135e612f80565b6040519080825280602002602001820160405280156113a357816020015b604080518082019091526000808252602082015281526020019060019003908161137c5790505b5090506113b08286613602565b945060005b828110156114575760405180604001604052808585848181106113da576113da612faf565b6113f09260206060909202019081019150612ef0565b63ffffffff16815260200185858481811061140d5761140d612faf565b90506060020160200160208101906114259190613632565b67ffffffffffffffff1681525082828151811061144457611444612faf565b60209081029190910101526001016113b5565b5060405180604001604052808a8a8781811061147557611475612faf565b90506020028101906114879190612fde565b611495906020810190612d53565b61ffff168152602001828152508685815181106114b4576114b4612faf565b6020908102919091010152505050600101611301565b5060006114e983836fffffffffffffffffffffffffffffffff16611d70565b905060006114f78884611ee4565b90506115068883836000612200565b98975050505050505050565b61151a611c55565b610a466115278284613677565b6122e1565b63ffffffff8416600090815260066020908152604080832061ffff8716845290915281208054606092919061156090613393565b80601f016020809104026020016040519081016040528092919081815260200182805461158c90613393565b80156115d95780601f106115ae576101008083540402835291602001916115d9565b820191906000526020600020905b8154815290600101906020018083116115bc57829003601f168201915b5050505050905080516000036116295783838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250929450610f4f9350505050565b6000839003611639579050610f4f565b600283106116b75761168084848080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506123e892505050565b8061168e8460028188613783565b6040516020016116a0939291906137ad565b604051602081830303815290604052915050610f4f565b83836040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016107a19291906137d5565b60005b818110156117df573683838381811061170b5761170b612faf565b905060200281019061171d91906137e9565b905061173961172f6020830183612ef0565b6020830135610aef565b61174357506117d7565b3063d045a0dc60c08301358360a081013561176261010083018361381d565b611773610100890160e08a01612e77565b6117816101208a018a61381d565b6040518963ffffffff1660e01b81526004016117a39796959493929190613864565b6000604051808303818588803b1580156117bc57600080fd5b505af11580156117d0573d6000803e3d6000fd5b5050505050505b6001016116f0565b50336001600160a01b0316638e9e70996040518163ffffffff1660e01b8152600401600060405180830381865afa15801561181e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184691908101906138ed565b6040517f8351eea70000000000000000000000000000000000000000000000000000000081526004016107a19190612d40565b611881611c55565b6040517fca5eb5e10000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063ca5eb5e190602401600060405180830381600087803b1580156118fd57600080fd5b505af1158015611911573d6000803e3d6000fd5b5050505050565b333014611951576040517f14d4a4e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61082a8787878787878761081b565b611968611c55565b600280547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0383169081179091556040519081527fd48d879cef83a1c0bdda516f27b13ddb1b3f8bbac1c9e1511bb2a659c242776090602001610fc1565b6119d6611c55565b600280547fffffffffffffffffffff0000ffffffffffffffffffffffffffffffffffffffff167401000000000000000000000000000000000000000061ffff8416908102919091179091556040519081527f8f1145f51954bc9512a08693182e170a57b63ca4f6acc321b87c526970f4c01790602001610fc1565b611a59611c55565b6001600160a01b038116611aef576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201527f646472657373000000000000000000000000000000000000000000000000000060648201526084016107a1565b611af881612198565b50565b6000602082018035906001908390611b139086612ef0565b63ffffffff1681526020810191909152604001600020541492915050565b63ffffffff811660009081526001602052604081205480610b08576040517ff6ff4fb700000000000000000000000000000000000000000000000000000000815263ffffffff841660048201526024016107a1565b6000611b92868661242d565b805190915060005b81811015611c49576000838281518110611bb657611bb6612faf565b60200260200101519050611bcd8160000151611cc9565b6001600160a01b0316639561b12f611be860208e018e612ef0565b83602001516040518363ffffffff1660e01b8152600401611c0a92919061395b565b600060405180830381600087803b158015611c2457600080fd5b505af1158015611c38573d6000803e3d6000fd5b505060019093019250611b9a915050565b50505050505050505050565b6000546001600160a01b03163314610f40576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016107a1565b61ffff81166000908152600460205260409020546001600160a01b031680611d1d576040517f8b6fecb700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b63ffffffff8216600081815260016020908152604091829020849055815192835282018390527f238399d427b947898edb290f5ff0f9109849b1c3ba196a42e35f00c50a54b98b9101610cdc565b81516060906000611d836008600461397a565b611d909060ff1685613993565b611d9c6002600161397a565b611da99060ff1684613993565b611db49060016139aa565b611dbe91906139aa565b9050611ddd604051806040016040528060608152602001600081525090565b611de781836126ba565b50611dfb611df484612731565b82906127c8565b5060005b83811015611ed9576000878281518110611e1b57611e1b612faf565b60209081029190910101518051909150611e3c90849061ffff166002612831565b50602081015151611e56611e4f82612731565b85906127c8565b5060005b81811015611ece57600083602001518281518110611e7a57611e7a612faf565b60200260200101519050611ea7816000015163ffffffff16600460ff16886128319092919063ffffffff16565b506020810151611ec490879067ffffffffffffffff166008612831565b5050600101611e5a565b505050600101611dff565b505195945050505050565b6060600082611ef2856128a6565b611efc91906139bd565b63ffffffff85166000908152600660209081526040808320600384529091529020805491925090611f2c90613393565b80601f0160208091040260200160405190810160405280929190818152602001828054611f5890613393565b8015611fa55780601f10611f7a57610100808354040283529160200191611fa5565b820191906000526020600020905b815481529060010190602001808311611f8857829003601f168201915b505050505091508151600014611fe5578160016011600184604051602001611fd19594939291906139e9565b604051602081830303815290604052610f4f565b6040517e0300000000000000000000000000000000000000000000000000000000000060208201527f0100000000000000000000000000000000000000000000000000000000000000602282018190527e11000000000000000000000000000000000000000000000000000000000000602383015260258201527fffffffffffffffffffffffffffffffff00000000000000000000000000000000608083901b166026820152603601604051602081830303815290604052949350505050565b6120ad612a5b565b60006120bc8460000151612908565b90507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316632637a450826040518060a001604052808b63ffffffff16815260200161210e8c611b31565b81526020018a815260200189815260200160008960200151111515815250866040518463ffffffff1660e01b815260040161214a929190613a9a565b60806040518083038185885af1158015612168573d6000803e3d6000fd5b50505050506040513d601f19601f8201168201806040525081019061218d9190613b61565b979650505050505050565b600080546001600160a01b038381167fffffffffffffffffffffffff0000000000000000000000000000000000000000831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60408051808201909152600080825260208201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663ddc28c586040518060a001604052808863ffffffff16815260200161226389611b31565b8152602001878152602001868152602001851515815250306040518363ffffffff1660e01b8152600401612298929190613a9a565b6040805180830381865afa1580156122b4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122d89190613bab565b95945050505050565b60005b81518110156123b85761231382828151811061230257612302612faf565b6020026020010151604001516123e8565b81818151811061232557612325612faf565b6020026020010151604001516006600084848151811061234757612347612faf565b60200260200101516000015163ffffffff1663ffffffff168152602001908152602001600020600084848151811061238157612381612faf565b60200260200101516020015161ffff1661ffff16815260200190815260200160002090816123af9190613c14565b506001016122e4565b507fbe4864a8e820971c0247f5992e2da559595f7bf076a21cb5928d443d2a13b67481604051610fc19190613cd4565b600281015161ffff8116600314610a4657816040517f9a6d49cd0000000000000000000000000000000000000000000000000000000081526004016107a19190612d40565b606060008383600081811061244457612444612faf565b919091013560f81c915081905067ffffffffffffffff81111561246957612469612f80565b6040519080825280602002602001820160405280156124af57816020015b6040805180820190915260008152606060208201528152602001906001900390816124875790505b509150600160005b8260ff168110156126785760008683876124d26002836139aa565b95506124e19286929190613783565b6124ea91613d7d565b60f01c9050600087878581811061250357612503612faf565b919091013560f81c915061251a90506001856139aa565b935060008160ff1667ffffffffffffffff81111561253a5761253a612f80565b60405190808252806020026020018201604052801561257f57816020015b60408051808201909152600080825260208201528152602001906001900390816125585790505b50905060005b8260ff168110156126365760008a878b6125a06004836139aa565b99506125af928a929190613783565b6125b891613dc3565b60e01c905060008b888c6125cd6008836139aa565b9a506125dc928b929190613783565b6125e591613e09565b60c01c905060405180604001604052808363ffffffff1681526020018267ffffffffffffffff1681525084848151811061262157612621612faf565b60209081029190910101525050600101612585565b5060405180604001604052808461ffff1681526020018281525087858151811061266257612662612faf565b60209081029190910101525050506001016124b7565b508084146126b2576040517fa7272c6200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505092915050565b6040805180820190915260608152600060208201526126da602083613e4f565b15612702576126ea602083613e4f565b6126f5906020613e8a565b6126ff90836139aa565b91505b60208084018390526040518085526000815290818401018181101561272657600080fd5b604052509192915050565b600060ff8211156127c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203860448201527f206269747300000000000000000000000000000000000000000000000000000060648201526084016107a1565b5090565b60408051808201909152606081526000602082015282515160006127ed8260016139aa565b90508460200151821061280e5761280e85612809836002613993565b612945565b8451602083820101858153508051821115612827578181525b5093949350505050565b604080518082019091526060815260006020820152835151600061285582856139aa565b905085602001518111156128725761287286612809836002613993565b60006001856101000a039050865182810187831982511617815250805183111561289a578281525b50959695505050505050565b63ffffffff81166000908152600760205260408120546fffffffffffffffffffffffffffffffff1690819003611d1d576040517fc960f36b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008134146127c4576040517f9f7041200000000000000000000000000000000000000000000000000000000081523460048201526024016107a1565b815161295183836126ba565b5061295c8382612962565b50505050565b6040805180820190915260608152600060208201526129838383845161298a565b9392505050565b60408051808201909152606081526000602082015282518211156129ad57600080fd5b83515160006129bc84836139aa565b905085602001518111156129d9576129d986612809836002613993565b8551805183820160200191600091808511156129f3578482525b505050602086015b60208610612a335780518252612a126020836139aa565b9150612a1f6020826139aa565b9050612a2c602087613e8a565b95506129fb565b51815160001960208890036101000a0190811690199190911617905250849150509392505050565b604051806060016040528060008019168152602001600067ffffffffffffffff168152602001612a9e604051806040016040528060008152602001600081525090565b905290565b600060608284031215612ab557600080fd5b50919050565b60008083601f840112612acd57600080fd5b50813567ffffffffffffffff811115612ae557600080fd5b602083019150836020828501011115612afd57600080fd5b9250929050565b80356001600160a01b0381168114611d1d57600080fd5b600080600080600080600060e0888a031215612b3657600080fd5b612b408989612aa3565b965060608801359550608088013567ffffffffffffffff80821115612b6457600080fd5b612b708b838c01612abb565b9097509550859150612b8460a08b01612b04565b945060c08a0135915080821115612b9a57600080fd5b50612ba78a828b01612abb565b989b979a50959850939692959293505050565b60008083601f840112612bcc57600080fd5b50813567ffffffffffffffff811115612be457600080fd5b6020830191508360208260051b8501011115612afd57600080fd5b60008060008060408587031215612c1557600080fd5b843567ffffffffffffffff80821115612c2d57600080fd5b612c3988838901612bba565b90965094506020870135915080821115612c5257600080fd5b50612c5f87828801612abb565b95989497509550505050565b63ffffffff81168114611af857600080fd5b60008060408385031215612c9057600080fd5b8235612c9b81612c6b565b946020939093013593505050565b803561ffff81168114611d1d57600080fd5b60008060408385031215612cce57600080fd5b8235612cd981612c6b565b9150612ce760208401612ca9565b90509250929050565b60005b83811015612d0b578181015183820152602001612cf3565b50506000910152565b60008151808452612d2c816020860160208601612cf0565b601f01601f19169290920160200192915050565b6020815260006129836020830184612d14565b600060208284031215612d6557600080fd5b61298382612ca9565b60008060408385031215612d8157600080fd5b8235612d8c81612c6b565b915060208301356fffffffffffffffffffffffffffffffff81168114612db157600080fd5b809150509250929050565b600080600060408486031215612dd157600080fd5b8335612ddc81612c6b565b9250602084013567ffffffffffffffff811115612df857600080fd5b612e0486828701612bba565b9497909650939450505050565b60008060008060a08587031215612e2757600080fd5b612e318686612aa3565b9350606085013567ffffffffffffffff811115612e4d57600080fd5b612e5987828801612abb565b9094509250612e6c905060808601612b04565b905092959194509250565b600060208284031215612e8957600080fd5b61298382612b04565b60008060408385031215612ea557600080fd5b612cd983612b04565b60008060208385031215612ec157600080fd5b823567ffffffffffffffff811115612ed857600080fd5b612ee485828601612bba565b90969095509350505050565b600060208284031215612f0257600080fd5b813561298381612c6b565b60008060008060608587031215612f2357600080fd5b8435612f2e81612c6b565b9350612f3c60208601612ca9565b9250604085013567ffffffffffffffff811115612f5857600080fd5b612c5f87828801612abb565b600060608284031215612f7657600080fd5b6129838383612aa3565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600082357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc183360301811261301257600080fd5b9190910192915050565b6000808335601e1984360301811261303357600080fd5b83018035915067ffffffffffffffff82111561304e57600080fd5b6020019150606081023603821315612afd57600080fd5b67ffffffffffffffff81168114611af857600080fd5b8183526000602080850194508260005b858110156130eb57813561309e81612c6b565b63ffffffff168752818301356130b381613065565b67ffffffffffffffff90811688850152604090838201356130d381613065565b1690880152606096870196919091019060010161308b565b509495945050505050565b63ffffffff841681526040602082015260006122d860408301848661307b565b6040805190810167ffffffffffffffff8111828210171561313957613139612f80565b60405290565b6040516060810167ffffffffffffffff8111828210171561313957613139612f80565b604051601f8201601f1916810167ffffffffffffffff8111828210171561318b5761318b612f80565b604052919050565b600067ffffffffffffffff8211156131ad576131ad612f80565b5060051b60200190565b600060208083850312156131ca57600080fd5b825167ffffffffffffffff8111156131e157600080fd5b8301601f810185136131f257600080fd5b805161320561320082613193565b613162565b81815260069190911b8201830190838101908783111561322457600080fd5b928401925b8284101561218d57604084890312156132425760008081fd5b61324a613116565b845161325581612c6b565b81528486015161326481613065565b8187015282526040939093019290840190613229565b60008151808452602080850194506020840160005b838110156130eb578151805163ffffffff16885283015167ffffffffffffffff16838801526040909601959082019060010161328f565b818352818160208501375060006020828401015260006020601f19601f840116840101905092915050565b600060408083016040845280875180835260608601915060608160051b87010192506020808a0160005b8381101561337c578886037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa00185528151805161ffff1687528301518387018890526133698888018261327a565b965050938201939082019060010161331b565b50508684038188015250505061218d8186886132c6565b600181811c908216806133a757607f821691505b602082108103612ab5577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000808335601e198436030181126133f757600080fd5b83018035915067ffffffffffffffff82111561341257600080fd5b6020019150600681901b3603821315612afd57600080fd5b8183526000602080850194508260005b858110156130eb57813561344d81612c6b565b63ffffffff1687528183013561346281613065565b67ffffffffffffffff1687840152604096870196919091019060010161343a565b63ffffffff841681526040602082015260006122d860408301848661342a565b60408082528181018590526000906060600587901b8401810190840188845b898110156135a3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa087850301835281357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc18c360301811261352357600080fd5b8b0161ffff61353182612ca9565b168552602080820135601e1983360301811261354c57600080fd5b90910181810191903567ffffffffffffffff81111561356a57600080fd5b8060061b360383131561357c57600080fd5b878288015261358e888801828561342a565b965050938401939290920191506001016134c2565b50505083810360208501526115068186886132c6565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600060001982036135fb576135fb6135b9565b5060010190565b6fffffffffffffffffffffffffffffffff81811683821601908082111561362b5761362b6135b9565b5092915050565b60006020828403121561364457600080fd5b813561298381613065565b600067ffffffffffffffff82111561366957613669612f80565b50601f01601f191660200190565b600061368561320084613193565b80848252602080830192508560051b8501368111156136a357600080fd5b855b8181101561377757803567ffffffffffffffff808211156136c65760008081fd5b8189019150606082360312156136dc5760008081fd5b6136e461313f565b82356136ef81612c6b565b81526136fc838701612ca9565b86820152604080840135838111156137145760008081fd5b939093019236601f85011261372b57600092508283fd5b8335925061373b6132008461364f565b83815236888587010111156137505760008081fd5b838886018983013760009381018801939093528101919091528652509382019382016136a5565b50919695505050505050565b6000808585111561379357600080fd5b838611156137a057600080fd5b5050820193919092039150565b600084516137bf818460208901612cf0565b8201838582376000930192835250909392505050565b602081526000610f4f6020830184866132c6565b600082357ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffec183360301811261301257600080fd5b6000808335601e1984360301811261383457600080fd5b83018035915067ffffffffffffffff82111561384f57600080fd5b602001915036819003821315612afd57600080fd5b6000883561387181612c6b565b63ffffffff16825260208981013590830152604089013561389181613065565b67ffffffffffffffff811660408401525087606083015260e060808301526138bd60e0830187896132c6565b6001600160a01b03861660a084015282810360c08401526138df8185876132c6565b9a9950505050505050505050565b6000602082840312156138ff57600080fd5b815167ffffffffffffffff81111561391657600080fd5b8201601f8101841361392757600080fd5b80516139356132008261364f565b81815285602083850101111561394a57600080fd5b6122d8826020830160208601612cf0565b63ffffffff83168152604060208201526000610f4f604083018461327a565b60ff8181168382160190811115610b0857610b086135b9565b8082028115828204841417610b0857610b086135b9565b80820180821115610b0857610b086135b9565b6fffffffffffffffffffffffffffffffff8181168382160280821691908281146126b2576126b26135b9565b600086516139fb818460208b01612cf0565b60f896871b7fff000000000000000000000000000000000000000000000000000000000000009081169390910192835260f09590951b7fffff000000000000000000000000000000000000000000000000000000000000166001830152509190931b909116600382015260809190911b7fffffffffffffffffffffffffffffffff00000000000000000000000000000000166004820152601401919050565b6040815263ffffffff8351166040820152602083015160608201526000604084015160a06080840152613ad060e0840182612d14565b905060608501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08483030160a0850152613b0b8282612d14565b60809690960151151560c08501525050506001600160a01b039190911660209091015290565b600060408284031215613b4357600080fd5b613b4b613116565b9050815181526020820151602082015292915050565b600060808284031215613b7357600080fd5b613b7b61313f565b825181526020830151613b8d81613065565b6020820152613b9f8460408501613b31565b60408201529392505050565b600060408284031215613bbd57600080fd5b6129838383613b31565b601f821115613c0f576000816000526020600020601f850160051c81016020861015613bf05750805b601f850160051c820191505b81811015610f2657828155600101613bfc565b505050565b815167ffffffffffffffff811115613c2e57613c2e612f80565b613c4281613c3c8454613393565b84613bc7565b602080601f831160018114613c775760008415613c5f5750858301515b600019600386901b1c1916600185901b178555610f26565b600085815260208120601f198616915b82811015613ca657888601518255948401946001909101908401613c87565b5085821015613cc45787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600060208083018184528085518083526040925060408601915060408160051b87010184880160005b83811015613d6f578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805163ffffffff1684528781015161ffff16888501528601516060878501819052613d5b81860183612d14565b968901969450505090860190600101613cfd565b509098975050505050505050565b7fffff00000000000000000000000000000000000000000000000000000000000081358181169160028510156126b25760029490940360031b84901b1690921692915050565b7fffffffff0000000000000000000000000000000000000000000000000000000081358181169160048510156126b25760049490940360031b84901b1690921692915050565b7fffffffffffffffff00000000000000000000000000000000000000000000000081358181169160088510156126b25760089490940360031b84901b1690921692915050565b600082613e85577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500690565b81810381811115610b0857610b086135b956fea264697066735822122051520a816d2a2f02793cef35cb0a70d4725af327ae80667b38c63c62db77038964736f6c63430008160033",
1261
+ "linkReferences": {},
1262
+ "deployedLinkReferences": {}
1263
+ }