Feature Tip: Add private address tag to any address under My Name Tag !
Overview
Max Total Supply
8,994,262.442004075754926873 KEYFI
Holders
570 (0.00%)
Market
Price
$0.02 @ 0.000010 ETH (-0.11%)
Onchain Market Cap
$222,625.83
Circulating Supply Market Cap
$66,543.94
Other Info
Token Contract (WITH 18 Decimals)
Balance
0 KEYFIValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
KeyfiToken
Compiler Version
v0.7.1+commit.f4a555be
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2020-12-14 */ // File: @openzeppelin/contracts/GSN/Context.sol // SPDX-License-Identifier: MIT pragma solidity ^0.7.0; /* * @dev Provides information about the current execution context, including the * sender of the transaction and its data. While these are generally available * via msg.sender and msg.data, they should not be accessed in such a direct * manner, since when dealing with GSN meta-transactions the account sending and * paying for execution may not be the actual sender (as far as an application * is concerned). * * This contract is only required for intermediate, library-like contracts. */ abstract contract Context { function _msgSender() internal view virtual returns (address payable) { return msg.sender; } function _msgData() internal view virtual returns (bytes memory) { this; // silence state mutability warning without generating bytecode - see https://github.com/ethereum/solidity/issues/2691 return msg.data; } } /** * @dev Contract module which provides a basic access control mechanism, where * there is an account (an owner) that can be granted exclusive access to * specific functions. * * By default, the owner account will be the one that deploys the contract. This * can later be changed with {transferOwnership}. * * This module is used through inheritance. It will make available the modifier * `onlyOwner`, which can be applied to your functions to restrict their use to * the owner. */ abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor () { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(_owner == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } /** * @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); } /** * @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; } } pragma experimental ABIEncoderV2; contract KeyfiToken is IERC20, Ownable { using SafeMath for uint256; string public constant name = "KeyFi Token"; string public constant symbol = "KEYFI"; uint8 public constant decimals = 18; uint256 public override totalSupply = 10000000e18; mapping (address => mapping (address => uint256)) internal allowances; mapping (address => uint256) internal balances; mapping (address => address) public delegates; address public minter; uint256 public mintingAllowedAfter; uint32 public minimumMintGap = 1 days * 365; uint8 public mintCap = 2; struct Checkpoint { uint256 fromBlock; uint256 votes; } mapping (address => mapping (uint256 => Checkpoint)) public checkpoints; mapping (address => uint256) public numCheckpoints; bytes32 public constant DOMAIN_TYPEHASH = keccak256("EIP712Domain(string name,uint256 chainId,address verifyingContract)"); bytes32 public constant DELEGATION_TYPEHASH = keccak256("Delegation(address delegatee,uint256 nonce,uint256 expiry)"); mapping (address => uint) public nonces; event MinterChanged(address minter, address newMinter); event MinimumMintGapChanged(uint32 previousMinimumGap, uint32 newMinimumGap); event MintCapChanged(uint8 previousCap, uint8 newCap); event DelegateChanged(address indexed delegator, address indexed fromDelegate, address indexed toDelegate); event DelegateVotesChanged(address indexed delegate, uint256 previousBalance, uint256 newBalance); constructor(address account, address _minter, uint256 _mintingAllowedAfter) { balances[account] = totalSupply; minter = _minter; mintingAllowedAfter = _mintingAllowedAfter; emit Transfer(address(0), account, totalSupply); emit MinterChanged(address(0), minter); } /** * @dev Change the minter address * @param _minter The address of the new minter */ function setMinter(address _minter) external onlyOwner { emit MinterChanged(minter, _minter); minter = _minter; } function setMintCap(uint8 _cap) external onlyOwner { emit MintCapChanged(mintCap, _cap); mintCap = _cap; } function setMinimumMintGap(uint32 _gap) external onlyOwner { emit MinimumMintGapChanged(minimumMintGap, _gap); minimumMintGap = _gap; } function mint(address _to, uint256 _amount) external { require(msg.sender == minter, "KeyfiToken::mint: only the minter can mint"); require(block.timestamp >= mintingAllowedAfter, "KeyfiToken::mint: minting not allowed yet"); require(_to != address(0), "KeyfiToken::mint: cannot transfer to the zero address"); require(_amount <= (totalSupply.mul(mintCap)).div(100), "KeyfiToken::mint: exceeded mint cap"); mintingAllowedAfter = (block.timestamp).add(minimumMintGap); totalSupply = totalSupply.add(_amount); balances[_to] = balances[_to].add(_amount); _moveDelegates(address(0), delegates[_to], _amount); emit Transfer(address(0), _to, _amount); } /** * @notice Get the number of tokens `spender` is approved to spend on behalf of `account` * @param account The address of the account holding the funds * @param spender The address of the account spending the funds * @return The number of tokens approved */ function allowance(address account, address spender) public view override returns (uint256) { return allowances[account][spender]; } /** * @notice Approve `spender` to transfer up to `amount` from `src` * @dev This will overwrite the approval amount for `spender` * and is subject to issues noted [here](https://eips.ethereum.org/EIPS/eip-20#approve) * @param spender The address of the account which may transfer tokens * @param amount The number of tokens that are approved (2^256-1 means infinite) * @return Whether or not the approval succeeded */ function approve(address spender, uint256 amount) public override returns (bool) { require(spender != address(0), "KeyfiToken: cannot approve zero address"); allowances[msg.sender][spender] = amount; emit Approval(msg.sender, spender, amount); return true; } /** * @notice Get the number of tokens held by the `account` * @param account The address of the account to get the balance of * @return The number of tokens held */ function balanceOf(address account) external view override returns (uint256) { return balances[account]; } /** * @notice Transfer `amount` tokens from `msg.sender` to `dst` * @param dst The address of the destination account * @param amount The number of tokens to transfer * @return Whether or not the transfer succeeded */ function transfer(address dst, uint256 amount) external override returns (bool) { _transferTokens(msg.sender, dst, amount); return true; } /** * @notice Transfer `amount` tokens from `src` to `dst` * @param src The address of the source account * @param dst The address of the destination account * @param amount The number of tokens to transfer * @return Whether or not the transfer succeeded */ function transferFrom(address src, address dst, uint256 amount) external override returns (bool) { address spender = msg.sender; uint256 spenderAllowance = allowances[src][spender]; if (spender != src && spenderAllowance != uint256(-1)) { uint256 newAllowance = sub256(spenderAllowance, amount, "KeyfiToken::transferFrom: transfer amount exceeds spender allowance"); allowances[src][spender] = newAllowance; emit Approval(src, spender, newAllowance); } _transferTokens(src, dst, amount); return true; } /** * @notice Delegate votes from `msg.sender` to `delegatee` * @param delegatee The address to delegate votes to */ function delegate(address delegatee) external { return _delegate(msg.sender, delegatee); } /** * @notice Delegates votes from signatory to `delegatee` * @param delegatee The address to delegate votes to * @param nonce The contract state required to match the signature * @param expiry The time at which to expire the signature * @param v The recovery byte of the signature * @param r Half of the ECDSA signature pair * @param s Half of the ECDSA signature pair */ function delegateBySig(address delegatee, uint256 nonce, uint256 expiry, uint8 v, bytes32 r, bytes32 s) external { bytes32 domainSeparator = keccak256(abi.encode(DOMAIN_TYPEHASH, keccak256(bytes(name)), getChainId(), address(this))); bytes32 structHash = keccak256(abi.encode(DELEGATION_TYPEHASH, delegatee, nonce, expiry)); bytes32 digest = keccak256(abi.encodePacked("\x19\x01", domainSeparator, structHash)); address signatory = ecrecover(digest, v, r, s); require(signatory != address(0), "KeyfiToken::delegateBySig: invalid signature"); require(nonce == nonces[signatory]++, "KeyfiToken::delegateBySig: invalid nonce"); require(block.timestamp <= expiry, "KeyfiToken::delegateBySig: signature expired"); return _delegate(signatory, delegatee); } /** * @notice Gets the current votes balance for `account` * @param account The address to get votes balance * @return The number of current votes for `account` */ function getCurrentVotes(address account) external view returns (uint256) { uint256 nCheckpoints = numCheckpoints[account]; return nCheckpoints > 0 ? checkpoints[account][nCheckpoints - 1].votes : 0; } /** * @notice Determine the prior number of votes for an account as of a block number * @dev Block number must be a finalized block or else this function will revert to prevent misinformation. * @param account The address of the account to check * @param blockNumber The block number to get the vote balance at * @return The number of votes the account had as of the given block */ function getPriorVotes(address account, uint256 blockNumber) external view returns (uint256) { require(blockNumber < block.number, "KeyfiToken::getPriorVotes: not yet determined"); uint256 nCheckpoints = numCheckpoints[account]; if (nCheckpoints == 0) { return 0; } // First check most recent balance if (checkpoints[account][nCheckpoints - 1].fromBlock <= blockNumber) { return checkpoints[account][nCheckpoints - 1].votes; } // Next check implicit zero balance if (checkpoints[account][0].fromBlock > blockNumber) { return 0; } uint256 lower = 0; uint256 upper = nCheckpoints - 1; while (upper > lower) { uint256 center = upper - (upper - lower) / 2; // ceil, avoiding overflow Checkpoint memory cp = checkpoints[account][center]; if (cp.fromBlock == blockNumber) { return cp.votes; } else if (cp.fromBlock < blockNumber) { lower = center; } else { upper = center - 1; } } return checkpoints[account][lower].votes; } function _delegate(address delegator, address delegatee) internal { address currentDelegate = delegates[delegator]; uint256 delegatorBalance = balances[delegator]; delegates[delegator] = delegatee; emit DelegateChanged(delegator, currentDelegate, delegatee); _moveDelegates(currentDelegate, delegatee, delegatorBalance); } function _transferTokens(address src, address dst, uint256 amount) internal { require(src != address(0), "KeyfiToken::_transferTokens: cannot transfer from the zero address"); require(dst != address(0), "KeyfiToken::_transferTokens: cannot transfer to the zero address"); balances[src] = sub256(balances[src], amount, "KeyfiToken::_transferTokens: transfer amount exceeds balance"); balances[dst] = add256(balances[dst], amount, "KeyfiToken::_transferTokens: transfer amount overflows"); emit Transfer(src, dst, amount); _moveDelegates(delegates[src], delegates[dst], amount); } function _moveDelegates(address srcRep, address dstRep, uint256 amount) internal { if (srcRep != dstRep && amount > 0) { if (srcRep != address(0)) { uint256 srcRepNum = numCheckpoints[srcRep]; uint256 srcRepOld = srcRepNum > 0 ? checkpoints[srcRep][srcRepNum - 1].votes : 0; uint256 srcRepNew = sub256(srcRepOld, amount, "KeyfiToken::_moveVotes: vote amount underflows"); _writeCheckpoint(srcRep, srcRepNum, srcRepOld, srcRepNew); } if (dstRep != address(0)) { uint256 dstRepNum = numCheckpoints[dstRep]; uint256 dstRepOld = dstRepNum > 0 ? checkpoints[dstRep][dstRepNum - 1].votes : 0; uint256 dstRepNew = add256(dstRepOld, amount, "KeyfiToken::_moveVotes: vote amount overflows"); _writeCheckpoint(dstRep, dstRepNum, dstRepOld, dstRepNew); } } } function _writeCheckpoint(address delegatee, uint256 nCheckpoints, uint256 oldVotes, uint256 newVotes) internal { if (nCheckpoints > 0 && checkpoints[delegatee][nCheckpoints - 1].fromBlock == block.number) { checkpoints[delegatee][nCheckpoints - 1].votes = newVotes; } else { checkpoints[delegatee][nCheckpoints] = Checkpoint(block.number, newVotes); numCheckpoints[delegatee] = nCheckpoints + 1; } emit DelegateVotesChanged(delegatee, oldVotes, newVotes); } function add256(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { uint256 c = a + b; require(c >= a, errorMessage); return c; } function sub256(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { require(b <= a, errorMessage); return a - b; } function getChainId() internal pure returns (uint256) { uint256 chainId; assembly { chainId := chainid() } return chainId; } /** * @dev Destroys `amount` tokens from `account`, reducing the * total supply. * * Emits a {Transfer} event with `to` set to the zero address. * * Requirements * * - `account` cannot be the zero address. * - `account` must have at least `amount` tokens. */ function _burn(address account, uint256 amount) internal { require(account != address(0), "ERC20: burn from the zero address"); balances[account] = balances[account].sub(amount, "ERC20: burn amount exceeds balance"); totalSupply = totalSupply.sub(amount); emit Transfer(account, address(0), amount); _moveDelegates(delegates[account], address(0), amount); } /** * @dev Destroys `amount` tokens from the caller. */ function burn(uint256 amount) external returns (bool) { _burn(msg.sender, amount); return true; } /** * @dev Destroys `amount` tokens from `account`, deducting from the caller's * allowance. * * Requirements: * * - the caller must have allowance for ``accounts``'s tokens of at least * `amount`. */ function burnFrom(address account, uint256 amount) external returns (bool) { address spender = msg.sender; uint256 spenderAllowance = allowances[account][spender]; if (spender != account && spenderAllowance != uint256(-1)) { uint256 newAllowance = sub256(spenderAllowance, amount, "KeyfiToken::burnFrom: burn amount exceeds spender allowance"); allowances[account][spender] = newAllowance; emit Approval(account, spender, newAllowance); } _burn(account, amount); return true; } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"_minter","type":"address"},{"internalType":"uint256","name":"_mintingAllowedAfter","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegator","type":"address"},{"indexed":true,"internalType":"address","name":"fromDelegate","type":"address"},{"indexed":true,"internalType":"address","name":"toDelegate","type":"address"}],"name":"DelegateChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"delegate","type":"address"},{"indexed":false,"internalType":"uint256","name":"previousBalance","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBalance","type":"uint256"}],"name":"DelegateVotesChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint32","name":"previousMinimumGap","type":"uint32"},{"indexed":false,"internalType":"uint32","name":"newMinimumGap","type":"uint32"}],"name":"MinimumMintGapChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"previousCap","type":"uint8"},{"indexed":false,"internalType":"uint8","name":"newCap","type":"uint8"}],"name":"MintCapChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"minter","type":"address"},{"indexed":false,"internalType":"address","name":"newMinter","type":"address"}],"name":"MinterChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"DELEGATION_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"checkpoints","outputs":[{"internalType":"uint256","name":"fromBlock","type":"uint256"},{"internalType":"uint256","name":"votes","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"}],"name":"delegate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"delegatee","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint256","name":"expiry","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"delegateBySig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"delegates","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getCurrentVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"getPriorVotes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minimumMintGap","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"mint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"mintCap","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"minter","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintingAllowedAfter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"numCheckpoints","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"_gap","type":"uint32"}],"name":"setMinimumMintGap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"_cap","type":"uint8"}],"name":"setMintCap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_minter","type":"address"}],"name":"setMinter","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"src","type":"address"},{"internalType":"address","name":"dst","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
60806040526a084595161401484a0000006001556301e13380600760006101000a81548163ffffffff021916908363ffffffff1602179055506002600760046101000a81548160ff021916908360ff1602179055503480156200006157600080fd5b50604051620042ae380380620042ae8339818101604052810190620000879190620002cc565b6000620000996200029660201b60201c565b9050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350600154600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550806006819055508273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60015460405162000227919062000382565b60405180910390a37f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f66000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166040516200028592919062000355565b60405180910390a15050506200044d565b600033905090565b600081519050620002af8162000419565b92915050565b600081519050620002c68162000433565b92915050565b600080600060608486031215620002e257600080fd5b6000620002f2868287016200029e565b935050602062000305868287016200029e565b92505060406200031886828701620002b5565b9150509250925092565b6200032d81620003dd565b82525050565b6200033e816200039f565b82525050565b6200034f81620003d3565b82525050565b60006040820190506200036c600083018562000322565b6200037b602083018462000333565b9392505050565b600060208201905062000399600083018462000344565b92915050565b6000620003ac82620003b3565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b6000620003ea82620003f1565b9050919050565b6000620003fe8262000405565b9050919050565b60006200041282620003b3565b9050919050565b62000424816200039f565b81146200043057600080fd5b50565b6200043e81620003d3565b81146200044a57600080fd5b50565b613e51806200045d6000396000f3fe608060405234801561001057600080fd5b50600436106101f05760003560e01c8063715018a61161010f578063a9059cbb116100a2578063dd62ed3e11610071578063dd62ed3e146105f8578063e7a324dc14610628578063f2fde38b14610646578063fca3b5aa14610662576101f0565b8063a9059cbb14610560578063b4b5ea5714610590578063c3cda520146105c0578063d2d2070a146105dc576101f0565b806379cc6790116100de57806379cc6790146104c45780637ecebe00146104f45780638da5cb5b1461052457806395d89b4114610542576101f0565b8063715018a61461044e57806376c71ca11461045857806376c9cc0314610476578063782d6fe114610494576101f0565b806330b36cef11610187578063587cde1e11610156578063587cde1e146103a25780635c19a95c146103d25780636fcfff45146103ee57806370a082311461041e576101f0565b806330b36cef1461031a578063313ce5671461033857806340c10f191461035657806342966c6814610372576101f0565b806318160ddd116101c357806318160ddd146102925780631f4e054a146102b057806320606b70146102cc57806323b872dd146102ea576101f0565b806306fdde03146101f55780630754617214610213578063095ea7b3146102315780630cdfebfa14610261575b600080fd5b6101fd61067e565b60405161020a9190613869565b60405180910390f35b61021b6106b7565b6040516102289190613720565b60405180910390f35b61024b60048036038101906102469190612e85565b6106dd565b6040516102589190613764565b60405180910390f35b61027b60048036038101906102769190612e85565b61083e565b604051610289929190613aa6565b60405180910390f35b61029a61086f565b6040516102a79190613a8b565b60405180910390f35b6102ca60048036038101906102c59190612f73565b610875565b005b6102d4610979565b6040516102e1919061377f565b60405180910390f35b61030460048036038101906102ff9190612e36565b61099d565b6040516103119190613764565b60405180910390f35b610322610bac565b60405161032f9190613a8b565b60405180910390f35b610340610bb2565b60405161034d9190613b13565b60405180910390f35b610370600480360381019061036b9190612e85565b610bb7565b005b61038c60048036038101906103879190612f4a565b610f2e565b6040516103999190613764565b60405180910390f35b6103bc60048036038101906103b79190612dd1565b610f43565b6040516103c99190613720565b60405180910390f35b6103ec60048036038101906103e79190612dd1565b610f76565b005b61040860048036038101906104039190612dd1565b610f83565b6040516104159190613a8b565b60405180910390f35b61043860048036038101906104339190612dd1565b610f9b565b6040516104459190613a8b565b60405180910390f35b610456610fe4565b005b610460611137565b60405161046d9190613b13565b60405180910390f35b61047e61114a565b60405161048b9190613acf565b60405180910390f35b6104ae60048036038101906104a99190612e85565b611160565b6040516104bb9190613a8b565b60405180910390f35b6104de60048036038101906104d99190612e85565b611459565b6040516104eb9190613764565b60405180910390f35b61050e60048036038101906105099190612dd1565b611666565b60405161051b9190613a8b565b60405180910390f35b61052c61167e565b6040516105399190613720565b60405180910390f35b61054a6116a7565b6040516105579190613869565b60405180910390f35b61057a60048036038101906105759190612e85565b6116e0565b6040516105879190613764565b60405180910390f35b6105aa60048036038101906105a59190612dd1565b6116f7565b6040516105b79190613a8b565b60405180910390f35b6105da60048036038101906105d59190612ec1565b6117ab565b005b6105f660048036038101906105f19190612f9c565b611a68565b005b610612600480360381019061060d9190612dfa565b611b63565b60405161061f9190613a8b565b60405180910390f35b610630611bea565b60405161063d919061377f565b60405180910390f35b610660600480360381019061065b9190612dd1565b611c0e565b005b61067c60048036038101906106779190612dd1565b611dd0565b005b6040518060400160405280600b81526020017f4b6579466920546f6b656e00000000000000000000000000000000000000000081525081565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561074e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610745906139cb565b60405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161082c9190613a8b565b60405180910390a36001905092915050565b6008602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60015481565b61087d611f04565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610901906139ab565b60405180910390fd5b7f0bccb7f6bba126d5c23d5099b4065089f36a6a41084dc3874f26df138e251278600760009054906101000a900463ffffffff168260405161094d929190613aea565b60405180910390a180600760006101000a81548163ffffffff021916908363ffffffff16021790555050565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000803390506000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610a8057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b15610b94576000610aaa8286604051806080016040528060438152602001613d9d60439139611f0c565b905080600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b8a9190613a8b565b60405180910390a3505b610b9f868686611f61565b6001925050509392505050565b60065481565b601281565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3e90613a6b565b60405180910390fd5b600654421015610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c839061392b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf390613a2b565b60405180910390fd5b610d366064610d28600760049054906101000a900460ff1660ff166001546122be90919063ffffffff16565b61232e90919063ffffffff16565b811115610d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6f9061396b565b60405180910390fd5b610da3600760009054906101000a900463ffffffff1663ffffffff164261237890919063ffffffff16565b600681905550610dbe8160015461237890919063ffffffff16565b600181905550610e1681600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237890919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ec46000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836123cd565b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f229190613a8b565b60405180910390a35050565b6000610f3a3383612646565b60019050919050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f803382612855565b50565b60096020528060005260406000206000915090505481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fec611f04565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611070906139ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600760049054906101000a900460ff1681565b600760009054906101000a900463ffffffff1681565b60004382106111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b9061390b565b60405180910390fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156111fb576000915050611453565b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018403815260200190815260200160002060000154116112b757600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018303815260200190815260200160002060010154915050611453565b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060000154111561131c576000915050611453565b6000806001830390505b818111156113f957600060028383038161133c57fe5b0482039050611349612d4e565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905086816000015114156113d757806020015195505050505050611453565b86816000015110156113eb578193506113f2565b6001820392505b5050611326565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206001015493505050505b92915050565b6000803390506000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561153c57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b1561165057600061156682866040518060600160405280603b8152602001613d2c603b9139611f0c565b905080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116469190613a8b565b60405180910390a3505b61165a8585612646565b60019250505092915050565b600a6020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600581526020017f4b4559464900000000000000000000000000000000000000000000000000000081525081565b60006116ed338484611f61565b6001905092915050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811161174b5760006117a3565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600183038152602001908152602001600020600101545b915050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280600b81526020017f4b6579466920546f6b656e000000000000000000000000000000000000000000815250805190602001206118136129fd565b3060405160200161182794939291906137df565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf888888604051602001611878949392919061379a565b604051602081830303815290604052805190602001209050600082826040516020016118a59291906136e9565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516118e29493929190613824565b6020604051602081039080840390855afa158015611904573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611980576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611977906138ab565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558914611a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0690613a0b565b60405180910390fd5b87421115611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a49906138eb565b60405180910390fd5b611a5c818b612855565b50505050505050505050565b611a70611f04565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af4906139ab565b60405180910390fd5b7f3ddfdcf016ab017c1eb9aebd65f9ad5371be2d77b0bfd7539719159f5ef0d1f7600760049054906101000a900460ff1682604051611b3d929190613b2e565b60405180910390a180600760046101000a81548160ff021916908360ff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b611c16611f04565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9a906139ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a9061388b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611dd8611f04565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5c906139ab565b60405180910390fd5b7f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051611eb892919061373b565b60405180910390a180600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b6000838311158290611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b9190613869565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890613a4b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612041576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120389061394b565b60405180910390fd5b6120a3600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826040518060600160405280603c8152602001613de0603c9139611f0c565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612148600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482604051806060016040528060368152602001613d6760369139612a0a565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121e89190613a8b565b60405180910390a36122b9600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836123cd565b505050565b6000808314156122d15760009050612328565b60008284029050828482816122e257fe5b0414612323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231a9061398b565b60405180910390fd5b809150505b92915050565b600061237083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a64565b905092915050565b6000808284019050838110156123c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ba906138cb565b60405180910390fd5b8091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156124095750600081115b1561264157600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612527576000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008082116124965760006124ee565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184038152602001908152602001600020600101545b9050600061251582856040518060600160405280602e8152602001613cfe602e9139611f0c565b905061252386848484612ac5565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612640576000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008082116125af576000612607565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184038152602001908152602001600020600101545b9050600061262e82856040518060600160405280602d8152602001613cd1602d9139612a0a565b905061263c85848484612ac5565b5050505b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ad906139eb565b60405180910390fd5b61272281604051806060016040528060228152602001613caf60229139600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca99092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277a81600154612d0490919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127de9190613a8b565b60405180910390a3612851600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000836123cd565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a46129f78284836123cd565b50505050565b6000804690508091505090565b6000808385019050848110158390612a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4f9190613869565b60405180910390fd5b50809150509392505050565b60008083118290612aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa29190613869565b60405180910390fd5b506000838581612ab757fe5b049050809150509392505050565b600083118015612b2a575043600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018603815260200190815260200160002060000154145b15612b8f5780600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018603815260200190815260200160002060010181905550612c53565b604051806040016040528043815260200182815250600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020600082015181600001556020820151816001015590505060018301600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612c9b929190613aa6565b60405180910390a250505050565b6000838311158290612cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce89190613869565b60405180910390fd5b5060008385039050809150509392505050565b6000612d4683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ca9565b905092915050565b604051806040016040528060008152602001600081525090565b600081359050612d7781613c3b565b92915050565b600081359050612d8c81613c52565b92915050565b600081359050612da181613c69565b92915050565b600081359050612db681613c80565b92915050565b600081359050612dcb81613c97565b92915050565b600060208284031215612de357600080fd5b6000612df184828501612d68565b91505092915050565b60008060408385031215612e0d57600080fd5b6000612e1b85828601612d68565b9250506020612e2c85828601612d68565b9150509250929050565b600080600060608486031215612e4b57600080fd5b6000612e5986828701612d68565b9350506020612e6a86828701612d68565b9250506040612e7b86828701612d92565b9150509250925092565b60008060408385031215612e9857600080fd5b6000612ea685828601612d68565b9250506020612eb785828601612d92565b9150509250929050565b60008060008060008060c08789031215612eda57600080fd5b6000612ee889828a01612d68565b9650506020612ef989828a01612d92565b9550506040612f0a89828a01612d92565b9450506060612f1b89828a01612dbc565b9350506080612f2c89828a01612d7d565b92505060a0612f3d89828a01612d7d565b9150509295509295509295565b600060208284031215612f5c57600080fd5b6000612f6a84828501612d92565b91505092915050565b600060208284031215612f8557600080fd5b6000612f9384828501612da7565b91505092915050565b600060208284031215612fae57600080fd5b6000612fbc84828501612dbc565b91505092915050565b612fce81613b7e565b82525050565b612fdd81613b90565b82525050565b612fec81613b9c565b82525050565b613003612ffe82613b9c565b613c20565b82525050565b600061301482613b57565b61301e8185613b62565b935061302e818560208601613bed565b61303781613c2a565b840191505092915050565b600061304f602683613b62565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006130b5602c83613b62565b91507f4b65796669546f6b656e3a3a64656c656761746542795369673a20696e76616c60008301527f6964207369676e617475726500000000000000000000000000000000000000006020830152604082019050919050565b600061311b600283613b73565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b600061315b601b83613b62565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600061319b602c83613b62565b91507f4b65796669546f6b656e3a3a64656c656761746542795369673a207369676e6160008301527f74757265206578706972656400000000000000000000000000000000000000006020830152604082019050919050565b6000613201602d83613b62565b91507f4b65796669546f6b656e3a3a6765745072696f72566f7465733a206e6f74207960008301527f65742064657465726d696e6564000000000000000000000000000000000000006020830152604082019050919050565b6000613267602983613b62565b91507f4b65796669546f6b656e3a3a6d696e743a206d696e74696e67206e6f7420616c60008301527f6c6f7765642079657400000000000000000000000000000000000000000000006020830152604082019050919050565b60006132cd604083613b62565b91507f4b65796669546f6b656e3a3a5f7472616e73666572546f6b656e733a2063616e60008301527f6e6f74207472616e7366657220746f20746865207a65726f20616464726573736020830152604082019050919050565b6000613333602383613b62565b91507f4b65796669546f6b656e3a3a6d696e743a206578636565646564206d696e742060008301527f63617000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613399602183613b62565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006133ff602083613b62565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061343f602783613b62565b91507f4b65796669546f6b656e3a2063616e6e6f7420617070726f7665207a65726f2060008301527f61646472657373000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006134a5602183613b62565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061350b602883613b62565b91507f4b65796669546f6b656e3a3a64656c656761746542795369673a20696e76616c60008301527f6964206e6f6e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613571603583613b62565b91507f4b65796669546f6b656e3a3a6d696e743a2063616e6e6f74207472616e73666560008301527f7220746f20746865207a65726f206164647265737300000000000000000000006020830152604082019050919050565b60006135d7604283613b62565b91507f4b65796669546f6b656e3a3a5f7472616e73666572546f6b656e733a2063616e60008301527f6e6f74207472616e736665722066726f6d20746865207a65726f20616464726560208301527f73730000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000613663602a83613b62565b91507f4b65796669546f6b656e3a3a6d696e743a206f6e6c7920746865206d696e746560008301527f722063616e206d696e74000000000000000000000000000000000000000000006020830152604082019050919050565b6136c581613bc6565b82525050565b6136d481613bd0565b82525050565b6136e381613be0565b82525050565b60006136f48261310e565b91506137008285612ff2565b6020820191506137108284612ff2565b6020820191508190509392505050565b60006020820190506137356000830184612fc5565b92915050565b60006040820190506137506000830185612fc5565b61375d6020830184612fc5565b9392505050565b60006020820190506137796000830184612fd4565b92915050565b60006020820190506137946000830184612fe3565b92915050565b60006080820190506137af6000830187612fe3565b6137bc6020830186612fc5565b6137c960408301856136bc565b6137d660608301846136bc565b95945050505050565b60006080820190506137f46000830187612fe3565b6138016020830186612fe3565b61380e60408301856136bc565b61381b6060830184612fc5565b95945050505050565b60006080820190506138396000830187612fe3565b61384660208301866136da565b6138536040830185612fe3565b6138606060830184612fe3565b95945050505050565b600060208201905081810360008301526138838184613009565b905092915050565b600060208201905081810360008301526138a481613042565b9050919050565b600060208201905081810360008301526138c4816130a8565b9050919050565b600060208201905081810360008301526138e48161314e565b9050919050565b600060208201905081810360008301526139048161318e565b9050919050565b60006020820190508181036000830152613924816131f4565b9050919050565b600060208201905081810360008301526139448161325a565b9050919050565b60006020820190508181036000830152613964816132c0565b9050919050565b6000602082019050818103600083015261398481613326565b9050919050565b600060208201905081810360008301526139a48161338c565b9050919050565b600060208201905081810360008301526139c4816133f2565b9050919050565b600060208201905081810360008301526139e481613432565b9050919050565b60006020820190508181036000830152613a0481613498565b9050919050565b60006020820190508181036000830152613a24816134fe565b9050919050565b60006020820190508181036000830152613a4481613564565b9050919050565b60006020820190508181036000830152613a64816135ca565b9050919050565b60006020820190508181036000830152613a8481613656565b9050919050565b6000602082019050613aa060008301846136bc565b92915050565b6000604082019050613abb60008301856136bc565b613ac860208301846136bc565b9392505050565b6000602082019050613ae460008301846136cb565b92915050565b6000604082019050613aff60008301856136cb565b613b0c60208301846136cb565b9392505050565b6000602082019050613b2860008301846136da565b92915050565b6000604082019050613b4360008301856136da565b613b5060208301846136da565b9392505050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000613b8982613ba6565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60005b83811015613c0b578082015181840152602081019050613bf0565b83811115613c1a576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b613c4481613b7e565b8114613c4f57600080fd5b50565b613c5b81613b9c565b8114613c6657600080fd5b50565b613c7281613bc6565b8114613c7d57600080fd5b50565b613c8981613bd0565b8114613c9457600080fd5b50565b613ca081613be0565b8114613cab57600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654b65796669546f6b656e3a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77734b65796669546f6b656e3a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77734b65796669546f6b656e3a3a6275726e46726f6d3a206275726e20616d6f756e742065786365656473207370656e64657220616c6c6f77616e63654b65796669546f6b656e3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77734b65796669546f6b656e3a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63654b65796669546f6b656e3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a264697066735822122095e703097a67716b6ef55afbb13252750b11539d396c683dadb125e59537d16c64736f6c63430007010033000000000000000000000000fdb6ac6750690d9c46d038f2536ec995d9d3d6d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000062a08f40
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106101f05760003560e01c8063715018a61161010f578063a9059cbb116100a2578063dd62ed3e11610071578063dd62ed3e146105f8578063e7a324dc14610628578063f2fde38b14610646578063fca3b5aa14610662576101f0565b8063a9059cbb14610560578063b4b5ea5714610590578063c3cda520146105c0578063d2d2070a146105dc576101f0565b806379cc6790116100de57806379cc6790146104c45780637ecebe00146104f45780638da5cb5b1461052457806395d89b4114610542576101f0565b8063715018a61461044e57806376c71ca11461045857806376c9cc0314610476578063782d6fe114610494576101f0565b806330b36cef11610187578063587cde1e11610156578063587cde1e146103a25780635c19a95c146103d25780636fcfff45146103ee57806370a082311461041e576101f0565b806330b36cef1461031a578063313ce5671461033857806340c10f191461035657806342966c6814610372576101f0565b806318160ddd116101c357806318160ddd146102925780631f4e054a146102b057806320606b70146102cc57806323b872dd146102ea576101f0565b806306fdde03146101f55780630754617214610213578063095ea7b3146102315780630cdfebfa14610261575b600080fd5b6101fd61067e565b60405161020a9190613869565b60405180910390f35b61021b6106b7565b6040516102289190613720565b60405180910390f35b61024b60048036038101906102469190612e85565b6106dd565b6040516102589190613764565b60405180910390f35b61027b60048036038101906102769190612e85565b61083e565b604051610289929190613aa6565b60405180910390f35b61029a61086f565b6040516102a79190613a8b565b60405180910390f35b6102ca60048036038101906102c59190612f73565b610875565b005b6102d4610979565b6040516102e1919061377f565b60405180910390f35b61030460048036038101906102ff9190612e36565b61099d565b6040516103119190613764565b60405180910390f35b610322610bac565b60405161032f9190613a8b565b60405180910390f35b610340610bb2565b60405161034d9190613b13565b60405180910390f35b610370600480360381019061036b9190612e85565b610bb7565b005b61038c60048036038101906103879190612f4a565b610f2e565b6040516103999190613764565b60405180910390f35b6103bc60048036038101906103b79190612dd1565b610f43565b6040516103c99190613720565b60405180910390f35b6103ec60048036038101906103e79190612dd1565b610f76565b005b61040860048036038101906104039190612dd1565b610f83565b6040516104159190613a8b565b60405180910390f35b61043860048036038101906104339190612dd1565b610f9b565b6040516104459190613a8b565b60405180910390f35b610456610fe4565b005b610460611137565b60405161046d9190613b13565b60405180910390f35b61047e61114a565b60405161048b9190613acf565b60405180910390f35b6104ae60048036038101906104a99190612e85565b611160565b6040516104bb9190613a8b565b60405180910390f35b6104de60048036038101906104d99190612e85565b611459565b6040516104eb9190613764565b60405180910390f35b61050e60048036038101906105099190612dd1565b611666565b60405161051b9190613a8b565b60405180910390f35b61052c61167e565b6040516105399190613720565b60405180910390f35b61054a6116a7565b6040516105579190613869565b60405180910390f35b61057a60048036038101906105759190612e85565b6116e0565b6040516105879190613764565b60405180910390f35b6105aa60048036038101906105a59190612dd1565b6116f7565b6040516105b79190613a8b565b60405180910390f35b6105da60048036038101906105d59190612ec1565b6117ab565b005b6105f660048036038101906105f19190612f9c565b611a68565b005b610612600480360381019061060d9190612dfa565b611b63565b60405161061f9190613a8b565b60405180910390f35b610630611bea565b60405161063d919061377f565b60405180910390f35b610660600480360381019061065b9190612dd1565b611c0e565b005b61067c60048036038101906106779190612dd1565b611dd0565b005b6040518060400160405280600b81526020017f4b6579466920546f6b656e00000000000000000000000000000000000000000081525081565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561074e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610745906139cb565b60405180910390fd5b81600260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258460405161082c9190613a8b565b60405180910390a36001905092915050565b6008602052816000526040600020602052806000526040600020600091509150508060000154908060010154905082565b60015481565b61087d611f04565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461090a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610901906139ab565b60405180910390fd5b7f0bccb7f6bba126d5c23d5099b4065089f36a6a41084dc3874f26df138e251278600760009054906101000a900463ffffffff168260405161094d929190613aea565b60405180910390a180600760006101000a81548163ffffffff021916908363ffffffff16021790555050565b7f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a86681565b6000803390506000600260008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614158015610a8057507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b15610b94576000610aaa8286604051806080016040528060438152602001613d9d60439139611f0c565b905080600260008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051610b8a9190613a8b565b60405180910390a3505b610b9f868686611f61565b6001925050509392505050565b60065481565b601281565b600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610c47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c3e90613a6b565b60405180910390fd5b600654421015610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c839061392b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610cfc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cf390613a2b565b60405180910390fd5b610d366064610d28600760049054906101000a900460ff1660ff166001546122be90919063ffffffff16565b61232e90919063ffffffff16565b811115610d78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d6f9061396b565b60405180910390fd5b610da3600760009054906101000a900463ffffffff1663ffffffff164261237890919063ffffffff16565b600681905550610dbe8160015461237890919063ffffffff16565b600181905550610e1681600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461237890919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550610ec46000600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836123cd565b8173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610f229190613a8b565b60405180910390a35050565b6000610f3a3383612646565b60019050919050565b60046020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610f803382612855565b50565b60096020528060005260406000206000915090505481565b6000600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610fec611f04565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611079576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611070906139ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b600760049054906101000a900460ff1681565b600760009054906101000a900463ffffffff1681565b60004382106111a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119b9061390b565b60405180910390fd5b6000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008114156111fb576000915050611453565b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018403815260200190815260200160002060000154116112b757600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018303815260200190815260200160002060010154915050611453565b82600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600080815260200190815260200160002060000154111561131c576000915050611453565b6000806001830390505b818111156113f957600060028383038161133c57fe5b0482039050611349612d4e565b600860008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002060405180604001604052908160008201548152602001600182015481525050905086816000015114156113d757806020015195505050505050611453565b86816000015110156113eb578193506113f2565b6001820392505b5050611326565b600860008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206001015493505050505b92915050565b6000803390506000600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508473ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561153c57507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114155b1561165057600061156682866040518060600160405280603b8152602001613d2c603b9139611f0c565b905080600260008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff168673ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516116469190613a8b565b60405180910390a3505b61165a8585612646565b60019250505092915050565b600a6020528060005260406000206000915090505481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6040518060400160405280600581526020017f4b4559464900000000000000000000000000000000000000000000000000000081525081565b60006116ed338484611f61565b6001905092915050565b600080600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000811161174b5760006117a3565b600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600183038152602001908152602001600020600101545b915050919050565b60007f8cad95687ba82c2ce50e74f7b754645e5117c3a5bec8151c0726d5857980a8666040518060400160405280600b81526020017f4b6579466920546f6b656e000000000000000000000000000000000000000000815250805190602001206118136129fd565b3060405160200161182794939291906137df565b60405160208183030381529060405280519060200120905060007fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf888888604051602001611878949392919061379a565b604051602081830303815290604052805190602001209050600082826040516020016118a59291906136e9565b6040516020818303038152906040528051906020012090506000600182888888604051600081526020016040526040516118e29493929190613824565b6020604051602081039080840390855afa158015611904573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611980576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611977906138ab565b60405180910390fd5b600a60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558914611a0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0690613a0b565b60405180910390fd5b87421115611a52576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a49906138eb565b60405180910390fd5b611a5c818b612855565b50505050505050505050565b611a70611f04565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611afd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611af4906139ab565b60405180910390fd5b7f3ddfdcf016ab017c1eb9aebd65f9ad5371be2d77b0bfd7539719159f5ef0d1f7600760049054906101000a900460ff1682604051611b3d929190613b2e565b60405180910390a180600760046101000a81548160ff021916908360ff16021790555050565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7fe48329057bfd03d55e49b547132e39cffd9c1820ad7b9d4c5307691425d15adf81565b611c16611f04565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611ca3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c9a906139ab565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611d13576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0a9061388b565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611dd8611f04565b73ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614611e65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5c906139ab565b60405180910390fd5b7f3b0007eb941cf645526cbb3a4fdaecda9d28ce4843167d9263b536a1f1edc0f6600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682604051611eb892919061373b565b60405180910390a180600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600033905090565b6000838311158290611f54576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4b9190613869565b60405180910390fd5b5082840390509392505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611fd1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fc890613a4b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612041576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120389061394b565b60405180910390fd5b6120a3600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054826040518060600160405280603c8152602001613de0603c9139611f0c565b600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550612148600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482604051806060016040528060368152602001613d6760369139612a0a565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516121e89190613a8b565b60405180910390a36122b9600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16836123cd565b505050565b6000808314156122d15760009050612328565b60008284029050828482816122e257fe5b0414612323576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231a9061398b565b60405180910390fd5b809150505b92915050565b600061237083836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f000000000000815250612a64565b905092915050565b6000808284019050838110156123c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ba906138cb565b60405180910390fd5b8091505092915050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156124095750600081115b1561264157600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612527576000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008082116124965760006124ee565b600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184038152602001908152602001600020600101545b9050600061251582856040518060600160405280602e8152602001613cfe602e9139611f0c565b905061252386848484612ac5565b5050505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612640576000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905060008082116125af576000612607565b600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600184038152602001908152602001600020600101545b9050600061262e82856040518060600160405280602d8152602001613cd1602d9139612a0a565b905061263c85848484612ac5565b5050505b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156126b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126ad906139eb565b60405180910390fd5b61272281604051806060016040528060228152602001613caf60229139600360008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054612ca99092919063ffffffff16565b600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555061277a81600154612d0490919063ffffffff16565b600181905550600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516127de9190613a8b565b60405180910390a3612851600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166000836123cd565b5050565b6000600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690506000600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905082600460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167f3134e8a2e6d97e929a7e54011ea5485d7d196dd5f0ba4d4ef95803e8e3fc257f60405160405180910390a46129f78284836123cd565b50505050565b6000804690508091505090565b6000808385019050848110158390612a58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a4f9190613869565b60405180910390fd5b50809150509392505050565b60008083118290612aab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612aa29190613869565b60405180910390fd5b506000838581612ab757fe5b049050809150509392505050565b600083118015612b2a575043600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018603815260200190815260200160002060000154145b15612b8f5780600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600060018603815260200190815260200160002060010181905550612c53565b604051806040016040528043815260200182815250600860008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000858152602001908152602001600020600082015181600001556020820151816001015590505060018301600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8373ffffffffffffffffffffffffffffffffffffffff167fdec2bacdd2f05b59de34da9b523dff8be42e5e38e818c82fdb0bae774387a7248383604051612c9b929190613aa6565b60405180910390a250505050565b6000838311158290612cf1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ce89190613869565b60405180910390fd5b5060008385039050809150509392505050565b6000612d4683836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250612ca9565b905092915050565b604051806040016040528060008152602001600081525090565b600081359050612d7781613c3b565b92915050565b600081359050612d8c81613c52565b92915050565b600081359050612da181613c69565b92915050565b600081359050612db681613c80565b92915050565b600081359050612dcb81613c97565b92915050565b600060208284031215612de357600080fd5b6000612df184828501612d68565b91505092915050565b60008060408385031215612e0d57600080fd5b6000612e1b85828601612d68565b9250506020612e2c85828601612d68565b9150509250929050565b600080600060608486031215612e4b57600080fd5b6000612e5986828701612d68565b9350506020612e6a86828701612d68565b9250506040612e7b86828701612d92565b9150509250925092565b60008060408385031215612e9857600080fd5b6000612ea685828601612d68565b9250506020612eb785828601612d92565b9150509250929050565b60008060008060008060c08789031215612eda57600080fd5b6000612ee889828a01612d68565b9650506020612ef989828a01612d92565b9550506040612f0a89828a01612d92565b9450506060612f1b89828a01612dbc565b9350506080612f2c89828a01612d7d565b92505060a0612f3d89828a01612d7d565b9150509295509295509295565b600060208284031215612f5c57600080fd5b6000612f6a84828501612d92565b91505092915050565b600060208284031215612f8557600080fd5b6000612f9384828501612da7565b91505092915050565b600060208284031215612fae57600080fd5b6000612fbc84828501612dbc565b91505092915050565b612fce81613b7e565b82525050565b612fdd81613b90565b82525050565b612fec81613b9c565b82525050565b613003612ffe82613b9c565b613c20565b82525050565b600061301482613b57565b61301e8185613b62565b935061302e818560208601613bed565b61303781613c2a565b840191505092915050565b600061304f602683613b62565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006130b5602c83613b62565b91507f4b65796669546f6b656e3a3a64656c656761746542795369673a20696e76616c60008301527f6964207369676e617475726500000000000000000000000000000000000000006020830152604082019050919050565b600061311b600283613b73565b91507f19010000000000000000000000000000000000000000000000000000000000006000830152600282019050919050565b600061315b601b83613b62565b91507f536166654d6174683a206164646974696f6e206f766572666c6f7700000000006000830152602082019050919050565b600061319b602c83613b62565b91507f4b65796669546f6b656e3a3a64656c656761746542795369673a207369676e6160008301527f74757265206578706972656400000000000000000000000000000000000000006020830152604082019050919050565b6000613201602d83613b62565b91507f4b65796669546f6b656e3a3a6765745072696f72566f7465733a206e6f74207960008301527f65742064657465726d696e6564000000000000000000000000000000000000006020830152604082019050919050565b6000613267602983613b62565b91507f4b65796669546f6b656e3a3a6d696e743a206d696e74696e67206e6f7420616c60008301527f6c6f7765642079657400000000000000000000000000000000000000000000006020830152604082019050919050565b60006132cd604083613b62565b91507f4b65796669546f6b656e3a3a5f7472616e73666572546f6b656e733a2063616e60008301527f6e6f74207472616e7366657220746f20746865207a65726f20616464726573736020830152604082019050919050565b6000613333602383613b62565b91507f4b65796669546f6b656e3a3a6d696e743a206578636565646564206d696e742060008301527f63617000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613399602183613b62565b91507f536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f60008301527f77000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006133ff602083613b62565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b600061343f602783613b62565b91507f4b65796669546f6b656e3a2063616e6e6f7420617070726f7665207a65726f2060008301527f61646472657373000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006134a5602183613b62565b91507f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008301527f73000000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b600061350b602883613b62565b91507f4b65796669546f6b656e3a3a64656c656761746542795369673a20696e76616c60008301527f6964206e6f6e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613571603583613b62565b91507f4b65796669546f6b656e3a3a6d696e743a2063616e6e6f74207472616e73666560008301527f7220746f20746865207a65726f206164647265737300000000000000000000006020830152604082019050919050565b60006135d7604283613b62565b91507f4b65796669546f6b656e3a3a5f7472616e73666572546f6b656e733a2063616e60008301527f6e6f74207472616e736665722066726f6d20746865207a65726f20616464726560208301527f73730000000000000000000000000000000000000000000000000000000000006040830152606082019050919050565b6000613663602a83613b62565b91507f4b65796669546f6b656e3a3a6d696e743a206f6e6c7920746865206d696e746560008301527f722063616e206d696e74000000000000000000000000000000000000000000006020830152604082019050919050565b6136c581613bc6565b82525050565b6136d481613bd0565b82525050565b6136e381613be0565b82525050565b60006136f48261310e565b91506137008285612ff2565b6020820191506137108284612ff2565b6020820191508190509392505050565b60006020820190506137356000830184612fc5565b92915050565b60006040820190506137506000830185612fc5565b61375d6020830184612fc5565b9392505050565b60006020820190506137796000830184612fd4565b92915050565b60006020820190506137946000830184612fe3565b92915050565b60006080820190506137af6000830187612fe3565b6137bc6020830186612fc5565b6137c960408301856136bc565b6137d660608301846136bc565b95945050505050565b60006080820190506137f46000830187612fe3565b6138016020830186612fe3565b61380e60408301856136bc565b61381b6060830184612fc5565b95945050505050565b60006080820190506138396000830187612fe3565b61384660208301866136da565b6138536040830185612fe3565b6138606060830184612fe3565b95945050505050565b600060208201905081810360008301526138838184613009565b905092915050565b600060208201905081810360008301526138a481613042565b9050919050565b600060208201905081810360008301526138c4816130a8565b9050919050565b600060208201905081810360008301526138e48161314e565b9050919050565b600060208201905081810360008301526139048161318e565b9050919050565b60006020820190508181036000830152613924816131f4565b9050919050565b600060208201905081810360008301526139448161325a565b9050919050565b60006020820190508181036000830152613964816132c0565b9050919050565b6000602082019050818103600083015261398481613326565b9050919050565b600060208201905081810360008301526139a48161338c565b9050919050565b600060208201905081810360008301526139c4816133f2565b9050919050565b600060208201905081810360008301526139e481613432565b9050919050565b60006020820190508181036000830152613a0481613498565b9050919050565b60006020820190508181036000830152613a24816134fe565b9050919050565b60006020820190508181036000830152613a4481613564565b9050919050565b60006020820190508181036000830152613a64816135ca565b9050919050565b60006020820190508181036000830152613a8481613656565b9050919050565b6000602082019050613aa060008301846136bc565b92915050565b6000604082019050613abb60008301856136bc565b613ac860208301846136bc565b9392505050565b6000602082019050613ae460008301846136cb565b92915050565b6000604082019050613aff60008301856136cb565b613b0c60208301846136cb565b9392505050565b6000602082019050613b2860008301846136da565b92915050565b6000604082019050613b4360008301856136da565b613b5060208301846136da565b9392505050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b6000613b8982613ba6565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600063ffffffff82169050919050565b600060ff82169050919050565b60005b83811015613c0b578082015181840152602081019050613bf0565b83811115613c1a576000848401525b50505050565b6000819050919050565b6000601f19601f8301169050919050565b613c4481613b7e565b8114613c4f57600080fd5b50565b613c5b81613b9c565b8114613c6657600080fd5b50565b613c7281613bc6565b8114613c7d57600080fd5b50565b613c8981613bd0565b8114613c9457600080fd5b50565b613ca081613be0565b8114613cab57600080fd5b5056fe45524332303a206275726e20616d6f756e7420657863656564732062616c616e63654b65796669546f6b656e3a3a5f6d6f7665566f7465733a20766f746520616d6f756e74206f766572666c6f77734b65796669546f6b656e3a3a5f6d6f7665566f7465733a20766f746520616d6f756e7420756e646572666c6f77734b65796669546f6b656e3a3a6275726e46726f6d3a206275726e20616d6f756e742065786365656473207370656e64657220616c6c6f77616e63654b65796669546f6b656e3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e74206f766572666c6f77734b65796669546f6b656e3a3a7472616e7366657246726f6d3a207472616e7366657220616d6f756e742065786365656473207370656e64657220616c6c6f77616e63654b65796669546f6b656e3a3a5f7472616e73666572546f6b656e733a207472616e7366657220616d6f756e7420657863656564732062616c616e6365a264697066735822122095e703097a67716b6ef55afbb13252750b11539d396c683dadb125e59537d16c64736f6c63430007010033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000fdb6ac6750690d9c46d038f2536ec995d9d3d6d800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000062a08f40
-----Decoded View---------------
Arg [0] : account (address): 0xFdb6ac6750690D9c46d038f2536eC995D9d3D6d8
Arg [1] : _minter (address): 0x0000000000000000000000000000000000000000
Arg [2] : _mintingAllowedAfter (uint256): 1654689600
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 000000000000000000000000fdb6ac6750690d9c46d038f2536ec995d9d3d6d8
Arg [1] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [2] : 0000000000000000000000000000000000000000000000000000000062a08f40
Deployed Bytecode Sourcemap
11265:15199:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;11346:43;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11727:21;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15520:336;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11965:71;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;11484:49;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13607:182;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12104:122;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16989:641;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11755:34;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11442:35;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13797:753;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;25449:145;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11671:45;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17778:120;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12047:50;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16059:166;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2659:148;;;:::i;:::-;;11846:24;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11796:43;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20067:1270;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;25856:605;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12359:39;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2017:79;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11396:39;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16486:196;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19376:260;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18332:843;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13444:155;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;14854:191;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12233:117;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2962:244;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13275:161;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11346:43;;;;;;;;;;;;;;;;;;;:::o;11727:21::-;;;;;;;;;;;;;:::o;15520:336::-;15624:4;15674:1;15655:21;;:7;:21;;;;15647:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;15767:6;15733:10;:22;15744:10;15733:22;;;;;;;;;;;;;;;:31;15756:7;15733:31;;;;;;;;;;;;;;;:40;;;;15810:7;15789:37;;15798:10;15789:37;;;15819:6;15789:37;;;;;;:::i;:::-;;;;;;;;15844:4;15837:11;;15520:336;;;;:::o;11965:71::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11484:49::-;;;;:::o;13607:182::-;2239:12;:10;:12::i;:::-;2229:22;;:6;;;;;;;;;;:22;;;2221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13706:43:::1;13728:14;;;;;;;;;;;13744:4;13706:43;;;;;;;:::i;:::-;;;;;;;;13777:4;13760:14;;:21;;;;;;;;;;;;;;;;;;13607:182:::0;:::o;12104:122::-;12146:80;12104:122;:::o;16989:641::-;17109:4;17132:15;17150:10;17132:28;;17171:24;17198:10;:15;17209:3;17198:15;;;;;;;;;;;;;;;:24;17214:7;17198:24;;;;;;;;;;;;;;;;17171:51;;17250:3;17239:14;;:7;:14;;;;:49;;;;;17285:2;17257:16;:31;;17239:49;17235:320;;;17305:20;17328:103;17335:16;17353:6;17328:103;;;;;;;;;;;;;;;;;:6;:103::i;:::-;17305:126;;17473:12;17446:10;:15;17457:3;17446:15;;;;;;;;;;;;;;;:24;17462:7;17446:24;;;;;;;;;;;;;;;:39;;;;17521:7;17507:36;;17516:3;17507:36;;;17530:12;17507:36;;;;;;:::i;:::-;;;;;;;;17235:320;;17567:33;17583:3;17588;17593:6;17567:15;:33::i;:::-;17618:4;17611:11;;;;16989:641;;;;;:::o;11755:34::-;;;;:::o;11442:35::-;11475:2;11442:35;:::o;13797:753::-;13899:6;;;;;;;;;;;13885:20;;:10;:20;;;13877:75;;;;;;;;;;;;:::i;:::-;;;;;;;;;13990:19;;13971:15;:38;;13963:92;;;;;;;;;;;;:::i;:::-;;;;;;;;;14089:1;14074:17;;:3;:17;;;;14066:83;;;;;;;;;;;;:::i;:::-;;;;;;;;;14179:35;14210:3;14180:24;14196:7;;;;;;;;;;;14180:24;;:11;;:15;;:24;;;;:::i;:::-;14179:30;;:35;;;;:::i;:::-;14168:7;:46;;14160:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;14289:37;14311:14;;;;;;;;;;;14289:37;;14290:15;14289:21;;:37;;;;:::i;:::-;14267:19;:59;;;;14351:24;14367:7;14351:11;;:15;;:24;;;;:::i;:::-;14337:11;:38;;;;14402:26;14420:7;14402:8;:13;14411:3;14402:13;;;;;;;;;;;;;;;;:17;;:26;;;;:::i;:::-;14386:8;:13;14395:3;14386:13;;;;;;;;;;;;;;;:42;;;;14441:51;14464:1;14468:9;:14;14478:3;14468:14;;;;;;;;;;;;;;;;;;;;;;;;;14484:7;14441:14;:51::i;:::-;14529:3;14508:34;;14525:1;14508:34;;;14534:7;14508:34;;;;;;:::i;:::-;;;;;;;;13797:753;;:::o;25449:145::-;25517:4;25539:25;25545:10;25557:6;25539:5;:25::i;:::-;25582:4;25575:11;;25449:145;;;:::o;11671:45::-;;;;;;;;;;;;;;;;;;;;;;:::o;17778:120::-;17858:32;17868:10;17880:9;17858;:32::i;:::-;17778:120;:::o;12047:50::-;;;;;;;;;;;;;;;;;:::o;16059:166::-;16167:7;16200:8;:17;16209:7;16200:17;;;;;;;;;;;;;;;;16193:24;;16059:166;;;:::o;2659:148::-;2239:12;:10;:12::i;:::-;2229:22;;:6;;;;;;;;;;:22;;;2221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2766:1:::1;2729:40;;2750:6;::::0;::::1;;;;;;;;2729:40;;;;;;;;;;;;2797:1;2780:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;2659:148::o:0;11846:24::-;;;;;;;;;;;;;:::o;11796:43::-;;;;;;;;;;;;;:::o;20067:1270::-;20181:7;20229:12;20215:11;:26;20207:84;;;;;;;;;;;;:::i;:::-;;;;;;;;;20304:20;20327:14;:23;20342:7;20327:23;;;;;;;;;;;;;;;;20304:46;;20381:1;20365:12;:17;20361:58;;;20406:1;20399:8;;;;;20361:58;20531:11;20479;:20;20491:7;20479:20;;;;;;;;;;;;;;;:38;20515:1;20500:12;:16;20479:38;;;;;;;;;;;:48;;;:63;20475:147;;20566:11;:20;20578:7;20566:20;;;;;;;;;;;;;;;:38;20602:1;20587:12;:16;20566:38;;;;;;;;;;;:44;;;20559:51;;;;;20475:147;20719:11;20683;:20;20695:7;20683:20;;;;;;;;;;;;;;;:23;20704:1;20683:23;;;;;;;;;;;:33;;;:47;20679:88;;;20754:1;20747:8;;;;;20679:88;20779:13;20807;20838:1;20823:12;:16;20807:32;;20850:429;20865:5;20857;:13;20850:429;;;20887:14;20930:1;20921:5;20913;:13;20912:19;;;;;;20904:5;:27;20887:44;;20973:20;;:::i;:::-;20996:11;:20;21008:7;20996:20;;;;;;;;;;;;;;;:28;21017:6;20996:28;;;;;;;;;;;20973:51;;;;;;;;;;;;;;;;;;;;;;;;;;;21059:11;21043:2;:12;;;:27;21039:229;;;21098:2;:8;;;21091:15;;;;;;;;;21039:229;21147:11;21132:2;:12;;;:26;21128:140;;;21187:6;21179:14;;21128:140;;;21251:1;21242:6;:10;21234:18;;21128:140;20850:429;;;;;21296:11;:20;21308:7;21296:20;;;;;;;;;;;;;;;:27;21317:5;21296:27;;;;;;;;;;;:33;;;21289:40;;;;;20067:1270;;;;;:::o;25856:605::-;25944:4;25966:15;25984:10;25966:28;;26005:24;26032:10;:19;26043:7;26032:19;;;;;;;;;;;;;;;:28;26052:7;26032:28;;;;;;;;;;;;;;;;26005:55;;26088:7;26077:18;;:7;:18;;;;:53;;;;;26127:2;26099:16;:31;;26077:53;26073:324;;;26147:20;26170:95;26177:16;26195:6;26170:95;;;;;;;;;;;;;;;;;:6;:95::i;:::-;26147:118;;26311:12;26280:10;:19;26291:7;26280:19;;;;;;;;;;;;;;;:28;26300:7;26280:28;;;;;;;;;;;;;;;:43;;;;26363:7;26345:40;;26354:7;26345:40;;;26372:12;26345:40;;;;;;:::i;:::-;;;;;;;;26073:324;;26409:22;26415:7;26424:6;26409:5;:22::i;:::-;26449:4;26442:11;;;;25856:605;;;;:::o;12359:39::-;;;;;;;;;;;;;;;;;:::o;2017:79::-;2055:7;2082:6;;;;;;;;;;;2075:13;;2017:79;:::o;11396:39::-;;;;;;;;;;;;;;;;;;;:::o;16486:196::-;16589:4;16612:40;16628:10;16640:3;16645:6;16612:15;:40::i;:::-;16670:4;16663:11;;16486:196;;;;:::o;19376:260::-;19471:7;19497:20;19520:14;:23;19535:7;19520:23;;;;;;;;;;;;;;;;19497:46;;19576:1;19561:12;:16;:67;;19627:1;19561:67;;;19580:11;:20;19592:7;19580:20;;;;;;;;;;;;;;;:38;19616:1;19601:12;:16;19580:38;;;;;;;;;;;:44;;;19561:67;19554:74;;;19376:260;;;:::o;18332:843::-;18472:23;12146:80;18552:4;;;;;;;;;;;;;;;;;18536:22;;;;;;18560:12;:10;:12::i;:::-;18582:4;18508:80;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18498:91;;;;;;18472:117;;18600:18;12279:71;18663:9;18674:5;18681:6;18631:57;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18621:68;;;;;;18600:89;;18700:14;18756:15;18773:10;18727:57;;;;;;;;;:::i;:::-;;;;;;;;;;;;;18717:68;;;;;;18700:85;;18796:17;18816:26;18826:6;18834:1;18837;18840;18816:26;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18796:46;;18882:1;18861:23;;:9;:23;;;;18853:80;;;;;;;;;;;;:::i;:::-;;;;;;;;;18961:6;:17;18968:9;18961:17;;;;;;;;;;;;;;;;:19;;;;;;;;;;;;18952:5;:28;18944:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;19063:6;19044:15;:25;;19036:82;;;;;;;;;;;;:::i;:::-;;;;;;;;;19136:31;19146:9;19157;19136;:31::i;:::-;19129:38;;;;18332:843;;;;;;:::o;13444:155::-;2239:12;:10;:12::i;:::-;2229:22;;:6;;;;;;;;;;:22;;;2221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13537:29:::1;13552:7;;;;;;;;;;;13561:4;13537:29;;;;;;;:::i;:::-;;;;;;;;13587:4;13577:7;;:14;;;;;;;;;;;;;;;;;;13444:155:::0;:::o;14854:191::-;14976:7;15009:10;:19;15020:7;15009:19;;;;;;;;;;;;;;;:28;15029:7;15009:28;;;;;;;;;;;;;;;;15002:35;;14854:191;;;;:::o;12233:117::-;12279:71;12233:117;:::o;2962:244::-;2239:12;:10;:12::i;:::-;2229:22;;:6;;;;;;;;;;:22;;;2221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;3071:1:::1;3051:22;;:8;:22;;;;3043:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;3161:8;3132:38;;3153:6;::::0;::::1;;;;;;;;3132:38;;;;;;;;;;;;3190:8;3181:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;2962:244:::0;:::o;13275:161::-;2239:12;:10;:12::i;:::-;2229:22;;:6;;;;;;;;;;:22;;;2221:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;13371:30:::1;13385:6;;;;;;;;;;;13393:7;13371:30;;;;;;;:::i;:::-;;;;;;;;13421:7;13412:6;;:16;;;;;;;;;;;;;;;;;;13275:161:::0;:::o;655:106::-;708:15;743:10;736:17;;655:106;:::o;24197:205::-;24316:7;24355:1;24350;:6;;24358:12;24342:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;24393:1;24389;:5;24382:12;;24197:205;;;;;:::o;21745:657::-;21871:1;21856:17;;:3;:17;;;;21848:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;21978:1;21963:17;;:3;:17;;;;21955:94;;;;;;;;;;;;:::i;:::-;;;;;;;;;22078:93;22085:8;:13;22094:3;22085:13;;;;;;;;;;;;;;;;22100:6;22078:93;;;;;;;;;;;;;;;;;:6;:93::i;:::-;22062:8;:13;22071:3;22062:13;;;;;;;;;;;;;;;:109;;;;22198:87;22205:8;:13;22214:3;22205:13;;;;;;;;;;;;;;;;22220:6;22198:87;;;;;;;;;;;;;;;;;:6;:87::i;:::-;22182:8;:13;22191:3;22182:13;;;;;;;;;;;;;;;:103;;;;22315:3;22301:26;;22310:3;22301:26;;;22320:6;22301:26;;;;;;:::i;:::-;;;;;;;;22340:54;22355:9;:14;22365:3;22355:14;;;;;;;;;;;;;;;;;;;;;;;;;22371:9;:14;22381:3;22371:14;;;;;;;;;;;;;;;;;;;;;;;;;22387:6;22340:14;:54::i;:::-;21745:657;;;:::o;8122:471::-;8180:7;8430:1;8425;:6;8421:47;;;8455:1;8448:8;;;;8421:47;8480:9;8496:1;8492;:5;8480:17;;8525:1;8520;8516;:5;;;;;;:10;8508:56;;;;;;;;;;;;:::i;:::-;;;;;;;;;8584:1;8577:8;;;8122:471;;;;;:::o;9069:132::-;9127:7;9154:39;9158:1;9161;9154:39;;;;;;;;;;;;;;;;;:3;:39::i;:::-;9147:46;;9069:132;;;;:::o;6768:181::-;6826:7;6846:9;6862:1;6858;:5;6846:17;;6887:1;6882;:6;;6874:46;;;;;;;;;;;;:::i;:::-;;;;;;;;;6940:1;6933:8;;;6768:181;;;;:::o;22410:976::-;22532:6;22522:16;;:6;:16;;;;:30;;;;;22551:1;22542:6;:10;22522:30;22518:861;;;22591:1;22573:20;;:6;:20;;;22569:392;;22614:17;22634:14;:22;22649:6;22634:22;;;;;;;;;;;;;;;;22614:42;;22675:17;22707:1;22695:9;:13;:60;;22754:1;22695:60;;;22711:11;:19;22723:6;22711:19;;;;;;;;;;;;;;;:34;22743:1;22731:9;:13;22711:34;;;;;;;;;;;:40;;;22695:60;22675:80;;22774:17;22794:75;22801:9;22812:6;22794:75;;;;;;;;;;;;;;;;;:6;:75::i;:::-;22774:95;;22888:57;22905:6;22913:9;22924;22935;22888:16;:57::i;:::-;22569:392;;;;22999:1;22981:20;;:6;:20;;;22977:391;;23022:17;23042:14;:22;23057:6;23042:22;;;;;;;;;;;;;;;;23022:42;;23083:17;23115:1;23103:9;:13;:60;;23162:1;23103:60;;;23119:11;:19;23131:6;23119:19;;;;;;;;;;;;;;;:34;23151:1;23139:9;:13;23119:34;;;;;;;;;;;:40;;;23103:60;23083:80;;23182:17;23202:74;23209:9;23220:6;23202:74;;;;;;;;;;;;;;;;;:6;:74::i;:::-;23182:94;;23295:57;23312:6;23320:9;23331;23342;23295:16;:57::i;:::-;22977:391;;;;22518:861;22410:976;;;:::o;24934:434::-;25044:1;25025:21;;:7;:21;;;;25017:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;25117;25139:6;25117:67;;;;;;;;;;;;;;;;;:8;:17;25126:7;25117:17;;;;;;;;;;;;;;;;:21;;:67;;;;;:::i;:::-;25097:8;:17;25106:7;25097:17;;;;;;;;;;;;;;;:87;;;;25209:23;25225:6;25209:11;;:15;;:23;;;;:::i;:::-;25195:11;:37;;;;25274:1;25248:37;;25257:7;25248:37;;;25278:6;25248:37;;;;;;:::i;:::-;;;;;;;;25306:54;25321:9;:18;25331:7;25321:18;;;;;;;;;;;;;;;;;;;;;;;;;25349:1;25353:6;25306:14;:54::i;:::-;24934:434;;:::o;21345:392::-;21438:23;21464:9;:20;21474:9;21464:20;;;;;;;;;;;;;;;;;;;;;;;;;21438:46;;21495:24;21522:8;:19;21531:9;21522:19;;;;;;;;;;;;;;;;21495:46;;21575:9;21552;:20;21562:9;21552:20;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;21646:9;21602:54;;21629:15;21602:54;;21618:9;21602:54;;;;;;;;;;;;21669:60;21684:15;21701:9;21712:16;21669:14;:60::i;:::-;21345:392;;;;:::o;24410:192::-;24485:7;24511:15;24559:9;24548:20;;24587:7;24580:14;;;24410:192;:::o;23958:231::-;24077:7;24103:9;24119:1;24115;:5;24103:17;;24144:1;24139;:6;;24147:12;24131:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;24178:1;24171:8;;;23958:231;;;;;:::o;9697:278::-;9783:7;9815:1;9811;:5;9818:12;9803:28;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;9842:9;9858:1;9854;:5;;;;;;9842:17;;9966:1;9959:8;;;9697:278;;;;;:::o;23394:556::-;23552:1;23537:12;:16;:86;;;;;23611:12;23557:11;:22;23569:9;23557:22;;;;;;;;;;;;;;;:40;23595:1;23580:12;:16;23557:40;;;;;;;;;;;:50;;;:66;23537:86;23533:341;;;23689:8;23640:11;:22;23652:9;23640:22;;;;;;;;;;;;;;;:40;23678:1;23663:12;:16;23640:40;;;;;;;;;;;:46;;:57;;;;23533:341;;;23769:34;;;;;;;;23780:12;23769:34;;;;23794:8;23769:34;;;23730:11;:22;23742:9;23730:22;;;;;;;;;;;;;;;:36;23753:12;23730:36;;;;;;;;;;;:73;;;;;;;;;;;;;;;;;;;23861:1;23846:12;:16;23818:14;:25;23833:9;23818:25;;;;;;;;;;;;;;;:44;;;;23533:341;23912:9;23891:51;;;23923:8;23933;23891:51;;;;;;;:::i;:::-;;;;;;;;23394:556;;;;:::o;7671:192::-;7757:7;7790:1;7785;:6;;7793:12;7777:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;7817:9;7833:1;7829;:5;7817:17;;7854:1;7847:8;;;7671:192;;;;;:::o;7232:136::-;7290:7;7317:43;7321:1;7324;7317:43;;;;;;;;;;;;;;;;;:3;:43::i;:::-;7310:50;;7232:136;;;;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;:::o;5:130::-;;85:6;72:20;63:29;;97:33;124:5;97:33;:::i;:::-;57:78;;;;:::o;142:130::-;;222:6;209:20;200:29;;234:33;261:5;234:33;:::i;:::-;194:78;;;;:::o;279:130::-;;359:6;346:20;337:29;;371:33;398:5;371:33;:::i;:::-;331:78;;;;:::o;416:128::-;;495:6;482:20;473:29;;507:32;533:5;507:32;:::i;:::-;467:77;;;;:::o;551:126::-;;629:6;616:20;607:29;;641:31;666:5;641:31;:::i;:::-;601:76;;;;:::o;684:241::-;;788:2;776:9;767:7;763:23;759:32;756:2;;;804:1;801;794:12;756:2;839:1;856:53;901:7;892:6;881:9;877:22;856:53;:::i;:::-;846:63;;818:97;750:175;;;;:::o;932:366::-;;;1053:2;1041:9;1032:7;1028:23;1024:32;1021:2;;;1069:1;1066;1059:12;1021:2;1104:1;1121:53;1166:7;1157:6;1146:9;1142:22;1121:53;:::i;:::-;1111:63;;1083:97;1211:2;1229:53;1274:7;1265:6;1254:9;1250:22;1229:53;:::i;:::-;1219:63;;1190:98;1015:283;;;;;:::o;1305:491::-;;;;1443:2;1431:9;1422:7;1418:23;1414:32;1411:2;;;1459:1;1456;1449:12;1411:2;1494:1;1511:53;1556:7;1547:6;1536:9;1532:22;1511:53;:::i;:::-;1501:63;;1473:97;1601:2;1619:53;1664:7;1655:6;1644:9;1640:22;1619:53;:::i;:::-;1609:63;;1580:98;1709:2;1727:53;1772:7;1763:6;1752:9;1748:22;1727:53;:::i;:::-;1717:63;;1688:98;1405:391;;;;;:::o;1803:366::-;;;1924:2;1912:9;1903:7;1899:23;1895:32;1892:2;;;1940:1;1937;1930:12;1892:2;1975:1;1992:53;2037:7;2028:6;2017:9;2013:22;1992:53;:::i;:::-;1982:63;;1954:97;2082:2;2100:53;2145:7;2136:6;2125:9;2121:22;2100:53;:::i;:::-;2090:63;;2061:98;1886:283;;;;;:::o;2176:865::-;;;;;;;2363:3;2351:9;2342:7;2338:23;2334:33;2331:2;;;2380:1;2377;2370:12;2331:2;2415:1;2432:53;2477:7;2468:6;2457:9;2453:22;2432:53;:::i;:::-;2422:63;;2394:97;2522:2;2540:53;2585:7;2576:6;2565:9;2561:22;2540:53;:::i;:::-;2530:63;;2501:98;2630:2;2648:53;2693:7;2684:6;2673:9;2669:22;2648:53;:::i;:::-;2638:63;;2609:98;2738:2;2756:51;2799:7;2790:6;2779:9;2775:22;2756:51;:::i;:::-;2746:61;;2717:96;2844:3;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2823:99;2953:3;2972:53;3017:7;3008:6;2997:9;2993:22;2972:53;:::i;:::-;2962:63;;2932:99;2325:716;;;;;;;;:::o;3048:241::-;;3152:2;3140:9;3131:7;3127:23;3123:32;3120:2;;;3168:1;3165;3158:12;3120:2;3203:1;3220:53;3265:7;3256:6;3245:9;3241:22;3220:53;:::i;:::-;3210:63;;3182:97;3114:175;;;;:::o;3296:239::-;;3399:2;3387:9;3378:7;3374:23;3370:32;3367:2;;;3415:1;3412;3405:12;3367:2;3450:1;3467:52;3511:7;3502:6;3491:9;3487:22;3467:52;:::i;:::-;3457:62;;3429:96;3361:174;;;;:::o;3542:237::-;;3644:2;3632:9;3623:7;3619:23;3615:32;3612:2;;;3660:1;3657;3650:12;3612:2;3695:1;3712:51;3755:7;3746:6;3735:9;3731:22;3712:51;:::i;:::-;3702:61;;3674:95;3606:173;;;;:::o;3786:113::-;3869:24;3887:5;3869:24;:::i;:::-;3864:3;3857:37;3851:48;;:::o;3906:104::-;3983:21;3998:5;3983:21;:::i;:::-;3978:3;3971:34;3965:45;;:::o;4017:113::-;4100:24;4118:5;4100:24;:::i;:::-;4095:3;4088:37;4082:48;;:::o;4137:152::-;4238:45;4258:24;4276:5;4258:24;:::i;:::-;4238:45;:::i;:::-;4233:3;4226:58;4220:69;;:::o;4296:347::-;;4408:39;4441:5;4408:39;:::i;:::-;4459:71;4523:6;4518:3;4459:71;:::i;:::-;4452:78;;4535:52;4580:6;4575:3;4568:4;4561:5;4557:16;4535:52;:::i;:::-;4608:29;4630:6;4608:29;:::i;:::-;4603:3;4599:39;4592:46;;4388:255;;;;;:::o;4651:375::-;;4811:67;4875:2;4870:3;4811:67;:::i;:::-;4804:74;;4911:34;4907:1;4902:3;4898:11;4891:55;4980:8;4975:2;4970:3;4966:12;4959:30;5017:2;5012:3;5008:12;5001:19;;4797:229;;;:::o;5035:381::-;;5195:67;5259:2;5254:3;5195:67;:::i;:::-;5188:74;;5295:34;5291:1;5286:3;5282:11;5275:55;5364:14;5359:2;5354:3;5350:12;5343:36;5407:2;5402:3;5398:12;5391:19;;5181:235;;;:::o;5425:398::-;;5603:84;5685:1;5680:3;5603:84;:::i;:::-;5596:91;;5720:66;5716:1;5711:3;5707:11;5700:87;5815:1;5810:3;5806:11;5799:18;;5589:234;;;:::o;5832:327::-;;5992:67;6056:2;6051:3;5992:67;:::i;:::-;5985:74;;6092:29;6088:1;6083:3;6079:11;6072:50;6150:2;6145:3;6141:12;6134:19;;5978:181;;;:::o;6168:381::-;;6328:67;6392:2;6387:3;6328:67;:::i;:::-;6321:74;;6428:34;6424:1;6419:3;6415:11;6408:55;6497:14;6492:2;6487:3;6483:12;6476:36;6540:2;6535:3;6531:12;6524:19;;6314:235;;;:::o;6558:382::-;;6718:67;6782:2;6777:3;6718:67;:::i;:::-;6711:74;;6818:34;6814:1;6809:3;6805:11;6798:55;6887:15;6882:2;6877:3;6873:12;6866:37;6931:2;6926:3;6922:12;6915:19;;6704:236;;;:::o;6949:378::-;;7109:67;7173:2;7168:3;7109:67;:::i;:::-;7102:74;;7209:34;7205:1;7200:3;7196:11;7189:55;7278:11;7273:2;7268:3;7264:12;7257:33;7318:2;7313:3;7309:12;7302:19;;7095:232;;;:::o;7336:401::-;;7496:67;7560:2;7555:3;7496:67;:::i;:::-;7489:74;;7596:34;7592:1;7587:3;7583:11;7576:55;7665:34;7660:2;7655:3;7651:12;7644:56;7728:2;7723:3;7719:12;7712:19;;7482:255;;;:::o;7746:372::-;;7906:67;7970:2;7965:3;7906:67;:::i;:::-;7899:74;;8006:34;8002:1;7997:3;7993:11;7986:55;8075:5;8070:2;8065:3;8061:12;8054:27;8109:2;8104:3;8100:12;8093:19;;7892:226;;;:::o;8127:370::-;;8287:67;8351:2;8346:3;8287:67;:::i;:::-;8280:74;;8387:34;8383:1;8378:3;8374:11;8367:55;8456:3;8451:2;8446:3;8442:12;8435:25;8488:2;8483:3;8479:12;8472:19;;8273:224;;;:::o;8506:332::-;;8666:67;8730:2;8725:3;8666:67;:::i;:::-;8659:74;;8766:34;8762:1;8757:3;8753:11;8746:55;8829:2;8824:3;8820:12;8813:19;;8652:186;;;:::o;8847:376::-;;9007:67;9071:2;9066:3;9007:67;:::i;:::-;9000:74;;9107:34;9103:1;9098:3;9094:11;9087:55;9176:9;9171:2;9166:3;9162:12;9155:31;9214:2;9209:3;9205:12;9198:19;;8993:230;;;:::o;9232:370::-;;9392:67;9456:2;9451:3;9392:67;:::i;:::-;9385:74;;9492:34;9488:1;9483:3;9479:11;9472:55;9561:3;9556:2;9551:3;9547:12;9540:25;9593:2;9588:3;9584:12;9577:19;;9378:224;;;:::o;9611:377::-;;9771:67;9835:2;9830:3;9771:67;:::i;:::-;9764:74;;9871:34;9867:1;9862:3;9858:11;9851:55;9940:10;9935:2;9930:3;9926:12;9919:32;9979:2;9974:3;9970:12;9963:19;;9757:231;;;:::o;9997:390::-;;10157:67;10221:2;10216:3;10157:67;:::i;:::-;10150:74;;10257:34;10253:1;10248:3;10244:11;10237:55;10326:23;10321:2;10316:3;10312:12;10305:45;10378:2;10373:3;10369:12;10362:19;;10143:244;;;:::o;10396:440::-;;10556:67;10620:2;10615:3;10556:67;:::i;:::-;10549:74;;10656:34;10652:1;10647:3;10643:11;10636:55;10725:34;10720:2;10715:3;10711:12;10704:56;10794:4;10789:2;10784:3;10780:12;10773:26;10827:2;10822:3;10818:12;10811:19;;10542:294;;;:::o;10845:379::-;;11005:67;11069:2;11064:3;11005:67;:::i;:::-;10998:74;;11105:34;11101:1;11096:3;11092:11;11085:55;11174:12;11169:2;11164:3;11160:12;11153:34;11215:2;11210:3;11206:12;11199:19;;10991:233;;;:::o;11232:113::-;11315:24;11333:5;11315:24;:::i;:::-;11310:3;11303:37;11297:48;;:::o;11352:110::-;11433:23;11450:5;11433:23;:::i;:::-;11428:3;11421:36;11415:47;;:::o;11469:107::-;11548:22;11564:5;11548:22;:::i;:::-;11543:3;11536:35;11530:46;;:::o;11583:659::-;;11847:148;11991:3;11847:148;:::i;:::-;11840:155;;12006:75;12077:3;12068:6;12006:75;:::i;:::-;12103:2;12098:3;12094:12;12087:19;;12117:75;12188:3;12179:6;12117:75;:::i;:::-;12214:2;12209:3;12205:12;12198:19;;12234:3;12227:10;;11828:414;;;;;:::o;12249:222::-;;12376:2;12365:9;12361:18;12353:26;;12390:71;12458:1;12447:9;12443:17;12434:6;12390:71;:::i;:::-;12347:124;;;;:::o;12478:333::-;;12633:2;12622:9;12618:18;12610:26;;12647:71;12715:1;12704:9;12700:17;12691:6;12647:71;:::i;:::-;12729:72;12797:2;12786:9;12782:18;12773:6;12729:72;:::i;:::-;12604:207;;;;;:::o;12818:210::-;;12939:2;12928:9;12924:18;12916:26;;12953:65;13015:1;13004:9;13000:17;12991:6;12953:65;:::i;:::-;12910:118;;;;:::o;13035:222::-;;13162:2;13151:9;13147:18;13139:26;;13176:71;13244:1;13233:9;13229:17;13220:6;13176:71;:::i;:::-;13133:124;;;;:::o;13264:556::-;;13475:3;13464:9;13460:19;13452:27;;13490:71;13558:1;13547:9;13543:17;13534:6;13490:71;:::i;:::-;13572:72;13640:2;13629:9;13625:18;13616:6;13572:72;:::i;:::-;13655;13723:2;13712:9;13708:18;13699:6;13655:72;:::i;:::-;13738;13806:2;13795:9;13791:18;13782:6;13738:72;:::i;:::-;13446:374;;;;;;;:::o;13827:556::-;;14038:3;14027:9;14023:19;14015:27;;14053:71;14121:1;14110:9;14106:17;14097:6;14053:71;:::i;:::-;14135:72;14203:2;14192:9;14188:18;14179:6;14135:72;:::i;:::-;14218;14286:2;14275:9;14271:18;14262:6;14218:72;:::i;:::-;14301;14369:2;14358:9;14354:18;14345:6;14301:72;:::i;:::-;14009:374;;;;;;;:::o;14390:548::-;;14597:3;14586:9;14582:19;14574:27;;14612:71;14680:1;14669:9;14665:17;14656:6;14612:71;:::i;:::-;14694:68;14758:2;14747:9;14743:18;14734:6;14694:68;:::i;:::-;14773:72;14841:2;14830:9;14826:18;14817:6;14773:72;:::i;:::-;14856;14924:2;14913:9;14909:18;14900:6;14856:72;:::i;:::-;14568:370;;;;;;;:::o;14945:310::-;;15092:2;15081:9;15077:18;15069:26;;15142:9;15136:4;15132:20;15128:1;15117:9;15113:17;15106:47;15167:78;15240:4;15231:6;15167:78;:::i;:::-;15159:86;;15063:192;;;;:::o;15262:416::-;;15462:2;15451:9;15447:18;15439:26;;15512:9;15506:4;15502:20;15498:1;15487:9;15483:17;15476:47;15537:131;15663:4;15537:131;:::i;:::-;15529:139;;15433:245;;;:::o;15685:416::-;;15885:2;15874:9;15870:18;15862:26;;15935:9;15929:4;15925:20;15921:1;15910:9;15906:17;15899:47;15960:131;16086:4;15960:131;:::i;:::-;15952:139;;15856:245;;;:::o;16108:416::-;;16308:2;16297:9;16293:18;16285:26;;16358:9;16352:4;16348:20;16344:1;16333:9;16329:17;16322:47;16383:131;16509:4;16383:131;:::i;:::-;16375:139;;16279:245;;;:::o;16531:416::-;;16731:2;16720:9;16716:18;16708:26;;16781:9;16775:4;16771:20;16767:1;16756:9;16752:17;16745:47;16806:131;16932:4;16806:131;:::i;:::-;16798:139;;16702:245;;;:::o;16954:416::-;;17154:2;17143:9;17139:18;17131:26;;17204:9;17198:4;17194:20;17190:1;17179:9;17175:17;17168:47;17229:131;17355:4;17229:131;:::i;:::-;17221:139;;17125:245;;;:::o;17377:416::-;;17577:2;17566:9;17562:18;17554:26;;17627:9;17621:4;17617:20;17613:1;17602:9;17598:17;17591:47;17652:131;17778:4;17652:131;:::i;:::-;17644:139;;17548:245;;;:::o;17800:416::-;;18000:2;17989:9;17985:18;17977:26;;18050:9;18044:4;18040:20;18036:1;18025:9;18021:17;18014:47;18075:131;18201:4;18075:131;:::i;:::-;18067:139;;17971:245;;;:::o;18223:416::-;;18423:2;18412:9;18408:18;18400:26;;18473:9;18467:4;18463:20;18459:1;18448:9;18444:17;18437:47;18498:131;18624:4;18498:131;:::i;:::-;18490:139;;18394:245;;;:::o;18646:416::-;;18846:2;18835:9;18831:18;18823:26;;18896:9;18890:4;18886:20;18882:1;18871:9;18867:17;18860:47;18921:131;19047:4;18921:131;:::i;:::-;18913:139;;18817:245;;;:::o;19069:416::-;;19269:2;19258:9;19254:18;19246:26;;19319:9;19313:4;19309:20;19305:1;19294:9;19290:17;19283:47;19344:131;19470:4;19344:131;:::i;:::-;19336:139;;19240:245;;;:::o;19492:416::-;;19692:2;19681:9;19677:18;19669:26;;19742:9;19736:4;19732:20;19728:1;19717:9;19713:17;19706:47;19767:131;19893:4;19767:131;:::i;:::-;19759:139;;19663:245;;;:::o;19915:416::-;;20115:2;20104:9;20100:18;20092:26;;20165:9;20159:4;20155:20;20151:1;20140:9;20136:17;20129:47;20190:131;20316:4;20190:131;:::i;:::-;20182:139;;20086:245;;;:::o;20338:416::-;;20538:2;20527:9;20523:18;20515:26;;20588:9;20582:4;20578:20;20574:1;20563:9;20559:17;20552:47;20613:131;20739:4;20613:131;:::i;:::-;20605:139;;20509:245;;;:::o;20761:416::-;;20961:2;20950:9;20946:18;20938:26;;21011:9;21005:4;21001:20;20997:1;20986:9;20982:17;20975:47;21036:131;21162:4;21036:131;:::i;:::-;21028:139;;20932:245;;;:::o;21184:416::-;;21384:2;21373:9;21369:18;21361:26;;21434:9;21428:4;21424:20;21420:1;21409:9;21405:17;21398:47;21459:131;21585:4;21459:131;:::i;:::-;21451:139;;21355:245;;;:::o;21607:416::-;;21807:2;21796:9;21792:18;21784:26;;21857:9;21851:4;21847:20;21843:1;21832:9;21828:17;21821:47;21882:131;22008:4;21882:131;:::i;:::-;21874:139;;21778:245;;;:::o;22030:222::-;;22157:2;22146:9;22142:18;22134:26;;22171:71;22239:1;22228:9;22224:17;22215:6;22171:71;:::i;:::-;22128:124;;;;:::o;22259:333::-;;22414:2;22403:9;22399:18;22391:26;;22428:71;22496:1;22485:9;22481:17;22472:6;22428:71;:::i;:::-;22510:72;22578:2;22567:9;22563:18;22554:6;22510:72;:::i;:::-;22385:207;;;;;:::o;22599:218::-;;22724:2;22713:9;22709:18;22701:26;;22738:69;22804:1;22793:9;22789:17;22780:6;22738:69;:::i;:::-;22695:122;;;;:::o;22824:325::-;;22975:2;22964:9;22960:18;22952:26;;22989:69;23055:1;23044:9;23040:17;23031:6;22989:69;:::i;:::-;23069:70;23135:2;23124:9;23120:18;23111:6;23069:70;:::i;:::-;22946:203;;;;;:::o;23156:214::-;;23279:2;23268:9;23264:18;23256:26;;23293:67;23357:1;23346:9;23342:17;23333:6;23293:67;:::i;:::-;23250:120;;;;:::o;23377:317::-;;23524:2;23513:9;23509:18;23501:26;;23538:67;23602:1;23591:9;23587:17;23578:6;23538:67;:::i;:::-;23616:68;23680:2;23669:9;23665:18;23656:6;23616:68;:::i;:::-;23495:199;;;;;:::o;23701:122::-;;23795:5;23789:12;23779:22;;23760:63;;;:::o;23831:163::-;;23946:6;23941:3;23934:19;23983:4;23978:3;23974:14;23959:29;;23927:67;;;;:::o;24003:145::-;;24139:3;24124:18;;24117:31;;;;:::o;24156:91::-;;24218:24;24236:5;24218:24;:::i;:::-;24207:35;;24201:46;;;:::o;24254:85::-;;24327:5;24320:13;24313:21;24302:32;;24296:43;;;:::o;24346:72::-;;24408:5;24397:16;;24391:27;;;:::o;24425:121::-;;24498:42;24491:5;24487:54;24476:65;;24470:76;;;:::o;24553:72::-;;24615:5;24604:16;;24598:27;;;:::o;24632:88::-;;24704:10;24697:5;24693:22;24682:33;;24676:44;;;:::o;24727:81::-;;24798:4;24791:5;24787:16;24776:27;;24770:38;;;:::o;24816:268::-;24881:1;24888:101;24902:6;24899:1;24896:13;24888:101;;;24978:1;24973:3;24969:11;24963:18;24959:1;24954:3;24950:11;24943:39;24924:2;24921:1;24917:10;24912:15;;24888:101;;;25004:6;25001:1;24998:13;24995:2;;;25069:1;25060:6;25055:3;25051:16;25044:27;24995:2;24865:219;;;;:::o;25092:74::-;;25156:5;25145:16;;25139:27;;;:::o;25173:97::-;;25261:2;25257:7;25252:2;25245:5;25241:14;25237:28;25227:38;;25221:49;;;:::o;25278:117::-;25347:24;25365:5;25347:24;:::i;:::-;25340:5;25337:35;25327:2;;25386:1;25383;25376:12;25327:2;25321:74;:::o;25402:117::-;25471:24;25489:5;25471:24;:::i;:::-;25464:5;25461:35;25451:2;;25510:1;25507;25500:12;25451:2;25445:74;:::o;25526:117::-;25595:24;25613:5;25595:24;:::i;:::-;25588:5;25585:35;25575:2;;25634:1;25631;25624:12;25575:2;25569:74;:::o;25650:115::-;25718:23;25735:5;25718:23;:::i;:::-;25711:5;25708:34;25698:2;;25756:1;25753;25746:12;25698:2;25692:73;:::o;25772:113::-;25839:22;25855:5;25839:22;:::i;:::-;25832:5;25829:33;25819:2;;25876:1;25873;25866:12;25819:2;25813:72;:::o
Swarm Source
ipfs://95e703097a67716b6ef55afbb13252750b11539d396c683dadb125e59537d16c
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.