@gooddollar/goodcollective-contracts 1.1.0 → 1.3.0
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.
- package/README.md +14 -1
- package/contracts/DirectPayments/DirectPaymentsFactory.sol +23 -15
- package/contracts/DirectPayments/DirectPaymentsLibrary.sol +54 -0
- package/contracts/DirectPayments/DirectPaymentsPool.sol +25 -41
- package/contracts/GoodCollective/GoodCollectiveSuperApp.sol +89 -61
- package/contracts/GoodCollective/IGoodCollectiveSuperApp.sol +12 -0
- package/contracts/Interfaces.sol +25 -0
- package/contracts/UBI/UBIPool.sol +103 -90
- package/contracts/UBI/UBIPoolFactory.sol +24 -10
- package/contracts/test/HelperLibraryTest.sol +16 -0
- package/contracts/utils/HelperLibrary.sol +109 -8
- package/package.json +4 -3
- package/releases/deployment.json +22797 -431
- package/typechain-types/@uniswap/index.ts +0 -2
- package/typechain-types/contracts/DirectPayments/DirectPaymentsFactory.ts +56 -9
- package/typechain-types/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool.ts +187 -9
- package/typechain-types/contracts/GoodCollective/GoodCollectiveSuperApp.ts +150 -6
- package/typechain-types/contracts/{UBI/MultiClaimModule.sol/IClaimable.ts → GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp.ts} +24 -23
- package/typechain-types/contracts/GoodCollective/{GoodCollectiveSuperApp.sol → IGoodCollectiveSuperApp.sol}/index.ts +1 -1
- package/typechain-types/contracts/GoodCollective/index.ts +3 -2
- package/typechain-types/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IIdentityV2.ts +1 -1
- package/typechain-types/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IMembersValidator.ts +1 -1
- package/typechain-types/contracts/{UBI/UBIPool.sol → Interfaces.sol}/index.ts +0 -1
- package/typechain-types/contracts/UBI/{UBIPool.sol/UBIPool.ts → UBIPool.ts} +325 -78
- package/typechain-types/contracts/UBI/UBIPoolFactory.ts +95 -33
- package/typechain-types/contracts/UBI/index.ts +1 -4
- package/typechain-types/contracts/index.ts +4 -0
- package/typechain-types/contracts/test/HelperLibraryTest.ts +147 -0
- package/typechain-types/{@uniswap/v3-periphery/contracts/interfaces → contracts/test}/index.ts +1 -1
- package/typechain-types/contracts/utils/HelperLibrary.ts +46 -4
- package/typechain-types/factories/@uniswap/index.ts +0 -1
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsFactory__factory.ts +25 -2
- package/typechain-types/factories/contracts/DirectPayments/DirectPaymentsPool.sol/DirectPaymentsPool__factory.ts +128 -1
- package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp__factory.ts +105 -1
- package/typechain-types/factories/contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp__factory.ts +48 -0
- package/typechain-types/factories/contracts/GoodCollective/{GoodCollectiveSuperApp.sol → IGoodCollectiveSuperApp.sol}/IRegistry__factory.ts +1 -1
- package/typechain-types/factories/contracts/GoodCollective/{GoodCollectiveSuperApp.sol → IGoodCollectiveSuperApp.sol}/index.ts +1 -1
- package/typechain-types/factories/contracts/GoodCollective/index.ts +2 -1
- package/typechain-types/factories/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IIdentityV2__factory.ts +1 -1
- package/typechain-types/factories/contracts/{UBI/UBIPool.sol → Interfaces.sol}/IMembersValidator__factory.ts +1 -1
- package/typechain-types/factories/contracts/{UBI/UBIPool.sol → Interfaces.sol}/index.ts +0 -1
- package/typechain-types/factories/contracts/UBI/UBIPoolFactory__factory.ts +76 -4
- package/typechain-types/factories/contracts/UBI/UBIPool__factory.ts +2052 -0
- package/typechain-types/factories/contracts/UBI/index.ts +1 -2
- package/typechain-types/factories/contracts/index.ts +2 -0
- package/typechain-types/factories/contracts/test/HelperLibraryTest__factory.ts +154 -0
- package/typechain-types/{@uniswap/v3-periphery → factories/contracts/test}/index.ts +1 -2
- package/typechain-types/factories/contracts/utils/HelperLibrary__factory.ts +31 -1
- package/typechain-types/hardhat.d.ts +18 -36
- package/typechain-types/index.ts +10 -14
- package/contracts/UBI/MultiClaimModule.sol +0 -78
- package/typechain-types/@gooddollar/goodprotocol/contracts/token/FeesFormula.sol/IFeesFormula.ts +0 -115
- package/typechain-types/@gooddollar/goodprotocol/contracts/token/FeesFormula.sol/index.ts +0 -4
- package/typechain-types/@uniswap/v3-periphery/contracts/index.ts +0 -5
- package/typechain-types/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter.ts +0 -369
- package/typechain-types/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp.ts +0 -1000
- package/typechain-types/contracts/UBI/MultiClaimModule.sol/IModule.ts +0 -196
- package/typechain-types/contracts/UBI/MultiClaimModule.sol/MultiClaimModule.ts +0 -242
- package/typechain-types/contracts/UBI/MultiClaimModule.sol/index.ts +0 -6
- package/typechain-types/factories/@gooddollar/goodprotocol/contracts/token/FeesFormula.sol/IFeesFormula__factory.ts +0 -60
- package/typechain-types/factories/@gooddollar/goodprotocol/contracts/token/FeesFormula.sol/index.ts +0 -4
- package/typechain-types/factories/@uniswap/v3-periphery/contracts/index.ts +0 -4
- package/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/ISwapRouter__factory.ts +0 -263
- package/typechain-types/factories/@uniswap/v3-periphery/contracts/interfaces/index.ts +0 -4
- package/typechain-types/factories/@uniswap/v3-periphery/index.ts +0 -4
- package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp.sol/GoodCollectiveSuperApp__factory.ts +0 -728
- package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IClaimable__factory.ts +0 -33
- package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/IModule__factory.ts +0 -84
- package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/MultiClaimModule__factory.ts +0 -150
- package/typechain-types/factories/contracts/UBI/MultiClaimModule.sol/index.ts +0 -6
- package/typechain-types/factories/contracts/UBI/UBIPool.sol/UBIPool__factory.ts +0 -1835
- /package/typechain-types/contracts/GoodCollective/{GoodCollectiveSuperApp.sol → IGoodCollectiveSuperApp.sol}/IRegistry.ts +0 -0
package/typechain-types/factories/contracts/GoodCollective/GoodCollectiveSuperApp__factory.ts
CHANGED
|
@@ -414,6 +414,24 @@ const _abi = [
|
|
|
414
414
|
stateMutability: "view",
|
|
415
415
|
type: "function",
|
|
416
416
|
},
|
|
417
|
+
{
|
|
418
|
+
inputs: [],
|
|
419
|
+
name: "getManagerFee",
|
|
420
|
+
outputs: [
|
|
421
|
+
{
|
|
422
|
+
internalType: "address",
|
|
423
|
+
name: "admin",
|
|
424
|
+
type: "address",
|
|
425
|
+
},
|
|
426
|
+
{
|
|
427
|
+
internalType: "uint32",
|
|
428
|
+
name: "feeBps",
|
|
429
|
+
type: "uint32",
|
|
430
|
+
},
|
|
431
|
+
],
|
|
432
|
+
stateMutability: "view",
|
|
433
|
+
type: "function",
|
|
434
|
+
},
|
|
417
435
|
{
|
|
418
436
|
inputs: [
|
|
419
437
|
{
|
|
@@ -447,6 +465,16 @@ const _abi = [
|
|
|
447
465
|
name: "totalFees",
|
|
448
466
|
type: "uint256",
|
|
449
467
|
},
|
|
468
|
+
{
|
|
469
|
+
internalType: "uint256",
|
|
470
|
+
name: "protocolFees",
|
|
471
|
+
type: "uint256",
|
|
472
|
+
},
|
|
473
|
+
{
|
|
474
|
+
internalType: "uint256",
|
|
475
|
+
name: "managerFees",
|
|
476
|
+
type: "uint256",
|
|
477
|
+
},
|
|
450
478
|
{
|
|
451
479
|
internalType: "int96",
|
|
452
480
|
name: "incomeFlowRate",
|
|
@@ -457,6 +485,11 @@ const _abi = [
|
|
|
457
485
|
name: "feeRate",
|
|
458
486
|
type: "int96",
|
|
459
487
|
},
|
|
488
|
+
{
|
|
489
|
+
internalType: "int96",
|
|
490
|
+
name: "managerFeeRate",
|
|
491
|
+
type: "int96",
|
|
492
|
+
},
|
|
460
493
|
],
|
|
461
494
|
stateMutability: "view",
|
|
462
495
|
type: "function",
|
|
@@ -466,7 +499,7 @@ const _abi = [
|
|
|
466
499
|
name: "getRegistry",
|
|
467
500
|
outputs: [
|
|
468
501
|
{
|
|
469
|
-
internalType: "contract
|
|
502
|
+
internalType: "contract IRegistry",
|
|
470
503
|
name: "",
|
|
471
504
|
type: "address",
|
|
472
505
|
},
|
|
@@ -620,6 +653,21 @@ const _abi = [
|
|
|
620
653
|
name: "lastIncomeRate",
|
|
621
654
|
type: "int96",
|
|
622
655
|
},
|
|
656
|
+
{
|
|
657
|
+
internalType: "address",
|
|
658
|
+
name: "lastManagerFeeRecipient",
|
|
659
|
+
type: "address",
|
|
660
|
+
},
|
|
661
|
+
{
|
|
662
|
+
internalType: "uint256",
|
|
663
|
+
name: "protocolFees",
|
|
664
|
+
type: "uint256",
|
|
665
|
+
},
|
|
666
|
+
{
|
|
667
|
+
internalType: "uint256",
|
|
668
|
+
name: "managerFees",
|
|
669
|
+
type: "uint256",
|
|
670
|
+
},
|
|
623
671
|
],
|
|
624
672
|
stateMutability: "view",
|
|
625
673
|
type: "function",
|
|
@@ -666,6 +714,62 @@ const _abi = [
|
|
|
666
714
|
stateMutability: "nonpayable",
|
|
667
715
|
type: "function",
|
|
668
716
|
},
|
|
717
|
+
{
|
|
718
|
+
inputs: [
|
|
719
|
+
{
|
|
720
|
+
internalType: "address",
|
|
721
|
+
name: "_sender",
|
|
722
|
+
type: "address",
|
|
723
|
+
},
|
|
724
|
+
{
|
|
725
|
+
components: [
|
|
726
|
+
{
|
|
727
|
+
internalType: "address",
|
|
728
|
+
name: "swapFrom",
|
|
729
|
+
type: "address",
|
|
730
|
+
},
|
|
731
|
+
{
|
|
732
|
+
internalType: "uint256",
|
|
733
|
+
name: "amount",
|
|
734
|
+
type: "uint256",
|
|
735
|
+
},
|
|
736
|
+
{
|
|
737
|
+
internalType: "uint256",
|
|
738
|
+
name: "minReturn",
|
|
739
|
+
type: "uint256",
|
|
740
|
+
},
|
|
741
|
+
{
|
|
742
|
+
internalType: "uint256",
|
|
743
|
+
name: "deadline",
|
|
744
|
+
type: "uint256",
|
|
745
|
+
},
|
|
746
|
+
{
|
|
747
|
+
internalType: "bytes",
|
|
748
|
+
name: "path",
|
|
749
|
+
type: "bytes",
|
|
750
|
+
},
|
|
751
|
+
],
|
|
752
|
+
internalType: "struct HelperLibrary.SwapData",
|
|
753
|
+
name: "_customData",
|
|
754
|
+
type: "tuple",
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
internalType: "bytes",
|
|
758
|
+
name: "_ctx",
|
|
759
|
+
type: "bytes",
|
|
760
|
+
},
|
|
761
|
+
],
|
|
762
|
+
name: "supportWithSwap",
|
|
763
|
+
outputs: [
|
|
764
|
+
{
|
|
765
|
+
internalType: "bytes",
|
|
766
|
+
name: "",
|
|
767
|
+
type: "bytes",
|
|
768
|
+
},
|
|
769
|
+
],
|
|
770
|
+
stateMutability: "nonpayable",
|
|
771
|
+
type: "function",
|
|
772
|
+
},
|
|
669
773
|
{
|
|
670
774
|
inputs: [
|
|
671
775
|
{
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/* Autogenerated file. Do not edit manually. */
|
|
2
|
+
/* tslint:disable */
|
|
3
|
+
/* eslint-disable */
|
|
4
|
+
|
|
5
|
+
import { Contract, Signer, utils } from "ethers";
|
|
6
|
+
import type { Provider } from "@ethersproject/providers";
|
|
7
|
+
import type {
|
|
8
|
+
IGoodCollectiveSuperApp,
|
|
9
|
+
IGoodCollectiveSuperAppInterface,
|
|
10
|
+
} from "../../../../contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IGoodCollectiveSuperApp";
|
|
11
|
+
|
|
12
|
+
const _abi = [
|
|
13
|
+
{
|
|
14
|
+
inputs: [],
|
|
15
|
+
name: "getAdminFee",
|
|
16
|
+
outputs: [
|
|
17
|
+
{
|
|
18
|
+
internalType: "address",
|
|
19
|
+
name: "admin",
|
|
20
|
+
type: "address",
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
internalType: "uint32",
|
|
24
|
+
name: "feeBps",
|
|
25
|
+
type: "uint32",
|
|
26
|
+
},
|
|
27
|
+
],
|
|
28
|
+
stateMutability: "view",
|
|
29
|
+
type: "function",
|
|
30
|
+
},
|
|
31
|
+
] as const;
|
|
32
|
+
|
|
33
|
+
export class IGoodCollectiveSuperApp__factory {
|
|
34
|
+
static readonly abi = _abi;
|
|
35
|
+
static createInterface(): IGoodCollectiveSuperAppInterface {
|
|
36
|
+
return new utils.Interface(_abi) as IGoodCollectiveSuperAppInterface;
|
|
37
|
+
}
|
|
38
|
+
static connect(
|
|
39
|
+
address: string,
|
|
40
|
+
signerOrProvider: Signer | Provider
|
|
41
|
+
): IGoodCollectiveSuperApp {
|
|
42
|
+
return new Contract(
|
|
43
|
+
address,
|
|
44
|
+
_abi,
|
|
45
|
+
signerOrProvider
|
|
46
|
+
) as IGoodCollectiveSuperApp;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
@@ -7,7 +7,7 @@ import type { Provider } from "@ethersproject/providers";
|
|
|
7
7
|
import type {
|
|
8
8
|
IRegistry,
|
|
9
9
|
IRegistryInterface,
|
|
10
|
-
} from "../../../../contracts/GoodCollective/
|
|
10
|
+
} from "../../../../contracts/GoodCollective/IGoodCollectiveSuperApp.sol/IRegistry";
|
|
11
11
|
|
|
12
12
|
const _abi = [
|
|
13
13
|
{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/* Autogenerated file. Do not edit manually. */
|
|
2
2
|
/* tslint:disable */
|
|
3
3
|
/* eslint-disable */
|
|
4
|
-
export {
|
|
4
|
+
export { IGoodCollectiveSuperApp__factory } from "./IGoodCollectiveSuperApp__factory";
|
|
5
5
|
export { IRegistry__factory } from "./IRegistry__factory";
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
/* Autogenerated file. Do not edit manually. */
|
|
2
2
|
/* tslint:disable */
|
|
3
3
|
/* eslint-disable */
|
|
4
|
-
export * as
|
|
4
|
+
export * as iGoodCollectiveSuperAppSol from "./IGoodCollectiveSuperApp.sol";
|
|
5
|
+
export { GoodCollectiveSuperApp__factory } from "./GoodCollectiveSuperApp__factory";
|
|
5
6
|
export { SuperAppBaseFlow__factory } from "./SuperAppBaseFlow__factory";
|
|
@@ -7,7 +7,7 @@ import type { Provider } from "@ethersproject/providers";
|
|
|
7
7
|
import type {
|
|
8
8
|
IMembersValidator,
|
|
9
9
|
IMembersValidatorInterface,
|
|
10
|
-
} from "
|
|
10
|
+
} from "../../../contracts/Interfaces.sol/IMembersValidator";
|
|
11
11
|
|
|
12
12
|
const _abi = [
|
|
13
13
|
{
|
|
@@ -110,7 +110,7 @@ const _abi = [
|
|
|
110
110
|
},
|
|
111
111
|
],
|
|
112
112
|
indexed: false,
|
|
113
|
-
internalType: "struct
|
|
113
|
+
internalType: "struct PoolSettings",
|
|
114
114
|
name: "poolSettings",
|
|
115
115
|
type: "tuple",
|
|
116
116
|
},
|
|
@@ -146,6 +146,11 @@ const _abi = [
|
|
|
146
146
|
name: "maxMembers",
|
|
147
147
|
type: "uint32",
|
|
148
148
|
},
|
|
149
|
+
{
|
|
150
|
+
internalType: "bool",
|
|
151
|
+
name: "onlyMembers",
|
|
152
|
+
type: "bool",
|
|
153
|
+
},
|
|
149
154
|
],
|
|
150
155
|
indexed: false,
|
|
151
156
|
internalType: "struct UBIPool.UBISettings",
|
|
@@ -374,7 +379,7 @@ const _abi = [
|
|
|
374
379
|
type: "address",
|
|
375
380
|
},
|
|
376
381
|
],
|
|
377
|
-
internalType: "struct
|
|
382
|
+
internalType: "struct PoolSettings",
|
|
378
383
|
name: "_settings",
|
|
379
384
|
type: "tuple",
|
|
380
385
|
},
|
|
@@ -410,11 +415,38 @@ const _abi = [
|
|
|
410
415
|
name: "maxMembers",
|
|
411
416
|
type: "uint32",
|
|
412
417
|
},
|
|
418
|
+
{
|
|
419
|
+
internalType: "bool",
|
|
420
|
+
name: "onlyMembers",
|
|
421
|
+
type: "bool",
|
|
422
|
+
},
|
|
413
423
|
],
|
|
414
424
|
internalType: "struct UBIPool.UBISettings",
|
|
415
425
|
name: "_limits",
|
|
416
426
|
type: "tuple",
|
|
417
427
|
},
|
|
428
|
+
{
|
|
429
|
+
components: [
|
|
430
|
+
{
|
|
431
|
+
internalType: "uint32",
|
|
432
|
+
name: "maxPeriodClaimers",
|
|
433
|
+
type: "uint32",
|
|
434
|
+
},
|
|
435
|
+
{
|
|
436
|
+
internalType: "uint256",
|
|
437
|
+
name: "minClaimAmount",
|
|
438
|
+
type: "uint256",
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
internalType: "uint32",
|
|
442
|
+
name: "managerFeeBps",
|
|
443
|
+
type: "uint32",
|
|
444
|
+
},
|
|
445
|
+
],
|
|
446
|
+
internalType: "struct UBIPool.ExtendedSettings",
|
|
447
|
+
name: "_extendedSettings",
|
|
448
|
+
type: "tuple",
|
|
449
|
+
},
|
|
418
450
|
],
|
|
419
451
|
name: "createManagedPool",
|
|
420
452
|
outputs: [
|
|
@@ -462,7 +494,7 @@ const _abi = [
|
|
|
462
494
|
type: "address",
|
|
463
495
|
},
|
|
464
496
|
],
|
|
465
|
-
internalType: "struct
|
|
497
|
+
internalType: "struct PoolSettings",
|
|
466
498
|
name: "_settings",
|
|
467
499
|
type: "tuple",
|
|
468
500
|
},
|
|
@@ -498,11 +530,38 @@ const _abi = [
|
|
|
498
530
|
name: "maxMembers",
|
|
499
531
|
type: "uint32",
|
|
500
532
|
},
|
|
533
|
+
{
|
|
534
|
+
internalType: "bool",
|
|
535
|
+
name: "onlyMembers",
|
|
536
|
+
type: "bool",
|
|
537
|
+
},
|
|
501
538
|
],
|
|
502
539
|
internalType: "struct UBIPool.UBISettings",
|
|
503
540
|
name: "_limits",
|
|
504
541
|
type: "tuple",
|
|
505
542
|
},
|
|
543
|
+
{
|
|
544
|
+
components: [
|
|
545
|
+
{
|
|
546
|
+
internalType: "uint32",
|
|
547
|
+
name: "maxPeriodClaimers",
|
|
548
|
+
type: "uint32",
|
|
549
|
+
},
|
|
550
|
+
{
|
|
551
|
+
internalType: "uint256",
|
|
552
|
+
name: "minClaimAmount",
|
|
553
|
+
type: "uint256",
|
|
554
|
+
},
|
|
555
|
+
{
|
|
556
|
+
internalType: "uint32",
|
|
557
|
+
name: "managerFeeBps",
|
|
558
|
+
type: "uint32",
|
|
559
|
+
},
|
|
560
|
+
],
|
|
561
|
+
internalType: "struct UBIPool.ExtendedSettings",
|
|
562
|
+
name: "_extendedSettings",
|
|
563
|
+
type: "tuple",
|
|
564
|
+
},
|
|
506
565
|
],
|
|
507
566
|
name: "createPool",
|
|
508
567
|
outputs: [
|
|
@@ -766,6 +825,19 @@ const _abi = [
|
|
|
766
825
|
stateMutability: "view",
|
|
767
826
|
type: "function",
|
|
768
827
|
},
|
|
828
|
+
{
|
|
829
|
+
inputs: [
|
|
830
|
+
{
|
|
831
|
+
internalType: "address",
|
|
832
|
+
name: "member",
|
|
833
|
+
type: "address",
|
|
834
|
+
},
|
|
835
|
+
],
|
|
836
|
+
name: "removeMember",
|
|
837
|
+
outputs: [],
|
|
838
|
+
stateMutability: "nonpayable",
|
|
839
|
+
type: "function",
|
|
840
|
+
},
|
|
769
841
|
{
|
|
770
842
|
inputs: [
|
|
771
843
|
{
|
|
@@ -904,7 +976,7 @@ const _abi = [
|
|
|
904
976
|
] as const;
|
|
905
977
|
|
|
906
978
|
const _bytecode =
|
|
907
|
-
"0x60a06040523060805234801561001457600080fd5b5060805161390461004c600039600081816107b4015281816107f701528181610888015281816108cb0152610ab501526139046000f3fe6080604052600436106200014c5760003560e01c806301ffc9a71462000151578063038defd7146200018b578063248a9ca314620001c157806324a9d85314620001f55780632f2ff15d146200023157806336568abe14620002585780633659cfe6146200027d5780634690484014620002a25780634f1ef28614620002d35780634f962c8c14620002ea57806352d1902d146200030f57806357b7076714620003275780638abf6077146200034c5780638e819e54146200036e57806391d1485414620003935780639cedd89b14620003b85780639cf5c61314620003f2578063a217fddf1462000417578063a8aba550146200042e578063ac4afa381462000453578063ca6d56dc1462000478578063d547741f146200049d578063e9e50b0414620004c2578063f9a6694614620004e7578063fadd65c3146200050c578063fcf1e0091462000540575b600080fd5b3480156200015e57600080fd5b50620001766200017036600462001d7c565b62000565565b60405190151581526020015b60405180910390f35b3480156200019857600080fd5b50620001b0620001aa36600462001dbe565b6200059d565b604051620001829392919062001e32565b348015620001ce57600080fd5b50620001e6620001e036600462001e6d565b620006e8565b60405190815260200162000182565b3480156200020257600080fd5b5060fe546200021b90600160a01b900463ffffffff1681565b60405163ffffffff909116815260200162000182565b3480156200023e57600080fd5b50620002566200025036600462001e87565b620006fd565b005b3480156200026557600080fd5b50620002566200027736600462001e87565b62000724565b3480156200028a57600080fd5b50620002566200029c36600462001dbe565b620007aa565b348015620002af57600080fd5b5060fe54620002c4906001600160a01b031681565b60405162000182919062001eba565b62000256620002e436600462001f8b565b6200087e565b348015620002f757600080fd5b50620002566200030936600462002018565b6200093f565b3480156200031c57600080fd5b50620001e662000aa8565b3480156200033457600080fd5b50620002c46200034636600462002063565b62000b59565b3480156200035957600080fd5b5060fb54620002c4906001600160a01b031681565b3480156200037b57600080fd5b50620002566200038d366004620020ac565b62000b92565b348015620003a057600080fd5b5062000176620003b236600462001e87565b62000d38565b348015620003c557600080fd5b50620002c4620003d736600462001e6d565b60fd602052600090815260409020546001600160a01b031681565b348015620003ff57600080fd5b5062000256620004113660046200211e565b62000d63565b3480156200042457600080fd5b50620001e6600081565b3480156200043b57600080fd5b50620002c46200044d366004620021fb565b62000dcc565b3480156200046057600080fd5b50620002c46200047236600462001e6d565b62000f0e565b3480156200048557600080fd5b50620002566200049736600462001dbe565b62000f3a565b348015620004aa57600080fd5b5062000256620004bc36600462001e87565b62000fb5565b348015620004cf57600080fd5b5062000256620004e1366004620022e3565b62000fd7565b348015620004f457600080fd5b50620002c462000506366004620021fb565b62001024565b3480156200051957600080fd5b50620005316200052b36600462001dbe565b6200115b565b6040516200018291906200231d565b3480156200054d57600080fd5b50620002566200055f36600462001dbe565b620011d3565b60006001600160e01b03198216637965db0b60e01b14806200059757506301ffc9a760e01b6001600160e01b03198316145b92915050565b60fc60205260009081526040902080548190620005ba906200236c565b80601f0160208091040260200160405190810160405280929190818152602001828054620005e8906200236c565b8015620006395780601f106200060d5761010080835404028352916020019162000639565b820191906000526020600020905b8154815290600101906020018083116200061b57829003601f168201915b5050506001840154600285018054949560ff9092169491935091506200065f906200236c565b80601f01602080910402602001604051908101604052809291908181526020018280546200068d906200236c565b8015620006de5780601f10620006b257610100808354040283529160200191620006de565b820191906000526020600020905b815481529060010190602001808311620006c057829003601f168201915b5050505050905083565b60009081526065602052604090206001015490565b6200070882620006e8565b62000713816200127e565b6200071f83836200128a565b505050565b6001600160a01b03811633146200079a5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b620007a6828262001314565b5050565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003620007f55760405162461bcd60e51b81526004016200079190620023a8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316620008296200137e565b6001600160a01b031614620008525760405162461bcd60e51b81526004016200079190620023e3565b6200085d816200139b565b604080516000808252602082019092526200087b91839190620013a8565b50565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003620008c95760405162461bcd60e51b81526004016200079190620023a8565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316620008fd6200137e565b6001600160a01b031614620009265760405162461bcd60e51b81526004016200079190620023e3565b62000931826200139b565b620007a682826001620013a8565b81806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200098e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620009b491906200241e565b336040518363ffffffff1660e01b8152600401620009d492919062002438565b602060405180830381865afa158015620009f2573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000a1891906200244f565b151560000362000a3b57604051631d799a6d60e21b815260040160405180910390fd5b6001600160a01b038316600090815260fc6020526040902062000a5f8382620024c1565b50826001600160a01b03167f941ad6ac0538b96f9e89b9b52ec11031b50591baa2f16c0cdf1f94c69f389d6d8360405162000a9b91906200258d565b60405180910390a2505050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161462000b455760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840162000791565b506000805160206200388883398151915290565b60ff602052816000526040600020818154811062000b7657600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff161580801562000bb35750600054600160ff909116105b8062000bd8575062000bc53062001520565b15801562000bd8575060005460ff166001145b62000c3d5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000791565b6000805460ff19166001179055801562000c61576000805461ff0019166101001790555b8360405162000c709062001d52565b62000c7c919062001eba565b604051809103906000f08015801562000c99573d6000803e3d6000fd5b5060fb80546001600160a01b0319166001600160a01b0392831617905560fe80549185166001600160c01b031990921691909117600160a01b63ffffffff85160217905562000cea6000866200152f565b801562000d31576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600062000d70816200127e565b6001600160a01b038316600081815260fc6020908152604091829020600101805460ff191686151590811790915591519182527fafdc942e2e075abc791516f168aed9293862095eb31c0dab19c8d0d061018a93910162000a9b565b8351602080860191909120600090815260fd909152604081205485906001600160a01b0316801562000ef357806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000e46573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000e6c91906200241e565b336040518363ffffffff1660e01b815260040162000e8c92919062002438565b602060405180830381865afa15801562000eaa573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ed091906200244f565b151560000362000ef357604051631d799a6d60e21b815260040160405180910390fd5b62000f038787878760006200153b565b979650505050505050565b610100818154811062000f2057600080fd5b6000918252602090912001546001600160a01b0316905081565b33600090815260fc60205260409020600201805462000f59906200236c565b905060000362000f7c57604051630cc15fbb60e11b815260040160405180910390fd5b6001600160a01b0316600090815260ff602090815260408220805460018101825590835291200180546001600160a01b03191633179055565b62000fc082620006e8565b62000fcb816200127e565b6200071f838362001314565b600062000fe4816200127e565b5060fe80546001600160a01b039093166001600160a01b031963ffffffff909316600160a01b02929092166001600160c01b031990931692909217179055565b8351602080860191909120600090815260fd909152604081205485906001600160a01b031680156200114b57806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200109e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620010c491906200241e565b336040518363ffffffff1660e01b8152600401620010e492919062002438565b602060405180830381865afa15801562001102573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200112891906200244f565b15156000036200114b57604051631d799a6d60e21b815260040160405180910390fd5b62000f038787878760016200153b565b6001600160a01b038116600090815260ff6020908152604091829020805483518184028101840190945280845260609392830182828015620011c757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311620011a8575b50505050509050919050565b6000620011e0816200127e565b60fb54604051631b2ce7f360e11b81526001600160a01b0390911690633659cfe6906200121290859060040162001eba565b600060405180830381600087803b1580156200122d57600080fd5b505af115801562001242573d6000803e3d6000fd5b50506040516001600160a01b03851692507f71ce7583e9b7e543de8a69a6af369c0b3528b287064f9dce26a38025e36dc2c79150600090a25050565b6200087b8133620018c8565b62001296828262000d38565b620007a65760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620012d03390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b62001320828262000d38565b15620007a65760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008051602062003888833981519152546001600160a01b031690565b6000620007a6816200127e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615620013de576200071f836200192c565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200143b575060408051601f3d908101601f1916820190925262001438918101906200241e565b60015b620014a05760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000791565b600080516020620038888339815191528114620015125760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000791565b506200071f838383620019cb565b6001600160a01b03163b151590565b620007a682826200128a565b60008063c49120b460e01b8585306040516024016200155d939291906200261f565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b03199093169290921790915290508215620015ea5760fb546040516001600160a01b03909116908290620015b79062001d60565b620015c492919062002659565b604051809103906000f080158015620015e1573d6000803e3d6000fd5b509150620016a1565b60fb60009054906101000a90046001600160a01b03166001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200163e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062001664919062002687565b81604051620016739062001d6e565b6200168092919062002659565b604051809103906000f0801580156200169d573d6000803e3d6000fd5b5091505b8651602080890191909120600090815260fd90915260409020546001600160a01b0316620016fc578651602080890191909120600090815260fd9091526040902080546001600160a01b0319166001600160a01b0384161790555b6001600160a01b038216600090815260fc60205260409020620017208782620024c1565b506001600160a01b038216600090815260fc60205260409020600201620017488882620024c1565b50604051632f2ff15d60e01b81526001600160a01b03831690632f2ff15d906200177a90600090339060040162002438565b600060405180830381600087803b1580156200179557600080fd5b505af1158015620017aa573d6000803e3d6000fd5b5050604051631b2b455f60e11b81526001600160a01b03851692506336568abe9150620017df90600090309060040162002438565b600060405180830381600087803b158015620017fa57600080fd5b505af11580156200180f573d6000803e3d6000fd5b505061010080546001810182556000919091527f45e010b9ae401e2eb71529478da8bd513a9bdc2d095a111e324f5b95c09ed87b0180546001600160a01b0319166001600160a01b03861617905550506040516200186f908890620026a7565b6040518091039020826001600160a01b03167f6e28d0056b9996bf985e7aee9b92fcd65006bee12b5b5ab52af0885cec63bd4c888888604051620018b693929190620026c5565b60405180910390a35095945050505050565b620018d4828262000d38565b620007a657620018e481620019fc565b620018f183602062001a0f565b60405160200162001904929190620026fc565b60408051601f198184030181529082905262461bcd60e51b825262000791916004016200258d565b620019378162001520565b6200199b5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000791565b6000805160206200388883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b620019d68362001bcf565b600082511180620019e45750805b156200071f57620019f6838362001c11565b50505050565b6060620005976001600160a01b03831660145b6060600062001a2083600262002785565b62001a2d9060026200279f565b6001600160401b0381111562001a475762001a4762001ece565b6040519080825280601f01601f19166020018201604052801562001a72576020820181803683370190505b509050600360fc1b8160008151811062001a905762001a90620027b5565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062001ac25762001ac2620027b5565b60200101906001600160f81b031916908160001a905350600062001ae884600262002785565b62001af59060016200279f565b90505b600181111562001b77576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062001b2d5762001b2d620027b5565b1a60f81b82828151811062001b465762001b46620027b5565b60200101906001600160f81b031916908160001a90535060049490941c9362001b6f81620027cb565b905062001af8565b50831562001bc85760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640162000791565b9392505050565b62001bda816200192c565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062001c1e8362001520565b62001c7b5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840162000791565b600080846001600160a01b03168460405162001c989190620026a7565b600060405180830381855af49150503d806000811462001cd5576040519150601f19603f3d011682016040523d82523d6000602084013e62001cda565b606091505b509150915062001d058282604051806060016040528060278152602001620038a86027913962001d0e565b95945050505050565b6060831562001d1f57508162001bc8565b62001bc8838381511562001d365781518083602001fd5b8060405162461bcd60e51b81526004016200079191906200258d565b6104c980620027e683390190565b6106cd8062002caf83390190565b6104ec806200337c83390190565b60006020828403121562001d8f57600080fd5b81356001600160e01b03198116811462001bc857600080fd5b6001600160a01b03811681146200087b57600080fd5b60006020828403121562001dd157600080fd5b813562001bc88162001da8565b60005b8381101562001dfb57818101518382015260200162001de1565b50506000910152565b6000815180845262001e1e81602086016020860162001dde565b601f01601f19169290920160200192915050565b60608152600062001e47606083018662001e04565b8415156020840152828103604084015262001e63818562001e04565b9695505050505050565b60006020828403121562001e8057600080fd5b5035919050565b6000806040838503121562001e9b57600080fd5b82359150602083013562001eaf8162001da8565b809150509250929050565b6001600160a01b0391909116815260200190565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b038111828210171562001f095762001f0962001ece565b60405290565b60006001600160401b038084111562001f2c5762001f2c62001ece565b604051601f8501601f19908116603f0116810190828211818310171562001f575762001f5762001ece565b8160405280935085815286868601111562001f7157600080fd5b858560208301376000602087830101525050509392505050565b6000806040838503121562001f9f57600080fd5b823562001fac8162001da8565b915060208301356001600160401b0381111562001fc857600080fd5b8301601f8101851362001fda57600080fd5b62001feb8582356020840162001f0f565b9150509250929050565b600082601f8301126200200757600080fd5b62001bc88383356020850162001f0f565b600080604083850312156200202c57600080fd5b8235620020398162001da8565b915060208301356001600160401b038111156200205557600080fd5b62001feb8582860162001ff5565b600080604083850312156200207757600080fd5b8235620020848162001da8565b946020939093013593505050565b803563ffffffff81168114620020a757600080fd5b919050565b60008060008060808587031215620020c357600080fd5b8435620020d08162001da8565b93506020850135620020e28162001da8565b92506040850135620020f48162001da8565b9150620021046060860162002092565b905092959194509250565b80151581146200087b57600080fd5b600080604083850312156200213257600080fd5b82356200213f8162001da8565b9150602083013562001eaf816200210f565b600060c082840312156200216457600080fd5b60405160c081016001600160401b038111828210171562002189576200218962001ece565b6040529050806200219a8362002092565b8152620021aa6020840162002092565b6020820152620021bd6040840162002092565b60408201526060830135620021d2816200210f565b606082015260808381013590820152620021ef60a0840162002092565b60a08201525092915050565b6000806000808486036101808112156200221457600080fd5b85356001600160401b03808211156200222c57600080fd5b6200223a89838a0162001ff5565b965060208801359150808211156200225157600080fd5b50620022608882890162001ff5565b9450506080603f19820112156200227657600080fd5b506200228162001ee4565b6040860135620022918162001da8565b81526060860135620022a38162001da8565b60208201526080860135620022b88162001da8565b604082015260a0860135620022cd8162001da8565b60608201529150620021048660c0870162002151565b60008060408385031215620022f757600080fd5b8235620023048162001da8565b9150620023146020840162002092565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015620023605783516001600160a01b03168352928401929184019160010162002339565b50909695505050505050565b600181811c908216806200238157607f821691505b602082108103620023a257634e487b7160e01b600052602260045260246000fd5b50919050565b6020808252602c908201526000805160206200386883398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c908201526000805160206200386883398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156200243157600080fd5b5051919050565b9182526001600160a01b0316602082015260400190565b6000602082840312156200246257600080fd5b815162001bc8816200210f565b601f8211156200071f57600081815260208120601f850160051c81016020861015620024985750805b601f850160051c820191505b81811015620024b957828155600101620024a4565b505050505050565b81516001600160401b03811115620024dd57620024dd62001ece565b620024f581620024ee84546200236c565b846200246f565b602080601f8311600181146200252d5760008415620025145750858301515b600019600386901b1c1916600185901b178555620024b9565b600085815260208120601f198616915b828110156200255e578886015182559484019460019091019084016200253d565b50858210156200257d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600062001bc8602083018462001e04565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260609182015116910152565b63ffffffff808251168352806020830151166020840152806040830151166040840152606082015115156060840152608082015160808401528060a08301511660a0840152505050565b6101608101620026308286620025a2565b6200263f6080830185620025d5565b6001600160a01b0392909216610140919091015292915050565b6001600160a01b03831681526040602082018190526000906200267f9083018462001e04565b949350505050565b6000602082840312156200269a57600080fd5b815162001bc88162001da8565b60008251620026bb81846020870162001dde565b9190910192915050565b6000610160808352620026db8184018762001e04565b915050620026ed6020830185620025a2565b6200267f60a0830184620025d5565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516200273081601785016020880162001dde565b7001034b99036b4b9b9b4b733903937b6329607d1b60179184019182015283516200276381602884016020880162001dde565b01602801949350505050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176200059757620005976200276f565b808201808211156200059757620005976200276f565b634e487b7160e01b600052603260045260246000fd5b600081620027dd57620027dd6200276f565b50600019019056fe608060405234801561001057600080fd5b506040516104c93803806104c983398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610350806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100aa575b600080fd5b61006f61006a3660046102ea565b6100bd565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f610105565b61007e610119565b61006f6100b83660046102ea565b610128565b6100c56101a6565b6100ce81610205565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61010d6101a6565b610117600061029a565b565b6000546001600160a01b031690565b6101306101a6565b6001600160a01b03811661019a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6101a38161029a565b50565b336101af610119565b6001600160a01b0316146101175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610191565b6001600160a01b0381163b6102785760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b6064820152608401610191565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102fc57600080fd5b81356001600160a01b038116811461031357600080fd5b939250505056fea264697066735822122038970e7cf09dc887c70d5260fa612ed542a4b7fc825586d54bcad83fc1ebdd9164736f6c6343000813003360806040526040516106cd3803806106cd83398101604081905261002291610421565b61002e82826000610035565b505061054b565b61003e836100f6565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100f1576100ef836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e991906104e1565b8361026e565b505b505050565b6100ff8161029a565b61015e5760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101c8816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561019f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c391906104e1565b61029a565b61022d5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610155565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029383836040518060600160405280602781526020016106a6602791396102a9565b9392505050565b6001600160a01b03163b151590565b6060600080856001600160a01b0316856040516102c691906104fc565b600060405180830381855af49150503d8060008114610301576040519150601f19603f3d011682016040523d82523d6000602084013e610306565b606091505b50909250905061031886838387610322565b9695505050505050565b6060831561038f5782516000036103885761033c8561029a565b6103885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610155565b5081610399565b61039983836103a1565b949350505050565b8151156103b15781518083602001fd5b8060405162461bcd60e51b81526004016101559190610518565b80516001600160a01b03811681146103e257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015610418578181015183820152602001610400565b50506000910152565b6000806040838503121561043457600080fd5b61043d836103cb565b60208401519092506001600160401b038082111561045a57600080fd5b818501915085601f83011261046e57600080fd5b815181811115610480576104806103e7565b604051601f8201601f19908116603f011681019083821181831017156104a8576104a86103e7565b816040528281528860208487010111156104c157600080fd5b6104d28360208301602088016103fd565b80955050505050509250929050565b6000602082840312156104f357600080fd5b610293826103cb565b6000825161050e8184602087016103fd565b9190910192915050565b60208152600082518060208401526105378160408501602087016103fd565b601f01601f19169190910160400192915050565b61014c8061055a6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610029565b6100c2565b565b600061005c7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bd91906100e6565b905090565b3660008037600080366000845af43d6000803e8080156100e1573d6000f35b3d6000fd5b6000602082840312156100f857600080fd5b81516001600160a01b038116811461010f57600080fd5b939250505056fea26469706673582212207b4f4f4bd905b812712d76801c617b8aa3f4c3f8d6d9e59a18563606189dd4e564736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656460806040526040516104ec3803806104ec833981016040819052610022916102e9565b61002e82826000610035565b5050610406565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104c56027913961017e565b9392505050565b6100d6816101f7565b61013d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019b91906103b7565b600060405180830381855af49150503d80600081146101d6576040519150601f19603f3d011682016040523d82523d6000602084013e6101db565b606091505b5090925090506101ed86838387610206565b9695505050505050565b6001600160a01b03163b151590565b6060831561027357825160000361026c57610220856101f7565b61026c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610134565b508161027d565b61027d8383610285565b949350505050565b8151156102955781518083602001fd5b8060405162461bcd60e51b815260040161013491906103d3565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102e05781810151838201526020016102c8565b50506000910152565b600080604083850312156102fc57600080fd5b82516001600160a01b038116811461031357600080fd5b60208401519092506001600160401b038082111561033057600080fd5b818501915085601f83011261034457600080fd5b815181811115610356576103566102af565b604051601f8201601f19908116603f0116810190838211818310171561037e5761037e6102af565b8160405282815288602084870101111561039757600080fd5b6103a88360208301602088016102c5565b80955050505050509250929050565b600082516103c98184602087016102c5565b9190910192915050565b60208152600082518060208401526103f28160408501602087016102c5565b601f01601f19169190910160400192915050565b60b1806104146000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea2646970667358221220a4cda07e5b291f61d81b4ee016ef5ca6a806aa56384b08ff8d52828dbed4d68d64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656446756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220b52d528c0ed4f231a7b96b0b2f5a368821a266b3a17cc27ff793f31a9f17a17f64736f6c63430008130033";
|
|
979
|
+
"0x60a06040523060805234801561001457600080fd5b50608051613bf961004c60003960008181610991015281816109d401528181610ba901528181610bec0152610dd60152613bf96000f3fe608060405260043610620001585760003560e01c806301ffc9a7146200015d578063038defd714620001975780630b1ca49a14620001cd578063248a9ca314620001f457806324a9d85314620002285780632f2ff15d146200026457806336568abe14620002895780633659cfe614620002ae5780634507464614620002d35780634690484014620003075780634f1ef28614620003295780634f962c8c146200034057806352d1902d146200036557806357b70767146200037d5780638abf607714620003a25780638e819e5414620003c457806391d1485414620003e95780639cedd89b146200040e5780639cf5c6131462000448578063a217fddf146200046d578063ac4afa381462000484578063aec133d214620004a9578063ca6d56dc14620004ce578063d547741f14620004f3578063e9e50b041462000518578063fadd65c3146200053d578063fcf1e0091462000571575b600080fd5b3480156200016a57600080fd5b50620001826200017c36600462001f4f565b62000596565b60405190151581526020015b60405180910390f35b348015620001a457600080fd5b50620001bc620001b636600462001f91565b620005ce565b6040516200018e9392919062002005565b348015620001da57600080fd5b50620001f2620001ec36600462001f91565b62000719565b005b3480156200020157600080fd5b50620002196200021336600462002040565b620008c9565b6040519081526020016200018e565b3480156200023557600080fd5b5060fe546200024e90600160a01b900463ffffffff1681565b60405163ffffffff90911681526020016200018e565b3480156200027157600080fd5b50620001f2620002833660046200205a565b620008de565b3480156200029657600080fd5b50620001f2620002a83660046200205a565b62000905565b348015620002bb57600080fd5b50620001f2620002cd36600462001f91565b62000987565b348015620002e057600080fd5b50620002f8620002f2366004620022c5565b62000a5b565b6040516200018e9190620023cd565b3480156200031457600080fd5b5060fe54620002f8906001600160a01b031681565b620001f26200033a366004620023e1565b62000b9f565b3480156200034d57600080fd5b50620001f26200035f3660046200244b565b62000c60565b3480156200037257600080fd5b506200021962000dc9565b3480156200038a57600080fd5b50620002f86200039c36600462002496565b62000e7a565b348015620003af57600080fd5b5060fb54620002f8906001600160a01b031681565b348015620003d157600080fd5b50620001f2620003e3366004620024c5565b62000eb3565b348015620003f657600080fd5b5062000182620004083660046200205a565b62001059565b3480156200041b57600080fd5b50620002f86200042d36600462002040565b60fd602052600090815260409020546001600160a01b031681565b3480156200045557600080fd5b50620001f26200046736600462002528565b62001084565b3480156200047a57600080fd5b5062000219600081565b3480156200049157600080fd5b50620002f8620004a336600462002040565b620010ed565b348015620004b657600080fd5b50620002f8620004c8366004620022c5565b62001119565b348015620004db57600080fd5b50620001f2620004ed36600462001f91565b62001251565b3480156200050057600080fd5b50620001f2620005123660046200205a565b620012cc565b3480156200052557600080fd5b50620001f2620005373660046200255b565b620012ee565b3480156200054a57600080fd5b50620005626200055c36600462001f91565b6200133b565b6040516200018e919062002595565b3480156200057e57600080fd5b50620001f26200059036600462001f91565b620013b3565b60006001600160e01b03198216637965db0b60e01b1480620005c857506301ffc9a760e01b6001600160e01b03198316145b92915050565b60fc60205260009081526040902080548190620005eb90620025e4565b80601f01602080910402602001604051908101604052809291908181526020018280546200061990620025e4565b80156200066a5780601f106200063e576101008083540402835291602001916200066a565b820191906000526020600020905b8154815290600101906020018083116200064c57829003601f168201915b5050506001840154600285018054949560ff9092169491935091506200069090620025e4565b80601f0160208091040260200160405190810160405280929190818152602001828054620006be90620025e4565b80156200070f5780601f10620006e3576101008083540402835291602001916200070f565b820191906000526020600020905b815481529060010190602001808311620006f157829003601f168201915b5050505050905083565b33600090815260fc6020526040902060020180546200073890620025e4565b90506000036200075b57604051630cc15fbb60e11b815260040160405180910390fd5b60005b6001600160a01b038216600090815260ff6020526040902054811015620008c5576001600160a01b038216600090815260ff60205260409020805433919083908110620007af57620007af62002620565b6000918252602090912001546001600160a01b031603620008b0576001600160a01b038216600090815260ff602052604090208054620007f2906001906200264c565b8154811062000805576200080562002620565b60009182526020808320909101546001600160a01b03858116845260ff909252604090922080549190921691908390811062000845576200084562002620565b600091825260208083209190910180546001600160a01b0319166001600160a01b03948516179055918416815260ff909152604090208054806200088d576200088d62002662565b600082815260209020810160001990810180546001600160a01b03191690550190555b80620008bc8162002678565b9150506200075e565b5050565b60009081526065602052604090206001015490565b620008e982620008c9565b620008f4816200145e565b6200090083836200146a565b505050565b6001600160a01b03811633146200097b5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084015b60405180910390fd5b620008c58282620014f4565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003620009d25760405162461bcd60e51b8152600401620009729062002694565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000a066200155e565b6001600160a01b03161462000a2f5760405162461bcd60e51b81526004016200097290620026cf565b62000a3a816200157b565b6040805160008082526020820190925262000a589183919062001588565b50565b8451602080870191909120600090815260fd909152604081205486906001600160a01b0316801562000b8257806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000ad5573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000afb91906200270a565b336040518363ffffffff1660e01b815260040162000b1b92919062002724565b602060405180830381865afa15801562000b39573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000b5f91906200273b565b151560000362000b8257604051631d799a6d60e21b815260040160405180910390fd5b62000b938888888888600162001700565b98975050505050505050565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300362000bea5760405162461bcd60e51b8152600401620009729062002694565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031662000c1e6200155e565b6001600160a01b03161462000c475760405162461bcd60e51b81526004016200097290620026cf565b62000c52826200157b565b620008c58282600162001588565b81806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000caf573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000cd591906200270a565b336040518363ffffffff1660e01b815260040162000cf592919062002724565b602060405180830381865afa15801562000d13573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000d3991906200273b565b151560000362000d5c57604051631d799a6d60e21b815260040160405180910390fd5b6001600160a01b038316600090815260fc6020526040902062000d808382620027ad565b50826001600160a01b03167f941ad6ac0538b96f9e89b9b52ec11031b50591baa2f16c0cdf1f94c69f389d6d8360405162000dbc919062002879565b60405180910390a2505050565b6000306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161462000e665760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b606482015260840162000972565b5060008051602062003b7d83398151915290565b60ff602052816000526040600020818154811062000e9757600080fd5b6000918252602090912001546001600160a01b03169150829050565b600054610100900460ff161580801562000ed45750600054600160ff909116105b8062000ef9575062000ee63062001a80565b15801562000ef9575060005460ff166001145b62000f5e5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840162000972565b6000805460ff19166001179055801562000f82576000805461ff0019166101001790555b8360405162000f919062001f25565b62000f9d9190620023cd565b604051809103906000f08015801562000fba573d6000803e3d6000fd5b5060fb80546001600160a01b0319166001600160a01b0392831617905560fe80549185166001600160c01b031990921691909117600160a01b63ffffffff8516021790556200100b60008662001a8f565b801562001052576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b60009182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600062001091816200145e565b6001600160a01b038316600081815260fc6020908152604091829020600101805460ff191686151590811790915591519182527fafdc942e2e075abc791516f168aed9293862095eb31c0dab19c8d0d061018a93910162000dbc565b6101008181548110620010ff57600080fd5b6000918252602090912001546001600160a01b0316905081565b8451602080870191909120600090815260fd909152604081205486906001600160a01b031680156200124057806001600160a01b03166391d14854826001600160a01b031663a217fddf6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562001193573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620011b991906200270a565b336040518363ffffffff1660e01b8152600401620011d992919062002724565b602060405180830381865afa158015620011f7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200121d91906200273b565b15156000036200124057604051631d799a6d60e21b815260040160405180910390fd5b62000b938888888888600062001700565b33600090815260fc6020526040902060020180546200127090620025e4565b90506000036200129357604051630cc15fbb60e11b815260040160405180910390fd5b6001600160a01b0316600090815260ff602090815260408220805460018101825590835291200180546001600160a01b03191633179055565b620012d782620008c9565b620012e2816200145e565b620009008383620014f4565b6000620012fb816200145e565b5060fe80546001600160a01b039093166001600160a01b031963ffffffff909316600160a01b02929092166001600160c01b031990931692909217179055565b6001600160a01b038116600090815260ff6020908152604091829020805483518184028101840190945280845260609392830182828015620013a757602002820191906000526020600020905b81546001600160a01b0316815260019091019060200180831162001388575b50505050509050919050565b6000620013c0816200145e565b60fb54604051631b2ce7f360e11b81526001600160a01b0390911690633659cfe690620013f2908590600401620023cd565b600060405180830381600087803b1580156200140d57600080fd5b505af115801562001422573d6000803e3d6000fd5b50506040516001600160a01b03851692507f71ce7583e9b7e543de8a69a6af369c0b3528b287064f9dce26a38025e36dc2c79150600090a25050565b62000a58813362001a9b565b62001476828262001059565b620008c55760008281526065602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620014b03390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b62001500828262001059565b15620008c55760008281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60008051602062003b7d833981519152546001600160a01b031690565b6000620008c5816200145e565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615620015be57620009008362001aff565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156200161b575060408051601f3d908101601f1916820190925262001618918101906200270a565b60015b620016805760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b606482015260840162000972565b60008051602062003b7d8339815191528114620016f25760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b606482015260840162000972565b506200090083838362001b9e565b600080858585306040516024016200171c949392919062002917565b60408051601f198184030181529190526020810180516001600160e01b031663235b53a160e11b17905290508215620017a15760fb546040516001600160a01b039091169082906200176e9062001f33565b6200177b9291906200297a565b604051809103906000f08015801562001798573d6000803e3d6000fd5b50915062001858565b60fb60009054906101000a90046001600160a01b03166001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620017f5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200181b9190620029a8565b816040516200182a9062001f41565b620018379291906200297a565b604051809103906000f08015801562001854573d6000803e3d6000fd5b5091505b87516020808a0191909120600090815260fd90915260409020546001600160a01b0316620018b35787516020808a0191909120600090815260fd9091526040902080546001600160a01b0319166001600160a01b0384161790555b6001600160a01b038216600090815260fc60205260409020620018d78882620027ad565b506001600160a01b038216600090815260fc60205260409020600201620018ff8982620027ad565b50604051632f2ff15d60e01b81526001600160a01b03831690632f2ff15d906200193190600090339060040162002724565b600060405180830381600087803b1580156200194c57600080fd5b505af115801562001961573d6000803e3d6000fd5b5050604051631b2b455f60e11b81526001600160a01b03851692506336568abe91506200199690600090309060040162002724565b600060405180830381600087803b158015620019b157600080fd5b505af1158015620019c6573d6000803e3d6000fd5b505061010080546001810182556000919091527f45e010b9ae401e2eb71529478da8bd513a9bdc2d095a111e324f5b95c09ed87b0180546001600160a01b0319166001600160a01b038616179055505060405162001a26908990620029c8565b6040518091039020826001600160a01b03167f2d89f584379c0b23270129f3ee10b4bfdd48e940725c460ee90c3b42b610644089898960405162001a6d93929190620029e6565b60405180910390a3509695505050505050565b6001600160a01b03163b151590565b620008c582826200146a565b62001aa7828262001059565b620008c55762001ab78162001bcf565b62001ac483602062001be2565b60405160200162001ad792919062002a1d565b60408051601f198184030181529082905262461bcd60e51b8252620009729160040162002879565b62001b0a8162001a80565b62001b6e5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b606482015260840162000972565b60008051602062003b7d83398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b62001ba98362001da2565b60008251118062001bb75750805b15620009005762001bc9838362001de4565b50505050565b6060620005c86001600160a01b03831660145b6060600062001bf383600262002a90565b62001c0090600262002aaa565b6001600160401b0381111562001c1a5762001c1a6200208d565b6040519080825280601f01601f19166020018201604052801562001c45576020820181803683370190505b509050600360fc1b8160008151811062001c635762001c6362002620565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811062001c955762001c9562002620565b60200101906001600160f81b031916908160001a905350600062001cbb84600262002a90565b62001cc890600162002aaa565b90505b600181111562001d4a576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811062001d005762001d0062002620565b1a60f81b82828151811062001d195762001d1962002620565b60200101906001600160f81b031916908160001a90535060049490941c9362001d428162002ac0565b905062001ccb565b50831562001d9b5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640162000972565b9392505050565b62001dad8162001aff565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b606062001df18362001a80565b62001e4e5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840162000972565b600080846001600160a01b03168460405162001e6b9190620029c8565b600060405180830381855af49150503d806000811462001ea8576040519150601f19603f3d011682016040523d82523d6000602084013e62001ead565b606091505b509150915062001ed8828260405180606001604052806027815260200162003b9d6027913962001ee1565b95945050505050565b6060831562001ef257508162001d9b565b62001d9b838381511562001f095781518083602001fd5b8060405162461bcd60e51b815260040162000972919062002879565b6104c98062002adb83390190565b6106cd8062002fa483390190565b6104ec806200367183390190565b60006020828403121562001f6257600080fd5b81356001600160e01b03198116811462001d9b57600080fd5b6001600160a01b038116811462000a5857600080fd5b60006020828403121562001fa457600080fd5b813562001d9b8162001f7b565b60005b8381101562001fce57818101518382015260200162001fb4565b50506000910152565b6000815180845262001ff181602086016020860162001fb1565b601f01601f19169290920160200192915050565b6060815260006200201a606083018662001fd7565b8415156020840152828103604084015262002036818562001fd7565b9695505050505050565b6000602082840312156200205357600080fd5b5035919050565b600080604083850312156200206e57600080fd5b823591506020830135620020828162001f7b565b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b604051608081016001600160401b0381118282101715620020c857620020c86200208d565b60405290565b60006001600160401b0380841115620020eb57620020eb6200208d565b604051601f8501601f19908116603f011681019082821181831017156200211657620021166200208d565b816040528093508581528686860111156200213057600080fd5b858560208301376000602087830101525050509392505050565b600082601f8301126200215c57600080fd5b62001d9b83833560208501620020ce565b803563ffffffff811681146200218257600080fd5b919050565b801515811462000a5857600080fd5b600060e08284031215620021a957600080fd5b60405160e081016001600160401b0381118282101715620021ce57620021ce6200208d565b604052905080620021df836200216d565b8152620021ef602084016200216d565b602082015262002202604084016200216d565b60408201526060830135620022178162002187565b6060820152608083810135908201526200223460a084016200216d565b60a082015260c0830135620022498162002187565b60c0919091015292915050565b6000606082840312156200226957600080fd5b604051606081016001600160401b03811182821017156200228e576200228e6200208d565b6040529050806200229f836200216d565b815260208301356020820152620022b9604084016200216d565b60408201525092915050565b6000806000806000858703610200811215620022e057600080fd5b86356001600160401b0380821115620022f857600080fd5b620023068a838b016200214a565b975060208901359150808211156200231d57600080fd5b506200232c89828a016200214a565b9550506080603f19820112156200234257600080fd5b506200234d620020a3565b60408701356200235d8162001f7b565b815260608701356200236f8162001f7b565b60208201526080870135620023848162001f7b565b604082015260a0870135620023998162001f7b565b60608201529250620023af8760c0880162002196565b9150620023c1876101a0880162002256565b90509295509295909350565b6001600160a01b0391909116815260200190565b60008060408385031215620023f557600080fd5b8235620024028162001f7b565b915060208301356001600160401b038111156200241e57600080fd5b8301601f810185136200243057600080fd5b6200244185823560208401620020ce565b9150509250929050565b600080604083850312156200245f57600080fd5b82356200246c8162001f7b565b915060208301356001600160401b038111156200248857600080fd5b62002441858286016200214a565b60008060408385031215620024aa57600080fd5b8235620024b78162001f7b565b946020939093013593505050565b60008060008060808587031215620024dc57600080fd5b8435620024e98162001f7b565b93506020850135620024fb8162001f7b565b925060408501356200250d8162001f7b565b91506200251d606086016200216d565b905092959194509250565b600080604083850312156200253c57600080fd5b8235620025498162001f7b565b91506020830135620020828162002187565b600080604083850312156200256f57600080fd5b82356200257c8162001f7b565b91506200258c602084016200216d565b90509250929050565b6020808252825182820181905260009190848201906040850190845b81811015620025d85783516001600160a01b031683529284019291840191600101620025b1565b50909695505050505050565b600181811c90821680620025f957607f821691505b6020821081036200261a57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b81810381811115620005c857620005c862002636565b634e487b7160e01b600052603160045260246000fd5b6000600182016200268d576200268d62002636565b5060010190565b6020808252602c9082015260008051602062003b5d83398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c9082015260008051602062003b5d83398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000602082840312156200271d57600080fd5b5051919050565b9182526001600160a01b0316602082015260400190565b6000602082840312156200274e57600080fd5b815162001d9b8162002187565b601f8211156200090057600081815260208120601f850160051c81016020861015620027845750805b601f850160051c820191505b81811015620027a55782815560010162002790565b505050505050565b81516001600160401b03811115620027c957620027c96200208d565b620027e181620027da8454620025e4565b846200275b565b602080601f831160018114620028195760008415620028005750858301515b600019600386901b1c1916600185901b178555620027a5565b600085815260208120601f198616915b828110156200284a5788860151825594840194600190910190840162002829565b5085821015620028695787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208152600062001d9b602083018462001fd7565b80516001600160a01b03908116835260208083015182169084015260408083015182169084015260609182015116910152565b63ffffffff808251168352806020830151166020840152806040830151166040840152606082015115156060840152608082015160808401528060a08301511660a08401525060c0810151151560c08301525050565b6101e081016200292882876200288e565b620029376080830186620028c1565b835163ffffffff90811661016084015260208501516101808401526040909401519093166101a08201526001600160a01b03919091166101c09091015292915050565b6001600160a01b0383168152604060208201819052600090620029a09083018462001fd7565b949350505050565b600060208284031215620029bb57600080fd5b815162001d9b8162001f7b565b60008251620029dc81846020870162001fb1565b9190910192915050565b6000610180808352620029fc8184018762001fd7565b91505062002a0e60208301856200288e565b620029a060a0830184620028c1565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b81526000835162002a5181601785016020880162001fb1565b7001034b99036b4b9b9b4b733903937b6329607d1b601791840191820152835162002a8481602884016020880162001fb1565b01602801949350505050565b8082028115828204841417620005c857620005c862002636565b80820180821115620005c857620005c862002636565b60008162002ad25762002ad262002636565b50600019019056fe608060405234801561001057600080fd5b506040516104c93803806104c983398101604081905261002f9161013a565b61003833610047565b61004181610097565b5061016a565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6001600160a01b0381163b6101185760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f60448201527f6e206973206e6f74206120636f6e747261637400000000000000000000000000606482015260840160405180910390fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b60006020828403121561014c57600080fd5b81516001600160a01b038116811461016357600080fd5b9392505050565b610350806101796000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c80633659cfe61461005c5780635c60da1b14610071578063715018a61461009a5780638da5cb5b146100a2578063f2fde38b146100aa575b600080fd5b61006f61006a3660046102ea565b6100bd565b005b6001546001600160a01b03165b6040516001600160a01b03909116815260200160405180910390f35b61006f610105565b61007e610119565b61006f6100b83660046102ea565b610128565b6100c56101a6565b6100ce81610205565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b61010d6101a6565b610117600061029a565b565b6000546001600160a01b031690565b6101306101a6565b6001600160a01b03811661019a5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084015b60405180910390fd5b6101a38161029a565b50565b336101af610119565b6001600160a01b0316146101175760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610191565b6001600160a01b0381163b6102785760405162461bcd60e51b815260206004820152603360248201527f5570677261646561626c65426561636f6e3a20696d706c656d656e746174696f6044820152721b881a5cc81b9bdd08184818dbdb9d1c9858dd606a1b6064820152608401610191565b600180546001600160a01b0319166001600160a01b0392909216919091179055565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156102fc57600080fd5b81356001600160a01b038116811461031357600080fd5b939250505056fea264697066735822122038970e7cf09dc887c70d5260fa612ed542a4b7fc825586d54bcad83fc1ebdd9164736f6c6343000813003360806040526040516106cd3803806106cd83398101604081905261002291610421565b61002e82826000610035565b505061054b565b61003e836100f6565b6040516001600160a01b038416907f1cf3b03a6cf19fa2baba4df148e9dcabedea7f8a5c07840e207e5c089be95d3e90600090a260008251118061007f5750805b156100f1576100ef836001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156100c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100e991906104e1565b8361026e565b505b505050565b6100ff8161029a565b61015e5760405162461bcd60e51b815260206004820152602560248201527f455243313936373a206e657720626561636f6e206973206e6f74206120636f6e6044820152641d1c9858dd60da1b60648201526084015b60405180910390fd5b6101c8816001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561019f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906101c391906104e1565b61029a565b61022d5760405162461bcd60e51b815260206004820152603060248201527f455243313936373a20626561636f6e20696d706c656d656e746174696f6e206960448201526f1cc81b9bdd08184818dbdb9d1c9858dd60821b6064820152608401610155565b7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d5080546001600160a01b0319166001600160a01b0392909216919091179055565b606061029383836040518060600160405280602781526020016106a6602791396102a9565b9392505050565b6001600160a01b03163b151590565b6060600080856001600160a01b0316856040516102c691906104fc565b600060405180830381855af49150503d8060008114610301576040519150601f19603f3d011682016040523d82523d6000602084013e610306565b606091505b50909250905061031886838387610322565b9695505050505050565b6060831561038f5782516000036103885761033c8561029a565b6103885760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610155565b5081610399565b61039983836103a1565b949350505050565b8151156103b15781518083602001fd5b8060405162461bcd60e51b81526004016101559190610518565b80516001600160a01b03811681146103e257600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b60005b83811015610418578181015183820152602001610400565b50506000910152565b6000806040838503121561043457600080fd5b61043d836103cb565b60208401519092506001600160401b038082111561045a57600080fd5b818501915085601f83011261046e57600080fd5b815181811115610480576104806103e7565b604051601f8201601f19908116603f011681019083821181831017156104a8576104a86103e7565b816040528281528860208487010111156104c157600080fd5b6104d28360208301602088016103fd565b80955050505050509250929050565b6000602082840312156104f357600080fd5b610293826103cb565b6000825161050e8184602087016103fd565b9190910192915050565b60208152600082518060208401526105378160408501602087016103fd565b601f01601f19169190910160400192915050565b61014c8061055a6000396000f3fe60806040523661001357610011610017565b005b6100115b610027610022610029565b6100c2565b565b600061005c7fa3f0ad74e5423aebfd80d3ef4346578335a9a72aeaee59ff6cb3582b35133d50546001600160a01b031690565b6001600160a01b0316635c60da1b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610099573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100bd91906100e6565b905090565b3660008037600080366000845af43d6000803e8080156100e1573d6000f35b3d6000fd5b6000602082840312156100f857600080fd5b81516001600160a01b038116811461010f57600080fd5b939250505056fea26469706673582212207b4f4f4bd905b812712d76801c617b8aa3f4c3f8d6d9e59a18563606189dd4e564736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656460806040526040516104ec3803806104ec833981016040819052610022916102e9565b61002e82826000610035565b5050610406565b61003e83610061565b60008251118061004b5750805b1561005c5761005a83836100a1565b505b505050565b61006a816100cd565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606100c683836040518060600160405280602781526020016104c56027913961017e565b9392505050565b6100d6816101f7565b61013d5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b60648201526084015b60405180910390fd5b7f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc80546001600160a01b0319166001600160a01b0392909216919091179055565b6060600080856001600160a01b03168560405161019b91906103b7565b600060405180830381855af49150503d80600081146101d6576040519150601f19603f3d011682016040523d82523d6000602084013e6101db565b606091505b5090925090506101ed86838387610206565b9695505050505050565b6001600160a01b03163b151590565b6060831561027357825160000361026c57610220856101f7565b61026c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610134565b508161027d565b61027d8383610285565b949350505050565b8151156102955781518083602001fd5b8060405162461bcd60e51b815260040161013491906103d3565b634e487b7160e01b600052604160045260246000fd5b60005b838110156102e05781810151838201526020016102c8565b50506000910152565b600080604083850312156102fc57600080fd5b82516001600160a01b038116811461031357600080fd5b60208401519092506001600160401b038082111561033057600080fd5b818501915085601f83011261034457600080fd5b815181811115610356576103566102af565b604051601f8201601f19908116603f0116810190838211818310171561037e5761037e6102af565b8160405282815288602084870101111561039757600080fd5b6103a88360208301602088016102c5565b80955050505050509250929050565b600082516103c98184602087016102c5565b9190910192915050565b60208152600082518060208401526103f28160408501602087016102c5565b601f01601f19169190910160400192915050565b60b1806104146000396000f3fe608060405236601057600e6013565b005b600e5b601f601b6021565b6058565b565b600060537f360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc546001600160a01b031690565b905090565b3660008037600080366000845af43d6000803e8080156076573d6000f35b3d6000fdfea2646970667358221220a4cda07e5b291f61d81b4ee016ef5ca6a806aa56384b08ff8d52828dbed4d68d64736f6c63430008130033416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c656446756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a26469706673582212200316f4aeed1091c89753ba3187ae1b93c23de52f706f235a898afd5762b3c16164736f6c63430008130033";
|
|
908
980
|
|
|
909
981
|
type UBIPoolFactoryConstructorParams =
|
|
910
982
|
| [signer?: Signer]
|