ERC-20
Overview
Max Total Supply
1,000,000,000 SOLDANO
Holders
58
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract (WITH 18 Decimals)
Balance
8,000,000 SOLDANOValue
$0.00Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
Soldano
Compiler Version
v0.8.11+commit.d7f03943
Contract Source Code (Solidity)
/** *Submitted for verification at Etherscan.io on 2023-12-05 */ // SPDX-License-Identifier: MIT /* https://x.com/beaniemaxi/status/1732147268608761915?s=20 https://t.me/SOLDANO_ETH */ pragma solidity 0.8.11; abstract contract Context { function _msgSender() internal view virtual returns (address) { return msg.sender; } function _msgData() internal view virtual returns (bytes calldata) { return msg.data; } } interface IUniswapV2Pair { event Approval(address indexed owner, address indexed spender, uint value); event Transfer(address indexed from, address indexed to, uint value); function name() external pure returns (string memory); function symbol() external pure returns (string memory); function decimals() external pure returns (uint8); function totalSupply() external view returns (uint); function balanceOf(address owner) external view returns (uint); function allowance(address owner, address spender) external view returns (uint); function approve(address spender, uint value) external returns (bool); function transfer(address to, uint value) external returns (bool); function transferFrom(address from, address to, uint value) external returns (bool); event Swap( address indexed sender, uint amount0In, uint amount1In, uint amount0Out, uint amount1Out, address indexed to ); event Sync(uint112 reserve0, uint112 reserve1); function factory() external view returns (address); function swap(uint amount0Out, uint amount1Out, address to, bytes calldata data) external; } interface IUniswapV2Factory { function createPair(address tokenA, address tokenB) external returns (address pair); } 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 18; } 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) { uint256 currentAllowance = _allowances[sender][_msgSender()]; if (currentAllowance != type(uint256).max) { require(currentAllowance >= amount, "ERC20: transfer amount exceeds allowance"); unchecked { _approve(sender, _msgSender(), currentAllowance - amount); } } _transfer(sender, recipient, 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; } } } abstract contract Ownable is Context { address private _owner; event OwnershipTransferred(address indexed previousOwner, address indexed newOwner); constructor() { _transferOwnership(_msgSender()); } function owner() public view virtual returns (address) { return _owner; } modifier onlyOwner() { require(owner() == _msgSender(), "Ownable: caller is not the owner"); _; } function renounceOwnership() public virtual onlyOwner { _transferOwnership(address(0)); } function transferOwnership(address newOwner) public virtual onlyOwner { require(newOwner != address(0), "Ownable: new owner is the zero address"); _transferOwnership(newOwner); } function _transferOwnership(address newOwner) internal virtual { address oldOwner = _owner; _owner = newOwner; emit OwnershipTransferred(oldOwner, newOwner); } } interface IUniswapV2Router01 { function factory() external pure returns (address); function WETH() external pure returns (address); function addLiquidityETH( address token, uint amountTokenDesired, uint amountTokenMin, uint amountETHMin, address to, uint deadline ) external payable returns (uint amountToken, uint amountETH, uint liquidity); } interface IUniswapV2Router02 is IUniswapV2Router01 { function swapExactTokensForETHSupportingFeeOnTransferTokens( uint amountIn, uint amountOutMin, address[] calldata path, address to, uint deadline ) external; } contract Soldano is ERC20, Ownable { using SafeMath for uint256; IUniswapV2Router02 public immutable uniswapV2Router; address public immutable uniswapV2Pair; mapping (address => bool) public isBot; bool private _swapping; uint256 private _launchTime; address private devWallet; uint256 public maxTransactionAmount; uint256 public swapTokensAtAmount; uint256 public maxWallet; bool public limitsInEffect = true; bool public tradingActive = false; // Anti-bot and anti-whale mappings and variables mapping(address => uint256) private _holderLastTransferTimestamp; // to hold last Transfers temporarily during launch bool public transferDelayEnabled = true; uint256 public buyTotalFees; uint256 public buyDevFee; uint256 public sellTotalFees; uint256 public sellDevFee; uint256 public tokensForDev; /******************/ // exlcude from fees and max transaction amount mapping (address => bool) private _isExcludedFromFees; mapping (address => bool) public _isExcludedMaxTransactionAmount; // store addresses that a automatic market maker pairs. Any transfer *to* these addresses // could be subject to a maximum transfer amount mapping (address => bool) public automatedMarketMakerPairs; event SwapAndLiquify(uint256 tokensSwapped, uint256 ethReceived, uint256 tokensIntoLiquidity); event marketingWalletUpdated(address indexed newWallet, address indexed oldWallet); event devWalletUpdated(address indexed newWallet, address indexed oldWallet); constructor() ERC20("SOLDANO", "SOLDANO") { IUniswapV2Router02 _uniswapV2Router = IUniswapV2Router02(0x7a250d5630B4cF539739dF2C5dAcb4c659F2488D); excludeFromMaxTransaction(address(_uniswapV2Router), true); uniswapV2Router = _uniswapV2Router; uniswapV2Pair = IUniswapV2Factory(_uniswapV2Router.factory()).createPair(address(this), _uniswapV2Router.WETH()); excludeFromMaxTransaction(address(uniswapV2Pair), true); _setAutomatedMarketMakerPair(address(uniswapV2Pair), true); uint256 _buyDevFee = 20; uint256 _sellDevFee = 20; uint256 totalSupply = 1 * 1e9 * 1e18; maxTransactionAmount = totalSupply * 1 / 100; // 1% maxTransactionAmountTxn maxWallet = totalSupply * 2 / 100; // 1% maxWallet swapTokensAtAmount = totalSupply * 5 / 10000; // 0.05% swap wallet // Set Fees buyDevFee = _buyDevFee; buyTotalFees = buyDevFee; sellDevFee = _sellDevFee; sellTotalFees = sellDevFee; // Set Fee Wallet devWallet = address(owner()); // set as dev wallet // exclude from paying fees or having max transaction amount excludeFromFees(owner(), true); excludeFromFees(address(this), true); excludeFromFees(address(0xdead), true); excludeFromMaxTransaction(owner(), true); excludeFromMaxTransaction(address(this), true); excludeFromMaxTransaction(address(0xdead), 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 { } // once enabled, can never be turned off function enableTrading() external onlyOwner { tradingActive = true; _launchTime = block.timestamp.add(2); } // remove limits after token is stable function removeLimits() external onlyOwner returns (bool) { limitsInEffect = false; return true; } // disable Transfer delay - cannot be reenabled function disableTransferDelay() external onlyOwner returns (bool) { transferDelayEnabled = false; return true; } // change the minimum amount of tokens to sell from fees function updateSwapTokensAtAmount(uint256 newAmount) external onlyOwner returns (bool) { require(newAmount >= totalSupply() * 1 / 100000, "Swap amount cannot be lower than 0.001% total supply."); require(newAmount <= totalSupply() * 5 / 1000, "Swap amount cannot be higher than 0.5% total supply."); swapTokensAtAmount = newAmount; return true; } function updateMaxTxnAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 1 / 1000) / 1e18, "Cannot set maxTransactionAmount lower than 0.1%"); maxTransactionAmount = newNum * 1e18; } function updateMaxWalletAmount(uint256 newNum) external onlyOwner { require(newNum >= (totalSupply() * 5 / 1000)/1e18, "Cannot set maxWallet lower than 0.5%"); maxWallet = newNum * 1e18; } function excludeFromMaxTransaction(address updAds, bool isEx) public onlyOwner { _isExcludedMaxTransactionAmount[updAds] = isEx; } function updateBuyFees(uint256 _devFee) external onlyOwner { buyDevFee = _devFee; buyTotalFees = buyDevFee; require(buyTotalFees <= 99, "Must keep fees at 99% or less"); } function updateSellFees(uint256 _devFee) external onlyOwner { sellDevFee = _devFee; sellTotalFees = sellDevFee; require(sellTotalFees <= 99, "Must keep fees at 99% or less"); } function excludeFromFees(address account, bool excluded) public onlyOwner { _isExcludedFromFees[account] = excluded; } function setAutomatedMarketMakerPair(address pair, bool value) public onlyOwner { require(pair != uniswapV2Pair, "The pair cannot be removed from automatedMarketMakerPairs"); _setAutomatedMarketMakerPair(pair, value); } // Variable Block - once enabled, can never be turned off function enableTrading(uint256 Bblock) external onlyOwner { tradingActive = true; _launchTime = block.timestamp.add(Bblock); } function _setAutomatedMarketMakerPair(address pair, bool value) private { automatedMarketMakerPairs[pair] = value; } function updateDevWallet(address newWallet) external onlyOwner { emit devWalletUpdated(newWallet, devWallet); devWallet = newWallet; } function isExcludedFromFees(address account) public view returns(bool) { return _isExcludedFromFees[account]; } function addBots(address[] memory bots) public onlyOwner() { for (uint i = 0; i < bots.length; i++) { if (bots[i] != uniswapV2Pair && bots[i] != address(uniswapV2Router)) { isBot[bots[i]] = true; } } } function removeBots(address[] memory bots) public onlyOwner() { for (uint i = 0; i < bots.length; i++) { isBot[bots[i]] = false; } } 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"); require(!isBot[from], "Your address has been marked as a bot/sniper, you are unable to transfer or swap."); if (amount == 0) { super._transfer(from, to, 0); return; } if (block.timestamp < _launchTime) isBot[to] = true; if (limitsInEffect) { if ( from != owner() && to != owner() && to != address(0) && to != address(0xdead) && !_swapping ) { if (!tradingActive) { require(_isExcludedFromFees[from] || _isExcludedFromFees[to], "Trading is not active."); } // at launch if the transfer delay is enabled, ensure the block timestamps for purchasers is set -- during launch. if (transferDelayEnabled){ if (to != owner() && to != address(uniswapV2Router) && to != address(uniswapV2Pair)){ require(_holderLastTransferTimestamp[tx.origin] < block.number, "_transfer:: Transfer Delay enabled. Only one purchase per block allowed."); _holderLastTransferTimestamp[tx.origin] = block.number; } } // On buy if (automatedMarketMakerPairs[from] && !_isExcludedMaxTransactionAmount[to]) { require(amount <= maxTransactionAmount, "Buy transfer amount exceeds the maxTransactionAmount."); require(amount + balanceOf(to) <= maxWallet, "Max wallet exceeded"); } // On 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; } 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(100); tokensForDev += fees * sellDevFee / sellTotalFees; } // on buy else if(automatedMarketMakerPairs[from] && buyTotalFees > 0) { fees = amount.mul(buyTotalFees).div(100); tokensForDev += fees * buyDevFee / 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 owner(), block.timestamp ); } function swapBack() private { uint256 contractBalance = balanceOf(address(this)); uint256 totalTokensToSwap = tokensForDev; bool success; if(contractBalance == 0 || totalTokensToSwap == 0) {return;} if(contractBalance > swapTokensAtAmount * 20){ contractBalance = swapTokensAtAmount * 20; } _swapTokensForEth(totalTokensToSwap); uint256 ethBalance = address(this).balance; tokensForDev = 0; (success,) = address(devWallet).call{value: ethBalance}(""); } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"tokensSwapped","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"ethReceived","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"tokensIntoLiquidity","type":"uint256"}],"name":"SwapAndLiquify","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"devWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newWallet","type":"address"},{"indexed":true,"internalType":"address","name":"oldWallet","type":"address"}],"name":"marketingWalletUpdated","type":"event"},{"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":"buyDevFee","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":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"subtractedValue","type":"uint256"}],"name":"decreaseAllowance","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"disableTransferDelay","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"Bblock","type":"uint256"}],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"enableTrading","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"bool","name":"excluded","type":"bool"}],"name":"excludeFromFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"updAds","type":"address"},{"internalType":"bool","name":"isEx","type":"bool"}],"name":"excludeFromMaxTransaction","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"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":"","type":"address"}],"name":"isBot","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"isExcludedFromFees","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitsInEffect","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"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":[{"internalType":"address[]","name":"bots","type":"address[]"}],"name":"removeBots","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"removeLimits","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"sellDevFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sellTotalFees","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pair","type":"address"},{"internalType":"bool","name":"value","type":"bool"}],"name":"setAutomatedMarketMakerPair","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"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":"tokensForDev","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tradingActive","outputs":[{"internalType":"bool","name":"","type":"bool"}],"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":[],"name":"transferDelayEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateBuyFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newWallet","type":"address"}],"name":"updateDevWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxTxnAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newNum","type":"uint256"}],"name":"updateMaxWalletAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_devFee","type":"uint256"}],"name":"updateSellFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newAmount","type":"uint256"}],"name":"updateSwapTokensAtAmount","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
Contract Creation Code
60c06040526001600d60006101000a81548160ff0219169083151502179055506000600d60016101000a81548160ff0219169083151502179055506001600f60006101000a81548160ff0219169083151502179055503480156200006257600080fd5b506040518060400160405280600781526020017f534f4c44414e4f000000000000000000000000000000000000000000000000008152506040518060400160405280600781526020017f534f4c44414e4f000000000000000000000000000000000000000000000000008152508160039080519060200190620000e792919062000996565b5080600490805190602001906200010092919062000996565b5050506200012362000117620004ec60201b60201c565b620004f460201b60201c565b6000737a250d5630b4cf539739df2c5dacb4c659f2488d90506200014f816001620005ba60201b60201c565b8073ffffffffffffffffffffffffffffffffffffffff1660808173ffffffffffffffffffffffffffffffffffffffff16815250508073ffffffffffffffffffffffffffffffffffffffff1663c45a01556040518163ffffffff1660e01b8152600401602060405180830381865afa158015620001cf573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620001f5919062000ab0565b73ffffffffffffffffffffffffffffffffffffffff1663c9c65396308373ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa1580156200025d573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000283919062000ab0565b6040518363ffffffff1660e01b8152600401620002a292919062000af3565b6020604051808303816000875af1158015620002c2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190620002e8919062000ab0565b73ffffffffffffffffffffffffffffffffffffffff1660a08173ffffffffffffffffffffffffffffffffffffffff16815250506200033060a0516001620005ba60201b60201c565b6200034560a0516001620006a460201b60201c565b60006014905060006014905060006b033b2e3c9fd0803ce80000009050606460018262000373919062000b59565b6200037f919062000be9565b600a81905550606460028262000396919062000b59565b620003a2919062000be9565b600c81905550612710600582620003ba919062000b59565b620003c6919062000be9565b600b819055508260118190555060115460108190555081601381905550601354601281905550620003fc620006ff60201b60201c565b600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200045e62000450620006ff60201b60201c565b60016200072960201b60201c565b620004713060016200072960201b60201c565b6200048661dead60016200072960201b60201c565b620004a86200049a620006ff60201b60201c565b6001620005ba60201b60201c565b620004bb306001620005ba60201b60201c565b620004d061dead6001620005ba60201b60201c565b620004e233826200081360201b60201c565b5050505062000e06565b600033905090565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620005ca620004ec60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620005f0620006ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000649576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006409062000c82565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b62000739620004ec60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff166200075f620006ff60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff1614620007b8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007af9062000c82565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000886576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200087d9062000cf4565b60405180910390fd5b6200089a600083836200098c60201b60201c565b8060026000828254620008ae919062000d16565b92505081905550806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825462000905919062000d16565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516200096c919062000d84565b60405180910390a362000988600083836200099160201b60201c565b5050565b505050565b505050565b828054620009a49062000dd0565b90600052602060002090601f016020900481019282620009c8576000855562000a14565b82601f10620009e357805160ff191683800117855562000a14565b8280016001018555821562000a14579182015b8281111562000a13578251825591602001919060010190620009f6565b5b50905062000a23919062000a27565b5090565b5b8082111562000a4257600081600090555060010162000a28565b5090565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000a788262000a4b565b9050919050565b62000a8a8162000a6b565b811462000a9657600080fd5b50565b60008151905062000aaa8162000a7f565b92915050565b60006020828403121562000ac95762000ac862000a46565b5b600062000ad98482850162000a99565b91505092915050565b62000aed8162000a6b565b82525050565b600060408201905062000b0a600083018562000ae2565b62000b19602083018462000ae2565b9392505050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000b668262000b20565b915062000b738362000b20565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161562000baf5762000bae62000b2a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600062000bf68262000b20565b915062000c038362000b20565b92508262000c165762000c1562000bba565b5b828204905092915050565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600062000c6a60208362000c21565b915062000c778262000c32565b602082019050919050565b6000602082019050818103600083015262000c9d8162000c5b565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000cdc601f8362000c21565b915062000ce98262000ca4565b602082019050919050565b6000602082019050818103600083015262000d0f8162000ccd565b9050919050565b600062000d238262000b20565b915062000d308362000b20565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111562000d685762000d6762000b2a565b5b828201905092915050565b62000d7e8162000b20565b82525050565b600060208201905062000d9b600083018462000d73565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000de957607f821691505b6020821081141562000e005762000dff62000da1565b5b50919050565b60805160a051614d2d62000e646000396000818161101e0152818161177c01528181611d43015261282d015260008181610bb101528181611db4015281816127d5015281816135bc0152818161369d01526136c40152614d2d6000f3fe6080604052600436106102815760003560e01c80638da5cb5b1161014f578063c18bc195116100c1578063dd62ed3e1161007a578063dd62ed3e146109cf578063e2f4560514610a0c578063e884f26014610a37578063eba4c33314610a62578063f2fde38b14610a8b578063f8b45b0514610ab457610288565b8063c18bc195146108bf578063c876d0b9146108e8578063c8c8ebe414610913578063d257b34f1461093e578063d34628cc1461097b578063d85ba063146109a457610288565b8063a0d82dc511610113578063a0d82dc514610789578063a457c2d7146107b4578063a9059cbb146107f1578063b62496f51461082e578063bbc0c7421461086b578063c02466681461089657610288565b80638da5cb5b146106b457806395d89b41146106df5780639a7a23d61461070a5780639c3b4fdc146107335780639fccce321461075e57610288565b806349bd5a5e116101f3578063715018a6116101ac578063715018a6146105e057806371fc4688146105f7578063751039fc146106205780637571336a1461064b57806382aa7c68146106745780638a8c523c1461069d57610288565b806349bd5a5e146104bc5780634a62bb65146104e75780634fbee193146105125780636a486a8e1461054f5780636c3bbfd71461057a57806370a08231146105a357610288565b80631816467f116102455780631816467f14610388578063203e727e146103b157806323b872dd146103da578063313ce5671461041757806339509351146104425780633bbac5791461047f57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610adf565b6040516102af91906137f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906138bd565b610b71565b6040516102ec9190613918565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613933565b610b8f565b6040516103299190613918565b60405180910390f35b34801561033e57600080fd5b50610347610baf565b60405161035491906139bf565b60405180910390f35b34801561036957600080fd5b50610372610bd3565b60405161037f91906139e9565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613933565b610bdd565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613a04565b610d19565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190613a31565b610e28565b60405161040e9190613918565b60405180910390f35b34801561042357600080fd5b5061042c610f47565b6040516104399190613aa0565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906138bd565b610f50565b6040516104769190613918565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613933565b610ffc565b6040516104b39190613918565b60405180910390f35b3480156104c857600080fd5b506104d161101c565b6040516104de9190613aca565b60405180910390f35b3480156104f357600080fd5b506104fc611040565b6040516105099190613918565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613933565b611053565b6040516105469190613918565b60405180910390f35b34801561055b57600080fd5b506105646110a9565b60405161057191906139e9565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613c2d565b6110af565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613933565b6111c0565b6040516105d791906139e9565b60405180910390f35b3480156105ec57600080fd5b506105f5611208565b005b34801561060357600080fd5b5061061e60048036038101906106199190613a04565b611290565b005b34801561062c57600080fd5b50610635611365565b6040516106429190613918565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613ca2565b611405565b005b34801561068057600080fd5b5061069b60048036038101906106969190613a04565b6114dc565b005b3480156106a957600080fd5b506106b261158f565b005b3480156106c057600080fd5b506106c9611642565b6040516106d69190613aca565b60405180910390f35b3480156106eb57600080fd5b506106f461166c565b60405161070191906137f3565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613ca2565b6116fe565b005b34801561073f57600080fd5b50610748611817565b60405161075591906139e9565b60405180910390f35b34801561076a57600080fd5b5061077361181d565b60405161078091906139e9565b60405180910390f35b34801561079557600080fd5b5061079e611823565b6040516107ab91906139e9565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d691906138bd565b611829565b6040516107e89190613918565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906138bd565b611914565b6040516108259190613918565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190613933565b611932565b6040516108629190613918565b60405180910390f35b34801561087757600080fd5b50610880611952565b60405161088d9190613918565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190613ca2565b611965565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190613a04565b611a3c565b005b3480156108f457600080fd5b506108fd611b4b565b60405161090a9190613918565b60405180910390f35b34801561091f57600080fd5b50610928611b5e565b60405161093591906139e9565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190613a04565b611b64565b6040516109729190613918565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613c2d565b611cb9565b005b3480156109b057600080fd5b506109b9611eac565b6040516109c691906139e9565b60405180910390f35b3480156109db57600080fd5b506109f660048036038101906109f19190613ce2565b611eb2565b604051610a0391906139e9565b60405180910390f35b348015610a1857600080fd5b50610a21611f39565b604051610a2e91906139e9565b60405180910390f35b348015610a4357600080fd5b50610a4c611f3f565b604051610a599190613918565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a849190613a04565b611fdf565b005b348015610a9757600080fd5b50610ab26004803603810190610aad9190613933565b6120b4565b005b348015610ac057600080fd5b50610ac96121ac565b604051610ad691906139e9565b60405180910390f35b606060038054610aee90613d51565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90613d51565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b85610b7e6121b2565b84846121ba565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b6000600254905090565b610be56121b2565b73ffffffffffffffffffffffffffffffffffffffff16610c03611642565b73ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090613dcf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d216121b2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86001610dab610bd3565b610db59190613e1e565b610dbf9190613ea7565b610dc99190613ea7565b811015610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613f4a565b60405180910390fd5b670de0b6b3a764000081610e1f9190613e1e565b600a8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e746121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613fdc565b60405180910390fd5b610f2f85610f276121b2565b8584036121ba565b5b610f3b858585612385565b60019150509392505050565b60006012905090565b6000610ff2610f5d6121b2565b848460016000610f6b6121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fed9190613ffc565b6121ba565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f000000000000000000000000000000000000000000000000000000000000000081565b600d60009054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6110b76121b2565b73ffffffffffffffffffffffffffffffffffffffff166110d5611642565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290613dcf565b60405180910390fd5b60005b81518110156111bc576000600660008484815181106111505761114f614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111b490614081565b91505061112e565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112106121b2565b73ffffffffffffffffffffffffffffffffffffffff1661122e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613dcf565b60405180910390fd5b61128e600061302b565b565b6112986121b2565b73ffffffffffffffffffffffffffffffffffffffff166112b6611642565b73ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613dcf565b60405180910390fd5b8060118190555060115460108190555060636010541115611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990614116565b60405180910390fd5b50565b600061136f6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661138d611642565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613dcf565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61140d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661142b611642565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613dcf565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114e46121b2565b73ffffffffffffffffffffffffffffffffffffffff16611502611642565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061158681426130f190919063ffffffff16565b60088190555050565b6115976121b2565b73ffffffffffffffffffffffffffffffffffffffff166115b5611642565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061163a6002426130f190919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461167b90613d51565b80601f01602080910402602001604051908101604052809291908181526020018280546116a790613d51565b80156116f45780601f106116c9576101008083540402835291602001916116f4565b820191906000526020600020905b8154815290600101906020018083116116d757829003601f168201915b5050505050905090565b6117066121b2565b73ffffffffffffffffffffffffffffffffffffffff16611724611642565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613dcf565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906141a8565b60405180910390fd5b6118138282613107565b5050565b60115481565b60145481565b60135481565b600080600160006118386121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9061423a565b60405180910390fd5b6119096119006121b2565b858584036121ba565b600191505092915050565b60006119286119216121b2565b8484612385565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b61196d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661198b611642565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613dcf565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a446121b2565b73ffffffffffffffffffffffffffffffffffffffff16611a62611642565b73ffffffffffffffffffffffffffffffffffffffff1614611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86005611ace610bd3565b611ad89190613e1e565b611ae29190613ea7565b611aec9190613ea7565b811015611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906142cc565b60405180910390fd5b670de0b6b3a764000081611b429190613e1e565b600c8190555050565b600f60009054906101000a900460ff1681565b600a5481565b6000611b6e6121b2565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611642565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dcf565b60405180910390fd5b620186a06001611bf0610bd3565b611bfa9190613e1e565b611c049190613ea7565b821015611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d9061435e565b60405180910390fd5b6103e86005611c53610bd3565b611c5d9190613e1e565b611c679190613ea7565b821115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906143f0565b60405180910390fd5b81600b8190555060019050919050565b611cc16121b2565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611642565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613dcf565b60405180910390fd5b60005b8151811015611ea8577f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611d8b57611d8a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611e1d57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff16828281518110611dfc57611dfb614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611e9557600160066000848481518110611e3b57611e3a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611ea090614081565b915050611d38565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000611f496121b2565b73ffffffffffffffffffffffffffffffffffffffff16611f67611642565b73ffffffffffffffffffffffffffffffffffffffff1614611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613dcf565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b611fe76121b2565b73ffffffffffffffffffffffffffffffffffffffff16612005611642565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613dcf565b60405180910390fd5b80601381905550601354601281905550606360125411156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a890614116565b60405180910390fd5b50565b6120bc6121b2565b73ffffffffffffffffffffffffffffffffffffffff166120da611642565b73ffffffffffffffffffffffffffffffffffffffff1614612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613dcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219790614482565b60405180910390fd5b6121a98161302b565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614514565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612291906145a6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237891906139e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec90614638565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c906146ca565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e990614782565b60405180910390fd5b600081141561250c5761250783836000613162565b613026565b60085442101561256f576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1615612c325761258c611642565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125fa57506125ca611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561266d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126865750600760009054906101000a900460ff16155b15612c3157600d60019054906101000a900460ff1661278057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127405750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61277f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612776906147ee565b60405180910390fd5b5b600f60009054906101000a900460ff16156129485761279d611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561282457507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561287c57507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129475743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f9906148a6565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129eb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a9257600a54811115612a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2c90614938565b60405180910390fd5b600c54612a41836111c0565b82612a4c9190613ffc565b1115612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a84906149a4565b60405180910390fd5b612c30565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b355750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b8457600a54811115612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7690614a36565b60405180910390fd5b612c2f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e57600c54612be1836111c0565b82612bec9190613ffc565b1115612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c24906149a4565b60405180910390fd5b5b5b5b5b5b6000612c3d306111c0565b90506000600b548210159050808015612c635750600760009054906101000a900460ff16155b8015612cb95750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d0f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d655750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da9576001600760006101000a81548160ff021916908315150217905550612d8d6133e3565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e6957600090505b6000811561301657601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ecc57506000601254115b15612f3357612ef96064612eeb601254886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060125460135482612f0c9190613e1e565b612f169190613ea7565b60146000828254612f279190613ffc565b92505081905550612ff2565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8e57506000601054115b15612ff157612fbb6064612fad601054886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060105460115482612fce9190613e1e565b612fd89190613ea7565b60146000828254612fe99190613ffc565b925050819055505b5b600081111561300757613006873083613162565b5b80856130139190614a56565b94505b613021878787613162565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836130ff9190613ffc565b905092915050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c990614638565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613239906146ca565b60405180910390fd5b61324d838383613513565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca90614afc565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133669190613ffc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133ca91906139e9565b60405180910390a36133dd848484613518565b50505050565b60006133ee306111c0565b9050600060145490506000808314806134075750600082145b15613414575050506134e5565b6014600b546134239190613e1e565b83111561343c576014600b546134399190613e1e565b92505b6134458261351d565b60004790506000601481905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161349890614b4d565b60006040518083038185875af1925050503d80600081146134d5576040519150601f19603f3d011682016040523d82523d6000602084013e6134da565b606091505b505080925050505050505b565b600081836134f59190613e1e565b905092915050565b6000818361350b9190613ea7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561353a57613539613aea565b5b6040519080825280602002602001820160405280156135685781602001602082028036833780820191505090505b50905030816000815181106135805761357f614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136499190614b77565b8160018151811061365d5761365c614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c2307f0000000000000000000000000000000000000000000000000000000000000000846121ba565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613724959493929190614c9d565b600060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613794578082015181840152602081019050613779565b838111156137a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006137c58261375a565b6137cf8185613765565b93506137df818560208601613776565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000819050919050565b61389a81613887565b81146138a557600080fd5b50565b6000813590506138b781613891565b92915050565b600080604083850312156138d4576138d361381f565b5b60006138e285828601613872565b92505060206138f3858286016138a8565b9150509250929050565b60008115159050919050565b613912816138fd565b82525050565b600060208201905061392d6000830184613909565b92915050565b6000602082840312156139495761394861381f565b5b600061395784828501613872565b91505092915050565b6000819050919050565b600061398561398061397b84613829565b613960565b613829565b9050919050565b60006139978261396a565b9050919050565b60006139a98261398c565b9050919050565b6139b98161399e565b82525050565b60006020820190506139d460008301846139b0565b92915050565b6139e381613887565b82525050565b60006020820190506139fe60008301846139da565b92915050565b600060208284031215613a1a57613a1961381f565b5b6000613a28848285016138a8565b91505092915050565b600080600060608486031215613a4a57613a4961381f565b5b6000613a5886828701613872565b9350506020613a6986828701613872565b9250506040613a7a868287016138a8565b9150509250925092565b600060ff82169050919050565b613a9a81613a84565b82525050565b6000602082019050613ab56000830184613a91565b92915050565b613ac481613849565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b22826137a9565b810181811067ffffffffffffffff82111715613b4157613b40613aea565b5b80604052505050565b6000613b54613815565b9050613b608282613b19565b919050565b600067ffffffffffffffff821115613b8057613b7f613aea565b5b602082029050602081019050919050565b600080fd5b6000613ba9613ba484613b65565b613b4a565b90508083825260208201905060208402830185811115613bcc57613bcb613b91565b5b835b81811015613bf55780613be18882613872565b845260208401935050602081019050613bce565b5050509392505050565b600082601f830112613c1457613c13613ae5565b5b8135613c24848260208601613b96565b91505092915050565b600060208284031215613c4357613c4261381f565b5b600082013567ffffffffffffffff811115613c6157613c60613824565b5b613c6d84828501613bff565b91505092915050565b613c7f816138fd565b8114613c8a57600080fd5b50565b600081359050613c9c81613c76565b92915050565b60008060408385031215613cb957613cb861381f565b5b6000613cc785828601613872565b9250506020613cd885828601613c8d565b9150509250929050565b60008060408385031215613cf957613cf861381f565b5b6000613d0785828601613872565b9250506020613d1885828601613872565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d6957607f821691505b60208210811415613d7d57613d7c613d22565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613db9602083613765565b9150613dc482613d83565b602082019050919050565b60006020820190508181036000830152613de881613dac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e2982613887565b9150613e3483613887565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e6d57613e6c613def565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb282613887565b9150613ebd83613887565b925082613ecd57613ecc613e78565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613f34602f83613765565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc6602883613765565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b600061400782613887565b915061401283613887565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404757614046613def565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061408c82613887565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140bf576140be613def565b5b600182019050919050565b7f4d757374206b656570206665657320617420393925206f72206c657373000000600082015250565b6000614100601d83613765565b915061410b826140ca565b602082019050919050565b6000602082019050818103600083015261412f816140f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614192603983613765565b915061419d82614136565b604082019050919050565b600060208201905081810360008301526141c181614185565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614224602583613765565b915061422f826141c8565b604082019050919050565b6000602082019050818103600083015261425381614217565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142b6602483613765565b91506142c18261425a565b604082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614348603583613765565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006143da603483613765565b91506143e58261437e565b604082019050919050565b60006020820190508181036000830152614409816143cd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061446c602683613765565b915061447782614410565b604082019050919050565b6000602082019050818103600083015261449b8161445f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006144fe602483613765565b9150614509826144a2565b604082019050919050565b6000602082019050818103600083015261452d816144f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614590602283613765565b915061459b82614534565b604082019050919050565b600060208201905081810360008301526145bf81614583565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614622602583613765565b915061462d826145c6565b604082019050919050565b6000602082019050818103600083015261465181614615565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006146b4602383613765565b91506146bf82614658565b604082019050919050565b600060208201905081810360008301526146e3816146a7565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b600061476c605183613765565b9150614777826146ea565b606082019050919050565b6000602082019050818103600083015261479b8161475f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006147d8601683613765565b91506147e3826147a2565b602082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000614890604983613765565b915061489b8261480e565b606082019050919050565b600060208201905081810360008301526148bf81614883565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614922603583613765565b915061492d826148c6565b604082019050919050565b6000602082019050818103600083015261495181614915565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061498e601383613765565b915061499982614958565b602082019050919050565b600060208201905081810360008301526149bd81614981565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a20603683613765565b9150614a2b826149c4565b604082019050919050565b60006020820190508181036000830152614a4f81614a13565b9050919050565b6000614a6182613887565b9150614a6c83613887565b925082821015614a7f57614a7e613def565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614ae6602683613765565b9150614af182614a8a565b604082019050919050565b60006020820190508181036000830152614b1581614ad9565b9050919050565b600081905092915050565b50565b6000614b37600083614b1c565b9150614b4282614b27565b600082019050919050565b6000614b5882614b2a565b9150819050919050565b600081519050614b718161385b565b92915050565b600060208284031215614b8d57614b8c61381f565b5b6000614b9b84828501614b62565b91505092915050565b6000819050919050565b6000614bc9614bc4614bbf84614ba4565b613960565b613887565b9050919050565b614bd981614bae565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c1481613849565b82525050565b6000614c268383614c0b565b60208301905092915050565b6000602082019050919050565b6000614c4a82614bdf565b614c548185614bea565b9350614c5f83614bfb565b8060005b83811015614c90578151614c778882614c1a565b9750614c8283614c32565b925050600181019050614c63565b5085935050505092915050565b600060a082019050614cb260008301886139da565b614cbf6020830187614bd0565b8181036040830152614cd18186614c3f565b9050614ce06060830185613abb565b614ced60808301846139da565b969550505050505056fea2646970667358221220a991b072a97031e59184d7812ed531be458a6cb40756415b1a67132274020dcf64736f6c634300080b0033
Deployed Bytecode
0x6080604052600436106102815760003560e01c80638da5cb5b1161014f578063c18bc195116100c1578063dd62ed3e1161007a578063dd62ed3e146109cf578063e2f4560514610a0c578063e884f26014610a37578063eba4c33314610a62578063f2fde38b14610a8b578063f8b45b0514610ab457610288565b8063c18bc195146108bf578063c876d0b9146108e8578063c8c8ebe414610913578063d257b34f1461093e578063d34628cc1461097b578063d85ba063146109a457610288565b8063a0d82dc511610113578063a0d82dc514610789578063a457c2d7146107b4578063a9059cbb146107f1578063b62496f51461082e578063bbc0c7421461086b578063c02466681461089657610288565b80638da5cb5b146106b457806395d89b41146106df5780639a7a23d61461070a5780639c3b4fdc146107335780639fccce321461075e57610288565b806349bd5a5e116101f3578063715018a6116101ac578063715018a6146105e057806371fc4688146105f7578063751039fc146106205780637571336a1461064b57806382aa7c68146106745780638a8c523c1461069d57610288565b806349bd5a5e146104bc5780634a62bb65146104e75780634fbee193146105125780636a486a8e1461054f5780636c3bbfd71461057a57806370a08231146105a357610288565b80631816467f116102455780631816467f14610388578063203e727e146103b157806323b872dd146103da578063313ce5671461041757806339509351146104425780633bbac5791461047f57610288565b806306fdde031461028d578063095ea7b3146102b857806310d5de53146102f55780631694505e1461033257806318160ddd1461035d57610288565b3661028857005b600080fd5b34801561029957600080fd5b506102a2610adf565b6040516102af91906137f3565b60405180910390f35b3480156102c457600080fd5b506102df60048036038101906102da91906138bd565b610b71565b6040516102ec9190613918565b60405180910390f35b34801561030157600080fd5b5061031c60048036038101906103179190613933565b610b8f565b6040516103299190613918565b60405180910390f35b34801561033e57600080fd5b50610347610baf565b60405161035491906139bf565b60405180910390f35b34801561036957600080fd5b50610372610bd3565b60405161037f91906139e9565b60405180910390f35b34801561039457600080fd5b506103af60048036038101906103aa9190613933565b610bdd565b005b3480156103bd57600080fd5b506103d860048036038101906103d39190613a04565b610d19565b005b3480156103e657600080fd5b5061040160048036038101906103fc9190613a31565b610e28565b60405161040e9190613918565b60405180910390f35b34801561042357600080fd5b5061042c610f47565b6040516104399190613aa0565b60405180910390f35b34801561044e57600080fd5b50610469600480360381019061046491906138bd565b610f50565b6040516104769190613918565b60405180910390f35b34801561048b57600080fd5b506104a660048036038101906104a19190613933565b610ffc565b6040516104b39190613918565b60405180910390f35b3480156104c857600080fd5b506104d161101c565b6040516104de9190613aca565b60405180910390f35b3480156104f357600080fd5b506104fc611040565b6040516105099190613918565b60405180910390f35b34801561051e57600080fd5b5061053960048036038101906105349190613933565b611053565b6040516105469190613918565b60405180910390f35b34801561055b57600080fd5b506105646110a9565b60405161057191906139e9565b60405180910390f35b34801561058657600080fd5b506105a1600480360381019061059c9190613c2d565b6110af565b005b3480156105af57600080fd5b506105ca60048036038101906105c59190613933565b6111c0565b6040516105d791906139e9565b60405180910390f35b3480156105ec57600080fd5b506105f5611208565b005b34801561060357600080fd5b5061061e60048036038101906106199190613a04565b611290565b005b34801561062c57600080fd5b50610635611365565b6040516106429190613918565b60405180910390f35b34801561065757600080fd5b50610672600480360381019061066d9190613ca2565b611405565b005b34801561068057600080fd5b5061069b60048036038101906106969190613a04565b6114dc565b005b3480156106a957600080fd5b506106b261158f565b005b3480156106c057600080fd5b506106c9611642565b6040516106d69190613aca565b60405180910390f35b3480156106eb57600080fd5b506106f461166c565b60405161070191906137f3565b60405180910390f35b34801561071657600080fd5b50610731600480360381019061072c9190613ca2565b6116fe565b005b34801561073f57600080fd5b50610748611817565b60405161075591906139e9565b60405180910390f35b34801561076a57600080fd5b5061077361181d565b60405161078091906139e9565b60405180910390f35b34801561079557600080fd5b5061079e611823565b6040516107ab91906139e9565b60405180910390f35b3480156107c057600080fd5b506107db60048036038101906107d691906138bd565b611829565b6040516107e89190613918565b60405180910390f35b3480156107fd57600080fd5b50610818600480360381019061081391906138bd565b611914565b6040516108259190613918565b60405180910390f35b34801561083a57600080fd5b5061085560048036038101906108509190613933565b611932565b6040516108629190613918565b60405180910390f35b34801561087757600080fd5b50610880611952565b60405161088d9190613918565b60405180910390f35b3480156108a257600080fd5b506108bd60048036038101906108b89190613ca2565b611965565b005b3480156108cb57600080fd5b506108e660048036038101906108e19190613a04565b611a3c565b005b3480156108f457600080fd5b506108fd611b4b565b60405161090a9190613918565b60405180910390f35b34801561091f57600080fd5b50610928611b5e565b60405161093591906139e9565b60405180910390f35b34801561094a57600080fd5b5061096560048036038101906109609190613a04565b611b64565b6040516109729190613918565b60405180910390f35b34801561098757600080fd5b506109a2600480360381019061099d9190613c2d565b611cb9565b005b3480156109b057600080fd5b506109b9611eac565b6040516109c691906139e9565b60405180910390f35b3480156109db57600080fd5b506109f660048036038101906109f19190613ce2565b611eb2565b604051610a0391906139e9565b60405180910390f35b348015610a1857600080fd5b50610a21611f39565b604051610a2e91906139e9565b60405180910390f35b348015610a4357600080fd5b50610a4c611f3f565b604051610a599190613918565b60405180910390f35b348015610a6e57600080fd5b50610a896004803603810190610a849190613a04565b611fdf565b005b348015610a9757600080fd5b50610ab26004803603810190610aad9190613933565b6120b4565b005b348015610ac057600080fd5b50610ac96121ac565b604051610ad691906139e9565b60405180910390f35b606060038054610aee90613d51565b80601f0160208091040260200160405190810160405280929190818152602001828054610b1a90613d51565b8015610b675780601f10610b3c57610100808354040283529160200191610b67565b820191906000526020600020905b815481529060010190602001808311610b4a57829003601f168201915b5050505050905090565b6000610b85610b7e6121b2565b84846121ba565b6001905092915050565b60166020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d81565b6000600254905090565b610be56121b2565b73ffffffffffffffffffffffffffffffffffffffff16610c03611642565b73ffffffffffffffffffffffffffffffffffffffff1614610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090613dcf565b60405180910390fd5b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f90b8024c4923d3873ff5b9fcb43d0360d4b9217fa41225d07ba379993552e74360405160405180910390a380600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b610d216121b2565b73ffffffffffffffffffffffffffffffffffffffff16610d3f611642565b73ffffffffffffffffffffffffffffffffffffffff1614610d95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d8c90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86001610dab610bd3565b610db59190613e1e565b610dbf9190613ea7565b610dc99190613ea7565b811015610e0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0290613f4a565b60405180910390fd5b670de0b6b3a764000081610e1f9190613e1e565b600a8190555050565b600080600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000610e746121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610f305782811015610f1b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f1290613fdc565b60405180910390fd5b610f2f85610f276121b2565b8584036121ba565b5b610f3b858585612385565b60019150509392505050565b60006012905090565b6000610ff2610f5d6121b2565b848460016000610f6b6121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054610fed9190613ffc565b6121ba565b6001905092915050565b60066020528060005260406000206000915054906101000a900460ff1681565b7f0000000000000000000000004ceb0984c522aa2a08a1c288d5d5d49e8341f17a81565b600d60009054906101000a900460ff1681565b6000601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff169050919050565b60125481565b6110b76121b2565b73ffffffffffffffffffffffffffffffffffffffff166110d5611642565b73ffffffffffffffffffffffffffffffffffffffff161461112b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161112290613dcf565b60405180910390fd5b60005b81518110156111bc576000600660008484815181106111505761114f614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555080806111b490614081565b91505061112e565b5050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6112106121b2565b73ffffffffffffffffffffffffffffffffffffffff1661122e611642565b73ffffffffffffffffffffffffffffffffffffffff1614611284576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161127b90613dcf565b60405180910390fd5b61128e600061302b565b565b6112986121b2565b73ffffffffffffffffffffffffffffffffffffffff166112b6611642565b73ffffffffffffffffffffffffffffffffffffffff161461130c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130390613dcf565b60405180910390fd5b8060118190555060115460108190555060636010541115611362576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135990614116565b60405180910390fd5b50565b600061136f6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661138d611642565b73ffffffffffffffffffffffffffffffffffffffff16146113e3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113da90613dcf565b60405180910390fd5b6000600d60006101000a81548160ff0219169083151502179055506001905090565b61140d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661142b611642565b73ffffffffffffffffffffffffffffffffffffffff1614611481576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147890613dcf565b60405180910390fd5b80601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6114e46121b2565b73ffffffffffffffffffffffffffffffffffffffff16611502611642565b73ffffffffffffffffffffffffffffffffffffffff1614611558576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161154f90613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061158681426130f190919063ffffffff16565b60088190555050565b6115976121b2565b73ffffffffffffffffffffffffffffffffffffffff166115b5611642565b73ffffffffffffffffffffffffffffffffffffffff161461160b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161160290613dcf565b60405180910390fd5b6001600d60016101000a81548160ff02191690831515021790555061163a6002426130f190919063ffffffff16565b600881905550565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606004805461167b90613d51565b80601f01602080910402602001604051908101604052809291908181526020018280546116a790613d51565b80156116f45780601f106116c9576101008083540402835291602001916116f4565b820191906000526020600020905b8154815290600101906020018083116116d757829003601f168201915b5050505050905090565b6117066121b2565b73ffffffffffffffffffffffffffffffffffffffff16611724611642565b73ffffffffffffffffffffffffffffffffffffffff161461177a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161177190613dcf565b60405180910390fd5b7f0000000000000000000000004ceb0984c522aa2a08a1c288d5d5d49e8341f17a73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611809576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611800906141a8565b60405180910390fd5b6118138282613107565b5050565b60115481565b60145481565b60135481565b600080600160006118386121b2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050828110156118f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ec9061423a565b60405180910390fd5b6119096119006121b2565b858584036121ba565b600191505092915050565b60006119286119216121b2565b8484612385565b6001905092915050565b60176020528060005260406000206000915054906101000a900460ff1681565b600d60019054906101000a900460ff1681565b61196d6121b2565b73ffffffffffffffffffffffffffffffffffffffff1661198b611642565b73ffffffffffffffffffffffffffffffffffffffff16146119e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119d890613dcf565b60405180910390fd5b80601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b611a446121b2565b73ffffffffffffffffffffffffffffffffffffffff16611a62611642565b73ffffffffffffffffffffffffffffffffffffffff1614611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf90613dcf565b60405180910390fd5b670de0b6b3a76400006103e86005611ace610bd3565b611ad89190613e1e565b611ae29190613ea7565b611aec9190613ea7565b811015611b2e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b25906142cc565b60405180910390fd5b670de0b6b3a764000081611b429190613e1e565b600c8190555050565b600f60009054906101000a900460ff1681565b600a5481565b6000611b6e6121b2565b73ffffffffffffffffffffffffffffffffffffffff16611b8c611642565b73ffffffffffffffffffffffffffffffffffffffff1614611be2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd990613dcf565b60405180910390fd5b620186a06001611bf0610bd3565b611bfa9190613e1e565b611c049190613ea7565b821015611c46576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c3d9061435e565b60405180910390fd5b6103e86005611c53610bd3565b611c5d9190613e1e565b611c679190613ea7565b821115611ca9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ca0906143f0565b60405180910390fd5b81600b8190555060019050919050565b611cc16121b2565b73ffffffffffffffffffffffffffffffffffffffff16611cdf611642565b73ffffffffffffffffffffffffffffffffffffffff1614611d35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d2c90613dcf565b60405180910390fd5b60005b8151811015611ea8577f0000000000000000000000004ceb0984c522aa2a08a1c288d5d5d49e8341f17a73ffffffffffffffffffffffffffffffffffffffff16828281518110611d8b57611d8a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614158015611e1d57507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff16828281518110611dfc57611dfb614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1614155b15611e9557600160066000848481518110611e3b57611e3a614052565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b8080611ea090614081565b915050611d38565b5050565b60105481565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600b5481565b6000611f496121b2565b73ffffffffffffffffffffffffffffffffffffffff16611f67611642565b73ffffffffffffffffffffffffffffffffffffffff1614611fbd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fb490613dcf565b60405180910390fd5b6000600f60006101000a81548160ff0219169083151502179055506001905090565b611fe76121b2565b73ffffffffffffffffffffffffffffffffffffffff16612005611642565b73ffffffffffffffffffffffffffffffffffffffff161461205b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161205290613dcf565b60405180910390fd5b80601381905550601354601281905550606360125411156120b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a890614116565b60405180910390fd5b50565b6120bc6121b2565b73ffffffffffffffffffffffffffffffffffffffff166120da611642565b73ffffffffffffffffffffffffffffffffffffffff1614612130576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161212790613dcf565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614156121a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161219790614482565b60405180910390fd5b6121a98161302b565b50565b600c5481565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561222a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161222190614514565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561229a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612291906145a6565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258360405161237891906139e9565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156123f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123ec90614638565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612465576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245c906146ca565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16156124f2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124e990614782565b60405180910390fd5b600081141561250c5761250783836000613162565b613026565b60085442101561256f576001600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505b600d60009054906101000a900460ff1615612c325761258c611642565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141580156125fa57506125ca611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126335750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561266d575061dead73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b80156126865750600760009054906101000a900460ff16155b15612c3157600d60019054906101000a900460ff1661278057601560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806127405750601560008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b61277f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612776906147ee565b60405180910390fd5b5b600f60009054906101000a900460ff16156129485761279d611642565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561282457507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b801561287c57507f0000000000000000000000004ceb0984c522aa2a08a1c288d5d5d49e8341f17a73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b156129475743600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205410612902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128f9906148a6565b60405180910390fd5b43600e60003273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b5b601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680156129eb5750601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612a9257600a54811115612a35576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a2c90614938565b60405180910390fd5b600c54612a41836111c0565b82612a4c9190613ffc565b1115612a8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612a84906149a4565b60405180910390fd5b612c30565b601760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612b355750601660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612b8457600a54811115612b7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7690614a36565b60405180910390fd5b612c2f565b601660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16612c2e57600c54612be1836111c0565b82612bec9190613ffc565b1115612c2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c24906149a4565b60405180910390fd5b5b5b5b5b5b6000612c3d306111c0565b90506000600b548210159050808015612c635750600760009054906101000a900460ff16155b8015612cb95750601760008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d0f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015612d655750601560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15612da9576001600760006101000a81548160ff021916908315150217905550612d8d6133e3565b6000600760006101000a81548160ff0219169083151502179055505b6000600760009054906101000a900460ff16159050601560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1680612e5f5750601560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff165b15612e6957600090505b6000811561301657601760008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612ecc57506000601254115b15612f3357612ef96064612eeb601254886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060125460135482612f0c9190613e1e565b612f169190613ea7565b60146000828254612f279190613ffc565b92505081905550612ff2565b601760008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff168015612f8e57506000601054115b15612ff157612fbb6064612fad601054886134e790919063ffffffff16565b6134fd90919063ffffffff16565b905060105460115482612fce9190613e1e565b612fd89190613ea7565b60146000828254612fe99190613ffc565b925050819055505b5b600081111561300757613006873083613162565b5b80856130139190614a56565b94505b613021878787613162565b505050505b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081836130ff9190613ffc565b905092915050565b80601760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156131d2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016131c990614638565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613242576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401613239906146ca565b60405180910390fd5b61324d838383613513565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156132d3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016132ca90614afc565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546133669190613ffc565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516133ca91906139e9565b60405180910390a36133dd848484613518565b50505050565b60006133ee306111c0565b9050600060145490506000808314806134075750600082145b15613414575050506134e5565b6014600b546134239190613e1e565b83111561343c576014600b546134399190613e1e565b92505b6134458261351d565b60004790506000601481905550600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168160405161349890614b4d565b60006040518083038185875af1925050503d80600081146134d5576040519150601f19603f3d011682016040523d82523d6000602084013e6134da565b606091505b505080925050505050505b565b600081836134f59190613e1e565b905092915050565b6000818361350b9190613ea7565b905092915050565b505050565b505050565b6000600267ffffffffffffffff81111561353a57613539613aea565b5b6040519080825280602002602001820160405280156135685781602001602082028036833780820191505090505b50905030816000815181106135805761357f614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250507f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663ad5c46486040518163ffffffff1660e01b8152600401602060405180830381865afa158015613625573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906136499190614b77565b8160018151811061365d5761365c614052565b5b602002602001019073ffffffffffffffffffffffffffffffffffffffff16908173ffffffffffffffffffffffffffffffffffffffff16815250506136c2307f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d846121ba565b7f0000000000000000000000007a250d5630b4cf539739df2c5dacb4c659f2488d73ffffffffffffffffffffffffffffffffffffffff1663791ac9478360008430426040518663ffffffff1660e01b8152600401613724959493929190614c9d565b600060405180830381600087803b15801561373e57600080fd5b505af1158015613752573d6000803e3d6000fd5b505050505050565b600081519050919050565b600082825260208201905092915050565b60005b83811015613794578082015181840152602081019050613779565b838111156137a3576000848401525b50505050565b6000601f19601f8301169050919050565b60006137c58261375a565b6137cf8185613765565b93506137df818560208601613776565b6137e8816137a9565b840191505092915050565b6000602082019050818103600083015261380d81846137ba565b905092915050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061385482613829565b9050919050565b61386481613849565b811461386f57600080fd5b50565b6000813590506138818161385b565b92915050565b6000819050919050565b61389a81613887565b81146138a557600080fd5b50565b6000813590506138b781613891565b92915050565b600080604083850312156138d4576138d361381f565b5b60006138e285828601613872565b92505060206138f3858286016138a8565b9150509250929050565b60008115159050919050565b613912816138fd565b82525050565b600060208201905061392d6000830184613909565b92915050565b6000602082840312156139495761394861381f565b5b600061395784828501613872565b91505092915050565b6000819050919050565b600061398561398061397b84613829565b613960565b613829565b9050919050565b60006139978261396a565b9050919050565b60006139a98261398c565b9050919050565b6139b98161399e565b82525050565b60006020820190506139d460008301846139b0565b92915050565b6139e381613887565b82525050565b60006020820190506139fe60008301846139da565b92915050565b600060208284031215613a1a57613a1961381f565b5b6000613a28848285016138a8565b91505092915050565b600080600060608486031215613a4a57613a4961381f565b5b6000613a5886828701613872565b9350506020613a6986828701613872565b9250506040613a7a868287016138a8565b9150509250925092565b600060ff82169050919050565b613a9a81613a84565b82525050565b6000602082019050613ab56000830184613a91565b92915050565b613ac481613849565b82525050565b6000602082019050613adf6000830184613abb565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b613b22826137a9565b810181811067ffffffffffffffff82111715613b4157613b40613aea565b5b80604052505050565b6000613b54613815565b9050613b608282613b19565b919050565b600067ffffffffffffffff821115613b8057613b7f613aea565b5b602082029050602081019050919050565b600080fd5b6000613ba9613ba484613b65565b613b4a565b90508083825260208201905060208402830185811115613bcc57613bcb613b91565b5b835b81811015613bf55780613be18882613872565b845260208401935050602081019050613bce565b5050509392505050565b600082601f830112613c1457613c13613ae5565b5b8135613c24848260208601613b96565b91505092915050565b600060208284031215613c4357613c4261381f565b5b600082013567ffffffffffffffff811115613c6157613c60613824565b5b613c6d84828501613bff565b91505092915050565b613c7f816138fd565b8114613c8a57600080fd5b50565b600081359050613c9c81613c76565b92915050565b60008060408385031215613cb957613cb861381f565b5b6000613cc785828601613872565b9250506020613cd885828601613c8d565b9150509250929050565b60008060408385031215613cf957613cf861381f565b5b6000613d0785828601613872565b9250506020613d1885828601613872565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680613d6957607f821691505b60208210811415613d7d57613d7c613d22565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613db9602083613765565b9150613dc482613d83565b602082019050919050565b60006020820190508181036000830152613de881613dac565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613e2982613887565b9150613e3483613887565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613e6d57613e6c613def565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613eb282613887565b9150613ebd83613887565b925082613ecd57613ecc613e78565b5b828204905092915050565b7f43616e6e6f7420736574206d61785472616e73616374696f6e416d6f756e742060008201527f6c6f776572207468616e20302e31250000000000000000000000000000000000602082015250565b6000613f34602f83613765565b9150613f3f82613ed8565b604082019050919050565b60006020820190508181036000830152613f6381613f27565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206160008201527f6c6c6f77616e6365000000000000000000000000000000000000000000000000602082015250565b6000613fc6602883613765565b9150613fd182613f6a565b604082019050919050565b60006020820190508181036000830152613ff581613fb9565b9050919050565b600061400782613887565b915061401283613887565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561404757614046613def565b5b828201905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600061408c82613887565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156140bf576140be613def565b5b600182019050919050565b7f4d757374206b656570206665657320617420393925206f72206c657373000000600082015250565b6000614100601d83613765565b915061410b826140ca565b602082019050919050565b6000602082019050818103600083015261412f816140f3565b9050919050565b7f54686520706169722063616e6e6f742062652072656d6f7665642066726f6d2060008201527f6175746f6d617465644d61726b65744d616b6572506169727300000000000000602082015250565b6000614192603983613765565b915061419d82614136565b604082019050919050565b600060208201905081810360008301526141c181614185565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b6000614224602583613765565b915061422f826141c8565b604082019050919050565b6000602082019050818103600083015261425381614217565b9050919050565b7f43616e6e6f7420736574206d617857616c6c6574206c6f776572207468616e2060008201527f302e352500000000000000000000000000000000000000000000000000000000602082015250565b60006142b6602483613765565b91506142c18261425a565b604082019050919050565b600060208201905081810360008301526142e5816142a9565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206c6f776572207468616e60008201527f20302e3030312520746f74616c20737570706c792e0000000000000000000000602082015250565b6000614348603583613765565b9150614353826142ec565b604082019050919050565b600060208201905081810360008301526143778161433b565b9050919050565b7f5377617020616d6f756e742063616e6e6f74206265206869676865722074686160008201527f6e20302e352520746f74616c20737570706c792e000000000000000000000000602082015250565b60006143da603483613765565b91506143e58261437e565b604082019050919050565b60006020820190508181036000830152614409816143cd565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b600061446c602683613765565b915061447782614410565b604082019050919050565b6000602082019050818103600083015261449b8161445f565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b60006144fe602483613765565b9150614509826144a2565b604082019050919050565b6000602082019050818103600083015261452d816144f1565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000614590602283613765565b915061459b82614534565b604082019050919050565b600060208201905081810360008301526145bf81614583565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000614622602583613765565b915061462d826145c6565b604082019050919050565b6000602082019050818103600083015261465181614615565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b60006146b4602383613765565b91506146bf82614658565b604082019050919050565b600060208201905081810360008301526146e3816146a7565b9050919050565b7f596f7572206164647265737320686173206265656e206d61726b65642061732060008201527f6120626f742f736e697065722c20796f752061726520756e61626c6520746f2060208201527f7472616e73666572206f7220737761702e000000000000000000000000000000604082015250565b600061476c605183613765565b9150614777826146ea565b606082019050919050565b6000602082019050818103600083015261479b8161475f565b9050919050565b7f54726164696e67206973206e6f74206163746976652e00000000000000000000600082015250565b60006147d8601683613765565b91506147e3826147a2565b602082019050919050565b60006020820190508181036000830152614807816147cb565b9050919050565b7f5f7472616e736665723a3a205472616e736665722044656c617920656e61626c60008201527f65642e20204f6e6c79206f6e652070757263686173652070657220626c6f636b60208201527f20616c6c6f7765642e0000000000000000000000000000000000000000000000604082015250565b6000614890604983613765565b915061489b8261480e565b606082019050919050565b600060208201905081810360008301526148bf81614883565b9050919050565b7f427579207472616e7366657220616d6f756e742065786365656473207468652060008201527f6d61785472616e73616374696f6e416d6f756e742e0000000000000000000000602082015250565b6000614922603583613765565b915061492d826148c6565b604082019050919050565b6000602082019050818103600083015261495181614915565b9050919050565b7f4d61782077616c6c657420657863656564656400000000000000000000000000600082015250565b600061498e601383613765565b915061499982614958565b602082019050919050565b600060208201905081810360008301526149bd81614981565b9050919050565b7f53656c6c207472616e7366657220616d6f756e7420657863656564732074686560008201527f206d61785472616e73616374696f6e416d6f756e742e00000000000000000000602082015250565b6000614a20603683613765565b9150614a2b826149c4565b604082019050919050565b60006020820190508181036000830152614a4f81614a13565b9050919050565b6000614a6182613887565b9150614a6c83613887565b925082821015614a7f57614a7e613def565b5b828203905092915050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000614ae6602683613765565b9150614af182614a8a565b604082019050919050565b60006020820190508181036000830152614b1581614ad9565b9050919050565b600081905092915050565b50565b6000614b37600083614b1c565b9150614b4282614b27565b600082019050919050565b6000614b5882614b2a565b9150819050919050565b600081519050614b718161385b565b92915050565b600060208284031215614b8d57614b8c61381f565b5b6000614b9b84828501614b62565b91505092915050565b6000819050919050565b6000614bc9614bc4614bbf84614ba4565b613960565b613887565b9050919050565b614bd981614bae565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b614c1481613849565b82525050565b6000614c268383614c0b565b60208301905092915050565b6000602082019050919050565b6000614c4a82614bdf565b614c548185614bea565b9350614c5f83614bfb565b8060005b83811015614c90578151614c778882614c1a565b9750614c8283614c32565b925050600181019050614c63565b5085935050505092915050565b600060a082019050614cb260008301886139da565b614cbf6020830187614bd0565b8181036040830152614cd18186614c3f565b9050614ce06060830185613abb565b614ced60808301846139da565b969550505050505056fea2646970667358221220a991b072a97031e59184d7812ed531be458a6cb40756415b1a67132274020dcf64736f6c634300080b0033
Deployed Bytecode Sourcemap
11793:12691:0:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3097:100;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4011:169;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12881:64;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11870:51;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3418:108;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18090:157;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16286:232;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;4188:573;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3317:93;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4769:215;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11975:38;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;11928;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12246:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18258:125;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12630:28;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18674:168;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;3534:127;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;10576:103;;;;;;;;;;;;;:::i;:::-;;16905:203;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15496:121;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;16749:144;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;17789:149;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;15311:130;;;;;;;;;;;;;:::i;:::-;;10353:87;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3205:104;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17473:244;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12596:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12700:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12665:25;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;4992:413;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3669:175;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;13103:58;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12286:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17333:132;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;16526:211;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12510:39;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12123:35;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15892:382;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;18395:267;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12562:27;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3852:151;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;12165:33;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;15682:135;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;17117:208;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;10687:201;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;:::i;:::-;;12205:24;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3097:100;3151:13;3184:5;3177:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3097:100;:::o;4011:169::-;4094:4;4111:39;4120:12;:10;:12::i;:::-;4134:7;4143:6;4111:8;:39::i;:::-;4168:4;4161:11;;4011:169;;;;:::o;12881:64::-;;;;;;;;;;;;;;;;;;;;;;:::o;11870:51::-;;;:::o;3418:108::-;3479:7;3506:12;;3499:19;;3418:108;:::o;18090:157::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18197:9:::1;;;;;;;;;;;18169:38;;18186:9;18169:38;;;;;;;;;;;;18230:9;18218;;:21;;;;;;;;;;;;;;;;;;18090:157:::0;:::o;16286:232::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16407:4:::1;16399;16395:1;16379:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16378:33;;;;:::i;:::-;16368:6;:43;;16360:103;;;;;;;;;;;;:::i;:::-;;;;;;;;;16506:4;16497:6;:13;;;;:::i;:::-;16474:20;:36;;;;16286:232:::0;:::o;4188:573::-;4328:4;4345:24;4372:11;:19;4384:6;4372:19;;;;;;;;;;;;;;;:33;4392:12;:10;:12::i;:::-;4372:33;;;;;;;;;;;;;;;;4345:60;;4440:17;4420:16;:37;4416:265;;4502:6;4482:16;:26;;4474:79;;;;;;;;;;;;:::i;:::-;;;;;;;;;4597:57;4606:6;4614:12;:10;:12::i;:::-;4647:6;4628:16;:25;4597:8;:57::i;:::-;4416:265;4693:36;4703:6;4711:9;4722:6;4693:9;:36::i;:::-;4749:4;4742:11;;;4188:573;;;;;:::o;3317:93::-;3375:5;3400:2;3393:9;;3317:93;:::o;4769:215::-;4857:4;4874:80;4883:12;:10;:12::i;:::-;4897:7;4943:10;4906:11;:25;4918:12;:10;:12::i;:::-;4906:25;;;;;;;;;;;;;;;:34;4932:7;4906:34;;;;;;;;;;;;;;;;:47;;;;:::i;:::-;4874:8;:80::i;:::-;4972:4;4965:11;;4769:215;;;;:::o;11975:38::-;;;;;;;;;;;;;;;;;;;;;;:::o;11928:::-;;;:::o;12246:33::-;;;;;;;;;;;;;:::o;18258:125::-;18323:4;18347:19;:28;18367:7;18347:28;;;;;;;;;;;;;;;;;;;;;;;;;18340:35;;18258:125;;;:::o;12630:28::-;;;;:::o;18674:168::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18752:6:::1;18747:88;18768:4;:11;18764:1;:15;18747:88;;;18818:5;18801;:14;18807:4;18812:1;18807:7;;;;;;;;:::i;:::-;;;;;;;;18801:14;;;;;;;;;;;;;;;;:22;;;;;;;;;;;;;;;;;;18781:3;;;;;:::i;:::-;;;;18747:88;;;;18674:168:::0;:::o;3534:127::-;3608:7;3635:9;:18;3645:7;3635:18;;;;;;;;;;;;;;;;3628:25;;3534:127;;;:::o;10576:103::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10641:30:::1;10668:1;10641:18;:30::i;:::-;10576:103::o:0;16905:203::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16987:7:::1;16975:9;:19;;;;17020:9;;17005:12;:24;;;;17064:2;17048:12;;:18;;17040:60;;;;;;;;;;;;:::i;:::-;;;;;;;;;16905:203:::0;:::o;15496:121::-;15548:4;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15582:5:::1;15565:14;;:22;;;;;;;;;;;;;;;;;;15605:4;15598:11;;15496:121:::0;:::o;16749:144::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16881:4:::1;16839:31;:39;16871:6;16839:39;;;;;;;;;;;;;;;;:46;;;;;;;;;;;;;;;;;;16749:144:::0;;:::o;17789:149::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17874:4:::1;17858:13;;:20;;;;;;;;;;;;;;;;;;17903:27;17923:6;17903:15;:19;;:27;;;;:::i;:::-;17889:11;:41;;;;17789:149:::0;:::o;15311:130::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15382:4:::1;15366:13;;:20;;;;;;;;;;;;;;;;;;15411:22;15431:1;15411:15;:19;;:22;;;;:::i;:::-;15397:11;:36;;;;15311:130::o:0;10353:87::-;10399:7;10426:6;;;;;;;;;;;10419:13;;10353:87;:::o;3205:104::-;3261:13;3294:7;3287:14;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3205:104;:::o;17473:244::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17580:13:::1;17572:21;;:4;:21;;;;17564:91;;;;;;;;;;;;:::i;:::-;;;;;;;;;17668:41;17697:4;17703:5;17668:28;:41::i;:::-;17473:244:::0;;:::o;12596:24::-;;;;:::o;12700:27::-;;;;:::o;12665:25::-;;;;:::o;4992:413::-;5085:4;5102:24;5129:11;:25;5141:12;:10;:12::i;:::-;5129:25;;;;;;;;;;;;;;;:34;5155:7;5129:34;;;;;;;;;;;;;;;;5102:61;;5202:15;5182:16;:35;;5174:85;;;;;;;;;;;;:::i;:::-;;;;;;;;;5295:67;5304:12;:10;:12::i;:::-;5318:7;5346:15;5327:16;:34;5295:8;:67::i;:::-;5393:4;5386:11;;;4992:413;;;;:::o;3669:175::-;3755:4;3772:42;3782:12;:10;:12::i;:::-;3796:9;3807:6;3772:9;:42::i;:::-;3832:4;3825:11;;3669:175;;;;:::o;13103:58::-;;;;;;;;;;;;;;;;;;;;;;:::o;12286:33::-;;;;;;;;;;;;;:::o;17333:132::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17449:8:::1;17418:19;:28;17438:7;17418:28;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17333:132:::0;;:::o;16526:211::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16648:4:::1;16642;16638:1;16622:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16621:31;;;;:::i;:::-;16611:6;:41;;16603:90;;;;;;;;;;;;:::i;:::-;;;;;;;;;16725:4;16716:6;:13;;;;:::i;:::-;16704:9;:25;;;;16526:211:::0;:::o;12510:39::-;;;;;;;;;;;;;:::o;12123:35::-;;;;:::o;15892:382::-;15973:4;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;16030:6:::1;16026:1;16010:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:26;;;;:::i;:::-;15997:9;:39;;15989:105;;;;;;;;;;;;:::i;:::-;;;;;;;;;16145:4;16141:1;16125:13;:11;:13::i;:::-;:17;;;;:::i;:::-;:24;;;;:::i;:::-;16112:9;:37;;16104:102;;;;;;;;;;;;:::i;:::-;;;;;;;;;16237:9;16216:18;:30;;;;16263:4;16256:11;;15892:382:::0;;;:::o;18395:267::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;18470:6:::1;18465:190;18486:4;:11;18482:1;:15;18465:190;;;18534:13;18523:24;;:4;18528:1;18523:7;;;;;;;;:::i;:::-;;;;;;;;:24;;;;:63;;;;;18570:15;18551:35;;:4;18556:1;18551:7;;;;;;;;:::i;:::-;;;;;;;;:35;;;;18523:63;18519:125;;;18624:4;18607:5;:14;18613:4;18618:1;18613:7;;;;;;;;:::i;:::-;;;;;;;;18607:14;;;;;;;;;;;;;;;;:21;;;;;;;;;;;;;;;;;;18519:125;18499:3;;;;;:::i;:::-;;;;18465:190;;;;18395:267:::0;:::o;12562:27::-;;;;:::o;3852:151::-;3941:7;3968:11;:18;3980:5;3968:18;;;;;;;;;;;;;;;:27;3987:7;3968:27;;;;;;;;;;;;;;;;3961:34;;3852:151;;;;:::o;12165:33::-;;;;:::o;15682:135::-;15742:4;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;15782:5:::1;15759:20;;:28;;;;;;;;;;;;;;;;;;15805:4;15798:11;;15682:135:::0;:::o;17117:208::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;17201:7:::1;17188:10;:20;;;;17235:10;;17219:13;:26;;;;17281:2;17264:13;;:19;;17256:61;;;;;;;;;;;;:::i;:::-;;;;;;;;;17117:208:::0;:::o;10687:201::-;10499:12;:10;:12::i;:::-;10488:23;;:7;:5;:7::i;:::-;:23;;;10480:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;10796:1:::1;10776:22;;:8;:22;;;;10768:73;;;;;;;;;;;;:::i;:::-;;;;;;;;;10852:28;10871:8;10852:18;:28::i;:::-;10687:201:::0;:::o;12205:24::-;;;;:::o;191:98::-;244:7;271:10;264:17;;191:98;:::o;7160:380::-;7313:1;7296:19;;:5;:19;;;;7288:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7394:1;7375:21;;:7;:21;;;;7367:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;7478:6;7448:11;:18;7460:5;7448:18;;;;;;;;;;;;;;;:27;7467:7;7448:27;;;;;;;;;;;;;;;:36;;;;7516:7;7500:32;;7509:5;7500:32;;;7525:6;7500:32;;;;;;:::i;:::-;;;;;;;;7160:380;;;:::o;18850:3910::-;18998:1;18982:18;;:4;:18;;;;18974:68;;;;;;;;;;;;:::i;:::-;;;;;;;;;19075:1;19061:16;;:2;:16;;;;19053:64;;;;;;;;;;;;:::i;:::-;;;;;;;;;19137:5;:11;19143:4;19137:11;;;;;;;;;;;;;;;;;;;;;;;;;19136:12;19128:106;;;;;;;;;;;;:::i;:::-;;;;;;;;;19270:1;19260:6;:11;19256:93;;;19288:28;19304:4;19310:2;19314:1;19288:15;:28::i;:::-;19331:7;;19256:93;19391:11;;19373:15;:29;19369:51;;;19416:4;19404:5;:9;19410:2;19404:9;;;;;;;;;;;;;;;;:16;;;;;;;;;;;;;;;;;;19369:51;19445:14;;;;;;;;;;;19441:1834;;;19506:7;:5;:7::i;:::-;19498:15;;:4;:15;;;;:49;;;;;19540:7;:5;:7::i;:::-;19534:13;;:2;:13;;;;19498:49;:86;;;;;19582:1;19568:16;;:2;:16;;;;19498:86;:128;;;;;19619:6;19605:21;;:2;:21;;;;19498:128;:159;;;;;19648:9;;;;;;;;;;;19647:10;19498:159;19476:1788;;;19697:13;;;;;;;;;;;19692:150;;19743:19;:25;19763:4;19743:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;19772:19;:23;19792:2;19772:23;;;;;;;;;;;;;;;;;;;;;;;;;19743:52;19735:87;;;;;;;;;;;;:::i;:::-;;;;;;;;;19692:150;20000:20;;;;;;;;;;;19996:423;;;20054:7;:5;:7::i;:::-;20048:13;;:2;:13;;;;:47;;;;;20079:15;20065:30;;:2;:30;;;;20048:47;:79;;;;;20113:13;20099:28;;:2;:28;;;;20048:79;20044:356;;;20205:12;20163:28;:39;20192:9;20163:39;;;;;;;;;;;;;;;;:54;20155:140;;;;;;;;;;;;:::i;:::-;;;;;;;;;20364:12;20322:28;:39;20351:9;20322:39;;;;;;;;;;;;;;;:54;;;;20044:356;19996:423;20487:25;:31;20513:4;20487:31;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20523:31;:35;20555:2;20523:35;;;;;;;;;;;;;;;;;;;;;;;;;20522:36;20487:71;20483:766;;;20601:20;;20591:6;:30;;20583:96;;;;;;;;;;;;:::i;:::-;;;;;;;;;20736:9;;20719:13;20729:2;20719:9;:13::i;:::-;20710:6;:22;;;;:::i;:::-;:35;;20702:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;20483:766;;;20862:25;:29;20888:2;20862:29;;;;;;;;;;;;;;;;;;;;;;;;;:71;;;;;20896:31;:37;20928:4;20896:37;;;;;;;;;;;;;;;;;;;;;;;;;20895:38;20862:71;20858:391;;;20976:20;;20966:6;:30;;20958:97;;;;;;;;;;;;:::i;:::-;;;;;;;;;20858:391;;;21103:31;:35;21135:2;21103:35;;;;;;;;;;;;;;;;;;;;;;;;;21098:151;;21196:9;;21179:13;21189:2;21179:9;:13::i;:::-;21170:6;:22;;;;:::i;:::-;:35;;21162:67;;;;;;;;;;;;:::i;:::-;;;;;;;;;21098:151;20858:391;20483:766;19476:1788;19441:1834;21289:28;21320:24;21338:4;21320:9;:24::i;:::-;21289:55;;21355:12;21394:18;;21370:20;:42;;21355:57;;21443:7;:34;;;;;21468:9;;;;;;;;;;;21467:10;21443:34;:83;;;;;21495:25;:31;21521:4;21495:31;;;;;;;;;;;;;;;;;;;;;;;;;21494:32;21443:83;:126;;;;;21544:19;:25;21564:4;21544:25;;;;;;;;;;;;;;;;;;;;;;;;;21543:26;21443:126;:167;;;;;21587:19;:23;21607:2;21587:23;;;;;;;;;;;;;;;;;;;;;;;;;21586:24;21443:167;21425:297;;;21649:4;21637:9;;:16;;;;;;;;;;;;;;;;;;21668:10;:8;:10::i;:::-;21705:5;21693:9;;:17;;;;;;;;;;;;;;;;;;21425:297;21734:12;21750:9;;;;;;;;;;;21749:10;21734:25;;21861:19;:25;21881:4;21861:25;;;;;;;;;;;;;;;;;;;;;;;;;:52;;;;21890:19;:23;21910:2;21890:23;;;;;;;;;;;;;;;;;;;;;;;;;21861:52;21857:73;;;21925:5;21915:15;;21857:73;21961:12;22066:7;22062:645;;;22118:25;:29;22144:2;22118:29;;;;;;;;;;;;;;;;;;;;;;;;;:50;;;;;22167:1;22151:13;;:17;22118:50;22114:438;;;22195:34;22225:3;22195:25;22206:13;;22195:6;:10;;:25;;;;:::i;:::-;:29;;:34;;;;:::i;:::-;22188:41;;22284:13;;22271:10;;22264:4;:17;;;;:::i;:::-;:33;;;;:::i;:::-;22248:12;;:49;;;;;;;:::i;:::-;;;;;;;;22114:438;;;22358:25;:31;22384:4;22358:31;;;;;;;;;;;;;;;;;;;;;;;;;:51;;;;;22408:1;22393:12;;:16;22358:51;22355:197;;;22437:33;22466:3;22437:24;22448:12;;22437:6;:10;;:24;;;;:::i;:::-;:28;;:33;;;;:::i;:::-;22430:40;;22524:12;;22512:9;;22505:4;:16;;;;:::i;:::-;:31;;;;:::i;:::-;22489:12;;:47;;;;;;;:::i;:::-;;;;;;;;22355:197;22114:438;22579:1;22572:4;:8;22568:91;;;22601:42;22617:4;22631;22638;22601:15;:42::i;:::-;22568:91;22691:4;22681:14;;;;;:::i;:::-;;;22062:645;22719:33;22735:4;22741:2;22745:6;22719:15;:33::i;:::-;18963:3797;;;;18850:3910;;;;:::o;10896:191::-;10970:16;10989:6;;;;;;;;;;;10970:25;;11015:8;11006:6;;:17;;;;;;;;;;;;;;;;;;11070:8;11039:40;;11060:8;11039:40;;;;;;;;;;;;10959:128;10896:191;:::o;8950:98::-;9008:7;9039:1;9035;:5;;;;:::i;:::-;9028:12;;8950:98;;;;:::o;17946:130::-;18063:5;18029:25;:31;18055:4;18029:31;;;;;;;;;;;;;;;;:39;;;;;;;;;;;;;;;;;;17946:130;;:::o;5413:733::-;5571:1;5553:20;;:6;:20;;;;5545:70;;;;;;;;;;;;:::i;:::-;;;;;;;;;5655:1;5634:23;;:9;:23;;;;5626:71;;;;;;;;;;;;:::i;:::-;;;;;;;;;5710:47;5731:6;5739:9;5750:6;5710:20;:47::i;:::-;5770:21;5794:9;:17;5804:6;5794:17;;;;;;;;;;;;;;;;5770:41;;5847:6;5830:13;:23;;5822:74;;;;;;;;;;;;:::i;:::-;;;;;;;;;5968:6;5952:13;:22;5932:9;:17;5942:6;5932:17;;;;;;;;;;;;;;;:42;;;;6020:6;5996:9;:20;6006:9;5996:20;;;;;;;;;;;;;;;;:30;;;;;;;:::i;:::-;;;;;;;;6061:9;6044:35;;6053:6;6044:35;;;6072:6;6044:35;;;;;;:::i;:::-;;;;;;;;6092:46;6112:6;6120:9;6131:6;6092:19;:46::i;:::-;5534:612;5413:733;;;:::o;23892:589::-;23931:23;23957:24;23975:4;23957:9;:24::i;:::-;23931:50;;23992:25;24020:12;;23992:40;;24043:12;24091:1;24072:15;:20;:46;;;;24117:1;24096:17;:22;24072:46;24069:60;;;24121:7;;;;;24069:60;24184:2;24163:18;;:23;;;;:::i;:::-;24145:15;:41;24142:111;;;24239:2;24218:18;;:23;;;;:::i;:::-;24200:41;;24142:111;24269:36;24287:17;24269;:36::i;:::-;24320:18;24341:21;24320:42;;24394:1;24379:12;:16;;;;24430:9;;;;;;;;;;;24422:23;;24453:10;24422:46;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;24409:59;;;;;23920:561;;;;23892:589;:::o;9162:98::-;9220:7;9251:1;9247;:5;;;;:::i;:::-;9240:12;;9162:98;;;;:::o;9268:::-;9326:7;9357:1;9353;:5;;;;:::i;:::-;9346:12;;9268:98;;;;:::o;7548:125::-;;;;:::o;7681:124::-;;;;:::o;22768:590::-;22895:21;22933:1;22919:16;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22895:40;;22964:4;22946;22951:1;22946:7;;;;;;;;:::i;:::-;;;;;;;:23;;;;;;;;;;;22990:15;:20;;;:22;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;22980:4;22985:1;22980:7;;;;;;;;:::i;:::-;;;;;;;:32;;;;;;;;;;;23025:62;23042:4;23057:15;23075:11;23025:8;:62::i;:::-;23126:15;:66;;;23207:11;23233:1;23277:4;23304;23324:15;23126:224;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;22824:534;22768:590;:::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:307::-;355:1;365:113;379:6;376:1;373:13;365:113;;;464:1;459:3;455:11;449:18;445:1;440:3;436:11;429:39;401:2;398:1;394:10;389:15;;365:113;;;496:6;493:1;490:13;487:101;;;576:1;567:6;562:3;558:16;551:27;487:101;336:258;287:307;;;:::o;600:102::-;641:6;692:2;688:7;683:2;676:5;672:14;668:28;658:38;;600:102;;;:::o;708:364::-;796:3;824:39;857:5;824:39;:::i;:::-;879:71;943:6;938:3;879:71;:::i;:::-;872:78;;959:52;1004:6;999:3;992:4;985:5;981:16;959:52;:::i;:::-;1036:29;1058:6;1036:29;:::i;:::-;1031:3;1027:39;1020:46;;800:272;708:364;;;;:::o;1078:313::-;1191:4;1229:2;1218:9;1214:18;1206:26;;1278:9;1272:4;1268:20;1264:1;1253:9;1249:17;1242:47;1306:78;1379:4;1370:6;1306:78;:::i;:::-;1298:86;;1078:313;;;;:::o;1397:75::-;1430:6;1463:2;1457:9;1447:19;;1397:75;:::o;1478:117::-;1587:1;1584;1577:12;1601:117;1710:1;1707;1700:12;1724:126;1761:7;1801:42;1794:5;1790:54;1779:65;;1724:126;;;:::o;1856:96::-;1893:7;1922:24;1940:5;1922:24;:::i;:::-;1911:35;;1856:96;;;:::o;1958:122::-;2031:24;2049:5;2031:24;:::i;:::-;2024:5;2021:35;2011:63;;2070:1;2067;2060:12;2011:63;1958:122;:::o;2086:139::-;2132:5;2170:6;2157:20;2148:29;;2186:33;2213:5;2186:33;:::i;:::-;2086:139;;;;:::o;2231:77::-;2268:7;2297:5;2286:16;;2231:77;;;:::o;2314:122::-;2387:24;2405:5;2387:24;:::i;:::-;2380:5;2377:35;2367:63;;2426:1;2423;2416:12;2367:63;2314:122;:::o;2442:139::-;2488:5;2526:6;2513:20;2504:29;;2542:33;2569:5;2542:33;:::i;:::-;2442:139;;;;:::o;2587:474::-;2655:6;2663;2712:2;2700:9;2691:7;2687:23;2683:32;2680:119;;;2718:79;;:::i;:::-;2680:119;2838:1;2863:53;2908:7;2899:6;2888:9;2884:22;2863:53;:::i;:::-;2853:63;;2809:117;2965:2;2991:53;3036:7;3027:6;3016:9;3012:22;2991:53;:::i;:::-;2981:63;;2936:118;2587:474;;;;;:::o;3067:90::-;3101:7;3144:5;3137:13;3130:21;3119:32;;3067:90;;;:::o;3163:109::-;3244:21;3259:5;3244:21;:::i;:::-;3239:3;3232:34;3163:109;;:::o;3278:210::-;3365:4;3403:2;3392:9;3388:18;3380:26;;3416:65;3478:1;3467:9;3463:17;3454:6;3416:65;:::i;:::-;3278:210;;;;:::o;3494:329::-;3553:6;3602:2;3590:9;3581:7;3577:23;3573:32;3570:119;;;3608:79;;:::i;:::-;3570:119;3728:1;3753:53;3798:7;3789:6;3778:9;3774:22;3753:53;:::i;:::-;3743:63;;3699:117;3494:329;;;;:::o;3829:60::-;3857:3;3878:5;3871:12;;3829:60;;;:::o;3895:142::-;3945:9;3978:53;3996:34;4005:24;4023:5;4005:24;:::i;:::-;3996:34;:::i;:::-;3978:53;:::i;:::-;3965:66;;3895:142;;;:::o;4043:126::-;4093:9;4126:37;4157:5;4126:37;:::i;:::-;4113:50;;4043:126;;;:::o;4175:153::-;4252:9;4285:37;4316:5;4285:37;:::i;:::-;4272:50;;4175:153;;;:::o;4334:185::-;4448:64;4506:5;4448:64;:::i;:::-;4443:3;4436:77;4334:185;;:::o;4525:276::-;4645:4;4683:2;4672:9;4668:18;4660:26;;4696:98;4791:1;4780:9;4776:17;4767:6;4696:98;:::i;:::-;4525:276;;;;:::o;4807:118::-;4894:24;4912:5;4894:24;:::i;:::-;4889:3;4882:37;4807:118;;:::o;4931:222::-;5024:4;5062:2;5051:9;5047:18;5039:26;;5075:71;5143:1;5132:9;5128:17;5119:6;5075:71;:::i;:::-;4931:222;;;;:::o;5159:329::-;5218:6;5267:2;5255:9;5246:7;5242:23;5238:32;5235:119;;;5273:79;;:::i;:::-;5235:119;5393:1;5418:53;5463:7;5454:6;5443:9;5439:22;5418:53;:::i;:::-;5408:63;;5364:117;5159:329;;;;:::o;5494:619::-;5571:6;5579;5587;5636:2;5624:9;5615:7;5611:23;5607:32;5604:119;;;5642:79;;:::i;:::-;5604:119;5762:1;5787:53;5832:7;5823:6;5812:9;5808:22;5787:53;:::i;:::-;5777:63;;5733:117;5889:2;5915:53;5960:7;5951:6;5940:9;5936:22;5915:53;:::i;:::-;5905:63;;5860:118;6017:2;6043:53;6088:7;6079:6;6068:9;6064:22;6043:53;:::i;:::-;6033:63;;5988:118;5494:619;;;;;:::o;6119:86::-;6154:7;6194:4;6187:5;6183:16;6172:27;;6119:86;;;:::o;6211:112::-;6294:22;6310:5;6294:22;:::i;:::-;6289:3;6282:35;6211:112;;:::o;6329:214::-;6418:4;6456:2;6445:9;6441:18;6433:26;;6469:67;6533:1;6522:9;6518:17;6509:6;6469:67;:::i;:::-;6329:214;;;;:::o;6549:118::-;6636:24;6654:5;6636:24;:::i;:::-;6631:3;6624:37;6549:118;;:::o;6673:222::-;6766:4;6804:2;6793:9;6789:18;6781:26;;6817:71;6885:1;6874:9;6870:17;6861:6;6817:71;:::i;:::-;6673:222;;;;:::o;6901:117::-;7010:1;7007;7000:12;7024:180;7072:77;7069:1;7062:88;7169:4;7166:1;7159:15;7193:4;7190:1;7183:15;7210:281;7293:27;7315:4;7293:27;:::i;:::-;7285:6;7281:40;7423:6;7411:10;7408:22;7387:18;7375:10;7372:34;7369:62;7366:88;;;7434:18;;:::i;:::-;7366:88;7474:10;7470:2;7463:22;7253:238;7210:281;;:::o;7497:129::-;7531:6;7558:20;;:::i;:::-;7548:30;;7587:33;7615:4;7607:6;7587:33;:::i;:::-;7497:129;;;:::o;7632:311::-;7709:4;7799:18;7791:6;7788:30;7785:56;;;7821:18;;:::i;:::-;7785:56;7871:4;7863:6;7859:17;7851:25;;7931:4;7925;7921:15;7913:23;;7632:311;;;:::o;7949:117::-;8058:1;8055;8048:12;8089:710;8185:5;8210:81;8226:64;8283:6;8226:64;:::i;:::-;8210:81;:::i;:::-;8201:90;;8311:5;8340:6;8333:5;8326:21;8374:4;8367:5;8363:16;8356:23;;8427:4;8419:6;8415:17;8407:6;8403:30;8456:3;8448:6;8445:15;8442:122;;;8475:79;;:::i;:::-;8442:122;8590:6;8573:220;8607:6;8602:3;8599:15;8573:220;;;8682:3;8711:37;8744:3;8732:10;8711:37;:::i;:::-;8706:3;8699:50;8778:4;8773:3;8769:14;8762:21;;8649:144;8633:4;8628:3;8624:14;8617:21;;8573:220;;;8577:21;8191:608;;8089:710;;;;;:::o;8822:370::-;8893:5;8942:3;8935:4;8927:6;8923:17;8919:27;8909:122;;8950:79;;:::i;:::-;8909:122;9067:6;9054:20;9092:94;9182:3;9174:6;9167:4;9159:6;9155:17;9092:94;:::i;:::-;9083:103;;8899:293;8822:370;;;;:::o;9198:539::-;9282:6;9331:2;9319:9;9310:7;9306:23;9302:32;9299:119;;;9337:79;;:::i;:::-;9299:119;9485:1;9474:9;9470:17;9457:31;9515:18;9507:6;9504:30;9501:117;;;9537:79;;:::i;:::-;9501:117;9642:78;9712:7;9703:6;9692:9;9688:22;9642:78;:::i;:::-;9632:88;;9428:302;9198:539;;;;:::o;9743:116::-;9813:21;9828:5;9813:21;:::i;:::-;9806:5;9803:32;9793:60;;9849:1;9846;9839:12;9793:60;9743:116;:::o;9865:133::-;9908:5;9946:6;9933:20;9924:29;;9962:30;9986:5;9962:30;:::i;:::-;9865:133;;;;:::o;10004:468::-;10069:6;10077;10126:2;10114:9;10105:7;10101:23;10097:32;10094:119;;;10132:79;;:::i;:::-;10094:119;10252:1;10277:53;10322:7;10313:6;10302:9;10298:22;10277:53;:::i;:::-;10267:63;;10223:117;10379:2;10405:50;10447:7;10438:6;10427:9;10423:22;10405:50;:::i;:::-;10395:60;;10350:115;10004:468;;;;;:::o;10478:474::-;10546:6;10554;10603:2;10591:9;10582:7;10578:23;10574:32;10571:119;;;10609:79;;:::i;:::-;10571:119;10729:1;10754:53;10799:7;10790:6;10779:9;10775:22;10754:53;:::i;:::-;10744:63;;10700:117;10856:2;10882:53;10927:7;10918:6;10907:9;10903:22;10882:53;:::i;:::-;10872:63;;10827:118;10478:474;;;;;:::o;10958:180::-;11006:77;11003:1;10996:88;11103:4;11100:1;11093:15;11127:4;11124:1;11117:15;11144:320;11188:6;11225:1;11219:4;11215:12;11205:22;;11272:1;11266:4;11262:12;11293:18;11283:81;;11349:4;11341:6;11337:17;11327:27;;11283:81;11411:2;11403:6;11400:14;11380:18;11377:38;11374:84;;;11430:18;;:::i;:::-;11374:84;11195:269;11144:320;;;:::o;11470:182::-;11610:34;11606:1;11598:6;11594:14;11587:58;11470:182;:::o;11658:366::-;11800:3;11821:67;11885:2;11880:3;11821:67;:::i;:::-;11814:74;;11897:93;11986:3;11897:93;:::i;:::-;12015:2;12010:3;12006:12;11999:19;;11658:366;;;:::o;12030:419::-;12196:4;12234:2;12223:9;12219:18;12211:26;;12283:9;12277:4;12273:20;12269:1;12258:9;12254:17;12247:47;12311:131;12437:4;12311:131;:::i;:::-;12303:139;;12030:419;;;:::o;12455:180::-;12503:77;12500:1;12493:88;12600:4;12597:1;12590:15;12624:4;12621:1;12614:15;12641:348;12681:7;12704:20;12722:1;12704:20;:::i;:::-;12699:25;;12738:20;12756:1;12738:20;:::i;:::-;12733:25;;12926:1;12858:66;12854:74;12851:1;12848:81;12843:1;12836:9;12829:17;12825:105;12822:131;;;12933:18;;:::i;:::-;12822:131;12981:1;12978;12974:9;12963:20;;12641:348;;;;:::o;12995:180::-;13043:77;13040:1;13033:88;13140:4;13137:1;13130:15;13164:4;13161:1;13154:15;13181:185;13221:1;13238:20;13256:1;13238:20;:::i;:::-;13233:25;;13272:20;13290:1;13272:20;:::i;:::-;13267:25;;13311:1;13301:35;;13316:18;;:::i;:::-;13301:35;13358:1;13355;13351:9;13346:14;;13181:185;;;;:::o;13372:234::-;13512:34;13508:1;13500:6;13496:14;13489:58;13581:17;13576:2;13568:6;13564:15;13557:42;13372:234;:::o;13612:366::-;13754:3;13775:67;13839:2;13834:3;13775:67;:::i;:::-;13768:74;;13851:93;13940:3;13851:93;:::i;:::-;13969:2;13964:3;13960:12;13953:19;;13612:366;;;:::o;13984:419::-;14150:4;14188:2;14177:9;14173:18;14165:26;;14237:9;14231:4;14227:20;14223:1;14212:9;14208:17;14201:47;14265:131;14391:4;14265:131;:::i;:::-;14257:139;;13984:419;;;:::o;14409:227::-;14549:34;14545:1;14537:6;14533:14;14526:58;14618:10;14613:2;14605:6;14601:15;14594:35;14409:227;:::o;14642:366::-;14784:3;14805:67;14869:2;14864:3;14805:67;:::i;:::-;14798:74;;14881:93;14970:3;14881:93;:::i;:::-;14999:2;14994:3;14990:12;14983:19;;14642:366;;;:::o;15014:419::-;15180:4;15218:2;15207:9;15203:18;15195:26;;15267:9;15261:4;15257:20;15253:1;15242:9;15238:17;15231:47;15295:131;15421:4;15295:131;:::i;:::-;15287:139;;15014:419;;;:::o;15439:305::-;15479:3;15498:20;15516:1;15498:20;:::i;:::-;15493:25;;15532:20;15550:1;15532:20;:::i;:::-;15527:25;;15686:1;15618:66;15614:74;15611:1;15608:81;15605:107;;;15692:18;;:::i;:::-;15605:107;15736:1;15733;15729:9;15722:16;;15439:305;;;;:::o;15750:180::-;15798:77;15795:1;15788:88;15895:4;15892:1;15885:15;15919:4;15916:1;15909:15;15936:233;15975:3;15998:24;16016:5;15998:24;:::i;:::-;15989:33;;16044:66;16037:5;16034:77;16031:103;;;16114:18;;:::i;:::-;16031:103;16161:1;16154:5;16150:13;16143:20;;15936:233;;;:::o;16175:179::-;16315:31;16311:1;16303:6;16299:14;16292:55;16175:179;:::o;16360:366::-;16502:3;16523:67;16587:2;16582:3;16523:67;:::i;:::-;16516:74;;16599:93;16688:3;16599:93;:::i;:::-;16717:2;16712:3;16708:12;16701:19;;16360:366;;;:::o;16732:419::-;16898:4;16936:2;16925:9;16921:18;16913:26;;16985:9;16979:4;16975:20;16971:1;16960:9;16956:17;16949:47;17013:131;17139:4;17013:131;:::i;:::-;17005:139;;16732:419;;;:::o;17157:244::-;17297:34;17293:1;17285:6;17281:14;17274:58;17366:27;17361:2;17353:6;17349:15;17342:52;17157:244;:::o;17407:366::-;17549:3;17570:67;17634:2;17629:3;17570:67;:::i;:::-;17563:74;;17646:93;17735:3;17646:93;:::i;:::-;17764:2;17759:3;17755:12;17748:19;;17407:366;;;:::o;17779:419::-;17945:4;17983:2;17972:9;17968:18;17960:26;;18032:9;18026:4;18022:20;18018:1;18007:9;18003:17;17996:47;18060:131;18186:4;18060:131;:::i;:::-;18052:139;;17779:419;;;:::o;18204:224::-;18344:34;18340:1;18332:6;18328:14;18321:58;18413:7;18408:2;18400:6;18396:15;18389:32;18204:224;:::o;18434:366::-;18576:3;18597:67;18661:2;18656:3;18597:67;:::i;:::-;18590:74;;18673:93;18762:3;18673:93;:::i;:::-;18791:2;18786:3;18782:12;18775:19;;18434:366;;;:::o;18806:419::-;18972:4;19010:2;18999:9;18995:18;18987:26;;19059:9;19053:4;19049:20;19045:1;19034:9;19030:17;19023:47;19087:131;19213:4;19087:131;:::i;:::-;19079:139;;18806:419;;;:::o;19231:223::-;19371:34;19367:1;19359:6;19355:14;19348:58;19440:6;19435:2;19427:6;19423:15;19416:31;19231:223;:::o;19460:366::-;19602:3;19623:67;19687:2;19682:3;19623:67;:::i;:::-;19616:74;;19699:93;19788:3;19699:93;:::i;:::-;19817:2;19812:3;19808:12;19801:19;;19460:366;;;:::o;19832:419::-;19998:4;20036:2;20025:9;20021:18;20013:26;;20085:9;20079:4;20075:20;20071:1;20060:9;20056:17;20049:47;20113:131;20239:4;20113:131;:::i;:::-;20105:139;;19832:419;;;:::o;20257:240::-;20397:34;20393:1;20385:6;20381:14;20374:58;20466:23;20461:2;20453:6;20449:15;20442:48;20257:240;:::o;20503:366::-;20645:3;20666:67;20730:2;20725:3;20666:67;:::i;:::-;20659:74;;20742:93;20831:3;20742:93;:::i;:::-;20860:2;20855:3;20851:12;20844:19;;20503:366;;;:::o;20875:419::-;21041:4;21079:2;21068:9;21064:18;21056:26;;21128:9;21122:4;21118:20;21114:1;21103:9;21099:17;21092:47;21156:131;21282:4;21156:131;:::i;:::-;21148:139;;20875:419;;;:::o;21300:239::-;21440:34;21436:1;21428:6;21424:14;21417:58;21509:22;21504:2;21496:6;21492:15;21485:47;21300:239;:::o;21545:366::-;21687:3;21708:67;21772:2;21767:3;21708:67;:::i;:::-;21701:74;;21784:93;21873:3;21784:93;:::i;:::-;21902:2;21897:3;21893:12;21886:19;;21545:366;;;:::o;21917:419::-;22083:4;22121:2;22110:9;22106:18;22098:26;;22170:9;22164:4;22160:20;22156:1;22145:9;22141:17;22134:47;22198:131;22324:4;22198:131;:::i;:::-;22190:139;;21917:419;;;:::o;22342:225::-;22482:34;22478:1;22470:6;22466:14;22459:58;22551:8;22546:2;22538:6;22534:15;22527:33;22342:225;:::o;22573:366::-;22715:3;22736:67;22800:2;22795:3;22736:67;:::i;:::-;22729:74;;22812:93;22901:3;22812:93;:::i;:::-;22930:2;22925:3;22921:12;22914:19;;22573:366;;;:::o;22945:419::-;23111:4;23149:2;23138:9;23134:18;23126:26;;23198:9;23192:4;23188:20;23184:1;23173:9;23169:17;23162:47;23226:131;23352:4;23226:131;:::i;:::-;23218:139;;22945:419;;;:::o;23370:223::-;23510:34;23506:1;23498:6;23494:14;23487:58;23579:6;23574:2;23566:6;23562:15;23555:31;23370:223;:::o;23599:366::-;23741:3;23762:67;23826:2;23821:3;23762:67;:::i;:::-;23755:74;;23838:93;23927:3;23838:93;:::i;:::-;23956:2;23951:3;23947:12;23940:19;;23599:366;;;:::o;23971:419::-;24137:4;24175:2;24164:9;24160:18;24152:26;;24224:9;24218:4;24214:20;24210:1;24199:9;24195:17;24188:47;24252:131;24378:4;24252:131;:::i;:::-;24244:139;;23971:419;;;:::o;24396:221::-;24536:34;24532:1;24524:6;24520:14;24513:58;24605:4;24600:2;24592:6;24588:15;24581:29;24396:221;:::o;24623:366::-;24765:3;24786:67;24850:2;24845:3;24786:67;:::i;:::-;24779:74;;24862:93;24951:3;24862:93;:::i;:::-;24980:2;24975:3;24971:12;24964:19;;24623:366;;;:::o;24995:419::-;25161:4;25199:2;25188:9;25184:18;25176:26;;25248:9;25242:4;25238:20;25234:1;25223:9;25219:17;25212:47;25276:131;25402:4;25276:131;:::i;:::-;25268:139;;24995:419;;;:::o;25420:224::-;25560:34;25556:1;25548:6;25544:14;25537:58;25629:7;25624:2;25616:6;25612:15;25605:32;25420:224;:::o;25650:366::-;25792:3;25813:67;25877:2;25872:3;25813:67;:::i;:::-;25806:74;;25889:93;25978:3;25889:93;:::i;:::-;26007:2;26002:3;25998:12;25991:19;;25650:366;;;:::o;26022:419::-;26188:4;26226:2;26215:9;26211:18;26203:26;;26275:9;26269:4;26265:20;26261:1;26250:9;26246:17;26239:47;26303:131;26429:4;26303:131;:::i;:::-;26295:139;;26022:419;;;:::o;26447:222::-;26587:34;26583:1;26575:6;26571:14;26564:58;26656:5;26651:2;26643:6;26639:15;26632:30;26447:222;:::o;26675:366::-;26817:3;26838:67;26902:2;26897:3;26838:67;:::i;:::-;26831:74;;26914:93;27003:3;26914:93;:::i;:::-;27032:2;27027:3;27023:12;27016:19;;26675:366;;;:::o;27047:419::-;27213:4;27251:2;27240:9;27236:18;27228:26;;27300:9;27294:4;27290:20;27286:1;27275:9;27271:17;27264:47;27328:131;27454:4;27328:131;:::i;:::-;27320:139;;27047:419;;;:::o;27472:305::-;27612:34;27608:1;27600:6;27596:14;27589:58;27681:34;27676:2;27668:6;27664:15;27657:59;27750:19;27745:2;27737:6;27733:15;27726:44;27472:305;:::o;27783:366::-;27925:3;27946:67;28010:2;28005:3;27946:67;:::i;:::-;27939:74;;28022:93;28111:3;28022:93;:::i;:::-;28140:2;28135:3;28131:12;28124:19;;27783:366;;;:::o;28155:419::-;28321:4;28359:2;28348:9;28344:18;28336:26;;28408:9;28402:4;28398:20;28394:1;28383:9;28379:17;28372:47;28436:131;28562:4;28436:131;:::i;:::-;28428:139;;28155:419;;;:::o;28580:172::-;28720:24;28716:1;28708:6;28704:14;28697:48;28580:172;:::o;28758:366::-;28900:3;28921:67;28985:2;28980:3;28921:67;:::i;:::-;28914:74;;28997:93;29086:3;28997:93;:::i;:::-;29115:2;29110:3;29106:12;29099:19;;28758:366;;;:::o;29130:419::-;29296:4;29334:2;29323:9;29319:18;29311:26;;29383:9;29377:4;29373:20;29369:1;29358:9;29354:17;29347:47;29411:131;29537:4;29411:131;:::i;:::-;29403:139;;29130:419;;;:::o;29555:297::-;29695:34;29691:1;29683:6;29679:14;29672:58;29764:34;29759:2;29751:6;29747:15;29740:59;29833:11;29828:2;29820:6;29816:15;29809:36;29555:297;:::o;29858:366::-;30000:3;30021:67;30085:2;30080:3;30021:67;:::i;:::-;30014:74;;30097:93;30186:3;30097:93;:::i;:::-;30215:2;30210:3;30206:12;30199:19;;29858:366;;;:::o;30230:419::-;30396:4;30434:2;30423:9;30419:18;30411:26;;30483:9;30477:4;30473:20;30469:1;30458:9;30454:17;30447:47;30511:131;30637:4;30511:131;:::i;:::-;30503:139;;30230:419;;;:::o;30655:240::-;30795:34;30791:1;30783:6;30779:14;30772:58;30864:23;30859:2;30851:6;30847:15;30840:48;30655:240;:::o;30901:366::-;31043:3;31064:67;31128:2;31123:3;31064:67;:::i;:::-;31057:74;;31140:93;31229:3;31140:93;:::i;:::-;31258:2;31253:3;31249:12;31242:19;;30901:366;;;:::o;31273:419::-;31439:4;31477:2;31466:9;31462:18;31454:26;;31526:9;31520:4;31516:20;31512:1;31501:9;31497:17;31490:47;31554:131;31680:4;31554:131;:::i;:::-;31546:139;;31273:419;;;:::o;31698:169::-;31838:21;31834:1;31826:6;31822:14;31815:45;31698:169;:::o;31873:366::-;32015:3;32036:67;32100:2;32095:3;32036:67;:::i;:::-;32029:74;;32112:93;32201:3;32112:93;:::i;:::-;32230:2;32225:3;32221:12;32214:19;;31873:366;;;:::o;32245:419::-;32411:4;32449:2;32438:9;32434:18;32426:26;;32498:9;32492:4;32488:20;32484:1;32473:9;32469:17;32462:47;32526:131;32652:4;32526:131;:::i;:::-;32518:139;;32245:419;;;:::o;32670:241::-;32810:34;32806:1;32798:6;32794:14;32787:58;32879:24;32874:2;32866:6;32862:15;32855:49;32670:241;:::o;32917:366::-;33059:3;33080:67;33144:2;33139:3;33080:67;:::i;:::-;33073:74;;33156:93;33245:3;33156:93;:::i;:::-;33274:2;33269:3;33265:12;33258:19;;32917:366;;;:::o;33289:419::-;33455:4;33493:2;33482:9;33478:18;33470:26;;33542:9;33536:4;33532:20;33528:1;33517:9;33513:17;33506:47;33570:131;33696:4;33570:131;:::i;:::-;33562:139;;33289:419;;;:::o;33714:191::-;33754:4;33774:20;33792:1;33774:20;:::i;:::-;33769:25;;33808:20;33826:1;33808:20;:::i;:::-;33803:25;;33847:1;33844;33841:8;33838:34;;;33852:18;;:::i;:::-;33838:34;33897:1;33894;33890:9;33882:17;;33714:191;;;;:::o;33911:225::-;34051:34;34047:1;34039:6;34035:14;34028:58;34120:8;34115:2;34107:6;34103:15;34096:33;33911:225;:::o;34142:366::-;34284:3;34305:67;34369:2;34364:3;34305:67;:::i;:::-;34298:74;;34381:93;34470:3;34381:93;:::i;:::-;34499:2;34494:3;34490:12;34483:19;;34142:366;;;:::o;34514:419::-;34680:4;34718:2;34707:9;34703:18;34695:26;;34767:9;34761:4;34757:20;34753:1;34742:9;34738:17;34731:47;34795:131;34921:4;34795:131;:::i;:::-;34787:139;;34514:419;;;:::o;34939:147::-;35040:11;35077:3;35062:18;;34939:147;;;;:::o;35092:114::-;;:::o;35212:398::-;35371:3;35392:83;35473:1;35468:3;35392:83;:::i;:::-;35385:90;;35484:93;35573:3;35484:93;:::i;:::-;35602:1;35597:3;35593:11;35586:18;;35212:398;;;:::o;35616:379::-;35800:3;35822:147;35965:3;35822:147;:::i;:::-;35815:154;;35986:3;35979:10;;35616:379;;;:::o;36001:143::-;36058:5;36089:6;36083:13;36074:22;;36105:33;36132:5;36105:33;:::i;:::-;36001:143;;;;:::o;36150:351::-;36220:6;36269:2;36257:9;36248:7;36244:23;36240:32;36237:119;;;36275:79;;:::i;:::-;36237:119;36395:1;36420:64;36476:7;36467:6;36456:9;36452:22;36420:64;:::i;:::-;36410:74;;36366:128;36150:351;;;;:::o;36507:85::-;36552:7;36581:5;36570:16;;36507:85;;;:::o;36598:158::-;36656:9;36689:61;36707:42;36716:32;36742:5;36716:32;:::i;:::-;36707:42;:::i;:::-;36689:61;:::i;:::-;36676:74;;36598:158;;;:::o;36762:147::-;36857:45;36896:5;36857:45;:::i;:::-;36852:3;36845:58;36762:147;;:::o;36915:114::-;36982:6;37016:5;37010:12;37000:22;;36915:114;;;:::o;37035:184::-;37134:11;37168:6;37163:3;37156:19;37208:4;37203:3;37199:14;37184:29;;37035:184;;;;:::o;37225:132::-;37292:4;37315:3;37307:11;;37345:4;37340:3;37336:14;37328:22;;37225:132;;;:::o;37363:108::-;37440:24;37458:5;37440:24;:::i;:::-;37435:3;37428:37;37363:108;;:::o;37477:179::-;37546:10;37567:46;37609:3;37601:6;37567:46;:::i;:::-;37645:4;37640:3;37636:14;37622:28;;37477:179;;;;:::o;37662:113::-;37732:4;37764;37759:3;37755:14;37747:22;;37662:113;;;:::o;37811:732::-;37930:3;37959:54;38007:5;37959:54;:::i;:::-;38029:86;38108:6;38103:3;38029:86;:::i;:::-;38022:93;;38139:56;38189:5;38139:56;:::i;:::-;38218:7;38249:1;38234:284;38259:6;38256:1;38253:13;38234:284;;;38335:6;38329:13;38362:63;38421:3;38406:13;38362:63;:::i;:::-;38355:70;;38448:60;38501:6;38448:60;:::i;:::-;38438:70;;38294:224;38281:1;38278;38274:9;38269:14;;38234:284;;;38238:14;38534:3;38527:10;;37935:608;;;37811:732;;;;:::o;38549:831::-;38812:4;38850:3;38839:9;38835:19;38827:27;;38864:71;38932:1;38921:9;38917:17;38908:6;38864:71;:::i;:::-;38945:80;39021:2;39010:9;39006:18;38997:6;38945:80;:::i;:::-;39072:9;39066:4;39062:20;39057:2;39046:9;39042:18;39035:48;39100:108;39203:4;39194:6;39100:108;:::i;:::-;39092:116;;39218:72;39286:2;39275:9;39271:18;39262:6;39218:72;:::i;:::-;39300:73;39368:3;39357:9;39353:19;39344:6;39300:73;:::i;:::-;38549:831;;;;;;;;:::o
Swarm Source
ipfs://a991b072a97031e59184d7812ed531be458a6cb40756415b1a67132274020dcf
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.