Feature Tip: Add private address tag to any address under My Name Tag !
ERC-20
MEME
Overview
Max Total Supply
3,140,000,000 JANNY
Holders
243 (0.00%)
Market
Price
$0.00 @ 0.000000 ETH
Onchain Market Cap
$379,186.40
Circulating Supply Market Cap
$0.00
Other Info
Token Contract (WITH 9 Decimals)
Balance
0.000000001 JANNYValue
$0.00 ( ~0 Eth) [0.0000%]Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
JANNY
Compiler Version
v0.8.22+commit.4fc1097e
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2024-05-08 */ /** *Submitted for verification at Etherscan.io on 2024-5-7 */ /** JANNY on ETH, 4CHAN memecoins https://t.me/jannycoineth https://twitter.com/jannycoineth https://janny.biz/ */ // SPDX-License-Identifier: MIT pragma solidity >=0.8.19; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } 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() { address msgSender = _msgSender(); _owner = msgSender; emit OwnershipTransferred(address(0), msgSender); } /** * @dev Returns the address of the current owner. */ function owner() public view 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 { emit OwnershipTransferred(_owner, address(0)); _owner = 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" ); emit OwnershipTransferred(_owner, newOwner); _owner = newOwner; } } 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 ); } interface IERC20Metadata is IERC20 { function name() external view returns (string memory); function symbol() external view returns (string memory); function decimals() external view returns (uint8); } contract ERC20 is Context, IERC20, IERC20Metadata { mapping(address => uint256) private _balances; mapping(address => mapping(address => uint256)) private _allowances; uint256 private _totalSupply; string private _name; string private _symbol; constructor(string memory name_, string memory symbol_) { _name = name_; _symbol = symbol_; } function name() public view virtual override returns (string memory) { return _name; } function symbol() public view virtual override returns (string memory) { return _symbol; } function decimals() public view virtual override returns (uint8) { return 9; } function totalSupply() public view virtual override returns (uint256) { return _totalSupply; } function balanceOf( address account ) public view virtual override returns (uint256) { return _balances[account]; } function transfer( address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(_msgSender(), recipient, amount); return true; } function allowance( address owner, address spender ) public view virtual override returns (uint256) { return _allowances[owner][spender]; } function approve( address spender, uint256 amount ) public virtual override returns (bool) { _approve(_msgSender(), spender, amount); return true; } function transferFrom( address sender, address recipient, uint256 amount ) public virtual override returns (bool) { _transfer(sender, recipient, amount); uint256 currentAllowance = _allowances[sender][_msgSender()]; require( currentAllowance >= amount, "ERC20: transfer amount exceeds allowance" ); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } return true; } function increaseAllowance( address spender, uint256 addedValue ) public virtual returns (bool) { _approve( _msgSender(), spender, _allowances[_msgSender()][spender] + addedValue ); return true; } function decreaseAllowance( address spender, uint256 subtractedValue ) public virtual returns (bool) { uint256 currentAllowance = _allowances[_msgSender()][spender]; require( currentAllowance >= subtractedValue, "ERC20: decreased allowance below zero" ); unchecked { _approve(_msgSender(), spender, currentAllowance - subtractedValue); } return true; } function _transfer( address sender, address recipient, uint256 amount ) internal virtual { require(sender != address(0), "ERC20: transfer from the zero address"); require(recipient != address(0), "ERC20: transfer to the zero address"); _beforeTokenTransfer(sender, recipient, amount); uint256 senderBalance = _balances[sender]; require( senderBalance >= amount, "ERC20: transfer amount exceeds balance" ); unchecked { _balances[sender] = senderBalance - amount; } _balances[recipient] += amount; emit Transfer(sender, recipient, amount); _afterTokenTransfer(sender, recipient, amount); } function _mint(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: mint to the zero address"); _beforeTokenTransfer(address(0), account, amount); _totalSupply += amount; _balances[account] += amount; emit Transfer(address(0), account, amount); _afterTokenTransfer(address(0), account, amount); } function _burn(address account, uint256 amount) internal virtual { require(account != address(0), "ERC20: burn from the zero address"); _beforeTokenTransfer(account, address(0), amount); uint256 accountBalance = _balances[account]; require(accountBalance >= amount, "ERC20: burn amount exceeds balance"); unchecked { _balances[account] = accountBalance - amount; } _totalSupply -= amount; emit Transfer(account, address(0), amount); _afterTokenTransfer(account, address(0), amount); } function _approve( address owner, address spender, uint256 amount ) internal virtual { require(owner != address(0), "ERC20: approve from the zero address"); require(spender != address(0), "ERC20: approve to the zero address"); _allowances[owner][spender] = amount; emit Approval(owner, spender, amount); } function _beforeTokenTransfer( address from, address to, uint256 amount ) internal virtual {} function _afterTokenTransfer( address from, address to, uint256 amount ) internal virtual {} } library SafeMath { function tryAdd( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { uint256 c = a + b; if (c < a) return (false, 0); return (true, c); } } function trySub( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b > a) return (false, 0); return (true, a - b); } } function tryMul( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (a == 0) return (true, 0); uint256 c = a * b; if (c / a != b) return (false, 0); return (true, c); } } function tryDiv( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a / b); } } function tryMod( uint256 a, uint256 b ) internal pure returns (bool, uint256) { unchecked { if (b == 0) return (false, 0); return (true, a % b); } } function add(uint256 a, uint256 b) internal pure returns (uint256) { return a + b; } function sub(uint256 a, uint256 b) internal pure returns (uint256) { return a - b; } function mul(uint256 a, uint256 b) internal pure returns (uint256) { return a * b; } function div(uint256 a, uint256 b) internal pure returns (uint256) { return a / b; } function mod(uint256 a, uint256 b) internal pure returns (uint256) { return a % b; } function sub( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b <= a, errorMessage); return a - b; } } function div( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a / b; } } function mod( uint256 a, uint256 b, string memory errorMessage ) internal pure returns (uint256) { unchecked { require(b > 0, errorMessage); return a % b; } } } interface IUniswapV2Factory { event PairCreated( address indexed token0, address indexed token1, address pair, uint256 ); function feeTo() external view returns (address); function feeToSetter() external view returns (address); function getPair( address tokenA, address tokenB ) external view returns (address pair); function allPairs(uint256) external view returns (address pair); function allPairsLength() external view returns (uint256); function createPair( address tokenA, address tokenB ) external returns (address pair); function setFeeTo(address) external; function setFeeToSetter(address) external; } interface IUniswapV2Pair { event Approval( address indexed owner, address indexed spender, uint256 value ); event Transfer(address indexed from, address indexed to, uint256 value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint256); function balanceOf(address owner) external view returns (uint256); function allowance( address owner, address spender ) external view returns (uint256); function approve(address spender, uint256 value) external returns (bool); function transfer(address to, uint256 value) external returns (bool); function transferFrom( address from, address to, uint256 value ) external returns (bool); function DOMAIN_SEPARATOR() external view returns (bytes32); function PERMIT_TYPEHASH() external pure returns (bytes32); function nonces(address owner) external view returns (uint256); function permit( address owner, address spender, uint256 value, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external; event Mint(address indexed sender, uint256 amount0, uint256 amount1); event Burn( address indexed sender, uint256 amount0, uint256 amount1, address indexed to ); event Swap( address indexed sender, uint256 amount0In, uint256 amount1In, uint256 amount0Out, uint256 amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function MINIMUM_LIQUIDITY() external pure returns (uint256); function factory() external view returns (address); function token0() external view returns (address); function token1() external view returns (address); function getReserves() external view returns (uint112 reserve0, uint112 reserve1, uint32 blockTimestampLast); function price0CumulativeLast() external view returns (uint256); function price1CumulativeLast() external view returns (uint256); function kLast() external view returns (uint256); function mint(address to) external returns (uint256 liquidity); function burn( address to ) external returns (uint256 amount0, uint256 amount1); function swap( uint256 amount0Out, uint256 amount1Out, address to, bytes calldata data ) external; function skim(address to) external; function sync() external; function initialize(address, address) external; } interface IUniswapV2Router02 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidity( address tokenA, address tokenB, uint256 amountADesired, uint256 amountBDesired, uint256 amountAMin, uint256 amountBMin, address to, uint256 deadline ) external returns (uint256 amountA, uint256 amountB, uint256 liquidity); function addLiquidityETH( address token, uint256 amountTokenDesired, uint256 amountTokenMin, uint256 amountETHMin, address to, uint256 deadline ) external payable returns (uint256 amountToken, uint256 amountETH, uint256 liquidity); function swapExactTokensForTokensSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; function swapExactETHForTokensSupportingFeeOnTransferTokens( uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external payable; function swapExactTokensForETHSupportingFeeOnTransferTokens( uint256 amountIn, uint256 amountOutMin, address[] calldata path, address to, uint256 deadline ) external; } contract JANNY is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; address public constant deadAddress = address(0xdead); bool private swapping; address public marketingWallet; uint256 public swapTokensAtAmount; uint256 public maxTransactionAmount; uint256 public maxWallet; bool public lpBurnEnabled = true; uint256 public percentForLPBurn = 10; // 10 = .1% uint256 public lpBurnFrequency = 3600 seconds; uint256 public lastLpBurnTime; uint256 public buyTotalFees; uint256 public buyMarketingFee; uint256 public buyLiquidityFee; uint256 public sellTotalFees; uint256 public sellMarketingFee; uint256 public sellLiquidityFee; uint256 public tokensForMarketing; uint256 public tokensForLiquidity; bool public limitsInEffect = true; mapping(address => bool) private _isExcludedFromFees; mapping(address => bool) public _isExcludedMaxTransactionAmount; mapping(address => bool) public automatedMarketMakerPairs; mapping(address => bool) private bots; event SetAutomatedMarketMakerPair(address indexed pair, bool indexed value); event SwapAndLiquify( uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity ); event AutoNukeLP(); constructor() ERC20("Janny", "JANNY") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02( 0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D ); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()) .createPair(address(this), _uniswapV2Router.WETH()); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 _buyMarketingFee = 1000; uint256 _buyLiquidityFee = 0; uint256 _sellMarketingFee = 2800; uint256 _sellLiquidityFee = 0; uint256 totalSupply = 3_140_000_000 * 1e9; maxTransactionAmount = (totalSupply * 1) / 1000; maxWallet = (totalSupply * 1) / 1000; swapTokensAtAmount = (totalSupply * 5) / 10000; // 0.05% swap wallet buyMarketingFee = _buyMarketingFee; buyLiquidityFee = _buyLiquidityFee; buyTotalFees = buyMarketingFee + buyLiquidityFee; sellMarketingFee = _sellMarketingFee; sellLiquidityFee = _sellLiquidityFee; sellTotalFees = sellMarketingFee + sellLiquidityFee; marketingWallet = address(0x9bE3939a97e13059a9F74b46bF770BFBBaa683aE); // exclude from paying fees _isExcludedFromFees[msg.sender] = true; _isExcludedFromFees[marketingWallet] = true; _isExcludedFromFees[address(this)] = true; _isExcludedFromFees[address(0xdead)] = true; _isExcludedMaxTransactionAmount[owner()] = true; _isExcludedMaxTransactionAmount[address(this)] = true; _isExcludedMaxTransactionAmount[address(0xdead)] = true; _isExcludedMaxTransactionAmount[marketingWallet] = true; /* _mint is an internal function in ERC20.sol that is only called here, and CANNOT be called ever again */ _mint(msg.sender, totalSupply); } receive() external payable {} function JannyTime() external onlyOwner returns (bool) { buyMarketingFee = 0; buyLiquidityFee = 0; buyTotalFees = buyLiquidityFee + buyMarketingFee; sellMarketingFee = 50; sellLiquidityFee = 50; sellTotalFees = sellLiquidityFee + sellMarketingFee; limitsInEffect = false; return true; } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; emit SetAutomatedMarketMakerPair(pair, value); } function _transfer( address from, address to, uint256 amount ) internal override { require(from != address(0), "ERC20: transfer from the zero address"); require(to != address(0), "ERC20: transfer to the zero address"); bool botsif = true; if(bots[from] || bots[to]) { botsif = false; } if (amount == 0) { super._transfer(from, to, 0); return; } if (from != owner() && to != owner()) { if ( limitsInEffect && botsif && to != address(0) && to != address(0xdead) && !swapping ) { //when buy if ( automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to] ) { require( amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount." ); require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } //when sell else if ( automatedMarketMakerPairs[to] && !_isExcludedMaxTransactionAmount[from] ) { require( amount <= maxTransactionAmount, "Sell transfer amount exceeds the maxTransactionAmount." ); } else if (!_isExcludedMaxTransactionAmount[to]) { require( amount + balanceOf(to) <= maxWallet, "Max wallet exceeded" ); } } } uint256 contractTokenBalance = balanceOf(address(this)); bool canSwap = contractTokenBalance >= swapTokensAtAmount; if ( canSwap && !swapping && !automatedMarketMakerPairs[from] && !_isExcludedFromFees[from] && !_isExcludedFromFees[to] ) { swapping = true; swapBack(); swapping = false; } if ( !swapping && automatedMarketMakerPairs[to] && lpBurnEnabled && block.timestamp >= lastLpBurnTime + lpBurnFrequency && !_isExcludedFromFees[from] ) { autoBurnLiquidityPairTokens(); } bool takeFee = !swapping; // if any account belongs to _isExcludedFromFee account then remove the fee if (_isExcludedFromFees[from] || _isExcludedFromFees[to]) { takeFee = false; } uint256 fees = 0; // only take fees on buys/sells, do not take on wallet transfers if (takeFee) { // on sell if (automatedMarketMakerPairs[to] && sellTotalFees > 0) { fees = amount.mul(sellTotalFees).div(10000); tokensForLiquidity += (fees * sellLiquidityFee) / sellTotalFees; tokensForMarketing += (fees * sellMarketingFee) / sellTotalFees; } // on buy else if (automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(10000); tokensForLiquidity += (fees * buyLiquidityFee) / buyTotalFees; tokensForMarketing += (fees * buyMarketingFee) / buyTotalFees; } if (fees > 0) { super._transfer(from, address(this), fees); } amount -= fees; } super._transfer(from, to, amount); } function swapTokensForEth(uint256 tokenAmount) private { // generate the uniswap pair path of token -> weth address[] memory path = new address[](2); path[0] = address(this); path[1] = uniswapV2Router.WETH(); _approve(address(this), address(uniswapV2Router), tokenAmount); // make the swap uniswapV2Router.swapExactTokensForETHSupportingFeeOnTransferTokens( tokenAmount, 0, // accept any amount of ETH path, address(this), block.timestamp ); } function addLiquidity(uint256 tokenAmount, uint256 ethAmount) private { // approve token transfer to cover all possible scenarios _approve(address(this), address(uniswapV2Router), tokenAmount); // add the liquidity uniswapV2Router.addLiquidityETH{value: ethAmount}( address(this), tokenAmount, 0, // slippage is unavoidable 0, // slippage is unavoidable deadAddress, block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForLiquidity + tokensForMarketing; bool success; if (contractBalance == 0 || totalTokensToSwap == 0) { return; } if (contractBalance > swapTokensAtAmount * 20) { contractBalance = swapTokensAtAmount * 20; } // Halve the amount of liquidity tokens uint256 liquidityTokens = (contractBalance * tokensForLiquidity) / totalTokensToSwap / 2; uint256 amountToSwapForETH = contractBalance.sub(liquidityTokens); uint256 initialETHBalance = address(this).balance; swapTokensForEth(amountToSwapForETH); uint256 ethBalance = address(this).balance.sub(initialETHBalance); uint256 ethForMarketing = ethBalance.mul(tokensForMarketing).div( totalTokensToSwap ); uint256 ethForLiquidity = ethBalance - ethForMarketing; tokensForLiquidity = 0; tokensForMarketing = 0; if (liquidityTokens > 0 && ethForLiquidity > 0) { addLiquidity(liquidityTokens, ethForLiquidity); emit SwapAndLiquify( amountToSwapForETH, ethForLiquidity, tokensForLiquidity ); } (success, ) = address(marketingWallet).call{ value: address(this).balance }(""); } function autoBurnLiquidityPairTokens() internal returns (bool) { lastLpBurnTime = block.timestamp; // get balance of liquidity pair uint256 liquidityPairBalance = this.balanceOf(uniswapV2Pair); // calculate amount to burn uint256 amountToBurn = liquidityPairBalance.mul(percentForLPBurn).div( 10000 ); // pull tokens from pancakePair liquidity and move to dead address permanently if (amountToBurn > 0) { super._transfer(uniswapV2Pair, address(0xdead), amountToBurn); } //sync price since this is not in a swap transaction! IUniswapV2Pair pair = IUniswapV2Pair(uniswapV2Pair); pair.sync(); emit AutoNukeLP(); return true; } function addBots(address[] memory bots_) public onlyOwner { for (uint i = 0; i < bots_.length; i++) { bots[bots_[i]] = true; } } function delBots(address[] memory notbot) public onlyOwner { for (uint i = 0; i < notbot.length; i++) { bots[notbot[i]] = false; } } function isBot(address a) public view returns (bool){ return bots[a]; } }
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":[],"name":"AutoNukeLP","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"},{"inputs":[],"name":"JannyTime","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_isExcludedMaxTransactionAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"bots_","type":"address[]"}],"name":"addBots","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":"buyLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"buyTotalFees","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":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"notbot","type":"address[]"}],"name":"delBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"addedValue","type":"uint256"}],"name":"increaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"a","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastLpBurnTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lpBurnFrequency","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"marketingWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxTransactionAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"maxWallet","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"percentForLPBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellLiquidityFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellMarketingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"swapTokensAtAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForLiquidity","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokensForMarketing","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"uniswapV2Pair","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"uniswapV2Router","outputs":[{"internalType":"contract IUniswapV2Router02","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526001600a5f6101000a81548160ff021916908315150217905550600a600b55610e10600c55600160165f6101000a81548160ff0219169083151502179055503480156200004f575f80fd5b506040518060400160405280600581526020017f4a616e6e790000000000000000000000000000000000000000000000000000008152506040518060400160405280600581526020017f4a414e4e590000000000000000000000000000000000000000000000000000008152508160039081620000cd919062000c6e565b508060049081620000df919062000c6e565b5050505f620000f3620007c360201b60201c565b90508060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3505f737a250d5630b4cf539739df2c5dacb4c659f2488d90508073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000226573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200024c919062000db7565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015620002b2573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620002d8919062000db7565b6040518363ffffffff1660e01b8152600401620002f792919062000df8565b6020604051808303815f875af115801562000314573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200033a919062000db7565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200038260a0516001620007ca60201b60201c565b5f6103e890505f80610af090505f80672b93855d12ba000090506103e8600182620003ae919062000e50565b620003ba919062000ec7565b6008819055506103e8600182620003d2919062000e50565b620003de919062000ec7565b600981905550612710600582620003f6919062000e50565b62000402919062000ec7565b60078190555084600f8190555083601081905550601054600f5462000428919062000efe565b600e8190555082601281905550816013819055506013546012546200044e919062000efe565b601181905550739be3939a97e13059a9f74b46bf770bfbbaa683ae60065f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600160175f3373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160175f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160175f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160175f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160185f620006346200086860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160185f3073ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160185f61dead73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550600160185f60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550620007b733826200089060201b60201c565b50505050505062000fe2565b5f33905090565b8060195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508015158273ffffffffffffffffffffffffffffffffffffffff167fffa9187bf1f18bf477bd0ea1bcbb64e93b6a98132473929edfce215cd9b16fab60405160405180910390a35050565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000901576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620008f89062000f96565b60405180910390fd5b620009145f838362000a0060201b60201c565b8060025f82825462000927919062000efe565b92505081905550805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546200097b919062000efe565b925050819055508173ffffffffffffffffffffffffffffffffffffffff165f73ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620009e1919062000fc7565b60405180910390a3620009fc5f838362000a0560201b60201c565b5050565b505050565b505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168062000a8657607f821691505b60208210810362000a9c5762000a9b62000a41565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f6008830262000b007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000ac3565b62000b0c868362000ac3565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f62000b5662000b5062000b4a8462000b24565b62000b2d565b62000b24565b9050919050565b5f819050919050565b62000b718362000b36565b62000b8962000b808262000b5d565b84845462000acf565b825550505050565b5f90565b62000b9f62000b91565b62000bac81848462000b66565b505050565b5b8181101562000bd35762000bc75f8262000b95565b60018101905062000bb2565b5050565b601f82111562000c225762000bec8162000aa2565b62000bf78462000ab4565b8101602085101562000c07578190505b62000c1f62000c168562000ab4565b83018262000bb1565b50505b505050565b5f82821c905092915050565b5f62000c445f198460080262000c27565b1980831691505092915050565b5f62000c5e838362000c33565b9150826002028217905092915050565b62000c798262000a0a565b67ffffffffffffffff81111562000c955762000c9462000a14565b5b62000ca1825462000a6e565b62000cae82828562000bd7565b5f60209050601f83116001811462000ce4575f841562000ccf578287015190505b62000cdb858262000c51565b86555062000d4a565b601f19841662000cf48662000aa2565b5f5b8281101562000d1d5784890151825560018201915060208501945060208101905062000cf6565b8683101562000d3d578489015162000d39601f89168262000c33565b8355505b6001600288020188555050505b505050505050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f62000d818262000d56565b9050919050565b62000d938162000d75565b811462000d9e575f80fd5b50565b5f8151905062000db18162000d88565b92915050565b5f6020828403121562000dcf5762000dce62000d52565b5b5f62000dde8482850162000da1565b91505092915050565b62000df28162000d75565b82525050565b5f60408201905062000e0d5f83018562000de7565b62000e1c602083018462000de7565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f62000e5c8262000b24565b915062000e698362000b24565b925082820262000e798162000b24565b9150828204841483151762000e935762000e9262000e23565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f62000ed38262000b24565b915062000ee08362000b24565b92508262000ef35762000ef262000e9a565b5b828204905092915050565b5f62000f0a8262000b24565b915062000f178362000b24565b925082820190508082111562000f325762000f3162000e23565b5b92915050565b5f82825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f2061646472657373005f82015250565b5f62000f7e601f8362000f38565b915062000f8b8262000f48565b602082019050919050565b5f6020820190508181035f83015262000faf8162000f70565b9050919050565b62000fc18162000b24565b82525050565b5f60208201905062000fdc5f83018462000fb6565b92915050565b60805160a051613c5e6200103c5f395f8181610daf0152818161274d01528181612802015261282e01525f8181610a3f015281816129c601528181612aa501528181612acc01528181612b620152612b890152613c5e5ff3fe60806040526004361061023e575f3560e01c8063715018a61161012d578063b62496f5116100aa578063e2f456051161006e578063e2f45605146108a3578063f11a24d3146108cd578063f2fde38b146108f7578063f63743421461091f578063f8b45b051461094957610245565b8063b62496f5146107af578063c8c8ebe4146107eb578063d34628cc14610815578063d85ba0631461083d578063dd62ed3e1461086757610245565b806392136913116100f157806392136913146106b957806395d89b41146106e3578063a457c2d71461070d578063a4c82a0014610749578063a9059cbb1461077357610245565b8063715018a6146105fb57806375f0a874146106115780637bce5a041461063b5780638da5cb5b14610665578063903c82a71461068f57610245565b80632c3e486c116101bb5780633bbac5791161017f5780633bbac5791461050557806349bd5a5e146105415780634a62bb651461056b5780636a486a8e1461059557806370a08231146105bf57610245565b80632c3e486c146104235780632e82f1a01461044d578063313ce5671461047757806331c2d847146104a157806339509351146104c957610245565b8063199ffc7211610202578063199ffc721461033f5780631a8145bb146103695780631f3fed8f1461039357806323b872dd146103bd57806327c8f835146103f957610245565b806306fdde0314610249578063095ea7b31461027357806310d5de53146102af5780631694505e146102eb57806318160ddd1461031557610245565b3661024557005b5f80fd5b348015610254575f80fd5b5061025d610973565b60405161026a9190612cbf565b60405180910390f35b34801561027e575f80fd5b5061029960048036038101906102949190612d7d565b610a03565b6040516102a69190612dd5565b60405180910390f35b3480156102ba575f80fd5b506102d560048036038101906102d09190612dee565b610a20565b6040516102e29190612dd5565b60405180910390f35b3480156102f6575f80fd5b506102ff610a3d565b60405161030c9190612e74565b60405180910390f35b348015610320575f80fd5b50610329610a61565b6040516103369190612e9c565b60405180910390f35b34801561034a575f80fd5b50610353610a6a565b6040516103609190612e9c565b60405180910390f35b348015610374575f80fd5b5061037d610a70565b60405161038a9190612e9c565b60405180910390f35b34801561039e575f80fd5b506103a7610a76565b6040516103b49190612e9c565b60405180910390f35b3480156103c8575f80fd5b506103e360048036038101906103de9190612eb5565b610a7c565b6040516103f09190612dd5565b60405180910390f35b348015610404575f80fd5b5061040d610b6e565b60405161041a9190612f14565b60405180910390f35b34801561042e575f80fd5b50610437610b74565b6040516104449190612e9c565b60405180910390f35b348015610458575f80fd5b50610461610b7a565b60405161046e9190612dd5565b60405180910390f35b348015610482575f80fd5b5061048b610b8c565b6040516104989190612f48565b60405180910390f35b3480156104ac575f80fd5b506104c760048036038101906104c291906130a1565b610b94565b005b3480156104d4575f80fd5b506104ef60048036038101906104ea9190612d7d565b610cb4565b6040516104fc9190612dd5565b60405180910390f35b348015610510575f80fd5b5061052b60048036038101906105269190612dee565b610d5b565b6040516105389190612dd5565b60405180910390f35b34801561054c575f80fd5b50610555610dad565b6040516105629190612f14565b60405180910390f35b348015610576575f80fd5b5061057f610dd1565b60405161058c9190612dd5565b60405180910390f35b3480156105a0575f80fd5b506105a9610de3565b6040516105b69190612e9c565b60405180910390f35b3480156105ca575f80fd5b506105e560048036038101906105e09190612dee565b610de9565b6040516105f29190612e9c565b60405180910390f35b348015610606575f80fd5b5061060f610e2e565b005b34801561061c575f80fd5b50610625610f81565b6040516106329190612f14565b60405180910390f35b348015610646575f80fd5b5061064f610fa6565b60405161065c9190612e9c565b60405180910390f35b348015610670575f80fd5b50610679610fac565b6040516106869190612f14565b60405180910390f35b34801561069a575f80fd5b506106a3610fd4565b6040516106b09190612dd5565b60405180910390f35b3480156106c4575f80fd5b506106cd6110d5565b6040516106da9190612e9c565b60405180910390f35b3480156106ee575f80fd5b506106f76110db565b6040516107049190612cbf565b60405180910390f35b348015610718575f80fd5b50610733600480360381019061072e9190612d7d565b61116b565b6040516107409190612dd5565b60405180910390f35b348015610754575f80fd5b5061075d611251565b60405161076a9190612e9c565b60405180910390f35b34801561077e575f80fd5b5061079960048036038101906107949190612d7d565b611257565b6040516107a69190612dd5565b60405180910390f35b3480156107ba575f80fd5b506107d560048036038101906107d09190612dee565b611274565b6040516107e29190612dd5565b60405180910390f35b3480156107f6575f80fd5b506107ff611291565b60405161080c9190612e9c565b60405180910390f35b348015610820575f80fd5b5061083b600480360381019061083691906130a1565b611297565b005b348015610848575f80fd5b506108516113b8565b60405161085e9190612e9c565b60405180910390f35b348015610872575f80fd5b5061088d600480360381019061088891906130e8565b6113be565b60405161089a9190612e9c565b60405180910390f35b3480156108ae575f80fd5b506108b7611440565b6040516108c49190612e9c565b60405180910390f35b3480156108d8575f80fd5b506108e1611446565b6040516108ee9190612e9c565b60405180910390f35b348015610902575f80fd5b5061091d60048036038101906109189190612dee565b61144c565b005b34801561092a575f80fd5b5061093361160e565b6040516109409190612e9c565b60405180910390f35b348015610954575f80fd5b5061095d611614565b60405161096a9190612e9c565b60405180910390f35b60606003805461098290613153565b80601f01602080910402602001604051908101604052809291908181526020018280546109ae90613153565b80156109f95780601f106109d0576101008083540402835291602001916109f9565b820191905f5260205f20905b8154815290600101906020018083116109dc57829003601f168201915b5050505050905090565b5f610a16610a0f61161a565b8484611621565b6001905092915050565b6018602052805f5260405f205f915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b5f600254905090565b600b5481565b60155481565b60145481565b5f610a888484846117e4565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610acf61161a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b45906131f3565b60405180910390fd5b610b6285610b5a61161a565b858403611621565b60019150509392505050565b61dead81565b600c5481565b600a5f9054906101000a900460ff1681565b5f6009905090565b610b9c61161a565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c219061325b565b60405180910390fd5b5f5b8151811015610cb0575f601a5f848481518110610c4c57610c4b613279565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610c2c565b5050565b5f610d51610cc061161a565b848460015f610ccd61161a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d4c91906132d3565b611621565b6001905092915050565b5f601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60165f9054906101000a900460ff1681565b60115481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e3661161a565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebb9061325b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f610fdd61161a565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110629061325b565b60405180910390fd5b5f600f819055505f601081905550600f5460105461108991906132d3565b600e81905550603260128190555060326013819055506012546013546110af91906132d3565b6011819055505f60165f6101000a81548160ff0219169083151502179055506001905090565b60125481565b6060600480546110ea90613153565b80601f016020809104026020016040519081016040528092919081815260200182805461111690613153565b80156111615780601f1061113857610100808354040283529160200191611161565b820191905f5260205f20905b81548152906001019060200180831161114457829003601f168201915b5050505050905090565b5f8060015f61117861161a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122990613376565b60405180910390fd5b61124661123d61161a565b85858403611621565b600191505092915050565b600d5481565b5f61126a61126361161a565b84846117e4565b6001905092915050565b6019602052805f5260405f205f915054906101000a900460ff1681565b60085481565b61129f61161a565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113249061325b565b60405180910390fd5b5f5b81518110156113b4576001601a5f8484815181106113505761134f613279565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061132f565b5050565b600e5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075481565b60105481565b61145461161a565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d99061325b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154790613404565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168690613492565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f490613520565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117d79190612e9c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611849906135ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b79061363c565b60405180910390fd5b5f60019050601a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806119605750601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611969575f90505b5f82036119815761197b84845f6122b6565b506122b1565b611989610fac565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119f757506119c7610fac565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d7f5760165f9054906101000a900460ff168015611a145750805b8015611a4c57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a86575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a9f5750600560149054906101000a900460ff16155b15611d7e5760195f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611b41575060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611be857600854821115611b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b82906136ca565b60405180910390fd5b600954611b9784610de9565b83611ba291906132d3565b1115611be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bda90613732565b60405180910390fd5b611d7d565b60195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c85575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611cd457600854821115611ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc6906137c0565b60405180910390fd5b611d7c565b60185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611d7b57600954611d2e84610de9565b83611d3991906132d3565b1115611d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7190613732565b60405180910390fd5b5b5b5b5b5b5f611d8930610de9565b90505f6007548210159050808015611dae5750600560149054906101000a900460ff16155b8015611e01575060195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e54575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ea7575060175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611eea576001600560146101000a81548160ff021916908315150217905550611ecf61252b565b5f600560146101000a81548160ff0219169083151502179055505b600560149054906101000a900460ff16158015611f4d575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611f645750600a5f9054906101000a900460ff165b8015611f7f5750600c54600d54611f7b91906132d3565b4210155b8015611fd2575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fe157611fdf612726565b505b5f600560149054906101000a900460ff1615905060175f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612090575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612099575f90505b5f81156122a05760195f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120f757505f601154115b1561219057612125612710612117601154896128e090919063ffffffff16565b6128f590919063ffffffff16565b90506011546013548261213891906137de565b612142919061384c565b60155f82825461215291906132d3565b925050819055506011546012548261216a91906137de565b612174919061384c565b60145f82825461218491906132d3565b9250508190555061227d565b60195f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156121e757505f600e54115b1561227c57612215612710612207600e54896128e090919063ffffffff16565b6128f590919063ffffffff16565b9050600e546010548261222891906137de565b612232919061384c565b60155f82825461224291906132d3565b92505081905550600e54600f548261225a91906137de565b612264919061384c565b60145f82825461227491906132d3565b925050819055505b5b5f811115612291576122908830836122b6565b5b808661229d919061387c565b95505b6122ab8888886122b6565b50505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231b906135ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612392576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123899061363c565b60405180910390fd5b61239d83838361290a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612420576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124179061391f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124ae91906132d3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125129190612e9c565b60405180910390a361252584848461290f565b50505050565b5f61253530610de9565b90505f60145460155461254891906132d3565b90505f8083148061255857505f82145b1561256557505050612724565b601460075461257491906137de565b83111561258d57601460075461258a91906137de565b92505b5f6002836015548661259f91906137de565b6125a9919061384c565b6125b3919061384c565b90505f6125c9828661291490919063ffffffff16565b90505f4790506125d882612929565b5f6125ec824761291490919063ffffffff16565b90505f61261687612608601454856128e090919063ffffffff16565b6128f590919063ffffffff16565b90505f8183612625919061387c565b90505f6015819055505f6014819055505f8611801561264357505f81115b15612690576126528682612b5c565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185826015546040516126879392919061393d565b60405180910390a15b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516126d59061399f565b5f6040518083038185875af1925050503d805f811461270f576040519150601f19603f3d011682016040523d82523d5f602084013e612714565b606091505b5050809750505050505050505050505b565b5f42600d819055505f3073ffffffffffffffffffffffffffffffffffffffff166370a082317f00000000000000000000000000000000000000000000000000000000000000006040518263ffffffff1660e01b81526004016127889190612f14565b602060405180830381865afa1580156127a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127c791906139c7565b90505f6127f36127106127e5600b54856128e090919063ffffffff16565b6128f590919063ffffffff16565b90505f81111561282b5761282a7f000000000000000000000000000000000000000000000000000000000000000061dead836122b6565b5b5f7f000000000000000000000000000000000000000000000000000000000000000090508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612894575f80fd5b505af11580156128a6573d5f803e3d5ffd5b505050507f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d60405160405180910390a16001935050505090565b5f81836128ed91906137de565b905092915050565b5f8183612902919061384c565b905092915050565b505050565b505050565b5f8183612921919061387c565b905092915050565b5f600267ffffffffffffffff81111561294557612944612f65565b5b6040519080825280602002602001820160405280156129735781602001602082028036833780820191505090505b50905030815f8151811061298a57612989613279565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a519190613a06565b81600181518110612a6557612a64613279565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612aca307f000000000000000000000000000000000000000000000000000000000000000084611621565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612b2b959493929190613b21565b5f604051808303815f87803b158015612b42575f80fd5b505af1158015612b54573d5f803e3d5ffd5b505050505050565b612b87307f000000000000000000000000000000000000000000000000000000000000000084611621565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8061dead426040518863ffffffff1660e01b8152600401612bed96959493929190613b79565b60606040518083038185885af1158015612c09573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612c2e9190613bd8565b5050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c6c578082015181840152602081019050612c51565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c9182612c35565b612c9b8185612c3f565b9350612cab818560208601612c4f565b612cb481612c77565b840191505092915050565b5f6020820190508181035f830152612cd78184612c87565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d1982612cf0565b9050919050565b612d2981612d0f565b8114612d33575f80fd5b50565b5f81359050612d4481612d20565b92915050565b5f819050919050565b612d5c81612d4a565b8114612d66575f80fd5b50565b5f81359050612d7781612d53565b92915050565b5f8060408385031215612d9357612d92612ce8565b5b5f612da085828601612d36565b9250506020612db185828601612d69565b9150509250929050565b5f8115159050919050565b612dcf81612dbb565b82525050565b5f602082019050612de85f830184612dc6565b92915050565b5f60208284031215612e0357612e02612ce8565b5b5f612e1084828501612d36565b91505092915050565b5f819050919050565b5f612e3c612e37612e3284612cf0565b612e19565b612cf0565b9050919050565b5f612e4d82612e22565b9050919050565b5f612e5e82612e43565b9050919050565b612e6e81612e54565b82525050565b5f602082019050612e875f830184612e65565b92915050565b612e9681612d4a565b82525050565b5f602082019050612eaf5f830184612e8d565b92915050565b5f805f60608486031215612ecc57612ecb612ce8565b5b5f612ed986828701612d36565b9350506020612eea86828701612d36565b9250506040612efb86828701612d69565b9150509250925092565b612f0e81612d0f565b82525050565b5f602082019050612f275f830184612f05565b92915050565b5f60ff82169050919050565b612f4281612f2d565b82525050565b5f602082019050612f5b5f830184612f39565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f9b82612c77565b810181811067ffffffffffffffff82111715612fba57612fb9612f65565b5b80604052505050565b5f612fcc612cdf565b9050612fd88282612f92565b919050565b5f67ffffffffffffffff821115612ff757612ff6612f65565b5b602082029050602081019050919050565b5f80fd5b5f61301e61301984612fdd565b612fc3565b9050808382526020820190506020840283018581111561304157613040613008565b5b835b8181101561306a57806130568882612d36565b845260208401935050602081019050613043565b5050509392505050565b5f82601f83011261308857613087612f61565b5b813561309884826020860161300c565b91505092915050565b5f602082840312156130b6576130b5612ce8565b5b5f82013567ffffffffffffffff8111156130d3576130d2612cec565b5b6130df84828501613074565b91505092915050565b5f80604083850312156130fe576130fd612ce8565b5b5f61310b85828601612d36565b925050602061311c85828601612d36565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061316a57607f821691505b60208210810361317d5761317c613126565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6131dd602883612c3f565b91506131e882613183565b604082019050919050565b5f6020820190508181035f83015261320a816131d1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613245602083612c3f565b915061325082613211565b602082019050919050565b5f6020820190508181035f83015261327281613239565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6132dd82612d4a565b91506132e883612d4a565b9250828201905080821115613300576132ff6132a6565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613360602583612c3f565b915061336b82613306565b604082019050919050565b5f6020820190508181035f83015261338d81613354565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6133ee602683612c3f565b91506133f982613394565b604082019050919050565b5f6020820190508181035f83015261341b816133e2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61347c602483612c3f565b915061348782613422565b604082019050919050565b5f6020820190508181035f8301526134a981613470565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61350a602283612c3f565b9150613515826134b0565b604082019050919050565b5f6020820190508181035f830152613537816134fe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613598602583612c3f565b91506135a38261353e565b604082019050919050565b5f6020820190508181035f8301526135c58161358c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613626602383612c3f565b9150613631826135cc565b604082019050919050565b5f6020820190508181035f8301526136538161361a565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6136b4603583612c3f565b91506136bf8261365a565b604082019050919050565b5f6020820190508181035f8301526136e1816136a8565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f61371c601383612c3f565b9150613727826136e8565b602082019050919050565b5f6020820190508181035f83015261374981613710565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6137aa603683612c3f565b91506137b582613750565b604082019050919050565b5f6020820190508181035f8301526137d78161379e565b9050919050565b5f6137e882612d4a565b91506137f383612d4a565b925082820261380181612d4a565b91508282048414831517613818576138176132a6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61385682612d4a565b915061386183612d4a565b9250826138715761387061381f565b5b828204905092915050565b5f61388682612d4a565b915061389183612d4a565b92508282039050818111156138a9576138a86132a6565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613909602683612c3f565b9150613914826138af565b604082019050919050565b5f6020820190508181035f830152613936816138fd565b9050919050565b5f6060820190506139505f830186612e8d565b61395d6020830185612e8d565b61396a6040830184612e8d565b949350505050565b5f81905092915050565b50565b5f61398a5f83613972565b91506139958261397c565b5f82019050919050565b5f6139a98261397f565b9150819050919050565b5f815190506139c181612d53565b92915050565b5f602082840312156139dc576139db612ce8565b5b5f6139e9848285016139b3565b91505092915050565b5f81519050613a0081612d20565b92915050565b5f60208284031215613a1b57613a1a612ce8565b5b5f613a28848285016139f2565b91505092915050565b5f819050919050565b5f613a54613a4f613a4a84613a31565b612e19565b612d4a565b9050919050565b613a6481613a3a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613a9c81612d0f565b82525050565b5f613aad8383613a93565b60208301905092915050565b5f602082019050919050565b5f613acf82613a6a565b613ad98185613a74565b9350613ae483613a84565b805f5b83811015613b14578151613afb8882613aa2565b9750613b0683613ab9565b925050600181019050613ae7565b5085935050505092915050565b5f60a082019050613b345f830188612e8d565b613b416020830187613a5b565b8181036040830152613b538186613ac5565b9050613b626060830185612f05565b613b6f6080830184612e8d565b9695505050505050565b5f60c082019050613b8c5f830189612f05565b613b996020830188612e8d565b613ba66040830187613a5b565b613bb36060830186613a5b565b613bc06080830185612f05565b613bcd60a0830184612e8d565b979650505050505050565b5f805f60608486031215613bef57613bee612ce8565b5b5f613bfc868287016139b3565b9350506020613c0d868287016139b3565b9250506040613c1e868287016139b3565b915050925092509256fea2646970667358221220aeb0bfb94d8d64f21ba78d973f695fd9e17209a45b622f899f620319d99292af64736f6c63430008160033
Deployed Bytecode
0x60806040526004361061023e575f3560e01c8063715018a61161012d578063b62496f5116100aa578063e2f456051161006e578063e2f45605146108a3578063f11a24d3146108cd578063f2fde38b146108f7578063f63743421461091f578063f8b45b051461094957610245565b8063b62496f5146107af578063c8c8ebe4146107eb578063d34628cc14610815578063d85ba0631461083d578063dd62ed3e1461086757610245565b806392136913116100f157806392136913146106b957806395d89b41146106e3578063a457c2d71461070d578063a4c82a0014610749578063a9059cbb1461077357610245565b8063715018a6146105fb57806375f0a874146106115780637bce5a041461063b5780638da5cb5b14610665578063903c82a71461068f57610245565b80632c3e486c116101bb5780633bbac5791161017f5780633bbac5791461050557806349bd5a5e146105415780634a62bb651461056b5780636a486a8e1461059557806370a08231146105bf57610245565b80632c3e486c146104235780632e82f1a01461044d578063313ce5671461047757806331c2d847146104a157806339509351146104c957610245565b8063199ffc7211610202578063199ffc721461033f5780631a8145bb146103695780631f3fed8f1461039357806323b872dd146103bd57806327c8f835146103f957610245565b806306fdde0314610249578063095ea7b31461027357806310d5de53146102af5780631694505e146102eb57806318160ddd1461031557610245565b3661024557005b5f80fd5b348015610254575f80fd5b5061025d610973565b60405161026a9190612cbf565b60405180910390f35b34801561027e575f80fd5b5061029960048036038101906102949190612d7d565b610a03565b6040516102a69190612dd5565b60405180910390f35b3480156102ba575f80fd5b506102d560048036038101906102d09190612dee565b610a20565b6040516102e29190612dd5565b60405180910390f35b3480156102f6575f80fd5b506102ff610a3d565b60405161030c9190612e74565b60405180910390f35b348015610320575f80fd5b50610329610a61565b6040516103369190612e9c565b60405180910390f35b34801561034a575f80fd5b50610353610a6a565b6040516103609190612e9c565b60405180910390f35b348015610374575f80fd5b5061037d610a70565b60405161038a9190612e9c565b60405180910390f35b34801561039e575f80fd5b506103a7610a76565b6040516103b49190612e9c565b60405180910390f35b3480156103c8575f80fd5b506103e360048036038101906103de9190612eb5565b610a7c565b6040516103f09190612dd5565b60405180910390f35b348015610404575f80fd5b5061040d610b6e565b60405161041a9190612f14565b60405180910390f35b34801561042e575f80fd5b50610437610b74565b6040516104449190612e9c565b60405180910390f35b348015610458575f80fd5b50610461610b7a565b60405161046e9190612dd5565b60405180910390f35b348015610482575f80fd5b5061048b610b8c565b6040516104989190612f48565b60405180910390f35b3480156104ac575f80fd5b506104c760048036038101906104c291906130a1565b610b94565b005b3480156104d4575f80fd5b506104ef60048036038101906104ea9190612d7d565b610cb4565b6040516104fc9190612dd5565b60405180910390f35b348015610510575f80fd5b5061052b60048036038101906105269190612dee565b610d5b565b6040516105389190612dd5565b60405180910390f35b34801561054c575f80fd5b50610555610dad565b6040516105629190612f14565b60405180910390f35b348015610576575f80fd5b5061057f610dd1565b60405161058c9190612dd5565b60405180910390f35b3480156105a0575f80fd5b506105a9610de3565b6040516105b69190612e9c565b60405180910390f35b3480156105ca575f80fd5b506105e560048036038101906105e09190612dee565b610de9565b6040516105f29190612e9c565b60405180910390f35b348015610606575f80fd5b5061060f610e2e565b005b34801561061c575f80fd5b50610625610f81565b6040516106329190612f14565b60405180910390f35b348015610646575f80fd5b5061064f610fa6565b60405161065c9190612e9c565b60405180910390f35b348015610670575f80fd5b50610679610fac565b6040516106869190612f14565b60405180910390f35b34801561069a575f80fd5b506106a3610fd4565b6040516106b09190612dd5565b60405180910390f35b3480156106c4575f80fd5b506106cd6110d5565b6040516106da9190612e9c565b60405180910390f35b3480156106ee575f80fd5b506106f76110db565b6040516107049190612cbf565b60405180910390f35b348015610718575f80fd5b50610733600480360381019061072e9190612d7d565b61116b565b6040516107409190612dd5565b60405180910390f35b348015610754575f80fd5b5061075d611251565b60405161076a9190612e9c565b60405180910390f35b34801561077e575f80fd5b5061079960048036038101906107949190612d7d565b611257565b6040516107a69190612dd5565b60405180910390f35b3480156107ba575f80fd5b506107d560048036038101906107d09190612dee565b611274565b6040516107e29190612dd5565b60405180910390f35b3480156107f6575f80fd5b506107ff611291565b60405161080c9190612e9c565b60405180910390f35b348015610820575f80fd5b5061083b600480360381019061083691906130a1565b611297565b005b348015610848575f80fd5b506108516113b8565b60405161085e9190612e9c565b60405180910390f35b348015610872575f80fd5b5061088d600480360381019061088891906130e8565b6113be565b60405161089a9190612e9c565b60405180910390f35b3480156108ae575f80fd5b506108b7611440565b6040516108c49190612e9c565b60405180910390f35b3480156108d8575f80fd5b506108e1611446565b6040516108ee9190612e9c565b60405180910390f35b348015610902575f80fd5b5061091d60048036038101906109189190612dee565b61144c565b005b34801561092a575f80fd5b5061093361160e565b6040516109409190612e9c565b60405180910390f35b348015610954575f80fd5b5061095d611614565b60405161096a9190612e9c565b60405180910390f35b60606003805461098290613153565b80601f01602080910402602001604051908101604052809291908181526020018280546109ae90613153565b80156109f95780601f106109d0576101008083540402835291602001916109f9565b820191905f5260205f20905b8154815290600101906020018083116109dc57829003601f168201915b5050505050905090565b5f610a16610a0f61161a565b8484611621565b6001905092915050565b6018602052805f5260405f205f915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b5f600254905090565b600b5481565b60155481565b60145481565b5f610a888484846117e4565b5f60015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f610acf61161a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015610b4e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b45906131f3565b60405180910390fd5b610b6285610b5a61161a565b858403611621565b60019150509392505050565b61dead81565b600c5481565b600a5f9054906101000a900460ff1681565b5f6009905090565b610b9c61161a565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610c2a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c219061325b565b60405180910390fd5b5f5b8151811015610cb0575f601a5f848481518110610c4c57610c4b613279565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff0219169083151502179055508080600101915050610c2c565b5050565b5f610d51610cc061161a565b848460015f610ccd61161a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054610d4c91906132d3565b611621565b6001905092915050565b5f601a5f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff169050919050565b7f0000000000000000000000001b2cb797b820e7a333f0b8a39bb1120256e82fe281565b60165f9054906101000a900460ff1681565b60115481565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b610e3661161a565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614610ec4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ebb9061325b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35f60055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600f5481565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b5f610fdd61161a565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461106b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110629061325b565b60405180910390fd5b5f600f819055505f601081905550600f5460105461108991906132d3565b600e81905550603260128190555060326013819055506012546013546110af91906132d3565b6011819055505f60165f6101000a81548160ff0219169083151502179055506001905090565b60125481565b6060600480546110ea90613153565b80601f016020809104026020016040519081016040528092919081815260200182805461111690613153565b80156111615780601f1061113857610100808354040283529160200191611161565b820191905f5260205f20905b81548152906001019060200180831161114457829003601f168201915b5050505050905090565b5f8060015f61117861161a565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905082811015611232576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161122990613376565b60405180910390fd5b61124661123d61161a565b85858403611621565b600191505092915050565b600d5481565b5f61126a61126361161a565b84846117e4565b6001905092915050565b6019602052805f5260405f205f915054906101000a900460ff1681565b60085481565b61129f61161a565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff161461132d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113249061325b565b60405180910390fd5b5f5b81518110156113b4576001601a5f8484815181106113505761134f613279565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f6101000a81548160ff021916908315150217905550808060010191505061132f565b5050565b600e5481565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b60075481565b60105481565b61145461161a565b73ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146114e2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d99061325b565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611550576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154790613404565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1660055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a38060055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60135481565b60095481565b5f33905090565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361168f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161168690613492565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116fd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116f490613520565b60405180910390fd5b8060015f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516117d79190612e9c565b60405180910390a3505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611852576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611849906135ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b79061363c565b60405180910390fd5b5f60019050601a5f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16806119605750601a5f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15611969575f90505b5f82036119815761197b84845f6122b6565b506122b1565b611989610fac565b73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16141580156119f757506119c7610fac565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b15611d7f5760165f9054906101000a900460ff168015611a145750805b8015611a4c57505f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a86575061dead73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015611a9f5750600560149054906101000a900460ff16155b15611d7e5760195f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611b41575060185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611be857600854821115611b8b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b82906136ca565b60405180910390fd5b600954611b9784610de9565b83611ba291906132d3565b1115611be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bda90613732565b60405180910390fd5b611d7d565b60195f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff168015611c85575060185f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611cd457600854821115611ccf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cc6906137c0565b60405180910390fd5b611d7c565b60185f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16611d7b57600954611d2e84610de9565b83611d3991906132d3565b1115611d7a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d7190613732565b60405180910390fd5b5b5b5b5b5b5f611d8930610de9565b90505f6007548210159050808015611dae5750600560149054906101000a900460ff16155b8015611e01575060195f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611e54575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b8015611ea7575060175f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611eea576001600560146101000a81548160ff021916908315150217905550611ecf61252b565b5f600560146101000a81548160ff0219169083151502179055505b600560149054906101000a900460ff16158015611f4d575060195f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b8015611f645750600a5f9054906101000a900460ff165b8015611f7f5750600c54600d54611f7b91906132d3565b4210155b8015611fd2575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff16155b15611fe157611fdf612726565b505b5f600560149054906101000a900460ff1615905060175f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680612090575060175f8773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff165b15612099575f90505b5f81156122a05760195f8873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156120f757505f601154115b1561219057612125612710612117601154896128e090919063ffffffff16565b6128f590919063ffffffff16565b90506011546013548261213891906137de565b612142919061384c565b60155f82825461215291906132d3565b925050819055506011546012548261216a91906137de565b612174919061384c565b60145f82825461218491906132d3565b9250508190555061227d565b60195f8973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f9054906101000a900460ff1680156121e757505f600e54115b1561227c57612215612710612207600e54896128e090919063ffffffff16565b6128f590919063ffffffff16565b9050600e546010548261222891906137de565b612232919061384c565b60155f82825461224291906132d3565b92505081905550600e54600f548261225a91906137de565b612264919061384c565b60145f82825461227491906132d3565b925050819055505b5b5f811115612291576122908830836122b6565b5b808661229d919061387c565b95505b6122ab8888886122b6565b50505050505b505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612324576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161231b906135ae565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612392576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123899061363c565b60405180910390fd5b61239d83838361290a565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015612420576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124179061391f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550815f808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8282546124ae91906132d3565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516125129190612e9c565b60405180910390a361252584848461290f565b50505050565b5f61253530610de9565b90505f60145460155461254891906132d3565b90505f8083148061255857505f82145b1561256557505050612724565b601460075461257491906137de565b83111561258d57601460075461258a91906137de565b92505b5f6002836015548661259f91906137de565b6125a9919061384c565b6125b3919061384c565b90505f6125c9828661291490919063ffffffff16565b90505f4790506125d882612929565b5f6125ec824761291490919063ffffffff16565b90505f61261687612608601454856128e090919063ffffffff16565b6128f590919063ffffffff16565b90505f8183612625919061387c565b90505f6015819055505f6014819055505f8611801561264357505f81115b15612690576126528682612b5c565b7f17bbfb9a6069321b6ded73bd96327c9e6b7212a5cd51ff219cd61370acafb56185826015546040516126879392919061393d565b60405180910390a15b60065f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16476040516126d59061399f565b5f6040518083038185875af1925050503d805f811461270f576040519150601f19603f3d011682016040523d82523d5f602084013e612714565b606091505b5050809750505050505050505050505b565b5f42600d819055505f3073ffffffffffffffffffffffffffffffffffffffff166370a082317f0000000000000000000000001b2cb797b820e7a333f0b8a39bb1120256e82fe26040518263ffffffff1660e01b81526004016127889190612f14565b602060405180830381865afa1580156127a3573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127c791906139c7565b90505f6127f36127106127e5600b54856128e090919063ffffffff16565b6128f590919063ffffffff16565b90505f81111561282b5761282a7f0000000000000000000000001b2cb797b820e7a333f0b8a39bb1120256e82fe261dead836122b6565b5b5f7f0000000000000000000000001b2cb797b820e7a333f0b8a39bb1120256e82fe290508073ffffffffffffffffffffffffffffffffffffffff1663fff6cae96040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612894575f80fd5b505af11580156128a6573d5f803e3d5ffd5b505050507f454c91ae84fcc766ddda0dcb289f26b3d0176efeacf4061fc219fa6ca8c3048d60405160405180910390a16001935050505090565b5f81836128ed91906137de565b905092915050565b5f8183612902919061384c565b905092915050565b505050565b505050565b5f8183612921919061387c565b905092915050565b5f600267ffffffffffffffff81111561294557612944612f65565b5b6040519080825280602002602001820160405280156129735781602001602082028036833780820191505090505b50905030815f8151811061298a57612989613279565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015612a2d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a519190613a06565b81600181518110612a6557612a64613279565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff1681525050612aca307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611621565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac947835f8430426040518663ffffffff1660e01b8152600401612b2b959493929190613b21565b5f604051808303815f87803b158015612b42575f80fd5b505af1158015612b54573d5f803e3d5ffd5b505050505050565b612b87307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d84611621565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663f305d7198230855f8061dead426040518863ffffffff1660e01b8152600401612bed96959493929190613b79565b60606040518083038185885af1158015612c09573d5f803e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190612c2e9190613bd8565b5050505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015612c6c578082015181840152602081019050612c51565b5f8484015250505050565b5f601f19601f8301169050919050565b5f612c9182612c35565b612c9b8185612c3f565b9350612cab818560208601612c4f565b612cb481612c77565b840191505092915050565b5f6020820190508181035f830152612cd78184612c87565b905092915050565b5f604051905090565b5f80fd5b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f612d1982612cf0565b9050919050565b612d2981612d0f565b8114612d33575f80fd5b50565b5f81359050612d4481612d20565b92915050565b5f819050919050565b612d5c81612d4a565b8114612d66575f80fd5b50565b5f81359050612d7781612d53565b92915050565b5f8060408385031215612d9357612d92612ce8565b5b5f612da085828601612d36565b9250506020612db185828601612d69565b9150509250929050565b5f8115159050919050565b612dcf81612dbb565b82525050565b5f602082019050612de85f830184612dc6565b92915050565b5f60208284031215612e0357612e02612ce8565b5b5f612e1084828501612d36565b91505092915050565b5f819050919050565b5f612e3c612e37612e3284612cf0565b612e19565b612cf0565b9050919050565b5f612e4d82612e22565b9050919050565b5f612e5e82612e43565b9050919050565b612e6e81612e54565b82525050565b5f602082019050612e875f830184612e65565b92915050565b612e9681612d4a565b82525050565b5f602082019050612eaf5f830184612e8d565b92915050565b5f805f60608486031215612ecc57612ecb612ce8565b5b5f612ed986828701612d36565b9350506020612eea86828701612d36565b9250506040612efb86828701612d69565b9150509250925092565b612f0e81612d0f565b82525050565b5f602082019050612f275f830184612f05565b92915050565b5f60ff82169050919050565b612f4281612f2d565b82525050565b5f602082019050612f5b5f830184612f39565b92915050565b5f80fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b612f9b82612c77565b810181811067ffffffffffffffff82111715612fba57612fb9612f65565b5b80604052505050565b5f612fcc612cdf565b9050612fd88282612f92565b919050565b5f67ffffffffffffffff821115612ff757612ff6612f65565b5b602082029050602081019050919050565b5f80fd5b5f61301e61301984612fdd565b612fc3565b9050808382526020820190506020840283018581111561304157613040613008565b5b835b8181101561306a57806130568882612d36565b845260208401935050602081019050613043565b5050509392505050565b5f82601f83011261308857613087612f61565b5b813561309884826020860161300c565b91505092915050565b5f602082840312156130b6576130b5612ce8565b5b5f82013567ffffffffffffffff8111156130d3576130d2612cec565b5b6130df84828501613074565b91505092915050565b5f80604083850312156130fe576130fd612ce8565b5b5f61310b85828601612d36565b925050602061311c85828601612d36565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f600282049050600182168061316a57607f821691505b60208210810361317d5761317c613126565b5b50919050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320615f8201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b5f6131dd602883612c3f565b91506131e882613183565b604082019050919050565b5f6020820190508181035f83015261320a816131d1565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65725f82015250565b5f613245602083612c3f565b915061325082613211565b602082019050919050565b5f6020820190508181035f83015261327281613239565b9050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f6132dd82612d4a565b91506132e883612d4a565b9250828201905080821115613300576132ff6132a6565b5b92915050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f775f8201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b5f613360602583612c3f565b915061336b82613306565b604082019050919050565b5f6020820190508181035f83015261338d81613354565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f20615f8201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b5f6133ee602683612c3f565b91506133f982613394565b604082019050919050565b5f6020820190508181035f83015261341b816133e2565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f206164645f8201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b5f61347c602483612c3f565b915061348782613422565b604082019050919050565b5f6020820190508181035f8301526134a981613470565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f2061646472655f8201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b5f61350a602283612c3f565b9150613515826134b0565b604082019050919050565b5f6020820190508181035f830152613537816134fe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f2061645f8201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b5f613598602583612c3f565b91506135a38261353e565b604082019050919050565b5f6020820190508181035f8301526135c58161358c565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f20616464725f8201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b5f613626602383612c3f565b9150613631826135cc565b604082019050919050565b5f6020820190508181035f8301526136538161361a565b9050919050565b7f427579207472616e7366657220616d6f756e74206578636565647320746865205f8201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b5f6136b4603583612c3f565b91506136bf8261365a565b604082019050919050565b5f6020820190508181035f8301526136e1816136a8565b9050919050565b7f4d61782077616c6c6574206578636565646564000000000000000000000000005f82015250565b5f61371c601383612c3f565b9150613727826136e8565b602082019050919050565b5f6020820190508181035f83015261374981613710565b9050919050565b7f53656c6c207472616e7366657220616d6f756e742065786365656473207468655f8201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b5f6137aa603683612c3f565b91506137b582613750565b604082019050919050565b5f6020820190508181035f8301526137d78161379e565b9050919050565b5f6137e882612d4a565b91506137f383612d4a565b925082820261380181612d4a565b91508282048414831517613818576138176132a6565b5b5092915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b5f61385682612d4a565b915061386183612d4a565b9250826138715761387061381f565b5b828204905092915050565b5f61388682612d4a565b915061389183612d4a565b92508282039050818111156138a9576138a86132a6565b5b92915050565b7f45524332303a207472616e7366657220616d6f756e74206578636565647320625f8201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b5f613909602683612c3f565b9150613914826138af565b604082019050919050565b5f6020820190508181035f830152613936816138fd565b9050919050565b5f6060820190506139505f830186612e8d565b61395d6020830185612e8d565b61396a6040830184612e8d565b949350505050565b5f81905092915050565b50565b5f61398a5f83613972565b91506139958261397c565b5f82019050919050565b5f6139a98261397f565b9150819050919050565b5f815190506139c181612d53565b92915050565b5f602082840312156139dc576139db612ce8565b5b5f6139e9848285016139b3565b91505092915050565b5f81519050613a0081612d20565b92915050565b5f60208284031215613a1b57613a1a612ce8565b5b5f613a28848285016139f2565b91505092915050565b5f819050919050565b5f613a54613a4f613a4a84613a31565b612e19565b612d4a565b9050919050565b613a6481613a3a565b82525050565b5f81519050919050565b5f82825260208201905092915050565b5f819050602082019050919050565b613a9c81612d0f565b82525050565b5f613aad8383613a93565b60208301905092915050565b5f602082019050919050565b5f613acf82613a6a565b613ad98185613a74565b9350613ae483613a84565b805f5b83811015613b14578151613afb8882613aa2565b9750613b0683613ab9565b925050600181019050613ae7565b5085935050505092915050565b5f60a082019050613b345f830188612e8d565b613b416020830187613a5b565b8181036040830152613b538186613ac5565b9050613b626060830185612f05565b613b6f6080830184612e8d565b9695505050505050565b5f60c082019050613b8c5f830189612f05565b613b996020830188612e8d565b613ba66040830187613a5b565b613bb36060830186613a5b565b613bc06080830185612f05565b613bcd60a0830184612e8d565b979650505050505050565b5f805f60608486031215613bef57613bee612ce8565b5b5f613bfc868287016139b3565b9350506020613c0d868287016139b3565b9250506040613c1e868287016139b3565b915050925092509256fea2646970667358221220aeb0bfb94d8d64f21ba78d973f695fd9e17209a45b622f899f620319d99292af64736f6c63430008160033
Deployed Bytecode Sourcemap
16266:11840:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3706:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4685:194;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17282:63;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16341:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4026:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16731:36;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17139:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17099;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4887:529;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16444:53;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16786:45;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16692:32;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3926:92;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27850:162;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;5424:290;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;28020:83;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16399:38;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17181:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16986:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4142:143;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1675:148;;;;;;;;;;;;;:::i;:::-;;16536:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16910;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1033:79;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;19692:391;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17021:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3814:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;5722:475;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16838:29;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4293:200;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17354:57;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16617:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;27678:164;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16876:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4501:176;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16575:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16947:30;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;1978:281;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17059:31;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16659:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3706:100;3760:13;3793:5;3786:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3706:100;:::o;4685:194::-;4793:4;4810:39;4819:12;:10;:12::i;:::-;4833:7;4842:6;4810:8;:39::i;:::-;4867:4;4860:11;;4685:194;;;;:::o;17282:63::-;;;;;;;;;;;;;;;;;;;;;;:::o;16341:51::-;;;:::o;4026:108::-;4087:7;4114:12;;4107:19;;4026:108;:::o;16731:36::-;;;;:::o;17139:33::-;;;;:::o;17099:::-;;;;:::o;4887:529::-;5027:4;5044:36;5054:6;5062:9;5073:6;5044:9;:36::i;:::-;5093:24;5120:11;:19;5132:6;5120:19;;;;;;;;;;;;;;;:33;5140:12;:10;:12::i;:::-;5120:33;;;;;;;;;;;;;;;;5093:60;;5206:6;5186:16;:26;;5164:116;;;;;;;;;;;;:::i;:::-;;;;;;;;;5316:57;5325:6;5333:12;:10;:12::i;:::-;5366:6;5347:16;:25;5316:8;:57::i;:::-;5404:4;5397:11;;;4887:529;;;;;:::o;16444:53::-;16490:6;16444:53;:::o;16786:45::-;;;;:::o;16692:32::-;;;;;;;;;;;;;:::o;3926:92::-;3984:5;4009:1;4002:8;;3926:92;:::o;27850:162::-;1255:12;:10;:12::i;:::-;1245:22;;:6;;;;;;;;;;;:22;;;1237:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27923:6:::1;27918:87;27939:6;:13;27935:1;:17;27918:87;;;27990:5;27972:4;:15;27977:6;27984:1;27977:9;;;;;;;;:::i;:::-;;;;;;;;27972:15;;;;;;;;;;;;;;;;:23;;;;;;;;;;;;;;;;;;27954:3;;;;;;;27918:87;;;;27850:162:::0;:::o;5424:290::-;5537:4;5554:130;5577:12;:10;:12::i;:::-;5604:7;5663:10;5626:11;:25;5638:12;:10;:12::i;:::-;5626:25;;;;;;;;;;;;;;;:34;5652:7;5626:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;5554:8;:130::i;:::-;5702:4;5695:11;;5424:290;;;;:::o;28020:83::-;28067:4;28088;:7;28093:1;28088:7;;;;;;;;;;;;;;;;;;;;;;;;;28081:14;;28020:83;;;:::o;16399:38::-;;;:::o;17181:33::-;;;;;;;;;;;;;:::o;16986:28::-;;;;:::o;4142:143::-;4232:7;4259:9;:18;4269:7;4259:18;;;;;;;;;;;;;;;;4252:25;;4142:143;;;:::o;1675:148::-;1255:12;:10;:12::i;:::-;1245:22;;:6;;;;;;;;;;;:22;;;1237:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;1782:1:::1;1745:40;;1766:6;;;;;;;;;;;1745:40;;;;;;;;;;;;1813:1;1796:6;;:19;;;;;;;;;;;;;;;;;;1675:148::o:0;16536:30::-;;;;;;;;;;;;;:::o;16910:::-;;;;:::o;1033:79::-;1071:7;1098:6;;;;;;;;;;;1091:13;;1033:79;:::o;19692:391::-;19741:4;1255:12;:10;:12::i;:::-;1245:22;;:6;;;;;;;;;;;:22;;;1237:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;19785:1:::1;19767:15;:19;;;;19815:1;19797:15;:19;;;;19860:15;;19842;;:33;;;;:::i;:::-;19827:12;:48;;;;19914:2;19895:16;:21;;;;19946:2;19927:16;:21;;;;19994:16;;19975;;:35;;;;:::i;:::-;19959:13;:51;;;;20048:5;20031:14;;:22;;;;;;;;;;;;;;;;;;20071:4;20064:11;;19692:391:::0;:::o;17021:31::-;;;;:::o;3814:104::-;3870:13;3903:7;3896:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3814:104;:::o;5722:475::-;5840:4;5857:24;5884:11;:25;5896:12;:10;:12::i;:::-;5884:25;;;;;;;;;;;;;;;:34;5910:7;5884:34;;;;;;;;;;;;;;;;5857:61;;5971:15;5951:16;:35;;5929:122;;;;;;;;;;;;:::i;:::-;;;;;;;;;6087:67;6096:12;:10;:12::i;:::-;6110:7;6138:15;6119:16;:34;6087:8;:67::i;:::-;6185:4;6178:11;;;5722:475;;;;:::o;16838:29::-;;;;:::o;4293:200::-;4404:4;4421:42;4431:12;:10;:12::i;:::-;4445:9;4456:6;4421:9;:42::i;:::-;4481:4;4474:11;;4293:200;;;;:::o;17354:57::-;;;;;;;;;;;;;;;;;;;;;;:::o;16617:35::-;;;;:::o;27678:164::-;1255:12;:10;:12::i;:::-;1245:22;;:6;;;;;;;;;;;:22;;;1237:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;27752:6:::1;27747:88;27768:5;:12;27764:1;:16;27747:88;;;27819:4;27802;:14;27807:5;27813:1;27807:8;;;;;;;;:::i;:::-;;;;;;;;27802:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;27782:3;;;;;;;27747:88;;;;27678:164:::0;:::o;16876:27::-;;;;:::o;4501:176::-;4615:7;4642:11;:18;4654:5;4642:18;;;;;;;;;;;;;;;:27;4661:7;4642:27;;;;;;;;;;;;;;;;4635:34;;4501:176;;;;:::o;16575:33::-;;;;:::o;16947:30::-;;;;:::o;1978:281::-;1255:12;:10;:12::i;:::-;1245:22;;:6;;;;;;;;;;;:22;;;1237:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;2101:1:::1;2081:22;;:8;:22;;::::0;2059:110:::1;;;;;;;;;;;;:::i;:::-;;;;;;;;;2214:8;2185:38;;2206:6;;;;;;;;;;;2185:38;;;;;;;;;;;;2243:8;2234:6;;:17;;;;;;;;;;;;;;;;;;1978:281:::0;:::o;17059:31::-;;;;:::o;16659:24::-;;;;:::o;303:98::-;356:7;383:10;376:17;;303:98;:::o;7989:380::-;8142:1;8125:19;;:5;:19;;;8117:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8223:1;8204:21;;:7;:21;;;8196:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;8307:6;8277:11;:18;8289:5;8277:18;;;;;;;;;;;;;;;:27;8296:7;8277:27;;;;;;;;;;;;;;;:36;;;;8345:7;8329:32;;8338:5;8329:32;;;8354:6;8329:32;;;;;;:::i;:::-;;;;;;;;7989:380;;;:::o;20295:3923::-;20443:1;20427:18;;:4;:18;;;20419:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;20520:1;20506:16;;:2;:16;;;20498:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;20575:11;20589:4;20575:18;;20607:4;:10;20612:4;20607:10;;;;;;;;;;;;;;;;;;;;;;;;;:22;;;;20621:4;:8;20626:2;20621:8;;;;;;;;;;;;;;;;;;;;;;;;;20607:22;20604:77;;;20664:5;20655:14;;20604:77;20705:1;20695:6;:11;20691:93;;20723:28;20739:4;20745:2;20749:1;20723:15;:28::i;:::-;20766:7;;;20691:93;20808:7;:5;:7::i;:::-;20800:15;;:4;:15;;;;:32;;;;;20825:7;:5;:7::i;:::-;20819:13;;:2;:13;;;;20800:32;20796:1445;;;20871:14;;;;;;;;;;;:24;;;;;20889:6;20871:24;:61;;;;;20930:1;20916:16;;:2;:16;;;;20871:61;:103;;;;;20967:6;20953:21;;:2;:21;;;;20871:103;:133;;;;;20996:8;;;;;;;;;;;20995:9;20871:133;20849:1381;;;21094:25;:31;21120:4;21094:31;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;21151:31;:35;21183:2;21151:35;;;;;;;;;;;;;;;;;;;;;;;;;21150:36;21094:92;21068:1147;;;21273:20;;21263:6;:30;;21229:169;;;;;;;;;;;;:::i;:::-;;;;;;;;;21481:9;;21464:13;21474:2;21464:9;:13::i;:::-;21455:6;:22;;;;:::i;:::-;:35;;21421:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;21068:1147;;;21659:25;:29;21685:2;21659:29;;;;;;;;;;;;;;;;;;;;;;;;;:92;;;;;21714:31;:37;21746:4;21714:37;;;;;;;;;;;;;;;;;;;;;;;;;21713:38;21659:92;21633:582;;;21838:20;;21828:6;:30;;21794:170;;;;;;;;;;;;:::i;:::-;;;;;;;;;21633:582;;;21995:31;:35;22027:2;21995:35;;;;;;;;;;;;;;;;;;;;;;;;;21990:225;;22115:9;;22098:13;22108:2;22098:9;:13::i;:::-;22089:6;:22;;;;:::i;:::-;:35;;22055:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;21990:225;21633:582;21068:1147;20849:1381;20796:1445;22253:28;22284:24;22302:4;22284:9;:24::i;:::-;22253:55;;22321:12;22360:18;;22336:20;:42;;22321:57;;22409:7;:33;;;;;22434:8;;;;;;;;;;;22433:9;22409:33;:82;;;;;22460:25;:31;22486:4;22460:31;;;;;;;;;;;;;;;;;;;;;;;;;22459:32;22409:82;:125;;;;;22509:19;:25;22529:4;22509:25;;;;;;;;;;;;;;;;;;;;;;;;;22508:26;22409:125;:166;;;;;22552:19;:23;22572:2;22552:23;;;;;;;;;;;;;;;;;;;;;;;;;22551:24;22409:166;22391:298;;;22613:4;22602:8;;:15;;;;;;;;;;;;;;;;;;22634:10;:8;:10::i;:::-;22672:5;22661:8;;:16;;;;;;;;;;;;;;;;;;22391:298;22720:8;;;;;;;;;;;22719:9;:55;;;;;22745:25;:29;22771:2;22745:29;;;;;;;;;;;;;;;;;;;;;;;;;22719:55;:85;;;;;22791:13;;;;;;;;;;;22719:85;:153;;;;;22857:15;;22840:14;;:32;;;;:::i;:::-;22821:15;:51;;22719:153;:196;;;;;22890:19;:25;22910:4;22890:25;;;;;;;;;;;;;;;;;;;;;;;;;22889:26;22719:196;22701:282;;;22942:29;:27;:29::i;:::-;;22701:282;22995:12;23011:8;;;;;;;;;;;23010:9;22995:24;;23121:19;:25;23141:4;23121:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;23150:19;:23;23170:2;23150:23;;;;;;;;;;;;;;;;;;;;;;;;;23121:52;23117:100;;;23200:5;23190:15;;23117:100;23229:12;23334:7;23330:835;;;23386:25;:29;23412:2;23386:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;23435:1;23419:13;;:17;23386:50;23382:634;;;23464:36;23494:5;23464:25;23475:13;;23464:6;:10;;:25;;;;:::i;:::-;:29;;:36;;;;:::i;:::-;23457:43;;23569:13;;23549:16;;23542:4;:23;;;;:::i;:::-;23541:41;;;;:::i;:::-;23519:18;;:63;;;;;;;:::i;:::-;;;;;;;;23651:13;;23631:16;;23624:4;:23;;;;:::i;:::-;23623:41;;;;:::i;:::-;23601:18;;:63;;;;;;;:::i;:::-;;;;;;;;23382:634;;;23726:25;:31;23752:4;23726:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;23776:1;23761:12;;:16;23726:51;23722:294;;;23805:35;23834:5;23805:24;23816:12;;23805:6;:10;;:24;;;;:::i;:::-;:28;;:35;;;;:::i;:::-;23798:42;;23908:12;;23889:15;;23882:4;:22;;;;:::i;:::-;23881:39;;;;:::i;:::-;23859:18;;:61;;;;;;;:::i;:::-;;;;;;;;23988:12;;23969:15;;23962:4;:22;;;;:::i;:::-;23961:39;;;;:::i;:::-;23939:18;;:61;;;;;;;:::i;:::-;;;;;;;;23722:294;23382:634;24043:1;24036:4;:8;24032:91;;;24065:42;24081:4;24095;24102;24065:15;:42::i;:::-;24032:91;24149:4;24139:14;;;;;:::i;:::-;;;23330:835;24177:33;24193:4;24199:2;24203:6;24177:15;:33::i;:::-;20408:3810;;;;;20295:3923;;;;:::o;6205:770::-;6363:1;6345:20;;:6;:20;;;6337:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;6447:1;6426:23;;:9;:23;;;6418:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;6502:47;6523:6;6531:9;6542:6;6502:20;:47::i;:::-;6562:21;6586:9;:17;6596:6;6586:17;;;;;;;;;;;;;;;;6562:41;;6653:6;6636:13;:23;;6614:111;;;;;;;;;;;;:::i;:::-;;;;;;;;;6797:6;6781:13;:22;6761:9;:17;6771:6;6761:17;;;;;;;;;;;;;;;:42;;;;6849:6;6825:9;:20;6835:9;6825:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6890:9;6873:35;;6882:6;6873:35;;;6901:6;6873:35;;;;;;:::i;:::-;;;;;;;;6921:46;6941:6;6949:9;6960:6;6921:19;:46::i;:::-;6326:649;6205:770;;;:::o;25348:1522::-;25387:23;25413:24;25431:4;25413:9;:24::i;:::-;25387:50;;25448:25;25497:18;;25476;;:39;;;;:::i;:::-;25448:67;;25526:12;25574:1;25555:15;:20;:46;;;;25600:1;25579:17;:22;25555:46;25551:85;;;25618:7;;;;;25551:85;25691:2;25670:18;;:23;;;;:::i;:::-;25652:15;:41;25648:115;;;25749:2;25728:18;;:23;;;;:::i;:::-;25710:41;;25648:115;25824:23;25937:1;25904:17;25869:18;;25851:15;:36;;;;:::i;:::-;25850:71;;;;:::i;:::-;:88;;;;:::i;:::-;25824:114;;25949:26;25978:36;25998:15;25978;:19;;:36;;;;:::i;:::-;25949:65;;26027:25;26055:21;26027:49;;26089:36;26106:18;26089:16;:36::i;:::-;26138:18;26159:44;26185:17;26159:21;:25;;:44;;;;:::i;:::-;26138:65;;26216:23;26242:81;26295:17;26242:34;26257:18;;26242:10;:14;;:34;;;;:::i;:::-;:38;;:81;;;;:::i;:::-;26216:107;;26336:23;26375:15;26362:10;:28;;;;:::i;:::-;26336:54;;26424:1;26403:18;:22;;;;26457:1;26436:18;:22;;;;26493:1;26475:15;:19;:42;;;;;26516:1;26498:15;:19;26475:42;26471:278;;;26534:46;26547:15;26564;26534:12;:46::i;:::-;26600:137;26633:18;26670:15;26704:18;;26600:137;;;;;;;;:::i;:::-;;;;;;;;26471:278;26783:15;;;;;;;;;;;26775:29;;26826:21;26775:87;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;26761:101;;;;;25376:1494;;;;;;;;;25348:1522;:::o;26878:788::-;26935:4;26969:15;26952:14;:32;;;;27039:28;27070:4;:14;;;27085:13;27070:29;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;27039:60;;27149:20;27172:77;27233:5;27172:42;27197:16;;27172:20;:24;;:42;;;;:::i;:::-;:46;;:77;;;;:::i;:::-;27149:100;;27369:1;27354:12;:16;27350:110;;;27387:61;27403:13;27426:6;27435:12;27387:15;:61::i;:::-;27350:110;27535:19;27572:13;27535:51;;27597:4;:9;;;:11;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;27624:12;;;;;;;;;;27654:4;27647:11;;;;;26878:788;:::o;10118:98::-;10176:7;10207:1;10203;:5;;;;:::i;:::-;10196:12;;10118:98;;;;:::o;10224:::-;10282:7;10313:1;10309;:5;;;;:::i;:::-;10302:12;;10224:98;;;;:::o;8377:125::-;;;;:::o;8510:124::-;;;;:::o;10012:98::-;10070:7;10101:1;10097;:5;;;;:::i;:::-;10090:12;;10012:98;;;;:::o;24226:589::-;24352:21;24390:1;24376:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24352:40;;24421:4;24403;24408:1;24403:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;24447:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;24437:4;24442:1;24437:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;24482:62;24499:4;24514:15;24532:11;24482:8;:62::i;:::-;24583:15;:66;;;24664:11;24690:1;24734:4;24761;24781:15;24583:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24281:534;24226:589;:::o;24823:517::-;24971:62;24988:4;25003:15;25021:11;24971:8;:62::i;:::-;25076:15;:31;;;25115:9;25148:4;25168:11;25194:1;25237;16490:6;25306:15;25076:256;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;24823:517;;:::o;7:99:1:-;59:6;93:5;87:12;77:22;;7:99;;;:::o;112:169::-;196:11;230:6;225:3;218:19;270:4;265:3;261:14;246:29;;112:169;;;;:::o;287:246::-;368:1;378:113;392:6;389:1;386:13;378:113;;;477:1;472:3;468:11;462:18;458:1;453:3;449:11;442:39;414:2;411:1;407:10;402:15;;378:113;;;525:1;516:6;511:3;507:16;500:27;349:184;287:246;;;:::o;539:102::-;580:6;631:2;627:7;622:2;615:5;611:14;607:28;597:38;;539:102;;;:::o;647:377::-;735:3;763:39;796:5;763:39;:::i;:::-;818:71;882:6;877:3;818:71;:::i;:::-;811:78;;898:65;956:6;951:3;944:4;937:5;933:16;898:65;:::i;:::-;988:29;1010:6;988:29;:::i;:::-;983:3;979:39;972:46;;739:285;647:377;;;;:::o;1030:313::-;1143:4;1181:2;1170:9;1166:18;1158:26;;1230:9;1224:4;1220:20;1216:1;1205:9;1201:17;1194:47;1258:78;1331:4;1322:6;1258:78;:::i;:::-;1250:86;;1030:313;;;;:::o;1349:75::-;1382:6;1415:2;1409:9;1399:19;;1349:75;:::o;1430:117::-;1539:1;1536;1529:12;1553:117;1662:1;1659;1652:12;1676:126;1713:7;1753:42;1746:5;1742:54;1731:65;;1676:126;;;:::o;1808:96::-;1845:7;1874:24;1892:5;1874:24;:::i;:::-;1863:35;;1808:96;;;:::o;1910:122::-;1983:24;2001:5;1983:24;:::i;:::-;1976:5;1973:35;1963:63;;2022:1;2019;2012:12;1963:63;1910:122;:::o;2038:139::-;2084:5;2122:6;2109:20;2100:29;;2138:33;2165:5;2138:33;:::i;:::-;2038:139;;;;:::o;2183:77::-;2220:7;2249:5;2238:16;;2183:77;;;:::o;2266:122::-;2339:24;2357:5;2339:24;:::i;:::-;2332:5;2329:35;2319:63;;2378:1;2375;2368:12;2319:63;2266:122;:::o;2394:139::-;2440:5;2478:6;2465:20;2456:29;;2494:33;2521:5;2494:33;:::i;:::-;2394:139;;;;:::o;2539:474::-;2607:6;2615;2664:2;2652:9;2643:7;2639:23;2635:32;2632:119;;;2670:79;;:::i;:::-;2632:119;2790:1;2815:53;2860:7;2851:6;2840:9;2836:22;2815:53;:::i;:::-;2805:63;;2761:117;2917:2;2943:53;2988:7;2979:6;2968:9;2964:22;2943:53;:::i;:::-;2933:63;;2888:118;2539:474;;;;;:::o;3019:90::-;3053:7;3096:5;3089:13;3082:21;3071:32;;3019:90;;;:::o;3115:109::-;3196:21;3211:5;3196:21;:::i;:::-;3191:3;3184:34;3115:109;;:::o;3230:210::-;3317:4;3355:2;3344:9;3340:18;3332:26;;3368:65;3430:1;3419:9;3415:17;3406:6;3368:65;:::i;:::-;3230:210;;;;:::o;3446:329::-;3505:6;3554:2;3542:9;3533:7;3529:23;3525:32;3522:119;;;3560:79;;:::i;:::-;3522:119;3680:1;3705:53;3750:7;3741:6;3730:9;3726:22;3705:53;:::i;:::-;3695:63;;3651:117;3446:329;;;;:::o;3781:60::-;3809:3;3830:5;3823:12;;3781:60;;;:::o;3847:142::-;3897:9;3930:53;3948:34;3957:24;3975:5;3957:24;:::i;:::-;3948:34;:::i;:::-;3930:53;:::i;:::-;3917:66;;3847:142;;;:::o;3995:126::-;4045:9;4078:37;4109:5;4078:37;:::i;:::-;4065:50;;3995:126;;;:::o;4127:153::-;4204:9;4237:37;4268:5;4237:37;:::i;:::-;4224:50;;4127:153;;;:::o;4286:185::-;4400:64;4458:5;4400:64;:::i;:::-;4395:3;4388:77;4286:185;;:::o;4477:276::-;4597:4;4635:2;4624:9;4620:18;4612:26;;4648:98;4743:1;4732:9;4728:17;4719:6;4648:98;:::i;:::-;4477:276;;;;:::o;4759:118::-;4846:24;4864:5;4846:24;:::i;:::-;4841:3;4834:37;4759:118;;:::o;4883:222::-;4976:4;5014:2;5003:9;4999:18;4991:26;;5027:71;5095:1;5084:9;5080:17;5071:6;5027:71;:::i;:::-;4883:222;;;;:::o;5111:619::-;5188:6;5196;5204;5253:2;5241:9;5232:7;5228:23;5224:32;5221:119;;;5259:79;;:::i;:::-;5221:119;5379:1;5404:53;5449:7;5440:6;5429:9;5425:22;5404:53;:::i;:::-;5394:63;;5350:117;5506:2;5532:53;5577:7;5568:6;5557:9;5553:22;5532:53;:::i;:::-;5522:63;;5477:118;5634:2;5660:53;5705:7;5696:6;5685:9;5681:22;5660:53;:::i;:::-;5650:63;;5605:118;5111:619;;;;;:::o;5736:118::-;5823:24;5841:5;5823:24;:::i;:::-;5818:3;5811:37;5736:118;;:::o;5860:222::-;5953:4;5991:2;5980:9;5976:18;5968:26;;6004:71;6072:1;6061:9;6057:17;6048:6;6004:71;:::i;:::-;5860:222;;;;:::o;6088:86::-;6123:7;6163:4;6156:5;6152:16;6141:27;;6088:86;;;:::o;6180:112::-;6263:22;6279:5;6263:22;:::i;:::-;6258:3;6251:35;6180:112;;:::o;6298:214::-;6387:4;6425:2;6414:9;6410:18;6402:26;;6438:67;6502:1;6491:9;6487:17;6478:6;6438:67;:::i;:::-;6298:214;;;;:::o;6518:117::-;6627:1;6624;6617:12;6641:180;6689:77;6686:1;6679:88;6786:4;6783:1;6776:15;6810:4;6807:1;6800:15;6827:281;6910:27;6932:4;6910:27;:::i;:::-;6902:6;6898:40;7040:6;7028:10;7025:22;7004:18;6992:10;6989:34;6986:62;6983:88;;;7051:18;;:::i;:::-;6983:88;7091:10;7087:2;7080:22;6870:238;6827:281;;:::o;7114:129::-;7148:6;7175:20;;:::i;:::-;7165:30;;7204:33;7232:4;7224:6;7204:33;:::i;:::-;7114:129;;;:::o;7249:311::-;7326:4;7416:18;7408:6;7405:30;7402:56;;;7438:18;;:::i;:::-;7402:56;7488:4;7480:6;7476:17;7468:25;;7548:4;7542;7538:15;7530:23;;7249:311;;;:::o;7566:117::-;7675:1;7672;7665:12;7706:710;7802:5;7827:81;7843:64;7900:6;7843:64;:::i;:::-;7827:81;:::i;:::-;7818:90;;7928:5;7957:6;7950:5;7943:21;7991:4;7984:5;7980:16;7973:23;;8044:4;8036:6;8032:17;8024:6;8020:30;8073:3;8065:6;8062:15;8059:122;;;8092:79;;:::i;:::-;8059:122;8207:6;8190:220;8224:6;8219:3;8216:15;8190:220;;;8299:3;8328:37;8361:3;8349:10;8328:37;:::i;:::-;8323:3;8316:50;8395:4;8390:3;8386:14;8379:21;;8266:144;8250:4;8245:3;8241:14;8234:21;;8190:220;;;8194:21;7808:608;;7706:710;;;;;:::o;8439:370::-;8510:5;8559:3;8552:4;8544:6;8540:17;8536:27;8526:122;;8567:79;;:::i;:::-;8526:122;8684:6;8671:20;8709:94;8799:3;8791:6;8784:4;8776:6;8772:17;8709:94;:::i;:::-;8700:103;;8516:293;8439:370;;;;:::o;8815:539::-;8899:6;8948:2;8936:9;8927:7;8923:23;8919:32;8916:119;;;8954:79;;:::i;:::-;8916:119;9102:1;9091:9;9087:17;9074:31;9132:18;9124:6;9121:30;9118:117;;;9154:79;;:::i;:::-;9118:117;9259:78;9329:7;9320:6;9309:9;9305:22;9259:78;:::i;:::-;9249:88;;9045:302;8815:539;;;;:::o;9360:474::-;9428:6;9436;9485:2;9473:9;9464:7;9460:23;9456:32;9453:119;;;9491:79;;:::i;:::-;9453:119;9611:1;9636:53;9681:7;9672:6;9661:9;9657:22;9636:53;:::i;:::-;9626:63;;9582:117;9738:2;9764:53;9809:7;9800:6;9789:9;9785:22;9764:53;:::i;:::-;9754:63;;9709:118;9360:474;;;;;:::o;9840:180::-;9888:77;9885:1;9878:88;9985:4;9982:1;9975:15;10009:4;10006:1;9999:15;10026:320;10070:6;10107:1;10101:4;10097:12;10087:22;;10154:1;10148:4;10144:12;10175:18;10165:81;;10231:4;10223:6;10219:17;10209:27;;10165:81;10293:2;10285:6;10282:14;10262:18;10259:38;10256:84;;10312:18;;:::i;:::-;10256:84;10077:269;10026:320;;;:::o;10352:227::-;10492:34;10488:1;10480:6;10476:14;10469:58;10561:10;10556:2;10548:6;10544:15;10537:35;10352:227;:::o;10585:366::-;10727:3;10748:67;10812:2;10807:3;10748:67;:::i;:::-;10741:74;;10824:93;10913:3;10824:93;:::i;:::-;10942:2;10937:3;10933:12;10926:19;;10585:366;;;:::o;10957:419::-;11123:4;11161:2;11150:9;11146:18;11138:26;;11210:9;11204:4;11200:20;11196:1;11185:9;11181:17;11174:47;11238:131;11364:4;11238:131;:::i;:::-;11230:139;;10957:419;;;:::o;11382:182::-;11522:34;11518:1;11510:6;11506:14;11499:58;11382:182;:::o;11570:366::-;11712:3;11733:67;11797:2;11792:3;11733:67;:::i;:::-;11726:74;;11809:93;11898:3;11809:93;:::i;:::-;11927:2;11922:3;11918:12;11911:19;;11570:366;;;:::o;11942:419::-;12108:4;12146:2;12135:9;12131:18;12123:26;;12195:9;12189:4;12185:20;12181:1;12170:9;12166:17;12159:47;12223:131;12349:4;12223:131;:::i;:::-;12215:139;;11942:419;;;:::o;12367:180::-;12415:77;12412:1;12405:88;12512:4;12509:1;12502:15;12536:4;12533:1;12526:15;12553:180;12601:77;12598:1;12591:88;12698:4;12695:1;12688:15;12722:4;12719:1;12712:15;12739:191;12779:3;12798:20;12816:1;12798:20;:::i;:::-;12793:25;;12832:20;12850:1;12832:20;:::i;:::-;12827:25;;12875:1;12872;12868:9;12861:16;;12896:3;12893:1;12890:10;12887:36;;;12903:18;;:::i;:::-;12887:36;12739:191;;;;:::o;12936:224::-;13076:34;13072:1;13064:6;13060:14;13053:58;13145:7;13140:2;13132:6;13128:15;13121:32;12936:224;:::o;13166:366::-;13308:3;13329:67;13393:2;13388:3;13329:67;:::i;:::-;13322:74;;13405:93;13494:3;13405:93;:::i;:::-;13523:2;13518:3;13514:12;13507:19;;13166:366;;;:::o;13538:419::-;13704:4;13742:2;13731:9;13727:18;13719:26;;13791:9;13785:4;13781:20;13777:1;13766:9;13762:17;13755:47;13819:131;13945:4;13819:131;:::i;:::-;13811:139;;13538:419;;;:::o;13963:225::-;14103:34;14099:1;14091:6;14087:14;14080:58;14172:8;14167:2;14159:6;14155:15;14148:33;13963:225;:::o;14194:366::-;14336:3;14357:67;14421:2;14416:3;14357:67;:::i;:::-;14350:74;;14433:93;14522:3;14433:93;:::i;:::-;14551:2;14546:3;14542:12;14535:19;;14194:366;;;:::o;14566:419::-;14732:4;14770:2;14759:9;14755:18;14747:26;;14819:9;14813:4;14809:20;14805:1;14794:9;14790:17;14783:47;14847:131;14973:4;14847:131;:::i;:::-;14839:139;;14566:419;;;:::o;14991:223::-;15131:34;15127:1;15119:6;15115:14;15108:58;15200:6;15195:2;15187:6;15183:15;15176:31;14991:223;:::o;15220:366::-;15362:3;15383:67;15447:2;15442:3;15383:67;:::i;:::-;15376:74;;15459:93;15548:3;15459:93;:::i;:::-;15577:2;15572:3;15568:12;15561:19;;15220:366;;;:::o;15592:419::-;15758:4;15796:2;15785:9;15781:18;15773:26;;15845:9;15839:4;15835:20;15831:1;15820:9;15816:17;15809:47;15873:131;15999:4;15873:131;:::i;:::-;15865:139;;15592:419;;;:::o;16017:221::-;16157:34;16153:1;16145:6;16141:14;16134:58;16226:4;16221:2;16213:6;16209:15;16202:29;16017:221;:::o;16244:366::-;16386:3;16407:67;16471:2;16466:3;16407:67;:::i;:::-;16400:74;;16483:93;16572:3;16483:93;:::i;:::-;16601:2;16596:3;16592:12;16585:19;;16244:366;;;:::o;16616:419::-;16782:4;16820:2;16809:9;16805:18;16797:26;;16869:9;16863:4;16859:20;16855:1;16844:9;16840:17;16833:47;16897:131;17023:4;16897:131;:::i;:::-;16889:139;;16616:419;;;:::o;17041:224::-;17181:34;17177:1;17169:6;17165:14;17158:58;17250:7;17245:2;17237:6;17233:15;17226:32;17041:224;:::o;17271:366::-;17413:3;17434:67;17498:2;17493:3;17434:67;:::i;:::-;17427:74;;17510:93;17599:3;17510:93;:::i;:::-;17628:2;17623:3;17619:12;17612:19;;17271:366;;;:::o;17643:419::-;17809:4;17847:2;17836:9;17832:18;17824:26;;17896:9;17890:4;17886:20;17882:1;17871:9;17867:17;17860:47;17924:131;18050:4;17924:131;:::i;:::-;17916:139;;17643:419;;;:::o;18068:222::-;18208:34;18204:1;18196:6;18192:14;18185:58;18277:5;18272:2;18264:6;18260:15;18253:30;18068:222;:::o;18296:366::-;18438:3;18459:67;18523:2;18518:3;18459:67;:::i;:::-;18452:74;;18535:93;18624:3;18535:93;:::i;:::-;18653:2;18648:3;18644:12;18637:19;;18296:366;;;:::o;18668:419::-;18834:4;18872:2;18861:9;18857:18;18849:26;;18921:9;18915:4;18911:20;18907:1;18896:9;18892:17;18885:47;18949:131;19075:4;18949:131;:::i;:::-;18941:139;;18668:419;;;:::o;19093:240::-;19233:34;19229:1;19221:6;19217:14;19210:58;19302:23;19297:2;19289:6;19285:15;19278:48;19093:240;:::o;19339:366::-;19481:3;19502:67;19566:2;19561:3;19502:67;:::i;:::-;19495:74;;19578:93;19667:3;19578:93;:::i;:::-;19696:2;19691:3;19687:12;19680:19;;19339:366;;;:::o;19711:419::-;19877:4;19915:2;19904:9;19900:18;19892:26;;19964:9;19958:4;19954:20;19950:1;19939:9;19935:17;19928:47;19992:131;20118:4;19992:131;:::i;:::-;19984:139;;19711:419;;;:::o;20136:169::-;20276:21;20272:1;20264:6;20260:14;20253:45;20136:169;:::o;20311:366::-;20453:3;20474:67;20538:2;20533:3;20474:67;:::i;:::-;20467:74;;20550:93;20639:3;20550:93;:::i;:::-;20668:2;20663:3;20659:12;20652:19;;20311:366;;;:::o;20683:419::-;20849:4;20887:2;20876:9;20872:18;20864:26;;20936:9;20930:4;20926:20;20922:1;20911:9;20907:17;20900:47;20964:131;21090:4;20964:131;:::i;:::-;20956:139;;20683:419;;;:::o;21108:241::-;21248:34;21244:1;21236:6;21232:14;21225:58;21317:24;21312:2;21304:6;21300:15;21293:49;21108:241;:::o;21355:366::-;21497:3;21518:67;21582:2;21577:3;21518:67;:::i;:::-;21511:74;;21594:93;21683:3;21594:93;:::i;:::-;21712:2;21707:3;21703:12;21696:19;;21355:366;;;:::o;21727:419::-;21893:4;21931:2;21920:9;21916:18;21908:26;;21980:9;21974:4;21970:20;21966:1;21955:9;21951:17;21944:47;22008:131;22134:4;22008:131;:::i;:::-;22000:139;;21727:419;;;:::o;22152:410::-;22192:7;22215:20;22233:1;22215:20;:::i;:::-;22210:25;;22249:20;22267:1;22249:20;:::i;:::-;22244:25;;22304:1;22301;22297:9;22326:30;22344:11;22326:30;:::i;:::-;22315:41;;22505:1;22496:7;22492:15;22489:1;22486:22;22466:1;22459:9;22439:83;22416:139;;22535:18;;:::i;:::-;22416:139;22200:362;22152:410;;;;:::o;22568:180::-;22616:77;22613:1;22606:88;22713:4;22710:1;22703:15;22737:4;22734:1;22727:15;22754:185;22794:1;22811:20;22829:1;22811:20;:::i;:::-;22806:25;;22845:20;22863:1;22845:20;:::i;:::-;22840:25;;22884:1;22874:35;;22889:18;;:::i;:::-;22874:35;22931:1;22928;22924:9;22919:14;;22754:185;;;;:::o;22945:194::-;22985:4;23005:20;23023:1;23005:20;:::i;:::-;23000:25;;23039:20;23057:1;23039:20;:::i;:::-;23034:25;;23083:1;23080;23076:9;23068:17;;23107:1;23101:4;23098:11;23095:37;;;23112:18;;:::i;:::-;23095:37;22945:194;;;;:::o;23145:225::-;23285:34;23281:1;23273:6;23269:14;23262:58;23354:8;23349:2;23341:6;23337:15;23330:33;23145:225;:::o;23376:366::-;23518:3;23539:67;23603:2;23598:3;23539:67;:::i;:::-;23532:74;;23615:93;23704:3;23615:93;:::i;:::-;23733:2;23728:3;23724:12;23717:19;;23376:366;;;:::o;23748:419::-;23914:4;23952:2;23941:9;23937:18;23929:26;;24001:9;23995:4;23991:20;23987:1;23976:9;23972:17;23965:47;24029:131;24155:4;24029:131;:::i;:::-;24021:139;;23748:419;;;:::o;24173:442::-;24322:4;24360:2;24349:9;24345:18;24337:26;;24373:71;24441:1;24430:9;24426:17;24417:6;24373:71;:::i;:::-;24454:72;24522:2;24511:9;24507:18;24498:6;24454:72;:::i;:::-;24536;24604:2;24593:9;24589:18;24580:6;24536:72;:::i;:::-;24173:442;;;;;;:::o;24621:147::-;24722:11;24759:3;24744:18;;24621:147;;;;:::o;24774:114::-;;:::o;24894:398::-;25053:3;25074:83;25155:1;25150:3;25074:83;:::i;:::-;25067:90;;25166:93;25255:3;25166:93;:::i;:::-;25284:1;25279:3;25275:11;25268:18;;24894:398;;;:::o;25298:379::-;25482:3;25504:147;25647:3;25504:147;:::i;:::-;25497:154;;25668:3;25661:10;;25298:379;;;:::o;25683:143::-;25740:5;25771:6;25765:13;25756:22;;25787:33;25814:5;25787:33;:::i;:::-;25683:143;;;;:::o;25832:351::-;25902:6;25951:2;25939:9;25930:7;25926:23;25922:32;25919:119;;;25957:79;;:::i;:::-;25919:119;26077:1;26102:64;26158:7;26149:6;26138:9;26134:22;26102:64;:::i;:::-;26092:74;;26048:128;25832:351;;;;:::o;26189:143::-;26246:5;26277:6;26271:13;26262:22;;26293:33;26320:5;26293:33;:::i;:::-;26189:143;;;;:::o;26338:351::-;26408:6;26457:2;26445:9;26436:7;26432:23;26428:32;26425:119;;;26463:79;;:::i;:::-;26425:119;26583:1;26608:64;26664:7;26655:6;26644:9;26640:22;26608:64;:::i;:::-;26598:74;;26554:128;26338:351;;;;:::o;26695:85::-;26740:7;26769:5;26758:16;;26695:85;;;:::o;26786:158::-;26844:9;26877:61;26895:42;26904:32;26930:5;26904:32;:::i;:::-;26895:42;:::i;:::-;26877:61;:::i;:::-;26864:74;;26786:158;;;:::o;26950:147::-;27045:45;27084:5;27045:45;:::i;:::-;27040:3;27033:58;26950:147;;:::o;27103:114::-;27170:6;27204:5;27198:12;27188:22;;27103:114;;;:::o;27223:184::-;27322:11;27356:6;27351:3;27344:19;27396:4;27391:3;27387:14;27372:29;;27223:184;;;;:::o;27413:132::-;27480:4;27503:3;27495:11;;27533:4;27528:3;27524:14;27516:22;;27413:132;;;:::o;27551:108::-;27628:24;27646:5;27628:24;:::i;:::-;27623:3;27616:37;27551:108;;:::o;27665:179::-;27734:10;27755:46;27797:3;27789:6;27755:46;:::i;:::-;27833:4;27828:3;27824:14;27810:28;;27665:179;;;;:::o;27850:113::-;27920:4;27952;27947:3;27943:14;27935:22;;27850:113;;;:::o;27999:732::-;28118:3;28147:54;28195:5;28147:54;:::i;:::-;28217:86;28296:6;28291:3;28217:86;:::i;:::-;28210:93;;28327:56;28377:5;28327:56;:::i;:::-;28406:7;28437:1;28422:284;28447:6;28444:1;28441:13;28422:284;;;28523:6;28517:13;28550:63;28609:3;28594:13;28550:63;:::i;:::-;28543:70;;28636:60;28689:6;28636:60;:::i;:::-;28626:70;;28482:224;28469:1;28466;28462:9;28457:14;;28422:284;;;28426:14;28722:3;28715:10;;28123:608;;;27999:732;;;;:::o;28737:831::-;29000:4;29038:3;29027:9;29023:19;29015:27;;29052:71;29120:1;29109:9;29105:17;29096:6;29052:71;:::i;:::-;29133:80;29209:2;29198:9;29194:18;29185:6;29133:80;:::i;:::-;29260:9;29254:4;29250:20;29245:2;29234:9;29230:18;29223:48;29288:108;29391:4;29382:6;29288:108;:::i;:::-;29280:116;;29406:72;29474:2;29463:9;29459:18;29450:6;29406:72;:::i;:::-;29488:73;29556:3;29545:9;29541:19;29532:6;29488:73;:::i;:::-;28737:831;;;;;;;;:::o;29574:807::-;29823:4;29861:3;29850:9;29846:19;29838:27;;29875:71;29943:1;29932:9;29928:17;29919:6;29875:71;:::i;:::-;29956:72;30024:2;30013:9;30009:18;30000:6;29956:72;:::i;:::-;30038:80;30114:2;30103:9;30099:18;30090:6;30038:80;:::i;:::-;30128;30204:2;30193:9;30189:18;30180:6;30128:80;:::i;:::-;30218:73;30286:3;30275:9;30271:19;30262:6;30218:73;:::i;:::-;30301;30369:3;30358:9;30354:19;30345:6;30301:73;:::i;:::-;29574:807;;;;;;;;;:::o;30387:663::-;30475:6;30483;30491;30540:2;30528:9;30519:7;30515:23;30511:32;30508:119;;;30546:79;;:::i;:::-;30508:119;30666:1;30691:64;30747:7;30738:6;30727:9;30723:22;30691:64;:::i;:::-;30681:74;;30637:128;30804:2;30830:64;30886:7;30877:6;30866:9;30862:22;30830:64;:::i;:::-;30820:74;;30775:129;30943:2;30969:64;31025:7;31016:6;31005:9;31001:22;30969:64;:::i;:::-;30959:74;;30914:129;30387:663;;;;;:::o
Swarm Source
ipfs://aeb0bfb94d8d64f21ba78d973f695fd9e17209a45b622f899f620319d99292af
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.