Overview
ETH Balance
0 ETH
Eth Value
$0.00More Info
Private Name Tags
ContractCreator
Latest 1 from a total of 1 transactions
Transaction Hash |
Method
|
Block
|
From
|
To
|
|||||
---|---|---|---|---|---|---|---|---|---|
0x60806040 | 11421104 | 1446 days ago | IN | 0 ETH | 0.13266566 |
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Contract Name:
StrongPoolV2
Compiler Version
v0.6.12+commit.27d51765
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity ^0.6.12; import "./IERC20.sol"; import "./SafeMath.sol"; import "./VoteInterface.sol"; contract StrongPoolV2 { event MinedFor(address indexed miner, uint256 amount); event Mined(address indexed miner, uint256 amount); event MinedForVotesOnly(address indexed miner, uint256 amount); event UnminedForVotesOnly(address indexed miner, uint256 amount); event Unmined(address indexed miner, uint256 amount); event Claimed(address indexed miner, uint256 reward); using SafeMath for uint256; bool public initDone; address public admin; address public pendingAdmin; address public superAdmin; address public pendingSuperAdmin; address public parameterAdmin; address payable public feeCollector; IERC20 public strongToken; VoteInterface public vote; mapping(address => uint256) public minerBalance; uint256 public totalBalance; mapping(address => uint256) public minerBlockLastClaimedOn; mapping(address => uint256) public minerVotes; uint256 public rewardBalance; uint256 public rewardPerBlockNumerator; uint256 public rewardPerBlockDenominator; uint256 public miningFeeNumerator; uint256 public miningFeeDenominator; uint256 public unminingFeeNumerator; uint256 public unminingFeeDenominator; uint256 public claimingFeeNumerator; uint256 public claimingFeeDenominator; mapping(address => uint256) public inboundContractIndex; address[] public inboundContracts; mapping(address => bool) public inboundContractTrusted; uint256 public claimingFeeInWei; function init( address voteAddress, address strongTokenAddress, address adminAddress, address superAdminAddress, uint256 rewardPerBlockNumeratorValue, uint256 rewardPerBlockDenominatorValue, uint256 miningFeeNumeratorValue, uint256 miningFeeDenominatorValue, uint256 unminingFeeNumeratorValue, uint256 unminingFeeDenominatorValue, uint256 claimingFeeNumeratorValue, uint256 claimingFeeDenominatorValue ) public { require(!initDone, "init done"); vote = VoteInterface(voteAddress); strongToken = IERC20(strongTokenAddress); admin = adminAddress; superAdmin = superAdminAddress; rewardPerBlockNumerator = rewardPerBlockNumeratorValue; rewardPerBlockDenominator = rewardPerBlockDenominatorValue; miningFeeNumerator = miningFeeNumeratorValue; miningFeeDenominator = miningFeeDenominatorValue; unminingFeeNumerator = unminingFeeNumeratorValue; unminingFeeDenominator = unminingFeeDenominatorValue; claimingFeeNumerator = claimingFeeNumeratorValue; claimingFeeDenominator = claimingFeeDenominatorValue; initDone = true; } // ADMIN // ************************************************************************************* function updateParameterAdmin(address newParameterAdmin) public { require(newParameterAdmin != address(0), "zero"); require(msg.sender == superAdmin); parameterAdmin = newParameterAdmin; } function updateFeeCollector(address payable newFeeCollector) public { require(newFeeCollector != address(0), "zero"); require(msg.sender == superAdmin); feeCollector = newFeeCollector; } function setPendingAdmin(address newPendingAdmin) public { require(newPendingAdmin != address(0), "zero"); require(msg.sender == admin, "not admin"); pendingAdmin = newPendingAdmin; } function acceptAdmin() public { require( msg.sender == pendingAdmin && msg.sender != address(0), "not pendingAdmin" ); admin = pendingAdmin; pendingAdmin = address(0); } function setPendingSuperAdmin(address newPendingSuperAdmin) public { require(newPendingSuperAdmin != address(0), "zero"); require(msg.sender == superAdmin, "not superAdmin"); pendingSuperAdmin = newPendingSuperAdmin; } function acceptSuperAdmin() public { require( msg.sender == pendingSuperAdmin && msg.sender != address(0), "not pendingSuperAdmin" ); superAdmin = pendingSuperAdmin; pendingSuperAdmin = address(0); } // INBOUND CONTRACTS // ************************************************************************************* function addInboundContract(address contr) public { require(contr != address(0), "zero"); require( msg.sender == admin || msg.sender == parameterAdmin || msg.sender == superAdmin, "not an admin" ); if (inboundContracts.length != 0) { uint256 index = inboundContractIndex[contr]; require(inboundContracts[index] != contr, "exists"); } uint256 len = inboundContracts.length; inboundContractIndex[contr] = len; inboundContractTrusted[contr] = true; inboundContracts.push(contr); } function inboundContractTrustStatus(address contr, bool trustStatus) public { require(contr != address(0), "zero"); require( msg.sender == admin || msg.sender == parameterAdmin || msg.sender == superAdmin, "not an admin" ); uint256 index = inboundContractIndex[contr]; require(inboundContracts[index] == contr, "not exists"); inboundContractTrusted[contr] = trustStatus; } // REWARD // ************************************************************************************* function updateRewardPerBlock(uint256 numerator, uint256 denominator) public { require( msg.sender == admin || msg.sender == parameterAdmin || msg.sender == superAdmin, "not an admin" ); require(denominator != 0, "invalid value"); rewardPerBlockNumerator = numerator; rewardPerBlockDenominator = denominator; } function deposit(uint256 amount) public { require(msg.sender == superAdmin, "not an admin"); require(amount > 0, "zero"); strongToken.transferFrom(msg.sender, address(this), amount); rewardBalance = rewardBalance.add(amount); } function withdraw(address destination, uint256 amount) public { require(msg.sender == superAdmin, "not an admin"); require(amount > 0, "zero"); require(rewardBalance >= amount, "not enough"); strongToken.transfer(destination, amount); rewardBalance = rewardBalance.sub(amount); } // FEES // ************************************************************************************* function updateMiningFee(uint256 numerator, uint256 denominator) public { require( msg.sender == admin || msg.sender == parameterAdmin || msg.sender == superAdmin, "not an admin" ); require(denominator != 0, "invalid value"); miningFeeNumerator = numerator; miningFeeDenominator = denominator; } function updateUnminingFee(uint256 numerator, uint256 denominator) public { require( msg.sender == admin || msg.sender == parameterAdmin || msg.sender == superAdmin, "not an admin" ); require(denominator != 0, "invalid value"); unminingFeeNumerator = numerator; unminingFeeDenominator = denominator; } function updateClaimingFee(uint256 feeInWei) public { require( msg.sender == admin || msg.sender == parameterAdmin || msg.sender == superAdmin, "not an admin" ); claimingFeeInWei = feeInWei; } // CORE // ************************************************************************************* function mineForVotesOnly(uint256 amount) public { require(amount > 0, "zero"); strongToken.transferFrom(msg.sender, address(this), amount); minerVotes[msg.sender] = minerVotes[msg.sender].add(amount); vote.updateVotes(msg.sender, amount, true); emit MinedForVotesOnly(msg.sender, amount); } function unmineForVotesOnly(uint256 amount) public { require(amount > 0, "zero"); require(minerVotes[msg.sender] >= amount, "not enough"); minerVotes[msg.sender] = minerVotes[msg.sender].sub(amount); vote.updateVotes(msg.sender, amount, false); strongToken.transfer(msg.sender, amount); emit UnminedForVotesOnly(msg.sender, amount); } function mineFor(address miner, uint256 amount) public { require(inboundContractTrusted[msg.sender], "not trusted"); require(amount > 0, "zero"); strongToken.transferFrom(msg.sender, address(this), amount); minerBalance[miner] = minerBalance[miner].add(amount); totalBalance = totalBalance.add(amount); if (minerBlockLastClaimedOn[miner] == 0) { minerBlockLastClaimedOn[miner] = block.number; } vote.updateVotes(miner, amount, true); emit MinedFor(miner, amount); } function mine(uint256 amount) public payable { require(amount > 0, "zero"); uint256 fee = amount.mul(miningFeeNumerator).div(miningFeeDenominator); require(msg.value == fee, "invalid fee"); feeCollector.transfer(msg.value); strongToken.transferFrom(msg.sender, address(this), amount); if (block.number > minerBlockLastClaimedOn[msg.sender]) { uint256 reward = getReward(msg.sender); if (reward > 0) { minerBalance[msg.sender] = minerBalance[msg.sender].add(reward); totalBalance = totalBalance.add(reward); rewardBalance = rewardBalance.sub(reward); vote.updateVotes(msg.sender, reward, true); minerBlockLastClaimedOn[msg.sender] = block.number; } } minerBalance[msg.sender] = minerBalance[msg.sender].add(amount); totalBalance = totalBalance.add(amount); if (minerBlockLastClaimedOn[msg.sender] == 0) { minerBlockLastClaimedOn[msg.sender] = block.number; } vote.updateVotes(msg.sender, amount, true); emit Mined(msg.sender, amount); } function unmine(uint256 amount) public payable { require(amount > 0, "zero"); uint256 fee = amount.mul(unminingFeeNumerator).div( unminingFeeDenominator ); require(msg.value == fee, "invalid fee"); require(minerBalance[msg.sender] >= amount, "not enough"); feeCollector.transfer(msg.value); bool unmineAll = (amount == minerBalance[msg.sender]); if (block.number > minerBlockLastClaimedOn[msg.sender]) { uint256 reward = getReward(msg.sender); if (reward > 0) { minerBalance[msg.sender] = minerBalance[msg.sender].add(reward); totalBalance = totalBalance.add(reward); rewardBalance = rewardBalance.sub(reward); vote.updateVotes(msg.sender, reward, true); minerBlockLastClaimedOn[msg.sender] = block.number; } } uint256 amountToUnmine = unmineAll ? minerBalance[msg.sender] : amount; minerBalance[msg.sender] = minerBalance[msg.sender].sub(amountToUnmine); totalBalance = totalBalance.sub(amountToUnmine); strongToken.transfer(msg.sender, amountToUnmine); vote.updateVotes(msg.sender, amountToUnmine, false); if (minerBalance[msg.sender] == 0) { minerBlockLastClaimedOn[msg.sender] = 0; } emit Unmined(msg.sender, amountToUnmine); } function claim() public payable { require(minerBlockLastClaimedOn[msg.sender] != 0, "error"); require(block.number > minerBlockLastClaimedOn[msg.sender], "too soon"); uint256 reward = getReward(msg.sender); require(reward > 0, "no reward"); require(msg.value == claimingFeeInWei, "invalid fee"); feeCollector.transfer(msg.value); minerBalance[msg.sender] = minerBalance[msg.sender].add(reward); totalBalance = totalBalance.add(reward); rewardBalance = rewardBalance.sub(reward); minerBlockLastClaimedOn[msg.sender] = block.number; vote.updateVotes(msg.sender, reward, true); emit Claimed(msg.sender, reward); } function getReward(address miner) public view returns (uint256) { if (totalBalance == 0) return 0; if (minerBlockLastClaimedOn[miner] == 0) return 0; uint256 blockResult = block.number.sub(minerBlockLastClaimedOn[miner]); uint256 rewardPerBlockResult = blockResult .mul(rewardPerBlockNumerator) .div(rewardPerBlockDenominator); return rewardPerBlockResult.mul(minerBalance[miner]).div(totalBalance); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @dev Returns the amount of tokens in existence. */ function totalSupply() external view returns (uint256); /** * @dev Returns the amount of tokens owned by `account`. */ function balanceOf(address account) external view returns (uint256); /** * @dev Moves `amount` tokens from the caller's account to `recipient`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address recipient, uint256 amount) external returns (bool); /** * @dev Returns the remaining number of tokens that `spender` will be * allowed to spend on behalf of `owner` through {transferFrom}. This is * zero by default. * * This value changes when {approve} or {transferFrom} are called. */ function allowance(address owner, address spender) external view returns (uint256); /** * @dev Sets `amount` as the allowance of `spender` over the caller's tokens. * * Returns a boolean value indicating whether the operation succeeded. * * IMPORTANT: Beware that changing an allowance with this method brings the risk * that someone may use both the old and the new allowance by unfortunate * transaction ordering. One possible solution to mitigate this race * condition is to first reduce the spender's allowance to 0 and set the * desired value afterwards: * https://github.com/ethereum/EIPs/issues/20#issuecomment-263524729 * * Emits an {Approval} event. */ function approve(address spender, uint256 amount) external returns (bool); /** * @dev Moves `amount` tokens from `sender` to `recipient` using the * allowance mechanism. `amount` is then deducted from the caller's * allowance. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); /** * @dev Emitted when `value` tokens are moved from one account (`from`) to * another (`to`). * * Note that `value` may be zero. */ event Transfer(address indexed from, address indexed to, uint256 value); /** * @dev Emitted when the allowance of a `spender` for an `owner` is set by * a call to {approve}. `value` is the new allowance. */ event Approval(address indexed owner, address indexed spender, uint256 value); }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.0; /** * @dev Wrappers over Solidity's arithmetic operations with added overflow * checks. * * Arithmetic operations in Solidity wrap on overflow. This can easily result * in bugs, because programmers usually assume that an overflow raises an * error, which is the standard behavior in high level programming languages. * `SafeMath` restores this intuition by reverting the transaction when an * operation overflows. * * Using this library instead of the unchecked operations eliminates an entire * class of bugs, so it's recommended to use it always. */ library SafeMath { /** * @dev Returns the addition of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `+` operator. * * Requirements: * * - Addition cannot overflow. */ function add(uint256 a, uint256 b) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, "SafeMath: addition overflow"); return c; } /** * @dev Returns the subtraction of two unsigned integers, reverting on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b) internal pure returns (uint256) { return sub(a, b, "SafeMath: subtraction overflow"); } /** * @dev Returns the subtraction of two unsigned integers, reverting with custom message on * overflow (when the result is negative). * * Counterpart to Solidity's `-` operator. * * Requirements: * * - Subtraction cannot overflow. */ function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); uint256 c = a - b; return c; } /** * @dev Returns the multiplication of two unsigned integers, reverting on * overflow. * * Counterpart to Solidity's `*` operator. * * Requirements: * * - Multiplication cannot overflow. */ function mul(uint256 a, uint256 b) internal pure returns (uint256) { // Gas optimization: this is cheaper than requiring 'a' not being zero, but the // benefit is lost if 'b' is also tested. // See: https://github.com/OpenZeppelin/openzeppelin-contracts/pull/522 if (a == 0) { return 0; } uint256 c = a * b; require(c / a == b, "SafeMath: multiplication overflow"); return c; } /** * @dev Returns the integer division of two unsigned integers. Reverts on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b) internal pure returns (uint256) { return div(a, b, "SafeMath: division by zero"); } /** * @dev Returns the integer division of two unsigned integers. Reverts with custom message on * division by zero. The result is rounded towards zero. * * Counterpart to Solidity's `/` operator. Note: this function uses a * `revert` opcode (which leaves remaining gas untouched) while Solidity * uses an invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b > 0, errorMessage); uint256 c = a / b; // assert(a == b * c + a % b); // There is no case in which this doesn't hold return c; } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b) internal pure returns (uint256) { return mod(a, b, "SafeMath: modulo by zero"); } /** * @dev Returns the remainder of dividing two unsigned integers. (unsigned integer modulo), * Reverts with custom message when dividing by zero. * * Counterpart to Solidity's `%` operator. This function uses a `revert` * opcode (which leaves remaining gas untouched) while Solidity uses an * invalid opcode to revert (consuming all remaining gas). * * Requirements: * * - The divisor cannot be zero. */ function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b != 0, errorMessage); return a % b; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.6.12; interface VoteInterface { function getPriorProposalVotes(address account, uint256 blockNumber) external view returns (uint96); function updateVotes( address voter, uint256 rawAmount, bool adding ) external; }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"miner","type":"address"},{"indexed":false,"internalType":"uint256","name":"reward","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"miner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Mined","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"miner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MinedFor","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"miner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"MinedForVotesOnly","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"miner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Unmined","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"miner","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"UnminedForVotesOnly","type":"event"},{"inputs":[],"name":"acceptAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"acceptSuperAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"contr","type":"address"}],"name":"addInboundContract","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claim","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"claimingFeeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimingFeeInWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"claimingFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"feeCollector","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"miner","type":"address"}],"name":"getReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"inboundContractIndex","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"contr","type":"address"},{"internalType":"bool","name":"trustStatus","type":"bool"}],"name":"inboundContractTrustStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"inboundContractTrusted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"inboundContracts","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"voteAddress","type":"address"},{"internalType":"address","name":"strongTokenAddress","type":"address"},{"internalType":"address","name":"adminAddress","type":"address"},{"internalType":"address","name":"superAdminAddress","type":"address"},{"internalType":"uint256","name":"rewardPerBlockNumeratorValue","type":"uint256"},{"internalType":"uint256","name":"rewardPerBlockDenominatorValue","type":"uint256"},{"internalType":"uint256","name":"miningFeeNumeratorValue","type":"uint256"},{"internalType":"uint256","name":"miningFeeDenominatorValue","type":"uint256"},{"internalType":"uint256","name":"unminingFeeNumeratorValue","type":"uint256"},{"internalType":"uint256","name":"unminingFeeDenominatorValue","type":"uint256"},{"internalType":"uint256","name":"claimingFeeNumeratorValue","type":"uint256"},{"internalType":"uint256","name":"claimingFeeDenominatorValue","type":"uint256"}],"name":"init","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"initDone","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mine","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"miner","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mineFor","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"mineForVotesOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minerBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minerBlockLastClaimedOn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"minerVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"miningFeeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"miningFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"parameterAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingSuperAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerBlockDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rewardPerBlockNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingAdmin","type":"address"}],"name":"setPendingAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newPendingSuperAdmin","type":"address"}],"name":"setPendingSuperAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"strongToken","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"superAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unmine","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unmineForVotesOnly","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unminingFeeDenominator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unminingFeeNumerator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"feeInWei","type":"uint256"}],"name":"updateClaimingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"newFeeCollector","type":"address"}],"name":"updateFeeCollector","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"updateMiningFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newParameterAdmin","type":"address"}],"name":"updateParameterAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"updateRewardPerBlock","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"numerator","type":"uint256"},{"internalType":"uint256","name":"denominator","type":"uint256"}],"name":"updateUnminingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"vote","outputs":[{"internalType":"contract VoteInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"withdraw","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
608060405234801561001057600080fd5b50612aac806100206000396000f3fe6080604052600436106102935760003560e01c8063965d61b91161015a578063cb454ec9116100c1578063e7f9cefd1161007a578063e7f9cefd14610904578063ef56a08b14610919578063f3fef3a31461092e578063f426571514610967578063f851a44014610984578063fed0a20e1461099957610293565b8063cb454ec91461080e578063ce77beaf14610841578063d2c35ce814610856578063d39ca7de14610889578063db588ec2146108bc578063e771e91a146108d157610293565b8063b6b55f2511610113578063b6b55f251461070d578063be69283e14610737578063c00007b01461077e578063c2acf7ea146107b1578063c2b2fdca146107e4578063c415b95c146107f957610293565b8063965d61b91461065957806399e6f7001461066e578063a84ffad514610683578063aa5c3ab4146106b3578063abb1c39b146106c8578063ad7a672f146106f857610293565b806348028d63116101fe5780635b7f6ea8116101b75780635b7f6ea814610550578063632a9a5214610565578063683a229f1461057a578063857d49d5146105fc57806387f48f4e146106115780638b70f3591461062657610293565b806348028d631461047e5780634d04ad99146104935780634d474898146104bd5780634dd18bf5146104da5780634e71d92d1461050d578063546f93541461051557610293565b8063198858981161025057806319885898146103a057806326782247146103b557806329575f6a146103ca57806330d6a975146103df57806337e4c4ae1461041857806340b584b41461044b57610293565b806309a07fd2146102985780630a8d1be2146102bf5780630e18b681146102f15780630f07aa62146103065780630f1139cf1461034c5780631246af8914610376575b600080fd5b3480156102a457600080fd5b506102ad6109ae565b60408051918252519081900360200190f35b3480156102cb57600080fd5b506102ef600480360360408110156102e257600080fd5b50803590602001356109b4565b005b3480156102fd57600080fd5b506102ef610a7e565b34801561031257600080fd5b506103306004803603602081101561032957600080fd5b5035610b0d565b604080516001600160a01b039092168252519081900360200190f35b34801561035857600080fd5b506102ef6004803603602081101561036f57600080fd5b5035610b34565b34801561038257600080fd5b506102ef6004803603602081101561039957600080fd5b5035610bb6565b3480156103ac57600080fd5b506102ad610d4f565b3480156103c157600080fd5b50610330610d55565b3480156103d657600080fd5b50610330610d64565b3480156103eb57600080fd5b506102ef6004803603604081101561040257600080fd5b506001600160a01b038135169060200135610d73565b34801561042457600080fd5b506102ef6004803603602081101561043b57600080fd5b50356001600160a01b0316610fc5565b34801561045757600080fd5b506102ef6004803603602081101561046e57600080fd5b50356001600160a01b0316611184565b34801561048a57600080fd5b50610330611201565b34801561049f57600080fd5b506102ef600480360360208110156104b657600080fd5b5035611210565b6102ef600480360360208110156104d357600080fd5b50356113f4565b3480156104e657600080fd5b506102ef600480360360208110156104fd57600080fd5b50356001600160a01b0316611761565b6102ef611817565b34801561052157600080fd5b506102ef6004803603604081101561053857600080fd5b506001600160a01b0381351690602001351515611a7e565b34801561055c57600080fd5b506102ad611be9565b34801561057157600080fd5b50610330611bef565b34801561058657600080fd5b506102ef600480360361018081101561059e57600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e0810135906101008101359061012081013590610140810135906101600135611bfe565b34801561060857600080fd5b50610330611ccc565b34801561061d57600080fd5b506102ad611cdb565b34801561063257600080fd5b506102ad6004803603602081101561064957600080fd5b50356001600160a01b0316611ce1565b34801561066557600080fd5b50610330611cf3565b34801561067a57600080fd5b506102ad611d02565b34801561068f57600080fd5b506102ef600480360360408110156106a657600080fd5b5080359060200135611d08565b3480156106bf57600080fd5b506102ad611dd2565b3480156106d457600080fd5b506102ef600480360360408110156106eb57600080fd5b5080359060200135611dd8565b34801561070457600080fd5b506102ad611ea2565b34801561071957600080fd5b506102ef6004803603602081101561073057600080fd5b5035611ea8565b34801561074357600080fd5b5061076a6004803603602081101561075a57600080fd5b50356001600160a01b0316611fcd565b604080519115158252519081900360200190f35b34801561078a57600080fd5b506102ad600480360360208110156107a157600080fd5b50356001600160a01b0316611fe2565b3480156107bd57600080fd5b506102ad600480360360208110156107d457600080fd5b50356001600160a01b0316612097565b3480156107f057600080fd5b506102ad6120a9565b34801561080557600080fd5b506103306120af565b34801561081a57600080fd5b506102ad6004803603602081101561083157600080fd5b50356001600160a01b03166120be565b34801561084d57600080fd5b506102ad6120d0565b34801561086257600080fd5b506102ef6004803603602081101561087957600080fd5b50356001600160a01b03166120d6565b34801561089557600080fd5b506102ef600480360360208110156108ac57600080fd5b50356001600160a01b0316612153565b3480156108c857600080fd5b506102ad612209565b3480156108dd57600080fd5b506102ad600480360360208110156108f457600080fd5b50356001600160a01b031661220f565b34801561091057600080fd5b506102ef612221565b34801561092557600080fd5b506102ad6122aa565b34801561093a57600080fd5b506102ef6004803603604081101561095157600080fd5b506001600160a01b0381351690602001356122b0565b6102ef6004803603602081101561097d57600080fd5b5035612416565b34801561099057600080fd5b506103306127fc565b3480156109a557600080fd5b5061076a612810565b60135481565b60005461010090046001600160a01b03163314806109dc57506004546001600160a01b031633145b806109f157506002546001600160a01b031633145b610a31576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b80610a73576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c69642076616c756560981b604482015290519081900360640190fd5b600d91909155600e55565b6001546001600160a01b031633148015610a9757503315155b610adb576040805162461bcd60e51b815260206004820152601060248201526f3737ba103832b73234b733a0b236b4b760811b604482015290519081900360640190fd5b6001805460008054610100600160a81b0319166101006001600160a01b038416021790556001600160a01b0319169055565b60168181548110610b1a57fe5b6000918252602090912001546001600160a01b0316905081565b60005461010090046001600160a01b0316331480610b5c57506004546001600160a01b031633145b80610b7157506002546001600160a01b031633145b610bb1576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b601855565b60008111610bf4576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b600654604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610c4e57600080fd5b505af1158015610c62573d6000803e3d6000fd5b505050506040513d6020811015610c7857600080fd5b5050336000908152600b6020526040902054610c949082612819565b336000818152600b6020526040808220939093556007548351639fb9ec1160e01b81526004810193909352602483018590526001604484015292516001600160a01b0390931692639fb9ec1192606480820193929182900301818387803b158015610cfe57600080fd5b505af1158015610d12573d6000803e3d6000fd5b50506040805184815290513393507ff37db06620b96226404d091596ee3290dd042d17dc5c440a97876ffbb5d0886092509081900360200190a250565b600e5481565b6001546001600160a01b031681565b6002546001600160a01b031681565b3360009081526017602052604090205460ff16610dc5576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd081d1c9d5cdd195960aa1b604482015290519081900360640190fd5b60008111610e03576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b600654604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b50506001600160a01b038216600090815260086020526040902054610eac9082612819565b6001600160a01b038316600090815260086020526040902055600954610ed29082612819565b6009556001600160a01b0382166000908152600a6020526040902054610f0e576001600160a01b0382166000908152600a602052604090204390555b60075460408051639fb9ec1160e01b81526001600160a01b038581166004830152602482018590526001604483015291519190921691639fb9ec1191606480830192600092919082900301818387803b158015610f6a57600080fd5b505af1158015610f7e573d6000803e3d6000fd5b50506040805184815290516001600160a01b03861693507f4995275d5fede9791a4f176a8aa7d0fea6c316f6ba53693c3acd58ee707a719692509081900360200190a25050565b6001600160a01b038116611009576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b60005461010090046001600160a01b031633148061103157506004546001600160a01b031633145b8061104657506002546001600160a01b031633145b611086576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b6016541561110b576001600160a01b03811660008181526015602052604090205460168054919291839081106110b857fe5b6000918252602090912001546001600160a01b03161415611109576040805162461bcd60e51b815260206004820152600660248201526565786973747360d01b604482015290519081900360640190fd5b505b601680546001600160a01b0390921660008181526015602090815260408083209590955560179052928320805460ff1916600190811790915582549081018355919092527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242890180546001600160a01b0319169091179055565b6001600160a01b0381166111c8576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b6002546001600160a01b031633146111df57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031681565b6000811161124e576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b336000908152600b602052604090205481111561129f576040805162461bcd60e51b815260206004820152600a6024820152690dcdee840cadcdeeaced60b31b604482015290519081900360640190fd5b336000908152600b60205260409020546112b9908261287c565b336000818152600b6020526040808220939093556007548351639fb9ec1160e01b81526004810193909352602483018590526044830182905292516001600160a01b0390931692639fb9ec1192606480820193929182900301818387803b15801561132357600080fd5b505af1158015611337573d6000803e3d6000fd5b50506006546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b03909216935063a9059cbb92506044808201926020929091908290030181600087803b15801561138f57600080fd5b505af11580156113a3573d6000803e3d6000fd5b505050506040513d60208110156113b957600080fd5b505060408051828152905133917f6d45e65025b4e5354fca7fcb828878818b16573fe504e384472faa881216dd5a919081900360200190a250565b60008111611432576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b600061145560105461144f600f54856128be90919063ffffffff16565b90612917565b9050803414611499576040805162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b604482015290519081900360640190fd5b6005546040516001600160a01b03909116903480156108fc02916000818181858888f193505050501580156114d2573d6000803e3d6000fd5b50600654604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561152d57600080fd5b505af1158015611541573d6000803e3d6000fd5b505050506040513d602081101561155757600080fd5b5050336000908152600a602052604090205443111561165457600061157b33611fe2565b90508015611652573360009081526008602052604090205461159d9082612819565b336000908152600860205260409020556009546115ba9082612819565b600955600c546115ca908261287c565b600c5560075460408051639fb9ec1160e01b8152336004820152602481018490526001604482015290516001600160a01b0390921691639fb9ec119160648082019260009290919082900301818387803b15801561162757600080fd5b505af115801561163b573d6000803e3d6000fd5b5050336000908152600a6020526040902043905550505b505b3360009081526008602052604090205461166e9083612819565b3360009081526008602052604090205560095461168b9083612819565b600955336000908152600a60205260409020546116b557336000908152600a602052604090204390555b60075460408051639fb9ec1160e01b8152336004820152602481018590526001604482015290516001600160a01b0390921691639fb9ec119160648082019260009290919082900301818387803b15801561170f57600080fd5b505af1158015611723573d6000803e3d6000fd5b50506040805185815290513393507f3ad10ba9777a3bc21180a465e5459861d07cbdb271af9a0f10c993b365b760f892509081900360200190a25050565b6001600160a01b0381166117a5576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b60005461010090046001600160a01b031633146117f5576040805162461bcd60e51b81526020600482015260096024820152683737ba1030b236b4b760b91b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152600a6020526040902054611860576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b336000908152600a602052604090205443116118ae576040805162461bcd60e51b81526020600482015260086024820152673a37b79039b7b7b760c11b604482015290519081900360640190fd5b60006118b933611fe2565b9050600081116118fc576040805162461bcd60e51b81526020600482015260096024820152681b9bc81c995dd85c9960ba1b604482015290519081900360640190fd5b6018543414611940576040805162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b604482015290519081900360640190fd5b6005546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015611979573d6000803e3d6000fd5b50336000908152600860205260409020546119949082612819565b336000908152600860205260409020556009546119b19082612819565b600955600c546119c1908261287c565b600c55336000818152600a60205260408082204390556007548151639fb9ec1160e01b81526004810194909452602484018590526001604485015290516001600160a01b0390911692639fb9ec1192606480830193919282900301818387803b158015611a2d57600080fd5b505af1158015611a41573d6000803e3d6000fd5b50506040805184815290513393507fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a92509081900360200190a250565b6001600160a01b038216611ac2576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b60005461010090046001600160a01b0316331480611aea57506004546001600160a01b031633145b80611aff57506002546001600160a01b031633145b611b3f576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b6001600160a01b0382166000818152601560205260409020546016805491929183908110611b6957fe5b6000918252602090912001546001600160a01b031614611bbd576040805162461bcd60e51b815260206004820152600a6024820152696e6f742065786973747360b01b604482015290519081900360640190fd5b506001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b600f5481565b6007546001600160a01b031681565b60005460ff1615611c42576040805162461bcd60e51b8152602060048201526009602482015268696e697420646f6e6560b81b604482015290519081900360640190fd5b600780546001600160a01b03199081166001600160a01b039e8f16179091556006805482169c8e169c909c17909b556000805460028054909d169a8e169a909a17909b55600d97909755600e95909555600f93909355601091909155601155601255601355601455610100600160a81b03191661010091909316029190911760ff19166001179055565b6004546001600160a01b031681565b60145481565b600a6020526000908152604090205481565b6006546001600160a01b031681565b600d5481565b60005461010090046001600160a01b0316331480611d3057506004546001600160a01b031633145b80611d4557506002546001600160a01b031633145b611d85576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b80611dc7576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c69642076616c756560981b604482015290519081900360640190fd5b600f91909155601055565b600c5481565b60005461010090046001600160a01b0316331480611e0057506004546001600160a01b031633145b80611e1557506002546001600160a01b031633145b611e55576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b80611e97576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c69642076616c756560981b604482015290519081900360640190fd5b601191909155601255565b60095481565b6002546001600160a01b03163314611ef6576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b60008111611f34576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b600654604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015611f8e57600080fd5b505af1158015611fa2573d6000803e3d6000fd5b505050506040513d6020811015611fb857600080fd5b5050600c54611fc79082612819565b600c5550565b60176020526000908152604090205460ff1681565b600060095460001415611ff757506000612092565b6001600160a01b0382166000908152600a602052604090205461201c57506000612092565b6001600160a01b0382166000908152600a602052604081205461204090439061287c565b9050600061205f600e5461144f600d54856128be90919063ffffffff16565b6009546001600160a01b03861660009081526008602052604090205491925061208d9161144f9084906128be565b925050505b919050565b60156020526000908152604090205481565b60185481565b6005546001600160a01b031681565b600b6020526000908152604090205481565b60115481565b6001600160a01b03811661211a576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b6002546001600160a01b0316331461213157600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116612197576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b6002546001600160a01b031633146121e7576040805162461bcd60e51b815260206004820152600e60248201526d3737ba1039bab832b920b236b4b760911b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60125481565b60086020526000908152604090205481565b6003546001600160a01b03163314801561223a57503315155b612283576040805162461bcd60e51b81526020600482015260156024820152743737ba103832b73234b733a9bab832b920b236b4b760591b604482015290519081900360640190fd5b60038054600280546001600160a01b03199081166001600160a01b03841617909155169055565b60105481565b6002546001600160a01b031633146122fe576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b6000811161233c576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b80600c541015612380576040805162461bcd60e51b815260206004820152600a6024820152690dcdee840cadcdeeaced60b31b604482015290519081900360640190fd5b6006546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156123d657600080fd5b505af11580156123ea573d6000803e3d6000fd5b505050506040513d602081101561240057600080fd5b5050600c5461240f908261287c565b600c555050565b60008111612454576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b600061247160125461144f601154856128be90919063ffffffff16565b90508034146124b5576040805162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b604482015290519081900360640190fd5b33600090815260086020526040902054821115612506576040805162461bcd60e51b815260206004820152600a6024820152690dcdee840cadcdeeaced60b31b604482015290519081900360640190fd5b6005546040516001600160a01b03909116903480156108fc02916000818181858888f1935050505015801561253f573d6000803e3d6000fd5b5033600090815260086020908152604080832054600a909252909120549083149043111561264b57600061257233611fe2565b9050801561264957336000908152600860205260409020546125949082612819565b336000908152600860205260409020556009546125b19082612819565b600955600c546125c1908261287c565b600c5560075460408051639fb9ec1160e01b8152336004820152602481018490526001604482015290516001600160a01b0390921691639fb9ec119160648082019260009290919082900301818387803b15801561261e57600080fd5b505af1158015612632573d6000803e3d6000fd5b5050336000908152600a6020526040902043905550505b505b6000816126585783612669565b336000908152600860205260409020545b33600090815260086020526040902054909150612686908261287c565b336000908152600860205260409020556009546126a3908261287c565b6009556006546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b1580156126fa57600080fd5b505af115801561270e573d6000803e3d6000fd5b505050506040513d602081101561272457600080fd5b505060075460408051639fb9ec1160e01b81523360048201526024810184905260006044820181905291516001600160a01b0390931692639fb9ec119260648084019391929182900301818387803b15801561277f57600080fd5b505af1158015612793573d6000803e3d6000fd5b505033600090815260086020526040902054151591506127c0905057336000908152600a60205260408120555b60408051828152905133917f53d02005d2e370ce08a8b60d65e07879891c336e6513821a3923f11854b54027919081900360200190a250505050565b60005461010090046001600160a01b031681565b60005460ff1681565b600082820183811015612873576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061287383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612959565b6000826128cd57506000612876565b828202828482816128da57fe5b04146128735760405162461bcd60e51b8152600401808060200182810382526021815260200180612a566021913960400191505060405180910390fd5b600061287383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129f0565b600081848411156129e85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129ad578181015183820152602001612995565b50505050905090810190601f1680156129da5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183612a3f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129ad578181015183820152602001612995565b506000838581612a4b57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212206d2b4d8bf5aefa0eb75d7e34c15669d33dda7a55091da3b01f12c55afa7becc564736f6c634300060c0033
Deployed Bytecode
0x6080604052600436106102935760003560e01c8063965d61b91161015a578063cb454ec9116100c1578063e7f9cefd1161007a578063e7f9cefd14610904578063ef56a08b14610919578063f3fef3a31461092e578063f426571514610967578063f851a44014610984578063fed0a20e1461099957610293565b8063cb454ec91461080e578063ce77beaf14610841578063d2c35ce814610856578063d39ca7de14610889578063db588ec2146108bc578063e771e91a146108d157610293565b8063b6b55f2511610113578063b6b55f251461070d578063be69283e14610737578063c00007b01461077e578063c2acf7ea146107b1578063c2b2fdca146107e4578063c415b95c146107f957610293565b8063965d61b91461065957806399e6f7001461066e578063a84ffad514610683578063aa5c3ab4146106b3578063abb1c39b146106c8578063ad7a672f146106f857610293565b806348028d63116101fe5780635b7f6ea8116101b75780635b7f6ea814610550578063632a9a5214610565578063683a229f1461057a578063857d49d5146105fc57806387f48f4e146106115780638b70f3591461062657610293565b806348028d631461047e5780634d04ad99146104935780634d474898146104bd5780634dd18bf5146104da5780634e71d92d1461050d578063546f93541461051557610293565b8063198858981161025057806319885898146103a057806326782247146103b557806329575f6a146103ca57806330d6a975146103df57806337e4c4ae1461041857806340b584b41461044b57610293565b806309a07fd2146102985780630a8d1be2146102bf5780630e18b681146102f15780630f07aa62146103065780630f1139cf1461034c5780631246af8914610376575b600080fd5b3480156102a457600080fd5b506102ad6109ae565b60408051918252519081900360200190f35b3480156102cb57600080fd5b506102ef600480360360408110156102e257600080fd5b50803590602001356109b4565b005b3480156102fd57600080fd5b506102ef610a7e565b34801561031257600080fd5b506103306004803603602081101561032957600080fd5b5035610b0d565b604080516001600160a01b039092168252519081900360200190f35b34801561035857600080fd5b506102ef6004803603602081101561036f57600080fd5b5035610b34565b34801561038257600080fd5b506102ef6004803603602081101561039957600080fd5b5035610bb6565b3480156103ac57600080fd5b506102ad610d4f565b3480156103c157600080fd5b50610330610d55565b3480156103d657600080fd5b50610330610d64565b3480156103eb57600080fd5b506102ef6004803603604081101561040257600080fd5b506001600160a01b038135169060200135610d73565b34801561042457600080fd5b506102ef6004803603602081101561043b57600080fd5b50356001600160a01b0316610fc5565b34801561045757600080fd5b506102ef6004803603602081101561046e57600080fd5b50356001600160a01b0316611184565b34801561048a57600080fd5b50610330611201565b34801561049f57600080fd5b506102ef600480360360208110156104b657600080fd5b5035611210565b6102ef600480360360208110156104d357600080fd5b50356113f4565b3480156104e657600080fd5b506102ef600480360360208110156104fd57600080fd5b50356001600160a01b0316611761565b6102ef611817565b34801561052157600080fd5b506102ef6004803603604081101561053857600080fd5b506001600160a01b0381351690602001351515611a7e565b34801561055c57600080fd5b506102ad611be9565b34801561057157600080fd5b50610330611bef565b34801561058657600080fd5b506102ef600480360361018081101561059e57600080fd5b506001600160a01b0381358116916020810135821691604082013581169160608101359091169060808101359060a08101359060c08101359060e0810135906101008101359061012081013590610140810135906101600135611bfe565b34801561060857600080fd5b50610330611ccc565b34801561061d57600080fd5b506102ad611cdb565b34801561063257600080fd5b506102ad6004803603602081101561064957600080fd5b50356001600160a01b0316611ce1565b34801561066557600080fd5b50610330611cf3565b34801561067a57600080fd5b506102ad611d02565b34801561068f57600080fd5b506102ef600480360360408110156106a657600080fd5b5080359060200135611d08565b3480156106bf57600080fd5b506102ad611dd2565b3480156106d457600080fd5b506102ef600480360360408110156106eb57600080fd5b5080359060200135611dd8565b34801561070457600080fd5b506102ad611ea2565b34801561071957600080fd5b506102ef6004803603602081101561073057600080fd5b5035611ea8565b34801561074357600080fd5b5061076a6004803603602081101561075a57600080fd5b50356001600160a01b0316611fcd565b604080519115158252519081900360200190f35b34801561078a57600080fd5b506102ad600480360360208110156107a157600080fd5b50356001600160a01b0316611fe2565b3480156107bd57600080fd5b506102ad600480360360208110156107d457600080fd5b50356001600160a01b0316612097565b3480156107f057600080fd5b506102ad6120a9565b34801561080557600080fd5b506103306120af565b34801561081a57600080fd5b506102ad6004803603602081101561083157600080fd5b50356001600160a01b03166120be565b34801561084d57600080fd5b506102ad6120d0565b34801561086257600080fd5b506102ef6004803603602081101561087957600080fd5b50356001600160a01b03166120d6565b34801561089557600080fd5b506102ef600480360360208110156108ac57600080fd5b50356001600160a01b0316612153565b3480156108c857600080fd5b506102ad612209565b3480156108dd57600080fd5b506102ad600480360360208110156108f457600080fd5b50356001600160a01b031661220f565b34801561091057600080fd5b506102ef612221565b34801561092557600080fd5b506102ad6122aa565b34801561093a57600080fd5b506102ef6004803603604081101561095157600080fd5b506001600160a01b0381351690602001356122b0565b6102ef6004803603602081101561097d57600080fd5b5035612416565b34801561099057600080fd5b506103306127fc565b3480156109a557600080fd5b5061076a612810565b60135481565b60005461010090046001600160a01b03163314806109dc57506004546001600160a01b031633145b806109f157506002546001600160a01b031633145b610a31576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b80610a73576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c69642076616c756560981b604482015290519081900360640190fd5b600d91909155600e55565b6001546001600160a01b031633148015610a9757503315155b610adb576040805162461bcd60e51b815260206004820152601060248201526f3737ba103832b73234b733a0b236b4b760811b604482015290519081900360640190fd5b6001805460008054610100600160a81b0319166101006001600160a01b038416021790556001600160a01b0319169055565b60168181548110610b1a57fe5b6000918252602090912001546001600160a01b0316905081565b60005461010090046001600160a01b0316331480610b5c57506004546001600160a01b031633145b80610b7157506002546001600160a01b031633145b610bb1576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b601855565b60008111610bf4576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b600654604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610c4e57600080fd5b505af1158015610c62573d6000803e3d6000fd5b505050506040513d6020811015610c7857600080fd5b5050336000908152600b6020526040902054610c949082612819565b336000818152600b6020526040808220939093556007548351639fb9ec1160e01b81526004810193909352602483018590526001604484015292516001600160a01b0390931692639fb9ec1192606480820193929182900301818387803b158015610cfe57600080fd5b505af1158015610d12573d6000803e3d6000fd5b50506040805184815290513393507ff37db06620b96226404d091596ee3290dd042d17dc5c440a97876ffbb5d0886092509081900360200190a250565b600e5481565b6001546001600160a01b031681565b6002546001600160a01b031681565b3360009081526017602052604090205460ff16610dc5576040805162461bcd60e51b815260206004820152600b60248201526a1b9bdd081d1c9d5cdd195960aa1b604482015290519081900360640190fd5b60008111610e03576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b600654604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015610e5d57600080fd5b505af1158015610e71573d6000803e3d6000fd5b505050506040513d6020811015610e8757600080fd5b50506001600160a01b038216600090815260086020526040902054610eac9082612819565b6001600160a01b038316600090815260086020526040902055600954610ed29082612819565b6009556001600160a01b0382166000908152600a6020526040902054610f0e576001600160a01b0382166000908152600a602052604090204390555b60075460408051639fb9ec1160e01b81526001600160a01b038581166004830152602482018590526001604483015291519190921691639fb9ec1191606480830192600092919082900301818387803b158015610f6a57600080fd5b505af1158015610f7e573d6000803e3d6000fd5b50506040805184815290516001600160a01b03861693507f4995275d5fede9791a4f176a8aa7d0fea6c316f6ba53693c3acd58ee707a719692509081900360200190a25050565b6001600160a01b038116611009576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b60005461010090046001600160a01b031633148061103157506004546001600160a01b031633145b8061104657506002546001600160a01b031633145b611086576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b6016541561110b576001600160a01b03811660008181526015602052604090205460168054919291839081106110b857fe5b6000918252602090912001546001600160a01b03161415611109576040805162461bcd60e51b815260206004820152600660248201526565786973747360d01b604482015290519081900360640190fd5b505b601680546001600160a01b0390921660008181526015602090815260408083209590955560179052928320805460ff1916600190811790915582549081018355919092527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b51242890180546001600160a01b0319169091179055565b6001600160a01b0381166111c8576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b6002546001600160a01b031633146111df57600080fd5b600480546001600160a01b0319166001600160a01b0392909216919091179055565b6003546001600160a01b031681565b6000811161124e576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b336000908152600b602052604090205481111561129f576040805162461bcd60e51b815260206004820152600a6024820152690dcdee840cadcdeeaced60b31b604482015290519081900360640190fd5b336000908152600b60205260409020546112b9908261287c565b336000818152600b6020526040808220939093556007548351639fb9ec1160e01b81526004810193909352602483018590526044830182905292516001600160a01b0390931692639fb9ec1192606480820193929182900301818387803b15801561132357600080fd5b505af1158015611337573d6000803e3d6000fd5b50506006546040805163a9059cbb60e01b81523360048201526024810186905290516001600160a01b03909216935063a9059cbb92506044808201926020929091908290030181600087803b15801561138f57600080fd5b505af11580156113a3573d6000803e3d6000fd5b505050506040513d60208110156113b957600080fd5b505060408051828152905133917f6d45e65025b4e5354fca7fcb828878818b16573fe504e384472faa881216dd5a919081900360200190a250565b60008111611432576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b600061145560105461144f600f54856128be90919063ffffffff16565b90612917565b9050803414611499576040805162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b604482015290519081900360640190fd5b6005546040516001600160a01b03909116903480156108fc02916000818181858888f193505050501580156114d2573d6000803e3d6000fd5b50600654604080516323b872dd60e01b81523360048201523060248201526044810185905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b15801561152d57600080fd5b505af1158015611541573d6000803e3d6000fd5b505050506040513d602081101561155757600080fd5b5050336000908152600a602052604090205443111561165457600061157b33611fe2565b90508015611652573360009081526008602052604090205461159d9082612819565b336000908152600860205260409020556009546115ba9082612819565b600955600c546115ca908261287c565b600c5560075460408051639fb9ec1160e01b8152336004820152602481018490526001604482015290516001600160a01b0390921691639fb9ec119160648082019260009290919082900301818387803b15801561162757600080fd5b505af115801561163b573d6000803e3d6000fd5b5050336000908152600a6020526040902043905550505b505b3360009081526008602052604090205461166e9083612819565b3360009081526008602052604090205560095461168b9083612819565b600955336000908152600a60205260409020546116b557336000908152600a602052604090204390555b60075460408051639fb9ec1160e01b8152336004820152602481018590526001604482015290516001600160a01b0390921691639fb9ec119160648082019260009290919082900301818387803b15801561170f57600080fd5b505af1158015611723573d6000803e3d6000fd5b50506040805185815290513393507f3ad10ba9777a3bc21180a465e5459861d07cbdb271af9a0f10c993b365b760f892509081900360200190a25050565b6001600160a01b0381166117a5576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b60005461010090046001600160a01b031633146117f5576040805162461bcd60e51b81526020600482015260096024820152683737ba1030b236b4b760b91b604482015290519081900360640190fd5b600180546001600160a01b0319166001600160a01b0392909216919091179055565b336000908152600a6020526040902054611860576040805162461bcd60e51b815260206004820152600560248201526432b93937b960d91b604482015290519081900360640190fd5b336000908152600a602052604090205443116118ae576040805162461bcd60e51b81526020600482015260086024820152673a37b79039b7b7b760c11b604482015290519081900360640190fd5b60006118b933611fe2565b9050600081116118fc576040805162461bcd60e51b81526020600482015260096024820152681b9bc81c995dd85c9960ba1b604482015290519081900360640190fd5b6018543414611940576040805162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b604482015290519081900360640190fd5b6005546040516001600160a01b03909116903480156108fc02916000818181858888f19350505050158015611979573d6000803e3d6000fd5b50336000908152600860205260409020546119949082612819565b336000908152600860205260409020556009546119b19082612819565b600955600c546119c1908261287c565b600c55336000818152600a60205260408082204390556007548151639fb9ec1160e01b81526004810194909452602484018590526001604485015290516001600160a01b0390911692639fb9ec1192606480830193919282900301818387803b158015611a2d57600080fd5b505af1158015611a41573d6000803e3d6000fd5b50506040805184815290513393507fd8138f8a3f377c5259ca548e70e4c2de94f129f5a11036a15b69513cba2b426a92509081900360200190a250565b6001600160a01b038216611ac2576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b60005461010090046001600160a01b0316331480611aea57506004546001600160a01b031633145b80611aff57506002546001600160a01b031633145b611b3f576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b6001600160a01b0382166000818152601560205260409020546016805491929183908110611b6957fe5b6000918252602090912001546001600160a01b031614611bbd576040805162461bcd60e51b815260206004820152600a6024820152696e6f742065786973747360b01b604482015290519081900360640190fd5b506001600160a01b03919091166000908152601760205260409020805460ff1916911515919091179055565b600f5481565b6007546001600160a01b031681565b60005460ff1615611c42576040805162461bcd60e51b8152602060048201526009602482015268696e697420646f6e6560b81b604482015290519081900360640190fd5b600780546001600160a01b03199081166001600160a01b039e8f16179091556006805482169c8e169c909c17909b556000805460028054909d169a8e169a909a17909b55600d97909755600e95909555600f93909355601091909155601155601255601355601455610100600160a81b03191661010091909316029190911760ff19166001179055565b6004546001600160a01b031681565b60145481565b600a6020526000908152604090205481565b6006546001600160a01b031681565b600d5481565b60005461010090046001600160a01b0316331480611d3057506004546001600160a01b031633145b80611d4557506002546001600160a01b031633145b611d85576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b80611dc7576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c69642076616c756560981b604482015290519081900360640190fd5b600f91909155601055565b600c5481565b60005461010090046001600160a01b0316331480611e0057506004546001600160a01b031633145b80611e1557506002546001600160a01b031633145b611e55576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b80611e97576040805162461bcd60e51b815260206004820152600d60248201526c696e76616c69642076616c756560981b604482015290519081900360640190fd5b601191909155601255565b60095481565b6002546001600160a01b03163314611ef6576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b60008111611f34576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b600654604080516323b872dd60e01b81523360048201523060248201526044810184905290516001600160a01b03909216916323b872dd916064808201926020929091908290030181600087803b158015611f8e57600080fd5b505af1158015611fa2573d6000803e3d6000fd5b505050506040513d6020811015611fb857600080fd5b5050600c54611fc79082612819565b600c5550565b60176020526000908152604090205460ff1681565b600060095460001415611ff757506000612092565b6001600160a01b0382166000908152600a602052604090205461201c57506000612092565b6001600160a01b0382166000908152600a602052604081205461204090439061287c565b9050600061205f600e5461144f600d54856128be90919063ffffffff16565b6009546001600160a01b03861660009081526008602052604090205491925061208d9161144f9084906128be565b925050505b919050565b60156020526000908152604090205481565b60185481565b6005546001600160a01b031681565b600b6020526000908152604090205481565b60115481565b6001600160a01b03811661211a576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b6002546001600160a01b0316331461213157600080fd5b600580546001600160a01b0319166001600160a01b0392909216919091179055565b6001600160a01b038116612197576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b6002546001600160a01b031633146121e7576040805162461bcd60e51b815260206004820152600e60248201526d3737ba1039bab832b920b236b4b760911b604482015290519081900360640190fd5b600380546001600160a01b0319166001600160a01b0392909216919091179055565b60125481565b60086020526000908152604090205481565b6003546001600160a01b03163314801561223a57503315155b612283576040805162461bcd60e51b81526020600482015260156024820152743737ba103832b73234b733a9bab832b920b236b4b760591b604482015290519081900360640190fd5b60038054600280546001600160a01b03199081166001600160a01b03841617909155169055565b60105481565b6002546001600160a01b031633146122fe576040805162461bcd60e51b815260206004820152600c60248201526b3737ba1030b71030b236b4b760a11b604482015290519081900360640190fd5b6000811161233c576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b80600c541015612380576040805162461bcd60e51b815260206004820152600a6024820152690dcdee840cadcdeeaced60b31b604482015290519081900360640190fd5b6006546040805163a9059cbb60e01b81526001600160a01b038581166004830152602482018590529151919092169163a9059cbb9160448083019260209291908290030181600087803b1580156123d657600080fd5b505af11580156123ea573d6000803e3d6000fd5b505050506040513d602081101561240057600080fd5b5050600c5461240f908261287c565b600c555050565b60008111612454576040805162461bcd60e51b815260206004808301919091526024820152637a65726f60e01b604482015290519081900360640190fd5b600061247160125461144f601154856128be90919063ffffffff16565b90508034146124b5576040805162461bcd60e51b815260206004820152600b60248201526a696e76616c69642066656560a81b604482015290519081900360640190fd5b33600090815260086020526040902054821115612506576040805162461bcd60e51b815260206004820152600a6024820152690dcdee840cadcdeeaced60b31b604482015290519081900360640190fd5b6005546040516001600160a01b03909116903480156108fc02916000818181858888f1935050505015801561253f573d6000803e3d6000fd5b5033600090815260086020908152604080832054600a909252909120549083149043111561264b57600061257233611fe2565b9050801561264957336000908152600860205260409020546125949082612819565b336000908152600860205260409020556009546125b19082612819565b600955600c546125c1908261287c565b600c5560075460408051639fb9ec1160e01b8152336004820152602481018490526001604482015290516001600160a01b0390921691639fb9ec119160648082019260009290919082900301818387803b15801561261e57600080fd5b505af1158015612632573d6000803e3d6000fd5b5050336000908152600a6020526040902043905550505b505b6000816126585783612669565b336000908152600860205260409020545b33600090815260086020526040902054909150612686908261287c565b336000908152600860205260409020556009546126a3908261287c565b6009556006546040805163a9059cbb60e01b81523360048201526024810184905290516001600160a01b039092169163a9059cbb916044808201926020929091908290030181600087803b1580156126fa57600080fd5b505af115801561270e573d6000803e3d6000fd5b505050506040513d602081101561272457600080fd5b505060075460408051639fb9ec1160e01b81523360048201526024810184905260006044820181905291516001600160a01b0390931692639fb9ec119260648084019391929182900301818387803b15801561277f57600080fd5b505af1158015612793573d6000803e3d6000fd5b505033600090815260086020526040902054151591506127c0905057336000908152600a60205260408120555b60408051828152905133917f53d02005d2e370ce08a8b60d65e07879891c336e6513821a3923f11854b54027919081900360200190a250505050565b60005461010090046001600160a01b031681565b60005460ff1681565b600082820183811015612873576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b90505b92915050565b600061287383836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612959565b6000826128cd57506000612876565b828202828482816128da57fe5b04146128735760405162461bcd60e51b8152600401808060200182810382526021815260200180612a566021913960400191505060405180910390fd5b600061287383836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506129f0565b600081848411156129e85760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156129ad578181015183820152602001612995565b50505050905090810190601f1680156129da5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b60008183612a3f5760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156129ad578181015183820152602001612995565b506000838581612a4b57fe5b049594505050505056fe536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f77a26469706673582212206d2b4d8bf5aefa0eb75d7e34c15669d33dda7a55091da3b01f12c55afa7becc564736f6c634300060c0033
Deployed Bytecode Sourcemap
137:13019:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1357:35;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;5757:422;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;5757:422:2;;;;;;;:::i;:::-;;3643:229;;;;;;;;;;;;;:::i;1503:33::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1503:33:2;;:::i;:::-;;;;-1:-1:-1;;;;;1503:33:2;;;;;;;;;;;;;;7696:276;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7696:276:2;;:::i;8083:335::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8083:335:2;;:::i;1144:40::-;;;;;;;;;;;;;:::i;620:27::-;;;;;;;;;;;;;:::i;653:25::-;;;;;;;;;;;;;:::i;8816:553::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;8816:553:2;;;;;;;;:::i;4513:633::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;4513:633:2;-1:-1:-1;;;;;4513:633:2;;:::i;2984:216::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2984:216:2;-1:-1:-1;;;;;2984:216:2;;:::i;684:32::-;;;;;;;;;;;;;:::i;8424:386::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8424:386:2;;:::i;9375:1171::-;;;;;;;;;;;;;;;;-1:-1:-1;9375:1171:2;;:::i;3426:211::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3426:211:2;-1:-1:-1;;;;;3426:211:2;;:::i;11969:710::-;;;:::i;5152:492::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5152:492:2;;;;;;;;;;:::i;1191:33::-;;;;;;;;;;;;;:::i;830:25::-;;;;;;;;;;;;;:::i;1641:1231::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;1641:1231:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;722:29::-;;;;;;;;;;;;;:::i;1398:37::-;;;;;;;;;;;;;:::i;948:58::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;948:58:2;-1:-1:-1;;;;;948:58:2;;:::i;799:25::-;;;;;;;;;;;;;:::i;1100:38::-;;;;;;;;;;;;;:::i;6888:395::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6888:395:2;;;;;;;:::i;1065:28::-;;;;;;;;;;;;;:::i;7289:401::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7289:401:2;;;;;;;:::i;915:27::-;;;;;;;;;;;;;:::i;6185:263::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6185:263:2;;:::i;1542:54::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1542:54:2;-1:-1:-1;;;;;1542:54:2;;:::i;:::-;;;;;;;;;;;;;;;;;;12685:469;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12685:469:2;-1:-1:-1;;;;;12685:469:2;;:::i;1442:55::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1442:55:2;-1:-1:-1;;;;;1442:55:2;;:::i;1603:31::-;;;;;;;;;;;;;:::i;757:35::-;;;;;;;;;;;;;:::i;1013:45::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1013:45:2;-1:-1:-1;;;;;1013:45:2;;:::i;1272:35::-;;;;;;;;;;;;;:::i;3206:214::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3206:214:2;-1:-1:-1;;;;;3206:214:2;;:::i;3878:246::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;3878:246:2;-1:-1:-1;;;;;3878:246:2;;:::i;1313:37::-;;;;;;;;;;;;;:::i;862:47::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;862:47:2;-1:-1:-1;;;;;862:47:2;;:::i;4130:259::-;;;;;;;;;;;;;:::i;1230:35::-;;;;;;;;;;;;;:::i;6454:323::-;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;6454:323:2;;;;;;;;:::i;10552:1411::-;;;;;;;;;;;;;;;;-1:-1:-1;10552:1411:2;;:::i;594:20::-;;;;;;;;;;;;;:::i;568:::-;;;;;;;;;;;;;:::i;1357:35::-;;;;:::o;5757:422::-;5891:5;;;;;-1:-1:-1;;;;;5891:5:2;5877:10;:19;;:67;;-1:-1:-1;5930:14:2;;-1:-1:-1;;;;;5930:14:2;5916:10;:28;5877:67;:111;;;-1:-1:-1;5978:10:2;;-1:-1:-1;;;;;5978:10:2;5964;:24;5877:111;5856:170;;;;;-1:-1:-1;;;5856:170:2;;;;;;;;;;;;-1:-1:-1;;;5856:170:2;;;;;;;;;;;;;;;6044:16;6036:42;;;;;-1:-1:-1;;;6036:42:2;;;;;;;;;;;;-1:-1:-1;;;6036:42:2;;;;;;;;;;;;;;;6088:23;:35;;;;6133:25;:39;5757:422::o;3643:229::-;3718:12;;-1:-1:-1;;;;;3718:12:2;3704:10;:26;:54;;;;-1:-1:-1;3734:10:2;:24;;3704:54;3683:117;;;;;-1:-1:-1;;;3683:117:2;;;;;;;;;;;;-1:-1:-1;;;3683:117:2;;;;;;;;;;;;;;;3818:12;;;;3810:20;;-1:-1:-1;;;;;;3810:20:2;3818:12;-1:-1:-1;;;;;3818:12:2;;3810:20;;;;-1:-1:-1;;;;;;3840:25:2;;;3643:229::o;1503:33::-;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;1503:33:2;;-1:-1:-1;1503:33:2;:::o;7696:276::-;7793:5;;;;;-1:-1:-1;;;;;7793:5:2;7779:10;:19;;:67;;-1:-1:-1;7832:14:2;;-1:-1:-1;;;;;7832:14:2;7818:10;:28;7779:67;:111;;;-1:-1:-1;7880:10:2;;-1:-1:-1;;;;;7880:10:2;7866;:24;7779:111;7758:170;;;;;-1:-1:-1;;;7758:170:2;;;;;;;;;;;;-1:-1:-1;;;7758:170:2;;;;;;;;;;;;;;;7938:16;:27;7696:276::o;8083:335::-;8159:1;8150:6;:10;8142:27;;;;;-1:-1:-1;;;8142:27:2;;;;;;;;;;;;;;;-1:-1:-1;;;8142:27:2;;;;;;;;;;;;;;;8179:11;;:59;;;-1:-1:-1;;;8179:59:2;;8204:10;8179:59;;;;8224:4;8179:59;;;;;;;;;;;;-1:-1:-1;;;;;8179:11:2;;;;:24;;:59;;;;;;;;;;;;;;;:11;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8284:10:2;8273:22;;;;:10;8179:59;8273:22;;;;;:34;;8300:6;8273:26;:34::i;:::-;8259:10;8248:22;;;;:10;:22;;;;;;:59;;;;8317:4;;:42;;-1:-1:-1;;;8317:42:2;;;;;;;;;;;;;;;:4;:42;;;;;;-1:-1:-1;;;;;8317:4:2;;;;:16;;:42;;;;;8248:22;8317:42;;;;;;8248:22;8317:4;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8374:37:2;;;;;;;;8392:10;;-1:-1:-1;8374:37:2;;-1:-1:-1;8374:37:2;;;;;;;;8083:335;:::o;1144:40::-;;;;:::o;620:27::-;;;-1:-1:-1;;;;;620:27:2;;:::o;653:25::-;;;-1:-1:-1;;;;;653:25:2;;:::o;8816:553::-;8912:10;8889:34;;;;:22;:34;;;;;;;;8881:58;;;;;-1:-1:-1;;;8881:58:2;;;;;;;;;;;;-1:-1:-1;;;8881:58:2;;;;;;;;;;;;;;;8966:1;8957:6;:10;8949:27;;;;;-1:-1:-1;;;8949:27:2;;;;;;;;;;;;;;;-1:-1:-1;;;8949:27:2;;;;;;;;;;;;;;;8986:11;;:59;;;-1:-1:-1;;;8986:59:2;;9011:10;8986:59;;;;9031:4;8986:59;;;;;;;;;;;;-1:-1:-1;;;;;8986:11:2;;;;:24;;:59;;;;;;;;;;;;;;;:11;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;;;9077:19:2;;;;;;:12;8986:59;9077:19;;;;;:31;;9101:6;9077:23;:31::i;:::-;-1:-1:-1;;;;;9055:19:2;;;;;;:12;:19;;;;;:53;9133:12;;:24;;9150:6;9133:16;:24::i;:::-;9118:12;:39;-1:-1:-1;;;;;9171:30:2;;;;;;:23;:30;;;;;;9167:111;;-1:-1:-1;;;;;9222:30:2;;;;;;:23;:30;;;;;9255:12;9222:45;;9167:111;9287:4;;:37;;;-1:-1:-1;;;9287:37:2;;-1:-1:-1;;;;;9287:37:2;;;;;;;;;;;;;:4;:37;;;;;;:4;;;;;:16;;:37;;;;;:4;;:37;;;;;;;:4;;:37;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9339:23:2;;;;;;;;-1:-1:-1;;;;;9339:23:2;;;-1:-1:-1;9339:23:2;;-1:-1:-1;9339:23:2;;;;;;;;8816:553;;:::o;4513:633::-;-1:-1:-1;;;;;4581:19:2;;4573:36;;;;;-1:-1:-1;;;4573:36:2;;;;;;;;;;;;;;;-1:-1:-1;;;4573:36:2;;;;;;;;;;;;;;;4654:5;;;;;-1:-1:-1;;;;;4654:5:2;4640:10;:19;;:67;;-1:-1:-1;4693:14:2;;-1:-1:-1;;;;;4693:14:2;4679:10;:28;4640:67;:111;;;-1:-1:-1;4741:10:2;;-1:-1:-1;;;;;4741:10:2;4727;:24;4640:111;4619:170;;;;;-1:-1:-1;;;4619:170:2;;;;;;;;;;;;-1:-1:-1;;;4619:170:2;;;;;;;;;;;;;;;4803:16;:23;:28;4799:167;;-1:-1:-1;;;;;4863:27:2;;4847:13;4863:27;;;:20;:27;;;;;;4912:16;:23;;4863:27;;;;;4912:23;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4912:23:2;:32;;4904:51;;;;;-1:-1:-1;;;4904:51:2;;;;;;;;;;;;-1:-1:-1;;;4904:51:2;;;;;;;;;;;;;;;4799:167;;4989:16;:23;;-1:-1:-1;;;;;5022:27:2;;;4975:11;5022:27;;;:20;:27;;;;;;;;:33;;;;5065:22;:29;;;;;:36;;-1:-1:-1;;5065:36:2;5097:4;5065:36;;;;;;5111:28;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5111:28:2;;;;;;4513:633::o;2984:216::-;-1:-1:-1;;;;;3066:31:2;;3058:48;;;;;-1:-1:-1;;;3058:48:2;;;;;;;;;;;;;;;-1:-1:-1;;;3058:48:2;;;;;;;;;;;;;;;3138:10;;-1:-1:-1;;;;;3138:10:2;3124;:24;3116:33;;;;;;3159:14;:34;;-1:-1:-1;;;;;;3159:34:2;-1:-1:-1;;;;;3159:34:2;;;;;;;;;;2984:216::o;684:32::-;;;-1:-1:-1;;;;;684:32:2;;:::o;8424:386::-;8502:1;8493:6;:10;8485:27;;;;;-1:-1:-1;;;8485:27:2;;;;;;;;;;;;;;;-1:-1:-1;;;8485:27:2;;;;;;;;;;;;;;;8541:10;8530:22;;;;:10;:22;;;;;;:32;-1:-1:-1;8530:32:2;8522:55;;;;;-1:-1:-1;;;8522:55:2;;;;;;;;;;;;-1:-1:-1;;;8522:55:2;;;;;;;;;;;;;;;8623:10;8612:22;;;;:10;:22;;;;;;:34;;8639:6;8612:26;:34::i;:::-;8598:10;8587:22;;;;:10;:22;;;;;;:59;;;;8656:4;;:43;;-1:-1:-1;;;8656:43:2;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;8656:4:2;;;;:16;;:43;;;;;8587:22;8656:43;;;;;;8587:22;8656:4;:43;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8709:11:2;;:40;;;-1:-1:-1;;;8709:40:2;;8730:10;8709:40;;;;;;;;;;;;-1:-1:-1;;;;;8709:11:2;;;;-1:-1:-1;8709:20:2;;-1:-1:-1;8709:40:2;;;;;;;;;;;;;;;:11;;:40;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;8764:39:2;;;;;;;;8784:10;;8764:39;;;;;;8709:40;8764:39;;;8424:386;:::o;9375:1171::-;9447:1;9438:6;:10;9430:27;;;;;-1:-1:-1;;;9430:27:2;;;;;;;;;;;;;;;-1:-1:-1;;;9430:27:2;;;;;;;;;;;;;;;9467:11;9481:56;9516:20;;9481:30;9492:18;;9481:6;:10;;:30;;;;:::i;:::-;:34;;:56::i;:::-;9467:70;;9568:3;9555:9;:16;9547:40;;;;;-1:-1:-1;;;9547:40:2;;;;;;;;;;;;-1:-1:-1;;;9547:40:2;;;;;;;;;;;;;;;9597:12;;:32;;-1:-1:-1;;;;;9597:12:2;;;;9619:9;9597:32;;;;;:12;:32;:12;:32;9619:9;9597:12;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9639:11:2;;:59;;;-1:-1:-1;;;9639:59:2;;9664:10;9639:59;;;;9684:4;9639:59;;;;;;;;;;;;-1:-1:-1;;;;;9639:11:2;;;;:24;;:59;;;;;;;;;;;;;;;:11;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9751:10:2;9727:35;;;;:23;9639:59;9727:35;;;;;9712:12;:50;9708:488;;;9778:14;9795:21;9805:10;9795:9;:21::i;:::-;9778:38;-1:-1:-1;9834:10:2;;9830:356;;9904:10;9891:24;;;;:12;:24;;;;;;:36;;9920:6;9891:28;:36::i;:::-;9877:10;9864:24;;;;:12;:24;;;;;:63;9960:12;;:24;;9977:6;9960:16;:24::i;:::-;9945:12;:39;10018:13;;:25;;10036:6;10018:17;:25::i;:::-;10002:13;:41;10061:4;;:42;;;-1:-1:-1;;;10061:42:2;;10078:10;10061:42;;;;;;;;;;:4;:42;;;;;;-1:-1:-1;;;;;10061:4:2;;;;:16;;:42;;;;;:4;;:42;;;;;;;;:4;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10145:10:2;10121:35;;;;:23;:35;;;;;10159:12;10121:50;;-1:-1:-1;;9830:356:2;9708:488;;10245:10;10232:24;;;;:12;:24;;;;;;:36;;10261:6;10232:28;:36::i;:::-;10218:10;10205:24;;;;:12;:24;;;;;:63;10293:12;;:24;;10310:6;10293:16;:24::i;:::-;10278:12;:39;10355:10;10331:35;;;;:23;:35;;;;;;10327:121;;10411:10;10387:35;;;;:23;:35;;;;;10425:12;10387:50;;10327:121;10457:4;;:42;;;-1:-1:-1;;;10457:42:2;;10474:10;10457:42;;;;;;;;;;:4;:42;;;;;;-1:-1:-1;;;;;10457:4:2;;;;:16;;:42;;;;;:4;;:42;;;;;;;;:4;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;10514:25:2;;;;;;;;10520:10;;-1:-1:-1;10514:25:2;;-1:-1:-1;10514:25:2;;;;;;;;9375:1171;;:::o;3426:211::-;-1:-1:-1;;;;;3501:29:2;;3493:46;;;;;-1:-1:-1;;;3493:46:2;;;;;;;;;;;;;;;-1:-1:-1;;;3493:46:2;;;;;;;;;;;;;;;3571:5;;;;;-1:-1:-1;;;;;3571:5:2;3557:10;:19;3549:41;;;;;-1:-1:-1;;;3549:41:2;;;;;;;;;;;;-1:-1:-1;;;3549:41:2;;;;;;;;;;;;;;;3600:12;:30;;-1:-1:-1;;;;;;3600:30:2;-1:-1:-1;;;;;3600:30:2;;;;;;;;;;3426:211::o;11969:710::-;12043:10;12019:35;;;;:23;:35;;;;;;12011:58;;;;;-1:-1:-1;;;12011:58:2;;;;;;;;;;;;-1:-1:-1;;;12011:58:2;;;;;;;;;;;;;;;12126:10;12102:35;;;;:23;:35;;;;;;12087:12;:50;12079:71;;;;;-1:-1:-1;;;12079:71:2;;;;;;;;;;;;-1:-1:-1;;;12079:71:2;;;;;;;;;;;;;;;12160:14;12177:21;12187:10;12177:9;:21::i;:::-;12160:38;;12225:1;12216:6;:10;12208:32;;;;;-1:-1:-1;;;12208:32:2;;;;;;;;;;;;-1:-1:-1;;;12208:32:2;;;;;;;;;;;;;;;12271:16;;12258:9;:29;12250:53;;;;;-1:-1:-1;;;12250:53:2;;;;;;;;;;;;-1:-1:-1;;;12250:53:2;;;;;;;;;;;;;;;12313:12;;:32;;-1:-1:-1;;;;;12313:12:2;;;;12335:9;12313:32;;;;;:12;:32;:12;:32;12335:9;12313:12;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;12395:10:2;12382:24;;;;:12;:24;;;;;;:36;;12411:6;12382:28;:36::i;:::-;12368:10;12355:24;;;;:12;:24;;;;;:63;12443:12;;:24;;12460:6;12443:16;:24::i;:::-;12428:12;:39;12493:13;;:25;;12511:6;12493:17;:25::i;:::-;12477:13;:41;12552:10;12528:35;;;;:23;:35;;;;;;12566:12;12528:50;;12588:4;;:42;;-1:-1:-1;;;12588:42:2;;;;;;;;;;;;;;;:4;:42;;;;;;-1:-1:-1;;;;;12588:4:2;;;;:16;;:42;;;;;12528:35;;12588:42;;;;;12528:35;12588:4;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;12645:27:2;;;;;;;;12653:10;;-1:-1:-1;12645:27:2;;-1:-1:-1;12645:27:2;;;;;;;;11969:710;:::o;5152:492::-;-1:-1:-1;;;;;5258:19:2;;5250:36;;;;;-1:-1:-1;;;5250:36:2;;;;;;;;;;;;;;;-1:-1:-1;;;5250:36:2;;;;;;;;;;;;;;;5331:5;;;;;-1:-1:-1;;;;;5331:5:2;5317:10;:19;;:67;;-1:-1:-1;5370:14:2;;-1:-1:-1;;;;;5370:14:2;5356:10;:28;5317:67;:111;;;-1:-1:-1;5418:10:2;;-1:-1:-1;;;;;5418:10:2;5404;:24;5317:111;5296:170;;;;;-1:-1:-1;;;5296:170:2;;;;;;;;;;;;-1:-1:-1;;;5296:170:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;5492:27:2;;5476:13;5492:27;;;:20;:27;;;;;;5537:16;:23;;5492:27;;;;;5537:23;;;;;;;;;;;;;;;;-1:-1:-1;;;;;5537:23:2;:32;5529:55;;;;;-1:-1:-1;;;5529:55:2;;;;;;;;;;;;-1:-1:-1;;;5529:55:2;;;;;;;;;;;;;;;-1:-1:-1;;;;;;5594:29:2;;;;;;;;:22;:29;;;;;:43;;-1:-1:-1;;5594:43:2;;;;;;;;;;5152:492::o;1191:33::-;;;;:::o;830:25::-;;;-1:-1:-1;;;;;830:25:2;;:::o;1641:1231::-;2171:8;;;;2170:9;2162:31;;;;;-1:-1:-1;;;2162:31:2;;;;;;;;;;;;-1:-1:-1;;;2162:31:2;;;;;;;;;;;;;;;2203:4;:33;;-1:-1:-1;;;;;;2203:33:2;;;-1:-1:-1;;;;;2203:33:2;;;;;;;2246:11;:40;;;;;;;;;;;;;;-1:-1:-1;2296:20:2;;2326:10;:30;;;;;;;;;;;;;;;2366:23;:54;;;;2430:25;:58;;;;2498:18;:44;;;;2552:20;:48;;;;2610:20;:48;2668:22;:52;2730:20;:48;2788:22;:52;-1:-1:-1;;;;;;2296:20:2;2203:33;2296:20;;;;;;;;;-1:-1:-1;;2850:15:2;-1:-1:-1;2850:15:2;;;1641:1231::o;722:29::-;;;-1:-1:-1;;;;;722:29:2;;:::o;1398:37::-;;;;:::o;948:58::-;;;;;;;;;;;;;:::o;799:25::-;;;-1:-1:-1;;;;;799:25:2;;:::o;1100:38::-;;;;:::o;6888:395::-;7005:5;;;;;-1:-1:-1;;;;;7005:5:2;6991:10;:19;;:67;;-1:-1:-1;7044:14:2;;-1:-1:-1;;;;;7044:14:2;7030:10;:28;6991:67;:111;;;-1:-1:-1;7092:10:2;;-1:-1:-1;;;;;7092:10:2;7078;:24;6991:111;6970:170;;;;;-1:-1:-1;;;6970:170:2;;;;;;;;;;;;-1:-1:-1;;;6970:170:2;;;;;;;;;;;;;;;7158:16;7150:42;;;;;-1:-1:-1;;;7150:42:2;;;;;;;;;;;;-1:-1:-1;;;7150:42:2;;;;;;;;;;;;;;;7202:18;:30;;;;7242:20;:34;6888:395::o;1065:28::-;;;;:::o;7289:401::-;7408:5;;;;;-1:-1:-1;;;;;7408:5:2;7394:10;:19;;:67;;-1:-1:-1;7447:14:2;;-1:-1:-1;;;;;7447:14:2;7433:10;:28;7394:67;:111;;;-1:-1:-1;7495:10:2;;-1:-1:-1;;;;;7495:10:2;7481;:24;7394:111;7373:170;;;;;-1:-1:-1;;;7373:170:2;;;;;;;;;;;;-1:-1:-1;;;7373:170:2;;;;;;;;;;;;;;;7561:16;7553:42;;;;;-1:-1:-1;;;7553:42:2;;;;;;;;;;;;-1:-1:-1;;;7553:42:2;;;;;;;;;;;;;;;7605:20;:32;;;;7647:22;:36;7289:401::o;915:27::-;;;;:::o;6185:263::-;6257:10;;-1:-1:-1;;;;;6257:10:2;6243;:24;6235:49;;;;;-1:-1:-1;;;6235:49:2;;;;;;;;;;;;-1:-1:-1;;;6235:49:2;;;;;;;;;;;;;;;6311:1;6302:6;:10;6294:27;;;;;-1:-1:-1;;;6294:27:2;;;;;;;;;;;;;;;-1:-1:-1;;;6294:27:2;;;;;;;;;;;;;;;6331:11;;:59;;;-1:-1:-1;;;6331:59:2;;6356:10;6331:59;;;;6376:4;6331:59;;;;;;;;;;;;-1:-1:-1;;;;;6331:11:2;;;;:24;;:59;;;;;;;;;;;;;;;:11;;:59;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6416:13:2;;:25;;6434:6;6416:17;:25::i;:::-;6400:13;:41;-1:-1:-1;6185:263:2:o;1542:54::-;;;;;;;;;;;;;;;:::o;12685:469::-;12740:7;12763:12;;12779:1;12763:17;12759:31;;;-1:-1:-1;12789:1:2;12782:8;;12759:31;-1:-1:-1;;;;;12804:30:2;;;;;;:23;:30;;;;;;12800:49;;-1:-1:-1;12848:1:2;12841:8;;12800:49;-1:-1:-1;;;;;12898:30:2;;12859:19;12898:30;;;:23;:30;;;;;;12881:48;;:12;;:16;:48::i;:::-;12859:70;;12939:28;12970:97;13041:25;;12970:53;12999:23;;12970:11;:28;;:53;;;;:::i;:97::-;13134:12;;-1:-1:-1;;;;;13109:19:2;;;;;;:12;:19;;;;;;12939:128;;-1:-1:-1;13084:63:2;;:45;;12939:128;;13084:24;:45::i;:63::-;13077:70;;;;12685:469;;;;:::o;1442:55::-;;;;;;;;;;;;;:::o;1603:31::-;;;;:::o;757:35::-;;;-1:-1:-1;;;;;757:35:2;;:::o;1013:45::-;;;;;;;;;;;;;:::o;1272:35::-;;;;:::o;3206:214::-;-1:-1:-1;;;;;3292:29:2;;3284:46;;;;;-1:-1:-1;;;3284:46:2;;;;;;;;;;;;;;;-1:-1:-1;;;3284:46:2;;;;;;;;;;;;;;;3362:10;;-1:-1:-1;;;;;3362:10:2;3348;:24;3340:33;;;;;;3383:12;:30;;-1:-1:-1;;;;;;3383:30:2;-1:-1:-1;;;;;3383:30:2;;;;;;;;;;3206:214::o;3878:246::-;-1:-1:-1;;;;;3963:34:2;;3955:51;;;;;-1:-1:-1;;;3955:51:2;;;;;;;;;;;;;;;-1:-1:-1;;;3955:51:2;;;;;;;;;;;;;;;4038:10;;-1:-1:-1;;;;;4038:10:2;4024;:24;4016:51;;;;;-1:-1:-1;;;4016:51:2;;;;;;;;;;;;-1:-1:-1;;;4016:51:2;;;;;;;;;;;;;;;4077:17;:40;;-1:-1:-1;;;;;;4077:40:2;-1:-1:-1;;;;;4077:40:2;;;;;;;;;;3878:246::o;1313:37::-;;;;:::o;862:47::-;;;;;;;;;;;;;:::o;4130:259::-;4210:17;;-1:-1:-1;;;;;4210:17:2;4196:10;:31;:59;;;;-1:-1:-1;4231:10:2;:24;;4196:59;4175:127;;;;;-1:-1:-1;;;4175:127:2;;;;;;;;;;;;-1:-1:-1;;;4175:127:2;;;;;;;;;;;;;;;4325:17;;;4312:10;:30;;-1:-1:-1;;;;;;4312:30:2;;;-1:-1:-1;;;;;4325:17:2;;4312:30;;;;4352;;;4130:259::o;1230:35::-;;;;:::o;6454:323::-;6548:10;;-1:-1:-1;;;;;6548:10:2;6534;:24;6526:49;;;;;-1:-1:-1;;;6526:49:2;;;;;;;;;;;;-1:-1:-1;;;6526:49:2;;;;;;;;;;;;;;;6602:1;6593:6;:10;6585:27;;;;;-1:-1:-1;;;6585:27:2;;;;;;;;;;;;;;;-1:-1:-1;;;6585:27:2;;;;;;;;;;;;;;;6647:6;6630:13;;:23;;6622:46;;;;;-1:-1:-1;;;6622:46:2;;;;;;;;;;;;-1:-1:-1;;;6622:46:2;;;;;;;;;;;;;;;6678:11;;:41;;;-1:-1:-1;;;6678:41:2;;-1:-1:-1;;;;;6678:41:2;;;;;;;;;;;;;;;:11;;;;;:20;;:41;;;;;;;;;;;;;;:11;;:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;6745:13:2;;:25;;6763:6;6745:17;:25::i;:::-;6729:13;:41;-1:-1:-1;;6454:323:2:o;10552:1411::-;10626:1;10617:6;:10;10609:27;;;;;-1:-1:-1;;;10609:27:2;;;;;;;;;;;;;;;-1:-1:-1;;;10609:27:2;;;;;;;;;;;;;;;10646:11;10660:82;10710:22;;10660:32;10671:20;;10660:6;:10;;:32;;;;:::i;:82::-;10646:96;;10773:3;10760:9;:16;10752:40;;;;;-1:-1:-1;;;10752:40:2;;;;;;;;;;;;-1:-1:-1;;;10752:40:2;;;;;;;;;;;;;;;10823:10;10810:24;;;;:12;:24;;;;;;:34;-1:-1:-1;10810:34:2;10802:57;;;;;-1:-1:-1;;;10802:57:2;;;;;;;;;;;;-1:-1:-1;;;10802:57:2;;;;;;;;;;;;;;;10869:12;;:32;;-1:-1:-1;;;;;10869:12:2;;;;10891:9;10869:32;;;;;:12;:32;:12;:32;10891:9;10869:12;:32;;;;;;;;;;;;;;;;;;;;-1:-1:-1;10952:10:2;10911:14;10939:24;;;:12;:24;;;;;;;;;10993:23;:35;;;;;;;10929:34;;;;10978:12;:50;10974:488;;;11044:14;11061:21;11071:10;11061:9;:21::i;:::-;11044:38;-1:-1:-1;11100:10:2;;11096:356;;11170:10;11157:24;;;;:12;:24;;;;;;:36;;11186:6;11157:28;:36::i;:::-;11143:10;11130:24;;;;:12;:24;;;;;:63;11226:12;;:24;;11243:6;11226:16;:24::i;:::-;11211:12;:39;11284:13;;:25;;11302:6;11284:17;:25::i;:::-;11268:13;:41;11327:4;;:42;;;-1:-1:-1;;;11327:42:2;;11344:10;11327:42;;;;;;;;;;:4;:42;;;;;;-1:-1:-1;;;;;11327:4:2;;;;:16;;:42;;;;;:4;;:42;;;;;;;;:4;;:42;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11411:10:2;11387:35;;;;:23;:35;;;;;11425:12;11387:50;;-1:-1:-1;;11096:356:2;10974:488;;11471:22;11496:9;:45;;11535:6;11496:45;;;11521:10;11508:24;;;;:12;:24;;;;;;11496:45;11591:10;11578:24;;;;:12;:24;;;;;;11471:70;;-1:-1:-1;11578:44:2;;11471:70;11578:28;:44::i;:::-;11564:10;11551:24;;;;:12;:24;;;;;:71;11647:12;;:32;;11664:14;11647:16;:32::i;:::-;11632:12;:47;11689:11;;:48;;;-1:-1:-1;;;11689:48:2;;11710:10;11689:48;;;;;;;;;;;;-1:-1:-1;;;;;11689:11:2;;;;:20;;:48;;;;;;;;;;;;;;;:11;;:48;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11747:4:2;;:51;;;-1:-1:-1;;;11747:51:2;;11764:10;11747:51;;;;;;;;;;:4;:51;;;;;;;;-1:-1:-1;;;;;11747:4:2;;;;:16;;:51;;;;;:4;;:51;;;;;;:4;;:51;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;11825:10:2;11812:24;;;;:12;:24;;;;;;:29;11808:99;;-1:-1:-1;11808:99:2;;-1:-1:-1;11808:99:2;11881:10;11895:1;11857:35;;;:23;:35;;;;;:39;11808:99;11921:35;;;;;;;;11929:10;;11921:35;;;;;;;;;;10552:1411;;;;:::o;594:20::-;;;;;;-1:-1:-1;;;;;594:20:2;;:::o;568:::-;;;;;;:::o;874:176:1:-;932:7;963:5;;;986:6;;;;978:46;;;;;-1:-1:-1;;;978:46:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;1042:1;-1:-1:-1;874:176:1;;;;;:::o;1321:134::-;1379:7;1405:43;1409:1;1412;1405:43;;;;;;;;;;;;;;;;;:3;:43::i;2180:459::-;2238:7;2479:6;2475:45;;-1:-1:-1;2508:1:1;2501:8;;2475:45;2542:5;;;2546:1;2542;:5;:1;2565:5;;;;;:10;2557:56;;;;-1:-1:-1;;;2557:56:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3101:130;3159:7;3185:39;3189:1;3192;3185:39;;;;;;;;;;;;;;;;;:3;:39::i;1746:187::-;1832:7;1867:12;1859:6;;;;1851:29;;;;-1:-1:-1;;;1851:29:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;1902:5:1;;;1746:187::o;3713:272::-;3799:7;3833:12;3826:5;3818:28;;;;-1:-1:-1;;;3818:28:1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3856:9;3872:1;3868;:5;;;;;;;3713:272;-1:-1:-1;;;;;3713:272:1:o
Swarm Source
ipfs://6d2b4d8bf5aefa0eb75d7e34c15669d33dda7a55091da3b01f12c55afa7becc5
Loading...
Loading
Loading...
Loading
Multichain Portfolio | 30 Chains
Chain | Token | Portfolio % | Price | Amount | Value |
---|
Loading...
Loading
[ Download: CSV Export ]
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.