Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
Overview
Max Total Supply
100,000,000,000 $777
Holders
19
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
2,287,256,629.745424154940363896 $777Value
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Millionaire
Compiler Version
v0.8.0+commit.c7dfd78e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2022-11-30 */ /** 777 Dollar Millionaire - $777 $777 token will add exactly 777$ worth of ethereum against all of the supply. We will start off with 777$ worth of liquidity. But to boost it as we grow we will add 7% liqudity tax for buying and selling which will in return grow our initial liquidity. $777 tokens only utility is to reach 777K marketcap starting out with just 777$ worth of liquidity. */ // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IERC20 { function totalSupply() external view returns (uint256); function balanceOf(address account) external view returns (uint256); function transfer(address recipient, uint256 amount) external returns (bool); function allowance(address owner, address spender) external view returns (uint256); function approve(address spender, uint256 amount) external returns (bool); function transferFrom(address sender,address recipient,uint256 amount) external returns (bool); event Transfer(address indexed from, address indexed to, uint256 value); event Approval(address indexed owner, address indexed spender, uint256 value); } library Address { function isContract(address account) internal view returns (bool) { // According to EIP-1052, 0x0 is the value returned for not-yet created accounts // and 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470 is returned // for accounts without code, i.e. `keccak256('')` bytes32 codehash; bytes32 accountHash = 0xc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470; // solhint-disable-next-line no-inline-assembly assembly { codehash := extcodehash(account) } return (codehash != accountHash && codehash != 0x0); } function sendValue(address payable recipient, uint256 amount) internal { require(address(this).balance >= amount, "Address: insufficient balance"); // solhint-disable-next-line avoid-low-level-calls, avoid-call-value (bool success, ) = recipient.call{ value: amount }(""); require(success, "Address: unable to send value, recipient may have reverted"); } function functionCall(address target, bytes memory data) internal returns (bytes memory) { return functionCall(target, data, "Address: low-level call failed"); } function functionCall(address target, bytes memory data, string memory errorMessage) internal returns (bytes memory) { return _functionCallWithValue(target, data, 0, errorMessage); } function functionCallWithValue(address target, bytes memory data, uint256 value) internal returns (bytes memory) { return functionCallWithValue(target, data, value, "Address: low-level call with value failed"); } function functionCallWithValue(address target, bytes memory data, uint256 value, string memory errorMessage) internal returns (bytes memory) { require(address(this).balance >= value, "Address: insufficient balance for call"); return _functionCallWithValue(target, data, value, errorMessage); } function _functionCallWithValue(address target, bytes memory data, uint256 weiValue, string memory errorMessage) private returns (bytes memory) { require(isContract(target), "Address: call to non-contract"); (bool success, bytes memory returndata) = target.call{ value: weiValue }(data); if (success) { return returndata; } else { if (returndata.length > 0) { assembly { let returndata_size := mload(returndata) revert(add(32, returndata), returndata_size) } } else { revert(errorMessage); } } } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); /** * @dev Initializes the contract setting the deployer as the initial owner. */ constructor() { _setOwner(_msgSender()); } /** * @dev Returns the address of the current owner. */ function owner() public view virtual returns (address) { return _owner; } /** * @dev Throws if called by any account other than the owner. */ modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } /** * @dev Leaves the contract without owner. It will not be possible to call * `onlyOwner` functions anymore. Can only be called by the current owner. * * NOTE: Renouncing ownership will leave the contract without an owner, * thereby removing any functionality that is only available to the owner. */ function renounceOwnership() public virtual onlyOwner { _setOwner(address(0)); } /** * @dev Transfers ownership of the contract to a new account (`newOwner`). * Can only be called by the current owner. */ function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _setOwner(newOwner); } function _setOwner(address newOwner) private { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } contract Millionaire is Context,IERC20, Ownable{ using Address for address; string private _name = "777 Dollar Millionaire"; string private _symbol = "$777"; uint8 private _decimals = 18; uint256 totalFeeFortx = 0; uint256 maxWalletTreshold = 2; uint256 maxTxTreshold = 1; uint256 private swapTreshold =1; uint256 private currentThreshold = 10; //Once the token value goes up this number can be decreased (To reduce price impact on asset) uint256 private _totalSupply = (10000000 * 10**4) * 10**_decimals; // uint256 public requiredTokensToSwap = _totalSupply * swapTreshold /1000; mapping (address => uint256) private _balances; mapping (address => bool) private _excludedFromFees; mapping (address => mapping (address => uint256)) private _allowances; mapping (address => bool) public automatedMarketMakerPairs; address _owner; address payable public marketingAddress = payable(0x95354AB76f1a8d1f7E720eb6D193B5Abf4CC8bC9); uint256 maxWalletAmount = _totalSupply*maxWalletTreshold/200; // starting 2% uint256 maxTxAmount = _totalSupply*maxTxTreshold/100; mapping (address => bool) botWallets; bool botTradeEnabled = false; bool checkWalletSize = true; mapping (address => bool) private _liquidityHolders; mapping (address => bool) private presaleAddresses; uint256 private buyliqFee = 4; //1 uint256 private buyprevLiqFee = 0; uint256 private buymktFee = 1;//4 uint256 private buyPrevmktFee = 0; bool private tradeEnabled = false; uint256 private sellliqFee = 4; uint256 private sellprevLiqFee = 0; uint256 private sellmktFee = 1; uint256 private sellPrevmktFee = 0; bool public inSwapAndLiquify; bool public swapAndLiquifyEnabled = true; address public immutable deadAddress = 0x000000000000000000000000000000000000dEaD; uint256 private mktTokens = 0; uint256 private liqTokens = 0; event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event tokensSwappedDuringTokenomics(uint256 amount); event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); // 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D IUniswapV2Router02 _router; address public uniswapV2Pair; //Balances tracker modifier lockTheSwap{ inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor(){ _balances[_msgSender()] = _totalSupply; //0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D mainnet and all networks IUniswapV2Router02 _uniRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniRouter.factory()) .createPair(address(this), _uniRouter.WETH()); _excludedFromFees[owner()] = true; _excludedFromFees[address(this)] = true;// exclude owner and contract instance from fees _router = _uniRouter; _liquidityHolders[address(_router)] = true; _liquidityHolders[owner()] = true; _liquidityHolders[address(this)] = true; _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); emit Transfer(address(0),_msgSender(),_totalSupply); } receive() external payable{} //general token data and tracking of balances to be swapped. function getOwner()external view returns(address){ return owner(); } function currentmktTokens() external view returns (uint256){ return mktTokens; } function currentLiqTokens() external view returns (uint256){ return liqTokens; } function totalSupply() external view override returns (uint256){ return _totalSupply; } function balanceOf(address account) public view override returns (uint256){ return _balances[account]; } function transfer(address recipient, uint256 amount) external override returns (bool){ _transfer(_msgSender(),recipient,amount); return true; } function allowance(address owner, address spender) external view override returns (uint256){ return _allowances[owner][spender]; } function approve(address spender, uint256 amount) external override returns (bool){ _approve(_msgSender(),spender,amount); return true; } function decimals()external view returns(uint256){ return _decimals; } function name() external view returns (string memory) { return _name; } function symbol() external view returns (string memory){ return _symbol; } function updateMaxTxTreshold(uint256 newVal) public onlyOwner{ maxTxTreshold = newVal; maxTxAmount = _totalSupply*maxTxTreshold/100;// 1% } function updateMaxWalletTreshold(uint256 newVal) public onlyOwner{ maxWalletTreshold = newVal; maxWalletAmount = _totalSupply*maxWalletTreshold/100; } function transferFrom( address sender, address recipient, uint256 amount ) public override returns (bool){ require(amount <= _allowances[sender][_msgSender()], "ERC20: transfer amount exceeds allowance"); _transfer(sender, recipient, amount); _approve(sender, _msgSender(), _allowances[sender][_msgSender()] - amount); return true; } //Tokenomics related functions function addBotWallet (address payable detectedBot, bool isBot) public onlyOwner{ botWallets[detectedBot] = isBot; } function currentbuyliqFee() public view returns (uint256){ return buyliqFee; } function currentbuymktfee() public view returns (uint256){ return buymktFee; } function currentsellLiqFee() public view returns (uint256){ return sellliqFee; } function currentsellmktfee() public view returns (uint256){ return sellmktFee; } function currentThresholdInt()public view returns (uint256){ return currentThreshold; } function isExcluded(address toCheck)public view returns (bool){ return _excludedFromFees[toCheck]; } function _transfer(address from, address to, uint256 amount) internal{ require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); require(amount > 0,"ERC20: transfered amount must be greater than zero"); uint256 senderBalance = _balances[from]; require(senderBalance >= amount, "ERC20: transfer amount exceeds balance"); if(tradeEnabled == false){ require(_liquidityHolders[to] || _liquidityHolders[from],"Cant trade, trade is disabled"); } if(_liquidityHolders[to]==false && _liquidityHolders[from]==false){ require(amount <= maxTxAmount, "Transfer amount exceeds the maxTxAmount."); if(from == uniswapV2Pair){ require(balanceOf(to)+amount <= maxWalletAmount); } } uint256 inContractBalance = balanceOf(address(this)); if(inContractBalance >=requiredTokensToSwap && !inSwapAndLiquify && from != uniswapV2Pair && swapAndLiquifyEnabled){ if(inContractBalance >= requiredTokensToSwap ){ inContractBalance = requiredTokensToSwap; swapForTokenomics(inContractBalance); } } bool takeFees = true; if(_excludedFromFees[from] || _excludedFromFees[to]) { totalFeeFortx = 0; takeFees = false; } uint256 mktAmount = 0; uint256 liqAmount = 0; // Amount to be added to liquidity. if(takeFees){ //bot fees if(botWallets[from] == true||botWallets[to]==true){ revert("No bots can trade"); } //Selling fees if (automatedMarketMakerPairs[to] && to != address(_router) ){ totalFeeFortx = 0; mktAmount = amount * sellmktFee/100; liqAmount = amount * sellliqFee/100; totalFeeFortx = mktAmount + liqAmount; } //Buy Fees else if(automatedMarketMakerPairs[from] && from != address(_router)) { totalFeeFortx = 0; mktAmount = amount * buymktFee/100; liqAmount = amount * buyliqFee/100; totalFeeFortx = mktAmount + liqAmount ; } } _balances[from] = senderBalance - amount; _balances[to] += amount - mktAmount - liqAmount; if(liqAmount != 0) { _balances[address(this)] += totalFeeFortx; //tLiqTotal += liqAmount; liqTokens += liqAmount; mktTokens += mktAmount; emit Transfer(from, address(this), totalFeeFortx); } emit Transfer(from, to,amount-totalFeeFortx); } function swapForTokenomics(uint256 balanceToswap) private lockTheSwap{ swapAndLiquify(liqTokens); swapTokensForETHmkt(mktTokens); emit tokensSwappedDuringTokenomics(balanceToswap); mktTokens = 0; liqTokens = 0; } function addLimitExempt(address newAddress)external onlyOwner{ _liquidityHolders[newAddress] = true; } function swapTokensForETHmkt(uint256 amount)private { address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), amount); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( amount, 0, // Accept any amount of ETH. path, marketingAddress, block.timestamp ); } function unstuckETH(address payable destination) public onlyOwner{ uint256 ethBalance = address(this).balance; payable(destination).transfer(ethBalance); } function tradeStatus(bool status) public onlyOwner{ tradeEnabled = status; } function swapAndLiquify(uint256 liqTokensPassed) private { uint256 half = liqTokensPassed / 2; uint256 otherHalf = liqTokensPassed - half; uint256 initialBalance = address(this).balance; swapTokensForETH(half); uint256 newBalance = address(this).balance - (initialBalance); addLiquidity(otherHalf, newBalance); emit SwapAndLiquify(half,newBalance,otherHalf); } function swapTokensForETH(uint256 tokenAmount) private{ address[] memory path = new address[](2); path[0] = address(this); path[1] = _router.WETH(); _approve(address(this), address(_router), tokenAmount); _router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // Accept any amount of ETH. path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount,uint256 ethAmount) private{ _approve(address(this), address(_router), tokenAmount); _router.addLiquidityETH{value:ethAmount}( address(this), tokenAmount, 0, 0, deadAddress,// tr block.timestamp ); } function _approve(address owner,address spender, uint256 amount) internal{ 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); } //Fees related functions function addToExcluded(address toExclude) public onlyOwner{ _excludedFromFees[toExclude] = true; } function removeFromExcluded(address toRemove) public onlyOwner{ _excludedFromFees[toRemove] = false; } function updateThreshold(uint newThreshold) public onlyOwner{ currentThreshold = newThreshold; } function setSwapAndLiquify(bool _enabled) public onlyOwner{ swapAndLiquifyEnabled = _enabled; } //Marketing related function setMktAddress(address newAddress) external onlyOwner{ marketingAddress = payable(newAddress); } function transferAssetsETH(address payable to, uint256 amount) internal{ to.transfer(amount); } 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 updatebuyFee(uint256 newAmount) public onlyOwner{ buyliqFee = newAmount; } function updatesellFee(uint256 newAmount)public onlyOwner{ sellmktFee= newAmount; } function currentMaxWallet() public view returns(uint256){ return maxWalletAmount; } function currentMaxTx() public view returns(uint256){ return maxTxAmount; } function updateSwapTreshold(uint256 newVal) public onlyOwner{ swapTreshold = newVal; requiredTokensToSwap = _totalSupply*swapTreshold/1000; } function currentTradeStatus() public view returns (bool){ return tradeEnabled; } function currentSwapTreshold() public view returns(uint256){ return swapTreshold; } function currentTokensToSwap() public view returns(uint256){ return requiredTokensToSwap; } } interface IUniswapV2Factory { event PairCreated(address indexed token0, address indexed token1, address pair, uint); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair(address tokenA, address tokenB) external view returns (address pair); function allPairs(uint) external view returns (address pair); function allPairsLength() external view returns (uint); function createPair(address tokenA, address tokenB) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint); function permit(address owner, address spender, uint value, uint deadline, uint8 v, bytes32 r, bytes32 s) external; event Mint(address indexed sender, uint amount0, uint amount1); event Burn(address indexed sender, uint amount0, uint amount1, address indexed to); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint); function price1CumulativeLast() external view returns (uint); function kLast() external view returns (uint); function mint(address to) external returns (uint liquidity); function burn(address to) external returns (uint amount0, uint amount1); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint amountADesired, uint amountBDesired, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB, uint liquidity); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); function removeLiquidity( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline ) external returns (uint amountA, uint amountB); function removeLiquidityETH( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountToken, uint amountETH); function removeLiquidityWithPermit( address tokenA, address tokenB, uint liquidity, uint amountAMin, uint amountBMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountA, uint amountB); function removeLiquidityETHWithPermit( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountToken, uint amountETH); function swapExactTokensForTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapTokensForExactTokens( uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline ) external returns (uint[] memory amounts); function swapExactETHForTokens(uint amountOutMin, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function swapTokensForExactETH(uint amountOut, uint amountInMax, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapExactTokensForETH(uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline) external returns (uint[] memory amounts); function swapETHForExactTokens(uint amountOut, address[] calldata path, address to, uint deadline) external payable returns (uint[] memory amounts); function quote(uint amountA, uint reserveA, uint reserveB) external pure returns (uint amountB); function getAmountOut(uint amountIn, uint reserveIn, uint reserveOut) external pure returns (uint amountOut); function getAmountIn(uint amountOut, uint reserveIn, uint reserveOut) external pure returns (uint amountIn); function getAmountsOut(uint amountIn, address[] calldata path) external view returns (uint[] memory amounts); function getAmountsIn(uint amountOut, address[] calldata path) external view returns (uint[] memory amounts); } interface IUniswapV2Router02 is IUniswapV2Router01 { function removeLiquidityETHSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external returns (uint amountETH); function removeLiquidityETHWithPermitSupportingFeeOnTransferTokens( address token, uint liquidity, uint amountTokenMin, uint amountETHMin, address to, uint deadline, bool approveMax, uint8 v, bytes32 r, bytes32 s ) external returns (uint amountETH); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint amountOutMin, address[] calldata path, address to, uint deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pair","type":"address"},{"indexed":true,"internalType":"bool","name":"value","type":"bool"}],"name":"SetAutomatedMarketMakerPair","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"tokensSwappedDuringTokenomics","type":"event"},{"inputs":[{"internalType":"address payable","name":"detectedBot","type":"address"},{"internalType":"bool","name":"isBot","type":"bool"}],"name":"addBotWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"addLimitExempt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"toExclude","type":"address"}],"name":"addToExcluded","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":"","type":"address"}],"name":"automatedMarketMakerPairs","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentLiqTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxTx","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentMaxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentSwapTreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentThresholdInt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTradeStatus","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuyliqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentbuymktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentmktTokens","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellLiqFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentsellmktfee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"deadAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOwner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"inSwapAndLiquify","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toCheck","type":"address"}],"name":"isExcluded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingAddress","outputs":[{"internalType":"address payable","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"toRemove","type":"address"}],"name":"removeFromExcluded","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"requiredTokensToSwap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAddress","type":"address"}],"name":"setMktAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_enabled","type":"bool"}],"name":"setSwapAndLiquify","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"swapAndLiquifyEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"status","type":"bool"}],"name":"tradeStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address payable","name":"destination","type":"address"}],"name":"unstuckETH","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxTxTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateMaxWalletTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newVal","type":"uint256"}],"name":"updateSwapTreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newThreshold","type":"uint256"}],"name":"updateThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatebuyFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatesellFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280601681526020017f37373720446f6c6c6172204d696c6c696f6e6169726500000000000000000000815250600190805190602001906200005192919062000992565b506040518060400160405280600481526020017f2437373700000000000000000000000000000000000000000000000000000000815250600290805190602001906200009f92919062000992565b506012600360006101000a81548160ff021916908360ff1602179055506000600455600260055560016006556001600755600a600855600360009054906101000a900460ff16600a620000f3919062000b84565b64174876e80062000105919062000cc1565b6009556103e86007546009546200011d919062000cc1565b62000129919062000af1565b600a557395354ab76f1a8d1f7e720eb6d193b5abf4cc8bc9601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060c860055460095462000195919062000cc1565b620001a1919062000af1565b6011556064600654600954620001b8919062000cc1565b620001c4919062000af1565b6012556000601460006101000a81548160ff0219169083151502179055506001601460016101000a81548160ff0219169083151502179055506004601755600060185560016019556000601a556000601b60006101000a81548160ff0219169083151502179055506004601c556000601d556001601e556000601f556001602060016101000a81548160ff02191690831515021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525060006021556000602255348015620002aa57600080fd5b50620002cb620002bf620007fc60201b60201c565b6200080460201b60201c565b600954600b6000620002e2620007fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200038057600080fd5b505afa15801562000395573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003bb919062000a59565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200041e57600080fd5b505afa15801562000433573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000459919062000a59565b6040518363ffffffff1660e01b81526004016200047892919062000aa7565b602060405180830381600087803b1580156200049357600080fd5b505af1158015620004a8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004ce919062000a59565b602460006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600c600062000524620008c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080602360006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160156000602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560006200069e620008c860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601560003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506200077c602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff166001620008f160201b60201c565b6200078c620007fc60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600954604051620007ed919062000ad4565b60405180910390a35062000e57565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b828054620009a09062000d6d565b90600052602060002090601f016020900481019282620009c4576000855562000a10565b82601f10620009df57805160ff191683800117855562000a10565b8280016001018555821562000a10579182015b8281111562000a0f578251825591602001919060010190620009f2565b5b50905062000a1f919062000a23565b5090565b5b8082111562000a3e57600081600090555060010162000a24565b5090565b60008151905062000a538162000e3d565b92915050565b60006020828403121562000a6c57600080fd5b600062000a7c8482850162000a42565b91505092915050565b62000a908162000d22565b82525050565b62000aa18162000d56565b82525050565b600060408201905062000abe600083018562000a85565b62000acd602083018462000a85565b9392505050565b600060208201905062000aeb600083018462000a96565b92915050565b600062000afe8262000d56565b915062000b0b8362000d56565b92508262000b1e5762000b1d62000dd2565b5b828204905092915050565b6000808291508390505b600185111562000b7b5780860481111562000b535762000b5262000da3565b5b600185161562000b635780820291505b808102905062000b738562000e30565b945062000b33565b94509492505050565b600062000b918262000d56565b915062000b9e8362000d60565b925062000bcd7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bd5565b905092915050565b60008262000be7576001905062000cba565b8162000bf7576000905062000cba565b816001811462000c10576002811462000c1b5762000c51565b600191505062000cba565b60ff84111562000c305762000c2f62000da3565b5b8360020a91508482111562000c4a5762000c4962000da3565b5b5062000cba565b5060208310610133831016604e8410600b841016171562000c8b5782820a90508381111562000c855762000c8462000da3565b5b62000cba565b62000c9a848484600162000b29565b9250905081840481111562000cb45762000cb362000da3565b5b81810290505b9392505050565b600062000cce8262000d56565b915062000cdb8362000d56565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d175762000d1662000da3565b5b828202905092915050565b600062000d2f8262000d36565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000d8657607f821691505b6020821081141562000d9d5762000d9c62000e01565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60008160011c9050919050565b62000e488162000d22565b811462000e5457600080fd5b50565b60805160601c61427362000e7d60003960008181610dda015261321101526142736000f3fe6080604052600436106102975760003560e01c80638da5cb5b1161015a578063bf9b0159116100c1578063d7d7442f1161007a578063d7d7442f146109ef578063d9bee35514610a18578063dd62ed3e14610a41578063ddcf9b9814610a7e578063e1370dd314610aa9578063f2fde38b14610ad45761029e565b8063bf9b0159146108e1578063bf9eb5401461090c578063cb66453414610935578063cba0e9961461095e578063d1294d4c1461099b578063d15bcf0f146109c45761029e565b8063a5ece94111610113578063a5ece941146107c1578063a6c38f59146107ec578063a7a0745214610815578063a9059cbb1461083e578063b4d95a931461087b578063b62496f5146108a45761029e565b80638da5cb5b146106c157806390f50283146106ec57806395d89b41146107175780639a7a23d6146107425780639b136da41461076b578063a04bdc81146107965761029e565b80634a0e963c116101fe5780636573c4df116101b75780636573c4df146105c55780636df3333a146105ee57806370a0823114610619578063715018a614610656578063801527ce1461066d578063893d20e8146106965761029e565b80634a0e963c146104c75780634a74bb02146104f05780634bd7ace51461051b5780635297defd146105465780635be76f111461057157806364c161631461059a5761029e565b806323b872dd1161025057806323b872dd146103b557806327c8f835146103f25780632d03420b1461041d578063313ce56714610446578063487a69051461047157806349bd5a5e1461049c5761029e565b8063024f5381146102a357806306fdde03146102cc578063095ea7b3146102f757806318160ddd14610334578063220f66961461035f57806322788f861461038a5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102ca60048036038101906102c5919061350c565b610afd565b005b3480156102d857600080fd5b506102e1610b83565b6040516102ee9190613c0a565b60405180910390f35b34801561030357600080fd5b5061031e600480360381019061031991906134a7565b610c15565b60405161032b9190613bef565b60405180910390f35b34801561034057600080fd5b50610349610c33565b6040516103569190613dcc565b60405180910390f35b34801561036b57600080fd5b50610374610c3d565b6040516103819190613bef565b60405180910390f35b34801561039657600080fd5b5061039f610c50565b6040516103ac9190613dcc565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d7919061341c565b610c5a565b6040516103e99190613bef565b60405180910390f35b3480156103fe57600080fd5b50610407610dd8565b6040516104149190613b58565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f91906134e3565b610dfc565b005b34801561045257600080fd5b5061045b610e95565b6040516104689190613dcc565b60405180910390f35b34801561047d57600080fd5b50610486610eaf565b6040516104939190613dcc565b60405180910390f35b3480156104a857600080fd5b506104b1610eb9565b6040516104be9190613b58565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e99190613329565b610edf565b005b3480156104fc57600080fd5b50610505610fb6565b6040516105129190613bef565b60405180910390f35b34801561052757600080fd5b50610530610fc9565b60405161053d9190613dcc565b60405180910390f35b34801561055257600080fd5b5061055b610fd3565b6040516105689190613dcc565b60405180910390f35b34801561057d57600080fd5b506105986004803603810190610593919061337b565b610fdd565b005b3480156105a657600080fd5b506105af6110a9565b6040516105bc9190613dcc565b60405180910390f35b3480156105d157600080fd5b506105ec60048036038101906105e7919061350c565b6110b3565b005b3480156105fa57600080fd5b5061060361115b565b6040516106109190613dcc565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b9190613329565b611165565b60405161064d9190613dcc565b60405180910390f35b34801561066257600080fd5b5061066b6111ae565b005b34801561067957600080fd5b50610694600480360381019061068f91906134e3565b611236565b005b3480156106a257600080fd5b506106ab6112cf565b6040516106b89190613b58565b60405180910390f35b3480156106cd57600080fd5b506106d66112de565b6040516106e39190613b58565b60405180910390f35b3480156106f857600080fd5b50610701611307565b60405161070e9190613dcc565b60405180910390f35b34801561072357600080fd5b5061072c611311565b6040516107399190613c0a565b60405180910390f35b34801561074e57600080fd5b506107696004803603810190610764919061346b565b6113a3565b005b34801561077757600080fd5b506107806114be565b60405161078d9190613dcc565b60405180910390f35b3480156107a257600080fd5b506107ab6114c8565b6040516107b89190613dcc565b60405180910390f35b3480156107cd57600080fd5b506107d66114ce565b6040516107e39190613b73565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e91906133a4565b6114f4565b005b34801561082157600080fd5b5061083c6004803603810190610837919061350c565b6115cb565b005b34801561084a57600080fd5b50610865600480360381019061086091906134a7565b611673565b6040516108729190613bef565b60405180910390f35b34801561088757600080fd5b506108a2600480360381019061089d9190613329565b611691565b005b3480156108b057600080fd5b506108cb60048036038101906108c69190613329565b611768565b6040516108d89190613bef565b60405180910390f35b3480156108ed57600080fd5b506108f6611788565b6040516109039190613dcc565b60405180910390f35b34801561091857600080fd5b50610933600480360381019061092e9190613329565b611792565b005b34801561094157600080fd5b5061095c60048036038101906109579190613329565b611852565b005b34801561096a57600080fd5b5061098560048036038101906109809190613329565b611929565b6040516109929190613bef565b60405180910390f35b3480156109a757600080fd5b506109c260048036038101906109bd919061350c565b61197f565b005b3480156109d057600080fd5b506109d9611a28565b6040516109e69190613bef565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a11919061350c565b611a3f565b005b348015610a2457600080fd5b50610a3f6004803603810190610a3a919061350c565b611ac5565b005b348015610a4d57600080fd5b50610a686004803603810190610a6391906133e0565b611b4b565b604051610a759190613dcc565b60405180910390f35b348015610a8a57600080fd5b50610a93611bd2565b604051610aa09190613dcc565b60405180910390f35b348015610ab557600080fd5b50610abe611bdc565b604051610acb9190613dcc565b60405180910390f35b348015610ae057600080fd5b50610afb6004803603810190610af69190613329565b611be6565b005b610b05611cde565b73ffffffffffffffffffffffffffffffffffffffff16610b236112de565b73ffffffffffffffffffffffffffffffffffffffff1614610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090613d4c565b60405180910390fd5b80601e8190555050565b606060018054610b9290614111565b80601f0160208091040260200160405190810160405280929190818152602001828054610bbe90614111565b8015610c0b5780601f10610be057610100808354040283529160200191610c0b565b820191906000526020600020905b815481529060010190602001808311610bee57829003601f168201915b5050505050905090565b6000610c29610c22611cde565b8484611ce6565b6001905092915050565b6000600954905090565b602060009054906101000a900460ff1681565b6000600854905090565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ca5611cde565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1990613d2c565b60405180910390fd5b610d2d848484611eb1565b610dcd84610d39611cde565b84600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d83611cde565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dc89190614008565b611ce6565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b610e04611cde565b73ffffffffffffffffffffffffffffffffffffffff16610e226112de565b73ffffffffffffffffffffffffffffffffffffffff1614610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f90613d4c565b60405180910390fd5b80601b60006101000a81548160ff02191690831515021790555050565b6000600360009054906101000a900460ff1660ff16905090565b6000600a54905090565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ee7611cde565b73ffffffffffffffffffffffffffffffffffffffff16610f056112de565b73ffffffffffffffffffffffffffffffffffffffff1614610f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5290613d4c565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900460ff1681565b6000601754905090565b6000601e54905090565b610fe5611cde565b73ffffffffffffffffffffffffffffffffffffffff166110036112de565b73ffffffffffffffffffffffffffffffffffffffff1614611059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105090613d4c565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110a4573d6000803e3d6000fd5b505050565b6000602254905090565b6110bb611cde565b73ffffffffffffffffffffffffffffffffffffffff166110d96112de565b73ffffffffffffffffffffffffffffffffffffffff161461112f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112690613d4c565b60405180910390fd5b8060058190555060646005546009546111489190613fae565b6111529190613f7d565b60118190555050565b6000600754905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111b6611cde565b73ffffffffffffffffffffffffffffffffffffffff166111d46112de565b73ffffffffffffffffffffffffffffffffffffffff161461122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190613d4c565b60405180910390fd5b611234600061296e565b565b61123e611cde565b73ffffffffffffffffffffffffffffffffffffffff1661125c6112de565b73ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990613d4c565b60405180910390fd5b80602060016101000a81548160ff02191690831515021790555050565b60006112d96112de565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601c54905090565b60606002805461132090614111565b80601f016020809104026020016040519081016040528092919081815260200182805461134c90614111565b80156113995780601f1061136e57610100808354040283529160200191611399565b820191906000526020600020905b81548152906001019060200180831161137c57829003601f168201915b5050505050905090565b6113ab611cde565b73ffffffffffffffffffffffffffffffffffffffff166113c96112de565b73ffffffffffffffffffffffffffffffffffffffff161461141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141690613d4c565b60405180910390fd5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a790613c8c565b60405180910390fd5b6114ba8282612a32565b5050565b6000601954905090565b600a5481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114fc611cde565b73ffffffffffffffffffffffffffffffffffffffff1661151a6112de565b73ffffffffffffffffffffffffffffffffffffffff1614611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156790613d4c565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6115d3611cde565b73ffffffffffffffffffffffffffffffffffffffff166115f16112de565b73ffffffffffffffffffffffffffffffffffffffff1614611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163e90613d4c565b60405180910390fd5b8060068190555060646006546009546116609190613fae565b61166a9190613f7d565b60128190555050565b6000611687611680611cde565b8484611eb1565b6001905092915050565b611699611cde565b73ffffffffffffffffffffffffffffffffffffffff166116b76112de565b73ffffffffffffffffffffffffffffffffffffffff161461170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490613d4c565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000601254905090565b61179a611cde565b73ffffffffffffffffffffffffffffffffffffffff166117b86112de565b73ffffffffffffffffffffffffffffffffffffffff161461180e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180590613d4c565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61185a611cde565b73ffffffffffffffffffffffffffffffffffffffff166118786112de565b73ffffffffffffffffffffffffffffffffffffffff16146118ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c590613d4c565b60405180910390fd5b6001601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611987611cde565b73ffffffffffffffffffffffffffffffffffffffff166119a56112de565b73ffffffffffffffffffffffffffffffffffffffff16146119fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f290613d4c565b60405180910390fd5b806007819055506103e8600754600954611a159190613fae565b611a1f9190613f7d565b600a8190555050565b6000601b60009054906101000a900460ff16905090565b611a47611cde565b73ffffffffffffffffffffffffffffffffffffffff16611a656112de565b73ffffffffffffffffffffffffffffffffffffffff1614611abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab290613d4c565b60405180910390fd5b8060088190555050565b611acd611cde565b73ffffffffffffffffffffffffffffffffffffffff16611aeb6112de565b73ffffffffffffffffffffffffffffffffffffffff1614611b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3890613d4c565b60405180910390fd5b8060178190555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000602154905090565b6000601154905090565b611bee611cde565b73ffffffffffffffffffffffffffffffffffffffff16611c0c6112de565b73ffffffffffffffffffffffffffffffffffffffff1614611c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5990613d4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc990613c4c565b60405180910390fd5b611cdb8161296e565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4d90613d8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd90613c6c565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ea49190613dcc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1890613d6c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8890613c2c565b60405180910390fd5b60008111611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb90613cec565b60405180910390fd5b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613cac565b60405180910390fd5b60001515601b60009054906101000a900460ff161515141561215857601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121185750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214e90613d0c565b60405180910390fd5b5b60001515601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612208575060001515601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156122cc57601254821115612252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224990613ccc565b60405180910390fd5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156122cb57601154826122b585611165565b6122bf9190613f27565b11156122ca57600080fd5b5b5b60006122d730611165565b9050600a5481101580156122f85750602060009054906101000a900460ff16155b80156123525750602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561236a5750602060019054906101000a900460ff165b1561238857600a54811061238757600a54905061238681612ad3565b5b5b600060019050600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061242f5750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612441576000600481905550600090505b600080821561273d5760011515601360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514806124f9575060011515601360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15612539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253090613dac565b60405180910390fd5b600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125e05750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561263c5760006004819055506064601e54876125fd9190613fae565b6126079190613f7d565b91506064601c54876126199190613fae565b6126239190613f7d565b905080826126319190613f27565b60048190555061273c565b600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126e35750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1561273b5760006004819055506064601954876127009190613fae565b61270a9190613f7d565b915060646017548761271c9190613fae565b6127269190613f7d565b905080826127349190613f27565b6004819055505b5b5b85856127499190614008565b600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508082876127999190614008565b6127a39190614008565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127f19190613f27565b92505081905550600081146128f257600454600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128519190613f27565b92505081905550806022600082825461286a9190613f27565b9250508190555081602160008282546128839190613f27565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516128e99190613dcc565b60405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004548961294f9190614008565b60405161295c9190613dcc565b60405180910390a35050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6001602060006101000a81548160ff021916908315150217905550612af9602254612b69565b612b04602154612bf4565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f0190481604051612b339190613dcc565b60405180910390a1600060218190555060006022819055506000602060006101000a81548160ff02191690831515021790555050565b6000600282612b789190613f7d565b905060008183612b889190614008565b90506000479050612b9883612eda565b60008147612ba69190614008565b9050612bb2838261319e565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561848285604051612be593929190613e9b565b60405180910390a15050505050565b6000600267ffffffffffffffff811115612c37577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612c655781602001602082028036833780820191505090505b5090503081600081518110612ca3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d4557600080fd5b505afa158015612d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d7d9190613352565b81600181518110612db7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e1e30602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce6565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612ea4959493929190613de7565b600060405180830381600087803b158015612ebe57600080fd5b505af1158015612ed2573d6000803e3d6000fd5b505050505050565b6000600267ffffffffffffffff811115612f1d577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612f4b5781602001602082028036833780820191505090505b5090503081600081518110612f89577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561302b57600080fd5b505afa15801561303f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130639190613352565b8160018151811061309d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061310430602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce6565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613168959493929190613e41565b600060405180830381600087803b15801561318257600080fd5b505af1158015613196573d6000803e3d6000fd5b505050505050565b6131cb30602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce6565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000807f0000000000000000000000000000000000000000000000000000000000000000426040518863ffffffff1660e01b815260040161325296959493929190613b8e565b6060604051808303818588803b15801561326b57600080fd5b505af115801561327f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132a49190613535565b5050505050565b6000813590506132ba816141e1565b92915050565b6000815190506132cf816141e1565b92915050565b6000813590506132e4816141f8565b92915050565b6000813590506132f98161420f565b92915050565b60008135905061330e81614226565b92915050565b60008151905061332381614226565b92915050565b60006020828403121561333b57600080fd5b6000613349848285016132ab565b91505092915050565b60006020828403121561336457600080fd5b6000613372848285016132c0565b91505092915050565b60006020828403121561338d57600080fd5b600061339b848285016132d5565b91505092915050565b600080604083850312156133b757600080fd5b60006133c5858286016132d5565b92505060206133d6858286016132ea565b9150509250929050565b600080604083850312156133f357600080fd5b6000613401858286016132ab565b9250506020613412858286016132ab565b9150509250929050565b60008060006060848603121561343157600080fd5b600061343f868287016132ab565b9350506020613450868287016132ab565b9250506040613461868287016132ff565b9150509250925092565b6000806040838503121561347e57600080fd5b600061348c858286016132ab565b925050602061349d858286016132ea565b9150509250929050565b600080604083850312156134ba57600080fd5b60006134c8858286016132ab565b92505060206134d9858286016132ff565b9150509250929050565b6000602082840312156134f557600080fd5b6000613503848285016132ea565b91505092915050565b60006020828403121561351e57600080fd5b600061352c848285016132ff565b91505092915050565b60008060006060848603121561354a57600080fd5b600061355886828701613314565b935050602061356986828701613314565b925050604061357a86828701613314565b9150509250925092565b600061359083836135ba565b60208301905092915050565b6135a581614096565b82525050565b6135b48161404e565b82525050565b6135c38161403c565b82525050565b6135d28161403c565b82525050565b60006135e382613ee2565b6135ed8185613f05565b93506135f883613ed2565b8060005b838110156136295781516136108882613584565b975061361b83613ef8565b9250506001810190506135fc565b5085935050505092915050565b61363f81614060565b82525050565b61364e816140a8565b82525050565b600061365f82613eed565b6136698185613f16565b93506136798185602086016140de565b613682816141d0565b840191505092915050565b600061369a602383613f16565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613700602683613f16565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613766602283613f16565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137cc603983613f16565b91507f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008301527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006020830152604082019050919050565b6000613832602683613f16565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613898602883613f16565b91507f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008301527f78416d6f756e742e0000000000000000000000000000000000000000000000006020830152604082019050919050565b60006138fe603283613f16565b91507f45524332303a207472616e73666572656420616d6f756e74206d75737420626560008301527f2067726561746572207468616e207a65726f00000000000000000000000000006020830152604082019050919050565b6000613964601d83613f16565b91507f43616e742074726164652c2074726164652069732064697361626c65640000006000830152602082019050919050565b60006139a4602883613f16565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a0a602083613f16565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000613a4a602583613f16565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613ab0602483613f16565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613b16601183613f16565b91507f4e6f20626f74732063616e2074726164650000000000000000000000000000006000830152602082019050919050565b613b528161408c565b82525050565b6000602082019050613b6d60008301846135c9565b92915050565b6000602082019050613b8860008301846135ab565b92915050565b600060c082019050613ba360008301896135c9565b613bb06020830188613b49565b613bbd6040830187613645565b613bca6060830186613645565b613bd760808301856135c9565b613be460a0830184613b49565b979650505050505050565b6000602082019050613c046000830184613636565b92915050565b60006020820190508181036000830152613c248184613654565b905092915050565b60006020820190508181036000830152613c458161368d565b9050919050565b60006020820190508181036000830152613c65816136f3565b9050919050565b60006020820190508181036000830152613c8581613759565b9050919050565b60006020820190508181036000830152613ca5816137bf565b9050919050565b60006020820190508181036000830152613cc581613825565b9050919050565b60006020820190508181036000830152613ce58161388b565b9050919050565b60006020820190508181036000830152613d05816138f1565b9050919050565b60006020820190508181036000830152613d2581613957565b9050919050565b60006020820190508181036000830152613d4581613997565b9050919050565b60006020820190508181036000830152613d65816139fd565b9050919050565b60006020820190508181036000830152613d8581613a3d565b9050919050565b60006020820190508181036000830152613da581613aa3565b9050919050565b60006020820190508181036000830152613dc581613b09565b9050919050565b6000602082019050613de16000830184613b49565b92915050565b600060a082019050613dfc6000830188613b49565b613e096020830187613645565b8181036040830152613e1b81866135d8565b9050613e2a606083018561359c565b613e376080830184613b49565b9695505050505050565b600060a082019050613e566000830188613b49565b613e636020830187613645565b8181036040830152613e7581866135d8565b9050613e8460608301856135c9565b613e916080830184613b49565b9695505050505050565b6000606082019050613eb06000830186613b49565b613ebd6020830185613b49565b613eca6040830184613b49565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f328261408c565b9150613f3d8361408c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f7257613f71614143565b5b828201905092915050565b6000613f888261408c565b9150613f938361408c565b925082613fa357613fa2614172565b5b828204905092915050565b6000613fb98261408c565b9150613fc48361408c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ffd57613ffc614143565b5b828202905092915050565b60006140138261408c565b915061401e8361408c565b92508282101561403157614030614143565b5b828203905092915050565b60006140478261406c565b9050919050565b60006140598261406c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006140a1826140ba565b9050919050565b60006140b38261408c565b9050919050565b60006140c5826140cc565b9050919050565b60006140d78261406c565b9050919050565b60005b838110156140fc5780820151818401526020810190506140e1565b8381111561410b576000848401525b50505050565b6000600282049050600182168061412957607f821691505b6020821081141561413d5761413c6141a1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6141ea8161403c565b81146141f557600080fd5b50565b6142018161404e565b811461420c57600080fd5b50565b61421881614060565b811461422357600080fd5b50565b61422f8161408c565b811461423a57600080fd5b5056fea26469706673582212204f55460198062e0cbee8d1e053a89fe7899b29f02118ef0a6bce0f60f4f803f464736f6c63430008000033
Deployed Bytecode
0x6080604052600436106102975760003560e01c80638da5cb5b1161015a578063bf9b0159116100c1578063d7d7442f1161007a578063d7d7442f146109ef578063d9bee35514610a18578063dd62ed3e14610a41578063ddcf9b9814610a7e578063e1370dd314610aa9578063f2fde38b14610ad45761029e565b8063bf9b0159146108e1578063bf9eb5401461090c578063cb66453414610935578063cba0e9961461095e578063d1294d4c1461099b578063d15bcf0f146109c45761029e565b8063a5ece94111610113578063a5ece941146107c1578063a6c38f59146107ec578063a7a0745214610815578063a9059cbb1461083e578063b4d95a931461087b578063b62496f5146108a45761029e565b80638da5cb5b146106c157806390f50283146106ec57806395d89b41146107175780639a7a23d6146107425780639b136da41461076b578063a04bdc81146107965761029e565b80634a0e963c116101fe5780636573c4df116101b75780636573c4df146105c55780636df3333a146105ee57806370a0823114610619578063715018a614610656578063801527ce1461066d578063893d20e8146106965761029e565b80634a0e963c146104c75780634a74bb02146104f05780634bd7ace51461051b5780635297defd146105465780635be76f111461057157806364c161631461059a5761029e565b806323b872dd1161025057806323b872dd146103b557806327c8f835146103f25780632d03420b1461041d578063313ce56714610446578063487a69051461047157806349bd5a5e1461049c5761029e565b8063024f5381146102a357806306fdde03146102cc578063095ea7b3146102f757806318160ddd14610334578063220f66961461035f57806322788f861461038a5761029e565b3661029e57005b600080fd5b3480156102af57600080fd5b506102ca60048036038101906102c5919061350c565b610afd565b005b3480156102d857600080fd5b506102e1610b83565b6040516102ee9190613c0a565b60405180910390f35b34801561030357600080fd5b5061031e600480360381019061031991906134a7565b610c15565b60405161032b9190613bef565b60405180910390f35b34801561034057600080fd5b50610349610c33565b6040516103569190613dcc565b60405180910390f35b34801561036b57600080fd5b50610374610c3d565b6040516103819190613bef565b60405180910390f35b34801561039657600080fd5b5061039f610c50565b6040516103ac9190613dcc565b60405180910390f35b3480156103c157600080fd5b506103dc60048036038101906103d7919061341c565b610c5a565b6040516103e99190613bef565b60405180910390f35b3480156103fe57600080fd5b50610407610dd8565b6040516104149190613b58565b60405180910390f35b34801561042957600080fd5b50610444600480360381019061043f91906134e3565b610dfc565b005b34801561045257600080fd5b5061045b610e95565b6040516104689190613dcc565b60405180910390f35b34801561047d57600080fd5b50610486610eaf565b6040516104939190613dcc565b60405180910390f35b3480156104a857600080fd5b506104b1610eb9565b6040516104be9190613b58565b60405180910390f35b3480156104d357600080fd5b506104ee60048036038101906104e99190613329565b610edf565b005b3480156104fc57600080fd5b50610505610fb6565b6040516105129190613bef565b60405180910390f35b34801561052757600080fd5b50610530610fc9565b60405161053d9190613dcc565b60405180910390f35b34801561055257600080fd5b5061055b610fd3565b6040516105689190613dcc565b60405180910390f35b34801561057d57600080fd5b506105986004803603810190610593919061337b565b610fdd565b005b3480156105a657600080fd5b506105af6110a9565b6040516105bc9190613dcc565b60405180910390f35b3480156105d157600080fd5b506105ec60048036038101906105e7919061350c565b6110b3565b005b3480156105fa57600080fd5b5061060361115b565b6040516106109190613dcc565b60405180910390f35b34801561062557600080fd5b50610640600480360381019061063b9190613329565b611165565b60405161064d9190613dcc565b60405180910390f35b34801561066257600080fd5b5061066b6111ae565b005b34801561067957600080fd5b50610694600480360381019061068f91906134e3565b611236565b005b3480156106a257600080fd5b506106ab6112cf565b6040516106b89190613b58565b60405180910390f35b3480156106cd57600080fd5b506106d66112de565b6040516106e39190613b58565b60405180910390f35b3480156106f857600080fd5b50610701611307565b60405161070e9190613dcc565b60405180910390f35b34801561072357600080fd5b5061072c611311565b6040516107399190613c0a565b60405180910390f35b34801561074e57600080fd5b506107696004803603810190610764919061346b565b6113a3565b005b34801561077757600080fd5b506107806114be565b60405161078d9190613dcc565b60405180910390f35b3480156107a257600080fd5b506107ab6114c8565b6040516107b89190613dcc565b60405180910390f35b3480156107cd57600080fd5b506107d66114ce565b6040516107e39190613b73565b60405180910390f35b3480156107f857600080fd5b50610813600480360381019061080e91906133a4565b6114f4565b005b34801561082157600080fd5b5061083c6004803603810190610837919061350c565b6115cb565b005b34801561084a57600080fd5b50610865600480360381019061086091906134a7565b611673565b6040516108729190613bef565b60405180910390f35b34801561088757600080fd5b506108a2600480360381019061089d9190613329565b611691565b005b3480156108b057600080fd5b506108cb60048036038101906108c69190613329565b611768565b6040516108d89190613bef565b60405180910390f35b3480156108ed57600080fd5b506108f6611788565b6040516109039190613dcc565b60405180910390f35b34801561091857600080fd5b50610933600480360381019061092e9190613329565b611792565b005b34801561094157600080fd5b5061095c60048036038101906109579190613329565b611852565b005b34801561096a57600080fd5b5061098560048036038101906109809190613329565b611929565b6040516109929190613bef565b60405180910390f35b3480156109a757600080fd5b506109c260048036038101906109bd919061350c565b61197f565b005b3480156109d057600080fd5b506109d9611a28565b6040516109e69190613bef565b60405180910390f35b3480156109fb57600080fd5b50610a166004803603810190610a11919061350c565b611a3f565b005b348015610a2457600080fd5b50610a3f6004803603810190610a3a919061350c565b611ac5565b005b348015610a4d57600080fd5b50610a686004803603810190610a6391906133e0565b611b4b565b604051610a759190613dcc565b60405180910390f35b348015610a8a57600080fd5b50610a93611bd2565b604051610aa09190613dcc565b60405180910390f35b348015610ab557600080fd5b50610abe611bdc565b604051610acb9190613dcc565b60405180910390f35b348015610ae057600080fd5b50610afb6004803603810190610af69190613329565b611be6565b005b610b05611cde565b73ffffffffffffffffffffffffffffffffffffffff16610b236112de565b73ffffffffffffffffffffffffffffffffffffffff1614610b79576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7090613d4c565b60405180910390fd5b80601e8190555050565b606060018054610b9290614111565b80601f0160208091040260200160405190810160405280929190818152602001828054610bbe90614111565b8015610c0b5780601f10610be057610100808354040283529160200191610c0b565b820191906000526020600020905b815481529060010190602001808311610bee57829003601f168201915b5050505050905090565b6000610c29610c22611cde565b8484611ce6565b6001905092915050565b6000600954905090565b602060009054906101000a900460ff1681565b6000600854905090565b6000600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610ca5611cde565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054821115610d22576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d1990613d2c565b60405180910390fd5b610d2d848484611eb1565b610dcd84610d39611cde565b84600d60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610d83611cde565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610dc89190614008565b611ce6565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b610e04611cde565b73ffffffffffffffffffffffffffffffffffffffff16610e226112de565b73ffffffffffffffffffffffffffffffffffffffff1614610e78576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6f90613d4c565b60405180910390fd5b80601b60006101000a81548160ff02191690831515021790555050565b6000600360009054906101000a900460ff1660ff16905090565b6000600a54905090565b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610ee7611cde565b73ffffffffffffffffffffffffffffffffffffffff16610f056112de565b73ffffffffffffffffffffffffffffffffffffffff1614610f5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f5290613d4c565b60405180910390fd5b6001600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b602060019054906101000a900460ff1681565b6000601754905090565b6000601e54905090565b610fe5611cde565b73ffffffffffffffffffffffffffffffffffffffff166110036112de565b73ffffffffffffffffffffffffffffffffffffffff1614611059576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161105090613d4c565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f193505050501580156110a4573d6000803e3d6000fd5b505050565b6000602254905090565b6110bb611cde565b73ffffffffffffffffffffffffffffffffffffffff166110d96112de565b73ffffffffffffffffffffffffffffffffffffffff161461112f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112690613d4c565b60405180910390fd5b8060058190555060646005546009546111489190613fae565b6111529190613f7d565b60118190555050565b6000600754905090565b6000600b60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111b6611cde565b73ffffffffffffffffffffffffffffffffffffffff166111d46112de565b73ffffffffffffffffffffffffffffffffffffffff161461122a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122190613d4c565b60405180910390fd5b611234600061296e565b565b61123e611cde565b73ffffffffffffffffffffffffffffffffffffffff1661125c6112de565b73ffffffffffffffffffffffffffffffffffffffff16146112b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a990613d4c565b60405180910390fd5b80602060016101000a81548160ff02191690831515021790555050565b60006112d96112de565b905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601c54905090565b60606002805461132090614111565b80601f016020809104026020016040519081016040528092919081815260200182805461134c90614111565b80156113995780601f1061136e57610100808354040283529160200191611399565b820191906000526020600020905b81548152906001019060200180831161137c57829003601f168201915b5050505050905090565b6113ab611cde565b73ffffffffffffffffffffffffffffffffffffffff166113c96112de565b73ffffffffffffffffffffffffffffffffffffffff161461141f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161141690613d4c565b60405180910390fd5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156114b0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a790613c8c565b60405180910390fd5b6114ba8282612a32565b5050565b6000601954905090565b600a5481565b601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6114fc611cde565b73ffffffffffffffffffffffffffffffffffffffff1661151a6112de565b73ffffffffffffffffffffffffffffffffffffffff1614611570576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161156790613d4c565b60405180910390fd5b80601360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6115d3611cde565b73ffffffffffffffffffffffffffffffffffffffff166115f16112de565b73ffffffffffffffffffffffffffffffffffffffff1614611647576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163e90613d4c565b60405180910390fd5b8060068190555060646006546009546116609190613fae565b61166a9190613f7d565b60128190555050565b6000611687611680611cde565b8484611eb1565b6001905092915050565b611699611cde565b73ffffffffffffffffffffffffffffffffffffffff166116b76112de565b73ffffffffffffffffffffffffffffffffffffffff161461170d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161170490613d4c565b60405180910390fd5b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600e6020528060005260406000206000915054906101000a900460ff1681565b6000601254905090565b61179a611cde565b73ffffffffffffffffffffffffffffffffffffffff166117b86112de565b73ffffffffffffffffffffffffffffffffffffffff161461180e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180590613d4c565b60405180910390fd5b80601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b61185a611cde565b73ffffffffffffffffffffffffffffffffffffffff166118786112de565b73ffffffffffffffffffffffffffffffffffffffff16146118ce576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118c590613d4c565b60405180910390fd5b6001601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611987611cde565b73ffffffffffffffffffffffffffffffffffffffff166119a56112de565b73ffffffffffffffffffffffffffffffffffffffff16146119fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119f290613d4c565b60405180910390fd5b806007819055506103e8600754600954611a159190613fae565b611a1f9190613f7d565b600a8190555050565b6000601b60009054906101000a900460ff16905090565b611a47611cde565b73ffffffffffffffffffffffffffffffffffffffff16611a656112de565b73ffffffffffffffffffffffffffffffffffffffff1614611abb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ab290613d4c565b60405180910390fd5b8060088190555050565b611acd611cde565b73ffffffffffffffffffffffffffffffffffffffff16611aeb6112de565b73ffffffffffffffffffffffffffffffffffffffff1614611b41576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b3890613d4c565b60405180910390fd5b8060178190555050565b6000600d60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000602154905090565b6000601154905090565b611bee611cde565b73ffffffffffffffffffffffffffffffffffffffff16611c0c6112de565b73ffffffffffffffffffffffffffffffffffffffff1614611c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5990613d4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611cd2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc990613c4c565b60405180910390fd5b611cdb8161296e565b50565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d4d90613d8c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611dc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dbd90613c6c565b60405180910390fd5b80600d60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92583604051611ea49190613dcc565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611f21576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1890613d6c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611f91576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f8890613c2c565b60405180910390fd5b60008111611fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fcb90613cec565b60405180910390fd5b6000600b60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613cac565b60405180910390fd5b60001515601b60009054906101000a900460ff161515141561215857601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806121185750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612157576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161214e90613d0c565b60405180910390fd5b5b60001515601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515148015612208575060001515601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b156122cc57601254821115612252576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161224990613ccc565b60405180910390fd5b602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614156122cb57601154826122b585611165565b6122bf9190613f27565b11156122ca57600080fd5b5b5b60006122d730611165565b9050600a5481101580156122f85750602060009054906101000a900460ff16155b80156123525750602460009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b801561236a5750602060019054906101000a900460ff165b1561238857600a54811061238757600a54905061238681612ad3565b5b5b600060019050600c60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168061242f5750600c60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612441576000600481905550600090505b600080821561273d5760011515601360008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514806124f9575060011515601360008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15612539576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161253090613dac565b60405180910390fd5b600e60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156125e05750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b1561263c5760006004819055506064601e54876125fd9190613fae565b6126079190613f7d565b91506064601c54876126199190613fae565b6126239190613f7d565b905080826126319190613f27565b60048190555061273c565b600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156126e35750602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b1561273b5760006004819055506064601954876127009190613fae565b61270a9190613f7d565b915060646017548761271c9190613fae565b6127269190613f7d565b905080826127349190613f27565b6004819055505b5b5b85856127499190614008565b600b60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508082876127999190614008565b6127a39190614008565b600b60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546127f19190613f27565b92505081905550600081146128f257600454600b60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546128519190613f27565b92505081905550806022600082825461286a9190613f27565b9250508190555081602160008282546128839190613f27565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516128e99190613dcc565b60405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004548961294f9190614008565b60405161295c9190613dcc565b60405180910390a35050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6001602060006101000a81548160ff021916908315150217905550612af9602254612b69565b612b04602154612bf4565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f0190481604051612b339190613dcc565b60405180910390a1600060218190555060006022819055506000602060006101000a81548160ff02191690831515021790555050565b6000600282612b789190613f7d565b905060008183612b889190614008565b90506000479050612b9883612eda565b60008147612ba69190614008565b9050612bb2838261319e565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb561848285604051612be593929190613e9b565b60405180910390a15050505050565b6000600267ffffffffffffffff811115612c37577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612c655781602001602082028036833780820191505090505b5090503081600081518110612ca3577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b158015612d4557600080fd5b505afa158015612d59573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612d7d9190613352565b81600181518110612db7577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612e1e30602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce6565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b8152600401612ea4959493929190613de7565b600060405180830381600087803b158015612ebe57600080fd5b505af1158015612ed2573d6000803e3d6000fd5b505050505050565b6000600267ffffffffffffffff811115612f1d577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051908082528060200260200182016040528015612f4b5781602001602082028036833780820191505090505b5090503081600081518110612f89577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561302b57600080fd5b505afa15801561303f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906130639190613352565b8160018151811061309d577f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061310430602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce6565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613168959493929190613e41565b600060405180830381600087803b15801561318257600080fd5b505af1158015613196573d6000803e3d6000fd5b505050505050565b6131cb30602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684611ce6565b602360009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000807f000000000000000000000000000000000000000000000000000000000000dead426040518863ffffffff1660e01b815260040161325296959493929190613b8e565b6060604051808303818588803b15801561326b57600080fd5b505af115801561327f573d6000803e3d6000fd5b50505050506040513d601f19601f820116820180604052508101906132a49190613535565b5050505050565b6000813590506132ba816141e1565b92915050565b6000815190506132cf816141e1565b92915050565b6000813590506132e4816141f8565b92915050565b6000813590506132f98161420f565b92915050565b60008135905061330e81614226565b92915050565b60008151905061332381614226565b92915050565b60006020828403121561333b57600080fd5b6000613349848285016132ab565b91505092915050565b60006020828403121561336457600080fd5b6000613372848285016132c0565b91505092915050565b60006020828403121561338d57600080fd5b600061339b848285016132d5565b91505092915050565b600080604083850312156133b757600080fd5b60006133c5858286016132d5565b92505060206133d6858286016132ea565b9150509250929050565b600080604083850312156133f357600080fd5b6000613401858286016132ab565b9250506020613412858286016132ab565b9150509250929050565b60008060006060848603121561343157600080fd5b600061343f868287016132ab565b9350506020613450868287016132ab565b9250506040613461868287016132ff565b9150509250925092565b6000806040838503121561347e57600080fd5b600061348c858286016132ab565b925050602061349d858286016132ea565b9150509250929050565b600080604083850312156134ba57600080fd5b60006134c8858286016132ab565b92505060206134d9858286016132ff565b9150509250929050565b6000602082840312156134f557600080fd5b6000613503848285016132ea565b91505092915050565b60006020828403121561351e57600080fd5b600061352c848285016132ff565b91505092915050565b60008060006060848603121561354a57600080fd5b600061355886828701613314565b935050602061356986828701613314565b925050604061357a86828701613314565b9150509250925092565b600061359083836135ba565b60208301905092915050565b6135a581614096565b82525050565b6135b48161404e565b82525050565b6135c38161403c565b82525050565b6135d28161403c565b82525050565b60006135e382613ee2565b6135ed8185613f05565b93506135f883613ed2565b8060005b838110156136295781516136108882613584565b975061361b83613ef8565b9250506001810190506135fc565b5085935050505092915050565b61363f81614060565b82525050565b61364e816140a8565b82525050565b600061365f82613eed565b6136698185613f16565b93506136798185602086016140de565b613682816141d0565b840191505092915050565b600061369a602383613f16565b91507f45524332303a207472616e7366657220746f20746865207a65726f206164647260008301527f65737300000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613700602683613f16565b91507f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008301527f64647265737300000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613766602283613f16565b91507f45524332303a20617070726f766520746f20746865207a65726f20616464726560008301527f73730000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b60006137cc603983613f16565b91507f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008301527f6175746f6d617465644d61726b65744d616b65725061697273000000000000006020830152604082019050919050565b6000613832602683613f16565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206260008301527f616c616e636500000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613898602883613f16565b91507f5472616e7366657220616d6f756e74206578636565647320746865206d61785460008301527f78416d6f756e742e0000000000000000000000000000000000000000000000006020830152604082019050919050565b60006138fe603283613f16565b91507f45524332303a207472616e73666572656420616d6f756e74206d75737420626560008301527f2067726561746572207468616e207a65726f00000000000000000000000000006020830152604082019050919050565b6000613964601d83613f16565b91507f43616e742074726164652c2074726164652069732064697361626c65640000006000830152602082019050919050565b60006139a4602883613f16565b91507f45524332303a207472616e7366657220616d6f756e742065786365656473206160008301527f6c6c6f77616e63650000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613a0a602083613f16565b91507f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726000830152602082019050919050565b6000613a4a602583613f16565b91507f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008301527f64726573730000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613ab0602483613f16565b91507f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008301527f72657373000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000613b16601183613f16565b91507f4e6f20626f74732063616e2074726164650000000000000000000000000000006000830152602082019050919050565b613b528161408c565b82525050565b6000602082019050613b6d60008301846135c9565b92915050565b6000602082019050613b8860008301846135ab565b92915050565b600060c082019050613ba360008301896135c9565b613bb06020830188613b49565b613bbd6040830187613645565b613bca6060830186613645565b613bd760808301856135c9565b613be460a0830184613b49565b979650505050505050565b6000602082019050613c046000830184613636565b92915050565b60006020820190508181036000830152613c248184613654565b905092915050565b60006020820190508181036000830152613c458161368d565b9050919050565b60006020820190508181036000830152613c65816136f3565b9050919050565b60006020820190508181036000830152613c8581613759565b9050919050565b60006020820190508181036000830152613ca5816137bf565b9050919050565b60006020820190508181036000830152613cc581613825565b9050919050565b60006020820190508181036000830152613ce58161388b565b9050919050565b60006020820190508181036000830152613d05816138f1565b9050919050565b60006020820190508181036000830152613d2581613957565b9050919050565b60006020820190508181036000830152613d4581613997565b9050919050565b60006020820190508181036000830152613d65816139fd565b9050919050565b60006020820190508181036000830152613d8581613a3d565b9050919050565b60006020820190508181036000830152613da581613aa3565b9050919050565b60006020820190508181036000830152613dc581613b09565b9050919050565b6000602082019050613de16000830184613b49565b92915050565b600060a082019050613dfc6000830188613b49565b613e096020830187613645565b8181036040830152613e1b81866135d8565b9050613e2a606083018561359c565b613e376080830184613b49565b9695505050505050565b600060a082019050613e566000830188613b49565b613e636020830187613645565b8181036040830152613e7581866135d8565b9050613e8460608301856135c9565b613e916080830184613b49565b9695505050505050565b6000606082019050613eb06000830186613b49565b613ebd6020830185613b49565b613eca6040830184613b49565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000613f328261408c565b9150613f3d8361408c565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613f7257613f71614143565b5b828201905092915050565b6000613f888261408c565b9150613f938361408c565b925082613fa357613fa2614172565b5b828204905092915050565b6000613fb98261408c565b9150613fc48361408c565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613ffd57613ffc614143565b5b828202905092915050565b60006140138261408c565b915061401e8361408c565b92508282101561403157614030614143565b5b828203905092915050565b60006140478261406c565b9050919050565b60006140598261406c565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006140a1826140ba565b9050919050565b60006140b38261408c565b9050919050565b60006140c5826140cc565b9050919050565b60006140d78261406c565b9050919050565b60005b838110156140fc5780820151818401526020810190506140e1565b8381111561410b576000848401525b50505050565b6000600282049050600182168061412957607f821691505b6020821081141561413d5761413c6141a1565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000601f19601f8301169050919050565b6141ea8161403c565b81146141f557600080fd5b50565b6142018161404e565b811461420c57600080fd5b50565b61421881614060565b811461422357600080fd5b50565b61422f8161408c565b811461423a57600080fd5b5056fea26469706673582212204f55460198062e0cbee8d1e053a89fe7899b29f02118ef0a6bce0f60f4f803f464736f6c63430008000033
Deployed Bytecode Sourcemap
5265:12783:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17353:93;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9414:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9181:154;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8669:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6868:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10770:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9887:363;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6942:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14660;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9337:75;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17949:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7404:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16194:103;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6899:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10409:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10679:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;14494:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8578:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9726:159;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17859:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8767:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4711:85;;;;;;;;;;;;;:::i;:::-;;16511:104;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8408:77;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4143:78;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10588:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9492:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16855:228;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10498:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5786:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6113:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10286:121;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9576:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8878:160;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16299:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6035:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17538:80;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16638:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;13975:107;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10864:109;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17620:150;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17772:85;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16408:101;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17259:92;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9040:139;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8487:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17448:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4926:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17353:93;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17433:9:::1;17421:10;:21;;;;17353:93:::0;:::o;9414:76::-;9453:13;9481:5;9474:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9414:76;:::o;9181:154::-;9258:4;9273:37;9282:12;:10;:12::i;:::-;9295:7;9303:6;9273:8;:37::i;:::-;9327:4;9320:11;;9181:154;;;;:::o;8669:96::-;8724:7;8749:12;;8742:19;;8669:96;:::o;6868:28::-;;;;;;;;;;;;;:::o;10770:92::-;10821:7;10842:16;;10835:23;;10770:92;:::o;9887:363::-;10000:4;10029:11;:19;10041:6;10029:19;;;;;;;;;;;;;;;:33;10049:12;:10;:12::i;:::-;10029:33;;;;;;;;;;;;;;;;10019:6;:43;;10011:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;10113:36;10123:6;10131:9;10142:6;10113:9;:36::i;:::-;10155:74;10164:6;10172:12;:10;:12::i;:::-;10222:6;10186:11;:19;10198:6;10186:19;;;;;;;;;;;;;;;:33;10206:12;:10;:12::i;:::-;10186:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;10155:8;:74::i;:::-;10242:4;10235:11;;9887:363;;;;;:::o;6942:81::-;;;:::o;14660:::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14731:6:::1;14716:12;;:21;;;;;;;;;;;;;;;;;;14660:81:::0;:::o;9337:75::-;9378:7;9399:9;;;;;;;;;;;9392:16;;;;9337:75;:::o;17949:96::-;18000:7;18021:20;;18014:27;;17949:96;:::o;7404:28::-;;;;;;;;;;;;;:::o;16194:103::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16289:4:::1;16258:17;:28;16276:9;16258:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16194:103:::0;:::o;6899:40::-;;;;;;;;;;;;;:::o;10409:87::-;10458:7;10483:9;;10476:16;;10409:87;:::o;10679:89::-;10729:7;10754:10;;10747:17;;10679:89;:::o;14494:164::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14565:18:::1;14586:21;14565:42;;14621:11;14613:29;;:41;14643:10;14613:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;4395:1;14494:164:::0;:::o;8578:89::-;8629:7;8654:9;;8647:16;;8578:89;:::o;9726:159::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9817:6:::1;9797:17;:26;;;;9878:3;9860:17;;9847:12;;:30;;;;:::i;:::-;:34;;;;:::i;:::-;9829:15;:52;;;;9726:159:::0;:::o;17859:88::-;17910:7;17931:12;;17924:19;;17859:88;:::o;8767:109::-;8833:7;8854:9;:18;8864:7;8854:18;;;;;;;;;;;;;;;;8847:25;;8767:109;;;:::o;4711:85::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4771:21:::1;4789:1;4771:9;:21::i;:::-;4711:85::o:0;16511:104::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16603:8:::1;16579:21;;:32;;;;;;;;;;;;;;;;;;16511:104:::0;:::o;8408:77::-;8449:7;8474;:5;:7::i;:::-;8467:14;;8408:77;:::o;4143:78::-;4189:7;4211:6;;;;;;;;;;;4204:13;;4143:78;:::o;10588:89::-;10638:7;10663:10;;10656:17;;10588:89;:::o;9492:79::-;9533:13;9560:7;9553:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;9492:79;:::o;16855:228::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16957:13:::1;;;;;;;;;;;16949:21;;:4;:21;;;;16941:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17038:41;17067:4;17073:5;17038:28;:41::i;:::-;16855:228:::0;;:::o;10498:87::-;10547:7;10572:9;;10565:16;;10498:87;:::o;5786:71::-;;;;:::o;6113:93::-;;;;;;;;;;;;;:::o;10286:121::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10398:5:::1;10372:10;:23;10383:11;10372:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;10286:121:::0;;:::o;9576:148::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9659:6:::1;9643:13;:22;;;;9712:3;9698:13;;9685:12;;:26;;;;:::i;:::-;:30;;;;:::i;:::-;9671:11;:44;;;;9576:148:::0;:::o;8878:160::-;8958:4;8973:40;8983:12;:10;:12::i;:::-;8996:9;9006:6;8973:9;:40::i;:::-;9030:4;9023:11;;8878:160;;;;:::o;16299:107::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16397:5:::1;16367:17;:27;16385:8;16367:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;16299:107:::0;:::o;6035:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;17538:80::-;17582:7;17603:11;;17596:18;;17538:80;:::o;16638:109::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16732:10:::1;16705:16;;:38;;;;;;;;;;;;;;;;;;16638:109:::0;:::o;13975:107::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;14074:4:::1;14042:17;:29;14060:10;14042:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;13975:107:::0;:::o;10864:109::-;10921:4;10943:17;:26;10961:7;10943:26;;;;;;;;;;;;;;;;;;;;;;;;;10936:33;;10864:109;;;:::o;17620:150::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17701:6:::1;17686:12;:21;;;;17762:4;17749:12;;17736;;:25;;;;:::i;:::-;:30;;;;:::i;:::-;17713:20;:53;;;;17620:150:::0;:::o;17772:85::-;17823:4;17841:12;;;;;;;;;;;17834:19;;17772:85;:::o;16408:101::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16493:12:::1;16474:16;:31;;;;16408:101:::0;:::o;17259:92::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17338:9:::1;17326;:21;;;;17259:92:::0;:::o;9040:139::-;9123:7;9148:11;:18;9160:5;9148:18;;;;;;;;;;;;;;;:27;9167:7;9148:27;;;;;;;;;;;;;;;;9141:34;;9040:139;;;;:::o;8487:89::-;8538:7;8563:9;;8556:16;;8487:89;:::o;17448:88::-;17496:7;17517:15;;17510:22;;17448:88;:::o;4926:178::-;4340:12;:10;:12::i;:::-;4329:23;;:7;:5;:7::i;:::-;:23;;;4321:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5030:1:::1;5010:22;;:8;:22;;;;5002:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5081:19;5091:8;5081:9;:19::i;:::-;4926:178:::0;:::o;498:89::-;551:7;573:10;566:17;;498:89;:::o;15856:310::-;15960:1;15943:19;;:5;:19;;;;15935:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16036:1;16017:21;;:7;:21;;;;16009:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16113:6;16083:11;:18;16095:5;16083:18;;;;;;;;;;;;;;;:27;16102:7;16083:27;;;;;;;;;;;;;;;:36;;;;16146:7;16130:32;;16139:5;16130:32;;;16155:6;16130:32;;;;;;:::i;:::-;;;;;;;;15856:310;;;:::o;10975:2763::-;11075:1;11059:18;;:4;:18;;;;11051:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11147:1;11133:16;;:2;:16;;;;11125:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11212:1;11203:6;:10;11195:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;11273:21;11297:9;:15;11307:4;11297:15;;;;;;;;;;;;;;;;11273:39;;11343:6;11326:13;:23;;11318:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11417:5;11401:21;;:12;;;;;;;;;;;:21;;;11398:131;;;11441:17;:21;11459:2;11441:21;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;11466:17;:23;11484:4;11466:23;;;;;;;;;;;;;;;;;;;;;;;;;11441:48;11433:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;11398:131;11560:5;11537:28;;:17;:21;11555:2;11537:21;;;;;;;;;;;;;;;;;;;;;;;;;:28;;;:62;;;;;11594:5;11569:30;;:17;:23;11587:4;11569:23;;;;;;;;;;;;;;;;;;;;;;;;;:30;;;11537:62;11534:257;;;11624:11;;11614:6;:21;;11606:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;11698:13;;;;;;;;;;;11690:21;;:4;:21;;;11687:98;;;11758:15;;11748:6;11734:13;11744:2;11734:9;:13::i;:::-;:20;;;;:::i;:::-;:39;;11726:48;;;;;;11687:98;11534:257;11796:25;11824:24;11842:4;11824:9;:24::i;:::-;11796:52;;11877:20;;11857:17;:40;;:69;;;;;11910:16;;;;;;;;;;;11909:17;11857:69;:102;;;;;11946:13;;;;;;;;;;;11938:21;;:4;:21;;;;11857:102;:135;;;;;11971:21;;;;;;;;;;;11857:135;11854:336;;;12031:20;;12010:17;:41;12007:173;;12091:20;;12071:40;;12129:36;12147:17;12129;:36::i;:::-;12007:173;11854:336;12199:13;12215:4;12199:20;;12240:17;:23;12258:4;12240:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;12267:17;:21;12285:2;12267:21;;;;;;;;;;;;;;;;;;;;;;;;;12240:48;12237:132;;;12320:1;12304:13;:17;;;;12346:5;12335:16;;12237:132;12378:17;12409;12480:8;12477:844;;;12565:4;12545:24;;:10;:16;12556:4;12545:16;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;:46;;;;12587:4;12571:20;;:10;:14;12582:2;12571:14;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;12545:46;12542:110;;;12610:27;;;;;;;;;;:::i;:::-;;;;;;;;12542:110;12696:25;:29;12722:2;12696:29;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;;12743:7;;;;;;;;;;;12729:22;;:2;:22;;;;12696:55;12692:611;;;12791:1;12775:13;:17;;;;12846:3;12835:10;;12826:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;12814:35;;12903:3;12892:10;;12883:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;12871:35;;12956:9;12944;:21;;;;:::i;:::-;12928:13;:37;;;;12692:611;;;13024:25;:31;13050:4;13024:31;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;13075:7;;;;;;;;;;;13059:24;;:4;:24;;;;13024:59;13021:282;;;13127:1;13111:13;:17;;;;13177:3;13167:9;;13158:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;13146:34;;13229:3;13219:9;;13210:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;13198:34;;13278:9;13266;:21;;;;:::i;:::-;13250:13;:37;;;;13021:282;12692:611;12477:844;13364:6;13348:13;:22;;;;:::i;:::-;13330:9;:15;13340:4;13330:15;;;;;;;;;;;;;;;:40;;;;13418:9;13406;13397:6;:18;;;;:::i;:::-;:30;;;;:::i;:::-;13380:9;:13;13390:2;13380:13;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;13451:1;13438:9;:14;13435:242;;13492:13;;13464:9;:24;13482:4;13464:24;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;13562:9;13549;;:22;;;;;;;:::i;:::-;;;;;;;;13594:9;13581;;:22;;;;;;;:::i;:::-;;;;;;;;13641:4;13618:44;;13627:4;13618:44;;;13648:13;;13618:44;;;;;;:::i;:::-;;;;;;;;13435:242;13706:2;13691:39;;13700:4;13691:39;;;13716:13;;13709:6;:20;;;;:::i;:::-;13691:39;;;;;;:::i;:::-;;;;;;;;10975:2763;;;;;;;;:::o;5106:154::-;5157:16;5176:6;;;;;;;;;;;5157:25;;5197:8;5188:6;;:17;;;;;;;;;;;;;;;;;;5247:8;5216:40;;5237:8;5216:40;;;;;;;;;;;;5106:154;;:::o;17085:172::-;17197:5;17163:25;:31;17189:4;17163:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17247:5;17213:40;;17241:4;17213:40;;;;;;;;;;;;17085:172;;:::o;13740:233::-;7500:4;7481:16;;:23;;;;;;;;;;;;;;;;;;13815:25:::1;13830:9;;13815:14;:25::i;:::-;13846:30;13866:9;;13846:19;:30::i;:::-;13887:44;13917:13;13887:44;;;;;;:::i;:::-;;;;;;;;13949:1;13937:9;:13;;;;13968:1;13956:9;:13;;;;7536:5:::0;7517:16;;:24;;;;;;;;;;;;;;;;;;13740:233;:::o;14743:389::-;14806:12;14839:1;14821:15;:19;;;;:::i;:::-;14806:34;;14846:17;14884:4;14866:15;:22;;;;:::i;:::-;14846:42;;14894:22;14919:21;14894:46;;14946:22;14963:4;14946:16;:22::i;:::-;14974:18;15020:14;14995:21;:40;;;;:::i;:::-;14974:61;;15041:35;15054:9;15065:10;15041:12;:35::i;:::-;15087:41;15102:4;15107:10;15118:9;15087:41;;;;;;;;:::i;:::-;;;;;;;;14743:389;;;;;:::o;14084:408::-;14142:21;14180:1;14166:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14142:40;;14206:4;14188;14193:1;14188:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;14227:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;14217:4;14222:1;14217:7;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;14247:49;14264:4;14279:7;;;;;;;;;;;14289:6;14247:8;:49::i;:::-;14303:7;;;;;;;;;;;:58;;;14371:6;14387:1;14427:4;14441:16;;;;;;;;;;;14467:15;14303:185;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14084:408;;:::o;15134:417::-;15194:21;15232:1;15218:16;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15194:40;;15258:4;15240;15245:1;15240:7;;;;;;;;;;;;;;;;;;;;;:23;;;;;;;;;;;15279:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;15269:4;15274:1;15269:7;;;;;;;;;;;;;;;;;;;;;:24;;;;;;;;;;;15299:54;15316:4;15331:7;;;;;;;;;;;15341:11;15299:8;:54::i;:::-;15360:7;;;;;;;;;;;:58;;;15428:11;15449:1;15489:4;15511;15526:15;15360:187;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;15134:417;;:::o;15553:301::-;15627:54;15644:4;15659:7;;;;;;;;;;;15669:11;15627:8;:54::i;:::-;15687:7;;;;;;;;;;;:23;;;15717:9;15745:4;15760:11;15781:1;15792;15803:11;15829:15;15687:163;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;15553:301;;:::o;7:139:1:-;;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;59:87;;;;:::o;152:143::-;;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;215:80;;;;:::o;301:155::-;;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;361:95;;;;:::o;462:133::-;;543:6;530:20;521:29;;559:30;583:5;559:30;:::i;:::-;511:84;;;;:::o;601:139::-;;685:6;672:20;663:29;;701:33;728:5;701:33;:::i;:::-;653:87;;;;:::o;746:143::-;;834:6;828:13;819:22;;850:33;877:5;850:33;:::i;:::-;809:80;;;;:::o;895:262::-;;1003:2;991:9;982:7;978:23;974:32;971:2;;;1019:1;1016;1009:12;971:2;1062:1;1087:53;1132:7;1123:6;1112:9;1108:22;1087:53;:::i;:::-;1077:63;;1033:117;961:196;;;;:::o;1163:284::-;;1282:2;1270:9;1261:7;1257:23;1253:32;1250:2;;;1298:1;1295;1288:12;1250:2;1341:1;1366:64;1422:7;1413:6;1402:9;1398:22;1366:64;:::i;:::-;1356:74;;1312:128;1240:207;;;;:::o;1453:278::-;;1569:2;1557:9;1548:7;1544:23;1540:32;1537:2;;;1585:1;1582;1575:12;1537:2;1628:1;1653:61;1706:7;1697:6;1686:9;1682:22;1653:61;:::i;:::-;1643:71;;1599:125;1527:204;;;;:::o;1737:417::-;;;1867:2;1855:9;1846:7;1842:23;1838:32;1835:2;;;1883:1;1880;1873:12;1835:2;1926:1;1951:61;2004:7;1995:6;1984:9;1980:22;1951:61;:::i;:::-;1941:71;;1897:125;2061:2;2087:50;2129:7;2120:6;2109:9;2105:22;2087:50;:::i;:::-;2077:60;;2032:115;1825:329;;;;;:::o;2160:407::-;;;2285:2;2273:9;2264:7;2260:23;2256:32;2253:2;;;2301:1;2298;2291:12;2253:2;2344:1;2369:53;2414:7;2405:6;2394:9;2390:22;2369:53;:::i;:::-;2359:63;;2315:117;2471:2;2497:53;2542:7;2533:6;2522:9;2518:22;2497:53;:::i;:::-;2487:63;;2442:118;2243:324;;;;;:::o;2573:552::-;;;;2715:2;2703:9;2694:7;2690:23;2686:32;2683:2;;;2731:1;2728;2721:12;2683:2;2774:1;2799:53;2844:7;2835:6;2824:9;2820:22;2799:53;:::i;:::-;2789:63;;2745:117;2901:2;2927:53;2972:7;2963:6;2952:9;2948:22;2927:53;:::i;:::-;2917:63;;2872:118;3029:2;3055:53;3100:7;3091:6;3080:9;3076:22;3055:53;:::i;:::-;3045:63;;3000:118;2673:452;;;;;:::o;3131:401::-;;;3253:2;3241:9;3232:7;3228:23;3224:32;3221:2;;;3269:1;3266;3259:12;3221:2;3312:1;3337:53;3382:7;3373:6;3362:9;3358:22;3337:53;:::i;:::-;3327:63;;3283:117;3439:2;3465:50;3507:7;3498:6;3487:9;3483:22;3465:50;:::i;:::-;3455:60;;3410:115;3211:321;;;;;:::o;3538:407::-;;;3663:2;3651:9;3642:7;3638:23;3634:32;3631:2;;;3679:1;3676;3669:12;3631:2;3722:1;3747:53;3792:7;3783:6;3772:9;3768:22;3747:53;:::i;:::-;3737:63;;3693:117;3849:2;3875:53;3920:7;3911:6;3900:9;3896:22;3875:53;:::i;:::-;3865:63;;3820:118;3621:324;;;;;:::o;3951:256::-;;4056:2;4044:9;4035:7;4031:23;4027:32;4024:2;;;4072:1;4069;4062:12;4024:2;4115:1;4140:50;4182:7;4173:6;4162:9;4158:22;4140:50;:::i;:::-;4130:60;;4086:114;4014:193;;;;:::o;4213:262::-;;4321:2;4309:9;4300:7;4296:23;4292:32;4289:2;;;4337:1;4334;4327:12;4289:2;4380:1;4405:53;4450:7;4441:6;4430:9;4426:22;4405:53;:::i;:::-;4395:63;;4351:117;4279:196;;;;:::o;4481:596::-;;;;4634:2;4622:9;4613:7;4609:23;4605:32;4602:2;;;4650:1;4647;4640:12;4602:2;4693:1;4718:64;4774:7;4765:6;4754:9;4750:22;4718:64;:::i;:::-;4708:74;;4664:128;4831:2;4857:64;4913:7;4904:6;4893:9;4889:22;4857:64;:::i;:::-;4847:74;;4802:129;4970:2;4996:64;5052:7;5043:6;5032:9;5028:22;4996:64;:::i;:::-;4986:74;;4941:129;4592:485;;;;;:::o;5083:179::-;;5173:46;5215:3;5207:6;5173:46;:::i;:::-;5251:4;5246:3;5242:14;5228:28;;5163:99;;;;:::o;5268:147::-;5363:45;5402:5;5363:45;:::i;:::-;5358:3;5351:58;5341:74;;:::o;5421:142::-;5524:32;5550:5;5524:32;:::i;:::-;5519:3;5512:45;5502:61;;:::o;5569:108::-;5646:24;5664:5;5646:24;:::i;:::-;5641:3;5634:37;5624:53;;:::o;5683:118::-;5770:24;5788:5;5770:24;:::i;:::-;5765:3;5758:37;5748:53;;:::o;5837:732::-;;5985:54;6033:5;5985:54;:::i;:::-;6055:86;6134:6;6129:3;6055:86;:::i;:::-;6048:93;;6165:56;6215:5;6165:56;:::i;:::-;6244:7;6275:1;6260:284;6285:6;6282:1;6279:13;6260:284;;;6361:6;6355:13;6388:63;6447:3;6432:13;6388:63;:::i;:::-;6381:70;;6474:60;6527:6;6474:60;:::i;:::-;6464:70;;6320:224;6307:1;6304;6300:9;6295:14;;6260:284;;;6264:14;6560:3;6553:10;;5961:608;;;;;;;:::o;6575:109::-;6656:21;6671:5;6656:21;:::i;:::-;6651:3;6644:34;6634:50;;:::o;6690:147::-;6785:45;6824:5;6785:45;:::i;:::-;6780:3;6773:58;6763:74;;:::o;6843:364::-;;6959:39;6992:5;6959:39;:::i;:::-;7014:71;7078:6;7073:3;7014:71;:::i;:::-;7007:78;;7094:52;7139:6;7134:3;7127:4;7120:5;7116:16;7094:52;:::i;:::-;7171:29;7193:6;7171:29;:::i;:::-;7166:3;7162:39;7155:46;;6935:272;;;;;:::o;7213:367::-;;7376:67;7440:2;7435:3;7376:67;:::i;:::-;7369:74;;7473:34;7469:1;7464:3;7460:11;7453:55;7539:5;7534:2;7529:3;7525:12;7518:27;7571:2;7566:3;7562:12;7555:19;;7359:221;;;:::o;7586:370::-;;7749:67;7813:2;7808:3;7749:67;:::i;:::-;7742:74;;7846:34;7842:1;7837:3;7833:11;7826:55;7912:8;7907:2;7902:3;7898:12;7891:30;7947:2;7942:3;7938:12;7931:19;;7732:224;;;:::o;7962:366::-;;8125:67;8189:2;8184:3;8125:67;:::i;:::-;8118:74;;8222:34;8218:1;8213:3;8209:11;8202:55;8288:4;8283:2;8278:3;8274:12;8267:26;8319:2;8314:3;8310:12;8303:19;;8108:220;;;:::o;8334:389::-;;8497:67;8561:2;8556:3;8497:67;:::i;:::-;8490:74;;8594:34;8590:1;8585:3;8581:11;8574:55;8660:27;8655:2;8650:3;8646:12;8639:49;8714:2;8709:3;8705:12;8698:19;;8480:243;;;:::o;8729:370::-;;8892:67;8956:2;8951:3;8892:67;:::i;:::-;8885:74;;8989:34;8985:1;8980:3;8976:11;8969:55;9055:8;9050:2;9045:3;9041:12;9034:30;9090:2;9085:3;9081:12;9074:19;;8875:224;;;:::o;9105:372::-;;9268:67;9332:2;9327:3;9268:67;:::i;:::-;9261:74;;9365:34;9361:1;9356:3;9352:11;9345:55;9431:10;9426:2;9421:3;9417:12;9410:32;9468:2;9463:3;9459:12;9452:19;;9251:226;;;:::o;9483:382::-;;9646:67;9710:2;9705:3;9646:67;:::i;:::-;9639:74;;9743:34;9739:1;9734:3;9730:11;9723:55;9809:20;9804:2;9799:3;9795:12;9788:42;9856:2;9851:3;9847:12;9840:19;;9629:236;;;:::o;9871:327::-;;10034:67;10098:2;10093:3;10034:67;:::i;:::-;10027:74;;10131:31;10127:1;10122:3;10118:11;10111:52;10189:2;10184:3;10180:12;10173:19;;10017:181;;;:::o;10204:372::-;;10367:67;10431:2;10426:3;10367:67;:::i;:::-;10360:74;;10464:34;10460:1;10455:3;10451:11;10444:55;10530:10;10525:2;10520:3;10516:12;10509:32;10567:2;10562:3;10558:12;10551:19;;10350:226;;;:::o;10582:330::-;;10745:67;10809:2;10804:3;10745:67;:::i;:::-;10738:74;;10842:34;10838:1;10833:3;10829:11;10822:55;10903:2;10898:3;10894:12;10887:19;;10728:184;;;:::o;10918:369::-;;11081:67;11145:2;11140:3;11081:67;:::i;:::-;11074:74;;11178:34;11174:1;11169:3;11165:11;11158:55;11244:7;11239:2;11234:3;11230:12;11223:29;11278:2;11273:3;11269:12;11262:19;;11064:223;;;:::o;11293:368::-;;11456:67;11520:2;11515:3;11456:67;:::i;:::-;11449:74;;11553:34;11549:1;11544:3;11540:11;11533:55;11619:6;11614:2;11609:3;11605:12;11598:28;11652:2;11647:3;11643:12;11636:19;;11439:222;;;:::o;11667:315::-;;11830:67;11894:2;11889:3;11830:67;:::i;:::-;11823:74;;11927:19;11923:1;11918:3;11914:11;11907:40;11973:2;11968:3;11964:12;11957:19;;11813:169;;;:::o;11988:118::-;12075:24;12093:5;12075:24;:::i;:::-;12070:3;12063:37;12053:53;;:::o;12112:222::-;;12243:2;12232:9;12228:18;12220:26;;12256:71;12324:1;12313:9;12309:17;12300:6;12256:71;:::i;:::-;12210:124;;;;:::o;12340:254::-;;12487:2;12476:9;12472:18;12464:26;;12500:87;12584:1;12573:9;12569:17;12560:6;12500:87;:::i;:::-;12454:140;;;;:::o;12600:807::-;;12887:3;12876:9;12872:19;12864:27;;12901:71;12969:1;12958:9;12954:17;12945:6;12901:71;:::i;:::-;12982:72;13050:2;13039:9;13035:18;13026:6;12982:72;:::i;:::-;13064:80;13140:2;13129:9;13125:18;13116:6;13064:80;:::i;:::-;13154;13230:2;13219:9;13215:18;13206:6;13154:80;:::i;:::-;13244:73;13312:3;13301:9;13297:19;13288:6;13244:73;:::i;:::-;13327;13395:3;13384:9;13380:19;13371:6;13327:73;:::i;:::-;12854:553;;;;;;;;;:::o;13413:210::-;;13538:2;13527:9;13523:18;13515:26;;13551:65;13613:1;13602:9;13598:17;13589:6;13551:65;:::i;:::-;13505:118;;;;:::o;13629:313::-;;13780:2;13769:9;13765:18;13757:26;;13829:9;13823:4;13819:20;13815:1;13804:9;13800:17;13793:47;13857:78;13930:4;13921:6;13857:78;:::i;:::-;13849:86;;13747:195;;;;:::o;13948:419::-;;14152:2;14141:9;14137:18;14129:26;;14201:9;14195:4;14191:20;14187:1;14176:9;14172:17;14165:47;14229:131;14355:4;14229:131;:::i;:::-;14221:139;;14119:248;;;:::o;14373:419::-;;14577:2;14566:9;14562:18;14554:26;;14626:9;14620:4;14616:20;14612:1;14601:9;14597:17;14590:47;14654:131;14780:4;14654:131;:::i;:::-;14646:139;;14544:248;;;:::o;14798:419::-;;15002:2;14991:9;14987:18;14979:26;;15051:9;15045:4;15041:20;15037:1;15026:9;15022:17;15015:47;15079:131;15205:4;15079:131;:::i;:::-;15071:139;;14969:248;;;:::o;15223:419::-;;15427:2;15416:9;15412:18;15404:26;;15476:9;15470:4;15466:20;15462:1;15451:9;15447:17;15440:47;15504:131;15630:4;15504:131;:::i;:::-;15496:139;;15394:248;;;:::o;15648:419::-;;15852:2;15841:9;15837:18;15829:26;;15901:9;15895:4;15891:20;15887:1;15876:9;15872:17;15865:47;15929:131;16055:4;15929:131;:::i;:::-;15921:139;;15819:248;;;:::o;16073:419::-;;16277:2;16266:9;16262:18;16254:26;;16326:9;16320:4;16316:20;16312:1;16301:9;16297:17;16290:47;16354:131;16480:4;16354:131;:::i;:::-;16346:139;;16244:248;;;:::o;16498:419::-;;16702:2;16691:9;16687:18;16679:26;;16751:9;16745:4;16741:20;16737:1;16726:9;16722:17;16715:47;16779:131;16905:4;16779:131;:::i;:::-;16771:139;;16669:248;;;:::o;16923:419::-;;17127:2;17116:9;17112:18;17104:26;;17176:9;17170:4;17166:20;17162:1;17151:9;17147:17;17140:47;17204:131;17330:4;17204:131;:::i;:::-;17196:139;;17094:248;;;:::o;17348:419::-;;17552:2;17541:9;17537:18;17529:26;;17601:9;17595:4;17591:20;17587:1;17576:9;17572:17;17565:47;17629:131;17755:4;17629:131;:::i;:::-;17621:139;;17519:248;;;:::o;17773:419::-;;17977:2;17966:9;17962:18;17954:26;;18026:9;18020:4;18016:20;18012:1;18001:9;17997:17;17990:47;18054:131;18180:4;18054:131;:::i;:::-;18046:139;;17944:248;;;:::o;18198:419::-;;18402:2;18391:9;18387:18;18379:26;;18451:9;18445:4;18441:20;18437:1;18426:9;18422:17;18415:47;18479:131;18605:4;18479:131;:::i;:::-;18471:139;;18369:248;;;:::o;18623:419::-;;18827:2;18816:9;18812:18;18804:26;;18876:9;18870:4;18866:20;18862:1;18851:9;18847:17;18840:47;18904:131;19030:4;18904:131;:::i;:::-;18896:139;;18794:248;;;:::o;19048:419::-;;19252:2;19241:9;19237:18;19229:26;;19301:9;19295:4;19291:20;19287:1;19276:9;19272:17;19265:47;19329:131;19455:4;19329:131;:::i;:::-;19321:139;;19219:248;;;:::o;19473:222::-;;19604:2;19593:9;19589:18;19581:26;;19617:71;19685:1;19674:9;19670:17;19661:6;19617:71;:::i;:::-;19571:124;;;;:::o;19701:847::-;;20010:3;19999:9;19995:19;19987:27;;20024:71;20092:1;20081:9;20077:17;20068:6;20024:71;:::i;:::-;20105:80;20181:2;20170:9;20166:18;20157:6;20105:80;:::i;:::-;20232:9;20226:4;20222:20;20217:2;20206:9;20202:18;20195:48;20260:108;20363:4;20354:6;20260:108;:::i;:::-;20252:116;;20378:80;20454:2;20443:9;20439:18;20430:6;20378:80;:::i;:::-;20468:73;20536:3;20525:9;20521:19;20512:6;20468:73;:::i;:::-;19977:571;;;;;;;;:::o;20554:831::-;;20855:3;20844:9;20840:19;20832:27;;20869:71;20937:1;20926:9;20922:17;20913:6;20869:71;:::i;:::-;20950:80;21026:2;21015:9;21011:18;21002:6;20950:80;:::i;:::-;21077:9;21071:4;21067:20;21062:2;21051:9;21047:18;21040:48;21105:108;21208:4;21199:6;21105:108;:::i;:::-;21097:116;;21223:72;21291:2;21280:9;21276:18;21267:6;21223:72;:::i;:::-;21305:73;21373:3;21362:9;21358:19;21349:6;21305:73;:::i;:::-;20822:563;;;;;;;;:::o;21391:442::-;;21578:2;21567:9;21563:18;21555:26;;21591:71;21659:1;21648:9;21644:17;21635:6;21591:71;:::i;:::-;21672:72;21740:2;21729:9;21725:18;21716:6;21672:72;:::i;:::-;21754;21822:2;21811:9;21807:18;21798:6;21754:72;:::i;:::-;21545:288;;;;;;:::o;21839:132::-;;21929:3;21921:11;;21959:4;21954:3;21950:14;21942:22;;21911:60;;;:::o;21977:114::-;;22078:5;22072:12;22062:22;;22051:40;;;:::o;22097:99::-;;22183:5;22177:12;22167:22;;22156:40;;;:::o;22202:113::-;;22304:4;22299:3;22295:14;22287:22;;22277:38;;;:::o;22321:184::-;;22454:6;22449:3;22442:19;22494:4;22489:3;22485:14;22470:29;;22432:73;;;;:::o;22511:169::-;;22629:6;22624:3;22617:19;22669:4;22664:3;22660:14;22645:29;;22607:73;;;;:::o;22686:305::-;;22745:20;22763:1;22745:20;:::i;:::-;22740:25;;22779:20;22797:1;22779:20;:::i;:::-;22774:25;;22933:1;22865:66;22861:74;22858:1;22855:81;22852:2;;;22939:18;;:::i;:::-;22852:2;22983:1;22980;22976:9;22969:16;;22730:261;;;;:::o;22997:185::-;;23054:20;23072:1;23054:20;:::i;:::-;23049:25;;23088:20;23106:1;23088:20;:::i;:::-;23083:25;;23127:1;23117:2;;23132:18;;:::i;:::-;23117:2;23174:1;23171;23167:9;23162:14;;23039:143;;;;:::o;23188:348::-;;23251:20;23269:1;23251:20;:::i;:::-;23246:25;;23285:20;23303:1;23285:20;:::i;:::-;23280:25;;23473:1;23405:66;23401:74;23398:1;23395:81;23390:1;23383:9;23376:17;23372:105;23369:2;;;23480:18;;:::i;:::-;23369:2;23528:1;23525;23521:9;23510:20;;23236:300;;;;:::o;23542:191::-;;23602:20;23620:1;23602:20;:::i;:::-;23597:25;;23636:20;23654:1;23636:20;:::i;:::-;23631:25;;23675:1;23672;23669:8;23666:2;;;23680:18;;:::i;:::-;23666:2;23725:1;23722;23718:9;23710:17;;23587:146;;;;:::o;23739:96::-;;23805:24;23823:5;23805:24;:::i;:::-;23794:35;;23784:51;;;:::o;23841:104::-;;23915:24;23933:5;23915:24;:::i;:::-;23904:35;;23894:51;;;:::o;23951:90::-;;24028:5;24021:13;24014:21;24003:32;;23993:48;;;:::o;24047:126::-;;24124:42;24117:5;24113:54;24102:65;;24092:81;;;:::o;24179:77::-;;24245:5;24234:16;;24224:32;;;:::o;24262:134::-;;24353:37;24384:5;24353:37;:::i;:::-;24340:50;;24330:66;;;:::o;24402:121::-;;24493:24;24511:5;24493:24;:::i;:::-;24480:37;;24470:53;;;:::o;24529:126::-;;24612:37;24643:5;24612:37;:::i;:::-;24599:50;;24589:66;;;:::o;24661:113::-;;24744:24;24762:5;24744:24;:::i;:::-;24731:37;;24721:53;;;:::o;24780:307::-;24848:1;24858:113;24872:6;24869:1;24866:13;24858:113;;;24957:1;24952:3;24948:11;24942:18;24938:1;24933:3;24929:11;24922:39;24894:2;24891:1;24887:10;24882:15;;24858:113;;;24989:6;24986:1;24983:13;24980:2;;;25069:1;25060:6;25055:3;25051:16;25044:27;24980:2;24829:258;;;;:::o;25093:320::-;;25174:1;25168:4;25164:12;25154:22;;25221:1;25215:4;25211:12;25242:18;25232:2;;25298:4;25290:6;25286:17;25276:27;;25232:2;25360;25352:6;25349:14;25329:18;25326:38;25323:2;;;25379:18;;:::i;:::-;25323:2;25144:269;;;;:::o;25419:180::-;25467:77;25464:1;25457:88;25564:4;25561:1;25554:15;25588:4;25585:1;25578:15;25605:180;25653:77;25650:1;25643:88;25750:4;25747:1;25740:15;25774:4;25771:1;25764:15;25791:180;25839:77;25836:1;25829:88;25936:4;25933:1;25926:15;25960:4;25957:1;25950:15;25977:102;;26069:2;26065:7;26060:2;26053:5;26049:14;26045:28;26035:38;;26025:54;;;:::o;26085:122::-;26158:24;26176:5;26158:24;:::i;:::-;26151:5;26148:35;26138:2;;26197:1;26194;26187:12;26138:2;26128:79;:::o;26213:138::-;26294:32;26320:5;26294:32;:::i;:::-;26287:5;26284:43;26274:2;;26341:1;26338;26331:12;26274:2;26264:87;:::o;26357:116::-;26427:21;26442:5;26427:21;:::i;:::-;26420:5;26417:32;26407:2;;26463:1;26460;26453:12;26407:2;26397:76;:::o;26479:122::-;26552:24;26570:5;26552:24;:::i;:::-;26545:5;26542:35;26532:2;;26591:1;26588;26581:12;26532:2;26522:79;:::o
Swarm Source
ipfs://4f55460198062e0cbee8d1e053a89fe7899b29f02118ef0a6bce0f60f4f803f4
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.