ERC-20
Overview
Max Total Supply
1,000,000,000 BONKER
Holders
15
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
BONKERINU
Compiler Version
v0.8.7+commit.e28d00a7
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-01-06 */ /** BONKERS! */ // 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 BONKERINU is Context,IERC20, Ownable{ using Address for address; string private _name = "BONKER INU"; string private _symbol = "BONKER"; uint8 private _decimals = 18; uint256 totalFeeFortx = 0; uint256 maxWalletTreshold = 3; uint256 maxTxTreshold = 3; uint256 private swapTreshold =3; bool public limitsInEffect = true; uint256 private currentThreshold = 20; uint256 private _totalSupply = 1_000_000_000 * 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) _isExcludedMaxTransactionAmount; mapping (address => bool) public automatedMarketMakerPairs; address _owner; address payable public marketingAddress = payable(0xeafF0fD0e31835f3Ca51c0d8755cca2633428EC5); uint256 maxWalletAmount = _totalSupply*maxWalletTreshold/100; 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 = 1; uint256 private buyprevLiqFee = 1; uint256 private buymktFee = 19; uint256 private buyPrevmktFee = 19; bool private tradeEnabled = false; uint256 private sellliqFee = 1; uint256 private sellprevLiqFee = 1; uint256 private sellmktFee = 19; uint256 private sellPrevmktFee = 19; 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); IUniswapV2Router02 _router; address public uniswapV2Pair; //Balances tracker modifier lockTheSwap{ inSwapAndLiquify = true; _; inSwapAndLiquify = false; } constructor(){ _balances[_msgSender()] = _totalSupply; IUniswapV2Router02 _uniRouter = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); uniswapV2Pair = IUniswapV2Factory(_uniRouter.factory()) .createPair(address(this), _uniRouter.WETH()); _excludedFromFees[owner()] = true; _excludedFromFees[address(this)] = true; _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 removeLimits() public onlyOwner{ limitsInEffect = false; } 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; } 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(limitsInEffect){ if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) ){ //when buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTxAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWalletAmount, "Unable to exceed Max Wallet"); } //when sell else if (automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from]) { require(amount <= maxTxAmount, "Sell transfer amount exceeds the maxTransactionAmount."); } else if(!_isExcludedMaxTransactionAmount[to]) { require(amount + balanceOf(to) <= maxWalletAmount, "Unable to exceed Max Wallet"); } } } 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 allowed to 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 unstuckTokens (IERC20 tokenToClear, address payable destination, uint256 amount) public onlyOwner{ //uint256 contractBalance = tokenToClear.balanceOf(address(this)); tokenToClear.transfer(destination, amount); } 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 excludePresaleAddresses(address router, address presale) external onlyOwner { _liquidityHolders[address(router)] = true; _liquidityHolders[presale] = true; presaleAddresses[address(router)] = true; presaleAddresses[presale] = true; } 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 updatecurrentbuyliqFee(uint256 newAmount) public onlyOwner{ buyliqFee = newAmount; } function updatecurrentbuymktfee(uint256 newAmount) public onlyOwner{ buymktFee= newAmount; } function updatecurrentsellLiqFee(uint256 newAmount) public onlyOwner{ sellliqFee= newAmount; } function updatecurrentsellmktfee(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":[{"internalType":"address","name":"router","type":"address"},{"internalType":"address","name":"presale","type":"address"}],"name":"excludePresaleAddresses","outputs":[],"stateMutability":"nonpayable","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":"limitsInEffect","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":"removeLimits","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":"contract IERC20","name":"tokenToClear","type":"address"},{"internalType":"address payable","name":"destination","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"unstuckTokens","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":"updatecurrentbuyliqFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentbuymktfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellLiqFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updatecurrentsellmktfee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60a06040526040518060400160405280600a81526020017f424f4e4b455220494e55000000000000000000000000000000000000000000008152506001908051906020019062000051929190620009ac565b506040518060400160405280600681526020017f424f4e4b45520000000000000000000000000000000000000000000000000000815250600290805190602001906200009f929190620009ac565b506012600360006101000a81548160ff021916908360ff16021790555060006004556003600555600360065560036007556001600860006101000a81548160ff0219169083151502179055506014600955600360009054906101000a900460ff16600a6200010e919062000ba4565b633b9aca006200011f919062000ce1565b600a556103e8600754600a5462000137919062000ce1565b62000143919062000b11565b600b5573eaff0fd0e31835f3ca51c0d8755cca2633428ec5601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506064600554600a54620001af919062000ce1565b620001bb919062000b11565b6013556064600654600a54620001d2919062000ce1565b620001de919062000b11565b6014556000601660006101000a81548160ff0219169083151502179055506001601660016101000a81548160ff02191690831515021790555060016019556001601a556013601b556013601c556000601d60006101000a81548160ff0219169083151502179055506001601e556001601f55601360205560136021556001602260016101000a81548160ff02191690831515021790555061dead73ffffffffffffffffffffffffffffffffffffffff1660809073ffffffffffffffffffffffffffffffffffffffff1660601b81525060006023556000602455348015620002c457600080fd5b50620002e5620002d96200081660201b60201c565b6200081e60201b60201c565b600a54600c6000620002fc6200081660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b815260040160206040518083038186803b1580156200039a57600080fd5b505afa158015620003af573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620003d5919062000a73565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156200043857600080fd5b505afa1580156200044d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000473919062000a73565b6040518363ffffffff1660e01b81526004016200049292919062000ac7565b602060405180830381600087803b158015620004ad57600080fd5b505af1158015620004c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620004e8919062000a73565b602660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600d60006200053e620008e260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600d60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080602560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160176000602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600160176000620006b8620008e260201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555062000796602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1660016200090b60201b60201c565b620007a66200081660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600a5460405162000807919062000af4565b60405180910390a35062000e7c565b600033905090565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b828054620009ba9062000d8d565b90600052602060002090601f016020900481019282620009de576000855562000a2a565b82601f10620009f957805160ff191683800117855562000a2a565b8280016001018555821562000a2a579182015b8281111562000a2957825182559160200191906001019062000a0c565b5b50905062000a39919062000a3d565b5090565b5b8082111562000a5857600081600090555060010162000a3e565b5090565b60008151905062000a6d8162000e62565b92915050565b60006020828403121562000a8c5762000a8b62000e50565b5b600062000a9c8482850162000a5c565b91505092915050565b62000ab08162000d42565b82525050565b62000ac18162000d76565b82525050565b600060408201905062000ade600083018562000aa5565b62000aed602083018462000aa5565b9392505050565b600060208201905062000b0b600083018462000ab6565b92915050565b600062000b1e8262000d76565b915062000b2b8362000d76565b92508262000b3e5762000b3d62000df2565b5b828204905092915050565b6000808291508390505b600185111562000b9b5780860481111562000b735762000b7262000dc3565b5b600185161562000b835780820291505b808102905062000b938562000e55565b945062000b53565b94509492505050565b600062000bb18262000d76565b915062000bbe8362000d80565b925062000bed7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000bf5565b905092915050565b60008262000c07576001905062000cda565b8162000c17576000905062000cda565b816001811462000c30576002811462000c3b5762000c71565b600191505062000cda565b60ff84111562000c505762000c4f62000dc3565b5b8360020a91508482111562000c6a5762000c6962000dc3565b5b5062000cda565b5060208310610133831016604e8410600b841016171562000cab5782820a90508381111562000ca55762000ca462000dc3565b5b62000cda565b62000cba848484600162000b49565b9250905081840481111562000cd45762000cd362000dc3565b5b81810290505b9392505050565b600062000cee8262000d76565b915062000cfb8362000d76565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000d375762000d3662000dc3565b5b828202905092915050565b600062000d4f8262000d56565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b6000600282049050600182168062000da657607f821691505b6020821081141562000dbd5762000dbc62000e21565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600080fd5b60008160011c9050919050565b62000e6d8162000d42565b811462000e7957600080fd5b50565b60805160601c614d5c62000ea26000396000818161114201526139d50152614d5c6000f3fe6080604052600436106103395760003560e01c8063893d20e8116101ab578063b62496f5116100f7578063d7d7442f11610095578063e1370dd31161006f578063e1370dd314610bdf578063edcf19b214610c0a578063f2fde38b14610c33578063f7da678514610c5c57610340565b8063d7d7442f14610b4e578063dd62ed3e14610b77578063ddcf9b9814610bb457610340565b8063cb664534116100d1578063cb66453414610a94578063cba0e99614610abd578063d1294d4c14610afa578063d15bcf0f14610b2357610340565b8063b62496f514610a03578063bf9b015914610a40578063bf9eb54014610a6b57610340565b80639b136da411610164578063a6c38f591161013e578063a6c38f591461094b578063a7a0745214610974578063a9059cbb1461099d578063b4d95a93146109da57610340565b80639b136da4146108ca578063a04bdc81146108f5578063a5ece9411461092057610340565b8063893d20e8146107cc5780638cd0260c146107f75780638da5cb5b1461082057806390f502831461084b57806395d89b41146108765780639a7a23d6146108a157610340565b80634a0e963c116102855780636573c4df11610223578063715018a6116101fd578063715018a61461074c578063751039fc14610763578063801527ce1461077a5780638628c23f146107a357610340565b80636573c4df146106bb5780636df3333a146106e457806370a082311461070f57610340565b80634bd7ace51161025f5780634bd7ace5146106115780635297defd1461063c5780635be76f111461066757806364c161631461069057610340565b80634a0e963c146105925780634a62bb65146105bb5780634a74bb02146105e657610340565b806322788f86116102f25780632d03420b116102cc5780632d03420b146104e8578063313ce56714610511578063487a69051461053c57806349bd5a5e1461056757610340565b806322788f861461045557806323b872dd1461048057806327c8f835146104bd57610340565b806306fdde03146103455780630882a86314610370578063095ea7b31461039957806313b4a7f4146103d657806318160ddd146103ff578063220f66961461042a57610340565b3661034057005b600080fd5b34801561035157600080fd5b5061035a610c85565b604051610367919061421e565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190613d9e565b610d17565b005b3480156103a557600080fd5b506103c060048036038101906103bb9190613cb1565b610d9d565b6040516103cd9190614203565b60405180910390f35b3480156103e257600080fd5b506103fd60048036038101906103f89190613bde565b610dbb565b005b34801561040b57600080fd5b50610414610f9b565b6040516104219190614420565b60405180910390f35b34801561043657600080fd5b5061043f610fa5565b60405161044c9190614203565b60405180910390f35b34801561046157600080fd5b5061046a610fb8565b6040516104779190614420565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a29190613c1e565b610fc2565b6040516104b49190614203565b60405180910390f35b3480156104c957600080fd5b506104d2611140565b6040516104df9190614143565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a9190613cf1565b611164565b005b34801561051d57600080fd5b506105266111fd565b6040516105339190614420565b60405180910390f35b34801561054857600080fd5b50610551611217565b60405161055e9190614420565b60405180910390f35b34801561057357600080fd5b5061057c611221565b6040516105899190614143565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b49190613b17565b611247565b005b3480156105c757600080fd5b506105d061131e565b6040516105dd9190614203565b60405180910390f35b3480156105f257600080fd5b506105fb611331565b6040516106089190614203565b60405180910390f35b34801561061d57600080fd5b50610626611344565b6040516106339190614420565b60405180910390f35b34801561064857600080fd5b5061065161134e565b60405161065e9190614420565b60405180910390f35b34801561067357600080fd5b5061068e60048036038101906106899190613b71565b611358565b005b34801561069c57600080fd5b506106a5611424565b6040516106b29190614420565b60405180910390f35b3480156106c757600080fd5b506106e260048036038101906106dd9190613d9e565b61142e565b005b3480156106f057600080fd5b506106f96114d6565b6040516107069190614420565b60405180910390f35b34801561071b57600080fd5b5061073660048036038101906107319190613b17565b6114e0565b6040516107439190614420565b60405180910390f35b34801561075857600080fd5b50610761611529565b005b34801561076f57600080fd5b506107786115b1565b005b34801561078657600080fd5b506107a1600480360381019061079c9190613cf1565b61164a565b005b3480156107af57600080fd5b506107ca60048036038101906107c59190613d9e565b6116e3565b005b3480156107d857600080fd5b506107e1611769565b6040516107ee9190614143565b60405180910390f35b34801561080357600080fd5b5061081e60048036038101906108199190613d9e565b611778565b005b34801561082c57600080fd5b506108356117fe565b6040516108429190614143565b60405180910390f35b34801561085757600080fd5b50610860611827565b60405161086d9190614420565b60405180910390f35b34801561088257600080fd5b5061088b611831565b604051610898919061421e565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c39190613c71565b6118c3565b005b3480156108d657600080fd5b506108df6119de565b6040516108ec9190614420565b60405180910390f35b34801561090157600080fd5b5061090a6119e8565b6040516109179190614420565b60405180910390f35b34801561092c57600080fd5b506109356119ee565b604051610942919061415e565b60405180910390f35b34801561095757600080fd5b50610972600480360381019061096d9190613b9e565b611a14565b005b34801561098057600080fd5b5061099b60048036038101906109969190613d9e565b611aeb565b005b3480156109a957600080fd5b506109c460048036038101906109bf9190613cb1565b611b93565b6040516109d19190614203565b60405180910390f35b3480156109e657600080fd5b50610a0160048036038101906109fc9190613b17565b611bb1565b005b348015610a0f57600080fd5b50610a2a6004803603810190610a259190613b17565b611c88565b604051610a379190614203565b60405180910390f35b348015610a4c57600080fd5b50610a55611ca8565b604051610a629190614420565b60405180910390f35b348015610a7757600080fd5b50610a926004803603810190610a8d9190613b17565b611cb2565b005b348015610aa057600080fd5b50610abb6004803603810190610ab69190613b17565b611d72565b005b348015610ac957600080fd5b50610ae46004803603810190610adf9190613b17565b611e49565b604051610af19190614203565b60405180910390f35b348015610b0657600080fd5b50610b216004803603810190610b1c9190613d9e565b611e9f565b005b348015610b2f57600080fd5b50610b38611f48565b604051610b459190614203565b60405180910390f35b348015610b5a57600080fd5b50610b756004803603810190610b709190613d9e565b611f5f565b005b348015610b8357600080fd5b50610b9e6004803603810190610b999190613bde565b611fe5565b604051610bab9190614420565b60405180910390f35b348015610bc057600080fd5b50610bc961206c565b604051610bd69190614420565b60405180910390f35b348015610beb57600080fd5b50610bf4612076565b604051610c019190614420565b60405180910390f35b348015610c1657600080fd5b50610c316004803603810190610c2c9190613d9e565b612080565b005b348015610c3f57600080fd5b50610c5a6004803603810190610c559190613b17565b612106565b005b348015610c6857600080fd5b50610c836004803603810190610c7e9190613d4b565b6121fe565b005b606060018054610c9490614777565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc090614777565b8015610d0d5780601f10610ce257610100808354040283529160200191610d0d565b820191906000526020600020905b815481529060010190602001808311610cf057829003601f168201915b5050505050905090565b610d1f61230d565b73ffffffffffffffffffffffffffffffffffffffff16610d3d6117fe565b73ffffffffffffffffffffffffffffffffffffffff1614610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a90614380565b60405180910390fd5b8060198190555050565b6000610db1610daa61230d565b8484612315565b6001905092915050565b610dc361230d565b73ffffffffffffffffffffffffffffffffffffffff16610de16117fe565b73ffffffffffffffffffffffffffffffffffffffff1614610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e90614380565b60405180910390fd5b6001601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600a54905090565b602260009054906101000a900460ff1681565b6000600954905090565b6000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061100d61230d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108190614360565b60405180910390fd5b6110958484846124e0565b611135846110a161230d565b84600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110eb61230d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611130919061465c565b612315565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61116c61230d565b73ffffffffffffffffffffffffffffffffffffffff1661118a6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d790614380565b60405180910390fd5b80601d60006101000a81548160ff02191690831515021790555050565b6000600360009054906101000a900460ff1660ff16905090565b6000600b54905090565b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61124f61230d565b73ffffffffffffffffffffffffffffffffffffffff1661126d6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90614380565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600860009054906101000a900460ff1681565b602260019054906101000a900460ff1681565b6000601954905090565b6000602054905090565b61136061230d565b73ffffffffffffffffffffffffffffffffffffffff1661137e6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb90614380565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561141f573d6000803e3d6000fd5b505050565b6000602454905090565b61143661230d565b73ffffffffffffffffffffffffffffffffffffffff166114546117fe565b73ffffffffffffffffffffffffffffffffffffffff16146114aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a190614380565b60405180910390fd5b806005819055506064600554600a546114c39190614602565b6114cd91906145d1565b60138190555050565b6000600754905090565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61153161230d565b73ffffffffffffffffffffffffffffffffffffffff1661154f6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90614380565b60405180910390fd5b6115af6000613216565b565b6115b961230d565b73ffffffffffffffffffffffffffffffffffffffff166115d76117fe565b73ffffffffffffffffffffffffffffffffffffffff161461162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490614380565b60405180910390fd5b6000600860006101000a81548160ff021916908315150217905550565b61165261230d565b73ffffffffffffffffffffffffffffffffffffffff166116706117fe565b73ffffffffffffffffffffffffffffffffffffffff16146116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd90614380565b60405180910390fd5b80602260016101000a81548160ff02191690831515021790555050565b6116eb61230d565b73ffffffffffffffffffffffffffffffffffffffff166117096117fe565b73ffffffffffffffffffffffffffffffffffffffff161461175f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175690614380565b60405180910390fd5b8060208190555050565b60006117736117fe565b905090565b61178061230d565b73ffffffffffffffffffffffffffffffffffffffff1661179e6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146117f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117eb90614380565b60405180910390fd5b80601e8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601e54905090565b60606002805461184090614777565b80601f016020809104026020016040519081016040528092919081815260200182805461186c90614777565b80156118b95780601f1061188e576101008083540402835291602001916118b9565b820191906000526020600020905b81548152906001019060200180831161189c57829003601f168201915b5050505050905090565b6118cb61230d565b73ffffffffffffffffffffffffffffffffffffffff166118e96117fe565b73ffffffffffffffffffffffffffffffffffffffff161461193f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193690614380565b60405180910390fd5b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c7906142a0565b60405180910390fd5b6119da82826132da565b5050565b6000601b54905090565b600b5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a1c61230d565b73ffffffffffffffffffffffffffffffffffffffff16611a3a6117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8790614380565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611af361230d565b73ffffffffffffffffffffffffffffffffffffffff16611b116117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5e90614380565b60405180910390fd5b806006819055506064600654600a54611b809190614602565b611b8a91906145d1565b60148190555050565b6000611ba7611ba061230d565b84846124e0565b6001905092915050565b611bb961230d565b73ffffffffffffffffffffffffffffffffffffffff16611bd76117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2490614380565b60405180910390fd5b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000601454905090565b611cba61230d565b73ffffffffffffffffffffffffffffffffffffffff16611cd86117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2590614380565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d7a61230d565b73ffffffffffffffffffffffffffffffffffffffff16611d986117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590614380565b60405180910390fd5b6001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611ea761230d565b73ffffffffffffffffffffffffffffffffffffffff16611ec56117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1290614380565b60405180910390fd5b806007819055506103e8600754600a54611f359190614602565b611f3f91906145d1565b600b8190555050565b6000601d60009054906101000a900460ff16905090565b611f6761230d565b73ffffffffffffffffffffffffffffffffffffffff16611f856117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd290614380565b60405180910390fd5b8060098190555050565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000602354905090565b6000601354905090565b61208861230d565b73ffffffffffffffffffffffffffffffffffffffff166120a66117fe565b73ffffffffffffffffffffffffffffffffffffffff16146120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390614380565b60405180910390fd5b80601b8190555050565b61210e61230d565b73ffffffffffffffffffffffffffffffffffffffff1661212c6117fe565b73ffffffffffffffffffffffffffffffffffffffff1614612182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217990614380565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e990614260565b60405180910390fd5b6121fb81613216565b50565b61220661230d565b73ffffffffffffffffffffffffffffffffffffffff166122246117fe565b73ffffffffffffffffffffffffffffffffffffffff161461227a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227190614380565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016122b5929190614179565b602060405180830381600087803b1580156122cf57600080fd5b505af11580156122e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123079190613d1e565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237c90614400565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec90614280565b60405180910390fd5b80600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124d39190614420565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612547906143e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b790614240565b60405180910390fd5b60008111612603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fa90614300565b60405180910390fd5b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561268a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612681906142c0565b60405180910390fd5b60001515601d60009054906101000a900460ff161515141561278757601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127475750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277d90614320565b60405180910390fd5b5b600860009054906101000a900460ff1615612b74576127a46117fe565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561281257506127e26117fe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561284b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612885575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612b7357601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561292d5750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129d457601454821115612977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296e90614340565b60405180910390fd5b601354612983846114e0565b8361298e919061457b565b11156129cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c6906143a0565b60405180910390fd5b612b72565b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a775750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ac657601454821115612ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab8906142e0565b60405180910390fd5b612b71565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b7057601354612b23846114e0565b83612b2e919061457b565b1115612b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b66906143a0565b60405180910390fd5b5b5b5b5b5b6000612b7f306114e0565b9050600b548110158015612ba05750602260009054906101000a900460ff16155b8015612bfa5750602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612c125750602260019054906101000a900460ff165b15612c3057600b548110612c2f57600b549050612c2e8161337b565b5b5b600060019050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612cd75750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ce9576000600481905550600090505b6000808215612fe55760011515601560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480612da1575060011515601560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15612de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd8906143c0565b60405180910390fd5b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e885750602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15612ee4576000600481905550606460205487612ea59190614602565b612eaf91906145d1565b91506064601e5487612ec19190614602565b612ecb91906145d1565b90508082612ed9919061457b565b600481905550612fe4565b601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8b5750602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b15612fe35760006004819055506064601b5487612fa89190614602565b612fb291906145d1565b9150606460195487612fc49190614602565b612fce91906145d1565b90508082612fdc919061457b565b6004819055505b5b5b8585612ff1919061465c565b600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808287613041919061465c565b61304b919061465c565b600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613099919061457b565b925050819055506000811461319a57600454600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130f9919061457b565b925050819055508060246000828254613112919061457b565b92505081905550816023600082825461312b919061457b565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516131919190614420565b60405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454896131f7919061465c565b6040516132049190614420565b60405180910390a35050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6001602260006101000a81548160ff0219169083151502179055506133a1602454613411565b6133ac60235461349c565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f01904816040516133db9190614420565b60405180910390a1600060238190555060006024819055506000602260006101000a81548160ff02191690831515021790555050565b600060028261342091906145d1565b905060008183613430919061465c565b9050600047905061344083613710565b6000814761344e919061465c565b905061345a8382613962565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161348d939291906144ef565b60405180910390a15050505050565b6000600267ffffffffffffffff8111156134b9576134b8614865565b5b6040519080825280602002602001820160405280156134e75781602001602082028036833780820191505090505b50905030816000815181106134ff576134fe614836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156135a157600080fd5b505afa1580156135b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135d99190613b44565b816001815181106135ed576135ec614836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061365430602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612315565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016136da95949392919061443b565b600060405180830381600087803b1580156136f457600080fd5b505af1158015613708573d6000803e3d6000fd5b505050505050565b6000600267ffffffffffffffff81111561372d5761372c614865565b5b60405190808252806020026020018201604052801561375b5781602001602082028036833780820191505090505b509050308160008151811061377357613772614836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561381557600080fd5b505afa158015613829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384d9190613b44565b8160018151811061386157613860614836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506138c830602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612315565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161392c959493929190614495565b600060405180830381600087803b15801561394657600080fd5b505af115801561395a573d6000803e3d6000fd5b505050505050565b61398f30602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612315565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000807f0000000000000000000000000000000000000000000000000000000000000000426040518863ffffffff1660e01b8152600401613a16969594939291906141a2565b6060604051808303818588803b158015613a2f57600080fd5b505af1158015613a43573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613a689190613dcb565b5050505050565b600081359050613a7e81614cb3565b92915050565b600081519050613a9381614cb3565b92915050565b600081359050613aa881614cca565b92915050565b600081359050613abd81614ce1565b92915050565b600081519050613ad281614ce1565b92915050565b600081359050613ae781614cf8565b92915050565b600081359050613afc81614d0f565b92915050565b600081519050613b1181614d0f565b92915050565b600060208284031215613b2d57613b2c614894565b5b6000613b3b84828501613a6f565b91505092915050565b600060208284031215613b5a57613b59614894565b5b6000613b6884828501613a84565b91505092915050565b600060208284031215613b8757613b86614894565b5b6000613b9584828501613a99565b91505092915050565b60008060408385031215613bb557613bb4614894565b5b6000613bc385828601613a99565b9250506020613bd485828601613aae565b9150509250929050565b60008060408385031215613bf557613bf4614894565b5b6000613c0385828601613a6f565b9250506020613c1485828601613a6f565b9150509250929050565b600080600060608486031215613c3757613c36614894565b5b6000613c4586828701613a6f565b9350506020613c5686828701613a6f565b9250506040613c6786828701613aed565b9150509250925092565b60008060408385031215613c8857613c87614894565b5b6000613c9685828601613a6f565b9250506020613ca785828601613aae565b9150509250929050565b60008060408385031215613cc857613cc7614894565b5b6000613cd685828601613a6f565b9250506020613ce785828601613aed565b9150509250929050565b600060208284031215613d0757613d06614894565b5b6000613d1584828501613aae565b91505092915050565b600060208284031215613d3457613d33614894565b5b6000613d4284828501613ac3565b91505092915050565b600080600060608486031215613d6457613d63614894565b5b6000613d7286828701613ad8565b9350506020613d8386828701613a99565b9250506040613d9486828701613aed565b9150509250925092565b600060208284031215613db457613db3614894565b5b6000613dc284828501613aed565b91505092915050565b600080600060608486031215613de457613de3614894565b5b6000613df286828701613b02565b9350506020613e0386828701613b02565b9250506040613e1486828701613b02565b9150509250925092565b6000613e2a8383613e54565b60208301905092915050565b613e3f816146fc565b82525050565b613e4e816146a2565b82525050565b613e5d81614690565b82525050565b613e6c81614690565b82525050565b6000613e7d82614536565b613e878185614559565b9350613e9283614526565b8060005b83811015613ec3578151613eaa8882613e1e565b9750613eb58361454c565b925050600181019050613e96565b5085935050505092915050565b613ed9816146b4565b82525050565b613ee88161470e565b82525050565b6000613ef982614541565b613f03818561456a565b9350613f13818560208601614744565b613f1c81614899565b840191505092915050565b6000613f3460238361456a565b9150613f3f826148aa565b604082019050919050565b6000613f5760268361456a565b9150613f62826148f9565b604082019050919050565b6000613f7a60228361456a565b9150613f8582614948565b604082019050919050565b6000613f9d60398361456a565b9150613fa882614997565b604082019050919050565b6000613fc060268361456a565b9150613fcb826149e6565b604082019050919050565b6000613fe360368361456a565b9150613fee82614a35565b604082019050919050565b600061400660328361456a565b915061401182614a84565b604082019050919050565b6000614029601d8361456a565b915061403482614ad3565b602082019050919050565b600061404c60358361456a565b915061405782614afc565b604082019050919050565b600061406f60288361456a565b915061407a82614b4b565b604082019050919050565b600061409260208361456a565b915061409d82614b9a565b602082019050919050565b60006140b5601b8361456a565b91506140c082614bc3565b602082019050919050565b60006140d860188361456a565b91506140e382614bec565b602082019050919050565b60006140fb60258361456a565b915061410682614c15565b604082019050919050565b600061411e60248361456a565b915061412982614c64565b604082019050919050565b61413d816146f2565b82525050565b60006020820190506141586000830184613e63565b92915050565b60006020820190506141736000830184613e45565b92915050565b600060408201905061418e6000830185613e36565b61419b6020830184614134565b9392505050565b600060c0820190506141b76000830189613e63565b6141c46020830188614134565b6141d16040830187613edf565b6141de6060830186613edf565b6141eb6080830185613e63565b6141f860a0830184614134565b979650505050505050565b60006020820190506142186000830184613ed0565b92915050565b600060208201905081810360008301526142388184613eee565b905092915050565b6000602082019050818103600083015261425981613f27565b9050919050565b6000602082019050818103600083015261427981613f4a565b9050919050565b6000602082019050818103600083015261429981613f6d565b9050919050565b600060208201905081810360008301526142b981613f90565b9050919050565b600060208201905081810360008301526142d981613fb3565b9050919050565b600060208201905081810360008301526142f981613fd6565b9050919050565b6000602082019050818103600083015261431981613ff9565b9050919050565b600060208201905081810360008301526143398161401c565b9050919050565b600060208201905081810360008301526143598161403f565b9050919050565b6000602082019050818103600083015261437981614062565b9050919050565b6000602082019050818103600083015261439981614085565b9050919050565b600060208201905081810360008301526143b9816140a8565b9050919050565b600060208201905081810360008301526143d9816140cb565b9050919050565b600060208201905081810360008301526143f9816140ee565b9050919050565b6000602082019050818103600083015261441981614111565b9050919050565b60006020820190506144356000830184614134565b92915050565b600060a0820190506144506000830188614134565b61445d6020830187613edf565b818103604083015261446f8186613e72565b905061447e6060830185613e36565b61448b6080830184614134565b9695505050505050565b600060a0820190506144aa6000830188614134565b6144b76020830187613edf565b81810360408301526144c98186613e72565b90506144d86060830185613e63565b6144e56080830184614134565b9695505050505050565b60006060820190506145046000830186614134565b6145116020830185614134565b61451e6040830184614134565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614586826146f2565b9150614591836146f2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145c6576145c56147a9565b5b828201905092915050565b60006145dc826146f2565b91506145e7836146f2565b9250826145f7576145f66147d8565b5b828204905092915050565b600061460d826146f2565b9150614618836146f2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614651576146506147a9565b5b828202905092915050565b6000614667826146f2565b9150614672836146f2565b925082821015614685576146846147a9565b5b828203905092915050565b600061469b826146d2565b9050919050565b60006146ad826146d2565b9050919050565b60008115159050919050565b60006146cb82614690565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061470782614720565b9050919050565b6000614719826146f2565b9050919050565b600061472b82614732565b9050919050565b600061473d826146d2565b9050919050565b60005b83811015614762578082015181840152602081019050614747565b83811115614771576000848401525b50505050565b6000600282049050600182168061478f57607f821691505b602082108114156147a3576147a2614807565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b7f45524332303a207472616e73666572656420616d6f756e74206d75737420626560008201527f2067726561746572207468616e207a65726f0000000000000000000000000000602082015250565b7f43616e742074726164652c2074726164652069732064697361626c6564000000600082015250565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f556e61626c6520746f20657863656564204d61782057616c6c65740000000000600082015250565b7f4e6f20626f747320616c6c6f77656420746f2074726164650000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614cbc81614690565b8114614cc757600080fd5b50565b614cd3816146a2565b8114614cde57600080fd5b50565b614cea816146b4565b8114614cf557600080fd5b50565b614d01816146c0565b8114614d0c57600080fd5b50565b614d18816146f2565b8114614d2357600080fd5b5056fea26469706673582212207ad819fea980056e5b8ecd9d5ce503f2d43bf7e01203362a4a580a9465b5fe6a64736f6c63430008070033
Deployed Bytecode
0x6080604052600436106103395760003560e01c8063893d20e8116101ab578063b62496f5116100f7578063d7d7442f11610095578063e1370dd31161006f578063e1370dd314610bdf578063edcf19b214610c0a578063f2fde38b14610c33578063f7da678514610c5c57610340565b8063d7d7442f14610b4e578063dd62ed3e14610b77578063ddcf9b9814610bb457610340565b8063cb664534116100d1578063cb66453414610a94578063cba0e99614610abd578063d1294d4c14610afa578063d15bcf0f14610b2357610340565b8063b62496f514610a03578063bf9b015914610a40578063bf9eb54014610a6b57610340565b80639b136da411610164578063a6c38f591161013e578063a6c38f591461094b578063a7a0745214610974578063a9059cbb1461099d578063b4d95a93146109da57610340565b80639b136da4146108ca578063a04bdc81146108f5578063a5ece9411461092057610340565b8063893d20e8146107cc5780638cd0260c146107f75780638da5cb5b1461082057806390f502831461084b57806395d89b41146108765780639a7a23d6146108a157610340565b80634a0e963c116102855780636573c4df11610223578063715018a6116101fd578063715018a61461074c578063751039fc14610763578063801527ce1461077a5780638628c23f146107a357610340565b80636573c4df146106bb5780636df3333a146106e457806370a082311461070f57610340565b80634bd7ace51161025f5780634bd7ace5146106115780635297defd1461063c5780635be76f111461066757806364c161631461069057610340565b80634a0e963c146105925780634a62bb65146105bb5780634a74bb02146105e657610340565b806322788f86116102f25780632d03420b116102cc5780632d03420b146104e8578063313ce56714610511578063487a69051461053c57806349bd5a5e1461056757610340565b806322788f861461045557806323b872dd1461048057806327c8f835146104bd57610340565b806306fdde03146103455780630882a86314610370578063095ea7b31461039957806313b4a7f4146103d657806318160ddd146103ff578063220f66961461042a57610340565b3661034057005b600080fd5b34801561035157600080fd5b5061035a610c85565b604051610367919061421e565b60405180910390f35b34801561037c57600080fd5b5061039760048036038101906103929190613d9e565b610d17565b005b3480156103a557600080fd5b506103c060048036038101906103bb9190613cb1565b610d9d565b6040516103cd9190614203565b60405180910390f35b3480156103e257600080fd5b506103fd60048036038101906103f89190613bde565b610dbb565b005b34801561040b57600080fd5b50610414610f9b565b6040516104219190614420565b60405180910390f35b34801561043657600080fd5b5061043f610fa5565b60405161044c9190614203565b60405180910390f35b34801561046157600080fd5b5061046a610fb8565b6040516104779190614420565b60405180910390f35b34801561048c57600080fd5b506104a760048036038101906104a29190613c1e565b610fc2565b6040516104b49190614203565b60405180910390f35b3480156104c957600080fd5b506104d2611140565b6040516104df9190614143565b60405180910390f35b3480156104f457600080fd5b5061050f600480360381019061050a9190613cf1565b611164565b005b34801561051d57600080fd5b506105266111fd565b6040516105339190614420565b60405180910390f35b34801561054857600080fd5b50610551611217565b60405161055e9190614420565b60405180910390f35b34801561057357600080fd5b5061057c611221565b6040516105899190614143565b60405180910390f35b34801561059e57600080fd5b506105b960048036038101906105b49190613b17565b611247565b005b3480156105c757600080fd5b506105d061131e565b6040516105dd9190614203565b60405180910390f35b3480156105f257600080fd5b506105fb611331565b6040516106089190614203565b60405180910390f35b34801561061d57600080fd5b50610626611344565b6040516106339190614420565b60405180910390f35b34801561064857600080fd5b5061065161134e565b60405161065e9190614420565b60405180910390f35b34801561067357600080fd5b5061068e60048036038101906106899190613b71565b611358565b005b34801561069c57600080fd5b506106a5611424565b6040516106b29190614420565b60405180910390f35b3480156106c757600080fd5b506106e260048036038101906106dd9190613d9e565b61142e565b005b3480156106f057600080fd5b506106f96114d6565b6040516107069190614420565b60405180910390f35b34801561071b57600080fd5b5061073660048036038101906107319190613b17565b6114e0565b6040516107439190614420565b60405180910390f35b34801561075857600080fd5b50610761611529565b005b34801561076f57600080fd5b506107786115b1565b005b34801561078657600080fd5b506107a1600480360381019061079c9190613cf1565b61164a565b005b3480156107af57600080fd5b506107ca60048036038101906107c59190613d9e565b6116e3565b005b3480156107d857600080fd5b506107e1611769565b6040516107ee9190614143565b60405180910390f35b34801561080357600080fd5b5061081e60048036038101906108199190613d9e565b611778565b005b34801561082c57600080fd5b506108356117fe565b6040516108429190614143565b60405180910390f35b34801561085757600080fd5b50610860611827565b60405161086d9190614420565b60405180910390f35b34801561088257600080fd5b5061088b611831565b604051610898919061421e565b60405180910390f35b3480156108ad57600080fd5b506108c860048036038101906108c39190613c71565b6118c3565b005b3480156108d657600080fd5b506108df6119de565b6040516108ec9190614420565b60405180910390f35b34801561090157600080fd5b5061090a6119e8565b6040516109179190614420565b60405180910390f35b34801561092c57600080fd5b506109356119ee565b604051610942919061415e565b60405180910390f35b34801561095757600080fd5b50610972600480360381019061096d9190613b9e565b611a14565b005b34801561098057600080fd5b5061099b60048036038101906109969190613d9e565b611aeb565b005b3480156109a957600080fd5b506109c460048036038101906109bf9190613cb1565b611b93565b6040516109d19190614203565b60405180910390f35b3480156109e657600080fd5b50610a0160048036038101906109fc9190613b17565b611bb1565b005b348015610a0f57600080fd5b50610a2a6004803603810190610a259190613b17565b611c88565b604051610a379190614203565b60405180910390f35b348015610a4c57600080fd5b50610a55611ca8565b604051610a629190614420565b60405180910390f35b348015610a7757600080fd5b50610a926004803603810190610a8d9190613b17565b611cb2565b005b348015610aa057600080fd5b50610abb6004803603810190610ab69190613b17565b611d72565b005b348015610ac957600080fd5b50610ae46004803603810190610adf9190613b17565b611e49565b604051610af19190614203565b60405180910390f35b348015610b0657600080fd5b50610b216004803603810190610b1c9190613d9e565b611e9f565b005b348015610b2f57600080fd5b50610b38611f48565b604051610b459190614203565b60405180910390f35b348015610b5a57600080fd5b50610b756004803603810190610b709190613d9e565b611f5f565b005b348015610b8357600080fd5b50610b9e6004803603810190610b999190613bde565b611fe5565b604051610bab9190614420565b60405180910390f35b348015610bc057600080fd5b50610bc961206c565b604051610bd69190614420565b60405180910390f35b348015610beb57600080fd5b50610bf4612076565b604051610c019190614420565b60405180910390f35b348015610c1657600080fd5b50610c316004803603810190610c2c9190613d9e565b612080565b005b348015610c3f57600080fd5b50610c5a6004803603810190610c559190613b17565b612106565b005b348015610c6857600080fd5b50610c836004803603810190610c7e9190613d4b565b6121fe565b005b606060018054610c9490614777565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc090614777565b8015610d0d5780601f10610ce257610100808354040283529160200191610d0d565b820191906000526020600020905b815481529060010190602001808311610cf057829003601f168201915b5050505050905090565b610d1f61230d565b73ffffffffffffffffffffffffffffffffffffffff16610d3d6117fe565b73ffffffffffffffffffffffffffffffffffffffff1614610d93576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8a90614380565b60405180910390fd5b8060198190555050565b6000610db1610daa61230d565b8484612315565b6001905092915050565b610dc361230d565b73ffffffffffffffffffffffffffffffffffffffff16610de16117fe565b73ffffffffffffffffffffffffffffffffffffffff1614610e37576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2e90614380565b60405180910390fd5b6001601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001601860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600a54905090565b602260009054906101000a900460ff1681565b6000600954905090565b6000600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061100d61230d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205482111561108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108190614360565b60405180910390fd5b6110958484846124e0565b611135846110a161230d565b84600e60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006110eb61230d565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054611130919061465c565b612315565b600190509392505050565b7f000000000000000000000000000000000000000000000000000000000000dead81565b61116c61230d565b73ffffffffffffffffffffffffffffffffffffffff1661118a6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146111e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111d790614380565b60405180910390fd5b80601d60006101000a81548160ff02191690831515021790555050565b6000600360009054906101000a900460ff1660ff16905090565b6000600b54905090565b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b61124f61230d565b73ffffffffffffffffffffffffffffffffffffffff1661126d6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146112c3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112ba90614380565b60405180910390fd5b6001600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600860009054906101000a900460ff1681565b602260019054906101000a900460ff1681565b6000601954905090565b6000602054905090565b61136061230d565b73ffffffffffffffffffffffffffffffffffffffff1661137e6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146113d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113cb90614380565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f1935050505015801561141f573d6000803e3d6000fd5b505050565b6000602454905090565b61143661230d565b73ffffffffffffffffffffffffffffffffffffffff166114546117fe565b73ffffffffffffffffffffffffffffffffffffffff16146114aa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114a190614380565b60405180910390fd5b806005819055506064600554600a546114c39190614602565b6114cd91906145d1565b60138190555050565b6000600754905090565b6000600c60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61153161230d565b73ffffffffffffffffffffffffffffffffffffffff1661154f6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146115a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159c90614380565b60405180910390fd5b6115af6000613216565b565b6115b961230d565b73ffffffffffffffffffffffffffffffffffffffff166115d76117fe565b73ffffffffffffffffffffffffffffffffffffffff161461162d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161162490614380565b60405180910390fd5b6000600860006101000a81548160ff021916908315150217905550565b61165261230d565b73ffffffffffffffffffffffffffffffffffffffff166116706117fe565b73ffffffffffffffffffffffffffffffffffffffff16146116c6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116bd90614380565b60405180910390fd5b80602260016101000a81548160ff02191690831515021790555050565b6116eb61230d565b73ffffffffffffffffffffffffffffffffffffffff166117096117fe565b73ffffffffffffffffffffffffffffffffffffffff161461175f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161175690614380565b60405180910390fd5b8060208190555050565b60006117736117fe565b905090565b61178061230d565b73ffffffffffffffffffffffffffffffffffffffff1661179e6117fe565b73ffffffffffffffffffffffffffffffffffffffff16146117f4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117eb90614380565b60405180910390fd5b80601e8190555050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000601e54905090565b60606002805461184090614777565b80601f016020809104026020016040519081016040528092919081815260200182805461186c90614777565b80156118b95780601f1061188e576101008083540402835291602001916118b9565b820191906000526020600020905b81548152906001019060200180831161189c57829003601f168201915b5050505050905090565b6118cb61230d565b73ffffffffffffffffffffffffffffffffffffffff166118e96117fe565b73ffffffffffffffffffffffffffffffffffffffff161461193f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161193690614380565b60405180910390fd5b602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156119d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119c7906142a0565b60405180910390fd5b6119da82826132da565b5050565b6000601b54905090565b600b5481565b601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b611a1c61230d565b73ffffffffffffffffffffffffffffffffffffffff16611a3a6117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611a90576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a8790614380565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611af361230d565b73ffffffffffffffffffffffffffffffffffffffff16611b116117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611b67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b5e90614380565b60405180910390fd5b806006819055506064600654600a54611b809190614602565b611b8a91906145d1565b60148190555050565b6000611ba7611ba061230d565b84846124e0565b6001905092915050565b611bb961230d565b73ffffffffffffffffffffffffffffffffffffffff16611bd76117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2490614380565b60405180910390fd5b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b60106020528060005260406000206000915054906101000a900460ff1681565b6000601454905090565b611cba61230d565b73ffffffffffffffffffffffffffffffffffffffff16611cd86117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611d2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2590614380565b60405180910390fd5b80601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b611d7a61230d565b73ffffffffffffffffffffffffffffffffffffffff16611d986117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611dee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de590614380565b60405180910390fd5b6001601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6000600d60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b611ea761230d565b73ffffffffffffffffffffffffffffffffffffffff16611ec56117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f1290614380565b60405180910390fd5b806007819055506103e8600754600a54611f359190614602565b611f3f91906145d1565b600b8190555050565b6000601d60009054906101000a900460ff16905090565b611f6761230d565b73ffffffffffffffffffffffffffffffffffffffff16611f856117fe565b73ffffffffffffffffffffffffffffffffffffffff1614611fdb576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fd290614380565b60405180910390fd5b8060098190555050565b6000600e60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b6000602354905090565b6000601354905090565b61208861230d565b73ffffffffffffffffffffffffffffffffffffffff166120a66117fe565b73ffffffffffffffffffffffffffffffffffffffff16146120fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120f390614380565b60405180910390fd5b80601b8190555050565b61210e61230d565b73ffffffffffffffffffffffffffffffffffffffff1661212c6117fe565b73ffffffffffffffffffffffffffffffffffffffff1614612182576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161217990614380565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121e990614260565b60405180910390fd5b6121fb81613216565b50565b61220661230d565b73ffffffffffffffffffffffffffffffffffffffff166122246117fe565b73ffffffffffffffffffffffffffffffffffffffff161461227a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161227190614380565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff1663a9059cbb83836040518363ffffffff1660e01b81526004016122b5929190614179565b602060405180830381600087803b1580156122cf57600080fd5b505af11580156122e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123079190613d1e565b50505050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612385576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237c90614400565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec90614280565b60405180910390fd5b80600e60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516124d39190614420565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612550576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612547906143e0565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156125c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125b790614240565b60405180910390fd5b60008111612603576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125fa90614300565b60405180910390fd5b6000600c60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101561268a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612681906142c0565b60405180910390fd5b60001515601d60009054906101000a900460ff161515141561278757601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127475750601760008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b612786576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161277d90614320565b60405180910390fd5b5b600860009054906101000a900460ff1615612b74576127a46117fe565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161415801561281257506127e26117fe565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561284b5750600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015612885575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15612b7357601060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16801561292d5750600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b156129d457601454821115612977576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161296e90614340565b60405180910390fd5b601354612983846114e0565b8361298e919061457b565b11156129cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016129c6906143a0565b60405180910390fd5b612b72565b601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612a775750600f60008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612ac657601454821115612ac1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ab8906142e0565b60405180910390fd5b612b71565b600f60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612b7057601354612b23846114e0565b83612b2e919061457b565b1115612b6f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b66906143a0565b60405180910390fd5b5b5b5b5b5b6000612b7f306114e0565b9050600b548110158015612ba05750602260009054906101000a900460ff16155b8015612bfa5750602660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1614155b8015612c125750602260019054906101000a900460ff165b15612c3057600b548110612c2f57600b549050612c2e8161337b565b5b5b600060019050600d60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612cd75750600d60008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612ce9576000600481905550600090505b6000808215612fe55760011515601560008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1615151480612da1575060011515601560008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515145b15612de1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612dd8906143c0565b60405180910390fd5b601060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612e885750602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff1614155b15612ee4576000600481905550606460205487612ea59190614602565b612eaf91906145d1565b91506064601e5487612ec19190614602565b612ecb91906145d1565b90508082612ed9919061457b565b600481905550612fe4565b601060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8b5750602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff1614155b15612fe35760006004819055506064601b5487612fa89190614602565b612fb291906145d1565b9150606460195487612fc49190614602565b612fce91906145d1565b90508082612fdc919061457b565b6004819055505b5b5b8585612ff1919061465c565b600c60008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550808287613041919061465c565b61304b919061465c565b600c60008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254613099919061457b565b925050819055506000811461319a57600454600c60003073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546130f9919061457b565b925050819055508060246000828254613112919061457b565b92505081905550816023600082825461312b919061457b565b925050819055503073ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef6004546040516131919190614420565b60405180910390a35b8673ffffffffffffffffffffffffffffffffffffffff168873ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600454896131f7919061465c565b6040516132049190614420565b60405180910390a35050505050505050565b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050816000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b80601060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b6001602260006101000a81548160ff0219169083151502179055506133a1602454613411565b6133ac60235461349c565b7f4596ef7337c1c88bb740707471cfc0ec6d0212036b05ab1bdbb09cf3e3f01904816040516133db9190614420565b60405180910390a1600060238190555060006024819055506000602260006101000a81548160ff02191690831515021790555050565b600060028261342091906145d1565b905060008183613430919061465c565b9050600047905061344083613710565b6000814761344e919061465c565b905061345a8382613962565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56184828560405161348d939291906144ef565b60405180910390a15050505050565b6000600267ffffffffffffffff8111156134b9576134b8614865565b5b6040519080825280602002602001820160405280156134e75781602001602082028036833780820191505090505b50905030816000815181106134ff576134fe614836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b1580156135a157600080fd5b505afa1580156135b5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135d99190613b44565b816001815181106135ed576135ec614836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff168152505061365430602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612315565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac94783600084601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16426040518663ffffffff1660e01b81526004016136da95949392919061443b565b600060405180830381600087803b1580156136f457600080fd5b505af1158015613708573d6000803e3d6000fd5b505050505050565b6000600267ffffffffffffffff81111561372d5761372c614865565b5b60405190808252806020026020018201604052801561375b5781602001602082028036833780820191505090505b509050308160008151811061377357613772614836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b815260040160206040518083038186803b15801561381557600080fd5b505afa158015613829573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061384d9190613b44565b8160018151811061386157613860614836565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506138c830602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612315565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b815260040161392c959493929190614495565b600060405180830381600087803b15801561394657600080fd5b505af115801561395a573d6000803e3d6000fd5b505050505050565b61398f30602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1684612315565b602560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663f305d7198230856000807f000000000000000000000000000000000000000000000000000000000000dead426040518863ffffffff1660e01b8152600401613a16969594939291906141a2565b6060604051808303818588803b158015613a2f57600080fd5b505af1158015613a43573d6000803e3d6000fd5b50505050506040513d601f19601f82011682018060405250810190613a689190613dcb565b5050505050565b600081359050613a7e81614cb3565b92915050565b600081519050613a9381614cb3565b92915050565b600081359050613aa881614cca565b92915050565b600081359050613abd81614ce1565b92915050565b600081519050613ad281614ce1565b92915050565b600081359050613ae781614cf8565b92915050565b600081359050613afc81614d0f565b92915050565b600081519050613b1181614d0f565b92915050565b600060208284031215613b2d57613b2c614894565b5b6000613b3b84828501613a6f565b91505092915050565b600060208284031215613b5a57613b59614894565b5b6000613b6884828501613a84565b91505092915050565b600060208284031215613b8757613b86614894565b5b6000613b9584828501613a99565b91505092915050565b60008060408385031215613bb557613bb4614894565b5b6000613bc385828601613a99565b9250506020613bd485828601613aae565b9150509250929050565b60008060408385031215613bf557613bf4614894565b5b6000613c0385828601613a6f565b9250506020613c1485828601613a6f565b9150509250929050565b600080600060608486031215613c3757613c36614894565b5b6000613c4586828701613a6f565b9350506020613c5686828701613a6f565b9250506040613c6786828701613aed565b9150509250925092565b60008060408385031215613c8857613c87614894565b5b6000613c9685828601613a6f565b9250506020613ca785828601613aae565b9150509250929050565b60008060408385031215613cc857613cc7614894565b5b6000613cd685828601613a6f565b9250506020613ce785828601613aed565b9150509250929050565b600060208284031215613d0757613d06614894565b5b6000613d1584828501613aae565b91505092915050565b600060208284031215613d3457613d33614894565b5b6000613d4284828501613ac3565b91505092915050565b600080600060608486031215613d6457613d63614894565b5b6000613d7286828701613ad8565b9350506020613d8386828701613a99565b9250506040613d9486828701613aed565b9150509250925092565b600060208284031215613db457613db3614894565b5b6000613dc284828501613aed565b91505092915050565b600080600060608486031215613de457613de3614894565b5b6000613df286828701613b02565b9350506020613e0386828701613b02565b9250506040613e1486828701613b02565b9150509250925092565b6000613e2a8383613e54565b60208301905092915050565b613e3f816146fc565b82525050565b613e4e816146a2565b82525050565b613e5d81614690565b82525050565b613e6c81614690565b82525050565b6000613e7d82614536565b613e878185614559565b9350613e9283614526565b8060005b83811015613ec3578151613eaa8882613e1e565b9750613eb58361454c565b925050600181019050613e96565b5085935050505092915050565b613ed9816146b4565b82525050565b613ee88161470e565b82525050565b6000613ef982614541565b613f03818561456a565b9350613f13818560208601614744565b613f1c81614899565b840191505092915050565b6000613f3460238361456a565b9150613f3f826148aa565b604082019050919050565b6000613f5760268361456a565b9150613f62826148f9565b604082019050919050565b6000613f7a60228361456a565b9150613f8582614948565b604082019050919050565b6000613f9d60398361456a565b9150613fa882614997565b604082019050919050565b6000613fc060268361456a565b9150613fcb826149e6565b604082019050919050565b6000613fe360368361456a565b9150613fee82614a35565b604082019050919050565b600061400660328361456a565b915061401182614a84565b604082019050919050565b6000614029601d8361456a565b915061403482614ad3565b602082019050919050565b600061404c60358361456a565b915061405782614afc565b604082019050919050565b600061406f60288361456a565b915061407a82614b4b565b604082019050919050565b600061409260208361456a565b915061409d82614b9a565b602082019050919050565b60006140b5601b8361456a565b91506140c082614bc3565b602082019050919050565b60006140d860188361456a565b91506140e382614bec565b602082019050919050565b60006140fb60258361456a565b915061410682614c15565b604082019050919050565b600061411e60248361456a565b915061412982614c64565b604082019050919050565b61413d816146f2565b82525050565b60006020820190506141586000830184613e63565b92915050565b60006020820190506141736000830184613e45565b92915050565b600060408201905061418e6000830185613e36565b61419b6020830184614134565b9392505050565b600060c0820190506141b76000830189613e63565b6141c46020830188614134565b6141d16040830187613edf565b6141de6060830186613edf565b6141eb6080830185613e63565b6141f860a0830184614134565b979650505050505050565b60006020820190506142186000830184613ed0565b92915050565b600060208201905081810360008301526142388184613eee565b905092915050565b6000602082019050818103600083015261425981613f27565b9050919050565b6000602082019050818103600083015261427981613f4a565b9050919050565b6000602082019050818103600083015261429981613f6d565b9050919050565b600060208201905081810360008301526142b981613f90565b9050919050565b600060208201905081810360008301526142d981613fb3565b9050919050565b600060208201905081810360008301526142f981613fd6565b9050919050565b6000602082019050818103600083015261431981613ff9565b9050919050565b600060208201905081810360008301526143398161401c565b9050919050565b600060208201905081810360008301526143598161403f565b9050919050565b6000602082019050818103600083015261437981614062565b9050919050565b6000602082019050818103600083015261439981614085565b9050919050565b600060208201905081810360008301526143b9816140a8565b9050919050565b600060208201905081810360008301526143d9816140cb565b9050919050565b600060208201905081810360008301526143f9816140ee565b9050919050565b6000602082019050818103600083015261441981614111565b9050919050565b60006020820190506144356000830184614134565b92915050565b600060a0820190506144506000830188614134565b61445d6020830187613edf565b818103604083015261446f8186613e72565b905061447e6060830185613e36565b61448b6080830184614134565b9695505050505050565b600060a0820190506144aa6000830188614134565b6144b76020830187613edf565b81810360408301526144c98186613e72565b90506144d86060830185613e63565b6144e56080830184614134565b9695505050505050565b60006060820190506145046000830186614134565b6145116020830185614134565b61451e6040830184614134565b949350505050565b6000819050602082019050919050565b600081519050919050565b600081519050919050565b6000602082019050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000614586826146f2565b9150614591836146f2565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156145c6576145c56147a9565b5b828201905092915050565b60006145dc826146f2565b91506145e7836146f2565b9250826145f7576145f66147d8565b5b828204905092915050565b600061460d826146f2565b9150614618836146f2565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614651576146506147a9565b5b828202905092915050565b6000614667826146f2565b9150614672836146f2565b925082821015614685576146846147a9565b5b828203905092915050565b600061469b826146d2565b9050919050565b60006146ad826146d2565b9050919050565b60008115159050919050565b60006146cb82614690565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600061470782614720565b9050919050565b6000614719826146f2565b9050919050565b600061472b82614732565b9050919050565b600061473d826146d2565b9050919050565b60005b83811015614762578082015181840152602081019050614747565b83811115614771576000848401525b50505050565b6000600282049050600182168061478f57607f821691505b602082108114156147a3576147a2614807565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b7f45524332303a207472616e73666572656420616d6f756e74206d75737420626560008201527f2067726561746572207468616e207a65726f0000000000000000000000000000602082015250565b7f43616e742074726164652c2074726164652069732064697361626c6564000000600082015250565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f556e61626c6520746f20657863656564204d61782057616c6c65740000000000600082015250565b7f4e6f20626f747320616c6c6f77656420746f2074726164650000000000000000600082015250565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b614cbc81614690565b8114614cc757600080fd5b50565b614cd3816146a2565b8114614cde57600080fd5b50565b614cea816146b4565b8114614cf557600080fd5b50565b614d01816146c0565b8114614d0c57600080fd5b50565b614d18816146f2565b8114614d2357600080fd5b5056fea26469706673582212207ad819fea980056e5b8ecd9d5ce503f2d43bf7e01203362a4a580a9465b5fe6a64736f6c63430008070033
Deployed Bytecode Sourcemap
5442:15829:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10012:76;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20089:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9659:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18807:302;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9069:106;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7190:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11511:101;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10552:388;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7272:81;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17005:90;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9922:84;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;21163:105;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7738:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18561:114;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5783:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;7225:40;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11084:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11401:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16819:178;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8961:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10363:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;21060:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;9186:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4807:94;;;;;;;;;;;;;:::i;:::-;;9833:81;;;;;;;;;;;;;:::i;:::-;;19241:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20451:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;8758:86;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20332:113;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4156:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11297:98;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10094:88;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19645:242;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11186:96;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5938:71;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;6353:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10948:130;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10192:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9315:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18683:116;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;6267:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20682:89;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19392:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16026:123;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;11618:118;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20777:174;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;20957:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19121:112;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;9502:148;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;8850:99;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20579:97;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;20206:111;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5056:192;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16568:243;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10012:76;10051:13;10078:5;10071:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10012:76;:::o;20089:111::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20183:9:::1;20171;:21;;;;20089:111:::0;:::o;9659:168::-;9736:4;9756:37;9765:12;:10;:12::i;:::-;9778:7;9786:6;9756:8;:37::i;:::-;9815:4;9808:11;;9659:168;;;;:::o;18807:302::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18950:4:::1;18913:17;:34;18939:6;18913:34;;;;;;;;;;;;;;;;:41;;;;;;;;;;;;;;;;;;18994:4;18965:17;:26;18983:7;18965:26;;;;;;;;;;;;;;;;:33;;;;;;;;;;;;;;;;;;19045:4;19009:16;:33;19034:6;19009:33;;;;;;;;;;;;;;;;:40;;;;;;;;;;;;;;;;;;19088:4;19060:16;:25;19077:7;19060:25;;;;;;;;;;;;;;;;:32;;;;;;;;;;;;;;;;;;18807:302:::0;;:::o;9069:106::-;9124:7;9154:12;;9147:19;;9069:106;:::o;7190:28::-;;;;;;;;;;;;;:::o;11511:101::-;11562:7;11588:16;;11581:23;;11511:101;:::o;10552:388::-;10684:4;10718:11;:19;10730:6;10718:19;;;;;;;;;;;;;;;:33;10738:12;:10;:12::i;:::-;10718:33;;;;;;;;;;;;;;;;10708:6;:43;;10700:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;10801:36;10811:6;10819:9;10830:6;10801:9;:36::i;:::-;10842:74;10851:6;10859:12;:10;:12::i;:::-;10909:6;10873:11;:19;10885:6;10873:19;;;;;;;;;;;;;;;:33;10893:12;:10;:12::i;:::-;10873:33;;;;;;;;;;;;;;;;:42;;;;:::i;:::-;10842:8;:74::i;:::-;10928:4;10921:11;;10552:388;;;;;:::o;7272:81::-;;;:::o;17005:90::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17081:6:::1;17066:12;;:21;;;;;;;;;;;;;;;;;;17005:90:::0;:::o;9922:84::-;9963:7;9989:9;;;;;;;;;;;9982:16;;;;9922:84;:::o;21163:105::-;21214:7;21240:20;;21233:27;;21163:105;:::o;7738:28::-;;;;;;;;;;;;;:::o;18561:114::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18663:4:::1;18632:17;:28;18650:9;18632:28;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18561:114:::0;:::o;5783:33::-;;;;;;;;;;;;;:::o;7225:40::-;;;;;;;;;;;;;:::o;11084:96::-;11133:7;11163:9;;11156:16;;11084:96;:::o;11401:98::-;11451:7;11481:10;;11474:17;;11401:98;:::o;16819:178::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16895:18:::1;16916:21;16895:42;;16956:11;16948:29;;:41;16978:10;16948:41;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;16884:113;16819:178:::0;:::o;8961:99::-;9012:7;9042:9;;9035:16;;8961:99;:::o;10363:175::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10459:6:::1;10439:17;:26;;;;10525:3;10507:17;;10494:12;;:30;;;;:::i;:::-;:34;;;;:::i;:::-;10476:15;:52;;;;10363:175:::0;:::o;21060:97::-;21111:7;21137:12;;21130:19;;21060:97;:::o;9186:118::-;9252:7;9278:9;:18;9288:7;9278:18;;;;;;;;;;;;;;;;9271:25;;9186:118;;;:::o;4807:94::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;4872:21:::1;4890:1;4872:9;:21::i;:::-;4807:94::o:0;9833:81::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;9901:5:::1;9884:14;;:22;;;;;;;;;;;;;;;;;;9833:81::o:0;19241:113::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19338:8:::1;19314:21;;:32;;;;;;;;;;;;;;;;;;19241:113:::0;:::o;20451:112::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20546:9:::1;20534:10;:21;;;;20451:112:::0;:::o;8758:86::-;8799:7;8829;:5;:7::i;:::-;8822:14;;8758:86;:::o;20332:113::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20428:9:::1;20416:10;:21;;;;20332:113:::0;:::o;4156:87::-;4202:7;4229:6;;;;;;;;;;;4222:13;;4156:87;:::o;11297:98::-;11347:7;11377:10;;11370:17;;11297:98;:::o;10094:88::-;10135:13;10167:7;10160:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;10094:88;:::o;19645:242::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19752:13:::1;;;;;;;;;;;19744:21;;:4;:21;;;;19736:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;19838:41;19867:4;19873:5;19838:28;:41::i;:::-;19645:242:::0;;:::o;11186:96::-;11235:7;11265:9;;11258:16;;11186:96;:::o;5938:71::-;;;;:::o;6353:93::-;;;;;;;;;;;;;:::o;10948:130::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11065:5:::1;11039:10;:23;11050:11;11039:23;;;;;;;;;;;;;;;;:31;;;;;;;;;;;;;;;;;;10948:130:::0;;:::o;10192:164::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10280:6:::1;10264:13;:22;;;;10338:3;10324:13;;10311:12;;:26;;;;:::i;:::-;:30;;;;:::i;:::-;10297:11;:44;;;;10192:164:::0;:::o;9315:176::-;9395:4;9415:40;9425:12;:10;:12::i;:::-;9438:9;9448:6;9415:9;:40::i;:::-;9477:4;9470:11;;9315:176;;;;:::o;18683:116::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18786:5:::1;18756:17;:27;18774:8;18756:27;;;;;;;;;;;;;;;;:35;;;;;;;;;;;;;;;;;;18683:116:::0;:::o;6267:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;20682:89::-;20726:7;20752:11;;20745:18;;20682:89;:::o;19392:118::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19491:10:::1;19464:16;;:38;;;;;;;;;;;;;;;;;;19392:118:::0;:::o;16026:123::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16130:4:::1;16098:17;:29;16116:10;16098:29;;;;;;;;;;;;;;;;:36;;;;;;;;;;;;;;;;;;16026:123:::0;:::o;11618:118::-;11675:4;11702:17;:26;11720:7;11702:26;;;;;;;;;;;;;;;;;;;;;;;;;11695:33;;11618:118;;;:::o;20777:174::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20863:6:::1;20848:12;:21;;;;20929:4;20916:12;;20903;;:25;;;;:::i;:::-;:30;;;;:::i;:::-;20880:20;:53;;;;20777:174:::0;:::o;20957:97::-;21008:4;21031:12;;;;;;;;;;;21024:19;;20957:97;:::o;19121:112::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19211:12:::1;19192:16;:31;;;;19121:112:::0;:::o;9502:148::-;9585:7;9615:11;:18;9627:5;9615:18;;;;;;;;;;;;;;;:27;9634:7;9615:27;;;;;;;;;;;;;;;;9608:34;;9502:148;;;;:::o;8850:99::-;8901:7;8931:9;;8924:16;;8850:99;:::o;20579:97::-;20627:7;20653:15;;20646:22;;20579:97;:::o;20206:111::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20300:9:::1;20289;:20;;;;20206:111:::0;:::o;5056:192::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;5165:1:::1;5145:22;;:8;:22;;;;5137:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;5221:19;5231:8;5221:9;:19::i;:::-;5056:192:::0;:::o;16568:243::-;4387:12;:10;:12::i;:::-;4376:23;;:7;:5;:7::i;:::-;:23;;;4368:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16761:12:::1;:21;;;16783:11;16796:6;16761:42;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;16568:243:::0;;;:::o;116:98::-;169:7;196:10;189:17;;116:98;:::o;18193:322::-;18302:1;18285:19;;:5;:19;;;;18277:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18377:1;18358:21;;:7;:21;;;;18350:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18455:6;18425:11;:18;18437:5;18425:18;;;;;;;;;;;;;;;:27;18444:7;18425:27;;;;;;;;;;;;;;;:36;;;;18487:7;18471:32;;18480:5;18471:32;;;18496:6;18471:32;;;;;;:::i;:::-;;;;;;;;18193:322;;;:::o;11744:4007::-;11858:1;11842:18;;:4;:18;;;;11834:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;11929:1;11915:16;;:2;:16;;;;11907:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;11999:1;11990:6;:10;11982:72;;;;;;;;;;;;:::i;:::-;;;;;;;;;12065:21;12089:9;:15;12099:4;12089:15;;;;;;;;;;;;;;;;12065:39;;12140:6;12123:13;:23;;12115:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;12219:5;12203:21;;:12;;;;;;;;;;;:21;;;12200:141;;;12248:17;:21;12266:2;12248:21;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;12273:17;:23;12291:4;12273:23;;;;;;;;;;;;;;;;;;;;;;;;;12248:48;12240:89;;;;;;;;;;;;:::i;:::-;;;;;;;;;12200:141;12386:14;;;;;;;;;;;12383:1075;;;12446:7;:5;:7::i;:::-;12438:15;;:4;:15;;;;:49;;;;;12480:7;:5;:7::i;:::-;12474:13;;:2;:13;;;;12438:49;:86;;;;;12522:1;12508:16;;:2;:16;;;;12438:86;:128;;;;;12559:6;12545:21;;:2;:21;;;;12438:128;12416:1031;;;12652:25;:31;12678:4;12652:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;12688:31;:35;12720:2;12688:35;;;;;;;;;;;;;;;;;;;;;;;;;12687:36;12652:71;12648:784;;;12766:11;;12756:6;:21;;12748:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;12892:15;;12875:13;12885:2;12875:9;:13::i;:::-;12866:6;:22;;;;:::i;:::-;:41;;12858:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;12648:784;;;13040:25;:29;13066:2;13040:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;13074:31;:37;13106:4;13074:37;;;;;;;;;;;;;;;;;;;;;;;;;13073:38;13040:71;13036:396;;;13154:11;;13144:6;:21;;13136:88;;;;;;;;;;;;:::i;:::-;;;;;;;;;13036:396;;;13271:31;:35;13303:2;13271:35;;;;;;;;;;;;;;;;;;;;;;;;;13267:165;;13365:15;;13348:13;13358:2;13348:9;:13::i;:::-;13339:6;:22;;;;:::i;:::-;:41;;13331:81;;;;;;;;;;;;:::i;:::-;;;;;;;;;13267:165;13036:396;12648:784;12416:1031;12383:1075;13469:25;13497:24;13515:4;13497:9;:24::i;:::-;13469:52;;13557:20;;13537:17;:40;;:66;;;;;13587:16;;;;;;;;;;;13586:17;13537:66;:96;;;;;13620:13;;;;;;;;;;;13612:21;;:4;:21;;;;13537:96;:126;;;;;13642:21;;;;;;;;;;;13537:126;13534:352;;;13707:20;;13686:17;:41;13683:188;;13772:20;;13752:40;;13815:36;13833:17;13815;:36::i;:::-;13683:188;13534:352;13902:13;13918:4;13902:20;;13968:17;:23;13986:4;13968:23;;;;;;;;;;;;;;;;;;;;;;;;;:48;;;;13995:17;:21;14013:2;13995:21;;;;;;;;;;;;;;;;;;;;;;;;;13968:48;13965:159;;;14053:1;14037:13;:17;;;;14084:5;14073:16;;13965:159;14138:17;14181;14259:8;14256:1023;;;14356:4;14336:24;;:10;:16;14347:4;14336:16;;;;;;;;;;;;;;;;;;;;;;;;;:24;;;:46;;;;14378:4;14362:20;;:10;:14;14373:2;14362:14;;;;;;;;;;;;;;;;;;;;;;;;;:20;;;14336:46;14333:127;;;14406:34;;;;;;;;;;:::i;:::-;;;;;;;;14333:127;14514:25;:29;14540:2;14514:29;;;;;;;;;;;;;;;;;;;;;;;;;:55;;;;;14561:7;;;;;;;;;;;14547:22;;:2;:22;;;;14514:55;14510:734;;;14614:1;14598:13;:17;;;;14674:3;14663:10;;14654:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;14642:35;;14736:3;14725:10;;14716:6;:19;;;;:::i;:::-;:23;;;;:::i;:::-;14704:35;;14820:9;14808;:21;;;;:::i;:::-;14792:13;:37;;;;14510:734;;;14904:25;:31;14930:4;14904:31;;;;;;;;;;;;;;;;;;;;;;;;;:59;;;;;14955:7;;;;;;;;;;;14939:24;;:4;:24;;;;14904:59;14901:343;;;15026:1;15010:13;:17;;;;15081:3;15071:9;;15062:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;15050:34;;15138:3;15128:9;;15119:6;:18;;;;:::i;:::-;:22;;;;:::i;:::-;15107:34;;15214:9;15202;:21;;;;:::i;:::-;15186:13;:37;;;;14901:343;14510:734;14256:1023;15329:6;15313:13;:22;;;;:::i;:::-;15295:9;:15;15305:4;15295:15;;;;;;;;;;;;;;;:40;;;;15388:9;15376;15367:6;:18;;;;:::i;:::-;:30;;;;:::i;:::-;15350:9;:13;15360:2;15350:13;;;;;;;;;;;;;;;;:47;;;;;;;:::i;:::-;;;;;;;;15428:1;15415:9;:14;15412:249;;15465:13;;15437:9;:24;15455:4;15437:24;;;;;;;;;;;;;;;;:41;;;;;;;:::i;:::-;;;;;;;;15536:9;15523;;:22;;;;;;;:::i;:::-;;;;;;;;15573:9;15560;;:22;;;;;;;:::i;:::-;;;;;;;;15616:4;15593:44;;15602:4;15593:44;;;15623:13;;15593:44;;;;;;:::i;:::-;;;;;;;;15412:249;15695:2;15680:39;;15689:4;15680:39;;;15705:13;;15698:6;:20;;;;:::i;:::-;15680:39;;;;;;:::i;:::-;;;;;;;;11813:3938;;;;;11744:4007;;;:::o;5256:173::-;5312:16;5331:6;;;;;;;;;;;5312:25;;5357:8;5348:6;;:17;;;;;;;;;;;;;;;;;;5412:8;5381:40;;5402:8;5381:40;;;;;;;;;;;;5301:128;5256:173;:::o;19893:188::-;20010:5;19976:25;:31;20002:4;19976:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;20067:5;20033:40;;20061:4;20033:40;;;;;;;;;;;;19893:188;;:::o;15757:262::-;7845:4;7826:16;;:23;;;;;;;;;;;;;;;;;;15837:25:::1;15852:9;;15837:14;:25::i;:::-;15873:30;15893:9;;15873:19;:30::i;:::-;15919:44;15949:13;15919:44;;;;;;:::i;:::-;;;;;;;;15986:1;15974:9;:13;;;;16010:1;15998:9;:13;;;;7879:5:::0;7860:16;;:24;;;;;;;;;;;;;;;;;;15757:262;:::o;17103:388::-;17165:12;17198:1;17180:15;:19;;;;:::i;:::-;17165:34;;17204:17;17242:4;17224:15;:22;;;;:::i;:::-;17204:42;;17251:22;17276:21;17251:46;;17304:22;17321:4;17304:16;:22::i;:::-;17331:18;17377:14;17352:21;:40;;;;:::i;:::-;17331:61;;17400:35;17413:9;17424:10;17400:12;:35::i;:::-;17445:41;17460:4;17465:10;17476:9;17445:41;;;;;;;;:::i;:::-;;;;;;;;17160:331;;;;17103:388;:::o;16155:399::-;16218:21;16256:1;16242:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16218:40;;16281:4;16263;16268:1;16263:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;16301:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;16291:4;16296:1;16291:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;16320:49;16337:4;16352:7;;;;;;;;;;;16362:6;16320:8;:49::i;:::-;16380:7;;;;;;;;;;;:58;;;16444:6;16456:1;16492:4;16502:16;;;;;;;;;;;16524:15;16380:164;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;16207:347;16155:399;:::o;17499:397::-;17558:21;17596:1;17582:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17558:40;;17621:4;17603;17608:1;17603:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;17641:7;;;;;;;;;;;:12;;;:14;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;17631:4;17636:1;17631:7;;;;;;;;:::i;:::-;;;;;;;:24;;;;;;;;;;;17660:54;17677:4;17692:7;;;;;;;;;;;17702:11;17660:8;:54::i;:::-;17725:7;;;;;;;;;;;:58;;;17789:11;17806:1;17842:4;17860;17871:15;17725:166;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;17553:343;17499:397;:::o;17908:277::-;17981:54;17998:4;18013:7;;;;;;;;;;;18023:11;17981:8;:54::i;:::-;18042:7;;;;;;;;;;;:23;;;18072:9;18096:4;18107:11;18124:1;18131;18138:11;18160:15;18042:138;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;17908:277;;:::o;7:139:1:-;53:5;91:6;78:20;69:29;;107:33;134:5;107:33;:::i;:::-;7:139;;;;:::o;152:143::-;209:5;240:6;234:13;225:22;;256:33;283:5;256:33;:::i;:::-;152:143;;;;:::o;301:155::-;355:5;393:6;380:20;371:29;;409:41;444:5;409:41;:::i;:::-;301:155;;;;:::o;462:133::-;505:5;543:6;530:20;521:29;;559:30;583:5;559:30;:::i;:::-;462:133;;;;:::o;601:137::-;655:5;686:6;680:13;671:22;;702:30;726:5;702:30;:::i;:::-;601:137;;;;:::o;744:165::-;803:5;841:6;828:20;819:29;;857:46;897:5;857:46;:::i;:::-;744:165;;;;:::o;915:139::-;961:5;999:6;986:20;977:29;;1015:33;1042:5;1015:33;:::i;:::-;915:139;;;;:::o;1060:143::-;1117:5;1148:6;1142:13;1133:22;;1164:33;1191:5;1164:33;:::i;:::-;1060:143;;;;:::o;1209:329::-;1268:6;1317:2;1305:9;1296:7;1292:23;1288:32;1285:119;;;1323:79;;:::i;:::-;1285:119;1443:1;1468:53;1513:7;1504:6;1493:9;1489:22;1468:53;:::i;:::-;1458:63;;1414:117;1209:329;;;;:::o;1544:351::-;1614:6;1663:2;1651:9;1642:7;1638:23;1634:32;1631:119;;;1669:79;;:::i;:::-;1631:119;1789:1;1814:64;1870:7;1861:6;1850:9;1846:22;1814:64;:::i;:::-;1804:74;;1760:128;1544:351;;;;:::o;1901:345::-;1968:6;2017:2;2005:9;1996:7;1992:23;1988:32;1985:119;;;2023:79;;:::i;:::-;1985:119;2143:1;2168:61;2221:7;2212:6;2201:9;2197:22;2168:61;:::i;:::-;2158:71;;2114:125;1901:345;;;;:::o;2252:484::-;2325:6;2333;2382:2;2370:9;2361:7;2357:23;2353:32;2350:119;;;2388:79;;:::i;:::-;2350:119;2508:1;2533:61;2586:7;2577:6;2566:9;2562:22;2533:61;:::i;:::-;2523:71;;2479:125;2643:2;2669:50;2711:7;2702:6;2691:9;2687:22;2669:50;:::i;:::-;2659:60;;2614:115;2252:484;;;;;:::o;2742:474::-;2810:6;2818;2867:2;2855:9;2846:7;2842:23;2838:32;2835:119;;;2873:79;;:::i;:::-;2835:119;2993:1;3018:53;3063:7;3054:6;3043:9;3039:22;3018:53;:::i;:::-;3008:63;;2964:117;3120:2;3146:53;3191:7;3182:6;3171:9;3167:22;3146:53;:::i;:::-;3136:63;;3091:118;2742:474;;;;;:::o;3222:619::-;3299:6;3307;3315;3364:2;3352:9;3343:7;3339:23;3335:32;3332:119;;;3370:79;;:::i;:::-;3332:119;3490:1;3515:53;3560:7;3551:6;3540:9;3536:22;3515:53;:::i;:::-;3505:63;;3461:117;3617:2;3643:53;3688:7;3679:6;3668:9;3664:22;3643:53;:::i;:::-;3633:63;;3588:118;3745:2;3771:53;3816:7;3807:6;3796:9;3792:22;3771:53;:::i;:::-;3761:63;;3716:118;3222:619;;;;;:::o;3847:468::-;3912:6;3920;3969:2;3957:9;3948:7;3944:23;3940:32;3937:119;;;3975:79;;:::i;:::-;3937:119;4095:1;4120:53;4165:7;4156:6;4145:9;4141:22;4120:53;:::i;:::-;4110:63;;4066:117;4222:2;4248:50;4290:7;4281:6;4270:9;4266:22;4248:50;:::i;:::-;4238:60;;4193:115;3847:468;;;;;:::o;4321:474::-;4389:6;4397;4446:2;4434:9;4425:7;4421:23;4417:32;4414:119;;;4452:79;;:::i;:::-;4414:119;4572:1;4597:53;4642:7;4633:6;4622:9;4618:22;4597:53;:::i;:::-;4587:63;;4543:117;4699:2;4725:53;4770:7;4761:6;4750:9;4746:22;4725:53;:::i;:::-;4715:63;;4670:118;4321:474;;;;;:::o;4801:323::-;4857:6;4906:2;4894:9;4885:7;4881:23;4877:32;4874:119;;;4912:79;;:::i;:::-;4874:119;5032:1;5057:50;5099:7;5090:6;5079:9;5075:22;5057:50;:::i;:::-;5047:60;;5003:114;4801:323;;;;:::o;5130:345::-;5197:6;5246:2;5234:9;5225:7;5221:23;5217:32;5214:119;;;5252:79;;:::i;:::-;5214:119;5372:1;5397:61;5450:7;5441:6;5430:9;5426:22;5397:61;:::i;:::-;5387:71;;5343:125;5130:345;;;;:::o;5481:661::-;5579:6;5587;5595;5644:2;5632:9;5623:7;5619:23;5615:32;5612:119;;;5650:79;;:::i;:::-;5612:119;5770:1;5795:66;5853:7;5844:6;5833:9;5829:22;5795:66;:::i;:::-;5785:76;;5741:130;5910:2;5936:61;5989:7;5980:6;5969:9;5965:22;5936:61;:::i;:::-;5926:71;;5881:126;6046:2;6072:53;6117:7;6108:6;6097:9;6093:22;6072:53;:::i;:::-;6062:63;;6017:118;5481:661;;;;;:::o;6148:329::-;6207:6;6256:2;6244:9;6235:7;6231:23;6227:32;6224:119;;;6262:79;;:::i;:::-;6224:119;6382:1;6407:53;6452:7;6443:6;6432:9;6428:22;6407:53;:::i;:::-;6397:63;;6353:117;6148:329;;;;:::o;6483:663::-;6571:6;6579;6587;6636:2;6624:9;6615:7;6611:23;6607:32;6604:119;;;6642:79;;:::i;:::-;6604:119;6762:1;6787:64;6843:7;6834:6;6823:9;6819:22;6787:64;:::i;:::-;6777:74;;6733:128;6900:2;6926:64;6982:7;6973:6;6962:9;6958:22;6926:64;:::i;:::-;6916:74;;6871:129;7039:2;7065:64;7121:7;7112:6;7101:9;7097:22;7065:64;:::i;:::-;7055:74;;7010:129;6483:663;;;;;:::o;7152:179::-;7221:10;7242:46;7284:3;7276:6;7242:46;:::i;:::-;7320:4;7315:3;7311:14;7297:28;;7152:179;;;;:::o;7337:147::-;7432:45;7471:5;7432:45;:::i;:::-;7427:3;7420:58;7337:147;;:::o;7490:142::-;7593:32;7619:5;7593:32;:::i;:::-;7588:3;7581:45;7490:142;;:::o;7638:108::-;7715:24;7733:5;7715:24;:::i;:::-;7710:3;7703:37;7638:108;;:::o;7752:118::-;7839:24;7857:5;7839:24;:::i;:::-;7834:3;7827:37;7752:118;;:::o;7906:732::-;8025:3;8054:54;8102:5;8054:54;:::i;:::-;8124:86;8203:6;8198:3;8124:86;:::i;:::-;8117:93;;8234:56;8284:5;8234:56;:::i;:::-;8313:7;8344:1;8329:284;8354:6;8351:1;8348:13;8329:284;;;8430:6;8424:13;8457:63;8516:3;8501:13;8457:63;:::i;:::-;8450:70;;8543:60;8596:6;8543:60;:::i;:::-;8533:70;;8389:224;8376:1;8373;8369:9;8364:14;;8329:284;;;8333:14;8629:3;8622:10;;8030:608;;;7906:732;;;;:::o;8644:109::-;8725:21;8740:5;8725:21;:::i;:::-;8720:3;8713:34;8644:109;;:::o;8759:147::-;8854:45;8893:5;8854:45;:::i;:::-;8849:3;8842:58;8759:147;;:::o;8912:364::-;9000:3;9028:39;9061:5;9028:39;:::i;:::-;9083:71;9147:6;9142:3;9083:71;:::i;:::-;9076:78;;9163:52;9208:6;9203:3;9196:4;9189:5;9185:16;9163:52;:::i;:::-;9240:29;9262:6;9240:29;:::i;:::-;9235:3;9231:39;9224:46;;9004:272;8912:364;;;;:::o;9282:366::-;9424:3;9445:67;9509:2;9504:3;9445:67;:::i;:::-;9438:74;;9521:93;9610:3;9521:93;:::i;:::-;9639:2;9634:3;9630:12;9623:19;;9282:366;;;:::o;9654:::-;9796:3;9817:67;9881:2;9876:3;9817:67;:::i;:::-;9810:74;;9893:93;9982:3;9893:93;:::i;:::-;10011:2;10006:3;10002:12;9995:19;;9654:366;;;:::o;10026:::-;10168:3;10189:67;10253:2;10248:3;10189:67;:::i;:::-;10182:74;;10265:93;10354:3;10265:93;:::i;:::-;10383:2;10378:3;10374:12;10367:19;;10026:366;;;:::o;10398:::-;10540:3;10561:67;10625:2;10620:3;10561:67;:::i;:::-;10554:74;;10637:93;10726:3;10637:93;:::i;:::-;10755:2;10750:3;10746:12;10739:19;;10398:366;;;:::o;10770:::-;10912:3;10933:67;10997:2;10992:3;10933:67;:::i;:::-;10926:74;;11009:93;11098:3;11009:93;:::i;:::-;11127:2;11122:3;11118:12;11111:19;;10770:366;;;:::o;11142:::-;11284:3;11305:67;11369:2;11364:3;11305:67;:::i;:::-;11298:74;;11381:93;11470:3;11381:93;:::i;:::-;11499:2;11494:3;11490:12;11483:19;;11142:366;;;:::o;11514:::-;11656:3;11677:67;11741:2;11736:3;11677:67;:::i;:::-;11670:74;;11753:93;11842:3;11753:93;:::i;:::-;11871:2;11866:3;11862:12;11855:19;;11514:366;;;:::o;11886:::-;12028:3;12049:67;12113:2;12108:3;12049:67;:::i;:::-;12042:74;;12125:93;12214:3;12125:93;:::i;:::-;12243:2;12238:3;12234:12;12227:19;;11886:366;;;:::o;12258:::-;12400:3;12421:67;12485:2;12480:3;12421:67;:::i;:::-;12414:74;;12497:93;12586:3;12497:93;:::i;:::-;12615:2;12610:3;12606:12;12599:19;;12258:366;;;:::o;12630:::-;12772:3;12793:67;12857:2;12852:3;12793:67;:::i;:::-;12786:74;;12869:93;12958:3;12869:93;:::i;:::-;12987:2;12982:3;12978:12;12971:19;;12630:366;;;:::o;13002:::-;13144:3;13165:67;13229:2;13224:3;13165:67;:::i;:::-;13158:74;;13241:93;13330:3;13241:93;:::i;:::-;13359:2;13354:3;13350:12;13343:19;;13002:366;;;:::o;13374:::-;13516:3;13537:67;13601:2;13596:3;13537:67;:::i;:::-;13530:74;;13613:93;13702:3;13613:93;:::i;:::-;13731:2;13726:3;13722:12;13715:19;;13374:366;;;:::o;13746:::-;13888:3;13909:67;13973:2;13968:3;13909:67;:::i;:::-;13902:74;;13985:93;14074:3;13985:93;:::i;:::-;14103:2;14098:3;14094:12;14087:19;;13746:366;;;:::o;14118:::-;14260:3;14281:67;14345:2;14340:3;14281:67;:::i;:::-;14274:74;;14357:93;14446:3;14357:93;:::i;:::-;14475:2;14470:3;14466:12;14459:19;;14118:366;;;:::o;14490:::-;14632:3;14653:67;14717:2;14712:3;14653:67;:::i;:::-;14646:74;;14729:93;14818:3;14729:93;:::i;:::-;14847:2;14842:3;14838:12;14831:19;;14490:366;;;:::o;14862:118::-;14949:24;14967:5;14949:24;:::i;:::-;14944:3;14937:37;14862:118;;:::o;14986:222::-;15079:4;15117:2;15106:9;15102:18;15094:26;;15130:71;15198:1;15187:9;15183:17;15174:6;15130:71;:::i;:::-;14986:222;;;;:::o;15214:254::-;15323:4;15361:2;15350:9;15346:18;15338:26;;15374:87;15458:1;15447:9;15443:17;15434:6;15374:87;:::i;:::-;15214:254;;;;:::o;15474:348::-;15603:4;15641:2;15630:9;15626:18;15618:26;;15654:79;15730:1;15719:9;15715:17;15706:6;15654:79;:::i;:::-;15743:72;15811:2;15800:9;15796:18;15787:6;15743:72;:::i;:::-;15474:348;;;;;:::o;15828:807::-;16077:4;16115:3;16104:9;16100:19;16092:27;;16129:71;16197:1;16186:9;16182:17;16173:6;16129:71;:::i;:::-;16210:72;16278:2;16267:9;16263:18;16254:6;16210:72;:::i;:::-;16292:80;16368:2;16357:9;16353:18;16344:6;16292:80;:::i;:::-;16382;16458:2;16447:9;16443:18;16434:6;16382:80;:::i;:::-;16472:73;16540:3;16529:9;16525:19;16516:6;16472:73;:::i;:::-;16555;16623:3;16612:9;16608:19;16599:6;16555:73;:::i;:::-;15828:807;;;;;;;;;:::o;16641:210::-;16728:4;16766:2;16755:9;16751:18;16743:26;;16779:65;16841:1;16830:9;16826:17;16817:6;16779:65;:::i;:::-;16641:210;;;;:::o;16857:313::-;16970:4;17008:2;16997:9;16993:18;16985:26;;17057:9;17051:4;17047:20;17043:1;17032:9;17028:17;17021:47;17085:78;17158:4;17149:6;17085:78;:::i;:::-;17077:86;;16857:313;;;;:::o;17176:419::-;17342:4;17380:2;17369:9;17365:18;17357:26;;17429:9;17423:4;17419:20;17415:1;17404:9;17400:17;17393:47;17457:131;17583:4;17457:131;:::i;:::-;17449:139;;17176:419;;;:::o;17601:::-;17767:4;17805:2;17794:9;17790:18;17782:26;;17854:9;17848:4;17844:20;17840:1;17829:9;17825:17;17818:47;17882:131;18008:4;17882:131;:::i;:::-;17874:139;;17601:419;;;:::o;18026:::-;18192:4;18230:2;18219:9;18215:18;18207:26;;18279:9;18273:4;18269:20;18265:1;18254:9;18250:17;18243:47;18307:131;18433:4;18307:131;:::i;:::-;18299:139;;18026:419;;;:::o;18451:::-;18617:4;18655:2;18644:9;18640:18;18632:26;;18704:9;18698:4;18694:20;18690:1;18679:9;18675:17;18668:47;18732:131;18858:4;18732:131;:::i;:::-;18724:139;;18451:419;;;:::o;18876:::-;19042:4;19080:2;19069:9;19065:18;19057:26;;19129:9;19123:4;19119:20;19115:1;19104:9;19100:17;19093:47;19157:131;19283:4;19157:131;:::i;:::-;19149:139;;18876:419;;;:::o;19301:::-;19467:4;19505:2;19494:9;19490:18;19482:26;;19554:9;19548:4;19544:20;19540:1;19529:9;19525:17;19518:47;19582:131;19708:4;19582:131;:::i;:::-;19574:139;;19301:419;;;:::o;19726:::-;19892:4;19930:2;19919:9;19915:18;19907:26;;19979:9;19973:4;19969:20;19965:1;19954:9;19950:17;19943:47;20007:131;20133:4;20007:131;:::i;:::-;19999:139;;19726:419;;;:::o;20151:::-;20317:4;20355:2;20344:9;20340:18;20332:26;;20404:9;20398:4;20394:20;20390:1;20379:9;20375:17;20368:47;20432:131;20558:4;20432:131;:::i;:::-;20424:139;;20151:419;;;:::o;20576:::-;20742:4;20780:2;20769:9;20765:18;20757:26;;20829:9;20823:4;20819:20;20815:1;20804:9;20800:17;20793:47;20857:131;20983:4;20857:131;:::i;:::-;20849:139;;20576:419;;;:::o;21001:::-;21167:4;21205:2;21194:9;21190:18;21182:26;;21254:9;21248:4;21244:20;21240:1;21229:9;21225:17;21218:47;21282:131;21408:4;21282:131;:::i;:::-;21274:139;;21001:419;;;:::o;21426:::-;21592:4;21630:2;21619:9;21615:18;21607:26;;21679:9;21673:4;21669:20;21665:1;21654:9;21650:17;21643:47;21707:131;21833:4;21707:131;:::i;:::-;21699:139;;21426:419;;;:::o;21851:::-;22017:4;22055:2;22044:9;22040:18;22032:26;;22104:9;22098:4;22094:20;22090:1;22079:9;22075:17;22068:47;22132:131;22258:4;22132:131;:::i;:::-;22124:139;;21851:419;;;:::o;22276:::-;22442:4;22480:2;22469:9;22465:18;22457:26;;22529:9;22523:4;22519:20;22515:1;22504:9;22500:17;22493:47;22557:131;22683:4;22557:131;:::i;:::-;22549:139;;22276:419;;;:::o;22701:::-;22867:4;22905:2;22894:9;22890:18;22882:26;;22954:9;22948:4;22944:20;22940:1;22929:9;22925:17;22918:47;22982:131;23108:4;22982:131;:::i;:::-;22974:139;;22701:419;;;:::o;23126:::-;23292:4;23330:2;23319:9;23315:18;23307:26;;23379:9;23373:4;23369:20;23365:1;23354:9;23350:17;23343:47;23407:131;23533:4;23407:131;:::i;:::-;23399:139;;23126:419;;;:::o;23551:222::-;23644:4;23682:2;23671:9;23667:18;23659:26;;23695:71;23763:1;23752:9;23748:17;23739:6;23695:71;:::i;:::-;23551:222;;;;:::o;23779:847::-;24050:4;24088:3;24077:9;24073:19;24065:27;;24102:71;24170:1;24159:9;24155:17;24146:6;24102:71;:::i;:::-;24183:80;24259:2;24248:9;24244:18;24235:6;24183:80;:::i;:::-;24310:9;24304:4;24300:20;24295:2;24284:9;24280:18;24273:48;24338:108;24441:4;24432:6;24338:108;:::i;:::-;24330:116;;24456:80;24532:2;24521:9;24517:18;24508:6;24456:80;:::i;:::-;24546:73;24614:3;24603:9;24599:19;24590:6;24546:73;:::i;:::-;23779:847;;;;;;;;:::o;24632:831::-;24895:4;24933:3;24922:9;24918:19;24910:27;;24947:71;25015:1;25004:9;25000:17;24991:6;24947:71;:::i;:::-;25028:80;25104:2;25093:9;25089:18;25080:6;25028:80;:::i;:::-;25155:9;25149:4;25145:20;25140:2;25129:9;25125:18;25118:48;25183:108;25286:4;25277:6;25183:108;:::i;:::-;25175:116;;25301:72;25369:2;25358:9;25354:18;25345:6;25301:72;:::i;:::-;25383:73;25451:3;25440:9;25436:19;25427:6;25383:73;:::i;:::-;24632:831;;;;;;;;:::o;25469:442::-;25618:4;25656:2;25645:9;25641:18;25633:26;;25669:71;25737:1;25726:9;25722:17;25713:6;25669:71;:::i;:::-;25750:72;25818:2;25807:9;25803:18;25794:6;25750:72;:::i;:::-;25832;25900:2;25889:9;25885:18;25876:6;25832:72;:::i;:::-;25469:442;;;;;;:::o;25998:132::-;26065:4;26088:3;26080:11;;26118:4;26113:3;26109:14;26101:22;;25998:132;;;:::o;26136:114::-;26203:6;26237:5;26231:12;26221:22;;26136:114;;;:::o;26256:99::-;26308:6;26342:5;26336:12;26326:22;;26256:99;;;:::o;26361:113::-;26431:4;26463;26458:3;26454:14;26446:22;;26361:113;;;:::o;26480:184::-;26579:11;26613:6;26608:3;26601:19;26653:4;26648:3;26644:14;26629:29;;26480:184;;;;:::o;26670:169::-;26754:11;26788:6;26783:3;26776:19;26828:4;26823:3;26819:14;26804:29;;26670:169;;;;:::o;26845:305::-;26885:3;26904:20;26922:1;26904:20;:::i;:::-;26899:25;;26938:20;26956:1;26938:20;:::i;:::-;26933:25;;27092:1;27024:66;27020:74;27017:1;27014:81;27011:107;;;27098:18;;:::i;:::-;27011:107;27142:1;27139;27135:9;27128:16;;26845:305;;;;:::o;27156:185::-;27196:1;27213:20;27231:1;27213:20;:::i;:::-;27208:25;;27247:20;27265:1;27247:20;:::i;:::-;27242:25;;27286:1;27276:35;;27291:18;;:::i;:::-;27276:35;27333:1;27330;27326:9;27321:14;;27156:185;;;;:::o;27347:348::-;27387:7;27410:20;27428:1;27410:20;:::i;:::-;27405:25;;27444:20;27462:1;27444:20;:::i;:::-;27439:25;;27632:1;27564:66;27560:74;27557:1;27554:81;27549:1;27542:9;27535:17;27531:105;27528:131;;;27639:18;;:::i;:::-;27528:131;27687:1;27684;27680:9;27669:20;;27347:348;;;;:::o;27701:191::-;27741:4;27761:20;27779:1;27761:20;:::i;:::-;27756:25;;27795:20;27813:1;27795:20;:::i;:::-;27790:25;;27834:1;27831;27828:8;27825:34;;;27839:18;;:::i;:::-;27825:34;27884:1;27881;27877:9;27869:17;;27701:191;;;;:::o;27898:96::-;27935:7;27964:24;27982:5;27964:24;:::i;:::-;27953:35;;27898:96;;;:::o;28000:104::-;28045:7;28074:24;28092:5;28074:24;:::i;:::-;28063:35;;28000:104;;;:::o;28110:90::-;28144:7;28187:5;28180:13;28173:21;28162:32;;28110:90;;;:::o;28206:109::-;28256:7;28285:24;28303:5;28285:24;:::i;:::-;28274:35;;28206:109;;;:::o;28321:126::-;28358:7;28398:42;28391:5;28387:54;28376:65;;28321:126;;;:::o;28453:77::-;28490:7;28519:5;28508:16;;28453:77;;;:::o;28536:134::-;28594:9;28627:37;28658:5;28627:37;:::i;:::-;28614:50;;28536:134;;;:::o;28676:121::-;28734:9;28767:24;28785:5;28767:24;:::i;:::-;28754:37;;28676:121;;;:::o;28803:126::-;28853:9;28886:37;28917:5;28886:37;:::i;:::-;28873:50;;28803:126;;;:::o;28935:113::-;28985:9;29018:24;29036:5;29018:24;:::i;:::-;29005:37;;28935:113;;;:::o;29054:307::-;29122:1;29132:113;29146:6;29143:1;29140:13;29132:113;;;29231:1;29226:3;29222:11;29216:18;29212:1;29207:3;29203:11;29196:39;29168:2;29165:1;29161:10;29156:15;;29132:113;;;29263:6;29260:1;29257:13;29254:101;;;29343:1;29334:6;29329:3;29325:16;29318:27;29254:101;29103:258;29054:307;;;:::o;29367:320::-;29411:6;29448:1;29442:4;29438:12;29428:22;;29495:1;29489:4;29485:12;29516:18;29506:81;;29572:4;29564:6;29560:17;29550:27;;29506:81;29634:2;29626:6;29623:14;29603:18;29600:38;29597:84;;;29653:18;;:::i;:::-;29597:84;29418:269;29367:320;;;:::o;29693:180::-;29741:77;29738:1;29731:88;29838:4;29835:1;29828:15;29862:4;29859:1;29852:15;29879:180;29927:77;29924:1;29917:88;30024:4;30021:1;30014:15;30048:4;30045:1;30038:15;30065:180;30113:77;30110:1;30103:88;30210:4;30207:1;30200:15;30234:4;30231:1;30224:15;30251:180;30299:77;30296:1;30289:88;30396:4;30393:1;30386:15;30420:4;30417:1;30410:15;30437:180;30485:77;30482:1;30475:88;30582:4;30579:1;30572:15;30606:4;30603:1;30596:15;30746:117;30855:1;30852;30845:12;30869:102;30910:6;30961:2;30957:7;30952:2;30945:5;30941:14;30937:28;30927:38;;30869:102;;;:::o;30977:222::-;31117:34;31113:1;31105:6;31101:14;31094:58;31186:5;31181:2;31173:6;31169:15;31162:30;30977:222;:::o;31205:225::-;31345:34;31341:1;31333:6;31329:14;31322:58;31414:8;31409:2;31401:6;31397:15;31390:33;31205:225;:::o;31436:221::-;31576:34;31572:1;31564:6;31560:14;31553:58;31645:4;31640:2;31632:6;31628:15;31621:29;31436:221;:::o;31663:244::-;31803:34;31799:1;31791:6;31787:14;31780:58;31872:27;31867:2;31859:6;31855:15;31848:52;31663:244;:::o;31913:225::-;32053:34;32049:1;32041:6;32037:14;32030:58;32122:8;32117:2;32109:6;32105:15;32098:33;31913:225;:::o;32144:241::-;32284:34;32280:1;32272:6;32268:14;32261:58;32353:24;32348:2;32340:6;32336:15;32329:49;32144:241;:::o;32391:237::-;32531:34;32527:1;32519:6;32515:14;32508:58;32600:20;32595:2;32587:6;32583:15;32576:45;32391:237;:::o;32634:179::-;32774:31;32770:1;32762:6;32758:14;32751:55;32634:179;:::o;32819:240::-;32959:34;32955:1;32947:6;32943:14;32936:58;33028:23;33023:2;33015:6;33011:15;33004:48;32819:240;:::o;33065:227::-;33205:34;33201:1;33193:6;33189:14;33182:58;33274:10;33269:2;33261:6;33257:15;33250:35;33065:227;:::o;33298:182::-;33438:34;33434:1;33426:6;33422:14;33415:58;33298:182;:::o;33486:177::-;33626:29;33622:1;33614:6;33610:14;33603:53;33486:177;:::o;33669:174::-;33809:26;33805:1;33797:6;33793:14;33786:50;33669:174;:::o;33849:224::-;33989:34;33985:1;33977:6;33973:14;33966:58;34058:7;34053:2;34045:6;34041:15;34034:32;33849:224;:::o;34079:223::-;34219:34;34215:1;34207:6;34203:14;34196:58;34288:6;34283:2;34275:6;34271:15;34264:31;34079:223;:::o;34308:122::-;34381:24;34399:5;34381:24;:::i;:::-;34374:5;34371:35;34361:63;;34420:1;34417;34410:12;34361:63;34308:122;:::o;34436:138::-;34517:32;34543:5;34517:32;:::i;:::-;34510:5;34507:43;34497:71;;34564:1;34561;34554:12;34497:71;34436:138;:::o;34580:116::-;34650:21;34665:5;34650:21;:::i;:::-;34643:5;34640:32;34630:60;;34686:1;34683;34676:12;34630:60;34580:116;:::o;34702:148::-;34788:37;34819:5;34788:37;:::i;:::-;34781:5;34778:48;34768:76;;34840:1;34837;34830:12;34768:76;34702:148;:::o;34856:122::-;34929:24;34947:5;34929:24;:::i;:::-;34922:5;34919:35;34909:63;;34968:1;34965;34958:12;34909:63;34856:122;:::o
Swarm Source
ipfs://7ad819fea980056e5b8ecd9d5ce503f2d43bf7e01203362a4a580a9465b5fe6a
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.