@gooddollar/goodprotocol
Version:
GoodDollar Protocol
494 lines • 55.9 kB
JSON
{
"_format": "hh-sol-artifact-1",
"contractName": "DonationsStaking",
"sourceName": "contracts/staking/DonationsStaking.sol",
"abi": [
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "previousAdmin",
"type": "address"
},
{
"indexed": false,
"internalType": "address",
"name": "newAdmin",
"type": "address"
}
],
"name": "AdminChanged",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "beacon",
"type": "address"
}
],
"name": "BeaconUpgraded",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "address",
"name": "caller",
"type": "address"
},
{
"indexed": false,
"internalType": "uint256",
"name": "totalStaked",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "ethDonated",
"type": "uint256"
},
{
"indexed": false,
"internalType": "uint256",
"name": "tokenDonated",
"type": "uint256"
}
],
"name": "DonationStaked",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": false,
"internalType": "uint8",
"name": "version",
"type": "uint8"
}
],
"name": "Initialized",
"type": "event"
},
{
"anonymous": false,
"inputs": [
{
"indexed": true,
"internalType": "address",
"name": "implementation",
"type": "address"
}
],
"name": "Upgraded",
"type": "event"
},
{
"inputs": [],
"name": "active",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "avatar",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "dao",
"outputs": [
{
"internalType": "contract Controller",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "ethToStakingTokenSwapPath",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getRouter",
"outputs": [
{
"internalType": "contract Uniswap",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "getVersion",
"outputs": [
{
"internalType": "string",
"name": "",
"type": "string"
}
],
"stateMutability": "pure",
"type": "function"
},
{
"inputs": [
{
"internalType": "contract INameService",
"name": "_ns",
"type": "address"
},
{
"internalType": "address",
"name": "_stakingContract",
"type": "address"
},
{
"internalType": "address[]",
"name": "_ethToStakingTokenSwapPath",
"type": "address[]"
},
{
"internalType": "address[]",
"name": "_stakingTokenToEthSwapPath",
"type": "address[]"
}
],
"name": "initialize",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "maxLiquidityPercentageSwap",
"outputs": [
{
"internalType": "uint24",
"name": "",
"type": "uint24"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nameService",
"outputs": [
{
"internalType": "contract INameService",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "nativeToken",
"outputs": [
{
"internalType": "contract IGoodDollar",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "proxiableUUID",
"outputs": [
{
"internalType": "bytes32",
"name": "",
"type": "bytes32"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "bool",
"name": "_active",
"type": "bool"
}
],
"name": "setActive",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint24",
"name": "_maxPercentage",
"type": "uint24"
}
],
"name": "setMaxLiquidityPercentageSwap",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "_stakingContract",
"type": "address"
},
{
"internalType": "address[]",
"name": "_ethToStakingTokenSwapPath",
"type": "address[]"
}
],
"name": "setStakingContract",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address[]",
"name": "_ethToStakingTokenSwapPath",
"type": "address[]"
}
],
"name": "setSwapPaths",
"outputs": [
{
"internalType": "bool",
"name": "",
"type": "bool"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [],
"name": "stakeDonations",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "stakingContract",
"outputs": [
{
"internalType": "contract SimpleStaking",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "stakingToken",
"outputs": [
{
"internalType": "contract ERC20",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"name": "stakingTokenToEthSwapPath",
"outputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalETHDonated",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "totalStaked",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "",
"type": "address"
}
],
"name": "totalStakingTokensDonated",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "uniswap",
"outputs": [
{
"internalType": "contract Uniswap",
"name": "",
"type": "address"
}
],
"stateMutability": "view",
"type": "function"
},
{
"inputs": [],
"name": "updateAvatar",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
}
],
"name": "upgradeTo",
"outputs": [],
"stateMutability": "nonpayable",
"type": "function"
},
{
"inputs": [
{
"internalType": "address",
"name": "newImplementation",
"type": "address"
},
{
"internalType": "bytes",
"name": "data",
"type": "bytes"
}
],
"name": "upgradeToAndCall",
"outputs": [],
"stateMutability": "payable",
"type": "function"
},
{
"inputs": [],
"name": "withdraw",
"outputs": [
{
"internalType": "uint256",
"name": "",
"type": "uint256"
},
{
"internalType": "uint256",
"name": "",
"type": "uint256"
}
],
"stateMutability": "nonpayable",
"type": "function"
},
{
"stateMutability": "payable",
"type": "receive"
}
],
"bytecode": "0x60a06040523060805234801561001457600080fd5b50608051612be461004c600039600081816107e00152818161082001528181610aee01528181610b2e0152610baa0152612be46000f3fe6080604052600436106101405760003560e01c806302fb0c5e1461014c5780630d8e6e2c1461018257806312bc4b9b146101b657806313160018146101d65780631b3c90a8146102035780632681f7e41461021a5780633659cfe61461023a5780633ccfd60b1461025a5780633e6326fc146102845780634162169f146102a457806343d93ca0146102c45780634f1ef286146102e457806352d1902d146102f75780635aef7de61461031a5780636d7526161461033a57806372f702f31461035a5780637ae4f91a1461037a578063817b1cd21461039a5780638dec62ca146103af57806390420628146103dc578063acec338a146103f2578063b0f479a114610412578063b678ce7b14610427578063d52bceaf1461042f578063e1758bd81461044f578063ee99205c14610464578063f412a6af1461048457600080fd5b3661014757005b600080fd5b34801561015857600080fd5b50609c5461016d90600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b34801561018e57600080fd5b5060408051808201825260058152640322e302e360dc1b6020820152905161017991906124a0565b3480156101c257600080fd5b5061016d6101d13660046125c5565b6104b4565b3480156101e257600080fd5b506101f66101f1366004612601565b610685565b604051610179919061261a565b34801561020f57600080fd5b506102186106af565b005b34801561022657600080fd5b50609c546101f6906001600160a01b031681565b34801561024657600080fd5b5061021861025536600461262e565b6107d6565b34801561026657600080fd5b5061026f61089e565b60408051928352602083019190915201610179565b34801561029057600080fd5b506067546101f6906001600160a01b031681565b3480156102b057600080fd5b506065546101f6906001600160a01b031681565b3480156102d057600080fd5b506102186102df36600461264b565b610ac2565b6102186102f2366004612670565b610ae4565b34801561030357600080fd5b5061030c610b9d565b604051908152602001610179565b34801561032657600080fd5b506066546101f6906001600160a01b031681565b34801561034657600080fd5b50610218610355366004612717565b610c4b565b34801561036657600080fd5b50609b546101f6906001600160a01b031681565b34801561038657600080fd5b5061021861039536600461279f565b610fb7565b3480156103a657600080fd5b5061030c6116ac565b3480156103bb57600080fd5b5061030c6103ca36600461262e565b60a16020526000908152604090205481565b3480156103e857600080fd5b5061030c609d5481565b3480156103fe57600080fd5b5061021861040d3660046127fc565b611728565b34801561041e57600080fd5b506101f661174e565b6102186117c3565b34801561043b57600080fd5b506101f661044a366004612601565b611a1a565b34801561045b57600080fd5b506101f6611a2a565b34801561047057600080fd5b50609a546101f6906001600160a01b031681565b34801561049057600080fd5b50609e546104a09062ffffff1681565b60405162ffffff9091168152602001610179565b600060028251101580156104ca57506002825110155b8015610502575060006001600160a01b0316826000815181106104ef576104ef612819565b60200260200101516001600160a01b0316145b801561054b5750609b5482516001600160a01b0390911690839061052890600190612845565b8151811061053857610538612819565b60200260200101516001600160a01b0316145b61058b5760405162461bcd60e51b815260206004820152600c60248201526b092dcecc2d8d2c840e0c2e8d60a31b60448201526064015b60405180910390fd5b610593611a76565b600082516001600160401b038111156105ae576105ae6124d3565b6040519080825280602002602001820160405280156105d7578160200160208202803683370190505b5083519091506000905b801561065257846105f3600183612845565b8151811061060357610603612819565b602002602001015183838151811061061d5761061d612819565b6001600160a01b0390921660209283029190910190910152610640600183612858565b915061064b8161286b565b90506105e1565b50835161066690609f906020870190612402565b50815161067a9060a0906020850190612402565b506001949350505050565b60a0818154811061069557600080fd5b6000918252602090912001546001600160a01b0316905081565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015610712573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107369190612882565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b49190612882565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361081e5760405162461bcd60e51b81526004016105829061289f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610850611b3b565b6001600160a01b0316146108765760405162461bcd60e51b8152600401610582906128d9565b61087f81611b57565b6040805160008082526020820190925261089b91839190611b5f565b50565b6000806108a9611a76565b609a546040516328e964e960e01b81526000916001600160a01b0316906328e964e9906108da90309060040161261a565b6040805180830381865afa1580156108f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091a9190612913565b509050801561098957609a54604051633ab636f560e21b815260048101839052600060248201526001600160a01b039091169063ead8dbd490604401600060405180830381600087803b15801561097057600080fd5b505af1158015610984573d6000803e3d6000fd5b505050505b609b546040516370a0823160e01b81526000916001600160a01b0316906370a08231906109ba90309060040161261a565b602060405180830381865afa1580156109d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fb9190612937565b609b5460665460405163a9059cbb60e01b815292935047926001600160a01b039283169263a9059cbb92610a36929116908690600401612950565b6020604051808303816000875af1158015610a55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a799190612969565b506066546040516001600160a01b0390911690819083156108fc029084906000818181858888f19350505050158015610ab6573d6000803e3d6000fd5b50919590945092505050565b610aca611a76565b609e805462ffffff191662ffffff92909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b2c5760405162461bcd60e51b81526004016105829061289f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b5e611b3b565b6001600160a01b031614610b845760405162461bcd60e51b8152600401610582906128d9565b610b8d82611b57565b610b9982826001611b5f565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c385760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610582565b50600080516020612b6883398151915290565b600054610100900460ff1615808015610c6b5750600054600160ff909116105b80610c8c5750610c7a30611ccf565b158015610c8c575060005460ff166001145b610cef5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610582565b6000805460ff191660011790558015610d12576000805461ff0019166101001790555b610d1b85611cde565b60405163bf40fac160e01b81526001600160a01b0386169063bf40fac190610d4590600401612986565b602060405180830381865afa158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d869190612882565b609c80546001600160a01b039283166001600160a01b031991821617909155609a8054928716929091168217905560408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa158015610def573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e139190612882565b609b80546001600160a01b039283166001600160a01b03199091168117909155609e805462ffffff191661012c179055609a5460405163095ea7b360e01b8152919263095ea7b392610e6f929091169060001990600401612950565b6020604051808303816000875af1158015610e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb29190612969565b50609b54609c5460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392610eeb9291169060001990600401612950565b6020604051808303816000875af1158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612969565b50609c805460ff60a01b1916600160a01b1790558251610f5590609f906020860190612402565b508151610f699060a0906020850190612402565b508015610fb0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610fbf611a76565b6002815110158015610ffd575060006001600160a01b031681600081518110610fea57610fea612819565b60200260200101516001600160a01b0316145b80156110a15750816001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611042573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110669190612882565b6001600160a01b0316816001835161107e9190612845565b8151811061108e5761108e612819565b60200260200101516001600160a01b0316145b6110dc5760405162461bcd60e51b815260206004820152600c60248201526b092dcecc2d8d2c840a0c2e8d60a31b6044820152606401610582565b609a546040516328e964e960e01b81526000916001600160a01b0316906328e964e99061110d90309060040161261a565b6040805180830381865afa158015611129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114d9190612913565b50905080156111bc57609a54604051633ab636f560e21b815260048101839052600060248201526001600160a01b039091169063ead8dbd490604401600060405180830381600087803b1580156111a357600080fd5b505af11580156111b7573d6000803e3d6000fd5b505050505b609b546040516370a0823160e01b81526000916001600160a01b0316906370a08231906111ed90309060040161261a565b602060405180830381865afa15801561120a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122e9190612937565b609b54609e5460405163f10a60ab60e01b815292935060009273__$a7857c79f7039505337147dc025cce365e$__9263f10a60ab926112859230926001600160a01b0316918791899162ffffff16906004016129ae565b602060405180830381865af41580156112a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c69190612937565b9050801561133d5761133b60a080548060200260200160405190810160405280929190818152602001828054801561132757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611309575b503094935086925060009150849050611d01565b505b609b546040516370a0823160e01b81526000916001600160a01b0316906370a082319061136e90309060040161261a565b602060405180830381865afa15801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113af9190612937565b9050801561143257609b5460665460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926113ed929116908590600401612950565b6020604051808303816000875af115801561140c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114309190612969565b505b609a80546001600160a01b0319166001600160a01b03881690811790915560408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa15801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af9190612882565b609b80546001600160a01b0319166001600160a01b03928316908117909155609a5460405163095ea7b360e01b8152919263095ea7b3926114fa929091169060001990600401612950565b6020604051808303816000875af1158015611519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153d9190612969565b50609b54609c5460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926115769291169060001990600401612950565b6020604051808303816000875af1158015611595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b99190612969565b5084516115cd90609f906020880190612402565b50600085516001600160401b038111156115e9576115e96124d3565b604051908082528060200260200182016040528015611612578160200160208202803683370190505b5086519091506000905b801561168d578761162e600183612845565b8151811061163e5761163e612819565b602002602001015183838151811061165857611658612819565b6001600160a01b039092166020928302919091019091015261167b600183612858565b91506116868161286b565b905061161c565b5081516116a19060a0906020850190612402565b505050505050505050565b609a546040516328e964e960e01b815260009182916001600160a01b03909116906328e964e9906116e190309060040161261a565b6040805180830381865afa1580156116fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117219190612913565b5092915050565b611730611a76565b609c8054911515600160a01b0260ff60a01b19909216919091179055565b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061177d90600401612986565b602060405180830381865afa15801561179a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117be9190612882565b905090565b609c54600160a01b900460ff166117d957600080fd5b609b546040516370a0823160e01b81526000916001600160a01b0316906370a082319061180a90309060040161261a565b602060405180830381865afa158015611827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184b9190612937565b905060006118576120a1565b609b546040516370a0823160e01b81529192506000916001600160a01b03909116906370a082319061188d90309060040161261a565b602060405180830381865afa1580156118aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ce9190612937565b90506000811161191b5760405162461bcd60e51b81526020600482015260186024820152776e6f207374616b696e67546f6b656e20746f207374616b6560401b6044820152606401610582565b609a5460405163561b246360e01b815260048101839052606460248201819052600060448301526001600160a01b039092169163561b24639101600060405180830381600087803b15801561196f57600080fd5b505af1158015611983573d6000803e3d6000fd5b5050505081609d60008282546119999190612858565b9091555050609b546001600160a01b0316600090815260a16020526040812080548592906119c8908490612858565b90915550506040805133815260208101839052908101839052606081018490527fde176e064212e4ce25421127d59b3d0635e3feef28910a845ff34610c6b6b3bf9060800160405180910390a1505050565b609f818154811061069557600080fd5b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640161177d565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa158015611abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae39190612882565b6001600160a01b031614611b395760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610582565b565b600080516020612b68833981519152546001600160a01b031690565b61089b611a76565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611b9757611b92836121bf565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611bf1575060408051601f3d908101601f19168201909252611bee91810190612937565b60015b611c545760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610582565b600080516020612b688339815191528114611cc35760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610582565b50611b92838383612259565b6001600160a01b03163b151590565b606780546001600160a01b0319166001600160a01b03831617905561089b6106af565b600080866001600160a01b031663b0f479a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d669190612882565b9050606060006001600160a01b031687600081518110611d8857611d88612819565b60200260200101516001600160a01b031603611ea457816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ddc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e009190612882565b87600081518110611e1357611e13612819565b6001600160a01b039283166020918202929092010152604051637ff36ab560e01b815290831690637ff36ab5908890611e569089908c908a904290600401612a2a565b60006040518083038185885af1158015611e74573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052611e9d9190810190612a5f565b905061206d565b60006001600160a01b03168760018951611ebe9190612845565b81518110611ece57611ece612819565b60200260200101516001600160a01b031603611fef57816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f469190612882565b8760018951611f559190612845565b81518110611f6557611f65612819565b6001600160a01b0392831660209182029290920101526040516318cbafe560e01b8152908316906318cbafe590611fa890899089908c908a904290600401612aef565b6000604051808303816000875af1158015611fc7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9d9190810190612a5f565b6040516338ed173960e01b81526001600160a01b038316906338ed17399061202390899089908c908a904290600401612aef565b6000604051808303816000875af1158015612042573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261206a9190810190612a5f565b90505b806001825161207c9190612845565b8151811061208c5761208c612819565b60200260200101519250505095945050505050565b6000478082036120b357600091505090565b609b54609e5460405163f10a60ab60e01b815260009273__$a7857c79f7039505337147dc025cce365e$__9263f10a60ab9261210992309287926001600160a01b0390921691899162ffffff16906004016129ae565b602060405180830381865af4158015612126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214a9190612937565b90506121b7609f805480602002602001604051908101604052809291908181526020018280548015611327576020028201919060005260206000209081546001600160a01b0316815260019091019060200180831161130957503094935086925060009150849050611d01565b509092915050565b6121c881611ccf565b61222a5760405162461bcd60e51b815260206004820152602d60248201527f455243313936373a206e657720696d706c656d656e746174696f6e206973206e60448201526c1bdd08184818dbdb9d1c9858dd609a1b6064820152608401610582565b600080516020612b6883398151915280546001600160a01b0319166001600160a01b0392909216919091179055565b61226283612284565b60008251118061226f5750805b15611b925761227e83836122c4565b50505050565b61228d816121bf565b6040516001600160a01b038216907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b90600090a250565b60606122cf83611ccf565b61232a5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610582565b600080846001600160a01b0316846040516123459190612b2b565b600060405180830381855af49150503d8060008114612380576040519150601f19603f3d011682016040523d82523d6000602084013e612385565b606091505b50915091506123ad8282604051806060016040528060278152602001612b88602791396123b8565b925050505b92915050565b606083156123c75750816123d1565b6123d183836123d8565b9392505050565b8151156123e85781518083602001fd5b8060405162461bcd60e51b815260040161058291906124a0565b828054828255906000526020600020908101928215612457579160200282015b8281111561245757825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190612422565b50612463929150612467565b5090565b5b808211156124635760008155600101612468565b60005b8381101561249757818101518382015260200161247f565b50506000910152565b60208152600082518060208401526124bf81604085016020870161247c565b601f01601f19169190910160400192915050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715612511576125116124d3565b604052919050565b60006001600160401b03821115612532576125326124d3565b5060051b60200190565b6001600160a01b038116811461089b57600080fd5b600082601f83011261256257600080fd5b8135602061257761257283612519565b6124e9565b82815260059290921b8401810191818101908684111561259657600080fd5b8286015b848110156125ba5780356125ad8161253c565b835291830191830161259a565b509695505050505050565b6000602082840312156125d757600080fd5b81356001600160401b038111156125ed57600080fd5b6125f984828501612551565b949350505050565b60006020828403121561261357600080fd5b5035919050565b6001600160a01b0391909116815260200190565b60006020828403121561264057600080fd5b81356123d18161253c565b60006020828403121561265d57600080fd5b813562ffffff811681146123d157600080fd5b6000806040838503121561268357600080fd5b823561268e8161253c565b91506020838101356001600160401b03808211156126ab57600080fd5b818601915086601f8301126126bf57600080fd5b8135818111156126d1576126d16124d3565b6126e3601f8201601f191685016124e9565b915080825287848285010111156126f957600080fd5b80848401858401376000848284010152508093505050509250929050565b6000806000806080858703121561272d57600080fd5b84356127388161253c565b935060208501356127488161253c565b925060408501356001600160401b038082111561276457600080fd5b61277088838901612551565b9350606087013591508082111561278657600080fd5b5061279387828801612551565b91505092959194509250565b600080604083850312156127b257600080fd5b82356127bd8161253c565b915060208301356001600160401b038111156127d857600080fd5b6127e485828601612551565b9150509250929050565b801515811461089b57600080fd5b60006020828403121561280e57600080fd5b81356123d1816127ee565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156123b2576123b261282f565b808201808211156123b2576123b261282f565b60008161287a5761287a61282f565b506000190190565b60006020828403121561289457600080fd5b81516123d18161253c565b6020808252602c90820152600080516020612b4883398151915260408201526b19195b1959d85d1958d85b1b60a21b606082015260800190565b6020808252602c90820152600080516020612b4883398151915260408201526b6163746976652070726f787960a01b606082015260800190565b6000806040838503121561292657600080fd5b505080516020909101519092909150565b60006020828403121561294957600080fd5b5051919050565b6001600160a01b03929092168252602082015260400190565b60006020828403121561297b57600080fd5b81516123d1816127ee565b6020808252600e908201526d2aa724a9aba0a82fa927aaaa22a960911b604082015260600190565b6001600160a01b0395861681529385166020850152919093166040830152606082019290925262ffffff909116608082015260a00190565b600081518084526020808501945080840160005b83811015612a1f5781516001600160a01b0316875295820195908201906001016129fa565b509495945050505050565b848152608060208201526000612a4360808301866129e6565b6001600160a01b03949094166040830152506060015292915050565b60006020808385031215612a7257600080fd5b82516001600160401b03811115612a8857600080fd5b8301601f81018513612a9957600080fd5b8051612aa761257282612519565b81815260059190911b82018301908381019087831115612ac657600080fd5b928401925b82841015612ae457835182529284019290840190612acb565b979650505050505050565b85815284602082015260a060408201526000612b0e60a08301866129e6565b6001600160a01b0394909416606083015250608001529392505050565b60008251612b3d81846020870161247c565b919091019291505056fe46756e6374696f6e206d7573742062652063616c6c6564207468726f75676820360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220a3f6650a3b5d6a9684cc4aa32263e7140cad8ced933741b469c61874f450edc164736f6c63430008130033",
"deployedBytecode": "0x6080604052600436106101405760003560e01c806302fb0c5e1461014c5780630d8e6e2c1461018257806312bc4b9b146101b657806313160018146101d65780631b3c90a8146102035780632681f7e41461021a5780633659cfe61461023a5780633ccfd60b1461025a5780633e6326fc146102845780634162169f146102a457806343d93ca0146102c45780634f1ef286146102e457806352d1902d146102f75780635aef7de61461031a5780636d7526161461033a57806372f702f31461035a5780637ae4f91a1461037a578063817b1cd21461039a5780638dec62ca146103af57806390420628146103dc578063acec338a146103f2578063b0f479a114610412578063b678ce7b14610427578063d52bceaf1461042f578063e1758bd81461044f578063ee99205c14610464578063f412a6af1461048457600080fd5b3661014757005b600080fd5b34801561015857600080fd5b50609c5461016d90600160a01b900460ff1681565b60405190151581526020015b60405180910390f35b34801561018e57600080fd5b5060408051808201825260058152640322e302e360dc1b6020820152905161017991906124a0565b3480156101c257600080fd5b5061016d6101d13660046125c5565b6104b4565b3480156101e257600080fd5b506101f66101f1366004612601565b610685565b604051610179919061261a565b34801561020f57600080fd5b506102186106af565b005b34801561022657600080fd5b50609c546101f6906001600160a01b031681565b34801561024657600080fd5b5061021861025536600461262e565b6107d6565b34801561026657600080fd5b5061026f61089e565b60408051928352602083019190915201610179565b34801561029057600080fd5b506067546101f6906001600160a01b031681565b3480156102b057600080fd5b506065546101f6906001600160a01b031681565b3480156102d057600080fd5b506102186102df36600461264b565b610ac2565b6102186102f2366004612670565b610ae4565b34801561030357600080fd5b5061030c610b9d565b604051908152602001610179565b34801561032657600080fd5b506066546101f6906001600160a01b031681565b34801561034657600080fd5b50610218610355366004612717565b610c4b565b34801561036657600080fd5b50609b546101f6906001600160a01b031681565b34801561038657600080fd5b5061021861039536600461279f565b610fb7565b3480156103a657600080fd5b5061030c6116ac565b3480156103bb57600080fd5b5061030c6103ca36600461262e565b60a16020526000908152604090205481565b3480156103e857600080fd5b5061030c609d5481565b3480156103fe57600080fd5b5061021861040d3660046127fc565b611728565b34801561041e57600080fd5b506101f661174e565b6102186117c3565b34801561043b57600080fd5b506101f661044a366004612601565b611a1a565b34801561045b57600080fd5b506101f6611a2a565b34801561047057600080fd5b50609a546101f6906001600160a01b031681565b34801561049057600080fd5b50609e546104a09062ffffff1681565b60405162ffffff9091168152602001610179565b600060028251101580156104ca57506002825110155b8015610502575060006001600160a01b0316826000815181106104ef576104ef612819565b60200260200101516001600160a01b0316145b801561054b5750609b5482516001600160a01b0390911690839061052890600190612845565b8151811061053857610538612819565b60200260200101516001600160a01b0316145b61058b5760405162461bcd60e51b815260206004820152600c60248201526b092dcecc2d8d2c840e0c2e8d60a31b60448201526064015b60405180910390fd5b610593611a76565b600082516001600160401b038111156105ae576105ae6124d3565b6040519080825280602002602001820160405280156105d7578160200160208202803683370190505b5083519091506000905b801561065257846105f3600183612845565b8151811061060357610603612819565b602002602001015183838151811061061d5761061d612819565b6001600160a01b0390921660209283029190910190910152610640600183612858565b915061064b8161286b565b90506105e1565b50835161066690609f906020870190612402565b50815161067a9060a0906020850190612402565b506001949350505050565b60a0818154811061069557600080fd5b6000918252602090912001546001600160a01b0316905081565b60675460405163bf40fac160e01b815260206004820152600a60248201526921a7a72a2927a62622a960b11b60448201526001600160a01b039091169063bf40fac190606401602060405180830381865afa158015610712573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107369190612882565b606580546001600160a01b0319166001600160a01b0392909216918217905560408051632d77bef360e11b81529051635aef7de6916004808201926020929091908290030181865afa158015610790573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b49190612882565b606680546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016300361081e5760405162461bcd60e51b81526004016105829061289f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610850611b3b565b6001600160a01b0316146108765760405162461bcd60e51b8152600401610582906128d9565b61087f81611b57565b6040805160008082526020820190925261089b91839190611b5f565b50565b6000806108a9611a76565b609a546040516328e964e960e01b81526000916001600160a01b0316906328e964e9906108da90309060040161261a565b6040805180830381865afa1580156108f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061091a9190612913565b509050801561098957609a54604051633ab636f560e21b815260048101839052600060248201526001600160a01b039091169063ead8dbd490604401600060405180830381600087803b15801561097057600080fd5b505af1158015610984573d6000803e3d6000fd5b505050505b609b546040516370a0823160e01b81526000916001600160a01b0316906370a08231906109ba90309060040161261a565b602060405180830381865afa1580156109d7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109fb9190612937565b609b5460665460405163a9059cbb60e01b815292935047926001600160a01b039283169263a9059cbb92610a36929116908690600401612950565b6020604051808303816000875af1158015610a55573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a799190612969565b506066546040516001600160a01b0390911690819083156108fc029084906000818181858888f19350505050158015610ab6573d6000803e3d6000fd5b50919590945092505050565b610aca611a76565b609e805462ffffff191662ffffff92909216919091179055565b6001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000163003610b2c5760405162461bcd60e51b81526004016105829061289f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316610b5e611b3b565b6001600160a01b031614610b845760405162461bcd60e51b8152600401610582906128d9565b610b8d82611b57565b610b9982826001611b5f565b5050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610c385760405162461bcd60e51b815260206004820152603860248201527f555550535570677261646561626c653a206d757374206e6f742062652063616c6044820152771b1959081d1a1c9bdd59da0819195b1959d85d1958d85b1b60421b6064820152608401610582565b50600080516020612b6883398151915290565b600054610100900460ff1615808015610c6b5750600054600160ff909116105b80610c8c5750610c7a30611ccf565b158015610c8c575060005460ff166001145b610cef5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610582565b6000805460ff191660011790558015610d12576000805461ff0019166101001790555b610d1b85611cde565b60405163bf40fac160e01b81526001600160a01b0386169063bf40fac190610d4590600401612986565b602060405180830381865afa158015610d62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610d869190612882565b609c80546001600160a01b039283166001600160a01b031991821617909155609a8054928716929091168217905560408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa158015610def573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e139190612882565b609b80546001600160a01b039283166001600160a01b03199091168117909155609e805462ffffff191661012c179055609a5460405163095ea7b360e01b8152919263095ea7b392610e6f929091169060001990600401612950565b6020604051808303816000875af1158015610e8e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610eb29190612969565b50609b54609c5460405163095ea7b360e01b81526001600160a01b039283169263095ea7b392610eeb9291169060001990600401612950565b6020604051808303816000875af1158015610f0a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f2e9190612969565b50609c805460ff60a01b1916600160a01b1790558251610f5590609f906020860190612402565b508151610f699060a0906020850190612402565b508015610fb0576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050565b610fbf611a76565b6002815110158015610ffd575060006001600160a01b031681600081518110610fea57610fea612819565b60200260200101516001600160a01b0316145b80156110a15750816001600160a01b031663fc0c546a6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611042573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110669190612882565b6001600160a01b0316816001835161107e9190612845565b8151811061108e5761108e612819565b60200260200101516001600160a01b0316145b6110dc5760405162461bcd60e51b815260206004820152600c60248201526b092dcecc2d8d2c840a0c2e8d60a31b6044820152606401610582565b609a546040516328e964e960e01b81526000916001600160a01b0316906328e964e99061110d90309060040161261a565b6040805180830381865afa158015611129573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114d9190612913565b50905080156111bc57609a54604051633ab636f560e21b815260048101839052600060248201526001600160a01b039091169063ead8dbd490604401600060405180830381600087803b1580156111a357600080fd5b505af11580156111b7573d6000803e3d6000fd5b505050505b609b546040516370a0823160e01b81526000916001600160a01b0316906370a08231906111ed90309060040161261a565b602060405180830381865afa15801561120a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061122e9190612937565b609b54609e5460405163f10a60ab60e01b815292935060009273__$a7857c79f7039505337147dc025cce365e$__9263f10a60ab926112859230926001600160a01b0316918791899162ffffff16906004016129ae565b602060405180830381865af41580156112a2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112c69190612937565b9050801561133d5761133b60a080548060200260200160405190810160405280929190818152602001828054801561132757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611309575b503094935086925060009150849050611d01565b505b609b546040516370a0823160e01b81526000916001600160a01b0316906370a082319061136e90309060040161261a565b602060405180830381865afa15801561138b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113af9190612937565b9050801561143257609b5460665460405163a9059cbb60e01b81526001600160a01b039283169263a9059cbb926113ed929116908590600401612950565b6020604051808303816000875af115801561140c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114309190612969565b505b609a80546001600160a01b0319166001600160a01b03881690811790915560408051637e062a3560e11b8152905163fc0c546a916004808201926020929091908290030181865afa15801561148b573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114af9190612882565b609b80546001600160a01b0319166001600160a01b03928316908117909155609a5460405163095ea7b360e01b8152919263095ea7b3926114fa929091169060001990600401612950565b6020604051808303816000875af1158015611519573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061153d9190612969565b50609b54609c5460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926115769291169060001990600401612950565b6020604051808303816000875af1158015611595573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115b99190612969565b5084516115cd90609f906020880190612402565b50600085516001600160401b038111156115e9576115e96124d3565b604051908082528060200260200182016040528015611612578160200160208202803683370190505b5086519091506000905b801561168d578761162e600183612845565b8151811061163e5761163e612819565b602002602001015183838151811061165857611658612819565b6001600160a01b039092166020928302919091019091015261167b600183612858565b91506116868161286b565b905061161c565b5081516116a19060a0906020850190612402565b505050505050505050565b609a546040516328e964e960e01b815260009182916001600160a01b03909116906328e964e9906116e190309060040161261a565b6040805180830381865afa1580156116fd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117219190612913565b5092915050565b611730611a76565b609c8054911515600160a01b0260ff60a01b19909216919091179055565b60675460405163bf40fac160e01b81526000916001600160a01b03169063bf40fac19061177d90600401612986565b602060405180830381865afa15801561179a573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117be9190612882565b905090565b609c54600160a01b900460ff166117d957600080fd5b609b546040516370a0823160e01b81526000916001600160a01b0316906370a082319061180a90309060040161261a565b602060405180830381865afa158015611827573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061184b9190612937565b905060006118576120a1565b609b546040516370a0823160e01b81529192506000916001600160a01b03909116906370a082319061188d90309060040161261a565b602060405180830381865afa1580156118aa573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118ce9190612937565b90506000811161191b5760405162461bcd60e51b81526020600482015260186024820152776e6f207374616b696e67546f6b656e20746f207374616b6560401b6044820152606401610582565b609a5460405163561b246360e01b815260048101839052606460248201819052600060448301526001600160a01b039092169163561b24639101600060405180830381600087803b15801561196f57600080fd5b505af1158015611983573d6000803e3d6000fd5b5050505081609d60008282546119999190612858565b9091555050609b546001600160a01b0316600090815260a16020526040812080548592906119c8908490612858565b90915550506040805133815260208101839052908101839052606081018490527fde176e064212e4ce25421127d59b3d0635e3feef28910a845ff34610c6b6b3bf9060800160405180910390a1505050565b609f818154811061069557600080fd5b60675460405163bf40fac160e01b815260206004820152600a60248201526923a7a7a22227a62620a960b11b60448201526000916001600160a01b03169063bf40fac19060640161177d565b60655460408051632d77bef360e11b8152905133926001600160a01b031691635aef7de69160048083019260209291908290030181865afa158015611abf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ae39190612882565b6001600160a01b031614611b395760405162461bcd60e51b815260206004820181905260248201527f6f6e6c79206176617461722063616e2063616c6c2074686973206d6574686f646044820152606401610582565b565b600080516020612b68833981519152546001600160a01b031690565b61089b611a76565b7f4910fdfa16fed3260ed0e7147f7cc6da11a60208b5b9406d12a635614ffd91435460ff1615611b9757611b92836121bf565b505050565b826001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611bf1575060408051601f3d908101601f19168201909252611bee91810190612937565b60015b611c545760405162461bcd60e51b815260206004820152602e60248201527f45524331393637557067726164653a206e657720696d706c656d656e7461746960448201526d6f6e206973206e6f74205555505360901b6064820152608401610582565b600080516020612b688339815191528114611cc35760405162461bcd60e51b815260206004820152602960248201527f45524331393637557067726164653a20756e737570706f727465642070726f786044820152681a58589b195555525160ba1b6064820152608401610582565b50611b92838383612259565b6001600160a01b03163b151590565b606780546001600160a01b0319166001600160a01b03831617905561089b6106af565b600080866001600160a01b031663b0f479a16040518163ffffffff1660e01b8152600401602060405180830381865afa158015611d42573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d669190612882565b9050606060006001600160a01b031687600081518110611d8857611d88612819565b60200260200101516001600160a01b031603611ea457816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611ddc573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e009190612882565b87600081518110611e1357611e13612819565b6001600160a01b039283166020918202929092010152604051637ff36ab560e01b815290831690637ff36ab5908890611e569089908c908a904290600401612a2a565b60006040518083038185885af1158015611e74573d6000803e3d6000fd5b50505050506040513d6000823e601f3d908101601f19168201604052611e9d9190810190612a5f565b905061206d565b60006001600160a01b03168760018951611ebe9190612845565b81518110611ece57611ece612819565b60200260200101516001600160a01b031603611fef57816001600160a01b031663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611f22573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611f469190612882565b8760018951611f559190612845565b81518110611f6557611f65612819565b6001600160a01b0392831660209182029290920101526040516318cbafe560e01b8152908316906318cbafe590611fa890899089908c908a904290600401612aef565b6000604051808303816000875af1158015611fc7573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611e9d9190810190612a5f565b6040516338ed173960e01b81526001600160a01b038316906338ed17399061202390899089908c908a904290600401612aef565b6000604051808303816000875af1158015612042573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261206a9190810190612a5f565b90505b806001825161207c9190612845565b8151811061208c5761208c612819565b60200260200101519250505095945050505050565b6000478082036120b357600091505090565b609b54609e5460405163f10a60ab60e01b815260009273__$a7857c79f7039505337147dc025cce365e$__9263f10a60ab9261210992309287926001600160a01b0390921691899162ffffff16906004016129ae565b602060405180830381865af4158015612126573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061214a9190612937565b90506121b760