forked from balancer/balancer-deployments
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathOmniVotingEscrowChild.json
909 lines (909 loc) · 58.2 KB
/
OmniVotingEscrowChild.json
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
{
"_format": "hh-sol-artifact-1",
"contractName": "OmniVotingEscrowChild",
"sourceName": "contracts/OmniVotingEscrowChild.sol",
"abi": [
{
"inputs": [
{
"internalType": "address",
"name": "_lzEndpoint",
"type": "address"
},
{
"internalType": "address",
"name": "_delegationHook",
"type": "address"
}
],
"stateMutability": "nonpayable",
"type": "constructor"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint16",
"name": "_srcChainId",
"type": "uint16"
},
{
"indexed": false,
"internalType": "bytes",
"name": "_srcAddress",
"type": "bytes"
},
{
"indexed": false,
"internalType": "uint64",
"name": "_nonce",
"type": "uint64"
},
{
"indexed": false,
"internalType": "bytes",
"name": "_payload",
"type": "bytes"
},
{
"indexed": false,
"internalType": "bytes",
"name": "_reason",
"type": "bytes"
}
],
"name": "MessageFailed",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "previousOwner",
"type": "address"
},
{
"indexed": true,
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "OwnershipTransferred",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint16",
"name": "_srcChainId",
"type": "uint16"
},
{
"indexed": false,
"internalType": "bytes",
"name": "_srcAddress",
"type": "bytes"
},
{
"indexed": false,
"internalType": "uint64",
"name": "_nonce",
"type": "uint64"
},
{
"indexed": false,
"internalType": "bytes32",
"name": "_payloadHash",
"type": "bytes32"
}
],
"name": "RetryMessageSuccess",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint16",
"name": "_dstChainId",
"type": "uint16"
},
{
"indexed": false,
"internalType": "uint16",
"name": "_type",
"type": "uint16"
},
{
"indexed": false,
"internalType": "uint256",
"name": "_minDstGas",
"type": "uint256"
}
],
"name": "SetMinDstGas",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "precrime",
"type": "address"
}
],
"name": "SetPrecrime",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint16",
"name": "_remoteChainId",
"type": "uint16"
},
{
"indexed": false,
"internalType": "bytes",
"name": "_path",
"type": "bytes"
}
],
"name": "SetTrustedRemote",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint16",
"name": "_remoteChainId",
"type": "uint16"
},
{
"indexed": false,
"internalType": "bytes",
"name": "_remoteAddress",
"type": "bytes"
}
],
"name": "SetTrustedRemoteAddress",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint16",
"name": "srcChainId",
"type": "uint16"
},
{
"components": [
{
"internalType": "int128",
"name": "bias",
"type": "int128"
},
{
"internalType": "int128",
"name": "slope",
"type": "int128"
},
{
"internalType": "uint256",
"name": "ts",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blk",
"type": "uint256"
}
],
"indexed": false,
"internalType": "struct IVotingEscrow.Point",
"name": "totalSupplyPoint",
"type": "tuple"
}
],
"name": "TotalSupplyFromChain",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint16",
"name": "srcChainId",
"type": "uint16"
},
{
"indexed": false,
"internalType": "address",
"name": "user",
"type": "address"
},
{
"components": [
{
"internalType": "int128",
"name": "bias",
"type": "int128"
},
{
"internalType": "int128",
"name": "slope",
"type": "int128"
},
{
"internalType": "uint256",
"name": "ts",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blk",
"type": "uint256"
}
],
"indexed": false,
"internalType": "struct IVotingEscrow.Point",
"name": "userPoint",
"type": "tuple"
},
{
"components": [
{
"internalType": "int128",
"name": "bias",
"type": "int128"
},
{
"internalType": "int128",
"name": "slope",
"type": "int128"
},
{
"internalType": "uint256",
"name": "ts",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blk",
"type": "uint256"
}
],
"indexed": false,
"internalType": "struct IVotingEscrow.Point",
"name": "totalSupplyPoint",
"type": "tuple"
}
],
"name": "UserBalFromChain",
"type": "event"
},
{
"inputs": [
{
"internalType": "address",
"name": "_user",
"type": "address"
}
],
"name": "balanceOf",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "delegationHook",
"outputs": [
{
"internalType": "contract IL2LayerZeroDelegation",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "",
"type": "bytes"
},
{
"internalType": "uint64",
"name": "",
"type": "uint64"
}
],
"name": "failedMessages",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_srcChainId",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "_srcAddress",
"type": "bytes"
}
],
"name": "forceResumeReceive",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_version",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "_chainId",
"type": "uint16"
},
{
"internalType": "address",
"name": "",
"type": "address"
},
{
"internalType": "uint256",
"name": "_configType",
"type": "uint256"
}
],
"name": "getConfig",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"components": [
{
"internalType": "int128",
"name": "bias",
"type": "int128"
},
{
"internalType": "int128",
"name": "slope",
"type": "int128"
},
{
"internalType": "uint256",
"name": "ts",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blk",
"type": "uint256"
}
],
"internalType": "struct IVotingEscrow.Point",
"name": "_point",
"type": "tuple"
}
],
"name": "getPointValue",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_remoteChainId",
"type": "uint16"
}
],
"name": "getTrustedRemoteAddress",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_srcChainId",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "_srcAddress",
"type": "bytes"
}
],
"name": "isTrustedRemote",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "locked__end",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "lzEndpoint",
"outputs": [
{
"internalType": "contract ILayerZeroEndpoint",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_srcChainId",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "_srcAddress",
"type": "bytes"
},
{
"internalType": "uint64",
"name": "_nonce",
"type": "uint64"
},
{
"internalType": "bytes",
"name": "_payload",
"type": "bytes"
}
],
"name": "lzReceive",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"name": "minDstGasLookup",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_srcChainId",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "_srcAddress",
"type": "bytes"
},
{
"internalType": "uint64",
"name": "_nonce",
"type": "uint64"
},
{
"internalType": "bytes",
"name": "_payload",
"type": "bytes"
}
],
"name": "nonblockingLzReceive",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "owner",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "precrime",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "renounceOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_srcChainId",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "_srcAddress",
"type": "bytes"
},
{
"internalType": "uint64",
"name": "_nonce",
"type": "uint64"
},
{
"internalType": "bytes",
"name": "_payload",
"type": "bytes"
}
],
"name": "retryMessage",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_version",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "_chainId",
"type": "uint16"
},
{
"internalType": "uint256",
"name": "_configType",
"type": "uint256"
},
{
"internalType": "bytes",
"name": "_config",
"type": "bytes"
}
],
"name": "setConfig",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_dstChainId",
"type": "uint16"
},
{
"internalType": "uint16",
"name": "_packetType",
"type": "uint16"
},
{
"internalType": "uint256",
"name": "_minGas",
"type": "uint256"
}
],
"name": "setMinDstGas",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_precrime",
"type": "address"
}
],
"name": "setPrecrime",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_version",
"type": "uint16"
}
],
"name": "setReceiveVersion",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_version",
"type": "uint16"
}
],
"name": "setSendVersion",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_srcChainId",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "_path",
"type": "bytes"
}
],
"name": "setTrustedRemote",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "_remoteChainId",
"type": "uint16"
},
{
"internalType": "bytes",
"name": "_remoteAddress",
"type": "bytes"
}
],
"name": "setTrustedRemoteAddress",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "totalSupply",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalSupplyPoint",
"outputs": [
{
"internalType": "int128",
"name": "bias",
"type": "int128"
},
{
"internalType": "int128",
"name": "slope",
"type": "int128"
},
{
"internalType": "uint256",
"name": "ts",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blk",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newOwner",
"type": "address"
}
],
"name": "transferOwnership",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint16",
"name": "",
"type": "uint16"
}
],
"name": "trustedRemoteLookup",
"outputs": [
{
"internalType": "bytes",
"name": "",
"type": "bytes"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "userPoints",
"outputs": [
{
"internalType": "int128",
"name": "bias",
"type": "int128"
},
{
"internalType": "int128",
"name": "slope",
"type": "int128"
},
{
"internalType": "uint256",
"name": "ts",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "blk",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
}
],
"bytecode": "0x60c0604052600a805463ffffffff1916620100001790553480156200002357600080fd5b50604051620027e5380380620027e583398101604081905262000046916200015e565b81806200005333620000f1565b6001600160a01b03908116608052821615159050620000de5760405162461bcd60e51b815260206004820152603460248201527f4f6d6e69566f74696e67457363726f774368696c643a2064656c65676174696f60448201527f6e20686f6f6b2063616e6e6f7420626520307830000000000000000000000000606482015260840160405180910390fd5b6001600160a01b031660a0525062000196565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b03811681146200015957600080fd5b919050565b600080604083850312156200017257600080fd5b6200017d8362000141565b91506200018d6020840162000141565b90509250929050565b60805160a0516125f1620001f460003960008181610376015281816118e601526119d80152600081816104d20152818161066b015281816108ba0152818161094301528181610abd01528181610f27015261136901526125f16000f3fe6080604052600436106101c15760003560e01c80638da5cb5b116100f7578063cbed8b9c11610095578063f2fde38b11610064578063f2fde38b14610587578063f4182acb146105a7578063f50ddbc7146105fd578063f5ecbdbc1461064857600080fd5b8063cbed8b9c14610514578063d1deba1f14610534578063df2a5b3b14610547578063eb8d72b71461056757600080fd5b8063a6c3d165116100d1578063a6c3d16514610473578063adc6358914610493578063b353aaa7146104c0578063baf3292d146104f457600080fd5b80638da5cb5b14610415578063950c8a74146104335780639f38369a1461045357600080fd5b80635b8c41e611610164578063715018a61161013e578063715018a61461034f57806374d2495f146103645780637533d788146103b05780638cfd8f5c146103dd57600080fd5b80635b8c41e6146102c057806366ad5c8a1461030f57806370a082311461032f57600080fd5b806318160ddd116101a057806318160ddd14610228578063378ef708146102505780633d8b38f61461027057806342d65a8d146102a057600080fd5b80621d3567146101c657806307e0db17146101e857806310ddb13714610208575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611bea565b610668565b005b3480156101f457600080fd5b506101e6610203366004611c7f565b610899565b34801561021457600080fd5b506101e6610223366004611c7f565b610922565b34801561023457600080fd5b5061023d61097a565b6040519081526020015b60405180910390f35b34801561025c57600080fd5b5061023d61026b366004611cf1565b6109c0565b34801561027c57600080fd5b5061029061028b366004611d65565b6109d1565b6040519015158152602001610247565b3480156102ac57600080fd5b506101e66102bb366004611d65565b610a9e565b3480156102cc57600080fd5b5061023d6102db366004611de0565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561031b57600080fd5b506101e661032a366004611bea565b610b24565b34801561033b57600080fd5b5061023d61034a366004611e97565b610c00565b34801561035b57600080fd5b506101e6610c5b565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610247565b3480156103bc57600080fd5b506103d06103cb366004611c7f565b610c6f565b6040516102479190611f10565b3480156103e957600080fd5b5061023d6103f8366004611f23565b600260209081526000928352604080842090915290825290205481565b34801561042157600080fd5b506000546001600160a01b0316610398565b34801561043f57600080fd5b50600354610398906001600160a01b031681565b34801561045f57600080fd5b506103d061046e366004611c7f565b610d09565b34801561047f57600080fd5b506101e661048e366004611d65565b610e19565b34801561049f57600080fd5b5061023d6104ae366004611e97565b60056020526000908152604090205481565b3480156104cc57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b506101e661050f366004611e97565b610eac565b34801561052057600080fd5b506101e661052f366004611f5c565b610f08565b6101e6610542366004611bea565b610f9d565b34801561055357600080fd5b506101e6610562366004611fce565b6111b3565b34801561057357600080fd5b506101e6610582366004611d65565b611265565b34801561059357600080fd5b506101e66105a2366004611e97565b6112bf565b3480156105b357600080fd5b506007546008546009546105d592600f81810b93600160801b909204900b9184565b60408051600f95860b81529390940b6020840152928201526060810191909152608001610247565b34801561060957600080fd5b506105d5610618366004611e97565b600660205260009081526040902080546001820154600290920154600f82810b93600160801b909304900b919084565b34801561065457600080fd5b506103d061066336600461200f565b611338565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106e55760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461070390612060565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90612060565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050805186869050148015610797575060008151115b80156107bf5750805160208201206040516107b5908890889061209b565b6040518091039020145b61081a5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106dc565b6108908787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506113e992505050565b50505050505050565b6108a16114f3565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505050565b61092a6114f3565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016108ed565b60408051608081018252600754600f81810b8352600160801b909104900b60208201526008549181019190915260095460608201526000906109bb9061154d565b905090565b60006109cb8261154d565b92915050565b61ffff8316600090815260016020526040812080548291906109f290612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1e90612060565b8015610a6b5780601f10610a4057610100808354040283529160200191610a6b565b820191906000526020600020905b815481529060010190602001808311610a4e57829003601f168201915b505050505090508383604051610a8292919061209b565b60405180910390208180519060200120149150505b9392505050565b610aa66114f3565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610af6908690869086906004016120d4565b600060405180830381600087803b158015610b1057600080fd5b505af1158015610890573d6000803e3d6000fd5b333014610b825760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106dc565b610bf88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506115a592505050565b505050505050565b6001600160a01b038116600090815260066020908152604080832081516080810183528154600f81810b8352600160801b909104900b938101939093526001810154918301919091526002015460608201526109cb9061154d565b610c636114f3565b610c6d6000611646565b565b60016020526000908152604090208054610c8890612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612060565b8015610d015780601f10610cd657610100808354040283529160200191610d01565b820191906000526020600020905b815481529060010190602001808311610ce457829003601f168201915b505050505081565b61ffff8116600090815260016020526040812080546060929190610d2c90612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612060565b8015610da55780601f10610d7a57610100808354040283529160200191610da5565b820191906000526020600020905b815481529060010190602001808311610d8857829003601f168201915b50505050509050805160001415610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106dc565b610a97600060148351610e119190612108565b839190611696565b610e216114f3565b818130604051602001610e369392919061211f565b60408051601f1981840301815291815261ffff85166000908152600160209081529190208251610e6b93919290910190611a69565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610e9f939291906120d4565b60405180910390a1505050565b610eb46114f3565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b610f106114f3565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610f649088908890889088908890600401612145565b600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050505050505050565b61ffff86166000908152600460205260408082209051610fc0908890889061209b565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806110405760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106dc565b80838360405161105192919061209b565b6040518091039020146110b05760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106dc565b61ffff871660009081526004602052604080822090516110d3908990899061209b565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f8801829004820283018201905286825261116b918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506115a592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516111a295949392919061217e565b60405180910390a150505050505050565b6111bb6114f3565b600081116112035760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106dc565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610e9f565b61126d6114f3565b61ffff8316600090815260016020526040902061128b908383611aed565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610e9f939291906120d4565b6112c76114f3565b6001600160a01b03811661132c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b61133581611646565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906121b9565b95945050505050565b60008061144c5a60966366ad5c8a60e01b898989896040516024016114119493929190612226565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152309291906117a3565b9150915081610bf8578280519060200120600460008861ffff1661ffff168152602001908152602001600020866040516114869190612264565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906114e39088908890889088908790612280565b60405180910390a1505050505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b6040810151600090829082906115639042612108565b826020015161157291906122de565b825161157e919061237c565b9050600081600f0b1261159a57806001600160801b031661159d565b60005b949350505050565b6020810151600a5461ffff808316911614156115ca576115c5858361182d565b61091b565b600a5461ffff828116620100009092041614156115eb576115c58583611978565b60405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207060448201526961636b6574207479706560b01b60648201526084016106dc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816116a481601f6123cc565b10156116e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106dc565b6116ed82846123cc565b845110156117315760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106dc565b606082158015611750576040519150600082526020820160405261179a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611789578051835260209283019201611771565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b038111156117c8576117c8611c9c565b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611814578692505b828152826000602083013e909890975095505050505050565b60008060008084806020019051810190611847919061245d565b6001600160a01b03848116600081815260056020908152604080832088905560068252918290208651878301516001600160801b03918216600160801b91831682021783558885015160018401556060808a01516002909401939093558751938801519382169390911602919091176007558482015160085584015160095551636f8985ff60e11b8152600481019190915294995092975090955093507f000000000000000000000000000000000000000000000000000000000000000016915063df130bfe90602401600060405180830381600087803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050507fae0e70d8538c5776f9975183d965b1722a0e8fa0256c8301cb707f64a9821f83868584846040516114e394939291906124c4565b60008180602001905181019061198e9190612546565b805160208201516001600160801b03908116600160801b02911617600755604080820151600855606082015160095580516396345fb560e01b815290519193506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506396345fb591600480830192600092919082900301818387803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b505050507f9048da34d2dac99755410b6e83e1eaab692909ff964f5bc920756ab49c73df9a8382604051610e9f92919061257c565b828054611a7590612060565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611b61565b5090565b828054611af990612060565b90600052602060002090601f016020900481019282611b1b5760008555611add565b82601f10611b345782800160ff19823516178555611add565b82800160010185558215611add579182015b82811115611add578235825591602001919060010190611b46565b5b80821115611ae95760008155600101611b62565b61ffff8116811461133557600080fd5b60008083601f840112611b9857600080fd5b5081356001600160401b03811115611baf57600080fd5b602083019150836020828501011115611bc757600080fd5b9250929050565b80356001600160401b0381168114611be557600080fd5b919050565b60008060008060008060808789031215611c0357600080fd5b8635611c0e81611b76565b955060208701356001600160401b0380821115611c2a57600080fd5b611c368a838b01611b86565b9097509550859150611c4a60408a01611bce565b94506060890135915080821115611c6057600080fd5b50611c6d89828a01611b86565b979a9699509497509295939492505050565b600060208284031215611c9157600080fd5b8135610a9781611b76565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cda57611cda611c9c565b604052919050565b80600f0b811461133557600080fd5b600060808284031215611d0357600080fd5b604051608081018181106001600160401b0382111715611d2557611d25611c9c565b6040528235611d3381611ce2565b81526020830135611d4381611ce2565b6020820152604083810135908201526060928301359281019290925250919050565b600080600060408486031215611d7a57600080fd5b8335611d8581611b76565b925060208401356001600160401b03811115611da057600080fd5b611dac86828701611b86565b9497909650939450505050565b60006001600160401b03821115611dd257611dd2611c9c565b50601f01601f191660200190565b600080600060608486031215611df557600080fd5b8335611e0081611b76565b925060208401356001600160401b03811115611e1b57600080fd5b8401601f81018613611e2c57600080fd5b8035611e3f611e3a82611db9565b611cb2565b818152876020838501011115611e5457600080fd5b81602084016020830137600060208383010152809450505050611e7960408501611bce565b90509250925092565b6001600160a01b038116811461133557600080fd5b600060208284031215611ea957600080fd5b8135610a9781611e82565b60005b83811015611ecf578181015183820152602001611eb7565b83811115611ede576000848401525b50505050565b60008151808452611efc816020860160208601611eb4565b601f01601f19169290920160200192915050565b602081526000610a976020830184611ee4565b60008060408385031215611f3657600080fd5b8235611f4181611b76565b91506020830135611f5181611b76565b809150509250929050565b600080600080600060808688031215611f7457600080fd5b8535611f7f81611b76565b94506020860135611f8f81611b76565b93506040860135925060608601356001600160401b03811115611fb157600080fd5b611fbd88828901611b86565b969995985093965092949392505050565b600080600060608486031215611fe357600080fd5b8335611fee81611b76565b92506020840135611ffe81611b76565b929592945050506040919091013590565b6000806000806080858703121561202557600080fd5b843561203081611b76565b9350602085013561204081611b76565b9250604085013561205081611e82565b9396929550929360600135925050565b600181811c9082168061207457607f821691505b6020821081141561209557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006113e06040830184866120ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561211a5761211a6120f2565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff8088168352808716602084015250846040830152608060608301526121736080830184866120ab565b979650505050505050565b61ffff8616815260806020820152600061219c6080830186886120ab565b6001600160401b0394909416604083015250606001529392505050565b6000602082840312156121cb57600080fd5b81516001600160401b038111156121e157600080fd5b8201601f810184136121f257600080fd5b8051612200611e3a82611db9565b81815285602083850101111561221557600080fd5b6113e0826020830160208601611eb4565b61ffff851681526080602082015260006122436080830186611ee4565b6001600160401b038516604084015282810360608401526121738185611ee4565b60008251612276818460208701611eb4565b9190910192915050565b61ffff8616815260a06020820152600061229d60a0830187611ee4565b6001600160401b038616604084015282810360608401526122be8186611ee4565b905082810360808401526122d28185611ee4565b98975050505050505050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561230e5761230e6120f2565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561233a5761233a6120f2565b60008712925085820587128484161615612356576123566120f2565b8585058712818416161561236c5761236c6120f2565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156123a7576123a76120f2565b8160016001607f1b030183138116156123c2576123c26120f2565b5090039392505050565b600082198211156123df576123df6120f2565b500190565b6000608082840312156123f657600080fd5b604051608081018181106001600160401b038211171561241857612418611c9c565b8060405250809150825161242b81611ce2565b8152602083015161243b81611ce2565b8060208301525060408301516040820152606083015160608201525092915050565b6000806000806000610160868803121561247657600080fd5b855161248181611b76565b602087015190955061249281611e82565b604087015190945092506124a987606088016123e4565b91506124b88760e088016123e4565b90509295509295909350565b61ffff851681526001600160a01b0384166020820152610140810161251360408301858051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b8251600f90810b60c08401526020840151900b60e0830152604083015161010083015260608301516101208301526113e0565b60008060a0838503121561255957600080fd5b825161256481611b76565b915061257384602085016123e4565b90509250929050565b61ffff8316815260a08101610a9760208301848051600f0b82526020810151600f0b60208301526040810151604083015260608101516060830152505056fea26469706673582212208e77efc2663b67c491d6a8aa9cd21d2e9d7d8aee12e9c19fbab897fdd343d6ee64736f6c634300080a0033",
"deployedBytecode": "0x6080604052600436106101c15760003560e01c80638da5cb5b116100f7578063cbed8b9c11610095578063f2fde38b11610064578063f2fde38b14610587578063f4182acb146105a7578063f50ddbc7146105fd578063f5ecbdbc1461064857600080fd5b8063cbed8b9c14610514578063d1deba1f14610534578063df2a5b3b14610547578063eb8d72b71461056757600080fd5b8063a6c3d165116100d1578063a6c3d16514610473578063adc6358914610493578063b353aaa7146104c0578063baf3292d146104f457600080fd5b80638da5cb5b14610415578063950c8a74146104335780639f38369a1461045357600080fd5b80635b8c41e611610164578063715018a61161013e578063715018a61461034f57806374d2495f146103645780637533d788146103b05780638cfd8f5c146103dd57600080fd5b80635b8c41e6146102c057806366ad5c8a1461030f57806370a082311461032f57600080fd5b806318160ddd116101a057806318160ddd14610228578063378ef708146102505780633d8b38f61461027057806342d65a8d146102a057600080fd5b80621d3567146101c657806307e0db17146101e857806310ddb13714610208575b600080fd5b3480156101d257600080fd5b506101e66101e1366004611bea565b610668565b005b3480156101f457600080fd5b506101e6610203366004611c7f565b610899565b34801561021457600080fd5b506101e6610223366004611c7f565b610922565b34801561023457600080fd5b5061023d61097a565b6040519081526020015b60405180910390f35b34801561025c57600080fd5b5061023d61026b366004611cf1565b6109c0565b34801561027c57600080fd5b5061029061028b366004611d65565b6109d1565b6040519015158152602001610247565b3480156102ac57600080fd5b506101e66102bb366004611d65565b610a9e565b3480156102cc57600080fd5b5061023d6102db366004611de0565b6004602090815260009384526040808520845180860184018051928152908401958401959095209452929052825290205481565b34801561031b57600080fd5b506101e661032a366004611bea565b610b24565b34801561033b57600080fd5b5061023d61034a366004611e97565b610c00565b34801561035b57600080fd5b506101e6610c5b565b34801561037057600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610247565b3480156103bc57600080fd5b506103d06103cb366004611c7f565b610c6f565b6040516102479190611f10565b3480156103e957600080fd5b5061023d6103f8366004611f23565b600260209081526000928352604080842090915290825290205481565b34801561042157600080fd5b506000546001600160a01b0316610398565b34801561043f57600080fd5b50600354610398906001600160a01b031681565b34801561045f57600080fd5b506103d061046e366004611c7f565b610d09565b34801561047f57600080fd5b506101e661048e366004611d65565b610e19565b34801561049f57600080fd5b5061023d6104ae366004611e97565b60056020526000908152604090205481565b3480156104cc57600080fd5b506103987f000000000000000000000000000000000000000000000000000000000000000081565b34801561050057600080fd5b506101e661050f366004611e97565b610eac565b34801561052057600080fd5b506101e661052f366004611f5c565b610f08565b6101e6610542366004611bea565b610f9d565b34801561055357600080fd5b506101e6610562366004611fce565b6111b3565b34801561057357600080fd5b506101e6610582366004611d65565b611265565b34801561059357600080fd5b506101e66105a2366004611e97565b6112bf565b3480156105b357600080fd5b506007546008546009546105d592600f81810b93600160801b909204900b9184565b60408051600f95860b81529390940b6020840152928201526060810191909152608001610247565b34801561060957600080fd5b506105d5610618366004611e97565b600660205260009081526040902080546001820154600290920154600f82810b93600160801b909304900b919084565b34801561065457600080fd5b506103d061066336600461200f565b611338565b337f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316146106e55760405162461bcd60e51b815260206004820152601e60248201527f4c7a4170703a20696e76616c696420656e64706f696e742063616c6c6572000060448201526064015b60405180910390fd5b61ffff86166000908152600160205260408120805461070390612060565b80601f016020809104026020016040519081016040528092919081815260200182805461072f90612060565b801561077c5780601f106107515761010080835404028352916020019161077c565b820191906000526020600020905b81548152906001019060200180831161075f57829003601f168201915b50505050509050805186869050148015610797575060008151115b80156107bf5750805160208201206040516107b5908890889061209b565b6040518091039020145b61081a5760405162461bcd60e51b815260206004820152602660248201527f4c7a4170703a20696e76616c696420736f757263652073656e64696e6720636f6044820152651b9d1c9858dd60d21b60648201526084016106dc565b6108908787878080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506113e992505050565b50505050505050565b6108a16114f3565b6040516307e0db1760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906307e0db17906024015b600060405180830381600087803b15801561090757600080fd5b505af115801561091b573d6000803e3d6000fd5b5050505050565b61092a6114f3565b6040516310ddb13760e01b815261ffff821660048201527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906310ddb137906024016108ed565b60408051608081018252600754600f81810b8352600160801b909104900b60208201526008549181019190915260095460608201526000906109bb9061154d565b905090565b60006109cb8261154d565b92915050565b61ffff8316600090815260016020526040812080548291906109f290612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610a1e90612060565b8015610a6b5780601f10610a4057610100808354040283529160200191610a6b565b820191906000526020600020905b815481529060010190602001808311610a4e57829003601f168201915b505050505090508383604051610a8292919061209b565b60405180910390208180519060200120149150505b9392505050565b610aa66114f3565b6040516342d65a8d60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906342d65a8d90610af6908690869086906004016120d4565b600060405180830381600087803b158015610b1057600080fd5b505af1158015610890573d6000803e3d6000fd5b333014610b825760405162461bcd60e51b815260206004820152602660248201527f4e6f6e626c6f636b696e674c7a4170703a2063616c6c6572206d7573742062656044820152650204c7a4170760d41b60648201526084016106dc565b610bf88686868080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050604080516020601f8901819004810282018101909252878152899350915087908790819084018382808284376000920191909152506115a592505050565b505050505050565b6001600160a01b038116600090815260066020908152604080832081516080810183528154600f81810b8352600160801b909104900b938101939093526001810154918301919091526002015460608201526109cb9061154d565b610c636114f3565b610c6d6000611646565b565b60016020526000908152604090208054610c8890612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610cb490612060565b8015610d015780601f10610cd657610100808354040283529160200191610d01565b820191906000526020600020905b815481529060010190602001808311610ce457829003601f168201915b505050505081565b61ffff8116600090815260016020526040812080546060929190610d2c90612060565b80601f0160208091040260200160405190810160405280929190818152602001828054610d5890612060565b8015610da55780601f10610d7a57610100808354040283529160200191610da5565b820191906000526020600020905b815481529060010190602001808311610d8857829003601f168201915b50505050509050805160001415610dfe5760405162461bcd60e51b815260206004820152601d60248201527f4c7a4170703a206e6f20747275737465642070617468207265636f726400000060448201526064016106dc565b610a97600060148351610e119190612108565b839190611696565b610e216114f3565b818130604051602001610e369392919061211f565b60408051601f1981840301815291815261ffff85166000908152600160209081529190208251610e6b93919290910190611a69565b507f8c0400cfe2d1199b1a725c78960bcc2a344d869b80590d0f2bd005db15a572ce838383604051610e9f939291906120d4565b60405180910390a1505050565b610eb46114f3565b600380546001600160a01b0319166001600160a01b0383169081179091556040519081527f5db758e995a17ec1ad84bdef7e8c3293a0bd6179bcce400dff5d4c3d87db726b9060200160405180910390a150565b610f106114f3565b6040516332fb62e760e21b81526001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063cbed8b9c90610f649088908890889088908890600401612145565b600060405180830381600087803b158015610f7e57600080fd5b505af1158015610f92573d6000803e3d6000fd5b505050505050505050565b61ffff86166000908152600460205260408082209051610fc0908890889061209b565b90815260408051602092819003830190206001600160401b038716600090815292529020549050806110405760405162461bcd60e51b815260206004820152602360248201527f4e6f6e626c6f636b696e674c7a4170703a206e6f2073746f726564206d65737360448201526261676560e81b60648201526084016106dc565b80838360405161105192919061209b565b6040518091039020146110b05760405162461bcd60e51b815260206004820152602160248201527f4e6f6e626c6f636b696e674c7a4170703a20696e76616c6964207061796c6f616044820152601960fa1b60648201526084016106dc565b61ffff871660009081526004602052604080822090516110d3908990899061209b565b90815260408051602092819003830181206001600160401b038916600090815290845282902093909355601f8801829004820283018201905286825261116b918991899089908190840183828082843760009201919091525050604080516020601f8a018190048102820181019092528881528a9350915088908890819084018382808284376000920191909152506115a592505050565b7fc264d91f3adc5588250e1551f547752ca0cfa8f6b530d243b9f9f4cab10ea8e587878787856040516111a295949392919061217e565b60405180910390a150505050505050565b6111bb6114f3565b600081116112035760405162461bcd60e51b81526020600482015260156024820152744c7a4170703a20696e76616c6964206d696e47617360581b60448201526064016106dc565b61ffff83811660008181526002602090815260408083209487168084529482529182902085905581519283528201929092529081018290527f9d5c7c0b934da8fefa9c7760c98383778a12dfbfc0c3b3106518f43fb9508ac090606001610e9f565b61126d6114f3565b61ffff8316600090815260016020526040902061128b908383611aed565b507ffa41487ad5d6728f0b19276fa1eddc16558578f5109fc39d2dc33c3230470dab838383604051610e9f939291906120d4565b6112c76114f3565b6001600160a01b03811661132c5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106dc565b61133581611646565b50565b604051633d7b2f6f60e21b815261ffff808616600483015284166024820152306044820152606481018290526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169063f5ecbdbc90608401600060405180830381865afa1580156113b8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526113e091908101906121b9565b95945050505050565b60008061144c5a60966366ad5c8a60e01b898989896040516024016114119493929190612226565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152309291906117a3565b9150915081610bf8578280519060200120600460008861ffff1661ffff168152602001908152602001600020866040516114869190612264565b9081526040805191829003602090810183206001600160401b0389166000908152915220919091557fe183f33de2837795525b4792ca4cd60535bd77c53b7e7030060bfcf5734d6b0c906114e39088908890889088908790612280565b60405180910390a1505050505050565b6000546001600160a01b03163314610c6d5760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106dc565b6040810151600090829082906115639042612108565b826020015161157291906122de565b825161157e919061237c565b9050600081600f0b1261159a57806001600160801b031661159d565b60005b949350505050565b6020810151600a5461ffff808316911614156115ca576115c5858361182d565b61091b565b600a5461ffff828116620100009092041614156115eb576115c58583611978565b60405162461bcd60e51b815260206004820152602a60248201527f4f6d6e69566f74696e67457363726f774368696c643a20756e6b6e6f776e207060448201526961636b6574207479706560b01b60648201526084016106dc565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6060816116a481601f6123cc565b10156116e35760405162461bcd60e51b815260206004820152600e60248201526d736c6963655f6f766572666c6f7760901b60448201526064016106dc565b6116ed82846123cc565b845110156117315760405162461bcd60e51b8152602060048201526011602482015270736c6963655f6f75744f66426f756e647360781b60448201526064016106dc565b606082158015611750576040519150600082526020820160405261179a565b6040519150601f8416801560200281840101858101878315602002848b0101015b81831015611789578051835260209283019201611771565b5050858452601f01601f1916604052505b50949350505050565b6000606060008060008661ffff166001600160401b038111156117c8576117c8611c9c565b6040519080825280601f01601f1916602001820160405280156117f2576020820181803683370190505b50905060008087516020890160008d8df191503d925086831115611814578692505b828152826000602083013e909890975095505050505050565b60008060008084806020019051810190611847919061245d565b6001600160a01b03848116600081815260056020908152604080832088905560068252918290208651878301516001600160801b03918216600160801b91831682021783558885015160018401556060808a01516002909401939093558751938801519382169390911602919091176007558482015160085584015160095551636f8985ff60e11b8152600481019190915294995092975090955093507f000000000000000000000000000000000000000000000000000000000000000016915063df130bfe90602401600060405180830381600087803b15801561192b57600080fd5b505af115801561193f573d6000803e3d6000fd5b505050507fae0e70d8538c5776f9975183d965b1722a0e8fa0256c8301cb707f64a9821f83868584846040516114e394939291906124c4565b60008180602001905181019061198e9190612546565b805160208201516001600160801b03908116600160801b02911617600755604080820151600855606082015160095580516396345fb560e01b815290519193506001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001692506396345fb591600480830192600092919082900301818387803b158015611a2057600080fd5b505af1158015611a34573d6000803e3d6000fd5b505050507f9048da34d2dac99755410b6e83e1eaab692909ff964f5bc920756ab49c73df9a8382604051610e9f92919061257c565b828054611a7590612060565b90600052602060002090601f016020900481019282611a975760008555611add565b82601f10611ab057805160ff1916838001178555611add565b82800160010185558215611add579182015b82811115611add578251825591602001919060010190611ac2565b50611ae9929150611b61565b5090565b828054611af990612060565b90600052602060002090601f016020900481019282611b1b5760008555611add565b82601f10611b345782800160ff19823516178555611add565b82800160010185558215611add579182015b82811115611add578235825591602001919060010190611b46565b5b80821115611ae95760008155600101611b62565b61ffff8116811461133557600080fd5b60008083601f840112611b9857600080fd5b5081356001600160401b03811115611baf57600080fd5b602083019150836020828501011115611bc757600080fd5b9250929050565b80356001600160401b0381168114611be557600080fd5b919050565b60008060008060008060808789031215611c0357600080fd5b8635611c0e81611b76565b955060208701356001600160401b0380821115611c2a57600080fd5b611c368a838b01611b86565b9097509550859150611c4a60408a01611bce565b94506060890135915080821115611c6057600080fd5b50611c6d89828a01611b86565b979a9699509497509295939492505050565b600060208284031215611c9157600080fd5b8135610a9781611b76565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715611cda57611cda611c9c565b604052919050565b80600f0b811461133557600080fd5b600060808284031215611d0357600080fd5b604051608081018181106001600160401b0382111715611d2557611d25611c9c565b6040528235611d3381611ce2565b81526020830135611d4381611ce2565b6020820152604083810135908201526060928301359281019290925250919050565b600080600060408486031215611d7a57600080fd5b8335611d8581611b76565b925060208401356001600160401b03811115611da057600080fd5b611dac86828701611b86565b9497909650939450505050565b60006001600160401b03821115611dd257611dd2611c9c565b50601f01601f191660200190565b600080600060608486031215611df557600080fd5b8335611e0081611b76565b925060208401356001600160401b03811115611e1b57600080fd5b8401601f81018613611e2c57600080fd5b8035611e3f611e3a82611db9565b611cb2565b818152876020838501011115611e5457600080fd5b81602084016020830137600060208383010152809450505050611e7960408501611bce565b90509250925092565b6001600160a01b038116811461133557600080fd5b600060208284031215611ea957600080fd5b8135610a9781611e82565b60005b83811015611ecf578181015183820152602001611eb7565b83811115611ede576000848401525b50505050565b60008151808452611efc816020860160208601611eb4565b601f01601f19169290920160200192915050565b602081526000610a976020830184611ee4565b60008060408385031215611f3657600080fd5b8235611f4181611b76565b91506020830135611f5181611b76565b809150509250929050565b600080600080600060808688031215611f7457600080fd5b8535611f7f81611b76565b94506020860135611f8f81611b76565b93506040860135925060608601356001600160401b03811115611fb157600080fd5b611fbd88828901611b86565b969995985093965092949392505050565b600080600060608486031215611fe357600080fd5b8335611fee81611b76565b92506020840135611ffe81611b76565b929592945050506040919091013590565b6000806000806080858703121561202557600080fd5b843561203081611b76565b9350602085013561204081611b76565b9250604085013561205081611e82565b9396929550929360600135925050565b600181811c9082168061207457607f821691505b6020821081141561209557634e487b7160e01b600052602260045260246000fd5b50919050565b8183823760009101908152919050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b61ffff841681526040602082015260006113e06040830184866120ab565b634e487b7160e01b600052601160045260246000fd5b60008282101561211a5761211a6120f2565b500390565b8284823760609190911b6bffffffffffffffffffffffff19169101908152601401919050565b600061ffff8088168352808716602084015250846040830152608060608301526121736080830184866120ab565b979650505050505050565b61ffff8616815260806020820152600061219c6080830186886120ab565b6001600160401b0394909416604083015250606001529392505050565b6000602082840312156121cb57600080fd5b81516001600160401b038111156121e157600080fd5b8201601f810184136121f257600080fd5b8051612200611e3a82611db9565b81815285602083850101111561221557600080fd5b6113e0826020830160208601611eb4565b61ffff851681526080602082015260006122436080830186611ee4565b6001600160401b038516604084015282810360608401526121738185611ee4565b60008251612276818460208701611eb4565b9190910192915050565b61ffff8616815260a06020820152600061229d60a0830187611ee4565b6001600160401b038616604084015282810360608401526122be8186611ee4565b905082810360808401526122d28185611ee4565b98975050505050505050565b600081600f0b83600f0b60016001607f1b0360008213600084138383048511828216161561230e5761230e6120f2565b6f7fffffffffffffffffffffffffffffff19600085128281168783058712161561233a5761233a6120f2565b60008712925085820587128484161615612356576123566120f2565b8585058712818416161561236c5761236c6120f2565b5050509290910295945050505050565b600081600f0b83600f0b600081128160016001607f1b0319018312811516156123a7576123a76120f2565b8160016001607f1b030183138116156123c2576123c26120f2565b5090039392505050565b600082198211156123df576123df6120f2565b500190565b6000608082840312156123f657600080fd5b604051608081018181106001600160401b038211171561241857612418611c9c565b8060405250809150825161242b81611ce2565b8152602083015161243b81611ce2565b8060208301525060408301516040820152606083015160608201525092915050565b6000806000806000610160868803121561247657600080fd5b855161248181611b76565b602087015190955061249281611e82565b604087015190945092506124a987606088016123e4565b91506124b88760e088016123e4565b90509295509295909350565b61ffff851681526001600160a01b0384166020820152610140810161251360408301858051600f0b82526020810151600f0b602083015260408101516040830152606081015160608301525050565b8251600f90810b60c08401526020840151900b60e0830152604083015161010083015260608301516101208301526113e0565b60008060a0838503121561255957600080fd5b825161256481611b76565b915061257384602085016123e4565b90509250929050565b61ffff8316815260a08101610a9760208301848051600f0b82526020810151600f0b60208301526040810151604083015260608101516060830152505056fea26469706673582212208e77efc2663b67c491d6a8aa9cd21d2e9d7d8aee12e9c19fbab897fdd343d6ee64736f6c634300080a0033",
"linkReferences": {},
"deployedLinkReferences": {}
}