diff --git a/contracts/ChainConfig.sol b/contracts/ChainConfig.sol index 5584c0f..62f05e9 100644 --- a/contracts/ChainConfig.sol +++ b/contracts/ChainConfig.sol @@ -11,8 +11,8 @@ contract ChainConfig is InjectorContextHolder, IChainConfig { event FelonyThresholdChanged(uint32 prevValue, uint32 newValue); event ValidatorJailEpochLengthChanged(uint32 prevValue, uint32 newValue); event UndelegatePeriodChanged(uint32 prevValue, uint32 newValue); - event MinValidatorStakeAmountChanged(uint64 prevValue, uint64 newValue); - event MinStakingAmountChanged(uint64 prevValue, uint64 newValue); + event MinValidatorStakeAmountChanged(uint256 prevValue, uint256 newValue); + event MinStakingAmountChanged(uint256 prevValue, uint256 newValue); struct ConsensusParams { uint32 activeValidatorsLength; @@ -21,8 +21,8 @@ contract ChainConfig is InjectorContextHolder, IChainConfig { uint32 felonyThreshold; uint32 validatorJailEpochLength; uint32 undelegatePeriod; - uint64 minValidatorStakeAmount; - uint64 minStakingAmount; + uint256 minValidatorStakeAmount; + uint256 minStakingAmount; } ConsensusParams private _consensusParams; @@ -37,8 +37,8 @@ contract ChainConfig is InjectorContextHolder, IChainConfig { uint32 felonyThreshold, uint32 validatorJailEpochLength, uint32 undelegatePeriod, - uint64 minValidatorStakeAmount, - uint64 minStakingAmount + uint256 minValidatorStakeAmount, + uint256 minStakingAmount ) external whenNotInitialized { _consensusParams.activeValidatorsLength = activeValidatorsLength; emit ActiveValidatorsLengthChanged(0, activeValidatorsLength); @@ -122,22 +122,22 @@ contract ChainConfig is InjectorContextHolder, IChainConfig { emit UndelegatePeriodChanged(prevValue, newValue); } - function getMinValidatorStakeAmount() external view returns (uint64) { + function getMinValidatorStakeAmount() external view returns (uint256) { return _consensusParams.minValidatorStakeAmount; } - function setMinValidatorStakeAmount(uint64 newValue) external { - uint64 prevValue = _consensusParams.minValidatorStakeAmount; + function setMinValidatorStakeAmount(uint256 newValue) external { + uint256 prevValue = _consensusParams.minValidatorStakeAmount; _consensusParams.minValidatorStakeAmount = newValue; emit MinValidatorStakeAmountChanged(prevValue, newValue); } - function getMinStakingAmount() external view returns (uint64) { + function getMinStakingAmount() external view returns (uint256) { return _consensusParams.minStakingAmount; } - function setMinStakingAmount(uint64 newValue) external { - uint64 prevValue = _consensusParams.minStakingAmount; + function setMinStakingAmount(uint256 newValue) external { + uint256 prevValue = _consensusParams.minStakingAmount; _consensusParams.minStakingAmount = newValue; emit MinStakingAmountChanged(prevValue, newValue); } diff --git a/contracts/Staking.sol b/contracts/Staking.sol index 33711dd..901ead9 100644 --- a/contracts/Staking.sol +++ b/contracts/Staking.sol @@ -8,7 +8,7 @@ contract Staking is IStaking, InjectorContextHolder { /** * This constant indicates precision of storing compact balances in the storage or floating point. Since default * balance precision is 256 bits it might gain some overhead on the storage because we don't need to store such huge - * amount range. That is why we compact balances in uint64 values instead of uint256. By managing this value + * amount range. That is why we compact balances in uint112 values instead of uint256. By managing this value * you can set the precision of your balances, aka min and max possible staking amount. This value depends * mostly on your asset price in USD, for example ETH costs 4000$ then if we use 1 ether precision it takes 4000$ * as min amount that might be problematic for users to do the stake. We can set 1 gwei precision and in this case @@ -21,9 +21,16 @@ contract Staking is IStaking, InjectorContextHolder { * the same precision as specified here. It means that if you set precision 1 ether, then min staking amount of 10 * tokens should have 10 raw value. For 1 gwei precision 10 tokens min amount should be stored as 10000000000. * + * For the 112 bits we have ~32 decimals lg(2**112)=33.71 (lets round to 32 for simplicity). We split this amount + * into integer (24) and for fractional (8) parts. It means that we can have only 8 decimals after zero. + * + * Based in current params we have next min/max values: + * - min staking amount: 0.00000001 or 1e-8 + * - max staking amount: 1000000000000000000000000 or 1e+24 + * * WARNING: precision must be a 1eN format (A=1, N>0) */ - uint256 internal constant BALANCE_COMPACT_PRECISION = 1 ether; + uint256 internal constant BALANCE_COMPACT_PRECISION = 1e10; /** * Here is min/max commission rates. Lets don't allow to set more than 30% of validator commission, because it's * too big commission for validator. Commission rate is a percents divided by 100 stored with 0 decimals as percents*100 (=pc/1e2*1e4) @@ -64,7 +71,7 @@ contract Staking is IStaking, InjectorContextHolder { struct ValidatorSnapshot { uint96 totalRewards; - uint64 totalDelegated; + uint112 totalDelegated; uint32 slashesCount; uint16 commissionRate; } @@ -79,12 +86,12 @@ contract Staking is IStaking, InjectorContextHolder { } struct DelegationOpDelegate { - uint64 amount; + uint112 amount; uint64 epoch; } struct DelegationOpUndelegate { - uint64 amount; + uint112 amount; uint64 epoch; } @@ -106,14 +113,13 @@ contract Staking is IStaking, InjectorContextHolder { // mapping with validator snapshots per each epoch (validator -> epoch -> snapshot) mapping(address => mapping(uint64 => ValidatorSnapshot)) internal _validatorSnapshots; - constructor(bytes memory ctor) InjectorContextHolder(ctor) { + constructor(bytes memory constructorParams) InjectorContextHolder(constructorParams) { } function ctor(address[] calldata validators, uint256[] calldata initialStakes, uint16 commissionRate) external whenNotInitialized { require(initialStakes.length == validators.length); for (uint256 i = 0; i < validators.length; i++) { - require(initialStakes[i] % BALANCE_COMPACT_PRECISION == 0); - _addValidator(validators[i], validators[i], ValidatorStatus.Active, commissionRate, uint64(initialStakes[i] / BALANCE_COMPACT_PRECISION), 0); + _addValidator(validators[i], validators[i], ValidatorStatus.Active, commissionRate, initialStakes[i], 0); } } @@ -262,7 +268,7 @@ contract Staking is IStaking, InjectorContextHolder { function _delegateTo(address fromDelegator, address toValidator, uint256 amount) internal { // check is minimum delegate amount - require(amount / BALANCE_COMPACT_PRECISION >= _chainConfigContract.getMinStakingAmount(), "Staking: amount is too low"); + require(amount >= _chainConfigContract.getMinStakingAmount() || amount == 0, "Staking: amount is too low"); require(amount % BALANCE_COMPACT_PRECISION == 0, "Staking: amount have a remainder"); // make sure amount is greater than min staking amount // make sure validator exists at least @@ -274,7 +280,7 @@ contract Staking is IStaking, InjectorContextHolder { // + increase total delegated amount in the next epoch for this validator // + re-save validator because last affected epoch might change ValidatorSnapshot storage validatorSnapshot = _touchValidatorSnapshot(validator, atEpoch); - validatorSnapshot.totalDelegated += uint64(amount / BALANCE_COMPACT_PRECISION); + validatorSnapshot.totalDelegated += uint112(amount / BALANCE_COMPACT_PRECISION); _validatorsMap[toValidator] = validator; // if last pending delegate has the same next epoch then its safe to just increase total // staked amount because it can't affect current validator set, but otherwise we must create @@ -285,13 +291,13 @@ contract Staking is IStaking, InjectorContextHolder { // if we already have pending snapshot for the next epoch then just increase new amount, // otherwise create next pending snapshot. (tbh it can't be greater, but what we can do here instead?) if (recentDelegateOp.epoch >= atEpoch) { - recentDelegateOp.amount += uint64(amount / BALANCE_COMPACT_PRECISION); + recentDelegateOp.amount += uint112(amount / BALANCE_COMPACT_PRECISION); } else { - delegation.delegateQueue.push(DelegationOpDelegate({epoch : atEpoch, amount : recentDelegateOp.amount + uint64(amount / BALANCE_COMPACT_PRECISION)})); + delegation.delegateQueue.push(DelegationOpDelegate({epoch : atEpoch, amount : recentDelegateOp.amount + uint112(amount / BALANCE_COMPACT_PRECISION)})); } } else { // there is no any delegations at al, lets create the first one - delegation.delegateQueue.push(DelegationOpDelegate({epoch : atEpoch, amount : uint64(amount / BALANCE_COMPACT_PRECISION)})); + delegation.delegateQueue.push(DelegationOpDelegate({epoch : atEpoch, amount : uint112(amount / BALANCE_COMPACT_PRECISION)})); } // emit event with the next epoch emit Delegated(toValidator, fromDelegator, amount, atEpoch); @@ -299,7 +305,7 @@ contract Staking is IStaking, InjectorContextHolder { function _undelegateFrom(address toDelegator, address fromValidator, uint256 amount) internal { // check minimum delegate amount - require(amount / BALANCE_COMPACT_PRECISION >= _chainConfigContract.getMinStakingAmount(), "Staking: amount is too low"); + require(amount >= _chainConfigContract.getMinStakingAmount() || amount == 0, "Staking: amount is too low"); require(amount % BALANCE_COMPACT_PRECISION == 0, "Staking: amount have a remainder"); // make sure validator exists at least Validator memory validator = _validatorsMap[fromValidator]; @@ -310,8 +316,8 @@ contract Staking is IStaking, InjectorContextHolder { // + increase total delegated amount in the next epoch for this validator // + re-save validator because last affected epoch might change ValidatorSnapshot storage validatorSnapshot = _touchValidatorSnapshot(validator, beforeEpoch); - require(validatorSnapshot.totalDelegated >= uint64(amount / BALANCE_COMPACT_PRECISION), "Staking: insufficient balance"); - validatorSnapshot.totalDelegated -= uint64(amount / BALANCE_COMPACT_PRECISION); + require(validatorSnapshot.totalDelegated >= uint112(amount / BALANCE_COMPACT_PRECISION), "Staking: insufficient balance"); + validatorSnapshot.totalDelegated -= uint112(amount / BALANCE_COMPACT_PRECISION); _validatorsMap[fromValidator] = validator; // if last pending delegate has the same next epoch then its safe to just increase total // staked amount because it can't affect current validator set, but otherwise we must create @@ -320,7 +326,7 @@ contract Staking is IStaking, InjectorContextHolder { require(delegation.delegateQueue.length > 0, "Staking: delegation queue is empty"); DelegationOpDelegate storage recentDelegateOp = delegation.delegateQueue[delegation.delegateQueue.length - 1]; require(recentDelegateOp.amount >= uint64(amount / BALANCE_COMPACT_PRECISION), "Staking: insufficient balance"); - uint64 nextDelegatedAmount = recentDelegateOp.amount - uint64(amount / BALANCE_COMPACT_PRECISION); + uint112 nextDelegatedAmount = recentDelegateOp.amount - uint112(amount / BALANCE_COMPACT_PRECISION); if (recentDelegateOp.epoch >= beforeEpoch) { // decrease total delegated amount for the next epoch recentDelegateOp.amount = nextDelegatedAmount; @@ -329,7 +335,7 @@ contract Staking is IStaking, InjectorContextHolder { delegation.delegateQueue.push(DelegationOpDelegate({epoch : beforeEpoch, amount : nextDelegatedAmount})); } // create new undelegate queue operation with soft lock - delegation.undelegateQueue.push(DelegationOpUndelegate({amount : uint64(amount / BALANCE_COMPACT_PRECISION), epoch : beforeEpoch + _chainConfigContract.getUndelegatePeriod()})); + delegation.undelegateQueue.push(DelegationOpUndelegate({amount : uint112(amount / BALANCE_COMPACT_PRECISION), epoch : beforeEpoch + _chainConfigContract.getUndelegatePeriod()})); // emit event with the next epoch number emit Undelegated(fromValidator, toDelegator, amount, beforeEpoch); } @@ -456,7 +462,7 @@ contract Staking is IStaking, InjectorContextHolder { return (delegatorFee = 0, ownerFee = validatorSnapshot.totalRewards, systemFee = 0); } // ownerFee_(18+4-4=18) = totalRewards_18 * commissionRate_4 / 1e4 - ownerFee = validatorSnapshot.totalRewards * validatorSnapshot.commissionRate / 1e4; + ownerFee = uint256(validatorSnapshot.totalRewards) * validatorSnapshot.commissionRate / 1e4; // delegatorRewards = totalRewards - ownerFee delegatorFee = validatorSnapshot.totalRewards - ownerFee; // default system fee is zero for epoch @@ -464,21 +470,19 @@ contract Staking is IStaking, InjectorContextHolder { } function registerValidator(address validatorAddress, uint16 commissionRate) payable external override { - address validatorOwner = msg.sender; uint256 initialStake = msg.value; - // initial stake requirements - require(initialStake / BALANCE_COMPACT_PRECISION >= _chainConfigContract.getMinValidatorStakeAmount(), "Staking: initial stake is too low"); + // // initial stake amount should be greater than minimum validator staking amount + require(initialStake >= _chainConfigContract.getMinValidatorStakeAmount(), "Staking: initial stake is too low"); require(initialStake % BALANCE_COMPACT_PRECISION == 0, "Staking: amount have a remainder"); - // initial stake amount should be greater than minimum validator staking amount - // add new pending validator - _addValidator(validatorAddress, validatorOwner, ValidatorStatus.Pending, commissionRate, uint64(initialStake / BALANCE_COMPACT_PRECISION), _nextEpoch()); + // add new validator as pending + _addValidator(validatorAddress, msg.sender, ValidatorStatus.Pending, commissionRate, initialStake, _nextEpoch()); } function addValidator(address account) external onlyFromGovernance virtual override { _addValidator(account, account, ValidatorStatus.Active, 0, 0, _nextEpoch()); } - function _addValidator(address validatorAddress, address validatorOwner, ValidatorStatus status, uint16 commissionRate, uint64 initialStake, uint64 sinceEpoch) internal { + function _addValidator(address validatorAddress, address validatorOwner, ValidatorStatus status, uint16 commissionRate, uint256 initialStake, uint64 sinceEpoch) internal { // validator commission rate require(commissionRate >= COMMISSION_RATE_MIN_VALUE && commissionRate <= COMMISSION_RATE_MAX_VALUE, "Staking: bad commission rate"); // init validator default params @@ -497,11 +501,11 @@ contract Staking is IStaking, InjectorContextHolder { _activeValidatorsList.push(validatorAddress); } // push initial validator snapshot at zero epoch with default params - _validatorSnapshots[validatorAddress][sinceEpoch] = ValidatorSnapshot(0, initialStake, 0, commissionRate); + _validatorSnapshots[validatorAddress][sinceEpoch] = ValidatorSnapshot(0, uint112(initialStake / BALANCE_COMPACT_PRECISION), 0, commissionRate); // delegate initial stake to validator owner ValidatorDelegation storage delegation = _validatorDelegations[validatorAddress][validatorOwner]; require(delegation.delegateQueue.length == 0, "Staking: delegation queue is not empty"); - delegation.delegateQueue.push(DelegationOpDelegate(initialStake, sinceEpoch)); + delegation.delegateQueue.push(DelegationOpDelegate(uint112(initialStake / BALANCE_COMPACT_PRECISION), sinceEpoch)); // emit event emit ValidatorAdded(validatorAddress, validatorOwner, uint8(status), commissionRate); } diff --git a/contracts/StakingPool.sol b/contracts/StakingPool.sol index d099ab2..6cefb8d 100644 --- a/contracts/StakingPool.sol +++ b/contracts/StakingPool.sol @@ -10,6 +10,11 @@ import "./Staking.sol"; contract StakingPool is InjectorContextHolder, IStakingPool { + /** + * This value must the same as in Staking smart contract + */ + uint256 internal constant BALANCE_COMPACT_PRECISION = 1e10; + event Stake(address indexed validator, address indexed staker, uint256 amount); event Unstake(address indexed validator, address indexed staker, uint256 amount); event Claim(address indexed validator, address indexed staker, uint256 amount); @@ -88,8 +93,6 @@ contract StakingPool is InjectorContextHolder, IStakingPool { return validatorPool; } - uint256 internal constant BALANCE_COMPACT_PRECISION = 1 ether; - function _calcUnclaimedDelegatorFee(ValidatorPool memory validatorPool) internal view returns (uint256 stakedAmount, uint256 dustRewards) { uint256 unclaimedRewards = _stakingContract.getDelegatorFee(validatorPool.validatorAddress, address(this)); // adjust values based on total dust and pending unstakes @@ -97,7 +100,7 @@ contract StakingPool is InjectorContextHolder, IStakingPool { unclaimedRewards -= validatorPool.pendingUnstake; // split balance into stake and dust stakedAmount = (unclaimedRewards / BALANCE_COMPACT_PRECISION) * BALANCE_COMPACT_PRECISION; - if (stakedAmount / BALANCE_COMPACT_PRECISION < _chainConfigContract.getMinStakingAmount()) { + if (stakedAmount < _chainConfigContract.getMinStakingAmount()) { return (0, unclaimedRewards); } return (stakedAmount, unclaimedRewards - stakedAmount); diff --git a/contracts/interfaces/IChainConfig.sol b/contracts/interfaces/IChainConfig.sol index 5623e4b..56050b2 100644 --- a/contracts/interfaces/IChainConfig.sol +++ b/contracts/interfaces/IChainConfig.sol @@ -27,11 +27,11 @@ interface IChainConfig { function setUndelegatePeriod(uint32 newValue) external; - function getMinValidatorStakeAmount() external view returns (uint64); + function getMinValidatorStakeAmount() external view returns (uint256); - function setMinValidatorStakeAmount(uint64 newValue) external; + function setMinValidatorStakeAmount(uint256 newValue) external; - function getMinStakingAmount() external view returns (uint64); + function getMinStakingAmount() external view returns (uint256); - function setMinStakingAmount(uint64 newValue) external; + function setMinStakingAmount(uint256 newValue) external; } \ No newline at end of file diff --git a/create-genesis.go b/create-genesis.go index 0d5cf9b..1d36c5c 100644 --- a/create-genesis.go +++ b/create-genesis.go @@ -13,7 +13,6 @@ import ( "unsafe" systemcontract2 "github.com/ethereum/go-ethereum/common/systemcontract" - "github.com/ethereum/go-ethereum/eth/tracers" _ "github.com/ethereum/go-ethereum/eth/tracers/native" @@ -186,8 +185,8 @@ type consensusParams struct { FelonyThreshold uint32 ValidatorJailEpochLength uint32 UndelegatePeriod uint32 - MinValidatorStakeAmount uint64 - MinStakingAmount uint64 + MinValidatorStakeAmount *big.Int + MinStakingAmount *big.Int } type genesisConfig struct { @@ -244,7 +243,7 @@ func createGenesisConfig(config genesisConfig, targetFile string) error { initialStakes, uint16(config.CommissionRate), }) - invokeConstructorOrPanic(genesis, chainConfigAddress, chainConfigRawArtifact, []string{"uint32", "uint32", "uint32", "uint32", "uint32", "uint32", "uint64", "uint64"}, []interface{}{ + invokeConstructorOrPanic(genesis, chainConfigAddress, chainConfigRawArtifact, []string{"uint32", "uint32", "uint32", "uint32", "uint32", "uint32", "uint256", "uint256"}, []interface{}{ config.ConsensusParams.ActiveValidatorsLength, config.ConsensusParams.EpochBlockInterval, config.ConsensusParams.MisdemeanorThreshold, @@ -343,8 +342,9 @@ var devnetConfig = genesisConfig{ FelonyThreshold: 10, // after missing this amount of blocks per day validator goes in jail for N epochs ValidatorJailEpochLength: 3, // how many epochs validator should stay in jail (7 epochs = ~7 days) UndelegatePeriod: 2, // allow claiming funds only after 6 epochs (~7 days) - MinValidatorStakeAmount: 1, // how many tokens validator must stake to create a validator (in ether) - MinStakingAmount: 2, // minimum staking amount for delegators (in ether) + + MinValidatorStakeAmount: hexutil.MustDecodeBig("0xde0b6b3a7640000"), // how many tokens validator must stake to create a validator (in ether) + MinStakingAmount: hexutil.MustDecodeBig("0x1bc16d674ec800002"), // minimum staking amount for delegators (in ether) }, InitialStakes: map[common.Address]string{ common.HexToAddress("0x00a601f45688dba8a070722073b015277cf36725"): "0x3635c9adc5dea00000", // 1000 eth @@ -379,8 +379,9 @@ var testnetConfig = genesisConfig{ FelonyThreshold: 200, // missed blocks per epoch ValidatorJailEpochLength: 6, // nb of epochs UndelegatePeriod: 1, // nb of epochs - MinValidatorStakeAmount: 1000, - MinStakingAmount: 1, + + MinValidatorStakeAmount: hexutil.MustDecodeBig("0x3635c9adc5dea00000"), // how many tokens validator must stake to create a validator (in ether) + MinStakingAmount: hexutil.MustDecodeBig("0xde0b6b3a7640000"), // minimum staking amount for delegators (in ether) }, VotingPeriod: 1200, // (~1hour) InitialStakes: map[common.Address]string{ diff --git a/devnet.json b/devnet.json index d0dcbe8..000b4c8 100644 --- a/devnet.json +++ b/devnet.json @@ -18,7 +18,7 @@ "brunoBlock": 0, "parlia": { "period": 3, - "epoch": 100 + "epoch": 40 } }, "nonce": "0x0", @@ -30,7 +30,7 @@ "coinbase": "0x0000000000000000000000000000000000000000", "alloc": { "0000000000000000000000000000000000001000": { - "code": "0x60806040526004361061023a5760003560e01c806361cadbf41161012e578063c15f28c4116100ab578063e1c7392a1161006f578063e1c7392a14610739578063f340fa011461074e578063facd743b14610761578063fe38ebef14610781578063ff4794fc146107a157600080fd5b8063c15f28c41461067c578063c2fd58fc1461069c578063c6fb9065146106bc578063c96be4cb146106dc578063d951e186146106fc57600080fd5b8063a310624f116100f2578063a310624f146105f2578063adf2a79c14610612578063aea0e78b14610632578063b46e552014610647578063b7ab4db51461066757600080fd5b806361cadbf41461055657806373a3dda61461056957806376671808146105895780637a37cc59146105b65780637b1391a6146105d457600080fd5b8063426594b1116101bc5780634d238c8e116101805780634d238c8e146104d25780634d99dd16146104f257806352b7bea2146105055780635c19a95c14610525578063606c0c941461053857600080fd5b8063426594b1146103b957806342ad55ac146103d9578063457179fd146103f9578063459463341461042757806348124d261461044557600080fd5b8063289b3c0d11610203578063289b3c0d146102fe57806330108c221461031c578063392e53cd146103555780633e1bbdc91461037957806340a141ff1461039957600080fd5b806252c9e11461023f57806314f8649f1461026157806318f062cd146102815780631fe97684146102ac578063244d8257146102cc575b600080fd5b34801561024b57600080fd5b5061025f61025a36600461564c565b6107c1565b005b34801561026d57600080fd5b5061025f61027c36600461569c565b610a36565b34801561028d57600080fd5b50610296610d00565b6040516102a391906156d1565b60405180910390f35b3480156102b857600080fd5b5061025f6102c736600461571e565b610ebd565b3480156102d857600080fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016102a3565b34801561030a57600080fd5b506006546001600160a01b03166102e6565b34801561032857600080fd5b506102e661033736600461571e565b6001600160a01b039081166000908152606760205260409020541690565b34801561036157600080fd5b5060005460ff165b60405190151581526020016102a3565b34801561038557600080fd5b5061025f61039436600461573b565b610ef3565b3480156103a557600080fd5b5061025f6103b436600461571e565b610faf565b3480156103c557600080fd5b5061025f6103d436600461571e565b610fe2565b3480156103e557600080fd5b506103696103f436600461571e565b61104f565b34801561040557600080fd5b5061041961041436600461571e565b611108565b6040519081526020016102a3565b34801561043357600080fd5b506005546001600160a01b03166102e6565b34801561045157600080fd5b506104656104603660046157f9565b6111f2565b604080516001600160a01b03909a168a5260ff90981660208a01529688019590955263ffffffff90931660608701526001600160401b039182166080870152811660a08601521660c084015261ffff1660e08301526001600160601b0316610100820152610120016102a3565b3480156104de57600080fd5b5061025f6104ed36600461571e565b61134e565b61025f610500366004615827565b61138f565b34801561051157600080fd5b5061041961052036600461564c565b61139a565b61025f61053336600461571e565b6113b7565b34801561054457600080fd5b506007546001600160a01b03166102e6565b61025f61056436600461569c565b6113c2565b34801561057557600080fd5b5061025f61058436600461571e565b6114fe565b34801561059557600080fd5b5061059e6117a8565b6040516001600160401b0390911681526020016102a3565b3480156105c257600080fd5b506004546001600160a01b03166102e6565b3480156105e057600080fd5b506002546001600160a01b03166102e6565b3480156105fe57600080fd5b5061046561060d36600461571e565b6117b7565b34801561061e57600080fd5b5061025f61062d3660046157f9565b61197b565b34801561063e57600080fd5b5061059e611a33565b34801561065357600080fd5b5061025f61066236600461571e565b611a3d565b34801561067357600080fd5b50610296611a70565b34801561068857600080fd5b5061025f610697366004615897565b611a7a565b3480156106a857600080fd5b506104196106b736600461564c565b611b98565b3480156106c857600080fd5b506104196106d736600461571e565b611ba7565b3480156106e857600080fd5b5061025f6106f736600461571e565b611c85565b34801561070857600080fd5b5061071c61071736600461564c565b611cff565b604080519283526001600160401b039091166020830152016102a3565b34801561074557600080fd5b5061025f611eb6565b61025f61075c36600461571e565b611f5c565b34801561076d57600080fd5b5061036961077c36600461571e565b612021565b34801561078d57600080fd5b5061025f61079c3660046157f9565b612063565b3480156107ad57600080fd5b5061025f6107bc36600461571e565b6120eb565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561081e5761081e615917565b600381111561082f5761082f615917565b815260018201546001600160401b03600160a81b90910481166020808401919091526002909301548082166040840152600160401b9004166060909101528101519091506001600160a01b031633146108a35760405162461bcd60e51b815260040161089a9061592d565b60405180910390fd5b602081810180516001600160a01b0390811660009081526067808552604080832080546001600160a01b03199081169091558885168087528452918652808320805483168a8616908117909155835260669095529084902085518154831690841617815592516001840180549283169190931690811783559385015185949092916001600160a81b03191617600160a01b83600381111561094657610946615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b929091169190910217905560006109c0826109bb61217f565b612194565b905081600001516001600160a01b03167fc00107e0d011ac7c8e4dfa18e3dd3623ff151f8bfcc3821cd39bc114bd6504d9836020015184604001516003811115610a0c57610a0c615917565b8454604051610a28939291600160c01b900461ffff1690615964565b60405180910390a250505050565b610bb861ffff82161115610a8c5760405162461bcd60e51b815260206004820152601c60248201527f5374616b696e673a2062616420636f6d6d697373696f6e207261746500000000604482015260640161089a565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff166003811115610ae957610ae9615917565b6003811115610afa57610afa615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050600081604001516003811115610b5057610b50615917565b1415610b6e5760405162461bcd60e51b815260040161089a9061598c565b60208101516001600160a01b03163314610b9a5760405162461bcd60e51b815260040161089a9061592d565b6000610ba8826109bb61217f565b805461ffff8516600160c01b0261ffff60c01b199091161781556001600160a01b03808616600090815260666020908152604091829020865181549085166001600160a01b03199182161782559187015160018201805491909516928116831785559287015194955086949093909290916001600160a81b031990911617600160a01b836003811115610c3d57610c3d615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790558151602083015160408401516001600160a01b03909216917fc00107e0d011ac7c8e4dfa18e3dd3623ff151f8bfcc3821cd39bc114bd6504d991906003811115610cf057610cf0615917565b86604051610a2893929190615964565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b031691839150600090610d4957610d496159d9565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610d7a57610d7a6159d9565b6001600160a01b039283166020918202929092010152600454825191169082906002908110610dab57610dab6159d9565b6001600160a01b039283166020918202929092010152600554825191169082906003908110610ddc57610ddc6159d9565b6001600160a01b039283166020918202929092010152600654825191169082906004908110610e0d57610e0d6159d9565b6001600160a01b039283166020918202929092010152600754825191169082906005908110610e3e57610e3e6159d9565b6001600160a01b039283166020918202929092010152600854825191169082906006908110610e6f57610e6f6159d9565b6001600160a01b039283166020918202929092010152600954825191169082906007908110610ea057610ea06159d9565b6001600160a01b0390921660209283029190910190910152919050565b6006546001600160a01b03163314610ee75760405162461bcd60e51b815260040161089a906159ef565b610ef0816122b4565b50565b60005460ff1615610f165760405162461bcd60e51b815260040161089a90615a35565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610f986123fa565b50506000805460ff19166001179055505050505050565b6006546001600160a01b03163314610fd95760405162461bcd60e51b815260040161089a906159ef565b610ef0816124ec565b6001600160a01b0381166000908152606660205260408120906001820154600160a01b900460ff16600381111561101b5761101b615917565b14156110395760405162461bcd60e51b815260040161089a9061598c565b61104b823361104661266b565b6126f4565b5050565b600060016001600160a01b038316600090815260666020526040902060010154600160a01b900460ff16600381111561108a5761108a615917565b1461109757506000919050565b60006110a1612ba4565b905060005b81518110156110fe57836001600160a01b03168282815181106110cb576110cb6159d9565b60200260200101516001600160a01b031614156110ec575060019392505050565b806110f681615a82565b9150506110a6565b5060009392505050565b6001600160a01b038181166000908152606660209081526040808320815160c0810183528154861681526001820154958616938101939093529293849391830190600160a01b900460ff16600381111561116457611164615917565b600381111561117557611175615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b900490911660609091015290506000816040015160038111156111cb576111cb615917565b14156111da5750600092915050565b6111eb816111e661266b565b612fa0565b9392505050565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929384938493849384938493849384938493849391830190600160a01b900460ff16600381111561125e5761125e615917565b600381111561126f5761126f615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060006112b9828d613081565b905081602001519a508a826040015160038111156112d9576112d9615917565b9a508a670de0b6b3a764000083602001516001600160401b03166112fd9190615a9d565b9a508a83604001519a508a85606001519a508a86608001519a508a8760a001519a508a87606001519a508a88600001519a509a509a509a509a509a509a509a509a5050509295985092959850929598565b6006546001600160a01b031633146113785760405162461bcd60e51b815260040161089a906159ef565b610ef08182600160008061138a61217f565b6131c5565b61104b338383613812565b60006113ae83836113a961266b565b613f08565b90505b92915050565b610ef0338234614332565b60075460408051636f85684760e01b81529051339234926001600160a01b0390911691636f856847916004808201926020929091908290030181865afa158015611410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114349190615abc565b6001600160401b031661144f670de0b6b3a764000083615aef565b10156114a75760405162461bcd60e51b815260206004820152602160248201527f5374616b696e673a20696e697469616c207374616b6520697320746f6f206c6f6044820152607760f81b606482015260840161089a565b6114b9670de0b6b3a764000082615b03565b156114d65760405162461bcd60e51b815260040161089a90615b17565b6114f884836002866114f0670de0b6b3a764000087615aef565b61138a61217f565b50505050565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561155b5761155b615917565b600381111561156c5761156c615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b900490911660609091015290506003816040015160038111156115c2576115c2615917565b1461160f5760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a2076616c696461746f72206e6f7420696e206a61696c0000604482015260640161089a565b80602001516001600160a01b0316336001600160a01b0316146116445760405162461bcd60e51b815260040161089a9061592d565b80608001516001600160401b031661165a61266b565b6001600160401b031610156116aa5760405162461bcd60e51b815260206004820152601660248201527514dd185ada5b99ce881cdd1a5b1b081a5b881a985a5b60521b604482015260640161089a565b6040810160015b908160038111156116c4576116c4615917565b9052506001600160a01b03808316600090815260666020908152604091829020845181549085166001600160a01b0319918216178255918501516001820180549190951692811683178555928501518594919390926001600160a81b031990911617600160a01b83600381111561173d5761173d615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790555050565b60006117b261266b565b905090565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929384938493849384938493849384938493849391830190600160a01b900460ff16600381111561182357611823615917565b600381111561183457611834615917565b81526001820154600160a81b90046001600160401b03908116602080840191909152600290930154808216604080850191909152600160401b909104821660609384015284516001600160a01b03166000908152606a855281812086850151841682528552819020815160808101835290546001600160601b0381168252600160601b810490931681860152600160a01b830463ffffffff1681830152600160c01b90920461ffff16928201929092529183015190830151909c50919250908b90600381111561190657611906615917565b9a508a670de0b6b3a764000083602001516001600160401b031661192a9190615a9d565b9a508a83604001519a508a85606001519a508a86608001519a508a8760a001519a508a87606001519a508a88600001519a509a509a509a509a509a509a509a509a5050509193959799909294969850565b6001600160a01b0382166000908152606660205260408120906001820154600160a01b900460ff1660038111156119b4576119b4615917565b14156119d25760405162461bcd60e51b815260040161089a9061598c565b60018101546001600160a01b031633146119fe5760405162461bcd60e51b815260040161089a9061592d565b611a0661266b565b6001600160401b0316826001600160401b03161115611a2457600080fd5b611a2e8183614886565b505050565b60006117b261217f565b6006546001600160a01b03163314611a675760405162461bcd60e51b815260040161089a906159ef565b610ef081614a2c565b60606117b2612ba4565b60005460ff1615611a9d5760405162461bcd60e51b815260040161089a90615a35565b818414611aa957600080fd5b60005b84811015611b8357670de0b6b3a7640000848483818110611acf57611acf6159d9565b90506020020135611ae09190615b03565b15611aea57600080fd5b611b71868683818110611aff57611aff6159d9565b9050602002016020810190611b14919061571e565b878784818110611b2657611b266159d9565b9050602002016020810190611b3b919061571e565b600185670de0b6b3a7640000898988818110611b5957611b596159d9565b90506020020135611b6a9190615aef565b60006131c5565b80611b7b81615a82565b915050611aac565b50506000805460ff1916600117905550505050565b60006113ae83836113a961217f565b6001600160a01b038181166000908152606660209081526040808320815160c0810183528154861681526001820154958616938101939093529293849391830190600160a01b900460ff166003811115611c0357611c03615917565b6003811115611c1457611c14615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050600081604001516003811115611c6a57611c6a615917565b1415611c795750600092915050565b6111eb816111e661217f565b6003546001600160a01b03163314611cf65760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920736c617360448201526d3434b7339034b73234b1b0ba37b960911b606482015260840161089a565b610ef081614bb1565b6001600160a01b03808316600090815260696020908152604080832093851683529281528282208351815460a0938102820184019095526080810185815293948594859492939284928491879085015b82821015611d9857600084815260209081902060408051808201909152908401546001600160401b038082168352600160401b9091041681830152825260019092019101611d4f565b5050509082525060018201546001600160401b0316602080830191909152600283018054604080518285028101850182528281529401939260009084015b82821015611e1f57600084815260209081902060408051808201909152908401546001600160401b038082168352600160401b9091041681830152825260019092019101611dd6565b50505090825250600391909101546001600160401b0316602090910152805151909150611e53575060009150819050611eaf565b8051805160009190611e6790600190615b4c565b81518110611e7757611e776159d9565b60200260200101519050670de0b6b3a764000081600001516001600160401b0316611ea29190615a9d565b6020909101519093509150505b9250929050565b60005460ff1615611ed95760405162461bcd60e51b815260040161089a90615a35565b600280546001600160a01b03199081166110001790915560038054821661100117905560048054821661100217905560058054821661700117905560068054821661700217905560078054821661700317905560088054821661700417905560098054909116617005179055611f4d6123fa565b6000805460ff19166001179055565b334114611fb75760405162461bcd60e51b8152602060048201526024808201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920636f696e6044820152636261736560e01b606482015260840161089a565b3a156120185760405162461bcd60e51b815260206004820152602a60248201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c79207a65726f6044820152692067617320707269636560b01b606482015260840161089a565b610ef081615060565b6000806001600160a01b038316600090815260666020526040902060010154600160a01b900460ff16600381111561205b5761205b615917565b141592915050565b6001600160a01b0382166000908152606660205260408120906001820154600160a01b900460ff16600381111561209c5761209c615917565b14156120ba5760405162461bcd60e51b815260040161089a9061598c565b6120c261266b565b6001600160401b0316826001600160401b031611156120e057600080fd5b611a2e8333846126f4565b6001600160a01b0381166000908152606660205260408120906001820154600160a01b900460ff16600381111561212457612124615917565b14156121425760405162461bcd60e51b815260040161089a9061598c565b60018101546001600160a01b0316331461216e5760405162461bcd60e51b815260040161089a9061592d565b61104b8161217a61266b565b614886565b600061218961266b565b6117b2906001615b63565b81516001600160a01b03166000908152606a602090815260408083206001600160401b0380861685529252822080549091600160601b90910416156121da5790506113b1565b83516001600160a01b03166000908152606a60209081526040808320606080890180516001600160401b03908116875292855294839020835160808101855290546001600160601b0381168252600160601b8082048516968301879052600160a01b820463ffffffff1695830195909552600160c01b9081900461ffff1692820183905287546dffff00000000ffffffffffffffff60601b19169590940261ffff60c01b19169490941792029190911784559151909190811690851611156122ac576001600160401b03841660608601525b509392505050565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561231157612311615917565b600381111561232257612322615917565b81526001828101546001600160401b03600160a81b909104811660208401526002909301548084166040840152600160401b90049092166060909101529091506001600160a01b038316600090815260666020526040902060010154600160a01b900460ff16600381111561239957612399615917565b146123e65760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a206e6f74206163746976652076616c696461746f72000000604482015260640161089a565b6123ef826151e9565b6040810160026116b1565b6001805461240790615b8e565b1515905061241157565b600080306001600160a01b0316600160405161242d9190615bc9565b6000604051808303816000865af19150503d806000811461246a576040519150601f19603f3d011682016040523d82523d6000602084013e61246f565b606091505b5091509150811561247e575050565b80516124e35760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b606482015260840161089a565b80518082602001fd5b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561254957612549615917565b600381111561255a5761255a615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b900490911660609091015290506000816040015160038111156125b0576125b0615917565b14156125ce5760405162461bcd60e51b815260040161089a9061598c565b6125d7826151e9565b6020808201516001600160a01b03908116600090815260678352604080822080546001600160a01b03199081169091559286168083526066909452808220805490931683556001830180546001600160e81b0319169055600290920180546001600160801b031916905590517fe1434e25d6611e0db941968fdc97811c982ac1602e951637d206f5fdda9dd8f19190a25050565b6007546040805163068d921560e31b815290516000926001600160a01b03169163346c90a89160048083019260209291908290030181865afa1580156126b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d99190615c65565b6126e99063ffffffff1643615aef565b6117b2906000615c8b565b6001600160a01b0380841660009081526069602090815260408083209386168352929052908120600181015481549192916001600160401b03909116905b80826001600160401b03161015612a0557600084600001836001600160401b031681548110612763576127636159d9565b6000918252602091829020604080518082019091529101546001600160401b038082168352600160401b90910481169282018390529092508716116127a85750612a05565b60006127b5600184615b4c565b846001600160401b0316101561280957856127d1856001615b63565b6001600160401b0316815481106127ea576127ea6159d9565b600091825260209091200154600160401b90046001600160401b031690505b866001600160401b031682602001516001600160401b0316108015612842575080158061284257508082602001516001600160401b0316105b1561293f576001600160a01b0389166000908152606a60209081526040808320858301516001600160401b03908116855290835292819020815160808101835290546001600160601b0381168252600160601b8104909416928101839052600160a01b840463ffffffff1691810191909152600160c01b90920461ffff1660608301526128cf575061291e565b60006128da8261532f565b5050905081602001516001600160401b031684600001516001600160401b0316826129059190615a9d565b61290f9190615aef565b6129199088615c8b565b965050505b6020820180519061292e82615ca3565b6001600160401b0316905250612809565b61294a600184615b4c565b846001600160401b0316106129bc578186600001856001600160401b031681548110612978576129786159d9565b600091825260209182902083519101805493909201516001600160401b03908116600160401b026001600160801b031990941691161791909117905550612a059050565b85600001846001600160401b0316815481106129da576129da6159d9565b600091825260209091200180546001600160801b03191690556129fc84615ca3565b93505050612732565b5060018301805467ffffffffffffffff19166001600160401b0383811691909117909155600384015460028501549116905b80826001600160401b03161015612b2057600085600201836001600160401b031681548110612a6857612a686159d9565b6000918252602091829020604080518082019091529101546001600160401b038082168352600160401b909104811692820183905290925088161015612aae5750612b20565b8051612acc90670de0b6b3a7640000906001600160401b0316615a9d565b612ad69086615c8b565b945085600201836001600160401b031681548110612af657612af66159d9565b600091825260209091200180546001600160801b0319169055612b1883615ca3565b925050612a37565b5060038401805467ffffffffffffffff19166001600160401b038316179055612b498684615450565b604080518481526001600160401b03871660208201526001600160a01b0380891692908a16917fb22dec804803f8b1c5333f626cdbfdfb1bd629f1e1bb45dcfb22b5f74ed46b1c91015b60405180910390a350505050505050565b6068546060906000816001600160401b03811115612bc457612bc46159c3565b604051908082528060200260200182016040528015612bed578160200160208202803683370190505b50905060005b82811015612c685760688181548110612c0e57612c0e6159d9565b9060005260206000200160009054906101000a90046001600160a01b0316828281518110612c3e57612c3e6159d9565b6001600160a01b039092166020928302919091019091015280612c6081615a82565b915050612bf3565b50600754604080516306598de160e31b815290516000926001600160a01b0316916332cc6f089160048083019260209291908290030181865afa158015612cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd79190615c65565b63ffffffff16905082811115612cea5750815b60005b81811015612f97576000819050600060666000868481518110612d1257612d126159d9565b6020908102919091018101516001600160a01b039081168352828201939093526040918201600020825160c08101845281548516815260018201549485169281019290925290929091830190600160a01b900460ff166003811115612d7957612d79615917565b6003811115612d8a57612d8a615917565b81526001828101546001600160401b03600160a81b909104811660208401526002909301548084166040840152600160401b9004909216606090910152909150600090612dd8908590615c8b565b90505b86811015612ee357600060666000888481518110612dfb57612dfb6159d9565b6020908102919091018101516001600160a01b039081168352828201939093526040918201600020825160c08101845281548516815260018201549485169281019290925290929091830190600160a01b900460ff166003811115612e6257612e62615917565b6003811115612e7357612e73615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050612eba816154f6565b612ec3846154f6565b1015612ed0578193508092505b5080612edb81615a82565b915050612ddb565b506000858481518110612ef857612ef86159d9565b60200260200101519050858381518110612f1457612f146159d9565b6020026020010151868581518110612f2e57612f2e6159d9565b60200260200101906001600160a01b031690816001600160a01b03168152505080868481518110612f6157612f616159d9565b60200260200101906001600160a01b031690816001600160a01b0316815250505050508080612f8f90615a82565b915050612ced565b50815292915050565b6000805b826001600160401b03168460a001516001600160401b031610156113ae5783516001600160a01b03166000908152606a6020908152604080832060a08801516001600160401b039081168552908352818420825160808101845290546001600160601b0381168252600160601b810490921693810193909352600160a01b810463ffffffff1691830191909152600160c01b900461ffff1660608201529061304b8261532f565b50915061305a90508184615c8b565b925050508360a001805180919061307090615ca3565b6001600160401b0316905250612fa4565b60408051608081018252600080825260208201819052918101829052606081019190915282516001600160a01b03166000908152606a602090815260408083206001600160401b03868116855290835292819020815160808101835290546001600160601b0381168252600160601b8104909416928101839052600160a01b840463ffffffff1691810191909152600160c01b90920461ffff1660608301521561312c5790506113b1565b83516001600160a01b03166000908152606a602090815260408083206060808901516001600160401b03908116865291845293829020825160808101845290546001600160601b0381168252600160601b810490921681850181905263ffffffff600160a01b8404169382019390935261ffff600160c01b90920482169085019081529285019190915290511690820152905092915050565b610bb861ffff8416111561321b5760405162461bcd60e51b815260206004820152601c60248201527f5374616b696e673a2062616420636f6d6d697373696f6e207261746500000000604482015260640161089a565b6001600160a01b038681166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561327857613278615917565b600381111561328957613289615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060006001600160a01b038816600090815260666020526040902060010154600160a01b900460ff16600381111561330057613300615917565b1461334d5760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a2076616c696461746f7220616c7265616479206578697374604482015260640161089a565b6001600160a01b038088168252861660208201526040810185600381111561337757613377615917565b9081600381111561338a5761338a615917565b9052506001600160401b03821660608201526001600160a01b03808816600090815260666020908152604091829020845181549085166001600160a01b0319918216178255918501516001820180549190951692811683178555928501518594919390926001600160a81b031990911617600160a01b83600381111561341257613412615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790556001600160a01b0386811660009081526067602052604090205416156134e15760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a206f776e657220616c726561647920696e20757365000000604482015260640161089a565b6001600160a01b03868116600090815260676020526040902080546001600160a01b031916918916919091179055600185600381111561352357613523615917565b141561357557606880546001810182556000919091527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530180546001600160a01b0319166001600160a01b0389161790555b604051806080016040528060006001600160601b03168152602001846001600160401b03168152602001600063ffffffff1681526020018561ffff16815250606a6000896001600160a01b03166001600160a01b031681526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060008201518160000160006101000a8154816001600160601b0302191690836001600160601b03160217905550602082015181600001600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160146101000a81548163ffffffff021916908363ffffffff16021790555060608201518160000160186101000a81548161ffff021916908361ffff160217905550905050600060696000896001600160a01b03166001600160a01b031681526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020905080600001805490506000146137555760405162461bcd60e51b815260206004820152602660248201527f5374616b696e673a2064656c65676174696f6e207175657565206973206e6f7460448201526520656d70747960d01b606482015260840161089a565b604080518082019091526001600160401b0380861682528481166020808401918252845460018101865560008681529190912093519301805491518316600160401b026001600160801b031990921693909216929092179190911790556001600160a01b0388167f42449fd19d367b0177da9082fe6da7d4da41af7573e3a3c1750ecffeffe26f9d888860038111156137f0576137f0615917565b8860405161380093929190615964565b60405180910390a25050505050505050565b600760009054906101000a90046001600160a01b03166001600160a01b031663eea9a01b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138899190615abc565b6001600160401b03166138a4670de0b6b3a764000083615aef565b10156138f25760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e673a20616d6f756e7420697320746f6f206c6f77000000000000604482015260640161089a565b613904670de0b6b3a764000082615b03565b156139215760405162461bcd60e51b815260040161089a90615b17565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561397e5761397e615917565b600381111561398f5761398f615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b900490911660609091015290506000816040015160038111156139e5576139e5615917565b1415613a035760405162461bcd60e51b815260040161089a9061598c565b6000613a0d61217f565b90506000613a1b8383612194565b9050613a2f670de0b6b3a764000085615aef565b81546001600160401b03918216600160601b9091049091161015613a955760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a20696e73756666696369656e742062616c616e6365000000604482015260640161089a565b613aa7670de0b6b3a764000085615aef565b81548290600c90613ac9908490600160601b90046001600160401b0316615cca565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b03808616600090815260666020908152604091829020865181549085166001600160a01b0319918216178255918701516001820180549190951692811683178555928701518794919390926001600160a81b031990911617600160a01b836003811115613b6257613b62615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790556001600160a01b038581166000908152606960209081526040808320938a168352929052208054613c475760405162461bcd60e51b815260206004820152602260248201527f5374616b696e673a2064656c65676174696f6e20717565756520697320656d70604482015261747960f01b606482015260840161089a565b80546000908290613c5a90600190615b4c565b81548110613c6a57613c6a6159d9565b906000526020600020019050670de0b6b3a764000086613c8a9190615aef565b81546001600160401b0391821691161015613ce75760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a20696e73756666696369656e742062616c616e6365000000604482015260640161089a565b6000613cfb670de0b6b3a764000088615aef565b8254613d1091906001600160401b0316615cca565b82549091506001600160401b03808716600160401b9092041610613d4d57815467ffffffffffffffff19166001600160401b038216178255613dab565b604080518082019091526001600160401b0380831682528681166020808401918252865460018101885560008881529190912093519301805491518316600160401b026001600160801b031990921693909216929092179190911790555b826002016040518060400160405280670de0b6b3a76400008a613dce9190615aef565b6001600160401b0316815260075460408051635e7b72ad60e01b815290516020938401936001600160a01b0390931692635e7b72ad92600480820193918290030181865afa158015613e24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e489190615c65565b613e589063ffffffff1689615b63565b6001600160401b039081169091528254600181018455600093845260209384902083519101805494909301518216600160401b026001600160801b03199094169116179190911790556040516001600160a01b03808b1691908a16907fa410e32157a44414a502bb47d775234de1aa7da123f5adfe426898f1601883fd90613ef5908b908a909182526001600160401b0316602082015260400190565b60405180910390a3505050505050505050565b6001600160a01b03808416600090815260696020908152604080832093861683529281528282208351815460a093810282018401909552608081018581529394859491938492918491879085015b82821015613f9f57600084815260209081902060408051808201909152908401546001600160401b038082168352600160401b9091041681830152825260019092019101613f56565b5050509082525060018201546001600160401b0316602080830191909152600283018054604080518285028101850182528281529401939260009084015b8282101561402657600084815260209081902060408051808201909152908401546001600160401b038082168352600160401b9091041681830152825260019092019101613fdd565b50505090825250600391909101546001600160401b0316602090910152905060005b81515160208301516001600160401b03161015614272576000826000015183602001516001600160401b031681518110614084576140846159d9565b60200260200101519050846001600160401b031681602001516001600160401b0316106140b15750614272565b8251516000906140c390600190615b4c565b84602001516001600160401b0316101561411a57835160208501516140e9906001615b63565b6001600160401b031681518110614102576141026159d9565b6020026020010151602001516001600160401b031690505b856001600160401b031682602001516001600160401b0316108015614153575080158061415357508082602001516001600160401b0316105b15614250576001600160a01b0388166000908152606a60209081526040808320858301516001600160401b03908116855290835292819020815160808101835290546001600160601b0381168252600160601b8104909416928101839052600160a01b840463ffffffff1691810191909152600160c01b90920461ffff1660608301526141e0575061422f565b60006141eb8261532f565b5050905081602001516001600160401b031684600001516001600160401b0316826142169190615a9d565b6142209190615aef565b61422a9086615c8b565b945050505b6020820180519061423f82615ca3565b6001600160401b031690525061411a565b83602001805161425f90615ca3565b6001600160401b03169052506140489050565b81604001515182606001516001600160401b03161015614329576000826040015183606001516001600160401b0316815181106142b1576142b16159d9565b60200260200101519050846001600160401b031681602001516001600160401b031611156142df5750614329565b80516142fd90670de0b6b3a7640000906001600160401b0316615a9d565b6143079083615c8b565b915082606001805161431890615ca3565b6001600160401b0316905250614272565b95945050505050565b600760009054906101000a90046001600160a01b03166001600160a01b031663eea9a01b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143a99190615abc565b6001600160401b03166143c4670de0b6b3a764000083615aef565b10156144125760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e673a20616d6f756e7420697320746f6f206c6f77000000000000604482015260640161089a565b614424670de0b6b3a764000082615b03565b156144415760405162461bcd60e51b815260040161089a90615b17565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561449e5761449e615917565b60038111156144af576144af615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060008160400151600381111561450557614505615917565b14156145235760405162461bcd60e51b815260040161089a9061598c565b600061452d61217f565b9050600061453b8383612194565b905061454f670de0b6b3a764000085615aef565b81548290600c90614571908490600160601b90046001600160401b0316615b63565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b03808616600090815260666020908152604091829020865181549085166001600160a01b0319918216178255918701516001820180549190951692811683178555928701518794919390926001600160a81b031990911617600160a01b83600381111561460a5761460a615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790556001600160a01b038581166000908152606960209081526040808320938a168352929052208054156147c957805460009082906146b090600190615b4c565b815481106146c0576146c06159d9565b600091825260209091200180549091506001600160401b03808616600160401b909204161061473f576146fb670de0b6b3a764000087615aef565b815482906000906147169084906001600160401b0316615b63565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506147c3565b6040805180820190915282908061475e670de0b6b3a76400008a615aef565b845461477391906001600160401b0316615b63565b6001600160401b039081168252878116602092830152835460018101855560009485529382902083519401805493909201518116600160401b026001600160801b03199093169316929092171790555b50614838565b604080518082019091528190806147e8670de0b6b3a764000089615aef565b6001600160401b039081168252868116602092830152835460018101855560009485529382902083519401805493909201518116600160401b026001600160801b03199093169316929092171790555b604080518681526001600160401b03851660208201526001600160a01b03808a1692908916917f30bcda2f188b532c7644e632473e83a6fb3c5c79717650d0ac790d141bb1b1779101612b93565b60028201546000908190600160401b90046001600160401b03165b836001600160401b0316816001600160401b031610156149755784546001600160a01b03166000908152606a602090815260408083206001600160401b038581168552908352818420825160808101845290546001600160601b0381168252600160601b810490921693810193909352600160a01b810463ffffffff1691830191909152600160c01b900461ffff16606082015290806149408361532f565b925092505081866149519190615c8b565b955061495d8186615c8b565b9450505050808061496d90615ca3565b9150506148a1565b6002850180546fffffffffffffffff00000000000000001916600160401b6001600160401b0384160217905560018501546149b9906001600160a01b031684615450565b81156149d5576004546149d5906001600160a01b031683615589565b8454604080518581526001600160401b03871660208201526001600160a01b03909216917fb947d7b49cedaf132fd7a9592099c21170864455405d51b4825032441532410091015b60405180910390a25050505050565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff166003811115614a8957614a89615917565b6003811115614a9a57614a9a615917565b815260018201546001600160401b03600160a81b909104811660208301526002928301548082166040840152600160401b9004166060909101529091506001600160a01b038316600090815260666020526040902060010154600160a01b900460ff166003811115614b0e57614b0e615917565b14614b5b5760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a206e6f742070656e64696e672076616c696461746f720000604482015260640161089a565b60688054600180820183556000929092527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530180546001600160a01b0319166001600160a01b03851617905560408201906116b1565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff166003811115614c0e57614c0e615917565b6003811115614c1f57614c1f615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050600081604001516003811115614c7557614c75615917565b1415614c935760405162461bcd60e51b815260040161089a9061598c565b6000614c9d61266b565b90506000614cab8383612194565b8054909150600090614ccb90600160a01b900463ffffffff166001615cf2565b825463ffffffff8216600160a01b90810263ffffffff60a01b199092169190911784556001600160a01b03808816600090815260666020908152604091829020895181549085166001600160a01b0319918216178255918a01516001820180549190951692811683178555928a0151959650899590949093926001600160a81b03191690911790836003811115614d6457614d64615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b9290911691909102179055600754604080516317c332e760e31b815290516001600160a01b039092169163be199738916004808201926020929091908290030181865afa158015614e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e399190615c65565b63ffffffff168163ffffffff16141561501157600760009054906101000a90046001600160a01b03166001600160a01b0316636cbe6cd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015614e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ec39190615c65565b63ffffffff16614ed161266b565b614edb9190615b63565b6001600160401b03166080850152600360408501819052506001600160a01b03808616600090815260666020908152604091829020875181549085166001600160a01b0319918216178255918801516001820180549190951692811683178555928801518894919390926001600160a81b031990911617600160a01b836003811115614f6957614f69615917565b021790555060608201516001820180546001600160401b03928316600160a81b0267ffffffffffffffff60a81b1990911617905560808301516002909201805460a0909401518216600160401b026001600160801b03199094169282169290921792909217905560405190841681526001600160a01b038616907f6acc1079130362b805ce4a8874346d4ee8893d55f223e378ddc73031ce427eab9060200160405180910390a25b6040805163ffffffff831681526001600160401b03851660208201526001600160a01b038716917ff30f0392d5346908bf200bc0924d0c9860e22d46fc606e979a2e14fff24c62b99101614a1d565b600034116150b05760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a206465706f736974206973207a65726f0000000000000000604482015260640161089a565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561510d5761510d615917565b600381111561511e5761511e615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060008160400151600381111561517457615174615917565b14156151925760405162461bcd60e51b815260040161089a9061598c565b60006151a0826109bb61266b565b8054909150349082906000906151c09084906001600160601b0316615d11565b92506101000a8154816001600160601b0302191690836001600160601b03160217905550505050565b60001960005b60685481101561524f57826001600160a01b031660688281548110615216576152166159d9565b6000918252602090912001546001600160a01b0316146152355761523d565b80915061524f565b8061524781615a82565b9150506151ef565b506000811261104b576068546001108015615278575060685461527490600190615b4c565b8114155b156152f8576068805461528d90600190615b4c565b8154811061529d5761529d6159d9565b600091825260209091200154606880546001600160a01b0390921691839081106152c9576152c96159d9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b606880548061530957615309615d33565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b6000806000600760009054906101000a90046001600160a01b03166001600160a01b0316639dbf97db6040518163ffffffff1660e01b8152600401602060405180830381865afa158015615387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906153ab9190615c65565b63ffffffff16846040015163ffffffff16106153d957505081516000915081906001600160601b0316615449565b60208401516001600160401b03166154025750508151600091506001600160601b031681615449565b612710846060015161ffff16856000015161541d9190615d49565b6154279190615d78565b84516001600160601b03918216935061544291849116615b4c565b9250600090505b9193909250565b6040516000906001600160a01b0384169061753090849084818181858888f193505050503d80600081146154a0576040519150601f19603f3d011682016040523d82523d6000602084013e6154a5565b606091505b5050905080611a2e5760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a206661696c656420746f2073616665207472616e73666572604482015260640161089a565b80516001600160a01b03166000908152606a602090815260408083206060808601516001600160401b039081168652918452828520835160808101855290546001600160601b0381168252600160601b8104909316948101859052600160a01b830463ffffffff1693810193909352600160c01b90910461ffff1690820152906111eb90670de0b6b3a764000090615a9d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146155d6576040519150601f19603f3d011682016040523d82523d6000602084013e6155db565b606091505b5050905080611a2e5760405162461bcd60e51b815260206004820152602260248201527f5374616b696e673a206661696c656420746f20756e73616665207472616e736660448201526132b960f11b606482015260840161089a565b6001600160a01b0381168114610ef057600080fd5b6000806040838503121561565f57600080fd5b823561566a81615637565b9150602083013561567a81615637565b809150509250929050565b803561ffff8116811461569757600080fd5b919050565b600080604083850312156156af57600080fd5b82356156ba81615637565b91506156c860208401615685565b90509250929050565b6020808252825182820181905260009190848201906040850190845b818110156157125783516001600160a01b0316835292840192918401916001016156ed565b50909695505050505050565b60006020828403121561573057600080fd5b81356113ae81615637565b600080600080600080600080610100898b03121561575857600080fd5b883561576381615637565b9750602089013561577381615637565b9650604089013561578381615637565b9550606089013561579381615637565b945060808901356157a381615637565b935060a08901356157b381615637565b925060c08901356157c381615637565b915060e08901356157d381615637565b809150509295985092959890939650565b6001600160401b0381168114610ef057600080fd5b6000806040838503121561580c57600080fd5b823561581781615637565b9150602083013561567a816157e4565b6000806040838503121561583a57600080fd5b823561584581615637565b946020939093013593505050565b60008083601f84011261586557600080fd5b5081356001600160401b0381111561587c57600080fd5b6020830191508360208260051b8501011115611eaf57600080fd5b6000806000806000606086880312156158af57600080fd5b85356001600160401b03808211156158c657600080fd5b6158d289838a01615853565b909750955060208801359150808211156158eb57600080fd5b506158f888828901615853565b909450925061590b905060408701615685565b90509295509295909350565b634e487b7160e01b600052602160045260246000fd5b6020808252601d908201527f5374616b696e673a206f6e6c792076616c696461746f72206f776e6572000000604082015260600190565b6001600160a01b0393909316835260ff91909116602083015261ffff16604082015260600190565b6020808252601c908201527f5374616b696e673a2076616c696461746f72206e6f7420666f756e6400000000604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526026908201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604082015265726e616e636560d01b606082015260800190565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000600019821415615a9657615a96615a6c565b5060010190565b6000816000190483118215151615615ab757615ab7615a6c565b500290565b600060208284031215615ace57600080fd5b81516113ae816157e4565b634e487b7160e01b600052601260045260246000fd5b600082615afe57615afe615ad9565b500490565b600082615b1257615b12615ad9565b500690565b6020808252818101527f5374616b696e673a20616d6f756e74206861766520612072656d61696e646572604082015260600190565b600082821015615b5e57615b5e615a6c565b500390565b60006001600160401b03808316818516808303821115615b8557615b85615a6c565b01949350505050565b600181811c90821680615ba257607f821691505b60208210811415615bc357634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680615be557607f831692505b6020808410821415615c0557634e487b7160e01b86526022600452602486fd5b818015615c195760018114615c2a57615c57565b60ff19861689528489019650615c57565b60008a81526020902060005b86811015615c4f5781548b820152908501908301615c36565b505084890196505b509498975050505050505050565b600060208284031215615c7757600080fd5b815163ffffffff811681146113ae57600080fd5b60008219821115615c9e57615c9e615a6c565b500190565b60006001600160401b0380831681811415615cc057615cc0615a6c565b6001019392505050565b60006001600160401b0383811690831681811015615cea57615cea615a6c565b039392505050565b600063ffffffff808316818516808303821115615b8557615b85615a6c565b60006001600160601b03808316818516808303821115615b8557615b85615a6c565b634e487b7160e01b600052603160045260246000fd5b60006001600160601b0380831681851681830481118215151615615d6f57615d6f615a6c565b02949350505050565b60006001600160601b0380841680615d9257615d92615ad9565b9216919091049291505056fea2646970667358221220a76f4d07fc56f19cccf10f4d7a6463446a414218d145f99b8722213ef27a55cc64736f6c634300080b0033", + "code": "0x60806040526004361061023a5760003560e01c806361cadbf41161012e578063c15f28c4116100ab578063e1c7392a1161006f578063e1c7392a14610739578063f340fa011461074e578063facd743b14610761578063fe38ebef14610781578063ff4794fc146107a157600080fd5b8063c15f28c41461067c578063c2fd58fc1461069c578063c6fb9065146106bc578063c96be4cb146106dc578063d951e186146106fc57600080fd5b8063a310624f116100f2578063a310624f146105f2578063adf2a79c14610612578063aea0e78b14610632578063b46e552014610647578063b7ab4db51461066757600080fd5b806361cadbf41461055657806373a3dda61461056957806376671808146105895780637a37cc59146105b65780637b1391a6146105d457600080fd5b8063426594b1116101bc5780634d238c8e116101805780634d238c8e146104d25780634d99dd16146104f257806352b7bea2146105055780635c19a95c14610525578063606c0c941461053857600080fd5b8063426594b1146103b957806342ad55ac146103d9578063457179fd146103f9578063459463341461042757806348124d261461044557600080fd5b8063289b3c0d11610203578063289b3c0d146102fe57806330108c221461031c578063392e53cd146103555780633e1bbdc91461037957806340a141ff1461039957600080fd5b806252c9e11461023f57806314f8649f1461026157806318f062cd146102815780631fe97684146102ac578063244d8257146102cc575b600080fd5b34801561024b57600080fd5b5061025f61025a366004615596565b6107c1565b005b34801561026d57600080fd5b5061025f61027c3660046155e6565b610a36565b34801561028d57600080fd5b50610296610d01565b6040516102a3919061561b565b60405180910390f35b3480156102b857600080fd5b5061025f6102c7366004615668565b610ebe565b3480156102d857600080fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016102a3565b34801561030a57600080fd5b506006546001600160a01b03166102e6565b34801561032857600080fd5b506102e6610337366004615668565b6001600160a01b039081166000908152606760205260409020541690565b34801561036157600080fd5b5060005460ff165b60405190151581526020016102a3565b34801561038557600080fd5b5061025f610394366004615685565b610ef4565b3480156103a557600080fd5b5061025f6103b4366004615668565b610fb0565b3480156103c557600080fd5b5061025f6103d4366004615668565b610fe3565b3480156103e557600080fd5b506103696103f4366004615668565b611050565b34801561040557600080fd5b50610419610414366004615668565b611109565b6040519081526020016102a3565b34801561043357600080fd5b506005546001600160a01b03166102e6565b34801561045157600080fd5b5061046561046036600461572e565b6111f3565b604080516001600160a01b03909a168a5260ff90981660208a01529688019590955263ffffffff90931660608701526001600160401b039182166080870152811660a08601521660c084015261ffff1660e08301526001600160601b0316610100820152610120016102a3565b3480156104de57600080fd5b5061025f6104ed366004615668565b61134c565b61025f610500366004615768565b61138d565b34801561051157600080fd5b50610419610520366004615596565b611398565b61025f610533366004615668565b6113b5565b34801561054457600080fd5b506007546001600160a01b03166102e6565b61025f6105643660046155e6565b6113c0565b34801561057557600080fd5b5061025f610584366004615668565b6114c8565b34801561059557600080fd5b5061059e611772565b6040516001600160401b0390911681526020016102a3565b3480156105c257600080fd5b506004546001600160a01b03166102e6565b3480156105e057600080fd5b506002546001600160a01b03166102e6565b3480156105fe57600080fd5b5061046561060d366004615668565b611781565b34801561061e57600080fd5b5061025f61062d36600461572e565b611949565b34801561063e57600080fd5b5061059e6119fc565b34801561065357600080fd5b5061025f610662366004615668565b611a06565b34801561067357600080fd5b50610296611a39565b34801561068857600080fd5b5061025f6106973660046157d8565b611a43565b3480156106a857600080fd5b506104196106b7366004615596565b611b18565b3480156106c857600080fd5b506104196106d7366004615668565b611b27565b3480156106e857600080fd5b5061025f6106f7366004615668565b611c05565b34801561070857600080fd5b5061071c610717366004615596565b611c7f565b604080519283526001600160401b039091166020830152016102a3565b34801561074557600080fd5b5061025f611e3f565b61025f61075c366004615668565b611ee5565b34801561076d57600080fd5b5061036961077c366004615668565b611faa565b34801561078d57600080fd5b5061025f61079c36600461572e565b611fec565b3480156107ad57600080fd5b5061025f6107bc366004615668565b612074565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561081e5761081e615858565b600381111561082f5761082f615858565b815260018201546001600160401b03600160a81b90910481166020808401919091526002909301548082166040840152600160401b9004166060909101528101519091506001600160a01b031633146108a35760405162461bcd60e51b815260040161089a9061586e565b60405180910390fd5b602081810180516001600160a01b0390811660009081526067808552604080832080546001600160a01b03199081169091558885168087528452918652808320805483168a8616908117909155835260669095529084902085518154831690841617815592516001840180549283169190931690811783559385015185949092916001600160a81b03191617600160a01b83600381111561094657610946615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b929091169190910217905560006109c0826109bb612108565b61211d565b905081600001516001600160a01b03167fc00107e0d011ac7c8e4dfa18e3dd3623ff151f8bfcc3821cd39bc114bd6504d9836020015184604001516003811115610a0c57610a0c615858565b8454604051610a28939291600160f01b900461ffff16906158a5565b60405180910390a250505050565b610bb861ffff82161115610a8c5760405162461bcd60e51b815260206004820152601c60248201527f5374616b696e673a2062616420636f6d6d697373696f6e207261746500000000604482015260640161089a565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff166003811115610ae957610ae9615858565b6003811115610afa57610afa615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050600081604001516003811115610b5057610b50615858565b1415610b6e5760405162461bcd60e51b815260040161089a906158cd565b60208101516001600160a01b03163314610b9a5760405162461bcd60e51b815260040161089a9061586e565b6000610ba8826109bb612108565b805461ffff8516600160f01b026001600160f01b039091161781556001600160a01b03808616600090815260666020908152604091829020865181549085166001600160a01b03199182161782559187015160018201805491909516928116831785559287015194955086949093909290916001600160a81b031990911617600160a01b836003811115610c3e57610c3e615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790558151602083015160408401516001600160a01b03909216917fc00107e0d011ac7c8e4dfa18e3dd3623ff151f8bfcc3821cd39bc114bd6504d991906003811115610cf157610cf1615858565b86604051610a28939291906158a5565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b031691839150600090610d4a57610d4a61591a565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610d7b57610d7b61591a565b6001600160a01b039283166020918202929092010152600454825191169082906002908110610dac57610dac61591a565b6001600160a01b039283166020918202929092010152600554825191169082906003908110610ddd57610ddd61591a565b6001600160a01b039283166020918202929092010152600654825191169082906004908110610e0e57610e0e61591a565b6001600160a01b039283166020918202929092010152600754825191169082906005908110610e3f57610e3f61591a565b6001600160a01b039283166020918202929092010152600854825191169082906006908110610e7057610e7061591a565b6001600160a01b039283166020918202929092010152600954825191169082906007908110610ea157610ea161591a565b6001600160a01b0390921660209283029190910190910152919050565b6006546001600160a01b03163314610ee85760405162461bcd60e51b815260040161089a90615930565b610ef181612256565b50565b60005460ff1615610f175760405162461bcd60e51b815260040161089a90615976565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610f9961239c565b50506000805460ff19166001179055505050505050565b6006546001600160a01b03163314610fda5760405162461bcd60e51b815260040161089a90615930565b610ef18161248e565b6001600160a01b0381166000908152606660205260408120906001820154600160a01b900460ff16600381111561101c5761101c615858565b141561103a5760405162461bcd60e51b815260040161089a906158cd565b61104c823361104761260d565b612696565b5050565b600060016001600160a01b038316600090815260666020526040902060010154600160a01b900460ff16600381111561108b5761108b615858565b1461109857506000919050565b60006110a2612b5b565b905060005b81518110156110ff57836001600160a01b03168282815181106110cc576110cc61591a565b60200260200101516001600160a01b031614156110ed575060019392505050565b806110f7816159c3565b9150506110a7565b5060009392505050565b6001600160a01b038181166000908152606660209081526040808320815160c0810183528154861681526001820154958616938101939093529293849391830190600160a01b900460ff16600381111561116557611165615858565b600381111561117657611176615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b900490911660609091015290506000816040015160038111156111cc576111cc615858565b14156111db5750600092915050565b6111ec816111e761260d565b612f57565b9392505050565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929384938493849384938493849384938493849391830190600160a01b900460ff16600381111561125f5761125f615858565b600381111561127057611270615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060006112ba828d61303c565b905081602001519a508a826040015160038111156112da576112da615858565b9a508a6402540be40083602001516001600160701b03166112fb91906159de565b9a508a83604001519a508a85606001519a508a86608001519a508a8760a001519a508a87606001519a508a88600001519a509a509a509a509a509a509a509a509a5050509295985092959850929598565b6006546001600160a01b031633146113765760405162461bcd60e51b815260040161089a90615930565b610ef181826001600080611388612108565b613187565b61104c338383613758565b60006113ac83836113a761260d565b613e4b565b90505b92915050565b610ef1338234614281565b60075460408051636f85684760e01b8152905134926001600160a01b031691636f8568479160048083019260209291908290030181865afa158015611409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142d91906159fd565b8110156114865760405162461bcd60e51b815260206004820152602160248201527f5374616b696e673a20696e697469616c207374616b6520697320746f6f206c6f6044820152607760f81b606482015260840161089a565b6114956402540be40082615a2c565b156114b25760405162461bcd60e51b815260040161089a90615a40565b6114c3833360028585611388612108565b505050565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561152557611525615858565b600381111561153657611536615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060038160400151600381111561158c5761158c615858565b146115d95760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a2076616c696461746f72206e6f7420696e206a61696c0000604482015260640161089a565b80602001516001600160a01b0316336001600160a01b03161461160e5760405162461bcd60e51b815260040161089a9061586e565b80608001516001600160401b031661162461260d565b6001600160401b031610156116745760405162461bcd60e51b815260206004820152601660248201527514dd185ada5b99ce881cdd1a5b1b081a5b881a985a5b60521b604482015260640161089a565b6040810160015b9081600381111561168e5761168e615858565b9052506001600160a01b03808316600090815260666020908152604091829020845181549085166001600160a01b0319918216178255918501516001820180549190951692811683178555928501518594919390926001600160a81b031990911617600160a01b83600381111561170757611707615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790555050565b600061177c61260d565b905090565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929384938493849384938493849384938493849391830190600160a01b900460ff1660038111156117ed576117ed615858565b60038111156117fe576117fe615858565b81526001820154600160a81b90046001600160401b03908116602080840191909152600290930154808216604080850191909152600160401b909104821660609384015284516001600160a01b03166000908152606a855281812086850151909316815291845290819020815160808101835290546001600160601b0381168252600160601b81046001600160701b031682860152600160d01b810463ffffffff1682840152600160f01b900461ffff16928101929092529183015191830151919c509192508b9060038111156118d7576118d7615858565b9a508a6402540be40083602001516001600160701b03166118f891906159de565b9a508a83604001519a508a85606001519a508a86608001519a508a8760a001519a508a87606001519a508a88600001519a509a509a509a509a509a509a509a509a5050509193959799909294969850565b6001600160a01b0382166000908152606660205260408120906001820154600160a01b900460ff16600381111561198257611982615858565b14156119a05760405162461bcd60e51b815260040161089a906158cd565b60018101546001600160a01b031633146119cc5760405162461bcd60e51b815260040161089a9061586e565b6119d461260d565b6001600160401b0316826001600160401b031611156119f257600080fd5b6114c381836147c3565b600061177c612108565b6006546001600160a01b03163314611a305760405162461bcd60e51b815260040161089a90615930565b610ef18161496e565b606061177c612b5b565b60005460ff1615611a665760405162461bcd60e51b815260040161089a90615976565b818414611a7257600080fd5b60005b84811015611b0357611af1868683818110611a9257611a9261591a565b9050602002016020810190611aa79190615668565b878784818110611ab957611ab961591a565b9050602002016020810190611ace9190615668565b600185888887818110611ae357611ae361591a565b905060200201356000613187565b80611afb816159c3565b915050611a75565b50506000805460ff1916600117905550505050565b60006113ac83836113a7612108565b6001600160a01b038181166000908152606660209081526040808320815160c0810183528154861681526001820154958616938101939093529293849391830190600160a01b900460ff166003811115611b8357611b83615858565b6003811115611b9457611b94615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050600081604001516003811115611bea57611bea615858565b1415611bf95750600092915050565b6111ec816111e7612108565b6003546001600160a01b03163314611c765760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920736c617360448201526d3434b7339034b73234b1b0ba37b960911b606482015260840161089a565b610ef181614af3565b6001600160a01b03808316600090815260696020908152604080832093851683529281528282208351815460a0938102820184019095526080810185815293948594859492939284928491879085015b82821015611d1e57600084815260209081902060408051808201909152908401546001600160701b0381168252600160701b90046001600160401b031681830152825260019092019101611ccf565b5050509082525060018201546001600160401b0316602080830191909152600283018054604080518285028101850182528281529401939260009084015b82821015611dab57600084815260209081902060408051808201909152908401546001600160701b0381168252600160701b90046001600160401b031681830152825260019092019101611d5c565b50505090825250600391909101546001600160401b0316602090910152805151909150611ddf575060009150819050611e38565b8051805160009190611df390600190615a75565b81518110611e0357611e0361591a565b602002602001015190506402540be40081600001516001600160701b0316611e2b91906159de565b6020909101519093509150505b9250929050565b60005460ff1615611e625760405162461bcd60e51b815260040161089a90615976565b600280546001600160a01b03199081166110001790915560038054821661100117905560048054821661100217905560058054821661700117905560068054821661700217905560078054821661700317905560088054821661700417905560098054909116617005179055611ed661239c565b6000805460ff19166001179055565b334114611f405760405162461bcd60e51b8152602060048201526024808201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920636f696e6044820152636261736560e01b606482015260840161089a565b3a15611fa15760405162461bcd60e51b815260206004820152602a60248201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c79207a65726f6044820152692067617320707269636560b01b606482015260840161089a565b610ef181614fa2565b6000806001600160a01b038316600090815260666020526040902060010154600160a01b900460ff166003811115611fe457611fe4615858565b141592915050565b6001600160a01b0382166000908152606660205260408120906001820154600160a01b900460ff16600381111561202557612025615858565b14156120435760405162461bcd60e51b815260040161089a906158cd565b61204b61260d565b6001600160401b0316826001600160401b0316111561206957600080fd5b6114c3833384612696565b6001600160a01b0381166000908152606660205260408120906001820154600160a01b900460ff1660038111156120ad576120ad615858565b14156120cb5760405162461bcd60e51b815260040161089a906158cd565b60018101546001600160a01b031633146120f75760405162461bcd60e51b815260040161089a9061586e565b61104c8161210361260d565b6147c3565b600061211261260d565b61177c906001615a8c565b81516001600160a01b03166000908152606a602090815260408083206001600160401b038516845290915281208054600160601b90046001600160701b0316156121685790506113af565b83516001600160a01b03166000908152606a60209081526040808320606080890180516001600160401b03908116875292855294839020835160808101855290546001600160601b0381168252600160601b8082046001600160701b0316968301879052600160d01b820463ffffffff1695830195909552600160f01b9081900461ffff1692820183905287547dffffffff0000000000000000000000000000ffffffffffffffffffffffff16959094026001600160f01b031694909417920291909117845591519091908116908516111561224e576001600160401b03841660608601525b509392505050565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff1660038111156122b3576122b3615858565b60038111156122c4576122c4615858565b81526001828101546001600160401b03600160a81b909104811660208401526002909301548084166040840152600160401b90049092166060909101529091506001600160a01b038316600090815260666020526040902060010154600160a01b900460ff16600381111561233b5761233b615858565b146123885760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a206e6f74206163746976652076616c696461746f72000000604482015260640161089a565b6123918261512b565b60408101600261167b565b600180546123a990615ab7565b151590506123b357565b600080306001600160a01b031660016040516123cf9190615af2565b6000604051808303816000865af19150503d806000811461240c576040519150601f19603f3d011682016040523d82523d6000602084013e612411565b606091505b50915091508115612420575050565b80516124855760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b606482015260840161089a565b80518082602001fd5b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff1660038111156124eb576124eb615858565b60038111156124fc576124fc615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060008160400151600381111561255257612552615858565b14156125705760405162461bcd60e51b815260040161089a906158cd565b6125798261512b565b6020808201516001600160a01b03908116600090815260678352604080822080546001600160a01b03199081169091559286168083526066909452808220805490931683556001830180546001600160e81b0319169055600290920180546001600160801b031916905590517fe1434e25d6611e0db941968fdc97811c982ac1602e951637d206f5fdda9dd8f19190a25050565b6007546040805163068d921560e31b815290516000926001600160a01b03169163346c90a89160048083019260209291908290030181865afa158015612657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267b9190615b8e565b61268b9063ffffffff1643615bb4565b61177c906000615bc8565b6001600160a01b0380841660009081526069602090815260408083209386168352929052908120600181015481549192916001600160401b03909116905b80826001600160401b031610156129b857600084600001836001600160401b0316815481106127055761270561591a565b6000918252602091829020604080518082019091529101546001600160701b03811682526001600160401b03600160701b909104811692820183905290925087161161275157506129b8565b600061275e600184615a75565b846001600160401b031610156127b2578561277a856001615a8c565b6001600160401b0316815481106127935761279361591a565b600091825260209091200154600160701b90046001600160401b031690505b866001600160401b031682602001516001600160401b03161080156127eb57508015806127eb57508082602001516001600160401b0316105b156128eb576001600160a01b0389166000908152606a60209081526040808320858301516001600160401b03168452825291829020825160808101845290546001600160601b0381168252600160601b81046001600160701b0316928201839052600160d01b810463ffffffff1693820193909352600160f01b90920461ffff16606083015261287b57506128ca565b600061288682615271565b5050905081602001516001600160701b031684600001516001600160701b0316826128b191906159de565b6128bb9190615bb4565b6128c59088615bc8565b965050505b602082018051906128da82615be0565b6001600160401b03169052506127b2565b6128f6600184615a75565b846001600160401b03161061296f578186600001856001600160401b0316815481106129245761292461591a565b600091825260209182902083519101805493909201516001600160401b0316600160701b026001600160b01b03199093166001600160701b0390911617919091179055506129b89050565b85600001846001600160401b03168154811061298d5761298d61591a565b600091825260209091200180546001600160b01b03191690556129af84615be0565b935050506126d4565b5060018301805467ffffffffffffffff19166001600160401b0383811691909117909155600384015460028501549116905b80826001600160401b03161015612ad757600085600201836001600160401b031681548110612a1b57612a1b61591a565b6000918252602091829020604080518082019091529101546001600160701b03811682526001600160401b03600160701b909104811692820183905290925088161015612a685750612ad7565b8051612a83906402540be400906001600160701b03166159de565b612a8d9086615bc8565b945085600201836001600160401b031681548110612aad57612aad61591a565b600091825260209091200180546001600160b01b0319169055612acf83615be0565b9250506129ea565b5060038401805467ffffffffffffffff19166001600160401b038316179055612b008684615399565b604080518481526001600160401b03871660208201526001600160a01b0380891692908a16917fb22dec804803f8b1c5333f626cdbfdfb1bd629f1e1bb45dcfb22b5f74ed46b1c91015b60405180910390a350505050505050565b6068546060906000816001600160401b03811115612b7b57612b7b615904565b604051908082528060200260200182016040528015612ba4578160200160208202803683370190505b50905060005b82811015612c1f5760688181548110612bc557612bc561591a565b9060005260206000200160009054906101000a90046001600160a01b0316828281518110612bf557612bf561591a565b6001600160a01b039092166020928302919091019091015280612c17816159c3565b915050612baa565b50600754604080516306598de160e31b815290516000926001600160a01b0316916332cc6f089160048083019260209291908290030181865afa158015612c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8e9190615b8e565b63ffffffff16905082811115612ca15750815b60005b81811015612f4e576000819050600060666000868481518110612cc957612cc961591a565b6020908102919091018101516001600160a01b039081168352828201939093526040918201600020825160c08101845281548516815260018201549485169281019290925290929091830190600160a01b900460ff166003811115612d3057612d30615858565b6003811115612d4157612d41615858565b81526001828101546001600160401b03600160a81b909104811660208401526002909301548084166040840152600160401b9004909216606090910152909150600090612d8f908590615bc8565b90505b86811015612e9a57600060666000888481518110612db257612db261591a565b6020908102919091018101516001600160a01b039081168352828201939093526040918201600020825160c08101845281548516815260018201549485169281019290925290929091830190600160a01b900460ff166003811115612e1957612e19615858565b6003811115612e2a57612e2a615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050612e718161543f565b612e7a8461543f565b1015612e87578193508092505b5080612e92816159c3565b915050612d92565b506000858481518110612eaf57612eaf61591a565b60200260200101519050858381518110612ecb57612ecb61591a565b6020026020010151868581518110612ee557612ee561591a565b60200260200101906001600160a01b031690816001600160a01b03168152505080868481518110612f1857612f1861591a565b60200260200101906001600160a01b031690816001600160a01b0316815250505050508080612f46906159c3565b915050612ca4565b50815292915050565b6000805b826001600160401b03168460a001516001600160401b031610156113ac5783516001600160a01b03166000908152606a6020908152604080832060a08801516001600160401b031684528252808320815160808101835290546001600160601b0381168252600160601b81046001600160701b031693820193909352600160d01b830463ffffffff1691810191909152600160f01b90910461ffff1660608201529061300682615271565b50915061301590508184615bc8565b925050508360a001805180919061302b90615be0565b6001600160401b0316905250612f5b565b60408051608081018252600080825260208201819052918101829052606081019190915282516001600160a01b03166000908152606a602090815260408083206001600160401b0386168452825291829020825160808101845290546001600160601b0381168252600160601b81046001600160701b0316928201839052600160d01b810463ffffffff1693820193909352600160f01b90920461ffff166060830152156130eb5790506113af565b83516001600160a01b03166000908152606a602090815260408083206060808901516001600160401b0316855290835292819020815160808101835290546001600160601b03811682526001600160701b03600160601b82041682850181905263ffffffff600160d01b8304169383019390935261ffff600160f01b909104811691850191825292850191909152511690820152905092915050565b610bb861ffff841611156131dd5760405162461bcd60e51b815260206004820152601c60248201527f5374616b696e673a2062616420636f6d6d697373696f6e207261746500000000604482015260640161089a565b6001600160a01b038681166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561323a5761323a615858565b600381111561324b5761324b615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060006001600160a01b038816600090815260666020526040902060010154600160a01b900460ff1660038111156132c2576132c2615858565b1461330f5760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a2076616c696461746f7220616c7265616479206578697374604482015260640161089a565b6001600160a01b038088168252861660208201526040810185600381111561333957613339615858565b9081600381111561334c5761334c615858565b9052506001600160401b03821660608201526001600160a01b03808816600090815260666020908152604091829020845181549085166001600160a01b0319918216178255918501516001820180549190951692811683178555928501518594919390926001600160a81b031990911617600160a01b8360038111156133d4576133d4615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790556001600160a01b0386811660009081526067602052604090205416156134a35760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a206f776e657220616c726561647920696e20757365000000604482015260640161089a565b6001600160a01b03868116600090815260676020526040902080546001600160a01b03191691891691909117905560018560038111156134e5576134e5615858565b141561353757606880546001810182556000919091527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530180546001600160a01b0319166001600160a01b0389161790555b604080516080810190915260008152602081016135596402540be40086615bb4565b6001600160701b0390811682526000602080840182905261ffff808a166040958601526001600160a01b03808e16808552606a84528685206001600160401b038b1686528452868520885181548a8701518b8b01516060909c0151909616600160f01b026001600160f01b0363ffffffff9c909c16600160d01b029b909b166001600160d01b0396909916600160601b026001600160d01b03199091166001600160601b039092169190911717939093169590951796909617905591815260698252828120938a16815292905290208054156136865760405162461bcd60e51b815260206004820152602660248201527f5374616b696e673a2064656c65676174696f6e207175657565206973206e6f7460448201526520656d70747960d01b606482015260840161089a565b604080518082019091528190806136a26402540be40088615bb4565b6001600160701b0390811682526001600160401b038088166020938401528454600181018655600095865294839020845195018054949093015116600160701b026001600160b01b03199093169316929092171790556001600160a01b0388167f42449fd19d367b0177da9082fe6da7d4da41af7573e3a3c1750ecffeffe26f9d8888600381111561373657613736615858565b88604051613746939291906158a5565b60405180910390a25050505050505050565b600760009054906101000a90046001600160a01b03166001600160a01b031663eea9a01b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137cf91906159fd565b811015806137db575080155b6138275760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e673a20616d6f756e7420697320746f6f206c6f77000000000000604482015260640161089a565b6138366402540be40082615a2c565b156138535760405162461bcd60e51b815260040161089a90615a40565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff1660038111156138b0576138b0615858565b60038111156138c1576138c1615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060008160400151600381111561391757613917615858565b14156139355760405162461bcd60e51b815260040161089a906158cd565b600061393f612108565b9050600061394d838361211d565b905061395e6402540be40085615bb4565b81546001600160701b03918216600160601b90910490911610156139c45760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a20696e73756666696369656e742062616c616e6365000000604482015260640161089a565b6139d36402540be40085615bb4565b81548290600c906139f5908490600160601b90046001600160701b0316615c07565b82546001600160701b039182166101009390930a9283029190920219909116179055506001600160a01b03808616600090815260666020908152604091829020865181549085166001600160a01b0319918216178255918701516001820180549190951692811683178555928701518794919390926001600160a81b031990911617600160a01b836003811115613a8e57613a8e615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790556001600160a01b038581166000908152606960209081526040808320938a168352929052208054613b735760405162461bcd60e51b815260206004820152602260248201527f5374616b696e673a2064656c65676174696f6e20717565756520697320656d70604482015261747960f01b606482015260840161089a565b80546000908290613b8690600190615a75565b81548110613b9657613b9661591a565b9060005260206000200190506402540be40086613bb39190615bb4565b81546001600160401b03919091166001600160701b039091161015613c1a5760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a20696e73756666696369656e742062616c616e6365000000604482015260640161089a565b6000613c2b6402540be40088615bb4565b8254613c4091906001600160701b0316615c07565b82549091506001600160401b03808716600160701b9092041610613c835781546dffffffffffffffffffffffffffff19166001600160701b038216178255613ce7565b604080518082019091526001600160701b0380831682526001600160401b03808816602080850191825287546001810189556000898152919091209451940180549151909216600160701b026001600160b01b031990911693909216929092171790555b8260020160405180604001604052806402540be4008a613d079190615bb4565b6001600160701b0316815260075460408051635e7b72ad60e01b815290516020938401936001600160a01b0390931692635e7b72ad92600480820193918290030181865afa158015613d5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d819190615b8e565b613d919063ffffffff1689615a8c565b6001600160401b03908116909152825460018101845560009384526020938490208351910180549490930151909116600160701b026001600160b01b03199093166001600160701b03909116179190911790556040516001600160a01b03808b1691908a16907fa410e32157a44414a502bb47d775234de1aa7da123f5adfe426898f1601883fd90613e38908b908a909182526001600160401b0316602082015260400190565b60405180910390a3505050505050505050565b6001600160a01b03808416600090815260696020908152604080832093861683529281528282208351815460a093810282018401909552608081018581529394859491938492918491879085015b82821015613ee857600084815260209081902060408051808201909152908401546001600160701b0381168252600160701b90046001600160401b031681830152825260019092019101613e99565b5050509082525060018201546001600160401b0316602080830191909152600283018054604080518285028101850182528281529401939260009084015b82821015613f7557600084815260209081902060408051808201909152908401546001600160701b0381168252600160701b90046001600160401b031681830152825260019092019101613f26565b50505090825250600391909101546001600160401b0316602090910152905060005b81515160208301516001600160401b031610156141c4576000826000015183602001516001600160401b031681518110613fd357613fd361591a565b60200260200101519050846001600160401b031681602001516001600160401b03161061400057506141c4565b82515160009061401290600190615a75565b84602001516001600160401b031610156140695783516020850151614038906001615a8c565b6001600160401b0316815181106140515761405161591a565b6020026020010151602001516001600160401b031690505b856001600160401b031682602001516001600160401b03161080156140a257508015806140a257508082602001516001600160401b0316105b156141a2576001600160a01b0388166000908152606a60209081526040808320858301516001600160401b03168452825291829020825160808101845290546001600160601b0381168252600160601b81046001600160701b0316928201839052600160d01b810463ffffffff1693820193909352600160f01b90920461ffff1660608301526141325750614181565b600061413d82615271565b5050905081602001516001600160701b031684600001516001600160701b03168261416891906159de565b6141729190615bb4565b61417c9086615bc8565b945050505b6020820180519061419182615be0565b6001600160401b0316905250614069565b8360200180516141b190615be0565b6001600160401b0316905250613f979050565b81604001515182606001516001600160401b03161015614278576000826040015183606001516001600160401b0316815181106142035761420361591a565b60200260200101519050846001600160401b031681602001516001600160401b031611156142315750614278565b805161424c906402540be400906001600160701b03166159de565b6142569083615bc8565b915082606001805161426790615be0565b6001600160401b03169052506141c4565b95945050505050565b600760009054906101000a90046001600160a01b03166001600160a01b031663eea9a01b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142f891906159fd565b81101580614304575080155b6143505760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e673a20616d6f756e7420697320746f6f206c6f77000000000000604482015260640161089a565b61435f6402540be40082615a2c565b1561437c5760405162461bcd60e51b815260040161089a90615a40565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff1660038111156143d9576143d9615858565b60038111156143ea576143ea615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060008160400151600381111561444057614440615858565b141561445e5760405162461bcd60e51b815260040161089a906158cd565b6000614468612108565b90506000614476838361211d565b90506144876402540be40085615bb4565b81548290600c906144a9908490600160601b90046001600160701b0316615c2f565b82546001600160701b039182166101009390930a9283029190920219909116179055506001600160a01b03808616600090815260666020908152604091829020865181549085166001600160a01b0319918216178255918701516001820180549190951692811683178555928701518794919390926001600160a81b031990911617600160a01b83600381111561454257614542615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790556001600160a01b038581166000908152606960209081526040808320938a1683529290522080541561470257805460009082906145e890600190615a75565b815481106145f8576145f861591a565b600091825260209091200180549091506001600160401b03808616600160701b9092041610614674576146306402540be40087615bb4565b8154829060009061464b9084906001600160701b0316615c2f565b92506101000a8154816001600160701b0302191690836001600160701b031602179055506146fc565b604080518082019091528290806146906402540be4008a615bb4565b84546146a591906001600160701b0316615c2f565b6001600160701b0390811682526001600160401b038089166020938401528454600181018655600095865294839020845195018054949093015116600160701b026001600160b01b03199093169316929092171790555b50614775565b6040805180820190915281908061471e6402540be40089615bb4565b6001600160701b0390811682526001600160401b038088166020938401528454600181018655600095865294839020845195018054949093015116600160701b026001600160b01b03199093169316929092171790555b604080518681526001600160401b03851660208201526001600160a01b03808a1692908916917f30bcda2f188b532c7644e632473e83a6fb3c5c79717650d0ac790d141bb1b1779101612b4a565b60028201546000908190600160401b90046001600160401b03165b836001600160401b0316816001600160401b031610156148b75784546001600160a01b03166000908152606a602090815260408083206001600160401b03851684528252808320815160808101835290546001600160601b0381168252600160601b81046001600160701b031693820193909352600160d01b830463ffffffff1691810191909152600160f01b90910461ffff166060820152908061488283615271565b925092505081866148939190615bc8565b955061489f8186615bc8565b945050505080806148af90615be0565b9150506147de565b6002850180546fffffffffffffffff00000000000000001916600160401b6001600160401b0384160217905560018501546148fb906001600160a01b031684615399565b811561491757600454614917906001600160a01b0316836154d3565b8454604080518581526001600160401b03871660208201526001600160a01b03909216917fb947d7b49cedaf132fd7a9592099c21170864455405d51b4825032441532410091015b60405180910390a25050505050565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff1660038111156149cb576149cb615858565b60038111156149dc576149dc615858565b815260018201546001600160401b03600160a81b909104811660208301526002928301548082166040840152600160401b9004166060909101529091506001600160a01b038316600090815260666020526040902060010154600160a01b900460ff166003811115614a5057614a50615858565b14614a9d5760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a206e6f742070656e64696e672076616c696461746f720000604482015260640161089a565b60688054600180820183556000929092527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530180546001600160a01b0319166001600160a01b038516179055604082019061167b565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff166003811115614b5057614b50615858565b6003811115614b6157614b61615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050600081604001516003811115614bb757614bb7615858565b1415614bd55760405162461bcd60e51b815260040161089a906158cd565b6000614bdf61260d565b90506000614bed838361211d565b8054909150600090614c0d90600160d01b900463ffffffff166001615c51565b825463ffffffff8216600160d01b0263ffffffff60d01b199091161783556001600160a01b03808716600090815260666020908152604091829020885181549085166001600160a01b03199182161782559189015160018201805491909516928116831785559289015194955088949093909290916001600160a81b031990911617600160a01b836003811115614ca657614ca6615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b9290911691909102179055600754604080516317c332e760e31b815290516001600160a01b039092169163be199738916004808201926020929091908290030181865afa158015614d57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d7b9190615b8e565b63ffffffff168163ffffffff161415614f5357600760009054906101000a90046001600160a01b03166001600160a01b0316636cbe6cd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015614de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e059190615b8e565b63ffffffff16614e1361260d565b614e1d9190615a8c565b6001600160401b03166080850152600360408501819052506001600160a01b03808616600090815260666020908152604091829020875181549085166001600160a01b0319918216178255918801516001820180549190951692811683178555928801518894919390926001600160a81b031990911617600160a01b836003811115614eab57614eab615858565b021790555060608201516001820180546001600160401b03928316600160a81b0267ffffffffffffffff60a81b1990911617905560808301516002909201805460a0909401518216600160401b026001600160801b03199094169282169290921792909217905560405190841681526001600160a01b038616907f6acc1079130362b805ce4a8874346d4ee8893d55f223e378ddc73031ce427eab9060200160405180910390a25b6040805163ffffffff831681526001600160401b03851660208201526001600160a01b038716917ff30f0392d5346908bf200bc0924d0c9860e22d46fc606e979a2e14fff24c62b9910161495f565b60003411614ff25760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a206465706f736974206973207a65726f0000000000000000604482015260640161089a565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561504f5761504f615858565b600381111561506057615060615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b900490911660609091015290506000816040015160038111156150b6576150b6615858565b14156150d45760405162461bcd60e51b815260040161089a906158cd565b60006150e2826109bb61260d565b8054909150349082906000906151029084906001600160601b0316615c70565b92506101000a8154816001600160601b0302191690836001600160601b03160217905550505050565b60001960005b60685481101561519157826001600160a01b0316606882815481106151585761515861591a565b6000918252602090912001546001600160a01b0316146151775761517f565b809150615191565b80615189816159c3565b915050615131565b506000811261104c5760685460011080156151ba57506068546151b690600190615a75565b8114155b1561523a57606880546151cf90600190615a75565b815481106151df576151df61591a565b600091825260209091200154606880546001600160a01b03909216918390811061520b5761520b61591a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b606880548061524b5761524b615c92565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b6000806000600760009054906101000a90046001600160a01b03166001600160a01b0316639dbf97db6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156152c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906152ed9190615b8e565b63ffffffff16846040015163ffffffff161061531b57505081516000915081906001600160601b0316615392565b60208401516001600160701b03166153445750508151600091506001600160601b031681615392565b612710846060015161ffff1685600001516001600160601b031661536891906159de565b6153729190615bb4565b845190925061538b9083906001600160601b0316615a75565b9250600090505b9193909250565b6040516000906001600160a01b0384169061753090849084818181858888f193505050503d80600081146153e9576040519150601f19603f3d011682016040523d82523d6000602084013e6153ee565b606091505b50509050806114c35760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a206661696c656420746f2073616665207472616e73666572604482015260640161089a565b80516001600160a01b03166000908152606a602090815260408083206060808601516001600160401b03168552908352818420825160808101845290546001600160601b0381168252600160601b81046001600160701b0316948201859052600160d01b810463ffffffff1693820193909352600160f01b90920461ffff1690820152906111ec906402540be400906159de565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114615520576040519150601f19603f3d011682016040523d82523d6000602084013e615525565b606091505b50509050806114c35760405162461bcd60e51b815260206004820152602260248201527f5374616b696e673a206661696c656420746f20756e73616665207472616e736660448201526132b960f11b606482015260840161089a565b6001600160a01b0381168114610ef157600080fd5b600080604083850312156155a957600080fd5b82356155b481615581565b915060208301356155c481615581565b809150509250929050565b803561ffff811681146155e157600080fd5b919050565b600080604083850312156155f957600080fd5b823561560481615581565b9150615612602084016155cf565b90509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561565c5783516001600160a01b031683529284019291840191600101615637565b50909695505050505050565b60006020828403121561567a57600080fd5b81356113ac81615581565b600080600080600080600080610100898b0312156156a257600080fd5b88356156ad81615581565b975060208901356156bd81615581565b965060408901356156cd81615581565b955060608901356156dd81615581565b945060808901356156ed81615581565b935060a08901356156fd81615581565b925060c089013561570d81615581565b915060e089013561571d81615581565b809150509295985092959890939650565b6000806040838503121561574157600080fd5b823561574c81615581565b915060208301356001600160401b03811681146155c457600080fd5b6000806040838503121561577b57600080fd5b823561578681615581565b946020939093013593505050565b60008083601f8401126157a657600080fd5b5081356001600160401b038111156157bd57600080fd5b6020830191508360208260051b8501011115611e3857600080fd5b6000806000806000606086880312156157f057600080fd5b85356001600160401b038082111561580757600080fd5b61581389838a01615794565b9097509550602088013591508082111561582c57600080fd5b5061583988828901615794565b909450925061584c9050604087016155cf565b90509295509295909350565b634e487b7160e01b600052602160045260246000fd5b6020808252601d908201527f5374616b696e673a206f6e6c792076616c696461746f72206f776e6572000000604082015260600190565b6001600160a01b0393909316835260ff91909116602083015261ffff16604082015260600190565b6020808252601c908201527f5374616b696e673a2076616c696461746f72206e6f7420666f756e6400000000604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526026908201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604082015265726e616e636560d01b606082015260800190565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006000198214156159d7576159d76159ad565b5060010190565b60008160001904831182151516156159f8576159f86159ad565b500290565b600060208284031215615a0f57600080fd5b5051919050565b634e487b7160e01b600052601260045260246000fd5b600082615a3b57615a3b615a16565b500690565b6020808252818101527f5374616b696e673a20616d6f756e74206861766520612072656d61696e646572604082015260600190565b600082821015615a8757615a876159ad565b500390565b60006001600160401b03808316818516808303821115615aae57615aae6159ad565b01949350505050565b600181811c90821680615acb57607f821691505b60208210811415615aec57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680615b0e57607f831692505b6020808410821415615b2e57634e487b7160e01b86526022600452602486fd5b818015615b425760018114615b5357615b80565b60ff19861689528489019650615b80565b60008a81526020902060005b86811015615b785781548b820152908501908301615b5f565b505084890196505b509498975050505050505050565b600060208284031215615ba057600080fd5b815163ffffffff811681146113ac57600080fd5b600082615bc357615bc3615a16565b500490565b60008219821115615bdb57615bdb6159ad565b500190565b60006001600160401b0380831681811415615bfd57615bfd6159ad565b6001019392505050565b60006001600160701b0383811690831681811015615c2757615c276159ad565b039392505050565b60006001600160701b03808316818516808303821115615aae57615aae6159ad565b600063ffffffff808316818516808303821115615aae57615aae6159ad565b60006001600160601b03808316818516808303821115615aae57615aae6159ad565b634e487b7160e01b600052603160045260246000fdfea26469706673582212200e2f5e910a1c6788af1340cd6721c23e6a17eeaf7a976128357384fe960f29b364736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000000000000000001c9", "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0xc15f28c400000000000000000000000000000000000000000000000000000000", @@ -44,14 +44,14 @@ "balance": "0x0" }, "0000000000000000000000000000000000001001": { - "code": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806346344031116100715780634634403114610149578063606c0c94146101515780637a37cc59146101625780637b1391a614610173578063c96be4cb14610184578063e1c7392a1461019757600080fd5b806318f062cd146100b9578063244d8257146100d7578063289b3c0d146100fc578063392e53cd1461010d5780633e1bbdc9146101235780634594633414610138575b600080fd5b6100c161019f565b6040516100ce9190610695565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b0390911681526020016100ce565b6006546001600160a01b03166100e4565b60005460ff1660405190151581526020016100ce565b6101366101313660046106fa565b61035c565b005b6005546001600160a01b03166100e4565b610136610421565b6007546001600160a01b03166100e4565b6004546001600160a01b03166100e4565b6002546001600160a01b03166100e4565b6101366101923660046107a3565b610453565b610136610510565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b0316918391506000906101e8576101e86107c7565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610219576102196107c7565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061024a5761024a6107c7565b6001600160a01b03928316602091820292909201015260055482519116908290600390811061027b5761027b6107c7565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106102ac576102ac6107c7565b6001600160a01b0392831660209182029290920101526007548251911690829060059081106102dd576102dd6107c7565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061030e5761030e6107c7565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061033f5761033f6107c7565b6001600160a01b0390921660209283029190910190910152919050565b60005460ff16156103885760405162461bcd60e51b815260040161037f906107dd565b60405180910390fd5b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a84161790556004805482168984161790556005805482168884161790556006805482168784161790556007805482168684161790556008805482168584161790556009805490911691831691909117905561040a6105a3565b50506000805460ff19166001179055505050505050565b60005460ff16156104445760405162461bcd60e51b815260040161037f906107dd565b6000805460ff19166001179055565b3341146104ae5760405162461bcd60e51b8152602060048201526024808201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920636f696e6044820152636261736560e01b606482015260840161037f565b60025460405163c96be4cb60e01b81526001600160a01b0383811660048301529091169063c96be4cb90602401600060405180830381600087803b1580156104f557600080fd5b505af1158015610509573d6000803e3d6000fd5b5050505050565b60005460ff16156105335760405162461bcd60e51b815260040161037f906107dd565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556104445b600180546105b090610814565b151590506105ba57565b600080306001600160a01b031660016040516105d6919061084f565b6000604051808303816000865af19150503d8060008114610613576040519150601f19603f3d011682016040523d82523d6000602084013e610618565b606091505b50915091508115610627575050565b805161068c5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b606482015260840161037f565b80518082602001fd5b6020808252825182820181905260009190848201906040850190845b818110156106d65783516001600160a01b0316835292840192918401916001016106b1565b50909695505050505050565b6001600160a01b03811681146106f757600080fd5b50565b600080600080600080600080610100898b03121561071757600080fd5b8835610722816106e2565b97506020890135610732816106e2565b96506040890135610742816106e2565b95506060890135610752816106e2565b94506080890135610762816106e2565b935060a0890135610772816106e2565b925060c0890135610782816106e2565b915060e0890135610792816106e2565b809150509295985092959890939650565b6000602082840312156107b557600080fd5b81356107c0816106e2565b9392505050565b634e487b7160e01b600052603260045260246000fd5b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b600181811c9082168061082857607f821691505b6020821081141561084957634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168061086b57607f831692505b602080841082141561088b57634e487b7160e01b86526022600452602486fd5b81801561089f57600181146108b0576108dd565b60ff198616895284890196506108dd565b60008a81526020902060005b868110156108d55781548b8201529085019083016108bc565b505084890196505b50949897505050505050505056fea2646970667358221220be1afab44d23b04871baf155ffd0760499703a6f22eee3c5062296d77ed5b48464736f6c634300080b0033", + "code": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806346344031116100715780634634403114610149578063606c0c94146101515780637a37cc59146101625780637b1391a614610173578063c96be4cb14610184578063e1c7392a1461019757600080fd5b806318f062cd146100b9578063244d8257146100d7578063289b3c0d146100fc578063392e53cd1461010d5780633e1bbdc9146101235780634594633414610138575b600080fd5b6100c161019f565b6040516100ce9190610695565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b0390911681526020016100ce565b6006546001600160a01b03166100e4565b60005460ff1660405190151581526020016100ce565b6101366101313660046106fa565b61035c565b005b6005546001600160a01b03166100e4565b610136610421565b6007546001600160a01b03166100e4565b6004546001600160a01b03166100e4565b6002546001600160a01b03166100e4565b6101366101923660046107a3565b610453565b610136610510565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b0316918391506000906101e8576101e86107c7565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610219576102196107c7565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061024a5761024a6107c7565b6001600160a01b03928316602091820292909201015260055482519116908290600390811061027b5761027b6107c7565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106102ac576102ac6107c7565b6001600160a01b0392831660209182029290920101526007548251911690829060059081106102dd576102dd6107c7565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061030e5761030e6107c7565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061033f5761033f6107c7565b6001600160a01b0390921660209283029190910190910152919050565b60005460ff16156103885760405162461bcd60e51b815260040161037f906107dd565b60405180910390fd5b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a84161790556004805482168984161790556005805482168884161790556006805482168784161790556007805482168684161790556008805482168584161790556009805490911691831691909117905561040a6105a3565b50506000805460ff19166001179055505050505050565b60005460ff16156104445760405162461bcd60e51b815260040161037f906107dd565b6000805460ff19166001179055565b3341146104ae5760405162461bcd60e51b8152602060048201526024808201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920636f696e6044820152636261736560e01b606482015260840161037f565b60025460405163c96be4cb60e01b81526001600160a01b0383811660048301529091169063c96be4cb90602401600060405180830381600087803b1580156104f557600080fd5b505af1158015610509573d6000803e3d6000fd5b5050505050565b60005460ff16156105335760405162461bcd60e51b815260040161037f906107dd565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556104445b600180546105b090610814565b151590506105ba57565b600080306001600160a01b031660016040516105d6919061084f565b6000604051808303816000865af19150503d8060008114610613576040519150601f19603f3d011682016040523d82523d6000602084013e610618565b606091505b50915091508115610627575050565b805161068c5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b606482015260840161037f565b80518082602001fd5b6020808252825182820181905260009190848201906040850190845b818110156106d65783516001600160a01b0316835292840192918401916001016106b1565b50909695505050505050565b6001600160a01b03811681146106f757600080fd5b50565b600080600080600080600080610100898b03121561071757600080fd5b8835610722816106e2565b97506020890135610732816106e2565b96506040890135610742816106e2565b95506060890135610752816106e2565b94506080890135610762816106e2565b935060a0890135610772816106e2565b925060c0890135610782816106e2565b915060e0890135610792816106e2565b809150509295985092959890939650565b6000602082840312156107b557600080fd5b81356107c0816106e2565b9392505050565b634e487b7160e01b600052603260045260246000fd5b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b600181811c9082168061082857607f821691505b6020821081141561084957634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168061086b57607f831692505b602080841082141561088b57634e487b7160e01b86526022600452602486fd5b81801561089f57600181146108b0576108dd565b60ff198616895284890196506108dd565b60008a81526020902060005b868110156108d55781548b8201529085019083016108bc565b505084890196505b50949897505050505050505056fea2646970667358221220e47f8bceeebd71303563d84b263c1285014ce0251dc45fdad19bb86d4ad28c7964736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x4634403100000000000000000000000000000000000000000000000000000008" }, "balance": "0x0" }, "0000000000000000000000000000000000001002": { - "code": "0x6080604052600436106100e15760003560e01c8063459463341161007f5780637b1391a6116100595780637b1391a614610275578063929a55c0146102935780639ac51fab146102b0578063e1c7392a146102c557600080fd5b8063459463341461021b578063606c0c94146102395780637a37cc591461025757600080fd5b8063244d8257116100bb578063244d825714610188578063289b3c0d146101ba578063392e53cd146101d85780633e1bbdc9146101fb57600080fd5b806316cbea511461011e57806318f062cd1461013e57806323056e991461016957600080fd5b366101195734606760008282546100f89190610796565b90915550506067546802b5e3af16b188000011610117576101176102da565b005b600080fd5b34801561012a57600080fd5b506101176101393660046107d4565b610320565b34801561014a57600080fd5b5061015361037b565b60405161016091906107f8565b60405180910390f35b34801561017557600080fd5b506067545b604051908152602001610160565b34801561019457600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610160565b3480156101c657600080fd5b506006546001600160a01b03166101a2565b3480156101e457600080fd5b5060005460ff166040519015158152602001610160565b34801561020757600080fd5b50610117610216366004610845565b610538565b34801561022757600080fd5b506005546001600160a01b03166101a2565b34801561024557600080fd5b506007546001600160a01b03166101a2565b34801561026357600080fd5b506004546001600160a01b03166101a2565b34801561028157600080fd5b506002546001600160a01b03166101a2565b34801561029f57600080fd5b5061017a6802b5e3af16b188000081565b3480156102bc57600080fd5b506101176105f4565b3480156102d157600080fd5b506101176105fe565b6066546067546040516001600160a01b0390921691829180156108fc02916000818181858888f19350505050158015610317573d6000803e3d6000fd5b50506000606755565b60005460ff161561034c5760405162461bcd60e51b8152600401610343906108ee565b60405180910390fd5b606680546001600160a01b0319166001600160a01b03929092169190911790556000805460ff19166001179055565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b0316918391506000906103c4576103c4610925565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106103f5576103f5610925565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061042657610426610925565b6001600160a01b03928316602091820292909201015260055482519116908290600390811061045757610457610925565b6001600160a01b03928316602091820292909201015260065482519116908290600490811061048857610488610925565b6001600160a01b0392831660209182029290920101526007548251911690829060059081106104b9576104b9610925565b6001600160a01b0392831660209182029290920101526008548251911690829060069081106104ea576104ea610925565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061051b5761051b610925565b6001600160a01b0390921660209283029190910190910152919050565b60005460ff161561055b5760405162461bcd60e51b8152600401610343906108ee565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a8416179055600480548216898416179055600580548216888416179055600680548216878416179055600780548216868416179055600880548216858416179055600980549091169183169190911790556105dd6106a4565b50506000805460ff19166001179055505050505050565b6105fc6102da565b565b60005460ff16156106215760405162461bcd60e51b8152600401610343906108ee565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556106956106a4565b6000805460ff19166001179055565b600180546106b19061093b565b151590506106bb57565b600080306001600160a01b031660016040516106d79190610976565b6000604051808303816000865af19150503d8060008114610714576040519150601f19603f3d011682016040523d82523d6000602084013e610719565b606091505b50915091508115610728575050565b805161078d5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b6064820152608401610343565b80518082602001fd5b600082198211156107b757634e487b7160e01b600052601160045260246000fd5b500190565b6001600160a01b03811681146107d157600080fd5b50565b6000602082840312156107e657600080fd5b81356107f1816107bc565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156108395783516001600160a01b031683529284019291840191600101610814565b50909695505050505050565b600080600080600080600080610100898b03121561086257600080fd5b883561086d816107bc565b9750602089013561087d816107bc565b9650604089013561088d816107bc565b9550606089013561089d816107bc565b945060808901356108ad816107bc565b935060a08901356108bd816107bc565b925060c08901356108cd816107bc565b915060e08901356108dd816107bc565b809150509295985092959890939650565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061094f57607f821691505b6020821081141561097057634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168061099257607f831692505b60208084108214156109b257634e487b7160e01b86526022600452602486fd5b8180156109c657600181146109d757610a04565b60ff19861689528489019650610a04565b60008a81526020902060005b868110156109fc5781548b8201529085019083016109e3565b505084890196505b50949897505050505050505056fea264697066735822122075a3c7abd4830a51012fac577864b7138380a85e822cf4e6c9e7eb40c739872f64736f6c634300080b0033", + "code": "0x6080604052600436106100e15760003560e01c8063459463341161007f5780637b1391a6116100595780637b1391a614610275578063929a55c0146102935780639ac51fab146102b0578063e1c7392a146102c557600080fd5b8063459463341461021b578063606c0c94146102395780637a37cc591461025757600080fd5b8063244d8257116100bb578063244d825714610188578063289b3c0d146101ba578063392e53cd146101d85780633e1bbdc9146101fb57600080fd5b806316cbea511461011e57806318f062cd1461013e57806323056e991461016957600080fd5b366101195734606760008282546100f89190610796565b90915550506067546802b5e3af16b188000011610117576101176102da565b005b600080fd5b34801561012a57600080fd5b506101176101393660046107d4565b610320565b34801561014a57600080fd5b5061015361037b565b60405161016091906107f8565b60405180910390f35b34801561017557600080fd5b506067545b604051908152602001610160565b34801561019457600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610160565b3480156101c657600080fd5b506006546001600160a01b03166101a2565b3480156101e457600080fd5b5060005460ff166040519015158152602001610160565b34801561020757600080fd5b50610117610216366004610845565b610538565b34801561022757600080fd5b506005546001600160a01b03166101a2565b34801561024557600080fd5b506007546001600160a01b03166101a2565b34801561026357600080fd5b506004546001600160a01b03166101a2565b34801561028157600080fd5b506002546001600160a01b03166101a2565b34801561029f57600080fd5b5061017a6802b5e3af16b188000081565b3480156102bc57600080fd5b506101176105f4565b3480156102d157600080fd5b506101176105fe565b6066546067546040516001600160a01b0390921691829180156108fc02916000818181858888f19350505050158015610317573d6000803e3d6000fd5b50506000606755565b60005460ff161561034c5760405162461bcd60e51b8152600401610343906108ee565b60405180910390fd5b606680546001600160a01b0319166001600160a01b03929092169190911790556000805460ff19166001179055565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b0316918391506000906103c4576103c4610925565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106103f5576103f5610925565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061042657610426610925565b6001600160a01b03928316602091820292909201015260055482519116908290600390811061045757610457610925565b6001600160a01b03928316602091820292909201015260065482519116908290600490811061048857610488610925565b6001600160a01b0392831660209182029290920101526007548251911690829060059081106104b9576104b9610925565b6001600160a01b0392831660209182029290920101526008548251911690829060069081106104ea576104ea610925565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061051b5761051b610925565b6001600160a01b0390921660209283029190910190910152919050565b60005460ff161561055b5760405162461bcd60e51b8152600401610343906108ee565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a8416179055600480548216898416179055600580548216888416179055600680548216878416179055600780548216868416179055600880548216858416179055600980549091169183169190911790556105dd6106a4565b50506000805460ff19166001179055505050505050565b6105fc6102da565b565b60005460ff16156106215760405162461bcd60e51b8152600401610343906108ee565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556106956106a4565b6000805460ff19166001179055565b600180546106b19061093b565b151590506106bb57565b600080306001600160a01b031660016040516106d79190610976565b6000604051808303816000865af19150503d8060008114610714576040519150601f19603f3d011682016040523d82523d6000602084013e610719565b606091505b50915091508115610728575050565b805161078d5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b6064820152608401610343565b80518082602001fd5b600082198211156107b757634e487b7160e01b600052601160045260246000fd5b500190565b6001600160a01b03811681146107d157600080fd5b50565b6000602082840312156107e657600080fd5b81356107f1816107bc565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156108395783516001600160a01b031683529284019291840191600101610814565b50909695505050505050565b600080600080600080600080610100898b03121561086257600080fd5b883561086d816107bc565b9750602089013561087d816107bc565b9650604089013561088d816107bc565b9550606089013561089d816107bc565b945060808901356108ad816107bc565b935060a08901356108bd816107bc565b925060c08901356108cd816107bc565b915060e08901356108dd816107bc565b809150509295985092959890939650565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061094f57607f821691505b6020821081141561097057634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168061099257607f831692505b60208084108214156109b257634e487b7160e01b86526022600452602486fd5b8180156109c657600181146109d757610a04565b60ff19861689528489019650610a04565b60008a81526020902060005b868110156109fc5781548b8201529085019083016109e3565b505084890196505b50949897505050505050505056fea26469706673582212207e9394bf15b5dd774246cd08e8c6182d2d954f9ca25f84abafd1488aa986856f64736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000049", "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0x16cbea5100000000000000000000000000a601f45688dba8a070722073b01527", @@ -60,14 +60,14 @@ "balance": "0x0" }, "0000000000000000000000000000000000007001": { - "code": "0x6080604052600436106101175760003560e01c80633e1bbdc9116100a0578063754b270711610064578063754b2707146103985780637a37cc59146103b85780637b1391a6146103d6578063c2a672e0146103f4578063e1c7392a1461041457600080fd5b80633e1bbdc9146102e15780634594633414610301578063463440311461031f578063606c0c94146103345780636be9dcce1461035257600080fd5b80631e83409a116100e75780631e83409a1461023b578063244d82571461025b578063264762041461028d578063289b3c0d146102a0578063392e53cd146102be57600080fd5b80623920401461013a5780630db14e95146101935780631712b0d8146101b357806318f062cd1461021957600080fd5b36610135576002546001600160a01b0316331461013357600080fd5b005b600080fd5b34801561014657600080fd5b506101806101553660046118cf565b6001600160a01b03918216600090815260686020908152604080832093909416825291909152205490565b6040519081526020015b60405180910390f35b34801561019f57600080fd5b506101806101ae3660046118cf565b610429565b3480156101bf57600080fd5b506101d36101ce366004611908565b61048a565b60405161018a919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080918201519181019190915260a00190565b34801561022557600080fd5b5061022e6104d0565b60405161018a9190611925565b34801561024757600080fd5b50610133610256366004611908565b61068d565b34801561026757600080fd5b506003546001600160a01b03165b6040516001600160a01b03909116815260200161018a565b61013361029b366004611908565b610af4565b3480156102ac57600080fd5b506006546001600160a01b0316610275565b3480156102ca57600080fd5b5060005460ff16604051901515815260200161018a565b3480156102ed57600080fd5b506101336102fc366004611972565b610dea565b34801561030d57600080fd5b506005546001600160a01b0316610275565b34801561032b57600080fd5b50610133610ea6565b34801561034057600080fd5b506007546001600160a01b0316610275565b34801561035e57600080fd5b5061018061036d3660046118cf565b6001600160a01b03918216600090815260676020908152604080832093909416825291909152205490565b3480156103a457600080fd5b506101806103b3366004611908565b610ed8565b3480156103c457600080fd5b506004546001600160a01b0316610275565b3480156103e257600080fd5b506002546001600160a01b0316610275565b34801561040057600080fd5b5061013361040f366004611a1b565b610ef6565b34801561042057600080fd5b506101336114b4565b6000806104358461154b565b9050610440816115aa565b6001600160a01b0380861660009081526068602090815260408083209388168352929052205461047890670de0b6b3a7640000611a5d565b6104829190611a7c565b949350505050565b61049261187f565b600061049d8361154b565b90506000806104ab83611613565b9150915081836040018181516104c19190611a9e565b90525060608301525092915050565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061051957610519611ab6565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061054a5761054a611ab6565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061057b5761057b611ab6565b6001600160a01b0392831660209182029290920101526005548251911690829060039081106105ac576105ac611ab6565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106105dd576105dd611ab6565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061060e5761060e611ab6565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061063f5761063f611ab6565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061067057610670611ab6565b6001600160a01b0390921660209283029190910190910152919050565b8060006106998261154b565b90506000806106a783611613565b60025460405163426594b160e01b81526001600160a01b038881166004830152939550919350919091169063426594b190602401600060405180830381600087803b1580156106f557600080fd5b505af1158015610709573d6000803e3d6000fd5b505050506000821115610778576002546040516317066a5760e21b81526001600160a01b03868116600483015290911690635c19a95c9084906024016000604051808303818588803b15801561075e57600080fd5b505af1158015610772573d6000803e3d6000fd5b50505050505b818360400181815161078a9190611a9e565b90525060608381019182526001600160a01b038581166000908152606660209081526040808320885181546001600160a01b03191690861617815582890151600180830191909155828a015160028084019190915597516003830155608090990151600490910155928916825260678152828220338352815290829020825193840183528054808552968101549184018290529093015467ffffffffffffffff1690820152929150610840565b60405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015610893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b79190611acc565b67ffffffffffffffff16836040015167ffffffffffffffff1611156109175760405162461bcd60e51b81526020600482015260166024820152755374616b696e67506f6f6c3a206e6f7420726561647960501b6044820152606401610837565b6001600160a01b03851660009081526068602090815260408083203384529091528120805483929061094a908490611af6565b909155506000905061095b8661154b565b9050818160200181815161096f9190611af6565b905250604081018051849190610986908390611af6565b90525060808101805184919061099d908390611af6565b9052506001600160a01b038681166000908152606660209081526040808320855181546001600160a01b031916951694909417845584820151600180860191909155858201516002808701919091556060870151600387015560808701516004909601959095556067835281842033855290925282208281559081019190915501805467ffffffffffffffff1916905547831115610a7d5760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e67506f6f6c3a206e6f7420656e6f7567682062616c616e6365006044820152606401610837565b604051339084156108fc029085906000818181858888f19350505050158015610aaa573d6000803e3d6000fd5b5060405183815233906001600160a01b038816907f70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd987068906020015b60405180910390a3505050505050565b806000610b008261154b565b9050600080610b0e83611613565b60025460405163426594b160e01b81526001600160a01b038881166004830152939550919350919091169063426594b190602401600060405180830381600087803b158015610b5c57600080fd5b505af1158015610b70573d6000803e3d6000fd5b505050506000821115610bdf576002546040516317066a5760e21b81526001600160a01b03868116600483015290911690635c19a95c9084906024016000604051808303818588803b158015610bc557600080fd5b505af1158015610bd9573d6000803e3d6000fd5b50505050505b8183604001818151610bf19190611a9e565b905250606083019081526001600160a01b038481166000908152606660209081526040808320875181546001600160a01b031916951694909417845590860151600184015585015160028301559151600382015560809093015160049093019290925550610c5e8361154b565b90506000670de0b6b3a7640000610c74836115aa565b610c7e9034611a5d565b610c889190611a7c565b6001600160a01b0385166000908152606860209081526040808320338452909152812080549293508392909190610cc0908490611a9e565b925050819055503482604001818151610cd99190611a9e565b905250602082018051829190610cf0908390611a9e565b9052506001600160a01b03848116600081815260666020908152604091829020865181546001600160a01b031916908616178155908601516001820155858201516002808301919091556060870151600383015560808701516004928301555491516317066a5760e21b81529081019290925290911690635c19a95c9034906024016000604051808303818588803b158015610d8b57600080fd5b505af1158015610d9f573d6000803e3d6000fd5b50506040513481523393506001600160a01b03881692507f99039fcf0a98f484616c5196ee8b2ecfa971babf0b519848289ea4db381f85f7915060200160405180910390a350505050565b60005460ff1615610e0d5760405162461bcd60e51b815260040161083790611b0d565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610e8f61178d565b50506000805460ff19166001179055505050505050565b60005460ff1615610ec95760405162461bcd60e51b815260040161083790611b0d565b6000805460ff19166001179055565b600080610ee48361154b565b9050610eef816115aa565b9392505050565b816000610f028261154b565b9050600080610f1083611613565b60025460405163426594b160e01b81526001600160a01b038881166004830152939550919350919091169063426594b190602401600060405180830381600087803b158015610f5e57600080fd5b505af1158015610f72573d6000803e3d6000fd5b505050506000821115610fe1576002546040516317066a5760e21b81526001600160a01b03868116600483015290911690635c19a95c9084906024016000604051808303818588803b158015610fc757600080fd5b505af1158015610fdb573d6000803e3d6000fd5b50505050505b8183604001818151610ff39190611a9e565b905250606083019081526001600160a01b038481166000908152606660209081526040808320875181546001600160a01b0319169516949094178455908601516001840155850151600283015591516003820155608090930151600490930192909255506110608461154b565b905060008160400151116110b65760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e67506f6f6c3a206e6f7468696e6720746f20756e7374616b65006044820152606401610837565b6001600160a01b038416600090815260676020908152604080832033845290915290206002015467ffffffffffffffff16156111345760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e67506f6f6c3a20756e64656c65676174652070656e64696e67006044820152606401610837565b6000670de0b6b3a7640000611148836115aa565b6111529086611a5d565b61115c9190611a7c565b6001600160a01b03861660009081526068602090815260408083203384529091529020549091508111156111d25760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e67506f6f6c3a206e6f7420656e6f7567682073686172657300006044820152606401610837565b6002546040516326ccee8b60e11b81526001600160a01b0387811660048301526024820187905290911690634d99dd1690604401600060405180830381600087803b15801561122057600080fd5b505af1158015611234573d6000803e3d6000fd5b505050506000600260009054906101000a90046001600160a01b03166001600160a01b031663606c0c946040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b19190611b44565b90506040518060600160405280868152602001838152602001826001600160a01b0316635e7b72ad6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c9190611b61565b63ffffffff16600260009054906101000a90046001600160a01b03166001600160a01b031663aea0e78b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a99190611acc565b6113b39190611b87565b67ffffffffffffffff9081169091526001600160a01b0388166000908152606760209081526040808320338452825291829020845181559084015160018201559201516002909201805467ffffffffffffffff191692909116919091179055608083018051869190611426908390611a9e565b9052506001600160a01b03868116600081815260666020908152604091829020875181546001600160a01b03191695169490941784558681015160018501558682015160028501556060870151600385015560808701516004909401939093555187815233927f390b1276974b9463e5d66ab10df69b6f3d7b930eb066a0e66df327edd2cc811c9101610ae4565b60005460ff16156114d75760405162461bcd60e51b815260040161083790611b0d565b600280546001600160a01b03199081166110001790915560038054821661100117905560048054821661100217905560058054821661700117905560068054821661700217905560078054821661700317905560088054821661700417905560098054909116617005179055610ec961178d565b61155361187f565b506001600160a01b0316600081815260666020908152604091829020825160a08101845260018201549281019290925260028101549282019290925260038201546060820152600490910154608082015290815290565b6000806115b683611613565b50905060008184604001516115cb9190611a9e565b9050806115e35750670de0b6b3a76400009392505050565b806001828660200151670de0b6b3a76400006115ff9190611a5d565b6116099190611a9e565b6104789190611af6565b600254815160405163295bdf5160e11b81526001600160a01b039182166004820152306024820152600092839283929116906352b7bea290604401602060405180830381865afa15801561166b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168f9190611bb3565b90508360600151816116a19190611a9e565b90508360800151816116b39190611af6565b9050670de0b6b3a76400006116c88183611a7c565b6116d29190611a5d565b9250600760009054906101000a90046001600160a01b03166001600160a01b031663eea9a01b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174b9190611acc565b67ffffffffffffffff16611767670de0b6b3a764000085611a7c565b101561177857600094909350915050565b826117838183611af6565b9250925050915091565b6001805461179a90611bcc565b151590506117a457565b600080306001600160a01b031660016040516117c09190611c07565b6000604051808303816000865af19150503d80600081146117fd576040519150601f19603f3d011682016040523d82523d6000602084013e611802565b606091505b50915091508115611811575050565b80516118765760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b6064820152608401610837565b80518082602001fd5b6040518060a0016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b03811681146118cc57600080fd5b50565b600080604083850312156118e257600080fd5b82356118ed816118b7565b915060208301356118fd816118b7565b809150509250929050565b60006020828403121561191a57600080fd5b8135610eef816118b7565b6020808252825182820181905260009190848201906040850190845b818110156119665783516001600160a01b031683529284019291840191600101611941565b50909695505050505050565b600080600080600080600080610100898b03121561198f57600080fd5b883561199a816118b7565b975060208901356119aa816118b7565b965060408901356119ba816118b7565b955060608901356119ca816118b7565b945060808901356119da816118b7565b935060a08901356119ea816118b7565b925060c08901356119fa816118b7565b915060e0890135611a0a816118b7565b809150509295985092959890939650565b60008060408385031215611a2e57600080fd5b8235611a39816118b7565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611a7757611a77611a47565b500290565b600082611a9957634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611ab157611ab1611a47565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ade57600080fd5b815167ffffffffffffffff81168114610eef57600080fd5b600082821015611b0857611b08611a47565b500390565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b600060208284031215611b5657600080fd5b8151610eef816118b7565b600060208284031215611b7357600080fd5b815163ffffffff81168114610eef57600080fd5b600067ffffffffffffffff808316818516808303821115611baa57611baa611a47565b01949350505050565b600060208284031215611bc557600080fd5b5051919050565b600181811c90821680611be057607f821691505b60208210811415611c0157634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680611c2357607f831692505b6020808410821415611c4357634e487b7160e01b86526022600452602486fd5b818015611c575760018114611c6857611c95565b60ff19861689528489019650611c95565b60008a81526020902060005b86811015611c8d5781548b820152908501908301611c74565b505084890196505b50949897505050505050505056fea26469706673582212208a975193d5de35f29123e17390a140602331507fc389e592232f5eac62c5d4c164736f6c634300080b0033", + "code": "0x6080604052600436106101175760003560e01c80633e1bbdc9116100a0578063754b270711610064578063754b2707146103985780637a37cc59146103b85780637b1391a6146103d6578063c2a672e0146103f4578063e1c7392a1461041457600080fd5b80633e1bbdc9146102e15780634594633414610301578063463440311461031f578063606c0c94146103345780636be9dcce1461035257600080fd5b80631e83409a116100e75780631e83409a1461023b578063244d82571461025b578063264762041461028d578063289b3c0d146102a0578063392e53cd146102be57600080fd5b80623920401461013a5780630db14e95146101935780631712b0d8146101b357806318f062cd1461021957600080fd5b36610135576002546001600160a01b0316331461013357600080fd5b005b600080fd5b34801561014657600080fd5b506101806101553660046118b1565b6001600160a01b03918216600090815260686020908152604080832093909416825291909152205490565b6040519081526020015b60405180910390f35b34801561019f57600080fd5b506101806101ae3660046118b1565b610429565b3480156101bf57600080fd5b506101d36101ce3660046118ea565b61048a565b60405161018a919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080918201519181019190915260a00190565b34801561022557600080fd5b5061022e6104d0565b60405161018a9190611907565b34801561024757600080fd5b506101336102563660046118ea565b61068d565b34801561026757600080fd5b506003546001600160a01b03165b6040516001600160a01b03909116815260200161018a565b61013361029b3660046118ea565b610af4565b3480156102ac57600080fd5b506006546001600160a01b0316610275565b3480156102ca57600080fd5b5060005460ff16604051901515815260200161018a565b3480156102ed57600080fd5b506101336102fc366004611954565b610dea565b34801561030d57600080fd5b506005546001600160a01b0316610275565b34801561032b57600080fd5b50610133610ea6565b34801561034057600080fd5b506007546001600160a01b0316610275565b34801561035e57600080fd5b5061018061036d3660046118b1565b6001600160a01b03918216600090815260676020908152604080832093909416825291909152205490565b3480156103a457600080fd5b506101806103b33660046118ea565b610ed8565b3480156103c457600080fd5b506004546001600160a01b0316610275565b3480156103e257600080fd5b506002546001600160a01b0316610275565b34801561040057600080fd5b5061013361040f3660046119fd565b610ef6565b34801561042057600080fd5b506101336114b4565b6000806104358461154b565b9050610440816115aa565b6001600160a01b0380861660009081526068602090815260408083209388168352929052205461047890670de0b6b3a7640000611a3f565b6104829190611a5e565b949350505050565b610492611861565b600061049d8361154b565b90506000806104ab83611613565b9150915081836040018181516104c19190611a80565b90525060608301525092915050565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061051957610519611a98565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061054a5761054a611a98565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061057b5761057b611a98565b6001600160a01b0392831660209182029290920101526005548251911690829060039081106105ac576105ac611a98565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106105dd576105dd611a98565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061060e5761060e611a98565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061063f5761063f611a98565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061067057610670611a98565b6001600160a01b0390921660209283029190910190910152919050565b8060006106998261154b565b90506000806106a783611613565b60025460405163426594b160e01b81526001600160a01b038881166004830152939550919350919091169063426594b190602401600060405180830381600087803b1580156106f557600080fd5b505af1158015610709573d6000803e3d6000fd5b505050506000821115610778576002546040516317066a5760e21b81526001600160a01b03868116600483015290911690635c19a95c9084906024016000604051808303818588803b15801561075e57600080fd5b505af1158015610772573d6000803e3d6000fd5b50505050505b818360400181815161078a9190611a80565b90525060608381019182526001600160a01b038581166000908152606660209081526040808320885181546001600160a01b03191690861617815582890151600180830191909155828a015160028084019190915597516003830155608090990151600490910155928916825260678152828220338352815290829020825193840183528054808552968101549184018290529093015467ffffffffffffffff1690820152929150610840565b60405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015610893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b79190611aae565b67ffffffffffffffff16836040015167ffffffffffffffff1611156109175760405162461bcd60e51b81526020600482015260166024820152755374616b696e67506f6f6c3a206e6f7420726561647960501b6044820152606401610837565b6001600160a01b03851660009081526068602090815260408083203384529091528120805483929061094a908490611ad8565b909155506000905061095b8661154b565b9050818160200181815161096f9190611ad8565b905250604081018051849190610986908390611ad8565b90525060808101805184919061099d908390611ad8565b9052506001600160a01b038681166000908152606660209081526040808320855181546001600160a01b031916951694909417845584820151600180860191909155858201516002808701919091556060870151600387015560808701516004909601959095556067835281842033855290925282208281559081019190915501805467ffffffffffffffff1916905547831115610a7d5760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e67506f6f6c3a206e6f7420656e6f7567682062616c616e6365006044820152606401610837565b604051339084156108fc029085906000818181858888f19350505050158015610aaa573d6000803e3d6000fd5b5060405183815233906001600160a01b038816907f70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd987068906020015b60405180910390a3505050505050565b806000610b008261154b565b9050600080610b0e83611613565b60025460405163426594b160e01b81526001600160a01b038881166004830152939550919350919091169063426594b190602401600060405180830381600087803b158015610b5c57600080fd5b505af1158015610b70573d6000803e3d6000fd5b505050506000821115610bdf576002546040516317066a5760e21b81526001600160a01b03868116600483015290911690635c19a95c9084906024016000604051808303818588803b158015610bc557600080fd5b505af1158015610bd9573d6000803e3d6000fd5b50505050505b8183604001818151610bf19190611a80565b905250606083019081526001600160a01b038481166000908152606660209081526040808320875181546001600160a01b031916951694909417845590860151600184015585015160028301559151600382015560809093015160049093019290925550610c5e8361154b565b90506000670de0b6b3a7640000610c74836115aa565b610c7e9034611a3f565b610c889190611a5e565b6001600160a01b0385166000908152606860209081526040808320338452909152812080549293508392909190610cc0908490611a80565b925050819055503482604001818151610cd99190611a80565b905250602082018051829190610cf0908390611a80565b9052506001600160a01b03848116600081815260666020908152604091829020865181546001600160a01b031916908616178155908601516001820155858201516002808301919091556060870151600383015560808701516004928301555491516317066a5760e21b81529081019290925290911690635c19a95c9034906024016000604051808303818588803b158015610d8b57600080fd5b505af1158015610d9f573d6000803e3d6000fd5b50506040513481523393506001600160a01b03881692507f99039fcf0a98f484616c5196ee8b2ecfa971babf0b519848289ea4db381f85f7915060200160405180910390a350505050565b60005460ff1615610e0d5760405162461bcd60e51b815260040161083790611aef565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610e8f61176f565b50506000805460ff19166001179055505050505050565b60005460ff1615610ec95760405162461bcd60e51b815260040161083790611aef565b6000805460ff19166001179055565b600080610ee48361154b565b9050610eef816115aa565b9392505050565b816000610f028261154b565b9050600080610f1083611613565b60025460405163426594b160e01b81526001600160a01b038881166004830152939550919350919091169063426594b190602401600060405180830381600087803b158015610f5e57600080fd5b505af1158015610f72573d6000803e3d6000fd5b505050506000821115610fe1576002546040516317066a5760e21b81526001600160a01b03868116600483015290911690635c19a95c9084906024016000604051808303818588803b158015610fc757600080fd5b505af1158015610fdb573d6000803e3d6000fd5b50505050505b8183604001818151610ff39190611a80565b905250606083019081526001600160a01b038481166000908152606660209081526040808320875181546001600160a01b0319169516949094178455908601516001840155850151600283015591516003820155608090930151600490930192909255506110608461154b565b905060008160400151116110b65760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e67506f6f6c3a206e6f7468696e6720746f20756e7374616b65006044820152606401610837565b6001600160a01b038416600090815260676020908152604080832033845290915290206002015467ffffffffffffffff16156111345760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e67506f6f6c3a20756e64656c65676174652070656e64696e67006044820152606401610837565b6000670de0b6b3a7640000611148836115aa565b6111529086611a3f565b61115c9190611a5e565b6001600160a01b03861660009081526068602090815260408083203384529091529020549091508111156111d25760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e67506f6f6c3a206e6f7420656e6f7567682073686172657300006044820152606401610837565b6002546040516326ccee8b60e11b81526001600160a01b0387811660048301526024820187905290911690634d99dd1690604401600060405180830381600087803b15801561122057600080fd5b505af1158015611234573d6000803e3d6000fd5b505050506000600260009054906101000a90046001600160a01b03166001600160a01b031663606c0c946040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b19190611b26565b90506040518060600160405280868152602001838152602001826001600160a01b0316635e7b72ad6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c9190611b43565b63ffffffff16600260009054906101000a90046001600160a01b03166001600160a01b031663aea0e78b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a99190611aae565b6113b39190611b69565b67ffffffffffffffff9081169091526001600160a01b0388166000908152606760209081526040808320338452825291829020845181559084015160018201559201516002909201805467ffffffffffffffff191692909116919091179055608083018051869190611426908390611a80565b9052506001600160a01b03868116600081815260666020908152604091829020875181546001600160a01b03191695169490941784558681015160018501558682015160028501556060870151600385015560808701516004909401939093555187815233927f390b1276974b9463e5d66ab10df69b6f3d7b930eb066a0e66df327edd2cc811c9101610ae4565b60005460ff16156114d75760405162461bcd60e51b815260040161083790611aef565b600280546001600160a01b03199081166110001790915560038054821661100117905560048054821661100217905560058054821661700117905560068054821661700217905560078054821661700317905560088054821661700417905560098054909116617005179055610ec961176f565b611553611861565b506001600160a01b0316600081815260666020908152604091829020825160a08101845260018201549281019290925260028101549282019290925260038201546060820152600490910154608082015290815290565b6000806115b683611613565b50905060008184604001516115cb9190611a80565b9050806115e35750670de0b6b3a76400009392505050565b806001828660200151670de0b6b3a76400006115ff9190611a3f565b6116099190611a80565b6104789190611ad8565b600254815160405163295bdf5160e11b81526001600160a01b039182166004820152306024820152600092839283929116906352b7bea290604401602060405180830381865afa15801561166b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168f9190611b95565b90508360600151816116a19190611a80565b90508360800151816116b39190611ad8565b90506402540be4006116c58183611a5e565b6116cf9190611a3f565b9250600760009054906101000a90046001600160a01b03166001600160a01b031663eea9a01b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611724573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117489190611b95565b83101561175a57600094909350915050565b826117658183611ad8565b9250925050915091565b6001805461177c90611bae565b1515905061178657565b600080306001600160a01b031660016040516117a29190611be9565b6000604051808303816000865af19150503d80600081146117df576040519150601f19603f3d011682016040523d82523d6000602084013e6117e4565b606091505b509150915081156117f3575050565b80516118585760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b6064820152608401610837565b80518082602001fd5b6040518060a0016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b03811681146118ae57600080fd5b50565b600080604083850312156118c457600080fd5b82356118cf81611899565b915060208301356118df81611899565b809150509250929050565b6000602082840312156118fc57600080fd5b8135610eef81611899565b6020808252825182820181905260009190848201906040850190845b818110156119485783516001600160a01b031683529284019291840191600101611923565b50909695505050505050565b600080600080600080600080610100898b03121561197157600080fd5b883561197c81611899565b9750602089013561198c81611899565b9650604089013561199c81611899565b955060608901356119ac81611899565b945060808901356119bc81611899565b935060a08901356119cc81611899565b925060c08901356119dc81611899565b915060e08901356119ec81611899565b809150509295985092959890939650565b60008060408385031215611a1057600080fd5b8235611a1b81611899565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611a5957611a59611a29565b500290565b600082611a7b57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611a9357611a93611a29565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ac057600080fd5b815167ffffffffffffffff81168114610eef57600080fd5b600082821015611aea57611aea611a29565b500390565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b600060208284031215611b3857600080fd5b8151610eef81611899565b600060208284031215611b5557600080fd5b815163ffffffff81168114610eef57600080fd5b600067ffffffffffffffff808316818516808303821115611b8c57611b8c611a29565b01949350505050565b600060208284031215611ba757600080fd5b5051919050565b600181811c90821680611bc257607f821691505b60208210811415611be357634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680611c0557607f831692505b6020808410821415611c2557634e487b7160e01b86526022600452602486fd5b818015611c395760018114611c4a57611c77565b60ff19861689528489019650611c77565b60008a81526020902060005b86811015611c6f5781548b820152908501908301611c56565b505084890196505b50949897505050505050505056fea2646970667358221220a2b4713d610811d23815e8ebca2e43693142a2e8a553a6473f67bbfe5a91028564736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x4634403100000000000000000000000000000000000000000000000000000008" }, "balance": "0x0" }, "0000000000000000000000000000000000007002": { - "code": "0x6080604052600436106102285760003560e01c80635678138811610123578063bb4d4436116100ab578063e1c7392a1161006f578063e1c7392a146106f4578063ea0217cf14610709578063eb9019d414610729578063ece40cc114610749578063f8ce560a1461076957600080fd5b8063bb4d44361461061a578063c01f9e371461063a578063c59057e41461065a578063dd4e2ba51461067a578063deaaa7cc146106c057600080fd5b80637a37cc59116100f25780637a37cc59146105895780637b1391a6146105a75780637b3c71d3146105c55780637d5e81e2146105e5578063b58131b01461060557600080fd5b8063567813881461051657806359fe2ccf14610536578063606c0c941461054b57806370b0f6601461056957600080fd5b80632d63f693116101b15780633e4f49e6116101755780633e4f49e614610402578063438596321461042f5780634594633414610479578063544ffc9c1461049757806354fd4d50146104ec57600080fd5b80632d63f69314610375578063392e53cd146103955780633932abb1146103ad5780633bccf4fd146103c25780633e1bbdc9146103e257600080fd5b80630eb448fa116101f85780630eb448fa146102d057806318f062cd146102f0578063244d8257146103125780632656227d14610344578063289b3c0d1461035757600080fd5b8062f8df171461023657806301ffc9a71461025657806302a251a31461028b57806306fdde03146102ae57600080fd5b3661023157005b005b600080fd5b34801561024257600080fd5b5061022f6102513660046125ac565b610789565b34801561026257600080fd5b506102766102713660046125c5565b6107ce565b60405190151581526020015b60405180910390f35b34801561029757600080fd5b506102a0610805565b604051908152602001610282565b3480156102ba57600080fd5b506102c3610824565b604051610282919061264b565b3480156102dc57600080fd5b506102a06102eb3660046128b6565b6108b6565b3480156102fc57600080fd5b506103056109d7565b60405161028291906129ae565b34801561031e57600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610282565b6102a06103523660046129c1565b610b94565b34801561036357600080fd5b506006546001600160a01b031661032c565b34801561038157600080fd5b506102a06103903660046125ac565b610ca7565b3480156103a157600080fd5b5060005460ff16610276565b3480156103b957600080fd5b506102a0610cde565b3480156103ce57600080fd5b506102a06103dd366004612a5f565b610ce9565b3480156103ee57600080fd5b5061022f6103fd366004612ab1565b610d7d565b34801561040e57600080fd5b5061042261041d3660046125ac565b610e39565b6040516102829190612b70565b34801561043b57600080fd5b5061027661044a366004612b98565b60008281526068602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b34801561048557600080fd5b506005546001600160a01b031661032c565b3480156104a357600080fd5b506104d16104b23660046125ac565b6000908152606860205260409020805460018201546002909201549092565b60408051938452602084019290925290820152606001610282565b3480156104f857600080fd5b506040805180820190915260018152603160f81b60208201526102c3565b34801561052257600080fd5b506102a0610531366004612bc8565b610f9e565b34801561054257600080fd5b506102a06110ad565b34801561055757600080fd5b506007546001600160a01b031661032c565b34801561057557600080fd5b5061022f6105843660046125ac565b6110b8565b34801561059557600080fd5b506004546001600160a01b031661032c565b3480156105b357600080fd5b506002546001600160a01b031661032c565b3480156105d157600080fd5b506102a06105e0366004612bed565b6110e3565b3480156105f157600080fd5b506102a0610600366004612c75565b61112b565b34801561061157600080fd5b506102a0611234565b34801561062657600080fd5b506102a0610635366004612d21565b61123f565b34801561064657600080fd5b506102a06106553660046125ac565b61124b565b34801561066657600080fd5b506102a06106753660046129c1565b61127a565b34801561068657600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e908201526102c3565b3480156106cc57600080fd5b506102a07f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b34801561070057600080fd5b5061022f6112b4565b34801561071557600080fd5b5061022f6107243660046125ac565b61135a565b34801561073557600080fd5b506102a0610744366004612d3e565b611382565b34801561075557600080fd5b5061022f6107643660046125ac565b61138e565b34801561077557600080fd5b506102a06107843660046125ac565b6113b6565b60005460ff16156107b55760405162461bcd60e51b81526004016107ac90612d6a565b60405180910390fd5b6107be816113db565b506000805460ff19166001179055565b60006001600160e01b0319821663bf26d89760e01b14806107ff57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000606c546000146108185750606c5490565b50606a5490565b905090565b60606066805461083390612da1565b80601f016020809104026020016040519081016040528092919081815260200182805461085f90612da1565b80156108ac5780601f10610881576101008083540402835291602001916108ac565b820191906000526020600020905b81548152906001019060200180831161088f57829003601f168201915b5050505050905090565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109279190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190612df3565b6109b35760405162461bcd60e51b81526004016107ac90612e15565b606c83905560006109c68888888861112b565b6000606c5598975050505050505050565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b031691839150600090610a2057610a20612e4a565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610a5157610a51612e4a565b6001600160a01b039283166020918202929092010152600454825191169082906002908110610a8257610a82612e4a565b6001600160a01b039283166020918202929092010152600554825191169082906003908110610ab357610ab3612e4a565b6001600160a01b039283166020918202929092010152600654825191169082906004908110610ae457610ae4612e4a565b6001600160a01b039283166020918202929092010152600754825191169082906005908110610b1557610b15612e4a565b6001600160a01b039283166020918202929092010152600854825191169082906006908110610b4657610b46612e4a565b6001600160a01b039283166020918202929092010152600954825191169082906007908110610b7757610b77612e4a565b6001600160a01b0390921660209283029190910190910152919050565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c059190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa158015610c51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c759190612df3565b610c915760405162461bcd60e51b81526004016107ac90612e15565b610c9d8686868661147c565b9695505050505050565b60008181526067602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b600061081f60695490565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610d5590610d4d906080016040516020818303038152906040528051906020012061158e565b8686866115dc565b9050610d72878288604051806020016040528060008152506115fa565b979650505050505050565b60005460ff1615610da05760405162461bcd60e51b81526004016107ac90612d6a565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610e22611704565b50506000805460ff19166001179055505050505050565b6000818152606760209081526040808320815160a08101835281546001600160401b039081166080830190815282528351808601855260018401549091168152938101939093526002015460ff808216158015938501939093526101009091041615156060830152610eae5750600792915050565b806060015115610ec15750600292915050565b80515143906001600160401b031610610edd5750600092915050565b43610eea82602001515190565b6001600160401b031610610f015750600192915050565b610f0e81602001516117f6565b15610f5057610f1c83611825565b8015610f3b575060008381526068602052604090208054600190910154115b610f46576003610f49565b60045b9392505050565b60405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c20696400000060448201526064016107ac565b50919050565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015610feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100f9190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190612df3565b61109b5760405162461bcd60e51b81526004016107ac90612e15565b6110a5848461185c565b949350505050565b600061081f4361187d565b3330146110d75760405162461bcd60e51b81526004016107ac90612e60565b6110e081611951565b50565b600080339050610c9d86828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115fa92505050565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015611178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119c9190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa1580156111e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120c9190612df3565b6112285760405162461bcd60e51b81526004016107ac90612e15565b610c9d86868686611992565b600061081f606b5490565b60006107ff8243611c6d565b60008181526067602090815260408083208151928301909152600101546001600160401b031690819052610ccf565b6000848484846040516020016112939493929190612f1c565b60408051601f19818403018152919052805160209091012095945050505050565b60005460ff16156112d75760405162461bcd60e51b81526004016107ac90612d6a565b600280546001600160a01b0319908116611000179091556003805482166110011790556004805482166110021790556005805482166170011790556006805482166170021790556007805482166170031790556008805482166170041790556009805490911661700517905561134b611704565b6000805460ff19166001179055565b3330146113795760405162461bcd60e51b81526004016107ac90612e60565b6110e0816113db565b6000610f498383611c6d565b3330146113ad5760405162461bcd60e51b81526004016107ac90612e60565b6110e081611e72565b6000806113c28361187d565b905060036113d1826002612f7d565b610f499190612f9c565b6000811161143b5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084016107ac565b606a5460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1606a55565b60008061148b8686868661127a565b9050600061149882610e39565b905060048160078111156114ae576114ae612b5a565b14806114cb575060058160078111156114c9576114c9612b5a565b145b6115215760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756044820152601b60fa1b60648201526084016107ac565b60008281526067602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f9061156f9084815260200190565b60405180910390a16115848288888888611eb3565b5095945050505050565b60006107ff61159b611fb2565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006115ed878787876120d9565b91509150611584816121c6565b6000848152606760205260408120600161161387610e39565b600781111561162457611624612b5a565b1461167d5760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b60648201526084016107ac565b604080516020810190915281546001600160401b0316908190526000906116a5908790611382565b90506116b387878784612381565b856001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4888784886040516116f29493929190612fbe565b60405180910390a29695505050505050565b6001805461171190612da1565b1515905061171b57565b600080306001600160a01b031660016040516117379190612fe6565b6000604051808303816000865af19150503d8060008114611774576040519150601f19603f3d011682016040523d82523d6000602084013e611779565b606091505b50915091508115611788575050565b80516117ed5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016107ac565b80518082602001fd5b600061180b82516001600160401b0316151590565b80156107ff57505051436001600160401b03909116111590565b6000818152606860205260408120600281015460018201546118479190613082565b61185361078485610ca7565b11159392505050565b6000803390506110a5848285604051806020016040528060008152506115fa565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663b7ab4db56040518163ffffffff1660e01b8152600401600060405180830381865afa1580156118d3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118fb919081019061309a565b905060005b815181101561194a5761192c82828151811061191e5761191e612e4a565b602002602001015185611c6d565b6119369084613082565b92508061194281613128565b915050611900565b5050919050565b60695460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1606955565b600061199c611234565b6119ab33610744600143613143565b1015611a2b5760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a2070726f7060448201527f6f73657220766f7465732062656c6f772070726f706f73616c207468726573686064820152621bdb1960ea1b608482015260a4016107ac565b6000611a40868686868051906020012061127a565b90508451865114611a635760405162461bcd60e51b81526004016107ac9061315a565b8351865114611a845760405162461bcd60e51b81526004016107ac9061315a565b6000865111611ad55760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c000000000000000060448201526064016107ac565b600081815260676020908152604091829020825191820190925281546001600160401b03169081905215611b555760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b60648201526084016107ac565b6000611b67611b62610cde565b612507565b611b7043612507565b611b7a919061319b565b90506000611b89611b62610805565b611b93908361319b565b835467ffffffffffffffff19166001600160401b038416178455905060018301805467ffffffffffffffff19166001600160401b0383161790557f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b03811115611c0b57611c0b61265e565b604051908082528060200260200182016040528015611c3e57816020015b6060815260200190600190039081611c295790505b508c88888e604051611c58999897969594939291906131c6565b60405180910390a15091979650505050505050565b600254604051631808461160e11b81526001600160a01b03848116600483015260009283929116906330108c2290602401602060405180830381865afa158015611cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdf9190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa158015611d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4f9190612df3565b611d5d5760009150506107ff565b6007546040805163068d921560e31b815290516000926001600160a01b03169163346c90a89160048083019260209291908290030181865afa158015611da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dcb91906132ce565b611ddb9063ffffffff1685612f9c565b600254604051632409269360e11b81526001600160a01b0385811660048301526001600160401b0384166024830152929350600092909116906348124d269060440161012060405180830381865afa158015611e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5f9190613300565b50949d9c50505050505050505050505050565b606b5460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1606b55565b60006040518060600160405280602781526020016133e360279139905060005b8551811015611fa957600080878381518110611ef157611ef1612e4a565b60200260200101516001600160a01b0316878481518110611f1457611f14612e4a565b6020026020010151878581518110611f2e57611f2e612e4a565b6020026020010151604051611f4391906133c6565b60006040518083038185875af1925050503d8060008114611f80576040519150601f19603f3d011682016040523d82523d6000602084013e611f85565b606091505b5091509150611f95828286612573565b50505080611fa290613128565b9050611ed3565b50505050505050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000070021614801561200b57507f000000000000000000000000000000000000000000000000000000000000053946145b1561203557507fdc93eee853a1d72bb5db6f8ea102d504ade6b85b1de67231925f597736f6b38c90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527fdf276cb73863748bcb662935108dff7c987850f3e7a793f7f6131790b165e92f828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561211057506000905060036121bd565b8460ff16601b1415801561212857508460ff16601c14155b1561213957506000905060046121bd565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561218d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166121b6576000600192509250506121bd565b9150600090505b94509492505050565b60008160048111156121da576121da612b5a565b14156121e35750565b60018160048111156121f7576121f7612b5a565b14156122455760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016107ac565b600281600481111561225957612259612b5a565b14156122a75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016107ac565b60038160048111156122bb576122bb612b5a565b14156123145760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016107ac565b600481600481111561232857612328612b5a565b14156110e05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016107ac565b60008481526068602090815260408083206001600160a01b0387168452600381019092529091205460ff16156124095760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561604482015266191e4818d85cdd60ca1b60648201526084016107ac565b6001600160a01b03841660009081526003820160205260408120805460ff1916600117905560ff168360ff16141561245a578181600001600082825461244f9190613082565b909155506125009050565b60ff83166001141561247a578181600101600082825461244f9190613082565b60ff83166002141561249a578181600201600082825461244f9190613082565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b60648201526084016107ac565b5050505050565b60006001600160401b0382111561256f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016107ac565b5090565b60608315612582575081610f49565b8251156125925782518084602001fd5b8160405162461bcd60e51b81526004016107ac919061264b565b6000602082840312156125be57600080fd5b5035919050565b6000602082840312156125d757600080fd5b81356001600160e01b031981168114610f4957600080fd5b60005b8381101561260a5781810151838201526020016125f2565b83811115612619576000848401525b50505050565b600081518084526126378160208601602086016125ef565b601f01601f19169290920160200192915050565b602081526000610f49602083018461261f565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561269c5761269c61265e565b604052919050565b60006001600160401b038211156126bd576126bd61265e565b5060051b60200190565b6001600160a01b03811681146110e057600080fd5b600082601f8301126126ed57600080fd5b813560206127026126fd836126a4565b612674565b82815260059290921b8401810191818101908684111561272157600080fd5b8286015b84811015612745578035612738816126c7565b8352918301918301612725565b509695505050505050565b600082601f83011261276157600080fd5b813560206127716126fd836126a4565b82815260059290921b8401810191818101908684111561279057600080fd5b8286015b848110156127455780358352918301918301612794565b60006001600160401b038311156127c4576127c461265e565b6127d7601f8401601f1916602001612674565b90508281528383830111156127eb57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261281357600080fd5b813560206128236126fd836126a4565b82815260059290921b8401810191818101908684111561284257600080fd5b8286015b848110156127455780356001600160401b038111156128655760008081fd5b8701603f810189136128775760008081fd5b6128888986830135604084016127ab565b845250918301918301612846565b600082601f8301126128a757600080fd5b610f49838335602085016127ab565b600080600080600060a086880312156128ce57600080fd5b85356001600160401b03808211156128e557600080fd5b6128f189838a016126dc565b9650602088013591508082111561290757600080fd5b61291389838a01612750565b9550604088013591508082111561292957600080fd5b61293589838a01612802565b9450606088013591508082111561294b57600080fd5b5061295888828901612896565b95989497509295608001359392505050565b600081518084526020808501945080840160005b838110156129a35781516001600160a01b03168752958201959082019060010161297e565b509495945050505050565b602081526000610f49602083018461296a565b600080600080608085870312156129d757600080fd5b84356001600160401b03808211156129ee57600080fd5b6129fa888389016126dc565b95506020870135915080821115612a1057600080fd5b612a1c88838901612750565b94506040870135915080821115612a3257600080fd5b50612a3f87828801612802565b949793965093946060013593505050565b60ff811681146110e057600080fd5b600080600080600060a08688031215612a7757600080fd5b853594506020860135612a8981612a50565b93506040860135612a9981612a50565b94979396509394606081013594506080013592915050565b600080600080600080600080610100898b031215612ace57600080fd5b8835612ad9816126c7565b97506020890135612ae9816126c7565b96506040890135612af9816126c7565b95506060890135612b09816126c7565b94506080890135612b19816126c7565b935060a0890135612b29816126c7565b925060c0890135612b39816126c7565b915060e0890135612b49816126c7565b809150509295985092959890939650565b634e487b7160e01b600052602160045260246000fd5b6020810160088310612b9257634e487b7160e01b600052602160045260246000fd5b91905290565b60008060408385031215612bab57600080fd5b823591506020830135612bbd816126c7565b809150509250929050565b60008060408385031215612bdb57600080fd5b823591506020830135612bbd81612a50565b60008060008060608587031215612c0357600080fd5b843593506020850135612c1581612a50565b925060408501356001600160401b0380821115612c3157600080fd5b818701915087601f830112612c4557600080fd5b813581811115612c5457600080fd5b886020828501011115612c6657600080fd5b95989497505060200194505050565b60008060008060808587031215612c8b57600080fd5b84356001600160401b0380821115612ca257600080fd5b612cae888389016126dc565b95506020870135915080821115612cc457600080fd5b612cd088838901612750565b94506040870135915080821115612ce657600080fd5b612cf288838901612802565b93506060870135915080821115612d0857600080fd5b50612d1587828801612896565b91505092959194509250565b600060208284031215612d3357600080fd5b8135610f49816126c7565b60008060408385031215612d5157600080fd5b8235612d5c816126c7565b946020939093013593505050565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b600181811c90821680612db557607f821691505b60208210811415610f9857634e487b7160e01b600052602260045260246000fd5b600060208284031215612de857600080fd5b8151610f49816126c7565b600060208284031215612e0557600080fd5b81518015158114610f4957600080fd5b6020808252818101527f476f7665726e616e63653a206f6e6c792076616c696461746f72206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600081518084526020808501945080840160005b838110156129a357815187529582019590820190600101612eab565b600081518084526020808501808196508360051b8101915082860160005b85811015612f0f578284038952612efd84835161261f565b98850198935090840190600101612ee5565b5091979650505050505050565b608081526000612f2f608083018761296a565b8281036020840152612f418187612e97565b90508281036040840152612f558186612ec7565b91505082606083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612f9757612f97612f67565b500290565b600082612fb957634e487b7160e01b600052601260045260246000fd5b500490565b84815260ff84166020820152826040820152608060608201526000610c9d608083018461261f565b600080835481600182811c91508083168061300257607f831692505b602080841082141561302257634e487b7160e01b86526022600452602486fd5b818015613036576001811461304757613074565b60ff19861689528489019650613074565b60008a81526020902060005b8681101561306c5781548b820152908501908301613053565b505084890196505b509498975050505050505050565b6000821982111561309557613095612f67565b500190565b600060208083850312156130ad57600080fd5b82516001600160401b038111156130c357600080fd5b8301601f810185136130d457600080fd5b80516130e26126fd826126a4565b81815260059190911b8201830190838101908783111561310157600080fd5b928401925b82841015610d72578351613119816126c7565b82529284019290840190613106565b600060001982141561313c5761313c612f67565b5060010190565b60008282101561315557613155612f67565b500390565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b60006001600160401b038083168185168083038211156131bd576131bd612f67565b01949350505050565b60006101208b8352602060018060a01b038c16818501528160408501526131ef8285018c61296a565b91508382036060850152613203828b612e97565b915083820360808501528189518084528284019150828160051b850101838c0160005b8381101561325457601f1987840301855261324283835161261f565b94860194925090850190600101613226565b505086810360a0880152613268818c612ec7565b94505050505061328360c08401876001600160401b03169052565b6001600160401b03851660e08401528281036101008401526132a5818561261f565b9c9b505050505050505050505050565b805163ffffffff811681146132c957600080fd5b919050565b6000602082840312156132e057600080fd5b610f49826132b5565b80516001600160401b03811681146132c957600080fd5b60008060008060008060008060006101208a8c03121561331f57600080fd5b895161332a816126c7565b60208b015190995061333b81612a50565b60408b0151909850965061335160608b016132b5565b955061335f60808b016132e9565b945061336d60a08b016132e9565b935061337b60c08b016132e9565b925060e08a015161ffff8116811461339257600080fd5b6101008b01519092506bffffffffffffffffffffffff811681146133b557600080fd5b809150509295985092959850929598565b600082516133d88184602087016125ef565b919091019291505056fe476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765a264697066735822122036448169e686f1243dfd7e10773c786f34777eb30feee48552cee171511cdddb64736f6c634300080b0033", + "code": "0x6080604052600436106102285760003560e01c80635678138811610123578063bb4d4436116100ab578063e1c7392a1161006f578063e1c7392a146106f4578063ea0217cf14610709578063eb9019d414610729578063ece40cc114610749578063f8ce560a1461076957600080fd5b8063bb4d44361461061a578063c01f9e371461063a578063c59057e41461065a578063dd4e2ba51461067a578063deaaa7cc146106c057600080fd5b80637a37cc59116100f25780637a37cc59146105895780637b1391a6146105a75780637b3c71d3146105c55780637d5e81e2146105e5578063b58131b01461060557600080fd5b8063567813881461051657806359fe2ccf14610536578063606c0c941461054b57806370b0f6601461056957600080fd5b80632d63f693116101b15780633e4f49e6116101755780633e4f49e614610402578063438596321461042f5780634594633414610479578063544ffc9c1461049757806354fd4d50146104ec57600080fd5b80632d63f69314610375578063392e53cd146103955780633932abb1146103ad5780633bccf4fd146103c25780633e1bbdc9146103e257600080fd5b80630eb448fa116101f85780630eb448fa146102d057806318f062cd146102f0578063244d8257146103125780632656227d14610344578063289b3c0d1461035757600080fd5b8062f8df171461023657806301ffc9a71461025657806302a251a31461028b57806306fdde03146102ae57600080fd5b3661023157005b005b600080fd5b34801561024257600080fd5b5061022f6102513660046125ac565b610789565b34801561026257600080fd5b506102766102713660046125c5565b6107ce565b60405190151581526020015b60405180910390f35b34801561029757600080fd5b506102a0610805565b604051908152602001610282565b3480156102ba57600080fd5b506102c3610824565b604051610282919061264b565b3480156102dc57600080fd5b506102a06102eb3660046128b6565b6108b6565b3480156102fc57600080fd5b506103056109d7565b60405161028291906129ae565b34801561031e57600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610282565b6102a06103523660046129c1565b610b94565b34801561036357600080fd5b506006546001600160a01b031661032c565b34801561038157600080fd5b506102a06103903660046125ac565b610ca7565b3480156103a157600080fd5b5060005460ff16610276565b3480156103b957600080fd5b506102a0610cde565b3480156103ce57600080fd5b506102a06103dd366004612a5f565b610ce9565b3480156103ee57600080fd5b5061022f6103fd366004612ab1565b610d7d565b34801561040e57600080fd5b5061042261041d3660046125ac565b610e39565b6040516102829190612b70565b34801561043b57600080fd5b5061027661044a366004612b98565b60008281526068602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b34801561048557600080fd5b506005546001600160a01b031661032c565b3480156104a357600080fd5b506104d16104b23660046125ac565b6000908152606860205260409020805460018201546002909201549092565b60408051938452602084019290925290820152606001610282565b3480156104f857600080fd5b506040805180820190915260018152603160f81b60208201526102c3565b34801561052257600080fd5b506102a0610531366004612bc8565b610f9e565b34801561054257600080fd5b506102a06110ad565b34801561055757600080fd5b506007546001600160a01b031661032c565b34801561057557600080fd5b5061022f6105843660046125ac565b6110b8565b34801561059557600080fd5b506004546001600160a01b031661032c565b3480156105b357600080fd5b506002546001600160a01b031661032c565b3480156105d157600080fd5b506102a06105e0366004612bed565b6110e3565b3480156105f157600080fd5b506102a0610600366004612c75565b61112b565b34801561061157600080fd5b506102a0611234565b34801561062657600080fd5b506102a0610635366004612d21565b61123f565b34801561064657600080fd5b506102a06106553660046125ac565b61124b565b34801561066657600080fd5b506102a06106753660046129c1565b61127a565b34801561068657600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e908201526102c3565b3480156106cc57600080fd5b506102a07f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b34801561070057600080fd5b5061022f6112b4565b34801561071557600080fd5b5061022f6107243660046125ac565b61135a565b34801561073557600080fd5b506102a0610744366004612d3e565b611382565b34801561075557600080fd5b5061022f6107643660046125ac565b61138e565b34801561077557600080fd5b506102a06107843660046125ac565b6113b6565b60005460ff16156107b55760405162461bcd60e51b81526004016107ac90612d6a565b60405180910390fd5b6107be816113db565b506000805460ff19166001179055565b60006001600160e01b0319821663bf26d89760e01b14806107ff57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000606c546000146108185750606c5490565b50606a5490565b905090565b60606066805461083390612da1565b80601f016020809104026020016040519081016040528092919081815260200182805461085f90612da1565b80156108ac5780601f10610881576101008083540402835291602001916108ac565b820191906000526020600020905b81548152906001019060200180831161088f57829003601f168201915b5050505050905090565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109279190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190612df3565b6109b35760405162461bcd60e51b81526004016107ac90612e15565b606c83905560006109c68888888861112b565b6000606c5598975050505050505050565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b031691839150600090610a2057610a20612e4a565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610a5157610a51612e4a565b6001600160a01b039283166020918202929092010152600454825191169082906002908110610a8257610a82612e4a565b6001600160a01b039283166020918202929092010152600554825191169082906003908110610ab357610ab3612e4a565b6001600160a01b039283166020918202929092010152600654825191169082906004908110610ae457610ae4612e4a565b6001600160a01b039283166020918202929092010152600754825191169082906005908110610b1557610b15612e4a565b6001600160a01b039283166020918202929092010152600854825191169082906006908110610b4657610b46612e4a565b6001600160a01b039283166020918202929092010152600954825191169082906007908110610b7757610b77612e4a565b6001600160a01b0390921660209283029190910190910152919050565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c059190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa158015610c51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c759190612df3565b610c915760405162461bcd60e51b81526004016107ac90612e15565b610c9d8686868661147c565b9695505050505050565b60008181526067602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b600061081f60695490565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610d5590610d4d906080016040516020818303038152906040528051906020012061158e565b8686866115dc565b9050610d72878288604051806020016040528060008152506115fa565b979650505050505050565b60005460ff1615610da05760405162461bcd60e51b81526004016107ac90612d6a565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610e22611704565b50506000805460ff19166001179055505050505050565b6000818152606760209081526040808320815160a08101835281546001600160401b039081166080830190815282528351808601855260018401549091168152938101939093526002015460ff808216158015938501939093526101009091041615156060830152610eae5750600792915050565b806060015115610ec15750600292915050565b80515143906001600160401b031610610edd5750600092915050565b43610eea82602001515190565b6001600160401b031610610f015750600192915050565b610f0e81602001516117f6565b15610f5057610f1c83611825565b8015610f3b575060008381526068602052604090208054600190910154115b610f46576003610f49565b60045b9392505050565b60405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c20696400000060448201526064016107ac565b50919050565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015610feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100f9190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190612df3565b61109b5760405162461bcd60e51b81526004016107ac90612e15565b6110a5848461185c565b949350505050565b600061081f4361187d565b3330146110d75760405162461bcd60e51b81526004016107ac90612e60565b6110e081611951565b50565b600080339050610c9d86828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115fa92505050565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015611178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119c9190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa1580156111e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120c9190612df3565b6112285760405162461bcd60e51b81526004016107ac90612e15565b610c9d86868686611992565b600061081f606b5490565b60006107ff8243611c6d565b60008181526067602090815260408083208151928301909152600101546001600160401b031690819052610ccf565b6000848484846040516020016112939493929190612f1c565b60408051601f19818403018152919052805160209091012095945050505050565b60005460ff16156112d75760405162461bcd60e51b81526004016107ac90612d6a565b600280546001600160a01b0319908116611000179091556003805482166110011790556004805482166110021790556005805482166170011790556006805482166170021790556007805482166170031790556008805482166170041790556009805490911661700517905561134b611704565b6000805460ff19166001179055565b3330146113795760405162461bcd60e51b81526004016107ac90612e60565b6110e0816113db565b6000610f498383611c6d565b3330146113ad5760405162461bcd60e51b81526004016107ac90612e60565b6110e081611e72565b6000806113c28361187d565b905060036113d1826002612f7d565b610f499190612f9c565b6000811161143b5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084016107ac565b606a5460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1606a55565b60008061148b8686868661127a565b9050600061149882610e39565b905060048160078111156114ae576114ae612b5a565b14806114cb575060058160078111156114c9576114c9612b5a565b145b6115215760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756044820152601b60fa1b60648201526084016107ac565b60008281526067602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f9061156f9084815260200190565b60405180910390a16115848288888888611eb3565b5095945050505050565b60006107ff61159b611fb2565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006115ed878787876120d9565b91509150611584816121c6565b6000848152606760205260408120600161161387610e39565b600781111561162457611624612b5a565b1461167d5760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b60648201526084016107ac565b604080516020810190915281546001600160401b0316908190526000906116a5908790611382565b90506116b387878784612381565b856001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4888784886040516116f29493929190612fbe565b60405180910390a29695505050505050565b6001805461171190612da1565b1515905061171b57565b600080306001600160a01b031660016040516117379190612fe6565b6000604051808303816000865af19150503d8060008114611774576040519150601f19603f3d011682016040523d82523d6000602084013e611779565b606091505b50915091508115611788575050565b80516117ed5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016107ac565b80518082602001fd5b600061180b82516001600160401b0316151590565b80156107ff57505051436001600160401b03909116111590565b6000818152606860205260408120600281015460018201546118479190613082565b61185361078485610ca7565b11159392505050565b6000803390506110a5848285604051806020016040528060008152506115fa565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663b7ab4db56040518163ffffffff1660e01b8152600401600060405180830381865afa1580156118d3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118fb919081019061309a565b905060005b815181101561194a5761192c82828151811061191e5761191e612e4a565b602002602001015185611c6d565b6119369084613082565b92508061194281613128565b915050611900565b5050919050565b60695460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1606955565b600061199c611234565b6119ab33610744600143613143565b1015611a2b5760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a2070726f7060448201527f6f73657220766f7465732062656c6f772070726f706f73616c207468726573686064820152621bdb1960ea1b608482015260a4016107ac565b6000611a40868686868051906020012061127a565b90508451865114611a635760405162461bcd60e51b81526004016107ac9061315a565b8351865114611a845760405162461bcd60e51b81526004016107ac9061315a565b6000865111611ad55760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c000000000000000060448201526064016107ac565b600081815260676020908152604091829020825191820190925281546001600160401b03169081905215611b555760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b60648201526084016107ac565b6000611b67611b62610cde565b612507565b611b7043612507565b611b7a919061319b565b90506000611b89611b62610805565b611b93908361319b565b835467ffffffffffffffff19166001600160401b038416178455905060018301805467ffffffffffffffff19166001600160401b0383161790557f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b03811115611c0b57611c0b61265e565b604051908082528060200260200182016040528015611c3e57816020015b6060815260200190600190039081611c295790505b508c88888e604051611c58999897969594939291906131c6565b60405180910390a15091979650505050505050565b600254604051631808461160e11b81526001600160a01b03848116600483015260009283929116906330108c2290602401602060405180830381865afa158015611cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdf9190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa158015611d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4f9190612df3565b611d5d5760009150506107ff565b6007546040805163068d921560e31b815290516000926001600160a01b03169163346c90a89160048083019260209291908290030181865afa158015611da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dcb91906132ce565b611ddb9063ffffffff1685612f9c565b600254604051632409269360e11b81526001600160a01b0385811660048301526001600160401b0384166024830152929350600092909116906348124d269060440161012060405180830381865afa158015611e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5f9190613300565b50949d9c50505050505050505050505050565b606b5460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1606b55565b60006040518060600160405280602781526020016133e360279139905060005b8551811015611fa957600080878381518110611ef157611ef1612e4a565b60200260200101516001600160a01b0316878481518110611f1457611f14612e4a565b6020026020010151878581518110611f2e57611f2e612e4a565b6020026020010151604051611f4391906133c6565b60006040518083038185875af1925050503d8060008114611f80576040519150601f19603f3d011682016040523d82523d6000602084013e611f85565b606091505b5091509150611f95828286612573565b50505080611fa290613128565b9050611ed3565b50505050505050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000070021614801561200b57507f000000000000000000000000000000000000000000000000000000000000053946145b1561203557507fdc93eee853a1d72bb5db6f8ea102d504ade6b85b1de67231925f597736f6b38c90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527fdf276cb73863748bcb662935108dff7c987850f3e7a793f7f6131790b165e92f828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561211057506000905060036121bd565b8460ff16601b1415801561212857508460ff16601c14155b1561213957506000905060046121bd565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561218d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166121b6576000600192509250506121bd565b9150600090505b94509492505050565b60008160048111156121da576121da612b5a565b14156121e35750565b60018160048111156121f7576121f7612b5a565b14156122455760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016107ac565b600281600481111561225957612259612b5a565b14156122a75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016107ac565b60038160048111156122bb576122bb612b5a565b14156123145760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016107ac565b600481600481111561232857612328612b5a565b14156110e05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016107ac565b60008481526068602090815260408083206001600160a01b0387168452600381019092529091205460ff16156124095760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561604482015266191e4818d85cdd60ca1b60648201526084016107ac565b6001600160a01b03841660009081526003820160205260408120805460ff1916600117905560ff168360ff16141561245a578181600001600082825461244f9190613082565b909155506125009050565b60ff83166001141561247a578181600101600082825461244f9190613082565b60ff83166002141561249a578181600201600082825461244f9190613082565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b60648201526084016107ac565b5050505050565b60006001600160401b0382111561256f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016107ac565b5090565b60608315612582575081610f49565b8251156125925782518084602001fd5b8160405162461bcd60e51b81526004016107ac919061264b565b6000602082840312156125be57600080fd5b5035919050565b6000602082840312156125d757600080fd5b81356001600160e01b031981168114610f4957600080fd5b60005b8381101561260a5781810151838201526020016125f2565b83811115612619576000848401525b50505050565b600081518084526126378160208601602086016125ef565b601f01601f19169290920160200192915050565b602081526000610f49602083018461261f565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561269c5761269c61265e565b604052919050565b60006001600160401b038211156126bd576126bd61265e565b5060051b60200190565b6001600160a01b03811681146110e057600080fd5b600082601f8301126126ed57600080fd5b813560206127026126fd836126a4565b612674565b82815260059290921b8401810191818101908684111561272157600080fd5b8286015b84811015612745578035612738816126c7565b8352918301918301612725565b509695505050505050565b600082601f83011261276157600080fd5b813560206127716126fd836126a4565b82815260059290921b8401810191818101908684111561279057600080fd5b8286015b848110156127455780358352918301918301612794565b60006001600160401b038311156127c4576127c461265e565b6127d7601f8401601f1916602001612674565b90508281528383830111156127eb57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261281357600080fd5b813560206128236126fd836126a4565b82815260059290921b8401810191818101908684111561284257600080fd5b8286015b848110156127455780356001600160401b038111156128655760008081fd5b8701603f810189136128775760008081fd5b6128888986830135604084016127ab565b845250918301918301612846565b600082601f8301126128a757600080fd5b610f49838335602085016127ab565b600080600080600060a086880312156128ce57600080fd5b85356001600160401b03808211156128e557600080fd5b6128f189838a016126dc565b9650602088013591508082111561290757600080fd5b61291389838a01612750565b9550604088013591508082111561292957600080fd5b61293589838a01612802565b9450606088013591508082111561294b57600080fd5b5061295888828901612896565b95989497509295608001359392505050565b600081518084526020808501945080840160005b838110156129a35781516001600160a01b03168752958201959082019060010161297e565b509495945050505050565b602081526000610f49602083018461296a565b600080600080608085870312156129d757600080fd5b84356001600160401b03808211156129ee57600080fd5b6129fa888389016126dc565b95506020870135915080821115612a1057600080fd5b612a1c88838901612750565b94506040870135915080821115612a3257600080fd5b50612a3f87828801612802565b949793965093946060013593505050565b60ff811681146110e057600080fd5b600080600080600060a08688031215612a7757600080fd5b853594506020860135612a8981612a50565b93506040860135612a9981612a50565b94979396509394606081013594506080013592915050565b600080600080600080600080610100898b031215612ace57600080fd5b8835612ad9816126c7565b97506020890135612ae9816126c7565b96506040890135612af9816126c7565b95506060890135612b09816126c7565b94506080890135612b19816126c7565b935060a0890135612b29816126c7565b925060c0890135612b39816126c7565b915060e0890135612b49816126c7565b809150509295985092959890939650565b634e487b7160e01b600052602160045260246000fd5b6020810160088310612b9257634e487b7160e01b600052602160045260246000fd5b91905290565b60008060408385031215612bab57600080fd5b823591506020830135612bbd816126c7565b809150509250929050565b60008060408385031215612bdb57600080fd5b823591506020830135612bbd81612a50565b60008060008060608587031215612c0357600080fd5b843593506020850135612c1581612a50565b925060408501356001600160401b0380821115612c3157600080fd5b818701915087601f830112612c4557600080fd5b813581811115612c5457600080fd5b886020828501011115612c6657600080fd5b95989497505060200194505050565b60008060008060808587031215612c8b57600080fd5b84356001600160401b0380821115612ca257600080fd5b612cae888389016126dc565b95506020870135915080821115612cc457600080fd5b612cd088838901612750565b94506040870135915080821115612ce657600080fd5b612cf288838901612802565b93506060870135915080821115612d0857600080fd5b50612d1587828801612896565b91505092959194509250565b600060208284031215612d3357600080fd5b8135610f49816126c7565b60008060408385031215612d5157600080fd5b8235612d5c816126c7565b946020939093013593505050565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b600181811c90821680612db557607f821691505b60208210811415610f9857634e487b7160e01b600052602260045260246000fd5b600060208284031215612de857600080fd5b8151610f49816126c7565b600060208284031215612e0557600080fd5b81518015158114610f4957600080fd5b6020808252818101527f476f7665726e616e63653a206f6e6c792076616c696461746f72206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600081518084526020808501945080840160005b838110156129a357815187529582019590820190600101612eab565b600081518084526020808501808196508360051b8101915082860160005b85811015612f0f578284038952612efd84835161261f565b98850198935090840190600101612ee5565b5091979650505050505050565b608081526000612f2f608083018761296a565b8281036020840152612f418187612e97565b90508281036040840152612f558186612ec7565b91505082606083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612f9757612f97612f67565b500290565b600082612fb957634e487b7160e01b600052601260045260246000fd5b500490565b84815260ff84166020820152826040820152608060608201526000610c9d608083018461261f565b600080835481600182811c91508083168061300257607f831692505b602080841082141561302257634e487b7160e01b86526022600452602486fd5b818015613036576001811461304757613074565b60ff19861689528489019650613074565b60008a81526020902060005b8681101561306c5781548b820152908501908301613053565b505084890196505b509498975050505050505050565b6000821982111561309557613095612f67565b500190565b600060208083850312156130ad57600080fd5b82516001600160401b038111156130c357600080fd5b8301601f810185136130d457600080fd5b80516130e26126fd826126a4565b81815260059190911b8201830190838101908783111561310157600080fd5b928401925b82841015610d72578351613119816126c7565b82529284019290840190613106565b600060001982141561313c5761313c612f67565b5060010190565b60008282101561315557613155612f67565b500390565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b60006001600160401b038083168185168083038211156131bd576131bd612f67565b01949350505050565b60006101208b8352602060018060a01b038c16818501528160408501526131ef8285018c61296a565b91508382036060850152613203828b612e97565b915083820360808501528189518084528284019150828160051b850101838c0160005b8381101561325457601f1987840301855261324283835161261f565b94860194925090850190600101613226565b505086810360a0880152613268818c612ec7565b94505050505061328360c08401876001600160401b03169052565b6001600160401b03851660e08401528281036101008401526132a5818561261f565b9c9b505050505050505050505050565b805163ffffffff811681146132c957600080fd5b919050565b6000602082840312156132e057600080fd5b610f49826132b5565b80516001600160401b03811681146132c957600080fd5b60008060008060008060008060006101208a8c03121561331f57600080fd5b895161332a816126c7565b60208b015190995061333b81612a50565b60408b0151909850965061335160608b016132b5565b955061335f60808b016132e9565b945061336d60a08b016132e9565b935061337b60c08b016132e9565b925060e08a015161ffff8116811461339257600080fd5b6101008b01519092506bffffffffffffffffffffffff811681146133b557600080fd5b809150509295985092959850929598565b600082516133d88184602087016125ef565b919091019291505056fe476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765a26469706673582212204e2459bc1c2774628ecd7b47e3d758d814f0e3965fcc7070ff883d315b8ba2ec64736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000049", "0x0000000000000000000000000000000000000000000000000000000000000066": "0x4368696c697a20476f7665726e616e6365000000000000000000000000000022", @@ -78,22 +78,23 @@ "balance": "0x0" }, "0000000000000000000000000000000000007003": { - "code": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80636f0591dc116100f9578063c227a41211610097578063e1c7392a11610071578063e1c7392a146103db578063e9880ea7146103e3578063eea9a01b146104bc578063fcd6cb3e146104ce57600080fd5b8063c227a412146103a2578063c8652bd5146103b5578063d98e3ebf146103c857600080fd5b80637b1391a6116100d35780637b1391a6146103545780639dbf97db14610365578063af70fa2c1461037a578063be1997381461038d57600080fd5b80636f0591dc146103025780636f856847146103155780637a37cc591461034357600080fd5b80633e1bbdc911610166578063459463341161014057806345946334146102b65780635e7b72ad146102c7578063606c0c94146102dc5780636cbe6cd8146102ed57600080fd5b80633e1bbdc91461027d57806341d8a0801461029057806342eccb8c146102a357600080fd5b806332cc6f08116101a257806332cc6f081461021d578063346c90a81461023c578063361ab22214610252578063392e53cd1461026757600080fd5b806318f062cd146101c9578063244d8257146101e7578063289b3c0d1461020c575b600080fd5b6101d16104e1565b6040516101de9190611027565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b0390911681526020016101de565b6006546001600160a01b03166101f4565b60665463ffffffff165b60405163ffffffff90911681526020016101de565b606654640100000000900463ffffffff16610227565b6102656102603660046110a5565b61069e565b005b60005460ff1660405190151581526020016101de565b61026561028b366004611154565b6109ce565b61026561029e3660046111fd565b610a8a565b6102656102b136600461121f565b610b1e565b6005546001600160a01b03166101f4565b606654600160a01b900463ffffffff16610227565b6007546001600160a01b03166101f4565b606654600160801b900463ffffffff16610227565b61026561031036600461121f565b610b7a565b606654600160c01b900467ffffffffffffffff165b60405167ffffffffffffffff90911681526020016101de565b6004546001600160a01b03166101f4565b6002546001600160a01b03166101f4565b606654600160401b900463ffffffff16610227565b6102656103883660046111fd565b610bdf565b606654600160601b900463ffffffff16610227565b6102656103b03660046111fd565b610c6d565b6102656103c33660046111fd565b610ceb565b6102656103d63660046111fd565b610d77565b610265610e03565b6104af6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915250604080516101008101825260665463ffffffff8082168352640100000000820481166020840152600160401b8204811693830193909352600160601b810483166060830152600160801b810483166080830152600160a01b810490921660a0820152600160c01b90910467ffffffffffffffff90811660c08301526067541660e082015290565b6040516101de919061123a565b60675467ffffffffffffffff1661032a565b6102656104dc3660046111fd565b610ea9565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061052a5761052a6112c9565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061055b5761055b6112c9565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061058c5761058c6112c9565b6001600160a01b0392831660209182029290920101526005548251911690829060039081106105bd576105bd6112c9565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106105ee576105ee6112c9565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061061f5761061f6112c9565b6001600160a01b039283166020918202929092010152600854825191169082906006908110610650576106506112c9565b6001600160a01b039283166020918202929092010152600954825191169082906007908110610681576106816112c9565b6001600160a01b0390921660209283029190910190910152919050565b60005460ff16156106ca5760405162461bcd60e51b81526004016106c1906112df565b60405180910390fd5b6066805463ffffffff191663ffffffff8a16908117909155604080516000815260208101929092527f1c4cfc6dcf4219ed649285020aedf5d064480d1acdf4b8c75b397abd5910f40c910160405180910390a16066805467ffffffff00000000191664010000000063ffffffff8a1690810291909117909155604080516000815260208101929092527f33c8012b0f51f8c1a1e525ea046da837d0eb4fa7473cd863e0bfb73a4f475a5a910160405180910390a16066805463ffffffff60401b1916600160401b63ffffffff891690810291909117909155604080516000815260208101929092527f5aa72ebd12c45515403eef36583106e321b8707946a6ae621f5f393ee0c9677b910160405180910390a16066805463ffffffff60601b1916600160601b63ffffffff881690810291909117909155604080516000815260208101929092527f67da1e9c07e7b373ed5e18cc8355caf6dfe18ab4472ec575600a2172772c6204910160405180910390a16066805463ffffffff60801b1916600160801b63ffffffff871690810291909117909155604080516000815260208101929092527f0a677ce4509bf46fe9bdf65c86abe71921755a78494111b1caa25df328ffcd1c910160405180910390a16066805463ffffffff60a01b1916600160a01b63ffffffff861690810291909117909155604080516000815260208101929092527fb191e5acbef9e4b8ce0f17af112f8984f92833324657b89fe39768885f81b6ce910160405180910390a1606680546001600160c01b0316600160c01b67ffffffffffffffff851690810291909117909155604080516000815260208101929092527f33eff10c078f159eef9222f66f701fdef91a4662f6c04b6645c47cf4ff97f691910160405180910390a16067805467ffffffffffffffff191667ffffffffffffffff8316908117909155604080516000815260208101929092527fc4c658462806d040fedc3b45521c9977e3384605a6a3703867bc6172c1b39254910160405180910390a150506000805460ff19166001179055505050505050565b60005460ff16156109f15760405162461bcd60e51b81526004016106c1906112df565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610a73610f35565b50506000805460ff19166001179055505050505050565b6006546001600160a01b03163314610ab45760405162461bcd60e51b81526004016106c190611316565b6066805463ffffffff838116600160a01b81810263ffffffff60a01b1985161790945560408051949093049091168084526020840191909152917fb191e5acbef9e4b8ce0f17af112f8984f92833324657b89fe39768885f81b6ce91015b60405180910390a15050565b6067805467ffffffffffffffff83811667ffffffffffffffff1983168117909355604080519190921680825260208201939093527fc4c658462806d040fedc3b45521c9977e3384605a6a3703867bc6172c1b392549101610b12565b6066805467ffffffffffffffff838116600160c01b8181026001600160c01b0385161790945560408051949093049091168084526020840191909152917f33eff10c078f159eef9222f66f701fdef91a4662f6c04b6645c47cf4ff97f6919101610b12565b6006546001600160a01b03163314610c095760405162461bcd60e51b81526004016106c190611316565b6066805463ffffffff83811664010000000081810267ffffffff000000001985161790945560408051949093049091168084526020840191909152917f33c8012b0f51f8c1a1e525ea046da837d0eb4fa7473cd863e0bfb73a4f475a5a9101610b12565b6006546001600160a01b03163314610c975760405162461bcd60e51b81526004016106c190611316565b6066805463ffffffff83811663ffffffff1983168117909355604080519190921680825260208201939093527f1c4cfc6dcf4219ed649285020aedf5d064480d1acdf4b8c75b397abd5910f40c9101610b12565b6006546001600160a01b03163314610d155760405162461bcd60e51b81526004016106c190611316565b6066805463ffffffff838116600160801b81810263ffffffff60801b1985161790945560408051949093049091168084526020840191909152917f0a677ce4509bf46fe9bdf65c86abe71921755a78494111b1caa25df328ffcd1c9101610b12565b6006546001600160a01b03163314610da15760405162461bcd60e51b81526004016106c190611316565b6066805463ffffffff838116600160401b81810263ffffffff60401b1985161790945560408051949093049091168084526020840191909152917f5aa72ebd12c45515403eef36583106e321b8707946a6ae621f5f393ee0c9677b9101610b12565b60005460ff1615610e265760405162461bcd60e51b81526004016106c1906112df565b600280546001600160a01b03199081166110001790915560038054821661100117905560048054821661100217905560058054821661700117905560068054821661700217905560078054821661700317905560088054821661700417905560098054909116617005179055610e9a610f35565b6000805460ff19166001179055565b6006546001600160a01b03163314610ed35760405162461bcd60e51b81526004016106c190611316565b6066805463ffffffff838116600160601b81810263ffffffff60601b1985161790945560408051949093049091168084526020840191909152917f67da1e9c07e7b373ed5e18cc8355caf6dfe18ab4472ec575600a2172772c62049101610b12565b60018054610f429061135c565b15159050610f4c57565b600080306001600160a01b03166001604051610f689190611397565b6000604051808303816000865af19150503d8060008114610fa5576040519150601f19603f3d011682016040523d82523d6000602084013e610faa565b606091505b50915091508115610fb9575050565b805161101e5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016106c1565b80518082602001fd5b6020808252825182820181905260009190848201906040850190845b818110156110685783516001600160a01b031683529284019291840191600101611043565b50909695505050505050565b803563ffffffff8116811461108857600080fd5b919050565b803567ffffffffffffffff8116811461108857600080fd5b600080600080600080600080610100898b0312156110c257600080fd5b6110cb89611074565b97506110d960208a01611074565b96506110e760408a01611074565b95506110f560608a01611074565b945061110360808a01611074565b935061111160a08a01611074565b925061111f60c08a0161108d565b915061112d60e08a0161108d565b90509295985092959890939650565b6001600160a01b038116811461115157600080fd5b50565b600080600080600080600080610100898b03121561117157600080fd5b883561117c8161113c565b9750602089013561118c8161113c565b9650604089013561119c8161113c565b955060608901356111ac8161113c565b945060808901356111bc8161113c565b935060a08901356111cc8161113c565b925060c08901356111dc8161113c565b915060e08901356111ec8161113c565b809150509295985092959890939650565b60006020828403121561120f57600080fd5b61121882611074565b9392505050565b60006020828403121561123157600080fd5b6112188261108d565b60006101008201905063ffffffff8084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525060c08301516112a660c084018267ffffffffffffffff169052565b5060e08301516112c260e084018267ffffffffffffffff169052565b5092915050565b634e487b7160e01b600052603260045260246000fd5b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b60208082526026908201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604082015265726e616e636560d01b606082015260800190565b600181811c9082168061137057607f821691505b6020821081141561139157634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c9150808316806113b357607f831692505b60208084108214156113d357634e487b7160e01b86526022600452602486fd5b8180156113e757600181146113f857611425565b60ff19861689528489019650611425565b60008a81526020902060005b8681101561141d5781548b820152908501908301611404565b505084890196505b50949897505050505050505056fea264697066735822122007200a78870536f1fe62a23c93c720da6f9802cf4616217683b6f4029a72d90664736f6c634300080b0033", + "code": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80636f856847116100f9578063c8652bd511610097578063e1c7392a11610071578063e1c7392a146103bf578063e9880ea7146103c7578063eea9a01b146104f4578063fcd6cb3e146104fc57600080fd5b8063c8652bd514610386578063d98e3ebf14610399578063e1a2e863146103ac57600080fd5b80639dbf97db116100d35780639dbf97db14610336578063af70fa2c1461034b578063be1997381461035e578063c227a4121461037357600080fd5b80636f856847146103025780637a37cc59146103145780637b1391a61461032557600080fd5b806341d8a080116101665780635e7b72ad116101405780635e7b72ad146102b4578063606c0c94146102c9578063612d669e146102da5780636cbe6cd8146102ed57600080fd5b806341d8a0801461027d57806345946334146102905780634b635ac5146102a157600080fd5b806332cc6f08116101a257806332cc6f081461021d578063346c90a81461023c578063392e53cd146102525780633e1bbdc91461026857600080fd5b806318f062cd146101c9578063244d8257146101e7578063289b3c0d1461020c575b600080fd5b6101d161050f565b6040516101de9190610fd1565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b0390911681526020016101de565b6006546001600160a01b03166101f4565b60665463ffffffff165b60405163ffffffff90911681526020016101de565b606654640100000000900463ffffffff16610227565b60005460ff1660405190151581526020016101de565b61027b610276366004611036565b6106cc565b005b61027b61028b3660046110f8565b610791565b6005546001600160a01b03166101f4565b61027b6102af36600461111a565b610825565b606654600160a01b900463ffffffff16610227565b6007546001600160a01b03166101f4565b61027b6102e83660046111a3565b610b0d565b606654600160801b900463ffffffff16610227565b6067545b6040519081526020016101de565b6004546001600160a01b03166101f4565b6002546001600160a01b03166101f4565b606654600160401b900463ffffffff16610227565b61027b6103593660046110f8565b610b4b565b606654600160601b900463ffffffff16610227565b61027b6103813660046110f8565b610bd9565b61027b6103943660046110f8565b610c57565b61027b6103a73660046110f8565b610ce3565b61027b6103ba3660046111a3565b610d6f565b61027b610dad565b6104816040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915250604080516101008101825260665463ffffffff8082168352640100000000820481166020840152600160401b8204811693830193909352600160601b810483166060830152600160801b810483166080830152600160a01b900490911660a082015260675460c082015260685460e082015290565b6040516101de919060006101008201905063ffffffff8084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525060c083015160c083015260e083015160e083015292915050565b606854610306565b61027b61050a3660046110f8565b610e53565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b031691839150600090610558576105586111bc565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610589576105896111bc565b6001600160a01b0392831660209182029290920101526004548251911690829060029081106105ba576105ba6111bc565b6001600160a01b0392831660209182029290920101526005548251911690829060039081106105eb576105eb6111bc565b6001600160a01b03928316602091820292909201015260065482519116908290600490811061061c5761061c6111bc565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061064d5761064d6111bc565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061067e5761067e6111bc565b6001600160a01b0392831660209182029290920101526009548251911690829060079081106106af576106af6111bc565b6001600160a01b0390921660209283029190910190910152919050565b60005460ff16156106f85760405162461bcd60e51b81526004016106ef906111d2565b60405180910390fd5b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a84161790556004805482168984161790556005805482168884161790556006805482168784161790556007805482168684161790556008805482168584161790556009805490911691831691909117905561077a610edf565b50506000805460ff19166001179055505050505050565b6006546001600160a01b031633146107bb5760405162461bcd60e51b81526004016106ef90611209565b6066805463ffffffff838116600160a01b81810263ffffffff60a01b1985161790945560408051949093049091168084526020840191909152917fb191e5acbef9e4b8ce0f17af112f8984f92833324657b89fe39768885f81b6ce91015b60405180910390a15050565b60005460ff16156108485760405162461bcd60e51b81526004016106ef906111d2565b6066805463ffffffff191663ffffffff8a16908117909155604080516000815260208101929092527f1c4cfc6dcf4219ed649285020aedf5d064480d1acdf4b8c75b397abd5910f40c910160405180910390a16066805467ffffffff00000000191664010000000063ffffffff8a1690810291909117909155604080516000815260208101929092527f33c8012b0f51f8c1a1e525ea046da837d0eb4fa7473cd863e0bfb73a4f475a5a910160405180910390a16066805463ffffffff60401b1916600160401b63ffffffff891690810291909117909155604080516000815260208101929092527f5aa72ebd12c45515403eef36583106e321b8707946a6ae621f5f393ee0c9677b910160405180910390a16066805463ffffffff60601b1916600160601b63ffffffff881690810291909117909155604080516000815260208101929092527f67da1e9c07e7b373ed5e18cc8355caf6dfe18ab4472ec575600a2172772c6204910160405180910390a16066805463ffffffff60801b1916600160801b63ffffffff871690810291909117909155604080516000815260208101929092527f0a677ce4509bf46fe9bdf65c86abe71921755a78494111b1caa25df328ffcd1c910160405180910390a16066805463ffffffff60a01b1916600160a01b63ffffffff861690810291909117909155604080516000815260208101929092527fb191e5acbef9e4b8ce0f17af112f8984f92833324657b89fe39768885f81b6ce910160405180910390a160678290556040805160008152602081018490527f207082661d623a88e041ad2d52c2d4ddc719880c70c3ab44aa81accff9bd86ed910160405180910390a160688190556040805160008152602081018390527f973f438cb6bc47d284033b6113687c6087f4fb7a3395b03597578ae1259bf23c910160405180910390a150506000805460ff19166001179055505050505050565b606880549082905560408051828152602081018490527f973f438cb6bc47d284033b6113687c6087f4fb7a3395b03597578ae1259bf23c9101610819565b6006546001600160a01b03163314610b755760405162461bcd60e51b81526004016106ef90611209565b6066805463ffffffff83811664010000000081810267ffffffff000000001985161790945560408051949093049091168084526020840191909152917f33c8012b0f51f8c1a1e525ea046da837d0eb4fa7473cd863e0bfb73a4f475a5a9101610819565b6006546001600160a01b03163314610c035760405162461bcd60e51b81526004016106ef90611209565b6066805463ffffffff83811663ffffffff1983168117909355604080519190921680825260208201939093527f1c4cfc6dcf4219ed649285020aedf5d064480d1acdf4b8c75b397abd5910f40c9101610819565b6006546001600160a01b03163314610c815760405162461bcd60e51b81526004016106ef90611209565b6066805463ffffffff838116600160801b81810263ffffffff60801b1985161790945560408051949093049091168084526020840191909152917f0a677ce4509bf46fe9bdf65c86abe71921755a78494111b1caa25df328ffcd1c9101610819565b6006546001600160a01b03163314610d0d5760405162461bcd60e51b81526004016106ef90611209565b6066805463ffffffff838116600160401b81810263ffffffff60401b1985161790945560408051949093049091168084526020840191909152917f5aa72ebd12c45515403eef36583106e321b8707946a6ae621f5f393ee0c9677b9101610819565b606780549082905560408051828152602081018490527f207082661d623a88e041ad2d52c2d4ddc719880c70c3ab44aa81accff9bd86ed9101610819565b60005460ff1615610dd05760405162461bcd60e51b81526004016106ef906111d2565b600280546001600160a01b03199081166110001790915560038054821661100117905560048054821661100217905560058054821661700117905560068054821661700217905560078054821661700317905560088054821661700417905560098054909116617005179055610e44610edf565b6000805460ff19166001179055565b6006546001600160a01b03163314610e7d5760405162461bcd60e51b81526004016106ef90611209565b6066805463ffffffff838116600160601b81810263ffffffff60601b1985161790945560408051949093049091168084526020840191909152917f67da1e9c07e7b373ed5e18cc8355caf6dfe18ab4472ec575600a2172772c62049101610819565b60018054610eec9061124f565b15159050610ef657565b600080306001600160a01b03166001604051610f12919061128a565b6000604051808303816000865af19150503d8060008114610f4f576040519150601f19603f3d011682016040523d82523d6000602084013e610f54565b606091505b50915091508115610f63575050565b8051610fc85760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016106ef565b80518082602001fd5b6020808252825182820181905260009190848201906040850190845b818110156110125783516001600160a01b031683529284019291840191600101610fed565b50909695505050505050565b6001600160a01b038116811461103357600080fd5b50565b600080600080600080600080610100898b03121561105357600080fd5b883561105e8161101e565b9750602089013561106e8161101e565b9650604089013561107e8161101e565b9550606089013561108e8161101e565b9450608089013561109e8161101e565b935060a08901356110ae8161101e565b925060c08901356110be8161101e565b915060e08901356110ce8161101e565b809150509295985092959890939650565b803563ffffffff811681146110f357600080fd5b919050565b60006020828403121561110a57600080fd5b611113826110df565b9392505050565b600080600080600080600080610100898b03121561113757600080fd5b611140896110df565b975061114e60208a016110df565b965061115c60408a016110df565b955061116a60608a016110df565b945061117860808a016110df565b935061118660a08a016110df565b925060c0890135915060e089013590509295985092959890939650565b6000602082840312156111b557600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b60208082526026908201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604082015265726e616e636560d01b606082015260800190565b600181811c9082168061126357607f821691505b6020821081141561128457634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c9150808316806112a657607f831692505b60208084108214156112c657634e487b7160e01b86526022600452602486fd5b8180156112da57600181146112eb57611318565b60ff19861689528489019650611318565b60008a81526020902060005b868110156113105781548b8201529085019083016112f7565b505084890196505b50949897505050505050505056fea2646970667358221220aec27268530fe20741abe5927c25401de17647b1f30019db3b84eac691871ab064736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000209", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0x361ab22200000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7": "0x0000000100000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8": "0x0000006400000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9": "0x0000000a00000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa": "0x0000006400000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb": "0x0000000100000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfd": "0x0000000100000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfe": "0x0000000100000000000000000000000000000000000000000000000000000000" + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0x4b635ac500000000000000000000000000000000000000000000000000000000", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7": "0x0000001900000000000000000000000000000000000000000000000000000000", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8": "0x0000002800000000000000000000000000000000000000000000000000000000", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9": "0x0000000500000000000000000000000000000000000000000000000000000000", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa": "0x0000000a00000000000000000000000000000000000000000000000000000000", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb": "0x0000000300000000000000000000000000000000000000000000000000000000", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfc": "0x000000020000000000000000000000000000000000000000000000000de0b6b3", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfd": "0xa7640000000000000000000000000000000000000000000000000001bc16d674", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfe": "0xec80000200000000000000000000000000000000000000000000000000000000" }, "balance": "0x0" }, "0000000000000000000000000000000000007004": { - "code": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633e1bbdc91161008c5780637a37cc59116100665780637a37cc591461019b5780637b1391a6146101ac578063a8648464146101bd578063e1c7392a146101ce57600080fd5b80633e1bbdc9146101665780634594633414610179578063606c0c941461018a57600080fd5b806316cbea51146100d457806318f062cd146100e9578063244d825714610107578063289b3c0d1461012c57806338dc8ff31461013d578063392e53cd14610150575b600080fd5b6100e76100e2366004610a82565b6101d6565b005b6100f1610231565b6040516100fe9190610aa6565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b0390911681526020016100fe565b6006546001600160a01b0316610114565b6100e761014b366004610b3c565b6103ee565b60005460ff1660405190151581526020016100fe565b6100e7610174366004610bbf565b61046b565b6005546001600160a01b0316610114565b6007546001600160a01b0316610114565b6004546001600160a01b0316610114565b6002546001600160a01b0316610114565b6066546001600160a01b0316610114565b6100e7610527565b60005460ff16156102025760405162461bcd60e51b81526004016101f990610c68565b60405180910390fd5b606680546001600160a01b0319166001600160a01b03929092169190911790556000805460ff19166001179055565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061027a5761027a610c9f565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106102ab576102ab610c9f565b6001600160a01b0392831660209182029290920101526004548251911690829060029081106102dc576102dc610c9f565b6001600160a01b03928316602091820292909201015260055482519116908290600390811061030d5761030d610c9f565b6001600160a01b03928316602091820292909201015260065482519116908290600490811061033e5761033e610c9f565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061036f5761036f610c9f565b6001600160a01b0392831660209182029290920101526008548251911690829060069081106103a0576103a0610c9f565b6001600160a01b0392831660209182029290920101526009548251911690829060079081106103d1576103d1610c9f565b6001600160a01b0390921660209283029190910190910152919050565b6006546001600160a01b031633146104575760405162461bcd60e51b815260206004820152602660248201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604482015265726e616e636560d01b60648201526084016101f9565b61046485858585856105cd565b5050505050565b60005460ff161561048e5760405162461bcd60e51b81526004016101f990610c68565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610510610906565b50506000805460ff19166001179055505050505050565b60005460ff161561054a5760405162461bcd60e51b81526004016101f990610c68565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556105be610906565b6000805460ff19166001179055565b6105d6856109f8565b6106355760405162461bcd60e51b815260206004820152602a60248201527f52756e74696d65557067726164653a206f6e6c792073797374656d20736d61726044820152691d0818dbdb9d1c9858dd60b21b60648201526084016101f9565b6000636fbc15e960e01b86868660405160240161065493929190610cb5565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925260665491519092506000916001600160a01b0316906106a6908490610cf5565b6000604051808303816000865af19150503d80600081146106e3576040519150601f19603f3d011682016040523d82523d6000602084013e6106e8565b606091505b505090508061074b5760405162461bcd60e51b815260206004820152602960248201527f52756e74696d65557067726164653a206661696c656420746f20696e766f6b656044820152682045564d20686f6f6b60b81b60648201526084016101f9565b6000879050806001600160a01b031663392e53cd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b29190610d30565b61080a57806001600160a01b031663e1c7392a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b505050505b83156108c1576000886001600160a01b0316868660405161082c929190610d52565b6000604051808303816000865af19150503d8060008114610869576040519150601f19603f3d011682016040523d82523d6000602084013e61086e565b606091505b50509050806108bf5760405162461bcd60e51b815260206004820181905260248201527f52756e74696d65557067726164653a206d6967726174696f6e206661696c656460448201526064016101f9565b505b7f294c52758d41df5421795a058ea4837ce9d9714c75091eb30fe6925d1231db4a8888886040516108f493929190610cb5565b60405180910390a15050505050505050565b6001805461091390610d62565b1515905061091d57565b600080306001600160a01b031660016040516109399190610d9d565b6000604051808303816000865af19150503d8060008114610976576040519150601f19603f3d011682016040523d82523d6000602084013e61097b565b606091505b5091509150811561098a575050565b80516109ef5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016101f9565b80518082602001fd5b600080610a03610231565b905060005b8151811015610a6057836001600160a01b0316828281518110610a2d57610a2d610c9f565b60200260200101516001600160a01b03161415610a4e575060019392505050565b80610a5881610e39565b915050610a08565b5060009392505050565b6001600160a01b0381168114610a7f57600080fd5b50565b600060208284031215610a9457600080fd5b8135610a9f81610a6a565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610ae75783516001600160a01b031683529284019291840191600101610ac2565b50909695505050505050565b60008083601f840112610b0557600080fd5b50813567ffffffffffffffff811115610b1d57600080fd5b602083019150836020828501011115610b3557600080fd5b9250929050565b600080600080600060608688031215610b5457600080fd5b8535610b5f81610a6a565b9450602086013567ffffffffffffffff80821115610b7c57600080fd5b610b8889838a01610af3565b90965094506040880135915080821115610ba157600080fd5b50610bae88828901610af3565b969995985093965092949392505050565b600080600080600080600080610100898b031215610bdc57600080fd5b8835610be781610a6a565b97506020890135610bf781610a6a565b96506040890135610c0781610a6a565b95506060890135610c1781610a6a565b94506080890135610c2781610a6a565b935060a0890135610c3781610a6a565b925060c0890135610c4781610a6a565b915060e0890135610c5781610a6a565b809150509295985092959890939650565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000825160005b81811015610d165760208186018101518583015201610cfc565b81811115610d25576000828501525b509190910192915050565b600060208284031215610d4257600080fd5b81518015158114610a9f57600080fd5b8183823760009101908152919050565b600181811c90821680610d7657607f821691505b60208210811415610d9757634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680610db957607f831692505b6020808410821415610dd957634e487b7160e01b86526022600452602486fd5b818015610ded5760018114610dfe57610e2b565b60ff19861689528489019650610e2b565b60008a81526020902060005b86811015610e235781548b820152908501908301610e0a565b505084890196505b509498975050505050505050565b6000600019821415610e5b57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212207ddce1984a86380e6ba477b181bd18298994a7627ca7fbb2350bca0cffd684eb64736f6c634300080b0033", + "code": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633e1bbdc91161008c5780637a37cc59116100665780637a37cc591461019b5780637b1391a6146101ac578063a8648464146101bd578063e1c7392a146101ce57600080fd5b80633e1bbdc9146101665780634594633414610179578063606c0c941461018a57600080fd5b806316cbea51146100d457806318f062cd146100e9578063244d825714610107578063289b3c0d1461012c57806338dc8ff31461013d578063392e53cd14610150575b600080fd5b6100e76100e2366004610a82565b6101d6565b005b6100f1610231565b6040516100fe9190610aa6565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b0390911681526020016100fe565b6006546001600160a01b0316610114565b6100e761014b366004610b3c565b6103ee565b60005460ff1660405190151581526020016100fe565b6100e7610174366004610bbf565b61046b565b6005546001600160a01b0316610114565b6007546001600160a01b0316610114565b6004546001600160a01b0316610114565b6002546001600160a01b0316610114565b6066546001600160a01b0316610114565b6100e7610527565b60005460ff16156102025760405162461bcd60e51b81526004016101f990610c68565b60405180910390fd5b606680546001600160a01b0319166001600160a01b03929092169190911790556000805460ff19166001179055565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061027a5761027a610c9f565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106102ab576102ab610c9f565b6001600160a01b0392831660209182029290920101526004548251911690829060029081106102dc576102dc610c9f565b6001600160a01b03928316602091820292909201015260055482519116908290600390811061030d5761030d610c9f565b6001600160a01b03928316602091820292909201015260065482519116908290600490811061033e5761033e610c9f565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061036f5761036f610c9f565b6001600160a01b0392831660209182029290920101526008548251911690829060069081106103a0576103a0610c9f565b6001600160a01b0392831660209182029290920101526009548251911690829060079081106103d1576103d1610c9f565b6001600160a01b0390921660209283029190910190910152919050565b6006546001600160a01b031633146104575760405162461bcd60e51b815260206004820152602660248201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604482015265726e616e636560d01b60648201526084016101f9565b61046485858585856105cd565b5050505050565b60005460ff161561048e5760405162461bcd60e51b81526004016101f990610c68565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610510610906565b50506000805460ff19166001179055505050505050565b60005460ff161561054a5760405162461bcd60e51b81526004016101f990610c68565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556105be610906565b6000805460ff19166001179055565b6105d6856109f8565b6106355760405162461bcd60e51b815260206004820152602a60248201527f52756e74696d65557067726164653a206f6e6c792073797374656d20736d61726044820152691d0818dbdb9d1c9858dd60b21b60648201526084016101f9565b6000636fbc15e960e01b86868660405160240161065493929190610cb5565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925260665491519092506000916001600160a01b0316906106a6908490610cf5565b6000604051808303816000865af19150503d80600081146106e3576040519150601f19603f3d011682016040523d82523d6000602084013e6106e8565b606091505b505090508061074b5760405162461bcd60e51b815260206004820152602960248201527f52756e74696d65557067726164653a206661696c656420746f20696e766f6b656044820152682045564d20686f6f6b60b81b60648201526084016101f9565b6000879050806001600160a01b031663392e53cd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b29190610d30565b61080a57806001600160a01b031663e1c7392a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b505050505b83156108c1576000886001600160a01b0316868660405161082c929190610d52565b6000604051808303816000865af19150503d8060008114610869576040519150601f19603f3d011682016040523d82523d6000602084013e61086e565b606091505b50509050806108bf5760405162461bcd60e51b815260206004820181905260248201527f52756e74696d65557067726164653a206d6967726174696f6e206661696c656460448201526064016101f9565b505b7f294c52758d41df5421795a058ea4837ce9d9714c75091eb30fe6925d1231db4a8888886040516108f493929190610cb5565b60405180910390a15050505050505050565b6001805461091390610d62565b1515905061091d57565b600080306001600160a01b031660016040516109399190610d9d565b6000604051808303816000865af19150503d8060008114610976576040519150601f19603f3d011682016040523d82523d6000602084013e61097b565b606091505b5091509150811561098a575050565b80516109ef5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016101f9565b80518082602001fd5b600080610a03610231565b905060005b8151811015610a6057836001600160a01b0316828281518110610a2d57610a2d610c9f565b60200260200101516001600160a01b03161415610a4e575060019392505050565b80610a5881610e39565b915050610a08565b5060009392505050565b6001600160a01b0381168114610a7f57600080fd5b50565b600060208284031215610a9457600080fd5b8135610a9f81610a6a565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610ae75783516001600160a01b031683529284019291840191600101610ac2565b50909695505050505050565b60008083601f840112610b0557600080fd5b50813567ffffffffffffffff811115610b1d57600080fd5b602083019150836020828501011115610b3557600080fd5b9250929050565b600080600080600060608688031215610b5457600080fd5b8535610b5f81610a6a565b9450602086013567ffffffffffffffff80821115610b7c57600080fd5b610b8889838a01610af3565b90965094506040880135915080821115610ba157600080fd5b50610bae88828901610af3565b969995985093965092949392505050565b600080600080600080600080610100898b031215610bdc57600080fd5b8835610be781610a6a565b97506020890135610bf781610a6a565b96506040890135610c0781610a6a565b95506060890135610c1781610a6a565b94506080890135610c2781610a6a565b935060a0890135610c3781610a6a565b925060c0890135610c4781610a6a565b915060e0890135610c5781610a6a565b809150509295985092959890939650565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000825160005b81811015610d165760208186018101518583015201610cfc565b81811115610d25576000828501525b509190910192915050565b600060208284031215610d4257600080fd5b81518015158114610a9f57600080fd5b8183823760009101908152919050565b600181811c90821680610d7657607f821691505b60208210811415610d9757634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680610db957607f831692505b6020808410821415610dd957634e487b7160e01b86526022600452602486fd5b818015610ded5760018114610dfe57610e2b565b60ff19861689528489019650610e2b565b60008a81526020902060005b86811015610e235781548b820152908501908301610e0a565b505084890196505b509498975050505050505050565b6000600019821415610e5b57634e487b7160e01b600052601160045260246000fd5b506001019056fea264697066735822122009a90840919eac14b6d8da5455b8841fc6163bf5ed954514a7d9ece022f7fad564736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000049", "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0x16cbea5100000000000000000000000000000000000000000000000000000000", @@ -102,7 +103,7 @@ "balance": "0x0" }, "0000000000000000000000000000000000007005": { - "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80636ac4d975116100b8578063880f40391161007c578063880f4039146102a957806397f735d5146102bc578063a154ce82146102ef578063aad7e36314610302578063e1c7392a1461033e578063f315df861461034657600080fd5b80636ac4d9751461024e57806377fdcede146102615780637a37cc59146102745780637b1391a61461028557806386497f411461029657600080fd5b806339e7c5361161010a57806339e7c536146101c75780633e1bbdc9146101da57806345946334146101ed57806347d23419146101fe57806350c358a414610211578063606c0c941461023d57600080fd5b80630e17790f1461014757806318f062cd1461015c578063244d82571461017a578063289b3c0d1461019f578063392e53cd146101b0575b600080fd5b61015a61015536600461141b565b610359565b005b6101646103c7565b6040516101719190611454565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b039091168152602001610171565b6006546001600160a01b0316610187565b60005460ff165b6040519015158152602001610171565b61015a6101d53660046114a1565b610584565b61015a6101e83660046114c5565b610590565b6005546001600160a01b0316610187565b61015a61020c3660046114a1565b61064c565b6101b761021f3660046114a1565b6001600160a01b031660009081526066602052604090205460ff1690565b6007546001600160a01b0316610187565b61015a61025c366004611584565b61067f565b61015a61026f3660046114a1565b6106f3565b6004546001600160a01b0316610187565b6002546001600160a01b0316610187565b61015a6102a43660046114a1565b610726565b61015a6102b73660046114a1565b610759565b6101b76102ca3660046114a1565b6001600160a01b0316600090815260666020526040902054600160a81b900460ff1690565b61015a6102fd3660046114a1565b61078c565b6103156103103660046114a1565b6107bf565b6040805160ff90941684526001600160a01b039283166020850152911690820152606001610171565b61015a610865565b61015a6103543660046114a1565b61090b565b3341146103b95760405162461bcd60e51b8152602060048201526024808201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920636f696e6044820152636261736560e01b60648201526084015b60405180910390fd5b6103c3828261093e565b5050565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061041057610410611649565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061044157610441611649565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061047257610472611649565b6001600160a01b0392831660209182029290920101526005548251911690829060039081106104a3576104a3611649565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106104d4576104d4611649565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061050557610505611649565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061053657610536611649565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061056757610567611649565b6001600160a01b0390921660209283029190910190910152919050565b61058d81610b61565b50565b60005460ff16156105b35760405162461bcd60e51b81526004016103b09061165f565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610635610c43565b50506000805460ff19166001179055505050505050565b6006546001600160a01b031633146106765760405162461bcd60e51b81526004016103b090611696565b61058d81610d35565b60005460ff16156106a25760405162461bcd60e51b81526004016103b09061165f565b60005b81518110156106e2576106d08282815181106106c3576106c3611649565b6020026020010151610ecd565b806106da816116dc565b9150506106a5565b50506000805460ff19166001179055565b6006546001600160a01b0316331461071d5760405162461bcd60e51b81526004016103b090611696565b61058d81610fe0565b6006546001600160a01b031633146107505760405162461bcd60e51b81526004016103b090611696565b61058d816110e4565b6006546001600160a01b031633146107835760405162461bcd60e51b81526004016103b090611696565b61058d81610ecd565b6006546001600160a01b031633146107b65760405162461bcd60e51b81526004016103b090611696565b61058d816111d7565b6001600160a01b0381166000908152606760205260408082208151606081019092528054839283928392829060ff1660028111156107ff576107ff611705565b600281111561081057610810611705565b815281546001600160a01b03610100909104811660208301526001909201549091166040909101528051909150600281111561084e5761084e611705565b602082015160409092015190969195509350915050565b60005460ff16156108885760405162461bcd60e51b81526004016103b09061165f565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556108fc610c43565b6000805460ff19166001179055565b6006546001600160a01b031633146109355760405162461bcd60e51b81526004016103b090611696565b61058d8161136f565b6001600160a01b03821660009081526066602052604090205460ff166109b05760405162461bcd60e51b815260206004820152602160248201527f4465706c6f7965723a206465706c6f796572206973206e6f7420616c6c6f77656044820152601960fa1b60648201526084016103b0565b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff1660028111156109ea576109ea611705565b60028111156109fb576109fb611705565b815281546001600160a01b0361010090910481166020808401919091526001909301548116604090920191909152908201519192501615610a8d5760405162461bcd60e51b815260206004820152602660248201527f4465706c6f7965723a20636f6e7472616374206973206465706c6f79656420616044820152656c726561647960d01b60648201526084016103b0565b60018082526001600160a01b0383811660208085018290529186166040808601919091526000918252606790925220825181548493839160ff191690836002811115610adb57610adb611705565b02179055506020828101518254610100600160a81b0319166101006001600160a01b0392831602178355604093840151600190930180546001600160a01b0319169382169390931790925591518482168152908516917f33c981baba081f8fd2c52ac6ad1ea95b6814b4376640f55689051f6584729688910160405180910390a2505050565b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff166002811115610b9b57610b9b611705565b6002811115610bac57610bac611705565b815281546001600160a01b03610100909104811660208301526001909201549091166040909101529050600281516002811115610beb57610beb611705565b14156103c35760405162461bcd60e51b815260206004820152602160248201527f4465706c6f7965723a20636f6e7472616374206973206e6f7420656e61626c656044820152601960fa1b60648201526084016103b0565b60018054610c509061171b565b15159050610c5a57565b600080306001600160a01b03166001604051610c769190611756565b6000604051808303816000865af19150503d8060008114610cb3576040519150601f19603f3d011682016040523d82523d6000602084013e610cb8565b606091505b50915091508115610cc7575050565b8051610d2c5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016103b0565b80518082602001fd5b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff166002811115610d6f57610d6f611705565b6002811115610d8057610d80611705565b815281546001600160a01b03610100909104811660208301526001909201549091166040909101529050600281516002811115610dbf57610dbf611705565b14610e175760405162461bcd60e51b815260206004820152602260248201527f4465706c6f7965723a20636f6e747261637420616c726561647920656e61626c604482015261195960f21b60648201526084016103b0565b60018082526001600160a01b0383166000908152606760205260409020825181548493839160ff191690836002811115610e5357610e53611705565b021790555060208201518154610100600160a81b0319166101006001600160a01b0392831602178255604092830151600190920180546001600160a01b031916928216929092179091559051908316907fae81c15a680e6640ba872ca44f364ad67c60a04089ad9fa100f7a3ce94da9f6890600090a25050565b6001600160a01b03811660009081526066602052604090205460ff1615610f365760405162461bcd60e51b815260206004820181905260248201527f4465706c6f7965723a206465706c6f79657220616c726561647920657869737460448201526064016103b0565b60408051606081018252600181526001600160a01b0383811660208084018281526000858701818152848252606690935286812095518654925193516001600160a81b0319909316901515610100600160a81b0319161761010093909516929092029390931760ff60a81b1916600160a81b9315159390930292909217909255915190917f861a21548a3ee34d896ccac3668a9d65030aaf2cb7367a2ed13608014016a03291a250565b6001600160a01b03811660009081526066602052604090205460ff166110185760405162461bcd60e51b81526004016103b0906117f2565b6001600160a01b038116600090815260666020526040902054600160a81b900460ff16156110925760405162461bcd60e51b815260206004820152602160248201527f4465706c6f7965723a206465706c6f79657220616c72656164792062616e6e656044820152601960fa1b60648201526084016103b0565b6001600160a01b038116600081815260666020526040808220805460ff60a81b1916600160a81b179055517f9cf4d5b60708c113f822fd9addfd8d6d6280c3f539f5edf3ab97b528dedfa80a9190a250565b6001600160a01b03811660009081526066602052604090205460ff1661111c5760405162461bcd60e51b81526004016103b0906117f2565b6001600160a01b038116600090815260666020526040902054600160a81b900460ff1661118b5760405162461bcd60e51b815260206004820181905260248201527f4465706c6f7965723a206465706c6f796572206973206e6f742062616e6e656460448201526064016103b0565b6001600160a01b038116600081815260666020526040808220805460ff60a81b19169055517f59c71bff57754566be21262a328a9c5c20b85a1be305ff7e01378049d02493e19190a250565b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff16600281111561121157611211611705565b600281111561122257611222611705565b815281546001600160a01b0361010090910481166020830152600192830154166040909101529091508151600281111561125e5761125e611705565b146112b75760405162461bcd60e51b815260206004820152602360248201527f4465706c6f7965723a20636f6e747261637420616c72656164792064697361626044820152621b195960ea1b60648201526084016103b0565b60028082526001600160a01b0383166000908152606760205260409020825181548493839160ff19169060019084908111156112f5576112f5611705565b021790555060208201518154610100600160a81b0319166101006001600160a01b0392831602178255604092830151600190920180546001600160a01b031916928216929092179091559051908316907f793bc6423dd0257d64f9d47db72fd4b2162f4541aa41740ba1c5fb5e2cd41bcd90600090a25050565b6001600160a01b03811660009081526066602052604090205460ff166113a75760405162461bcd60e51b81526004016103b0906117f2565b6001600160a01b03811660008181526066602052604080822080546001600160b01b0319169055517ffdb22628e87f888d060acc53d048a6a8400a5024f81f9dcb0606e723f238864a9190a250565b6001600160a01b038116811461058d57600080fd5b8035611416816113f6565b919050565b6000806040838503121561142e57600080fd5b8235611439816113f6565b91506020830135611449816113f6565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156114955783516001600160a01b031683529284019291840191600101611470565b50909695505050505050565b6000602082840312156114b357600080fd5b81356114be816113f6565b9392505050565b600080600080600080600080610100898b0312156114e257600080fd5b88356114ed816113f6565b975060208901356114fd816113f6565b9650604089013561150d816113f6565b9550606089013561151d816113f6565b9450608089013561152d816113f6565b935060a089013561153d816113f6565b925060c089013561154d816113f6565b915060e089013561155d816113f6565b809150509295985092959890939650565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561159757600080fd5b823567ffffffffffffffff808211156115af57600080fd5b818501915085601f8301126115c357600080fd5b8135818111156115d5576115d561156e565b8060051b604051601f19603f830116810181811085821117156115fa576115fa61156e565b60405291825284820192508381018501918883111561161857600080fd5b938501935b8285101561163d5761162e8561140b565b8452938501939285019261161d565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b60208082526026908201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604082015265726e616e636560d01b606082015260800190565b60006000198214156116fe57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b600181811c9082168061172f57607f821691505b6020821081141561175057634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168061177257607f831692505b602080841082141561179257634e487b7160e01b86526022600452602486fd5b8180156117a657600181146117b7576117e4565b60ff198616895284890196506117e4565b60008a81526020902060005b868110156117dc5781548b8201529085019083016117c3565b505084890196505b509498975050505050505050565b6020808252818101527f4465706c6f7965723a206465706c6f79657220646f65736e277420657869737460408201526060019056fea264697066735822122053b2d85a6b29ef021f226461b7d4f72eef3b38b1593610d5c21a899c29da67db64736f6c634300080b0033", + "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80636ac4d975116100b8578063880f40391161007c578063880f4039146102a957806397f735d5146102bc578063a154ce82146102ef578063aad7e36314610302578063e1c7392a1461033e578063f315df861461034657600080fd5b80636ac4d9751461024e57806377fdcede146102615780637a37cc59146102745780637b1391a61461028557806386497f411461029657600080fd5b806339e7c5361161010a57806339e7c536146101c75780633e1bbdc9146101da57806345946334146101ed57806347d23419146101fe57806350c358a414610211578063606c0c941461023d57600080fd5b80630e17790f1461014757806318f062cd1461015c578063244d82571461017a578063289b3c0d1461019f578063392e53cd146101b0575b600080fd5b61015a61015536600461141b565b610359565b005b6101646103c7565b6040516101719190611454565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b039091168152602001610171565b6006546001600160a01b0316610187565b60005460ff165b6040519015158152602001610171565b61015a6101d53660046114a1565b610584565b61015a6101e83660046114c5565b610590565b6005546001600160a01b0316610187565b61015a61020c3660046114a1565b61064c565b6101b761021f3660046114a1565b6001600160a01b031660009081526066602052604090205460ff1690565b6007546001600160a01b0316610187565b61015a61025c366004611584565b61067f565b61015a61026f3660046114a1565b6106f3565b6004546001600160a01b0316610187565b6002546001600160a01b0316610187565b61015a6102a43660046114a1565b610726565b61015a6102b73660046114a1565b610759565b6101b76102ca3660046114a1565b6001600160a01b0316600090815260666020526040902054600160a81b900460ff1690565b61015a6102fd3660046114a1565b61078c565b6103156103103660046114a1565b6107bf565b6040805160ff90941684526001600160a01b039283166020850152911690820152606001610171565b61015a610865565b61015a6103543660046114a1565b61090b565b3341146103b95760405162461bcd60e51b8152602060048201526024808201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920636f696e6044820152636261736560e01b60648201526084015b60405180910390fd5b6103c3828261093e565b5050565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061041057610410611649565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061044157610441611649565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061047257610472611649565b6001600160a01b0392831660209182029290920101526005548251911690829060039081106104a3576104a3611649565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106104d4576104d4611649565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061050557610505611649565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061053657610536611649565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061056757610567611649565b6001600160a01b0390921660209283029190910190910152919050565b61058d81610b61565b50565b60005460ff16156105b35760405162461bcd60e51b81526004016103b09061165f565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610635610c43565b50506000805460ff19166001179055505050505050565b6006546001600160a01b031633146106765760405162461bcd60e51b81526004016103b090611696565b61058d81610d35565b60005460ff16156106a25760405162461bcd60e51b81526004016103b09061165f565b60005b81518110156106e2576106d08282815181106106c3576106c3611649565b6020026020010151610ecd565b806106da816116dc565b9150506106a5565b50506000805460ff19166001179055565b6006546001600160a01b0316331461071d5760405162461bcd60e51b81526004016103b090611696565b61058d81610fe0565b6006546001600160a01b031633146107505760405162461bcd60e51b81526004016103b090611696565b61058d816110e4565b6006546001600160a01b031633146107835760405162461bcd60e51b81526004016103b090611696565b61058d81610ecd565b6006546001600160a01b031633146107b65760405162461bcd60e51b81526004016103b090611696565b61058d816111d7565b6001600160a01b0381166000908152606760205260408082208151606081019092528054839283928392829060ff1660028111156107ff576107ff611705565b600281111561081057610810611705565b815281546001600160a01b03610100909104811660208301526001909201549091166040909101528051909150600281111561084e5761084e611705565b602082015160409092015190969195509350915050565b60005460ff16156108885760405162461bcd60e51b81526004016103b09061165f565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556108fc610c43565b6000805460ff19166001179055565b6006546001600160a01b031633146109355760405162461bcd60e51b81526004016103b090611696565b61058d8161136f565b6001600160a01b03821660009081526066602052604090205460ff166109b05760405162461bcd60e51b815260206004820152602160248201527f4465706c6f7965723a206465706c6f796572206973206e6f7420616c6c6f77656044820152601960fa1b60648201526084016103b0565b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff1660028111156109ea576109ea611705565b60028111156109fb576109fb611705565b815281546001600160a01b0361010090910481166020808401919091526001909301548116604090920191909152908201519192501615610a8d5760405162461bcd60e51b815260206004820152602660248201527f4465706c6f7965723a20636f6e7472616374206973206465706c6f79656420616044820152656c726561647960d01b60648201526084016103b0565b60018082526001600160a01b0383811660208085018290529186166040808601919091526000918252606790925220825181548493839160ff191690836002811115610adb57610adb611705565b02179055506020828101518254610100600160a81b0319166101006001600160a01b0392831602178355604093840151600190930180546001600160a01b0319169382169390931790925591518482168152908516917f33c981baba081f8fd2c52ac6ad1ea95b6814b4376640f55689051f6584729688910160405180910390a2505050565b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff166002811115610b9b57610b9b611705565b6002811115610bac57610bac611705565b815281546001600160a01b03610100909104811660208301526001909201549091166040909101529050600281516002811115610beb57610beb611705565b14156103c35760405162461bcd60e51b815260206004820152602160248201527f4465706c6f7965723a20636f6e7472616374206973206e6f7420656e61626c656044820152601960fa1b60648201526084016103b0565b60018054610c509061171b565b15159050610c5a57565b600080306001600160a01b03166001604051610c769190611756565b6000604051808303816000865af19150503d8060008114610cb3576040519150601f19603f3d011682016040523d82523d6000602084013e610cb8565b606091505b50915091508115610cc7575050565b8051610d2c5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016103b0565b80518082602001fd5b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff166002811115610d6f57610d6f611705565b6002811115610d8057610d80611705565b815281546001600160a01b03610100909104811660208301526001909201549091166040909101529050600281516002811115610dbf57610dbf611705565b14610e175760405162461bcd60e51b815260206004820152602260248201527f4465706c6f7965723a20636f6e747261637420616c726561647920656e61626c604482015261195960f21b60648201526084016103b0565b60018082526001600160a01b0383166000908152606760205260409020825181548493839160ff191690836002811115610e5357610e53611705565b021790555060208201518154610100600160a81b0319166101006001600160a01b0392831602178255604092830151600190920180546001600160a01b031916928216929092179091559051908316907fae81c15a680e6640ba872ca44f364ad67c60a04089ad9fa100f7a3ce94da9f6890600090a25050565b6001600160a01b03811660009081526066602052604090205460ff1615610f365760405162461bcd60e51b815260206004820181905260248201527f4465706c6f7965723a206465706c6f79657220616c726561647920657869737460448201526064016103b0565b60408051606081018252600181526001600160a01b0383811660208084018281526000858701818152848252606690935286812095518654925193516001600160a81b0319909316901515610100600160a81b0319161761010093909516929092029390931760ff60a81b1916600160a81b9315159390930292909217909255915190917f861a21548a3ee34d896ccac3668a9d65030aaf2cb7367a2ed13608014016a03291a250565b6001600160a01b03811660009081526066602052604090205460ff166110185760405162461bcd60e51b81526004016103b0906117f2565b6001600160a01b038116600090815260666020526040902054600160a81b900460ff16156110925760405162461bcd60e51b815260206004820152602160248201527f4465706c6f7965723a206465706c6f79657220616c72656164792062616e6e656044820152601960fa1b60648201526084016103b0565b6001600160a01b038116600081815260666020526040808220805460ff60a81b1916600160a81b179055517f9cf4d5b60708c113f822fd9addfd8d6d6280c3f539f5edf3ab97b528dedfa80a9190a250565b6001600160a01b03811660009081526066602052604090205460ff1661111c5760405162461bcd60e51b81526004016103b0906117f2565b6001600160a01b038116600090815260666020526040902054600160a81b900460ff1661118b5760405162461bcd60e51b815260206004820181905260248201527f4465706c6f7965723a206465706c6f796572206973206e6f742062616e6e656460448201526064016103b0565b6001600160a01b038116600081815260666020526040808220805460ff60a81b19169055517f59c71bff57754566be21262a328a9c5c20b85a1be305ff7e01378049d02493e19190a250565b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff16600281111561121157611211611705565b600281111561122257611222611705565b815281546001600160a01b0361010090910481166020830152600192830154166040909101529091508151600281111561125e5761125e611705565b146112b75760405162461bcd60e51b815260206004820152602360248201527f4465706c6f7965723a20636f6e747261637420616c72656164792064697361626044820152621b195960ea1b60648201526084016103b0565b60028082526001600160a01b0383166000908152606760205260409020825181548493839160ff19169060019084908111156112f5576112f5611705565b021790555060208201518154610100600160a81b0319166101006001600160a01b0392831602178255604092830151600190920180546001600160a01b031916928216929092179091559051908316907f793bc6423dd0257d64f9d47db72fd4b2162f4541aa41740ba1c5fb5e2cd41bcd90600090a25050565b6001600160a01b03811660009081526066602052604090205460ff166113a75760405162461bcd60e51b81526004016103b0906117f2565b6001600160a01b03811660008181526066602052604080822080546001600160b01b0319169055517ffdb22628e87f888d060acc53d048a6a8400a5024f81f9dcb0606e723f238864a9190a250565b6001600160a01b038116811461058d57600080fd5b8035611416816113f6565b919050565b6000806040838503121561142e57600080fd5b8235611439816113f6565b91506020830135611449816113f6565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156114955783516001600160a01b031683529284019291840191600101611470565b50909695505050505050565b6000602082840312156114b357600080fd5b81356114be816113f6565b9392505050565b600080600080600080600080610100898b0312156114e257600080fd5b88356114ed816113f6565b975060208901356114fd816113f6565b9650604089013561150d816113f6565b9550606089013561151d816113f6565b9450608089013561152d816113f6565b935060a089013561153d816113f6565b925060c089013561154d816113f6565b915060e089013561155d816113f6565b809150509295985092959890939650565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561159757600080fd5b823567ffffffffffffffff808211156115af57600080fd5b818501915085601f8301126115c357600080fd5b8135818111156115d5576115d561156e565b8060051b604051601f19603f830116810181811085821117156115fa576115fa61156e565b60405291825284820192508381018501918883111561161857600080fd5b938501935b8285101561163d5761162e8561140b565b8452938501939285019261161d565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b60208082526026908201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604082015265726e616e636560d01b606082015260800190565b60006000198214156116fe57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b600181811c9082168061172f57607f821691505b6020821081141561175057634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168061177257607f831692505b602080841082141561179257634e487b7160e01b86526022600452602486fd5b8180156117a657600181146117b7576117e4565b60ff198616895284890196506117e4565b60008a81526020902060005b868110156117dc5781548b8201529085019083016117c3565b505084890196505b509498975050505050505050565b6020808252818101527f4465706c6f7965723a206465706c6f79657220646f65736e277420657869737460408201526060019056fea26469706673582212207dce1b1e05f1c2aecbf67c7332098568c25fe40567f0fcf9603a2982c865aba064736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000000000000000000c9", "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0x6ac4d97500000000000000000000000000000000000000000000000000000000", diff --git a/test/helper.js b/test/helper.js index f1fc8c9..620f4f5 100644 --- a/test/helper.js +++ b/test/helper.js @@ -23,8 +23,8 @@ const DEFAULT_MOCK_PARAMS = { felonyThreshold: '150', validatorJailEpochLength: '7', undelegatePeriod: '0', - minValidatorStakeAmount: '1', - minStakingAmount: '1', + minValidatorStakeAmount: '1000000000000000000', + minStakingAmount: '1000000000000000000', genesisValidators: [], genesisDeployers: [], runtimeUpgradeEvmHook: '0x0000000000000000000000000000000000000000', @@ -73,12 +73,15 @@ const newContractUsingTypes = async (owner, params, types = {}) => { runtimeUpgradeEvmHook, } = Object.assign({}, DEFAULT_MOCK_PARAMS, params) // factory contracts - const staking = await Staking.new(createConstructorArgs(['address[]', 'uint256[]', 'uint16'], [genesisValidators, genesisValidators.map(() => '0'), '0'])); + const staking = await Staking.new(createConstructorArgs( + ['address[]', 'uint256[]', 'uint16'], + [genesisValidators, genesisValidators.map(() => '0'), '0']) + ); const slashingIndicator = await SlashingIndicator.new(createConstructorArgs([], [])); const systemReward = await SystemReward.new(createConstructorArgs(['address'], [systemTreasury])); const governance = await Governance.new(createConstructorArgs(['uint256'], ['1'])); const chainConfig = await ChainConfig.new(createConstructorArgs( - ["uint32", "uint32", "uint32", "uint32", "uint32", "uint32", "uint64", "uint64"], + ["uint32", "uint32", "uint32", "uint32", "uint32", "uint32", "uint256", "uint256"], [activeValidatorsLength, epochBlockInterval, misdemeanorThreshold, felonyThreshold, validatorJailEpochLength, undelegatePeriod, minValidatorStakeAmount, minStakingAmount]) ); const stakingPool = await StakingPool.new(createConstructorArgs([], [])); diff --git a/test/staking-pool.js b/test/staking-pool.js index 14faf71..81154e9 100644 --- a/test/staking-pool.js +++ b/test/staking-pool.js @@ -42,7 +42,7 @@ contract("StakingPool", async (accounts) => { await waitForNextEpoch(parlia); console.log(`Validator Pool: ${JSON.stringify(await stakingPool.getValidatorPool(validator1), null, 2)}`) console.log(`Ratio: ${(await stakingPool.getRatio(validator1)).toString()}`) - assert.equal((await stakingPool.getStakedAmount(validator1, staker1)).toString(), '50999999999999999950'); + assert.equal((await stakingPool.getStakedAmount(validator1, staker1)).toString(), '51009999999999999964'); let res = await stakingPool.unstake(validator1, '50000000000000000000', {from: staker1}); assert.equal(res.logs[0].args.validator, validator1) assert.equal(res.logs[0].args.staker, staker1) @@ -54,7 +54,7 @@ contract("StakingPool", async (accounts) => { assert.equal(res.logs[0].args.amount.toString(), '50000000000000000000') console.log(`Validator Pool: ${JSON.stringify(await stakingPool.getValidatorPool(validator1), null, 2)}`) console.log(`Ratio: ${(await stakingPool.getRatio(validator1)).toString()}`) - // rest can't be claimed due to rounding problem - assert.equal((await stakingPool.getStakedAmount(validator1, staker1)).toString(), '1000000000000000000'); + // rest can't be claimed due to rounding problem (now can, because we have increased the precision) + assert.equal((await stakingPool.getStakedAmount(validator1, staker1)).toString(), '1009999999999999999'); }) }); diff --git a/test/staking.js b/test/staking.js index cf97b56..484818d 100644 --- a/test/staking.js +++ b/test/staking.js @@ -312,20 +312,27 @@ contract("Staking", async (accounts) => { assert.equal(validatorFee.toString(), '0') }); it("incorrect staking amounts", async () => { - const {parlia} = await newMockContract(owner) + const {parlia} = await newMockContract(owner, { + minValidatorStakeAmount: '0', + minStakingAmount: '0', + }) await parlia.addValidator(validator1); + await parlia.delegate(validator1, { + from: staker1, + value: '10000000000' + }) // 0.00000001 await expectError(parlia.delegate(validator1, { from: staker1, - value: '100000000000000000' - }), 'Staking: amount is too low') // 0.1 + value: '1000000000' + }), 'Staking: amount is too low') // 0.000000001 await expectError(parlia.delegate(validator1, { from: staker1, - value: '00000000000000000' + value: '0' }), 'Staking: amount is too low') // 0 await expectError(parlia.delegate(validator1, { from: staker1, - value: '1010000000000000000' - }), 'Staking: amount have a remainder') // 1.01 + value: '1000000001000000000' + }), 'Staking: amount have a remainder') // 1.000000001 }); it("put validator in jail after N misses", async () => { const {parlia} = await newMockContract(owner, { diff --git a/testnet.json b/testnet.json index bf122ea..8cb67aa 100644 --- a/testnet.json +++ b/testnet.json @@ -1,6 +1,6 @@ { "config": { - "chainId": 17242, + "chainId": 88880, "homesteadBlock": 0, "eip150Block": 0, "eip150Hash": "0x0000000000000000000000000000000000000000000000000000000000000000", @@ -18,7 +18,7 @@ "brunoBlock": 0, "parlia": { "period": 3, - "epoch": 28800 + "epoch": 1200 } }, "nonce": "0x0", @@ -30,7 +30,7 @@ "coinbase": "0x0000000000000000000000000000000000000000", "alloc": { "0000000000000000000000000000000000001000": { - "code": "0x60806040526004361061023a5760003560e01c806361cadbf41161012e578063c15f28c4116100ab578063e1c7392a1161006f578063e1c7392a14610739578063f340fa011461074e578063facd743b14610761578063fe38ebef14610781578063ff4794fc146107a157600080fd5b8063c15f28c41461067c578063c2fd58fc1461069c578063c6fb9065146106bc578063c96be4cb146106dc578063d951e186146106fc57600080fd5b8063a310624f116100f2578063a310624f146105f2578063adf2a79c14610612578063aea0e78b14610632578063b46e552014610647578063b7ab4db51461066757600080fd5b806361cadbf41461055657806373a3dda61461056957806376671808146105895780637a37cc59146105b65780637b1391a6146105d457600080fd5b8063426594b1116101bc5780634d238c8e116101805780634d238c8e146104d25780634d99dd16146104f257806352b7bea2146105055780635c19a95c14610525578063606c0c941461053857600080fd5b8063426594b1146103b957806342ad55ac146103d9578063457179fd146103f9578063459463341461042757806348124d261461044557600080fd5b8063289b3c0d11610203578063289b3c0d146102fe57806330108c221461031c578063392e53cd146103555780633e1bbdc91461037957806340a141ff1461039957600080fd5b806252c9e11461023f57806314f8649f1461026157806318f062cd146102815780631fe97684146102ac578063244d8257146102cc575b600080fd5b34801561024b57600080fd5b5061025f61025a36600461564c565b6107c1565b005b34801561026d57600080fd5b5061025f61027c36600461569c565b610a36565b34801561028d57600080fd5b50610296610d00565b6040516102a391906156d1565b60405180910390f35b3480156102b857600080fd5b5061025f6102c736600461571e565b610ebd565b3480156102d857600080fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016102a3565b34801561030a57600080fd5b506006546001600160a01b03166102e6565b34801561032857600080fd5b506102e661033736600461571e565b6001600160a01b039081166000908152606760205260409020541690565b34801561036157600080fd5b5060005460ff165b60405190151581526020016102a3565b34801561038557600080fd5b5061025f61039436600461573b565b610ef3565b3480156103a557600080fd5b5061025f6103b436600461571e565b610faf565b3480156103c557600080fd5b5061025f6103d436600461571e565b610fe2565b3480156103e557600080fd5b506103696103f436600461571e565b61104f565b34801561040557600080fd5b5061041961041436600461571e565b611108565b6040519081526020016102a3565b34801561043357600080fd5b506005546001600160a01b03166102e6565b34801561045157600080fd5b506104656104603660046157f9565b6111f2565b604080516001600160a01b03909a168a5260ff90981660208a01529688019590955263ffffffff90931660608701526001600160401b039182166080870152811660a08601521660c084015261ffff1660e08301526001600160601b0316610100820152610120016102a3565b3480156104de57600080fd5b5061025f6104ed36600461571e565b61134e565b61025f610500366004615827565b61138f565b34801561051157600080fd5b5061041961052036600461564c565b61139a565b61025f61053336600461571e565b6113b7565b34801561054457600080fd5b506007546001600160a01b03166102e6565b61025f61056436600461569c565b6113c2565b34801561057557600080fd5b5061025f61058436600461571e565b6114fe565b34801561059557600080fd5b5061059e6117a8565b6040516001600160401b0390911681526020016102a3565b3480156105c257600080fd5b506004546001600160a01b03166102e6565b3480156105e057600080fd5b506002546001600160a01b03166102e6565b3480156105fe57600080fd5b5061046561060d36600461571e565b6117b7565b34801561061e57600080fd5b5061025f61062d3660046157f9565b61197b565b34801561063e57600080fd5b5061059e611a33565b34801561065357600080fd5b5061025f61066236600461571e565b611a3d565b34801561067357600080fd5b50610296611a70565b34801561068857600080fd5b5061025f610697366004615897565b611a7a565b3480156106a857600080fd5b506104196106b736600461564c565b611b98565b3480156106c857600080fd5b506104196106d736600461571e565b611ba7565b3480156106e857600080fd5b5061025f6106f736600461571e565b611c85565b34801561070857600080fd5b5061071c61071736600461564c565b611cff565b604080519283526001600160401b039091166020830152016102a3565b34801561074557600080fd5b5061025f611eb6565b61025f61075c36600461571e565b611f5c565b34801561076d57600080fd5b5061036961077c36600461571e565b612021565b34801561078d57600080fd5b5061025f61079c3660046157f9565b612063565b3480156107ad57600080fd5b5061025f6107bc36600461571e565b6120eb565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561081e5761081e615917565b600381111561082f5761082f615917565b815260018201546001600160401b03600160a81b90910481166020808401919091526002909301548082166040840152600160401b9004166060909101528101519091506001600160a01b031633146108a35760405162461bcd60e51b815260040161089a9061592d565b60405180910390fd5b602081810180516001600160a01b0390811660009081526067808552604080832080546001600160a01b03199081169091558885168087528452918652808320805483168a8616908117909155835260669095529084902085518154831690841617815592516001840180549283169190931690811783559385015185949092916001600160a81b03191617600160a01b83600381111561094657610946615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b929091169190910217905560006109c0826109bb61217f565b612194565b905081600001516001600160a01b03167fc00107e0d011ac7c8e4dfa18e3dd3623ff151f8bfcc3821cd39bc114bd6504d9836020015184604001516003811115610a0c57610a0c615917565b8454604051610a28939291600160c01b900461ffff1690615964565b60405180910390a250505050565b610bb861ffff82161115610a8c5760405162461bcd60e51b815260206004820152601c60248201527f5374616b696e673a2062616420636f6d6d697373696f6e207261746500000000604482015260640161089a565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff166003811115610ae957610ae9615917565b6003811115610afa57610afa615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050600081604001516003811115610b5057610b50615917565b1415610b6e5760405162461bcd60e51b815260040161089a9061598c565b60208101516001600160a01b03163314610b9a5760405162461bcd60e51b815260040161089a9061592d565b6000610ba8826109bb61217f565b805461ffff8516600160c01b0261ffff60c01b199091161781556001600160a01b03808616600090815260666020908152604091829020865181549085166001600160a01b03199182161782559187015160018201805491909516928116831785559287015194955086949093909290916001600160a81b031990911617600160a01b836003811115610c3d57610c3d615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790558151602083015160408401516001600160a01b03909216917fc00107e0d011ac7c8e4dfa18e3dd3623ff151f8bfcc3821cd39bc114bd6504d991906003811115610cf057610cf0615917565b86604051610a2893929190615964565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b031691839150600090610d4957610d496159d9565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610d7a57610d7a6159d9565b6001600160a01b039283166020918202929092010152600454825191169082906002908110610dab57610dab6159d9565b6001600160a01b039283166020918202929092010152600554825191169082906003908110610ddc57610ddc6159d9565b6001600160a01b039283166020918202929092010152600654825191169082906004908110610e0d57610e0d6159d9565b6001600160a01b039283166020918202929092010152600754825191169082906005908110610e3e57610e3e6159d9565b6001600160a01b039283166020918202929092010152600854825191169082906006908110610e6f57610e6f6159d9565b6001600160a01b039283166020918202929092010152600954825191169082906007908110610ea057610ea06159d9565b6001600160a01b0390921660209283029190910190910152919050565b6006546001600160a01b03163314610ee75760405162461bcd60e51b815260040161089a906159ef565b610ef0816122b4565b50565b60005460ff1615610f165760405162461bcd60e51b815260040161089a90615a35565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610f986123fa565b50506000805460ff19166001179055505050505050565b6006546001600160a01b03163314610fd95760405162461bcd60e51b815260040161089a906159ef565b610ef0816124ec565b6001600160a01b0381166000908152606660205260408120906001820154600160a01b900460ff16600381111561101b5761101b615917565b14156110395760405162461bcd60e51b815260040161089a9061598c565b61104b823361104661266b565b6126f4565b5050565b600060016001600160a01b038316600090815260666020526040902060010154600160a01b900460ff16600381111561108a5761108a615917565b1461109757506000919050565b60006110a1612ba4565b905060005b81518110156110fe57836001600160a01b03168282815181106110cb576110cb6159d9565b60200260200101516001600160a01b031614156110ec575060019392505050565b806110f681615a82565b9150506110a6565b5060009392505050565b6001600160a01b038181166000908152606660209081526040808320815160c0810183528154861681526001820154958616938101939093529293849391830190600160a01b900460ff16600381111561116457611164615917565b600381111561117557611175615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b900490911660609091015290506000816040015160038111156111cb576111cb615917565b14156111da5750600092915050565b6111eb816111e661266b565b612fa0565b9392505050565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929384938493849384938493849384938493849391830190600160a01b900460ff16600381111561125e5761125e615917565b600381111561126f5761126f615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060006112b9828d613081565b905081602001519a508a826040015160038111156112d9576112d9615917565b9a508a670de0b6b3a764000083602001516001600160401b03166112fd9190615a9d565b9a508a83604001519a508a85606001519a508a86608001519a508a8760a001519a508a87606001519a508a88600001519a509a509a509a509a509a509a509a509a5050509295985092959850929598565b6006546001600160a01b031633146113785760405162461bcd60e51b815260040161089a906159ef565b610ef08182600160008061138a61217f565b6131c5565b61104b338383613812565b60006113ae83836113a961266b565b613f08565b90505b92915050565b610ef0338234614332565b60075460408051636f85684760e01b81529051339234926001600160a01b0390911691636f856847916004808201926020929091908290030181865afa158015611410573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114349190615abc565b6001600160401b031661144f670de0b6b3a764000083615aef565b10156114a75760405162461bcd60e51b815260206004820152602160248201527f5374616b696e673a20696e697469616c207374616b6520697320746f6f206c6f6044820152607760f81b606482015260840161089a565b6114b9670de0b6b3a764000082615b03565b156114d65760405162461bcd60e51b815260040161089a90615b17565b6114f884836002866114f0670de0b6b3a764000087615aef565b61138a61217f565b50505050565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561155b5761155b615917565b600381111561156c5761156c615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b900490911660609091015290506003816040015160038111156115c2576115c2615917565b1461160f5760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a2076616c696461746f72206e6f7420696e206a61696c0000604482015260640161089a565b80602001516001600160a01b0316336001600160a01b0316146116445760405162461bcd60e51b815260040161089a9061592d565b80608001516001600160401b031661165a61266b565b6001600160401b031610156116aa5760405162461bcd60e51b815260206004820152601660248201527514dd185ada5b99ce881cdd1a5b1b081a5b881a985a5b60521b604482015260640161089a565b6040810160015b908160038111156116c4576116c4615917565b9052506001600160a01b03808316600090815260666020908152604091829020845181549085166001600160a01b0319918216178255918501516001820180549190951692811683178555928501518594919390926001600160a81b031990911617600160a01b83600381111561173d5761173d615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790555050565b60006117b261266b565b905090565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929384938493849384938493849384938493849391830190600160a01b900460ff16600381111561182357611823615917565b600381111561183457611834615917565b81526001820154600160a81b90046001600160401b03908116602080840191909152600290930154808216604080850191909152600160401b909104821660609384015284516001600160a01b03166000908152606a855281812086850151841682528552819020815160808101835290546001600160601b0381168252600160601b810490931681860152600160a01b830463ffffffff1681830152600160c01b90920461ffff16928201929092529183015190830151909c50919250908b90600381111561190657611906615917565b9a508a670de0b6b3a764000083602001516001600160401b031661192a9190615a9d565b9a508a83604001519a508a85606001519a508a86608001519a508a8760a001519a508a87606001519a508a88600001519a509a509a509a509a509a509a509a509a5050509193959799909294969850565b6001600160a01b0382166000908152606660205260408120906001820154600160a01b900460ff1660038111156119b4576119b4615917565b14156119d25760405162461bcd60e51b815260040161089a9061598c565b60018101546001600160a01b031633146119fe5760405162461bcd60e51b815260040161089a9061592d565b611a0661266b565b6001600160401b0316826001600160401b03161115611a2457600080fd5b611a2e8183614886565b505050565b60006117b261217f565b6006546001600160a01b03163314611a675760405162461bcd60e51b815260040161089a906159ef565b610ef081614a2c565b60606117b2612ba4565b60005460ff1615611a9d5760405162461bcd60e51b815260040161089a90615a35565b818414611aa957600080fd5b60005b84811015611b8357670de0b6b3a7640000848483818110611acf57611acf6159d9565b90506020020135611ae09190615b03565b15611aea57600080fd5b611b71868683818110611aff57611aff6159d9565b9050602002016020810190611b14919061571e565b878784818110611b2657611b266159d9565b9050602002016020810190611b3b919061571e565b600185670de0b6b3a7640000898988818110611b5957611b596159d9565b90506020020135611b6a9190615aef565b60006131c5565b80611b7b81615a82565b915050611aac565b50506000805460ff1916600117905550505050565b60006113ae83836113a961217f565b6001600160a01b038181166000908152606660209081526040808320815160c0810183528154861681526001820154958616938101939093529293849391830190600160a01b900460ff166003811115611c0357611c03615917565b6003811115611c1457611c14615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050600081604001516003811115611c6a57611c6a615917565b1415611c795750600092915050565b6111eb816111e661217f565b6003546001600160a01b03163314611cf65760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920736c617360448201526d3434b7339034b73234b1b0ba37b960911b606482015260840161089a565b610ef081614bb1565b6001600160a01b03808316600090815260696020908152604080832093851683529281528282208351815460a0938102820184019095526080810185815293948594859492939284928491879085015b82821015611d9857600084815260209081902060408051808201909152908401546001600160401b038082168352600160401b9091041681830152825260019092019101611d4f565b5050509082525060018201546001600160401b0316602080830191909152600283018054604080518285028101850182528281529401939260009084015b82821015611e1f57600084815260209081902060408051808201909152908401546001600160401b038082168352600160401b9091041681830152825260019092019101611dd6565b50505090825250600391909101546001600160401b0316602090910152805151909150611e53575060009150819050611eaf565b8051805160009190611e6790600190615b4c565b81518110611e7757611e776159d9565b60200260200101519050670de0b6b3a764000081600001516001600160401b0316611ea29190615a9d565b6020909101519093509150505b9250929050565b60005460ff1615611ed95760405162461bcd60e51b815260040161089a90615a35565b600280546001600160a01b03199081166110001790915560038054821661100117905560048054821661100217905560058054821661700117905560068054821661700217905560078054821661700317905560088054821661700417905560098054909116617005179055611f4d6123fa565b6000805460ff19166001179055565b334114611fb75760405162461bcd60e51b8152602060048201526024808201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920636f696e6044820152636261736560e01b606482015260840161089a565b3a156120185760405162461bcd60e51b815260206004820152602a60248201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c79207a65726f6044820152692067617320707269636560b01b606482015260840161089a565b610ef081615060565b6000806001600160a01b038316600090815260666020526040902060010154600160a01b900460ff16600381111561205b5761205b615917565b141592915050565b6001600160a01b0382166000908152606660205260408120906001820154600160a01b900460ff16600381111561209c5761209c615917565b14156120ba5760405162461bcd60e51b815260040161089a9061598c565b6120c261266b565b6001600160401b0316826001600160401b031611156120e057600080fd5b611a2e8333846126f4565b6001600160a01b0381166000908152606660205260408120906001820154600160a01b900460ff16600381111561212457612124615917565b14156121425760405162461bcd60e51b815260040161089a9061598c565b60018101546001600160a01b0316331461216e5760405162461bcd60e51b815260040161089a9061592d565b61104b8161217a61266b565b614886565b600061218961266b565b6117b2906001615b63565b81516001600160a01b03166000908152606a602090815260408083206001600160401b0380861685529252822080549091600160601b90910416156121da5790506113b1565b83516001600160a01b03166000908152606a60209081526040808320606080890180516001600160401b03908116875292855294839020835160808101855290546001600160601b0381168252600160601b8082048516968301879052600160a01b820463ffffffff1695830195909552600160c01b9081900461ffff1692820183905287546dffff00000000ffffffffffffffff60601b19169590940261ffff60c01b19169490941792029190911784559151909190811690851611156122ac576001600160401b03841660608601525b509392505050565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561231157612311615917565b600381111561232257612322615917565b81526001828101546001600160401b03600160a81b909104811660208401526002909301548084166040840152600160401b90049092166060909101529091506001600160a01b038316600090815260666020526040902060010154600160a01b900460ff16600381111561239957612399615917565b146123e65760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a206e6f74206163746976652076616c696461746f72000000604482015260640161089a565b6123ef826151e9565b6040810160026116b1565b6001805461240790615b8e565b1515905061241157565b600080306001600160a01b0316600160405161242d9190615bc9565b6000604051808303816000865af19150503d806000811461246a576040519150601f19603f3d011682016040523d82523d6000602084013e61246f565b606091505b5091509150811561247e575050565b80516124e35760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b606482015260840161089a565b80518082602001fd5b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561254957612549615917565b600381111561255a5761255a615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b900490911660609091015290506000816040015160038111156125b0576125b0615917565b14156125ce5760405162461bcd60e51b815260040161089a9061598c565b6125d7826151e9565b6020808201516001600160a01b03908116600090815260678352604080822080546001600160a01b03199081169091559286168083526066909452808220805490931683556001830180546001600160e81b0319169055600290920180546001600160801b031916905590517fe1434e25d6611e0db941968fdc97811c982ac1602e951637d206f5fdda9dd8f19190a25050565b6007546040805163068d921560e31b815290516000926001600160a01b03169163346c90a89160048083019260209291908290030181865afa1580156126b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906126d99190615c65565b6126e99063ffffffff1643615aef565b6117b2906000615c8b565b6001600160a01b0380841660009081526069602090815260408083209386168352929052908120600181015481549192916001600160401b03909116905b80826001600160401b03161015612a0557600084600001836001600160401b031681548110612763576127636159d9565b6000918252602091829020604080518082019091529101546001600160401b038082168352600160401b90910481169282018390529092508716116127a85750612a05565b60006127b5600184615b4c565b846001600160401b0316101561280957856127d1856001615b63565b6001600160401b0316815481106127ea576127ea6159d9565b600091825260209091200154600160401b90046001600160401b031690505b866001600160401b031682602001516001600160401b0316108015612842575080158061284257508082602001516001600160401b0316105b1561293f576001600160a01b0389166000908152606a60209081526040808320858301516001600160401b03908116855290835292819020815160808101835290546001600160601b0381168252600160601b8104909416928101839052600160a01b840463ffffffff1691810191909152600160c01b90920461ffff1660608301526128cf575061291e565b60006128da8261532f565b5050905081602001516001600160401b031684600001516001600160401b0316826129059190615a9d565b61290f9190615aef565b6129199088615c8b565b965050505b6020820180519061292e82615ca3565b6001600160401b0316905250612809565b61294a600184615b4c565b846001600160401b0316106129bc578186600001856001600160401b031681548110612978576129786159d9565b600091825260209182902083519101805493909201516001600160401b03908116600160401b026001600160801b031990941691161791909117905550612a059050565b85600001846001600160401b0316815481106129da576129da6159d9565b600091825260209091200180546001600160801b03191690556129fc84615ca3565b93505050612732565b5060018301805467ffffffffffffffff19166001600160401b0383811691909117909155600384015460028501549116905b80826001600160401b03161015612b2057600085600201836001600160401b031681548110612a6857612a686159d9565b6000918252602091829020604080518082019091529101546001600160401b038082168352600160401b909104811692820183905290925088161015612aae5750612b20565b8051612acc90670de0b6b3a7640000906001600160401b0316615a9d565b612ad69086615c8b565b945085600201836001600160401b031681548110612af657612af66159d9565b600091825260209091200180546001600160801b0319169055612b1883615ca3565b925050612a37565b5060038401805467ffffffffffffffff19166001600160401b038316179055612b498684615450565b604080518481526001600160401b03871660208201526001600160a01b0380891692908a16917fb22dec804803f8b1c5333f626cdbfdfb1bd629f1e1bb45dcfb22b5f74ed46b1c91015b60405180910390a350505050505050565b6068546060906000816001600160401b03811115612bc457612bc46159c3565b604051908082528060200260200182016040528015612bed578160200160208202803683370190505b50905060005b82811015612c685760688181548110612c0e57612c0e6159d9565b9060005260206000200160009054906101000a90046001600160a01b0316828281518110612c3e57612c3e6159d9565b6001600160a01b039092166020928302919091019091015280612c6081615a82565b915050612bf3565b50600754604080516306598de160e31b815290516000926001600160a01b0316916332cc6f089160048083019260209291908290030181865afa158015612cb3573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cd79190615c65565b63ffffffff16905082811115612cea5750815b60005b81811015612f97576000819050600060666000868481518110612d1257612d126159d9565b6020908102919091018101516001600160a01b039081168352828201939093526040918201600020825160c08101845281548516815260018201549485169281019290925290929091830190600160a01b900460ff166003811115612d7957612d79615917565b6003811115612d8a57612d8a615917565b81526001828101546001600160401b03600160a81b909104811660208401526002909301548084166040840152600160401b9004909216606090910152909150600090612dd8908590615c8b565b90505b86811015612ee357600060666000888481518110612dfb57612dfb6159d9565b6020908102919091018101516001600160a01b039081168352828201939093526040918201600020825160c08101845281548516815260018201549485169281019290925290929091830190600160a01b900460ff166003811115612e6257612e62615917565b6003811115612e7357612e73615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050612eba816154f6565b612ec3846154f6565b1015612ed0578193508092505b5080612edb81615a82565b915050612ddb565b506000858481518110612ef857612ef86159d9565b60200260200101519050858381518110612f1457612f146159d9565b6020026020010151868581518110612f2e57612f2e6159d9565b60200260200101906001600160a01b031690816001600160a01b03168152505080868481518110612f6157612f616159d9565b60200260200101906001600160a01b031690816001600160a01b0316815250505050508080612f8f90615a82565b915050612ced565b50815292915050565b6000805b826001600160401b03168460a001516001600160401b031610156113ae5783516001600160a01b03166000908152606a6020908152604080832060a08801516001600160401b039081168552908352818420825160808101845290546001600160601b0381168252600160601b810490921693810193909352600160a01b810463ffffffff1691830191909152600160c01b900461ffff1660608201529061304b8261532f565b50915061305a90508184615c8b565b925050508360a001805180919061307090615ca3565b6001600160401b0316905250612fa4565b60408051608081018252600080825260208201819052918101829052606081019190915282516001600160a01b03166000908152606a602090815260408083206001600160401b03868116855290835292819020815160808101835290546001600160601b0381168252600160601b8104909416928101839052600160a01b840463ffffffff1691810191909152600160c01b90920461ffff1660608301521561312c5790506113b1565b83516001600160a01b03166000908152606a602090815260408083206060808901516001600160401b03908116865291845293829020825160808101845290546001600160601b0381168252600160601b810490921681850181905263ffffffff600160a01b8404169382019390935261ffff600160c01b90920482169085019081529285019190915290511690820152905092915050565b610bb861ffff8416111561321b5760405162461bcd60e51b815260206004820152601c60248201527f5374616b696e673a2062616420636f6d6d697373696f6e207261746500000000604482015260640161089a565b6001600160a01b038681166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561327857613278615917565b600381111561328957613289615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060006001600160a01b038816600090815260666020526040902060010154600160a01b900460ff16600381111561330057613300615917565b1461334d5760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a2076616c696461746f7220616c7265616479206578697374604482015260640161089a565b6001600160a01b038088168252861660208201526040810185600381111561337757613377615917565b9081600381111561338a5761338a615917565b9052506001600160401b03821660608201526001600160a01b03808816600090815260666020908152604091829020845181549085166001600160a01b0319918216178255918501516001820180549190951692811683178555928501518594919390926001600160a81b031990911617600160a01b83600381111561341257613412615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790556001600160a01b0386811660009081526067602052604090205416156134e15760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a206f776e657220616c726561647920696e20757365000000604482015260640161089a565b6001600160a01b03868116600090815260676020526040902080546001600160a01b031916918916919091179055600185600381111561352357613523615917565b141561357557606880546001810182556000919091527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530180546001600160a01b0319166001600160a01b0389161790555b604051806080016040528060006001600160601b03168152602001846001600160401b03168152602001600063ffffffff1681526020018561ffff16815250606a6000896001600160a01b03166001600160a01b031681526020019081526020016000206000846001600160401b03166001600160401b0316815260200190815260200160002060008201518160000160006101000a8154816001600160601b0302191690836001600160601b03160217905550602082015181600001600c6101000a8154816001600160401b0302191690836001600160401b0316021790555060408201518160000160146101000a81548163ffffffff021916908363ffffffff16021790555060608201518160000160186101000a81548161ffff021916908361ffff160217905550905050600060696000896001600160a01b03166001600160a01b031681526020019081526020016000206000886001600160a01b03166001600160a01b03168152602001908152602001600020905080600001805490506000146137555760405162461bcd60e51b815260206004820152602660248201527f5374616b696e673a2064656c65676174696f6e207175657565206973206e6f7460448201526520656d70747960d01b606482015260840161089a565b604080518082019091526001600160401b0380861682528481166020808401918252845460018101865560008681529190912093519301805491518316600160401b026001600160801b031990921693909216929092179190911790556001600160a01b0388167f42449fd19d367b0177da9082fe6da7d4da41af7573e3a3c1750ecffeffe26f9d888860038111156137f0576137f0615917565b8860405161380093929190615964565b60405180910390a25050505050505050565b600760009054906101000a90046001600160a01b03166001600160a01b031663eea9a01b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906138899190615abc565b6001600160401b03166138a4670de0b6b3a764000083615aef565b10156138f25760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e673a20616d6f756e7420697320746f6f206c6f77000000000000604482015260640161089a565b613904670de0b6b3a764000082615b03565b156139215760405162461bcd60e51b815260040161089a90615b17565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561397e5761397e615917565b600381111561398f5761398f615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b900490911660609091015290506000816040015160038111156139e5576139e5615917565b1415613a035760405162461bcd60e51b815260040161089a9061598c565b6000613a0d61217f565b90506000613a1b8383612194565b9050613a2f670de0b6b3a764000085615aef565b81546001600160401b03918216600160601b9091049091161015613a955760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a20696e73756666696369656e742062616c616e6365000000604482015260640161089a565b613aa7670de0b6b3a764000085615aef565b81548290600c90613ac9908490600160601b90046001600160401b0316615cca565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b03808616600090815260666020908152604091829020865181549085166001600160a01b0319918216178255918701516001820180549190951692811683178555928701518794919390926001600160a81b031990911617600160a01b836003811115613b6257613b62615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790556001600160a01b038581166000908152606960209081526040808320938a168352929052208054613c475760405162461bcd60e51b815260206004820152602260248201527f5374616b696e673a2064656c65676174696f6e20717565756520697320656d70604482015261747960f01b606482015260840161089a565b80546000908290613c5a90600190615b4c565b81548110613c6a57613c6a6159d9565b906000526020600020019050670de0b6b3a764000086613c8a9190615aef565b81546001600160401b0391821691161015613ce75760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a20696e73756666696369656e742062616c616e6365000000604482015260640161089a565b6000613cfb670de0b6b3a764000088615aef565b8254613d1091906001600160401b0316615cca565b82549091506001600160401b03808716600160401b9092041610613d4d57815467ffffffffffffffff19166001600160401b038216178255613dab565b604080518082019091526001600160401b0380831682528681166020808401918252865460018101885560008881529190912093519301805491518316600160401b026001600160801b031990921693909216929092179190911790555b826002016040518060400160405280670de0b6b3a76400008a613dce9190615aef565b6001600160401b0316815260075460408051635e7b72ad60e01b815290516020938401936001600160a01b0390931692635e7b72ad92600480820193918290030181865afa158015613e24573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613e489190615c65565b613e589063ffffffff1689615b63565b6001600160401b039081169091528254600181018455600093845260209384902083519101805494909301518216600160401b026001600160801b03199094169116179190911790556040516001600160a01b03808b1691908a16907fa410e32157a44414a502bb47d775234de1aa7da123f5adfe426898f1601883fd90613ef5908b908a909182526001600160401b0316602082015260400190565b60405180910390a3505050505050505050565b6001600160a01b03808416600090815260696020908152604080832093861683529281528282208351815460a093810282018401909552608081018581529394859491938492918491879085015b82821015613f9f57600084815260209081902060408051808201909152908401546001600160401b038082168352600160401b9091041681830152825260019092019101613f56565b5050509082525060018201546001600160401b0316602080830191909152600283018054604080518285028101850182528281529401939260009084015b8282101561402657600084815260209081902060408051808201909152908401546001600160401b038082168352600160401b9091041681830152825260019092019101613fdd565b50505090825250600391909101546001600160401b0316602090910152905060005b81515160208301516001600160401b03161015614272576000826000015183602001516001600160401b031681518110614084576140846159d9565b60200260200101519050846001600160401b031681602001516001600160401b0316106140b15750614272565b8251516000906140c390600190615b4c565b84602001516001600160401b0316101561411a57835160208501516140e9906001615b63565b6001600160401b031681518110614102576141026159d9565b6020026020010151602001516001600160401b031690505b856001600160401b031682602001516001600160401b0316108015614153575080158061415357508082602001516001600160401b0316105b15614250576001600160a01b0388166000908152606a60209081526040808320858301516001600160401b03908116855290835292819020815160808101835290546001600160601b0381168252600160601b8104909416928101839052600160a01b840463ffffffff1691810191909152600160c01b90920461ffff1660608301526141e0575061422f565b60006141eb8261532f565b5050905081602001516001600160401b031684600001516001600160401b0316826142169190615a9d565b6142209190615aef565b61422a9086615c8b565b945050505b6020820180519061423f82615ca3565b6001600160401b031690525061411a565b83602001805161425f90615ca3565b6001600160401b03169052506140489050565b81604001515182606001516001600160401b03161015614329576000826040015183606001516001600160401b0316815181106142b1576142b16159d9565b60200260200101519050846001600160401b031681602001516001600160401b031611156142df5750614329565b80516142fd90670de0b6b3a7640000906001600160401b0316615a9d565b6143079083615c8b565b915082606001805161431890615ca3565b6001600160401b0316905250614272565b95945050505050565b600760009054906101000a90046001600160a01b03166001600160a01b031663eea9a01b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015614385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143a99190615abc565b6001600160401b03166143c4670de0b6b3a764000083615aef565b10156144125760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e673a20616d6f756e7420697320746f6f206c6f77000000000000604482015260640161089a565b614424670de0b6b3a764000082615b03565b156144415760405162461bcd60e51b815260040161089a90615b17565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561449e5761449e615917565b60038111156144af576144af615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060008160400151600381111561450557614505615917565b14156145235760405162461bcd60e51b815260040161089a9061598c565b600061452d61217f565b9050600061453b8383612194565b905061454f670de0b6b3a764000085615aef565b81548290600c90614571908490600160601b90046001600160401b0316615b63565b82546001600160401b039182166101009390930a9283029190920219909116179055506001600160a01b03808616600090815260666020908152604091829020865181549085166001600160a01b0319918216178255918701516001820180549190951692811683178555928701518794919390926001600160a81b031990911617600160a01b83600381111561460a5761460a615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790556001600160a01b038581166000908152606960209081526040808320938a168352929052208054156147c957805460009082906146b090600190615b4c565b815481106146c0576146c06159d9565b600091825260209091200180549091506001600160401b03808616600160401b909204161061473f576146fb670de0b6b3a764000087615aef565b815482906000906147169084906001600160401b0316615b63565b92506101000a8154816001600160401b0302191690836001600160401b031602179055506147c3565b6040805180820190915282908061475e670de0b6b3a76400008a615aef565b845461477391906001600160401b0316615b63565b6001600160401b039081168252878116602092830152835460018101855560009485529382902083519401805493909201518116600160401b026001600160801b03199093169316929092171790555b50614838565b604080518082019091528190806147e8670de0b6b3a764000089615aef565b6001600160401b039081168252868116602092830152835460018101855560009485529382902083519401805493909201518116600160401b026001600160801b03199093169316929092171790555b604080518681526001600160401b03851660208201526001600160a01b03808a1692908916917f30bcda2f188b532c7644e632473e83a6fb3c5c79717650d0ac790d141bb1b1779101612b93565b60028201546000908190600160401b90046001600160401b03165b836001600160401b0316816001600160401b031610156149755784546001600160a01b03166000908152606a602090815260408083206001600160401b038581168552908352818420825160808101845290546001600160601b0381168252600160601b810490921693810193909352600160a01b810463ffffffff1691830191909152600160c01b900461ffff16606082015290806149408361532f565b925092505081866149519190615c8b565b955061495d8186615c8b565b9450505050808061496d90615ca3565b9150506148a1565b6002850180546fffffffffffffffff00000000000000001916600160401b6001600160401b0384160217905560018501546149b9906001600160a01b031684615450565b81156149d5576004546149d5906001600160a01b031683615589565b8454604080518581526001600160401b03871660208201526001600160a01b03909216917fb947d7b49cedaf132fd7a9592099c21170864455405d51b4825032441532410091015b60405180910390a25050505050565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff166003811115614a8957614a89615917565b6003811115614a9a57614a9a615917565b815260018201546001600160401b03600160a81b909104811660208301526002928301548082166040840152600160401b9004166060909101529091506001600160a01b038316600090815260666020526040902060010154600160a01b900460ff166003811115614b0e57614b0e615917565b14614b5b5760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a206e6f742070656e64696e672076616c696461746f720000604482015260640161089a565b60688054600180820183556000929092527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530180546001600160a01b0319166001600160a01b03851617905560408201906116b1565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff166003811115614c0e57614c0e615917565b6003811115614c1f57614c1f615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050600081604001516003811115614c7557614c75615917565b1415614c935760405162461bcd60e51b815260040161089a9061598c565b6000614c9d61266b565b90506000614cab8383612194565b8054909150600090614ccb90600160a01b900463ffffffff166001615cf2565b825463ffffffff8216600160a01b90810263ffffffff60a01b199092169190911784556001600160a01b03808816600090815260666020908152604091829020895181549085166001600160a01b0319918216178255918a01516001820180549190951692811683178555928a0151959650899590949093926001600160a81b03191690911790836003811115614d6457614d64615917565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b9290911691909102179055600754604080516317c332e760e31b815290516001600160a01b039092169163be199738916004808201926020929091908290030181865afa158015614e15573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e399190615c65565b63ffffffff168163ffffffff16141561501157600760009054906101000a90046001600160a01b03166001600160a01b0316636cbe6cd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015614e9f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614ec39190615c65565b63ffffffff16614ed161266b565b614edb9190615b63565b6001600160401b03166080850152600360408501819052506001600160a01b03808616600090815260666020908152604091829020875181549085166001600160a01b0319918216178255918801516001820180549190951692811683178555928801518894919390926001600160a81b031990911617600160a01b836003811115614f6957614f69615917565b021790555060608201516001820180546001600160401b03928316600160a81b0267ffffffffffffffff60a81b1990911617905560808301516002909201805460a0909401518216600160401b026001600160801b03199094169282169290921792909217905560405190841681526001600160a01b038616907f6acc1079130362b805ce4a8874346d4ee8893d55f223e378ddc73031ce427eab9060200160405180910390a25b6040805163ffffffff831681526001600160401b03851660208201526001600160a01b038716917ff30f0392d5346908bf200bc0924d0c9860e22d46fc606e979a2e14fff24c62b99101614a1d565b600034116150b05760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a206465706f736974206973207a65726f0000000000000000604482015260640161089a565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561510d5761510d615917565b600381111561511e5761511e615917565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060008160400151600381111561517457615174615917565b14156151925760405162461bcd60e51b815260040161089a9061598c565b60006151a0826109bb61266b565b8054909150349082906000906151c09084906001600160601b0316615d11565b92506101000a8154816001600160601b0302191690836001600160601b03160217905550505050565b60001960005b60685481101561524f57826001600160a01b031660688281548110615216576152166159d9565b6000918252602090912001546001600160a01b0316146152355761523d565b80915061524f565b8061524781615a82565b9150506151ef565b506000811261104b576068546001108015615278575060685461527490600190615b4c565b8114155b156152f8576068805461528d90600190615b4c565b8154811061529d5761529d6159d9565b600091825260209091200154606880546001600160a01b0390921691839081106152c9576152c96159d9565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b606880548061530957615309615d33565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b6000806000600760009054906101000a90046001600160a01b03166001600160a01b0316639dbf97db6040518163ffffffff1660e01b8152600401602060405180830381865afa158015615387573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906153ab9190615c65565b63ffffffff16846040015163ffffffff16106153d957505081516000915081906001600160601b0316615449565b60208401516001600160401b03166154025750508151600091506001600160601b031681615449565b612710846060015161ffff16856000015161541d9190615d49565b6154279190615d78565b84516001600160601b03918216935061544291849116615b4c565b9250600090505b9193909250565b6040516000906001600160a01b0384169061753090849084818181858888f193505050503d80600081146154a0576040519150601f19603f3d011682016040523d82523d6000602084013e6154a5565b606091505b5050905080611a2e5760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a206661696c656420746f2073616665207472616e73666572604482015260640161089a565b80516001600160a01b03166000908152606a602090815260408083206060808601516001600160401b039081168652918452828520835160808101855290546001600160601b0381168252600160601b8104909316948101859052600160a01b830463ffffffff1693810193909352600160c01b90910461ffff1690820152906111eb90670de0b6b3a764000090615a9d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146155d6576040519150601f19603f3d011682016040523d82523d6000602084013e6155db565b606091505b5050905080611a2e5760405162461bcd60e51b815260206004820152602260248201527f5374616b696e673a206661696c656420746f20756e73616665207472616e736660448201526132b960f11b606482015260840161089a565b6001600160a01b0381168114610ef057600080fd5b6000806040838503121561565f57600080fd5b823561566a81615637565b9150602083013561567a81615637565b809150509250929050565b803561ffff8116811461569757600080fd5b919050565b600080604083850312156156af57600080fd5b82356156ba81615637565b91506156c860208401615685565b90509250929050565b6020808252825182820181905260009190848201906040850190845b818110156157125783516001600160a01b0316835292840192918401916001016156ed565b50909695505050505050565b60006020828403121561573057600080fd5b81356113ae81615637565b600080600080600080600080610100898b03121561575857600080fd5b883561576381615637565b9750602089013561577381615637565b9650604089013561578381615637565b9550606089013561579381615637565b945060808901356157a381615637565b935060a08901356157b381615637565b925060c08901356157c381615637565b915060e08901356157d381615637565b809150509295985092959890939650565b6001600160401b0381168114610ef057600080fd5b6000806040838503121561580c57600080fd5b823561581781615637565b9150602083013561567a816157e4565b6000806040838503121561583a57600080fd5b823561584581615637565b946020939093013593505050565b60008083601f84011261586557600080fd5b5081356001600160401b0381111561587c57600080fd5b6020830191508360208260051b8501011115611eaf57600080fd5b6000806000806000606086880312156158af57600080fd5b85356001600160401b03808211156158c657600080fd5b6158d289838a01615853565b909750955060208801359150808211156158eb57600080fd5b506158f888828901615853565b909450925061590b905060408701615685565b90509295509295909350565b634e487b7160e01b600052602160045260246000fd5b6020808252601d908201527f5374616b696e673a206f6e6c792076616c696461746f72206f776e6572000000604082015260600190565b6001600160a01b0393909316835260ff91909116602083015261ffff16604082015260600190565b6020808252601c908201527f5374616b696e673a2076616c696461746f72206e6f7420666f756e6400000000604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526026908201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604082015265726e616e636560d01b606082015260800190565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6000600019821415615a9657615a96615a6c565b5060010190565b6000816000190483118215151615615ab757615ab7615a6c565b500290565b600060208284031215615ace57600080fd5b81516113ae816157e4565b634e487b7160e01b600052601260045260246000fd5b600082615afe57615afe615ad9565b500490565b600082615b1257615b12615ad9565b500690565b6020808252818101527f5374616b696e673a20616d6f756e74206861766520612072656d61696e646572604082015260600190565b600082821015615b5e57615b5e615a6c565b500390565b60006001600160401b03808316818516808303821115615b8557615b85615a6c565b01949350505050565b600181811c90821680615ba257607f821691505b60208210811415615bc357634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680615be557607f831692505b6020808410821415615c0557634e487b7160e01b86526022600452602486fd5b818015615c195760018114615c2a57615c57565b60ff19861689528489019650615c57565b60008a81526020902060005b86811015615c4f5781548b820152908501908301615c36565b505084890196505b509498975050505050505050565b600060208284031215615c7757600080fd5b815163ffffffff811681146113ae57600080fd5b60008219821115615c9e57615c9e615a6c565b500190565b60006001600160401b0380831681811415615cc057615cc0615a6c565b6001019392505050565b60006001600160401b0383811690831681811015615cea57615cea615a6c565b039392505050565b600063ffffffff808316818516808303821115615b8557615b85615a6c565b60006001600160601b03808316818516808303821115615b8557615b85615a6c565b634e487b7160e01b600052603160045260246000fd5b60006001600160601b0380831681851681830481118215151615615d6f57615d6f615a6c565b02949350505050565b60006001600160601b0380841680615d9257615d92615ad9565b9216919091049291505056fea2646970667358221220a76f4d07fc56f19cccf10f4d7a6463446a414218d145f99b8722213ef27a55cc64736f6c634300080b0033", + "code": "0x60806040526004361061023a5760003560e01c806361cadbf41161012e578063c15f28c4116100ab578063e1c7392a1161006f578063e1c7392a14610739578063f340fa011461074e578063facd743b14610761578063fe38ebef14610781578063ff4794fc146107a157600080fd5b8063c15f28c41461067c578063c2fd58fc1461069c578063c6fb9065146106bc578063c96be4cb146106dc578063d951e186146106fc57600080fd5b8063a310624f116100f2578063a310624f146105f2578063adf2a79c14610612578063aea0e78b14610632578063b46e552014610647578063b7ab4db51461066757600080fd5b806361cadbf41461055657806373a3dda61461056957806376671808146105895780637a37cc59146105b65780637b1391a6146105d457600080fd5b8063426594b1116101bc5780634d238c8e116101805780634d238c8e146104d25780634d99dd16146104f257806352b7bea2146105055780635c19a95c14610525578063606c0c941461053857600080fd5b8063426594b1146103b957806342ad55ac146103d9578063457179fd146103f9578063459463341461042757806348124d261461044557600080fd5b8063289b3c0d11610203578063289b3c0d146102fe57806330108c221461031c578063392e53cd146103555780633e1bbdc91461037957806340a141ff1461039957600080fd5b806252c9e11461023f57806314f8649f1461026157806318f062cd146102815780631fe97684146102ac578063244d8257146102cc575b600080fd5b34801561024b57600080fd5b5061025f61025a366004615596565b6107c1565b005b34801561026d57600080fd5b5061025f61027c3660046155e6565b610a36565b34801561028d57600080fd5b50610296610d01565b6040516102a3919061561b565b60405180910390f35b3480156102b857600080fd5b5061025f6102c7366004615668565b610ebe565b3480156102d857600080fd5b506003546001600160a01b03165b6040516001600160a01b0390911681526020016102a3565b34801561030a57600080fd5b506006546001600160a01b03166102e6565b34801561032857600080fd5b506102e6610337366004615668565b6001600160a01b039081166000908152606760205260409020541690565b34801561036157600080fd5b5060005460ff165b60405190151581526020016102a3565b34801561038557600080fd5b5061025f610394366004615685565b610ef4565b3480156103a557600080fd5b5061025f6103b4366004615668565b610fb0565b3480156103c557600080fd5b5061025f6103d4366004615668565b610fe3565b3480156103e557600080fd5b506103696103f4366004615668565b611050565b34801561040557600080fd5b50610419610414366004615668565b611109565b6040519081526020016102a3565b34801561043357600080fd5b506005546001600160a01b03166102e6565b34801561045157600080fd5b5061046561046036600461572e565b6111f3565b604080516001600160a01b03909a168a5260ff90981660208a01529688019590955263ffffffff90931660608701526001600160401b039182166080870152811660a08601521660c084015261ffff1660e08301526001600160601b0316610100820152610120016102a3565b3480156104de57600080fd5b5061025f6104ed366004615668565b61134c565b61025f610500366004615768565b61138d565b34801561051157600080fd5b50610419610520366004615596565b611398565b61025f610533366004615668565b6113b5565b34801561054457600080fd5b506007546001600160a01b03166102e6565b61025f6105643660046155e6565b6113c0565b34801561057557600080fd5b5061025f610584366004615668565b6114c8565b34801561059557600080fd5b5061059e611772565b6040516001600160401b0390911681526020016102a3565b3480156105c257600080fd5b506004546001600160a01b03166102e6565b3480156105e057600080fd5b506002546001600160a01b03166102e6565b3480156105fe57600080fd5b5061046561060d366004615668565b611781565b34801561061e57600080fd5b5061025f61062d36600461572e565b611949565b34801561063e57600080fd5b5061059e6119fc565b34801561065357600080fd5b5061025f610662366004615668565b611a06565b34801561067357600080fd5b50610296611a39565b34801561068857600080fd5b5061025f6106973660046157d8565b611a43565b3480156106a857600080fd5b506104196106b7366004615596565b611b18565b3480156106c857600080fd5b506104196106d7366004615668565b611b27565b3480156106e857600080fd5b5061025f6106f7366004615668565b611c05565b34801561070857600080fd5b5061071c610717366004615596565b611c7f565b604080519283526001600160401b039091166020830152016102a3565b34801561074557600080fd5b5061025f611e3f565b61025f61075c366004615668565b611ee5565b34801561076d57600080fd5b5061036961077c366004615668565b611faa565b34801561078d57600080fd5b5061025f61079c36600461572e565b611fec565b3480156107ad57600080fd5b5061025f6107bc366004615668565b612074565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561081e5761081e615858565b600381111561082f5761082f615858565b815260018201546001600160401b03600160a81b90910481166020808401919091526002909301548082166040840152600160401b9004166060909101528101519091506001600160a01b031633146108a35760405162461bcd60e51b815260040161089a9061586e565b60405180910390fd5b602081810180516001600160a01b0390811660009081526067808552604080832080546001600160a01b03199081169091558885168087528452918652808320805483168a8616908117909155835260669095529084902085518154831690841617815592516001840180549283169190931690811783559385015185949092916001600160a81b03191617600160a01b83600381111561094657610946615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b929091169190910217905560006109c0826109bb612108565b61211d565b905081600001516001600160a01b03167fc00107e0d011ac7c8e4dfa18e3dd3623ff151f8bfcc3821cd39bc114bd6504d9836020015184604001516003811115610a0c57610a0c615858565b8454604051610a28939291600160f01b900461ffff16906158a5565b60405180910390a250505050565b610bb861ffff82161115610a8c5760405162461bcd60e51b815260206004820152601c60248201527f5374616b696e673a2062616420636f6d6d697373696f6e207261746500000000604482015260640161089a565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff166003811115610ae957610ae9615858565b6003811115610afa57610afa615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050600081604001516003811115610b5057610b50615858565b1415610b6e5760405162461bcd60e51b815260040161089a906158cd565b60208101516001600160a01b03163314610b9a5760405162461bcd60e51b815260040161089a9061586e565b6000610ba8826109bb612108565b805461ffff8516600160f01b026001600160f01b039091161781556001600160a01b03808616600090815260666020908152604091829020865181549085166001600160a01b03199182161782559187015160018201805491909516928116831785559287015194955086949093909290916001600160a81b031990911617600160a01b836003811115610c3e57610c3e615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790558151602083015160408401516001600160a01b03909216917fc00107e0d011ac7c8e4dfa18e3dd3623ff151f8bfcc3821cd39bc114bd6504d991906003811115610cf157610cf1615858565b86604051610a28939291906158a5565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b031691839150600090610d4a57610d4a61591a565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610d7b57610d7b61591a565b6001600160a01b039283166020918202929092010152600454825191169082906002908110610dac57610dac61591a565b6001600160a01b039283166020918202929092010152600554825191169082906003908110610ddd57610ddd61591a565b6001600160a01b039283166020918202929092010152600654825191169082906004908110610e0e57610e0e61591a565b6001600160a01b039283166020918202929092010152600754825191169082906005908110610e3f57610e3f61591a565b6001600160a01b039283166020918202929092010152600854825191169082906006908110610e7057610e7061591a565b6001600160a01b039283166020918202929092010152600954825191169082906007908110610ea157610ea161591a565b6001600160a01b0390921660209283029190910190910152919050565b6006546001600160a01b03163314610ee85760405162461bcd60e51b815260040161089a90615930565b610ef181612256565b50565b60005460ff1615610f175760405162461bcd60e51b815260040161089a90615976565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610f9961239c565b50506000805460ff19166001179055505050505050565b6006546001600160a01b03163314610fda5760405162461bcd60e51b815260040161089a90615930565b610ef18161248e565b6001600160a01b0381166000908152606660205260408120906001820154600160a01b900460ff16600381111561101c5761101c615858565b141561103a5760405162461bcd60e51b815260040161089a906158cd565b61104c823361104761260d565b612696565b5050565b600060016001600160a01b038316600090815260666020526040902060010154600160a01b900460ff16600381111561108b5761108b615858565b1461109857506000919050565b60006110a2612b5b565b905060005b81518110156110ff57836001600160a01b03168282815181106110cc576110cc61591a565b60200260200101516001600160a01b031614156110ed575060019392505050565b806110f7816159c3565b9150506110a7565b5060009392505050565b6001600160a01b038181166000908152606660209081526040808320815160c0810183528154861681526001820154958616938101939093529293849391830190600160a01b900460ff16600381111561116557611165615858565b600381111561117657611176615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b900490911660609091015290506000816040015160038111156111cc576111cc615858565b14156111db5750600092915050565b6111ec816111e761260d565b612f57565b9392505050565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929384938493849384938493849384938493849391830190600160a01b900460ff16600381111561125f5761125f615858565b600381111561127057611270615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060006112ba828d61303c565b905081602001519a508a826040015160038111156112da576112da615858565b9a508a6402540be40083602001516001600160701b03166112fb91906159de565b9a508a83604001519a508a85606001519a508a86608001519a508a8760a001519a508a87606001519a508a88600001519a509a509a509a509a509a509a509a509a5050509295985092959850929598565b6006546001600160a01b031633146113765760405162461bcd60e51b815260040161089a90615930565b610ef181826001600080611388612108565b613187565b61104c338383613758565b60006113ac83836113a761260d565b613e4b565b90505b92915050565b610ef1338234614281565b60075460408051636f85684760e01b8152905134926001600160a01b031691636f8568479160048083019260209291908290030181865afa158015611409573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061142d91906159fd565b8110156114865760405162461bcd60e51b815260206004820152602160248201527f5374616b696e673a20696e697469616c207374616b6520697320746f6f206c6f6044820152607760f81b606482015260840161089a565b6114956402540be40082615a2c565b156114b25760405162461bcd60e51b815260040161089a90615a40565b6114c3833360028585611388612108565b505050565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561152557611525615858565b600381111561153657611536615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060038160400151600381111561158c5761158c615858565b146115d95760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a2076616c696461746f72206e6f7420696e206a61696c0000604482015260640161089a565b80602001516001600160a01b0316336001600160a01b03161461160e5760405162461bcd60e51b815260040161089a9061586e565b80608001516001600160401b031661162461260d565b6001600160401b031610156116745760405162461bcd60e51b815260206004820152601660248201527514dd185ada5b99ce881cdd1a5b1b081a5b881a985a5b60521b604482015260640161089a565b6040810160015b9081600381111561168e5761168e615858565b9052506001600160a01b03808316600090815260666020908152604091829020845181549085166001600160a01b0319918216178255918501516001820180549190951692811683178555928501518594919390926001600160a81b031990911617600160a01b83600381111561170757611707615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790555050565b600061177c61260d565b905090565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929384938493849384938493849384938493849391830190600160a01b900460ff1660038111156117ed576117ed615858565b60038111156117fe576117fe615858565b81526001820154600160a81b90046001600160401b03908116602080840191909152600290930154808216604080850191909152600160401b909104821660609384015284516001600160a01b03166000908152606a855281812086850151909316815291845290819020815160808101835290546001600160601b0381168252600160601b81046001600160701b031682860152600160d01b810463ffffffff1682840152600160f01b900461ffff16928101929092529183015191830151919c509192508b9060038111156118d7576118d7615858565b9a508a6402540be40083602001516001600160701b03166118f891906159de565b9a508a83604001519a508a85606001519a508a86608001519a508a8760a001519a508a87606001519a508a88600001519a509a509a509a509a509a509a509a509a5050509193959799909294969850565b6001600160a01b0382166000908152606660205260408120906001820154600160a01b900460ff16600381111561198257611982615858565b14156119a05760405162461bcd60e51b815260040161089a906158cd565b60018101546001600160a01b031633146119cc5760405162461bcd60e51b815260040161089a9061586e565b6119d461260d565b6001600160401b0316826001600160401b031611156119f257600080fd5b6114c381836147c3565b600061177c612108565b6006546001600160a01b03163314611a305760405162461bcd60e51b815260040161089a90615930565b610ef18161496e565b606061177c612b5b565b60005460ff1615611a665760405162461bcd60e51b815260040161089a90615976565b818414611a7257600080fd5b60005b84811015611b0357611af1868683818110611a9257611a9261591a565b9050602002016020810190611aa79190615668565b878784818110611ab957611ab961591a565b9050602002016020810190611ace9190615668565b600185888887818110611ae357611ae361591a565b905060200201356000613187565b80611afb816159c3565b915050611a75565b50506000805460ff1916600117905550505050565b60006113ac83836113a7612108565b6001600160a01b038181166000908152606660209081526040808320815160c0810183528154861681526001820154958616938101939093529293849391830190600160a01b900460ff166003811115611b8357611b83615858565b6003811115611b9457611b94615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050600081604001516003811115611bea57611bea615858565b1415611bf95750600092915050565b6111ec816111e7612108565b6003546001600160a01b03163314611c765760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920736c617360448201526d3434b7339034b73234b1b0ba37b960911b606482015260840161089a565b610ef181614af3565b6001600160a01b03808316600090815260696020908152604080832093851683529281528282208351815460a0938102820184019095526080810185815293948594859492939284928491879085015b82821015611d1e57600084815260209081902060408051808201909152908401546001600160701b0381168252600160701b90046001600160401b031681830152825260019092019101611ccf565b5050509082525060018201546001600160401b0316602080830191909152600283018054604080518285028101850182528281529401939260009084015b82821015611dab57600084815260209081902060408051808201909152908401546001600160701b0381168252600160701b90046001600160401b031681830152825260019092019101611d5c565b50505090825250600391909101546001600160401b0316602090910152805151909150611ddf575060009150819050611e38565b8051805160009190611df390600190615a75565b81518110611e0357611e0361591a565b602002602001015190506402540be40081600001516001600160701b0316611e2b91906159de565b6020909101519093509150505b9250929050565b60005460ff1615611e625760405162461bcd60e51b815260040161089a90615976565b600280546001600160a01b03199081166110001790915560038054821661100117905560048054821661100217905560058054821661700117905560068054821661700217905560078054821661700317905560088054821661700417905560098054909116617005179055611ed661239c565b6000805460ff19166001179055565b334114611f405760405162461bcd60e51b8152602060048201526024808201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920636f696e6044820152636261736560e01b606482015260840161089a565b3a15611fa15760405162461bcd60e51b815260206004820152602a60248201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c79207a65726f6044820152692067617320707269636560b01b606482015260840161089a565b610ef181614fa2565b6000806001600160a01b038316600090815260666020526040902060010154600160a01b900460ff166003811115611fe457611fe4615858565b141592915050565b6001600160a01b0382166000908152606660205260408120906001820154600160a01b900460ff16600381111561202557612025615858565b14156120435760405162461bcd60e51b815260040161089a906158cd565b61204b61260d565b6001600160401b0316826001600160401b0316111561206957600080fd5b6114c3833384612696565b6001600160a01b0381166000908152606660205260408120906001820154600160a01b900460ff1660038111156120ad576120ad615858565b14156120cb5760405162461bcd60e51b815260040161089a906158cd565b60018101546001600160a01b031633146120f75760405162461bcd60e51b815260040161089a9061586e565b61104c8161210361260d565b6147c3565b600061211261260d565b61177c906001615a8c565b81516001600160a01b03166000908152606a602090815260408083206001600160401b038516845290915281208054600160601b90046001600160701b0316156121685790506113af565b83516001600160a01b03166000908152606a60209081526040808320606080890180516001600160401b03908116875292855294839020835160808101855290546001600160601b0381168252600160601b8082046001600160701b0316968301879052600160d01b820463ffffffff1695830195909552600160f01b9081900461ffff1692820183905287547dffffffff0000000000000000000000000000ffffffffffffffffffffffff16959094026001600160f01b031694909417920291909117845591519091908116908516111561224e576001600160401b03841660608601525b509392505050565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff1660038111156122b3576122b3615858565b60038111156122c4576122c4615858565b81526001828101546001600160401b03600160a81b909104811660208401526002909301548084166040840152600160401b90049092166060909101529091506001600160a01b038316600090815260666020526040902060010154600160a01b900460ff16600381111561233b5761233b615858565b146123885760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a206e6f74206163746976652076616c696461746f72000000604482015260640161089a565b6123918261512b565b60408101600261167b565b600180546123a990615ab7565b151590506123b357565b600080306001600160a01b031660016040516123cf9190615af2565b6000604051808303816000865af19150503d806000811461240c576040519150601f19603f3d011682016040523d82523d6000602084013e612411565b606091505b50915091508115612420575050565b80516124855760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b606482015260840161089a565b80518082602001fd5b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff1660038111156124eb576124eb615858565b60038111156124fc576124fc615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060008160400151600381111561255257612552615858565b14156125705760405162461bcd60e51b815260040161089a906158cd565b6125798261512b565b6020808201516001600160a01b03908116600090815260678352604080822080546001600160a01b03199081169091559286168083526066909452808220805490931683556001830180546001600160e81b0319169055600290920180546001600160801b031916905590517fe1434e25d6611e0db941968fdc97811c982ac1602e951637d206f5fdda9dd8f19190a25050565b6007546040805163068d921560e31b815290516000926001600160a01b03169163346c90a89160048083019260209291908290030181865afa158015612657573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061267b9190615b8e565b61268b9063ffffffff1643615bb4565b61177c906000615bc8565b6001600160a01b0380841660009081526069602090815260408083209386168352929052908120600181015481549192916001600160401b03909116905b80826001600160401b031610156129b857600084600001836001600160401b0316815481106127055761270561591a565b6000918252602091829020604080518082019091529101546001600160701b03811682526001600160401b03600160701b909104811692820183905290925087161161275157506129b8565b600061275e600184615a75565b846001600160401b031610156127b2578561277a856001615a8c565b6001600160401b0316815481106127935761279361591a565b600091825260209091200154600160701b90046001600160401b031690505b866001600160401b031682602001516001600160401b03161080156127eb57508015806127eb57508082602001516001600160401b0316105b156128eb576001600160a01b0389166000908152606a60209081526040808320858301516001600160401b03168452825291829020825160808101845290546001600160601b0381168252600160601b81046001600160701b0316928201839052600160d01b810463ffffffff1693820193909352600160f01b90920461ffff16606083015261287b57506128ca565b600061288682615271565b5050905081602001516001600160701b031684600001516001600160701b0316826128b191906159de565b6128bb9190615bb4565b6128c59088615bc8565b965050505b602082018051906128da82615be0565b6001600160401b03169052506127b2565b6128f6600184615a75565b846001600160401b03161061296f578186600001856001600160401b0316815481106129245761292461591a565b600091825260209182902083519101805493909201516001600160401b0316600160701b026001600160b01b03199093166001600160701b0390911617919091179055506129b89050565b85600001846001600160401b03168154811061298d5761298d61591a565b600091825260209091200180546001600160b01b03191690556129af84615be0565b935050506126d4565b5060018301805467ffffffffffffffff19166001600160401b0383811691909117909155600384015460028501549116905b80826001600160401b03161015612ad757600085600201836001600160401b031681548110612a1b57612a1b61591a565b6000918252602091829020604080518082019091529101546001600160701b03811682526001600160401b03600160701b909104811692820183905290925088161015612a685750612ad7565b8051612a83906402540be400906001600160701b03166159de565b612a8d9086615bc8565b945085600201836001600160401b031681548110612aad57612aad61591a565b600091825260209091200180546001600160b01b0319169055612acf83615be0565b9250506129ea565b5060038401805467ffffffffffffffff19166001600160401b038316179055612b008684615399565b604080518481526001600160401b03871660208201526001600160a01b0380891692908a16917fb22dec804803f8b1c5333f626cdbfdfb1bd629f1e1bb45dcfb22b5f74ed46b1c91015b60405180910390a350505050505050565b6068546060906000816001600160401b03811115612b7b57612b7b615904565b604051908082528060200260200182016040528015612ba4578160200160208202803683370190505b50905060005b82811015612c1f5760688181548110612bc557612bc561591a565b9060005260206000200160009054906101000a90046001600160a01b0316828281518110612bf557612bf561591a565b6001600160a01b039092166020928302919091019091015280612c17816159c3565b915050612baa565b50600754604080516306598de160e31b815290516000926001600160a01b0316916332cc6f089160048083019260209291908290030181865afa158015612c6a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c8e9190615b8e565b63ffffffff16905082811115612ca15750815b60005b81811015612f4e576000819050600060666000868481518110612cc957612cc961591a565b6020908102919091018101516001600160a01b039081168352828201939093526040918201600020825160c08101845281548516815260018201549485169281019290925290929091830190600160a01b900460ff166003811115612d3057612d30615858565b6003811115612d4157612d41615858565b81526001828101546001600160401b03600160a81b909104811660208401526002909301548084166040840152600160401b9004909216606090910152909150600090612d8f908590615bc8565b90505b86811015612e9a57600060666000888481518110612db257612db261591a565b6020908102919091018101516001600160a01b039081168352828201939093526040918201600020825160c08101845281548516815260018201549485169281019290925290929091830190600160a01b900460ff166003811115612e1957612e19615858565b6003811115612e2a57612e2a615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050612e718161543f565b612e7a8461543f565b1015612e87578193508092505b5080612e92816159c3565b915050612d92565b506000858481518110612eaf57612eaf61591a565b60200260200101519050858381518110612ecb57612ecb61591a565b6020026020010151868581518110612ee557612ee561591a565b60200260200101906001600160a01b031690816001600160a01b03168152505080868481518110612f1857612f1861591a565b60200260200101906001600160a01b031690816001600160a01b0316815250505050508080612f46906159c3565b915050612ca4565b50815292915050565b6000805b826001600160401b03168460a001516001600160401b031610156113ac5783516001600160a01b03166000908152606a6020908152604080832060a08801516001600160401b031684528252808320815160808101835290546001600160601b0381168252600160601b81046001600160701b031693820193909352600160d01b830463ffffffff1691810191909152600160f01b90910461ffff1660608201529061300682615271565b50915061301590508184615bc8565b925050508360a001805180919061302b90615be0565b6001600160401b0316905250612f5b565b60408051608081018252600080825260208201819052918101829052606081019190915282516001600160a01b03166000908152606a602090815260408083206001600160401b0386168452825291829020825160808101845290546001600160601b0381168252600160601b81046001600160701b0316928201839052600160d01b810463ffffffff1693820193909352600160f01b90920461ffff166060830152156130eb5790506113af565b83516001600160a01b03166000908152606a602090815260408083206060808901516001600160401b0316855290835292819020815160808101835290546001600160601b03811682526001600160701b03600160601b82041682850181905263ffffffff600160d01b8304169383019390935261ffff600160f01b909104811691850191825292850191909152511690820152905092915050565b610bb861ffff841611156131dd5760405162461bcd60e51b815260206004820152601c60248201527f5374616b696e673a2062616420636f6d6d697373696f6e207261746500000000604482015260640161089a565b6001600160a01b038681166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561323a5761323a615858565b600381111561324b5761324b615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060006001600160a01b038816600090815260666020526040902060010154600160a01b900460ff1660038111156132c2576132c2615858565b1461330f5760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a2076616c696461746f7220616c7265616479206578697374604482015260640161089a565b6001600160a01b038088168252861660208201526040810185600381111561333957613339615858565b9081600381111561334c5761334c615858565b9052506001600160401b03821660608201526001600160a01b03808816600090815260666020908152604091829020845181549085166001600160a01b0319918216178255918501516001820180549190951692811683178555928501518594919390926001600160a81b031990911617600160a01b8360038111156133d4576133d4615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790556001600160a01b0386811660009081526067602052604090205416156134a35760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a206f776e657220616c726561647920696e20757365000000604482015260640161089a565b6001600160a01b03868116600090815260676020526040902080546001600160a01b03191691891691909117905560018560038111156134e5576134e5615858565b141561353757606880546001810182556000919091527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530180546001600160a01b0319166001600160a01b0389161790555b604080516080810190915260008152602081016135596402540be40086615bb4565b6001600160701b0390811682526000602080840182905261ffff808a166040958601526001600160a01b03808e16808552606a84528685206001600160401b038b1686528452868520885181548a8701518b8b01516060909c0151909616600160f01b026001600160f01b0363ffffffff9c909c16600160d01b029b909b166001600160d01b0396909916600160601b026001600160d01b03199091166001600160601b039092169190911717939093169590951796909617905591815260698252828120938a16815292905290208054156136865760405162461bcd60e51b815260206004820152602660248201527f5374616b696e673a2064656c65676174696f6e207175657565206973206e6f7460448201526520656d70747960d01b606482015260840161089a565b604080518082019091528190806136a26402540be40088615bb4565b6001600160701b0390811682526001600160401b038088166020938401528454600181018655600095865294839020845195018054949093015116600160701b026001600160b01b03199093169316929092171790556001600160a01b0388167f42449fd19d367b0177da9082fe6da7d4da41af7573e3a3c1750ecffeffe26f9d8888600381111561373657613736615858565b88604051613746939291906158a5565b60405180910390a25050505050505050565b600760009054906101000a90046001600160a01b03166001600160a01b031663eea9a01b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156137ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137cf91906159fd565b811015806137db575080155b6138275760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e673a20616d6f756e7420697320746f6f206c6f77000000000000604482015260640161089a565b6138366402540be40082615a2c565b156138535760405162461bcd60e51b815260040161089a90615a40565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff1660038111156138b0576138b0615858565b60038111156138c1576138c1615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060008160400151600381111561391757613917615858565b14156139355760405162461bcd60e51b815260040161089a906158cd565b600061393f612108565b9050600061394d838361211d565b905061395e6402540be40085615bb4565b81546001600160701b03918216600160601b90910490911610156139c45760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a20696e73756666696369656e742062616c616e6365000000604482015260640161089a565b6139d36402540be40085615bb4565b81548290600c906139f5908490600160601b90046001600160701b0316615c07565b82546001600160701b039182166101009390930a9283029190920219909116179055506001600160a01b03808616600090815260666020908152604091829020865181549085166001600160a01b0319918216178255918701516001820180549190951692811683178555928701518794919390926001600160a81b031990911617600160a01b836003811115613a8e57613a8e615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790556001600160a01b038581166000908152606960209081526040808320938a168352929052208054613b735760405162461bcd60e51b815260206004820152602260248201527f5374616b696e673a2064656c65676174696f6e20717565756520697320656d70604482015261747960f01b606482015260840161089a565b80546000908290613b8690600190615a75565b81548110613b9657613b9661591a565b9060005260206000200190506402540be40086613bb39190615bb4565b81546001600160401b03919091166001600160701b039091161015613c1a5760405162461bcd60e51b815260206004820152601d60248201527f5374616b696e673a20696e73756666696369656e742062616c616e6365000000604482015260640161089a565b6000613c2b6402540be40088615bb4565b8254613c4091906001600160701b0316615c07565b82549091506001600160401b03808716600160701b9092041610613c835781546dffffffffffffffffffffffffffff19166001600160701b038216178255613ce7565b604080518082019091526001600160701b0380831682526001600160401b03808816602080850191825287546001810189556000898152919091209451940180549151909216600160701b026001600160b01b031990911693909216929092171790555b8260020160405180604001604052806402540be4008a613d079190615bb4565b6001600160701b0316815260075460408051635e7b72ad60e01b815290516020938401936001600160a01b0390931692635e7b72ad92600480820193918290030181865afa158015613d5d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613d819190615b8e565b613d919063ffffffff1689615a8c565b6001600160401b03908116909152825460018101845560009384526020938490208351910180549490930151909116600160701b026001600160b01b03199093166001600160701b03909116179190911790556040516001600160a01b03808b1691908a16907fa410e32157a44414a502bb47d775234de1aa7da123f5adfe426898f1601883fd90613e38908b908a909182526001600160401b0316602082015260400190565b60405180910390a3505050505050505050565b6001600160a01b03808416600090815260696020908152604080832093861683529281528282208351815460a093810282018401909552608081018581529394859491938492918491879085015b82821015613ee857600084815260209081902060408051808201909152908401546001600160701b0381168252600160701b90046001600160401b031681830152825260019092019101613e99565b5050509082525060018201546001600160401b0316602080830191909152600283018054604080518285028101850182528281529401939260009084015b82821015613f7557600084815260209081902060408051808201909152908401546001600160701b0381168252600160701b90046001600160401b031681830152825260019092019101613f26565b50505090825250600391909101546001600160401b0316602090910152905060005b81515160208301516001600160401b031610156141c4576000826000015183602001516001600160401b031681518110613fd357613fd361591a565b60200260200101519050846001600160401b031681602001516001600160401b03161061400057506141c4565b82515160009061401290600190615a75565b84602001516001600160401b031610156140695783516020850151614038906001615a8c565b6001600160401b0316815181106140515761405161591a565b6020026020010151602001516001600160401b031690505b856001600160401b031682602001516001600160401b03161080156140a257508015806140a257508082602001516001600160401b0316105b156141a2576001600160a01b0388166000908152606a60209081526040808320858301516001600160401b03168452825291829020825160808101845290546001600160601b0381168252600160601b81046001600160701b0316928201839052600160d01b810463ffffffff1693820193909352600160f01b90920461ffff1660608301526141325750614181565b600061413d82615271565b5050905081602001516001600160701b031684600001516001600160701b03168261416891906159de565b6141729190615bb4565b61417c9086615bc8565b945050505b6020820180519061419182615be0565b6001600160401b0316905250614069565b8360200180516141b190615be0565b6001600160401b0316905250613f979050565b81604001515182606001516001600160401b03161015614278576000826040015183606001516001600160401b0316815181106142035761420361591a565b60200260200101519050846001600160401b031681602001516001600160401b031611156142315750614278565b805161424c906402540be400906001600160701b03166159de565b6142569083615bc8565b915082606001805161426790615be0565b6001600160401b03169052506141c4565b95945050505050565b600760009054906101000a90046001600160a01b03166001600160a01b031663eea9a01b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156142d4573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142f891906159fd565b81101580614304575080155b6143505760405162461bcd60e51b815260206004820152601a60248201527f5374616b696e673a20616d6f756e7420697320746f6f206c6f77000000000000604482015260640161089a565b61435f6402540be40082615a2c565b1561437c5760405162461bcd60e51b815260040161089a90615a40565b6001600160a01b038281166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff1660038111156143d9576143d9615858565b60038111156143ea576143ea615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b9004909116606090910152905060008160400151600381111561444057614440615858565b141561445e5760405162461bcd60e51b815260040161089a906158cd565b6000614468612108565b90506000614476838361211d565b90506144876402540be40085615bb4565b81548290600c906144a9908490600160601b90046001600160701b0316615c2f565b82546001600160701b039182166101009390930a9283029190920219909116179055506001600160a01b03808616600090815260666020908152604091829020865181549085166001600160a01b0319918216178255918701516001820180549190951692811683178555928701518794919390926001600160a81b031990911617600160a01b83600381111561454257614542615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b92909116919091021790556001600160a01b038581166000908152606960209081526040808320938a1683529290522080541561470257805460009082906145e890600190615a75565b815481106145f8576145f861591a565b600091825260209091200180549091506001600160401b03808616600160701b9092041610614674576146306402540be40087615bb4565b8154829060009061464b9084906001600160701b0316615c2f565b92506101000a8154816001600160701b0302191690836001600160701b031602179055506146fc565b604080518082019091528290806146906402540be4008a615bb4565b84546146a591906001600160701b0316615c2f565b6001600160701b0390811682526001600160401b038089166020938401528454600181018655600095865294839020845195018054949093015116600160701b026001600160b01b03199093169316929092171790555b50614775565b6040805180820190915281908061471e6402540be40089615bb4565b6001600160701b0390811682526001600160401b038088166020938401528454600181018655600095865294839020845195018054949093015116600160701b026001600160b01b03199093169316929092171790555b604080518681526001600160401b03851660208201526001600160a01b03808a1692908916917f30bcda2f188b532c7644e632473e83a6fb3c5c79717650d0ac790d141bb1b1779101612b4a565b60028201546000908190600160401b90046001600160401b03165b836001600160401b0316816001600160401b031610156148b75784546001600160a01b03166000908152606a602090815260408083206001600160401b03851684528252808320815160808101835290546001600160601b0381168252600160601b81046001600160701b031693820193909352600160d01b830463ffffffff1691810191909152600160f01b90910461ffff166060820152908061488283615271565b925092505081866148939190615bc8565b955061489f8186615bc8565b945050505080806148af90615be0565b9150506147de565b6002850180546fffffffffffffffff00000000000000001916600160401b6001600160401b0384160217905560018501546148fb906001600160a01b031684615399565b811561491757600454614917906001600160a01b0316836154d3565b8454604080518581526001600160401b03871660208201526001600160a01b03909216917fb947d7b49cedaf132fd7a9592099c21170864455405d51b4825032441532410091015b60405180910390a25050505050565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff1660038111156149cb576149cb615858565b60038111156149dc576149dc615858565b815260018201546001600160401b03600160a81b909104811660208301526002928301548082166040840152600160401b9004166060909101529091506001600160a01b038316600090815260666020526040902060010154600160a01b900460ff166003811115614a5057614a50615858565b14614a9d5760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e673a206e6f742070656e64696e672076616c696461746f720000604482015260640161089a565b60688054600180820183556000929092527fa2153420d844928b4421650203c77babc8b33d7f2e7b450e2966db0c220977530180546001600160a01b0319166001600160a01b038516179055604082019061167b565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff166003811115614b5057614b50615858565b6003811115614b6157614b61615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b90049091166060909101529050600081604001516003811115614bb757614bb7615858565b1415614bd55760405162461bcd60e51b815260040161089a906158cd565b6000614bdf61260d565b90506000614bed838361211d565b8054909150600090614c0d90600160d01b900463ffffffff166001615c51565b825463ffffffff8216600160d01b0263ffffffff60d01b199091161783556001600160a01b03808716600090815260666020908152604091829020885181549085166001600160a01b03199182161782559189015160018201805491909516928116831785559289015194955088949093909290916001600160a81b031990911617600160a01b836003811115614ca657614ca6615858565b0217905550606082015160018201805467ffffffffffffffff60a81b1916600160a81b6001600160401b039384160217905560808301516002909201805460a0909401519282166001600160801b031990941693909317600160401b9290911691909102179055600754604080516317c332e760e31b815290516001600160a01b039092169163be199738916004808201926020929091908290030181865afa158015614d57573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d7b9190615b8e565b63ffffffff168163ffffffff161415614f5357600760009054906101000a90046001600160a01b03166001600160a01b0316636cbe6cd86040518163ffffffff1660e01b8152600401602060405180830381865afa158015614de1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614e059190615b8e565b63ffffffff16614e1361260d565b614e1d9190615a8c565b6001600160401b03166080850152600360408501819052506001600160a01b03808616600090815260666020908152604091829020875181549085166001600160a01b0319918216178255918801516001820180549190951692811683178555928801518894919390926001600160a81b031990911617600160a01b836003811115614eab57614eab615858565b021790555060608201516001820180546001600160401b03928316600160a81b0267ffffffffffffffff60a81b1990911617905560808301516002909201805460a0909401518216600160401b026001600160801b03199094169282169290921792909217905560405190841681526001600160a01b038616907f6acc1079130362b805ce4a8874346d4ee8893d55f223e378ddc73031ce427eab9060200160405180910390a25b6040805163ffffffff831681526001600160401b03851660208201526001600160a01b038716917ff30f0392d5346908bf200bc0924d0c9860e22d46fc606e979a2e14fff24c62b9910161495f565b60003411614ff25760405162461bcd60e51b815260206004820152601860248201527f5374616b696e673a206465706f736974206973207a65726f0000000000000000604482015260640161089a565b6001600160a01b038181166000908152606660209081526040808320815160c081018352815486168152600182015495861693810193909352929391929190830190600160a01b900460ff16600381111561504f5761504f615858565b600381111561506057615060615858565b815260018201546001600160401b03600160a81b909104811660208301526002909201548083166040830152600160401b900490911660609091015290506000816040015160038111156150b6576150b6615858565b14156150d45760405162461bcd60e51b815260040161089a906158cd565b60006150e2826109bb61260d565b8054909150349082906000906151029084906001600160601b0316615c70565b92506101000a8154816001600160601b0302191690836001600160601b03160217905550505050565b60001960005b60685481101561519157826001600160a01b0316606882815481106151585761515861591a565b6000918252602090912001546001600160a01b0316146151775761517f565b809150615191565b80615189816159c3565b915050615131565b506000811261104c5760685460011080156151ba57506068546151b690600190615a75565b8114155b1561523a57606880546151cf90600190615a75565b815481106151df576151df61591a565b600091825260209091200154606880546001600160a01b03909216918390811061520b5761520b61591a565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b031602179055505b606880548061524b5761524b615c92565b600082815260209020810160001990810180546001600160a01b03191690550190555050565b6000806000600760009054906101000a90046001600160a01b03166001600160a01b0316639dbf97db6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156152c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906152ed9190615b8e565b63ffffffff16846040015163ffffffff161061531b57505081516000915081906001600160601b0316615392565b60208401516001600160701b03166153445750508151600091506001600160601b031681615392565b612710846060015161ffff1685600001516001600160601b031661536891906159de565b6153729190615bb4565b845190925061538b9083906001600160601b0316615a75565b9250600090505b9193909250565b6040516000906001600160a01b0384169061753090849084818181858888f193505050503d80600081146153e9576040519150601f19603f3d011682016040523d82523d6000602084013e6153ee565b606091505b50509050806114c35760405162461bcd60e51b815260206004820181905260248201527f5374616b696e673a206661696c656420746f2073616665207472616e73666572604482015260640161089a565b80516001600160a01b03166000908152606a602090815260408083206060808601516001600160401b03168552908352818420825160808101845290546001600160601b0381168252600160601b81046001600160701b0316948201859052600160d01b810463ffffffff1693820193909352600160f01b90920461ffff1690820152906111ec906402540be400906159de565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114615520576040519150601f19603f3d011682016040523d82523d6000602084013e615525565b606091505b50509050806114c35760405162461bcd60e51b815260206004820152602260248201527f5374616b696e673a206661696c656420746f20756e73616665207472616e736660448201526132b960f11b606482015260840161089a565b6001600160a01b0381168114610ef157600080fd5b600080604083850312156155a957600080fd5b82356155b481615581565b915060208301356155c481615581565b809150509250929050565b803561ffff811681146155e157600080fd5b919050565b600080604083850312156155f957600080fd5b823561560481615581565b9150615612602084016155cf565b90509250929050565b6020808252825182820181905260009190848201906040850190845b8181101561565c5783516001600160a01b031683529284019291840191600101615637565b50909695505050505050565b60006020828403121561567a57600080fd5b81356113ac81615581565b600080600080600080600080610100898b0312156156a257600080fd5b88356156ad81615581565b975060208901356156bd81615581565b965060408901356156cd81615581565b955060608901356156dd81615581565b945060808901356156ed81615581565b935060a08901356156fd81615581565b925060c089013561570d81615581565b915060e089013561571d81615581565b809150509295985092959890939650565b6000806040838503121561574157600080fd5b823561574c81615581565b915060208301356001600160401b03811681146155c457600080fd5b6000806040838503121561577b57600080fd5b823561578681615581565b946020939093013593505050565b60008083601f8401126157a657600080fd5b5081356001600160401b038111156157bd57600080fd5b6020830191508360208260051b8501011115611e3857600080fd5b6000806000806000606086880312156157f057600080fd5b85356001600160401b038082111561580757600080fd5b61581389838a01615794565b9097509550602088013591508082111561582c57600080fd5b5061583988828901615794565b909450925061584c9050604087016155cf565b90509295509295909350565b634e487b7160e01b600052602160045260246000fd5b6020808252601d908201527f5374616b696e673a206f6e6c792076616c696461746f72206f776e6572000000604082015260600190565b6001600160a01b0393909316835260ff91909116602083015261ffff16604082015260600190565b6020808252601c908201527f5374616b696e673a2076616c696461746f72206e6f7420666f756e6400000000604082015260600190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b60208082526026908201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604082015265726e616e636560d01b606082015260800190565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006000198214156159d7576159d76159ad565b5060010190565b60008160001904831182151516156159f8576159f86159ad565b500290565b600060208284031215615a0f57600080fd5b5051919050565b634e487b7160e01b600052601260045260246000fd5b600082615a3b57615a3b615a16565b500690565b6020808252818101527f5374616b696e673a20616d6f756e74206861766520612072656d61696e646572604082015260600190565b600082821015615a8757615a876159ad565b500390565b60006001600160401b03808316818516808303821115615aae57615aae6159ad565b01949350505050565b600181811c90821680615acb57607f821691505b60208210811415615aec57634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680615b0e57607f831692505b6020808410821415615b2e57634e487b7160e01b86526022600452602486fd5b818015615b425760018114615b5357615b80565b60ff19861689528489019650615b80565b60008a81526020902060005b86811015615b785781548b820152908501908301615b5f565b505084890196505b509498975050505050505050565b600060208284031215615ba057600080fd5b815163ffffffff811681146113ac57600080fd5b600082615bc357615bc3615a16565b500490565b60008219821115615bdb57615bdb6159ad565b500190565b60006001600160401b0380831681811415615bfd57615bfd6159ad565b6001019392505050565b60006001600160701b0383811690831681811015615c2757615c276159ad565b039392505050565b60006001600160701b03808316818516808303821115615aae57615aae6159ad565b600063ffffffff808316818516808303821115615aae57615aae6159ad565b60006001600160601b03808316818516808303821115615aae57615aae6159ad565b634e487b7160e01b600052603160045260246000fdfea26469706673582212200e2f5e910a1c6788af1340cd6721c23e6a17eeaf7a976128357384fe960f29b364736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x00000000000000000000000000000000000000000000000000000000000003c9", "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0xc15f28c400000000000000000000000000000000000000000000000000000000", @@ -42,66 +42,67 @@ "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfd": "0x183c4b9b00000000000000000000000049c0f7c8c11a4c80dc6449efe1010bb1", "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfe": "0x66818da80000000000000000000000008e1ea6eaa09c3b40f4a51fcd056a0318", "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cff": "0x70a0549a00000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0d00": "0x0000000500000000000000000000000000000000000000000000003635c9adc5", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0d01": "0xdea0000000000000000000000000000000000000000000000000003635c9adc5", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0d00": "0x0000000500000000000000000000000000000000000000000000152d02c7e14a", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0d01": "0xf680000000000000000000000000000000000000000000000000003635c9adc5", "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0d02": "0xdea0000000000000000000000000000000000000000000000000003635c9adc5", "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0d03": "0xdea0000000000000000000000000000000000000000000000000003635c9adc5", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0d04": "0xdea0000000000000000000000000000000000000000000000000003635c9adc5", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0d05": "0xdea0000000000000000000000000000000000000000000000000000000000000" + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0d04": "0xdea00000000000000000000000000000000000000000000000000002b5e3af16", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0d05": "0xb188000000000000000000000000000000000000000000000000000000000000" }, "balance": "0x0" }, "0000000000000000000000000000000000001001": { - "code": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806346344031116100715780634634403114610149578063606c0c94146101515780637a37cc59146101625780637b1391a614610173578063c96be4cb14610184578063e1c7392a1461019757600080fd5b806318f062cd146100b9578063244d8257146100d7578063289b3c0d146100fc578063392e53cd1461010d5780633e1bbdc9146101235780634594633414610138575b600080fd5b6100c161019f565b6040516100ce9190610695565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b0390911681526020016100ce565b6006546001600160a01b03166100e4565b60005460ff1660405190151581526020016100ce565b6101366101313660046106fa565b61035c565b005b6005546001600160a01b03166100e4565b610136610421565b6007546001600160a01b03166100e4565b6004546001600160a01b03166100e4565b6002546001600160a01b03166100e4565b6101366101923660046107a3565b610453565b610136610510565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b0316918391506000906101e8576101e86107c7565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610219576102196107c7565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061024a5761024a6107c7565b6001600160a01b03928316602091820292909201015260055482519116908290600390811061027b5761027b6107c7565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106102ac576102ac6107c7565b6001600160a01b0392831660209182029290920101526007548251911690829060059081106102dd576102dd6107c7565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061030e5761030e6107c7565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061033f5761033f6107c7565b6001600160a01b0390921660209283029190910190910152919050565b60005460ff16156103885760405162461bcd60e51b815260040161037f906107dd565b60405180910390fd5b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a84161790556004805482168984161790556005805482168884161790556006805482168784161790556007805482168684161790556008805482168584161790556009805490911691831691909117905561040a6105a3565b50506000805460ff19166001179055505050505050565b60005460ff16156104445760405162461bcd60e51b815260040161037f906107dd565b6000805460ff19166001179055565b3341146104ae5760405162461bcd60e51b8152602060048201526024808201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920636f696e6044820152636261736560e01b606482015260840161037f565b60025460405163c96be4cb60e01b81526001600160a01b0383811660048301529091169063c96be4cb90602401600060405180830381600087803b1580156104f557600080fd5b505af1158015610509573d6000803e3d6000fd5b5050505050565b60005460ff16156105335760405162461bcd60e51b815260040161037f906107dd565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556104445b600180546105b090610814565b151590506105ba57565b600080306001600160a01b031660016040516105d6919061084f565b6000604051808303816000865af19150503d8060008114610613576040519150601f19603f3d011682016040523d82523d6000602084013e610618565b606091505b50915091508115610627575050565b805161068c5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b606482015260840161037f565b80518082602001fd5b6020808252825182820181905260009190848201906040850190845b818110156106d65783516001600160a01b0316835292840192918401916001016106b1565b50909695505050505050565b6001600160a01b03811681146106f757600080fd5b50565b600080600080600080600080610100898b03121561071757600080fd5b8835610722816106e2565b97506020890135610732816106e2565b96506040890135610742816106e2565b95506060890135610752816106e2565b94506080890135610762816106e2565b935060a0890135610772816106e2565b925060c0890135610782816106e2565b915060e0890135610792816106e2565b809150509295985092959890939650565b6000602082840312156107b557600080fd5b81356107c0816106e2565b9392505050565b634e487b7160e01b600052603260045260246000fd5b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b600181811c9082168061082857607f821691505b6020821081141561084957634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168061086b57607f831692505b602080841082141561088b57634e487b7160e01b86526022600452602486fd5b81801561089f57600181146108b0576108dd565b60ff198616895284890196506108dd565b60008a81526020902060005b868110156108d55781548b8201529085019083016108bc565b505084890196505b50949897505050505050505056fea2646970667358221220be1afab44d23b04871baf155ffd0760499703a6f22eee3c5062296d77ed5b48464736f6c634300080b0033", + "code": "0x608060405234801561001057600080fd5b50600436106100b45760003560e01c806346344031116100715780634634403114610149578063606c0c94146101515780637a37cc59146101625780637b1391a614610173578063c96be4cb14610184578063e1c7392a1461019757600080fd5b806318f062cd146100b9578063244d8257146100d7578063289b3c0d146100fc578063392e53cd1461010d5780633e1bbdc9146101235780634594633414610138575b600080fd5b6100c161019f565b6040516100ce9190610695565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b0390911681526020016100ce565b6006546001600160a01b03166100e4565b60005460ff1660405190151581526020016100ce565b6101366101313660046106fa565b61035c565b005b6005546001600160a01b03166100e4565b610136610421565b6007546001600160a01b03166100e4565b6004546001600160a01b03166100e4565b6002546001600160a01b03166100e4565b6101366101923660046107a3565b610453565b610136610510565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b0316918391506000906101e8576101e86107c7565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610219576102196107c7565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061024a5761024a6107c7565b6001600160a01b03928316602091820292909201015260055482519116908290600390811061027b5761027b6107c7565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106102ac576102ac6107c7565b6001600160a01b0392831660209182029290920101526007548251911690829060059081106102dd576102dd6107c7565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061030e5761030e6107c7565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061033f5761033f6107c7565b6001600160a01b0390921660209283029190910190910152919050565b60005460ff16156103885760405162461bcd60e51b815260040161037f906107dd565b60405180910390fd5b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a84161790556004805482168984161790556005805482168884161790556006805482168784161790556007805482168684161790556008805482168584161790556009805490911691831691909117905561040a6105a3565b50506000805460ff19166001179055505050505050565b60005460ff16156104445760405162461bcd60e51b815260040161037f906107dd565b6000805460ff19166001179055565b3341146104ae5760405162461bcd60e51b8152602060048201526024808201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920636f696e6044820152636261736560e01b606482015260840161037f565b60025460405163c96be4cb60e01b81526001600160a01b0383811660048301529091169063c96be4cb90602401600060405180830381600087803b1580156104f557600080fd5b505af1158015610509573d6000803e3d6000fd5b5050505050565b60005460ff16156105335760405162461bcd60e51b815260040161037f906107dd565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556104445b600180546105b090610814565b151590506105ba57565b600080306001600160a01b031660016040516105d6919061084f565b6000604051808303816000865af19150503d8060008114610613576040519150601f19603f3d011682016040523d82523d6000602084013e610618565b606091505b50915091508115610627575050565b805161068c5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b606482015260840161037f565b80518082602001fd5b6020808252825182820181905260009190848201906040850190845b818110156106d65783516001600160a01b0316835292840192918401916001016106b1565b50909695505050505050565b6001600160a01b03811681146106f757600080fd5b50565b600080600080600080600080610100898b03121561071757600080fd5b8835610722816106e2565b97506020890135610732816106e2565b96506040890135610742816106e2565b95506060890135610752816106e2565b94506080890135610762816106e2565b935060a0890135610772816106e2565b925060c0890135610782816106e2565b915060e0890135610792816106e2565b809150509295985092959890939650565b6000602082840312156107b557600080fd5b81356107c0816106e2565b9392505050565b634e487b7160e01b600052603260045260246000fd5b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b600181811c9082168061082857607f821691505b6020821081141561084957634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168061086b57607f831692505b602080841082141561088b57634e487b7160e01b86526022600452602486fd5b81801561089f57600181146108b0576108dd565b60ff198616895284890196506108dd565b60008a81526020902060005b868110156108d55781548b8201529085019083016108bc565b505084890196505b50949897505050505050505056fea2646970667358221220e47f8bceeebd71303563d84b263c1285014ce0251dc45fdad19bb86d4ad28c7964736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x4634403100000000000000000000000000000000000000000000000000000008" }, "balance": "0x0" }, "0000000000000000000000000000000000001002": { - "code": "0x6080604052600436106100e15760003560e01c8063459463341161007f5780637b1391a6116100595780637b1391a614610275578063929a55c0146102935780639ac51fab146102b0578063e1c7392a146102c557600080fd5b8063459463341461021b578063606c0c94146102395780637a37cc591461025757600080fd5b8063244d8257116100bb578063244d825714610188578063289b3c0d146101ba578063392e53cd146101d85780633e1bbdc9146101fb57600080fd5b806316cbea511461011e57806318f062cd1461013e57806323056e991461016957600080fd5b366101195734606760008282546100f89190610796565b90915550506067546802b5e3af16b188000011610117576101176102da565b005b600080fd5b34801561012a57600080fd5b506101176101393660046107d4565b610320565b34801561014a57600080fd5b5061015361037b565b60405161016091906107f8565b60405180910390f35b34801561017557600080fd5b506067545b604051908152602001610160565b34801561019457600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610160565b3480156101c657600080fd5b506006546001600160a01b03166101a2565b3480156101e457600080fd5b5060005460ff166040519015158152602001610160565b34801561020757600080fd5b50610117610216366004610845565b610538565b34801561022757600080fd5b506005546001600160a01b03166101a2565b34801561024557600080fd5b506007546001600160a01b03166101a2565b34801561026357600080fd5b506004546001600160a01b03166101a2565b34801561028157600080fd5b506002546001600160a01b03166101a2565b34801561029f57600080fd5b5061017a6802b5e3af16b188000081565b3480156102bc57600080fd5b506101176105f4565b3480156102d157600080fd5b506101176105fe565b6066546067546040516001600160a01b0390921691829180156108fc02916000818181858888f19350505050158015610317573d6000803e3d6000fd5b50506000606755565b60005460ff161561034c5760405162461bcd60e51b8152600401610343906108ee565b60405180910390fd5b606680546001600160a01b0319166001600160a01b03929092169190911790556000805460ff19166001179055565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b0316918391506000906103c4576103c4610925565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106103f5576103f5610925565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061042657610426610925565b6001600160a01b03928316602091820292909201015260055482519116908290600390811061045757610457610925565b6001600160a01b03928316602091820292909201015260065482519116908290600490811061048857610488610925565b6001600160a01b0392831660209182029290920101526007548251911690829060059081106104b9576104b9610925565b6001600160a01b0392831660209182029290920101526008548251911690829060069081106104ea576104ea610925565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061051b5761051b610925565b6001600160a01b0390921660209283029190910190910152919050565b60005460ff161561055b5760405162461bcd60e51b8152600401610343906108ee565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a8416179055600480548216898416179055600580548216888416179055600680548216878416179055600780548216868416179055600880548216858416179055600980549091169183169190911790556105dd6106a4565b50506000805460ff19166001179055505050505050565b6105fc6102da565b565b60005460ff16156106215760405162461bcd60e51b8152600401610343906108ee565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556106956106a4565b6000805460ff19166001179055565b600180546106b19061093b565b151590506106bb57565b600080306001600160a01b031660016040516106d79190610976565b6000604051808303816000865af19150503d8060008114610714576040519150601f19603f3d011682016040523d82523d6000602084013e610719565b606091505b50915091508115610728575050565b805161078d5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b6064820152608401610343565b80518082602001fd5b600082198211156107b757634e487b7160e01b600052601160045260246000fd5b500190565b6001600160a01b03811681146107d157600080fd5b50565b6000602082840312156107e657600080fd5b81356107f1816107bc565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156108395783516001600160a01b031683529284019291840191600101610814565b50909695505050505050565b600080600080600080600080610100898b03121561086257600080fd5b883561086d816107bc565b9750602089013561087d816107bc565b9650604089013561088d816107bc565b9550606089013561089d816107bc565b945060808901356108ad816107bc565b935060a08901356108bd816107bc565b925060c08901356108cd816107bc565b915060e08901356108dd816107bc565b809150509295985092959890939650565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061094f57607f821691505b6020821081141561097057634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168061099257607f831692505b60208084108214156109b257634e487b7160e01b86526022600452602486fd5b8180156109c657600181146109d757610a04565b60ff19861689528489019650610a04565b60008a81526020902060005b868110156109fc5781548b8201529085019083016109e3565b505084890196505b50949897505050505050505056fea264697066735822122075a3c7abd4830a51012fac577864b7138380a85e822cf4e6c9e7eb40c739872f64736f6c634300080b0033", + "code": "0x6080604052600436106100e15760003560e01c8063459463341161007f5780637b1391a6116100595780637b1391a614610275578063929a55c0146102935780639ac51fab146102b0578063e1c7392a146102c557600080fd5b8063459463341461021b578063606c0c94146102395780637a37cc591461025757600080fd5b8063244d8257116100bb578063244d825714610188578063289b3c0d146101ba578063392e53cd146101d85780633e1bbdc9146101fb57600080fd5b806316cbea511461011e57806318f062cd1461013e57806323056e991461016957600080fd5b366101195734606760008282546100f89190610796565b90915550506067546802b5e3af16b188000011610117576101176102da565b005b600080fd5b34801561012a57600080fd5b506101176101393660046107d4565b610320565b34801561014a57600080fd5b5061015361037b565b60405161016091906107f8565b60405180910390f35b34801561017557600080fd5b506067545b604051908152602001610160565b34801561019457600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610160565b3480156101c657600080fd5b506006546001600160a01b03166101a2565b3480156101e457600080fd5b5060005460ff166040519015158152602001610160565b34801561020757600080fd5b50610117610216366004610845565b610538565b34801561022757600080fd5b506005546001600160a01b03166101a2565b34801561024557600080fd5b506007546001600160a01b03166101a2565b34801561026357600080fd5b506004546001600160a01b03166101a2565b34801561028157600080fd5b506002546001600160a01b03166101a2565b34801561029f57600080fd5b5061017a6802b5e3af16b188000081565b3480156102bc57600080fd5b506101176105f4565b3480156102d157600080fd5b506101176105fe565b6066546067546040516001600160a01b0390921691829180156108fc02916000818181858888f19350505050158015610317573d6000803e3d6000fd5b50506000606755565b60005460ff161561034c5760405162461bcd60e51b8152600401610343906108ee565b60405180910390fd5b606680546001600160a01b0319166001600160a01b03929092169190911790556000805460ff19166001179055565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b0316918391506000906103c4576103c4610925565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106103f5576103f5610925565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061042657610426610925565b6001600160a01b03928316602091820292909201015260055482519116908290600390811061045757610457610925565b6001600160a01b03928316602091820292909201015260065482519116908290600490811061048857610488610925565b6001600160a01b0392831660209182029290920101526007548251911690829060059081106104b9576104b9610925565b6001600160a01b0392831660209182029290920101526008548251911690829060069081106104ea576104ea610925565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061051b5761051b610925565b6001600160a01b0390921660209283029190910190910152919050565b60005460ff161561055b5760405162461bcd60e51b8152600401610343906108ee565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a8416179055600480548216898416179055600580548216888416179055600680548216878416179055600780548216868416179055600880548216858416179055600980549091169183169190911790556105dd6106a4565b50506000805460ff19166001179055505050505050565b6105fc6102da565b565b60005460ff16156106215760405162461bcd60e51b8152600401610343906108ee565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556106956106a4565b6000805460ff19166001179055565b600180546106b19061093b565b151590506106bb57565b600080306001600160a01b031660016040516106d79190610976565b6000604051808303816000865af19150503d8060008114610714576040519150601f19603f3d011682016040523d82523d6000602084013e610719565b606091505b50915091508115610728575050565b805161078d5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b6064820152608401610343565b80518082602001fd5b600082198211156107b757634e487b7160e01b600052601160045260246000fd5b500190565b6001600160a01b03811681146107d157600080fd5b50565b6000602082840312156107e657600080fd5b81356107f1816107bc565b9392505050565b6020808252825182820181905260009190848201906040850190845b818110156108395783516001600160a01b031683529284019291840191600101610814565b50909695505050505050565b600080600080600080600080610100898b03121561086257600080fd5b883561086d816107bc565b9750602089013561087d816107bc565b9650604089013561088d816107bc565b9550606089013561089d816107bc565b945060808901356108ad816107bc565b935060a08901356108bd816107bc565b925060c08901356108cd816107bc565b915060e08901356108dd816107bc565b809150509295985092959890939650565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b600181811c9082168061094f57607f821691505b6020821081141561097057634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168061099257607f831692505b60208084108214156109b257634e487b7160e01b86526022600452602486fd5b8180156109c657600181146109d757610a04565b60ff19861689528489019650610a04565b60008a81526020902060005b868110156109fc5781548b8201529085019083016109e3565b505084890196505b50949897505050505050505056fea26469706673582212207e9394bf15b5dd774246cd08e8c6182d2d954f9ca25f84abafd1488aa986856f64736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000049", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0x16cbea5100000000000000000000000000000000000000000000000000000000" + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0x16cbea5100000000000000000000000000a601f45688dba8a070722073b01527", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7": "0x7cf3672500000000000000000000000000000000000000000000000000000000" }, "balance": "0x0" }, "0000000000000000000000000000000000007001": { - "code": "0x6080604052600436106101175760003560e01c80633e1bbdc9116100a0578063754b270711610064578063754b2707146103985780637a37cc59146103b85780637b1391a6146103d6578063c2a672e0146103f4578063e1c7392a1461041457600080fd5b80633e1bbdc9146102e15780634594633414610301578063463440311461031f578063606c0c94146103345780636be9dcce1461035257600080fd5b80631e83409a116100e75780631e83409a1461023b578063244d82571461025b578063264762041461028d578063289b3c0d146102a0578063392e53cd146102be57600080fd5b80623920401461013a5780630db14e95146101935780631712b0d8146101b357806318f062cd1461021957600080fd5b36610135576002546001600160a01b0316331461013357600080fd5b005b600080fd5b34801561014657600080fd5b506101806101553660046118cf565b6001600160a01b03918216600090815260686020908152604080832093909416825291909152205490565b6040519081526020015b60405180910390f35b34801561019f57600080fd5b506101806101ae3660046118cf565b610429565b3480156101bf57600080fd5b506101d36101ce366004611908565b61048a565b60405161018a919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080918201519181019190915260a00190565b34801561022557600080fd5b5061022e6104d0565b60405161018a9190611925565b34801561024757600080fd5b50610133610256366004611908565b61068d565b34801561026757600080fd5b506003546001600160a01b03165b6040516001600160a01b03909116815260200161018a565b61013361029b366004611908565b610af4565b3480156102ac57600080fd5b506006546001600160a01b0316610275565b3480156102ca57600080fd5b5060005460ff16604051901515815260200161018a565b3480156102ed57600080fd5b506101336102fc366004611972565b610dea565b34801561030d57600080fd5b506005546001600160a01b0316610275565b34801561032b57600080fd5b50610133610ea6565b34801561034057600080fd5b506007546001600160a01b0316610275565b34801561035e57600080fd5b5061018061036d3660046118cf565b6001600160a01b03918216600090815260676020908152604080832093909416825291909152205490565b3480156103a457600080fd5b506101806103b3366004611908565b610ed8565b3480156103c457600080fd5b506004546001600160a01b0316610275565b3480156103e257600080fd5b506002546001600160a01b0316610275565b34801561040057600080fd5b5061013361040f366004611a1b565b610ef6565b34801561042057600080fd5b506101336114b4565b6000806104358461154b565b9050610440816115aa565b6001600160a01b0380861660009081526068602090815260408083209388168352929052205461047890670de0b6b3a7640000611a5d565b6104829190611a7c565b949350505050565b61049261187f565b600061049d8361154b565b90506000806104ab83611613565b9150915081836040018181516104c19190611a9e565b90525060608301525092915050565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061051957610519611ab6565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061054a5761054a611ab6565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061057b5761057b611ab6565b6001600160a01b0392831660209182029290920101526005548251911690829060039081106105ac576105ac611ab6565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106105dd576105dd611ab6565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061060e5761060e611ab6565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061063f5761063f611ab6565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061067057610670611ab6565b6001600160a01b0390921660209283029190910190910152919050565b8060006106998261154b565b90506000806106a783611613565b60025460405163426594b160e01b81526001600160a01b038881166004830152939550919350919091169063426594b190602401600060405180830381600087803b1580156106f557600080fd5b505af1158015610709573d6000803e3d6000fd5b505050506000821115610778576002546040516317066a5760e21b81526001600160a01b03868116600483015290911690635c19a95c9084906024016000604051808303818588803b15801561075e57600080fd5b505af1158015610772573d6000803e3d6000fd5b50505050505b818360400181815161078a9190611a9e565b90525060608381019182526001600160a01b038581166000908152606660209081526040808320885181546001600160a01b03191690861617815582890151600180830191909155828a015160028084019190915597516003830155608090990151600490910155928916825260678152828220338352815290829020825193840183528054808552968101549184018290529093015467ffffffffffffffff1690820152929150610840565b60405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015610893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b79190611acc565b67ffffffffffffffff16836040015167ffffffffffffffff1611156109175760405162461bcd60e51b81526020600482015260166024820152755374616b696e67506f6f6c3a206e6f7420726561647960501b6044820152606401610837565b6001600160a01b03851660009081526068602090815260408083203384529091528120805483929061094a908490611af6565b909155506000905061095b8661154b565b9050818160200181815161096f9190611af6565b905250604081018051849190610986908390611af6565b90525060808101805184919061099d908390611af6565b9052506001600160a01b038681166000908152606660209081526040808320855181546001600160a01b031916951694909417845584820151600180860191909155858201516002808701919091556060870151600387015560808701516004909601959095556067835281842033855290925282208281559081019190915501805467ffffffffffffffff1916905547831115610a7d5760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e67506f6f6c3a206e6f7420656e6f7567682062616c616e6365006044820152606401610837565b604051339084156108fc029085906000818181858888f19350505050158015610aaa573d6000803e3d6000fd5b5060405183815233906001600160a01b038816907f70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd987068906020015b60405180910390a3505050505050565b806000610b008261154b565b9050600080610b0e83611613565b60025460405163426594b160e01b81526001600160a01b038881166004830152939550919350919091169063426594b190602401600060405180830381600087803b158015610b5c57600080fd5b505af1158015610b70573d6000803e3d6000fd5b505050506000821115610bdf576002546040516317066a5760e21b81526001600160a01b03868116600483015290911690635c19a95c9084906024016000604051808303818588803b158015610bc557600080fd5b505af1158015610bd9573d6000803e3d6000fd5b50505050505b8183604001818151610bf19190611a9e565b905250606083019081526001600160a01b038481166000908152606660209081526040808320875181546001600160a01b031916951694909417845590860151600184015585015160028301559151600382015560809093015160049093019290925550610c5e8361154b565b90506000670de0b6b3a7640000610c74836115aa565b610c7e9034611a5d565b610c889190611a7c565b6001600160a01b0385166000908152606860209081526040808320338452909152812080549293508392909190610cc0908490611a9e565b925050819055503482604001818151610cd99190611a9e565b905250602082018051829190610cf0908390611a9e565b9052506001600160a01b03848116600081815260666020908152604091829020865181546001600160a01b031916908616178155908601516001820155858201516002808301919091556060870151600383015560808701516004928301555491516317066a5760e21b81529081019290925290911690635c19a95c9034906024016000604051808303818588803b158015610d8b57600080fd5b505af1158015610d9f573d6000803e3d6000fd5b50506040513481523393506001600160a01b03881692507f99039fcf0a98f484616c5196ee8b2ecfa971babf0b519848289ea4db381f85f7915060200160405180910390a350505050565b60005460ff1615610e0d5760405162461bcd60e51b815260040161083790611b0d565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610e8f61178d565b50506000805460ff19166001179055505050505050565b60005460ff1615610ec95760405162461bcd60e51b815260040161083790611b0d565b6000805460ff19166001179055565b600080610ee48361154b565b9050610eef816115aa565b9392505050565b816000610f028261154b565b9050600080610f1083611613565b60025460405163426594b160e01b81526001600160a01b038881166004830152939550919350919091169063426594b190602401600060405180830381600087803b158015610f5e57600080fd5b505af1158015610f72573d6000803e3d6000fd5b505050506000821115610fe1576002546040516317066a5760e21b81526001600160a01b03868116600483015290911690635c19a95c9084906024016000604051808303818588803b158015610fc757600080fd5b505af1158015610fdb573d6000803e3d6000fd5b50505050505b8183604001818151610ff39190611a9e565b905250606083019081526001600160a01b038481166000908152606660209081526040808320875181546001600160a01b0319169516949094178455908601516001840155850151600283015591516003820155608090930151600490930192909255506110608461154b565b905060008160400151116110b65760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e67506f6f6c3a206e6f7468696e6720746f20756e7374616b65006044820152606401610837565b6001600160a01b038416600090815260676020908152604080832033845290915290206002015467ffffffffffffffff16156111345760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e67506f6f6c3a20756e64656c65676174652070656e64696e67006044820152606401610837565b6000670de0b6b3a7640000611148836115aa565b6111529086611a5d565b61115c9190611a7c565b6001600160a01b03861660009081526068602090815260408083203384529091529020549091508111156111d25760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e67506f6f6c3a206e6f7420656e6f7567682073686172657300006044820152606401610837565b6002546040516326ccee8b60e11b81526001600160a01b0387811660048301526024820187905290911690634d99dd1690604401600060405180830381600087803b15801561122057600080fd5b505af1158015611234573d6000803e3d6000fd5b505050506000600260009054906101000a90046001600160a01b03166001600160a01b031663606c0c946040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b19190611b44565b90506040518060600160405280868152602001838152602001826001600160a01b0316635e7b72ad6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c9190611b61565b63ffffffff16600260009054906101000a90046001600160a01b03166001600160a01b031663aea0e78b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a99190611acc565b6113b39190611b87565b67ffffffffffffffff9081169091526001600160a01b0388166000908152606760209081526040808320338452825291829020845181559084015160018201559201516002909201805467ffffffffffffffff191692909116919091179055608083018051869190611426908390611a9e565b9052506001600160a01b03868116600081815260666020908152604091829020875181546001600160a01b03191695169490941784558681015160018501558682015160028501556060870151600385015560808701516004909401939093555187815233927f390b1276974b9463e5d66ab10df69b6f3d7b930eb066a0e66df327edd2cc811c9101610ae4565b60005460ff16156114d75760405162461bcd60e51b815260040161083790611b0d565b600280546001600160a01b03199081166110001790915560038054821661100117905560048054821661100217905560058054821661700117905560068054821661700217905560078054821661700317905560088054821661700417905560098054909116617005179055610ec961178d565b61155361187f565b506001600160a01b0316600081815260666020908152604091829020825160a08101845260018201549281019290925260028101549282019290925260038201546060820152600490910154608082015290815290565b6000806115b683611613565b50905060008184604001516115cb9190611a9e565b9050806115e35750670de0b6b3a76400009392505050565b806001828660200151670de0b6b3a76400006115ff9190611a5d565b6116099190611a9e565b6104789190611af6565b600254815160405163295bdf5160e11b81526001600160a01b039182166004820152306024820152600092839283929116906352b7bea290604401602060405180830381865afa15801561166b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168f9190611bb3565b90508360600151816116a19190611a9e565b90508360800151816116b39190611af6565b9050670de0b6b3a76400006116c88183611a7c565b6116d29190611a5d565b9250600760009054906101000a90046001600160a01b03166001600160a01b031663eea9a01b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611727573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061174b9190611acc565b67ffffffffffffffff16611767670de0b6b3a764000085611a7c565b101561177857600094909350915050565b826117838183611af6565b9250925050915091565b6001805461179a90611bcc565b151590506117a457565b600080306001600160a01b031660016040516117c09190611c07565b6000604051808303816000865af19150503d80600081146117fd576040519150601f19603f3d011682016040523d82523d6000602084013e611802565b606091505b50915091508115611811575050565b80516118765760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b6064820152608401610837565b80518082602001fd5b6040518060a0016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b03811681146118cc57600080fd5b50565b600080604083850312156118e257600080fd5b82356118ed816118b7565b915060208301356118fd816118b7565b809150509250929050565b60006020828403121561191a57600080fd5b8135610eef816118b7565b6020808252825182820181905260009190848201906040850190845b818110156119665783516001600160a01b031683529284019291840191600101611941565b50909695505050505050565b600080600080600080600080610100898b03121561198f57600080fd5b883561199a816118b7565b975060208901356119aa816118b7565b965060408901356119ba816118b7565b955060608901356119ca816118b7565b945060808901356119da816118b7565b935060a08901356119ea816118b7565b925060c08901356119fa816118b7565b915060e0890135611a0a816118b7565b809150509295985092959890939650565b60008060408385031215611a2e57600080fd5b8235611a39816118b7565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611a7757611a77611a47565b500290565b600082611a9957634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611ab157611ab1611a47565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ade57600080fd5b815167ffffffffffffffff81168114610eef57600080fd5b600082821015611b0857611b08611a47565b500390565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b600060208284031215611b5657600080fd5b8151610eef816118b7565b600060208284031215611b7357600080fd5b815163ffffffff81168114610eef57600080fd5b600067ffffffffffffffff808316818516808303821115611baa57611baa611a47565b01949350505050565b600060208284031215611bc557600080fd5b5051919050565b600181811c90821680611be057607f821691505b60208210811415611c0157634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680611c2357607f831692505b6020808410821415611c4357634e487b7160e01b86526022600452602486fd5b818015611c575760018114611c6857611c95565b60ff19861689528489019650611c95565b60008a81526020902060005b86811015611c8d5781548b820152908501908301611c74565b505084890196505b50949897505050505050505056fea26469706673582212208a975193d5de35f29123e17390a140602331507fc389e592232f5eac62c5d4c164736f6c634300080b0033", + "code": "0x6080604052600436106101175760003560e01c80633e1bbdc9116100a0578063754b270711610064578063754b2707146103985780637a37cc59146103b85780637b1391a6146103d6578063c2a672e0146103f4578063e1c7392a1461041457600080fd5b80633e1bbdc9146102e15780634594633414610301578063463440311461031f578063606c0c94146103345780636be9dcce1461035257600080fd5b80631e83409a116100e75780631e83409a1461023b578063244d82571461025b578063264762041461028d578063289b3c0d146102a0578063392e53cd146102be57600080fd5b80623920401461013a5780630db14e95146101935780631712b0d8146101b357806318f062cd1461021957600080fd5b36610135576002546001600160a01b0316331461013357600080fd5b005b600080fd5b34801561014657600080fd5b506101806101553660046118b1565b6001600160a01b03918216600090815260686020908152604080832093909416825291909152205490565b6040519081526020015b60405180910390f35b34801561019f57600080fd5b506101806101ae3660046118b1565b610429565b3480156101bf57600080fd5b506101d36101ce3660046118ea565b61048a565b60405161018a919081516001600160a01b031681526020808301519082015260408083015190820152606080830151908201526080918201519181019190915260a00190565b34801561022557600080fd5b5061022e6104d0565b60405161018a9190611907565b34801561024757600080fd5b506101336102563660046118ea565b61068d565b34801561026757600080fd5b506003546001600160a01b03165b6040516001600160a01b03909116815260200161018a565b61013361029b3660046118ea565b610af4565b3480156102ac57600080fd5b506006546001600160a01b0316610275565b3480156102ca57600080fd5b5060005460ff16604051901515815260200161018a565b3480156102ed57600080fd5b506101336102fc366004611954565b610dea565b34801561030d57600080fd5b506005546001600160a01b0316610275565b34801561032b57600080fd5b50610133610ea6565b34801561034057600080fd5b506007546001600160a01b0316610275565b34801561035e57600080fd5b5061018061036d3660046118b1565b6001600160a01b03918216600090815260676020908152604080832093909416825291909152205490565b3480156103a457600080fd5b506101806103b33660046118ea565b610ed8565b3480156103c457600080fd5b506004546001600160a01b0316610275565b3480156103e257600080fd5b506002546001600160a01b0316610275565b34801561040057600080fd5b5061013361040f3660046119fd565b610ef6565b34801561042057600080fd5b506101336114b4565b6000806104358461154b565b9050610440816115aa565b6001600160a01b0380861660009081526068602090815260408083209388168352929052205461047890670de0b6b3a7640000611a3f565b6104829190611a5e565b949350505050565b610492611861565b600061049d8361154b565b90506000806104ab83611613565b9150915081836040018181516104c19190611a80565b90525060608301525092915050565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061051957610519611a98565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061054a5761054a611a98565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061057b5761057b611a98565b6001600160a01b0392831660209182029290920101526005548251911690829060039081106105ac576105ac611a98565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106105dd576105dd611a98565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061060e5761060e611a98565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061063f5761063f611a98565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061067057610670611a98565b6001600160a01b0390921660209283029190910190910152919050565b8060006106998261154b565b90506000806106a783611613565b60025460405163426594b160e01b81526001600160a01b038881166004830152939550919350919091169063426594b190602401600060405180830381600087803b1580156106f557600080fd5b505af1158015610709573d6000803e3d6000fd5b505050506000821115610778576002546040516317066a5760e21b81526001600160a01b03868116600483015290911690635c19a95c9084906024016000604051808303818588803b15801561075e57600080fd5b505af1158015610772573d6000803e3d6000fd5b50505050505b818360400181815161078a9190611a80565b90525060608381019182526001600160a01b038581166000908152606660209081526040808320885181546001600160a01b03191690861617815582890151600180830191909155828a015160028084019190915597516003830155608090990151600490910155928916825260678152828220338352815290829020825193840183528054808552968101549184018290529093015467ffffffffffffffff1690820152929150610840565b60405180910390fd5b600260009054906101000a90046001600160a01b03166001600160a01b031663766718086040518163ffffffff1660e01b8152600401602060405180830381865afa158015610893573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906108b79190611aae565b67ffffffffffffffff16836040015167ffffffffffffffff1611156109175760405162461bcd60e51b81526020600482015260166024820152755374616b696e67506f6f6c3a206e6f7420726561647960501b6044820152606401610837565b6001600160a01b03851660009081526068602090815260408083203384529091528120805483929061094a908490611ad8565b909155506000905061095b8661154b565b9050818160200181815161096f9190611ad8565b905250604081018051849190610986908390611ad8565b90525060808101805184919061099d908390611ad8565b9052506001600160a01b038681166000908152606660209081526040808320855181546001600160a01b031916951694909417845584820151600180860191909155858201516002808701919091556060870151600387015560808701516004909601959095556067835281842033855290925282208281559081019190915501805467ffffffffffffffff1916905547831115610a7d5760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e67506f6f6c3a206e6f7420656e6f7567682062616c616e6365006044820152606401610837565b604051339084156108fc029085906000818181858888f19350505050158015610aaa573d6000803e3d6000fd5b5060405183815233906001600160a01b038816907f70eb43c4a8ae8c40502dcf22436c509c28d6ff421cf07c491be56984bd987068906020015b60405180910390a3505050505050565b806000610b008261154b565b9050600080610b0e83611613565b60025460405163426594b160e01b81526001600160a01b038881166004830152939550919350919091169063426594b190602401600060405180830381600087803b158015610b5c57600080fd5b505af1158015610b70573d6000803e3d6000fd5b505050506000821115610bdf576002546040516317066a5760e21b81526001600160a01b03868116600483015290911690635c19a95c9084906024016000604051808303818588803b158015610bc557600080fd5b505af1158015610bd9573d6000803e3d6000fd5b50505050505b8183604001818151610bf19190611a80565b905250606083019081526001600160a01b038481166000908152606660209081526040808320875181546001600160a01b031916951694909417845590860151600184015585015160028301559151600382015560809093015160049093019290925550610c5e8361154b565b90506000670de0b6b3a7640000610c74836115aa565b610c7e9034611a3f565b610c889190611a5e565b6001600160a01b0385166000908152606860209081526040808320338452909152812080549293508392909190610cc0908490611a80565b925050819055503482604001818151610cd99190611a80565b905250602082018051829190610cf0908390611a80565b9052506001600160a01b03848116600081815260666020908152604091829020865181546001600160a01b031916908616178155908601516001820155858201516002808301919091556060870151600383015560808701516004928301555491516317066a5760e21b81529081019290925290911690635c19a95c9034906024016000604051808303818588803b158015610d8b57600080fd5b505af1158015610d9f573d6000803e3d6000fd5b50506040513481523393506001600160a01b03881692507f99039fcf0a98f484616c5196ee8b2ecfa971babf0b519848289ea4db381f85f7915060200160405180910390a350505050565b60005460ff1615610e0d5760405162461bcd60e51b815260040161083790611aef565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610e8f61176f565b50506000805460ff19166001179055505050505050565b60005460ff1615610ec95760405162461bcd60e51b815260040161083790611aef565b6000805460ff19166001179055565b600080610ee48361154b565b9050610eef816115aa565b9392505050565b816000610f028261154b565b9050600080610f1083611613565b60025460405163426594b160e01b81526001600160a01b038881166004830152939550919350919091169063426594b190602401600060405180830381600087803b158015610f5e57600080fd5b505af1158015610f72573d6000803e3d6000fd5b505050506000821115610fe1576002546040516317066a5760e21b81526001600160a01b03868116600483015290911690635c19a95c9084906024016000604051808303818588803b158015610fc757600080fd5b505af1158015610fdb573d6000803e3d6000fd5b50505050505b8183604001818151610ff39190611a80565b905250606083019081526001600160a01b038481166000908152606660209081526040808320875181546001600160a01b0319169516949094178455908601516001840155850151600283015591516003820155608090930151600490930192909255506110608461154b565b905060008160400151116110b65760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e67506f6f6c3a206e6f7468696e6720746f20756e7374616b65006044820152606401610837565b6001600160a01b038416600090815260676020908152604080832033845290915290206002015467ffffffffffffffff16156111345760405162461bcd60e51b815260206004820152601f60248201527f5374616b696e67506f6f6c3a20756e64656c65676174652070656e64696e67006044820152606401610837565b6000670de0b6b3a7640000611148836115aa565b6111529086611a3f565b61115c9190611a5e565b6001600160a01b03861660009081526068602090815260408083203384529091529020549091508111156111d25760405162461bcd60e51b815260206004820152601e60248201527f5374616b696e67506f6f6c3a206e6f7420656e6f7567682073686172657300006044820152606401610837565b6002546040516326ccee8b60e11b81526001600160a01b0387811660048301526024820187905290911690634d99dd1690604401600060405180830381600087803b15801561122057600080fd5b505af1158015611234573d6000803e3d6000fd5b505050506000600260009054906101000a90046001600160a01b03166001600160a01b031663606c0c946040518163ffffffff1660e01b8152600401602060405180830381865afa15801561128d573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906112b19190611b26565b90506040518060600160405280868152602001838152602001826001600160a01b0316635e7b72ad6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611308573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061132c9190611b43565b63ffffffff16600260009054906101000a90046001600160a01b03166001600160a01b031663aea0e78b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611385573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113a99190611aae565b6113b39190611b69565b67ffffffffffffffff9081169091526001600160a01b0388166000908152606760209081526040808320338452825291829020845181559084015160018201559201516002909201805467ffffffffffffffff191692909116919091179055608083018051869190611426908390611a80565b9052506001600160a01b03868116600081815260666020908152604091829020875181546001600160a01b03191695169490941784558681015160018501558682015160028501556060870151600385015560808701516004909401939093555187815233927f390b1276974b9463e5d66ab10df69b6f3d7b930eb066a0e66df327edd2cc811c9101610ae4565b60005460ff16156114d75760405162461bcd60e51b815260040161083790611aef565b600280546001600160a01b03199081166110001790915560038054821661100117905560048054821661100217905560058054821661700117905560068054821661700217905560078054821661700317905560088054821661700417905560098054909116617005179055610ec961176f565b611553611861565b506001600160a01b0316600081815260666020908152604091829020825160a08101845260018201549281019290925260028101549282019290925260038201546060820152600490910154608082015290815290565b6000806115b683611613565b50905060008184604001516115cb9190611a80565b9050806115e35750670de0b6b3a76400009392505050565b806001828660200151670de0b6b3a76400006115ff9190611a3f565b6116099190611a80565b6104789190611ad8565b600254815160405163295bdf5160e11b81526001600160a01b039182166004820152306024820152600092839283929116906352b7bea290604401602060405180830381865afa15801561166b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061168f9190611b95565b90508360600151816116a19190611a80565b90508360800151816116b39190611ad8565b90506402540be4006116c58183611a5e565b6116cf9190611a3f565b9250600760009054906101000a90046001600160a01b03166001600160a01b031663eea9a01b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015611724573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117489190611b95565b83101561175a57600094909350915050565b826117658183611ad8565b9250925050915091565b6001805461177c90611bae565b1515905061178657565b600080306001600160a01b031660016040516117a29190611be9565b6000604051808303816000865af19150503d80600081146117df576040519150601f19603f3d011682016040523d82523d6000602084013e6117e4565b606091505b509150915081156117f3575050565b80516118585760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b6064820152608401610837565b80518082602001fd5b6040518060a0016040528060006001600160a01b03168152602001600081526020016000815260200160008152602001600081525090565b6001600160a01b03811681146118ae57600080fd5b50565b600080604083850312156118c457600080fd5b82356118cf81611899565b915060208301356118df81611899565b809150509250929050565b6000602082840312156118fc57600080fd5b8135610eef81611899565b6020808252825182820181905260009190848201906040850190845b818110156119485783516001600160a01b031683529284019291840191600101611923565b50909695505050505050565b600080600080600080600080610100898b03121561197157600080fd5b883561197c81611899565b9750602089013561198c81611899565b9650604089013561199c81611899565b955060608901356119ac81611899565b945060808901356119bc81611899565b935060a08901356119cc81611899565b925060c08901356119dc81611899565b915060e08901356119ec81611899565b809150509295985092959890939650565b60008060408385031215611a1057600080fd5b8235611a1b81611899565b946020939093013593505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615611a5957611a59611a29565b500290565b600082611a7b57634e487b7160e01b600052601260045260246000fd5b500490565b60008219821115611a9357611a93611a29565b500190565b634e487b7160e01b600052603260045260246000fd5b600060208284031215611ac057600080fd5b815167ffffffffffffffff81168114610eef57600080fd5b600082821015611aea57611aea611a29565b500390565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b600060208284031215611b3857600080fd5b8151610eef81611899565b600060208284031215611b5557600080fd5b815163ffffffff81168114610eef57600080fd5b600067ffffffffffffffff808316818516808303821115611b8c57611b8c611a29565b01949350505050565b600060208284031215611ba757600080fd5b5051919050565b600181811c90821680611bc257607f821691505b60208210811415611be357634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680611c0557607f831692505b6020808410821415611c2557634e487b7160e01b86526022600452602486fd5b818015611c395760018114611c4a57611c77565b60ff19861689528489019650611c77565b60008a81526020902060005b86811015611c6f5781548b820152908501908301611c56565b505084890196505b50949897505050505050505056fea2646970667358221220a2b4713d610811d23815e8ebca2e43693142a2e8a553a6473f67bbfe5a91028564736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x4634403100000000000000000000000000000000000000000000000000000008" }, "balance": "0x0" }, "0000000000000000000000000000000000007002": { - "code": "0x6080604052600436106102285760003560e01c80635678138811610123578063bb4d4436116100ab578063e1c7392a1161006f578063e1c7392a146106f4578063ea0217cf14610709578063eb9019d414610729578063ece40cc114610749578063f8ce560a1461076957600080fd5b8063bb4d44361461061a578063c01f9e371461063a578063c59057e41461065a578063dd4e2ba51461067a578063deaaa7cc146106c057600080fd5b80637a37cc59116100f25780637a37cc59146105895780637b1391a6146105a75780637b3c71d3146105c55780637d5e81e2146105e5578063b58131b01461060557600080fd5b8063567813881461051657806359fe2ccf14610536578063606c0c941461054b57806370b0f6601461056957600080fd5b80632d63f693116101b15780633e4f49e6116101755780633e4f49e614610402578063438596321461042f5780634594633414610479578063544ffc9c1461049757806354fd4d50146104ec57600080fd5b80632d63f69314610375578063392e53cd146103955780633932abb1146103ad5780633bccf4fd146103c25780633e1bbdc9146103e257600080fd5b80630eb448fa116101f85780630eb448fa146102d057806318f062cd146102f0578063244d8257146103125780632656227d14610344578063289b3c0d1461035757600080fd5b8062f8df171461023657806301ffc9a71461025657806302a251a31461028b57806306fdde03146102ae57600080fd5b3661023157005b005b600080fd5b34801561024257600080fd5b5061022f6102513660046125ac565b610789565b34801561026257600080fd5b506102766102713660046125c5565b6107ce565b60405190151581526020015b60405180910390f35b34801561029757600080fd5b506102a0610805565b604051908152602001610282565b3480156102ba57600080fd5b506102c3610824565b604051610282919061264b565b3480156102dc57600080fd5b506102a06102eb3660046128b6565b6108b6565b3480156102fc57600080fd5b506103056109d7565b60405161028291906129ae565b34801561031e57600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610282565b6102a06103523660046129c1565b610b94565b34801561036357600080fd5b506006546001600160a01b031661032c565b34801561038157600080fd5b506102a06103903660046125ac565b610ca7565b3480156103a157600080fd5b5060005460ff16610276565b3480156103b957600080fd5b506102a0610cde565b3480156103ce57600080fd5b506102a06103dd366004612a5f565b610ce9565b3480156103ee57600080fd5b5061022f6103fd366004612ab1565b610d7d565b34801561040e57600080fd5b5061042261041d3660046125ac565b610e39565b6040516102829190612b70565b34801561043b57600080fd5b5061027661044a366004612b98565b60008281526068602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b34801561048557600080fd5b506005546001600160a01b031661032c565b3480156104a357600080fd5b506104d16104b23660046125ac565b6000908152606860205260409020805460018201546002909201549092565b60408051938452602084019290925290820152606001610282565b3480156104f857600080fd5b506040805180820190915260018152603160f81b60208201526102c3565b34801561052257600080fd5b506102a0610531366004612bc8565b610f9e565b34801561054257600080fd5b506102a06110ad565b34801561055757600080fd5b506007546001600160a01b031661032c565b34801561057557600080fd5b5061022f6105843660046125ac565b6110b8565b34801561059557600080fd5b506004546001600160a01b031661032c565b3480156105b357600080fd5b506002546001600160a01b031661032c565b3480156105d157600080fd5b506102a06105e0366004612bed565b6110e3565b3480156105f157600080fd5b506102a0610600366004612c75565b61112b565b34801561061157600080fd5b506102a0611234565b34801561062657600080fd5b506102a0610635366004612d21565b61123f565b34801561064657600080fd5b506102a06106553660046125ac565b61124b565b34801561066657600080fd5b506102a06106753660046129c1565b61127a565b34801561068657600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e908201526102c3565b3480156106cc57600080fd5b506102a07f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b34801561070057600080fd5b5061022f6112b4565b34801561071557600080fd5b5061022f6107243660046125ac565b61135a565b34801561073557600080fd5b506102a0610744366004612d3e565b611382565b34801561075557600080fd5b5061022f6107643660046125ac565b61138e565b34801561077557600080fd5b506102a06107843660046125ac565b6113b6565b60005460ff16156107b55760405162461bcd60e51b81526004016107ac90612d6a565b60405180910390fd5b6107be816113db565b506000805460ff19166001179055565b60006001600160e01b0319821663bf26d89760e01b14806107ff57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000606c546000146108185750606c5490565b50606a5490565b905090565b60606066805461083390612da1565b80601f016020809104026020016040519081016040528092919081815260200182805461085f90612da1565b80156108ac5780601f10610881576101008083540402835291602001916108ac565b820191906000526020600020905b81548152906001019060200180831161088f57829003601f168201915b5050505050905090565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109279190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190612df3565b6109b35760405162461bcd60e51b81526004016107ac90612e15565b606c83905560006109c68888888861112b565b6000606c5598975050505050505050565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b031691839150600090610a2057610a20612e4a565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610a5157610a51612e4a565b6001600160a01b039283166020918202929092010152600454825191169082906002908110610a8257610a82612e4a565b6001600160a01b039283166020918202929092010152600554825191169082906003908110610ab357610ab3612e4a565b6001600160a01b039283166020918202929092010152600654825191169082906004908110610ae457610ae4612e4a565b6001600160a01b039283166020918202929092010152600754825191169082906005908110610b1557610b15612e4a565b6001600160a01b039283166020918202929092010152600854825191169082906006908110610b4657610b46612e4a565b6001600160a01b039283166020918202929092010152600954825191169082906007908110610b7757610b77612e4a565b6001600160a01b0390921660209283029190910190910152919050565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c059190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa158015610c51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c759190612df3565b610c915760405162461bcd60e51b81526004016107ac90612e15565b610c9d8686868661147c565b9695505050505050565b60008181526067602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b600061081f60695490565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610d5590610d4d906080016040516020818303038152906040528051906020012061158e565b8686866115dc565b9050610d72878288604051806020016040528060008152506115fa565b979650505050505050565b60005460ff1615610da05760405162461bcd60e51b81526004016107ac90612d6a565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610e22611704565b50506000805460ff19166001179055505050505050565b6000818152606760209081526040808320815160a08101835281546001600160401b039081166080830190815282528351808601855260018401549091168152938101939093526002015460ff808216158015938501939093526101009091041615156060830152610eae5750600792915050565b806060015115610ec15750600292915050565b80515143906001600160401b031610610edd5750600092915050565b43610eea82602001515190565b6001600160401b031610610f015750600192915050565b610f0e81602001516117f6565b15610f5057610f1c83611825565b8015610f3b575060008381526068602052604090208054600190910154115b610f46576003610f49565b60045b9392505050565b60405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c20696400000060448201526064016107ac565b50919050565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015610feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100f9190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190612df3565b61109b5760405162461bcd60e51b81526004016107ac90612e15565b6110a5848461185c565b949350505050565b600061081f4361187d565b3330146110d75760405162461bcd60e51b81526004016107ac90612e60565b6110e081611951565b50565b600080339050610c9d86828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115fa92505050565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015611178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119c9190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa1580156111e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120c9190612df3565b6112285760405162461bcd60e51b81526004016107ac90612e15565b610c9d86868686611992565b600061081f606b5490565b60006107ff8243611c6d565b60008181526067602090815260408083208151928301909152600101546001600160401b031690819052610ccf565b6000848484846040516020016112939493929190612f1c565b60408051601f19818403018152919052805160209091012095945050505050565b60005460ff16156112d75760405162461bcd60e51b81526004016107ac90612d6a565b600280546001600160a01b0319908116611000179091556003805482166110011790556004805482166110021790556005805482166170011790556006805482166170021790556007805482166170031790556008805482166170041790556009805490911661700517905561134b611704565b6000805460ff19166001179055565b3330146113795760405162461bcd60e51b81526004016107ac90612e60565b6110e0816113db565b6000610f498383611c6d565b3330146113ad5760405162461bcd60e51b81526004016107ac90612e60565b6110e081611e72565b6000806113c28361187d565b905060036113d1826002612f7d565b610f499190612f9c565b6000811161143b5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084016107ac565b606a5460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1606a55565b60008061148b8686868661127a565b9050600061149882610e39565b905060048160078111156114ae576114ae612b5a565b14806114cb575060058160078111156114c9576114c9612b5a565b145b6115215760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756044820152601b60fa1b60648201526084016107ac565b60008281526067602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f9061156f9084815260200190565b60405180910390a16115848288888888611eb3565b5095945050505050565b60006107ff61159b611fb2565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006115ed878787876120d9565b91509150611584816121c6565b6000848152606760205260408120600161161387610e39565b600781111561162457611624612b5a565b1461167d5760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b60648201526084016107ac565b604080516020810190915281546001600160401b0316908190526000906116a5908790611382565b90506116b387878784612381565b856001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4888784886040516116f29493929190612fbe565b60405180910390a29695505050505050565b6001805461171190612da1565b1515905061171b57565b600080306001600160a01b031660016040516117379190612fe6565b6000604051808303816000865af19150503d8060008114611774576040519150601f19603f3d011682016040523d82523d6000602084013e611779565b606091505b50915091508115611788575050565b80516117ed5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016107ac565b80518082602001fd5b600061180b82516001600160401b0316151590565b80156107ff57505051436001600160401b03909116111590565b6000818152606860205260408120600281015460018201546118479190613082565b61185361078485610ca7565b11159392505050565b6000803390506110a5848285604051806020016040528060008152506115fa565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663b7ab4db56040518163ffffffff1660e01b8152600401600060405180830381865afa1580156118d3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118fb919081019061309a565b905060005b815181101561194a5761192c82828151811061191e5761191e612e4a565b602002602001015185611c6d565b6119369084613082565b92508061194281613128565b915050611900565b5050919050565b60695460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1606955565b600061199c611234565b6119ab33610744600143613143565b1015611a2b5760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a2070726f7060448201527f6f73657220766f7465732062656c6f772070726f706f73616c207468726573686064820152621bdb1960ea1b608482015260a4016107ac565b6000611a40868686868051906020012061127a565b90508451865114611a635760405162461bcd60e51b81526004016107ac9061315a565b8351865114611a845760405162461bcd60e51b81526004016107ac9061315a565b6000865111611ad55760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c000000000000000060448201526064016107ac565b600081815260676020908152604091829020825191820190925281546001600160401b03169081905215611b555760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b60648201526084016107ac565b6000611b67611b62610cde565b612507565b611b7043612507565b611b7a919061319b565b90506000611b89611b62610805565b611b93908361319b565b835467ffffffffffffffff19166001600160401b038416178455905060018301805467ffffffffffffffff19166001600160401b0383161790557f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b03811115611c0b57611c0b61265e565b604051908082528060200260200182016040528015611c3e57816020015b6060815260200190600190039081611c295790505b508c88888e604051611c58999897969594939291906131c6565b60405180910390a15091979650505050505050565b600254604051631808461160e11b81526001600160a01b03848116600483015260009283929116906330108c2290602401602060405180830381865afa158015611cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdf9190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa158015611d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4f9190612df3565b611d5d5760009150506107ff565b6007546040805163068d921560e31b815290516000926001600160a01b03169163346c90a89160048083019260209291908290030181865afa158015611da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dcb91906132ce565b611ddb9063ffffffff1685612f9c565b600254604051632409269360e11b81526001600160a01b0385811660048301526001600160401b0384166024830152929350600092909116906348124d269060440161012060405180830381865afa158015611e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5f9190613300565b50949d9c50505050505050505050505050565b606b5460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1606b55565b60006040518060600160405280602781526020016133e360279139905060005b8551811015611fa957600080878381518110611ef157611ef1612e4a565b60200260200101516001600160a01b0316878481518110611f1457611f14612e4a565b6020026020010151878581518110611f2e57611f2e612e4a565b6020026020010151604051611f4391906133c6565b60006040518083038185875af1925050503d8060008114611f80576040519150601f19603f3d011682016040523d82523d6000602084013e611f85565b606091505b5091509150611f95828286612573565b50505080611fa290613128565b9050611ed3565b50505050505050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000070021614801561200b57507f000000000000000000000000000000000000000000000000000000000000435a46145b1561203557507f7ccb923ce2b6e408c332b76cfea43103057086aed9c8aa3cd4d40774a371844690565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527fdf276cb73863748bcb662935108dff7c987850f3e7a793f7f6131790b165e92f828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561211057506000905060036121bd565b8460ff16601b1415801561212857508460ff16601c14155b1561213957506000905060046121bd565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561218d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166121b6576000600192509250506121bd565b9150600090505b94509492505050565b60008160048111156121da576121da612b5a565b14156121e35750565b60018160048111156121f7576121f7612b5a565b14156122455760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016107ac565b600281600481111561225957612259612b5a565b14156122a75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016107ac565b60038160048111156122bb576122bb612b5a565b14156123145760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016107ac565b600481600481111561232857612328612b5a565b14156110e05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016107ac565b60008481526068602090815260408083206001600160a01b0387168452600381019092529091205460ff16156124095760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561604482015266191e4818d85cdd60ca1b60648201526084016107ac565b6001600160a01b03841660009081526003820160205260408120805460ff1916600117905560ff168360ff16141561245a578181600001600082825461244f9190613082565b909155506125009050565b60ff83166001141561247a578181600101600082825461244f9190613082565b60ff83166002141561249a578181600201600082825461244f9190613082565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b60648201526084016107ac565b5050505050565b60006001600160401b0382111561256f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016107ac565b5090565b60608315612582575081610f49565b8251156125925782518084602001fd5b8160405162461bcd60e51b81526004016107ac919061264b565b6000602082840312156125be57600080fd5b5035919050565b6000602082840312156125d757600080fd5b81356001600160e01b031981168114610f4957600080fd5b60005b8381101561260a5781810151838201526020016125f2565b83811115612619576000848401525b50505050565b600081518084526126378160208601602086016125ef565b601f01601f19169290920160200192915050565b602081526000610f49602083018461261f565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561269c5761269c61265e565b604052919050565b60006001600160401b038211156126bd576126bd61265e565b5060051b60200190565b6001600160a01b03811681146110e057600080fd5b600082601f8301126126ed57600080fd5b813560206127026126fd836126a4565b612674565b82815260059290921b8401810191818101908684111561272157600080fd5b8286015b84811015612745578035612738816126c7565b8352918301918301612725565b509695505050505050565b600082601f83011261276157600080fd5b813560206127716126fd836126a4565b82815260059290921b8401810191818101908684111561279057600080fd5b8286015b848110156127455780358352918301918301612794565b60006001600160401b038311156127c4576127c461265e565b6127d7601f8401601f1916602001612674565b90508281528383830111156127eb57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261281357600080fd5b813560206128236126fd836126a4565b82815260059290921b8401810191818101908684111561284257600080fd5b8286015b848110156127455780356001600160401b038111156128655760008081fd5b8701603f810189136128775760008081fd5b6128888986830135604084016127ab565b845250918301918301612846565b600082601f8301126128a757600080fd5b610f49838335602085016127ab565b600080600080600060a086880312156128ce57600080fd5b85356001600160401b03808211156128e557600080fd5b6128f189838a016126dc565b9650602088013591508082111561290757600080fd5b61291389838a01612750565b9550604088013591508082111561292957600080fd5b61293589838a01612802565b9450606088013591508082111561294b57600080fd5b5061295888828901612896565b95989497509295608001359392505050565b600081518084526020808501945080840160005b838110156129a35781516001600160a01b03168752958201959082019060010161297e565b509495945050505050565b602081526000610f49602083018461296a565b600080600080608085870312156129d757600080fd5b84356001600160401b03808211156129ee57600080fd5b6129fa888389016126dc565b95506020870135915080821115612a1057600080fd5b612a1c88838901612750565b94506040870135915080821115612a3257600080fd5b50612a3f87828801612802565b949793965093946060013593505050565b60ff811681146110e057600080fd5b600080600080600060a08688031215612a7757600080fd5b853594506020860135612a8981612a50565b93506040860135612a9981612a50565b94979396509394606081013594506080013592915050565b600080600080600080600080610100898b031215612ace57600080fd5b8835612ad9816126c7565b97506020890135612ae9816126c7565b96506040890135612af9816126c7565b95506060890135612b09816126c7565b94506080890135612b19816126c7565b935060a0890135612b29816126c7565b925060c0890135612b39816126c7565b915060e0890135612b49816126c7565b809150509295985092959890939650565b634e487b7160e01b600052602160045260246000fd5b6020810160088310612b9257634e487b7160e01b600052602160045260246000fd5b91905290565b60008060408385031215612bab57600080fd5b823591506020830135612bbd816126c7565b809150509250929050565b60008060408385031215612bdb57600080fd5b823591506020830135612bbd81612a50565b60008060008060608587031215612c0357600080fd5b843593506020850135612c1581612a50565b925060408501356001600160401b0380821115612c3157600080fd5b818701915087601f830112612c4557600080fd5b813581811115612c5457600080fd5b886020828501011115612c6657600080fd5b95989497505060200194505050565b60008060008060808587031215612c8b57600080fd5b84356001600160401b0380821115612ca257600080fd5b612cae888389016126dc565b95506020870135915080821115612cc457600080fd5b612cd088838901612750565b94506040870135915080821115612ce657600080fd5b612cf288838901612802565b93506060870135915080821115612d0857600080fd5b50612d1587828801612896565b91505092959194509250565b600060208284031215612d3357600080fd5b8135610f49816126c7565b60008060408385031215612d5157600080fd5b8235612d5c816126c7565b946020939093013593505050565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b600181811c90821680612db557607f821691505b60208210811415610f9857634e487b7160e01b600052602260045260246000fd5b600060208284031215612de857600080fd5b8151610f49816126c7565b600060208284031215612e0557600080fd5b81518015158114610f4957600080fd5b6020808252818101527f476f7665726e616e63653a206f6e6c792076616c696461746f72206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600081518084526020808501945080840160005b838110156129a357815187529582019590820190600101612eab565b600081518084526020808501808196508360051b8101915082860160005b85811015612f0f578284038952612efd84835161261f565b98850198935090840190600101612ee5565b5091979650505050505050565b608081526000612f2f608083018761296a565b8281036020840152612f418187612e97565b90508281036040840152612f558186612ec7565b91505082606083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612f9757612f97612f67565b500290565b600082612fb957634e487b7160e01b600052601260045260246000fd5b500490565b84815260ff84166020820152826040820152608060608201526000610c9d608083018461261f565b600080835481600182811c91508083168061300257607f831692505b602080841082141561302257634e487b7160e01b86526022600452602486fd5b818015613036576001811461304757613074565b60ff19861689528489019650613074565b60008a81526020902060005b8681101561306c5781548b820152908501908301613053565b505084890196505b509498975050505050505050565b6000821982111561309557613095612f67565b500190565b600060208083850312156130ad57600080fd5b82516001600160401b038111156130c357600080fd5b8301601f810185136130d457600080fd5b80516130e26126fd826126a4565b81815260059190911b8201830190838101908783111561310157600080fd5b928401925b82841015610d72578351613119816126c7565b82529284019290840190613106565b600060001982141561313c5761313c612f67565b5060010190565b60008282101561315557613155612f67565b500390565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b60006001600160401b038083168185168083038211156131bd576131bd612f67565b01949350505050565b60006101208b8352602060018060a01b038c16818501528160408501526131ef8285018c61296a565b91508382036060850152613203828b612e97565b915083820360808501528189518084528284019150828160051b850101838c0160005b8381101561325457601f1987840301855261324283835161261f565b94860194925090850190600101613226565b505086810360a0880152613268818c612ec7565b94505050505061328360c08401876001600160401b03169052565b6001600160401b03851660e08401528281036101008401526132a5818561261f565b9c9b505050505050505050505050565b805163ffffffff811681146132c957600080fd5b919050565b6000602082840312156132e057600080fd5b610f49826132b5565b80516001600160401b03811681146132c957600080fd5b60008060008060008060008060006101208a8c03121561331f57600080fd5b895161332a816126c7565b60208b015190995061333b81612a50565b60408b0151909850965061335160608b016132b5565b955061335f60808b016132e9565b945061336d60a08b016132e9565b935061337b60c08b016132e9565b925060e08a015161ffff8116811461339257600080fd5b6101008b01519092506bffffffffffffffffffffffff811681146133b557600080fd5b809150509295985092959850929598565b600082516133d88184602087016125ef565b919091019291505056fe476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765a264697066735822122036448169e686f1243dfd7e10773c786f34777eb30feee48552cee171511cdddb64736f6c634300080b0033", + "code": "0x6080604052600436106102285760003560e01c80635678138811610123578063bb4d4436116100ab578063e1c7392a1161006f578063e1c7392a146106f4578063ea0217cf14610709578063eb9019d414610729578063ece40cc114610749578063f8ce560a1461076957600080fd5b8063bb4d44361461061a578063c01f9e371461063a578063c59057e41461065a578063dd4e2ba51461067a578063deaaa7cc146106c057600080fd5b80637a37cc59116100f25780637a37cc59146105895780637b1391a6146105a75780637b3c71d3146105c55780637d5e81e2146105e5578063b58131b01461060557600080fd5b8063567813881461051657806359fe2ccf14610536578063606c0c941461054b57806370b0f6601461056957600080fd5b80632d63f693116101b15780633e4f49e6116101755780633e4f49e614610402578063438596321461042f5780634594633414610479578063544ffc9c1461049757806354fd4d50146104ec57600080fd5b80632d63f69314610375578063392e53cd146103955780633932abb1146103ad5780633bccf4fd146103c25780633e1bbdc9146103e257600080fd5b80630eb448fa116101f85780630eb448fa146102d057806318f062cd146102f0578063244d8257146103125780632656227d14610344578063289b3c0d1461035757600080fd5b8062f8df171461023657806301ffc9a71461025657806302a251a31461028b57806306fdde03146102ae57600080fd5b3661023157005b005b600080fd5b34801561024257600080fd5b5061022f6102513660046125ac565b610789565b34801561026257600080fd5b506102766102713660046125c5565b6107ce565b60405190151581526020015b60405180910390f35b34801561029757600080fd5b506102a0610805565b604051908152602001610282565b3480156102ba57600080fd5b506102c3610824565b604051610282919061264b565b3480156102dc57600080fd5b506102a06102eb3660046128b6565b6108b6565b3480156102fc57600080fd5b506103056109d7565b60405161028291906129ae565b34801561031e57600080fd5b506003546001600160a01b03165b6040516001600160a01b039091168152602001610282565b6102a06103523660046129c1565b610b94565b34801561036357600080fd5b506006546001600160a01b031661032c565b34801561038157600080fd5b506102a06103903660046125ac565b610ca7565b3480156103a157600080fd5b5060005460ff16610276565b3480156103b957600080fd5b506102a0610cde565b3480156103ce57600080fd5b506102a06103dd366004612a5f565b610ce9565b3480156103ee57600080fd5b5061022f6103fd366004612ab1565b610d7d565b34801561040e57600080fd5b5061042261041d3660046125ac565b610e39565b6040516102829190612b70565b34801561043b57600080fd5b5061027661044a366004612b98565b60008281526068602090815260408083206001600160a01b038516845260030190915290205460ff1692915050565b34801561048557600080fd5b506005546001600160a01b031661032c565b3480156104a357600080fd5b506104d16104b23660046125ac565b6000908152606860205260409020805460018201546002909201549092565b60408051938452602084019290925290820152606001610282565b3480156104f857600080fd5b506040805180820190915260018152603160f81b60208201526102c3565b34801561052257600080fd5b506102a0610531366004612bc8565b610f9e565b34801561054257600080fd5b506102a06110ad565b34801561055757600080fd5b506007546001600160a01b031661032c565b34801561057557600080fd5b5061022f6105843660046125ac565b6110b8565b34801561059557600080fd5b506004546001600160a01b031661032c565b3480156105b357600080fd5b506002546001600160a01b031661032c565b3480156105d157600080fd5b506102a06105e0366004612bed565b6110e3565b3480156105f157600080fd5b506102a0610600366004612c75565b61112b565b34801561061157600080fd5b506102a0611234565b34801561062657600080fd5b506102a0610635366004612d21565b61123f565b34801561064657600080fd5b506102a06106553660046125ac565b61124b565b34801561066657600080fd5b506102a06106753660046129c1565b61127a565b34801561068657600080fd5b506040805180820190915260208082527f737570706f72743d627261766f2671756f72756d3d666f722c6162737461696e908201526102c3565b3480156106cc57600080fd5b506102a07f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f81565b34801561070057600080fd5b5061022f6112b4565b34801561071557600080fd5b5061022f6107243660046125ac565b61135a565b34801561073557600080fd5b506102a0610744366004612d3e565b611382565b34801561075557600080fd5b5061022f6107643660046125ac565b61138e565b34801561077557600080fd5b506102a06107843660046125ac565b6113b6565b60005460ff16156107b55760405162461bcd60e51b81526004016107ac90612d6a565b60405180910390fd5b6107be816113db565b506000805460ff19166001179055565b60006001600160e01b0319821663bf26d89760e01b14806107ff57506301ffc9a760e01b6001600160e01b03198316145b92915050565b6000606c546000146108185750606c5490565b50606a5490565b905090565b60606066805461083390612da1565b80601f016020809104026020016040519081016040528092919081815260200182805461085f90612da1565b80156108ac5780601f10610881576101008083540402835291602001916108ac565b820191906000526020600020905b81548152906001019060200180831161088f57829003601f168201915b5050505050905090565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015610903573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109279190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa158015610973573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109979190612df3565b6109b35760405162461bcd60e51b81526004016107ac90612e15565b606c83905560006109c68888888861112b565b6000606c5598975050505050505050565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b031691839150600090610a2057610a20612e4a565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610a5157610a51612e4a565b6001600160a01b039283166020918202929092010152600454825191169082906002908110610a8257610a82612e4a565b6001600160a01b039283166020918202929092010152600554825191169082906003908110610ab357610ab3612e4a565b6001600160a01b039283166020918202929092010152600654825191169082906004908110610ae457610ae4612e4a565b6001600160a01b039283166020918202929092010152600754825191169082906005908110610b1557610b15612e4a565b6001600160a01b039283166020918202929092010152600854825191169082906006908110610b4657610b46612e4a565b6001600160a01b039283166020918202929092010152600954825191169082906007908110610b7757610b77612e4a565b6001600160a01b0390921660209283029190910190910152919050565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015610be1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c059190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa158015610c51573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c759190612df3565b610c915760405162461bcd60e51b81526004016107ac90612e15565b610c9d8686868661147c565b9695505050505050565b60008181526067602090815260408083208151928301909152546001600160401b0316908190525b6001600160401b031692915050565b600061081f60695490565b604080517f150214d74d59b7d1e90c73fc22ef3d991dd0a76b046543d4d80ab92d2a50328f602082015290810186905260ff851660608201526000908190610d5590610d4d906080016040516020818303038152906040528051906020012061158e565b8686866115dc565b9050610d72878288604051806020016040528060008152506115fa565b979650505050505050565b60005460ff1615610da05760405162461bcd60e51b81526004016107ac90612d6a565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610e22611704565b50506000805460ff19166001179055505050505050565b6000818152606760209081526040808320815160a08101835281546001600160401b039081166080830190815282528351808601855260018401549091168152938101939093526002015460ff808216158015938501939093526101009091041615156060830152610eae5750600792915050565b806060015115610ec15750600292915050565b80515143906001600160401b031610610edd5750600092915050565b43610eea82602001515190565b6001600160401b031610610f015750600192915050565b610f0e81602001516117f6565b15610f5057610f1c83611825565b8015610f3b575060008381526068602052604090208054600190910154115b610f46576003610f49565b60045b9392505050565b60405162461bcd60e51b815260206004820152601d60248201527f476f7665726e6f723a20756e6b6e6f776e2070726f706f73616c20696400000060448201526064016107ac565b50919050565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015610feb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061100f9190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa15801561105b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107f9190612df3565b61109b5760405162461bcd60e51b81526004016107ac90612e15565b6110a5848461185c565b949350505050565b600061081f4361187d565b3330146110d75760405162461bcd60e51b81526004016107ac90612e60565b6110e081611951565b50565b600080339050610c9d86828787878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506115fa92505050565b600254604051631808461160e11b815233600482015260009182916001600160a01b03909116906330108c2290602401602060405180830381865afa158015611178573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061119c9190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa1580156111e8573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061120c9190612df3565b6112285760405162461bcd60e51b81526004016107ac90612e15565b610c9d86868686611992565b600061081f606b5490565b60006107ff8243611c6d565b60008181526067602090815260408083208151928301909152600101546001600160401b031690819052610ccf565b6000848484846040516020016112939493929190612f1c565b60408051601f19818403018152919052805160209091012095945050505050565b60005460ff16156112d75760405162461bcd60e51b81526004016107ac90612d6a565b600280546001600160a01b0319908116611000179091556003805482166110011790556004805482166110021790556005805482166170011790556006805482166170021790556007805482166170031790556008805482166170041790556009805490911661700517905561134b611704565b6000805460ff19166001179055565b3330146113795760405162461bcd60e51b81526004016107ac90612e60565b6110e0816113db565b6000610f498383611c6d565b3330146113ad5760405162461bcd60e51b81526004016107ac90612e60565b6110e081611e72565b6000806113c28361187d565b905060036113d1826002612f7d565b610f499190612f9c565b6000811161143b5760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f7253657474696e67733a20766f74696e6720706572696f6420604482015266746f6f206c6f7760c81b60648201526084016107ac565b606a5460408051918252602082018390527f7e3f7f0708a84de9203036abaa450dccc85ad5ff52f78c170f3edb55cf5e8828910160405180910390a1606a55565b60008061148b8686868661127a565b9050600061149882610e39565b905060048160078111156114ae576114ae612b5a565b14806114cb575060058160078111156114c9576114c9612b5a565b145b6115215760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c206e6f74207375636365737366756044820152601b60fa1b60648201526084016107ac565b60008281526067602052604090819020600201805460ff19166001179055517f712ae1383f79ac853f8d882153778e0260ef8f03b504e2866e0593e04d2b291f9061156f9084815260200190565b60405180910390a16115848288888888611eb3565b5095945050505050565b60006107ff61159b611fb2565b8360405161190160f01b6020820152602281018390526042810182905260009060620160405160208183030381529060405280519060200120905092915050565b60008060006115ed878787876120d9565b91509150611584816121c6565b6000848152606760205260408120600161161387610e39565b600781111561162457611624612b5a565b1461167d5760405162461bcd60e51b815260206004820152602360248201527f476f7665726e6f723a20766f7465206e6f742063757272656e746c792061637460448201526269766560e81b60648201526084016107ac565b604080516020810190915281546001600160401b0316908190526000906116a5908790611382565b90506116b387878784612381565b856001600160a01b03167fb8e138887d0aa13bab447e82de9d5c1777041ecd21ca36ba824ff1e6c07ddda4888784886040516116f29493929190612fbe565b60405180910390a29695505050505050565b6001805461171190612da1565b1515905061171b57565b600080306001600160a01b031660016040516117379190612fe6565b6000604051808303816000865af19150503d8060008114611774576040519150601f19603f3d011682016040523d82523d6000602084013e611779565b606091505b50915091508115611788575050565b80516117ed5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016107ac565b80518082602001fd5b600061180b82516001600160401b0316151590565b80156107ff57505051436001600160401b03909116111590565b6000818152606860205260408120600281015460018201546118479190613082565b61185361078485610ca7565b11159392505050565b6000803390506110a5848285604051806020016040528060008152506115fa565b600080600260009054906101000a90046001600160a01b03166001600160a01b031663b7ab4db56040518163ffffffff1660e01b8152600401600060405180830381865afa1580156118d3573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526118fb919081019061309a565b905060005b815181101561194a5761192c82828151811061191e5761191e612e4a565b602002602001015185611c6d565b6119369084613082565b92508061194281613128565b915050611900565b5050919050565b60695460408051918252602082018390527fc565b045403dc03c2eea82b81a0465edad9e2e7fc4d97e11421c209da93d7a93910160405180910390a1606955565b600061199c611234565b6119ab33610744600143613143565b1015611a2b5760405162461bcd60e51b815260206004820152604360248201527f476f7665726e6f72436f6d7061746962696c697479427261766f3a2070726f7060448201527f6f73657220766f7465732062656c6f772070726f706f73616c207468726573686064820152621bdb1960ea1b608482015260a4016107ac565b6000611a40868686868051906020012061127a565b90508451865114611a635760405162461bcd60e51b81526004016107ac9061315a565b8351865114611a845760405162461bcd60e51b81526004016107ac9061315a565b6000865111611ad55760405162461bcd60e51b815260206004820152601860248201527f476f7665726e6f723a20656d7074792070726f706f73616c000000000000000060448201526064016107ac565b600081815260676020908152604091829020825191820190925281546001600160401b03169081905215611b555760405162461bcd60e51b815260206004820152602160248201527f476f7665726e6f723a2070726f706f73616c20616c72656164792065786973746044820152607360f81b60648201526084016107ac565b6000611b67611b62610cde565b612507565b611b7043612507565b611b7a919061319b565b90506000611b89611b62610805565b611b93908361319b565b835467ffffffffffffffff19166001600160401b038416178455905060018301805467ffffffffffffffff19166001600160401b0383161790557f7d84a6263ae0d98d3329bd7b46bb4e8d6f98cd35a7adb45c274c8b7fd5ebd5e084338b8b8d516001600160401b03811115611c0b57611c0b61265e565b604051908082528060200260200182016040528015611c3e57816020015b6060815260200190600190039081611c295790505b508c88888e604051611c58999897969594939291906131c6565b60405180910390a15091979650505050505050565b600254604051631808461160e11b81526001600160a01b03848116600483015260009283929116906330108c2290602401602060405180830381865afa158015611cbb573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611cdf9190612dd6565b6002546040516310ab556b60e21b81526001600160a01b0380841660048301529293509116906342ad55ac90602401602060405180830381865afa158015611d2b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d4f9190612df3565b611d5d5760009150506107ff565b6007546040805163068d921560e31b815290516000926001600160a01b03169163346c90a89160048083019260209291908290030181865afa158015611da7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611dcb91906132ce565b611ddb9063ffffffff1685612f9c565b600254604051632409269360e11b81526001600160a01b0385811660048301526001600160401b0384166024830152929350600092909116906348124d269060440161012060405180830381865afa158015611e3b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611e5f9190613300565b50949d9c50505050505050505050505050565b606b5460408051918252602082018390527fccb45da8d5717e6c4544694297c4ba5cf151d455c9bb0ed4fc7a38411bc05461910160405180910390a1606b55565b60006040518060600160405280602781526020016133e360279139905060005b8551811015611fa957600080878381518110611ef157611ef1612e4a565b60200260200101516001600160a01b0316878481518110611f1457611f14612e4a565b6020026020010151878581518110611f2e57611f2e612e4a565b6020026020010151604051611f4391906133c6565b60006040518083038185875af1925050503d8060008114611f80576040519150601f19603f3d011682016040523d82523d6000602084013e611f85565b606091505b5091509150611f95828286612573565b50505080611fa290613128565b9050611ed3565b50505050505050565b6000306001600160a01b037f00000000000000000000000000000000000000000000000000000000000070021614801561200b57507f0000000000000000000000000000000000000000000000000000000000015b3046145b1561203557507fa9dd37ce1fe63f8002e699b96337fd646f7c33482e8c93d576a23c3a1e1ce3fe90565b50604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6020808301919091527fdf276cb73863748bcb662935108dff7c987850f3e7a793f7f6131790b165e92f828401527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc660608301524660808301523060a0808401919091528351808403909101815260c0909201909252805191012090565b6000807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a083111561211057506000905060036121bd565b8460ff16601b1415801561212857508460ff16601c14155b1561213957506000905060046121bd565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561218d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166121b6576000600192509250506121bd565b9150600090505b94509492505050565b60008160048111156121da576121da612b5a565b14156121e35750565b60018160048111156121f7576121f7612b5a565b14156122455760405162461bcd60e51b815260206004820152601860248201527f45434453413a20696e76616c6964207369676e6174757265000000000000000060448201526064016107ac565b600281600481111561225957612259612b5a565b14156122a75760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e6774680060448201526064016107ac565b60038160048111156122bb576122bb612b5a565b14156123145760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b60648201526084016107ac565b600481600481111561232857612328612b5a565b14156110e05760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202776272076616c604482015261756560f01b60648201526084016107ac565b60008481526068602090815260408083206001600160a01b0387168452600381019092529091205460ff16156124095760405162461bcd60e51b815260206004820152602760248201527f476f7665726e6f72566f74696e6753696d706c653a20766f746520616c726561604482015266191e4818d85cdd60ca1b60648201526084016107ac565b6001600160a01b03841660009081526003820160205260408120805460ff1916600117905560ff168360ff16141561245a578181600001600082825461244f9190613082565b909155506125009050565b60ff83166001141561247a578181600101600082825461244f9190613082565b60ff83166002141561249a578181600201600082825461244f9190613082565b60405162461bcd60e51b815260206004820152603560248201527f476f7665726e6f72566f74696e6753696d706c653a20696e76616c69642076616044820152746c756520666f7220656e756d20566f74655479706560581b60648201526084016107ac565b5050505050565b60006001600160401b0382111561256f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016107ac565b5090565b60608315612582575081610f49565b8251156125925782518084602001fd5b8160405162461bcd60e51b81526004016107ac919061264b565b6000602082840312156125be57600080fd5b5035919050565b6000602082840312156125d757600080fd5b81356001600160e01b031981168114610f4957600080fd5b60005b8381101561260a5781810151838201526020016125f2565b83811115612619576000848401525b50505050565b600081518084526126378160208601602086016125ef565b601f01601f19169290920160200192915050565b602081526000610f49602083018461261f565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561269c5761269c61265e565b604052919050565b60006001600160401b038211156126bd576126bd61265e565b5060051b60200190565b6001600160a01b03811681146110e057600080fd5b600082601f8301126126ed57600080fd5b813560206127026126fd836126a4565b612674565b82815260059290921b8401810191818101908684111561272157600080fd5b8286015b84811015612745578035612738816126c7565b8352918301918301612725565b509695505050505050565b600082601f83011261276157600080fd5b813560206127716126fd836126a4565b82815260059290921b8401810191818101908684111561279057600080fd5b8286015b848110156127455780358352918301918301612794565b60006001600160401b038311156127c4576127c461265e565b6127d7601f8401601f1916602001612674565b90508281528383830111156127eb57600080fd5b828260208301376000602084830101529392505050565b600082601f83011261281357600080fd5b813560206128236126fd836126a4565b82815260059290921b8401810191818101908684111561284257600080fd5b8286015b848110156127455780356001600160401b038111156128655760008081fd5b8701603f810189136128775760008081fd5b6128888986830135604084016127ab565b845250918301918301612846565b600082601f8301126128a757600080fd5b610f49838335602085016127ab565b600080600080600060a086880312156128ce57600080fd5b85356001600160401b03808211156128e557600080fd5b6128f189838a016126dc565b9650602088013591508082111561290757600080fd5b61291389838a01612750565b9550604088013591508082111561292957600080fd5b61293589838a01612802565b9450606088013591508082111561294b57600080fd5b5061295888828901612896565b95989497509295608001359392505050565b600081518084526020808501945080840160005b838110156129a35781516001600160a01b03168752958201959082019060010161297e565b509495945050505050565b602081526000610f49602083018461296a565b600080600080608085870312156129d757600080fd5b84356001600160401b03808211156129ee57600080fd5b6129fa888389016126dc565b95506020870135915080821115612a1057600080fd5b612a1c88838901612750565b94506040870135915080821115612a3257600080fd5b50612a3f87828801612802565b949793965093946060013593505050565b60ff811681146110e057600080fd5b600080600080600060a08688031215612a7757600080fd5b853594506020860135612a8981612a50565b93506040860135612a9981612a50565b94979396509394606081013594506080013592915050565b600080600080600080600080610100898b031215612ace57600080fd5b8835612ad9816126c7565b97506020890135612ae9816126c7565b96506040890135612af9816126c7565b95506060890135612b09816126c7565b94506080890135612b19816126c7565b935060a0890135612b29816126c7565b925060c0890135612b39816126c7565b915060e0890135612b49816126c7565b809150509295985092959890939650565b634e487b7160e01b600052602160045260246000fd5b6020810160088310612b9257634e487b7160e01b600052602160045260246000fd5b91905290565b60008060408385031215612bab57600080fd5b823591506020830135612bbd816126c7565b809150509250929050565b60008060408385031215612bdb57600080fd5b823591506020830135612bbd81612a50565b60008060008060608587031215612c0357600080fd5b843593506020850135612c1581612a50565b925060408501356001600160401b0380821115612c3157600080fd5b818701915087601f830112612c4557600080fd5b813581811115612c5457600080fd5b886020828501011115612c6657600080fd5b95989497505060200194505050565b60008060008060808587031215612c8b57600080fd5b84356001600160401b0380821115612ca257600080fd5b612cae888389016126dc565b95506020870135915080821115612cc457600080fd5b612cd088838901612750565b94506040870135915080821115612ce657600080fd5b612cf288838901612802565b93506060870135915080821115612d0857600080fd5b50612d1587828801612896565b91505092959194509250565b600060208284031215612d3357600080fd5b8135610f49816126c7565b60008060408385031215612d5157600080fd5b8235612d5c816126c7565b946020939093013593505050565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b600181811c90821680612db557607f821691505b60208210811415610f9857634e487b7160e01b600052602260045260246000fd5b600060208284031215612de857600080fd5b8151610f49816126c7565b600060208284031215612e0557600080fd5b81518015158114610f4957600080fd5b6020808252818101527f476f7665726e616e63653a206f6e6c792076616c696461746f72206f776e6572604082015260600190565b634e487b7160e01b600052603260045260246000fd5b60208082526018908201527f476f7665726e6f723a206f6e6c79476f7665726e616e63650000000000000000604082015260600190565b600081518084526020808501945080840160005b838110156129a357815187529582019590820190600101612eab565b600081518084526020808501808196508360051b8101915082860160005b85811015612f0f578284038952612efd84835161261f565b98850198935090840190600101612ee5565b5091979650505050505050565b608081526000612f2f608083018761296a565b8281036020840152612f418187612e97565b90508281036040840152612f558186612ec7565b91505082606083015295945050505050565b634e487b7160e01b600052601160045260246000fd5b6000816000190483118215151615612f9757612f97612f67565b500290565b600082612fb957634e487b7160e01b600052601260045260246000fd5b500490565b84815260ff84166020820152826040820152608060608201526000610c9d608083018461261f565b600080835481600182811c91508083168061300257607f831692505b602080841082141561302257634e487b7160e01b86526022600452602486fd5b818015613036576001811461304757613074565b60ff19861689528489019650613074565b60008a81526020902060005b8681101561306c5781548b820152908501908301613053565b505084890196505b509498975050505050505050565b6000821982111561309557613095612f67565b500190565b600060208083850312156130ad57600080fd5b82516001600160401b038111156130c357600080fd5b8301601f810185136130d457600080fd5b80516130e26126fd826126a4565b81815260059190911b8201830190838101908783111561310157600080fd5b928401925b82841015610d72578351613119816126c7565b82529284019290840190613106565b600060001982141561313c5761313c612f67565b5060010190565b60008282101561315557613155612f67565b500390565b60208082526021908201527f476f7665726e6f723a20696e76616c69642070726f706f73616c206c656e67746040820152600d60fb1b606082015260800190565b60006001600160401b038083168185168083038211156131bd576131bd612f67565b01949350505050565b60006101208b8352602060018060a01b038c16818501528160408501526131ef8285018c61296a565b91508382036060850152613203828b612e97565b915083820360808501528189518084528284019150828160051b850101838c0160005b8381101561325457601f1987840301855261324283835161261f565b94860194925090850190600101613226565b505086810360a0880152613268818c612ec7565b94505050505061328360c08401876001600160401b03169052565b6001600160401b03851660e08401528281036101008401526132a5818561261f565b9c9b505050505050505050505050565b805163ffffffff811681146132c957600080fd5b919050565b6000602082840312156132e057600080fd5b610f49826132b5565b80516001600160401b03811681146132c957600080fd5b60008060008060008060008060006101208a8c03121561331f57600080fd5b895161332a816126c7565b60208b015190995061333b81612a50565b60408b0151909850965061335160608b016132b5565b955061335f60808b016132e9565b945061336d60a08b016132e9565b935061337b60c08b016132e9565b925060e08a015161ffff8116811461339257600080fd5b6101008b01519092506bffffffffffffffffffffffff811681146133b557600080fd5b809150509295985092959850929598565b600082516133d88184602087016125ef565b919091019291505056fe476f7665726e6f723a2063616c6c20726576657274656420776974686f7574206d657373616765a26469706673582212204e2459bc1c2774628ecd7b47e3d758d814f0e3965fcc7070ff883d315b8ba2ec64736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000049", "0x0000000000000000000000000000000000000000000000000000000000000066": "0x4368696c697a20476f7665726e616e6365000000000000000000000000000022", "0x000000000000000000000000000000000000000000000000000000000000006a": "0x0000000000000000000000000000000000000000000000000000000000000001", "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0x00f8df1700000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7": "0x0000003c00000000000000000000000000000000000000000000000000000000" + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7": "0x000004b000000000000000000000000000000000000000000000000000000000" }, "balance": "0x0" }, "0000000000000000000000000000000000007003": { - "code": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80636f0591dc116100f9578063c227a41211610097578063e1c7392a11610071578063e1c7392a146103db578063e9880ea7146103e3578063eea9a01b146104bc578063fcd6cb3e146104ce57600080fd5b8063c227a412146103a2578063c8652bd5146103b5578063d98e3ebf146103c857600080fd5b80637b1391a6116100d35780637b1391a6146103545780639dbf97db14610365578063af70fa2c1461037a578063be1997381461038d57600080fd5b80636f0591dc146103025780636f856847146103155780637a37cc591461034357600080fd5b80633e1bbdc911610166578063459463341161014057806345946334146102b65780635e7b72ad146102c7578063606c0c94146102dc5780636cbe6cd8146102ed57600080fd5b80633e1bbdc91461027d57806341d8a0801461029057806342eccb8c146102a357600080fd5b806332cc6f08116101a257806332cc6f081461021d578063346c90a81461023c578063361ab22214610252578063392e53cd1461026757600080fd5b806318f062cd146101c9578063244d8257146101e7578063289b3c0d1461020c575b600080fd5b6101d16104e1565b6040516101de9190611027565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b0390911681526020016101de565b6006546001600160a01b03166101f4565b60665463ffffffff165b60405163ffffffff90911681526020016101de565b606654640100000000900463ffffffff16610227565b6102656102603660046110a5565b61069e565b005b60005460ff1660405190151581526020016101de565b61026561028b366004611154565b6109ce565b61026561029e3660046111fd565b610a8a565b6102656102b136600461121f565b610b1e565b6005546001600160a01b03166101f4565b606654600160a01b900463ffffffff16610227565b6007546001600160a01b03166101f4565b606654600160801b900463ffffffff16610227565b61026561031036600461121f565b610b7a565b606654600160c01b900467ffffffffffffffff165b60405167ffffffffffffffff90911681526020016101de565b6004546001600160a01b03166101f4565b6002546001600160a01b03166101f4565b606654600160401b900463ffffffff16610227565b6102656103883660046111fd565b610bdf565b606654600160601b900463ffffffff16610227565b6102656103b03660046111fd565b610c6d565b6102656103c33660046111fd565b610ceb565b6102656103d63660046111fd565b610d77565b610265610e03565b6104af6040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915250604080516101008101825260665463ffffffff8082168352640100000000820481166020840152600160401b8204811693830193909352600160601b810483166060830152600160801b810483166080830152600160a01b810490921660a0820152600160c01b90910467ffffffffffffffff90811660c08301526067541660e082015290565b6040516101de919061123a565b60675467ffffffffffffffff1661032a565b6102656104dc3660046111fd565b610ea9565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061052a5761052a6112c9565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061055b5761055b6112c9565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061058c5761058c6112c9565b6001600160a01b0392831660209182029290920101526005548251911690829060039081106105bd576105bd6112c9565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106105ee576105ee6112c9565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061061f5761061f6112c9565b6001600160a01b039283166020918202929092010152600854825191169082906006908110610650576106506112c9565b6001600160a01b039283166020918202929092010152600954825191169082906007908110610681576106816112c9565b6001600160a01b0390921660209283029190910190910152919050565b60005460ff16156106ca5760405162461bcd60e51b81526004016106c1906112df565b60405180910390fd5b6066805463ffffffff191663ffffffff8a16908117909155604080516000815260208101929092527f1c4cfc6dcf4219ed649285020aedf5d064480d1acdf4b8c75b397abd5910f40c910160405180910390a16066805467ffffffff00000000191664010000000063ffffffff8a1690810291909117909155604080516000815260208101929092527f33c8012b0f51f8c1a1e525ea046da837d0eb4fa7473cd863e0bfb73a4f475a5a910160405180910390a16066805463ffffffff60401b1916600160401b63ffffffff891690810291909117909155604080516000815260208101929092527f5aa72ebd12c45515403eef36583106e321b8707946a6ae621f5f393ee0c9677b910160405180910390a16066805463ffffffff60601b1916600160601b63ffffffff881690810291909117909155604080516000815260208101929092527f67da1e9c07e7b373ed5e18cc8355caf6dfe18ab4472ec575600a2172772c6204910160405180910390a16066805463ffffffff60801b1916600160801b63ffffffff871690810291909117909155604080516000815260208101929092527f0a677ce4509bf46fe9bdf65c86abe71921755a78494111b1caa25df328ffcd1c910160405180910390a16066805463ffffffff60a01b1916600160a01b63ffffffff861690810291909117909155604080516000815260208101929092527fb191e5acbef9e4b8ce0f17af112f8984f92833324657b89fe39768885f81b6ce910160405180910390a1606680546001600160c01b0316600160c01b67ffffffffffffffff851690810291909117909155604080516000815260208101929092527f33eff10c078f159eef9222f66f701fdef91a4662f6c04b6645c47cf4ff97f691910160405180910390a16067805467ffffffffffffffff191667ffffffffffffffff8316908117909155604080516000815260208101929092527fc4c658462806d040fedc3b45521c9977e3384605a6a3703867bc6172c1b39254910160405180910390a150506000805460ff19166001179055505050505050565b60005460ff16156109f15760405162461bcd60e51b81526004016106c1906112df565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610a73610f35565b50506000805460ff19166001179055505050505050565b6006546001600160a01b03163314610ab45760405162461bcd60e51b81526004016106c190611316565b6066805463ffffffff838116600160a01b81810263ffffffff60a01b1985161790945560408051949093049091168084526020840191909152917fb191e5acbef9e4b8ce0f17af112f8984f92833324657b89fe39768885f81b6ce91015b60405180910390a15050565b6067805467ffffffffffffffff83811667ffffffffffffffff1983168117909355604080519190921680825260208201939093527fc4c658462806d040fedc3b45521c9977e3384605a6a3703867bc6172c1b392549101610b12565b6066805467ffffffffffffffff838116600160c01b8181026001600160c01b0385161790945560408051949093049091168084526020840191909152917f33eff10c078f159eef9222f66f701fdef91a4662f6c04b6645c47cf4ff97f6919101610b12565b6006546001600160a01b03163314610c095760405162461bcd60e51b81526004016106c190611316565b6066805463ffffffff83811664010000000081810267ffffffff000000001985161790945560408051949093049091168084526020840191909152917f33c8012b0f51f8c1a1e525ea046da837d0eb4fa7473cd863e0bfb73a4f475a5a9101610b12565b6006546001600160a01b03163314610c975760405162461bcd60e51b81526004016106c190611316565b6066805463ffffffff83811663ffffffff1983168117909355604080519190921680825260208201939093527f1c4cfc6dcf4219ed649285020aedf5d064480d1acdf4b8c75b397abd5910f40c9101610b12565b6006546001600160a01b03163314610d155760405162461bcd60e51b81526004016106c190611316565b6066805463ffffffff838116600160801b81810263ffffffff60801b1985161790945560408051949093049091168084526020840191909152917f0a677ce4509bf46fe9bdf65c86abe71921755a78494111b1caa25df328ffcd1c9101610b12565b6006546001600160a01b03163314610da15760405162461bcd60e51b81526004016106c190611316565b6066805463ffffffff838116600160401b81810263ffffffff60401b1985161790945560408051949093049091168084526020840191909152917f5aa72ebd12c45515403eef36583106e321b8707946a6ae621f5f393ee0c9677b9101610b12565b60005460ff1615610e265760405162461bcd60e51b81526004016106c1906112df565b600280546001600160a01b03199081166110001790915560038054821661100117905560048054821661100217905560058054821661700117905560068054821661700217905560078054821661700317905560088054821661700417905560098054909116617005179055610e9a610f35565b6000805460ff19166001179055565b6006546001600160a01b03163314610ed35760405162461bcd60e51b81526004016106c190611316565b6066805463ffffffff838116600160601b81810263ffffffff60601b1985161790945560408051949093049091168084526020840191909152917f67da1e9c07e7b373ed5e18cc8355caf6dfe18ab4472ec575600a2172772c62049101610b12565b60018054610f429061135c565b15159050610f4c57565b600080306001600160a01b03166001604051610f689190611397565b6000604051808303816000865af19150503d8060008114610fa5576040519150601f19603f3d011682016040523d82523d6000602084013e610faa565b606091505b50915091508115610fb9575050565b805161101e5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016106c1565b80518082602001fd5b6020808252825182820181905260009190848201906040850190845b818110156110685783516001600160a01b031683529284019291840191600101611043565b50909695505050505050565b803563ffffffff8116811461108857600080fd5b919050565b803567ffffffffffffffff8116811461108857600080fd5b600080600080600080600080610100898b0312156110c257600080fd5b6110cb89611074565b97506110d960208a01611074565b96506110e760408a01611074565b95506110f560608a01611074565b945061110360808a01611074565b935061111160a08a01611074565b925061111f60c08a0161108d565b915061112d60e08a0161108d565b90509295985092959890939650565b6001600160a01b038116811461115157600080fd5b50565b600080600080600080600080610100898b03121561117157600080fd5b883561117c8161113c565b9750602089013561118c8161113c565b9650604089013561119c8161113c565b955060608901356111ac8161113c565b945060808901356111bc8161113c565b935060a08901356111cc8161113c565b925060c08901356111dc8161113c565b915060e08901356111ec8161113c565b809150509295985092959890939650565b60006020828403121561120f57600080fd5b61121882611074565b9392505050565b60006020828403121561123157600080fd5b6112188261108d565b60006101008201905063ffffffff8084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525060c08301516112a660c084018267ffffffffffffffff169052565b5060e08301516112c260e084018267ffffffffffffffff169052565b5092915050565b634e487b7160e01b600052603260045260246000fd5b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b60208082526026908201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604082015265726e616e636560d01b606082015260800190565b600181811c9082168061137057607f821691505b6020821081141561139157634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c9150808316806113b357607f831692505b60208084108214156113d357634e487b7160e01b86526022600452602486fd5b8180156113e757600181146113f857611425565b60ff19861689528489019650611425565b60008a81526020902060005b8681101561141d5781548b820152908501908301611404565b505084890196505b50949897505050505050505056fea264697066735822122007200a78870536f1fe62a23c93c720da6f9802cf4616217683b6f4029a72d90664736f6c634300080b0033", + "code": "0x608060405234801561001057600080fd5b50600436106101c45760003560e01c80636f856847116100f9578063c8652bd511610097578063e1c7392a11610071578063e1c7392a146103bf578063e9880ea7146103c7578063eea9a01b146104f4578063fcd6cb3e146104fc57600080fd5b8063c8652bd514610386578063d98e3ebf14610399578063e1a2e863146103ac57600080fd5b80639dbf97db116100d35780639dbf97db14610336578063af70fa2c1461034b578063be1997381461035e578063c227a4121461037357600080fd5b80636f856847146103025780637a37cc59146103145780637b1391a61461032557600080fd5b806341d8a080116101665780635e7b72ad116101405780635e7b72ad146102b4578063606c0c94146102c9578063612d669e146102da5780636cbe6cd8146102ed57600080fd5b806341d8a0801461027d57806345946334146102905780634b635ac5146102a157600080fd5b806332cc6f08116101a257806332cc6f081461021d578063346c90a81461023c578063392e53cd146102525780633e1bbdc91461026857600080fd5b806318f062cd146101c9578063244d8257146101e7578063289b3c0d1461020c575b600080fd5b6101d161050f565b6040516101de9190610fd1565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b0390911681526020016101de565b6006546001600160a01b03166101f4565b60665463ffffffff165b60405163ffffffff90911681526020016101de565b606654640100000000900463ffffffff16610227565b60005460ff1660405190151581526020016101de565b61027b610276366004611036565b6106cc565b005b61027b61028b3660046110f8565b610791565b6005546001600160a01b03166101f4565b61027b6102af36600461111a565b610825565b606654600160a01b900463ffffffff16610227565b6007546001600160a01b03166101f4565b61027b6102e83660046111a3565b610b0d565b606654600160801b900463ffffffff16610227565b6067545b6040519081526020016101de565b6004546001600160a01b03166101f4565b6002546001600160a01b03166101f4565b606654600160401b900463ffffffff16610227565b61027b6103593660046110f8565b610b4b565b606654600160601b900463ffffffff16610227565b61027b6103813660046110f8565b610bd9565b61027b6103943660046110f8565b610c57565b61027b6103a73660046110f8565b610ce3565b61027b6103ba3660046111a3565b610d6f565b61027b610dad565b6104816040805161010081018252600080825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e081019190915250604080516101008101825260665463ffffffff8082168352640100000000820481166020840152600160401b8204811693830193909352600160601b810483166060830152600160801b810483166080830152600160a01b900490911660a082015260675460c082015260685460e082015290565b6040516101de919060006101008201905063ffffffff8084511683528060208501511660208401528060408501511660408401528060608501511660608401528060808501511660808401528060a08501511660a08401525060c083015160c083015260e083015160e083015292915050565b606854610306565b61027b61050a3660046110f8565b610e53565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b031691839150600090610558576105586111bc565b6001600160a01b039283166020918202929092010152600354825191169082906001908110610589576105896111bc565b6001600160a01b0392831660209182029290920101526004548251911690829060029081106105ba576105ba6111bc565b6001600160a01b0392831660209182029290920101526005548251911690829060039081106105eb576105eb6111bc565b6001600160a01b03928316602091820292909201015260065482519116908290600490811061061c5761061c6111bc565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061064d5761064d6111bc565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061067e5761067e6111bc565b6001600160a01b0392831660209182029290920101526009548251911690829060079081106106af576106af6111bc565b6001600160a01b0390921660209283029190910190910152919050565b60005460ff16156106f85760405162461bcd60e51b81526004016106ef906111d2565b60405180910390fd5b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a84161790556004805482168984161790556005805482168884161790556006805482168784161790556007805482168684161790556008805482168584161790556009805490911691831691909117905561077a610edf565b50506000805460ff19166001179055505050505050565b6006546001600160a01b031633146107bb5760405162461bcd60e51b81526004016106ef90611209565b6066805463ffffffff838116600160a01b81810263ffffffff60a01b1985161790945560408051949093049091168084526020840191909152917fb191e5acbef9e4b8ce0f17af112f8984f92833324657b89fe39768885f81b6ce91015b60405180910390a15050565b60005460ff16156108485760405162461bcd60e51b81526004016106ef906111d2565b6066805463ffffffff191663ffffffff8a16908117909155604080516000815260208101929092527f1c4cfc6dcf4219ed649285020aedf5d064480d1acdf4b8c75b397abd5910f40c910160405180910390a16066805467ffffffff00000000191664010000000063ffffffff8a1690810291909117909155604080516000815260208101929092527f33c8012b0f51f8c1a1e525ea046da837d0eb4fa7473cd863e0bfb73a4f475a5a910160405180910390a16066805463ffffffff60401b1916600160401b63ffffffff891690810291909117909155604080516000815260208101929092527f5aa72ebd12c45515403eef36583106e321b8707946a6ae621f5f393ee0c9677b910160405180910390a16066805463ffffffff60601b1916600160601b63ffffffff881690810291909117909155604080516000815260208101929092527f67da1e9c07e7b373ed5e18cc8355caf6dfe18ab4472ec575600a2172772c6204910160405180910390a16066805463ffffffff60801b1916600160801b63ffffffff871690810291909117909155604080516000815260208101929092527f0a677ce4509bf46fe9bdf65c86abe71921755a78494111b1caa25df328ffcd1c910160405180910390a16066805463ffffffff60a01b1916600160a01b63ffffffff861690810291909117909155604080516000815260208101929092527fb191e5acbef9e4b8ce0f17af112f8984f92833324657b89fe39768885f81b6ce910160405180910390a160678290556040805160008152602081018490527f207082661d623a88e041ad2d52c2d4ddc719880c70c3ab44aa81accff9bd86ed910160405180910390a160688190556040805160008152602081018390527f973f438cb6bc47d284033b6113687c6087f4fb7a3395b03597578ae1259bf23c910160405180910390a150506000805460ff19166001179055505050505050565b606880549082905560408051828152602081018490527f973f438cb6bc47d284033b6113687c6087f4fb7a3395b03597578ae1259bf23c9101610819565b6006546001600160a01b03163314610b755760405162461bcd60e51b81526004016106ef90611209565b6066805463ffffffff83811664010000000081810267ffffffff000000001985161790945560408051949093049091168084526020840191909152917f33c8012b0f51f8c1a1e525ea046da837d0eb4fa7473cd863e0bfb73a4f475a5a9101610819565b6006546001600160a01b03163314610c035760405162461bcd60e51b81526004016106ef90611209565b6066805463ffffffff83811663ffffffff1983168117909355604080519190921680825260208201939093527f1c4cfc6dcf4219ed649285020aedf5d064480d1acdf4b8c75b397abd5910f40c9101610819565b6006546001600160a01b03163314610c815760405162461bcd60e51b81526004016106ef90611209565b6066805463ffffffff838116600160801b81810263ffffffff60801b1985161790945560408051949093049091168084526020840191909152917f0a677ce4509bf46fe9bdf65c86abe71921755a78494111b1caa25df328ffcd1c9101610819565b6006546001600160a01b03163314610d0d5760405162461bcd60e51b81526004016106ef90611209565b6066805463ffffffff838116600160401b81810263ffffffff60401b1985161790945560408051949093049091168084526020840191909152917f5aa72ebd12c45515403eef36583106e321b8707946a6ae621f5f393ee0c9677b9101610819565b606780549082905560408051828152602081018490527f207082661d623a88e041ad2d52c2d4ddc719880c70c3ab44aa81accff9bd86ed9101610819565b60005460ff1615610dd05760405162461bcd60e51b81526004016106ef906111d2565b600280546001600160a01b03199081166110001790915560038054821661100117905560048054821661100217905560058054821661700117905560068054821661700217905560078054821661700317905560088054821661700417905560098054909116617005179055610e44610edf565b6000805460ff19166001179055565b6006546001600160a01b03163314610e7d5760405162461bcd60e51b81526004016106ef90611209565b6066805463ffffffff838116600160601b81810263ffffffff60601b1985161790945560408051949093049091168084526020840191909152917f67da1e9c07e7b373ed5e18cc8355caf6dfe18ab4472ec575600a2172772c62049101610819565b60018054610eec9061124f565b15159050610ef657565b600080306001600160a01b03166001604051610f12919061128a565b6000604051808303816000865af19150503d8060008114610f4f576040519150601f19603f3d011682016040523d82523d6000602084013e610f54565b606091505b50915091508115610f63575050565b8051610fc85760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016106ef565b80518082602001fd5b6020808252825182820181905260009190848201906040850190845b818110156110125783516001600160a01b031683529284019291840191600101610fed565b50909695505050505050565b6001600160a01b038116811461103357600080fd5b50565b600080600080600080600080610100898b03121561105357600080fd5b883561105e8161101e565b9750602089013561106e8161101e565b9650604089013561107e8161101e565b9550606089013561108e8161101e565b9450608089013561109e8161101e565b935060a08901356110ae8161101e565b925060c08901356110be8161101e565b915060e08901356110ce8161101e565b809150509295985092959890939650565b803563ffffffff811681146110f357600080fd5b919050565b60006020828403121561110a57600080fd5b611113826110df565b9392505050565b600080600080600080600080610100898b03121561113757600080fd5b611140896110df565b975061114e60208a016110df565b965061115c60408a016110df565b955061116a60608a016110df565b945061117860808a016110df565b935061118660a08a016110df565b925060c0890135915060e089013590509295985092959890939650565b6000602082840312156111b557600080fd5b5035919050565b634e487b7160e01b600052603260045260246000fd5b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b60208082526026908201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604082015265726e616e636560d01b606082015260800190565b600181811c9082168061126357607f821691505b6020821081141561128457634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c9150808316806112a657607f831692505b60208084108214156112c657634e487b7160e01b86526022600452602486fd5b8180156112da57600181146112eb57611318565b60ff19861689528489019650611318565b60008a81526020902060005b868110156113105781548b8201529085019083016112f7565b505084890196505b50949897505050505050505056fea2646970667358221220aec27268530fe20741abe5927c25401de17647b1f30019db3b84eac691871ab064736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000209", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0x361ab22200000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7": "0x0000001900000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8": "0x0000708000000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9": "0x0000003200000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa": "0x0000009600000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb": "0x0000000700000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfc": "0x0000000600000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfd": "0x0000000100000000000000000000000000000000000000000000000000000000", - "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfe": "0x0000000100000000000000000000000000000000000000000000000000000000" + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0x4b635ac500000000000000000000000000000000000000000000000000000000", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf7": "0x0000000500000000000000000000000000000000000000000000000000000000", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf8": "0x000004b000000000000000000000000000000000000000000000000000000000", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf9": "0x0000006400000000000000000000000000000000000000000000000000000000", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfa": "0x000000c800000000000000000000000000000000000000000000000000000000", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfb": "0x0000000600000000000000000000000000000000000000000000000000000000", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfc": "0x0000000100000000000000000000000000000000000000000000003635c9adc5", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfd": "0xdea000000000000000000000000000000000000000000000000000000de0b6b3", + "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cfe": "0xa764000000000000000000000000000000000000000000000000000000000000" }, "balance": "0x0" }, "0000000000000000000000000000000000007004": { - "code": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633e1bbdc91161008c5780637a37cc59116100665780637a37cc591461019b5780637b1391a6146101ac578063a8648464146101bd578063e1c7392a146101ce57600080fd5b80633e1bbdc9146101665780634594633414610179578063606c0c941461018a57600080fd5b806316cbea51146100d457806318f062cd146100e9578063244d825714610107578063289b3c0d1461012c57806338dc8ff31461013d578063392e53cd14610150575b600080fd5b6100e76100e2366004610a82565b6101d6565b005b6100f1610231565b6040516100fe9190610aa6565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b0390911681526020016100fe565b6006546001600160a01b0316610114565b6100e761014b366004610b3c565b6103ee565b60005460ff1660405190151581526020016100fe565b6100e7610174366004610bbf565b61046b565b6005546001600160a01b0316610114565b6007546001600160a01b0316610114565b6004546001600160a01b0316610114565b6002546001600160a01b0316610114565b6066546001600160a01b0316610114565b6100e7610527565b60005460ff16156102025760405162461bcd60e51b81526004016101f990610c68565b60405180910390fd5b606680546001600160a01b0319166001600160a01b03929092169190911790556000805460ff19166001179055565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061027a5761027a610c9f565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106102ab576102ab610c9f565b6001600160a01b0392831660209182029290920101526004548251911690829060029081106102dc576102dc610c9f565b6001600160a01b03928316602091820292909201015260055482519116908290600390811061030d5761030d610c9f565b6001600160a01b03928316602091820292909201015260065482519116908290600490811061033e5761033e610c9f565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061036f5761036f610c9f565b6001600160a01b0392831660209182029290920101526008548251911690829060069081106103a0576103a0610c9f565b6001600160a01b0392831660209182029290920101526009548251911690829060079081106103d1576103d1610c9f565b6001600160a01b0390921660209283029190910190910152919050565b6006546001600160a01b031633146104575760405162461bcd60e51b815260206004820152602660248201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604482015265726e616e636560d01b60648201526084016101f9565b61046485858585856105cd565b5050505050565b60005460ff161561048e5760405162461bcd60e51b81526004016101f990610c68565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610510610906565b50506000805460ff19166001179055505050505050565b60005460ff161561054a5760405162461bcd60e51b81526004016101f990610c68565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556105be610906565b6000805460ff19166001179055565b6105d6856109f8565b6106355760405162461bcd60e51b815260206004820152602a60248201527f52756e74696d65557067726164653a206f6e6c792073797374656d20736d61726044820152691d0818dbdb9d1c9858dd60b21b60648201526084016101f9565b6000636fbc15e960e01b86868660405160240161065493929190610cb5565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925260665491519092506000916001600160a01b0316906106a6908490610cf5565b6000604051808303816000865af19150503d80600081146106e3576040519150601f19603f3d011682016040523d82523d6000602084013e6106e8565b606091505b505090508061074b5760405162461bcd60e51b815260206004820152602960248201527f52756e74696d65557067726164653a206661696c656420746f20696e766f6b656044820152682045564d20686f6f6b60b81b60648201526084016101f9565b6000879050806001600160a01b031663392e53cd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b29190610d30565b61080a57806001600160a01b031663e1c7392a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b505050505b83156108c1576000886001600160a01b0316868660405161082c929190610d52565b6000604051808303816000865af19150503d8060008114610869576040519150601f19603f3d011682016040523d82523d6000602084013e61086e565b606091505b50509050806108bf5760405162461bcd60e51b815260206004820181905260248201527f52756e74696d65557067726164653a206d6967726174696f6e206661696c656460448201526064016101f9565b505b7f294c52758d41df5421795a058ea4837ce9d9714c75091eb30fe6925d1231db4a8888886040516108f493929190610cb5565b60405180910390a15050505050505050565b6001805461091390610d62565b1515905061091d57565b600080306001600160a01b031660016040516109399190610d9d565b6000604051808303816000865af19150503d8060008114610976576040519150601f19603f3d011682016040523d82523d6000602084013e61097b565b606091505b5091509150811561098a575050565b80516109ef5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016101f9565b80518082602001fd5b600080610a03610231565b905060005b8151811015610a6057836001600160a01b0316828281518110610a2d57610a2d610c9f565b60200260200101516001600160a01b03161415610a4e575060019392505050565b80610a5881610e39565b915050610a08565b5060009392505050565b6001600160a01b0381168114610a7f57600080fd5b50565b600060208284031215610a9457600080fd5b8135610a9f81610a6a565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610ae75783516001600160a01b031683529284019291840191600101610ac2565b50909695505050505050565b60008083601f840112610b0557600080fd5b50813567ffffffffffffffff811115610b1d57600080fd5b602083019150836020828501011115610b3557600080fd5b9250929050565b600080600080600060608688031215610b5457600080fd5b8535610b5f81610a6a565b9450602086013567ffffffffffffffff80821115610b7c57600080fd5b610b8889838a01610af3565b90965094506040880135915080821115610ba157600080fd5b50610bae88828901610af3565b969995985093965092949392505050565b600080600080600080600080610100898b031215610bdc57600080fd5b8835610be781610a6a565b97506020890135610bf781610a6a565b96506040890135610c0781610a6a565b95506060890135610c1781610a6a565b94506080890135610c2781610a6a565b935060a0890135610c3781610a6a565b925060c0890135610c4781610a6a565b915060e0890135610c5781610a6a565b809150509295985092959890939650565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000825160005b81811015610d165760208186018101518583015201610cfc565b81811115610d25576000828501525b509190910192915050565b600060208284031215610d4257600080fd5b81518015158114610a9f57600080fd5b8183823760009101908152919050565b600181811c90821680610d7657607f821691505b60208210811415610d9757634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680610db957607f831692505b6020808410821415610dd957634e487b7160e01b86526022600452602486fd5b818015610ded5760018114610dfe57610e2b565b60ff19861689528489019650610e2b565b60008a81526020902060005b86811015610e235781548b820152908501908301610e0a565b505084890196505b509498975050505050505050565b6000600019821415610e5b57634e487b7160e01b600052601160045260246000fd5b506001019056fea26469706673582212207ddce1984a86380e6ba477b181bd18298994a7627ca7fbb2350bca0cffd684eb64736f6c634300080b0033", + "code": "0x608060405234801561001057600080fd5b50600436106100cf5760003560e01c80633e1bbdc91161008c5780637a37cc59116100665780637a37cc591461019b5780637b1391a6146101ac578063a8648464146101bd578063e1c7392a146101ce57600080fd5b80633e1bbdc9146101665780634594633414610179578063606c0c941461018a57600080fd5b806316cbea51146100d457806318f062cd146100e9578063244d825714610107578063289b3c0d1461012c57806338dc8ff31461013d578063392e53cd14610150575b600080fd5b6100e76100e2366004610a82565b6101d6565b005b6100f1610231565b6040516100fe9190610aa6565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b0390911681526020016100fe565b6006546001600160a01b0316610114565b6100e761014b366004610b3c565b6103ee565b60005460ff1660405190151581526020016100fe565b6100e7610174366004610bbf565b61046b565b6005546001600160a01b0316610114565b6007546001600160a01b0316610114565b6004546001600160a01b0316610114565b6002546001600160a01b0316610114565b6066546001600160a01b0316610114565b6100e7610527565b60005460ff16156102025760405162461bcd60e51b81526004016101f990610c68565b60405180910390fd5b606680546001600160a01b0319166001600160a01b03929092169190911790556000805460ff19166001179055565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061027a5761027a610c9f565b6001600160a01b0392831660209182029290920101526003548251911690829060019081106102ab576102ab610c9f565b6001600160a01b0392831660209182029290920101526004548251911690829060029081106102dc576102dc610c9f565b6001600160a01b03928316602091820292909201015260055482519116908290600390811061030d5761030d610c9f565b6001600160a01b03928316602091820292909201015260065482519116908290600490811061033e5761033e610c9f565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061036f5761036f610c9f565b6001600160a01b0392831660209182029290920101526008548251911690829060069081106103a0576103a0610c9f565b6001600160a01b0392831660209182029290920101526009548251911690829060079081106103d1576103d1610c9f565b6001600160a01b0390921660209283029190910190910152919050565b6006546001600160a01b031633146104575760405162461bcd60e51b815260206004820152602660248201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604482015265726e616e636560d01b60648201526084016101f9565b61046485858585856105cd565b5050505050565b60005460ff161561048e5760405162461bcd60e51b81526004016101f990610c68565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610510610906565b50506000805460ff19166001179055505050505050565b60005460ff161561054a5760405162461bcd60e51b81526004016101f990610c68565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556105be610906565b6000805460ff19166001179055565b6105d6856109f8565b6106355760405162461bcd60e51b815260206004820152602a60248201527f52756e74696d65557067726164653a206f6e6c792073797374656d20736d61726044820152691d0818dbdb9d1c9858dd60b21b60648201526084016101f9565b6000636fbc15e960e01b86868660405160240161065493929190610cb5565b60408051601f198184030181529181526020820180516001600160e01b03166001600160e01b03199094169390931790925260665491519092506000916001600160a01b0316906106a6908490610cf5565b6000604051808303816000865af19150503d80600081146106e3576040519150601f19603f3d011682016040523d82523d6000602084013e6106e8565b606091505b505090508061074b5760405162461bcd60e51b815260206004820152602960248201527f52756e74696d65557067726164653a206661696c656420746f20696e766f6b656044820152682045564d20686f6f6b60b81b60648201526084016101f9565b6000879050806001600160a01b031663392e53cd6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561078e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906107b29190610d30565b61080a57806001600160a01b031663e1c7392a6040518163ffffffff1660e01b8152600401600060405180830381600087803b1580156107f157600080fd5b505af1158015610805573d6000803e3d6000fd5b505050505b83156108c1576000886001600160a01b0316868660405161082c929190610d52565b6000604051808303816000865af19150503d8060008114610869576040519150601f19603f3d011682016040523d82523d6000602084013e61086e565b606091505b50509050806108bf5760405162461bcd60e51b815260206004820181905260248201527f52756e74696d65557067726164653a206d6967726174696f6e206661696c656460448201526064016101f9565b505b7f294c52758d41df5421795a058ea4837ce9d9714c75091eb30fe6925d1231db4a8888886040516108f493929190610cb5565b60405180910390a15050505050505050565b6001805461091390610d62565b1515905061091d57565b600080306001600160a01b031660016040516109399190610d9d565b6000604051808303816000865af19150503d8060008114610976576040519150601f19603f3d011682016040523d82523d6000602084013e61097b565b606091505b5091509150811561098a575050565b80516109ef5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016101f9565b80518082602001fd5b600080610a03610231565b905060005b8151811015610a6057836001600160a01b0316828281518110610a2d57610a2d610c9f565b60200260200101516001600160a01b03161415610a4e575060019392505050565b80610a5881610e39565b915050610a08565b5060009392505050565b6001600160a01b0381168114610a7f57600080fd5b50565b600060208284031215610a9457600080fd5b8135610a9f81610a6a565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610ae75783516001600160a01b031683529284019291840191600101610ac2565b50909695505050505050565b60008083601f840112610b0557600080fd5b50813567ffffffffffffffff811115610b1d57600080fd5b602083019150836020828501011115610b3557600080fd5b9250929050565b600080600080600060608688031215610b5457600080fd5b8535610b5f81610a6a565b9450602086013567ffffffffffffffff80821115610b7c57600080fd5b610b8889838a01610af3565b90965094506040880135915080821115610ba157600080fd5b50610bae88828901610af3565b969995985093965092949392505050565b600080600080600080600080610100898b031215610bdc57600080fd5b8835610be781610a6a565b97506020890135610bf781610a6a565b96506040890135610c0781610a6a565b95506060890135610c1781610a6a565b94506080890135610c2781610a6a565b935060a0890135610c3781610a6a565b925060c0890135610c4781610a6a565b915060e0890135610c5781610a6a565b809150509295985092959890939650565b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b634e487b7160e01b600052603260045260246000fd5b6001600160a01b03841681526040602082018190528101829052818360608301376000818301606090810191909152601f909201601f1916010192915050565b6000825160005b81811015610d165760208186018101518583015201610cfc565b81811115610d25576000828501525b509190910192915050565b600060208284031215610d4257600080fd5b81518015158114610a9f57600080fd5b8183823760009101908152919050565b600181811c90821680610d7657607f821691505b60208210811415610d9757634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c915080831680610db957607f831692505b6020808410821415610dd957634e487b7160e01b86526022600452602486fd5b818015610ded5760018114610dfe57610e2b565b60ff19861689528489019650610e2b565b60008a81526020902060005b86811015610e235781548b820152908501908301610e0a565b505084890196505b509498975050505050505050565b6000600019821415610e5b57634e487b7160e01b600052601160045260246000fd5b506001019056fea264697066735822122009a90840919eac14b6d8da5455b8841fc6163bf5ed954514a7d9ece022f7fad564736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000049", "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0x16cbea5100000000000000000000000000000000000000000000000000000000", @@ -110,7 +111,7 @@ "balance": "0x0" }, "0000000000000000000000000000000000007005": { - "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80636ac4d975116100b8578063880f40391161007c578063880f4039146102a957806397f735d5146102bc578063a154ce82146102ef578063aad7e36314610302578063e1c7392a1461033e578063f315df861461034657600080fd5b80636ac4d9751461024e57806377fdcede146102615780637a37cc59146102745780637b1391a61461028557806386497f411461029657600080fd5b806339e7c5361161010a57806339e7c536146101c75780633e1bbdc9146101da57806345946334146101ed57806347d23419146101fe57806350c358a414610211578063606c0c941461023d57600080fd5b80630e17790f1461014757806318f062cd1461015c578063244d82571461017a578063289b3c0d1461019f578063392e53cd146101b0575b600080fd5b61015a61015536600461141b565b610359565b005b6101646103c7565b6040516101719190611454565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b039091168152602001610171565b6006546001600160a01b0316610187565b60005460ff165b6040519015158152602001610171565b61015a6101d53660046114a1565b610584565b61015a6101e83660046114c5565b610590565b6005546001600160a01b0316610187565b61015a61020c3660046114a1565b61064c565b6101b761021f3660046114a1565b6001600160a01b031660009081526066602052604090205460ff1690565b6007546001600160a01b0316610187565b61015a61025c366004611584565b61067f565b61015a61026f3660046114a1565b6106f3565b6004546001600160a01b0316610187565b6002546001600160a01b0316610187565b61015a6102a43660046114a1565b610726565b61015a6102b73660046114a1565b610759565b6101b76102ca3660046114a1565b6001600160a01b0316600090815260666020526040902054600160a81b900460ff1690565b61015a6102fd3660046114a1565b61078c565b6103156103103660046114a1565b6107bf565b6040805160ff90941684526001600160a01b039283166020850152911690820152606001610171565b61015a610865565b61015a6103543660046114a1565b61090b565b3341146103b95760405162461bcd60e51b8152602060048201526024808201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920636f696e6044820152636261736560e01b60648201526084015b60405180910390fd5b6103c3828261093e565b5050565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061041057610410611649565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061044157610441611649565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061047257610472611649565b6001600160a01b0392831660209182029290920101526005548251911690829060039081106104a3576104a3611649565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106104d4576104d4611649565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061050557610505611649565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061053657610536611649565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061056757610567611649565b6001600160a01b0390921660209283029190910190910152919050565b61058d81610b61565b50565b60005460ff16156105b35760405162461bcd60e51b81526004016103b09061165f565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610635610c43565b50506000805460ff19166001179055505050505050565b6006546001600160a01b031633146106765760405162461bcd60e51b81526004016103b090611696565b61058d81610d35565b60005460ff16156106a25760405162461bcd60e51b81526004016103b09061165f565b60005b81518110156106e2576106d08282815181106106c3576106c3611649565b6020026020010151610ecd565b806106da816116dc565b9150506106a5565b50506000805460ff19166001179055565b6006546001600160a01b0316331461071d5760405162461bcd60e51b81526004016103b090611696565b61058d81610fe0565b6006546001600160a01b031633146107505760405162461bcd60e51b81526004016103b090611696565b61058d816110e4565b6006546001600160a01b031633146107835760405162461bcd60e51b81526004016103b090611696565b61058d81610ecd565b6006546001600160a01b031633146107b65760405162461bcd60e51b81526004016103b090611696565b61058d816111d7565b6001600160a01b0381166000908152606760205260408082208151606081019092528054839283928392829060ff1660028111156107ff576107ff611705565b600281111561081057610810611705565b815281546001600160a01b03610100909104811660208301526001909201549091166040909101528051909150600281111561084e5761084e611705565b602082015160409092015190969195509350915050565b60005460ff16156108885760405162461bcd60e51b81526004016103b09061165f565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556108fc610c43565b6000805460ff19166001179055565b6006546001600160a01b031633146109355760405162461bcd60e51b81526004016103b090611696565b61058d8161136f565b6001600160a01b03821660009081526066602052604090205460ff166109b05760405162461bcd60e51b815260206004820152602160248201527f4465706c6f7965723a206465706c6f796572206973206e6f7420616c6c6f77656044820152601960fa1b60648201526084016103b0565b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff1660028111156109ea576109ea611705565b60028111156109fb576109fb611705565b815281546001600160a01b0361010090910481166020808401919091526001909301548116604090920191909152908201519192501615610a8d5760405162461bcd60e51b815260206004820152602660248201527f4465706c6f7965723a20636f6e7472616374206973206465706c6f79656420616044820152656c726561647960d01b60648201526084016103b0565b60018082526001600160a01b0383811660208085018290529186166040808601919091526000918252606790925220825181548493839160ff191690836002811115610adb57610adb611705565b02179055506020828101518254610100600160a81b0319166101006001600160a01b0392831602178355604093840151600190930180546001600160a01b0319169382169390931790925591518482168152908516917f33c981baba081f8fd2c52ac6ad1ea95b6814b4376640f55689051f6584729688910160405180910390a2505050565b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff166002811115610b9b57610b9b611705565b6002811115610bac57610bac611705565b815281546001600160a01b03610100909104811660208301526001909201549091166040909101529050600281516002811115610beb57610beb611705565b14156103c35760405162461bcd60e51b815260206004820152602160248201527f4465706c6f7965723a20636f6e7472616374206973206e6f7420656e61626c656044820152601960fa1b60648201526084016103b0565b60018054610c509061171b565b15159050610c5a57565b600080306001600160a01b03166001604051610c769190611756565b6000604051808303816000865af19150503d8060008114610cb3576040519150601f19603f3d011682016040523d82523d6000602084013e610cb8565b606091505b50915091508115610cc7575050565b8051610d2c5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016103b0565b80518082602001fd5b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff166002811115610d6f57610d6f611705565b6002811115610d8057610d80611705565b815281546001600160a01b03610100909104811660208301526001909201549091166040909101529050600281516002811115610dbf57610dbf611705565b14610e175760405162461bcd60e51b815260206004820152602260248201527f4465706c6f7965723a20636f6e747261637420616c726561647920656e61626c604482015261195960f21b60648201526084016103b0565b60018082526001600160a01b0383166000908152606760205260409020825181548493839160ff191690836002811115610e5357610e53611705565b021790555060208201518154610100600160a81b0319166101006001600160a01b0392831602178255604092830151600190920180546001600160a01b031916928216929092179091559051908316907fae81c15a680e6640ba872ca44f364ad67c60a04089ad9fa100f7a3ce94da9f6890600090a25050565b6001600160a01b03811660009081526066602052604090205460ff1615610f365760405162461bcd60e51b815260206004820181905260248201527f4465706c6f7965723a206465706c6f79657220616c726561647920657869737460448201526064016103b0565b60408051606081018252600181526001600160a01b0383811660208084018281526000858701818152848252606690935286812095518654925193516001600160a81b0319909316901515610100600160a81b0319161761010093909516929092029390931760ff60a81b1916600160a81b9315159390930292909217909255915190917f861a21548a3ee34d896ccac3668a9d65030aaf2cb7367a2ed13608014016a03291a250565b6001600160a01b03811660009081526066602052604090205460ff166110185760405162461bcd60e51b81526004016103b0906117f2565b6001600160a01b038116600090815260666020526040902054600160a81b900460ff16156110925760405162461bcd60e51b815260206004820152602160248201527f4465706c6f7965723a206465706c6f79657220616c72656164792062616e6e656044820152601960fa1b60648201526084016103b0565b6001600160a01b038116600081815260666020526040808220805460ff60a81b1916600160a81b179055517f9cf4d5b60708c113f822fd9addfd8d6d6280c3f539f5edf3ab97b528dedfa80a9190a250565b6001600160a01b03811660009081526066602052604090205460ff1661111c5760405162461bcd60e51b81526004016103b0906117f2565b6001600160a01b038116600090815260666020526040902054600160a81b900460ff1661118b5760405162461bcd60e51b815260206004820181905260248201527f4465706c6f7965723a206465706c6f796572206973206e6f742062616e6e656460448201526064016103b0565b6001600160a01b038116600081815260666020526040808220805460ff60a81b19169055517f59c71bff57754566be21262a328a9c5c20b85a1be305ff7e01378049d02493e19190a250565b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff16600281111561121157611211611705565b600281111561122257611222611705565b815281546001600160a01b0361010090910481166020830152600192830154166040909101529091508151600281111561125e5761125e611705565b146112b75760405162461bcd60e51b815260206004820152602360248201527f4465706c6f7965723a20636f6e747261637420616c72656164792064697361626044820152621b195960ea1b60648201526084016103b0565b60028082526001600160a01b0383166000908152606760205260409020825181548493839160ff19169060019084908111156112f5576112f5611705565b021790555060208201518154610100600160a81b0319166101006001600160a01b0392831602178255604092830151600190920180546001600160a01b031916928216929092179091559051908316907f793bc6423dd0257d64f9d47db72fd4b2162f4541aa41740ba1c5fb5e2cd41bcd90600090a25050565b6001600160a01b03811660009081526066602052604090205460ff166113a75760405162461bcd60e51b81526004016103b0906117f2565b6001600160a01b03811660008181526066602052604080822080546001600160b01b0319169055517ffdb22628e87f888d060acc53d048a6a8400a5024f81f9dcb0606e723f238864a9190a250565b6001600160a01b038116811461058d57600080fd5b8035611416816113f6565b919050565b6000806040838503121561142e57600080fd5b8235611439816113f6565b91506020830135611449816113f6565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156114955783516001600160a01b031683529284019291840191600101611470565b50909695505050505050565b6000602082840312156114b357600080fd5b81356114be816113f6565b9392505050565b600080600080600080600080610100898b0312156114e257600080fd5b88356114ed816113f6565b975060208901356114fd816113f6565b9650604089013561150d816113f6565b9550606089013561151d816113f6565b9450608089013561152d816113f6565b935060a089013561153d816113f6565b925060c089013561154d816113f6565b915060e089013561155d816113f6565b809150509295985092959890939650565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561159757600080fd5b823567ffffffffffffffff808211156115af57600080fd5b818501915085601f8301126115c357600080fd5b8135818111156115d5576115d561156e565b8060051b604051601f19603f830116810181811085821117156115fa576115fa61156e565b60405291825284820192508381018501918883111561161857600080fd5b938501935b8285101561163d5761162e8561140b565b8452938501939285019261161d565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b60208082526026908201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604082015265726e616e636560d01b606082015260800190565b60006000198214156116fe57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b600181811c9082168061172f57607f821691505b6020821081141561175057634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168061177257607f831692505b602080841082141561179257634e487b7160e01b86526022600452602486fd5b8180156117a657600181146117b7576117e4565b60ff198616895284890196506117e4565b60008a81526020902060005b868110156117dc5781548b8201529085019083016117c3565b505084890196505b509498975050505050505050565b6020808252818101527f4465706c6f7965723a206465706c6f79657220646f65736e277420657869737460408201526060019056fea264697066735822122053b2d85a6b29ef021f226461b7d4f72eef3b38b1593610d5c21a899c29da67db64736f6c634300080b0033", + "code": "0x608060405234801561001057600080fd5b50600436106101425760003560e01c80636ac4d975116100b8578063880f40391161007c578063880f4039146102a957806397f735d5146102bc578063a154ce82146102ef578063aad7e36314610302578063e1c7392a1461033e578063f315df861461034657600080fd5b80636ac4d9751461024e57806377fdcede146102615780637a37cc59146102745780637b1391a61461028557806386497f411461029657600080fd5b806339e7c5361161010a57806339e7c536146101c75780633e1bbdc9146101da57806345946334146101ed57806347d23419146101fe57806350c358a414610211578063606c0c941461023d57600080fd5b80630e17790f1461014757806318f062cd1461015c578063244d82571461017a578063289b3c0d1461019f578063392e53cd146101b0575b600080fd5b61015a61015536600461141b565b610359565b005b6101646103c7565b6040516101719190611454565b60405180910390f35b6003546001600160a01b03165b6040516001600160a01b039091168152602001610171565b6006546001600160a01b0316610187565b60005460ff165b6040519015158152602001610171565b61015a6101d53660046114a1565b610584565b61015a6101e83660046114c5565b610590565b6005546001600160a01b0316610187565b61015a61020c3660046114a1565b61064c565b6101b761021f3660046114a1565b6001600160a01b031660009081526066602052604090205460ff1690565b6007546001600160a01b0316610187565b61015a61025c366004611584565b61067f565b61015a61026f3660046114a1565b6106f3565b6004546001600160a01b0316610187565b6002546001600160a01b0316610187565b61015a6102a43660046114a1565b610726565b61015a6102b73660046114a1565b610759565b6101b76102ca3660046114a1565b6001600160a01b0316600090815260666020526040902054600160a81b900460ff1690565b61015a6102fd3660046114a1565b61078c565b6103156103103660046114a1565b6107bf565b6040805160ff90941684526001600160a01b039283166020850152911690820152606001610171565b61015a610865565b61015a6103543660046114a1565b61090b565b3341146103b95760405162461bcd60e51b8152602060048201526024808201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920636f696e6044820152636261736560e01b60648201526084015b60405180910390fd5b6103c3828261093e565b5050565b6040805160088082526101208201909252606091600091906020820161010080368337505060025482519293506001600160a01b03169183915060009061041057610410611649565b6001600160a01b03928316602091820292909201015260035482519116908290600190811061044157610441611649565b6001600160a01b03928316602091820292909201015260045482519116908290600290811061047257610472611649565b6001600160a01b0392831660209182029290920101526005548251911690829060039081106104a3576104a3611649565b6001600160a01b0392831660209182029290920101526006548251911690829060049081106104d4576104d4611649565b6001600160a01b03928316602091820292909201015260075482519116908290600590811061050557610505611649565b6001600160a01b03928316602091820292909201015260085482519116908290600690811061053657610536611649565b6001600160a01b03928316602091820292909201015260095482519116908290600790811061056757610567611649565b6001600160a01b0390921660209283029190910190910152919050565b61058d81610b61565b50565b60005460ff16156105b35760405162461bcd60e51b81526004016103b09061165f565b600280546001600160a01b03199081166001600160a01b038b8116919091179092556003805482168a841617905560048054821689841617905560058054821688841617905560068054821687841617905560078054821686841617905560088054821685841617905560098054909116918316919091179055610635610c43565b50506000805460ff19166001179055505050505050565b6006546001600160a01b031633146106765760405162461bcd60e51b81526004016103b090611696565b61058d81610d35565b60005460ff16156106a25760405162461bcd60e51b81526004016103b09061165f565b60005b81518110156106e2576106d08282815181106106c3576106c3611649565b6020026020010151610ecd565b806106da816116dc565b9150506106a5565b50506000805460ff19166001179055565b6006546001600160a01b0316331461071d5760405162461bcd60e51b81526004016103b090611696565b61058d81610fe0565b6006546001600160a01b031633146107505760405162461bcd60e51b81526004016103b090611696565b61058d816110e4565b6006546001600160a01b031633146107835760405162461bcd60e51b81526004016103b090611696565b61058d81610ecd565b6006546001600160a01b031633146107b65760405162461bcd60e51b81526004016103b090611696565b61058d816111d7565b6001600160a01b0381166000908152606760205260408082208151606081019092528054839283928392829060ff1660028111156107ff576107ff611705565b600281111561081057610810611705565b815281546001600160a01b03610100909104811660208301526001909201549091166040909101528051909150600281111561084e5761084e611705565b602082015160409092015190969195509350915050565b60005460ff16156108885760405162461bcd60e51b81526004016103b09061165f565b600280546001600160a01b031990811661100017909155600380548216611001179055600480548216611002179055600580548216617001179055600680548216617002179055600780548216617003179055600880548216617004179055600980549091166170051790556108fc610c43565b6000805460ff19166001179055565b6006546001600160a01b031633146109355760405162461bcd60e51b81526004016103b090611696565b61058d8161136f565b6001600160a01b03821660009081526066602052604090205460ff166109b05760405162461bcd60e51b815260206004820152602160248201527f4465706c6f7965723a206465706c6f796572206973206e6f7420616c6c6f77656044820152601960fa1b60648201526084016103b0565b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff1660028111156109ea576109ea611705565b60028111156109fb576109fb611705565b815281546001600160a01b0361010090910481166020808401919091526001909301548116604090920191909152908201519192501615610a8d5760405162461bcd60e51b815260206004820152602660248201527f4465706c6f7965723a20636f6e7472616374206973206465706c6f79656420616044820152656c726561647960d01b60648201526084016103b0565b60018082526001600160a01b0383811660208085018290529186166040808601919091526000918252606790925220825181548493839160ff191690836002811115610adb57610adb611705565b02179055506020828101518254610100600160a81b0319166101006001600160a01b0392831602178355604093840151600190930180546001600160a01b0319169382169390931790925591518482168152908516917f33c981baba081f8fd2c52ac6ad1ea95b6814b4376640f55689051f6584729688910160405180910390a2505050565b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff166002811115610b9b57610b9b611705565b6002811115610bac57610bac611705565b815281546001600160a01b03610100909104811660208301526001909201549091166040909101529050600281516002811115610beb57610beb611705565b14156103c35760405162461bcd60e51b815260206004820152602160248201527f4465706c6f7965723a20636f6e7472616374206973206e6f7420656e61626c656044820152601960fa1b60648201526084016103b0565b60018054610c509061171b565b15159050610c5a57565b600080306001600160a01b03166001604051610c769190611756565b6000604051808303816000865af19150503d8060008114610cb3576040519150601f19603f3d011682016040523d82523d6000602084013e610cb8565b606091505b50915091508115610cc7575050565b8051610d2c5760405162461bcd60e51b815260206004820152602e60248201527f496e6a6563746f723a20636f6e737472756374696f6e206661696c656420772f60448201526d103ab735b737bbb71032b93937b960911b60648201526084016103b0565b80518082602001fd5b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff166002811115610d6f57610d6f611705565b6002811115610d8057610d80611705565b815281546001600160a01b03610100909104811660208301526001909201549091166040909101529050600281516002811115610dbf57610dbf611705565b14610e175760405162461bcd60e51b815260206004820152602260248201527f4465706c6f7965723a20636f6e747261637420616c726561647920656e61626c604482015261195960f21b60648201526084016103b0565b60018082526001600160a01b0383166000908152606760205260409020825181548493839160ff191690836002811115610e5357610e53611705565b021790555060208201518154610100600160a81b0319166101006001600160a01b0392831602178255604092830151600190920180546001600160a01b031916928216929092179091559051908316907fae81c15a680e6640ba872ca44f364ad67c60a04089ad9fa100f7a3ce94da9f6890600090a25050565b6001600160a01b03811660009081526066602052604090205460ff1615610f365760405162461bcd60e51b815260206004820181905260248201527f4465706c6f7965723a206465706c6f79657220616c726561647920657869737460448201526064016103b0565b60408051606081018252600181526001600160a01b0383811660208084018281526000858701818152848252606690935286812095518654925193516001600160a81b0319909316901515610100600160a81b0319161761010093909516929092029390931760ff60a81b1916600160a81b9315159390930292909217909255915190917f861a21548a3ee34d896ccac3668a9d65030aaf2cb7367a2ed13608014016a03291a250565b6001600160a01b03811660009081526066602052604090205460ff166110185760405162461bcd60e51b81526004016103b0906117f2565b6001600160a01b038116600090815260666020526040902054600160a81b900460ff16156110925760405162461bcd60e51b815260206004820152602160248201527f4465706c6f7965723a206465706c6f79657220616c72656164792062616e6e656044820152601960fa1b60648201526084016103b0565b6001600160a01b038116600081815260666020526040808220805460ff60a81b1916600160a81b179055517f9cf4d5b60708c113f822fd9addfd8d6d6280c3f539f5edf3ab97b528dedfa80a9190a250565b6001600160a01b03811660009081526066602052604090205460ff1661111c5760405162461bcd60e51b81526004016103b0906117f2565b6001600160a01b038116600090815260666020526040902054600160a81b900460ff1661118b5760405162461bcd60e51b815260206004820181905260248201527f4465706c6f7965723a206465706c6f796572206973206e6f742062616e6e656460448201526064016103b0565b6001600160a01b038116600081815260666020526040808220805460ff60a81b19169055517f59c71bff57754566be21262a328a9c5c20b85a1be305ff7e01378049d02493e19190a250565b6001600160a01b0381166000908152606760205260408082208151606081019092528054829060ff16600281111561121157611211611705565b600281111561122257611222611705565b815281546001600160a01b0361010090910481166020830152600192830154166040909101529091508151600281111561125e5761125e611705565b146112b75760405162461bcd60e51b815260206004820152602360248201527f4465706c6f7965723a20636f6e747261637420616c72656164792064697361626044820152621b195960ea1b60648201526084016103b0565b60028082526001600160a01b0383166000908152606760205260409020825181548493839160ff19169060019084908111156112f5576112f5611705565b021790555060208201518154610100600160a81b0319166101006001600160a01b0392831602178255604092830151600190920180546001600160a01b031916928216929092179091559051908316907f793bc6423dd0257d64f9d47db72fd4b2162f4541aa41740ba1c5fb5e2cd41bcd90600090a25050565b6001600160a01b03811660009081526066602052604090205460ff166113a75760405162461bcd60e51b81526004016103b0906117f2565b6001600160a01b03811660008181526066602052604080822080546001600160b01b0319169055517ffdb22628e87f888d060acc53d048a6a8400a5024f81f9dcb0606e723f238864a9190a250565b6001600160a01b038116811461058d57600080fd5b8035611416816113f6565b919050565b6000806040838503121561142e57600080fd5b8235611439816113f6565b91506020830135611449816113f6565b809150509250929050565b6020808252825182820181905260009190848201906040850190845b818110156114955783516001600160a01b031683529284019291840191600101611470565b50909695505050505050565b6000602082840312156114b357600080fd5b81356114be816113f6565b9392505050565b600080600080600080600080610100898b0312156114e257600080fd5b88356114ed816113f6565b975060208901356114fd816113f6565b9650604089013561150d816113f6565b9550606089013561151d816113f6565b9450608089013561152d816113f6565b935060a089013561153d816113f6565b925060c089013561154d816113f6565b915060e089013561155d816113f6565b809150509295985092959890939650565b634e487b7160e01b600052604160045260246000fd5b6000602080838503121561159757600080fd5b823567ffffffffffffffff808211156115af57600080fd5b818501915085601f8301126115c357600080fd5b8135818111156115d5576115d561156e565b8060051b604051601f19603f830116810181811085821117156115fa576115fa61156e565b60405291825284820192508381018501918883111561161857600080fd5b938501935b8285101561163d5761162e8561140b565b8452938501939285019261161d565b98975050505050505050565b634e487b7160e01b600052603260045260246000fd5b6020808252601d908201527f496e6a6563746f723a20616c726561647920696e697469616c697a6564000000604082015260600190565b60208082526026908201527f496e6a6563746f72436f6e74657874486f6c6465723a206f6e6c7920676f7665604082015265726e616e636560d01b606082015260800190565b60006000198214156116fe57634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052602160045260246000fd5b600181811c9082168061172f57607f821691505b6020821081141561175057634e487b7160e01b600052602260045260246000fd5b50919050565b600080835481600182811c91508083168061177257607f831692505b602080841082141561179257634e487b7160e01b86526022600452602486fd5b8180156117a657600181146117b7576117e4565b60ff198616895284890196506117e4565b60008a81526020902060005b868110156117dc5781548b8201529085019083016117c3565b505084890196505b509498975050505050505050565b6020808252818101527f4465706c6f7965723a206465706c6f79657220646f65736e277420657869737460408201526060019056fea26469706673582212207dce1b1e05f1c2aecbf67c7332098568c25fe40567f0fcf9603a2982c865aba064736f6c634300080b0033", "storage": { "0x0000000000000000000000000000000000000000000000000000000000000001": "0x0000000000000000000000000000000000000000000000000000000000000089", "0xb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6": "0x6ac4d97500000000000000000000000000000000000000000000000000000000", @@ -124,6 +125,9 @@ "57ba24be2cf17400f37db3566e839bfa6a2d018a": { "balance": "0x21e19e0c9bab2400000" }, + "b37aa4955c3a6ead8e81fd7950f0e15d23129202": { + "balance": "0x21e19e0c9bab2400000" + }, "b891fe7b38f857f53a7b5529204c58d5c487280b": { "balance": "0x52b7d2dcc80cd2e4000000" }, @@ -131,7 +135,7 @@ "balance": "0x21e19e0c9bab2400000" }, "fffffffffffffffffffffffffffffffffffffffe": { - "balance": "0x10f0cf064dd59200000" + "balance": "0x15d25a0899b343e80000" } }, "number": "0x0",